.include "constants/gba_constants.s" .include "constants/species_constants.s" .include "asm/macros.s" .syntax unified .text thumb_func_start nullsub_14 nullsub_14: @ 807AD54 bx lr thumb_func_end nullsub_14 thumb_func_start sub_807AD58 sub_807AD58: @ 807AD58 push {lr} ldr r2, _0807AD90 ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] movs r0, 0 bl SetHBlankCallback movs r0, 0 bl SetVBlankCallback ldr r0, _0807AD94 movs r2, 0 strh r2, [r0] ldr r0, _0807AD98 ldr r3, _0807AD9C adds r1, r0, r3 strb r2, [r1] ldr r1, _0807ADA0 adds r0, r1 strb r2, [r0] ldr r0, _0807ADA4 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0807AD90: .4byte 0x0202f388 _0807AD94: .4byte REG_MOSAIC _0807AD98: .4byte 0x02000000 _0807AD9C: .4byte 0x0001ffff _0807ADA0: .4byte 0x0001fffe _0807ADA4: .4byte sub_807ADA8 thumb_func_end sub_807AD58 thumb_func_start sub_807ADA8 sub_807ADA8: @ 807ADA8 push {r4-r7,lr} sub sp, 0x8 ldr r0, _0807ADC4 ldr r1, _0807ADC8 adds r0, r1 ldrb r0, [r0] cmp r0, 0x13 bls _0807ADBA b _0807B010 _0807ADBA: lsls r0, 2 ldr r1, _0807ADCC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807ADC4: .4byte 0x02000000 _0807ADC8: .4byte 0x0001ffff _0807ADCC: .4byte _0807ADD0 .align 2, 0 _0807ADD0: .4byte _0807AE20 .4byte _0807AE84 .4byte _0807AE9C .4byte _0807AEC8 .4byte _0807AECE .4byte _0807AEE0 .4byte _0807AEE6 .4byte _0807AF18 .4byte _0807AF1C .4byte _0807AF20 .4byte _0807AF24 .4byte _0807AF48 .4byte _0807AF50 .4byte _0807AF58 .4byte _0807AF60 .4byte _0807AF68 .4byte _0807AF70 .4byte _0807AF78 .4byte _0807AF80 .4byte _0807AF88 _0807AE20: bl dp12_8087EA4 ldr r4, _0807AE5C adds r0, r4, 0 bl SetUpWindowConfig bl ResetPaletteFade ldr r0, _0807AE60 adds r1, r4, 0 bl InitWindowFromConfig ldr r0, _0807AE64 movs r1, 0 strh r1, [r0] ldr r0, _0807AE68 strh r1, [r0] ldr r0, _0807AE6C strh r1, [r0] ldr r0, _0807AE70 strh r1, [r0] ldr r0, _0807AE74 strh r1, [r0] ldr r0, _0807AE78 strh r1, [r0] ldr r0, _0807AE7C strh r1, [r0] ldr r0, _0807AE80 strh r1, [r0] b _0807B040 .align 2, 0 _0807AE5C: .4byte gWindowConfig_81E6C58 _0807AE60: .4byte 0x03004210 _0807AE64: .4byte 0x030042a4 _0807AE68: .4byte 0x030042a0 _0807AE6C: .4byte 0x030042c0 _0807AE70: .4byte 0x030041b4 _0807AE74: .4byte 0x03004288 _0807AE78: .4byte 0x03004280 _0807AE7C: .4byte 0x030041b0 _0807AE80: .4byte 0x030041b8 _0807AE84: movs r0, 0 str r0, [sp, 0x4] movs r1, 0xC0 lsls r1, 19 ldr r2, _0807AE98 add r0, sp, 0x4 bl CpuFastSet b _0807B040 .align 2, 0 _0807AE98: .4byte 0x01006000 _0807AE9C: ldr r5, _0807AEBC ldr r0, _0807AEC0 adds r4, r5, r0 ldrb r0, [r4] bl sub_800E414 lsls r0, 24 cmp r0, 0 bne _0807AEF8 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r0, _0807AEC4 adds r1, r5, r0 b _0807AF38 .align 2, 0 _0807AEBC: .4byte 0x02000000 _0807AEC0: .4byte 0x0001fffe _0807AEC4: .4byte 0x0001ffff _0807AEC8: bl ResetSpriteData b _0807B040 _0807AECE: bl FreeAllSpritePalettes ldr r1, _0807AEDC movs r0, 0x4 strb r0, [r1] b _0807B040 .align 2, 0 _0807AEDC: .4byte 0x030028f8 _0807AEE0: bl sub_8031EE8 b _0807B040 _0807AEE6: ldr r5, _0807AF00 ldr r1, _0807AF04 adds r4, r5, r1 ldrb r0, [r4] bl sub_8031C30 lsls r0, 24 cmp r0, 0 beq _0807AF08 _0807AEF8: movs r0, 0 strb r0, [r4] b _0807B040 .align 2, 0 _0807AF00: .4byte 0x02000000 _0807AF04: .4byte 0x0001fffe _0807AF08: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r0, _0807AF14 adds r1, r5, r0 b _0807AF38 .align 2, 0 _0807AF14: .4byte 0x0001ffff _0807AF18: movs r0, 0 b _0807AF26 _0807AF1C: movs r0, 0x1 b _0807AF26 _0807AF20: movs r0, 0x2 b _0807AF26 _0807AF24: movs r0, 0x3 _0807AF26: bl sub_807B094 lsls r0, 24 cmp r0, 0 beq _0807AF32 b _0807B040 _0807AF32: ldr r1, _0807AF40 ldr r0, _0807AF44 adds r1, r0 _0807AF38: ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] b _0807B040 .align 2, 0 _0807AF40: .4byte 0x02000000 _0807AF44: .4byte 0x0001ffff _0807AF48: movs r0, 0 bl sub_807B184 b _0807B040 _0807AF50: movs r0, 0x1 bl sub_807B184 b _0807B040 _0807AF58: movs r0, 0x2 bl sub_807B184 b _0807B040 _0807AF60: movs r0, 0x3 bl sub_807B184 b _0807B040 _0807AF68: movs r0, 0 bl sub_807B508 b _0807B040 _0807AF70: movs r0, 0x1 bl sub_807B508 b _0807B040 _0807AF78: movs r0, 0x2 bl sub_807B508 b _0807B040 _0807AF80: movs r0, 0x3 bl sub_807B508 b _0807B040 _0807AF88: bl sub_80327CC movs r0, 0x1 bl battle_get_side_with_given_state adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r7, _0807B000 lsls r0, r4, 1 adds r0, r7 ldrh r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, _0807B004 adds r0, r5 movs r1, 0xB bl PokemonGetField adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8032984 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0807AFEC movs r0, 0x3 bl battle_get_side_with_given_state adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 1 adds r0, r7 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0xB bl PokemonGetField adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8032984 _0807AFEC: ldr r1, _0807B008 ldr r0, _0807B00C ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_802E3E4 b _0807B040 .align 2, 0 _0807B000: .4byte 0x02024a6a _0807B004: .4byte 0x030045c0 _0807B008: .4byte 0x02024e60 _0807B00C: .4byte 0x02024e6c _0807B010: ldr r0, _0807B054 bl SetHBlankCallback ldr r0, _0807B058 bl SetVBlankCallback bl sub_807B06C movs r0, 0x1 str r0, [sp] movs r0, 0xFF movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginHardwarePaletteFade ldr r2, _0807B05C ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] ldr r0, _0807B060 bl SetMainCallback2 _0807B040: ldr r1, _0807B064 ldr r0, _0807B068 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807B054: .4byte sub_800FCD4 _0807B058: .4byte sub_800FCFC _0807B05C: .4byte 0x0202f388 _0807B060: .4byte sub_800F808 _0807B064: .4byte 0x02000000 _0807B068: .4byte 0x0001ffff thumb_func_end sub_807ADA8 thumb_func_start sub_807B06C sub_807B06C: @ 807B06C push {lr} bl sub_800D6D4 ldr r3, _0807B08C ldrb r2, [r3] movs r1, 0xD negs r1, r1 adds r0, r1, 0 ands r0, r2 strb r0, [r3] ldr r2, _0807B090 ldrb r0, [r2] ands r1, r0 strb r1, [r2] pop {r0} bx r0 .align 2, 0 _0807B08C: .4byte REG_BG1CNT _0807B090: .4byte REG_BG2CNT thumb_func_end sub_807B06C thumb_func_start sub_807B094 sub_807B094: @ 807B094 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0807B0D8 ldrb r0, [r0] cmp r4, r0 bcs _0807B172 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0807B0F2 lsls r0, r4, 2 ldr r1, _0807B0DC adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _0807B0E8 ldr r1, _0807B0E0 lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0807B0E4 adds r0, r1 adds r1, r4, 0 bl sub_8031794 b _0807B168 .align 2, 0 _0807B0D8: .4byte 0x02024a68 _0807B0DC: .4byte 0x02017800 _0807B0E0: .4byte 0x02024a6a _0807B0E4: .4byte 0x030045c0 _0807B0E8: adds r0, r4, 0 movs r1, 0 bl sub_8032350 b _0807B168 _0807B0F2: ldr r2, _0807B108 ldrh r1, [r2] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0807B110 cmp r4, 0 bne _0807B110 ldr r0, _0807B10C ldrb r0, [r0, 0x8] b _0807B122 .align 2, 0 _0807B108: .4byte 0x020239f8 _0807B10C: .4byte gSaveBlock2 _0807B110: ldrh r1, [r2] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _0807B12A cmp r4, 0 bne _0807B12A movs r0, 0x2 _0807B122: movs r1, 0 bl sub_8031AF4 b _0807B168 _0807B12A: lsls r0, r4, 2 ldr r1, _0807B154 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _0807B160 ldr r1, _0807B158 lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0807B15C adds r0, r1 adds r1, r4, 0 bl sub_80318FC b _0807B168 .align 2, 0 _0807B154: .4byte 0x02017800 _0807B158: .4byte 0x02024a6a _0807B15C: .4byte 0x03004360 _0807B160: adds r0, r4, 0 movs r1, 0 bl sub_8032350 _0807B168: ldr r0, _0807B17C ldr r1, _0807B180 adds r0, r1 movs r1, 0 strb r1, [r0] _0807B172: movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0807B17C: .4byte 0x02000000 _0807B180: .4byte 0x0001fffe thumb_func_end sub_807B094 thumb_func_start sub_807B184 sub_807B184: @ 807B184 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 ldr r0, _0807B1B8 ldrb r0, [r0] cmp r7, r0 bcc _0807B19E b _0807B4D8 _0807B19E: lsls r2, r7, 2 ldr r0, _0807B1BC adds r0, r2, r0 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 str r2, [sp] cmp r0, 0 beq _0807B1C0 adds r0, r7, 0 bl sub_8077F7C b _0807B1C6 .align 2, 0 _0807B1B8: .4byte 0x02024a68 _0807B1BC: .4byte 0x02017800 _0807B1C0: adds r0, r7, 0 bl sub_8077F68 _0807B1C6: lsls r0, 24 lsrs r0, 24 mov r8, r0 adds r0, r7, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0807B1DA b _0807B2D8 _0807B1DA: ldr r1, _0807B2BC lsls r0, r7, 1 adds r6, r0, r1 ldrh r0, [r6] movs r1, 0x64 mov r10, r1 mov r1, r10 muls r1, r0 adds r0, r1, 0 ldr r1, _0807B2C0 mov r9, r1 add r0, r9 movs r1, 0x39 bl PokemonGetField cmp r0, 0 bne _0807B1FE b _0807B4D8 _0807B1FE: ldrh r0, [r6] mov r1, r10 muls r1, r0 adds r0, r1, 0 add r0, r9 movs r1, 0xB bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r7, 0 bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl gpu_pal_obj_decompress_and_apply ldr r5, _0807B2C4 adds r0, r7, 0 movs r1, 0x2 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r7, 0 bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r5, 0 adds r1, r4, 0 mov r2, r8 bl CreateSprite ldr r4, _0807B2C8 adds r4, r7, r4 strb r0, [r4] ldr r5, _0807B2CC ldrb r0, [r4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 lsls r3, r7, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _0807B2D0 str r1, [r0] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r7, [r0, 0x2E] ldrh r0, [r6] mov r1, r10 muls r1, r0 adds r0, r1, 0 add r0, r9 movs r1, 0xB bl PokemonGetField ldrb r2, [r4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 strh r0, [r1, 0x32] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _0807B2D4 adds r1, r7, r1 ldrb r1, [r1] bl StartSpriteAnim b _0807B4AC .align 2, 0 _0807B2BC: .4byte 0x02024a6a _0807B2C0: .4byte 0x030045c0 _0807B2C4: .4byte 0x02024e8c _0807B2C8: .4byte 0x02024be0 _0807B2CC: .4byte 0x02020004 _0807B2D0: .4byte SpriteCallbackDummy _0807B2D4: .4byte 0x02024e84 _0807B2D8: ldr r2, _0807B328 ldrh r1, [r2] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0807B338 cmp r7, 0 bne _0807B338 ldr r5, _0807B32C ldrb r4, [r5, 0x8] movs r0, 0 bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_803C5A0 ldr r6, _0807B330 ldr r1, _0807B334 ldrb r0, [r5, 0x8] lsls r0, 2 adds r0, r1 ldrb r0, [r0] movs r4, 0x8 subs r4, r0 lsls r4, 18 movs r0, 0xA0 lsls r0, 15 adds r4, r0 asrs r4, 16 movs r0, 0 bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r6, 0 b _0807B37C .align 2, 0 _0807B328: .4byte 0x020239f8 _0807B32C: .4byte gSaveBlock2 _0807B330: .4byte 0x02024e8c _0807B334: .4byte gTrainerBackPicCoords _0807B338: ldrh r1, [r2] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _0807B3D0 cmp r7, 0 bne _0807B3D0 movs r0, 0 bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0x2 bl sub_803C5A0 ldr r5, _0807B3BC ldr r0, _0807B3C0 ldrb r0, [r0, 0x8] movs r4, 0x8 subs r4, r0 lsls r4, 18 movs r1, 0xA0 lsls r1, 15 adds r4, r1 asrs r4, 16 movs r0, 0 bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r5, 0 _0807B37C: movs r1, 0x50 adds r2, r4, 0 bl CreateSprite ldr r3, _0807B3C4 strb r0, [r3] ldr r4, _0807B3C8 ldrb r0, [r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 strb r0, [r1, 0x5] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r4, 0 adds r1, 0x1C adds r0, r1 ldr r1, _0807B3CC str r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r7, [r0, 0x2E] b _0807B4AC .align 2, 0 _0807B3BC: .4byte 0x02024e8c _0807B3C0: .4byte gTrainerBackPicCoords _0807B3C4: .4byte 0x02024be0 _0807B3C8: .4byte 0x02020004 _0807B3CC: .4byte SpriteCallbackDummy _0807B3D0: ldr r1, _0807B4E8 lsls r0, r7, 1 adds r6, r0, r1 ldrh r0, [r6] movs r1, 0x64 mov r10, r1 mov r1, r10 muls r1, r0 adds r0, r1, 0 ldr r1, _0807B4EC mov r9, r1 add r0, r9 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _0807B4D8 ldrh r0, [r6] mov r1, r10 muls r1, r0 adds r0, r1, 0 add r0, r9 movs r1, 0xB bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r7, 0 bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl gpu_pal_obj_decompress_and_apply ldr r5, _0807B4F0 adds r0, r7, 0 movs r1, 0x2 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r7, 0 bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r5, 0 adds r1, r4, 0 mov r2, r8 bl CreateSprite ldr r4, _0807B4F4 adds r4, r7, r4 strb r0, [r4] ldr r5, _0807B4F8 ldrb r0, [r4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 lsls r3, r7, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _0807B4FC str r1, [r0] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r7, [r0, 0x2E] ldrh r0, [r6] mov r1, r10 muls r1, r0 adds r0, r1, 0 add r0, r9 movs r1, 0xB bl PokemonGetField ldrb r2, [r4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 strh r0, [r1, 0x32] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _0807B500 adds r1, r7, r1 ldrb r1, [r1] bl StartSpriteAnim _0807B4AC: ldr r1, _0807B4F8 ldr r0, _0807B4F4 adds r0, r7, r0 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 ldr r0, _0807B504 ldr r1, [sp] adds r0, r1, r0 ldr r1, [r0] lsls r1, 31 adds r2, 0x3E lsrs r1, 31 lsls r1, 2 ldrb r3, [r2] movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] _0807B4D8: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807B4E8: .4byte 0x02024a6a _0807B4EC: .4byte 0x03004360 _0807B4F0: .4byte 0x02024e8c _0807B4F4: .4byte 0x02024be0 _0807B4F8: .4byte 0x02020004 _0807B4FC: .4byte SpriteCallbackDummy _0807B500: .4byte 0x02024e84 _0807B504: .4byte 0x02017800 thumb_func_end sub_807B184 thumb_func_start sub_807B508 sub_807B508: @ 807B508 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0807B530 ldrb r0, [r0] cmp r5, r0 bcc _0807B518 b _0807B68A _0807B518: ldr r2, _0807B534 ldrh r1, [r2] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0807B538 cmp r5, 0 bne _0807B538 bl battle_make_oam_safari_battle b _0807B550 .align 2, 0 _0807B530: .4byte 0x02024a68 _0807B534: .4byte 0x020239f8 _0807B538: ldrh r1, [r2] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _0807B54A cmp r5, 0 bne _0807B54A b _0807B68A _0807B54A: adds r0, r5, 0 bl battle_make_oam_normal_battle _0807B550: lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0807B58C adds r4, r5, r0 strb r6, [r4] adds r0, r5, 0 bl sub_8043F44 adds r0, r6, 0 bl sub_8043DFC adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0807B598 ldrb r0, [r4] ldr r1, _0807B590 lsls r4, r5, 1 adds r1, r4, r1 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _0807B594 adds r1, r2 movs r2, 0 bl sub_8045A5C b _0807B5E4 .align 2, 0 _0807B58C: .4byte 0x03004340 _0807B590: .4byte 0x02024a6a _0807B594: .4byte 0x030045c0 _0807B598: ldr r0, _0807B5C0 ldrh r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0807B5CC ldrb r0, [r4] ldr r1, _0807B5C4 lsls r4, r5, 1 adds r1, r4, r1 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _0807B5C8 adds r1, r2 movs r2, 0xA bl sub_8045A5C b _0807B5E4 .align 2, 0 _0807B5C0: .4byte 0x020239f8 _0807B5C4: .4byte 0x02024a6a _0807B5C8: .4byte 0x03004360 _0807B5CC: ldrb r0, [r4] ldr r1, _0807B610 lsls r4, r5, 1 adds r1, r4, r1 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _0807B614 adds r1, r2 movs r2, 0 bl sub_8045A5C _0807B5E4: adds r0, r5, 0 bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _0807B600 adds r0, r5, 0 bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0807B61C _0807B600: ldr r0, _0807B618 adds r0, r5, r0 ldrb r0, [r0] movs r1, 0x1 bl nullsub_11 b _0807B628 .align 2, 0 _0807B610: .4byte 0x02024a6a _0807B614: .4byte 0x03004360 _0807B618: .4byte 0x03004340 _0807B61C: ldr r0, _0807B654 adds r0, r5, r0 ldrb r0, [r0] movs r1, 0 bl nullsub_11 _0807B628: adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0807B660 ldr r0, _0807B658 adds r0, r4, r0 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0807B65C adds r0, r1 movs r1, 0x39 bl PokemonGetField cmp r0, 0 bne _0807B68A adds r0, r6, 0 bl sub_8043DB0 b _0807B68A .align 2, 0 _0807B654: .4byte 0x03004340 _0807B658: .4byte 0x02024a6a _0807B65C: .4byte 0x030045c0 _0807B660: ldr r0, _0807B690 ldrh r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0807B68A ldr r0, _0807B694 adds r0, r4, r0 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0807B698 adds r0, r1 movs r1, 0x39 bl PokemonGetField cmp r0, 0 bne _0807B68A adds r0, r6, 0 bl sub_8043DB0 _0807B68A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807B690: .4byte 0x020239f8 _0807B694: .4byte 0x02024a6a _0807B698: .4byte 0x03004360 thumb_func_end sub_807B508 thumb_func_start unref_sub_807B69C unref_sub_807B69C: @ 807B69C push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r0, _0807B740 adds r0, r4, r0 ldrb r6, [r0] ldr r0, _0807B744 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _0807B748 bl LoadCompressedObjectPic ldr r0, _0807B74C bl LoadCompressedObjectPalette ldr r1, _0807B750 mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r1, r0, r1 strh r4, [r1, 0x8] cmp r5, 0 beq _0807B75C movs r0, 0x1F strh r0, [r1, 0xA] movs r5, 0 lsls r0, r6, 4 ldr r7, _0807B754 adds r0, r6 lsls r0, 2 adds r6, r0, r7 _0807B6F0: movs r0, 0x20 ldrsh r1, [r6, r0] ldrh r2, [r6, 0x22] adds r2, 0x20 lsls r2, 16 asrs r2, 16 ldr r0, _0807B758 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r3, r0, r7 lsls r0, r5, 1 adds r0, r5 lsls r1, r0, 4 adds r0, r1 strh r0, [r3, 0x2E] movs r0, 0xFF lsls r0, 8 strh r0, [r3, 0x30] adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] cmp r5, 0x4 bls _0807B734 movs r0, 0x15 strh r0, [r3, 0x3A] _0807B734: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x9 bls _0807B6F0 b _0807B7BC .align 2, 0 _0807B740: .4byte 0x02024be0 _0807B744: .4byte sub_807B7E0 _0807B748: .4byte gBattleAnimPicTable + (136 * 8) _0807B74C: .4byte gBattleAnimPaletteTable + (136 * 8) _0807B750: .4byte 0x03004b20 _0807B754: .4byte 0x02020004 _0807B758: .4byte gSpriteTemplate_83931F8 _0807B75C: movs r0, 0xF8 lsls r0, 7 strh r0, [r1, 0xA] movs r5, 0 lsls r0, r6, 4 ldr r7, _0807B7D8 adds r0, r6 lsls r0, 2 adds r6, r0, r7 _0807B76E: movs r2, 0x20 ldrsh r1, [r6, r2] ldrh r2, [r6, 0x22] subs r2, 0x20 lsls r2, 16 asrs r2, 16 ldr r0, _0807B7DC movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r3, r0, r7 lsls r0, r5, 1 adds r0, r5 lsls r1, r0, 4 adds r0, r1 strh r0, [r3, 0x2E] movs r0, 0x80 lsls r0, 1 strh r0, [r3, 0x30] adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] cmp r5, 0x4 bls _0807B7B2 movs r0, 0x15 strh r0, [r3, 0x3A] _0807B7B2: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x9 bls _0807B76E _0807B7BC: ldr r0, _0807B7D8 lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x3C] mov r0, r8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0807B7D8: .4byte 0x02020004 _0807B7DC: .4byte gSpriteTemplate_83931F8 thumb_func_end unref_sub_807B69C thumb_func_start sub_807B7E0 sub_807B7E0: @ 807B7E0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0807B838 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r1, [r4, 0xC] movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0x2 bne _0807B866 movs r0, 0 strh r0, [r4, 0xC] movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 20 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r0, 16 ldrb r2, [r4, 0x10] ldrh r3, [r4, 0xA] movs r1, 0x10 bl BlendPalette ldrh r2, [r4, 0x12] movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 bne _0807B83C ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _0807B86A movs r0, 0x1 eors r0, r2 strh r0, [r4, 0x12] b _0807B86A .align 2, 0 _0807B838: .4byte 0x03004b20 _0807B83C: ldrh r1, [r4, 0x10] subs r0, r1, 0x1 strh r0, [r4, 0x10] lsls r0, 16 cmp r0, 0 bge _0807B86A strh r1, [r4, 0x10] movs r0, 0x1 eors r0, r2 strh r0, [r4, 0x12] ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _0807B86A adds r0, r5, 0 bl DestroyTask b _0807B86A _0807B866: adds r0, r1, 0x1 strh r0, [r4, 0xC] _0807B86A: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_807B7E0 thumb_func_start sub_807B870 sub_807B870: @ 807B870 push {lr} adds r2, r0, 0 ldrh r1, [r2, 0x3A] movs r3, 0x3A ldrsh r0, [r2, r3] cmp r0, 0 bne _0807B89C adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r3] ldr r1, _0807B898 str r1, [r2, 0x1C] adds r0, r2, 0 bl _call_via_r1 b _0807B8A0 .align 2, 0 _0807B898: .4byte sub_807B8A4 _0807B89C: subs r0, r1, 0x1 strh r0, [r2, 0x3A] _0807B8A0: pop {r0} bx r0 thumb_func_end sub_807B870 thumb_func_start sub_807B8A4 sub_807B8A4: @ 807B8A4 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x20 bl cosine strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x8 bl sine strh r0, [r4, 0x26] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x7F bgt _0807B8D0 adds r1, r4, 0 adds r1, 0x43 movs r0, 0x1D b _0807B8D6 _0807B8D0: adds r1, r4, 0 adds r1, 0x43 movs r0, 0x1F _0807B8D6: strb r0, [r1] ldrh r0, [r4, 0x2E] adds r0, 0x8 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x38] adds r0, r1 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 24 ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x34 bne _0807B918 movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0 beq _0807B912 adds r0, r4, 0 bl DestroySpriteAndFreeResources b _0807B918 _0807B912: adds r0, r4, 0 bl DestroySprite _0807B918: pop {r4} pop {r0} bx r0 thumb_func_end sub_807B8A4 thumb_func_start sub_807B920 sub_807B920: @ 807B920 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r4, _0807B9B0 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 8 ldr r1, _0807B9B4 adds r0, r1 lsrs r5, r0, 16 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 8 ldr r2, _0807B9B8 adds r0, r2 lsrs r4, r0, 16 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _0807B95E lsls r0, r5, 16 ldr r1, _0807B9BC adds r0, r1 lsrs r5, r0, 16 _0807B95E: ldr r1, _0807B9C0 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _0807B9C4 lsls r1, r5, 16 asrs r1, 16 lsls r2, r4, 16 asrs r2, 16 movs r3, 0x4 bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, _0807B9C8 adds r0, r1 ldr r1, _0807B9CC bl SetSubspriteTables ldr r1, _0807B9D0 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 strh r4, [r0, 0x26] ldr r1, _0807B9D4 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807B9B0: .4byte 0x0202f7c9 _0807B9B4: .4byte 0xffe00000 _0807B9B8: .4byte 0xffdc0000 _0807B9BC: .4byte 0xfffa0000 _0807B9C0: .4byte REG_BLDCNT _0807B9C4: .4byte gSpriteTemplate_83931E0 _0807B9C8: .4byte 0x02020004 _0807B9CC: .4byte gUnknown_083931D8 _0807B9D0: .4byte 0x03004b20 _0807B9D4: .4byte sub_807B9D8 thumb_func_end sub_807B920 thumb_func_start sub_807B9D8 sub_807B9D8: @ 807B9D8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0807BA04 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrh r0, [r1, 0xA] adds r0, 0x1 adds r2, r0, 0 strh r0, [r1, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _0807BA0C ldr r0, _0807BA08 str r0, [r1] movs r0, 0 strh r0, [r1, 0xA] b _0807BA1C .align 2, 0 _0807BA04: .4byte 0x03004b20 _0807BA08: .4byte sub_807BA24 _0807BA0C: lsls r0, r2, 24 lsrs r0, 24 ldr r2, _0807BA20 movs r1, 0x10 subs r1, r0 lsls r1, 8 orrs r1, r0 strh r1, [r2] _0807BA1C: pop {r0} bx r0 .align 2, 0 _0807BA20: .4byte REG_BLDALPHA thumb_func_end sub_807B9D8 thumb_func_start sub_807BA24 sub_807BA24: @ 807BA24 push {r4-r6,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0807BABC bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r2, r0, 24 ldr r1, _0807BAC0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r5, r0, r1 ldrh r0, [r5, 0xA] adds r1, r0, 0x1 strh r1, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xD ble _0807BAB4 ldrh r0, [r5, 0xC] adds r0, 0x1 movs r6, 0 strh r0, [r5, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _0807BAB4 ldr r3, _0807BAC4 lsls r2, 4 mov r12, r2 ldr r1, _0807BAC8 add r1, r12 lsls r1, 1 adds r1, r3 ldrh r4, [r1] movs r2, 0x87 lsls r2, 1 add r2, r12 lsls r2, 1 adds r2, r3 ldrh r0, [r2] strh r0, [r1] ldr r0, _0807BACC add r0, r12 lsls r0, 1 adds r0, r3 ldrh r1, [r0] strh r1, [r2] strh r4, [r0] strh r6, [r5, 0xC] ldrh r0, [r5, 0xE] adds r0, 0x1 strh r0, [r5, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _0807BAB4 strh r6, [r5, 0xE] strh r6, [r5, 0xA] ldrh r0, [r5, 0x10] adds r0, 0x1 strh r0, [r5, 0x10] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _0807BAB4 movs r0, 0x9 strh r0, [r5, 0xA] ldr r0, _0807BAD0 str r0, [r5] _0807BAB4: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807BABC: .4byte 0x0000271a _0807BAC0: .4byte 0x03004b20 _0807BAC4: .4byte 0x0202eec8 _0807BAC8: .4byte 0x0000010d _0807BACC: .4byte 0x0000010f _0807BAD0: .4byte sub_807BAD4 thumb_func_end sub_807BA24 thumb_func_start sub_807BAD4 sub_807BAD4: @ 807BAD4 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0807BB04 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r2, r1, r2 ldrh r0, [r2, 0xA] subs r0, 0x1 adds r3, r0, 0 strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0807BB0C ldr r0, _0807BB08 str r0, [r2] movs r0, 0 strh r0, [r2, 0xA] b _0807BB1C .align 2, 0 _0807BB04: .4byte 0x03004b20 _0807BB08: .4byte sub_807BB24 _0807BB0C: lsls r0, r3, 24 lsrs r0, 24 ldr r2, _0807BB20 movs r1, 0x10 subs r1, r0 lsls r1, 8 orrs r1, r0 strh r1, [r2] _0807BB1C: pop {r0} bx r0 .align 2, 0 _0807BB20: .4byte REG_BLDALPHA thumb_func_end sub_807BAD4 thumb_func_start sub_807BB24 sub_807BB24: @ 807BB24 push {r4,lr} lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 ldr r1, _0807BB64 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0, r1 ldrh r0, [r1, 0xA] adds r0, 0x1 movs r3, 0 strh r0, [r1, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x25 bne _0807BB6C ldrh r0, [r1, 0x26] lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _0807BB68 adds r4, r0 adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl DestroySprite b _0807BB7E .align 2, 0 _0807BB64: .4byte 0x03004b20 _0807BB68: .4byte 0x02020004 _0807BB6C: cmp r0, 0x27 bne _0807BB7E ldr r0, _0807BB84 strh r3, [r0] adds r0, 0x2 strh r3, [r0] adds r0, r2, 0 bl move_anim_task_del _0807BB7E: pop {r4} pop {r0} bx r0 .align 2, 0 _0807BB84: .4byte REG_BLDCNT thumb_func_end sub_807BB24 thumb_func_start sub_807BB88 sub_807BB88: @ 807BB88 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 movs r3, 0 ldr r0, _0807BBA8 ldrh r0, [r0] subs r0, 0xF cmp r0, 0x2B bls _0807BB9C b _0807BD20 _0807BB9C: lsls r0, 2 ldr r1, _0807BBAC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807BBA8: .4byte 0x02017840 _0807BBAC: .4byte _0807BBB0 .align 2, 0 _0807BBB0: .4byte _0807BC60 .4byte _0807BC66 .4byte _0807BC6C .4byte _0807BC72 .4byte _0807BC78 .4byte _0807BC7E .4byte _0807BC84 .4byte _0807BC8A .4byte _0807BC90 .4byte _0807BC96 .4byte _0807BC9C .4byte _0807BCA2 .4byte _0807BCA8 .4byte _0807BCAE .4byte _0807BD20 .4byte _0807BD20 .4byte _0807BD20 .4byte _0807BD20 .4byte _0807BD20 .4byte _0807BD20 .4byte _0807BD20 .4byte _0807BD20 .4byte _0807BD20 .4byte _0807BD20 .4byte _0807BCB4 .4byte _0807BCB8 .4byte _0807BCBC .4byte _0807BCC0 .4byte _0807BCC4 .4byte _0807BCC8 .4byte _0807BCCC .4byte _0807BCD0 .4byte _0807BCD8 .4byte _0807BCE0 .4byte _0807BCE8 .4byte _0807BCF0 .4byte _0807BCF8 .4byte _0807BD00 .4byte _0807BD20 .4byte _0807BD20 .4byte _0807BD08 .4byte _0807BD0C .4byte _0807BD10 .4byte _0807BD18 _0807BC60: movs r5, 0 movs r2, 0 b _0807BD28 _0807BC66: movs r5, 0 movs r2, 0x1 b _0807BD28 _0807BC6C: movs r5, 0 movs r2, 0x3 b _0807BD28 _0807BC72: movs r5, 0 movs r2, 0x5 b _0807BD28 _0807BC78: movs r5, 0 movs r2, 0x6 b _0807BD28 _0807BC7E: movs r5, 0 movs r2, 0x2 b _0807BD28 _0807BC84: movs r5, 0 movs r2, 0x4 b _0807BD28 _0807BC8A: movs r5, 0x1 movs r2, 0 b _0807BD28 _0807BC90: movs r5, 0x1 movs r2, 0x1 b _0807BD28 _0807BC96: movs r5, 0x1 movs r2, 0x3 b _0807BD28 _0807BC9C: movs r5, 0x1 movs r2, 0x5 b _0807BD28 _0807BCA2: movs r5, 0x1 movs r2, 0x6 b _0807BD28 _0807BCA8: movs r5, 0x1 movs r2, 0x2 b _0807BD28 _0807BCAE: movs r5, 0x1 movs r2, 0x4 b _0807BD28 _0807BCB4: movs r5, 0 b _0807BCD2 _0807BCB8: movs r5, 0 b _0807BCDA _0807BCBC: movs r5, 0 b _0807BCE2 _0807BCC0: movs r5, 0 b _0807BCEA _0807BCC4: movs r5, 0 b _0807BCF2 _0807BCC8: movs r5, 0 b _0807BCFA _0807BCCC: movs r5, 0 b _0807BD02 _0807BCD0: movs r5, 0x1 _0807BCD2: movs r2, 0 movs r3, 0x1 b _0807BD28 _0807BCD8: movs r5, 0x1 _0807BCDA: movs r2, 0x1 movs r3, 0x1 b _0807BD28 _0807BCE0: movs r5, 0x1 _0807BCE2: movs r2, 0x3 movs r3, 0x1 b _0807BD28 _0807BCE8: movs r5, 0x1 _0807BCEA: movs r2, 0x5 movs r3, 0x1 b _0807BD28 _0807BCF0: movs r5, 0x1 _0807BCF2: movs r2, 0x6 movs r3, 0x1 b _0807BD28 _0807BCF8: movs r5, 0x1 _0807BCFA: movs r2, 0x2 movs r3, 0x1 b _0807BD28 _0807BD00: movs r5, 0x1 _0807BD02: movs r2, 0x4 movs r3, 0x1 b _0807BD28 _0807BD08: movs r5, 0 b _0807BD12 _0807BD0C: movs r5, 0 b _0807BD1A _0807BD10: movs r5, 0x1 _0807BD12: movs r2, 0xFF movs r3, 0 b _0807BD28 _0807BD18: movs r5, 0x1 _0807BD1A: movs r2, 0xFF movs r3, 0x1 b _0807BD28 _0807BD20: adds r0, r4, 0 bl move_anim_task_del b _0807BD4A _0807BD28: ldr r0, _0807BD50 movs r1, 0 strh r5, [r0] strh r2, [r0, 0x2] strh r1, [r0, 0x4] strh r1, [r0, 0x6] strh r3, [r0, 0x8] ldr r1, _0807BD54 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0807BD58 str r1, [r0] adds r0, r4, 0 bl _call_via_r1 _0807BD4A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807BD50: .4byte 0x03004b00 _0807BD54: .4byte 0x03004b20 _0807BD58: .4byte sub_80E32E0 thumb_func_end sub_807BB88 thumb_func_start move_anim_start_t2 move_anim_start_t2: @ 807BD5C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 24 lsrs r1, 24 ldr r0, _0807BD98 strb r4, [r0] ldr r0, _0807BD9C strb r4, [r0] ldr r0, _0807BDA0 movs r2, 0 bl move_something ldr r0, _0807BDA4 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0807BDA8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _0807BD98: .4byte 0x0202f7c8 _0807BD9C: .4byte 0x0202f7c9 _0807BDA0: .4byte gBattleAnims_StatusConditions _0807BDA4: .4byte sub_807BDAC _0807BDA8: .4byte 0x03004b20 thumb_func_end move_anim_start_t2 thumb_func_start sub_807BDAC sub_807BDAC: @ 807BDAC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0807BDF0 ldr r0, [r0] bl _call_via_r0 ldr r0, _0807BDF4 ldrb r0, [r0] cmp r0, 0 bne _0807BDEA ldr r1, _0807BDF8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r0, _0807BDFC adds r1, r0 ldrb r2, [r1] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1] adds r0, r4, 0 bl DestroyTask _0807BDEA: pop {r4} pop {r0} bx r0 .align 2, 0 _0807BDF0: .4byte 0x0202f7ac _0807BDF4: .4byte 0x0202f7b1 _0807BDF8: .4byte 0x03004b20 _0807BDFC: .4byte 0x02017810 thumb_func_end sub_807BDAC thumb_func_start item_menu_type_2 item_menu_type_2: @ 807BE00 push {r4,lr} adds r2, r0, 0 movs r0, 0x30 ldrsh r1, [r2, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _0807BE34 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 beq _0807BE38 ldrb r1, [r2, 0x1] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2, 0x1] movs r0, 0x42 strh r0, [r2, 0x22] adds r2, 0x3E ldrb r1, [r2] subs r0, 0x47 ands r0, r1 strb r0, [r2] b _0807BE80 .align 2, 0 _0807BE34: .4byte 0x03004b20 _0807BE38: ldrh r1, [r4, 0x12] movs r3, 0x12 ldrsh r0, [r4, r3] cmp r0, 0 beq _0807BE46 subs r0, r1, 0x1 strh r0, [r4, 0x12] _0807BE46: movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0x3F bgt _0807BE80 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r3] ldrh r1, [r2, 0x22] movs r3, 0x22 ldrsh r0, [r2, r3] cmp r0, 0x42 beq _0807BE6A adds r0, r1, 0x1 strh r0, [r2, 0x22] _0807BE6A: ldr r3, _0807BE88 ldr r2, _0807BE8C movs r1, 0x12 ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 lsls r0, 1 adds r0, r2 ldrh r0, [r0] strh r0, [r3] _0807BE80: pop {r4} pop {r0} bx r0 .align 2, 0 _0807BE88: .4byte REG_BLDALPHA _0807BE8C: .4byte gUnknown_08393E64 thumb_func_end item_menu_type_2 thumb_func_start sub_807BE90 sub_807BE90: @ 807BE90 push {lr} adds r2, r0, 0 movs r0, 0x30 ldrsh r1, [r2, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _0807BEC4 adds r1, r0, r1 movs r3, 0xA ldrsh r0, [r1, r3] cmp r0, 0 beq _0807BEC8 ldrb r1, [r2, 0x1] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2, 0x1] movs r0, 0x42 strh r0, [r2, 0x22] adds r2, 0x3E ldrb r1, [r2] subs r0, 0x47 ands r0, r1 strb r0, [r2] b _0807BEEC .align 2, 0 _0807BEC4: .4byte 0x03004b20 _0807BEC8: movs r3, 0x12 ldrsh r0, [r1, r3] cmp r0, 0x3F bgt _0807BEEC adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r3] ldrh r1, [r2, 0x22] movs r3, 0x22 ldrsh r0, [r2, r3] cmp r0, 0x42 beq _0807BEEC adds r0, r1, 0x1 strh r0, [r2, 0x22] _0807BEEC: pop {r0} bx r0 thumb_func_end sub_807BE90 thumb_func_start sub_807BEF0 sub_807BEF0: @ 807BEF0 push {lr} adds r2, r0, 0 movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0x1 bne _0807BF18 ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] movs r1, 0x10 ands r0, r1 cmp r0, 0 bne _0807BF18 adds r0, r2, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _0807BF24 _0807BF18: adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _0807BF24: pop {r0} bx r0 thumb_func_end sub_807BEF0 thumb_func_start sub_807BF28 sub_807BF28: @ 807BF28 push {r4-r7,lr} lsls r0, 16 ldr r2, _0807BF78 adds r0, r2 lsrs r0, 16 movs r6, 0 lsls r7, r1, 16 _0807BF36: lsls r5, r0, 16 asrs r5, 16 ldr r0, _0807BF7C adds r1, r5, 0 asrs r2, r7, 16 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _0807BF80 adds r4, r0 adds r0, r4, 0 adds r1, r6, 0 bl StartSpriteAnim movs r0, 0x1 strh r0, [r4, 0x2E] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r5, 0x20 lsls r5, 16 lsrs r0, r5, 16 cmp r6, 0x2 bls _0807BF36 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807BF78: .4byte 0xffe00000 _0807BF7C: .4byte gSpriteTemplate_8393F74 _0807BF80: .4byte 0x02020004 thumb_func_end sub_807BF28 thumb_func_start sub_807BF84 sub_807BF84: @ 807BF84 push {r4-r6,lr} lsls r0, 16 ldr r2, _0807BFD4 adds r0, r2 lsrs r0, 16 movs r5, 0 lsls r6, r1, 16 _0807BF92: lsls r4, r0, 16 asrs r4, 16 ldr r0, _0807BFD8 adds r1, r4, 0 asrs r2, r6, 16 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _0807BFDC adds r2, r0 adds r1, r5, 0x3 lsls r1, 24 lsrs r1, 24 adds r0, r2, 0 bl StartSpriteAnim adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x20 lsls r4, 16 lsrs r0, r4, 16 cmp r5, 0x4 bls _0807BF92 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807BFD4: .4byte 0xffc00000 _0807BFD8: .4byte gSpriteTemplate_8393F74 _0807BFDC: .4byte 0x02020004 thumb_func_end sub_807BF84 thumb_func_start sub_807BFE0 sub_807BFE0: @ 807BFE0 push {r4,lr} adds r3, r0, 0 ldr r2, _0807C02C ldr r0, _0807C030 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0xA ldrsh r0, [r0, r1] cmp r0, 0 bne _0807C070 movs r2, 0x20 ldrsh r1, [r3, r2] ldr r0, _0807C034 ldrh r4, [r3, 0x20] cmp r1, r0 bgt _0807C070 movs r2, 0x2E ldrsh r0, [r3, r2] cmp r0, 0 beq _0807C064 cmp r1, 0x77 bgt _0807C038 ldrh r1, [r3, 0x30] movs r2, 0x30 ldrsh r0, [r3, r2] cmp r0, 0x1E bgt _0807C050 adds r1, 0x1 strh r1, [r3, 0x30] lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x1E bgt _0807C050 adds r0, r1, 0x1 b _0807C04E .align 2, 0 _0807C02C: .4byte 0x03004b20 _0807C030: .4byte 0x0202f7e4 _0807C034: .4byte 0x0000010f _0807C038: ldrh r1, [r3, 0x30] movs r2, 0x30 ldrsh r0, [r3, r2] cmp r0, 0 beq _0807C050 subs r0, r1, 0x1 strh r0, [r3, 0x30] lsls r0, 16 cmp r0, 0 beq _0807C050 subs r0, r1, 0x2 _0807C04E: strh r0, [r3, 0x30] _0807C050: ldrh r1, [r3, 0x30] movs r0, 0x1F ands r0, r1 lsls r1, r0, 10 lsls r2, r0, 5 adds r1, r2 orrs r1, r0 ldr r0, _0807C06C strh r1, [r0] .ifdef SAPPHIRE strh r1, [r0, 0x34] .else strh r1, [r0, 0x2A] .endif _0807C064: adds r0, r4, 0x4 strh r0, [r3, 0x20] b _0807C07E .align 2, 0 _0807C06C: .4byte 0x0202eec8 _0807C070: ldr r1, _0807C084 movs r0, 0 strh r0, [r1] .ifdef SAPPHIRE strh r0, [r1, 0x34] .else strh r0, [r1, 0x2A] .endif adds r0, r3, 0 bl DestroySprite _0807C07E: pop {r4} pop {r0} bx r0 .align 2, 0 _0807C084: .4byte 0x0202eec8 thumb_func_end sub_807BFE0 thumb_func_start sub_807C088 sub_807C088: @ 807C088 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0807C0C0 movs r1, 0 movs r2, 0x44 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _0807C0C4 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r2, [r1, 0x1] movs r0, 0xD negs r0, r0 ands r0, r2 movs r2, 0x8 orrs r0, r2 strb r0, [r1, 0x1] strh r4, [r1, 0x2E] pop {r4} pop {r0} bx r0 .align 2, 0 _0807C0C0: .4byte gSpriteTemplate_8393FC0 _0807C0C4: .4byte 0x02020004 thumb_func_end sub_807C088 thumb_func_start sub_807C0C8 sub_807C0C8: @ 807C0C8 push {lr} bl sub_8089668 bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer ldr r0, _0807C0E8 ldr r1, _0807C0EC ldrh r1, [r1] strh r1, [r0] pop {r0} bx r0 .align 2, 0 _0807C0E8: .4byte REG_BG1VOFS _0807C0EC: .4byte 0x030041b4 thumb_func_end sub_807C0C8 thumb_func_start CB2_InitTitleScreen CB2_InitTitleScreen: @ 807C0F0 push {r4,r5,lr} sub sp, 0x14 ldr r0, _0807C10C ldr r1, _0807C110 adds r0, r1 ldrb r0, [r0] cmp r0, 0x5 bhi _0807C130 lsls r0, 2 ldr r1, _0807C114 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807C10C: .4byte 0x03001770 _0807C110: .4byte 0x0000043c _0807C114: .4byte _0807C118 .align 2, 0 _0807C118: .4byte _0807C130 .4byte _0807C1E4 .4byte _0807C2B8 .4byte _0807C308 .4byte _0807C33C .4byte _0807C418 _0807C130: movs r0, 0 bl SetVBlankCallback ldr r0, _0807C1C0 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] movs r2, 0xA0 lsls r2, 19 ldr r3, _0807C1C4 adds r0, r3, 0 strh r0, [r2] movs r0, 0x80 lsls r0, 19 strh r1, [r0] adds r0, 0xC strh r1, [r0] subs r0, 0x2 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x10 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] add r0, sp, 0xC strh r1, [r0] ldr r1, _0807C1C8 str r0, [r1] movs r0, 0xC0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _0807C1CC str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r2, 0 str r2, [sp, 0x10] add r0, sp, 0x10 str r0, [r1] movs r0, 0xE0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _0807C1D0 str r0, [r1, 0x8] ldr r0, [r1, 0x8] add r0, sp, 0xC strh r2, [r0] str r0, [r1] ldr r0, _0807C1D4 str r0, [r1, 0x4] ldr r0, _0807C1D8 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetPaletteFade ldr r0, _0807C1DC ldr r1, _0807C1E0 adds r0, r1 movs r1, 0x1 strb r1, [r0] b _0807C446 .align 2, 0 _0807C1C0: .4byte REG_BLDCNT _0807C1C4: .4byte 0x00007fff _0807C1C8: .4byte 0x040000d4 _0807C1CC: .4byte 0x8100c000 _0807C1D0: .4byte 0x85000100 _0807C1D4: .4byte 0x05000002 _0807C1D8: .4byte 0x810001ff _0807C1DC: .4byte 0x03001770 _0807C1E0: .4byte 0x0000043c _0807C1E4: ldr r0, _0807C270 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _0807C274 ldr r1, _0807C278 bl LZ77UnCompVram ldr r4, _0807C27C movs r5, 0xE0 lsls r5, 1 adds r0, r4, 0 movs r1, 0 adds r2, r5, 0 bl LoadPalette ldr r0, _0807C280 ldr r1, _0807C284 bl LZ77UnCompVram ldr r0, _0807C288 ldr r1, _0807C28C bl LZ77UnCompVram ldr r0, _0807C290 ldr r1, _0807C294 bl LZ77UnCompVram ldr r0, _0807C298 movs r1, 0xE0 movs r2, 0x40 bl LoadPalette bl remove_some_task bl ResetTasks bl ResetSpriteData bl FreeAllSpritePalettes ldr r1, _0807C29C movs r0, 0xE strb r0, [r1] ldr r0, _0807C2A0 bl LoadCompressedObjectPic ldr r0, _0807C2A4 bl LoadCompressedObjectPic ldr r0, _0807C2A8 bl LoadCompressedObjectPic movs r1, 0x80 lsls r1, 1 adds r0, r4, 0 adds r2, r5, 0 bl LoadPalette ldr r0, _0807C2AC bl LoadSpritePalette ldr r0, _0807C2B0 ldr r2, _0807C2B4 adds r0, r2 movs r1, 0x2 strb r1, [r0] b _0807C446 .align 2, 0 _0807C270: .4byte gUnknown_08E9D8CC _0807C274: .4byte gUnknown_08E9F7E4 _0807C278: .4byte 0x06004800 _0807C27C: .4byte gUnknown_08E9F624 _0807C280: .4byte gUnknown_08393250 _0807C284: .4byte 0x06008000 _0807C288: .4byte gUnknown_083939EC _0807C28C: .4byte 0x0600c000 _0807C290: .4byte gUnknown_08393BF8 _0807C294: .4byte 0x0600c800 _0807C298: .4byte gUnknown_08393210 _0807C29C: .4byte 0x030028f8 _0807C2A0: .4byte gUnknown_08393EFC _0807C2A4: .4byte gUnknown_08393F8C _0807C2A8: .4byte gUnknown_08393FD8 _0807C2AC: .4byte gUnknown_08393F9C _0807C2B0: .4byte 0x03001770 _0807C2B4: .4byte 0x0000043c _0807C2B8: ldr r0, _0807C2F0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0807C2F4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r3, 0 movs r2, 0x80 lsls r2, 1 strh r2, [r1, 0x8] strh r3, [r1, 0xA] ldr r2, _0807C2F8 strh r2, [r1, 0xC] subs r2, 0x10 strh r2, [r1, 0xE] ldr r1, _0807C2FC strb r0, [r1] ldr r0, _0807C300 ldr r3, _0807C304 adds r0, r3 movs r1, 0x3 strb r1, [r0] b _0807C446 .align 2, 0 _0807C2F0: .4byte sub_807C46C _0807C2F4: .4byte 0x03004b20 _0807C2F8: .4byte 0x0000fff0 _0807C2FC: .4byte 0x0202f7e4 _0807C300: .4byte 0x03001770 _0807C304: .4byte 0x0000043c _0807C308: movs r0, 0x1 negs r0, r0 ldr r1, _0807C32C str r1, [sp] movs r1, 0x1 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _0807C330 bl SetVBlankCallback ldr r0, _0807C334 ldr r1, _0807C338 adds r0, r1 movs r1, 0x4 strb r1, [r0] b _0807C446 .align 2, 0 _0807C32C: .4byte 0x0000ffff _0807C330: .4byte sub_807C0C8 _0807C334: .4byte 0x03001770 _0807C338: .4byte 0x0000043c _0807C33C: movs r2, 0x80 lsls r2, 1 movs r0, 0x78 movs r1, 0x50 movs r3, 0 bl sub_813CE30 ldr r1, _0807C3D4 ldr r0, _0807C3D8 str r0, [r1] adds r1, 0x4 ldr r0, _0807C3DC str r0, [r1] ldr r0, _0807C3E0 movs r4, 0 strh r4, [r0] adds r0, 0x4 strh r4, [r0] subs r0, 0x2 strh r4, [r0] adds r0, 0x4 strh r4, [r0] adds r1, 0x1C ldr r2, _0807C3E4 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _0807C3E8 adds r0, r3, 0 strh r0, [r1] adds r1, 0x6 movs r0, 0x84 strh r0, [r1] ldr r0, _0807C3EC strh r4, [r0] adds r0, 0x2 movs r5, 0x8 strh r5, [r0] subs r1, 0x48 ldr r2, _0807C3F0 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _0807C3F4 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0807C3F8 adds r0, r2, 0 strh r0, [r1] ldr r3, _0807C3FC ldrh r2, [r3] strh r4, [r3] ldr r4, _0807C400 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r1, _0807C404 ldrh r0, [r1] orrs r0, r5 strh r0, [r1] subs r1, 0x4 ldr r3, _0807C408 adds r0, r3, 0 strh r0, [r1] ldr r0, _0807C40C bl m4aSongNumStart ldr r0, _0807C410 ldr r1, _0807C414 adds r0, r1 movs r1, 0x5 strb r1, [r0] b _0807C446 .align 2, 0 _0807C3D4: .4byte REG_BG2X_L _0807C3D8: .4byte 0xffffe300 _0807C3DC: .4byte 0xffffdf00 _0807C3E0: .4byte REG_WIN0H _0807C3E4: .4byte 0x00001f1f _0807C3E8: .4byte 0x00003f1f _0807C3EC: .4byte REG_BLDALPHA _0807C3F0: .4byte 0x0000180b _0807C3F4: .4byte 0x0000190a _0807C3F8: .4byte 0x00004981 _0807C3FC: .4byte 0x04000208 _0807C400: .4byte 0x04000200 _0807C404: .4byte REG_DISPSTAT _0807C408: .4byte 0x0000b441 _0807C40C: .4byte 0x0000019d _0807C410: .4byte 0x03001770 _0807C414: .4byte 0x0000043c _0807C418: bl UpdatePaletteFade lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0807C446 movs r0, 0 bl sub_807C088 str r4, [sp] movs r0, 0x4 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0 movs r1, 0xA0 movs r2, 0x4 movs r3, 0x4 bl sub_8089944 ldr r0, _0807C450 bl SetMainCallback2 _0807C446: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807C450: .4byte sub_807C454 thumb_func_end CB2_InitTitleScreen thumb_func_start sub_807C454 sub_807C454: @ 807C454 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_807C454 thumb_func_start sub_807C46C sub_807C46C: @ 807C46C push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0807C4D4 ldrh r1, [r0, 0x2E] movs r0, 0xF ands r0, r1 ldr r5, _0807C4D8 cmp r0, 0 bne _0807C492 lsls r0, r6, 2 adds r1, r0, r6 lsls r1, 3 adds r1, r5 movs r2, 0xA ldrsh r1, [r1, r2] adds r4, r0, 0 cmp r1, 0 beq _0807C4A4 _0807C492: lsls r3, r6, 2 adds r0, r3, r6 lsls r0, 3 adds r0, r5 movs r2, 0 movs r1, 0x1 strh r1, [r0, 0xA] strh r2, [r0, 0x8] adds r4, r3, 0 _0807C4A4: adds r0, r4, r6 lsls r0, 3 adds r7, r0, r5 movs r3, 0x8 ldrsh r2, [r7, r3] cmp r2, 0 beq _0807C4DC ldrh r0, [r7, 0x8] cmp r0, 0xA0 beq _0807C4BC cmp r0, 0x40 bne _0807C4C2 _0807C4BC: movs r0, 0x1 bl sub_807C088 _0807C4C2: ldr r0, _0807C4D8 adds r1, r4, r6 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] subs r0, 0x1 strh r0, [r1, 0x8] b _0807C558 .align 2, 0 _0807C4D4: .4byte 0x03001770 _0807C4D8: .4byte 0x03004b20 _0807C4DC: movs r1, 0x80 lsls r1, 19 ldr r3, _0807C560 adds r0, r3, 0 strh r0, [r1] ldr r0, _0807C564 strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r1, 0x50 ldr r3, _0807C568 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x1F strh r0, [r1] ldr r0, _0807C56C strh r2, [r0] ldr r0, _0807C570 movs r1, 0x62 movs r2, 0x1A movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r5, _0807C574 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r2, r1, 0 adds r2, 0x3E ldrb r0, [r2] movs r4, 0x4 orrs r0, r4 strb r0, [r2] strh r6, [r1, 0x30] ldr r0, _0807C578 movs r1, 0xA2 movs r2, 0x1A movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r2, r1, 0 adds r2, 0x3E ldrb r0, [r2] orrs r0, r4 strb r0, [r2] strh r6, [r1, 0x30] movs r0, 0x58 strh r0, [r7, 0x12] movs r0, 0x90 strh r0, [r7, 0x8] ldr r0, _0807C57C str r0, [r7] _0807C558: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807C560: .4byte 0x00001441 _0807C564: .4byte REG_WININ _0807C568: .4byte 0x00003f50 _0807C56C: .4byte REG_BLDY _0807C570: .4byte gSpriteTemplate_8393ECC _0807C574: .4byte 0x02020004 _0807C578: .4byte gSpriteTemplate_8393EE4 _0807C57C: .4byte sub_807C580 thumb_func_end sub_807C46C thumb_func_start sub_807C580 sub_807C580: @ 807C580 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0807C5D0 ldrh r1, [r0, 0x2E] movs r0, 0xF ands r0, r1 ldr r2, _0807C5D4 cmp r0, 0 bne _0807C5A6 lsls r0, r5, 2 adds r1, r0, r5 lsls r1, 3 adds r1, r2 movs r3, 0xA ldrsh r1, [r1, r3] adds r7, r0, 0 cmp r1, 0 beq _0807C5B8 _0807C5A6: lsls r3, r5, 2 adds r0, r3, r5 lsls r0, 3 adds r0, r2 movs r2, 0 movs r1, 0x1 strh r1, [r0, 0xA] strh r2, [r0, 0x8] adds r7, r3, 0 _0807C5B8: ldr r1, _0807C5D4 adds r0, r7, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x8] movs r1, 0x8 ldrsh r6, [r4, r1] cmp r6, 0 beq _0807C5D8 subs r0, 0x1 strh r0, [r4, 0x8] b _0807C5FC .align 2, 0 _0807C5D0: .4byte 0x03001770 _0807C5D4: .4byte 0x03004b20 _0807C5D8: movs r0, 0x1 strh r0, [r4, 0xA] movs r1, 0x80 lsls r1, 19 ldr r2, _0807C634 adds r0, r2, 0 strh r0, [r1] movs r0, 0x78 movs r1, 0x6C bl sub_807BF28 movs r0, 0x78 movs r1, 0x94 bl sub_807BF84 strh r6, [r4, 0x10] ldr r0, _0807C638 str r0, [r4] _0807C5FC: ldr r2, _0807C63C adds r0, r7, r5 lsls r0, 3 adds r3, r0, r2 ldrh r1, [r3, 0x8] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0807C61C ldrh r1, [r3, 0xE] movs r4, 0xE ldrsh r0, [r3, r4] cmp r0, 0 beq _0807C61C adds r0, r1, 0x1 strh r0, [r3, 0xE] _0807C61C: ldr r0, _0807C640 adds r1, r7, r5 lsls r1, 3 adds r1, r2 movs r2, 0xE ldrsh r1, [r1, r2] lsls r1, 8 str r1, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807C634: .4byte 0x00001741 _0807C638: .4byte sub_807C644 _0807C63C: .4byte 0x03004b20 _0807C640: .4byte REG_BG2Y_L thumb_func_end sub_807C580 thumb_func_start sub_807C644 sub_807C644: @ 807C644 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r1, _0807C69C ldr r2, _0807C6A0 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0807C6A4 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0 strh r0, [r1] ldr r4, _0807C6A8 ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0807C67A movs r0, 0x8 ands r0, r1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 beq _0807C6B4 _0807C67A: movs r0, 0x4 bl play_sound_effect movs r0, 0x1 negs r0, r0 ldr r1, _0807C6AC str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0807C6B0 bl SetMainCallback2 b _0807C74E .align 2, 0 _0807C69C: .4byte REG_BLDCNT _0807C6A0: .4byte 0x00002142 _0807C6A4: .4byte 0x00001f0f _0807C6A8: .4byte 0x03001770 _0807C6AC: .4byte 0x0000ffff _0807C6B0: .4byte sub_807C774 _0807C6B4: ldrh r1, [r4, 0x2C] movs r0, 0x46 ands r0, r1 cmp r0, 0x46 bne _0807C6C4 ldr r0, _0807C6F4 bl SetMainCallback2 _0807C6C4: ldrh r1, [r4, 0x2C] movs r0, 0x26 ands r0, r1 cmp r0, 0x26 bne _0807C6FC bl sub_80691DC cmp r0, 0x1 bne _0807C6FC movs r0, 0x4 bl play_sound_effect movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0807C6F8 bl SetMainCallback2 b _0807C74E .align 2, 0 _0807C6F4: .4byte sub_807C7AC _0807C6F8: .4byte sub_807C7C8 _0807C6FC: ldr r0, _0807C758 movs r3, 0 str r3, [r0] ldr r1, _0807C75C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r2, r0, r1 ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0807C728 ldrh r0, [r2, 0x10] adds r0, 0x1 strh r0, [r2, 0x10] ldr r1, _0807C760 strh r0, [r1] ldr r0, _0807C764 strh r3, [r0] _0807C728: ldrb r0, [r2, 0x8] bl sub_807C7E4 ldr r0, _0807C768 ldr r1, _0807C76C ldrh r0, [r0, 0x4] cmp r0, 0 bne _0807C74E movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0807C770 bl SetMainCallback2 _0807C74E: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807C758: .4byte REG_BG2Y_L _0807C75C: .4byte 0x03004b20 _0807C760: .4byte 0x030041b4 _0807C764: .4byte 0x030042c0 _0807C768: .4byte 0x03007380 _0807C76C: .4byte 0x0000ffff _0807C770: .4byte sub_807C790 thumb_func_end sub_807C644 thumb_func_start sub_807C774 sub_807C774: @ 807C774 push {lr} bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _0807C786 ldr r0, _0807C78C bl SetMainCallback2 _0807C786: pop {r0} bx r0 .align 2, 0 _0807C78C: .4byte CB2_InitMainMenu thumb_func_end sub_807C774 thumb_func_start sub_807C790 sub_807C790: @ 807C790 push {lr} bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _0807C7A2 ldr r0, _0807C7A8 bl SetMainCallback2 _0807C7A2: pop {r0} bx r0 .align 2, 0 _0807C7A8: .4byte sub_813BA88 thumb_func_end sub_807C790 thumb_func_start sub_807C7AC sub_807C7AC: @ 807C7AC push {lr} bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _0807C7BE ldr r0, _0807C7C4 bl SetMainCallback2 _0807C7BE: pop {r0} bx r0 .align 2, 0 _0807C7C4: .4byte c2_clear_save_data_screen_2 thumb_func_end sub_807C7AC thumb_func_start sub_807C7C8 sub_807C7C8: @ 807C7C8 push {lr} bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _0807C7DA ldr r0, _0807C7E0 bl SetMainCallback2 _0807C7DA: pop {r0} bx r0 .align 2, 0 _0807C7E0: .4byte sub_806AAD8 thumb_func_end sub_807C7C8 thumb_func_start sub_807C7E4 sub_807C7E4: @ 807C7E4 push {lr} sub sp, 0x4 lsls r1, r0, 24 movs r0, 0xC0 lsls r0, 18 ands r0, r1 cmp r0, 0 bne _0807C820 lsrs r0, r1, 26 movs r1, 0x1F adds r2, r0, 0 ands r2, r1 movs r1, 0x20 ands r0, r1 cmp r0, 0 bne _0807C80C .ifdef SAPPHIRE mov r0, sp strh r2, [r0] .else lsls r1, r2, 10 mov r0, sp strh r1, [r0] .endif b _0807C816 _0807C80C: movs r0, 0x1F subs r0, r2 .ifndef SAPPHIRE lsls r0, 10 .endif mov r1, sp strh r0, [r1] _0807C816: mov r0, sp movs r1, 0xEF movs r2, 0x2 bl LoadPalette _0807C820: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_807C7E4 thumb_func_start sub_807C828 sub_807C828: @ 807C828 push {r4-r6,lr} ldr r0, _0807C8EC bl FuncIsActiveTask lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _0807C8E4 movs r0, 0x90 lsls r0, 5 bl AllocSpritePalette adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, _0807C8F0 lsls r1, r5, 5 ldr r2, _0807C8F4 adds r1, r2 ldr r2, _0807C8F8 bl CpuSet bl sub_807CB10 ldr r4, _0807C8FC ldr r1, _0807C900 adds r0, r4, r1 strb r5, [r0] ldr r0, _0807C904 bl AllocSpritePalette ldr r2, _0807C908 adds r1, r4, r2 strb r0, [r1] ldr r1, _0807C90C adds r0, r4, r1 strb r6, [r0] adds r2, 0x4 adds r0, r4, r2 strb r6, [r0] adds r1, 0x4 adds r0, r4, r1 strb r6, [r0] adds r2, 0xC adds r0, r4, r2 strb r6, [r0] adds r1, 0x22 adds r0, r4, r1 strb r6, [r0] adds r2, 0x17 adds r0, r4, r2 strb r6, [r0] adds r1, 0x24 adds r0, r4, r1 strb r6, [r0] adds r2, 0x1B adds r0, r4, r2 strb r6, [r0] subs r1, 0xD adds r0, r4, r1 strb r6, [r0] adds r2, 0x18 adds r0, r4, r2 strb r6, [r0] subs r1, 0x1D adds r0, r4, r1 strb r6, [r0] movs r0, 0x10 movs r1, 0 bl sub_807DB64 movs r2, 0xDA lsls r2, 3 adds r0, r4, r2 strb r6, [r0] ldr r0, _0807C910 adds r1, r4, r0 movs r0, 0x3 strb r0, [r1] movs r1, 0xD9 lsls r1, 3 adds r0, r4, r1 strb r6, [r0] adds r2, 0x3 adds r1, r4, r2 movs r0, 0x1 strb r0, [r1] ldr r0, _0807C914 movs r1, 0x50 bl CreateTask ldr r1, _0807C918 adds r4, r1 strb r0, [r4] _0807C8E4: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807C8EC: .4byte sub_807CA34 _0807C8F0: .4byte gUnknown_083970E8 _0807C8F4: .4byte 0x0202ecc8 _0807C8F8: .4byte REG_BG0CNT _0807C8FC: .4byte 0x0202f7e8 _0807C900: .4byte 0x000006d5 _0807C904: .4byte 0x00001201 _0807C908: .4byte 0x000006d4 _0807C90C: .4byte 0x000006da _0807C910: .4byte 0x000006c6 _0807C914: .4byte sub_807C9E4 _0807C918: .4byte 0x000006c9 thumb_func_end sub_807C828 thumb_func_start sub_807C91C sub_807C91C: @ 807C91C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 beq _0807C932 cmp r4, 0x5 beq _0807C932 cmp r4, 0xD beq _0807C932 bl play_some_sound _0807C932: ldr r1, _0807C974 ldr r2, _0807C978 adds r0, r1, r2 ldrb r0, [r0] cmp r0, r4 beq _0807C956 movs r3, 0xDA lsls r3, 3 adds r0, r1, r3 ldrb r0, [r0] cmp r0, r4 bne _0807C956 ldr r0, _0807C97C lsls r1, r4, 4 adds r1, r0 ldr r0, [r1] bl _call_via_r0 _0807C956: ldr r1, _0807C974 ldr r2, _0807C980 adds r0, r1, r2 movs r2, 0 strb r2, [r0] ldr r3, _0807C978 adds r0, r1, r3 strb r4, [r0] ldr r0, _0807C984 adds r1, r0 strh r2, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0807C974: .4byte 0x0202f7e8 _0807C978: .4byte 0x000006d1 _0807C97C: .4byte gUnknown_08396FC8 _0807C980: .4byte 0x000006d3 _0807C984: .4byte 0x000006ce thumb_func_end sub_807C91C thumb_func_start sub_807C988 sub_807C988: @ 807C988 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl play_some_sound ldr r0, _0807C9AC movs r2, 0xDA lsls r2, 3 adds r1, r0, r2 strb r4, [r1] ldr r1, _0807C9B0 adds r0, r1 strb r4, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0807C9AC: .4byte 0x0202f7e8 _0807C9B0: .4byte 0x000006d1 thumb_func_end sub_807C988 thumb_func_start sub_807C9B4 sub_807C9B4: @ 807C9B4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl play_some_sound ldr r1, _0807C9E0 movs r2, 0xDA lsls r2, 3 adds r0, r1, r2 strb r4, [r0] adds r2, 0x1 adds r0, r1, r2 strb r4, [r0] movs r0, 0xD9 lsls r0, 3 adds r1, r0 movs r0, 0x1 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0807C9E0: .4byte 0x0202f7e8 thumb_func_end sub_807C9B4 thumb_func_start sub_807C9E4 sub_807C9E4: @ 807C9E4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r2, _0807CA24 movs r1, 0xD9 lsls r1, 3 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _0807CA1C ldr r1, _0807CA28 movs r3, 0xDA lsls r3, 3 adds r0, r2, r3 ldrb r0, [r0] lsls r0, 4 adds r1, 0x8 adds r0, r1 ldr r0, [r0] bl _call_via_r0 ldr r1, _0807CA2C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0807CA30 str r1, [r0] _0807CA1C: pop {r4} pop {r0} bx r0 .align 2, 0 _0807CA24: .4byte 0x0202f7e8 _0807CA28: .4byte gUnknown_08396FC8 _0807CA2C: .4byte 0x03004b20 _0807CA30: .4byte sub_807CA34 thumb_func_end sub_807C9E4 thumb_func_start sub_807CA34 sub_807CA34: @ 807CA34 push {r4-r7,lr} mov r7, r8 push {r7} ldr r5, _0807CA90 movs r0, 0xDA lsls r0, 3 adds r6, r5, r0 ldr r1, _0807CA94 adds r7, r5, r1 ldrb r0, [r6] ldrb r2, [r7] cmp r0, r2 beq _0807CAA8 ldr r0, _0807CA98 mov r8, r0 ldrb r0, [r6] lsls r0, 4 mov r1, r8 adds r1, 0xC adds r0, r1 ldr r0, [r0] bl _call_via_r0 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0807CAB8 ldrb r0, [r7] lsls r0, 4 add r0, r8 ldr r0, [r0] bl _call_via_r0 ldr r1, _0807CA9C adds r0, r5, r1 strb r4, [r0] ldr r2, _0807CAA0 adds r0, r5, r2 strb r4, [r0] ldrb r0, [r7] strb r0, [r6] ldr r0, _0807CAA4 adds r1, r5, r0 movs r0, 0x1 strb r0, [r1] b _0807CAB8 .align 2, 0 _0807CA90: .4byte 0x0202f7e8 _0807CA94: .4byte 0x000006d1 _0807CA98: .4byte gUnknown_08396FC8 _0807CA9C: .4byte 0x000006c3 _0807CAA0: .4byte 0x000006c6 _0807CAA4: .4byte 0x000006d3 _0807CAA8: ldr r0, _0807CAD8 ldrb r1, [r6] lsls r1, 4 adds r0, 0x4 adds r1, r0 ldr r0, [r1] bl _call_via_r0 _0807CAB8: ldr r1, _0807CADC ldr r0, _0807CAE0 ldr r2, _0807CAE4 adds r0, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807CAD8: .4byte gUnknown_08396FC8 _0807CADC: .4byte gUnknown_083970B8 _0807CAE0: .4byte 0x0202f7e8 _0807CAE4: .4byte 0x000006c6 thumb_func_end sub_807CA34 thumb_func_start sub_807CAE8 sub_807CAE8: @ 807CAE8 ldr r0, _0807CAFC ldr r2, _0807CB00 adds r1, r0, r2 movs r2, 0 strb r2, [r1] ldr r1, _0807CB04 adds r0, r1 strb r2, [r0] bx lr .align 2, 0 _0807CAFC: .4byte 0x0202f7e8 _0807CB00: .4byte 0x000006c1 _0807CB04: .4byte 0x000006c2 thumb_func_end sub_807CAE8 thumb_func_start nullsub_38 nullsub_38: @ 807CB08 bx lr thumb_func_end nullsub_38 thumb_func_start sub_807CB0C sub_807CB0C: @ 807CB0C movs r0, 0 bx lr thumb_func_end sub_807CB0C thumb_func_start sub_807CB10 sub_807CB10: @ 807CB10 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r1, _0807CB50 ldr r0, _0807CB54 str r0, [r1] movs r0, 0 mov r12, r0 ldr r1, _0807CB58 mov r10, r1 _0807CB28: mov r7, r10 mov r0, r12 cmp r0, 0 bne _0807CB34 ldr r1, _0807CB5C adds r7, r1 _0807CB34: movs r5, 0 movs r0, 0x1 add r0, r12 mov r9, r0 _0807CB3C: lsls r1, r5, 8 lsls r0, r5, 24 lsrs r2, r0, 16 mov r0, r12 cmp r0, 0 bne _0807CB60 adds r0, r1, 0 lsls r0, 12 lsrs r4, r0, 16 b _0807CB62 .align 2, 0 _0807CB50: .4byte 0x030006dc _0807CB54: .4byte gUnknown_083970C8 _0807CB58: .4byte 0x0202fc48 _0807CB5C: .4byte 0xfffffda0 _0807CB60: movs r4, 0 _0807CB62: movs r3, 0 adds r1, r5, 0x1 mov r8, r1 _0807CB68: subs r1, r2, r4 lsls r1, 16 lsrs r2, r1, 16 lsls r0, r3, 5 adds r0, r7 adds r0, r5 lsrs r1, 24 strb r1, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x2 bls _0807CB68 adds r6, r2, 0 movs r0, 0xF8 lsls r0, 5 subs r0, r2 cmp r0, 0 bge _0807CB90 adds r0, 0xF _0807CB90: lsls r0, 12 lsrs r4, r0, 16 cmp r5, 0xB bhi _0807CBDA cmp r3, 0x12 bhi _0807CC00 _0807CB9C: adds r0, r2, r4 lsls r0, 16 lsrs r2, r0, 16 subs r0, r2, r6 lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 ble _0807CBB8 lsrs r0, 31 adds r0, r1, r0 asrs r0, 1 subs r0, r2, r0 lsls r0, 16 lsrs r2, r0, 16 _0807CBB8: lsls r0, r3, 5 adds r0, r7 adds r1, r0, r5 lsrs r0, r2, 8 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x1F bls _0807CBCE movs r0, 0x1F strb r0, [r1] _0807CBCE: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x12 bls _0807CB9C b _0807CC00 _0807CBDA: cmp r3, 0x12 bhi _0807CC00 movs r6, 0x1F _0807CBE0: adds r1, r2, r4 lsls r1, 16 lsrs r2, r1, 16 lsls r0, r3, 5 adds r0, r7 adds r0, r5 lsrs r1, 24 strb r1, [r0] cmp r1, 0x1F bls _0807CBF6 strb r6, [r0] _0807CBF6: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x12 bls _0807CBE0 _0807CC00: mov r1, r8 lsls r0, r1, 16 lsrs r5, r0, 16 cmp r5, 0x1F bls _0807CB3C mov r1, r9 lsls r0, r1, 16 lsrs r0, 16 mov r12, r0 cmp r0, 0x1 bls _0807CB28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_807CB10 thumb_func_start sub_807CC24 sub_807CC24: @ 807CC24 push {r4-r7,lr} ldr r0, _0807CC50 movs r1, 0xD8 lsls r1, 3 adds r4, r0, r1 ldr r2, _0807CC54 adds r1, r0, r2 ldrb r7, [r4] mov r12, r7 movs r6, 0 ldrsb r6, [r4, r6] movs r5, 0 ldrsb r5, [r1, r5] adds r3, r0, 0 cmp r6, r5 bne _0807CC5C ldr r0, _0807CC58 adds r1, r3, r0 movs r0, 0x3 strb r0, [r1] b _0807CCA4 .align 2, 0 _0807CC50: .4byte 0x0202f7e8 _0807CC54: .4byte 0x000006c1 _0807CC58: .4byte 0x000006c6 _0807CC5C: ldr r1, _0807CC84 adds r2, r3, r1 ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] ldr r7, _0807CC88 adds r1, r3, r7 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _0807CCA4 movs r0, 0 strb r0, [r2] mov r0, r12 cmp r6, r5 bge _0807CC8C adds r0, 0x1 b _0807CC90 .align 2, 0 _0807CC84: .4byte 0x000006c3 _0807CC88: .4byte 0x000006c2 _0807CC8C: mov r0, r12 subs r0, 0x1 _0807CC90: strb r0, [r4] movs r1, 0xD8 lsls r1, 3 adds r0, r3, r1 movs r2, 0 ldrsb r2, [r0, r2] movs r0, 0 movs r1, 0x20 bl sub_807CEBC _0807CCA4: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_807CC24 thumb_func_start sub_807CCAC sub_807CCAC: @ 807CCAC push {lr} ldr r2, _0807CCE4 ldr r0, _0807CCE8 adds r1, r2, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _0807CCCA ldr r3, _0807CCEC adds r1, r2, r3 movs r0, 0 strb r0, [r1] _0807CCCA: movs r1, 0xDA lsls r1, 3 adds r0, r2, r1 ldrb r0, [r0] subs r0, 0x3 cmp r0, 0xA bhi _0807CD94 lsls r0, 2 ldr r1, _0807CCF0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807CCE4: .4byte 0x0202f7e8 _0807CCE8: .4byte 0x000006cb _0807CCEC: .4byte 0x000006ca _0807CCF0: .4byte _0807CCF4 .align 2, 0 _0807CCF4: .4byte _0807CD20 .4byte _0807CD20 .4byte _0807CD20 .4byte _0807CD6C .4byte _0807CD94 .4byte _0807CD94 .4byte _0807CD94 .4byte _0807CD94 .4byte _0807CD20 .4byte _0807CD48 .4byte _0807CD20 _0807CD20: bl sub_807CDC4 lsls r0, 24 cmp r0, 0 bne _0807CDB4 ldr r0, _0807CD40 movs r2, 0xD8 lsls r2, 3 adds r1, r0, r2 movs r2, 0x3 strb r2, [r1] ldr r3, _0807CD44 adds r0, r3 strb r2, [r0] b _0807CDB4 .align 2, 0 _0807CD40: .4byte 0x0202f7e8 _0807CD44: .4byte 0x000006c6 _0807CD48: bl sub_807CE24 lsls r0, 24 cmp r0, 0 bne _0807CDB4 ldr r1, _0807CD64 movs r0, 0xD8 lsls r0, 3 adds r2, r1, r0 movs r0, 0xFA strb r0, [r2] ldr r2, _0807CD68 adds r1, r2 b _0807CDB0 .align 2, 0 _0807CD64: .4byte 0x0202f7e8 _0807CD68: .4byte 0x000006c6 _0807CD6C: bl sub_807CE7C lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _0807CDB4 ldr r0, _0807CD8C movs r3, 0xD8 lsls r3, 3 adds r1, r0, r3 strb r2, [r1] ldr r1, _0807CD90 adds r0, r1 movs r1, 0x3 strb r1, [r0] b _0807CDB4 .align 2, 0 _0807CD8C: .4byte 0x0202f7e8 _0807CD90: .4byte 0x000006c6 _0807CD94: ldr r0, _0807CDB8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0807CDB4 ldr r3, _0807CDBC adds r0, r2, r3 ldrb r1, [r0] subs r3, 0x1 adds r0, r2, r3 strb r1, [r0] ldr r0, _0807CDC0 adds r1, r2, r0 _0807CDB0: movs r0, 0x3 strb r0, [r1] _0807CDB4: pop {r0} bx r0 .align 2, 0 _0807CDB8: .4byte 0x0202f388 _0807CDBC: .4byte 0x000006c1 _0807CDC0: .4byte 0x000006c6 thumb_func_end sub_807CCAC thumb_func_start sub_807CDC4 sub_807CDC4: @ 807CDC4 push {r4,lr} sub sp, 0x4 ldr r2, _0807CE00 ldr r0, _0807CE04 adds r4, r2, r0 ldrb r0, [r4] cmp r0, 0x10 beq _0807CE1A adds r1, r0, 0x1 strb r1, [r4] lsls r0, r1, 24 lsrs r0, 24 cmp r0, 0xF bhi _0807CE0C movs r3, 0x10 subs r3, r1 lsls r3, 24 lsrs r3, 24 ldr r1, _0807CE08 adds r0, r2, r1 ldrh r0, [r0] str r0, [sp] movs r0, 0 movs r1, 0x20 movs r2, 0x3 bl sub_807D1BC movs r0, 0x1 b _0807CE1C .align 2, 0 _0807CE00: .4byte 0x0202f7e8 _0807CE04: .4byte 0x000006c7 _0807CE08: .4byte 0x000006c4 _0807CE0C: movs r0, 0 movs r1, 0x20 movs r2, 0x3 bl sub_807CEBC movs r0, 0x10 strb r0, [r4] _0807CE1A: movs r0, 0 _0807CE1C: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_807CDC4 thumb_func_start sub_807CE24 sub_807CE24: @ 807CE24 push {r4,lr} ldr r2, _0807CE58 ldr r0, _0807CE5C adds r4, r2, r0 ldrb r0, [r4] cmp r0, 0x10 beq _0807CE74 adds r3, r0, 0x1 strb r3, [r4] lsls r0, r3, 24 lsrs r0, 24 cmp r0, 0xF bhi _0807CE64 movs r0, 0x6 negs r0, r0 movs r1, 0x10 subs r1, r3 lsls r1, 24 lsrs r1, 24 ldr r3, _0807CE60 adds r2, r3 ldrh r2, [r2] bl sub_807D304 movs r0, 0x1 b _0807CE76 .align 2, 0 _0807CE58: .4byte 0x0202f7e8 _0807CE5C: .4byte 0x000006c7 _0807CE60: .4byte 0x000006c4 _0807CE64: movs r2, 0x6 negs r2, r2 movs r0, 0 movs r1, 0x20 bl sub_807CEBC movs r0, 0x10 strb r0, [r4] _0807CE74: movs r0, 0 _0807CE76: pop {r4} pop {r1} bx r1 thumb_func_end sub_807CE24 thumb_func_start sub_807CE7C sub_807CE7C: @ 807CE7C push {lr} ldr r2, _0807CEA4 ldr r1, _0807CEA8 adds r0, r2, r1 ldrb r1, [r0] cmp r1, 0x10 beq _0807CEB0 adds r1, 0x1 strb r1, [r0] movs r0, 0x10 subs r0, r1 lsls r0, 24 lsrs r0, 24 ldr r3, _0807CEAC adds r1, r2, r3 ldrh r1, [r1] bl sub_807D424 movs r0, 0x1 b _0807CEB2 .align 2, 0 _0807CEA4: .4byte 0x0202f7e8 _0807CEA8: .4byte 0x000006c7 _0807CEAC: .4byte 0x000006c4 _0807CEB0: movs r0, 0 _0807CEB2: pop {r1} bx r1 thumb_func_end sub_807CE7C thumb_func_start nullsub_39 nullsub_39: @ 807CEB8 bx lr thumb_func_end nullsub_39 thumb_func_start sub_807CEBC sub_807CEBC: @ 807CEBC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsrs r3, r0, 24 adds r4, r3, 0 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r2, 24 asrs r0, r2, 24 cmp r0, 0 bgt _0807CEDE b _0807D048 _0807CEDE: subs r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp] lsls r5, r3, 4 adds r0, r1, r3 lsls r0, 24 lsrs r0, 24 mov r9, r0 cmp r4, r9 bcc _0807CEF6 b _0807D1A2 _0807CEF6: ldr r1, [sp] lsls r0, r1, 24 asrs r0, 19 str r0, [sp, 0x4] _0807CEFE: ldr r0, _0807CF30 ldr r0, [r0] adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _0807CF3C lsls r1, r5, 1 ldr r0, _0807CF34 adds r0, r1, r0 ldr r2, _0807CF38 adds r1, r2 movs r2, 0x8 bl CpuFastSet adds r0, r5, 0 adds r0, 0x10 lsls r0, 16 lsrs r5, r0, 16 mov r2, r9 lsls r2, 16 mov r8, r2 adds r4, 0x1 mov r12, r4 b _0807D032 .align 2, 0 _0807CF30: .4byte 0x030006dc _0807CF34: .4byte 0x0202eac8 _0807CF38: .4byte 0x0202eec8 _0807CF3C: cmp r0, 0x2 beq _0807CF50 adds r1, r4, 0 subs r1, 0x10 ldr r2, _0807CF54 ldr r3, _0807CF58 adds r0, r2, r3 ldrb r0, [r0] cmp r1, r0 bne _0807CF60 _0807CF50: ldr r0, _0807CF5C b _0807CF66 .align 2, 0 _0807CF54: .4byte 0x0202f7e8 _0807CF58: .4byte 0x000006d5 _0807CF5C: .4byte 0x0202fc48 _0807CF60: movs r3, 0x80 lsls r3, 2 adds r0, r2, r3 _0807CF66: ldr r1, [sp, 0x4] adds r6, r1, r0 cmp r4, 0x10 beq _0807CF72 cmp r4, 0x1B bls _0807CFE2 _0807CF72: movs r7, 0 mov r2, r9 lsls r2, 16 mov r8, r2 adds r4, 0x1 mov r12, r4 ldr r3, _0807CF9C mov r10, r3 _0807CF82: adds r2, r5, 0 lsls r0, r5, 1 ldr r4, _0807CFA0 adds r1, r0, r4 ldrh r0, [r1] ldr r3, _0807CFA4 cmp r0, r3 bne _0807CFA8 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 b _0807CFD6 .align 2, 0 _0807CF9C: .4byte 0x0202eec8 _0807CFA0: .4byte 0x0202eac8 _0807CFA4: .4byte 0x00002d9f _0807CFA8: ldr r1, [r1] lsls r0, r1, 27 lsrs r0, 27 adds r0, r6, r0 ldrb r4, [r0] lsls r0, r1, 22 lsrs r0, 27 adds r0, r6, r0 ldrb r3, [r0] lsls r1, 17 lsrs r1, 27 adds r1, r6, r1 ldrb r1, [r1] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 lsls r2, 1 add r2, r10 lsls r0, r1, 10 lsls r1, r3, 5 orrs r0, r1 orrs r0, r4 strh r0, [r2] _0807CFD6: adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0xF bls _0807CF82 b _0807D032 _0807CFE2: movs r7, 0 mov r0, r9 lsls r0, 16 mov r8, r0 adds r4, 0x1 mov r12, r4 ldr r1, _0807D040 mov r10, r1 _0807CFF2: adds r2, r5, 0 lsls r0, r2, 1 ldr r3, _0807D044 adds r0, r3 ldr r1, [r0] lsls r0, r1, 27 lsrs r0, 27 adds r0, r6, r0 ldrb r4, [r0] lsls r0, r1, 22 lsrs r0, 27 adds r0, r6, r0 ldrb r3, [r0] lsls r1, 17 lsrs r1, 27 adds r1, r6, r1 ldrb r1, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r5, r0, 16 lsls r2, 1 add r2, r10 lsls r0, r1, 10 lsls r1, r3, 5 orrs r0, r1 orrs r0, r4 strh r0, [r2] adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0xF bls _0807CFF2 _0807D032: mov r4, r12 lsls r0, r4, 16 lsrs r4, r0, 16 cmp r0, r8 bcs _0807D03E b _0807CEFE _0807D03E: b _0807D1A2 .align 2, 0 _0807D040: .4byte 0x0202eec8 _0807D044: .4byte 0x0202eac8 _0807D048: cmp r0, 0 blt _0807D04E b _0807D190 _0807D04E: mvns r0, r0 lsls r0, 24 lsrs r0, 24 str r0, [sp] lsls r5, r3, 4 adds r0, r1, r3 lsls r0, 24 lsrs r0, 24 mov r9, r0 adds r4, r3, 0 cmp r4, r9 bcc _0807D068 b _0807D1A2 _0807D068: ldr r0, _0807D098 ldr r0, [r0] adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _0807D0A4 lsls r1, r5, 1 ldr r0, _0807D09C adds r0, r1, r0 ldr r2, _0807D0A0 adds r1, r2 movs r2, 0x8 bl CpuFastSet adds r0, r5, 0 adds r0, 0x10 lsls r0, 16 lsrs r5, r0, 16 mov r0, r9 lsls r0, 16 mov r8, r0 adds r4, 0x1 mov r12, r4 b _0807D174 .align 2, 0 _0807D098: .4byte 0x030006dc _0807D09C: .4byte 0x0202eac8 _0807D0A0: .4byte 0x0202eec8 _0807D0A4: cmp r4, 0x10 beq _0807D0AC cmp r4, 0x1B bls _0807D11C _0807D0AC: movs r7, 0 mov r1, r9 lsls r1, 16 mov r8, r1 adds r4, 0x1 mov r12, r4 ldr r2, _0807D10C mov r10, r2 ldr r3, [sp] lsls r0, r3, 24 asrs r6, r0, 11 _0807D0C2: lsls r1, r5, 1 ldr r4, _0807D110 adds r0, r1, r4 ldrh r0, [r0] lsls r4, r0, 16 ldr r2, _0807D114 cmp r0, r2 beq _0807D0FA ldr r3, _0807D118 adds r3, r1, r3 lsrs r0, r4, 17 movs r1, 0xF ands r0, r1 lsrs r1, r4, 18 movs r2, 0xF0 ands r1, r2 orrs r0, r1 lsrs r1, r4, 19 movs r4, 0xF0 lsls r4, 4 adds r2, r4, 0 ands r1, r2 orrs r0, r1 lsls r0, 1 adds r0, r6 add r0, r10 ldrh r0, [r0] strh r0, [r3] _0807D0FA: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0xF bls _0807D0C2 b _0807D174 .align 2, 0 _0807D10C: .4byte 0x02000000 _0807D110: .4byte 0x0202eac8 _0807D114: .4byte 0x00002d9f _0807D118: .4byte 0x0202eec8 _0807D11C: movs r7, 0 ldr r1, [sp] lsls r0, r1, 24 mov r2, r9 lsls r2, 16 mov r8, r2 adds r4, 0x1 mov r12, r4 ldr r3, _0807D184 mov r10, r3 asrs r6, r0, 11 _0807D132: lsls r0, r5, 1 ldr r1, _0807D188 adds r4, r0, r1 ldr r2, _0807D18C adds r0, r2 ldrh r3, [r0] lsls r3, 16 lsrs r0, r3, 17 movs r1, 0xF ands r0, r1 lsrs r1, r3, 18 movs r2, 0xF0 ands r1, r2 orrs r0, r1 lsrs r3, 19 movs r2, 0xF0 lsls r2, 4 adds r1, r2, 0 ands r3, r1 orrs r0, r3 lsls r0, 1 adds r0, r6 add r0, r10 ldrh r0, [r0] strh r0, [r4] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0xF bls _0807D132 _0807D174: mov r3, r12 lsls r0, r3, 16 lsrs r4, r0, 16 cmp r0, r8 bcs _0807D180 b _0807D068 _0807D180: b _0807D1A2 .align 2, 0 _0807D184: .4byte 0x02000000 _0807D188: .4byte 0x0202eec8 _0807D18C: .4byte 0x0202eac8 _0807D190: lsls r1, r4, 5 ldr r0, _0807D1B4 adds r0, r1, r0 ldr r2, _0807D1B8 adds r1, r2 mov r4, r9 lsls r2, r4, 3 bl CpuFastSet _0807D1A2: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807D1B4: .4byte 0x0202eac8 _0807D1B8: .4byte 0x0202eec8 thumb_func_end sub_807CEBC thumb_func_start sub_807D1BC sub_807D1BC: @ 807D1BC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 ldr r4, [sp, 0x34] lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r3, 24 lsrs r3, 24 mov r8, r3 mov r1, sp strh r4, [r1] ldr r1, [sp] lsls r3, r1, 27 lsrs r3, 27 str r3, [sp, 0x4] lsls r3, r1, 22 lsrs r3, 27 str r3, [sp, 0x8] lsls r1, 17 lsrs r1, 27 str r1, [sp, 0xC] lsls r6, r0, 4 mov r3, r10 adds r1, r3, r0 lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 movs r1, 0xFF lsls r1, 24 adds r2, r1 lsrs r2, 24 adds r4, r0, 0 cmp r4, r10 bcs _0807D2E8 lsls r0, r2, 24 asrs r0, 19 str r0, [sp, 0x10] _0807D214: ldr r0, _0807D244 ldr r0, [r0] adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _0807D248 mov r0, sp ldrh r3, [r0] adds r0, r6, 0 movs r1, 0x10 mov r2, r8 bl BlendPalette adds r0, r6, 0 adds r0, 0x10 lsls r0, 16 lsrs r6, r0, 16 mov r3, r10 lsls r3, 16 mov r9, r3 adds r4, 0x1 mov r12, r4 b _0807D2DE .align 2, 0 _0807D244: .4byte 0x030006dc _0807D248: cmp r0, 0x1 bne _0807D258 ldr r0, _0807D254 ldr r1, [sp, 0x10] adds r5, r1, r0 b _0807D25E .align 2, 0 _0807D254: .4byte 0x0202f9e8 _0807D258: ldr r0, _0807D2F8 ldr r3, [sp, 0x10] adds r5, r3, r0 _0807D25E: movs r7, 0 mov r0, r10 lsls r0, 16 mov r9, r0 adds r4, 0x1 mov r12, r4 _0807D26A: adds r4, r6, 0 lsls r0, r4, 1 ldr r1, _0807D2FC adds r0, r1 ldr r1, [r0] lsls r0, r1, 27 lsrs r0, 27 adds r0, r5, r0 ldrb r3, [r0] lsls r0, r1, 22 lsrs r0, 27 adds r0, r5, r0 ldrb r2, [r0] lsls r1, 17 lsrs r1, 27 adds r1, r5, r1 ldrb r1, [r1] ldr r6, [sp, 0x4] subs r0, r6, r3 mov r6, r8 muls r6, r0 adds r0, r6, 0 asrs r0, 4 adds r3, r0 lsls r3, 24 lsrs r3, 24 ldr r6, [sp, 0x8] subs r0, r6, r2 mov r6, r8 muls r6, r0 adds r0, r6, 0 asrs r0, 4 adds r2, r0 lsls r2, 24 ldr r6, [sp, 0xC] subs r0, r6, r1 mov r6, r8 muls r6, r0 adds r0, r6, 0 asrs r0, 4 adds r1, r0 lsls r1, 24 adds r0, r4, 0x1 lsls r0, 16 lsrs r6, r0, 16 lsls r4, 1 ldr r0, _0807D300 adds r4, r0 lsrs r1, 14 lsrs r2, 19 orrs r1, r2 orrs r1, r3 strh r1, [r4] adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0xF bls _0807D26A _0807D2DE: mov r1, r12 lsls r0, r1, 16 lsrs r4, r0, 16 cmp r0, r9 bcc _0807D214 _0807D2E8: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807D2F8: .4byte 0x0202fc48 _0807D2FC: .4byte 0x0202eac8 _0807D300: .4byte 0x0202eec8 thumb_func_end sub_807D1BC thumb_func_start sub_807D304 sub_807D304: @ 807D304 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r1, 24 lsrs r6, r1, 24 mov r1, sp strh r2, [r1] lsls r0, 24 movs r1, 0xFF lsls r1, 24 eors r0, r1 lsrs r0, 24 str r0, [sp, 0x4] ldr r0, [sp] lsls r1, r0, 27 lsrs r1, 27 str r1, [sp, 0x8] lsls r1, r0, 22 lsrs r1, 27 str r1, [sp, 0xC] lsls r0, 17 lsrs r0, 27 mov r10, r0 movs r5, 0 movs r4, 0 _0807D33C: ldr r0, _0807D364 ldr r0, [r0] adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _0807D368 mov r0, sp ldrh r3, [r0] adds r0, r5, 0 movs r1, 0x10 adds r2, r6, 0 bl BlendPalette adds r0, r5, 0 adds r0, 0x10 lsls r0, 16 lsrs r5, r0, 16 adds r4, 0x1 mov r8, r4 b _0807D3FE .align 2, 0 _0807D364: .4byte 0x030006dc _0807D368: movs r0, 0 mov r12, r0 ldr r1, [sp, 0x4] lsls r0, r1, 24 adds r4, 0x1 mov r8, r4 movs r7, 0x1E asrs r0, 11 mov r9, r0 _0807D37A: adds r4, r5, 0 lsls r0, r4, 1 ldr r5, _0807D418 adds r0, r5 ldr r0, [r0] lsls r2, r0, 27 lsrs r2, 27 lsls r1, r0, 22 lsrs r1, 27 lsls r0, 17 lsrs r0, 27 ands r0, r7 lsls r0, 7 ands r1, r7 lsls r1, 3 orrs r0, r1 ands r2, r7 lsls r0, 1 orrs r0, r2 add r0, r9 ldr r1, _0807D41C adds r0, r1 ldr r1, [r0] lsls r3, r1, 27 lsrs r3, 27 lsls r2, r1, 22 lsrs r2, 27 lsls r1, 17 lsrs r1, 27 ldr r5, [sp, 0x8] subs r0, r5, r3 muls r0, r6 asrs r0, 4 adds r3, r0 lsls r3, 24 lsrs r3, 24 ldr r5, [sp, 0xC] subs r0, r5, r2 muls r0, r6 asrs r0, 4 adds r2, r0 lsls r2, 24 mov r5, r10 subs r0, r5, r1 muls r0, r6 asrs r0, 4 adds r1, r0 lsls r1, 24 adds r0, r4, 0x1 lsls r0, 16 lsrs r5, r0, 16 lsls r4, 1 ldr r0, _0807D420 adds r4, r0 lsrs r1, 14 lsrs r2, 19 orrs r1, r2 orrs r1, r3 strh r1, [r4] mov r0, r12 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r12, r0 cmp r0, 0xF bls _0807D37A _0807D3FE: mov r1, r8 lsls r0, r1, 16 lsrs r4, r0, 16 cmp r4, 0x1F bls _0807D33C add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807D418: .4byte 0x0202eac8 _0807D41C: .4byte 0x02000000 _0807D420: .4byte 0x0202eec8 thumb_func_end sub_807D304 thumb_func_start sub_807D424 sub_807D424: @ 807D424 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC adds r3, r1, 0 lsls r0, 24 lsrs r7, r0, 24 lsls r3, 16 lsrs r3, 16 mov r0, sp strh r3, [r0] movs r1, 0x80 lsls r1, 1 movs r0, 0 adds r2, r7, 0 bl BlendPalette ldr r0, [sp] lsls r1, r0, 27 lsrs r1, 27 str r1, [sp, 0x4] lsls r1, r0, 22 lsrs r1, 27 str r1, [sp, 0x8] lsls r0, 17 lsrs r0, 27 mov r10, r0 movs r4, 0x10 _0807D460: lsls r0, r4, 24 lsrs r0, 24 bl sub_807D574 lsls r0, 24 cmp r0, 0 beq _0807D510 adds r0, r4, 0x1 lsls r1, r0, 20 lsrs r1, 16 mov r12, r1 lsls r1, r4, 20 lsrs r6, r1, 16 mov r9, r0 cmp r6, r12 bcs _0807D524 movs r0, 0x1C mov r8, r0 _0807D484: lsls r5, r6, 1 ldr r0, _0807D508 adds r0, r5, r0 ldr r2, [r0] lsls r4, r2, 27 lsrs r4, 27 lsls r3, r2, 22 lsrs r3, 27 lsls r2, 17 lsrs r2, 27 mov r0, r8 subs r1, r0, r4 lsls r0, r1, 1 adds r0, r1 asrs r0, 2 adds r4, r0 lsls r4, 24 lsrs r4, 24 movs r1, 0x1F subs r1, r3 lsls r0, r1, 1 adds r0, r1 asrs r0, 2 adds r3, r0 lsls r3, 24 lsrs r3, 24 mov r0, r8 subs r1, r0, r2 lsls r0, r1, 1 adds r0, r1 asrs r0, 2 adds r2, r0 lsls r2, 24 lsrs r2, 24 ldr r1, [sp, 0x4] subs r0, r1, r4 muls r0, r7 asrs r0, 4 adds r4, r0 lsls r4, 24 lsrs r4, 24 ldr r1, [sp, 0x8] subs r0, r1, r3 muls r0, r7 asrs r0, 4 adds r3, r0 lsls r3, 24 mov r1, r10 subs r0, r1, r2 muls r0, r7 asrs r0, 4 adds r2, r0 lsls r2, 24 ldr r0, _0807D50C adds r5, r0 lsrs r2, 14 lsrs r3, 19 orrs r2, r3 orrs r2, r4 strh r2, [r5] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, r12 bcc _0807D484 b _0807D524 .align 2, 0 _0807D508: .4byte 0x0202eac8 _0807D50C: .4byte 0x0202eec8 _0807D510: lsls r0, r4, 20 lsrs r0, 16 mov r1, sp ldrh r3, [r1] movs r1, 0x10 adds r2, r7, 0 bl BlendPalette adds r4, 0x1 mov r9, r4 _0807D524: mov r1, r9 lsls r0, r1, 16 lsrs r4, r0, 16 cmp r4, 0x1F bls _0807D460 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_807D424 thumb_func_start sub_807D540 sub_807D540: @ 807D540 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r3, _0807D568 ldr r0, _0807D56C adds r1, r3, r0 ldrb r0, [r1] cmp r0, 0x5 bhi _0807D562 ldr r4, _0807D570 adds r0, r3, r4 ldrb r3, [r1] adds r0, r3 strb r2, [r0] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0807D562: pop {r4} pop {r0} bx r0 .align 2, 0 _0807D568: .4byte 0x0202f7e8 _0807D56C: .4byte 0x000006fa _0807D570: .4byte 0x000006f4 thumb_func_end sub_807D540 thumb_func_start sub_807D574 sub_807D574: @ 807D574 push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 movs r1, 0 ldr r2, _0807D59C ldr r4, _0807D5A0 adds r0, r2, r4 ldrb r0, [r0] cmp r1, r0 bcs _0807D5B2 ldr r5, _0807D5A4 adds r4, r2, r5 adds r2, r0, 0 _0807D58E: adds r0, r1, r4 ldrb r0, [r0] cmp r0, r3 bne _0807D5A8 movs r0, 0x1 b _0807D5B4 .align 2, 0 _0807D59C: .4byte 0x0202f7e8 _0807D5A0: .4byte 0x000006fa _0807D5A4: .4byte 0x000006f4 _0807D5A8: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r2 bcc _0807D58E _0807D5B2: movs r0, 0 _0807D5B4: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_807D574 thumb_func_start sub_807D5BC sub_807D5BC: @ 807D5BC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r5, _0807D5E8 ldr r1, _0807D5EC adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0x3 bne _0807D5E2 lsls r2, r4, 24 asrs r2, 24 movs r0, 0 movs r1, 0x20 bl sub_807CEBC movs r1, 0xD8 lsls r1, 3 adds r0, r5, r1 strb r4, [r0] _0807D5E2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807D5E8: .4byte 0x0202f7e8 _0807D5EC: .4byte 0x000006c6 thumb_func_end sub_807D5BC thumb_func_start sub_807D5F0 sub_807D5F0: @ 807D5F0 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r6, r2, 24 ldr r3, _0807D638 ldr r0, _0807D63C adds r2, r3, r0 ldrb r0, [r2] cmp r0, 0x3 bne _0807D630 movs r1, 0 strb r1, [r2] movs r2, 0xD8 lsls r2, 3 adds r0, r3, r2 strb r4, [r0] adds r2, 0x1 adds r0, r3, r2 strb r5, [r0] adds r2, 0x2 adds r0, r3, r2 strb r1, [r0] ldr r1, _0807D640 adds r0, r3, r1 strb r6, [r0] lsls r0, r4, 24 asrs r0, 24 bl sub_807D5BC _0807D630: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807D638: .4byte 0x0202f7e8 _0807D63C: .4byte 0x000006c6 _0807D640: .4byte 0x000006c2 thumb_func_end sub_807D5F0 thumb_func_start fade_screen fade_screen: @ 807D644 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 lsls r1, 24 lsrs r5, r1, 24 cmp r0, 0x1 beq _0807D67C cmp r0, 0x1 bgt _0807D660 cmp r0, 0 beq _0807D66A b _0807D758 _0807D660: cmp r2, 0x2 beq _0807D670 cmp r2, 0x3 beq _0807D680 b _0807D758 _0807D66A: movs r4, 0 movs r1, 0 b _0807D684 _0807D670: ldr r4, _0807D678 movs r1, 0 b _0807D684 .align 2, 0 _0807D678: .4byte 0x0000ffff _0807D67C: movs r4, 0 b _0807D682 _0807D680: ldr r4, _0807D6A4 _0807D682: movs r1, 0x1 _0807D684: ldr r0, _0807D6A8 movs r2, 0xDA lsls r2, 3 adds r0, r2 ldrb r0, [r0] cmp r0, 0x3 blt _0807D6AC cmp r0, 0x6 ble _0807D69E cmp r0, 0xD bgt _0807D6AC cmp r0, 0xB blt _0807D6AC _0807D69E: movs r2, 0x1 b _0807D6AE .align 2, 0 _0807D6A4: .4byte 0x0000ffff _0807D6A8: .4byte 0x0202f7e8 _0807D6AC: movs r2, 0 _0807D6AE: cmp r1, 0 beq _0807D6F0 cmp r2, 0 beq _0807D6C2 ldr r0, _0807D6E0 ldr r1, _0807D6E4 movs r2, 0x80 lsls r2, 1 bl CpuFastSet _0807D6C2: movs r0, 0x1 negs r0, r0 lsls r1, r5, 24 asrs r1, 24 str r4, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0807D6E8 ldr r3, _0807D6EC adds r0, r3 movs r1, 0x2 strb r1, [r0] b _0807D758 .align 2, 0 _0807D6E0: .4byte 0x0202eec8 _0807D6E4: .4byte 0x0202eac8 _0807D6E8: .4byte 0x0202f7e8 _0807D6EC: .4byte 0x000006c6 _0807D6F0: ldr r1, _0807D708 ldr r3, _0807D70C adds r0, r1, r3 strh r4, [r0] cmp r2, 0 beq _0807D714 ldr r0, _0807D710 adds r1, r0 movs r0, 0 strb r0, [r1] b _0807D726 .align 2, 0 _0807D708: .4byte 0x0202f7e8 _0807D70C: .4byte 0x000006c4 _0807D710: .4byte 0x000006c7 _0807D714: movs r0, 0x1 negs r0, r0 lsls r1, r5, 24 asrs r1, 24 str r4, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade _0807D726: ldr r4, _0807D760 ldr r1, _0807D764 adds r0, r4, r1 movs r1, 0 movs r5, 0x1 strb r5, [r0] ldr r2, _0807D768 adds r0, r4, r2 strb r5, [r0] ldr r3, _0807D76C adds r0, r4, r3 strb r1, [r0] movs r1, 0xE6 lsls r1, 3 adds r0, r4, r1 ldrb r0, [r0] adds r2, 0x68 adds r1, r4, r2 ldrb r1, [r1] bl sub_807DB64 movs r3, 0xD9 lsls r3, 3 adds r4, r3 strb r5, [r4] _0807D758: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807D760: .4byte 0x0202f7e8 _0807D764: .4byte 0x000006c6 _0807D768: .4byte 0x000006ca _0807D76C: .4byte 0x000006cb thumb_func_end fade_screen thumb_func_start sub_807D770 sub_807D770: @ 807D770 ldr r0, _0807D784 ldr r1, _0807D788 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 eors r1, r0 negs r0, r1 orrs r0, r1 lsrs r0, 31 bx lr .align 2, 0 _0807D784: .4byte 0x0202f7e8 _0807D788: .4byte 0x000006c6 thumb_func_end sub_807D770 thumb_func_start sub_807D78C sub_807D78C: @ 807D78C push {r4-r6,lr} lsls r0, 24 lsrs r0, 8 movs r1, 0x80 lsls r1, 13 adds r0, r1 lsrs r4, r0, 16 ldr r5, _0807D7CC ldr r2, _0807D7D0 adds r0, r5, r2 ldrb r0, [r0] adds r1, r5, 0 cmp r0, 0x1 beq _0807D7D4 cmp r0, 0x2 beq _0807D820 adds r2, 0xA adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x6 beq _0807D858 lsls r0, r4, 24 lsrs r0, 24 subs r2, 0x10 adds r1, r2 movs r2, 0 ldrsb r2, [r1, r2] movs r1, 0x1 bl sub_807CEBC b _0807D868 .align 2, 0 _0807D7CC: .4byte 0x0202f7e8 _0807D7D0: .4byte 0x000006c6 _0807D7D4: ldr r2, _0807D814 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _0807D868 adds r2, 0x6 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x6 bne _0807D7F0 lsls r0, r4, 24 lsrs r0, 24 bl sub_807D540 _0807D7F0: lsls r0, r4, 20 lsrs r4, r0, 16 movs r2, 0 ldr r6, _0807D818 ldr r0, _0807D81C adds r3, r5, r0 _0807D7FC: adds r0, r4, r2 lsls r0, 1 adds r0, r6 ldrh r1, [r3] strh r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0xF bls _0807D7FC b _0807D868 .align 2, 0 _0807D814: .4byte 0x000006ca _0807D818: .4byte 0x0202eec8 _0807D81C: .4byte 0x000006c4 _0807D820: lsls r0, r4, 20 lsrs r4, r0, 16 lsls r1, r4, 1 ldr r0, _0807D84C adds r0, r1, r0 ldr r2, _0807D850 adds r1, r2 movs r2, 0x8 bl CpuFastSet ldr r0, _0807D854 ldrh r2, [r0, 0x4] lsls r2, 21 lsrs r2, 27 ldrh r3, [r0, 0x6] lsls r3, 17 lsrs r3, 17 adds r0, r4, 0 movs r1, 0x10 bl BlendPalette b _0807D868 .align 2, 0 _0807D84C: .4byte 0x0202eec8 _0807D850: .4byte 0x0202eac8 _0807D854: .4byte 0x0202f388 _0807D858: lsls r0, r4, 20 lsrs r4, r0, 16 ldr r3, _0807D870 adds r0, r4, 0 movs r1, 0x10 movs r2, 0xC bl BlendPalette _0807D868: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807D870: .4byte 0x000073fc thumb_func_end sub_807D78C thumb_func_start sub_807D874 sub_807D874: @ 807D874 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0807D890 movs r2, 0xD8 lsls r2, 3 adds r1, r2 movs r2, 0 ldrsb r2, [r1, r2] movs r1, 0x1 bl sub_807CEBC pop {r0} bx r0 .align 2, 0 _0807D890: .4byte 0x0202f7e8 thumb_func_end sub_807D874 thumb_func_start unref_sub_807D894 unref_sub_807D894: @ 807D894 push {lr} ldr r1, _0807D8A8 ldr r2, _0807D8AC adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x1 beq _0807D8B0 movs r0, 0 b _0807D8B6 .align 2, 0 _0807D8A8: .4byte 0x0202f7e8 _0807D8AC: .4byte 0x000006c6 _0807D8B0: ldr r2, _0807D8BC adds r0, r1, r2 ldrb r0, [r0] _0807D8B6: pop {r1} bx r1 .align 2, 0 _0807D8BC: .4byte 0x000006ca thumb_func_end unref_sub_807D894 thumb_func_start sub_807D8C0 sub_807D8C0: @ 807D8C0 push {r4,lr} ldr r4, _0807D8E8 ldr r1, _0807D8EC adds r4, r1 ldrb r1, [r4] lsls r1, 20 movs r2, 0x80 lsls r2, 17 adds r1, r2 lsrs r1, 16 movs r2, 0x20 bl LoadPalette ldrb r0, [r4] bl sub_807D78C pop {r4} pop {r0} bx r0 .align 2, 0 _0807D8E8: .4byte 0x0202f7e8 _0807D8EC: .4byte 0x000006d4 thumb_func_end sub_807D8C0 thumb_func_start sub_807D8F0 sub_807D8F0: @ 807D8F0 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 mov r8, r1 ldrb r4, [r7] cmp r4, 0x6 bhi _0807D99A subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _0807D94C lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] lsls r6, r4, 13 ldr r5, _0807D950 adds r1, r6, r5 bl LZ77UnCompWram subs r0, r4, 0x1 cmp r4, 0 bne _0807D95C ldr r0, _0807D954 strh r0, [r5] movs r2, 0x1 adds r4, r5, 0 movs r3, 0 ldr r5, _0807D958 _0807D92A: lsls r1, r2, 1 adds r1, r3 adds r1, r4 subs r0, r2, 0x1 lsls r0, 1 adds r0, r3 adds r0, r4 ldrh r0, [r0] ldrh r6, [r1] adds r0, r6 strh r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r5 bls _0807D92A b _0807D984 .align 2, 0 _0807D94C: .4byte gUnknown_08396FA8 _0807D950: .4byte 0x02000000 _0807D954: .4byte 0x00000421 _0807D958: .4byte 0x00000fff _0807D95C: movs r2, 0 adds r3, r5, 0 adds r5, r6, 0 lsls r4, r0, 13 ldr r0, _0807D9A4 mov r12, r0 _0807D968: lsls r0, r2, 1 adds r1, r0, r5 adds r1, r3 adds r0, r4 adds r0, r3 ldrh r0, [r0] ldrh r6, [r1] adds r0, r6 strh r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r12 bls _0807D968 _0807D984: ldrb r0, [r7] adds r0, 0x1 strb r0, [r7] lsls r0, 24 lsrs r0, 24 cmp r0, 0x7 bne _0807D99A movs r0, 0x20 strb r0, [r7] mov r1, r8 strb r0, [r1] _0807D99A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807D9A4: .4byte 0x00000fff thumb_func_end sub_807D8F0 thumb_func_start sub_807D9A8 sub_807D9A8: @ 807D9A8 ldr r0, _0807D9BC ldr r2, _0807D9C0 adds r1, r0, r2 movs r2, 0x1 strb r2, [r1] ldr r1, _0807D9C4 adds r0, r1 strb r2, [r0] bx lr .align 2, 0 _0807D9BC: .4byte 0x0202f7e8 _0807D9C0: .4byte 0x0000074d _0807D9C4: .4byte 0x0000074e thumb_func_end sub_807D9A8 thumb_func_start sub_807D9C8 sub_807D9C8: @ 807D9C8 push {r4,lr} ldr r1, _0807D9F0 ldr r0, _0807D9F4 adds r4, r1, r0 movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0x1F bgt _0807D9FC ldr r0, _0807D9F8 adds r1, r0 adds r0, r4, 0 bl sub_807D8F0 movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0x1F bgt _0807D9FC movs r0, 0x1 b _0807D9FE .align 2, 0 _0807D9F0: .4byte 0x0202f7e8 _0807D9F4: .4byte 0x0000074d _0807D9F8: .4byte 0x0000074e _0807D9FC: movs r0, 0 _0807D9FE: pop {r4} pop {r1} bx r1 thumb_func_end sub_807D9C8 thumb_func_start sub_807DA04 sub_807DA04: @ 807DA04 push {lr} lsls r0, 24 asrs r0, 24 mvns r0, r0 bl sub_807D5BC pop {r0} bx r0 thumb_func_end sub_807DA04 thumb_func_start sub_807DA14 sub_807DA14: @ 807DA14 ldr r1, _0807DA3C ldr r2, _0807DA40 adds r0, r1, r2 movs r2, 0 strh r2, [r0] movs r3, 0xE8 lsls r3, 3 adds r0, r1, r3 strh r2, [r0] adds r3, 0x2 adds r0, r1, r3 strh r2, [r0] ldr r0, _0807DA44 adds r1, r0 strh r2, [r1] ldr r1, _0807DA48 movs r0, 0x5 strh r0, [r1] bx lr .align 2, 0 _0807DA3C: .4byte 0x0202f7e8 _0807DA40: .4byte 0x0000073c _0807DA44: .4byte 0x0000073e _0807DA48: .4byte 0x0202ff58 thumb_func_end sub_807DA14 thumb_func_start sub_807DA4C sub_807DA4C: @ 807DA4C push {r4-r7,lr} ldr r5, _0807DA68 ldr r0, _0807DA6C adds r7, r5, r0 movs r1, 0 ldrsh r2, [r7, r1] cmp r2, 0x1 beq _0807DAC8 cmp r2, 0x1 bgt _0807DA70 cmp r2, 0 beq _0807DA76 b _0807DB54 .align 2, 0 _0807DA68: .4byte 0x0202f7e8 _0807DA6C: .4byte 0x00000742 _0807DA70: cmp r2, 0x2 beq _0807DB1C b _0807DB54 _0807DA76: movs r3, 0xE8 lsls r3, 3 adds r6, r5, r3 ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] lsls r0, 16 asrs r0, 16 ldr r1, _0807DABC ldrh r1, [r1] cmp r0, r1 ble _0807DB54 strh r2, [r6] ldr r0, _0807DAC0 adds r4, r5, r0 ldrh r0, [r4] adds r1, r0, 0x1 strh r1, [r4] lsls r0, 24 asrs r0, 24 bl sub_807DA04 ldrh r1, [r4] movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0x5 ble _0807DB54 ldr r3, _0807DAC4 adds r0, r5, r3 strh r1, [r0] movs r0, 0x1 strh r0, [r7] movs r0, 0x3C strh r0, [r6] b _0807DB54 .align 2, 0 _0807DABC: .4byte 0x0202ff58 _0807DAC0: .4byte 0x0000073c _0807DAC4: .4byte 0x0000073e _0807DAC8: movs r0, 0xE8 lsls r0, 3 adds r2, r5, r0 ldrh r0, [r2] adds r0, 0x3 movs r1, 0x7F ands r0, r1 strh r0, [r2] ldr r1, _0807DB10 movs r3, 0 ldrsh r0, [r2, r3] lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] subs r0, 0x1 asrs r0, 6 adds r0, 0x2 ldr r2, _0807DB14 adds r6, r5, r2 adds r2, r0, 0 strh r0, [r6] ldr r3, _0807DB18 adds r4, r5, r3 movs r3, 0 ldrsh r1, [r4, r3] cmp r0, r1 beq _0807DB08 lsls r0, r2, 24 asrs r0, 24 bl sub_807DA04 _0807DB08: ldrh r0, [r6] strh r0, [r4] b _0807DB54 .align 2, 0 _0807DB10: .4byte gSineTable _0807DB14: .4byte 0x0000073c _0807DB18: .4byte 0x0000073e _0807DB1C: movs r0, 0xE8 lsls r0, 3 adds r2, r5, r0 ldrh r0, [r2] adds r0, 0x1 movs r6, 0 strh r0, [r2] lsls r0, 16 asrs r0, 16 ldr r1, _0807DB5C ldrh r1, [r1] cmp r0, r1 ble _0807DB54 strh r6, [r2] ldr r1, _0807DB60 adds r4, r5, r1 ldrh r0, [r4] subs r0, 0x1 strh r0, [r4] lsls r0, 24 asrs r0, 24 bl sub_807DA04 movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0x3 bne _0807DB54 strh r6, [r7] _0807DB54: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807DB5C: .4byte 0x0202ff58 _0807DB60: .4byte 0x0000073c thumb_func_end sub_807DA4C thumb_func_start sub_807DB64 sub_807DB64: @ 807DB64 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 ldr r3, _0807DB98 movs r4, 0xE6 lsls r4, 3 adds r2, r3, r4 strh r0, [r2] adds r4, 0x2 adds r2, r3, r4 strh r1, [r2] adds r4, 0x2 adds r2, r3, r4 strh r0, [r2] ldr r2, _0807DB9C adds r3, r2 strh r1, [r3] ldr r2, _0807DBA0 lsls r1, 8 orrs r1, r0 strh r1, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _0807DB98: .4byte 0x0202f7e8 _0807DB9C: .4byte 0x00000736 _0807DBA0: .4byte REG_BLDALPHA thumb_func_end sub_807DB64 thumb_func_start sub_807DBA4 sub_807DBA4: @ 807DBA4 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 ldr r3, _0807DBD8 ldr r5, _0807DBDC adds r4, r3, r5 movs r5, 0 strh r0, [r4] ldr r4, _0807DBE0 adds r0, r3, r4 strh r1, [r0] ldr r1, _0807DBE4 adds r0, r3, r1 strb r2, [r0] adds r4, 0x3 adds r0, r3, r4 strb r5, [r0] movs r0, 0xE7 lsls r0, 3 adds r3, r0 strb r5, [r3] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807DBD8: .4byte 0x0202f7e8 _0807DBDC: .4byte 0x00000734 _0807DBE0: .4byte 0x00000736 _0807DBE4: .4byte 0x0000073a thumb_func_end sub_807DBA4 thumb_func_start sub_807DBE8 sub_807DBE8: @ 807DBE8 push {r4-r6,lr} ldr r0, _0807DC40 movs r1, 0xE6 lsls r1, 3 adds r3, r0, r1 ldr r2, [r3] ldr r6, _0807DC44 adds r5, r0, r6 ldr r1, [r5] adds r4, r0, 0 cmp r2, r1 beq _0807DCAC ldr r0, _0807DC48 adds r2, r4, r0 ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] ldr r6, _0807DC4C adds r1, r4, r6 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bls _0807DC78 movs r0, 0 strb r0, [r2] movs r0, 0xE7 lsls r0, 3 adds r1, r4, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0807DC50 ldrh r1, [r3] adds r2, r1, 0 ldrh r0, [r5] cmp r2, r0 bcs _0807DC70 adds r0, r1, 0x1 b _0807DC76 .align 2, 0 _0807DC40: .4byte 0x0202f7e8 _0807DC44: .4byte 0x00000734 _0807DC48: .4byte 0x00000739 _0807DC4C: .4byte 0x0000073a _0807DC50: ldr r1, _0807DC68 adds r3, r4, r1 ldr r2, _0807DC6C adds r0, r4, r2 ldrh r1, [r3] adds r2, r1, 0 ldrh r0, [r0] cmp r2, r0 bcs _0807DC70 adds r0, r1, 0x1 b _0807DC76 .align 2, 0 _0807DC68: .4byte 0x00000732 _0807DC6C: .4byte 0x00000736 _0807DC70: cmp r2, r0 bls _0807DC78 subs r0, r1, 0x1 _0807DC76: strh r0, [r3] _0807DC78: ldr r3, _0807DCA0 ldr r6, _0807DCA4 adds r0, r4, r6 ldrh r0, [r0] lsls r0, 8 movs r1, 0xE6 lsls r1, 3 adds r2, r4, r1 ldrh r1, [r2] orrs r0, r1 strh r0, [r3] ldr r1, [r2] ldr r2, _0807DCA8 adds r0, r4, r2 ldr r0, [r0] cmp r1, r0 beq _0807DCAC movs r0, 0 b _0807DCAE .align 2, 0 _0807DCA0: .4byte REG_BLDALPHA _0807DCA4: .4byte 0x00000732 _0807DCA8: .4byte 0x00000734 _0807DCAC: movs r0, 0x1 _0807DCAE: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_807DBE8 thumb_func_start unref_sub_807DCB4 unref_sub_807DCB4: @ 807DCB4 push {lr} lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r0, 0x9 bhi _0807DD46 lsls r0, 2 ldr r1, _0807DCCC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807DCCC: .4byte _0807DCD0 .align 2, 0 _0807DCD0: .4byte _0807DCF8 .4byte _0807DD00 .4byte _0807DD08 .4byte _0807DD10 .4byte _0807DD18 .4byte _0807DD20 .4byte _0807DD28 .4byte _0807DD30 .4byte _0807DD38 .4byte _0807DD40 _0807DCF8: movs r0, 0x1 bl sub_808070C b _0807DD46 _0807DD00: movs r0, 0x2 bl sub_808070C b _0807DD46 _0807DD08: movs r0, 0x3 bl sub_808070C b _0807DD46 _0807DD10: movs r0, 0x4 bl sub_808070C b _0807DD46 _0807DD18: movs r0, 0x5 bl sub_808070C b _0807DD46 _0807DD20: movs r0, 0x6 bl sub_808070C b _0807DD46 _0807DD28: movs r0, 0x9 bl sub_808070C b _0807DD46 _0807DD30: movs r0, 0x7 bl sub_808070C b _0807DD46 _0807DD38: movs r0, 0x8 bl sub_808070C b _0807DD46 _0807DD40: movs r0, 0xB bl sub_808070C _0807DD46: pop {r0} bx r0 thumb_func_end unref_sub_807DCB4 thumb_func_start weather_get_current weather_get_current: @ 807DD4C ldr r0, _0807DD58 movs r1, 0xDA lsls r1, 3 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0807DD58: .4byte 0x0202f7e8 thumb_func_end weather_get_current thumb_func_start sub_807DD5C sub_807DD5C: @ 807DD5C push {lr} lsls r0, 16 lsrs r2, r0, 16 ldr r1, _0807DD7C ldr r3, _0807DD80 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0x2 beq _0807DDAE cmp r2, 0x53 beq _0807DD94 cmp r2, 0x53 bgt _0807DD84 cmp r2, 0x51 beq _0807DDA0 b _0807DDAE .align 2, 0 _0807DD7C: .4byte 0x0202f7e8 _0807DD80: .4byte 0x000006c6 _0807DD84: cmp r2, 0x55 bne _0807DDAE ldr r0, _0807DD90 adds r1, r0 movs r0, 0 b _0807DDA6 .align 2, 0 _0807DD90: .4byte 0x000006dd _0807DD94: ldr r3, _0807DD9C adds r1, r3 movs r0, 0x1 b _0807DDA6 .align 2, 0 _0807DD9C: .4byte 0x000006dd _0807DDA0: ldr r0, _0807DDB4 adds r1, r0 movs r0, 0x2 _0807DDA6: strb r0, [r1] adds r0, r2, 0 bl audio_play _0807DDAE: pop {r0} bx r0 .align 2, 0 _0807DDB4: .4byte 0x000006dd thumb_func_end sub_807DD5C thumb_func_start play_some_sound play_some_sound: @ 807DDB8 push {lr} bl sub_80755FC lsls r0, 24 cmp r0, 0 beq _0807DDF6 ldr r0, _0807DDE0 ldr r1, _0807DDE4 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _0807DDE8 cmp r0, 0x1 bgt _0807DDF0 cmp r0, 0 bne _0807DDF0 movs r0, 0x56 bl audio_play b _0807DDF6 .align 2, 0 _0807DDE0: .4byte 0x0202f7e8 _0807DDE4: .4byte 0x000006dd _0807DDE8: movs r0, 0x54 bl audio_play b _0807DDF6 _0807DDF0: movs r0, 0x52 bl audio_play _0807DDF6: pop {r0} bx r0 thumb_func_end play_some_sound thumb_func_start sub_807DDFC sub_807DDFC: @ 807DDFC ldr r0, _0807DE08 ldr r1, _0807DE0C adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0807DE08: .4byte 0x0202f7e8 _0807DE0C: .4byte 0x000006d3 thumb_func_end sub_807DDFC thumb_func_start sub_807DE10 sub_807DE10: @ 807DE10 ldr r0, _0807DE1C ldr r1, _0807DE20 adds r0, r1 movs r1, 0x2 strb r1, [r0] bx lr .align 2, 0 _0807DE1C: .4byte 0x0202f7e8 _0807DE20: .4byte 0x000006c6 thumb_func_end sub_807DE10 thumb_func_start unref_sub_807DE24 unref_sub_807DE24: @ 807DE24 ldr r0, _0807DE30 ldr r1, _0807DE34 adds r0, r1 movs r1, 0x3 strb r1, [r0] bx lr .align 2, 0 _0807DE30: .4byte 0x0202f7e8 _0807DE34: .4byte 0x000006c6 thumb_func_end unref_sub_807DE24 thumb_func_start sub_807DE38 sub_807DE38: @ 807DE38 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0807DE5C ldr r5, _0807DE60 adds r1, r5, 0 movs r2, 0x10 bl CpuSet adds r4, r5 movs r0, 0 strb r0, [r4] ldr r0, _0807DE64 str r5, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807DE5C: .4byte gUnknown_083970C8 _0807DE60: .4byte 0x0202ff38 _0807DE64: .4byte 0x030006dc thumb_func_end sub_807DE38 thumb_func_start sub_807DE68 sub_807DE68: @ 807DE68 ldr r1, _0807DE70 ldr r0, _0807DE74 str r0, [r1] bx lr .align 2, 0 _0807DE70: .4byte 0x030006dc _0807DE74: .4byte gUnknown_083970C8 thumb_func_end sub_807DE68 thumb_func_start sub_807DE78 sub_807DE78: @ 807DE78 push {lr} ldr r0, _0807DEB0 ldr r0, [r0] ldr r2, _0807DEB4 adds r1, r0, r2 movs r2, 0 strb r2, [r1] ldr r1, _0807DEB8 adds r3, r0, r1 movs r1, 0x14 strb r1, [r3] ldr r3, _0807DEBC adds r1, r0, r3 strb r2, [r1] subs r3, 0x6 adds r1, r0, r3 strh r2, [r1] ldr r1, _0807DEC0 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0807DEAC movs r0, 0 movs r1, 0x10 bl sub_807DB64 _0807DEAC: pop {r0} bx r0 .align 2, 0 _0807DEB0: .4byte gUnknown_08396FC4 _0807DEB4: .4byte 0x000006c1 _0807DEB8: .4byte 0x000006c2 _0807DEBC: .4byte 0x000006d2 _0807DEC0: .4byte 0x000006de thumb_func_end sub_807DE78 thumb_func_start sub_807DEC4 sub_807DEC4: @ 807DEC4 push {r4,lr} bl sub_807DE78 ldr r0, _0807DEEC ldr r1, [r0] ldr r2, _0807DEF0 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _0807DEE4 adds r4, r1, r2 _0807DEDA: bl sub_807DEF4 ldrb r0, [r4] cmp r0, 0 beq _0807DEDA _0807DEE4: pop {r4} pop {r0} bx r0 .align 2, 0 _0807DEEC: .4byte gUnknown_08396FC4 _0807DEF0: .4byte 0x000006d2 thumb_func_end sub_807DEC4 thumb_func_start sub_807DEF4 sub_807DEF4: @ 807DEF4 push {r4,r5,lr} ldr r0, _0807DF10 ldr r5, [r0] ldr r0, _0807DF14 adds r4, r5, r0 ldrh r0, [r4] cmp r0, 0x1 beq _0807DF24 cmp r0, 0x1 bgt _0807DF18 cmp r0, 0 beq _0807DF1E b _0807DF48 .align 2, 0 _0807DF10: .4byte gUnknown_08396FC4 _0807DF14: .4byte 0x000006cc _0807DF18: cmp r0, 0x2 beq _0807DF30 b _0807DF48 _0807DF1E: bl sub_807DFD4 b _0807DF42 _0807DF24: movs r0, 0xC movs r1, 0x8 movs r2, 0x1 bl sub_807DBA4 b _0807DF42 _0807DF30: bl sub_807DBE8 lsls r0, 24 cmp r0, 0 beq _0807DF48 ldr r0, _0807DF50 adds r1, r5, r0 movs r0, 0x1 strb r0, [r1] _0807DF42: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _0807DF48: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807DF50: .4byte 0x000006d2 thumb_func_end sub_807DEF4 thumb_func_start sub_807DF54 sub_807DF54: @ 807DF54 push {r4,lr} ldr r0, _0807DF6C ldr r0, [r0] ldr r1, _0807DF70 adds r4, r0, r1 ldrh r0, [r4] cmp r0, 0 beq _0807DF74 cmp r0, 0x1 beq _0807DF80 movs r0, 0 b _0807DF96 .align 2, 0 _0807DF6C: .4byte gUnknown_08396FC4 _0807DF70: .4byte 0x000006ce _0807DF74: movs r0, 0 movs r1, 0x10 movs r2, 0x1 bl sub_807DBA4 b _0807DF8E _0807DF80: bl sub_807DBE8 lsls r0, 24 cmp r0, 0 beq _0807DF94 bl sub_807E0A0 _0807DF8E: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _0807DF94: movs r0, 0x1 _0807DF96: pop {r4} pop {r1} bx r1 thumb_func_end sub_807DF54 thumb_func_start sub_807DF9C sub_807DF9C: @ 807DF9C ldr r0, _0807DFB4 ldr r1, [r0] ldr r0, _0807DFB8 adds r2, r1, r0 movs r0, 0 strb r0, [r2] ldr r0, _0807DFBC adds r1, r0 movs r0, 0x14 strb r0, [r1] bx lr .align 2, 0 _0807DFB4: .4byte gUnknown_08396FC4 _0807DFB8: .4byte 0x000006c1 _0807DFBC: .4byte 0x000006c2 thumb_func_end sub_807DF9C thumb_func_start sub_807DFC0 sub_807DFC0: @ 807DFC0 push {lr} bl sub_807DF9C pop {r0} bx r0 thumb_func_end sub_807DFC0 thumb_func_start nullsub_55 nullsub_55: @ 807DFCC bx lr thumb_func_end nullsub_55 thumb_func_start sub_807DFD0 sub_807DFD0: @ 807DFD0 movs r0, 0 bx lr thumb_func_end sub_807DFD0 thumb_func_start sub_807DFD4 sub_807DFD4: @ 807DFD4 push {r4,r5,lr} ldr r0, _0807E04C ldr r0, [r0] ldr r1, _0807E050 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _0807E090 ldr r0, _0807E054 bl LoadSpriteSheet ldr r0, _0807E058 bl sub_807D8C0 movs r5, 0 _0807DFF2: ldr r0, _0807E05C movs r1, 0 movs r2, 0 movs r3, 0xFF bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 beq _0807E068 ldr r0, _0807E04C ldr r1, [r0] lsls r2, r5, 2 movs r0, 0xFA lsls r0, 1 adds r1, r0 adds r1, r2 lsls r4, r3, 4 adds r4, r3 lsls r4, 2 ldr r0, _0807E060 adds r4, r0 str r4, [r1] ldr r0, _0807E064 adds r2, r0 ldrh r0, [r2] adds r0, 0x7 lsls r0, 16 asrs r0, 16 ldrh r1, [r2, 0x2] adds r1, 0x7 lsls r1, 16 asrs r1, 16 adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 bl sub_80603CC adds r4, 0x3E ldrb r0, [r4] movs r1, 0x2 orrs r0, r1 strb r0, [r4] b _0807E07A .align 2, 0 _0807E04C: .4byte gUnknown_08396FC4 _0807E050: .4byte 0x000006de _0807E054: .4byte gUnknown_0839A9D4 _0807E058: .4byte gUnknown_08397108 _0807E05C: .4byte gSpriteTemplate_839A9F0 _0807E060: .4byte 0x02020004 _0807E064: .4byte gUnknown_0839A9C8 _0807E068: ldr r0, _0807E098 ldr r1, [r0] lsls r0, r5, 2 movs r2, 0xFA lsls r2, 1 adds r1, r2 adds r1, r0 movs r0, 0 str r0, [r1] _0807E07A: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x2 bls _0807DFF2 ldr r0, _0807E098 ldr r0, [r0] ldr r1, _0807E09C adds r0, r1 movs r1, 0x1 strb r1, [r0] _0807E090: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807E098: .4byte gUnknown_08396FC4 _0807E09C: .4byte 0x000006de thumb_func_end sub_807DFD4 thumb_func_start sub_807E0A0 sub_807E0A0: @ 807E0A0 push {r4,r5,lr} ldr r0, _0807E0EC ldr r1, [r0] ldr r2, _0807E0F0 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _0807E0E4 movs r4, 0 movs r0, 0xFA lsls r0, 1 adds r5, r1, r0 _0807E0B8: lsls r0, r4, 2 adds r0, r5, r0 ldr r0, [r0] cmp r0, 0 beq _0807E0C6 bl DestroySprite _0807E0C6: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x2 bls _0807E0B8 movs r0, 0x90 lsls r0, 5 bl FreeSpriteTilesByTag ldr r0, _0807E0EC ldr r0, [r0] ldr r1, _0807E0F0 adds r0, r1 movs r1, 0 strb r1, [r0] _0807E0E4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807E0EC: .4byte gUnknown_08396FC4 _0807E0F0: .4byte 0x000006de thumb_func_end sub_807E0A0 thumb_func_start sub_807E0F4 sub_807E0F4: @ 807E0F4 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] adds r0, 0x1 movs r1, 0x1 ands r0, r1 strh r0, [r2, 0x2E] cmp r0, 0 beq _0807E10C ldrh r0, [r2, 0x20] subs r0, 0x1 strh r0, [r2, 0x20] _0807E10C: pop {r0} bx r0 thumb_func_end sub_807E0F4 thumb_func_start sub_807E110 sub_807E110: @ 807E110 ldr r0, _0807E134 ldr r1, [r0] ldr r0, _0807E138 adds r3, r1, r0 movs r2, 0 movs r0, 0 strh r0, [r3] ldr r3, _0807E13C adds r0, r1, r3 strb r2, [r0] subs r3, 0x11 adds r0, r1, r3 strb r2, [r0] ldr r0, _0807E140 adds r1, r0 strb r2, [r1] bx lr .align 2, 0 _0807E134: .4byte gUnknown_08396FC4 _0807E138: .4byte 0x000006cc _0807E13C: .4byte 0x000006d2 _0807E140: .4byte 0x000006c2 thumb_func_end sub_807E110 thumb_func_start sub_807E144 sub_807E144: @ 807E144 push {r4,lr} bl sub_807E110 ldr r0, _0807E16C ldr r1, [r0] ldr r2, _0807E170 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _0807E164 adds r4, r1, r2 _0807E15A: bl sub_807E174 ldrb r0, [r4] cmp r0, 0 beq _0807E15A _0807E164: pop {r4} pop {r0} bx r0 .align 2, 0 _0807E16C: .4byte gUnknown_08396FC4 _0807E170: .4byte 0x000006d2 thumb_func_end sub_807E144 thumb_func_start sub_807E174 sub_807E174: @ 807E174 push {lr} ldr r1, _0807E190 ldr r0, [r1] ldr r2, _0807E194 adds r0, r2 ldrh r0, [r0] adds r2, r1, 0 cmp r0, 0x4 bhi _0807E250 lsls r0, 2 ldr r1, _0807E198 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807E190: .4byte gUnknown_08396FC4 _0807E194: .4byte 0x000006cc _0807E198: .4byte _0807E19C .align 2, 0 _0807E19C: .4byte _0807E1B0 .4byte _0807E1CC .4byte _0807E1E4 .4byte _0807E200 .4byte _0807E218 _0807E1B0: ldr r1, [r2] ldr r2, _0807E1C4 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _0807E254 ldr r0, _0807E1C8 adds r1, r0 b _0807E238 .align 2, 0 _0807E1C4: .4byte 0x000006c6 _0807E1C8: .4byte 0x000006cc _0807E1CC: bl sub_807D9A8 ldr r0, _0807E1DC ldr r1, [r0] ldr r2, _0807E1E0 adds r1, r2 b _0807E238 .align 2, 0 _0807E1DC: .4byte gUnknown_08396FC4 _0807E1E0: .4byte 0x000006cc _0807E1E4: bl sub_807D9C8 lsls r0, 24 cmp r0, 0 bne _0807E254 ldr r0, _0807E1F8 ldr r1, [r0] ldr r0, _0807E1FC adds r1, r0 b _0807E238 .align 2, 0 _0807E1F8: .4byte gUnknown_08396FC4 _0807E1FC: .4byte 0x000006cc _0807E200: bl sub_807DA14 ldr r0, _0807E210 ldr r1, [r0] ldr r2, _0807E214 adds r1, r2 b _0807E238 .align 2, 0 _0807E210: .4byte gUnknown_08396FC4 _0807E214: .4byte 0x000006cc _0807E218: bl sub_807DA4C ldr r0, _0807E240 ldr r2, [r0] ldr r1, _0807E244 adds r0, r2, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x6 bne _0807E254 ldr r0, _0807E248 adds r1, r2, r0 movs r0, 0x1 strb r0, [r1] ldr r0, _0807E24C adds r1, r2, r0 _0807E238: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _0807E254 .align 2, 0 _0807E240: .4byte gUnknown_08396FC4 _0807E244: .4byte 0x0000073c _0807E248: .4byte 0x000006d2 _0807E24C: .4byte 0x000006cc _0807E250: bl sub_807DA4C _0807E254: pop {r0} bx r0 thumb_func_end sub_807E174 thumb_func_start sub_807E258 sub_807E258: @ 807E258 movs r0, 0 bx lr thumb_func_end sub_807E258 thumb_func_start sub_807E25C sub_807E25C: @ 807E25C push {lr} ldr r0, _0807E26C movs r1, 0x50 bl CreateTask pop {r0} bx r0 .align 2, 0 _0807E26C: .4byte task50_0807B6D4 thumb_func_end sub_807E25C thumb_func_start task50_0807B6D4 task50_0807B6D4: @ 807E270 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _0807E294 adds r3, r0, r1 movs r1, 0x8 ldrsh r0, [r3, r1] cmp r0, 0x4 bhi _0807E35E lsls r0, 2 ldr r1, _0807E298 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807E294: .4byte 0x03004b20 _0807E298: .4byte _0807E29C .align 2, 0 _0807E29C: .4byte _0807E2B0 .4byte _0807E2D2 .4byte _0807E300 .4byte _0807E334 .4byte _0807E354 _0807E2B0: movs r2, 0 strh r2, [r3, 0xA] strh r2, [r3, 0xC] ldr r1, _0807E2F4 ldrh r0, [r1] strh r0, [r3, 0xE] ldr r4, _0807E2F8 adds r0, r4, 0 strh r0, [r1] adds r1, 0x8 movs r0, 0x9E strh r0, [r1] ldr r0, _0807E2FC strh r2, [r0] ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] _0807E2D2: ldrh r0, [r3, 0xA] adds r0, 0x3 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _0807E2E4 movs r0, 0x10 strh r0, [r3, 0xA] _0807E2E4: ldr r0, _0807E2FC ldrh r1, [r3, 0xA] strh r1, [r0] movs r1, 0xA ldrsh r0, [r3, r1] cmp r0, 0xF ble _0807E35E b _0807E344 .align 2, 0 _0807E2F4: .4byte REG_WININ _0807E2F8: .4byte 0x00003f3f _0807E2FC: .4byte REG_BLDY _0807E300: ldrh r0, [r3, 0xC] adds r0, 0x1 movs r1, 0 strh r0, [r3, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 ble _0807E35E strh r1, [r3, 0xC] ldrh r0, [r3, 0xA] subs r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 cmp r0, 0 bgt _0807E326 strh r1, [r3, 0xA] ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] _0807E326: ldr r1, _0807E330 ldrh r0, [r3, 0xA] strh r0, [r1] b _0807E35E .align 2, 0 _0807E330: .4byte REG_BLDY _0807E334: ldr r0, _0807E34C movs r1, 0 strh r1, [r0] adds r0, 0x4 strh r1, [r0] ldr r1, _0807E350 ldrh r0, [r3, 0xE] strh r0, [r1] _0807E344: ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] b _0807E35E .align 2, 0 _0807E34C: .4byte REG_BLDCNT _0807E350: .4byte REG_WININ _0807E354: bl script_env_2_enable_and_set_ctx_running adds r0, r4, 0 bl DestroyTask _0807E35E: pop {r4} pop {r0} bx r0 thumb_func_end task50_0807B6D4 thumb_func_start sub_807E364 sub_807E364: @ 807E364 push {r4,lr} ldr r0, _0807E3B4 ldr r1, [r0] ldr r2, _0807E3B8 adds r0, r1, r2 movs r3, 0 movs r2, 0 strh r2, [r0] ldr r4, _0807E3BC adds r0, r1, r4 strb r3, [r0] adds r4, 0x4 adds r0, r1, r4 strh r2, [r0] ldr r0, _0807E3C0 adds r2, r1, r0 movs r0, 0x8 strb r0, [r2] ldr r2, _0807E3C4 adds r0, r1, r2 strb r3, [r0] adds r4, 0x3 adds r2, r1, r4 movs r0, 0xA strb r0, [r2] ldr r0, _0807E3C8 adds r2, r1, r0 movs r0, 0x3 strb r0, [r2] ldr r2, _0807E3CC adds r1, r2 movs r0, 0x14 strb r0, [r1] movs r0, 0x55 bl sub_807DD5C pop {r4} pop {r0} bx r0 .align 2, 0 _0807E3B4: .4byte gUnknown_08396FC4 _0807E3B8: .4byte 0x000006cc _0807E3BC: .4byte 0x000006d2 _0807E3C0: .4byte 0x000006db _0807E3C4: .4byte 0x000006dc _0807E3C8: .4byte 0x000006c1 _0807E3CC: .4byte 0x000006c2 thumb_func_end sub_807E364 thumb_func_start sub_807E3D0 sub_807E3D0: @ 807E3D0 push {r4,lr} bl sub_807E364 ldr r0, _0807E3F8 ldr r1, [r0] ldr r2, _0807E3FC adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _0807E3F0 adds r4, r1, r2 _0807E3E6: bl sub_807E400 ldrb r0, [r4] cmp r0, 0 beq _0807E3E6 _0807E3F0: pop {r4} pop {r0} bx r0 .align 2, 0 _0807E3F8: .4byte gUnknown_08396FC4 _0807E3FC: .4byte 0x000006d2 thumb_func_end sub_807E3D0 thumb_func_start sub_807E400 sub_807E400: @ 807E400 push {r4,r5,lr} ldr r0, _0807E41C ldr r5, [r0] ldr r0, _0807E420 adds r4, r5, r0 ldrh r0, [r4] cmp r0, 0x1 beq _0807E430 cmp r0, 0x1 bgt _0807E424 cmp r0, 0 beq _0807E42A b _0807E454 .align 2, 0 _0807E41C: .4byte gUnknown_08396FC4 _0807E420: .4byte 0x000006cc _0807E424: cmp r0, 0x2 beq _0807E43C b _0807E454 _0807E42A: bl sub_807E7A4 b _0807E44E _0807E430: bl sub_807E7B4 lsls r0, 24 cmp r0, 0 bne _0807E454 b _0807E44E _0807E43C: bl sub_807E8E8 lsls r0, 24 cmp r0, 0 bne _0807E454 ldr r0, _0807E45C adds r1, r5, r0 movs r0, 0x1 strb r0, [r1] _0807E44E: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _0807E454: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807E45C: .4byte 0x000006d2 thumb_func_end sub_807E400 thumb_func_start sub_807E460 sub_807E460: @ 807E460 push {r4,r5,lr} ldr r0, _0807E47C ldr r2, [r0] ldr r1, _0807E480 adds r3, r2, r1 ldrh r1, [r3] adds r4, r0, 0 cmp r1, 0 beq _0807E484 cmp r1, 0x1 beq _0807E4B8 movs r0, 0 b _0807E4E6 .align 2, 0 _0807E47C: .4byte gUnknown_08396FC4 _0807E480: .4byte 0x000006ce _0807E484: ldr r5, _0807E4A4 adds r0, r2, r5 ldrb r0, [r0] cmp r0, 0x3 beq _0807E496 cmp r0, 0x5 beq _0807E496 cmp r0, 0xD bne _0807E4AC _0807E496: ldr r0, [r4] ldr r1, _0807E4A8 adds r0, r1 movs r1, 0xFF strh r1, [r0] movs r0, 0 b _0807E4E6 .align 2, 0 _0807E4A4: .4byte 0x000006d1 _0807E4A8: .4byte 0x000006ce _0807E4AC: ldr r4, _0807E4D8 adds r0, r2, r4 strb r1, [r0] ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] _0807E4B8: bl sub_807E8E8 lsls r0, 24 cmp r0, 0 bne _0807E4E4 bl sub_807E974 ldr r0, _0807E4DC ldr r1, [r0] ldr r5, _0807E4E0 adds r1, r5 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0 b _0807E4E6 .align 2, 0 _0807E4D8: .4byte 0x000006d9 _0807E4DC: .4byte gUnknown_08396FC4 _0807E4E0: .4byte 0x000006ce _0807E4E4: movs r0, 0x1 _0807E4E6: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_807E460 thumb_func_start sub_807E4EC sub_807E4EC: @ 807E4EC push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 movs r1, 0x30 ldrsh r0, [r7, r1] cmp r0, 0 bne _0807E500 ldr r0, _0807E5A4 strh r0, [r7, 0x30] _0807E500: movs r2, 0x30 ldrsh r1, [r7, r2] ldr r0, _0807E5A8 muls r0, r1 ldr r3, _0807E5AC adds r0, r3 lsls r0, 1 lsrs r0, 17 movs r1, 0x96 lsls r1, 2 bl __umodsi3 movs r1, 0 mov r8, r1 strh r0, [r7, 0x30] ldr r1, _0807E5B0 ldr r0, _0807E5B4 ldr r5, [r0] ldr r2, _0807E5B8 adds r5, r2 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldrh r6, [r0] movs r3, 0x30 ldrsh r0, [r7, r3] movs r1, 0x1E bl __modsi3 adds r4, r0, 0 lsls r4, 16 asrs r4, 16 lsls r0, r4, 3 strh r0, [r7, 0x32] movs r1, 0x30 ldrsh r0, [r7, r1] movs r1, 0x1E bl __divsi3 lsls r0, 16 lsls r4, 7 strh r4, [r7, 0x32] asrs r0, 9 strh r0, [r7, 0x34] ldr r2, _0807E5BC ldrb r1, [r5] lsls r1, 2 adds r1, r2 movs r3, 0 ldrsh r1, [r1, r3] muls r1, r6 subs r4, r1 strh r4, [r7, 0x32] ldrb r1, [r5] lsls r1, 2 adds r2, 0x2 adds r1, r2 movs r2, 0 ldrsh r1, [r1, r2] muls r1, r6 subs r0, r1 strh r0, [r7, 0x34] adds r0, r7, 0 movs r1, 0 bl StartSpriteAnim mov r3, r8 strh r3, [r7, 0x36] adds r2, r7, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r2] strh r6, [r7, 0x2E] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807E5A4: .4byte 0x00000169 _0807E5A8: .4byte 0x41c64e6d _0807E5AC: .4byte 0x00003039 _0807E5B0: .4byte gUnknown_0839AAC4 _0807E5B4: .4byte gUnknown_08396FC4 _0807E5B8: .4byte 0x000006dc _0807E5BC: .4byte gUnknown_0839AABC thumb_func_end sub_807E4EC thumb_func_start sub_807E5C0 sub_807E5C0: @ 807E5C0 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x36 ldrsh r0, [r5, r1] cmp r0, 0 bne _0807E69C ldr r3, _0807E634 ldr r4, _0807E638 ldr r2, [r4] ldr r0, _0807E63C adds r2, r0 ldrb r0, [r2] lsls r0, 2 adds r0, r3 ldrh r1, [r0] ldrh r0, [r5, 0x32] adds r1, r0 strh r1, [r5, 0x32] ldrb r0, [r2] lsls r0, 2 adds r3, 0x2 adds r0, r3 ldrh r0, [r0] ldrh r2, [r5, 0x34] adds r0, r2 strh r0, [r5, 0x34] lsls r1, 16 asrs r1, 20 strh r1, [r5, 0x20] lsls r0, 16 asrs r2, r0, 20 strh r2, [r5, 0x22] movs r3, 0x38 ldrsh r0, [r5, r3] adds r3, r4, 0 cmp r0, 0 beq _0807E640 adds r0, r1, 0 adds r0, 0x8 lsls r0, 16 movs r1, 0x80 lsls r1, 17 cmp r0, r1 bhi _0807E640 adds r1, r2, 0 movs r0, 0x10 negs r0, r0 cmp r1, r0 blt _0807E640 cmp r1, 0xB0 bgt _0807E640 adds r0, r5, 0 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 b _0807E64A .align 2, 0 _0807E634: .4byte gUnknown_0839AABC _0807E638: .4byte gUnknown_08396FC4 _0807E63C: .4byte 0x000006dc _0807E640: adds r0, r5, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 _0807E64A: strb r1, [r0] adds r4, r0, 0 ldrh r0, [r5, 0x2E] subs r0, 0x1 strh r0, [r5, 0x2E] lsls r0, 16 cmp r0, 0 bne _0807E6BC ldr r0, [r3] ldr r1, _0807E690 adds r0, r1 ldrb r1, [r0] adds r1, 0x1 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnim movs r0, 0x1 strh r0, [r5, 0x36] ldr r1, _0807E694 ldrh r0, [r5, 0x20] ldrh r1, [r1] subs r0, r1 strh r0, [r5, 0x20] ldr r1, _0807E698 ldrh r0, [r5, 0x22] ldrh r1, [r1] subs r0, r1 strh r0, [r5, 0x22] ldrb r0, [r4] movs r1, 0x2 orrs r0, r1 strb r0, [r4] b _0807E6BC .align 2, 0 _0807E690: .4byte 0x000006dc _0807E694: .4byte 0x030024d0 _0807E698: .4byte 0x030027e0 _0807E69C: adds r0, r5, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0807E6BC adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] adds r0, r5, 0 bl sub_807E4EC _0807E6BC: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_807E5C0 thumb_func_start sub_807E6C4 sub_807E6C4: @ 807E6C4 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x2E] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 bne _0807E6E4 adds r0, r4, 0 bl sub_807E4EC ldr r0, _0807E6E0 str r0, [r4, 0x1C] b _0807E6E8 .align 2, 0 _0807E6E0: .4byte sub_807E5C0 _0807E6E4: subs r0, r1, 0x1 strh r0, [r4, 0x2E] _0807E6E8: pop {r4} pop {r0} bx r0 thumb_func_end sub_807E6C4 thumb_func_start sub_807E6F0 sub_807E6F0: @ 807E6F0 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 lsls r5, r1, 16 lsrs r5, 16 ldr r2, _0807E774 ldr r0, _0807E778 ldr r0, [r0] ldr r1, _0807E77C adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r1, r0, r2 ldrh r1, [r1] mov r8, r1 adds r2, 0x2 adds r0, r2 ldrh r4, [r0] add r4, r8 adds r0, r5, 0 adds r1, r4, 0 bl __divsi3 lsls r0, 16 lsrs r6, r0, 16 adds r0, r5, 0 adds r1, r4, 0 bl __modsi3 lsls r0, 16 lsrs r4, r0, 16 subs r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _0807E780 cmp r6, r0 beq _0807E74E adds r5, r0, 0 _0807E73E: adds r0, r7, 0 bl sub_807E4EC subs r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, r5 bne _0807E73E _0807E74E: cmp r4, r8 bcs _0807E784 subs r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldr r0, _0807E780 cmp r4, r0 beq _0807E770 adds r5, r0, 0 _0807E760: adds r0, r7, 0 bl sub_807E5C0 subs r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r5 bne _0807E760 _0807E770: movs r0, 0 b _0807E798 .align 2, 0 _0807E774: .4byte gUnknown_0839AAC4 _0807E778: .4byte gUnknown_08396FC4 _0807E77C: .4byte 0x000006dc _0807E780: .4byte 0x0000ffff _0807E784: mov r1, r8 subs r0, r4, r1 strh r0, [r7, 0x2E] adds r2, r7, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] movs r0, 0x1 _0807E798: strh r0, [r7, 0x3A] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_807E6F0 thumb_func_start sub_807E7A4 sub_807E7A4: @ 807E7A4 push {lr} ldr r0, _0807E7B0 bl LoadSpriteSheet pop {r0} bx r0 .align 2, 0 _0807E7B0: .4byte gUnknown_0839AACC thumb_func_end sub_807E7A4 thumb_func_start sub_807E7B4 sub_807E7B4: @ 807E7B4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _0807E860 ldr r4, [r0] ldr r0, _0807E864 adds r2, r4, r0 ldrb r0, [r2] cmp r0, 0x18 bne _0807E7CE b _0807E8D4 _0807E7CE: ldrb r7, [r2] ldr r0, _0807E868 ldr r2, _0807E86C lsls r6, r7, 2 adds r2, r6, r2 movs r3, 0 ldrsh r1, [r2, r3] movs r3, 0x2 ldrsh r2, [r2, r3] movs r3, 0x4E bl CreateSpriteAtEnd lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x40 beq _0807E87C ldr r3, _0807E870 lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 adds r1, r3 movs r0, 0 strh r0, [r1, 0x38] lsls r2, r7, 3 adds r0, r2, r7 lsls r0, 4 adds r0, r7 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 ldr r1, _0807E874 mov r10, r6 mov r9, r3 mov r12, r4 mov r8, r2 cmp r0, r1 ble _0807E832 adds r2, r1, 0 _0807E81A: adds r0, r4, r5 lsls r0, 2 ldr r6, _0807E870 adds r0, r6 ldr r3, _0807E878 ldrh r6, [r0, 0x30] adds r1, r3, r6 strh r1, [r0, 0x30] lsls r1, 16 asrs r1, 16 cmp r1, r2 bgt _0807E81A _0807E832: mov r0, r12 adds r4, r0, r5 lsls r4, 2 add r4, r9 adds r0, r4, 0 bl sub_807E4EC mov r3, r8 adds r1, r3, r7 adds r0, r4, 0 bl sub_807E6F0 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _0807E860 ldr r0, [r0] add r0, r10 str r4, [r0] b _0807E882 .align 2, 0 _0807E860: .4byte gUnknown_08396FC4 _0807E864: .4byte 0x000006da _0807E868: .4byte gSpriteTemplate_839AAA4 _0807E86C: .4byte gUnknown_0839AA08 _0807E870: .4byte 0x02020004 _0807E874: .4byte 0x00000257 _0807E878: .4byte 0xfffffda8 _0807E87C: adds r1, r4, r6 movs r0, 0 str r0, [r1] _0807E882: ldr r0, _0807E8B8 ldr r2, [r0] ldr r6, _0807E8BC adds r1, r2, r6 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x18 bne _0807E8D8 movs r3, 0 adds r1, r2, 0 ldr r5, _0807E8C0 ldr r4, _0807E8C4 _0807E8A0: lsls r0, r3, 2 adds r0, r1, r0 ldr r2, [r0] cmp r2, 0 beq _0807E8CA movs r6, 0x3A ldrsh r0, [r2, r6] cmp r0, 0 bne _0807E8C8 str r5, [r2, 0x1C] b _0807E8CA .align 2, 0 _0807E8B8: .4byte gUnknown_08396FC4 _0807E8BC: .4byte 0x000006da _0807E8C0: .4byte sub_807E5C0 _0807E8C4: .4byte sub_807E6C4 _0807E8C8: str r4, [r2, 0x1C] _0807E8CA: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x17 bls _0807E8A0 _0807E8D4: movs r0, 0 b _0807E8DA _0807E8D8: movs r0, 0x1 _0807E8DA: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_807E7B4 thumb_func_start sub_807E8E8 sub_807E8E8: @ 807E8E8 push {r4-r7,lr} ldr r0, _0807E904 ldr r3, [r0] movs r0, 0xDB lsls r0, 3 adds r4, r3, r0 ldr r1, _0807E908 adds r5, r3, r1 ldrb r0, [r4] ldrb r7, [r5] cmp r0, r7 bne _0807E90C movs r0, 0 b _0807E96E .align 2, 0 _0807E904: .4byte gUnknown_08396FC4 _0807E908: .4byte 0x000006d9 _0807E90C: ldr r0, _0807E944 adds r2, r3, r0 ldrh r0, [r2] adds r0, 0x1 movs r6, 0 strh r0, [r2] ldr r7, _0807E948 adds r1, r3, r7 lsls r0, 16 lsrs r0, 16 ldrb r1, [r1] cmp r0, r1 bls _0807E96C strh r6, [r2] ldrb r0, [r4] adds r1, r0, 0 ldrb r5, [r5] cmp r1, r5 bcs _0807E94C adds r0, 0x1 strb r0, [r4] lsls r0, r1, 2 adds r0, r3, r0 ldr r1, [r0] movs r0, 0x1 strh r0, [r1, 0x38] b _0807E96C .align 2, 0 _0807E944: .4byte 0x000006d6 _0807E948: .4byte 0x000006db _0807E94C: subs r0, 0x1 strb r0, [r4] ldrb r0, [r4] lsls r0, 2 adds r0, r3, r0 ldr r0, [r0] strh r6, [r0, 0x38] ldrb r0, [r4] lsls r0, 2 adds r0, r3, r0 ldr r1, [r0] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] _0807E96C: movs r0, 0x1 _0807E96E: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_807E8E8 thumb_func_start sub_807E974 sub_807E974: @ 807E974 push {r4-r7,lr} movs r4, 0 ldr r0, _0807E9BC ldr r2, [r0] ldr r3, _0807E9C0 adds r1, r2, r3 adds r7, r0, 0 ldrb r1, [r1] cmp r4, r1 bcs _0807E9A6 adds r5, r2, 0 adds r6, r5, r3 _0807E98C: lsls r0, r4, 2 adds r0, r5, r0 ldr r0, [r0] cmp r0, 0 beq _0807E99A bl DestroySprite _0807E99A: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldrb r0, [r6] cmp r4, r0 bcc _0807E98C _0807E9A6: ldr r0, [r7] ldr r1, _0807E9C0 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, _0807E9C4 bl FreeSpriteTilesByTag pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807E9BC: .4byte gUnknown_08396FC4 _0807E9C0: .4byte 0x000006da _0807E9C4: .4byte 0x00001206 thumb_func_end sub_807E974 thumb_func_start sub_807E9C8 sub_807E9C8: @ 807E9C8 push {r4,lr} ldr r0, _0807EA04 ldr r1, [r0] ldr r2, _0807EA08 adds r0, r1, r2 movs r2, 0 movs r3, 0 strh r3, [r0] ldr r4, _0807EA0C adds r0, r1, r4 strb r2, [r0] ldr r0, _0807EA10 adds r2, r1, r0 movs r0, 0x3 strb r0, [r2] subs r4, 0x10 adds r2, r1, r4 movs r0, 0x14 strb r0, [r2] ldr r0, _0807EA14 adds r2, r1, r0 movs r0, 0x10 strb r0, [r2] movs r2, 0xDC lsls r2, 3 adds r1, r2 strh r3, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0807EA04: .4byte gUnknown_08396FC4 _0807EA08: .4byte 0x000006cc _0807EA0C: .4byte 0x000006d2 _0807EA10: .4byte 0x000006c1 _0807EA14: .4byte 0x000006e5 thumb_func_end sub_807E9C8 thumb_func_start sub_807EA18 sub_807EA18: @ 807EA18 push {r4-r7,lr} mov r7, r8 push {r7} bl sub_807E9C8 ldr r2, _0807EA78 ldr r1, [r2] ldr r3, _0807EA7C adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _0807EA6E mov r8, r2 adds r7, r1, r3 _0807EA34: bl snowflakes_progress2 movs r4, 0 mov r1, r8 ldr r0, [r1] ldr r3, _0807EA80 adds r0, r3 ldrb r0, [r0] cmp r4, r0 bcs _0807EA68 ldr r0, _0807EA78 ldr r5, [r0] adds r6, r5, r3 _0807EA4E: lsls r1, r4, 2 adds r0, r5, 0 adds r0, 0x60 adds r0, r1 ldr r0, [r0] bl sub_807ED48 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldrb r0, [r6] cmp r4, r0 bcc _0807EA4E _0807EA68: ldrb r0, [r7] cmp r0, 0 beq _0807EA34 _0807EA6E: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807EA78: .4byte gUnknown_08396FC4 _0807EA7C: .4byte 0x000006d2 _0807EA80: .4byte 0x000006e4 thumb_func_end sub_807EA18 thumb_func_start snowflakes_progress2 snowflakes_progress2: @ 807EA84 push {r4,r5,lr} ldr r0, _0807EAB4 ldr r5, [r0] ldr r0, _0807EAB8 adds r4, r5, r0 ldrh r0, [r4] cmp r0, 0 bne _0807EAAC bl snowflakes_progress lsls r0, 24 cmp r0, 0 bne _0807EAAC ldr r0, _0807EABC adds r1, r5, r0 movs r0, 0x1 strb r0, [r1] ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _0807EAAC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807EAB4: .4byte gUnknown_08396FC4 _0807EAB8: .4byte 0x000006cc _0807EABC: .4byte 0x000006d2 thumb_func_end snowflakes_progress2 thumb_func_start sub_807EAC0 sub_807EAC0: @ 807EAC0 push {r4,lr} ldr r0, _0807EAD8 ldr r2, [r0] ldr r0, _0807EADC adds r3, r2, r0 ldrh r1, [r3] cmp r1, 0 beq _0807EAE0 cmp r1, 0x1 beq _0807EAF2 movs r0, 0 b _0807EB1E .align 2, 0 _0807EAD8: .4byte gUnknown_08396FC4 _0807EADC: .4byte 0x000006ce _0807EAE0: ldr r4, _0807EB10 adds r0, r2, r4 strb r1, [r0] subs r4, 0x5 adds r0, r2, r4 strh r1, [r0] ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] _0807EAF2: bl snowflakes_progress lsls r0, 24 cmp r0, 0 bne _0807EB1C ldr r0, _0807EB14 ldr r1, [r0] ldr r0, _0807EB18 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0 b _0807EB1E .align 2, 0 _0807EB10: .4byte 0x000006e5 _0807EB14: .4byte gUnknown_08396FC4 _0807EB18: .4byte 0x000006ce _0807EB1C: movs r0, 0x1 _0807EB1E: pop {r4} pop {r1} bx r1 thumb_func_end sub_807EAC0 thumb_func_start snowflakes_progress snowflakes_progress: @ 807EB24 push {r4,lr} ldr r0, _0807EB40 ldr r1, [r0] ldr r0, _0807EB44 adds r3, r1, r0 ldr r4, _0807EB48 adds r2, r1, r4 ldrb r0, [r3] ldrb r4, [r2] cmp r0, r4 bne _0807EB4C movs r0, 0 b _0807EB8E .align 2, 0 _0807EB40: .4byte gUnknown_08396FC4 _0807EB44: .4byte 0x000006e4 _0807EB48: .4byte 0x000006e5 _0807EB4C: movs r0, 0xDC lsls r0, 3 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0x24 bls _0807EB76 movs r0, 0 strh r0, [r1] ldrb r0, [r3] ldrb r2, [r2] cmp r0, r2 bcs _0807EB72 bl snowflake_add b _0807EB76 _0807EB72: bl snowflake_remove _0807EB76: ldr r0, _0807EB94 ldr r0, [r0] ldr r2, _0807EB98 adds r1, r0, r2 ldr r4, _0807EB9C adds r0, r4 ldrb r1, [r1] ldrb r0, [r0] eors r1, r0 negs r0, r1 orrs r0, r1 lsrs r0, 31 _0807EB8E: pop {r4} pop {r1} bx r1 .align 2, 0 _0807EB94: .4byte gUnknown_08396FC4 _0807EB98: .4byte 0x000006e4 _0807EB9C: .4byte 0x000006e5 thumb_func_end snowflakes_progress thumb_func_start snowflake_add snowflake_add: @ 807EBA0 push {r4-r6,lr} ldr r0, _0807EBF4 movs r1, 0 movs r2, 0 movs r3, 0x4E bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _0807EC04 ldr r0, _0807EBF8 lsls r4, r1, 4 adds r4, r1 lsls r4, 2 adds r4, r0 ldr r0, _0807EBFC ldr r5, [r0] ldr r0, _0807EC00 adds r6, r5, r0 ldrb r0, [r6] strh r0, [r4, 0x36] adds r0, r4, 0 bl sub_807EC40 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] ldrb r0, [r6] adds r1, r0, 0x1 strb r1, [r6] lsls r0, 24 lsrs r0, 22 adds r5, 0x60 adds r5, r0 str r4, [r5] movs r0, 0x1 b _0807EC06 .align 2, 0 _0807EBF4: .4byte gSpriteTemplate_839AB04 _0807EBF8: .4byte 0x02020004 _0807EBFC: .4byte gUnknown_08396FC4 _0807EC00: .4byte 0x000006e4 _0807EC04: movs r0, 0 _0807EC06: pop {r4-r6} pop {r1} bx r1 thumb_func_end snowflake_add thumb_func_start snowflake_remove snowflake_remove: @ 807EC0C push {lr} ldr r0, _0807EC20 ldr r1, [r0] ldr r0, _0807EC24 adds r2, r1, r0 ldrb r0, [r2] cmp r0, 0 bne _0807EC28 movs r0, 0 b _0807EC3C .align 2, 0 _0807EC20: .4byte gUnknown_08396FC4 _0807EC24: .4byte 0x000006e4 _0807EC28: subs r0, 0x1 strb r0, [r2] lsls r0, 24 lsrs r0, 22 adds r1, 0x60 adds r1, r0 ldr r0, [r1] bl DestroySprite movs r0, 0x1 _0807EC3C: pop {r1} bx r1 thumb_func_end snowflake_remove thumb_func_start sub_807EC40 sub_807EC40: @ 807EC40 push {r4-r7,lr} adds r5, r0, 0 bl Random movs r1, 0x36 ldrsh r2, [r5, r1] lsls r1, r2, 2 adds r1, r2 movs r2, 0x7 ands r1, r2 lsls r4, r1, 4 subs r4, r1 lsls r4, 1 lsls r0, 16 lsrs r0, 16 movs r1, 0x1E bl __umodsi3 adds r4, r0 lsls r4, 16 lsrs r4, 16 ldr r1, _0807ECE4 adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrh r1, [r1] adds r0, r1 movs r2, 0x3 negs r2, r2 adds r1, r2, 0 subs r1, r0 movs r7, 0 strh r1, [r5, 0x22] ldr r1, _0807ECE8 adds r0, r5, 0 adds r0, 0x28 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrh r1, [r1] adds r0, r1 subs r4, r0 strh r4, [r5, 0x20] movs r1, 0x22 ldrsh r0, [r5, r1] lsls r0, 7 strh r0, [r5, 0x2E] strh r7, [r5, 0x24] bl Random lsls r0, 16 lsrs r0, 16 adds r6, r0, 0 movs r4, 0x3 ands r4, r6 lsls r0, r4, 2 adds r0, r4 adds r0, 0x40 strh r0, [r5, 0x30] strh r0, [r5, 0x3C] movs r1, 0x1 bics r1, r6 adds r0, r5, 0 bl StartSpriteAnim strh r7, [r5, 0x34] movs r0, 0x1 cmp r4, 0 bne _0807ECD0 movs r0, 0x2 _0807ECD0: strh r0, [r5, 0x32] movs r0, 0x1F ands r0, r6 adds r0, 0xD2 strh r0, [r5, 0x3A] strh r7, [r5, 0x38] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807ECE4: .4byte 0x030027e0 _0807ECE8: .4byte 0x030024d0 thumb_func_end sub_807EC40 thumb_func_start sub_807ECEC sub_807ECEC: @ 807ECEC push {r4,lr} adds r3, r0, 0 ldr r0, _0807ED38 ldr r0, [r0] ldr r1, _0807ED3C adds r4, r0, r1 ldrh r0, [r4] cmp r0, 0x12 bls _0807ED32 adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, _0807ED40 str r0, [r3, 0x1C] ldr r1, _0807ED44 adds r0, r3, 0 adds r0, 0x29 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrh r1, [r1] adds r0, r1 movs r1, 0xFA subs r1, r0 movs r2, 0 strh r1, [r3, 0x22] movs r1, 0x22 ldrsh r0, [r3, r1] lsls r0, 7 strh r0, [r3, 0x2E] strh r2, [r4] _0807ED32: pop {r4} pop {r0} bx r0 .align 2, 0 _0807ED38: .4byte gUnknown_08396FC4 _0807ED3C: .4byte 0x000006e2 _0807ED40: .4byte sub_807ED48 _0807ED44: .4byte 0x030027e0 thumb_func_end sub_807ECEC thumb_func_start sub_807ED48 sub_807ED48: @ 807ED48 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x2E] adds r0, r1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 23 strh r0, [r4, 0x22] ldrh r0, [r4, 0x32] ldrh r2, [r4, 0x34] adds r0, r2 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x34] ldr r1, _0807EDC0 movs r3, 0x34 ldrsh r0, [r4, r3] lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bge _0807ED7A adds r0, 0x3F _0807ED7A: asrs r0, 6 strh r0, [r4, 0x24] adds r0, r4, 0 adds r0, 0x28 movs r5, 0 ldrsb r5, [r0, r5] ldrh r0, [r4, 0x20] adds r0, r5 ldr r1, _0807EDC4 ldrh r1, [r1] adds r3, r1, r0 ldr r2, _0807EDC8 adds r0, r2, 0 ands r3, r0 adds r2, r3, 0 movs r0, 0x80 lsls r0, 1 ands r0, r2 cmp r0, 0 beq _0807EDAC ldr r3, _0807EDCC adds r0, r3, 0 orrs r2, r0 lsls r0, r2, 16 lsrs r3, r0, 16 _0807EDAC: lsls r0, r3, 16 asrs r0, 16 movs r2, 0x3 negs r2, r2 cmp r0, r2 bge _0807EDD0 adds r1, r5 movs r0, 0xF2 subs r0, r1 b _0807EDD8 .align 2, 0 _0807EDC0: .4byte gSineTable _0807EDC4: .4byte 0x030024d0 _0807EDC8: .4byte 0x000001ff _0807EDCC: .4byte 0xffffff00 _0807EDD0: cmp r0, 0xF2 ble _0807EDDA adds r0, r1, r5 subs r0, r2, r0 _0807EDD8: strh r0, [r4, 0x20] _0807EDDA: adds r0, r4, 0 adds r0, 0x29 movs r3, 0 ldrsb r3, [r0, r3] ldrh r0, [r4, 0x22] adds r0, r3 ldr r1, _0807EE18 ldrh r1, [r1] adds r2, r1, r0 movs r0, 0xFF ands r2, r0 adds r0, r2, 0 subs r0, 0xA4 lsls r0, 16 lsrs r0, 16 cmp r0, 0x6 bhi _0807EE1C adds r1, r3 movs r0, 0xFA subs r0, r1 movs r1, 0 strh r0, [r4, 0x22] movs r2, 0x22 ldrsh r0, [r4, r2] lsls r0, 7 strh r0, [r4, 0x2E] strh r1, [r4, 0x38] movs r0, 0xDC strh r0, [r4, 0x3A] b _0807EE48 .align 2, 0 _0807EE18: .4byte 0x030027e0 _0807EE1C: adds r0, r2, 0 subs r0, 0xF3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x6 bhi _0807EE48 movs r1, 0 movs r0, 0xA3 strh r0, [r4, 0x22] lsls r0, 7 strh r0, [r4, 0x2E] strh r1, [r4, 0x38] movs r0, 0xDC strh r0, [r4, 0x3A] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _0807EE7C str r0, [r4, 0x1C] _0807EE48: ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 movs r3, 0x3A ldrsh r1, [r4, r3] cmp r0, r1 bne _0807EE74 adds r0, r4, 0 bl sub_807EC40 movs r0, 0xFA strh r0, [r4, 0x22] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _0807EE7C str r0, [r4, 0x1C] _0807EE74: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807EE7C: .4byte sub_807ECEC thumb_func_end sub_807ED48 thumb_func_start sub_807EE80 sub_807EE80: @ 807EE80 push {r4,r5,lr} ldr r0, _0807EED8 ldr r1, [r0] ldr r2, _0807EEDC adds r0, r1, r2 movs r3, 0 movs r2, 0 strh r2, [r0] ldr r5, _0807EEE0 adds r4, r1, r5 strb r3, [r4] adds r5, 0x4 adds r0, r1, r5 strh r2, [r0] ldr r0, _0807EEE4 adds r2, r1, r0 movs r0, 0x4 strb r0, [r2] ldr r2, _0807EEE8 adds r0, r1, r2 strb r3, [r0] adds r5, 0x3 adds r2, r1, r5 movs r0, 0x10 strb r0, [r2] ldr r0, _0807EEEC adds r2, r1, r0 movs r0, 0x3 strb r0, [r2] subs r5, 0x17 adds r2, r1, r5 movs r0, 0x14 strb r0, [r2] strb r3, [r4] ldr r0, _0807EEF0 adds r1, r0 strb r3, [r1] movs r0, 0x51 bl sub_807DD5C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807EED8: .4byte gUnknown_08396FC4 _0807EEDC: .4byte 0x000006cc _0807EEE0: .4byte 0x000006d2 _0807EEE4: .4byte 0x000006db _0807EEE8: .4byte 0x000006dc _0807EEEC: .4byte 0x000006c1 _0807EEF0: .4byte 0x000006ed thumb_func_end sub_807EE80 thumb_func_start sub_807EEF4 sub_807EEF4: @ 807EEF4 push {r4,lr} bl sub_807EE80 ldr r0, _0807EF1C ldr r1, [r0] ldr r2, _0807EF20 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _0807EF14 adds r4, r1, r2 _0807EF0A: bl sub_807EFC0 ldrb r0, [r4] cmp r0, 0 beq _0807EF0A _0807EF14: pop {r4} pop {r0} bx r0 .align 2, 0 _0807EF1C: .4byte gUnknown_08396FC4 _0807EF20: .4byte 0x000006d2 thumb_func_end sub_807EEF4 thumb_func_start sub_807EF24 sub_807EF24: @ 807EF24 push {r4,r5,lr} ldr r0, _0807EF78 ldr r1, [r0] ldr r2, _0807EF7C adds r0, r1, r2 movs r4, 0 movs r2, 0 strh r2, [r0] ldr r5, _0807EF80 adds r3, r1, r5 strb r4, [r3] adds r5, 0x4 adds r0, r1, r5 strh r2, [r0] ldr r0, _0807EF84 adds r2, r1, r0 movs r0, 0x4 strb r0, [r2] adds r5, 0x6 adds r2, r1, r5 movs r0, 0x1 strb r0, [r2] ldr r0, _0807EF88 adds r2, r1, r0 movs r0, 0x18 strb r0, [r2] subs r5, 0x1B adds r2, r1, r5 movs r0, 0x3 strb r0, [r2] ldr r0, _0807EF8C adds r1, r0 movs r0, 0x14 strb r0, [r1] strb r4, [r3] movs r0, 0x53 bl sub_807DD5C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807EF78: .4byte gUnknown_08396FC4 _0807EF7C: .4byte 0x000006cc _0807EF80: .4byte 0x000006d2 _0807EF84: .4byte 0x000006db _0807EF88: .4byte 0x000006d9 _0807EF8C: .4byte 0x000006c2 thumb_func_end sub_807EF24 thumb_func_start sub_807EF90 sub_807EF90: @ 807EF90 push {r4,lr} bl sub_807EF24 ldr r0, _0807EFB8 ldr r1, [r0] ldr r2, _0807EFBC adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _0807EFB0 adds r4, r1, r2 _0807EFA6: bl sub_807EFC0 ldrb r0, [r4] cmp r0, 0 beq _0807EFA6 _0807EFB0: pop {r4} pop {r0} bx r0 .align 2, 0 _0807EFB8: .4byte gUnknown_08396FC4 _0807EFBC: .4byte 0x000006d2 thumb_func_end sub_807EF90 thumb_func_start sub_807EFC0 sub_807EFC0: @ 807EFC0 push {r4,r5,lr} bl sub_807F434 ldr r0, _0807EFE0 ldr r0, [r0] ldr r1, _0807EFE4 adds r0, r1 ldrh r0, [r0] cmp r0, 0xE bls _0807EFD6 b _0807F336 _0807EFD6: lsls r0, 2 ldr r1, _0807EFE8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807EFE0: .4byte gUnknown_08396FC4 _0807EFE4: .4byte 0x000006cc _0807EFE8: .4byte _0807EFEC .align 2, 0 _0807EFEC: .4byte _0807F028 .4byte _0807F044 .4byte _0807F068 .4byte _0807F098 .4byte _0807F0BC .4byte _0807F0EC .4byte _0807F11C .4byte _0807F148 .4byte _0807F166 .4byte _0807F1C4 .4byte _0807F248 .4byte _0807F270 .4byte _0807F2A0 .4byte _0807F2E4 .4byte _0807F318 _0807F028: bl sub_807E7A4 ldr r0, _0807F03C ldr r1, [r0] ldr r2, _0807F040 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 b _0807F334 .align 2, 0 _0807F03C: .4byte gUnknown_08396FC4 _0807F040: .4byte 0x000006cc _0807F044: bl sub_807E7B4 lsls r0, 24 cmp r0, 0 beq _0807F050 b _0807F336 _0807F050: ldr r0, _0807F060 ldr r1, [r0] ldr r3, _0807F064 adds r1, r3 ldrh r0, [r1] adds r0, 0x1 b _0807F334 .align 2, 0 _0807F060: .4byte gUnknown_08396FC4 _0807F064: .4byte 0x000006cc _0807F068: bl sub_807E8E8 lsls r0, 24 cmp r0, 0 beq _0807F074 b _0807F336 _0807F074: ldr r0, _0807F08C ldr r1, [r0] ldr r0, _0807F090 adds r2, r1, r0 movs r0, 0x1 strb r0, [r2] ldr r2, _0807F094 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 b _0807F334 .align 2, 0 _0807F08C: .4byte gUnknown_08396FC4 _0807F090: .4byte 0x000006d2 _0807F094: .4byte 0x000006cc _0807F098: ldr r0, _0807F0B0 ldr r1, [r0] ldr r3, _0807F0B4 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _0807F0A8 b _0807F336 _0807F0A8: ldr r0, _0807F0B8 adds r1, r0 movs r0, 0x6 b _0807F334 .align 2, 0 _0807F0B0: .4byte gUnknown_08396FC4 _0807F0B4: .4byte 0x000006c6 _0807F0B8: .4byte 0x000006cc _0807F0BC: ldr r0, _0807F10C ldr r4, [r0] ldr r2, _0807F110 adds r1, r4, r2 movs r0, 0x1 strb r0, [r1] bl Random lsls r0, 16 lsrs r0, 16 movs r5, 0xB4 lsls r5, 1 adds r1, r5, 0 bl __umodsi3 adds r0, r5 ldr r3, _0807F114 adds r1, r4, r3 strh r0, [r1] ldr r0, _0807F118 adds r4, r0 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _0807F0EC: ldr r0, _0807F10C ldr r2, [r0] ldr r3, _0807F114 adds r1, r2, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] lsls r0, 16 cmp r0, 0 beq _0807F102 b _0807F336 _0807F102: ldr r0, _0807F118 adds r1, r2, r0 ldrh r0, [r1] adds r0, 0x1 b _0807F334 .align 2, 0 _0807F10C: .4byte gUnknown_08396FC4 _0807F110: .4byte 0x000006ea _0807F114: .4byte 0x000006e6 _0807F118: .4byte 0x000006cc _0807F11C: ldr r0, _0807F13C ldr r4, [r0] ldr r1, _0807F140 adds r0, r4, r1 movs r5, 0x1 strb r5, [r0] bl Random lsls r0, 16 lsrs r0, 16 ands r0, r5 ldr r2, _0807F144 adds r1, r4, r2 strb r0, [r1] b _0807F1A4 .align 2, 0 _0807F13C: .4byte gUnknown_08396FC4 _0807F140: .4byte 0x000006ea _0807F144: .4byte 0x000006eb _0807F148: bl Random ldr r1, _0807F1B0 ldr r2, [r1] movs r1, 0x1 ands r1, r0 adds r1, 0x1 ldr r3, _0807F1B4 adds r0, r2, r3 strb r1, [r0] ldr r0, _0807F1B8 adds r2, r0 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] _0807F166: movs r0, 0x13 bl sub_807D5BC ldr r0, _0807F1B0 ldr r1, [r0] ldr r2, _0807F1BC adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _0807F18A ldr r3, _0807F1B4 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0x1 bne _0807F18A movs r0, 0x14 bl sub_807F3F8 _0807F18A: bl Random ldr r1, _0807F1B0 ldr r4, [r1] lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 adds r0, 0x6 ldr r2, _0807F1C0 adds r1, r4, r2 strh r0, [r1] _0807F1A4: ldr r3, _0807F1B8 adds r4, r3 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _0807F336 .align 2, 0 _0807F1B0: .4byte gUnknown_08396FC4 _0807F1B4: .4byte 0x000006ec _0807F1B8: .4byte 0x000006cc _0807F1BC: .4byte 0x000006eb _0807F1C0: .4byte 0x000006e6 _0807F1C4: ldr r0, _0807F210 ldr r4, [r0] ldr r0, _0807F214 adds r5, r4, r0 ldrh r0, [r5] subs r0, 0x1 strh r0, [r5] lsls r0, 16 cmp r0, 0 beq _0807F1DA b _0807F336 _0807F1DA: movs r0, 0x3 bl sub_807D5BC ldr r2, _0807F218 adds r1, r4, r2 movs r0, 0x1 strb r0, [r1] ldr r3, _0807F21C adds r1, r4, r3 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 beq _0807F224 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xF ands r0, r1 adds r0, 0x3C strh r0, [r5] ldr r0, _0807F220 adds r1, r4, r0 movs r0, 0xA b _0807F334 .align 2, 0 _0807F210: .4byte gUnknown_08396FC4 _0807F214: .4byte 0x000006e6 _0807F218: .4byte 0x000006ea _0807F21C: .4byte 0x000006ec _0807F220: .4byte 0x000006cc _0807F224: ldr r1, _0807F234 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _0807F23C ldr r2, _0807F238 adds r1, r4, r2 b _0807F332 .align 2, 0 _0807F234: .4byte 0x000006eb _0807F238: .4byte 0x000006cc _0807F23C: ldr r3, _0807F244 adds r1, r4, r3 movs r0, 0xB b _0807F334 .align 2, 0 _0807F244: .4byte 0x000006cc _0807F248: ldr r0, _0807F264 ldr r2, [r0] ldr r0, _0807F268 adds r1, r2, r0 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] lsls r0, 16 cmp r0, 0 bne _0807F336 ldr r3, _0807F26C adds r1, r2, r3 movs r0, 0x8 b _0807F334 .align 2, 0 _0807F264: .4byte gUnknown_08396FC4 _0807F268: .4byte 0x000006e6 _0807F26C: .4byte 0x000006cc _0807F270: bl Random ldr r1, _0807F294 ldr r2, [r1] lsls r0, 16 lsrs r0, 16 movs r1, 0xF ands r0, r1 adds r0, 0x3C ldr r3, _0807F298 adds r1, r2, r3 strh r0, [r1] ldr r0, _0807F29C adds r2, r0 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] b _0807F336 .align 2, 0 _0807F294: .4byte gUnknown_08396FC4 _0807F298: .4byte 0x000006e6 _0807F29C: .4byte 0x000006cc _0807F2A0: ldr r0, _0807F2D8 ldr r5, [r0] ldr r1, _0807F2DC adds r4, r5, r1 ldrh r0, [r4] subs r0, 0x1 strh r0, [r4] lsls r0, 16 cmp r0, 0 bne _0807F336 movs r0, 0x64 bl sub_807F3F8 movs r0, 0x13 bl sub_807D5BC bl Random movs r1, 0xF ands r1, r0 adds r1, 0x1E strh r1, [r4] ldr r2, _0807F2E0 adds r1, r5, r2 ldrh r0, [r1] adds r0, 0x1 b _0807F334 .align 2, 0 _0807F2D8: .4byte gUnknown_08396FC4 _0807F2DC: .4byte 0x000006e6 _0807F2E0: .4byte 0x000006cc _0807F2E4: ldr r0, _0807F30C ldr r4, [r0] ldr r3, _0807F310 adds r1, r4, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] lsls r0, 16 cmp r0, 0 bne _0807F336 movs r0, 0x13 movs r1, 0x3 movs r2, 0x5 bl sub_807D5F0 ldr r0, _0807F314 adds r1, r4, r0 ldrh r0, [r1] adds r0, 0x1 b _0807F334 .align 2, 0 _0807F30C: .4byte gUnknown_08396FC4 _0807F310: .4byte 0x000006e6 _0807F314: .4byte 0x000006cc _0807F318: ldr r0, _0807F33C ldr r2, [r0] ldr r1, _0807F340 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x3 bne _0807F336 ldr r3, _0807F344 adds r1, r2, r3 movs r0, 0x1 strb r0, [r1] ldr r0, _0807F348 adds r1, r2, r0 _0807F332: movs r0, 0x4 _0807F334: strh r0, [r1] _0807F336: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807F33C: .4byte gUnknown_08396FC4 _0807F340: .4byte 0x000006c6 _0807F344: .4byte 0x000006ea _0807F348: .4byte 0x000006cc thumb_func_end sub_807EFC0 thumb_func_start sub_807F34C sub_807F34C: @ 807F34C push {r4-r6,lr} ldr r0, _0807F368 ldr r6, [r0] ldr r0, _0807F36C adds r5, r6, r0 ldrh r1, [r5] cmp r1, 0x1 beq _0807F382 cmp r1, 0x1 bgt _0807F370 cmp r1, 0 beq _0807F376 b _0807F3E8 .align 2, 0 _0807F368: .4byte gUnknown_08396FC4 _0807F36C: .4byte 0x000006ce _0807F370: cmp r1, 0x2 beq _0807F3CC b _0807F3E8 _0807F376: ldr r2, _0807F3BC adds r0, r6, r2 strb r1, [r0] ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _0807F382: bl sub_807EFC0 ldr r0, _0807F3C0 ldr r2, [r0] ldr r1, _0807F3BC adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _0807F3F0 subs r1, 0x19 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x3 beq _0807F3E8 cmp r0, 0x5 beq _0807F3E8 cmp r0, 0xD beq _0807F3E8 ldr r0, _0807F3C4 adds r1, r2, r0 movs r0, 0 strb r0, [r1] ldr r0, _0807F3C8 adds r1, r2, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _0807F3F0 .align 2, 0 _0807F3BC: .4byte 0x000006ea _0807F3C0: .4byte gUnknown_08396FC4 _0807F3C4: .4byte 0x000006d9 _0807F3C8: .4byte 0x000006ce _0807F3CC: bl sub_807E8E8 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0807F3F0 bl sub_807E974 ldr r1, _0807F3EC adds r0, r6, r1 strb r4, [r0] ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _0807F3E8: movs r0, 0 b _0807F3F2 .align 2, 0 _0807F3EC: .4byte 0x000006ed _0807F3F0: movs r0, 0x1 _0807F3F2: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_807F34C thumb_func_start sub_807F3F8 sub_807F3F8: @ 807F3F8 push {r4-r6,lr} lsls r0, 16 lsrs r6, r0, 16 ldr r0, _0807F42C ldr r4, [r0] ldr r0, _0807F430 adds r5, r4, r0 ldrb r0, [r5] cmp r0, 0 bne _0807F426 bl Random lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 bl __umodsi3 movs r2, 0xDD lsls r2, 3 adds r1, r4, r2 strh r0, [r1] movs r0, 0x1 strb r0, [r5] _0807F426: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807F42C: .4byte gUnknown_08396FC4 _0807F430: .4byte 0x000006ed thumb_func_end sub_807F3F8 thumb_func_start sub_807F434 sub_807F434: @ 807F434 push {r4,lr} ldr r0, _0807F46C ldr r1, [r0] ldr r2, _0807F470 adds r0, r1, r2 ldrb r4, [r0] cmp r4, 0x1 bne _0807F494 movs r0, 0xDD lsls r0, 3 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _0807F490 bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 bne _0807F494 bl Random ands r4, r0 cmp r4, 0 beq _0807F474 movs r0, 0x57 bl audio_play b _0807F47A .align 2, 0 _0807F46C: .4byte gUnknown_08396FC4 _0807F470: .4byte 0x000006ed _0807F474: movs r0, 0x58 bl audio_play _0807F47A: ldr r0, _0807F488 ldr r0, [r0] ldr r1, _0807F48C adds r0, r1 movs r1, 0 strb r1, [r0] b _0807F494 .align 2, 0 _0807F488: .4byte gUnknown_08396FC4 _0807F48C: .4byte 0x000006ed _0807F490: subs r0, 0x1 strh r0, [r1] _0807F494: pop {r4} pop {r0} bx r0 thumb_func_end sub_807F434 thumb_func_start sub_807F49C sub_807F49C: @ 807F49C push {lr} ldr r0, _0807F4E8 ldr r3, [r0] ldr r0, _0807F4EC adds r1, r3, r0 movs r2, 0 movs r0, 0 strh r0, [r1] ldr r1, _0807F4F0 adds r0, r3, r1 strb r2, [r0] subs r1, 0x11 adds r0, r3, r1 strb r2, [r0] ldr r2, _0807F4F4 adds r1, r3, r2 movs r0, 0x14 strb r0, [r1] ldr r1, _0807F4F8 adds r0, r3, r1 ldrb r1, [r0] cmp r1, 0 bne _0807F4E4 adds r2, 0x2E adds r0, r3, r2 strh r1, [r0] adds r2, 0x2 adds r0, r3, r2 strh r1, [r0] subs r2, 0x4 adds r0, r3, r2 strh r1, [r0] movs r0, 0 movs r1, 0x10 bl sub_807DB64 _0807F4E4: pop {r0} bx r0 .align 2, 0 _0807F4E8: .4byte gUnknown_08396FC4 _0807F4EC: .4byte 0x000006cc _0807F4F0: .4byte 0x000006d2 _0807F4F4: .4byte 0x000006c2 _0807F4F8: .4byte 0x000006fb thumb_func_end sub_807F49C thumb_func_start sub_807F4FC sub_807F4FC: @ 807F4FC push {r4,lr} bl sub_807F49C ldr r0, _0807F524 ldr r1, [r0] ldr r2, _0807F528 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _0807F51C adds r4, r1, r2 _0807F512: bl sub_807F52C ldrb r0, [r4] cmp r0, 0 beq _0807F512 _0807F51C: pop {r4} pop {r0} bx r0 .align 2, 0 _0807F524: .4byte gUnknown_08396FC4 _0807F528: .4byte 0x000006d2 thumb_func_end sub_807F4FC thumb_func_start sub_807F52C sub_807F52C: @ 807F52C push {r4-r6,lr} ldr r0, _0807F578 ldr r6, [r0] ldr r0, _0807F57C ldr r1, _0807F580 adds r2, r6, r1 ldrh r0, [r0] ldrh r1, [r2] subs r0, r1 movs r1, 0xFF ands r0, r1 ldr r3, _0807F584 adds r1, r6, r3 strh r0, [r1] movs r0, 0xDE lsls r0, 3 adds r1, r6, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0x3 bls _0807F566 movs r0, 0 strh r0, [r1] ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] _0807F566: ldr r1, _0807F588 adds r5, r6, r1 ldrh r4, [r5] cmp r4, 0 beq _0807F58C cmp r4, 0x1 beq _0807F5CC b _0807F5E2 .align 2, 0 _0807F578: .4byte gUnknown_08396FC4 _0807F57C: .4byte 0x030024d0 _0807F580: .4byte 0x000006f2 _0807F584: .4byte 0x000006ee _0807F588: .4byte 0x000006cc _0807F58C: bl sub_807F6E8 movs r3, 0xDA lsls r3, 3 adds r0, r6, r3 ldrb r0, [r0] cmp r0, 0x6 bne _0807F5A8 movs r0, 0xC movs r1, 0x8 movs r2, 0x3 bl sub_807DBA4 b _0807F5B2 _0807F5A8: movs r0, 0x4 movs r1, 0x10 movs r2, 0 bl sub_807DBA4 _0807F5B2: ldr r0, _0807F5C4 ldr r1, [r0] ldr r0, _0807F5C8 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _0807F5E2 .align 2, 0 _0807F5C4: .4byte gUnknown_08396FC4 _0807F5C8: .4byte 0x000006cc _0807F5CC: bl sub_807DBE8 lsls r0, 24 cmp r0, 0 beq _0807F5E2 ldr r1, _0807F5E8 adds r0, r6, r1 strb r4, [r0] ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _0807F5E2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807F5E8: .4byte 0x000006d2 thumb_func_end sub_807F52C thumb_func_start sub_807F5EC sub_807F5EC: @ 807F5EC push {r4,lr} ldr r0, _0807F63C ldr r2, [r0] ldr r0, _0807F640 ldr r1, _0807F644 adds r3, r2, r1 ldrh r0, [r0] ldrh r1, [r3] subs r0, r1 movs r1, 0xFF ands r0, r1 ldr r4, _0807F648 adds r1, r2, r4 strh r0, [r1] movs r0, 0xDE lsls r0, 3 adds r1, r2, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0x3 bls _0807F626 movs r0, 0 strh r0, [r1] ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] _0807F626: ldr r1, _0807F64C adds r4, r2, r1 ldrh r0, [r4] cmp r0, 0x1 beq _0807F662 cmp r0, 0x1 bgt _0807F650 cmp r0, 0 beq _0807F656 b _0807F67A .align 2, 0 _0807F63C: .4byte gUnknown_08396FC4 _0807F640: .4byte 0x030024d0 _0807F644: .4byte 0x000006f2 _0807F648: .4byte 0x000006ee _0807F64C: .4byte 0x000006ce _0807F650: cmp r0, 0x2 beq _0807F66E b _0807F67A _0807F656: movs r0, 0 movs r1, 0x10 movs r2, 0x3 bl sub_807DBA4 b _0807F672 _0807F662: bl sub_807DBE8 lsls r0, 24 cmp r0, 0 beq _0807F67E b _0807F672 _0807F66E: bl sub_807F7A4 _0807F672: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _0807F67E _0807F67A: movs r0, 0 b _0807F680 _0807F67E: movs r0, 0x1 _0807F680: pop {r4} pop {r1} bx r1 thumb_func_end sub_807F5EC thumb_func_start sub_807F688 sub_807F688: @ 807F688 push {r4,lr} adds r3, r0, 0 ldr r0, _0807F6D4 ldrb r0, [r0] strh r0, [r3, 0x26] ldr r0, _0807F6D8 ldr r0, [r0] ldr r1, _0807F6DC adds r2, r0, r1 ldrh r1, [r2] adds r1, 0x20 movs r4, 0x2E ldrsh r0, [r3, r4] lsls r0, 6 adds r1, r0 strh r1, [r3, 0x20] lsls r1, 16 ldr r0, _0807F6E0 cmp r1, r0 ble _0807F6CC movs r0, 0xF0 lsls r0, 1 adds r1, r0, 0 ldrh r2, [r2] adds r1, r2 movs r4, 0x2E ldrsh r2, [r3, r4] movs r0, 0x4 subs r0, r2 lsls r0, 6 subs r1, r0 ldr r0, _0807F6E4 ands r1, r0 strh r1, [r3, 0x20] _0807F6CC: pop {r4} pop {r0} bx r0 .align 2, 0 _0807F6D4: .4byte 0x030027e0 _0807F6D8: .4byte gUnknown_08396FC4 _0807F6DC: .4byte 0x000006ee _0807F6E0: .4byte 0x010f0000 _0807F6E4: .4byte 0x000001ff thumb_func_end sub_807F688 thumb_func_start sub_807F6E8 sub_807F6E8: @ 807F6E8 push {r4,r5,lr} sub sp, 0x8 ldr r0, _0807F75C ldr r0, [r0] ldr r1, _0807F760 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0807F792 ldr r0, _0807F764 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] mov r0, sp bl LoadSpriteSheet movs r5, 0 _0807F70C: ldr r0, _0807F768 movs r1, 0 movs r2, 0 movs r3, 0xFF bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0807F770 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _0807F76C adds r4, r0 adds r0, r5, 0 movs r1, 0x5 bl __umodsi3 strh r0, [r4, 0x2E] lsls r0, 16 lsrs r0, 10 adds r0, 0x20 strh r0, [r4, 0x20] adds r0, r5, 0 movs r1, 0x5 bl __udivsi3 lsls r0, 16 lsrs r0, 10 adds r0, 0x20 strh r0, [r4, 0x22] ldr r2, _0807F75C ldr r0, [r2] lsls r1, r5, 2 adds r0, 0xA0 adds r0, r1 str r4, [r0] b _0807F77E .align 2, 0 _0807F75C: .4byte gUnknown_08396FC4 _0807F760: .4byte 0x000006fb _0807F764: .4byte gUnknown_0839ABA8 _0807F768: .4byte gSpriteTemplate_839AB90 _0807F76C: .4byte 0x02020004 _0807F770: ldr r2, _0807F79C ldr r1, [r2] lsls r0, r5, 2 adds r1, 0xA0 adds r1, r0 movs r0, 0 str r0, [r1] _0807F77E: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x13 bls _0807F70C ldr r0, [r2] ldr r1, _0807F7A0 adds r0, r1 movs r1, 0x1 strb r1, [r0] _0807F792: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807F79C: .4byte gUnknown_08396FC4 _0807F7A0: .4byte 0x000006fb thumb_func_end sub_807F6E8 thumb_func_start sub_807F7A4 sub_807F7A4: @ 807F7A4 push {r4,r5,lr} ldr r0, _0807F7EC ldr r1, [r0] ldr r2, _0807F7F0 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _0807F7E4 movs r4, 0 adds r5, r1, 0 adds r5, 0xA0 _0807F7BA: lsls r0, r4, 2 adds r0, r5, r0 ldr r0, [r0] cmp r0, 0 beq _0807F7C8 bl DestroySprite _0807F7C8: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x13 bls _0807F7BA ldr r0, _0807F7F4 bl FreeSpriteTilesByTag ldr r0, _0807F7EC ldr r0, [r0] ldr r1, _0807F7F0 adds r0, r1 movs r1, 0 strb r1, [r0] _0807F7E4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807F7EC: .4byte gUnknown_08396FC4 _0807F7F0: .4byte 0x000006fb _0807F7F4: .4byte 0x00001201 thumb_func_end sub_807F7A4 thumb_func_start sub_807F7F8 sub_807F7F8: @ 807F7F8 push {lr} ldr r0, _0807F844 ldr r1, [r0] ldr r0, _0807F848 adds r2, r1, r0 movs r3, 0 movs r0, 0 strh r0, [r2] ldr r2, _0807F84C adds r0, r1, r2 strb r3, [r0] subs r2, 0x11 adds r0, r1, r2 strb r3, [r0] ldr r3, _0807F850 adds r0, r1, r3 movs r2, 0x14 strb r2, [r0] adds r3, 0x3C adds r0, r1, r3 strh r2, [r0] movs r0, 0xE0 lsls r0, 3 adds r1, r0 ldrb r0, [r1] cmp r0, 0 bne _0807F840 movs r0, 0 movs r1, 0x10 bl sub_807DB64 ldr r1, _0807F854 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] _0807F840: pop {r0} bx r0 .align 2, 0 _0807F844: .4byte gUnknown_08396FC4 _0807F848: .4byte 0x000006cc _0807F84C: .4byte 0x000006d2 _0807F850: .4byte 0x000006c2 _0807F854: .4byte REG_BLDALPHA thumb_func_end sub_807F7F8 thumb_func_start sub_807F858 sub_807F858: @ 807F858 push {r4,lr} bl sub_807F7F8 ldr r0, _0807F880 ldr r1, [r0] ldr r2, _0807F884 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _0807F878 adds r4, r1, r2 _0807F86E: bl sub_807F888 ldrb r0, [r4] cmp r0, 0 beq _0807F86E _0807F878: pop {r4} pop {r0} bx r0 .align 2, 0 _0807F880: .4byte gUnknown_08396FC4 _0807F884: .4byte 0x000006d2 thumb_func_end sub_807F858 thumb_func_start sub_807F888 sub_807F888: @ 807F888 push {r4,r5,lr} ldr r2, _0807F8CC ldr r1, [r2] ldr r0, _0807F8D0 ldrh r0, [r0] ldr r3, _0807F8D4 ands r3, r0 ldr r0, _0807F8D8 adds r1, r0 strh r3, [r1] cmp r3, 0xEF bls _0807F8B4 adds r4, r1, 0 adds r1, r3, 0 _0807F8A4: adds r3, r1, 0 subs r3, 0xF0 adds r1, r3, 0 lsls r0, r3, 16 lsrs r0, 16 cmp r0, 0xEF bhi _0807F8A4 strh r3, [r4] _0807F8B4: ldr r5, [r2] ldr r1, _0807F8DC adds r4, r5, r1 ldrh r0, [r4] cmp r0, 0x1 beq _0807F8EC cmp r0, 0x1 bgt _0807F8E0 cmp r0, 0 beq _0807F8E6 b _0807F928 .align 2, 0 _0807F8CC: .4byte gUnknown_08396FC4 _0807F8D0: .4byte 0x030024d0 _0807F8D4: .4byte 0x000001ff _0807F8D8: .4byte 0x000006fc _0807F8DC: .4byte 0x000006cc _0807F8E0: cmp r0, 0x2 beq _0807F908 b _0807F928 _0807F8E6: bl sub_807F99C b _0807F91A _0807F8EC: movs r1, 0xE0 lsls r1, 3 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 bne _0807F8FC bl sub_807F9AC _0807F8FC: movs r0, 0x10 movs r1, 0 movs r2, 0x1 bl sub_807DBA4 b _0807F91A _0807F908: bl sub_807DBE8 lsls r0, 24 cmp r0, 0 beq _0807F92C ldr r0, _0807F924 adds r1, r5, r0 movs r0, 0x1 strb r0, [r1] _0807F91A: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _0807F92C .align 2, 0 _0807F924: .4byte 0x000006d2 _0807F928: bl sub_807DBE8 _0807F92C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_807F888 thumb_func_start sub_807F934 sub_807F934: @ 807F934 push {r4,lr} ldr r0, _0807F950 ldr r0, [r0] ldr r1, _0807F954 adds r4, r0, r1 ldrh r0, [r4] cmp r0, 0x1 beq _0807F96A cmp r0, 0x1 bgt _0807F958 cmp r0, 0 beq _0807F95E b _0807F98C .align 2, 0 _0807F950: .4byte gUnknown_08396FC4 _0807F954: .4byte 0x000006ce _0807F958: cmp r0, 0x2 beq _0807F980 b _0807F98C _0807F95E: movs r0, 0 movs r1, 0x10 movs r2, 0x1 bl sub_807DBA4 b _0807F978 _0807F96A: bl sub_807DBE8 lsls r0, 24 cmp r0, 0 beq _0807F994 bl sub_807FA54 _0807F978: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _0807F994 _0807F980: ldr r1, _0807F990 movs r0, 0 strh r0, [r1] ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _0807F98C: movs r0, 0 b _0807F996 .align 2, 0 _0807F990: .4byte REG_BLDALPHA _0807F994: movs r0, 0x1 _0807F996: pop {r4} pop {r1} bx r1 thumb_func_end sub_807F934 thumb_func_start sub_807F99C sub_807F99C: @ 807F99C push {lr} ldr r0, _0807F9A8 bl LoadSpriteSheet pop {r0} bx r0 .align 2, 0 _0807F9A8: .4byte gUnknown_0839ABB0 thumb_func_end sub_807F99C thumb_func_start sub_807F9AC sub_807F9AC: @ 807F9AC push {r4,r5,lr} ldr r0, _0807FA18 ldr r0, [r0] movs r1, 0xE0 lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0807FA48 movs r5, 0 _0807F9C0: ldr r0, _0807FA1C movs r1, 0 movs r2, 0 movs r3, 0x4E bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0807FA24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _0807FA20 adds r4, r0 movs r0, 0 strh r0, [r4, 0x30] adds r0, r5, 0 movs r1, 0x5 bl __umodsi3 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] adds r0, r5, 0 movs r1, 0x5 bl __udivsi3 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x34] movs r1, 0x34 ldrsh r0, [r4, r1] lsls r0, 6 adds r0, 0x20 strh r0, [r4, 0x2E] ldr r2, _0807FA18 ldr r0, [r2] lsls r1, r5, 2 adds r0, 0xF0 adds r0, r1 str r4, [r0] b _0807FA32 .align 2, 0 _0807FA18: .4byte gUnknown_08396FC4 _0807FA1C: .4byte gSpriteTemplate_839ABD0 _0807FA20: .4byte 0x02020004 _0807FA24: ldr r2, _0807FA50 ldr r1, [r2] lsls r0, r5, 2 adds r1, 0xF0 adds r1, r0 movs r0, 0 str r0, [r1] _0807FA32: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _0807F9C0 ldr r0, [r2] movs r1, 0xE0 lsls r1, 3 adds r0, r1 movs r1, 0x1 strb r1, [r0] _0807FA48: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807FA50: .4byte gUnknown_08396FC4 thumb_func_end sub_807F9AC thumb_func_start sub_807FA54 sub_807FA54: @ 807FA54 push {r4,r5,lr} ldr r0, _0807FAA0 ldr r1, [r0] movs r2, 0xE0 lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _0807FA98 movs r4, 0 adds r5, r1, 0 adds r5, 0xF0 _0807FA6C: lsls r0, r4, 2 adds r0, r5, r0 ldr r0, [r0] cmp r0, 0 beq _0807FA7A bl DestroySprite _0807FA7A: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x13 bls _0807FA6C ldr r0, _0807FAA4 bl FreeSpriteTilesByTag ldr r0, _0807FAA0 ldr r0, [r0] movs r1, 0xE0 lsls r1, 3 adds r0, r1 movs r1, 0 strb r1, [r0] _0807FA98: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807FAA0: .4byte gUnknown_08396FC4 _0807FAA4: .4byte 0x00001202 thumb_func_end sub_807FA54 thumb_func_start sub_807FAA8 sub_807FAA8: @ 807FAA8 push {r4,lr} adds r3, r0, 0 ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _0807FAC4 movs r0, 0 strh r0, [r3, 0x30] ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] _0807FAC4: ldr r1, _0807FB10 ldrh r0, [r3, 0x2E] ldrh r1, [r1] adds r0, r1 strh r0, [r3, 0x22] ldr r0, _0807FB14 ldr r0, [r0] ldr r1, _0807FB18 adds r2, r0, r1 ldrh r1, [r2] adds r1, 0x20 movs r4, 0x32 ldrsh r0, [r3, r4] lsls r0, 6 adds r1, r0 strh r1, [r3, 0x20] lsls r1, 16 ldr r0, _0807FB1C cmp r1, r0 ble _0807FB08 movs r0, 0xF0 lsls r0, 1 adds r1, r0, 0 ldrh r2, [r2] adds r1, r2 movs r4, 0x32 ldrsh r2, [r3, r4] movs r0, 0x4 subs r0, r2 lsls r0, 6 subs r1, r0 ldr r0, _0807FB20 ands r1, r0 strh r1, [r3, 0x20] _0807FB08: pop {r4} pop {r0} bx r0 .align 2, 0 _0807FB10: .4byte 0x030027e0 _0807FB14: .4byte gUnknown_08396FC4 _0807FB18: .4byte 0x000006fc _0807FB1C: .4byte 0x010f0000 _0807FB20: .4byte 0x000001ff thumb_func_end sub_807FAA8 thumb_func_start sub_807FB24 sub_807FB24: @ 807FB24 push {r4,lr} ldr r0, _0807FB94 ldr r3, [r0] ldr r1, _0807FB98 adds r0, r3, r1 movs r1, 0 movs r2, 0 strh r2, [r0] ldr r4, _0807FB9C adds r0, r3, r4 strb r1, [r0] subs r4, 0x11 adds r0, r3, r4 strb r1, [r0] ldr r0, _0807FBA0 adds r1, r3, r0 movs r0, 0x14 strb r0, [r1] movs r1, 0xDE lsls r1, 3 adds r0, r3, r1 strh r2, [r0] adds r4, 0x31 adds r1, r3, r4 movs r0, 0x1 strh r0, [r1] ldr r1, _0807FBA4 adds r0, r3, r1 ldrb r2, [r0] cmp r2, 0 bne _0807FB8E adds r4, 0x2A adds r0, r3, r4 strh r2, [r0] subs r1, 0x6 adds r0, r3, r1 strh r2, [r0] adds r4, 0x4 adds r0, r3, r4 strh r2, [r0] adds r1, 0x4 adds r0, r3, r1 strh r2, [r0] subs r4, 0x8 adds r0, r3, r4 strh r2, [r0] subs r1, 0x8 adds r0, r3, r1 strh r2, [r0] movs r0, 0 movs r1, 0x10 bl sub_807DB64 _0807FB8E: pop {r4} pop {r0} bx r0 .align 2, 0 _0807FB94: .4byte gUnknown_08396FC4 _0807FB98: .4byte 0x000006cc _0807FB9C: .4byte 0x000006d2 _0807FBA0: .4byte 0x000006c2 _0807FBA4: .4byte 0x00000724 thumb_func_end sub_807FB24 thumb_func_start sub_807FBA8 sub_807FBA8: @ 807FBA8 push {r4,lr} bl sub_807FB24 ldr r0, _0807FBD0 ldr r1, [r0] ldr r2, _0807FBD4 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _0807FBC8 adds r4, r1, r2 _0807FBBE: bl sub_807FBD8 ldrb r0, [r4] cmp r0, 0 beq _0807FBBE _0807FBC8: pop {r4} pop {r0} bx r0 .align 2, 0 _0807FBD0: .4byte gUnknown_08396FC4 _0807FBD4: .4byte 0x000006d2 thumb_func_end sub_807FBA8 thumb_func_start sub_807FBD8 sub_807FBD8: @ 807FBD8 push {r4,r5,lr} bl sub_807FC9C ldr r0, _0807FBF8 ldr r5, [r0] ldr r0, _0807FBFC adds r4, r5, r0 ldrh r0, [r4] cmp r0, 0x1 beq _0807FC0C cmp r0, 0x1 bgt _0807FC00 cmp r0, 0 beq _0807FC06 b _0807FC30 .align 2, 0 _0807FBF8: .4byte gUnknown_08396FC4 _0807FBFC: .4byte 0x000006cc _0807FC00: cmp r0, 0x2 beq _0807FC18 b _0807FC30 _0807FC06: bl sub_807FD30 b _0807FC2A _0807FC0C: movs r0, 0xC movs r1, 0x8 movs r2, 0x8 bl sub_807DBA4 b _0807FC2A _0807FC18: bl sub_807DBE8 lsls r0, 24 cmp r0, 0 beq _0807FC30 ldr r0, _0807FC38 adds r1, r5, r0 movs r0, 0x1 strb r0, [r1] _0807FC2A: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _0807FC30: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807FC38: .4byte 0x000006d2 thumb_func_end sub_807FBD8 thumb_func_start sub_807FC3C sub_807FC3C: @ 807FC3C push {r4,lr} bl sub_807FC9C ldr r0, _0807FC5C ldr r0, [r0] ldr r1, _0807FC60 adds r4, r0, r1 ldrh r0, [r4] cmp r0, 0x1 beq _0807FC76 cmp r0, 0x1 bgt _0807FC64 cmp r0, 0 beq _0807FC6A b _0807FC8E .align 2, 0 _0807FC5C: .4byte gUnknown_08396FC4 _0807FC60: .4byte 0x000006ce _0807FC64: cmp r0, 0x2 beq _0807FC82 b _0807FC8E _0807FC6A: movs r0, 0 movs r1, 0x10 movs r2, 0x1 bl sub_807DBA4 b _0807FC86 _0807FC76: bl sub_807DBE8 lsls r0, 24 cmp r0, 0 beq _0807FC92 b _0807FC86 _0807FC82: bl sub_807FDE8 _0807FC86: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _0807FC92 _0807FC8E: movs r0, 0 b _0807FC94 _0807FC92: movs r0, 0x1 _0807FC94: pop {r4} pop {r1} bx r1 thumb_func_end sub_807FC3C thumb_func_start sub_807FC9C sub_807FC9C: @ 807FC9C push {r4,r5,lr} ldr r0, _0807FD14 ldr r3, [r0] ldr r0, _0807FD18 adds r2, r3, r0 ldrh r0, [r2] adds r0, 0x1 movs r5, 0 strh r0, [r2] ldr r1, _0807FD1C adds r4, r1, 0 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bls _0807FCC8 movs r0, 0xE4 lsls r0, 3 adds r1, r3, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] strh r5, [r2] _0807FCC8: ldr r1, _0807FD20 adds r2, r3, r1 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] ands r0, r4 cmp r0, 0x4 bls _0807FCE4 ldr r0, _0807FD24 adds r1, r3, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] strh r5, [r2] _0807FCE4: ldr r0, _0807FD28 movs r2, 0xE4 lsls r2, 3 adds r1, r3, r2 ldrh r0, [r0] ldrh r1, [r1] subs r0, r1 movs r1, 0xFF ands r0, r1 subs r2, 0x8 adds r1, r3, r2 strh r0, [r1] ldr r1, _0807FD2C adds r2, 0xA adds r0, r3, r2 ldrh r0, [r0] ldrh r1, [r1] adds r0, r1 subs r2, 0x8 adds r1, r3, r2 strh r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807FD14: .4byte gUnknown_08396FC4 _0807FD18: .4byte 0x0000071c _0807FD1C: .4byte 0x0000ffff _0807FD20: .4byte 0x0000071e _0807FD24: .4byte 0x00000722 _0807FD28: .4byte 0x030024d0 _0807FD2C: .4byte 0x030027e0 thumb_func_end sub_807FC9C thumb_func_start sub_807FD30 sub_807FD30: @ 807FD30 push {r4-r6,lr} sub sp, 0x8 ldr r0, _0807FD9C ldr r0, [r0] ldr r1, _0807FDA0 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0807FDD6 ldr r0, _0807FDA4 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] mov r0, sp bl LoadSpriteSheet movs r6, 0 _0807FD54: adds r0, r6, 0 movs r1, 0x5 bl __udivsi3 adds r5, r0, 0 lsls r2, r5, 22 asrs r2, 16 ldr r0, _0807FDA8 movs r1, 0 movs r3, 0xFF bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0807FDB0 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _0807FDAC adds r4, r0 adds r0, r6, 0 movs r1, 0x5 bl __umodsi3 strh r0, [r4, 0x2E] strh r5, [r4, 0x30] ldr r2, _0807FD9C ldr r0, [r2] lsls r1, r6, 2 movs r3, 0xA0 lsls r3, 1 adds r0, r3 adds r0, r1 str r4, [r0] b _0807FDC2 .align 2, 0 _0807FD9C: .4byte gUnknown_08396FC4 _0807FDA0: .4byte 0x00000724 _0807FDA4: .4byte gUnknown_0839ABE8 _0807FDA8: .4byte gSpriteTemplate_839AC04 _0807FDAC: .4byte 0x02020004 _0807FDB0: ldr r2, _0807FDE0 ldr r1, [r2] lsls r0, r6, 2 movs r3, 0xA0 lsls r3, 1 adds r1, r3 adds r1, r0 movs r0, 0 str r0, [r1] _0807FDC2: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x13 bls _0807FD54 ldr r0, [r2] ldr r1, _0807FDE4 adds r0, r1 movs r1, 0x1 strb r1, [r0] _0807FDD6: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0807FDE0: .4byte gUnknown_08396FC4 _0807FDE4: .4byte 0x00000724 thumb_func_end sub_807FD30 thumb_func_start sub_807FDE8 sub_807FDE8: @ 807FDE8 push {r4,r5,lr} ldr r0, _0807FE30 ldr r1, [r0] ldr r2, _0807FE34 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _0807FE2A movs r4, 0 movs r0, 0xA0 lsls r0, 1 adds r5, r1, r0 _0807FE00: lsls r0, r4, 2 adds r0, r5, r0 ldr r0, [r0] cmp r0, 0 beq _0807FE0E bl DestroySprite _0807FE0E: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x13 bls _0807FE00 ldr r0, _0807FE38 bl FreeSpriteTilesByTag ldr r0, _0807FE30 ldr r0, [r0] ldr r1, _0807FE34 adds r0, r1 movs r1, 0 strb r1, [r0] _0807FE2A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807FE30: .4byte gUnknown_08396FC4 _0807FE34: .4byte 0x00000724 _0807FE38: .4byte 0x00001203 thumb_func_end sub_807FDE8 thumb_func_start sub_807FE3C sub_807FE3C: @ 807FE3C push {r4,lr} adds r3, r0, 0 ldr r0, _0807FE8C ldr r1, [r0] ldr r2, _0807FE90 adds r0, r1, r2 ldrh r0, [r0] strh r0, [r3, 0x26] movs r4, 0xE3 lsls r4, 3 adds r2, r1, r4 ldrh r1, [r2] adds r1, 0x20 movs r4, 0x2E ldrsh r0, [r3, r4] lsls r0, 6 adds r1, r0 strh r1, [r3, 0x20] lsls r1, 16 ldr r0, _0807FE94 cmp r1, r0 ble _0807FE84 movs r0, 0xF0 lsls r0, 1 adds r1, r0, 0 ldrh r2, [r2] adds r1, r2 movs r4, 0x2E ldrsh r2, [r3, r4] movs r0, 0x4 subs r0, r2 lsls r0, 6 subs r1, r0 ldr r0, _0807FE98 ands r1, r0 strh r1, [r3, 0x20] _0807FE84: pop {r4} pop {r0} bx r0 .align 2, 0 _0807FE8C: .4byte gUnknown_08396FC4 _0807FE90: .4byte 0x0000071a _0807FE94: .4byte 0x010f0000 _0807FE98: .4byte 0x000001ff thumb_func_end sub_807FE3C thumb_func_start sub_807FE9C sub_807FE9C: @ 807FE9C push {r4,lr} ldr r0, _0807FF00 ldr r3, [r0] ldr r0, _0807FF04 adds r1, r3, r0 movs r2, 0 movs r0, 0 strh r0, [r1] ldr r1, _0807FF08 adds r0, r3, r1 strb r2, [r0] ldr r4, _0807FF0C adds r0, r3, r4 strb r2, [r0] ldr r0, _0807FF10 adds r1, r3, r0 movs r0, 0x14 strb r0, [r1] ldr r1, _0807FF14 adds r0, r3, r1 ldrb r2, [r0] cmp r2, 0 bne _0807FEF8 adds r4, 0x43 adds r1, r3, r4 adds r4, 0x4 adds r0, r3, r4 str r2, [r0] str r2, [r1] ldr r0, _0807FF18 adds r1, r3, r0 movs r0, 0x8 strh r0, [r1] adds r4, 0xC adds r0, r3, r4 strh r2, [r0] ldrh r2, [r1] cmp r2, 0x5F bls _0807FEF0 movs r0, 0x80 subs r0, r2 strh r0, [r1] _0807FEF0: movs r0, 0 movs r1, 0x10 bl sub_807DB64 _0807FEF8: pop {r4} pop {r0} bx r0 .align 2, 0 _0807FF00: .4byte gUnknown_08396FC4 _0807FF04: .4byte 0x000006cc _0807FF08: .4byte 0x000006d2 _0807FF0C: .4byte 0x000006c1 _0807FF10: .4byte 0x000006c2 _0807FF14: .4byte 0x00000716 _0807FF18: .4byte 0x00000712 thumb_func_end sub_807FE9C thumb_func_start sub_807FF1C sub_807FF1C: @ 807FF1C push {r4,lr} bl sub_807FE9C ldr r0, _0807FF44 ldr r1, [r0] ldr r2, _0807FF48 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _0807FF3C adds r4, r1, r2 _0807FF32: bl sub_807FF4C ldrb r0, [r4] cmp r0, 0 beq _0807FF32 _0807FF3C: pop {r4} pop {r0} bx r0 .align 2, 0 _0807FF44: .4byte gUnknown_08396FC4 _0807FF48: .4byte 0x000006d2 thumb_func_end sub_807FF1C thumb_func_start sub_807FF4C sub_807FF4C: @ 807FF4C push {r4,r5,lr} bl sub_8080064 bl sub_808002C ldr r0, _0807FF7C ldr r5, [r0] ldr r0, _0807FF80 adds r1, r5, r0 ldrh r0, [r1] cmp r0, 0x5F bls _0807FF68 movs r0, 0x20 strh r0, [r1] _0807FF68: ldr r0, _0807FF84 adds r4, r5, r0 ldrh r0, [r4] cmp r0, 0x1 beq _0807FF98 cmp r0, 0x1 bgt _0807FF88 cmp r0, 0 beq _0807FF8E b _0807FFBC .align 2, 0 _0807FF7C: .4byte gUnknown_08396FC4 _0807FF80: .4byte 0x00000712 _0807FF84: .4byte 0x000006cc _0807FF88: cmp r0, 0x2 beq _0807FFA4 b _0807FFBC _0807FF8E: bl sub_8080178 bl sub_8080238 b _0807FFB6 _0807FF98: movs r0, 0x10 movs r1, 0 movs r2, 0 bl sub_807DBA4 b _0807FFB6 _0807FFA4: bl sub_807DBE8 lsls r0, 24 cmp r0, 0 beq _0807FFBC ldr r0, _0807FFC4 adds r1, r5, r0 movs r0, 0x1 strb r0, [r1] _0807FFB6: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _0807FFBC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807FFC4: .4byte 0x000006d2 thumb_func_end sub_807FF4C thumb_func_start sub_807FFC8 sub_807FFC8: @ 807FFC8 push {r4,lr} bl sub_8080064 bl sub_808002C ldr r0, _0807FFEC ldr r0, [r0] ldr r1, _0807FFF0 adds r4, r0, r1 ldrh r0, [r4] cmp r0, 0x1 beq _08080006 cmp r0, 0x1 bgt _0807FFF4 cmp r0, 0 beq _0807FFFA b _0808001E .align 2, 0 _0807FFEC: .4byte gUnknown_08396FC4 _0807FFF0: .4byte 0x000006ce _0807FFF4: cmp r0, 0x2 beq _08080012 b _0808001E _0807FFFA: movs r0, 0 movs r1, 0x10 movs r2, 0 bl sub_807DBA4 b _08080016 _08080006: bl sub_807DBE8 lsls r0, 24 cmp r0, 0 beq _08080022 b _08080016 _08080012: bl sub_80800E4 _08080016: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _08080022 _0808001E: movs r0, 0 b _08080024 _08080022: movs r0, 0x1 _08080024: pop {r4} pop {r1} bx r1 thumb_func_end sub_807FFC8 thumb_func_start sub_808002C sub_808002C: @ 808002C push {lr} ldr r0, _08080058 ldr r2, [r0] ldr r0, _0808005C adds r3, r2, r0 ldrh r0, [r3] adds r1, r0, 0x1 strh r1, [r3] lsls r0, 16 lsrs r0, 16 cmp r0, 0x4 bls _08080052 ldr r1, _08080060 adds r0, r2, r1 ldrh r1, [r0] adds r1, 0x1 movs r2, 0 strh r1, [r0] strh r2, [r3] _08080052: pop {r0} bx r0 .align 2, 0 _08080058: .4byte gUnknown_08396FC4 _0808005C: .4byte 0x00000714 _08080060: .4byte 0x00000712 thumb_func_end sub_808002C thumb_func_start sub_8080064 sub_8080064: @ 8080064 push {r4-r6,lr} ldr r0, _080800C8 ldr r2, [r0] ldr r0, _080800CC adds r4, r2, r0 ldr r6, _080800D0 ldr r1, _080800D4 adds r5, r2, r1 ldrh r0, [r5] lsls r0, 1 adds r0, r6 movs r3, 0 ldrsh r1, [r0, r3] lsls r1, 2 ldr r0, [r4] subs r0, r1 str r0, [r4] movs r0, 0xE1 lsls r0, 3 adds r3, r2, r0 ldrh r0, [r5] lsls r0, 1 adds r0, r6 movs r5, 0 ldrsh r1, [r0, r5] ldr r0, [r3] subs r0, r1 str r0, [r3] ldr r1, _080800D8 ldr r0, [r4] lsrs r0, 8 ldrh r1, [r1] adds r0, r1 movs r1, 0xFF ands r0, r1 ldr r4, _080800DC adds r1, r2, r4 strh r0, [r1] ldr r1, _080800E0 ldr r0, [r3] lsrs r0, 8 ldrh r1, [r1] adds r0, r1 movs r5, 0xE2 lsls r5, 3 adds r2, r5 strh r0, [r2] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080800C8: .4byte gUnknown_08396FC4 _080800CC: .4byte 0x00000704 _080800D0: .4byte gSineTable _080800D4: .4byte 0x00000712 _080800D8: .4byte 0x030024d0 _080800DC: .4byte 0x0000070e _080800E0: .4byte 0x030027e0 thumb_func_end sub_8080064 thumb_func_start sub_80800E4 sub_80800E4: @ 80800E4 push {r4,r5,lr} ldr r0, _08080168 ldr r1, [r0] ldr r2, _0808016C adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _08080126 movs r4, 0 movs r0, 0xC8 lsls r0, 1 adds r5, r1, r0 _080800FC: lsls r0, r4, 2 adds r0, r5, r0 ldr r0, [r0] cmp r0, 0 beq _0808010A bl DestroySprite _0808010A: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x13 bls _080800FC ldr r0, _08080168 ldr r0, [r0] ldr r1, _0808016C adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, _08080170 bl FreeSpriteTilesByTag _08080126: ldr r0, _08080168 ldr r1, [r0] ldr r2, _08080174 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _08080160 movs r4, 0 movs r0, 0xF0 lsls r0, 1 adds r5, r1, r0 _0808013C: lsls r0, r4, 2 adds r0, r5, r0 ldr r0, [r0] cmp r0, 0 beq _0808014A bl DestroySprite _0808014A: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _0808013C ldr r0, _08080168 ldr r0, [r0] ldr r1, _08080174 adds r0, r1 movs r1, 0 strb r1, [r0] _08080160: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08080168: .4byte gUnknown_08396FC4 _0808016C: .4byte 0x00000716 _08080170: .4byte 0x00001204 _08080174: .4byte 0x00000717 thumb_func_end sub_80800E4 thumb_func_start sub_8080178 sub_8080178: @ 8080178 push {r4-r7,lr} sub sp, 0x4 ldr r0, _080801E8 ldr r0, [r0] ldr r1, _080801EC adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08080226 ldr r0, _080801F0 bl LoadSpriteSheet ldr r0, _080801F4 bl sub_807D8C0 movs r7, 0 _08080198: adds r0, r7, 0 movs r1, 0x5 bl __udivsi3 adds r6, r0, 0 lsls r2, r6, 22 asrs r2, 16 ldr r0, _080801F8 movs r1, 0 movs r3, 0x1 bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _08080200 ldr r2, _080801E8 ldr r5, [r2] lsls r0, r7, 2 movs r3, 0xC8 lsls r3, 1 adds r5, r3 adds r5, r0 lsls r4, r1, 4 adds r4, r1 lsls r4, 2 ldr r0, _080801FC adds r4, r0 str r4, [r5] adds r0, r7, 0 movs r1, 0x5 str r2, [sp] bl __umodsi3 strh r0, [r4, 0x2E] ldr r0, [r5] strh r6, [r0, 0x30] ldr r2, [sp] b _08080212 .align 2, 0 _080801E8: .4byte gUnknown_08396FC4 _080801EC: .4byte 0x00000716 _080801F0: .4byte gUnknown_0839AC54 _080801F4: .4byte gUnknown_08397128 _080801F8: .4byte gSpriteTemplate_839AC3C _080801FC: .4byte 0x02020004 _08080200: ldr r2, _08080230 ldr r1, [r2] lsls r0, r7, 2 movs r3, 0xC8 lsls r3, 1 adds r1, r3 adds r1, r0 movs r0, 0 str r0, [r1] _08080212: adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0x13 bls _08080198 ldr r0, [r2] ldr r1, _08080234 adds r0, r1 movs r1, 0x1 strb r1, [r0] _08080226: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08080230: .4byte gUnknown_08396FC4 _08080234: .4byte 0x00000716 thumb_func_end sub_8080178 thumb_func_start sub_8080238 sub_8080238: @ 8080238 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _080802E0 ldr r0, [r4] ldr r1, _080802E4 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08080324 movs r7, 0 mov r9, r4 movs r2, 0 mov r10, r2 _08080258: lsls r0, r7, 1 mov r8, r0 adds r6, r0, r7 lsls r5, r6, 4 adds r1, r5, 0 adds r1, 0x18 lsls r1, 16 asrs r1, 16 ldr r0, _080802E8 movs r2, 0xD0 movs r3, 0x1 bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080802FC mov r2, r9 ldr r4, [r2] lsls r0, r7, 2 movs r2, 0xF0 lsls r2, 1 adds r4, r2 adds r4, r0 lsls r2, r1, 4 adds r2, r1 lsls r2, 2 ldr r0, _080802EC adds r2, r0 str r2, [r4] ldrb r1, [r2, 0x3] movs r0, 0x3F ands r0, r1 movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x3] ldr r1, [r4] adds r0, r6, r5 strh r0, [r1, 0x30] ldr r1, [r4] movs r0, 0x8 strh r0, [r1, 0x2E] ldr r0, [r4] mov r1, r10 strh r1, [r0, 0x32] ldr r1, [r4] ldr r0, _080802F0 strh r0, [r1, 0x36] ldr r1, [r4] ldr r0, _080802F4 add r0, r8 ldrh r0, [r0] strh r0, [r1, 0x34] ldr r0, [r4] movs r1, 0x1 bl StartSpriteAnim ldr r0, [r4] movs r1, 0 movs r2, 0x2 movs r3, 0 bl CalcCenterToCornerVec ldr r1, [r4] ldr r0, _080802F8 str r0, [r1, 0x1C] b _0808030E .align 2, 0 _080802E0: .4byte gUnknown_08396FC4 _080802E4: .4byte 0x00000717 _080802E8: .4byte gSpriteTemplate_839AC3C _080802EC: .4byte 0x02020004 _080802F0: .4byte 0x00006730 _080802F4: .4byte gUnknown_0839AC5C _080802F8: .4byte sub_8080398 _080802FC: mov r2, r9 ldr r0, [r2] lsls r1, r7, 2 movs r2, 0xF0 lsls r2, 1 adds r0, r2 adds r0, r1 mov r1, r10 str r1, [r0] _0808030E: mov r2, r9 ldr r0, [r2] ldr r1, _08080334 adds r0, r1 movs r1, 0x1 strb r1, [r0] adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0x4 bls _08080258 _08080324: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08080334: .4byte 0x00000717 thumb_func_end sub_8080238 thumb_func_start sub_8080338 sub_8080338: @ 8080338 push {r4,lr} adds r3, r0, 0 ldr r0, _08080388 ldr r1, [r0] movs r2, 0xE2 lsls r2, 3 adds r0, r1, r2 ldrh r0, [r0] strh r0, [r3, 0x26] ldr r4, _0808038C adds r2, r1, r4 ldrh r1, [r2] adds r1, 0x20 movs r4, 0x2E ldrsh r0, [r3, r4] lsls r0, 6 adds r1, r0 strh r1, [r3, 0x20] lsls r1, 16 ldr r0, _08080390 cmp r1, r0 ble _08080380 movs r0, 0xF0 lsls r0, 1 adds r1, r0, 0 ldrh r2, [r2] adds r1, r2 movs r4, 0x2E ldrsh r2, [r3, r4] movs r0, 0x4 subs r0, r2 lsls r0, 6 subs r1, r0 ldr r0, _08080394 ands r1, r0 strh r1, [r3, 0x20] _08080380: pop {r4} pop {r0} bx r0 .align 2, 0 _08080388: .4byte gUnknown_08396FC4 _0808038C: .4byte 0x0000070e _08080390: .4byte 0x010f0000 _08080394: .4byte 0x000001ff thumb_func_end sub_8080338 thumb_func_start sub_8080398 sub_8080398: @ 8080398 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x34] subs r0, 0x1 strh r0, [r2, 0x34] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080803B2 ldr r0, _080803B8 str r0, [r2, 0x1C] _080803B2: pop {r0} bx r0 .align 2, 0 _080803B8: .4byte sub_80803BC thumb_func_end sub_8080398 thumb_func_start sub_80803BC sub_80803BC: @ 80803BC push {r4,r5,lr} adds r5, r0, 0 ldrh r0, [r5, 0x22] subs r0, 0x1 strh r0, [r5, 0x22] lsls r0, 16 asrs r0, 16 movs r1, 0x30 negs r1, r1 cmp r0, r1 bge _080803DA movs r0, 0xD0 strh r0, [r5, 0x22] movs r0, 0x4 strh r0, [r5, 0x2E] _080803DA: movs r0, 0x2E ldrsh r4, [r5, r0] ldr r3, _0808042C movs r2, 0x30 ldrsh r1, [r5, r2] lsls r0, r1, 1 adds r0, r3 movs r2, 0 ldrsh r0, [r0, r2] adds r2, r4, 0 muls r2, r0 adds r1, 0x40 lsls r1, 1 adds r1, r3 movs r3, 0 ldrsh r0, [r1, r3] muls r0, r4 lsrs r2, 8 strh r2, [r5, 0x24] lsrs r0, 8 strh r0, [r5, 0x26] ldrh r0, [r5, 0x30] adds r0, 0xA movs r1, 0xFF ands r0, r1 strh r0, [r5, 0x30] ldrh r0, [r5, 0x32] adds r0, 0x1 strh r0, [r5, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _08080426 movs r0, 0 strh r0, [r5, 0x32] ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] _08080426: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808042C: .4byte gSineTable thumb_func_end sub_80803BC thumb_func_start sub_8080430 sub_8080430: @ 8080430 ldr r0, _08080450 ldr r1, [r0] ldr r0, _08080454 adds r2, r1, r0 movs r0, 0 strh r0, [r2] ldr r0, _08080458 adds r2, r1, r0 movs r0, 0x3 strb r0, [r2] ldr r0, _0808045C adds r1, r0 movs r0, 0x14 strb r0, [r1] bx lr .align 2, 0 _08080450: .4byte gUnknown_08396FC4 _08080454: .4byte 0x000006cc _08080458: .4byte 0x000006c1 _0808045C: .4byte 0x000006c2 thumb_func_end sub_8080430 thumb_func_start sub_8080460 sub_8080460: @ 8080460 push {lr} bl sub_8080430 pop {r0} bx r0 thumb_func_end sub_8080460 thumb_func_start nullsub_56 nullsub_56: @ 808046C bx lr thumb_func_end nullsub_56 thumb_func_start sub_8080470 sub_8080470: @ 8080470 movs r0, 0 bx lr thumb_func_end sub_8080470 thumb_func_start sub_8080474 sub_8080474: @ 8080474 push {r4,r5,lr} bl sub_807F49C ldr r0, _080804B4 ldr r4, [r0] ldr r1, _080804B8 adds r0, r4, r1 ldrb r5, [r0] cmp r5, 0 bne _080804AC ldr r0, _080804BC bl LoadSpriteSheet movs r2, 0xE5 lsls r2, 3 adds r0, r4, r2 strh r5, [r0] ldr r0, _080804C0 ldrb r1, [r0] subs r2, 0x2 adds r0, r4, r2 strh r1, [r0] ldr r1, _080804C4 adds r0, r4, r1 strh r5, [r0] adds r2, 0x6 adds r0, r4, r2 strh r5, [r0] _080804AC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080804B4: .4byte gUnknown_08396FC4 _080804B8: .4byte 0x0000072e _080804BC: .4byte gUnknown_0839AC70 _080804C0: .4byte gUnknown_0839AC68 _080804C4: .4byte 0x0000072a thumb_func_end sub_8080474 thumb_func_start sub_80804C8 sub_80804C8: @ 80804C8 push {r4,lr} bl sub_8080474 ldr r0, _080804F0 ldr r1, [r0] ldr r2, _080804F4 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _080804E8 adds r4, r1, r2 _080804DE: bl sub_80804F8 ldrb r0, [r4] cmp r0, 0 beq _080804DE _080804E8: pop {r4} pop {r0} bx r0 .align 2, 0 _080804F0: .4byte gUnknown_08396FC4 _080804F4: .4byte 0x000006d2 thumb_func_end sub_80804C8 thumb_func_start sub_80804F8 sub_80804F8: @ 80804F8 push {r4-r7,lr} bl sub_807F52C ldr r0, _08080558 ldr r5, [r0] ldr r0, _0808055C adds r4, r5, r0 ldrh r0, [r4] adds r0, 0x1 movs r6, 0 strh r0, [r4] ldr r1, _08080560 adds r7, r1, 0 ldr r2, _08080564 movs r1, 0xE5 lsls r1, 3 adds r3, r5, r1 ldrh r1, [r3] adds r1, r2 lsls r0, 16 lsrs r0, 16 ldrb r1, [r1] cmp r0, r1 bls _08080550 strh r6, [r4] ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] ands r0, r7 cmp r0, 0x7 bls _08080538 strh r6, [r3] _08080538: ldr r0, _08080568 adds r4, r5, r0 ldrh r0, [r4] bl sub_8080588 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] ands r0, r7 cmp r0, 0xC bls _08080550 strh r6, [r4] _08080550: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08080558: .4byte gUnknown_08396FC4 _0808055C: .4byte 0x00000726 _08080560: .4byte 0x0000ffff _08080564: .4byte gUnknown_0839AC68 _08080568: .4byte 0x0000072a thumb_func_end sub_80804F8 thumb_func_start sub_808056C sub_808056C: @ 808056C push {lr} bl sub_807F5EC lsls r0, 24 cmp r0, 0 beq _0808057C movs r0, 0x1 b _08080582 _0808057C: bl sub_8080610 movs r0, 0 _08080582: pop {r1} bx r1 thumb_func_end sub_808056C thumb_func_start sub_8080588 sub_8080588: @ 8080588 push {r4,lr} lsls r0, 16 ldr r1, _080805F8 lsrs r0, 14 adds r3, r0, r1 adds r1, 0x2 adds r0, r1 ldr r1, _080805FC ldrh r2, [r0] ldrh r0, [r1] subs r2, r0 ldr r0, _08080600 movs r4, 0 ldrsh r1, [r3, r4] lsls r2, 16 asrs r2, 16 movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080805F0 ldr r0, _08080604 lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 movs r2, 0x4 orrs r0, r2 strb r0, [r1, 0x5] adds r3, r1, 0 adds r3, 0x3E ldrb r0, [r3] movs r2, 0x2 orrs r0, r2 strb r0, [r3] movs r0, 0 strh r0, [r1, 0x2E] strh r0, [r1, 0x30] strh r0, [r1, 0x32] ldr r0, _08080608 ldr r1, [r0] ldr r0, _0808060C adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080805F0: pop {r4} pop {r0} bx r0 .align 2, 0 _080805F8: .4byte gUnknown_0839AC78 _080805FC: .4byte 0x030027e0 _08080600: .4byte gSpriteTemplate_839ACBC _08080604: .4byte 0x02020004 _08080608: .4byte gUnknown_08396FC4 _0808060C: .4byte 0x0000072c thumb_func_end sub_8080588 thumb_func_start sub_8080610 sub_8080610: @ 8080610 push {r4,r5,lr} movs r4, 0 ldr r5, _08080648 _08080616: lsls r0, r4, 4 adds r0, r4 lsls r2, r0, 2 adds r0, r5, 0 adds r0, 0x14 adds r0, r2, r0 ldr r1, [r0] ldr r0, _0808064C cmp r1, r0 bne _08080630 adds r0, r2, r5 bl DestroySprite _08080630: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3F bls _08080616 ldr r0, _08080650 bl FreeSpriteTilesByTag pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08080648: .4byte 0x02020004 _0808064C: .4byte gSpriteTemplate_839ACBC _08080650: .4byte 0x00001205 thumb_func_end sub_8080610 thumb_func_start unc_0807DAB4 unc_0807DAB4: @ 8080654 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x2E] movs r2, 0 adds r0, 0x2 strh r0, [r1, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _08080694 strh r2, [r1, 0x2E] movs r3, 0x30 ldrsh r0, [r1, r3] cmp r0, 0 bne _08080686 ldrh r0, [r1, 0x24] adds r0, 0x1 strh r0, [r1, 0x24] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _08080694 movs r0, 0x1 strh r0, [r1, 0x30] b _08080694 _08080686: ldrh r0, [r1, 0x24] subs r0, 0x1 strh r0, [r1, 0x24] lsls r0, 16 cmp r0, 0 bgt _08080694 strh r2, [r1, 0x30] _08080694: ldrh r0, [r1, 0x22] subs r0, 0x3 strh r0, [r1, 0x22] ldrh r0, [r1, 0x32] adds r0, 0x1 strh r0, [r1, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x77 ble _080806AE adds r0, r1, 0 bl DestroySprite _080806AE: pop {r0} bx r0 thumb_func_end unc_0807DAB4 thumb_func_start sub_80806B4 sub_80806B4: @ 80806B4 push {r4,r5,lr} ldr r4, _080806D4 adds r4, 0x2E ldrb r5, [r4] lsls r0, 24 lsrs r0, 24 bl sub_8080764 strb r0, [r4] ldrb r0, [r4] adds r1, r5, 0 bl sub_8080854 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080806D4: .4byte 0x02025734 thumb_func_end sub_80806B4 thumb_func_start sav1_get_weather_probably sav1_get_weather_probably: @ 80806D8 ldr r0, _080806E0 adds r0, 0x2E ldrb r0, [r0] bx lr .align 2, 0 _080806E0: .4byte 0x02025734 thumb_func_end sav1_get_weather_probably thumb_func_start sub_80806E4 sub_80806E4: @ 80806E4 push {r4,r5,lr} ldr r4, _08080704 adds r4, 0x2E ldrb r5, [r4] ldr r0, _08080708 ldrb r0, [r0, 0x16] bl sub_8080764 strb r0, [r4] ldrb r0, [r4] adds r1, r5, 0 bl sub_8080854 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08080704: .4byte 0x02025734 _08080708: .4byte 0x0202e828 thumb_func_end sub_80806E4 thumb_func_start sub_808070C sub_808070C: @ 808070C push {lr} bl sub_80806B4 bl sav1_get_weather_probably lsls r0, 24 lsrs r0, 24 bl sub_807C91C pop {r0} bx r0 thumb_func_end sub_808070C thumb_func_start sub_8080724 sub_8080724: @ 8080724 push {lr} bl sub_80806B4 bl sav1_get_weather_probably lsls r0, 24 lsrs r0, 24 bl sub_807C988 pop {r0} bx r0 thumb_func_end sub_8080724 thumb_func_start sub_808073C sub_808073C: @ 808073C push {lr} bl sav1_get_weather_probably lsls r0, 24 lsrs r0, 24 bl sub_807C91C pop {r0} bx r0 thumb_func_end sub_808073C thumb_func_start sub_8080750 sub_8080750: @ 8080750 push {lr} bl sav1_get_weather_probably lsls r0, 24 lsrs r0, 24 bl sub_807C988 pop {r0} bx r0 thumb_func_end sub_8080750 thumb_func_start sub_8080764 sub_8080764: @ 8080764 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x15 bhi _0808082C lsls r0, 2 ldr r1, _08080778 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08080778: .4byte _0808077C .align 2, 0 _0808077C: .4byte _0808082C .4byte _080807D4 .4byte _080807D8 .4byte _080807DC .4byte _080807E0 .4byte _080807E4 .4byte _080807E8 .4byte _080807EC .4byte _080807F0 .4byte _080807F4 .4byte _080807F8 .4byte _080807FC .4byte _08080800 .4byte _08080804 .4byte _08080808 .4byte _0808082C .4byte _0808082C .4byte _0808082C .4byte _0808082C .4byte _0808082C .4byte _0808080C .4byte _08080814 _080807D4: movs r0, 0x1 b _0808082E _080807D8: movs r0, 0x2 b _0808082E _080807DC: movs r0, 0x3 b _0808082E _080807E0: movs r0, 0x4 b _0808082E _080807E4: movs r0, 0x5 b _0808082E _080807E8: movs r0, 0x6 b _0808082E _080807EC: movs r0, 0x7 b _0808082E _080807F0: movs r0, 0x8 b _0808082E _080807F4: movs r0, 0x9 b _0808082E _080807F8: movs r0, 0xA b _0808082E _080807FC: movs r0, 0xB b _0808082E _08080800: movs r0, 0xC b _0808082E _08080804: movs r0, 0xD b _0808082E _08080808: movs r0, 0xE b _0808082E _0808080C: ldr r1, _08080810 b _08080816 .align 2, 0 _08080810: .4byte gUnknown_0839ACD4 _08080814: ldr r1, _08080824 _08080816: ldr r0, _08080828 adds r0, 0x2F ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] b _0808082E .align 2, 0 _08080824: .4byte gUnknown_0839ACD8 _08080828: .4byte 0x02025734 _0808082C: movs r0, 0 _0808082E: pop {r1} bx r1 thumb_func_end sub_8080764 thumb_func_start sub_8080834 sub_8080834: @ 8080834 lsls r0, 16 ldr r2, _08080850 adds r2, 0x2F lsrs r0, 16 ldrb r1, [r2] adds r0, r1 lsls r0, 16 movs r1, 0xC0 lsls r1, 10 ands r1, r0 lsrs r1, 16 strb r1, [r2] bx lr .align 2, 0 _08080850: .4byte 0x02025734 thumb_func_end sub_8080834 thumb_func_start sub_8080854 sub_8080854: @ 8080854 push {lr} lsls r0, 24 lsls r1, 24 lsrs r2, r0, 24 cmp r0, r1 beq _0808086E cmp r2, 0x3 beq _08080868 cmp r2, 0x5 bne _0808086E _08080868: movs r0, 0x28 bl sav12_xor_increment _0808086E: pop {r0} bx r0 thumb_func_end sub_8080854 thumb_func_start palette_bg_faded_fill_black palette_bg_faded_fill_black: @ 8080874 push {lr} sub sp, 0x4 ldr r0, _0808088C str r0, [sp] ldr r1, _08080890 ldr r2, _08080894 mov r0, sp bl CpuFastSet add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0808088C: .4byte 0x7fff7fff _08080890: .4byte 0x0202eec8 _08080894: .4byte 0x01000100 thumb_func_end palette_bg_faded_fill_black thumb_func_start palette_bg_faded_fill_white palette_bg_faded_fill_white: @ 8080898 push {lr} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r1, _080808B0 ldr r2, _080808B4 mov r0, sp bl CpuFastSet add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080808B0: .4byte 0x0202eec8 _080808B4: .4byte 0x01000100 thumb_func_end palette_bg_faded_fill_white thumb_func_start pal_fill_for_maplights pal_fill_for_maplights: @ 80808B8 push {r4,lr} bl get_map_light_from_warp0 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sav1_map_get_light_level adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl fade_type_for_given_maplight_pair lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080808E2 cmp r0, 0x1 beq _080808F0 b _080808FC _080808E2: movs r0, 0 movs r1, 0 bl fade_screen bl palette_bg_faded_fill_white b _080808FC _080808F0: movs r0, 0x2 movs r1, 0 bl fade_screen bl palette_bg_faded_fill_black _080808FC: pop {r4} pop {r0} bx r0 thumb_func_end pal_fill_for_maplights thumb_func_start pal_fill_black pal_fill_black: @ 8080904 push {lr} movs r0, 0 movs r1, 0 bl fade_screen bl palette_bg_faded_fill_white pop {r0} bx r0 thumb_func_end pal_fill_black thumb_func_start sub_8080918 sub_8080918: @ 8080918 push {r4,lr} bl sav1_map_get_light_level adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl warp1_get_mapheader ldrb r1, [r0, 0x17] adds r0, r4, 0 bl sub_810CDB8 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _0808093E cmp r0, 0x1 beq _08080948 b _08080950 _0808093E: movs r0, 0x1 movs r1, 0 bl fade_screen b _08080950 _08080948: movs r0, 0x3 movs r1, 0 bl fade_screen _08080950: pop {r4} pop {r0} bx r0 thumb_func_end sub_8080918 thumb_func_start sub_8080958 sub_8080958: @ 8080958 push {lr} lsls r0, 24 movs r1, 0 cmp r0, 0 bne _08080964 movs r1, 0x1 _08080964: adds r0, r1, 0 bl sub_8059B88 pop {r0} bx r0 thumb_func_end sub_8080958 thumb_func_start task0A_asap_script_env_2_enable_and_set_ctx_running task0A_asap_script_env_2_enable_and_set_ctx_running: @ 8080970 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8080E70 cmp r0, 0x1 bne _08080988 adds r0, r4, 0 bl DestroyTask bl script_env_2_enable_and_set_ctx_running _08080988: pop {r4} pop {r0} bx r0 thumb_func_end task0A_asap_script_env_2_enable_and_set_ctx_running thumb_func_start sub_8080990 sub_8080990: @ 8080990 push {lr} bl script_env_2_enable bl sub_8053E90 bl pal_fill_black ldr r0, _080809AC movs r1, 0xA bl CreateTask pop {r0} bx r0 .align 2, 0 _080809AC: .4byte task0A_asap_script_env_2_enable_and_set_ctx_running thumb_func_end sub_8080990 thumb_func_start sub_80809B0 sub_80809B0: @ 80809B0 push {lr} bl script_env_2_enable bl pal_fill_black ldr r0, _080809C8 movs r1, 0xA bl CreateTask pop {r0} bx r0 .align 2, 0 _080809C8: .4byte task0A_asap_script_env_2_enable_and_set_ctx_running thumb_func_end sub_80809B0 thumb_func_start task_mpl_807DD60 task_mpl_807DD60: @ 80809CC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r2, _080809F0 adds r4, r0, r2 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08080A06 cmp r0, 0x1 bgt _080809F4 cmp r0, 0 beq _080809FA b _08080A36 .align 2, 0 _080809F0: .4byte 0x03004b20 _080809F4: cmp r0, 0x2 beq _08080A24 b _08080A36 _080809FA: bl sub_8083664 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xA] b _08080A1C _08080A06: movs r1, 0xA ldrsh r0, [r4, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0x4] cmp r0, 0x1 beq _08080A36 bl pal_fill_for_maplights _08080A1C: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08080A36 _08080A24: bl sub_8080E70 cmp r0, 0x1 bne _08080A36 bl script_env_2_disable adds r0, r5, 0 bl DestroyTask _08080A36: pop {r4,r5} pop {r0} bx r0 thumb_func_end task_mpl_807DD60 thumb_func_start sub_8080A3C sub_8080A3C: @ 8080A3C push {lr} bl script_env_2_enable bl sub_8053E90 bl palette_bg_faded_fill_white ldr r0, _08080A58 movs r1, 0xA bl CreateTask pop {r0} bx r0 .align 2, 0 _08080A58: .4byte task_mpl_807DD60 thumb_func_end sub_8080A3C thumb_func_start sub_8080A5C sub_8080A5C: @ 8080A5C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _08080A80 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08080A90 cmp r0, 0x1 bgt _08080A84 cmp r0, 0 beq _08080A8A b _08080ABC .align 2, 0 _08080A80: .4byte 0x03004b20 _08080A84: cmp r0, 0x2 beq _08080AA6 b _08080ABC _08080A8A: bl sub_80084A4 b _08080A9E _08080A90: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _08080ABC bl pal_fill_for_maplights _08080A9E: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08080ABC _08080AA6: bl sub_8080E70 cmp r0, 0x1 bne _08080ABC bl sub_8007B14 bl script_env_2_disable adds r0, r5, 0 bl DestroyTask _08080ABC: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8080A5C thumb_func_start sub_8080AC4 sub_8080AC4: @ 8080AC4 push {lr} bl script_env_2_enable bl sub_8053E90 bl palette_bg_faded_fill_white ldr r0, _08080AE0 movs r1, 0xA bl CreateTask pop {r0} bx r0 .align 2, 0 _08080AE0: .4byte sub_8080A5C thumb_func_end sub_8080AC4 thumb_func_start sub_8080AE4 sub_8080AE4: @ 8080AE4 push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_8056EAC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08080B1C ldr r1, _08080B18 b _08080B2E .align 2, 0 _08080B18: .4byte sub_8080B9C _08080B1C: adds r0, r4, 0 bl sub_8056F08 lsls r0, 24 lsrs r0, 24 ldr r1, _08080B40 cmp r0, 0x1 bne _08080B2E ldr r1, _08080B44 _08080B2E: adds r0, r1, 0 movs r1, 0xA bl CreateTask add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08080B40: .4byte task_map_chg_seq_0807E2CC _08080B44: .4byte task_map_chg_seq_0807E20C thumb_func_end sub_8080AE4 thumb_func_start mapldr_default mapldr_default: @ 8080B48 push {lr} bl sub_8053E90 bl pal_fill_for_maplights bl sub_8080AE4 bl script_env_2_enable pop {r0} bx r0 thumb_func_end mapldr_default thumb_func_start sub_8080B60 sub_8080B60: @ 8080B60 push {lr} bl sub_8053E90 bl pal_fill_black bl sub_8080AE4 bl script_env_2_enable pop {r0} bx r0 thumb_func_end sub_8080B60 thumb_func_start sub_8080B78 sub_8080B78: @ 8080B78 push {lr} bl sub_8053E90 bl pal_fill_for_maplights movs r0, 0x2E bl audio_play ldr r0, _08080B98 movs r1, 0xA bl CreateTask bl script_env_2_enable pop {r0} bx r0 .align 2, 0 _08080B98: .4byte task_map_chg_seq_0807E2CC thumb_func_end sub_8080B78 thumb_func_start sub_8080B9C sub_8080B9C: @ 8080B9C push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _08080BC8 adds r5, r0, r1 adds r6, r5, 0 adds r6, 0xC adds r7, r5, 0 adds r7, 0xE movs r2, 0x8 ldrsh r0, [r5, r2] adds r2, r1, 0 cmp r0, 0x4 bhi _08080CAE lsls r0, 2 ldr r1, _08080BCC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08080BC8: .4byte 0x03004b20 _08080BCC: .4byte _08080BD0 .align 2, 0 _08080BD0: .4byte _08080BE4 .4byte _08080C08 .4byte _08080C40 .4byte _08080C84 .4byte _08080CA4 _08080BE4: movs r0, 0 bl sub_8080958 bl player_bitmagic adds r0, r6, 0 adds r1, r7, 0 bl PlayerGetDestCoords movs r1, 0 ldrsh r0, [r6, r1] movs r2, 0 ldrsh r1, [r7, r2] bl sub_80586B4 movs r0, 0x1 strh r0, [r5, 0x8] b _08080CAE _08080C08: bl sub_8080E70 cmp r0, 0 beq _08080CAE movs r0, 0x1 bl sub_8080958 movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08080C3C adds r0, r1 movs r1, 0x8 bl FieldObjectSetSpecialAnim movs r0, 0x2 strh r0, [r5, 0x8] b _08080CAE .align 2, 0 _08080C3C: .4byte 0x030048a0 _08080C40: bl walkrun_is_standing_still lsls r0, 24 cmp r0, 0 beq _08080CAE movs r1, 0 ldrsh r0, [r6, r1] movs r2, 0 ldrsh r1, [r7, r2] bl sub_805870C lsls r0, 24 asrs r0, 24 strh r0, [r5, 0xA] movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08080C80 adds r0, r1 bl FieldObjectClearAnimIfSpecialAnimFinished movs r0, 0x3 strh r0, [r5, 0x8] b _08080CAE .align 2, 0 _08080C80: .4byte 0x030048a0 _08080C84: movs r1, 0xA ldrsh r0, [r5, r1] cmp r0, 0 blt _08080C9A lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0x4] cmp r0, 0x1 beq _08080CAE _08080C9A: bl sub_806451C movs r0, 0x4 strh r0, [r5, 0x8] b _08080CAE _08080CA4: bl script_env_2_disable adds r0, r4, 0 bl DestroyTask _08080CAE: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8080B9C thumb_func_start task_map_chg_seq_0807E20C task_map_chg_seq_0807E20C: @ 8080CB4 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _08080CE0 adds r5, r0, r1 adds r6, r5, 0 adds r6, 0xC adds r7, r5, 0 adds r7, 0xE movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x1 beq _08080D06 cmp r0, 0x1 bgt _08080CE4 cmp r0, 0 beq _08080CEE b _08080D6E .align 2, 0 _08080CE0: .4byte 0x03004b20 _08080CE4: cmp r0, 0x2 beq _08080D50 cmp r0, 0x3 beq _08080D64 b _08080D6E _08080CEE: movs r0, 0 bl sub_8080958 bl player_bitmagic adds r0, r6, 0 adds r1, r7, 0 bl PlayerGetDestCoords movs r0, 0x1 strh r0, [r5, 0x8] b _08080D6E _08080D06: bl sub_8080E70 cmp r0, 0 beq _08080D6E movs r0, 0x1 bl sub_8080958 movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap lsls r0, 24 lsrs r0, 24 lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _08080D4C adds r4, r0 bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 bl GetGoSpeed0AnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim movs r0, 0x2 strh r0, [r5, 0x8] b _08080D6E .align 2, 0 _08080D4C: .4byte 0x030048a0 _08080D50: bl walkrun_is_standing_still lsls r0, 24 cmp r0, 0 beq _08080D6E bl sub_806451C movs r0, 0x3 strh r0, [r5, 0x8] b _08080D6E _08080D64: bl script_env_2_disable adds r0, r4, 0 bl DestroyTask _08080D6E: pop {r4-r7} pop {r0} bx r0 thumb_func_end task_map_chg_seq_0807E20C thumb_func_start task_map_chg_seq_0807E2CC task_map_chg_seq_0807E2CC: @ 8080D74 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _08080D94 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _08080D98 cmp r0, 0x1 beq _08080DA8 b _08080DBE .align 2, 0 _08080D94: .4byte 0x03004b20 _08080D98: bl player_bitmagic bl script_env_2_enable ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08080DBE _08080DA8: bl sub_8080E70 cmp r0, 0 beq _08080DBE bl sub_806451C bl script_env_2_disable adds r0, r5, 0 bl DestroyTask _08080DBE: pop {r4,r5} pop {r0} bx r0 thumb_func_end task_map_chg_seq_0807E2CC thumb_func_start sub_8080DC4 sub_8080DC4: @ 8080DC4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8080E70 cmp r0, 0x1 bne _08080DE0 adds r0, r4, 0 bl DestroyTask ldr r0, _08080DE8 movs r1, 0x50 bl CreateTask _08080DE0: pop {r4} pop {r0} bx r0 .align 2, 0 _08080DE8: .4byte sub_80712B4 thumb_func_end sub_8080DC4 thumb_func_start atk17_seteffectuser atk17_seteffectuser: @ 8080DEC push {lr} bl pal_fill_black ldr r0, _08080E00 bl sub_8071284 bl script_env_2_enable pop {r0} bx r0 .align 2, 0 _08080E00: .4byte sub_8080DC4 thumb_func_end atk17_seteffectuser thumb_func_start task_mpl_807E3C8 task_mpl_807E3C8: @ 8080E04 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8080E70 cmp r0, 0x1 bne _08080E20 bl script_env_2_disable adds r0, r4, 0 bl DestroyTask bl sub_8064E2C _08080E20: pop {r4} pop {r0} bx r0 thumb_func_end task_mpl_807E3C8 thumb_func_start sub_8080E28 sub_8080E28: @ 8080E28 push {lr} bl script_env_2_enable bl pal_fill_black ldr r0, _08080E40 movs r1, 0xA bl CreateTask pop {r0} bx r0 .align 2, 0 _08080E40: .4byte task_mpl_807E3C8 thumb_func_end sub_8080E28 thumb_func_start sub_8080E44 sub_8080E44: @ 8080E44 push {lr} bl script_env_2_enable bl sub_8053E90 bl pal_fill_black ldr r0, _08080E60 movs r1, 0xA bl CreateTask pop {r0} bx r0 .align 2, 0 _08080E60: .4byte task_mpl_807E3C8 thumb_func_end sub_8080E44 thumb_func_start sub_8080E64 sub_8080E64: @ 8080E64 ldr r0, _08080E6C ldrb r0, [r0, 0x7] lsrs r0, 7 bx lr .align 2, 0 _08080E6C: .4byte 0x0202f388 thumb_func_end sub_8080E64 thumb_func_start sub_8080E70 sub_8080E70: @ 8080E70 push {lr} bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08080E82 movs r0, 0 b _08080E84 _08080E82: movs r0, 0x1 _08080E84: pop {r1} bx r1 thumb_func_end sub_8080E70 thumb_func_start sub_8080E88 sub_8080E88: @ 8080E88 push {lr} bl script_env_2_enable bl sub_8053FF8 bl sub_8080918 bl play_some_sound movs r0, 0x9 bl audio_play ldr r0, _08080EB4 ldr r1, _08080EB8 str r1, [r0] ldr r0, _08080EBC movs r1, 0xA bl CreateTask pop {r0} bx r0 .align 2, 0 _08080EB4: .4byte 0x0300485c _08080EB8: .4byte mapldr_default _08080EBC: .4byte task0A_fade_n_map_maybe thumb_func_end sub_8080E88 thumb_func_start sp13E_warp_to_last_warp sp13E_warp_to_last_warp: @ 8080EC0 push {lr} bl script_env_2_enable bl sub_8053FF8 bl sub_8080918 bl play_some_sound ldr r0, _08080EE4 ldr r1, _08080EE8 str r1, [r0] ldr r0, _08080EEC movs r1, 0xA bl CreateTask pop {r0} bx r0 .align 2, 0 _08080EE4: .4byte 0x0300485c _08080EE8: .4byte mapldr_default _08080EEC: .4byte task0A_fade_n_map_maybe thumb_func_end sp13E_warp_to_last_warp thumb_func_start sub_8080EF0 sub_8080EF0: @ 8080EF0 push {lr} bl script_env_2_enable ldr r0, _08080F08 ldr r1, _08080F0C str r1, [r0] ldr r0, _08080F10 movs r1, 0xA bl CreateTask pop {r0} bx r0 .align 2, 0 _08080F08: .4byte 0x0300485c _08080F0C: .4byte mapldr_default _08080F10: .4byte sub_808115C thumb_func_end sub_8080EF0 thumb_func_start sp13F_fall_to_last_warp sp13F_fall_to_last_warp: @ 8080F14 push {lr} bl sp13E_warp_to_last_warp ldr r1, _08080F24 ldr r0, _08080F28 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08080F24: .4byte 0x0300485c _08080F28: .4byte sub_8086748 thumb_func_end sp13F_fall_to_last_warp thumb_func_start sub_8080F2C sub_8080F2C: @ 8080F2C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl script_env_2_enable adds r0, r4, 0 movs r1, 0xA bl sub_8086A2C pop {r4} pop {r0} bx r0 thumb_func_end sub_8080F2C thumb_func_start sub_8080F48 sub_8080F48: @ 8080F48 push {lr} bl script_env_2_enable movs r0, 0xA bl sub_80871B8 pop {r0} bx r0 thumb_func_end sub_8080F48 thumb_func_start sub_8080F58 sub_8080F58: @ 8080F58 push {lr} bl script_env_2_enable movs r0, 0xA bl sub_8087654 pop {r0} bx r0 thumb_func_end sub_8080F58 thumb_func_start sub_8080F68 sub_8080F68: @ 8080F68 push {lr} bl script_env_2_enable bl sub_8053FF8 bl sub_8080918 movs r0, 0x2D bl audio_play ldr r0, _08080F90 movs r1, 0xA bl CreateTask ldr r1, _08080F94 ldr r0, _08080F98 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08080F90: .4byte task0A_fade_n_map_maybe _08080F94: .4byte 0x0300485c _08080F98: .4byte sub_8080B78 thumb_func_end sub_8080F68 thumb_func_start sub_8080F9C sub_8080F9C: @ 8080F9C push {lr} bl script_env_2_enable bl sub_8080918 ldr r0, _08080FB8 movs r1, 0xA bl CreateTask ldr r1, _08080FBC ldr r0, _08080FC0 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08080FB8: .4byte task0A_fade_n_map_maybe _08080FBC: .4byte 0x0300485c _08080FC0: .4byte sub_80C791C thumb_func_end sub_8080F9C thumb_func_start sub_8080FC4 sub_8080FC4: @ 8080FC4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _08080FE8 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08080FF8 cmp r0, 0x1 bgt _08080FEC cmp r0, 0 beq _08080FF2 b _08081022 .align 2, 0 _08080FE8: .4byte 0x03004b20 _08080FEC: cmp r0, 0x2 beq _08081012 b _08081022 _08080FF2: bl script_env_2_enable b _0808100A _08080FF8: bl sub_8080E64 cmp r0, 0 bne _08081022 bl sub_8054034 lsls r0, 24 cmp r0, 0 beq _08081022 _0808100A: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08081022 _08081012: bl warp_in ldr r0, _08081028 bl SetMainCallback2 adds r0, r5, 0 bl DestroyTask _08081022: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08081028: .4byte sub_8054588 thumb_func_end sub_8080FC4 thumb_func_start sub_808102C sub_808102C: @ 808102C push {lr} bl script_env_2_enable bl sub_8053FF8 bl sub_8080918 movs r0, 0x9 bl audio_play ldr r0, _0808104C movs r1, 0xA bl CreateTask pop {r0} bx r0 .align 2, 0 _0808104C: .4byte sub_8080FC4 thumb_func_end sub_808102C thumb_func_start sub_8081050 sub_8081050: @ 8081050 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _08081074 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08081096 cmp r0, 0x1 bgt _08081078 cmp r0, 0 beq _0808107E b _080810CC .align 2, 0 _08081074: .4byte 0x03004b28 _08081078: cmp r0, 0x2 beq _080810B4 b _080810CC _0808107E: bl ClearLinkCallback_2 movs r0, 0x1 movs r1, 0 bl fade_screen bl sub_8053FF8 movs r0, 0x9 bl audio_play b _080810AC _08081096: bl sub_8080E64 cmp r0, 0 bne _080810CC bl sub_8054034 lsls r0, 24 cmp r0, 0 beq _080810CC bl sub_800832C _080810AC: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080810CC _080810B4: ldr r0, _080810D4 ldrb r0, [r0] cmp r0, 0 bne _080810CC bl warp_in ldr r0, _080810D8 bl SetMainCallback2 adds r0, r5, 0 bl DestroyTask _080810CC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080810D4: .4byte 0x03002fa4 _080810D8: .4byte c2_load_new_map thumb_func_end sub_8081050 thumb_func_start sub_80810DC sub_80810DC: @ 80810DC push {lr} ldr r0, _080810EC movs r1, 0xA bl CreateTask pop {r0} bx r0 .align 2, 0 _080810EC: .4byte sub_8081050 thumb_func_end sub_80810DC thumb_func_start task0A_fade_n_map_maybe task0A_fade_n_map_maybe: @ 80810F0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _08081114 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08081128 cmp r0, 0x1 bgt _08081118 cmp r0, 0 beq _0808111E b _08081152 .align 2, 0 _08081114: .4byte 0x03004b20 _08081118: cmp r0, 0x2 beq _08081142 b _08081152 _0808111E: bl player_bitmagic bl script_env_2_enable b _0808113A _08081128: bl sub_8080E64 cmp r0, 0 bne _08081152 bl sub_8054034 lsls r0, 24 cmp r0, 0 beq _08081152 _0808113A: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08081152 _08081142: bl warp_in ldr r0, _08081158 bl SetMainCallback2 adds r0, r5, 0 bl DestroyTask _08081152: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08081158: .4byte c2_load_new_map thumb_func_end task0A_fade_n_map_maybe thumb_func_start sub_808115C sub_808115C: @ 808115C push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0808118C adds r5, r1, r0 adds r4, r5, 0 adds r4, 0xC adds r6, r5, 0 adds r6, 0xE movs r2, 0x8 ldrsh r1, [r5, r2] adds r2, r0, 0 cmp r1, 0x4 bls _08081180 b _080812BC _08081180: lsls r0, r1, 2 ldr r1, _08081190 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0808118C: .4byte 0x03004b20 _08081190: .4byte _08081194 .align 2, 0 _08081194: .4byte _080811A8 .4byte _080811E4 .4byte _08081240 .4byte _0808128C .4byte _080812A8 _080811A8: bl player_bitmagic adds r0, r4, 0 adds r1, r6, 0 bl PlayerGetDestCoords movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0 ldrsh r1, [r6, r2] subs r1, 0x1 bl sub_8058790 lsls r0, 16 lsrs r0, 16 bl audio_play movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0 ldrsh r1, [r6, r2] subs r1, 0x1 bl task_overworld_door_add_if_role_69_for_opening_door_at lsls r0, 24 asrs r0, 24 strh r0, [r5, 0xA] movs r0, 0x1 strh r0, [r5, 0x8] b _080812BC _080811E4: movs r1, 0xA ldrsh r0, [r5, r1] cmp r0, 0 blt _080811FA lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0x4] cmp r0, 0x1 beq _080812BC _080811FA: movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r4, _0808123C adds r0, r4 bl FieldObjectClearAnimIfSpecialAnimActive movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x9 bl FieldObjectSetSpecialAnim movs r0, 0x2 strh r0, [r5, 0x8] b _080812BC .align 2, 0 _0808123C: .4byte 0x030048a0 _08081240: bl walkrun_is_standing_still lsls r0, 24 cmp r0, 0 beq _080812BC movs r2, 0 ldrsh r0, [r4, r2] movs r2, 0 ldrsh r1, [r6, r2] subs r1, 0x1 bl sub_805870C lsls r0, 24 asrs r0, 24 strh r0, [r5, 0xA] movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08081288 adds r0, r1 bl FieldObjectClearAnimIfSpecialAnimFinished movs r0, 0 bl sub_8080958 movs r0, 0x3 strh r0, [r5, 0x8] b _080812BC .align 2, 0 _08081288: .4byte 0x030048a0 _0808128C: movs r1, 0xA ldrsh r0, [r5, r1] cmp r0, 0 blt _080812A2 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0x4] cmp r0, 0x1 beq _080812BC _080812A2: movs r0, 0x4 strh r0, [r5, 0x8] b _080812BC _080812A8: bl sub_8053FF8 bl sub_8080918 bl play_some_sound movs r0, 0 strh r0, [r5, 0x8] ldr r0, _080812C4 str r0, [r5] _080812BC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080812C4: .4byte task0A_fade_n_map_maybe thumb_func_end sub_808115C thumb_func_start sub_80812C8 sub_80812C8: @ 80812C8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080812EC adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08081300 cmp r0, 0x1 bgt _080812F0 cmp r0, 0 beq _080812F6 b _0808132A .align 2, 0 _080812EC: .4byte 0x03004b20 _080812F0: cmp r0, 0x2 beq _0808131A b _0808132A _080812F6: bl player_bitmagic bl script_env_2_enable b _08081312 _08081300: bl sub_8080E64 cmp r0, 0 bne _0808132A bl sub_8054034 lsls r0, 24 cmp r0, 0 beq _0808132A _08081312: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0808132A _0808131A: bl warp_in ldr r0, _08081330 bl SetMainCallback2 adds r0, r5, 0 bl DestroyTask _0808132A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08081330: .4byte sub_8054534 thumb_func_end sub_80812C8 thumb_func_start sub_8081334 sub_8081334: @ 8081334 push {lr} bl script_env_2_enable bl sub_8053FF8 bl sub_8080918 bl play_some_sound movs r0, 0x9 bl audio_play ldr r0, _08081360 ldr r1, _08081364 str r1, [r0] ldr r0, _08081368 movs r1, 0xA bl CreateTask pop {r0} bx r0 .align 2, 0 _08081360: .4byte 0x0300485c _08081364: .4byte sub_8080B60 _08081368: .4byte sub_80812C8 thumb_func_end sub_8081334 thumb_func_start sub_808136C sub_808136C: @ 808136C push {lr} cmp r1, 0xA0 bhi _08081394 cmp r2, 0 bge _08081378 movs r2, 0 _08081378: cmp r2, 0xFF ble _0808137E movs r2, 0xFF _0808137E: cmp r3, 0 bge _08081384 movs r3, 0 _08081384: cmp r3, 0xFF ble _0808138A movs r3, 0xFF _0808138A: lsls r1, 1 adds r1, r0 lsls r0, r2, 8 orrs r0, r3 strh r0, [r1] _08081394: pop {r0} bx r0 thumb_func_end sub_808136C thumb_func_start sub_8081398 sub_8081398: @ 8081398 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 str r0, [sp] mov r10, r1 mov r9, r2 adds r6, r3, 0 mov r8, r6 movs r7, 0 cmp r6, 0 blt _08081414 _080813B4: mov r0, r9 subs r1, r0, r7 mov r0, r10 subs r4, r0, r6 adds r5, r0, r6 ldr r0, [sp] adds r2, r4, 0 adds r3, r5, 0 bl sub_808136C mov r0, r9 adds r1, r0, r7 ldr r0, [sp] adds r2, r4, 0 adds r3, r5, 0 bl sub_808136C mov r0, r9 subs r1, r0, r6 mov r0, r10 subs r4, r0, r7 adds r5, r0, r7 ldr r0, [sp] adds r2, r4, 0 adds r3, r5, 0 bl sub_808136C mov r0, r9 adds r1, r0, r6 ldr r0, [sp] adds r2, r4, 0 adds r3, r5, 0 bl sub_808136C mov r1, r8 adds r1, 0x1 lsls r0, r7, 1 subs r1, r0 mov r8, r1 adds r7, 0x1 cmp r1, 0 bge _08081410 subs r1, r6, 0x1 lsls r0, r1, 1 add r8, r0 adds r6, r1, 0 _08081410: cmp r6, r7 bge _080813B4 _08081414: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8081398 thumb_func_start sub_8081424 sub_8081424: @ 8081424 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _08081448 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08081480 cmp r0, 0x1 bgt _0808144C cmp r0, 0 beq _08081452 b _080814E2 .align 2, 0 _08081448: .4byte 0x03004b28 _0808144C: cmp r0, 0x2 beq _080814D8 b _080814E2 _08081452: ldr r0, _08081478 ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 ldr r1, _0808147C adds r0, r1 movs r2, 0x2 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] movs r5, 0x6 ldrsh r3, [r4, r5] bl sub_8081398 movs r0, 0x1 strh r0, [r4] b _080814E2 .align 2, 0 _08081478: .4byte 0x03004dc0 _0808147C: .4byte 0x03004de0 _08081480: ldr r0, _080814C8 ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 ldr r1, _080814CC adds r0, r1 movs r6, 0x2 ldrsh r1, [r4, r6] movs r3, 0x4 ldrsh r2, [r4, r3] movs r6, 0x6 ldrsh r3, [r4, r6] bl sub_8081398 movs r0, 0 strh r0, [r4] ldrh r0, [r4, 0xA] ldrh r1, [r4, 0x6] adds r0, r1 strh r0, [r4, 0x6] lsls r0, 16 asrs r0, 16 movs r2, 0x8 ldrsh r1, [r4, r2] cmp r0, r1 ble _080814E2 movs r3, 0xC ldrsh r0, [r4, r3] cmp r0, 0x1 bne _080814D0 bl remove_some_task movs r0, 0x2 strh r0, [r4] b _080814E2 .align 2, 0 _080814C8: .4byte 0x03004dc0 _080814CC: .4byte 0x03004de0 _080814D0: adds r0, r5, 0 bl DestroyTask b _080814E2 _080814D8: bl dp12_8087EA4 adds r0, r5, 0 bl DestroyTask _080814E2: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8081424 thumb_func_start sub_80814E8 sub_80814E8: @ 80814E8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808150C bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _08081504 bl script_env_2_enable_and_set_ctx_running adds r0, r4, 0 bl DestroyTask _08081504: pop {r4} pop {r0} bx r0 .align 2, 0 _0808150C: .4byte sub_8081424 thumb_func_end sub_80814E8 thumb_func_start sub_8081510 sub_8081510: @ 8081510 push {r4,lr} ldr r4, _08081530 adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _08081528 adds r0, r4, 0 movs r1, 0x50 bl CreateTask _08081528: pop {r4} pop {r0} bx r0 .align 2, 0 _08081530: .4byte sub_80814E8 thumb_func_end sub_8081510 thumb_func_start sub_8081534 sub_8081534: @ 8081534 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r8, r0 mov r9, r1 adds r5, r2, 0 adds r4, r3, 0 ldr r6, [sp, 0x1C] ldr r0, [sp, 0x20] lsls r0, 24 lsrs r7, r0, 24 ldr r0, _08081578 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _0808157C adds r1, r0, r1 strh r5, [r1, 0x6] strh r4, [r1, 0x8] mov r0, r8 strh r0, [r1, 0x2] mov r0, r9 strh r0, [r1, 0x4] strh r6, [r1, 0xC] cmp r5, r4 bge _08081580 strh r7, [r1, 0xA] b _08081584 .align 2, 0 _08081578: .4byte sub_8081424 _0808157C: .4byte 0x03004b28 _08081580: negs r0, r7 strh r0, [r1, 0xA] _08081584: adds r0, r2, 0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8081534 thumb_func_start sub_8081594 sub_8081594: @ 8081594 push {r4,r5,lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 bl sav1_get_flash_used_on_map lsls r0, 24 lsrs r0, 24 movs r5, 0 cmp r4, 0 bne _080815AE movs r5, 0x1 _080815AE: ldr r1, _080815DC lsls r0, 1 adds r0, r1 ldrh r2, [r0] lsls r0, r4, 1 adds r0, r1 ldrh r3, [r0] str r5, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r0, 0x78 movs r1, 0x50 bl sub_8081534 bl sub_8081510 bl script_env_2_enable add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080815DC: .4byte gUnknown_0839ACDC thumb_func_end sub_8081594 thumb_func_start sub_80815E0 sub_80815E0: @ 80815E0 push {r4,lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _0808160E ldr r4, _08081614 ldr r1, _08081618 lsls r0, 1 adds r0, r1 ldrh r3, [r0] adds r0, r4, 0 movs r1, 0x78 movs r2, 0x50 bl sub_8081398 movs r0, 0xF0 lsls r0, 3 adds r1, r4, r0 movs r2, 0xF0 lsls r2, 1 adds r0, r4, 0 bl CpuFastSet _0808160E: pop {r4} pop {r0} bx r0 .align 2, 0 _08081614: .4byte 0x03004de0 _08081618: .4byte gUnknown_0839ACDC thumb_func_end sub_80815E0 thumb_func_start sub_808161C sub_808161C: @ 808161C push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 cmp r0, 0 bne _0808162A movs r1, 0x1F b _08081630 _0808162A: movs r0, 0xF8 lsls r0, 7 adds r1, r0, 0 _08081630: mov r0, sp strh r1, [r0] movs r5, 0 movs r4, 0xF0 lsls r4, 16 _0808163A: lsrs r1, r4, 16 mov r0, sp movs r2, 0x2 bl LoadPalette movs r0, 0x80 lsls r0, 9 adds r4, r0 adds r5, 0x1 cmp r5, 0xF ble _0808163A add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_808161C thumb_func_start sub_8081658 sub_8081658: @ 8081658 push {lr} lsls r0, 16 ldr r2, _08081678 ldrh r1, [r2] lsls r1, 24 lsrs r3, r1, 24 ldrh r1, [r2] lsrs r2, r1, 8 cmp r0, 0 beq _0808167C cmp r3, 0 beq _08081686 subs r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 b _08081686 .align 2, 0 _08081678: .4byte REG_BLDALPHA _0808167C: cmp r2, 0xF bhi _08081686 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 _08081686: ldr r1, _0808169C lsls r0, r2, 8 orrs r0, r3 strh r0, [r1] cmp r3, 0 bne _080816A0 cmp r2, 0x10 bne _080816A0 movs r0, 0x1 b _080816A2 .align 2, 0 _0808169C: .4byte REG_BLDALPHA _080816A0: movs r0, 0 _080816A2: pop {r1} bx r1 thumb_func_end sub_8081658 thumb_func_start sub_80816A8 sub_80816A8: @ 80816A8 push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080816D0 adds r7, r0, r1 movs r1, 0 ldrsh r0, [r7, r1] cmp r0, 0x7 bls _080816C4 b _08081892 _080816C4: lsls r0, 2 ldr r1, _080816D4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080816D0: .4byte 0x03004b28 _080816D4: .4byte _080816D8 .align 2, 0 _080816D8: .4byte _080816F8 .4byte _08081790 .4byte _080817BC .4byte _080817D8 .4byte _080817EE .4byte _08081852 .4byte _08081818 .4byte _08081826 _080816F8: movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] strh r0, [r7, 0xC] ldr r3, _0808176C ldrh r0, [r3] strh r0, [r7, 0xE] ldr r6, _08081770 ldrh r0, [r6] strh r0, [r7, 0x10] ldr r5, _08081774 ldrh r0, [r5] strh r0, [r7, 0x12] ldr r4, _08081778 ldrh r0, [r4] strh r0, [r7, 0x14] ldrh r1, [r2] ldr r0, _0808177C ands r0, r1 strh r0, [r2] ldr r1, _08081780 ldrh r0, [r3] ldrh r1, [r1] orrs r0, r1 strh r0, [r3] ldr r2, _08081784 adds r0, r2, 0 strh r0, [r6] movs r0, 0x3F strh r0, [r5] movs r0, 0x1E strh r0, [r4] ldr r4, _08081788 movs r0, 0x4 ldrsh r1, [r7, r0] movs r0, 0x6 ldrsh r2, [r7, r0] adds r0, r4, 0 movs r3, 0x1 bl sub_8081398 movs r2, 0xF0 lsls r2, 3 adds r1, r4, r2 movs r2, 0xF0 lsls r2, 1 adds r0, r4, 0 bl CpuFastSet ldr r2, _0808178C ldr r0, [r2] ldr r1, [r2, 0x4] ldr r2, [r2, 0x8] bl sub_80895F8 movs r0, 0x1 strh r0, [r7] b _08081892 .align 2, 0 _0808176C: .4byte REG_BLDCNT _08081770: .4byte REG_BLDALPHA _08081774: .4byte REG_WININ _08081778: .4byte REG_WINOUT _0808177C: .4byte 0x0000bfff _08081780: .4byte gUnknown_081E29E8 _08081784: .4byte 0x0000070c _08081788: .4byte 0x03004de0 _0808178C: .4byte gUnknown_0839ACEC _08081790: movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl sub_8071EBC ldrb r0, [r7, 0x2] bl sub_808161C movs r1, 0x4 ldrsh r0, [r7, r1] movs r2, 0x6 ldrsh r1, [r7, r2] movs r2, 0x1 str r2, [sp] movs r4, 0x2 str r4, [sp, 0x4] movs r3, 0xA0 bl sub_8081534 strh r4, [r7] b _08081892 _080817BC: ldr r0, _080817D4 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _08081892 bl script_env_2_enable_and_set_ctx_running movs r0, 0x3 strh r0, [r7] b _08081892 .align 2, 0 _080817D4: .4byte sub_8081424 _080817D8: bl InstallCameraPanAheadCallback movs r0, 0 bl SetCameraPanningCallback movs r0, 0 strh r0, [r7, 0xA] movs r0, 0x4 strh r0, [r7, 0x8] strh r0, [r7] b _08081892 _080817EE: ldrh r0, [r7, 0x8] subs r0, 0x1 strh r0, [r7, 0x8] lsls r0, 16 cmp r0, 0 bne _08081892 movs r0, 0x4 strh r0, [r7, 0x8] ldrh r0, [r7, 0xA] movs r1, 0x1 eors r0, r1 strh r0, [r7, 0xA] movs r1, 0x4 negs r1, r1 cmp r0, 0 beq _08081810 movs r1, 0x4 _08081810: movs r0, 0 bl SetCameraPanning b _08081892 _08081818: bl InstallCameraPanAheadCallback movs r0, 0x8 strh r0, [r7, 0x8] movs r0, 0x7 strh r0, [r7] b _08081892 _08081826: ldrh r0, [r7, 0x8] subs r0, 0x1 strh r0, [r7, 0x8] lsls r0, 16 cmp r0, 0 bne _08081892 movs r0, 0x8 strh r0, [r7, 0x8] ldrh r0, [r7, 0xA] movs r1, 0x1 eors r0, r1 strh r0, [r7, 0xA] ldrh r0, [r7, 0xA] bl sub_8081658 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08081892 movs r0, 0x5 strh r0, [r7] b _08081892 _08081852: movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset ldr r0, _0808189C bl LoadFontDefaultPalette ldr r1, _080818A0 movs r0, 0xFF strh r0, [r1] subs r1, 0x40 ldrh r0, [r7, 0xC] strh r0, [r1] adds r1, 0x50 ldrh r0, [r7, 0xE] strh r0, [r1] adds r1, 0x2 ldrh r0, [r7, 0x10] strh r0, [r1] subs r1, 0xA ldrh r0, [r7, 0x12] strh r0, [r1] adds r1, 0x2 ldrh r0, [r7, 0x14] strh r0, [r1] bl script_env_2_enable_and_set_ctx_running adds r0, r4, 0 bl DestroyTask _08081892: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808189C: .4byte gWindowConfig_81E6CE4 _080818A0: .4byte REG_WIN0H thumb_func_end sub_80816A8 thumb_func_start sub_80818A4 sub_80818A4: @ 80818A4 push {lr} ldr r0, _080818CC movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080818D0 adds r1, r0 ldr r0, _080818D4 ldrh r0, [r0] cmp r0, 0 bne _080818D8 strh r0, [r1, 0x2] movs r0, 0x68 b _080818F0 .align 2, 0 _080818CC: .4byte sub_80816A8 _080818D0: .4byte 0x03004b28 _080818D4: .4byte 0x0202e8dc _080818D8: cmp r0, 0x1 bne _080818E2 strh r0, [r1, 0x2] movs r0, 0x68 b _080818F0 _080818E2: cmp r0, 0x2 bne _080818EA movs r0, 0 b _080818EC _080818EA: movs r0, 0x1 _080818EC: strh r0, [r1, 0x2] movs r0, 0x78 _080818F0: strh r0, [r1, 0x4] movs r0, 0x50 strh r0, [r1, 0x6] pop {r0} bx r0 thumb_func_end sub_80818A4 thumb_func_start sub_80818FC sub_80818FC: @ 80818FC push {lr} ldr r0, _0808191C bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 ldr r2, _08081920 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0x6 strh r0, [r1, 0x8] pop {r0} bx r0 .align 2, 0 _0808191C: .4byte sub_80816A8 _08081920: .4byte 0x03004b20 thumb_func_end sub_80818FC thumb_func_start sub_8081924 sub_8081924: @ 8081924 push {lr} bl sub_8054044 ldr r0, _08081938 movs r1, 0x50 bl CreateTask pop {r0} bx r0 .align 2, 0 _08081938: .4byte task50_0807F0C8 thumb_func_end sub_8081924 thumb_func_start task50_0807F0C8 task50_0807F0C8: @ 808193C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8054034 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08081958 adds r0, r4, 0 bl DestroyTask bl script_env_2_enable_and_set_ctx_running _08081958: pop {r4} pop {r0} bx r0 thumb_func_end task50_0807F0C8 thumb_func_start task01_battle_start task01_battle_start: @ 8081960 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _08081980 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 beq _08081984 cmp r0, 0x1 beq _0808199A b _080819BA .align 2, 0 _08081980: .4byte 0x03004b28 _08081984: bl c3_80A0DD8_is_running cmp r0, 0 bne _080819BA ldrb r0, [r4, 0x2] bl sub_811AABC ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080819BA _0808199A: bl sub_811AAE8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080819BA ldr r0, _080819C0 bl SetMainCallback2 bl prev_quest_postbuffer_cursor_backup_reset bl overworld_poison_timer_set adds r0, r5, 0 bl DestroyTask _080819BA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080819C0: .4byte sub_800E7C4 thumb_func_end task01_battle_start thumb_func_start task_add_01_battle_start task_add_01_battle_start: @ 80819C4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 16 lsrs r5, 16 ldr r0, _080819F8 movs r1, 0x1 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080819FC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0xA] adds r0, r5, 0 bl current_map_music_set__default_for_battle pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080819F8: .4byte task01_battle_start _080819FC: .4byte 0x03004b20 thumb_func_end task_add_01_battle_start thumb_func_start sub_8081A00 sub_8081A00: @ 8081A00 push {lr} bl GetSafariZoneFlag cmp r0, 0 beq _08081A10 bl sub_8081AA4 b _08081A14 _08081A10: bl sub_8081A18 _08081A14: pop {r0} bx r0 thumb_func_end sub_8081A00 thumb_func_start sub_8081A18 sub_8081A18: @ 8081A18 push {lr} bl script_env_2_enable bl player_bitmagic bl sub_80597F4 ldr r1, _08081A50 ldr r0, _08081A54 str r0, [r1, 0x8] ldr r1, _08081A58 movs r0, 0 strh r0, [r1] bl sub_8082034 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl task_add_01_battle_start movs r0, 0x7 bl sav12_xor_increment movs r0, 0x8 bl sav12_xor_increment pop {r0} bx r0 .align 2, 0 _08081A50: .4byte 0x03001770 _08081A54: .4byte sub_8081C8C _08081A58: .4byte 0x020239f8 thumb_func_end sub_8081A18 thumb_func_start sub_8081A5C sub_8081A5C: @ 8081A5C push {lr} bl script_env_2_enable bl player_bitmagic bl sub_80597F4 ldr r1, _08081A98 ldr r0, _08081A9C str r0, [r1, 0x8] ldr r1, _08081AA0 movs r2, 0x80 lsls r2, 3 adds r0, r2, 0 strh r0, [r1] bl sub_8082034 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl task_add_01_battle_start movs r0, 0x7 bl sav12_xor_increment movs r0, 0x8 bl sav12_xor_increment pop {r0} bx r0 .align 2, 0 _08081A98: .4byte 0x03001770 _08081A9C: .4byte sub_8081C8C _08081AA0: .4byte 0x020239f8 thumb_func_end sub_8081A5C thumb_func_start sub_8081AA4 sub_8081AA4: @ 8081AA4 push {lr} bl script_env_2_enable bl player_bitmagic bl sub_80597F4 ldr r1, _08081AD0 ldr r0, _08081AD4 str r0, [r1, 0x8] ldr r1, _08081AD8 movs r0, 0x80 strh r0, [r1] bl sub_8082034 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl task_add_01_battle_start pop {r0} bx r0 .align 2, 0 _08081AD0: .4byte 0x03001770 _08081AD4: .4byte sub_80C824C _08081AD8: .4byte 0x020239f8 thumb_func_end sub_8081AA4 thumb_func_start task_add_01_battle_start_with_music_and_stats task_add_01_battle_start_with_music_and_stats: @ 8081ADC push {lr} bl sub_8082080 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl task_add_01_battle_start movs r0, 0x7 bl sav12_xor_increment movs r0, 0x9 bl sav12_xor_increment pop {r0} bx r0 thumb_func_end task_add_01_battle_start_with_music_and_stats thumb_func_start sub_8081AFC sub_8081AFC: @ 8081AFC push {lr} ldr r0, _08081B2C movs r1, 0xC4 lsls r1, 1 movs r2, 0x5 bl sub_803AC44 bl script_env_2_enable ldr r1, _08081B30 ldr r0, _08081B34 str r0, [r1, 0x8] ldr r1, _08081B38 movs r2, 0x80 lsls r2, 2 adds r0, r2, 0 strh r0, [r1] movs r0, 0x8 movs r1, 0 bl task_add_01_battle_start pop {r0} bx r0 .align 2, 0 _08081B2C: .4byte 0x030045c0 _08081B30: .4byte 0x03001770 _08081B34: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music _08081B38: .4byte 0x020239f8 thumb_func_end sub_8081AFC thumb_func_start sub_8081B3C sub_8081B3C: @ 8081B3C push {lr} bl script_env_2_enable ldr r1, _08081B6C ldr r0, _08081B70 str r0, [r1, 0x8] ldr r1, _08081B74 movs r0, 0 strh r0, [r1] bl sub_8082034 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl task_add_01_battle_start movs r0, 0x7 bl sav12_xor_increment movs r0, 0x8 bl sav12_xor_increment pop {r0} bx r0 .align 2, 0 _08081B6C: .4byte 0x03001770 _08081B70: .4byte sub_8081CEC _08081B74: .4byte 0x020239f8 thumb_func_end sub_8081B3C thumb_func_start sub_8081B78 sub_8081B78: @ 8081B78 push {lr} bl script_env_2_enable ldr r1, _08081BAC ldr r0, _08081BB0 str r0, [r1, 0x8] ldr r1, _08081BB4 movs r2, 0x80 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] bl sub_8082034 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl task_add_01_battle_start movs r0, 0x7 bl sav12_xor_increment movs r0, 0x8 bl sav12_xor_increment pop {r0} bx r0 .align 2, 0 _08081BAC: .4byte 0x03001770 _08081BB0: .4byte sub_8081CEC _08081BB4: .4byte 0x020239f8 thumb_func_end sub_8081B78 thumb_func_start sub_8081BB8 sub_8081BB8: @ 8081BB8 push {lr} bl script_env_2_enable ldr r1, _08081BE8 ldr r0, _08081BEC str r0, [r1, 0x8] ldr r1, _08081BF0 movs r2, 0x80 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r1, _08081BF4 movs r0, 0 bl task_add_01_battle_start movs r0, 0x7 bl sav12_xor_increment movs r0, 0x8 bl sav12_xor_increment pop {r0} bx r0 .align 2, 0 _08081BE8: .4byte 0x03001770 _08081BEC: .4byte sub_8081CEC _08081BF0: .4byte 0x020239f8 _08081BF4: .4byte 0x000001cf thumb_func_end sub_8081BB8 thumb_func_start sub_8081BF8 sub_8081BF8: @ 8081BF8 push {lr} bl script_env_2_enable ldr r1, _08081C20 ldr r0, _08081C24 str r0, [r1, 0x8] ldr r1, _08081C28 movs r2, 0xC0 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r0, _08081C2C ldrb r0, [r0] cmp r0, 0x2 bne _08081C34 ldr r1, _08081C30 movs r0, 0xB bl task_add_01_battle_start b _08081C3C .align 2, 0 _08081C20: .4byte 0x03001770 _08081C24: .4byte sub_8081CEC _08081C28: .4byte 0x020239f8 _08081C2C: .4byte gGameVersion _08081C30: .4byte 0x000001cf _08081C34: ldr r1, _08081C4C movs r0, 0x6 bl task_add_01_battle_start _08081C3C: movs r0, 0x7 bl sav12_xor_increment movs r0, 0x8 bl sav12_xor_increment pop {r0} bx r0 .align 2, 0 _08081C4C: .4byte 0x000001cf thumb_func_end sub_8081BF8 thumb_func_start sub_8081C50 sub_8081C50: @ 8081C50 push {lr} bl script_env_2_enable ldr r1, _08081C80 ldr r0, _08081C84 str r0, [r1, 0x8] ldr r1, _08081C88 movs r2, 0xC0 lsls r2, 7 adds r0, r2, 0 strh r0, [r1] movs r1, 0xE7 lsls r1, 1 movs r0, 0xA bl task_add_01_battle_start movs r0, 0x7 bl sav12_xor_increment movs r0, 0x8 bl sav12_xor_increment pop {r0} bx r0 .align 2, 0 _08081C80: .4byte 0x03001770 _08081C84: .4byte sub_8081CEC _08081C88: .4byte 0x020239f8 thumb_func_end sub_8081C50 thumb_func_start sub_8081C8C sub_8081C8C: @ 8081C8C push {lr} sub sp, 0x4 mov r1, sp movs r0, 0 strh r0, [r1] movs r1, 0xA0 lsls r1, 19 ldr r2, _08081CC0 mov r0, sp bl CpuSet movs r0, 0 movs r1, 0x80 bl ResetOamRange ldr r0, _08081CC4 ldrb r0, [r0] bl battle_exit_is_player_defeat cmp r0, 0x1 bne _08081CCC ldr r0, _08081CC8 bl SetMainCallback2 b _08081CD8 .align 2, 0 _08081CC0: .4byte 0x01000100 _08081CC4: .4byte 0x02024d26 _08081CC8: .4byte c2_whiteout _08081CCC: ldr r0, _08081CE0 bl SetMainCallback2 ldr r1, _08081CE4 ldr r0, _08081CE8 str r0, [r1] _08081CD8: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08081CE0: .4byte c2_exit_to_overworld_2_switch _08081CE4: .4byte 0x0300485c _08081CE8: .4byte sub_8080E44 thumb_func_end sub_8081C8C thumb_func_start sub_8081CEC sub_8081CEC: @ 8081CEC push {lr} sub sp, 0x4 mov r1, sp movs r0, 0 strh r0, [r1] movs r1, 0xA0 lsls r1, 19 ldr r2, _08081D20 mov r0, sp bl CpuSet movs r0, 0 movs r1, 0x80 bl ResetOamRange ldr r0, _08081D24 ldrb r0, [r0] bl battle_exit_is_player_defeat cmp r0, 0x1 bne _08081D2C ldr r0, _08081D28 bl SetMainCallback2 b _08081D32 .align 2, 0 _08081D20: .4byte 0x01000100 _08081D24: .4byte 0x02024d26 _08081D28: .4byte c2_whiteout _08081D2C: ldr r0, _08081D38 bl SetMainCallback2 _08081D32: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08081D38: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end sub_8081CEC thumb_func_start sub_8081D3C sub_8081D3C: @ 8081D3C push {r4,r5,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 16 lsrs r5, r0, 16 lsls r0, r5, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl MetatileBehavior_IsTallGrass lsls r0, 24 cmp r0, 0 beq _08081D72 movs r0, 0 b _08081E86 _08081D72: adds r0, r4, 0 bl MetatileBehavior_IsLongGrass lsls r0, 24 cmp r0, 0 beq _08081D82 movs r0, 0x1 b _08081E86 _08081D82: adds r0, r4, 0 bl MetatileBehavior_IsSandOrDeepSand lsls r0, 24 cmp r0, 0 bne _08081E84 ldr r0, _08081DA4 ldrb r0, [r0, 0x17] subs r0, 0x1 cmp r0, 0x8 bhi _08081E08 lsls r0, 2 ldr r1, _08081DA8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08081DA4: .4byte 0x0202e828 _08081DA8: .4byte _08081DAC .align 2, 0 _08081DAC: .4byte _08081E08 .4byte _08081E08 .4byte _08081E08 .4byte _08081DD0 .4byte _08081DF4 .4byte _08081DF8 .4byte _08081E08 .4byte _08081DE0 .4byte _08081DE0 _08081DD0: lsls r0, r5, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80574C4 lsls r0, 24 cmp r0, 0 beq _08081DE4 _08081DE0: movs r0, 0x8 b _08081E86 _08081DE4: adds r0, r4, 0 bl MetatileBehavior_IsSurfableWaterOrUnderwater lsls r0, 24 cmp r0, 0 bne _08081E4C movs r0, 0x7 b _08081E86 _08081DF4: movs r0, 0x3 b _08081E86 _08081DF8: lsls r0, r5, 24 lsrs r0, 24 bl MetatileBehavior_IsSurfableWaterOrUnderwater lsls r0, 24 cmp r0, 0 bne _08081E5E b _08081E7A _08081E08: lsls r0, r5, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_8057568 lsls r0, 24 cmp r0, 0 bne _08081E5E adds r0, r4, 0 bl MetatileBehavior_IsSurfableWaterOrUnderwater lsls r0, 24 cmp r0, 0 bne _08081E4C adds r0, r4, 0 bl sub_80574D8 lsls r0, 24 cmp r0, 0 beq _08081E34 movs r0, 0x6 b _08081E86 _08081E34: movs r0, 0x8 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _08081E62 adds r0, r4, 0 bl sub_8057450 lsls r0, 24 cmp r0, 0 beq _08081E50 _08081E4C: movs r0, 0x5 b _08081E86 _08081E50: adds r0, r4, 0 bl sub_8057434 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08081E62 _08081E5E: movs r0, 0x4 b _08081E86 _08081E62: ldr r0, _08081E80 ldrh r1, [r0, 0x4] movs r0, 0xE0 lsls r0, 5 cmp r1, r0 beq _08081E84 bl sav1_get_weather_probably lsls r0, 24 lsrs r0, 24 cmp r0, 0x8 beq _08081E84 _08081E7A: movs r0, 0x9 b _08081E86 .align 2, 0 _08081E80: .4byte 0x02025734 _08081E84: movs r0, 0x2 _08081E86: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8081D3C thumb_func_start sub_8081E90 sub_8081E90: @ 8081E90 push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 16 lsrs r4, r0, 16 bl sav1_get_flash_used_on_map lsls r0, 24 cmp r0, 0 beq _08081EC0 movs r0, 0x2 b _08081EEA _08081EC0: lsls r0, r4, 24 lsrs r0, 24 bl MetatileBehavior_IsSurfableWaterOrUnderwater lsls r0, 24 cmp r0, 0 bne _08081EE8 ldr r0, _08081EE0 ldrb r0, [r0, 0x17] cmp r0, 0x4 beq _08081EE4 cmp r0, 0x5 beq _08081EE8 movs r0, 0 b _08081EEA .align 2, 0 _08081EE0: .4byte 0x0202e828 _08081EE4: movs r0, 0x1 b _08081EEA _08081EE8: movs r0, 0x3 _08081EEA: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_8081E90 thumb_func_start sub_8081EF4 sub_8081EF4: @ 8081EF4 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 movs r7, 0 movs r6, 0 _08081EFE: movs r0, 0x64 adds r1, r6, 0 muls r1, r0 ldr r0, _08081F50 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField adds r1, r0, 0 movs r0, 0xCE lsls r0, 1 cmp r1, r0 beq _08081F42 cmp r1, 0 beq _08081F42 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _08081F42 adds r0, r4, 0 movs r1, 0x38 bl PokemonGetField adds r0, r7, r0 lsls r0, 24 lsrs r7, r0, 24 subs r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _08081F48 _08081F42: adds r6, 0x1 cmp r6, 0x5 ble _08081EFE _08081F48: adds r0, r7, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08081F50: .4byte 0x03004360 thumb_func_end sub_8081EF4 thumb_func_start reads_trainer_data_byte0 reads_trainer_data_byte0: @ 8081F54 push {r4,r5,lr} lsls r0, 16 lsrs r0, 16 lsls r1, 24 lsrs r4, r1, 24 ldr r5, _08081F88 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r2, r1, r5 adds r0, r2, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, r4 bcs _08081F74 adds r4, r0, 0 _08081F74: movs r3, 0 ldrb r0, [r2] cmp r0, 0x1 beq _08081FBC cmp r0, 0x1 bgt _08081F8C cmp r0, 0 beq _08081F96 b _0808202C .align 2, 0 _08081F88: .4byte gTrainers _08081F8C: cmp r0, 0x2 beq _08081FE2 cmp r0, 0x3 beq _08082008 b _0808202C _08081F96: adds r0, r5, 0 adds r0, 0x24 adds r0, r1, r0 ldr r1, [r0] movs r2, 0 cmp r3, r4 bcs _0808202C _08081FA4: lsls r0, r2, 3 adds r0, r1 ldrb r0, [r0, 0x2] adds r0, r3, r0 lsls r0, 24 lsrs r3, r0, 24 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r4 bcc _08081FA4 b _0808202C _08081FBC: adds r0, r5, 0 adds r0, 0x24 adds r0, r1, r0 ldr r1, [r0] movs r2, 0 cmp r3, r4 bcs _0808202C _08081FCA: lsls r0, r2, 4 adds r0, r1 ldrb r0, [r0, 0x2] adds r0, r3, r0 lsls r0, 24 lsrs r3, r0, 24 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r4 bcc _08081FCA b _0808202C _08081FE2: adds r0, r5, 0 adds r0, 0x24 adds r0, r1, r0 ldr r1, [r0] movs r2, 0 cmp r3, r4 bcs _0808202C _08081FF0: lsls r0, r2, 3 adds r0, r1 ldrb r0, [r0, 0x2] adds r0, r3, r0 lsls r0, 24 lsrs r3, r0, 24 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r4 bcc _08081FF0 b _0808202C _08082008: adds r0, r5, 0 adds r0, 0x24 adds r0, r1, r0 ldr r1, [r0] movs r2, 0 cmp r3, r4 bcs _0808202C _08082016: lsls r0, r2, 4 adds r0, r1 ldrb r0, [r0, 0x2] adds r0, r3, r0 lsls r0, 24 lsrs r3, r0, 24 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r4 bcc _08082016 _0808202C: adds r0, r3, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end reads_trainer_data_byte0 thumb_func_start sub_8082034 sub_8082034: @ 8082034 push {r4,r5,lr} bl sub_8081E90 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _08082064 movs r1, 0x38 bl PokemonGetField adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 bl sub_8081EF4 lsls r0, 24 lsrs r0, 24 cmp r4, r0 bcc _0808206C ldr r0, _08082068 lsls r1, r5, 1 adds r0, 0x1 b _08082070 .align 2, 0 _08082064: .4byte 0x030045c0 _08082068: .4byte gUnknown_0839ACF8 _0808206C: ldr r0, _0808207C lsls r1, r5, 1 _08082070: adds r1, r0 ldrb r0, [r1] pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0808207C: .4byte gUnknown_0839ACF8 thumb_func_end sub_8082034 thumb_func_start sub_8082080 sub_8082080: @ 8082080 push {r4-r6,lr} ldr r4, _080820AC ldrh r1, [r4] movs r0, 0x80 lsls r0, 3 cmp r1, r0 beq _080820E4 ldr r1, _080820B0 ldrh r2, [r4] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0x1] cmp r1, 0x18 bne _080820E0 adds r1, r2, 0 ldr r0, _080820B4 cmp r1, r0 bne _080820B8 movs r0, 0xC b _0808212C .align 2, 0 _080820AC: .4byte 0x0202ff5e _080820B0: .4byte gTrainers _080820B4: .4byte 0x00000105 _080820B8: movs r0, 0x83 lsls r0, 1 cmp r1, r0 bne _080820C4 movs r0, 0xD b _0808212C _080820C4: ldr r0, _080820D0 cmp r1, r0 bne _080820D4 movs r0, 0xE b _0808212C .align 2, 0 _080820D0: .4byte 0x00000107 _080820D4: movs r0, 0x84 lsls r0, 1 cmp r1, r0 bne _080820E4 movs r0, 0xF b _0808212C _080820E0: cmp r1, 0x20 bne _080820E8 _080820E4: movs r0, 0x10 b _0808212C _080820E8: ldrb r0, [r0, 0x18] movs r5, 0x1 cmp r0, 0x1 bne _080820F2 movs r5, 0x2 _080820F2: bl sub_8081E90 lsls r0, 24 lsrs r6, r0, 24 ldrh r0, [r4] adds r1, r5, 0 bl reads_trainer_data_byte0 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 bl sub_8081EF4 lsls r0, 24 lsrs r0, 24 cmp r4, r0 bcc _08082124 ldr r0, _08082120 lsls r1, r6, 1 adds r0, 0x1 b _08082128 .align 2, 0 _08082120: .4byte gUnknown_0839AD00 _08082124: ldr r0, _08082134 lsls r1, r6, 1 _08082128: adds r1, r0 ldrb r0, [r1] _0808212C: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08082134: .4byte gUnknown_0839AD00 thumb_func_end sub_8082080 thumb_func_start sub_8082138 sub_8082138: @ 8082138 push {r4,lr} ldr r0, _0808215C movs r1, 0x38 bl PokemonGetField adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 bl sub_8081EF4 lsls r0, 24 lsrs r0, 24 cmp r4, r0 bcc _08082160 movs r0, 0x3 b _08082162 .align 2, 0 _0808215C: .4byte 0x030045c0 _08082160: movs r0, 0x4 _08082162: pop {r4} pop {r1} bx r1 thumb_func_end sub_8082138 thumb_func_start sub_8082168 sub_8082168: @ 8082168 push {lr} ldr r0, _0808217C bl SetMainCallback2 ldr r1, _08082180 ldr r0, _08082184 str r0, [r1, 0x8] pop {r0} bx r0 .align 2, 0 _0808217C: .4byte sub_8109E80 _08082180: .4byte 0x03001770 _08082184: .4byte sub_8082188 thumb_func_end sub_8082168 thumb_func_start sub_8082188 sub_8082188: @ 8082188 push {lr} sub sp, 0x8 ldr r0, _080821CC bl GetVarPointer ldr r2, _080821D0 ldrh r1, [r2] strh r1, [r0] ldrh r0, [r2] bl sub_8109E50 lsls r0, 16 lsrs r0, 16 movs r1, 0 str r1, [sp] str r1, [sp, 0x4] movs r1, 0x5 movs r2, 0 movs r3, 0 bl sub_80C5374 bl ResetTasks bl sub_80408BC ldr r0, _080821D4 bl SetMainCallback2 movs r0, 0 bl sub_811AAD8 add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080821CC: .4byte 0x00004023 _080821D0: .4byte 0x0202e8dc _080821D4: .4byte sub_80821D8 thumb_func_end sub_8082188 thumb_func_start sub_80821D8 sub_80821D8: @ 80821D8 push {lr} bl UpdatePaletteFade bl RunTasks bl sub_811AAE8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08082214 ldr r1, _08082218 movs r0, 0x10 strh r0, [r1] ldr r1, _0808221C ldr r0, _08082220 str r0, [r1, 0x8] ldr r0, _08082224 bl SetMainCallback2 bl prev_quest_postbuffer_cursor_backup_reset bl overworld_poison_timer_set movs r0, 0x7 bl sav12_xor_increment movs r0, 0x8 bl sav12_xor_increment _08082214: pop {r0} bx r0 .align 2, 0 _08082218: .4byte 0x020239f8 _0808221C: .4byte 0x03001770 _08082220: .4byte sub_8082228 _08082224: .4byte sub_800E7C4 thumb_func_end sub_80821D8 thumb_func_start sub_8082228 sub_8082228: @ 8082228 push {lr} bl sav1_reset_battle_music_maybe ldr r0, _08082238 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _08082238: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end sub_8082228 thumb_func_start TrainerBattleLoadArg32 TrainerBattleLoadArg32: @ 808223C adds r2, r0, 0 ldrb r0, [r2] ldrb r1, [r2, 0x1] lsls r1, 8 orrs r0, r1 ldrb r1, [r2, 0x2] lsls r1, 16 orrs r0, r1 ldrb r1, [r2, 0x3] lsls r1, 24 orrs r0, r1 bx lr thumb_func_end TrainerBattleLoadArg32 thumb_func_start TrainerBattleLoadArg16 TrainerBattleLoadArg16: @ 8082254 adds r1, r0, 0 ldrb r0, [r1] ldrb r1, [r1, 0x1] lsls r1, 8 orrs r0, r1 bx lr thumb_func_end TrainerBattleLoadArg16 thumb_func_start TrainerBattleLoadArg8 TrainerBattleLoadArg8: @ 8082260 ldrb r0, [r0] bx lr thumb_func_end TrainerBattleLoadArg8 thumb_func_start trainerflag_opponent trainerflag_opponent: @ 8082264 ldr r1, _08082278 movs r2, 0xA0 lsls r2, 3 adds r0, r2, 0 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 bx lr .align 2, 0 _08082278: .4byte 0x0202ff5e thumb_func_end trainerflag_opponent thumb_func_start battle_exit_is_player_defeat battle_exit_is_player_defeat: @ 808227C push {lr} subs r0, 0x1 cmp r0, 0x6 bhi _080822B4 lsls r0, 2 ldr r1, _08082290 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08082290: .4byte _08082294 .align 2, 0 _08082294: .4byte _080822B4 .4byte _080822B0 .4byte _080822B0 .4byte _080822B4 .4byte _080822B4 .4byte _080822B4 .4byte _080822B4 _080822B0: movs r0, 0x1 b _080822B6 _080822B4: movs r0, 0 _080822B6: pop {r1} bx r1 thumb_func_end battle_exit_is_player_defeat thumb_func_start sub_80822BC sub_80822BC: @ 80822BC ldr r0, _080822E8 movs r1, 0 strh r1, [r0] ldr r0, _080822EC strh r1, [r0] ldr r0, _080822F0 strh r1, [r0] ldr r0, _080822F4 movs r1, 0 str r1, [r0] ldr r0, _080822F8 str r1, [r0] ldr r0, _080822FC str r1, [r0] ldr r0, _08082300 str r1, [r0] ldr r0, _08082304 str r1, [r0] ldr r0, _08082308 str r1, [r0] bx lr .align 2, 0 _080822E8: .4byte 0x0202ff5c _080822EC: .4byte 0x0202ff5e _080822F0: .4byte 0x0202ff60 _080822F4: .4byte 0x0202ff64 _080822F8: .4byte 0x0202ff68 _080822FC: .4byte 0x0202ff6c _08082300: .4byte 0x0202ff70 _08082304: .4byte 0x0202ff74 _08082308: .4byte 0x0202ff78 thumb_func_end sub_80822BC thumb_func_start TrainerBattleLoadArgs TrainerBattleLoadArgs: @ 808230C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 _08082312: ldrb r0, [r4, 0x4] cmp r0, 0x6 bhi _08082384 lsls r0, 2 ldr r1, _08082324 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08082324: .4byte _08082328 .align 2, 0 _08082328: .4byte _08082344 .4byte _08082352 .4byte _08082360 .4byte _0808236E .4byte _08082376 .4byte _0808237E .4byte _08082388 _08082344: adds r0, r5, 0 bl TrainerBattleLoadArg8 ldr r1, [r4] strb r0, [r1] adds r5, 0x1 b _08082384 _08082352: adds r0, r5, 0 bl TrainerBattleLoadArg16 ldr r1, [r4] strh r0, [r1] adds r5, 0x2 b _08082384 _08082360: adds r0, r5, 0 bl TrainerBattleLoadArg32 ldr r1, [r4] str r0, [r1] adds r5, 0x4 b _08082384 _0808236E: ldr r1, [r4] movs r0, 0 strb r0, [r1] b _08082384 _08082376: ldr r1, [r4] movs r0, 0 strh r0, [r1] b _08082384 _0808237E: ldr r1, [r4] movs r0, 0 str r0, [r1] _08082384: adds r4, 0x8 b _08082312 _08082388: ldr r0, [r4] str r5, [r0] pop {r4,r5} pop {r0} bx r0 thumb_func_end TrainerBattleLoadArgs thumb_func_start battle_80801F0 battle_80801F0: @ 8082394 push {lr} ldr r0, _080823B8 ldrh r1, [r0] cmp r1, 0 beq _080823B4 ldr r0, _080823BC strh r1, [r0] lsls r0, r1, 24 lsrs r0, 24 ldr r2, _080823C0 ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl GetFieldObjectIdByLocalIdAndMap ldr r1, _080823C4 strb r0, [r1] _080823B4: pop {r0} bx r0 .align 2, 0 _080823B8: .4byte 0x0202ff60 _080823BC: .4byte 0x0202e8de _080823C0: .4byte 0x02025734 _080823C4: .4byte 0x03004ae0 thumb_func_end battle_80801F0 thumb_func_start sub_80823C8 sub_80823C8: @ 80823C8 push {r4,r5,lr} adds r5, r0, 0 bl sub_80822BC ldr r4, _080823F0 adds r0, r5, 0 bl TrainerBattleLoadArg8 lsls r0, 24 lsrs r0, 24 strh r0, [r4] ldrh r0, [r4] subs r0, 0x1 cmp r0, 0x7 bhi _080824A4 lsls r0, 2 ldr r1, _080823F4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080823F0: .4byte 0x0202ff5c _080823F4: .4byte _080823F8 .align 2, 0 _080823F8: .4byte _08082434 .4byte _08082434 .4byte _08082418 .4byte _0808242C .4byte _0808247C .4byte _0808243C .4byte _08082454 .4byte _0808243C _08082418: ldr r0, _08082424 adds r1, r5, 0 bl TrainerBattleLoadArgs ldr r0, _08082428 b _080824B2 .align 2, 0 _08082424: .4byte gUnknown_0839ADE0 _08082428: .4byte gUnknown_0819F878 _0808242C: ldr r0, _08082430 b _0808243E .align 2, 0 _08082430: .4byte gUnknown_0839AD98 _08082434: ldr r0, _08082438 b _080824A6 .align 2, 0 _08082438: .4byte gUnknown_0839AD50 _0808243C: ldr r0, _0808244C _0808243E: adds r1, r5, 0 bl TrainerBattleLoadArgs bl battle_80801F0 ldr r0, _08082450 b _080824B2 .align 2, 0 _0808244C: .4byte gUnknown_0839AE28 _08082450: .4byte gUnknown_0819F840 _08082454: ldr r0, _08082470 adds r1, r5, 0 bl TrainerBattleLoadArgs bl battle_80801F0 ldr r4, _08082474 ldrh r0, [r4] bl sub_8082C4C strh r0, [r4] ldr r0, _08082478 b _080824B2 .align 2, 0 _08082470: .4byte gUnknown_0839AD98 _08082474: .4byte 0x0202ff5e _08082478: .4byte gUnknown_0819F8AE _0808247C: ldr r0, _08082498 adds r1, r5, 0 bl TrainerBattleLoadArgs bl battle_80801F0 ldr r4, _0808249C ldrh r0, [r4] bl sub_8082C4C strh r0, [r4] ldr r0, _080824A0 b _080824B2 .align 2, 0 _08082498: .4byte gUnknown_0839AD08 _0808249C: .4byte 0x0202ff5e _080824A0: .4byte gUnknown_0819F887 _080824A4: ldr r0, _080824B8 _080824A6: adds r1, r5, 0 bl TrainerBattleLoadArgs bl battle_80801F0 ldr r0, _080824BC _080824B2: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080824B8: .4byte gUnknown_0839AD08 _080824BC: .4byte gUnknown_0819F818 thumb_func_end sub_80823C8 thumb_func_start SingleTrainerWantsBattle SingleTrainerWantsBattle: @ 80824C0 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080824F4 strb r0, [r2] ldr r4, _080824F8 ldr r3, _080824FC lsls r2, r0, 3 adds r2, r0 lsls r2, 2 adds r2, r3 ldrb r0, [r2, 0x8] strh r0, [r4] adds r1, 0x1 adds r0, r1, 0 bl sub_80823C8 ldr r0, _08082500 bl script_env_1_execute_new_script bl script_env_2_enable pop {r4} pop {r0} bx r0 .align 2, 0 _080824F4: .4byte 0x03004ae0 _080824F8: .4byte 0x0202e8de _080824FC: .4byte 0x030048a0 _08082500: .4byte gUnknown_0819F80B thumb_func_end SingleTrainerWantsBattle thumb_func_start GetTrainerFlagFromScriptPointer GetTrainerFlagFromScriptPointer: @ 8082504 push {lr} adds r0, 0x2 bl TrainerBattleLoadArg16 lsls r0, 16 movs r1, 0xA0 lsls r1, 19 adds r0, r1 lsrs r0, 16 bl FlagGet lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end GetTrainerFlagFromScriptPointer thumb_func_start sub_8082524 sub_8082524: @ 8082524 push {r4,lr} ldr r0, _08082550 ldrb r0, [r0] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _08082554 adds r4, r0 ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl npc_running_behaviour_by_direction adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl npc_set_running_behaviour_etc pop {r4} pop {r0} bx r0 .align 2, 0 _08082550: .4byte 0x03004ae0 _08082554: .4byte 0x030048a0 thumb_func_end sub_8082524 thumb_func_start sub_8082558 sub_8082558: @ 8082558 ldr r0, _08082560 ldrb r0, [r0] bx lr .align 2, 0 _08082560: .4byte 0x0202ff5c thumb_func_end sub_8082558 thumb_func_start sub_8082564 sub_8082564: @ 8082564 push {lr} bl trainerflag_opponent lsls r0, 16 lsrs r0, 16 bl FlagGet lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_8082564 thumb_func_start sub_808257C sub_808257C: @ 808257C push {lr} bl trainerflag_opponent lsls r0, 16 lsrs r0, 16 bl FlagSet pop {r0} bx r0 thumb_func_end sub_808257C thumb_func_start unref_sub_8082590 unref_sub_8082590: @ 8082590 push {lr} bl trainerflag_opponent lsls r0, 16 lsrs r0, 16 bl FlagSet pop {r0} bx r0 thumb_func_end unref_sub_8082590 thumb_func_start trainer_flag_check trainer_flag_check: @ 80825A4 push {lr} lsls r0, 16 movs r1, 0xA0 lsls r1, 19 adds r0, r1 lsrs r0, 16 bl FlagGet lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end trainer_flag_check thumb_func_start trainer_flag_set trainer_flag_set: @ 80825BC push {lr} lsls r0, 16 movs r1, 0xA0 lsls r1, 19 adds r0, r1 lsrs r0, 16 bl FlagSet pop {r0} bx r0 thumb_func_end trainer_flag_set thumb_func_start trainer_flag_clear trainer_flag_clear: @ 80825D0 push {lr} lsls r0, 16 movs r1, 0xA0 lsls r1, 19 adds r0, r1 lsrs r0, 16 bl FlagReset pop {r0} bx r0 thumb_func_end trainer_flag_clear thumb_func_start sub_80825E4 sub_80825E4: @ 80825E4 push {lr} ldr r1, _08082600 movs r0, 0x8 strh r0, [r1] ldr r1, _08082604 ldr r0, _08082608 str r0, [r1, 0x8] bl task_add_01_battle_start_with_music_and_stats bl sub_80655F0 pop {r0} bx r0 .align 2, 0 _08082600: .4byte 0x020239f8 _08082604: .4byte 0x03001770 _08082608: .4byte sub_808260C thumb_func_end sub_80825E4 thumb_func_start sub_808260C sub_808260C: @ 808260C push {lr} ldr r0, _08082624 ldrh r1, [r0] movs r0, 0x80 lsls r0, 3 cmp r1, r0 bne _0808262C ldr r0, _08082628 bl SetMainCallback2 b _08082652 .align 2, 0 _08082624: .4byte 0x0202ff5e _08082628: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music _0808262C: ldr r0, _08082640 ldrb r0, [r0] bl battle_exit_is_player_defeat cmp r0, 0x1 bne _08082648 ldr r0, _08082644 bl SetMainCallback2 b _08082652 .align 2, 0 _08082640: .4byte 0x02024d26 _08082644: .4byte c2_whiteout _08082648: ldr r0, _08082658 bl SetMainCallback2 bl sub_808257C _08082652: pop {r0} bx r0 .align 2, 0 _08082658: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end sub_808260C thumb_func_start do_choose_name_or_words_screen do_choose_name_or_words_screen: @ 808265C push {lr} ldr r0, _08082674 ldrh r1, [r0] movs r0, 0x80 lsls r0, 3 cmp r1, r0 bne _0808267C ldr r0, _08082678 bl SetMainCallback2 b _080826A6 .align 2, 0 _08082674: .4byte 0x0202ff5e _08082678: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music _0808267C: ldr r0, _08082690 ldrb r0, [r0] bl battle_exit_is_player_defeat cmp r0, 0x1 bne _08082698 ldr r0, _08082694 bl SetMainCallback2 b _080826A6 .align 2, 0 _08082690: .4byte 0x02024d26 _08082694: .4byte c2_whiteout _08082698: ldr r0, _080826AC bl SetMainCallback2 bl sub_808257C bl sub_8082CB8 _080826A6: pop {r0} bx r0 .align 2, 0 _080826AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end do_choose_name_or_words_screen thumb_func_start sub_80826B0 sub_80826B0: @ 80826B0 push {lr} ldr r1, _080826CC movs r0, 0x8 strh r0, [r1] ldr r1, _080826D0 ldr r0, _080826D4 str r0, [r1, 0x8] bl task_add_01_battle_start_with_music_and_stats bl sub_80655F0 pop {r0} bx r0 .align 2, 0 _080826CC: .4byte 0x020239f8 _080826D0: .4byte 0x03001770 _080826D4: .4byte do_choose_name_or_words_screen thumb_func_end sub_80826B0 thumb_func_start sub_80826D8 sub_80826D8: @ 80826D8 push {lr} bl sub_808281C bl box_related_two__2 pop {r0} bx r0 thumb_func_end sub_80826D8 thumb_func_start sub_80826E8 sub_80826E8: @ 80826E8 push {lr} ldr r0, _080826F8 ldr r0, [r0] cmp r0, 0 bne _080826F4 ldr r0, _080826FC _080826F4: pop {r1} bx r1 .align 2, 0 _080826F8: .4byte 0x0202ff74 _080826FC: .4byte gUnknown_081C6C02 thumb_func_end sub_80826E8 thumb_func_start sub_8082700 sub_8082700: @ 8082700 push {lr} ldr r0, _08082710 ldr r0, [r0] cmp r0, 0 bne _0808270C ldr r0, _08082714 _0808270C: pop {r1} bx r1 .align 2, 0 _08082710: .4byte 0x0202ff78 _08082714: .4byte gUnknown_081C6C02 thumb_func_end sub_8082700 thumb_func_start sub_8082718 sub_8082718: @ 8082718 push {lr} bl sub_8082880 bl box_related_two__2 pop {r0} bx r0 thumb_func_end sub_8082718 thumb_func_start sub_8082728 sub_8082728: @ 8082728 push {lr} ldr r0, _08082750 ldrh r0, [r0] cmp r0, 0x1 beq _08082802 cmp r0, 0x8 beq _08082802 ldr r0, _08082754 ldrh r0, [r0] bl sub_803FC58 lsls r0, 24 lsrs r0, 24 cmp r0, 0xD bhi _080827FC lsls r0, 2 ldr r1, _08082758 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08082750: .4byte 0x0202ff5c _08082754: .4byte 0x0202ff5e _08082758: .4byte _0808275C .align 2, 0 _0808275C: .4byte _08082794 .4byte _0808279A .4byte _080827A4 .4byte _080827FC .4byte _080827AC .4byte _080827B2 .4byte _080827BC .4byte _080827C4 .4byte _080827CC .4byte _080827D4 .4byte _080827DC .4byte _080827E2 .4byte _080827EC .4byte _080827F4 _08082794: movs r0, 0xBE lsls r0, 1 b _080827FE _0808279A: ldr r0, _080827A0 b _080827FE .align 2, 0 _080827A0: .4byte 0x00000197 _080827A4: ldr r0, _080827A8 b _080827FE .align 2, 0 _080827A8: .4byte 0x0000017b _080827AC: movs r0, 0xD0 lsls r0, 1 b _080827FE _080827B2: ldr r0, _080827B8 b _080827FE .align 2, 0 _080827B8: .4byte 0x000001a1 _080827BC: ldr r0, _080827C0 b _080827FE .align 2, 0 _080827C0: .4byte 0x000001a3 _080827C4: ldr r0, _080827C8 b _080827FE .align 2, 0 _080827C8: .4byte 0x000001b9 _080827CC: ldr r0, _080827D0 b _080827FE .align 2, 0 _080827D0: .4byte 0x00000181 _080827D4: ldr r0, _080827D8 b _080827FE .align 2, 0 _080827D8: .4byte 0x000001c1 _080827DC: movs r0, 0xE1 lsls r0, 1 b _080827FE _080827E2: ldr r0, _080827E8 b _080827FE .align 2, 0 _080827E8: .4byte 0x000001c3 _080827EC: ldr r0, _080827F0 b _080827FE .align 2, 0 _080827F0: .4byte 0x000001c5 _080827F4: ldr r0, _080827F8 b _080827FE .align 2, 0 _080827F8: .4byte 0x0000018d _080827FC: ldr r0, _08082808 _080827FE: bl current_map_music_set _08082802: pop {r0} bx r0 .align 2, 0 _08082808: .4byte 0x000001a7 thumb_func_end sub_8082728 thumb_func_start ReturnEmptyStringIfNull ReturnEmptyStringIfNull: @ 808280C push {lr} cmp r0, 0 bne _08082814 ldr r0, _08082818 _08082814: pop {r1} bx r1 .align 2, 0 _08082818: .4byte gUnknown_0840E64C thumb_func_end ReturnEmptyStringIfNull thumb_func_start sub_808281C sub_808281C: @ 808281C push {lr} ldr r0, _0808282C ldr r0, [r0] bl ReturnEmptyStringIfNull pop {r1} bx r1 .align 2, 0 _0808282C: .4byte 0x0202ff64 thumb_func_end sub_808281C thumb_func_start sub_8082830 sub_8082830: @ 8082830 push {r4,lr} ldr r0, _08082844 ldrh r1, [r0] movs r0, 0x80 lsls r0, 3 cmp r1, r0 bne _08082848 bl sub_80BCCE8 b _0808284C .align 2, 0 _08082844: .4byte 0x0202ff5e _08082848: ldr r0, _08082864 ldr r0, [r0] _0808284C: ldr r4, _08082868 bl ReturnEmptyStringIfNull adds r1, r0, 0 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08082864: .4byte 0x0202ff68 _08082868: .4byte 0x020234cc thumb_func_end sub_8082830 thumb_func_start unref_sub_808286C unref_sub_808286C: @ 808286C push {lr} ldr r0, _0808287C ldr r0, [r0] bl ReturnEmptyStringIfNull pop {r1} bx r1 .align 2, 0 _0808287C: .4byte 0x0202ff6c thumb_func_end unref_sub_808286C thumb_func_start sub_8082880 sub_8082880: @ 8082880 push {lr} ldr r0, _08082890 ldr r0, [r0] bl ReturnEmptyStringIfNull pop {r1} bx r1 .align 2, 0 _08082890: .4byte 0x0202ff70 thumb_func_end sub_8082880 thumb_func_start sub_8082894 sub_8082894: @ 8082894 push {lr} lsls r1, 16 lsrs r1, 16 movs r3, 0 adds r2, r0, 0 _0808289E: ldrh r0, [r2] cmp r0, r1 bne _080828A8 adds r0, r3, 0 b _080828B4 _080828A8: adds r2, 0x10 adds r3, 0x1 cmp r3, 0x37 ble _0808289E movs r0, 0x1 negs r0, r0 _080828B4: pop {r1} bx r1 thumb_func_end sub_8082894 thumb_func_start sub_80828B8 sub_80828B8: @ 80828B8 push {r4,r5,lr} lsls r1, 16 lsrs r5, r1, 16 movs r4, 0 adds r2, r0, 0 _080828C2: movs r1, 0 ldrh r0, [r2] cmp r0, 0 beq _080828E8 movs r3, 0 _080828CC: adds r0, r2, r3 ldrh r0, [r0] cmp r0, r5 bne _080828D8 adds r0, r4, 0 b _080828F4 _080828D8: adds r3, 0x2 adds r1, 0x1 cmp r1, 0x4 bgt _080828E8 adds r0, r2, r3 ldrh r0, [r0] cmp r0, 0 bne _080828CC _080828E8: adds r2, 0x10 adds r4, 0x1 cmp r4, 0x37 ble _080828C2 movs r0, 0x1 negs r0, r0 _080828F4: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80828B8 thumb_func_start sub_80828FC sub_80828FC: @ 80828FC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r7, r0, 0 lsls r1, 16 lsrs r1, 16 str r1, [sp] lsls r2, 16 lsrs r2, 16 mov r10, r2 movs r4, 0 movs r5, 0 ldr r0, _08082968 mov r9, r0 _0808291E: lsls r0, r5, 4 adds r2, r0, r7 ldrh r1, [r2, 0xA] adds r6, r0, 0 adds r0, r5, 0x1 mov r8, r0 ldr r0, [sp] cmp r1, r0 bne _08082990 ldrh r0, [r2, 0xC] cmp r0, r10 bne _08082990 mov r1, r9 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 bne _0808298E ldrh r0, [r2] bl trainer_flag_check lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08082990 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1E bhi _08082990 movs r4, 0x1 b _0808296E .align 2, 0 _08082968: .4byte 0x020260ae _0808296C: adds r4, 0x1 _0808296E: cmp r4, 0x4 bgt _08082988 adds r0, r6, r7 lsls r1, r4, 1 adds r1, r0, r1 ldrh r0, [r1] cmp r0, 0 beq _08082988 bl trainer_flag_check lsls r0, 24 cmp r0, 0 bne _0808296C _08082988: mov r1, r9 adds r0, r5, r1 strb r4, [r0] _0808298E: movs r4, 0x1 _08082990: mov r5, r8 cmp r5, 0x37 ble _0808291E adds r0, r4, 0 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80828FC thumb_func_start sub_80829A8 sub_80829A8: @ 80829A8 push {r4,r5,lr} lsls r1, 16 lsrs r4, r1, 16 lsls r2, 16 lsrs r2, 16 movs r1, 0 ldr r5, _080829D4 adds r3, r0, 0 adds r3, 0xA _080829BA: ldrh r0, [r3] cmp r0, r4 bne _080829D8 ldrh r0, [r3, 0x2] cmp r0, r2 bne _080829D8 adds r0, r1, r5 ldrb r0, [r0] cmp r0, 0 beq _080829D8 movs r0, 0x1 b _080829E2 .align 2, 0 _080829D4: .4byte 0x020260ae _080829D8: adds r3, 0x10 adds r1, 0x1 cmp r1, 0x37 ble _080829BA movs r0, 0 _080829E2: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80829A8 thumb_func_start sub_80829E8 sub_80829E8: @ 80829E8 push {r4,lr} lsls r1, 16 lsrs r4, r1, 16 lsls r2, 16 lsrs r2, 16 movs r1, 0 adds r3, r0, 0 adds r3, 0xA _080829F8: ldrh r0, [r3] cmp r0, r4 bne _08082A08 ldrh r0, [r3, 0x2] cmp r0, r2 bne _08082A08 movs r0, 0x1 b _08082A12 _08082A08: adds r3, 0x10 adds r1, 0x1 cmp r1, 0x37 ble _080829F8 movs r0, 0 _08082A12: pop {r4} pop {r1} bx r1 thumb_func_end sub_80829E8 thumb_func_start sub_8082A18 sub_8082A18: @ 8082A18 push {lr} lsls r1, 16 lsrs r1, 16 bl sub_8082894 adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08082A4C cmp r1, 0x63 bgt _08082A4C ldr r0, _08082A44 ldr r2, _08082A48 adds r0, r2 adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0 beq _08082A4C movs r0, 0x1 b _08082A4E .align 2, 0 _08082A44: .4byte 0x02025734 _08082A48: .4byte 0x0000097a _08082A4C: movs r0, 0 _08082A4E: pop {r1} bx r1 thumb_func_end sub_8082A18 thumb_func_start sub_8082A54 sub_8082A54: @ 8082A54 push {lr} lsls r1, 16 lsrs r1, 16 bl sub_80828B8 adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08082A88 cmp r1, 0x63 bgt _08082A88 ldr r0, _08082A80 ldr r2, _08082A84 adds r0, r2 adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0 beq _08082A88 movs r0, 0x1 b _08082A8A .align 2, 0 _08082A80: .4byte 0x02025734 _08082A84: .4byte 0x0000097a _08082A88: movs r0, 0 _08082A8A: pop {r1} bx r1 thumb_func_end sub_8082A54 thumb_func_start sub_8082A90 sub_8082A90: @ 8082A90 push {r4-r7,lr} adds r4, r0, 0 lsls r1, 16 lsrs r1, 16 bl sub_8082894 adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _08082AB8 movs r0, 0 b _08082ADE _08082AAA: subs r0, r6, 0x1 lsls r0, 1 adds r0, r7, r0 ldrh r0, [r0] b _08082ADE _08082AB4: ldrh r0, [r5] b _08082ADE _08082AB8: lsls r0, r1, 4 adds r7, r4, r0 movs r6, 0x1 adds r5, r7, 0x2 adds r4, r5, 0 _08082AC2: ldrh r0, [r4] cmp r0, 0 beq _08082AAA bl trainer_flag_check lsls r0, 24 cmp r0, 0 beq _08082AB4 adds r4, 0x2 adds r5, 0x2 adds r6, 0x1 cmp r6, 0x4 ble _08082AC2 ldrh r0, [r7, 0x8] _08082ADE: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8082A90 thumb_func_start sub_8082AE4 sub_8082AE4: @ 8082AE4 push {lr} lsls r1, 16 lsrs r1, 16 bl sub_80828B8 adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08082B04 ldr r0, _08082B08 ldr r2, _08082B0C adds r0, r2 adds r0, r1, r0 movs r1, 0 strb r1, [r0] _08082B04: pop {r0} bx r0 .align 2, 0 _08082B08: .4byte 0x02025734 _08082B0C: .4byte 0x0000097a thumb_func_end sub_8082AE4 thumb_func_start sub_8082B10 sub_8082B10: @ 8082B10 push {r4,lr} adds r4, r0, 0 lsls r1, 16 lsrs r1, 16 bl sub_8082894 adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08082B3A lsls r0, r1, 4 adds r0, r4 ldrh r0, [r0, 0x2] bl trainer_flag_check lsls r0, 24 cmp r0, 0 beq _08082B3A movs r0, 0x1 b _08082B3C _08082B3A: movs r0, 0 _08082B3C: pop {r4} pop {r1} bx r1 thumb_func_end sub_8082B10 thumb_func_start sub_8082B44 sub_8082B44: @ 8082B44 push {r4-r6,lr} movs r6, 0 movs r5, 0 ldr r4, _08082B64 _08082B4C: ldrh r0, [r4] bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08082B68 adds r6, 0x1 cmp r6, 0x4 ble _08082B68 movs r0, 0x1 b _08082B72 .align 2, 0 _08082B64: .4byte gUnknown_0839B1F0 _08082B68: adds r4, 0x2 adds r5, 0x1 cmp r5, 0x7 bls _08082B4C movs r0, 0 _08082B72: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8082B44 thumb_func_start sub_8082B78 sub_8082B78: @ 8082B78 push {lr} bl sub_8082B44 cmp r0, 0 beq _08082BA0 ldr r0, _08082B94 ldr r2, _08082B98 adds r1, r0, r2 ldrh r0, [r1] cmp r0, 0xFE bls _08082B9C movs r0, 0xFF b _08082B9E .align 2, 0 _08082B94: .4byte 0x02025734 _08082B98: .4byte 0x00000978 _08082B9C: adds r0, 0x1 _08082B9E: strh r0, [r1] _08082BA0: pop {r0} bx r0 thumb_func_end sub_8082B78 thumb_func_start sub_8082BA4 sub_8082BA4: @ 8082BA4 push {lr} bl sub_8082B44 cmp r0, 0 beq _08082BC8 ldr r0, _08082BC0 ldr r1, _08082BC4 adds r0, r1 ldrh r0, [r0] cmp r0, 0xFE bls _08082BC8 movs r0, 0x1 b _08082BCA .align 2, 0 _08082BC0: .4byte 0x02025734 _08082BC4: .4byte 0x00000978 _08082BC8: movs r0, 0 _08082BCA: pop {r1} bx r1 thumb_func_end sub_8082BA4 thumb_func_start sub_8082BD0 sub_8082BD0: @ 8082BD0 push {r4,r5,lr} lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 lsrs r4, r1, 16 bl sub_8082BA4 cmp r0, 0 beq _08082BFA ldr r0, _08082C00 adds r1, r5, 0 adds r2, r4, 0 bl sub_80828FC cmp r0, 0x1 bne _08082BFA ldr r0, _08082C04 ldr r1, _08082C08 adds r0, r1 movs r1, 0 strh r1, [r0] _08082BFA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08082C00: .4byte gUnknown_0839AE70 _08082C04: .4byte 0x02025734 _08082C08: .4byte 0x00000978 thumb_func_end sub_8082BD0 thumb_func_start sub_8082C0C sub_8082C0C: @ 8082C0C push {lr} adds r3, r0, 0 adds r2, r1, 0 lsls r3, 16 lsrs r3, 16 lsls r2, 16 lsrs r2, 16 ldr r0, _08082C28 adds r1, r3, 0 bl sub_80829A8 pop {r1} bx r1 .align 2, 0 _08082C28: .4byte gUnknown_0839AE70 thumb_func_end sub_8082C0C thumb_func_start unref_sub_8082C2C unref_sub_8082C2C: @ 8082C2C push {lr} adds r3, r0, 0 adds r2, r1, 0 lsls r3, 16 lsrs r3, 16 lsls r2, 16 lsrs r2, 16 ldr r0, _08082C48 adds r1, r3, 0 bl sub_80829E8 pop {r1} bx r1 .align 2, 0 _08082C48: .4byte gUnknown_0839AE70 thumb_func_end unref_sub_8082C2C thumb_func_start sub_8082C4C sub_8082C4C: @ 8082C4C push {lr} adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r0, _08082C64 bl sub_8082A90 lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .align 2, 0 _08082C64: .4byte gUnknown_0839AE70 thumb_func_end sub_8082C4C thumb_func_start sub_8082C68 sub_8082C68: @ 8082C68 push {r4,r5,lr} ldr r5, _08082C8C ldr r4, _08082C90 ldrh r1, [r4] adds r0, r5, 0 bl sub_8082A18 lsls r0, 24 cmp r0, 0 bne _08082C94 ldrh r1, [r4] adds r0, r5, 0 bl sub_8082B10 lsls r0, 24 lsrs r0, 24 b _08082C96 .align 2, 0 _08082C8C: .4byte gUnknown_0839AE70 _08082C90: .4byte 0x0202ff5e _08082C94: movs r0, 0x1 _08082C96: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8082C68 thumb_func_start sub_8082C9C sub_8082C9C: @ 8082C9C push {lr} ldr r0, _08082CB0 ldr r1, _08082CB4 ldrh r1, [r1] bl sub_8082A54 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08082CB0: .4byte gUnknown_0839AE70 _08082CB4: .4byte 0x0202ff5e thumb_func_end sub_8082C9C thumb_func_start sub_8082CB8 sub_8082CB8: @ 8082CB8 push {lr} ldr r0, _08082CCC ldr r1, _08082CD0 ldrh r1, [r1] bl sub_8082AE4 bl sub_808257C pop {r0} bx r0 .align 2, 0 _08082CCC: .4byte gUnknown_0839AE70 _08082CD0: .4byte 0x0202ff5e thumb_func_end sub_8082CB8 thumb_func_start sub_8082CD4 sub_8082CD4: @ 8082CD4 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r4, _08082D10 adds r0, r4, 0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _08082D08 adds r0, r4, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08082D14 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r6, [r1, 0xA] strh r5, [r1, 0xC] _08082D08: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08082D10: .4byte sub_8082F20 _08082D14: .4byte 0x03004b20 thumb_func_end sub_8082CD4 thumb_func_start sub_8082D18 sub_8082D18: @ 8082D18 push {lr} adds r1, r0, 0 ldr r0, _08082D44 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN movs r0, 0x12 movs r1, 0xA movs r2, 0x1C movs r3, 0xD bl DrawDefaultWindow ldr r0, _08082D48 movs r1, 0x13 movs r2, 0xB movs r3, 0x48 bl Free pop {r0} bx r0 .align 2, 0 _08082D44: .4byte 0x020231cc _08082D48: .4byte gUnknown_0842D2BC thumb_func_end sub_8082D18 thumb_func_start sub_8082D4C sub_8082D4C: @ 8082D4C push {lr} movs r0, 0x12 movs r1, 0xA movs r2, 0x1C movs r3, 0xD bl Reset pop {r0} bx r0 thumb_func_end sub_8082D4C thumb_func_start sub_8082D60 sub_8082D60: @ 8082D60 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r4, r1, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08082D88 adds r1, r0 adds r5, r1, 0x6 movs r2, 0x6 ldrsh r0, [r1, r2] cmp r4, r0 beq _08082D94 cmp r4, 0x1 bhi _08082D8C bl sub_8082D4C b _08082D92 .align 2, 0 _08082D88: .4byte 0x03004b28 _08082D8C: adds r0, r4, 0 bl sub_8082D18 _08082D92: strh r4, [r5] _08082D94: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8082D60 thumb_func_start sub_8082D9C sub_8082D9C: @ 8082D9C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 bl GetLinkPlayerDataExchangeStatusTimed lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _08082DEC cmp r0, 0x2 bgt _08082DBC cmp r0, 0x1 beq _08082DC2 b _08082DEC _08082DBC: cmp r0, 0x3 beq _08082DE8 b _08082DEC _08082DC2: bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r1, r0, 24 cmp r4, r1 bgt _08082DD6 cmp r1, r5 bgt _08082DD6 movs r0, 0x1 b _08082DEE _08082DD6: ldr r0, _08082DE4 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN movs r0, 0x4 b _08082DEE .align 2, 0 _08082DE4: .4byte 0x020231cc _08082DE8: movs r0, 0x3 b _08082DEE _08082DEC: movs r0, 0 _08082DEE: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8082D9C thumb_func_start sub_8082DF4 sub_8082DF4: @ 8082DF4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl HasLinkErrorOccurred lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08082E0A movs r0, 0 b _08082E1A _08082E0A: ldr r0, _08082E20 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08082E24 str r0, [r1] movs r0, 0x1 _08082E1A: pop {r4} pop {r1} bx r1 .align 2, 0 _08082E20: .4byte 0x03004b20 _08082E24: .4byte sub_8083418 thumb_func_end sub_8082DF4 thumb_func_start sub_8082E28 sub_8082E28: @ 8082E28 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08082E58 ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08082E64 bl IsLinkConnectionEstablished lsls r0, 24 cmp r0, 0 bne _08082E64 ldr r0, _08082E5C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08082E60 str r0, [r1] movs r0, 0x1 b _08082E66 .align 2, 0 _08082E58: .4byte 0x03001770 _08082E5C: .4byte 0x03004b20 _08082E60: .4byte sub_80833EC _08082E64: movs r0, 0 _08082E66: pop {r4} pop {r1} bx r1 thumb_func_end sub_8082E28 thumb_func_start sub_8082E6C sub_8082E6C: @ 8082E6C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl IsLinkConnectionEstablished lsls r0, 24 cmp r0, 0 beq _08082E82 movs r0, 0x1 bl SetSuppressLinkErrorMessage _08082E82: ldr r0, _08082E94 ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08082E98 movs r0, 0 b _08082EA8 .align 2, 0 _08082E94: .4byte 0x03001770 _08082E98: ldr r0, _08082EB0 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08082EB4 str r0, [r1] movs r0, 0x1 _08082EA8: pop {r4} pop {r1} bx r1 .align 2, 0 _08082EB0: .4byte 0x03004b20 _08082EB4: .4byte sub_80833EC thumb_func_end sub_8082E6C thumb_func_start sub_8082EB8 sub_8082EB8: @ 8082EB8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl GetSioMultiSI lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08082ECE movs r0, 0 b _08082EDE _08082ECE: ldr r0, _08082EE4 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08082EE8 str r0, [r1] movs r0, 0x1 _08082EDE: pop {r4} pop {r1} bx r1 .align 2, 0 _08082EE4: .4byte 0x03004b20 _08082EE8: .4byte sub_8083418 thumb_func_end sub_8082EB8 thumb_func_start unref_sub_8082EEC unref_sub_8082EEC: @ 8082EEC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08082F1C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _08082F16 movs r0, 0x2 bl sub_8007E9C adds r0, r4, 0 bl DestroyTask _08082F16: pop {r4} pop {r0} bx r0 .align 2, 0 _08082F1C: .4byte 0x03004b20 thumb_func_end unref_sub_8082EEC thumb_func_start sub_8082F20 sub_8082F20: @ 8082F20 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08082F48 adds r4, r1, r0 movs r3, 0 ldrsh r2, [r4, r3] cmp r2, 0 bne _08082F4C bl OpenLinkTimed bl sub_80082EC bl ResetLinkPlayers b _08082F58 .align 2, 0 _08082F48: .4byte 0x03004b28 _08082F4C: cmp r2, 0x9 ble _08082F58 subs r0, 0x8 adds r0, r1, r0 ldr r1, _08082F64 str r1, [r0] _08082F58: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _08082F64: .4byte sub_8082F68 thumb_func_end sub_8082F20 thumb_func_start sub_8082F68 sub_8082F68: @ 8082F68 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 bl sub_8082E28 cmp r0, 0x1 beq _08082FDC adds r0, r4, 0 bl sub_8082E6C cmp r0, 0x1 beq _08082FDC cmp r5, 0x1 bls _08082FDC movs r0, 0x1 bl SetSuppressLinkErrorMessage ldr r1, _08082FC0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r4, r0, r1 movs r0, 0 strh r0, [r4, 0xE] bl IsLinkMaster lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08082FCC movs r0, 0x15 bl audio_play ldr r0, _08082FC4 bl box_related_two__3 ldr r0, _08082FC8 b _08082FDA .align 2, 0 _08082FC0: .4byte 0x03004b20 _08082FC4: .4byte gUnknown_081A4932 _08082FC8: .4byte sub_8082FEC _08082FCC: movs r0, 0x16 bl audio_play ldr r0, _08082FE4 bl box_related_two__3 ldr r0, _08082FE8 _08082FDA: str r0, [r4] _08082FDC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08082FE4: .4byte gUnknown_081A49B6 _08082FE8: .4byte sub_80831F8 thumb_func_end sub_8082F68 thumb_func_start sub_8082FEC sub_8082FEC: @ 8082FEC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_8082E28 cmp r0, 0x1 beq _0808302C adds r0, r4, 0 bl sub_8082EB8 cmp r0, 0x1 beq _0808302C adds r0, r4, 0 bl sub_8082DF4 cmp r0, 0x1 beq _0808302C bl textbox_any_visible lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _0808302C ldr r0, _08083034 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 strh r2, [r1, 0xE] ldr r0, _08083038 str r0, [r1] _0808302C: pop {r4} pop {r0} bx r0 .align 2, 0 _08083034: .4byte 0x03004b20 _08083038: .4byte sub_808303C thumb_func_end sub_8082FEC thumb_func_start sub_808303C sub_808303C: @ 808303C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 mov r8, r0 ldr r0, _080830D0 mov r9, r0 mov r7, r8 add r7, r9 bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 bl sub_8082E28 cmp r0, 0x1 beq _080830C2 adds r0, r4, 0 bl sub_8082EB8 cmp r0, 0x1 beq _080830C2 adds r0, r4, 0 bl sub_8082DF4 cmp r0, 0x1 beq _080830C2 adds r6, r5, 0 adds r0, r4, 0 adds r1, r6, 0 bl sub_8082D60 ldr r0, _080830D4 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080830C2 movs r1, 0x2 ldrsh r0, [r7, r1] cmp r5, r0 blt _080830C2 adds r0, r6, 0 bl sub_80081C8 bl sub_8082D4C ldr r0, _080830D8 adds r1, r5, 0 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN ldr r0, _080830DC bl box_related_two__3 mov r0, r9 subs r0, 0x8 add r0, r8 ldr r1, _080830E0 str r1, [r0] _080830C2: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080830D0: .4byte 0x03004b28 _080830D4: .4byte 0x03001770 _080830D8: .4byte 0x020231cc _080830DC: .4byte gUnknown_081A4975 _080830E0: .4byte sub_80830E4 thumb_func_end sub_808303C thumb_func_start sub_80830E4 sub_80830E4: @ 80830E4 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 adds r0, r5, 0 bl sub_8082E28 cmp r0, 0x1 beq _08083178 adds r0, r5, 0 bl sub_8082EB8 cmp r0, 0x1 beq _08083178 adds r0, r5, 0 bl sub_8082DF4 cmp r0, 0x1 beq _08083178 bl textbox_any_visible lsls r0, 24 cmp r0, 0 bne _08083178 bl sub_800820C adds r4, r0, 0 bl GetLinkPlayerCount_2 lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _08083132 ldr r0, _08083148 ldrh r1, [r0, 0x2C] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08083158 _08083132: ldr r0, _0808314C bl box_related_two__3 ldr r1, _08083150 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _08083154 str r1, [r0] b _08083178 .align 2, 0 _08083148: .4byte 0x03001770 _0808314C: .4byte gUnknown_081A4932 _08083150: .4byte 0x03004b20 _08083154: .4byte sub_8082FEC _08083158: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08083178 movs r0, 0x5 bl audio_play bl sub_8007F4C ldr r0, _08083180 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, _08083184 str r0, [r1] _08083178: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08083180: .4byte 0x03004b20 _08083184: .4byte sub_8083188 thumb_func_end sub_80830E4 thumb_func_start sub_8083188 sub_8083188: @ 8083188 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080831CC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r5, r0, r1 ldrb r7, [r5, 0xA] ldrb r6, [r5, 0xC] adds r0, r4, 0 bl sub_8082DF4 cmp r0, 0x1 beq _080831EA adds r0, r4, 0 bl sub_8083444 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080831EA bl GetLinkPlayerCount_2 adds r4, r0, 0 bl sub_800820C lsls r4, 24 lsls r0, 24 cmp r4, r0 beq _080831D4 ldr r0, _080831D0 b _080831E8 .align 2, 0 _080831CC: .4byte 0x03004b20 _080831D0: .4byte sub_8083418 _080831D4: ldr r4, _080831F0 adds r0, r7, 0 adds r1, r6, 0 bl sub_8082D9C strh r0, [r4] lsls r0, 16 cmp r0, 0 beq _080831EA ldr r0, _080831F4 _080831E8: str r0, [r5] _080831EA: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080831F0: .4byte 0x0202e8dc _080831F4: .4byte sub_8083288 thumb_func_end sub_8083188 thumb_func_start sub_80831F8 sub_80831F8: @ 80831F8 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08083244 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r5, r0, r1 ldrb r7, [r5, 0xA] ldrb r6, [r5, 0xC] adds r0, r4, 0 bl sub_8082E28 cmp r0, 0x1 beq _08083270 adds r0, r4, 0 bl sub_8082DF4 cmp r0, 0x1 beq _08083270 ldr r4, _08083248 adds r0, r7, 0 adds r1, r6, 0 bl sub_8082D9C strh r0, [r4] lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _08083270 cmp r0, 0x3 bne _08083250 bl sub_800832C bl textbox_close ldr r0, _0808324C b _0808326E .align 2, 0 _08083244: .4byte 0x03004b20 _08083248: .4byte 0x0202e8dc _0808324C: .4byte sub_80833C4 _08083250: bl GetLinkPlayerCount_2 ldr r4, _08083278 strb r0, [r4] bl GetMultiplayerId ldr r1, _0808327C strb r0, [r1] ldrb r0, [r4] bl sub_80081C8 ldr r0, _08083280 bl sub_8093390 ldr r0, _08083284 _0808326E: str r0, [r5] _08083270: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08083278: .4byte 0x03004864 _0808327C: .4byte 0x03004860 _08083280: .4byte 0x03002a70 _08083284: .4byte sub_8083314 thumb_func_end sub_80831F8 thumb_func_start sub_8083288 sub_8083288: @ 8083288 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 adds r0, r4, 0 bl sub_8082DF4 cmp r0, 0x1 beq _080832F8 ldr r0, _080832BC ldrh r0, [r0] cmp r0, 0x3 bne _080832C8 bl sub_800832C bl textbox_close ldr r0, _080832C0 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080832C4 str r0, [r1] b _080832F8 .align 2, 0 _080832BC: .4byte 0x0202e8dc _080832C0: .4byte 0x03004b20 _080832C4: .4byte sub_80833C4 _080832C8: bl GetLinkPlayerCount_2 ldr r4, _08083300 strb r0, [r4] bl GetMultiplayerId ldr r1, _08083304 strb r0, [r1] ldrb r0, [r4] bl sub_80081C8 ldr r0, _08083308 bl sub_8093390 ldr r1, _0808330C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _08083310 str r1, [r0] movs r0, 0x2 bl sub_8007E9C _080832F8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08083300: .4byte 0x03004864 _08083304: .4byte 0x03004860 _08083308: .4byte 0x03002a70 _0808330C: .4byte 0x03004b20 _08083310: .4byte sub_8083314 thumb_func_end sub_8083288 thumb_func_start sub_8083314 sub_8083314: @ 8083314 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl sub_8082DF4 cmp r0, 0x1 beq _080833B6 bl GetBlockRecievedStatus adds r4, r0, 0 bl sub_8008198 lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080833B6 movs r4, 0 ldr r6, _0808333C b _0808335A .align 2, 0 _0808333C: .4byte 0x0202ffc0 _08083340: lsls r1, r4, 8 ldr r0, _08083394 adds r1, r0 lsls r0, r4, 3 subs r0, r4 lsls r0, 3 adds r0, r6 movs r2, 0x38 bl memcpy adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _0808335A: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r4, r0 bcc _08083340 movs r0, 0 bl SetSuppressLinkErrorMessage bl ResetBlockReceivedFlags bl textbox_close ldr r0, _08083398 ldrh r0, [r0] cmp r0, 0x1 bne _080833A4 ldr r0, _0808339C ldrh r1, [r0] ldr r0, _080833A0 bl sub_8082D4C bl script_env_2_enable_and_set_ctx_running adds r0, r5, 0 bl DestroyTask b _080833B6 .align 2, 0 _08083394: .4byte 0x03002b80 _08083398: .4byte 0x0202e8dc _0808339C: .4byte 0x03002b74 _080833A0: .4byte 0x00004411 _080833A4: bl sub_800832C ldr r0, _080833BC lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _080833C0 str r0, [r1] _080833B6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080833BC: .4byte 0x03004b20 _080833C0: .4byte sub_80833C4 thumb_func_end sub_8083314 thumb_func_start sub_80833C4 sub_80833C4: @ 80833C4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080833E8 ldrb r0, [r0] cmp r0, 0 bne _080833E0 bl sub_8082D4C bl script_env_2_enable_and_set_ctx_running adds r0, r4, 0 bl DestroyTask _080833E0: pop {r4} pop {r0} bx r0 .align 2, 0 _080833E8: .4byte 0x03002fa4 thumb_func_end sub_80833C4 thumb_func_start sub_80833EC sub_80833EC: @ 80833EC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _08083414 movs r0, 0x5 strh r0, [r1] bl sub_8082D4C bl textbox_close bl script_env_2_enable_and_set_ctx_running adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 .align 2, 0 _08083414: .4byte 0x0202e8dc thumb_func_end sub_80833EC thumb_func_start sub_8083418 sub_8083418: @ 8083418 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _08083440 movs r0, 0x6 strh r0, [r1] bl sub_8082D4C bl textbox_close bl script_env_2_enable_and_set_ctx_running adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 .align 2, 0 _08083440: .4byte 0x0202e8dc thumb_func_end sub_8083418 thumb_func_start sub_8083444 sub_8083444: @ 8083444 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _08083468 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r2, r1, r2 ldrh r0, [r2, 0x10] adds r0, 0x1 strh r0, [r2, 0x10] lsls r0, 16 movs r1, 0x96 lsls r1, 18 cmp r0, r1 bgt _0808346C movs r0, 0 b _08083472 .align 2, 0 _08083468: .4byte 0x03004b20 _0808346C: ldr r0, _08083478 str r0, [r2] movs r0, 0x1 _08083472: pop {r1} bx r1 .align 2, 0 _08083478: .4byte sub_8083418 thumb_func_end sub_8083444 thumb_func_start sub_808347C sub_808347C: @ 808347C push {r4,lr} movs r3, 0x2 movs r2, 0x2 ldr r0, _08083494 ldrh r0, [r0] cmp r0, 0x2 beq _080834B0 cmp r0, 0x2 bgt _08083498 cmp r0, 0x1 beq _0808349E b _080834CC .align 2, 0 _08083494: .4byte 0x0202e8cc _08083498: cmp r0, 0x5 beq _080834C0 b _080834CC _0808349E: movs r3, 0x2 ldr r1, _080834A8 ldr r4, _080834AC b _080834C8 .align 2, 0 _080834A8: .4byte 0x03002b74 _080834AC: .4byte 0x00002233 _080834B0: movs r3, 0x2 ldr r1, _080834B8 ldr r4, _080834BC b _080834C8 .align 2, 0 _080834B8: .4byte 0x03002b74 _080834BC: .4byte 0x00002244 _080834C0: movs r3, 0x4 movs r2, 0x4 ldr r1, _080834DC ldr r4, _080834E0 _080834C8: adds r0, r4, 0 strh r0, [r1] _080834CC: adds r0, r3, 0 adds r1, r2, 0 bl sub_8082CD4 pop {r4} pop {r0} bx r0 .align 2, 0 _080834DC: .4byte 0x03002b74 _080834E0: .4byte 0x00002255 thumb_func_end sub_808347C thumb_func_start sub_80834E4 sub_80834E4: @ 80834E4 push {lr} ldr r1, _08083500 ldr r2, _08083504 adds r0, r2, 0 strh r0, [r1] ldr r1, _08083508 movs r0, 0 strh r0, [r1] movs r0, 0x2 movs r1, 0x2 bl sub_8082CD4 pop {r0} bx r0 .align 2, 0 _08083500: .4byte 0x03002b74 _08083504: .4byte 0x00001133 _08083508: .4byte 0x020239f8 thumb_func_end sub_80834E4 thumb_func_start sub_808350C sub_808350C: @ 808350C push {lr} ldr r0, _0808352C movs r2, 0 strh r2, [r0] ldr r1, _08083530 ldr r3, _08083534 adds r0, r3, 0 strh r0, [r1] ldr r0, _08083538 strh r2, [r0] movs r0, 0x2 movs r1, 0x4 bl sub_8082CD4 pop {r0} bx r0 .align 2, 0 _0808352C: .4byte 0x0202e8dc _08083530: .4byte 0x03002b74 _08083534: .4byte 0x00003311 _08083538: .4byte 0x020239f8 thumb_func_end sub_808350C thumb_func_start sub_808353C sub_808353C: @ 808353C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0808355C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0 beq _08083560 cmp r0, 0x1 beq _080835BC b _080835CE .align 2, 0 _0808355C: .4byte 0x03004b20 _08083560: ldr r0, _08083594 ldrh r0, [r0] cmp r0, 0x1 bne _08083586 bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 movs r1, 0 cmp r1, r0 bge _08083586 ldr r2, _08083598 _08083578: ldrh r4, [r2, 0x1A] cmp r4, 0x1 beq _0808359C adds r2, 0x1C adds r1, 0x1 cmp r1, r0 blt _08083578 _08083586: bl script_env_2_enable_and_set_ctx_running adds r0, r5, 0 bl DestroyTask b _080835CE .align 2, 0 _08083594: .4byte 0x0202e8dc _08083598: .4byte 0x03002970 _0808359C: ldr r1, _080835B4 movs r0, 0x7 strh r0, [r1] bl sub_8008480 ldr r1, _080835B8 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r4, [r0, 0x8] b _080835CE .align 2, 0 _080835B4: .4byte 0x0202e8dc _080835B8: .4byte 0x03004b20 _080835BC: ldr r0, _080835D4 ldrb r0, [r0] cmp r0, 0 bne _080835CE bl script_env_2_enable_and_set_ctx_running adds r0, r5, 0 bl DestroyTask _080835CE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080835D4: .4byte 0x03002fa4 thumb_func_end sub_808353C thumb_func_start sub_80835D8 sub_80835D8: @ 80835D8 push {r4,lr} ldr r4, _0808360C adds r0, r4, 0 bl FindTaskIdByFunc lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF bne _08083604 adds r0, r4, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r2, r0, 24 ldr r1, _08083610 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] _08083604: pop {r4} pop {r0} bx r0 .align 2, 0 _0808360C: .4byte sub_808353C _08083610: .4byte 0x03004b20 thumb_func_end sub_80835D8 thumb_func_start sub_8083614 sub_8083614: @ 8083614 push {lr} ldr r1, _08083630 ldr r2, _08083634 adds r0, r2, 0 strh r0, [r1] ldr r1, _08083638 movs r0, 0 strh r0, [r1] movs r0, 0x2 movs r1, 0x4 bl sub_8082CD4 pop {r0} bx r0 .align 2, 0 _08083630: .4byte 0x03002b74 _08083634: .4byte 0x00004411 _08083638: .4byte 0x020239f8 thumb_func_end sub_8083614 thumb_func_start sub_808363C sub_808363C: @ 808363C push {lr} ldr r1, _08083658 ldr r2, _0808365C adds r0, r2, 0 strh r0, [r1] ldr r1, _08083660 movs r0, 0 strh r0, [r1] movs r0, 0x4 movs r1, 0x4 bl sub_8082CD4 pop {r0} bx r0 .align 2, 0 _08083658: .4byte 0x03002b74 _0808365C: .4byte 0x00006601 _08083660: .4byte 0x020239f8 thumb_func_end sub_808363C thumb_func_start sub_8083664 sub_8083664: @ 8083664 push {lr} ldr r0, _08083678 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 beq _0808367C movs r0, 0xFF b _08083700 .align 2, 0 _08083678: .4byte sub_8083710 _0808367C: ldr r0, _08083690 ldrh r0, [r0] subs r0, 0x1 cmp r0, 0x4 bhi _080836F4 lsls r0, 2 ldr r1, _08083694 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08083690: .4byte 0x0202e8cc _08083694: .4byte _08083698 .align 2, 0 _08083698: .4byte _080836AC .4byte _080836BC .4byte _080836DC .4byte _080836EC .4byte _080836CC _080836AC: ldr r1, _080836B4 ldr r2, _080836B8 b _080836F0 .align 2, 0 _080836B4: .4byte 0x03002b74 _080836B8: .4byte 0x00002233 _080836BC: ldr r1, _080836C4 ldr r2, _080836C8 b _080836F0 .align 2, 0 _080836C4: .4byte 0x03002b74 _080836C8: .4byte 0x00002244 _080836CC: ldr r1, _080836D4 ldr r2, _080836D8 b _080836F0 .align 2, 0 _080836D4: .4byte 0x03002b74 _080836D8: .4byte 0x00002255 _080836DC: ldr r1, _080836E4 ldr r2, _080836E8 b _080836F0 .align 2, 0 _080836E4: .4byte 0x03002b74 _080836E8: .4byte 0x00001111 _080836EC: ldr r1, _08083704 ldr r2, _08083708 _080836F0: adds r0, r2, 0 strh r0, [r1] _080836F4: ldr r0, _0808370C movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 _08083700: pop {r1} bx r1 .align 2, 0 _08083704: .4byte 0x03002b74 _08083708: .4byte 0x00003322 _0808370C: .4byte sub_8083710 thumb_func_end sub_8083664 thumb_func_start sub_8083710 sub_8083710: @ 8083710 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0808373C adds r4, r1, r0 movs r3, 0 ldrsh r2, [r4, r3] cmp r2, 0 bne _08083744 bl OpenLink bl ResetLinkPlayers ldr r0, _08083740 movs r1, 0x50 bl CreateTask b _08083750 .align 2, 0 _0808373C: .4byte 0x03004b28 _08083740: .4byte sub_8083C50 _08083744: cmp r2, 0x9 ble _08083750 subs r0, 0x8 adds r0, r1, r0 ldr r1, _0808375C str r1, [r0] _08083750: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0808375C: .4byte sub_8083760 thumb_func_end sub_8083710 thumb_func_start sub_8083760 sub_8083760: @ 8083760 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _080837A6 bl IsLinkMaster lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08083798 ldr r0, _08083790 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08083794 b _080837A4 .align 2, 0 _08083790: .4byte 0x03004b20 _08083794: .4byte sub_80837B4 _08083798: ldr r0, _080837AC lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _080837B0 _080837A4: str r0, [r1] _080837A6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080837AC: .4byte 0x03004b20 _080837B0: .4byte sub_80837EC thumb_func_end sub_8083760 thumb_func_start sub_80837B4 sub_80837B4: @ 80837B4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl sub_800820C adds r4, r0, 0 bl GetLinkPlayerCount_2 lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080837DE bl sub_8007F4C ldr r0, _080837E4 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _080837E8 str r0, [r1] _080837DE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080837E4: .4byte 0x03004b20 _080837E8: .4byte sub_80837EC thumb_func_end sub_80837B4 thumb_func_start sub_80837EC sub_80837EC: @ 80837EC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808381C ldrb r0, [r0] cmp r0, 0x1 bne _08083814 bl IsLinkPlayerDataExchangeComplete lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08083814 bl sub_800826C bl sub_8007B14 adds r0, r4, 0 bl DestroyTask _08083814: pop {r4} pop {r0} bx r0 .align 2, 0 _0808381C: .4byte 0x03002fa4 thumb_func_end sub_80837EC thumb_func_start sub_8083820 sub_8083820: @ 8083820 push {lr} bl sub_807166C pop {r0} bx r0 thumb_func_end sub_8083820 thumb_func_start sub_808382C sub_808382C: @ 808382C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _08083850 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x5 bls _08083846 b _08083940 _08083846: lsls r0, 2 ldr r1, _08083854 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08083850: .4byte 0x03004b20 _08083854: .4byte _08083858 .align 2, 0 _08083858: .4byte _08083870 .4byte _08083890 .4byte _080838A0 .4byte _080838B0 .4byte _080838B6 .4byte _080838CC _08083870: movs r0, 0x1 movs r1, 0 bl fade_screen ldr r1, _08083888 ldr r2, _0808388C adds r0, r2, 0 strh r0, [r1] bl ClearLinkCallback_2 b _080838BE .align 2, 0 _08083888: .4byte 0x03002b74 _0808388C: .4byte 0x00002211 _08083890: ldr r0, _0808389C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 b _080838BA .align 2, 0 _0808389C: .4byte 0x0202f388 _080838A0: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _08083940 b _080838BE _080838B0: bl sub_800832C b _080838BE _080838B6: ldr r0, _080838C8 ldrb r0, [r0] _080838BA: cmp r0, 0 bne _08083940 _080838BE: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08083940 .align 2, 0 _080838C8: .4byte 0x03002fa4 _080838CC: ldr r0, _080838E4 ldr r0, [r0, 0x4] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080838E8 movs r0, 0xE6 lsls r0, 1 bl current_map_music_set__default_for_battle b _080838EE .align 2, 0 _080838E4: .4byte 0x03002970 _080838E8: ldr r0, _08083900 bl current_map_music_set__default_for_battle _080838EE: ldr r0, _08083904 ldrh r0, [r0] cmp r0, 0x2 beq _08083918 cmp r0, 0x2 bgt _08083908 cmp r0, 0x1 beq _0808390E b _0808392E .align 2, 0 _08083900: .4byte 0x000001cb _08083904: .4byte 0x0202e8cc _08083908: cmp r0, 0x5 beq _08083924 b _0808392E _0808390E: ldr r1, _08083914 movs r0, 0xA b _0808392C .align 2, 0 _08083914: .4byte 0x020239f8 _08083918: ldr r1, _08083920 movs r0, 0xB b _0808392C .align 2, 0 _08083920: .4byte 0x020239f8 _08083924: bl sub_80C5604 ldr r1, _08083948 movs r0, 0x4B _0808392C: strh r0, [r1] _0808392E: ldr r0, _0808394C bl SetMainCallback2 ldr r1, _08083950 ldr r0, _08083954 str r0, [r1, 0x8] adds r0, r5, 0 bl DestroyTask _08083940: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08083948: .4byte 0x020239f8 _0808394C: .4byte sub_800E7C4 _08083950: .4byte 0x03001770 _08083954: .4byte sub_8083958 thumb_func_end sub_808382C thumb_func_start sub_8083958 sub_8083958: @ 8083958 push {lr} bl call_map_music_set_to_zero bl copy_player_party_from_sav1 bl copy_bags_and_unk_data_to_save_blocks bl sub_810FEFC ldr r0, _08083990 ldrh r0, [r0] cmp r0, 0x5 beq _0808397E ldr r0, _08083994 ldrb r1, [r0] movs r0, 0x1 eors r0, r1 bl sub_8110290 _0808397E: ldr r0, _08083998 ldr r1, _0808399C str r1, [r0, 0x8] ldr r0, _080839A0 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _08083990: .4byte 0x0202e8cc _08083994: .4byte 0x03004860 _08083998: .4byte 0x03001770 _0808399C: .4byte sub_805465C _080839A0: .4byte sub_8071B28 thumb_func_end sub_8083958 thumb_func_start sub_80839A4 sub_80839A4: @ 80839A4 push {lr} ldr r0, _080839CC ldrh r1, [r0] subs r0, r1, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _080839B8 cmp r1, 0x5 bne _080839C0 _080839B8: bl copy_player_party_from_sav1 bl copy_bags_and_unk_data_to_save_blocks _080839C0: movs r0, 0x7F bl copy_saved_warp2_bank_and_enter_x_to_warp1 pop {r0} bx r0 .align 2, 0 _080839CC: .4byte 0x0202e8cc thumb_func_end sub_80839A4 thumb_func_start sub_80839D0 sub_80839D0: @ 80839D0 push {lr} bl sub_805559C pop {r0} bx r0 thumb_func_end sub_80839D0 thumb_func_start sub_80839DC sub_80839DC: @ 80839DC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _08083A00 adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x1 beq _08083A20 cmp r0, 0x1 bgt _08083A04 cmp r0, 0 beq _08083A0E b _08083A7E .align 2, 0 _08083A00: .4byte 0x03004b20 _08083A04: cmp r0, 0x2 beq _08083A40 cmp r0, 0x3 beq _08083A68 b _08083A7E _08083A0E: ldr r0, _08083A1C bl box_related_two__2 movs r0, 0x1 strh r0, [r5, 0x8] b _08083A7E .align 2, 0 _08083A1C: .4byte gUnknown_081A490C _08083A20: bl sub_8064C84 lsls r0, 24 cmp r0, 0 beq _08083A7E bl sub_8055574 ldr r0, _08083A3C ldrb r0, [r0] bl sub_8007270 movs r0, 0x2 strh r0, [r5, 0x8] b _08083A7E .align 2, 0 _08083A3C: .4byte 0x0202e8ce _08083A40: bl sub_80554F8 cmp r0, 0x1 beq _08083A52 cmp r0, 0x1 ble _08083A7E cmp r0, 0x2 beq _08083A62 b _08083A7E _08083A52: bl textbox_close movs r0, 0 strh r0, [r5, 0x8] adds r0, r4, 0 bl SwitchTaskToFollowupFunc b _08083A7E _08083A62: movs r0, 0x3 strh r0, [r5, 0x8] b _08083A7E _08083A68: bl sub_8055588 bl textbox_close bl sub_8071EF4 adds r0, r4, 0 bl DestroyTask bl script_env_2_enable_and_set_ctx_running _08083A7E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80839DC thumb_func_start sub_8083A84 sub_8083A84: @ 8083A84 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _08083AA8 adds r0, r4, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 adds r2, r5, 0 bl SetTaskFuncWithFollowupFunc bl sub_80655F0 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08083AA8: .4byte sub_80839DC thumb_func_end sub_8083A84 thumb_func_start sub_8083AAC sub_8083AAC: @ 8083AAC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _08083AD0 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08083AF0 cmp r0, 0x1 bgt _08083AD4 cmp r0, 0 beq _08083ADE b _08083B34 .align 2, 0 _08083AD0: .4byte 0x03004b20 _08083AD4: cmp r0, 0x2 beq _08083B04 cmp r0, 0x3 beq _08083B20 b _08083B34 _08083ADE: bl script_env_2_enable movs r0, 0x1 movs r1, 0 bl fade_screen bl ClearLinkCallback_2 b _08083B14 _08083AF0: ldr r0, _08083B00 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08083B34 b _08083B14 .align 2, 0 _08083B00: .4byte 0x0202f388 _08083B04: ldr r1, _08083B1C movs r0, 0 strb r0, [r1] strb r0, [r1, 0x1] bl m4aMPlayAllStop bl sub_800832C _08083B14: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08083B34 .align 2, 0 _08083B1C: .4byte 0x020297d8 _08083B20: ldr r0, _08083B3C ldrb r0, [r0] cmp r0, 0 bne _08083B34 ldr r0, _08083B40 bl SetMainCallback2 adds r0, r5, 0 bl DestroyTask _08083B34: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08083B3C: .4byte 0x03002fa4 _08083B40: .4byte sub_8047CD8 thumb_func_end sub_8083AAC thumb_func_start sub_8083B44 sub_8083B44: @ 8083B44 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8083B6C adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 thumb_func_end sub_8083B44 thumb_func_start sub_8083B5C sub_8083B5C: @ 8083B5C push {lr} ldr r0, _08083B68 bl sub_8083A84 pop {r0} bx r0 .align 2, 0 _08083B68: .4byte sub_8083B44 thumb_func_end sub_8083B5C thumb_func_start sub_8083B6C sub_8083B6C: @ 8083B6C push {lr} ldr r0, _08083B7C movs r1, 0x50 bl CreateTask pop {r0} bx r0 .align 2, 0 _08083B7C: .4byte sub_8083AAC thumb_func_end sub_8083B6C thumb_func_start sub_8083B80 sub_8083B80: @ 8083B80 push {lr} bl sub_8083B6C bl sub_80655F0 pop {r0} bx r0 thumb_func_end sub_8083B80 thumb_func_start sub_8083B90 sub_8083B90: @ 8083B90 push {lr} ldr r0, _08083BA4 ldr r2, _08083BA8 adds r1, r2, 0 strh r1, [r0] ldr r0, _08083BAC bl sub_8083A84 pop {r0} bx r0 .align 2, 0 _08083BA4: .4byte 0x03002b74 _08083BA8: .4byte 0x00002211 _08083BAC: .4byte sub_808382C thumb_func_end sub_8083B90 thumb_func_start unref_sub_8083BB0 unref_sub_8083BB0: @ 8083BB0 push {r4,lr} ldr r4, _08083BD4 adds r0, r4, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08083BD8 adds r1, r4, 0 bl SetTaskFuncWithFollowupFunc bl sub_80655F0 pop {r4} pop {r0} bx r0 .align 2, 0 _08083BD4: .4byte sub_80839DC _08083BD8: .4byte sub_80B9484 thumb_func_end unref_sub_8083BB0 thumb_func_start sub_8083BDC sub_8083BDC: @ 8083BDC push {lr} ldr r0, _08083BEC ldrb r0, [r0] ldr r1, _08083BF0 bl sub_8093130 pop {r0} bx r0 .align 2, 0 _08083BEC: .4byte 0x0202e8d0 _08083BF0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end sub_8083BDC thumb_func_start sub_8083BF4 sub_8083BF4: @ 8083BF4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _08083C34 strh r4, [r0] ldr r0, _08083C38 lsls r1, r4, 3 subs r1, r4 lsls r1, 2 ldr r2, _08083C3C adds r1, r2 bl StringCopy adds r0, r4, 0 bl sub_80934C4 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _08083C48 ldr r0, _08083C40 ldr r2, _08083C44 subs r1, 0x1 lsls r1, 2 adds r1, r2 ldr r1, [r1] bl StringCopy movs r0, 0x1 b _08083C4A .align 2, 0 _08083C34: .4byte 0x0202e8d0 _08083C38: .4byte 0x020231cc _08083C3C: .4byte 0x03002978 _08083C40: .4byte 0x020232cc _08083C44: .4byte gUnknown_0839B21C _08083C48: movs r0, 0 _08083C4A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8083BF4 thumb_func_start sub_8083C50 sub_8083C50: @ 8083C50 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _08083C98 adds r0, r1 ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] lsls r1, 16 movs r0, 0x96 lsls r0, 17 cmp r1, r0 ble _08083C82 bl CloseLink ldr r0, _08083C9C bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _08083C82: ldr r0, _08083CA0 ldrb r0, [r0] cmp r0, 0 beq _08083C90 adds r0, r5, 0 bl DestroyTask _08083C90: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08083C98: .4byte 0x03004b20 _08083C9C: .4byte CB2_LinkError _08083CA0: .4byte 0x03002fa4 thumb_func_end sub_8083C50 thumb_func_start sub_8083CA4 sub_8083CA4: @ 8083CA4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08083CC4 ldrb r0, [r0] cmp r0, 0 bne _08083CBC bl script_env_2_enable_and_set_ctx_running adds r0, r4, 0 bl DestroyTask _08083CBC: pop {r4} pop {r0} bx r0 .align 2, 0 _08083CC4: .4byte 0x03002fa4 thumb_func_end sub_8083CA4 thumb_func_start unref_sub_8083CC8 unref_sub_8083CC8: @ 8083CC8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_800832C ldr r1, _08083CE8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08083CEC str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08083CE8: .4byte 0x03004b20 _08083CEC: .4byte sub_8083CA4 thumb_func_end unref_sub_8083CC8 thumb_func_start unref_sub_8083CF0 unref_sub_8083CF0: @ 8083CF0 push {r4-r7,lr} ldr r0, _08083D38 ldr r4, [r0] lsls r4, 26 lsrs r4, 30 ldr r0, _08083D3C movs r1, 0xFF strb r1, [r0] ldr r1, _08083D40 bl StringAppend movs r5, 0 ldr r0, _08083D44 movs r6, 0x1 eors r4, r6 lsls r4, 1 adds r7, r4, r0 movs r4, 0 _08083D14: ldrh r0, [r7] asrs r0, r5 ands r0, r6 cmp r0, 0 beq _08083D28 ldr r1, _08083D48 adds r1, r4, r1 ldr r0, _08083D3C bl StringAppend _08083D28: adds r4, 0x3 adds r5, 0x1 cmp r5, 0x9 ble _08083D14 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08083D38: .4byte 0x04000128 _08083D3C: .4byte 0x03004da0 _08083D40: .4byte gUnknown_0839B24A _08083D44: .4byte 0x03002910 _08083D48: .4byte gUnknown_0839B22C thumb_func_end unref_sub_8083CF0 thumb_func_start sub_8083D4C sub_8083D4C: @ 8083D4C push {lr} ldr r0, _08083D60 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08083D64 movs r0, 0 b _08083D6A .align 2, 0 _08083D60: .4byte 0x03001770 _08083D64: bl sub_8071C20 movs r0, 0x1 _08083D6A: pop {r1} bx r1 thumb_func_end sub_8083D4C thumb_func_start sub_8083D70 sub_8083D70: @ 8083D70 push {r4-r6,lr} sub sp, 0x34 ldr r0, _08083DE4 movs r1, 0xB bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r4, 0 bl sub_8041870 adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 movs r6, 0xB adds r1, r4, 0 muls r1, r6 ldr r4, _08083DE8 adds r1, r4 mov r0, sp bl StringCopy ldr r1, _08083DEC mov r0, sp bl StringAppend adds r1, r5, 0 muls r1, r6 adds r1, r4 mov r0, sp bl StringAppend ldr r1, _08083DF0 mov r0, sp bl StringAppend bl sub_8071EF4 movs r0, 0 movs r1, 0xE movs r2, 0x1E movs r3, 0x13 bl DrawDefaultWindow mov r0, sp movs r1, 0x1 movs r2, 0xF bl Print ldr r1, _08083DF4 ldr r0, _08083DF8 str r0, [r1] movs r0, 0 add sp, 0x34 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08083DE4: .4byte 0x03004360 _08083DE8: .4byte gSpeciesNames _08083DEC: .4byte gUnknown_0839B24D _08083DF0: .4byte gUnknown_0839B255 _08083DF4: .4byte 0x03004ae8 _08083DF8: .4byte sub_8083D4C thumb_func_end sub_8083D70 thumb_func_start sub_8083DFC sub_8083DFC: @ 8083DFC push {lr} ldr r0, _08083E24 bl daycare_count_pokemon lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08083E1A bl daycare_relationship_score_from_savegame lsls r0, 24 cmp r0, 0 beq _08083E1A bl sub_8041940 _08083E1A: bl sub_8071C20 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _08083E24: .4byte 0x020286d0 thumb_func_end sub_8083DFC thumb_func_start sub_8083E28 sub_8083E28: @ 8083E28 push {lr} ldr r0, _08083E50 bl daycare_count_pokemon lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08083E46 bl daycare_relationship_score_from_savegame lsls r0, 24 cmp r0, 0 beq _08083E46 bl sub_8041950 _08083E46: bl sub_8071C20 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _08083E50: .4byte 0x020286d0 thumb_func_end sub_8083E28 thumb_func_start sub_8083E54 sub_8083E54: @ 8083E54 push {lr} movs r0, 0xFA lsls r0, 2 bl sub_8041790 bl sub_8071C20 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8083E54 thumb_func_start sub_8083E68 sub_8083E68: @ 8083E68 push {lr} ldr r0, _08083E7C bl sub_8041790 bl sub_8071C20 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _08083E7C: .4byte 0x00002710 thumb_func_end sub_8083E68 thumb_func_start sub_8083E80 sub_8083E80: @ 8083E80 push {lr} bl sub_8132670 bl sub_8071C20 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8083E80 thumb_func_start sub_8083E90 sub_8083E90: @ 8083E90 push {r4-r6,lr} sub sp, 0x4 movs r5, 0 movs r6, 0 _08083E98: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _08083EE0 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 beq _08083EBC mov r0, sp strb r6, [r0] adds r0, r4, 0 movs r1, 0x20 mov r2, sp bl pokemon_setattr _08083EBC: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _08083E98 ldr r0, _08083EE4 ldr r1, _08083EE8 adds r0, r1 movs r1, 0xFD strb r1, [r0] bl sub_8071C20 movs r0, 0x1 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08083EE0: .4byte 0x03004360 _08083EE4: .4byte 0x02025734 _08083EE8: .4byte 0x000030b6 thumb_func_end sub_8083E90 thumb_func_start sub_8083EEC sub_8083EEC: @ 8083EEC push {lr} ldr r0, _08083F04 ldr r2, _08083F08 movs r1, 0x2 bl pokemon_setattr bl sub_8071C20 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _08083F04: .4byte 0x03004360 _08083F08: .4byte gUnknown_0839B257 thumb_func_end sub_8083EEC thumb_func_start sub_8083F0C sub_8083F0C: @ 8083F0C push {r4,lr} movs r4, 0 _08083F10: lsls r0, r4, 24 lsrs r0, 24 bl sub_810CA6C adds r4, 0x1 cmp r4, 0x27 ble _08083F10 bl sub_8071C20 movs r0, 0x1 pop {r4} pop {r1} bx r1 thumb_func_end sub_8083F0C thumb_func_start sub_8083F2C sub_8083F2C: @ 8083F2C push {lr} bl ProcessMenuInput lsls r0, 24 asrs r1, r0, 24 movs r0, 0x2 negs r0, r0 cmp r1, r0 beq _08083F52 adds r0, 0x1 cmp r1, r0 beq _08083F60 ldr r2, _08083F58 ldr r0, _08083F5C lsls r1, 3 adds r0, 0x4 adds r1, r0 ldr r0, [r1] str r0, [r2] _08083F52: movs r0, 0 b _08083F66 .align 2, 0 _08083F58: .4byte 0x03004ae8 _08083F5C: .4byte gUnknown_0839B2C0 _08083F60: bl sub_8071C20 movs r0, 0x1 _08083F66: pop {r1} bx r1 thumb_func_end sub_8083F2C thumb_func_start unref_sub_8083F6C unref_sub_8083F6C: @ 8083F6C push {lr} sub sp, 0x8 bl sub_8071EF4 movs r0, 0 movs r1, 0 movs r2, 0xA movs r3, 0x13 bl DrawDefaultWindow ldr r3, _08083FB0 movs r0, 0x1 movs r1, 0x1 movs r2, 0x9 bl PrintStringArray movs r0, 0 str r0, [sp] movs r0, 0x9 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0x9 bl InitMenu ldr r1, _08083FB4 ldr r0, _08083FB8 str r0, [r1] movs r0, 0 add sp, 0x8 pop {r1} bx r1 .align 2, 0 _08083FB0: .4byte gUnknown_0839B2C0 _08083FB4: .4byte 0x03004ae8 _08083FB8: .4byte sub_8083F2C thumb_func_end unref_sub_8083F6C thumb_func_start sub_8083FBC sub_8083FBC: @ 8083FBC push {r4,r5,lr} movs r4, 0 ldr r5, _08083FEC _08083FC2: lsls r0, r4, 3 adds r0, r4 lsls r0, 2 adds r1, r0, r5 ldrb r0, [r1] lsls r0, 31 cmp r0, 0 beq _08083FF0 ldrb r0, [r1, 0x7] cmp r0, 0x1 beq _08083FDC cmp r0, 0x3 bne _08083FF0 _08083FDC: adds r0, r4, 0 bl sub_8084004 lsls r0, 24 cmp r0, 0 beq _08083FF0 movs r0, 0x1 b _08083FFC .align 2, 0 _08083FEC: .4byte 0x030048a0 _08083FF0: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _08083FC2 movs r0, 0 _08083FFC: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8083FBC thumb_func_start sub_8084004 sub_8084004: @ 8084004 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 adds r0, r4, 0 bl GetFieldObjectScriptPointerByFieldObjectId adds r6, r0, 0 bl GetTrainerFlagFromScriptPointer cmp r0, 0 bne _08084034 lsls r0, r4, 3 adds r0, r4 lsls r0, 2 ldr r1, _08084038 adds r5, r0, r1 adds r0, r5, 0 bl CheckIfTrainerCanApproachPlayer lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0808403C _08084034: movs r0, 0 b _08084052 .align 2, 0 _08084038: .4byte 0x030048a0 _0808403C: adds r0, r7, 0 adds r1, r6, 0 bl SingleTrainerWantsBattle subs r1, r4, 0x1 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_80842C8 movs r0, 0x1 _08084052: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8084004 thumb_func_start CheckIfTrainerCanApproachPlayer CheckIfTrainerCanApproachPlayer: @ 8084058 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r7, r0, 0 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords ldrb r0, [r7, 0x7] mov r8, r4 cmp r0, 0x1 bne _080840B8 ldr r1, _080840B0 ldrb r0, [r7, 0x18] lsls r0, 28 lsrs r0, 26 subs r0, 0x4 adds r0, r1 ldrb r1, [r7, 0x1D] mov r2, sp movs r3, 0 ldrsh r2, [r2, r3] movs r5, 0 ldrsh r3, [r4, r5] ldr r4, [r0] adds r0, r7, 0 bl _call_via_r4 lsls r0, 24 lsrs r6, r0, 24 ldrb r2, [r7, 0x18] lsls r2, 28 lsrs r2, 28 adds r0, r7, 0 adds r1, r6, 0 bl CheckPathBetweenTrainerAndPlayer lsls r0, 24 lsrs r0, 24 b _080840F8 .align 2, 0 _080840B0: .4byte gUnknown_0839B488 _080840B4: adds r0, r6, 0 b _080840F8 _080840B8: movs r5, 0 _080840BA: ldr r0, _08084104 lsls r4, r5, 2 adds r4, r0 ldrb r1, [r7, 0x1D] mov r0, sp movs r6, 0 ldrsh r2, [r0, r6] mov r0, r8 movs r6, 0 ldrsh r3, [r0, r6] ldr r4, [r4] adds r0, r7, 0 bl _call_via_r4 lsls r0, 24 lsrs r6, r0, 24 adds r0, r5, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r7, 0 adds r1, r6, 0 adds r2, r4, 0 bl CheckPathBetweenTrainerAndPlayer lsls r0, 24 cmp r0, 0 bne _080840B4 adds r5, r4, 0 cmp r5, 0x3 bls _080840BA movs r0, 0 _080840F8: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08084104: .4byte gUnknown_0839B488 thumb_func_end CheckIfTrainerCanApproachPlayer thumb_func_start IsTrainerInRangeSouth IsTrainerInRangeSouth: @ 8084108 push {r4-r6,lr} adds r4, r0, 0 lsls r1, 16 lsrs r6, r1, 16 lsls r3, 16 lsrs r5, r3, 16 movs r1, 0x10 ldrsh r0, [r4, r1] lsls r2, 16 asrs r2, 16 cmp r0, r2 bne _08084142 lsls r0, r5, 16 asrs r2, r0, 16 ldrh r3, [r4, 0x12] movs r1, 0x12 ldrsh r0, [r4, r1] cmp r2, r0 ble _08084142 adds r1, r0, 0 lsls r0, r6, 16 asrs r0, 16 adds r1, r0 cmp r2, r1 bgt _08084142 subs r0, r5, r3 lsls r0, 24 lsrs r0, 24 b _08084144 _08084142: movs r0, 0 _08084144: pop {r4-r6} pop {r1} bx r1 thumb_func_end IsTrainerInRangeSouth thumb_func_start IsTrainerInRangeNorth IsTrainerInRangeNorth: @ 808414C push {r4-r6,lr} adds r4, r0, 0 lsls r1, 16 lsrs r6, r1, 16 lsls r3, 16 lsrs r5, r3, 16 movs r1, 0x10 ldrsh r0, [r4, r1] lsls r2, 16 asrs r2, 16 cmp r0, r2 bne _08084186 lsls r0, r5, 16 asrs r2, r0, 16 ldrh r3, [r4, 0x12] movs r1, 0x12 ldrsh r0, [r4, r1] cmp r2, r0 bge _08084186 adds r1, r0, 0 lsls r0, r6, 16 asrs r0, 16 subs r1, r0 cmp r2, r1 blt _08084186 subs r0, r3, r5 lsls r0, 24 lsrs r0, 24 b _08084188 _08084186: movs r0, 0 _08084188: pop {r4-r6} pop {r1} bx r1 thumb_func_end IsTrainerInRangeNorth thumb_func_start IsTrainerInRangeWest IsTrainerInRangeWest: @ 8084190 push {r4-r6,lr} adds r4, r0, 0 lsls r1, 16 lsrs r6, r1, 16 lsls r2, 16 lsrs r5, r2, 16 movs r1, 0x12 ldrsh r0, [r4, r1] lsls r3, 16 asrs r3, 16 cmp r0, r3 bne _080841CA lsls r0, r5, 16 asrs r3, r0, 16 ldrh r2, [r4, 0x10] movs r1, 0x10 ldrsh r0, [r4, r1] cmp r3, r0 bge _080841CA adds r1, r0, 0 lsls r0, r6, 16 asrs r0, 16 subs r1, r0 cmp r3, r1 blt _080841CA subs r0, r2, r5 lsls r0, 24 lsrs r0, 24 b _080841CC _080841CA: movs r0, 0 _080841CC: pop {r4-r6} pop {r1} bx r1 thumb_func_end IsTrainerInRangeWest thumb_func_start IsTrainerInRangeEast IsTrainerInRangeEast: @ 80841D4 push {r4-r6,lr} adds r4, r0, 0 lsls r1, 16 lsrs r6, r1, 16 lsls r2, 16 lsrs r5, r2, 16 movs r1, 0x12 ldrsh r0, [r4, r1] lsls r3, 16 asrs r3, 16 cmp r0, r3 bne _0808420E lsls r0, r5, 16 asrs r3, r0, 16 ldrh r2, [r4, 0x10] movs r1, 0x10 ldrsh r0, [r4, r1] cmp r3, r0 ble _0808420E adds r1, r0, 0 lsls r0, r6, 16 asrs r0, 16 adds r1, r0 cmp r3, r1 bgt _0808420E subs r0, r5, r2 lsls r0, 24 lsrs r0, 24 b _08084210 _0808420E: movs r0, 0 _08084210: pop {r4-r6} pop {r1} bx r1 thumb_func_end IsTrainerInRangeEast thumb_func_start CheckPathBetweenTrainerAndPlayer CheckPathBetweenTrainerAndPlayer: @ 8084218 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r6, r0, 0 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r2, 24 lsrs r7, r2, 24 cmp r1, 0 beq _080842B2 ldrh r1, [r6, 0x10] mov r0, sp strh r1, [r0] ldrh r0, [r6, 0x12] mov r1, sp adds r1, 0x2 strh r0, [r1] movs r4, 0 mov r8, r1 mov r5, r9 subs r5, 0x1 cmp r4, r5 bgt _08084284 _0808424C: mov r0, sp movs r2, 0 ldrsh r1, [r0, r2] mov r3, r8 movs r0, 0 ldrsh r2, [r3, r0] adds r0, r6, 0 adds r3, r7, 0 bl sub_8060024 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _08084270 movs r0, 0x1 ands r1, r0 cmp r1, 0 bne _080842B2 _08084270: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r7, 0 mov r1, sp mov r2, r8 bl MoveCoords cmp r4, r5 ble _0808424C _08084284: ldrb r4, [r6, 0x19] lsls r5, r4, 28 lsrs r5, 28 lsrs r4, 4 movs r0, 0 strb r0, [r6, 0x19] mov r0, sp movs r2, 0 ldrsh r1, [r0, r2] mov r3, r8 movs r0, 0 ldrsh r2, [r3, r0] adds r0, r6, 0 adds r3, r7, 0 bl npc_block_way lsls r0, 24 lsrs r1, r0, 24 lsls r4, 4 orrs r5, r4 strb r5, [r6, 0x19] cmp r1, 0x4 beq _080842B6 _080842B2: movs r0, 0 b _080842B8 _080842B6: mov r0, r9 _080842B8: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end CheckPathBetweenTrainerAndPlayer thumb_func_start sub_80842C8 sub_80842C8: @ 80842C8 push {r4,r5,lr} adds r5, r0, 0 lsls r4, r1, 24 lsrs r4, 24 ldr r0, _080842F4 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080842F8 adds r1, r0 lsrs r0, r5, 16 strh r0, [r1, 0xA] strh r5, [r1, 0xC] strh r4, [r1, 0xE] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080842F4: .4byte sub_808433C _080842F8: .4byte 0x03004b20 thumb_func_end sub_80842C8 thumb_func_start sub_80842FC sub_80842FC: @ 80842FC push {r4-r6,lr} adds r6, r0, 0 ldr r5, _08084334 adds r0, r5, 0 bl FindTaskIdByFunc adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl SetTaskFuncWithFollowupFunc ldr r1, _08084338 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x1 strh r1, [r0, 0x8] adds r0, r4, 0 bl _call_via_r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08084334: .4byte sub_808433C _08084338: .4byte 0x03004b20 thumb_func_end sub_80842FC thumb_func_start sub_808433C sub_808433C: @ 808433C push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _08084368 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] lsls r5, r0, 16 movs r1, 0xC ldrsh r0, [r4, r1] orrs r5, r0 ldrb r0, [r5] lsls r0, 31 cmp r0, 0 bne _0808436C adds r0, r6, 0 bl SwitchTaskToFollowupFunc b _08084388 .align 2, 0 _08084368: .4byte 0x03004b20 _0808436C: ldr r7, _08084390 _0808436E: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r7 ldr r3, [r0] adds r0, r6, 0 adds r1, r4, 0 adds r2, r5, 0 bl _call_via_r3 lsls r0, 24 cmp r0, 0 bne _0808436E _08084388: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08084390: .4byte gUnknown_0839B498 thumb_func_end sub_808433C thumb_func_start sub_8084394 sub_8084394: @ 8084394 movs r0, 0 bx lr thumb_func_end sub_8084394 thumb_func_start sub_8084398 sub_8084398: @ 8084398 push {r4,r5,lr} adds r5, r1, 0 adds r4, r2, 0 ldr r1, _080843D8 adds r2, r1, 0x4 adds r3, r1, 0 adds r3, 0x8 adds r0, r4, 0 bl FieldObjectGetLocalIdAndMap movs r0, 0 bl FieldEffectStart ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetFaceDirectionAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080843D8: .4byte 0x0202ff84 thumb_func_end sub_8084398 thumb_func_start sub_80843DC sub_80843DC: @ 80843DC push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 movs r0, 0 bl FieldEffectActiveListContains lsls r0, 24 cmp r0, 0 beq _080843F2 movs r0, 0 b _08084414 _080843F2: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] ldrb r0, [r5, 0x6] subs r0, 0x39 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08084408 movs r0, 0x6 strh r0, [r4, 0x8] _08084408: ldrb r0, [r5, 0x6] cmp r0, 0x3F bne _08084412 movs r0, 0x8 strh r0, [r4, 0x8] _08084412: movs r0, 0x1 _08084414: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80843DC thumb_func_start sub_808441C sub_808441C: @ 808441C push {r4,r5,lr} adds r5, r1, 0 adds r4, r2, 0 adds r0, r4, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 beq _0808443A adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _0808446E _0808443A: movs r1, 0xE ldrsh r0, [r5, r1] cmp r0, 0 beq _08084460 ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetGoSpeed0AnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim ldrh r0, [r5, 0xE] subs r0, 0x1 strh r0, [r5, 0xE] b _0808446E _08084460: adds r0, r4, 0 movs r1, 0x3E bl FieldObjectSetSpecialAnim ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] _0808446E: movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_808441C thumb_func_start sub_8084478 sub_8084478: @ 8084478 push {r4-r6,lr} adds r6, r1, 0 adds r5, r2, 0 adds r0, r5, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 beq _08084496 adds r0, r5, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _08084524 _08084496: ldrb r0, [r5, 0x18] lsls r0, 28 lsrs r0, 28 bl npc_running_behaviour_by_direction adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl npc_set_running_behaviour_etc ldrb r0, [r5, 0x18] lsls r0, 28 lsrs r0, 28 bl npc_running_behaviour_by_direction adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_805C774 adds r0, r5, 0 bl sub_805C754 ldr r0, _0808452C ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08084530 adds r4, r0, r1 adds r0, r4, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 beq _080844EE adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _08084524 _080844EE: bl sub_80597E8 ldr r0, _0808452C ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _08084530 adds r4, r0 ldrb r0, [r5, 0x18] lsls r0, 28 lsrs r0, 28 bl GetOppositeDirection lsls r0, 24 lsrs r0, 24 bl GetFaceDirectionAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] _08084524: movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0808452C: .4byte 0x0202e858 _08084530: .4byte 0x030048a0 thumb_func_end sub_8084478 thumb_func_start sub_8084534 sub_8084534: @ 8084534 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _08084570 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08084574 adds r4, r0, r1 adds r0, r4, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 beq _08084560 adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _08084566 _08084560: adds r0, r5, 0 bl SwitchTaskToFollowupFunc _08084566: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08084570: .4byte 0x0202e858 _08084574: .4byte 0x030048a0 thumb_func_end sub_8084534 thumb_func_start sub_8084578 sub_8084578: @ 8084578 push {r4,r5,lr} adds r5, r1, 0 adds r4, r2, 0 adds r0, r4, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 beq _08084596 adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _080845A4 _08084596: adds r0, r4, 0 movs r1, 0x59 bl FieldObjectSetSpecialAnim ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] _080845A4: movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8084578 thumb_func_start sub_80845AC sub_80845AC: @ 80845AC push {r4,lr} adds r4, r1, 0 adds r0, r2, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _080845C0 movs r0, 0x3 strh r0, [r4, 0x8] _080845C0: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80845AC thumb_func_start sub_80845C8 sub_80845C8: @ 80845C8 push {r4,r5,lr} adds r5, r1, 0 adds r4, r2, 0 adds r0, r4, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 beq _080845E6 adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _080845F4 _080845E6: adds r0, r4, 0 movs r1, 0x3E bl FieldObjectSetSpecialAnim ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] _080845F4: movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80845C8 thumb_func_start sub_80845FC sub_80845FC: @ 80845FC push {r4,r5,lr} adds r5, r1, 0 adds r4, r2, 0 adds r0, r4, 0 bl FieldObjectCheckIfSpecialAnimFinishedOrInactive lsls r0, 24 cmp r0, 0 beq _08084642 ldr r2, _0808464C movs r1, 0x10 ldrsh r0, [r4, r1] str r0, [r2] movs r1, 0x12 ldrsh r0, [r4, r1] str r0, [r2, 0x4] ldr r3, _08084650 ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x43 ldrb r0, [r0] subs r0, 0x1 str r0, [r2, 0x8] movs r0, 0x2 str r0, [r2, 0xC] movs r0, 0x31 bl FieldEffectStart strh r0, [r5, 0x10] ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] _08084642: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0808464C: .4byte 0x0202ff84 _08084650: .4byte 0x02020004 thumb_func_end sub_80845FC thumb_func_start sub_8084654 sub_8084654: @ 8084654 push {r4,r5,lr} adds r5, r1, 0 adds r4, r2, 0 ldr r2, _080846C4 movs r1, 0x10 ldrsh r0, [r5, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x2B ldrb r0, [r1] cmp r0, 0x2 bne _080846BC ldrb r1, [r4, 0x3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r4, 0x3] ldrb r0, [r4] movs r1, 0x4 orrs r0, r1 strb r0, [r4] ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x8 orrs r1, r2 strb r1, [r0, 0x5] adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl sub_806084C adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] _080846BC: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080846C4: .4byte 0x02020004 thumb_func_end sub_8084654 thumb_func_start sub_80846C8 sub_80846C8: @ 80846C8 push {r4,lr} adds r4, r1, 0 movs r0, 0x31 bl FieldEffectActiveListContains lsls r0, 24 cmp r0, 0 bne _080846DC movs r0, 0x3 strh r0, [r4, 0x8] _080846DC: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80846C8 thumb_func_start sub_80846E4 sub_80846E4: @ 80846E4 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _08084778 adds r4, r0, r1 adds r0, r4, 0 adds r0, 0xA mov r1, sp bl LoadWordFromTwoHalfwords movs r1, 0x16 ldrsh r0, [r4, r1] cmp r0, 0 bne _08084716 ldr r0, [sp] bl FieldObjectClearAnim ldrh r0, [r4, 0x16] adds r0, 0x1 strh r0, [r4, 0x16] _08084716: ldr r1, _0808477C movs r2, 0x8 ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 ldr r2, [sp] ldr r3, [r0] adds r0, r5, 0 adds r1, r4, 0 bl _call_via_r3 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x3 bne _08084780 movs r0, 0x31 bl FieldEffectActiveListContains lsls r0, 24 cmp r0, 0 bne _08084780 ldr r4, [sp] ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl npc_running_behaviour_by_direction adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl npc_set_running_behaviour_etc ldr r4, [sp] ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl npc_running_behaviour_by_direction adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805C774 adds r0, r5, 0 bl DestroyTask b _0808478A .align 2, 0 _08084778: .4byte 0x03004b20 _0808477C: .4byte gUnknown_0839B4C8 _08084780: ldr r2, [sp] ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] _0808478A: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80846E4 thumb_func_start sub_8084794 sub_8084794: @ 8084794 push {r4,lr} adds r4, r0, 0 ldr r0, _080847C0 movs r1, 0 bl CreateTask adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _080847C4 adds r0, r1 adds r0, 0x2 adds r1, r4, 0 bl StoreWordInTwoHalfwords pop {r4} pop {r0} bx r0 .align 2, 0 _080847C0: .4byte sub_80846E4 _080847C4: .4byte 0x03004b28 thumb_func_end sub_8084794 thumb_func_start sub_80847C8 sub_80847C8: @ 80847C8 push {lr} ldr r0, _080847D4 bl sub_80842FC pop {r0} bx r0 .align 2, 0 _080847D4: .4byte sub_80847D8 thumb_func_end sub_80847C8 thumb_func_start sub_80847D8 sub_80847D8: @ 80847D8 push {lr} lsls r0, 24 lsrs r0, 24 bl DestroyTask bl script_env_2_enable_and_set_ctx_running pop {r0} bx r0 thumb_func_end sub_80847D8 thumb_func_start oei_exclamation_mark oei_exclamation_mark: @ 80847EC push {lr} ldr r0, _0808481C movs r1, 0 movs r2, 0 movs r3, 0x53 bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _08084814 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08084820 adds r0, r1 movs r1, 0 movs r2, 0 bl sub_8084894 _08084814: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0808481C: .4byte gSpriteTemplate_839B510 _08084820: .4byte 0x02020004 thumb_func_end oei_exclamation_mark thumb_func_start sub_8084824 sub_8084824: @ 8084824 push {lr} ldr r0, _08084854 movs r1, 0 movs r2, 0 movs r3, 0x52 bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _0808484C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08084858 adds r0, r1 movs r1, 0x21 movs r2, 0x1 bl sub_8084894 _0808484C: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08084854: .4byte gSpriteTemplate_839B510 _08084858: .4byte 0x02020004 thumb_func_end sub_8084824 thumb_func_start sub_808485C sub_808485C: @ 808485C push {lr} ldr r0, _0808488C movs r1, 0 movs r2, 0 movs r3, 0x52 bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _08084884 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08084890 adds r0, r1 movs r1, 0x2E movs r2, 0 bl sub_8084894 _08084884: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0808488C: .4byte gSpriteTemplate_839B528 _08084890: .4byte 0x02020004 thumb_func_end sub_808485C thumb_func_start sub_8084894 sub_8084894: @ 8084894 push {r4,lr} lsls r2, 24 lsrs r2, 24 ldrb r4, [r0, 0x5] movs r3, 0xD negs r3, r3 ands r3, r4 movs r4, 0x4 orrs r3, r4 strb r3, [r0, 0x5] movs r3, 0x3E adds r3, r0 mov r12, r3 ldrb r3, [r3] movs r4, 0x2 orrs r3, r4 mov r4, r12 strb r3, [r4] ldr r4, _080848D8 ldr r3, [r4] strh r3, [r0, 0x2E] ldr r3, [r4, 0x4] strh r3, [r0, 0x30] ldr r3, [r4, 0x8] strh r3, [r0, 0x32] ldr r3, _080848DC strh r3, [r0, 0x34] strh r1, [r0, 0x3C] adds r1, r2, 0 bl StartSpriteAnim pop {r4} pop {r0} bx r0 .align 2, 0 _080848D8: .4byte 0x0202ff84 _080848DC: .4byte 0x0000fffb thumb_func_end sub_8084894 thumb_func_start objc_exclamation_mark_probably objc_exclamation_mark_probably: @ 80848E0 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x30] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x32] lsls r2, 24 lsrs r2, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _08084912 adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08084920 _08084912: ldrh r1, [r4, 0x3C] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldEffectStop b _0808496E _08084920: ldr r2, _08084964 mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08084968 adds r1, r0 ldrh r3, [r4, 0x34] ldrh r0, [r4, 0x36] adds r2, r3, r0 strh r2, [r4, 0x36] ldrh r0, [r1, 0x20] strh r0, [r4, 0x20] ldrh r0, [r1, 0x22] subs r0, 0x10 strh r0, [r4, 0x22] ldrh r0, [r1, 0x24] strh r0, [r4, 0x24] ldrh r0, [r1, 0x26] adds r0, r2 strh r0, [r4, 0x26] lsls r2, 16 asrs r2, 16 cmp r2, 0 beq _0808496C adds r0, r3, 0x1 strh r0, [r4, 0x34] b _0808496E .align 2, 0 _08084964: .4byte 0x030048a0 _08084968: .4byte 0x02020004 _0808496C: strh r2, [r4, 0x34] _0808496E: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end objc_exclamation_mark_probably thumb_func_start unref_sub_8084978 unref_sub_8084978: @ 8084978 ldr r1, _08084980 strb r0, [r1] bx lr .align 2, 0 _08084980: .4byte 0x0202ff7c thumb_func_end unref_sub_8084978 thumb_func_start sub_8084984 sub_8084984: @ 8084984 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 16 lsrs r0, 16 str r0, [sp] lsls r1, 16 lsrs r1, 16 str r1, [sp, 0x4] lsls r2, 24 lsrs r2, 24 ldr r3, _08084A0C lsls r1, r2, 1 adds r1, r2 lsls r2, r1, 1 adds r2, r3 adds r0, r1, 0x1 lsls r0, 1 adds r0, r3 ldrh r0, [r0] mov r9, r0 adds r1, 0x2 lsls r1, 1 adds r1, r3 ldrh r6, [r1] ldrh r5, [r2] cmp r5, r9 bhi _08084A2E ldr r0, _08084A10 mov r10, r0 _080849C6: movs r4, 0 mov r1, r10 ldr r0, [r1] ldr r0, [r0] cmp r4, r0 bge _08084A24 ldr r1, [sp] lsls r0, r1, 16 asrs r0, 16 mov r8, r0 ldr r1, [sp, 0x4] lsls r0, r1, 16 asrs r7, r0, 16 _080849E0: adds r0, r4, 0x7 adds r1, r5, 0x7 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl sub_805759C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08084A14 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r8, r4 bne _08084A14 cmp r7, r5 bne _08084A14 adds r0, r6, 0 b _08084A34 .align 2, 0 _08084A0C: .4byte gUnknown_0839DC00 _08084A10: .4byte 0x0202e828 _08084A14: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 mov r1, r10 ldr r0, [r1] ldr r0, [r0] cmp r4, r0 blt _080849E0 _08084A24: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r9 bls _080849C6 _08084A2E: adds r0, r6, 0x1 lsls r0, 16 lsrs r0, 16 _08084A34: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8084984 thumb_func_start check_feebas check_feebas: @ 8084A44 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 movs r7, 0 ldr r0, _08084ABC ldrh r1, [r0, 0x4] movs r0, 0x88 lsls r0, 6 cmp r1, r0 bne _08084B38 add r5, sp, 0xC mov r4, sp adds r4, 0xE adds r0, r5, 0 adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer ldrh r0, [r5] subs r0, 0x7 strh r0, [r5] ldrh r0, [r4] subs r0, 0x7 strh r0, [r4] movs r0, 0 ldrsh r1, [r4, r0] ldr r0, _08084AC0 mov r9, r5 mov r8, r4 ldrh r2, [r0, 0x6] cmp r1, r2 blt _08084A8E ldrh r3, [r0, 0x8] cmp r1, r3 bgt _08084A8E movs r7, 0x1 _08084A8E: mov r2, r8 movs r3, 0 ldrsh r1, [r2, r3] ldrh r2, [r0, 0xC] cmp r1, r2 blt _08084AA2 ldrh r0, [r0, 0xE] cmp r1, r0 bgt _08084AA2 movs r7, 0x2 _08084AA2: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x31 bls _08084AC8 b _08084B38 .align 2, 0 _08084ABC: .4byte 0x02025734 _08084AC0: .4byte gUnknown_0839DC00 _08084AC4: movs r0, 0x1 b _08084B3A _08084AC8: ldr r0, _08084B48 ldr r3, _08084B4C adds r0, r3 ldrh r0, [r0] bl sub_8084B74 movs r5, 0 ldr r6, _08084B50 _08084AD8: bl sub_8084B54 lsls r1, r5, 1 mov r2, sp adds r4, r2, r1 lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 bl __umodsi3 strh r0, [r4] lsls r0, 16 cmp r0, 0 bne _08084AF6 strh r6, [r4] _08084AF6: ldrh r0, [r4] subs r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bls _08084B08 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _08084B08: cmp r5, 0x6 bne _08084AD8 mov r3, r9 movs r1, 0 ldrsh r0, [r3, r1] mov r2, r8 movs r3, 0 ldrsh r1, [r2, r3] adds r2, r7, 0 bl sub_8084984 lsls r0, 16 lsrs r1, r0, 16 movs r5, 0 _08084B24: lsls r0, r5, 1 add r0, sp ldrh r0, [r0] cmp r1, r0 beq _08084AC4 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _08084B24 _08084B38: movs r0, 0 _08084B3A: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08084B48: .4byte 0x02025734 _08084B4C: .4byte 0x00002dd6 _08084B50: .4byte 0x000001bf thumb_func_end check_feebas thumb_func_start sub_8084B54 sub_8084B54: @ 8084B54 ldr r2, _08084B68 ldr r1, [r2] ldr r0, _08084B6C muls r0, r1 ldr r1, _08084B70 adds r0, r1 str r0, [r2] lsrs r0, 16 bx lr .align 2, 0 _08084B68: .4byte 0x0202ff80 _08084B6C: .4byte 0x41c64e6d _08084B70: .4byte 0x00003039 thumb_func_end sub_8084B54 thumb_func_start sub_8084B74 sub_8084B74: @ 8084B74 lsls r0, 16 lsrs r0, 16 ldr r1, _08084B80 str r0, [r1] bx lr .align 2, 0 _08084B80: .4byte 0x0202ff80 thumb_func_end sub_8084B74 thumb_func_start wild_pokemon_rand_grass wild_pokemon_rand_grass: @ 8084B84 push {lr} bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x13 bhi _08084BA0 movs r0, 0 b _08084C3A _08084BA0: adds r0, r1, 0 subs r0, 0x14 lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bhi _08084BB0 movs r0, 0x1 b _08084C3A _08084BB0: adds r0, r1, 0 subs r0, 0x28 lsls r0, 24 lsrs r0, 24 cmp r0, 0x9 bhi _08084BC0 movs r0, 0x2 b _08084C3A _08084BC0: adds r0, r1, 0 subs r0, 0x32 lsls r0, 24 lsrs r0, 24 cmp r0, 0x9 bhi _08084BD0 movs r0, 0x3 b _08084C3A _08084BD0: adds r0, r1, 0 subs r0, 0x3C lsls r0, 24 lsrs r0, 24 cmp r0, 0x9 bhi _08084BE0 movs r0, 0x4 b _08084C3A _08084BE0: adds r0, r1, 0 subs r0, 0x46 lsls r0, 24 lsrs r0, 24 cmp r0, 0x9 bhi _08084BF0 movs r0, 0x5 b _08084C3A _08084BF0: adds r0, r1, 0 subs r0, 0x50 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _08084C00 movs r0, 0x6 b _08084C3A _08084C00: adds r0, r1, 0 subs r0, 0x55 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _08084C10 movs r0, 0x7 b _08084C3A _08084C10: adds r0, r1, 0 subs r0, 0x5A lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bhi _08084C20 movs r0, 0x8 b _08084C3A _08084C20: adds r0, r1, 0 subs r0, 0x5E lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bhi _08084C30 movs r0, 0x9 b _08084C3A _08084C30: cmp r1, 0x62 beq _08084C38 movs r0, 0xB b _08084C3A _08084C38: movs r0, 0xA _08084C3A: pop {r1} bx r1 thumb_func_end wild_pokemon_rand_grass thumb_func_start wild_pokemon_rand_water wild_pokemon_rand_water: @ 8084C40 push {lr} bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 24 lsrs r1, r0, 24 adds r2, r1, 0 cmp r1, 0x3B bhi _08084C5E movs r0, 0 b _08084C90 _08084C5E: adds r0, r1, 0 subs r0, 0x3C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1D bhi _08084C6E movs r0, 0x1 b _08084C90 _08084C6E: adds r0, r1, 0 subs r0, 0x5A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _08084C7E movs r0, 0x2 b _08084C90 _08084C7E: adds r0, r2, 0 subs r0, 0x5F lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _08084C8E movs r0, 0x4 b _08084C90 _08084C8E: movs r0, 0x3 _08084C90: pop {r1} bx r1 thumb_func_end wild_pokemon_rand_water thumb_func_start sub_8084C94 sub_8084C94: @ 8084C94 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 movs r5, 0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 24 lsrs r1, r0, 24 cmp r4, 0x1 beq _08084CCE cmp r4, 0x1 bgt _08084CBE cmp r4, 0 beq _08084CC4 b _08084D28 _08084CBE: cmp r6, 0x2 beq _08084CF2 b _08084D28 _08084CC4: movs r5, 0x1 cmp r1, 0x45 bhi _08084D28 movs r5, 0 b _08084D28 _08084CCE: cmp r1, 0x3B bhi _08084CD4 movs r5, 0x2 _08084CD4: adds r0, r1, 0 subs r0, 0x3C lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bhi _08084CE2 movs r5, 0x3 _08084CE2: adds r0, r1, 0 subs r0, 0x50 lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bhi _08084D28 movs r5, 0x4 b _08084D28 _08084CF2: cmp r1, 0x27 bhi _08084CF8 movs r5, 0x5 _08084CF8: adds r0, r1, 0 subs r0, 0x28 lsls r0, 24 lsrs r0, 24 cmp r0, 0x27 bhi _08084D06 movs r5, 0x6 _08084D06: adds r0, r1, 0 subs r0, 0x50 lsls r0, 24 lsrs r0, 24 cmp r0, 0xE bhi _08084D14 movs r5, 0x7 _08084D14: adds r0, r1, 0 subs r0, 0x5F lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bhi _08084D22 movs r5, 0x8 _08084D22: cmp r1, 0x63 bne _08084D28 movs r5, 0x9 _08084D28: adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8084C94 thumb_func_start random_number_in_range random_number_in_range: @ 8084D30 push {r4,r5,lr} adds r4, r0, 0 ldrb r0, [r4, 0x1] ldrb r1, [r4] cmp r0, r1 bcc _08084D40 ldrb r5, [r4] b _08084D44 _08084D40: ldrb r5, [r4, 0x1] ldrb r0, [r4] _08084D44: subs r4, r0, r5 adds r4, 0x1 lsls r4, 24 lsrs r4, 24 bl Random lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 bl __modsi3 lsls r0, 24 lsrs r0, 24 adds r0, r5, r0 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end random_number_in_range thumb_func_start sub_8084D6C sub_8084D6C: @ 8084D6C push {r4-r6,lr} movs r3, 0 ldr r5, _08084D9C ldrb r0, [r5] cmp r0, 0xFF beq _08084DB8 adds r6, r5, 0 ldr r4, _08084DA0 _08084D7C: lsls r0, r3, 2 adds r0, r3 lsls r0, 2 adds r2, r0, r6 ldrb r1, [r2] movs r0, 0x4 ldrsb r0, [r4, r0] cmp r1, r0 bne _08084DA4 ldrb r1, [r2, 0x1] movs r0, 0x5 ldrsb r0, [r4, r0] cmp r1, r0 bne _08084DA4 adds r0, r3, 0 b _08084DBA .align 2, 0 _08084D9C: .4byte gWildMonHeaders _08084DA0: .4byte 0x02025734 _08084DA4: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 lsls r0, r3, 2 adds r0, r3 lsls r0, 2 adds r0, r5 ldrb r0, [r0] cmp r0, 0xFF bne _08084D7C _08084DB8: ldr r0, _08084DC0 _08084DBA: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08084DC0: .4byte 0x0000ffff thumb_func_end sub_8084D6C thumb_func_start sub_8084DC4 sub_8084DC4: @ 8084DC4 push {r4-r7,lr} sub sp, 0x1C bl GetSafariZoneFlag cmp r0, 0x1 bne _08084E5E bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x4F bhi _08084E5E bl sub_80C8448 adds r7, r0, 0 cmp r7, 0 beq _08084E5E movs r5, 0 _08084DF2: mov r1, sp adds r0, r1, r5 strb r5, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x18 bls _08084DF2 movs r5, 0 _08084E04: adds r1, r5, 0x1 lsls r0, r1, 24 lsrs r4, r0, 24 adds r6, r1, 0 cmp r4, 0x18 bhi _08084E34 add r5, sp _08084E12: bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _08084E2A ldrb r2, [r5] mov r0, sp adds r1, r0, r4 ldrb r0, [r1] strb r0, [r5] strb r2, [r1] _08084E2A: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x18 bls _08084E12 _08084E34: lsls r0, r6, 24 lsrs r5, r0, 24 cmp r5, 0x17 bls _08084E04 movs r5, 0 _08084E3E: mov r1, sp adds r4, r1, r5 ldrb r0, [r4] adds r1, r7, 0 bl sub_810CAE4 lsls r0, 16 cmp r0, 0 ble _08084E54 ldrb r0, [r4] b _08084E70 _08084E54: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x18 bls _08084E3E _08084E5E: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x19 bl __umodsi3 lsls r0, 24 lsrs r0, 24 _08084E70: add sp, 0x1C pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8084DC4 thumb_func_start sub_8084E78 sub_8084E78: @ 8084E78 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 bl zero_enemy_party_data bl sub_8084DC4 lsls r0, 24 lsrs r0, 24 ldr r1, _08084EAC str r0, [sp] adds r0, r1, 0 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x20 bl pokemon_make_with_nature add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08084EAC: .4byte 0x030045c0 thumb_func_end sub_8084E78 thumb_func_start sub_8084EB0 sub_8084EB0: @ 8084EB0 push {r4-r7,lr} adds r6, r0, 0 lsls r1, 24 lsrs r1, 24 adds r3, r1, 0 lsls r2, 24 lsrs r7, r2, 24 movs r0, 0 cmp r1, 0x1 beq _08084EDA cmp r1, 0x1 bgt _08084ECE cmp r1, 0 beq _08084ED4 b _08084EE2 _08084ECE: cmp r3, 0x2 beq _08084EDA b _08084EE2 _08084ED4: bl wild_pokemon_rand_grass b _08084EDE _08084EDA: bl wild_pokemon_rand_water _08084EDE: lsls r0, 24 lsrs r0, 24 _08084EE2: lsls r4, r0, 2 ldr r0, [r6, 0x4] adds r0, r4 bl random_number_in_range lsls r0, 24 lsrs r5, r0, 24 cmp r7, 0x1 bne _08084F04 adds r0, r5, 0 bl sub_8085598 lsls r0, 24 cmp r0, 0 bne _08084F04 movs r0, 0 b _08084F12 _08084F04: ldr r0, [r6, 0x4] adds r0, r4, r0 ldrh r0, [r0, 0x2] adds r1, r5, 0 bl sub_8084E78 movs r0, 0x1 _08084F12: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8084EB0 thumb_func_start sub_8084F18 sub_8084F18: @ 8084F18 push {r4,r5,lr} adds r5, r0, 0 lsls r0, r1, 24 lsrs r0, 24 bl sub_8084C94 adds r4, r0, 0 lsls r4, 24 lsrs r4, 22 ldr r0, [r5, 0x4] adds r0, r4 bl random_number_in_range adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r0, [r5, 0x4] adds r0, r4, r0 ldrh r0, [r0, 0x2] bl sub_8084E78 ldr r0, [r5, 0x4] adds r4, r0 ldrh r0, [r4, 0x2] pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8084F18 thumb_func_start SetUpMassOutbreakEncounter SetUpMassOutbreakEncounter: @ 8084F50 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08084F78 ldr r0, _08084F74 movs r1, 0xAC lsls r1, 6 adds r0, r1 ldrb r0, [r0] bl sub_8085598 lsls r0, 24 cmp r0, 0 bne _08084F78 movs r0, 0 b _08084FAC .align 2, 0 _08084F74: .4byte 0x02025734 _08084F78: ldr r4, _08084FB4 ldr r2, _08084FB8 adds r0, r4, r2 ldrh r0, [r0] adds r2, 0x4 adds r1, r4, r2 ldrb r1, [r1] bl sub_8084E78 movs r5, 0 ldr r0, _08084FBC adds r4, r0 _08084F90: lsls r0, r5, 1 adds r0, r4 ldrh r1, [r0] lsls r2, r5, 24 lsrs r2, 24 ldr r0, _08084FC0 bl sub_803B6A4 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3 bls _08084F90 movs r0, 0x1 _08084FAC: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08084FB4: .4byte 0x02025734 _08084FB8: .4byte 0x00002afc _08084FBC: .4byte 0x00002b04 _08084FC0: .4byte 0x030045c0 thumb_func_end SetUpMassOutbreakEncounter thumb_func_start DoMassOutbreakEncounterTest DoMassOutbreakEncounterTest: @ 8084FC4 push {r4,lr} ldr r4, _08085010 ldr r1, _08085014 adds r0, r4, r1 ldrh r0, [r0] cmp r0, 0 beq _08085020 movs r1, 0x5 ldrsb r1, [r4, r1] ldr r2, _08085018 adds r0, r4, r2 ldrb r0, [r0] cmp r1, r0 bne _08085020 movs r1, 0x4 ldrsb r1, [r4, r1] adds r2, 0x1 adds r0, r4, r2 ldrb r0, [r0] cmp r1, r0 bne _08085020 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 ldr r2, _0808501C adds r1, r4, r2 lsls r0, 16 lsrs r0, 16 ldrb r1, [r1] cmp r0, r1 bcs _08085020 movs r0, 0x1 b _08085022 .align 2, 0 _08085010: .4byte 0x02025734 _08085014: .4byte 0x00002afc _08085018: .4byte 0x00002afe _0808501C: .4byte 0x00002b0d _08085020: movs r0, 0 _08085022: pop {r4} pop {r1} bx r1 thumb_func_end DoMassOutbreakEncounterTest thumb_func_start DoWildEncounterRateDiceRoll DoWildEncounterRateDiceRoll: @ 8085028 push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xB4 lsls r1, 4 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, r4 bcc _0808504C movs r0, 0 b _0808504E _0808504C: movs r0, 0x1 _0808504E: pop {r4} pop {r1} bx r1 thumb_func_end DoWildEncounterRateDiceRoll thumb_func_start sub_8085054 sub_8085054: @ 8085054 push {r4,lr} sub sp, 0x4 str r0, [sp] lsls r1, 24 lsrs r4, r1, 24 lsls r0, 4 str r0, [sp] movs r0, 0x6 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _0808507E ldr r1, [sp] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 movs r1, 0x64 bl __udivsi3 str r0, [sp] _0808507E: mov r0, sp bl affects_encounter_rate_based_on_flags mov r0, sp bl ApplyCleanseTagWildEncounterRateReduction cmp r4, 0 bne _080850BA ldr r4, _080850DC adds r0, r4, 0 movs r1, 0x6 bl PokemonGetField cmp r0, 0 bne _080850BA adds r0, r4, 0 bl GetMonAbility lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 bne _080850B0 ldr r0, [sp] lsrs r0, 1 str r0, [sp] _080850B0: cmp r1, 0x23 bne _080850BA ldr r0, [sp] lsls r0, 1 str r0, [sp] _080850BA: ldr r0, [sp] movs r1, 0xB4 lsls r1, 4 cmp r0, r1 bls _080850C6 str r1, [sp] _080850C6: ldr r0, [sp] lsls r0, 16 lsrs r0, 16 bl DoWildEncounterRateDiceRoll lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4} pop {r1} bx r1 .align 2, 0 _080850DC: .4byte 0x03004360 thumb_func_end sub_8085054 thumb_func_start DoGlobalWildEncounterDiceRoll DoGlobalWildEncounterDiceRoll: @ 80850E0 push {lr} bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x3B bhi _080850FC movs r0, 0x1 b _080850FE _080850FC: movs r0, 0 _080850FE: pop {r1} bx r1 thumb_func_end DoGlobalWildEncounterDiceRoll thumb_func_start sub_8085104 sub_8085104: @ 8085104 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 16 lsrs r6, r0, 16 mov r9, r6 lsls r1, 16 lsrs r7, r1, 16 mov r8, r7 ldr r0, _080851CC ldrb r0, [r0] cmp r0, 0x1 bne _08085122 b _08085282 _08085122: bl sub_8084D6C lsls r0, 16 lsrs r5, r0, 16 ldr r0, _080851D0 cmp r5, r0 bne _08085132 b _08085282 _08085132: lsls r0, r6, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_8057468 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080851D8 ldr r1, _080851D4 lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 2 adds r1, 0x4 adds r0, r1 ldr r0, [r0] adds r4, r2, 0 cmp r0, 0 bne _0808515A b _08085282 _0808515A: cmp r7, r6 beq _0808516A bl DoGlobalWildEncounterDiceRoll lsls r0, 24 cmp r0, 0 bne _0808516A b _08085282 _0808516A: ldr r1, _080851D4 adds r0, r4, r5 lsls r0, 2 adds r1, 0x4 adds r0, r1 ldr r0, [r0] ldrb r0, [r0] movs r1, 0 bl sub_8085054 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08085188 b _08085282 _08085188: bl sub_81344CC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0808524A bl DoMassOutbreakEncounterTest lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080851AE movs r0, 0x1 bl SetUpMassOutbreakEncounter lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0808527A _080851AE: ldr r1, _080851D4 adds r0, r4, r5 lsls r0, 2 adds r1, 0x4 adds r0, r1 ldr r0, [r0] movs r1, 0 movs r2, 0x1 bl sub_8084EB0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0808527A b _08085282 .align 2, 0 _080851CC: .4byte 0x0202ff7c _080851D0: .4byte 0x0000ffff _080851D4: .4byte gWildMonHeaders _080851D8: adds r0, r4, 0 bl sub_8057494 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08085200 movs r0, 0x8 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _08085282 adds r0, r4, 0 bl sub_8057434 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08085282 _08085200: ldr r1, _08085260 lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 2 adds r1, 0x8 adds r0, r1 ldr r0, [r0] adds r4, r2, 0 cmp r0, 0 beq _08085282 cmp r8, r9 beq _08085222 bl DoGlobalWildEncounterDiceRoll lsls r0, 24 cmp r0, 0 beq _08085282 _08085222: ldr r1, _08085260 adds r0, r4, r5 lsls r0, 2 adds r1, 0x8 adds r4, r0, r1 ldr r0, [r4] ldrb r0, [r0] movs r1, 0 bl sub_8085054 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08085282 bl sub_81344CC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08085268 _0808524A: ldr r0, _08085264 ldrb r0, [r0, 0xC] bl sub_8085598 lsls r0, 24 cmp r0, 0 beq _08085282 bl sub_8081A5C movs r0, 0x1 b _08085284 .align 2, 0 _08085260: .4byte gWildMonHeaders _08085264: .4byte 0x02028878 _08085268: ldr r0, [r4] movs r1, 0x1 movs r2, 0x1 bl sub_8084EB0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08085282 _0808527A: bl sub_8081A00 movs r0, 0x1 b _08085284 _08085282: movs r0, 0 _08085284: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8085104 thumb_func_start rock_smash_wild_pokemon_encounter rock_smash_wild_pokemon_encounter: @ 8085290 push {r4,lr} bl sub_8084D6C lsls r0, 16 lsrs r2, r0, 16 ldr r0, _080852E0 cmp r2, r0 beq _080852EC ldr r1, _080852E4 lsls r0, r2, 2 adds r0, r2 lsls r0, 2 adds r1, 0xC adds r0, r1 ldr r4, [r0] cmp r4, 0 beq _080852D8 ldrb r0, [r4] movs r1, 0x1 bl sub_8085054 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080852EC adds r0, r4, 0 movs r1, 0x2 movs r2, 0x1 bl sub_8084EB0 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bne _080852EC bl sub_8081A00 _080852D8: ldr r0, _080852E8 strh r4, [r0] b _080852F2 .align 2, 0 _080852E0: .4byte 0x0000ffff _080852E4: .4byte gWildMonHeaders _080852E8: .4byte 0x0202e8dc _080852EC: ldr r1, _080852F8 movs r0, 0 strh r0, [r1] _080852F2: pop {r4} pop {r0} bx r0 .align 2, 0 _080852F8: .4byte 0x0202e8dc thumb_func_end rock_smash_wild_pokemon_encounter thumb_func_start sub_80852FC sub_80852FC: @ 80852FC push {r4,r5,lr} sub sp, 0x4 mov r5, sp adds r5, 0x2 mov r0, sp adds r1, r5, 0 bl PlayerGetDestCoords bl sub_8084D6C lsls r0, 16 lsrs r4, r0, 16 ldr r0, _0808536C cmp r4, r0 beq _080853DA mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl sub_8057468 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08085380 ldr r1, _08085370 lsls r0, r4, 2 adds r0, r4 lsls r0, 2 adds r1, 0x4 adds r0, r1 ldr r4, [r0] cmp r4, 0 beq _080853DA bl sub_81344CC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080853BC bl DoMassOutbreakEncounterTest lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08085374 movs r0, 0 bl SetUpMassOutbreakEncounter b _080853D2 .align 2, 0 _0808536C: .4byte 0x0000ffff _08085370: .4byte gWildMonHeaders _08085374: adds r0, r4, 0 movs r1, 0 movs r2, 0 bl sub_8084EB0 b _080853D2 _08085380: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl sub_8057494 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080853DA ldr r1, _080853C4 lsls r0, r4, 2 adds r0, r4 lsls r0, 2 adds r1, 0x8 adds r0, r1 ldr r4, [r0] cmp r4, 0 beq _080853DA bl sub_81344CC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080853C8 _080853BC: bl sub_8081A5C movs r0, 0x1 b _080853DC .align 2, 0 _080853C4: .4byte gWildMonHeaders _080853C8: adds r0, r4, 0 movs r1, 0x1 movs r2, 0 bl sub_8084EB0 _080853D2: bl sub_8081A00 movs r0, 0x1 b _080853DC _080853DA: movs r0, 0 _080853DC: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80852FC thumb_func_start GetFishingWildMonListHeader GetFishingWildMonListHeader: @ 80853E4 push {lr} bl sub_8084D6C lsls r0, 16 lsrs r2, r0, 16 ldr r0, _0808540C cmp r2, r0 beq _08085414 ldr r0, _08085410 lsls r1, r2, 2 adds r1, r2 lsls r1, 2 adds r0, 0x10 adds r1, r0 ldr r0, [r1] cmp r0, 0 beq _08085414 movs r0, 0x1 b _08085416 .align 2, 0 _0808540C: .4byte 0x0000ffff _08085410: .4byte gWildMonHeaders _08085414: movs r0, 0 _08085416: pop {r1} bx r1 thumb_func_end GetFishingWildMonListHeader thumb_func_start sub_808541C sub_808541C: @ 808541C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl check_feebas lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0808544C ldr r4, _08085448 adds r0, r4, 0 bl random_number_in_range adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldrh r4, [r4, 0x2] adds r0, r4, 0 bl sub_8084E78 b _0808546C .align 2, 0 _08085448: .4byte gWildFeebasRoute119Data _0808544C: ldr r4, _08085484 bl sub_8084D6C lsls r0, 16 lsrs r0, 16 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r4, 0x10 adds r1, r4 ldr r0, [r1] adds r1, r5, 0 bl sub_8084F18 lsls r0, 16 lsrs r4, r0, 16 _0808546C: movs r0, 0xC bl sav12_xor_increment adds r0, r4, 0 bl sub_80BEA50 bl sub_8081A00 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08085484: .4byte gWildMonHeaders thumb_func_end sub_808541C thumb_func_start wild_pokemon_rand_for_map wild_pokemon_rand_for_map: @ 8085488 push {r4-r6,lr} adds r6, r0, 0 movs r0, 0 strb r0, [r6] bl sub_8084D6C lsls r0, 16 lsrs r3, r0, 16 ldr r0, _080854C0 cmp r3, r0 beq _080854BA ldr r2, _080854C4 lsls r1, r3, 2 adds r1, r3 lsls r1, 2 adds r0, r2, 0x4 adds r0, r1, r0 ldr r5, [r0] adds r2, 0x8 adds r1, r2 ldr r4, [r1] cmp r5, 0 bne _080854C8 cmp r4, 0 bne _080854CE _080854BA: movs r0, 0 b _0808550E .align 2, 0 _080854C0: .4byte 0x0000ffff _080854C4: .4byte gWildMonHeaders _080854C8: cmp r4, 0 bne _080854DC b _08085500 _080854CE: movs r0, 0x1 strb r0, [r6] bl wild_pokemon_rand_water lsls r0, 24 ldr r1, [r4, 0x4] b _08085508 _080854DC: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x4F bls _08085500 movs r0, 0x1 strb r0, [r6] bl wild_pokemon_rand_water lsls r0, 24 ldr r1, [r4, 0x4] b _08085508 _08085500: bl wild_pokemon_rand_grass lsls r0, 24 ldr r1, [r5, 0x4] _08085508: lsrs r0, 22 adds r0, r1 ldrh r0, [r0, 0x2] _0808550E: pop {r4-r6} pop {r1} bx r1 thumb_func_end wild_pokemon_rand_for_map thumb_func_start sub_8085514 sub_8085514: @ 8085514 push {r4,lr} bl sub_8084D6C lsls r0, 16 lsrs r2, r0, 16 ldr r0, _08085548 cmp r2, r0 beq _08085550 ldr r1, _0808554C lsls r0, r2, 2 adds r0, r2 lsls r0, 2 adds r1, 0x8 adds r0, r1 ldr r4, [r0] cmp r4, 0 beq _08085550 bl wild_pokemon_rand_water lsls r0, 24 ldr r1, [r4, 0x4] lsrs r0, 22 adds r0, r1 ldrh r0, [r0, 0x2] b _08085552 .align 2, 0 _08085548: .4byte 0x0000ffff _0808554C: .4byte gWildMonHeaders _08085550: movs r0, 0 _08085552: pop {r4} pop {r1} bx r1 thumb_func_end sub_8085514 thumb_func_start sub_8085558 sub_8085558: @ 8085558 push {r4,r5,lr} ldr r5, _08085588 adds r0, r5, 0 bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _08085590 subs r4, r0, 0x1 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 adds r1, r4, 0 bl VarSet cmp r4, 0 bne _08085590 ldr r0, _0808558C bl script_env_1_execute_new_script movs r0, 0x1 b _08085592 .align 2, 0 _08085588: .4byte 0x00004021 _0808558C: .4byte Event_RepelWoreOff _08085590: movs r0, 0 _08085592: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8085558 thumb_func_start sub_8085598 sub_8085598: @ 8085598 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _080855E4 bl VarGet lsls r0, 16 cmp r0, 0 beq _080855DE movs r5, 0 _080855AC: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _080855E8 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _080855EC adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _080855EC adds r0, r4, 0 movs r1, 0x38 bl PokemonGetField lsls r0, 24 lsrs r0, 24 cmp r6, r0 bcc _080855F6 _080855DE: movs r0, 0x1 b _080855F8 .align 2, 0 _080855E4: .4byte 0x00004021 _080855E8: .4byte 0x03004360 _080855EC: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _080855AC _080855F6: movs r0, 0 _080855F8: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8085598 thumb_func_start affects_encounter_rate_based_on_flags affects_encounter_rate_based_on_flags: @ 8085600 push {r4,lr} adds r4, r0, 0 ldr r0, _0808561C bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08085620 ldr r0, [r4] lsrs r1, r0, 1 adds r0, r1 b _08085632 .align 2, 0 _0808561C: .4byte 0x0000084d _08085620: ldr r0, _0808563C bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08085634 ldr r0, [r4] lsrs r0, 1 _08085632: str r0, [r4] _08085634: pop {r4} pop {r0} bx r0 .align 2, 0 _0808563C: .4byte 0x0000084e thumb_func_end affects_encounter_rate_based_on_flags thumb_func_start ApplyCleanseTagWildEncounterRateReduction ApplyCleanseTagWildEncounterRateReduction: @ 8085640 push {r4,lr} adds r4, r0, 0 ldr r0, _08085664 movs r1, 0xC bl PokemonGetField cmp r0, 0xBE bne _0808565C ldr r0, [r4] lsls r0, 1 movs r1, 0x3 bl __udivsi3 str r0, [r4] _0808565C: pop {r4} pop {r0} bx r0 .align 2, 0 _08085664: .4byte 0x03004360 thumb_func_end ApplyCleanseTagWildEncounterRateReduction thumb_func_start FieldEffectStart FieldEffectStart: @ 8085668 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl FieldEffectActiveListAdd ldr r0, _080856A8 lsls r4, 2 adds r4, r0 ldr r0, [r4] str r0, [sp] add r4, sp, 0x4 ldr r5, _080856AC _08085686: ldr r0, [sp] ldrb r0, [r0] lsls r0, 2 adds r0, r5 ldr r2, [r0] mov r0, sp adds r1, r4, 0 bl _call_via_r2 lsls r0, 24 cmp r0, 0 bne _08085686 ldr r0, [sp, 0x4] add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080856A8: .4byte gFieldEffectScriptPointers _080856AC: .4byte gUnknown_0839F0D4 thumb_func_end FieldEffectStart thumb_func_start FieldEffectCmd_loadtiles FieldEffectCmd_loadtiles: @ 80856B0 push {lr} ldr r1, [r0] adds r1, 0x1 str r1, [r0] bl FieldEffectScript_LoadTiles movs r0, 0x1 pop {r1} bx r1 thumb_func_end FieldEffectCmd_loadtiles thumb_func_start FieldEffectCmd_loadfadedpal FieldEffectCmd_loadfadedpal: @ 80856C4 push {lr} ldr r1, [r0] adds r1, 0x1 str r1, [r0] bl FieldEffectScript_LoadFadedPalette movs r0, 0x1 pop {r1} bx r1 thumb_func_end FieldEffectCmd_loadfadedpal thumb_func_start FieldEffectCmd_loadpal FieldEffectCmd_loadpal: @ 80856D8 push {lr} ldr r1, [r0] adds r1, 0x1 str r1, [r0] bl FieldEffectScript_LoadPalette movs r0, 0x1 pop {r1} bx r1 thumb_func_end FieldEffectCmd_loadpal thumb_func_start FieldEffectCmd_callnative FieldEffectCmd_callnative: @ 80856EC push {lr} ldr r2, [r0] adds r2, 0x1 str r2, [r0] bl FieldEffectScript_CallNative movs r0, 0x1 pop {r1} bx r1 thumb_func_end FieldEffectCmd_callnative thumb_func_start sub_8085700 sub_8085700: @ 8085700 movs r0, 0 bx lr thumb_func_end sub_8085700 thumb_func_start FieldEffectCmd_loadgfx_callnative FieldEffectCmd_loadgfx_callnative: @ 8085704 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, [r4] adds r0, 0x1 str r0, [r4] adds r0, r4, 0 bl FieldEffectScript_LoadTiles adds r0, r4, 0 bl FieldEffectScript_LoadFadedPalette adds r0, r4, 0 adds r1, r5, 0 bl FieldEffectScript_CallNative movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end FieldEffectCmd_loadgfx_callnative thumb_func_start FieldEffectCmd_loadtiles_callnative FieldEffectCmd_loadtiles_callnative: @ 808572C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, [r4] adds r0, 0x1 str r0, [r4] adds r0, r4, 0 bl FieldEffectScript_LoadTiles adds r0, r4, 0 adds r1, r5, 0 bl FieldEffectScript_CallNative movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end FieldEffectCmd_loadtiles_callnative thumb_func_start FieldEffectCmd_loadfadedpal_callnative FieldEffectCmd_loadfadedpal_callnative: @ 8085750 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, [r4] adds r0, 0x1 str r0, [r4] adds r0, r4, 0 bl FieldEffectScript_LoadFadedPalette adds r0, r4, 0 adds r1, r5, 0 bl FieldEffectScript_CallNative movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end FieldEffectCmd_loadfadedpal_callnative thumb_func_start FieldEffectScript_ReadWord FieldEffectScript_ReadWord: @ 8085774 ldr r2, [r0] ldrb r0, [r2] ldrb r1, [r2, 0x1] lsls r1, 8 adds r0, r1 ldrb r1, [r2, 0x2] lsls r1, 16 adds r0, r1 ldrb r1, [r2, 0x3] lsls r1, 24 adds r0, r1 bx lr thumb_func_end FieldEffectScript_ReadWord thumb_func_start FieldEffectScript_LoadTiles FieldEffectScript_LoadTiles: @ 808578C push {r4,r5,lr} adds r4, r0, 0 bl FieldEffectScript_ReadWord adds r5, r0, 0 ldrh r0, [r5, 0x6] bl GetSpriteTileStartByTag lsls r0, 16 ldr r1, _080857B8 cmp r0, r1 bne _080857AA adds r0, r5, 0 bl LoadSpriteSheet _080857AA: ldr r0, [r4] adds r0, 0x4 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080857B8: .4byte 0xffff0000 thumb_func_end FieldEffectScript_LoadTiles thumb_func_start FieldEffectScript_LoadFadedPalette FieldEffectScript_LoadFadedPalette: @ 80857BC push {r4,r5,lr} adds r5, r0, 0 bl FieldEffectScript_ReadWord adds r4, r0, 0 bl LoadSpritePalette ldrh r0, [r4, 0x4] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 bl sub_807D78C ldr r0, [r5] adds r0, 0x4 str r0, [r5] pop {r4,r5} pop {r0} bx r0 thumb_func_end FieldEffectScript_LoadFadedPalette thumb_func_start FieldEffectScript_LoadPalette FieldEffectScript_LoadPalette: @ 80857E4 push {r4,lr} adds r4, r0, 0 bl FieldEffectScript_ReadWord bl LoadSpritePalette ldr r0, [r4] adds r0, 0x4 str r0, [r4] pop {r4} pop {r0} bx r0 thumb_func_end FieldEffectScript_LoadPalette thumb_func_start FieldEffectScript_CallNative FieldEffectScript_CallNative: @ 80857FC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl FieldEffectScript_ReadWord bl _call_via_r0 str r0, [r5] ldr r0, [r4] adds r0, 0x4 str r0, [r4] pop {r4,r5} pop {r0} bx r0 thumb_func_end FieldEffectScript_CallNative thumb_func_start FieldEffectFreeGraphicsResources FieldEffectFreeGraphicsResources: @ 8085818 push {r4,r5,lr} adds r1, r0, 0 adds r1, 0x40 ldrh r5, [r1] ldrb r4, [r0, 0x5] lsrs r4, 4 bl DestroySprite adds r0, r5, 0 bl FieldEffectFreeTilesIfUnused adds r0, r4, 0 bl FieldEffectFreePaletteIfUnused pop {r4,r5} pop {r0} bx r0 thumb_func_end FieldEffectFreeGraphicsResources thumb_func_start FieldEffectStop FieldEffectStop: @ 808583C push {r4,lr} lsls r4, r1, 24 lsrs r4, 24 bl FieldEffectFreeGraphicsResources adds r0, r4, 0 bl FieldEffectActiveListRemove pop {r4} pop {r0} bx r0 thumb_func_end FieldEffectStop thumb_func_start FieldEffectFreeTilesIfUnused FieldEffectFreeTilesIfUnused: @ 8085854 push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl GetSpriteTileTagByTileStart lsls r0, 16 lsrs r3, r0, 16 ldr r0, _080858B0 cmp r3, r0 beq _080858A8 movs r2, 0 ldr r5, _080858B4 _0808586E: lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, r0, r5 adds r0, r1, 0 adds r0, 0x3E ldrb r0, [r0] lsls r0, 31 cmp r0, 0 beq _08085898 adds r0, r1, 0 adds r0, 0x3F ldrb r0, [r0] lsls r0, 25 cmp r0, 0 bge _08085898 adds r0, r1, 0 adds r0, 0x40 ldrh r0, [r0] cmp r4, r0 beq _080858A8 _08085898: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3F bls _0808586E adds r0, r3, 0 bl FreeSpriteTilesByTag _080858A8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080858B0: .4byte 0x0000ffff _080858B4: .4byte 0x02020004 thumb_func_end FieldEffectFreeTilesIfUnused thumb_func_start FieldEffectFreePaletteIfUnused FieldEffectFreePaletteIfUnused: @ 80858B8 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl GetSpritePaletteTagByPaletteNum lsls r0, 16 lsrs r5, r0, 16 ldr r0, _08085908 cmp r5, r0 beq _08085900 movs r2, 0 ldr r6, _0808590C adds r3, r4, 0 _080858D4: lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, r0, r6 adds r0, r1, 0 adds r0, 0x3E ldrb r0, [r0] lsls r0, 31 cmp r0, 0 beq _080858F0 ldrb r0, [r1, 0x5] lsrs r0, 4 cmp r0, r3 beq _08085900 _080858F0: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3F bls _080858D4 adds r0, r5, 0 bl FreeSpritePaletteByTag _08085900: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08085908: .4byte 0x0000ffff _0808590C: .4byte 0x02020004 thumb_func_end FieldEffectFreePaletteIfUnused thumb_func_start FieldEffectActiveListClear FieldEffectActiveListClear: @ 8085910 push {r4,lr} movs r2, 0 ldr r4, _08085930 movs r3, 0xFF _08085918: adds r0, r2, r4 ldrb r1, [r0] orrs r1, r3 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x1F bls _08085918 pop {r4} pop {r0} bx r0 .align 2, 0 _08085930: .4byte 0x030006e0 thumb_func_end FieldEffectActiveListClear thumb_func_start FieldEffectActiveListAdd FieldEffectActiveListAdd: @ 8085934 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 movs r2, 0 ldr r4, _0808594C _0808593E: adds r1, r2, r4 ldrb r0, [r1] cmp r0, 0xFF bne _08085950 strb r3, [r1] b _0808595A .align 2, 0 _0808594C: .4byte 0x030006e0 _08085950: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x1F bls _0808593E _0808595A: pop {r4} pop {r0} bx r0 thumb_func_end FieldEffectActiveListAdd thumb_func_start FieldEffectActiveListRemove FieldEffectActiveListRemove: @ 8085960 push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 movs r2, 0 ldr r4, _0808597C movs r5, 0xFF _0808596C: adds r1, r2, r4 ldrb r0, [r1] cmp r0, r3 bne _08085980 orrs r0, r5 strb r0, [r1] b _0808598A .align 2, 0 _0808597C: .4byte 0x030006e0 _08085980: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x1F bls _0808596C _0808598A: pop {r4,r5} pop {r0} bx r0 thumb_func_end FieldEffectActiveListRemove thumb_func_start FieldEffectActiveListContains FieldEffectActiveListContains: @ 8085990 push {lr} lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 ldr r3, _080859A8 _0808599A: adds r0, r1, r3 ldrb r0, [r0] cmp r0, r2 bne _080859AC movs r0, 0x1 b _080859B8 .align 2, 0 _080859A8: .4byte 0x030006e0 _080859AC: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1F bls _0808599A movs r0, 0 _080859B8: pop {r1} bx r1 thumb_func_end FieldEffectActiveListContains thumb_func_start sub_80859BC sub_80859BC: @ 80859BC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x18 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 mov r9, r3 ldr r7, [sp, 0x34] lsls r4, 24 lsls r5, 16 lsrs r5, 16 lsls r6, 16 lsrs r6, 16 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 lsrs r4, 21 ldr r3, _08085A44 mov r8, r3 add r8, r4 mov r0, r8 adds r1, r7, 0 bl LoadCompressedObjectPaletteOverrideBuffer ldr r0, _08085A48 adds r4, r0 adds r0, r4, 0 adds r1, r7, 0 bl LoadCompressedObjectPicOverrideBuffer mov r1, sp ldrh r0, [r4, 0x6] movs r2, 0 strh r0, [r1] mov r3, r8 ldrh r0, [r3, 0x4] strh r0, [r1, 0x2] ldr r0, _08085A4C str r0, [sp, 0x4] ldr r0, _08085A50 str r0, [sp, 0x8] str r2, [sp, 0xC] ldr r0, _08085A54 str r0, [sp, 0x10] ldr r0, _08085A58 str r0, [sp, 0x14] lsls r5, 16 asrs r5, 16 lsls r6, 16 asrs r6, 16 mov r0, sp adds r1, r5, 0 adds r2, r6, 0 mov r3, r9 bl CreateSprite lsls r0, 24 lsrs r0, 24 add sp, 0x18 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08085A44: .4byte gTrainerFrontPicPaletteTable _08085A48: .4byte gTrainerFrontPicTable _08085A4C: .4byte gOamData_839F0F4 _08085A50: .4byte gDummySpriteAnimTable _08085A54: .4byte gDummySpriteAffineAnimTable _08085A58: .4byte SpriteCallbackDummy thumb_func_end sub_80859BC thumb_func_start sub_8085A5C sub_8085A5C: @ 8085A5C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r1, r2, 0 lsls r4, 24 lsls r5, 16 lsrs r5, 16 ldr r0, _08085A8C lsrs r4, 21 adds r0, r4, r0 ldr r0, [r0] bl LZDecompressVram ldr r0, _08085A90 adds r4, r0 ldr r0, [r4] adds r1, r5, 0 movs r2, 0x20 bl LoadCompressedPalette pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08085A8C: .4byte gTrainerFrontPicTable _08085A90: .4byte gTrainerFrontPicPaletteTable thumb_func_end sub_8085A5C thumb_func_start AddNewGameBirchObject AddNewGameBirchObject: @ 8085A94 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 lsls r6, 24 lsrs r6, 24 ldr r0, _08085ACC bl LoadSpritePalette ldr r0, _08085AD0 lsls r4, 16 asrs r4, 16 lsls r5, 16 asrs r5, 16 adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08085ACC: .4byte gUnknown_0839F114 _08085AD0: .4byte gSpriteTemplate_839F128 thumb_func_end AddNewGameBirchObject thumb_func_start sub_8085AD4 sub_8085AD4: @ 8085AD4 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x8 adds r4, r0, 0 adds r6, r1, 0 mov r8, r2 mov r10, r3 lsls r4, 16 lsrs r4, 16 lsls r6, 16 lsrs r6, 16 mov r0, r8 lsls r0, 16 lsrs r0, 16 mov r8, r0 mov r0, r10 lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r0, r4, 3 mov r9, r0 ldr r0, _08085B74 add r0, r9 ldr r1, _08085B78 lsls r2, r4, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] ldr r3, _08085B7C ldr r3, [r3, 0xC] str r3, [sp] str r4, [sp, 0x4] bl DecompressPicFromTable_2 ldr r5, _08085B80 add r9, r5 mov r0, r9 bl LoadCompressedObjectPalette adds r0, r4, 0 movs r1, 0x3 bl gpu_pal_obj_decompress_and_apply ldr r4, _08085B84 ldrh r0, [r5, 0x4] strh r0, [r4, 0x2] ldrh r0, [r5, 0x4] bl IndexOfSpritePaletteTag adds r0, 0x10 lsls r0, 24 lsrs r0, 24 bl sub_807DE38 lsls r6, 16 asrs r6, 16 mov r0, r8 lsls r0, 16 asrs r0, 16 mov r8, r0 adds r0, r4, 0 adds r1, r6, 0 mov r2, r8 mov r3, r10 bl CreateSprite lsls r0, 24 lsrs r0, 24 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08085B74: .4byte gMonFrontPicTable _08085B78: .4byte gMonFrontPicCoords _08085B7C: .4byte gUnknown_081FAF4C _08085B80: .4byte gMonPaletteTable _08085B84: .4byte 0x02024e8c thumb_func_end sub_8085AD4 thumb_func_start sub_8085B88 sub_8085B88: @ 8085B88 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0xC adds r5, r0, 0 mov r10, r1 adds r4, r2, 0 adds r6, r3, 0 ldr r0, [sp, 0x28] mov r8, r0 ldr r0, [sp, 0x2C] mov r9, r0 lsls r5, 16 lsrs r5, 16 lsls r6, 16 lsrs r6, 16 mov r0, r8 lsls r0, 16 lsrs r0, 16 mov r8, r0 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r0, r5, 3 ldr r1, _08085C34 adds r0, r1 ldr r1, _08085C38 lsls r2, r5, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] ldr r3, _08085C3C ldr r3, [r3, 0xC] str r3, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] bl sub_800D334 adds r0, r5, 0 mov r1, r10 adds r2, r4, 0 bl sub_80409C8 adds r4, r0, 0 bl LoadCompressedObjectPalette adds r0, r5, 0 movs r1, 0x3 bl gpu_pal_obj_decompress_and_apply ldr r5, _08085C40 ldrh r0, [r4, 0x4] strh r0, [r5, 0x2] ldrh r0, [r4, 0x4] bl IndexOfSpritePaletteTag adds r0, 0x10 lsls r0, 24 lsrs r0, 24 bl sub_807DE38 lsls r6, 16 asrs r6, 16 mov r0, r8 lsls r0, 16 asrs r0, 16 mov r8, r0 adds r0, r5, 0 adds r1, r6, 0 mov r2, r8 mov r3, r9 bl CreateSprite lsls r0, 24 lsrs r0, 24 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08085C34: .4byte gMonFrontPicTable _08085C38: .4byte gMonFrontPicCoords _08085C3C: .4byte gUnknown_081FAF4C _08085C40: .4byte 0x02024e8c thumb_func_end sub_8085B88 thumb_func_start sub_8085C44 sub_8085C44: @ 8085C44 push {r4,lr} adds r4, r0, 0 bl sub_807DE68 ldrb r0, [r4, 0x5] lsrs r0, 4 bl GetSpritePaletteTagByPaletteNum lsls r0, 16 lsrs r0, 16 bl FreeSpritePaletteByTag ldrb r0, [r4, 0x1] lsls r0, 30 cmp r0, 0 beq _08085C6E ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix _08085C6E: adds r0, r4, 0 bl DestroySprite pop {r4} pop {r0} bx r0 thumb_func_end sub_8085C44 thumb_func_start sub_8085C7C sub_8085C7C: @ 8085C7C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 16 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 ldr r4, _08085D00 lsrs r0, 15 adds r4, r0, r4 ldrh r4, [r4] movs r5, 0x1F mov r9, r5 mov r8, r4 mov r6, r8 ands r6, r5 mov r8, r6 movs r6, 0xF8 lsls r6, 2 ands r6, r4 lsrs r6, 5 movs r5, 0xF8 lsls r5, 7 ands r4, r5 lsrs r4, 10 mov r7, r9 mov r5, r8 subs r7, r5 mov r12, r7 mov r7, r12 muls r7, r1 adds r1, r7, 0 asrs r1, 4 add r8, r1 mov r5, r9 subs r1, r5, r6 muls r1, r2 asrs r1, 4 adds r6, r1 subs r5, r4 mov r9, r5 mov r1, r9 muls r1, r3 asrs r1, 4 adds r4, r1 mov r7, r8 lsls r7, 16 lsls r6, 21 orrs r6, r7 lsls r4, 26 orrs r4, r6 lsrs r4, 16 ldr r1, _08085D04 adds r0, r1 strh r4, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08085D00: .4byte 0x0202eac8 _08085D04: .4byte 0x0202eec8 thumb_func_end sub_8085C7C thumb_func_start sub_8085D08 sub_8085D08: @ 8085D08 push {r4-r6,lr} mov r6, r8 push {r6} lsls r0, 16 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 ldr r4, _08085D78 lsrs r0, 15 adds r4, r0, r4 ldrh r4, [r4] movs r5, 0x1F mov r8, r5 mov r6, r8 ands r6, r4 mov r8, r6 movs r5, 0xF8 lsls r5, 2 ands r5, r4 lsrs r5, 5 movs r6, 0xF8 lsls r6, 7 ands r4, r6 lsrs r4, 10 mov r6, r8 muls r6, r1 adds r1, r6, 0 asrs r1, 4 mov r6, r8 subs r6, r1 adds r1, r5, 0 muls r1, r2 asrs r1, 4 subs r5, r1 adds r1, r4, 0 muls r1, r3 asrs r1, 4 subs r4, r1 lsls r6, 16 lsls r5, 21 orrs r5, r6 lsls r4, 26 orrs r4, r5 lsrs r4, 16 ldr r1, _08085D7C adds r0, r1 strh r4, [r0] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08085D78: .4byte 0x0202eac8 _08085D7C: .4byte 0x0202eec8 thumb_func_end sub_8085D08 thumb_func_start sub_8085D80 sub_8085D80: @ 8085D80 push {r4,lr} bl calc_player_party_count adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _08085DBC movs r1, 0xFF bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08085DC0 adds r1, r0 strh r4, [r1, 0xA] movs r0, 0x5D strh r0, [r1, 0xC] movs r0, 0x24 strh r0, [r1, 0xE] movs r0, 0x7C strh r0, [r1, 0x10] movs r0, 0x18 strh r0, [r1, 0x12] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08085DBC: .4byte sub_8085DC4 _08085DC0: .4byte 0x03004b20 thumb_func_end sub_8085D80 thumb_func_start sub_8085DC4 sub_8085DC4: @ 8085DC4 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08085DEC adds r1, r0 ldr r2, _08085DF0 movs r3, 0x8 ldrsh r0, [r1, r3] lsls r0, 2 adds r0, r2 ldr r2, [r0] adds r0, r1, 0 bl _call_via_r2 pop {r0} bx r0 .align 2, 0 _08085DEC: .4byte 0x03004b20 _08085DF0: .4byte gUnknown_0839F268 thumb_func_end sub_8085DC4 thumb_func_start sub_8085DF4 sub_8085DF4: @ 8085DF4 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r1, 0xA ldrsh r0, [r4, r1] movs r2, 0xC ldrsh r1, [r4, r2] movs r3, 0xE ldrsh r2, [r4, r3] movs r3, 0x1 bl sub_808604C lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x14] movs r1, 0x10 ldrsh r0, [r4, r1] movs r2, 0x12 ldrsh r1, [r4, r2] bl sub_8086430 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x16] pop {r4} pop {r0} bx r0 thumb_func_end sub_8085DF4 thumb_func_start sub_8085E30 sub_8085E30: @ 8085E30 push {r4,lr} adds r2, r0, 0 ldr r3, _08085E68 movs r1, 0x14 ldrsh r0, [r2, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 movs r4, 0x2E ldrsh r0, [r1, r4] cmp r0, 0x1 ble _08085E62 movs r0, 0x16 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x2E] adds r1, 0x1 strh r1, [r0, 0x2E] ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] _08085E62: pop {r4} pop {r0} bx r0 .align 2, 0 _08085E68: .4byte 0x02020004 thumb_func_end sub_8085E30 thumb_func_start sub_8085E6C sub_8085E6C: @ 8085E6C push {lr} adds r3, r0, 0 ldr r2, _08085E90 movs r0, 0x14 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2E ldrsh r0, [r0, r1] cmp r0, 0x4 ble _08085E8C ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] _08085E8C: pop {r0} bx r0 .align 2, 0 _08085E90: .4byte 0x02020004 thumb_func_end sub_8085E6C thumb_func_start sub_8085E94 sub_8085E94: @ 8085E94 push {lr} ldr r2, _08085ECC movs r3, 0x14 ldrsh r1, [r0, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0x6 ble _08085EC6 adds r0, r1, 0 bl DestroySprite movs r0, 0x19 bl FieldEffectActiveListRemove ldr r0, _08085ED0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _08085EC6: pop {r0} bx r0 .align 2, 0 _08085ECC: .4byte 0x02020004 _08085ED0: .4byte sub_8085DC4 thumb_func_end sub_8085E94 thumb_func_start sub_8085ED4 sub_8085ED4: @ 8085ED4 push {r4,lr} bl calc_player_party_count adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _08085F08 movs r1, 0xFF bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08085F0C adds r1, r0 strh r4, [r1, 0xA] movs r0, 0x75 strh r0, [r1, 0xC] movs r0, 0x34 strh r0, [r1, 0xE] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08085F08: .4byte sub_8085F10 _08085F0C: .4byte 0x03004b20 thumb_func_end sub_8085ED4 thumb_func_start sub_8085F10 sub_8085F10: @ 8085F10 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08085F38 adds r1, r0 ldr r2, _08085F3C movs r3, 0x8 ldrsh r0, [r1, r3] lsls r0, 2 adds r0, r2 ldr r2, [r0] adds r0, r1, 0 bl _call_via_r2 pop {r0} bx r0 .align 2, 0 _08085F38: .4byte 0x03004b20 _08085F3C: .4byte gUnknown_0839F278 thumb_func_end sub_8085F10 thumb_func_start sub_8085F40 sub_8085F40: @ 8085F40 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r1, 0xA ldrsh r0, [r4, r1] movs r2, 0xC ldrsh r1, [r4, r2] movs r3, 0xE ldrsh r2, [r4, r3] movs r3, 0 bl sub_808604C lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x14] ldr r0, _08085FB0 bl FindTaskIdByFunc adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0x78 movs r2, 0x18 movs r3, 0 bl sub_80864CC adds r0, r4, 0 movs r1, 0x28 movs r2, 0x8 movs r3, 0x1 bl sub_80864CC adds r0, r4, 0 movs r1, 0x48 movs r2, 0x8 movs r3, 0x1 bl sub_80864CC adds r0, r4, 0 movs r1, 0xA8 movs r2, 0x8 movs r3, 0x1 bl sub_80864CC adds r0, r4, 0 movs r1, 0xC8 movs r2, 0x8 movs r3, 0x1 bl sub_80864CC pop {r4} pop {r0} bx r0 .align 2, 0 _08085FB0: .4byte sub_8085F10 thumb_func_end sub_8085F40 thumb_func_start sub_8085FB4 sub_8085FB4: @ 8085FB4 push {lr} adds r3, r0, 0 ldr r2, _08085FE0 movs r0, 0x14 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2E ldrsh r0, [r0, r1] cmp r0, 0x1 ble _08085FDA ldrh r0, [r3, 0x26] adds r0, 0x1 strh r0, [r3, 0x26] ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] _08085FDA: pop {r0} bx r0 .align 2, 0 _08085FE0: .4byte 0x02020004 thumb_func_end sub_8085FB4 thumb_func_start sub_8085FE4 sub_8085FE4: @ 8085FE4 push {lr} adds r3, r0, 0 ldr r2, _08086008 movs r0, 0x14 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2E ldrsh r0, [r0, r1] cmp r0, 0x4 ble _08086004 ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] _08086004: pop {r0} bx r0 .align 2, 0 _08086008: .4byte 0x02020004 thumb_func_end sub_8085FE4 thumb_func_start sub_808600C sub_808600C: @ 808600C push {lr} ldr r2, _08086044 movs r3, 0x14 ldrsh r1, [r0, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0x6 ble _0808603E adds r0, r1, 0 bl DestroySprite movs r0, 0x3E bl FieldEffectActiveListRemove ldr r0, _08086048 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0808603E: pop {r0} bx r0 .align 2, 0 _08086044: .4byte 0x02020004 _08086048: .4byte sub_8085F10 thumb_func_end sub_808600C thumb_func_start sub_808604C sub_808604C: @ 808604C push {r4-r6,lr} mov r6, r8 push {r6} mov r8, r0 adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 lsls r6, 16 lsrs r6, 16 ldr r0, _08086098 bl CreateInvisibleSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r2, _0808609C adds r1, r2 strh r4, [r1, 0x24] strh r5, [r1, 0x26] strh r6, [r1, 0x38] mov r2, r8 strh r2, [r1, 0x3A] strh r0, [r1, 0x3C] pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08086098: .4byte sub_80860A0 _0808609C: .4byte 0x02020004 thumb_func_end sub_808604C thumb_func_start sub_80860A0 sub_80860A0: @ 80860A0 push {lr} ldr r2, _080860B8 movs r3, 0x2E ldrsh r1, [r0, r3] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _080860B8: .4byte gUnknown_0839F288 thumb_func_end sub_80860A0 thumb_func_start sub_80860BC sub_80860BC: @ 80860BC push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0 beq _080860D4 subs r0, r1, 0x1 strh r0, [r4, 0x30] lsls r0, 16 cmp r0, 0 bne _08086130 _080860D4: movs r0, 0x19 strh r0, [r4, 0x30] ldr r0, _08086148 ldr r1, _0808614C movs r2, 0x32 ldrsh r3, [r4, r2] lsls r3, 2 adds r3, r1 ldrh r1, [r4, 0x24] ldrh r2, [r3] adds r1, r2 lsls r1, 16 asrs r1, 16 ldrh r2, [r4, 0x26] ldrh r3, [r3, 0x2] adds r2, r3 lsls r2, 16 asrs r2, 16 movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 ldr r2, _08086150 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 movs r2, 0x8 orrs r0, r2 strb r0, [r1, 0x5] ldrh r0, [r4, 0x3C] strh r0, [r1, 0x2E] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] ldrh r0, [r4, 0x3A] subs r0, 0x1 strh r0, [r4, 0x3A] movs r0, 0x17 bl audio_play _08086130: movs r1, 0x3A ldrsh r0, [r4, r1] cmp r0, 0 bne _08086142 movs r0, 0x20 strh r0, [r4, 0x30] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] _08086142: pop {r4} pop {r0} bx r0 .align 2, 0 _08086148: .4byte gSpriteTemplate_839F208 _0808614C: .4byte gUnknown_0839F2A8 _08086150: .4byte 0x02020004 thumb_func_end sub_80860BC thumb_func_start sub_8086154 sub_8086154: @ 8086154 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x30] subs r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r2, r0, 16 cmp r2, 0 bne _08086184 ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] movs r0, 0x8 strh r0, [r1, 0x30] strh r2, [r1, 0x32] strh r2, [r1, 0x34] movs r2, 0x38 ldrsh r0, [r1, r2] cmp r0, 0 beq _08086184 movs r0, 0xB8 lsls r0, 1 bl fanfare_play _08086184: pop {r0} bx r0 thumb_func_end sub_8086154 thumb_func_start sub_8086188 sub_8086188: @ 8086188 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r7, r0, 0 ldrh r0, [r7, 0x30] subs r0, 0x1 strh r0, [r7, 0x30] lsls r0, 16 cmp r0, 0 bne _080861B8 movs r0, 0x8 strh r0, [r7, 0x30] ldrh r0, [r7, 0x32] adds r0, 0x1 movs r1, 0x3 ands r0, r1 strh r0, [r7, 0x32] cmp r0, 0 bne _080861B8 ldrh r0, [r7, 0x34] adds r0, 0x1 strh r0, [r7, 0x34] _080861B8: ldrh r4, [r7, 0x32] adds r4, 0x3 movs r0, 0x3 mov r8, r0 mov r1, r8 ands r4, r1 ldr r3, _080862B0 mov r10, r3 mov r0, r10 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 movs r1, 0x84 lsls r1, 17 adds r0, r1 lsrs r0, 16 ldr r6, _080862B4 adds r1, r4, r6 ldrb r1, [r1] ldr r5, _080862B8 adds r2, r4, r5 ldrb r2, [r2] ldr r3, _080862BC mov r9, r3 add r4, r9 ldrb r3, [r4] bl sub_8085C7C ldrh r4, [r7, 0x32] adds r4, 0x2 mov r0, r8 ands r4, r0 mov r0, r10 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 movs r1, 0x83 lsls r1, 17 adds r0, r1 lsrs r0, 16 adds r1, r4, r6 ldrb r1, [r1] adds r2, r4, r5 ldrb r2, [r2] add r4, r9 ldrb r3, [r4] bl sub_8085C7C ldrh r4, [r7, 0x32] adds r4, 0x1 mov r3, r8 ands r4, r3 mov r0, r10 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 movs r1, 0x81 lsls r1, 17 adds r0, r1 lsrs r0, 16 adds r1, r4, r6 ldrb r1, [r1] adds r2, r4, r5 ldrb r2, [r2] add r4, r9 ldrb r3, [r4] bl sub_8085C7C ldrh r4, [r7, 0x32] lsls r4, 24 lsrs r4, 24 mov r0, r10 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 ldr r3, _080862C0 adds r0, r3 lsrs r0, 16 adds r6, r4, r6 ldrb r6, [r6] adds r5, r4, r5 ldrb r5, [r5] add r4, r9 ldrb r4, [r4] adds r1, r6, 0 adds r2, r5, 0 adds r3, r4, 0 bl sub_8085C7C mov r0, r10 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 ldr r1, _080862C4 adds r0, r1 lsrs r0, 16 adds r1, r6, 0 adds r2, r5, 0 adds r3, r4, 0 bl sub_8085C7C movs r3, 0x34 ldrsh r0, [r7, r3] cmp r0, 0x2 ble _080862A2 ldrh r0, [r7, 0x2E] adds r0, 0x1 movs r1, 0 strh r0, [r7, 0x2E] movs r0, 0x8 strh r0, [r7, 0x30] strh r1, [r7, 0x32] _080862A2: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080862B0: .4byte 0x00001007 _080862B4: .4byte gUnknown_0839F2C0 _080862B8: .4byte gUnknown_0839F2C4 _080862BC: .4byte gUnknown_0839F2C8 _080862C0: .4byte 0x01050000 _080862C4: .4byte 0x01030000 thumb_func_end sub_8086188 thumb_func_start sub_80862C8 sub_80862C8: @ 80862C8 push {r4-r6,lr} mov r6, r8 push {r6} adds r2, r0, 0 ldrh r0, [r2, 0x30] subs r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 cmp r0, 0 bne _080862F8 movs r0, 0x8 strh r0, [r2, 0x30] ldrh r0, [r2, 0x32] adds r0, 0x1 movs r1, 0x3 ands r0, r1 strh r0, [r2, 0x32] cmp r0, 0x3 bne _080862F8 ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] movs r0, 0x1E strh r0, [r2, 0x30] _080862F8: ldrh r4, [r2, 0x32] lsls r4, 24 lsrs r4, 24 ldr r0, _080863A4 mov r8, r0 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 movs r1, 0x84 lsls r1, 17 adds r0, r1 lsrs r0, 16 ldr r1, _080863A8 adds r1, r4, r1 ldrb r6, [r1] ldr r1, _080863AC adds r1, r4, r1 ldrb r5, [r1] ldr r1, _080863B0 adds r4, r1 ldrb r4, [r4] adds r1, r6, 0 adds r2, r5, 0 adds r3, r4, 0 bl sub_8085C7C mov r0, r8 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 movs r1, 0x83 lsls r1, 17 adds r0, r1 lsrs r0, 16 adds r1, r6, 0 adds r2, r5, 0 adds r3, r4, 0 bl sub_8085C7C mov r0, r8 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 movs r1, 0x81 lsls r1, 17 adds r0, r1 lsrs r0, 16 adds r1, r6, 0 adds r2, r5, 0 adds r3, r4, 0 bl sub_8085C7C mov r0, r8 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 ldr r1, _080863B4 adds r0, r1 lsrs r0, 16 adds r1, r6, 0 adds r2, r5, 0 adds r3, r4, 0 bl sub_8085C7C mov r0, r8 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 ldr r1, _080863B8 adds r0, r1 lsrs r0, 16 adds r1, r6, 0 adds r2, r5, 0 adds r3, r4, 0 bl sub_8085C7C pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080863A4: .4byte 0x00001007 _080863A8: .4byte gUnknown_0839F2C0 _080863AC: .4byte gUnknown_0839F2C4 _080863B0: .4byte gUnknown_0839F2C8 _080863B4: .4byte 0x01050000 _080863B8: .4byte 0x01030000 thumb_func_end sub_80862C8 thumb_func_start sub_80863BC sub_80863BC: @ 80863BC push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x30] subs r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 cmp r0, 0 bne _080863D2 ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] _080863D2: pop {r0} bx r0 thumb_func_end sub_80863BC thumb_func_start sub_80863D8 sub_80863D8: @ 80863D8 ldrh r1, [r0, 0x2E] adds r1, 0x1 strh r1, [r0, 0x2E] bx lr thumb_func_end sub_80863D8 thumb_func_start sub_80863E0 sub_80863E0: @ 80863E0 push {r4,lr} adds r4, r0, 0 movs r1, 0x38 ldrsh r0, [r4, r1] cmp r0, 0 beq _080863F6 bl task_is_not_running_overworld_fanfare lsls r0, 24 cmp r0, 0 beq _080863FC _080863F6: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] _080863FC: pop {r4} pop {r0} bx r0 thumb_func_end sub_80863E0 thumb_func_start nullsub_57 nullsub_57: @ 8086404 bx lr thumb_func_end nullsub_57 thumb_func_start sub_8086408 sub_8086408: @ 8086408 push {lr} adds r3, r0, 0 ldr r2, _0808642C movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2E ldrsh r0, [r0, r1] cmp r0, 0x4 ble _08086428 adds r0, r3, 0 bl FieldEffectFreeGraphicsResources _08086428: pop {r0} bx r0 .align 2, 0 _0808642C: .4byte 0x02020004 thumb_func_end sub_8086408 thumb_func_start sub_8086430 sub_8086430: @ 8086430 push {r4,lr} adds r3, r0, 0 adds r2, r1, 0 ldr r0, _08086480 lsls r3, 16 asrs r3, 16 lsls r2, 16 asrs r2, 16 adds r1, r3, 0 movs r3, 0 bl CreateSpriteAtEnd adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, _08086484 adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x8 orrs r1, r2 strb r1, [r0, 0x5] adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x4 orrs r1, r2 strb r1, [r3] ldr r1, _08086488 bl SetSubspriteTables adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08086480: .4byte gSpriteTemplate_839F220 _08086484: .4byte 0x02020004 _08086488: .4byte gUnknown_0839F1A0 thumb_func_end sub_8086430 thumb_func_start sub_808648C sub_808648C: @ 808648C push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _080864B0 movs r0, 0 strh r0, [r4, 0x2E] adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] subs r0, 0x5 ands r0, r1 strb r0, [r2] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim _080864B0: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080864C4 adds r0, r4, 0 bl FieldEffectFreeGraphicsResources _080864C4: pop {r4} pop {r0} bx r0 thumb_func_end sub_808648C thumb_func_start sub_80864CC sub_80864CC: @ 80864CC push {r4,r5,lr} lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 lsls r3, 24 cmp r3, 0 bne _08086514 ldr r0, _08086508 lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, _0808650C adds r0, r1 ldr r1, _08086510 bl SetSubspriteTables b _08086528 .align 2, 0 _08086508: .4byte gSpriteTemplate_839F238 _0808650C: .4byte 0x02020004 _08086510: .4byte gUnknown_0839F1C8 _08086514: ldr r0, _08086548 lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r4, r0, 24 _08086528: ldr r1, _0808654C lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x4 orrs r1, r2 strb r1, [r3] strh r5, [r0, 0x2E] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08086548: .4byte gSpriteTemplate_839F250 _0808654C: .4byte 0x02020004 thumb_func_end sub_80864CC thumb_func_start sub_8086550 sub_8086550: @ 8086550 push {lr} adds r3, r0, 0 ldr r2, _080865B8 movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0x26 ldrsh r0, [r0, r1] cmp r0, 0 beq _080865A6 ldrh r1, [r3, 0x30] movs r2, 0x30 ldrsh r0, [r3, r2] cmp r0, 0 beq _0808657E subs r0, r1, 0x1 strh r0, [r3, 0x30] lsls r0, 16 cmp r0, 0 bne _080865A0 _0808657E: movs r0, 0x10 strh r0, [r3, 0x30] movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] _080865A0: ldrh r0, [r3, 0x32] adds r0, 0x1 strh r0, [r3, 0x32] _080865A6: movs r2, 0x32 ldrsh r0, [r3, r2] cmp r0, 0x7F ble _080865B4 adds r0, r3, 0 bl FieldEffectFreeGraphicsResources _080865B4: pop {r0} bx r0 .align 2, 0 _080865B8: .4byte 0x03004b20 thumb_func_end sub_8086550 thumb_func_start sub_80865BC sub_80865BC: @ 80865BC push {lr} ldr r0, _080865D0 bl SetMainCallback2 ldr r1, _080865D4 ldr r0, _080865D8 str r0, [r1] pop {r0} bx r0 .align 2, 0 _080865D0: .4byte c2_exit_to_overworld_2_switch _080865D4: .4byte 0x0300485c _080865D8: .4byte mapldr_080842E8 thumb_func_end sub_80865BC thumb_func_start mapldr_080842E8 mapldr_080842E8: @ 80865DC push {lr} bl pal_fill_black ldr r0, _080865FC movs r1, 0 bl CreateTask bl script_env_2_enable bl player_bitmagic ldr r1, _08086600 movs r0, 0 str r0, [r1] pop {r0} bx r0 .align 2, 0 _080865FC: .4byte task00_8084310 _08086600: .4byte 0x0300485c thumb_func_end mapldr_080842E8 thumb_func_start task00_8084310 task00_8084310: @ 8086604 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _0808666C adds r4, r0, r1 movs r0, 0x8 ldrsh r5, [r4, r0] cmp r5, 0 bne _08086640 bl sub_807D770 lsls r0, 24 cmp r0, 0 beq _08086666 ldr r1, _08086670 ldr r0, _08086674 ldrb r0, [r0] str r0, [r1] cmp r0, 0x5 ble _08086634 str r5, [r1] _08086634: movs r0, 0x1F bl FieldEffectStart ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _08086640: movs r0, 0x1F bl FieldEffectActiveListContains lsls r0, 24 cmp r0, 0 bne _08086666 bl flag_var_implications_of_teleport_ bl warp_in ldr r0, _08086678 bl SetMainCallback2 ldr r1, _0808667C ldr r0, _08086680 str r0, [r1] adds r0, r6, 0 bl DestroyTask _08086666: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808666C: .4byte 0x03004b20 _08086670: .4byte 0x0202ff84 _08086674: .4byte 0x03005ce0 _08086678: .4byte c2_load_new_map _0808667C: .4byte 0x0300485c _08086680: .4byte mapldr_08084390 thumb_func_end task00_8084310 thumb_func_start mapldr_08084390 mapldr_08084390: @ 8086684 push {r4,lr} bl sub_8053E90 bl pal_fill_black ldr r0, _080866DC movs r1, 0 bl CreateTask ldr r4, _080866E0 ldr r3, _080866E4 ldrb r1, [r3, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x1] movs r2, 0x20 orrs r1, r2 strb r1, [r0, 0x1] ldrb r1, [r3] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080866C6 ldrb r1, [r3, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x3 bl FieldObjectTurn _080866C6: bl script_env_2_enable bl player_bitmagic ldr r1, _080866E8 movs r0, 0 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080866DC: .4byte c3_080843F8 _080866E0: .4byte 0x030048a0 _080866E4: .4byte 0x0202e858 _080866E8: .4byte 0x0300485c thumb_func_end mapldr_08084390 thumb_func_start c3_080843F8 c3_080843F8: @ 80866EC 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, _08086740 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bne _0808671E ldr r0, _08086744 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08086738 movs r0, 0x20 bl FieldEffectStart ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0808671E: movs r0, 0x20 bl FieldEffectActiveListContains lsls r0, 24 cmp r0, 0 bne _08086738 bl script_env_2_disable bl sub_806451C adds r0, r5, 0 bl DestroyTask _08086738: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08086740: .4byte 0x03004b20 _08086744: .4byte 0x0202f388 thumb_func_end c3_080843F8 thumb_func_start sub_8086748 sub_8086748: @ 8086748 push {lr} bl sub_8053E90 bl pal_fill_for_maplights bl script_env_2_enable bl player_bitmagic ldr r0, _0808676C movs r1, 0 bl CreateTask ldr r1, _08086770 movs r0, 0 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0808676C: .4byte sub_8086774 _08086770: .4byte 0x0300485c thumb_func_end sub_8086748 thumb_func_start sub_8086774 sub_8086774: @ 8086774 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080867A4 adds r4, r1, r0 ldr r5, _080867A8 _08086786: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _08086786 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080867A4: .4byte 0x03004b20 _080867A8: .4byte gUnknown_0839F2CC thumb_func_end sub_8086774 thumb_func_start sub_80867AC sub_80867AC: @ 80867AC push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} mov r9, r0 ldr r6, _08086848 ldrb r0, [r6, 0x5] lsls r5, r0, 3 adds r5, r0 lsls r5, 2 ldr r0, _0808684C mov r8, r0 add r5, r8 ldrb r0, [r6, 0x4] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _08086850 adds r4, r0 bl CameraObjectReset2 ldrb r1, [r6, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 add r0, r8 ldrb r1, [r0, 0x1] movs r2, 0x20 orrs r1, r2 strb r1, [r0, 0x1] movs r0, 0x1 strb r0, [r6, 0x6] bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 bl GetFaceDirectionAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl FieldObjectSetSpecialAnim adds r3, r4, 0 adds r3, 0x42 ldrb r0, [r3] lsrs r0, 6 mov r1, r9 strh r0, [r1, 0x10] ldrb r0, [r5, 0x3] movs r2, 0x4 orrs r0, r2 strb r0, [r5, 0x3] ldrb r1, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] ldrb r1, [r3] movs r0, 0x3F ands r0, r1 movs r1, 0x80 orrs r0, r1 strb r0, [r3] mov r1, r9 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] movs r0, 0x1 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08086848: .4byte 0x0202e858 _0808684C: .4byte 0x030048a0 _08086850: .4byte 0x02020004 thumb_func_end sub_80867AC thumb_func_start sub_8086854 sub_8086854: @ 8086854 push {r4,lr} adds r4, r0, 0 bl sub_807D770 lsls r0, 24 cmp r0, 0 beq _08086868 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _08086868: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8086854 thumb_func_start sub_8086870 sub_8086870: @ 8086870 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _080868D4 ldrb r0, [r6, 0x4] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _080868D8 adds r2, r0 adds r0, r2, 0 adds r0, 0x29 movs r4, 0 ldrsb r4, [r0, r4] lsls r0, r4, 17 negs r0, r0 ldrh r1, [r2, 0x22] ldr r3, _080868DC adds r1, r4 ldrh r3, [r3] adds r1, r3 asrs r0, 16 adds r0, r1 negs r0, r0 movs r1, 0 strh r0, [r2, 0x26] movs r0, 0x1 strh r0, [r5, 0xA] strh r1, [r5, 0xC] ldr r2, _080868E0 ldrb r0, [r6, 0x5] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r2, [r1, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] movs r0, 0x2B bl audio_play ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080868D4: .4byte 0x0202e858 _080868D8: .4byte 0x02020004 _080868DC: .4byte 0x030027e0 _080868E0: .4byte 0x030048a0 thumb_func_end sub_8086870 thumb_func_start sub_80868E4 sub_80868E4: @ 80868E4 push {r4-r6,lr} adds r4, r0, 0 ldr r2, _08086990 ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08086994 adds r6, r0, r1 ldrb r1, [r2, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08086998 adds r5, r0, r1 ldrh r0, [r4, 0xA] ldrh r1, [r5, 0x26] adds r0, r1 strh r0, [r5, 0x26] ldrh r2, [r4, 0xA] movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x7 bgt _08086926 ldrh r1, [r4, 0xC] adds r0, r2, r1 strh r0, [r4, 0xC] movs r1, 0xF ands r0, r1 cmp r0, 0 beq _08086926 lsls r0, r2, 1 strh r0, [r4, 0xA] _08086926: ldrh r2, [r4, 0xE] movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0 bne _08086964 movs r0, 0x26 ldrsh r1, [r5, r0] movs r0, 0x10 negs r0, r0 cmp r1, r0 blt _08086964 adds r0, r2, 0x1 strh r0, [r4, 0xE] ldrb r1, [r6, 0x3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r6, 0x3] ldrb r1, [r4, 0x10] adds r3, r5, 0 adds r3, 0x42 lsls r1, 6 ldrb r2, [r3] movs r0, 0x3F ands r0, r2 orrs r0, r1 strb r0, [r3] ldrb r0, [r6] movs r1, 0x4 orrs r0, r1 strb r0, [r6] _08086964: movs r1, 0x26 ldrsh r0, [r5, r1] cmp r0, 0 blt _08086988 movs r0, 0xD6 bl audio_play ldrb r0, [r6] movs r1, 0x8 orrs r0, r1 movs r1, 0x20 orrs r0, r1 strb r0, [r6] movs r0, 0 strh r0, [r5, 0x26] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _08086988: movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08086990: .4byte 0x0202e858 _08086994: .4byte 0x030048a0 _08086998: .4byte 0x02020004 thumb_func_end sub_80868E4 thumb_func_start sub_808699C sub_808699C: @ 808699C push {lr} ldrh r1, [r0, 0x8] adds r1, 0x1 movs r2, 0 strh r1, [r0, 0x8] movs r1, 0x4 strh r1, [r0, 0xA] strh r2, [r0, 0xC] movs r0, 0 bl SetCameraPanningCallback movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_808699C thumb_func_start sub_80869B8 sub_80869B8: @ 80869B8 push {r4,lr} adds r4, r0, 0 movs r0, 0xA ldrsh r1, [r4, r0] movs r0, 0 bl SetCameraPanning ldrh r0, [r4, 0xA] negs r2, r0 strh r2, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _080869E0 lsls r0, r2, 16 asrs r0, 17 strh r0, [r4, 0xA] _080869E0: movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 bne _080869EE ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080869EE: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80869B8 thumb_func_start sub_80869F8 sub_80869F8: @ 80869F8 push {lr} ldr r1, _08086A24 movs r0, 0 strb r0, [r1, 0x6] bl script_env_2_disable bl CameraObjectReset1 bl sub_806451C bl InstallCameraPanAheadCallback ldr r0, _08086A28 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 pop {r1} bx r1 .align 2, 0 _08086A24: .4byte 0x0202e858 _08086A28: .4byte sub_8086774 thumb_func_end sub_80869F8 thumb_func_start sub_8086A2C sub_8086A2C: @ 8086A2C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 24 lsrs r1, 24 ldr r0, _08086A60 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08086A64 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0xA] cmp r4, 0x6A bne _08086A58 movs r0, 0x1 strh r0, [r1, 0xA] _08086A58: pop {r4} pop {r0} bx r0 .align 2, 0 _08086A60: .4byte sub_8086A68 _08086A64: .4byte 0x03004b20 thumb_func_end sub_8086A2C thumb_func_start sub_8086A68 sub_8086A68: @ 8086A68 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08086A98 adds r4, r1, r0 ldr r5, _08086A9C _08086A7A: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _08086A7A pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08086A98: .4byte 0x03004b20 _08086A9C: .4byte gUnknown_0839F2E8 thumb_func_end sub_8086A68 thumb_func_start sub_8086AA0 sub_8086AA0: @ 8086AA0 push {r4,lr} adds r4, r0, 0 bl player_bitmagic bl CameraObjectReset2 ldrb r0, [r4, 0xA] bl sub_80B4824 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8086AA0 thumb_func_start sub_8086AC0 sub_8086AC0: @ 8086AC0 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _08086B28 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08086B2C adds r4, r0, r1 adds r0, r4, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 beq _08086AEA adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _08086B1E _08086AEA: bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 bl GetFaceDirectionAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim ldrh r0, [r5, 0x8] adds r0, 0x1 movs r1, 0 strh r0, [r5, 0x8] strh r1, [r5, 0xC] strh r1, [r5, 0xE] ldrb r0, [r5, 0xA] cmp r0, 0 bne _08086B18 movs r0, 0x4 strh r0, [r5, 0x8] _08086B18: movs r0, 0x50 bl audio_play _08086B1E: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08086B28: .4byte 0x0202e858 _08086B2C: .4byte 0x030048a0 thumb_func_end sub_8086AC0 thumb_func_start sub_8086B30 sub_8086B30: @ 8086B30 push {r4,lr} adds r4, r0, 0 bl sub_8086B98 movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0x3 ble _08086B4A bl sub_8086C30 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _08086B4A: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8086B30 thumb_func_start sub_8086B54 sub_8086B54: @ 8086B54 push {lr} bl sub_8086B98 bl sub_8086C40 movs r0, 0 pop {r1} bx r1 thumb_func_end sub_8086B54 thumb_func_start sub_8086B64 sub_8086B64: @ 8086B64 push {r4,lr} adds r4, r0, 0 bl sub_8086BE4 movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0x3 ble _08086B7E bl sub_8086C30 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _08086B7E: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8086B64 thumb_func_start sub_8086B88 sub_8086B88: @ 8086B88 push {lr} bl sub_8086BE4 bl sub_8086C40 movs r0, 0 pop {r1} bx r1 thumb_func_end sub_8086B88 thumb_func_start sub_8086B98 sub_8086B98: @ 8086B98 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _08086BDC ldrb r0, [r0, 0x4] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _08086BE0 adds r4, r0 movs r0, 0xC ldrsh r1, [r5, r0] movs r0, 0x84 bl cosine strh r0, [r4, 0x24] movs r0, 0xC ldrsh r1, [r5, r0] movs r0, 0x94 bl sine strh r0, [r4, 0x26] ldrh r0, [r5, 0xE] adds r0, 0x1 strh r0, [r5, 0xE] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08086BD6 ldrh r0, [r5, 0xC] adds r0, 0x1 strh r0, [r5, 0xC] _08086BD6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08086BDC: .4byte 0x0202e858 _08086BE0: .4byte 0x02020004 thumb_func_end sub_8086B98 thumb_func_start sub_8086BE4 sub_8086BE4: @ 8086BE4 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _08086C28 ldrb r0, [r0, 0x4] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _08086C2C adds r4, r0 movs r0, 0xC ldrsh r1, [r5, r0] movs r0, 0x7C bl cosine strh r0, [r4, 0x24] movs r0, 0xC ldrsh r1, [r5, r0] movs r0, 0x76 bl sine strh r0, [r4, 0x26] ldrh r0, [r5, 0xE] adds r0, 0x1 strh r0, [r5, 0xE] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08086C22 ldrh r0, [r5, 0xC] adds r0, 0x1 strh r0, [r5, 0xC] _08086C22: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08086C28: .4byte 0x0202e858 _08086C2C: .4byte 0x02020004 thumb_func_end sub_8086BE4 thumb_func_start sub_8086C30 sub_8086C30: @ 8086C30 push {lr} bl sub_8053FF8 bl sub_8080918 pop {r0} bx r0 thumb_func_end sub_8086C30 thumb_func_start sub_8086C40 sub_8086C40: @ 8086C40 push {lr} ldr r0, _08086C80 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08086C7C bl sub_8054034 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08086C7C bl sub_80B483C bl warp_in ldr r1, _08086C84 ldr r0, _08086C88 str r0, [r1] ldr r0, _08086C8C bl SetMainCallback2 ldr r0, _08086C90 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _08086C7C: pop {r0} bx r0 .align 2, 0 _08086C80: .4byte 0x0202f388 _08086C84: .4byte 0x0300485c _08086C88: .4byte sub_8086C94 _08086C8C: .4byte c2_load_new_map _08086C90: .4byte sub_8086A68 thumb_func_end sub_8086C40 thumb_func_start sub_8086C94 sub_8086C94: @ 8086C94 push {lr} bl sub_8053E90 bl pal_fill_for_maplights bl script_env_2_enable ldr r0, _08086CB4 movs r1, 0 bl CreateTask ldr r1, _08086CB8 movs r0, 0 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08086CB4: .4byte sub_8086CBC _08086CB8: .4byte 0x0300485c thumb_func_end sub_8086C94 thumb_func_start sub_8086CBC sub_8086CBC: @ 8086CBC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08086CEC adds r4, r1, r0 ldr r5, _08086CF0 _08086CCE: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _08086CCE pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08086CEC: .4byte 0x03004b20 _08086CF0: .4byte gUnknown_0839F300 thumb_func_end sub_8086CBC thumb_func_start sub_8086CF4 sub_8086CF4: @ 8086CF4 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 bl CameraObjectReset2 ldr r0, _08086D54 ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _08086D58 adds r4, r0 movs r0, 0x4 bl GetFaceDirectionAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r1, r0, 24 ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0x10 strh r0, [r5, 0xA] cmp r1, 0x6B bne _08086D5C movs r1, 0x1 movs r0, 0x3 strh r0, [r5, 0x8] b _08086D5E .align 2, 0 _08086D54: .4byte 0x0202e858 _08086D58: .4byte 0x030048a0 _08086D5C: movs r1, 0 _08086D5E: adds r0, r1, 0 bl sub_80B4824 movs r0, 0x1 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8086CF4 thumb_func_start sub_8086D70 sub_8086D70: @ 8086D70 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _08086DA8 ldrb r0, [r0, 0x4] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _08086DAC adds r4, r0 movs r0, 0xA ldrsh r1, [r5, r0] movs r0, 0x84 bl cosine strh r0, [r4, 0x24] movs r0, 0xA ldrsh r1, [r5, r0] movs r0, 0x94 bl sine strh r0, [r4, 0x26] ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08086DA8: .4byte 0x0202e858 _08086DAC: .4byte 0x02020004 thumb_func_end sub_8086D70 thumb_func_start sub_8086DB0 sub_8086DB0: @ 8086DB0 push {r4,r5,lr} adds r4, r0, 0 ldr r0, _08086E08 ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08086E0C adds r5, r0, r1 movs r0, 0xA ldrsh r1, [r4, r0] movs r0, 0x84 bl cosine strh r0, [r5, 0x24] movs r0, 0xA ldrsh r1, [r4, r0] movs r0, 0x94 bl sine strh r0, [r5, 0x26] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08086DEE ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] _08086DEE: movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 bne _08086DFE strh r0, [r5, 0x24] strh r0, [r5, 0x26] movs r0, 0x5 strh r0, [r4, 0x8] _08086DFE: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08086E08: .4byte 0x0202e858 _08086E0C: .4byte 0x02020004 thumb_func_end sub_8086DB0 thumb_func_start sub_8086E10 sub_8086E10: @ 8086E10 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _08086E48 ldrb r0, [r0, 0x4] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _08086E4C adds r4, r0 movs r0, 0xA ldrsh r1, [r5, r0] movs r0, 0x7C bl cosine strh r0, [r4, 0x24] movs r0, 0xA ldrsh r1, [r5, r0] movs r0, 0x76 bl sine strh r0, [r4, 0x26] ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08086E48: .4byte 0x0202e858 _08086E4C: .4byte 0x02020004 thumb_func_end sub_8086E10 thumb_func_start sub_8086E50 sub_8086E50: @ 8086E50 push {r4,r5,lr} adds r4, r0, 0 ldr r0, _08086EA8 ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08086EAC adds r5, r0, r1 movs r0, 0xA ldrsh r1, [r4, r0] movs r0, 0x7C bl cosine strh r0, [r5, 0x24] movs r0, 0xA ldrsh r1, [r4, r0] movs r0, 0x76 bl sine strh r0, [r5, 0x26] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08086E8E ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] _08086E8E: movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 bne _08086EA0 strh r0, [r5, 0x24] strh r0, [r5, 0x26] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _08086EA0: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08086EA8: .4byte 0x0202e858 _08086EAC: .4byte 0x02020004 thumb_func_end sub_8086E50 thumb_func_start sub_8086EB0 sub_8086EB0: @ 8086EB0 push {r4,lr} adds r4, r0, 0 bl sub_80B4850 lsls r0, 24 cmp r0, 0 bne _08086ECC bl sub_80B483C ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x1 b _08086ECE _08086ECC: movs r0, 0 _08086ECE: pop {r4} pop {r1} bx r1 thumb_func_end sub_8086EB0 thumb_func_start sub_8086ED4 sub_8086ED4: @ 8086ED4 push {r4,lr} ldr r0, _08086F20 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08086F24 adds r4, r0, r1 adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _08086F18 bl CameraObjectReset1 bl script_env_2_disable movs r0, 0x4 bl GetGoSpeed0AnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim ldr r0, _08086F28 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _08086F18: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08086F20: .4byte 0x0202e858 _08086F24: .4byte 0x030048a0 _08086F28: .4byte sub_8086CBC thumb_func_end sub_8086ED4 thumb_func_start sub_8086F2C sub_8086F2C: @ 8086F2C push {r4,lr} ldr r4, _08086F58 adds r0, r4, 0 movs r1, 0xFF bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08086F5C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _08086F60 ldr r2, [r2] strh r2, [r1, 0xA] bl _call_via_r4 movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08086F58: .4byte sub_8086F64 _08086F5C: .4byte 0x03004b20 _08086F60: .4byte 0x0202ff84 thumb_func_end sub_8086F2C thumb_func_start sub_8086F64 sub_8086F64: @ 8086F64 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _08086FA0 ldr r2, _08086FA4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _08086F76: movs r0, 0x8 ldrsh r2, [r4, r0] lsls r2, 2 adds r2, r5 ldr r0, _08086FA8 ldrb r0, [r0, 0x5] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _08086FAC adds r1, r0 ldr r2, [r2] adds r0, r4, 0 bl _call_via_r2 lsls r0, 24 cmp r0, 0 bne _08086F76 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08086FA0: .4byte gUnknown_0839F31C _08086FA4: .4byte 0x03004b20 _08086FA8: .4byte 0x0202e858 _08086FAC: .4byte 0x030048a0 thumb_func_end sub_8086F64 thumb_func_start sub_8086FB0 sub_8086FB0: @ 8086FB0 push {r4,lr} adds r4, r0, 0 bl script_env_2_enable ldr r1, _08086FCC movs r0, 0x1 strb r0, [r1, 0x6] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08086FCC: .4byte 0x0202e858 thumb_func_end sub_8086FB0 thumb_func_start waterfall_1_do_anim_probably waterfall_1_do_anim_probably: @ 8086FD0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl script_env_2_enable adds r0, r5, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 bne _08087000 adds r0, r5, 0 bl FieldObjectClearAnimIfSpecialAnimFinished ldr r1, _08087008 movs r2, 0xA ldrsh r0, [r4, r2] str r0, [r1] movs r0, 0x3B bl FieldEffectStart ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _08087000: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08087008: .4byte 0x0202ff84 thumb_func_end waterfall_1_do_anim_probably thumb_func_start waterfall_2_wait_anim_finish_probably waterfall_2_wait_anim_finish_probably: @ 808700C push {r4,lr} adds r4, r0, 0 movs r0, 0x6 bl FieldEffectActiveListContains lsls r0, 24 cmp r0, 0 bne _08087026 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x1 b _08087028 _08087026: movs r0, 0 _08087028: pop {r4} pop {r1} bx r1 thumb_func_end waterfall_2_wait_anim_finish_probably thumb_func_start sub_8087030 sub_8087030: @ 8087030 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r0, 0x2 bl GetSimpleGoAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8087030 thumb_func_start sub_8087058 sub_8087058: @ 8087058 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 bne _0808706E movs r0, 0 b _080870AA _0808706E: ldrb r0, [r4, 0x1E] bl MetatileBehavior_IsWaterfall lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080870A4 bl script_env_2_disable ldr r0, _0808709C strb r4, [r0, 0x6] ldr r0, _080870A0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask movs r0, 0x2B bl FieldEffectActiveListRemove movs r0, 0 b _080870AA .align 2, 0 _0808709C: .4byte 0x0202e858 _080870A0: .4byte sub_8086F64 _080870A4: movs r0, 0x3 strh r0, [r5, 0x8] movs r0, 0x1 _080870AA: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8087058 thumb_func_start sub_80870B0 sub_80870B0: @ 80870B0 push {r4,lr} ldr r4, _080870E0 adds r0, r4, 0 movs r1, 0xFF bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080870E4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r3, _080870E8 ldr r2, [r3] strh r2, [r1, 0x26] ldr r2, [r3, 0x4] strh r2, [r1, 0x24] bl _call_via_r4 movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080870E0: .4byte sub_80870EC _080870E4: .4byte 0x03004b20 _080870E8: .4byte 0x0202ff84 thumb_func_end sub_80870B0 thumb_func_start sub_80870EC sub_80870EC: @ 80870EC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0808711C ldr r2, _08087120 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _080870FE: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _080870FE pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808711C: .4byte gUnknown_0839F330 _08087120: .4byte 0x03004b20 thumb_func_end sub_80870EC thumb_func_start sub_8087124 sub_8087124: @ 8087124 ldr r2, _08087134 movs r1, 0x1 strb r1, [r2, 0x6] ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] movs r0, 0 bx lr .align 2, 0 _08087134: .4byte 0x0202e858 thumb_func_end sub_8087124 thumb_func_start dive_2_unknown dive_2_unknown: @ 8087138 push {r4,lr} adds r4, r0, 0 bl script_env_2_enable ldr r1, _0808715C movs r2, 0x26 ldrsh r0, [r4, r2] str r0, [r1] movs r0, 0x3B bl FieldEffectStart ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0808715C: .4byte 0x0202ff84 thumb_func_end dive_2_unknown thumb_func_start dive_3_unknown dive_3_unknown: @ 8087160 push {lr} sub sp, 0x8 mov r1, sp adds r1, 0x2 mov r0, sp bl PlayerGetDestCoords movs r0, 0x6 bl FieldEffectActiveListContains lsls r0, 24 cmp r0, 0 bne _080871A4 ldr r2, _080871AC ldr r0, _080871B0 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1E] mov r0, sp bl dive_warp ldr r0, _080871B4 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask movs r0, 0x2C bl FieldEffectActiveListRemove _080871A4: movs r0, 0 add sp, 0x8 pop {r1} bx r1 .align 2, 0 _080871AC: .4byte 0x030048a0 _080871B0: .4byte 0x0202e858 _080871B4: .4byte sub_80870EC thumb_func_end dive_3_unknown thumb_func_start sub_80871B8 sub_80871B8: @ 80871B8 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r0, _080871CC bl CreateTask pop {r0} bx r0 .align 2, 0 _080871CC: .4byte sub_80871D0 thumb_func_end sub_80871B8 thumb_func_start sub_80871D0 sub_80871D0: @ 80871D0 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r6, _08087218 ldr r2, _0808721C ldr r5, _08087220 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _080871E4: movs r0, 0x8 ldrsh r3, [r4, r0] lsls r3, 2 adds r3, r6 ldrb r0, [r5, 0x5] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _08087224 adds r1, r0 ldrb r0, [r5, 0x4] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _08087228 adds r2, r0 ldr r3, [r3] adds r0, r4, 0 bl _call_via_r3 lsls r0, 24 cmp r0, 0 bne _080871E4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08087218: .4byte gUnknown_0839F33C _0808721C: .4byte 0x03004b20 _08087220: .4byte 0x0202e858 _08087224: .4byte 0x030048a0 _08087228: .4byte 0x02020004 thumb_func_end sub_80871D0 thumb_func_start sub_808722C sub_808722C: @ 808722C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl player_bitmagic bl CameraObjectReset2 movs r0, 0 bl SetCameraPanningCallback ldr r0, _08087260 movs r2, 0x1 strb r2, [r0, 0x6] ldrb r0, [r5, 0x3] movs r1, 0x4 orrs r0, r1 strb r0, [r5, 0x3] strh r2, [r4, 0xA] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08087260: .4byte 0x0202e858 thumb_func_end sub_808722C thumb_func_start sub_8087264 sub_8087264: @ 8087264 push {r4,lr} adds r4, r0, 0 movs r0, 0xA ldrsh r1, [r4, r0] movs r0, 0 bl SetCameraPanning ldrh r0, [r4, 0xA] negs r0, r0 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _08087290 movs r0, 0 strh r0, [r4, 0xC] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _08087290: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8087264 thumb_func_start sub_8087298 sub_8087298: @ 8087298 push {r4,r5,lr} adds r4, r0, 0 movs r0, 0 strh r0, [r2, 0x26] movs r0, 0x1 strh r0, [r4, 0xE] ldr r3, _080872E0 movs r5, 0x10 ldrsh r0, [r1, r5] str r0, [r3] movs r5, 0x12 ldrsh r0, [r1, r5] str r0, [r3, 0x4] adds r0, r2, 0 adds r0, 0x43 ldrb r0, [r0] subs r0, 0x1 str r0, [r3, 0x8] ldrb r0, [r2, 0x5] lsls r0, 28 lsrs r0, 30 str r0, [r3, 0xC] movs r0, 0x32 bl FieldEffectStart movs r0, 0xB2 bl audio_play ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080872E0: .4byte 0x0202ff84 thumb_func_end sub_8087298 thumb_func_start sub_80872E4 sub_80872E4: @ 80872E4 push {r4-r7,lr} adds r4, r0, 0 adds r6, r1, 0 adds r5, r2, 0 movs r0, 0xA ldrsh r1, [r4, r0] movs r0, 0 bl SetCameraPanning ldrh r0, [r4, 0xA] negs r2, r0 strh r2, [r4, 0xA] ldrh r0, [r4, 0xC] adds r1, r0, 0x1 strh r1, [r4, 0xC] lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x11 bgt _0808731E movs r0, 0x1 ands r1, r0 cmp r1, 0 bne _08087330 lsls r0, r2, 16 asrs r0, 16 cmp r0, 0x3 bgt _08087330 lsls r0, r2, 1 b _0808732E _0808731E: movs r0, 0x4 ands r1, r0 cmp r1, 0 bne _08087330 lsls r0, r2, 16 cmp r0, 0 ble _08087330 asrs r0, 17 _0808732E: strh r0, [r4, 0xA] _08087330: movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0x6 ble _0808737C adds r0, r5, 0 adds r0, 0x29 movs r1, 0 ldrsb r1, [r0, r1] lsls r2, r1, 17 negs r2, r2 movs r7, 0x26 ldrsh r3, [r5, r7] movs r7, 0x22 ldrsh r0, [r5, r7] adds r0, r1 ldr r1, _08087374 movs r7, 0 ldrsh r1, [r1, r7] adds r0, r1 asrs r2, 16 adds r0, r2 cmn r3, r0 ble _08087378 ldrh r0, [r5, 0x26] ldrh r1, [r4, 0xE] subs r0, r1 strh r0, [r5, 0x26] lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x7 bgt _0808737C adds r0, r1, 0x1 strh r0, [r4, 0xE] b _0808737C .align 2, 0 _08087374: .4byte 0x030027e0 _08087378: movs r0, 0x1 strh r0, [r4, 0x10] _0808737C: ldrh r2, [r4, 0x12] movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 bne _080873BA movs r7, 0x26 ldrsh r1, [r5, r7] movs r0, 0x10 negs r0, r0 cmp r1, r0 bge _080873BA adds r0, r2, 0x1 strh r0, [r4, 0x12] ldrb r0, [r6, 0x3] movs r2, 0x4 orrs r0, r2 strb r0, [r6, 0x3] ldrb r1, [r5, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 orrs r0, r2 strb r0, [r5, 0x5] adds r2, r5, 0 adds r2, 0x42 ldrb r1, [r2] movs r0, 0x3F ands r0, r1 movs r1, 0x80 orrs r0, r1 strb r0, [r2] _080873BA: movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 bne _080873D0 movs r7, 0x10 ldrsh r0, [r4, r7] cmp r0, 0 beq _080873D0 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080873D0: movs r0, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80872E4 thumb_func_start sub_80873D8 sub_80873D8: @ 80873D8 push {r4,lr} adds r4, r0, 0 bl sub_8053FF8 bl sub_8080918 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80873D8 thumb_func_start sub_80873F4 sub_80873F4: @ 80873F4 push {lr} ldr r0, _08087434 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808742C bl sub_8054034 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0808742C bl warp_in ldr r1, _08087438 ldr r0, _0808743C str r0, [r1] ldr r0, _08087440 bl SetMainCallback2 ldr r0, _08087444 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0808742C: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08087434: .4byte 0x0202f388 _08087438: .4byte 0x0300485c _0808743C: .4byte mapldr_080851BC _08087440: .4byte c2_load_new_map _08087444: .4byte sub_80871D0 thumb_func_end sub_80873F4 thumb_func_start mapldr_080851BC mapldr_080851BC: @ 8087448 push {lr} bl sub_8053E90 bl pal_fill_for_maplights bl script_env_2_enable ldr r0, _08087468 movs r1, 0 str r1, [r0] ldr r0, _0808746C bl CreateTask pop {r0} bx r0 .align 2, 0 _08087468: .4byte 0x0300485c _0808746C: .4byte sub_8087470 thumb_func_end mapldr_080851BC thumb_func_start sub_8087470 sub_8087470: @ 8087470 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r6, _080874B8 ldr r2, _080874BC ldr r5, _080874C0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _08087484: movs r0, 0x8 ldrsh r3, [r4, r0] lsls r3, 2 adds r3, r6 ldrb r0, [r5, 0x5] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _080874C4 adds r1, r0 ldrb r0, [r5, 0x4] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _080874C8 adds r2, r0 ldr r3, [r3] adds r0, r4, 0 bl _call_via_r3 lsls r0, 24 cmp r0, 0 bne _08087484 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080874B8: .4byte gUnknown_0839F354 _080874BC: .4byte 0x03004b20 _080874C0: .4byte 0x0202e858 _080874C4: .4byte 0x030048a0 _080874C8: .4byte 0x02020004 thumb_func_end sub_8087470 thumb_func_start sub_80874CC sub_80874CC: @ 80874CC push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl CameraObjectReset2 bl player_bitmagic ldr r1, _080874F8 movs r0, 0x1 strb r0, [r1, 0x6] ldrb r0, [r4, 0x1] movs r1, 0x20 orrs r0, r1 strb r0, [r4, 0x1] ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080874F8: .4byte 0x0202e858 thumb_func_end sub_80874CC thumb_func_start sub_80874FC sub_80874FC: @ 80874FC push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 bl sub_807D770 lsls r0, 24 cmp r0, 0 beq _0808753C ldr r1, _08087544 movs r2, 0x10 ldrsh r0, [r5, r2] str r0, [r1] movs r2, 0x12 ldrsh r0, [r5, r2] str r0, [r1, 0x4] adds r0, r6, 0 adds r0, 0x43 ldrb r0, [r0] subs r0, 0x1 str r0, [r1, 0x8] ldrb r0, [r6, 0x5] lsls r0, 28 lsrs r0, 30 str r0, [r1, 0xC] movs r0, 0x31 bl FieldEffectStart strh r0, [r4, 0xA] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0808753C: movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08087544: .4byte 0x0202ff84 thumb_func_end sub_80874FC thumb_func_start sub_8087548 sub_8087548: @ 8087548 push {r4,lr} adds r2, r0, 0 adds r4, r1, 0 movs r0, 0xA ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08087598 adds r0, r1 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0x1 bls _08087590 ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] ldrb r1, [r4, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r4, 0x1] bl CameraObjectReset1 movs r0, 0xAF bl audio_play movs r0, 0x4 bl sub_80608A4 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim _08087590: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08087598: .4byte 0x02020004 thumb_func_end sub_8087548 thumb_func_start sub_808759C sub_808759C: @ 808759C push {lr} adds r0, r1, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _080875C6 ldr r1, _080875CC movs r0, 0 strb r0, [r1, 0x6] bl script_env_2_disable bl sub_806451C ldr r0, _080875D0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _080875C6: movs r0, 0 pop {r1} bx r1 .align 2, 0 _080875CC: .4byte 0x0202e858 _080875D0: .4byte sub_8087470 thumb_func_end sub_808759C thumb_func_start sub_80875D4 sub_80875D4: @ 80875D4 push {r4,lr} ldr r4, _0808762C adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08087630 adds r0, 0x84 ldr r0, [r0] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 ldr r1, _08087634 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 movs r1, 0x3 ldrb r3, [r4, 0xC] ands r3, r1 lsls r3, 2 ldrb r4, [r2, 0x5] movs r1, 0xD negs r1, r1 ands r1, r4 orrs r1, r3 strb r1, [r2, 0x5] adds r2, 0x3E ldrb r1, [r2] movs r3, 0x2 orrs r1, r3 strb r1, [r2] pop {r4} pop {r1} bx r1 .align 2, 0 _0808762C: .4byte 0x0202ff84 _08087630: .4byte gFieldEffectObjectTemplatePointers _08087634: .4byte 0x02020004 thumb_func_end sub_80875D4 thumb_func_start sub_8087638 sub_8087638: @ 8087638 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08087650 adds r0, r2, 0 movs r1, 0x32 bl FieldEffectStop _08087650: pop {r0} bx r0 thumb_func_end sub_8087638 thumb_func_start sub_8087654 sub_8087654: @ 8087654 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r0, _08087668 bl CreateTask pop {r0} bx r0 .align 2, 0 _08087668: .4byte sub_808766C thumb_func_end sub_8087654 thumb_func_start sub_808766C sub_808766C: @ 808766C push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r6, _080876B4 ldr r2, _080876B8 ldr r5, _080876BC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _08087680: movs r0, 0x8 ldrsh r3, [r4, r0] lsls r3, 2 adds r3, r6 ldrb r0, [r5, 0x5] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _080876C0 adds r1, r0 ldrb r0, [r5, 0x4] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _080876C4 adds r2, r0 ldr r3, [r3] adds r0, r4, 0 bl _call_via_r3 lsls r0, 24 cmp r0, 0 bne _08087680 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080876B4: .4byte gUnknown_0839F364 _080876B8: .4byte 0x03004b20 _080876BC: .4byte 0x0202e858 _080876C0: .4byte 0x030048a0 _080876C4: .4byte 0x02020004 thumb_func_end sub_808766C thumb_func_start sub_80876C8 sub_80876C8: @ 80876C8 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl player_bitmagic bl CameraObjectReset2 ldr r1, _080876F4 movs r0, 0x1 strb r0, [r1, 0x6] ldrb r0, [r4, 0x3] movs r1, 0x4 orrs r0, r1 strb r0, [r4, 0x3] ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080876F4: .4byte 0x0202e858 thumb_func_end sub_80876C8 thumb_func_start sub_80876F8 sub_80876F8: @ 80876F8 push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 adds r6, r2, 0 adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _0808776C ldrh r1, [r5, 0xA] movs r2, 0xA ldrsh r0, [r5, r2] cmp r0, 0x3 ble _0808774C ldr r1, _08087748 movs r2, 0x10 ldrsh r0, [r4, r2] str r0, [r1] movs r2, 0x12 ldrsh r0, [r4, r2] str r0, [r1, 0x4] adds r0, r6, 0 adds r0, 0x43 ldrb r0, [r0] subs r0, 0x1 str r0, [r1, 0x8] ldrb r0, [r6, 0x5] lsls r0, 28 lsrs r0, 30 str r0, [r1, 0xC] movs r0, 0x31 bl FieldEffectStart strh r0, [r5, 0xA] ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _0808776C .align 2, 0 _08087748: .4byte 0x0202ff84 _0808774C: adds r0, r1, 0x1 strh r0, [r5, 0xA] ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetStepInPlaceDelay4AnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim movs r0, 0x27 bl audio_play _0808776C: movs r0, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80876F8 thumb_func_start sub_8087774 sub_8087774: @ 8087774 push {r4,lr} adds r3, r0, 0 adds r4, r1, 0 ldr r2, _080877A8 movs r0, 0xA ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0x2 bne _0808779E ldrb r0, [r4, 0x1] movs r1, 0x20 orrs r0, r1 strb r0, [r4, 0x1] ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] _0808779E: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080877A8: .4byte 0x02020004 thumb_func_end sub_8087774 thumb_func_start sub_80877AC sub_80877AC: @ 80877AC push {r4,lr} adds r4, r0, 0 movs r0, 0x31 bl FieldEffectActiveListContains lsls r0, 24 cmp r0, 0 bne _080877CA bl sub_8053FF8 bl sub_8080918 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080877CA: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80877AC thumb_func_start sub_80877D4 sub_80877D4: @ 80877D4 push {lr} ldr r0, _08087814 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808780C bl sub_8054034 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0808780C bl warp_in ldr r1, _08087818 ldr r0, _0808781C str r0, [r1] ldr r0, _08087820 bl SetMainCallback2 ldr r0, _08087824 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0808780C: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08087814: .4byte 0x0202f388 _08087818: .4byte 0x0300485c _0808781C: .4byte sub_8086748 _08087820: .4byte c2_load_new_map _08087824: .4byte sub_808766C thumb_func_end sub_80877D4 thumb_func_start sub_8087828 sub_8087828: @ 8087828 push {r4,lr} ldr r4, _08087880 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08087884 adds r0, 0x80 ldr r0, [r0] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 ldr r1, _08087888 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 movs r1, 0x3 ldrb r3, [r4, 0xC] ands r3, r1 lsls r3, 2 ldrb r4, [r2, 0x5] movs r1, 0xD negs r1, r1 ands r1, r4 orrs r1, r3 strb r1, [r2, 0x5] adds r2, 0x3E ldrb r1, [r2] movs r3, 0x2 orrs r1, r3 strb r1, [r2] pop {r4} pop {r1} bx r1 .align 2, 0 _08087880: .4byte 0x0202ff84 _08087884: .4byte gFieldEffectObjectTemplatePointers _08087888: .4byte 0x02020004 thumb_func_end sub_8087828 thumb_func_start sub_808788C sub_808788C: @ 808788C push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080878A4 adds r0, r2, 0 movs r1, 0x31 bl FieldEffectStop _080878A4: pop {r0} bx r0 thumb_func_end sub_808788C thumb_func_start sub_80878A8 sub_80878A8: @ 80878A8 push {lr} bl script_env_2_enable bl player_bitmagic ldr r0, _080878C0 movs r1, 0x50 bl CreateTask pop {r0} bx r0 .align 2, 0 _080878C0: .4byte sub_80878C4 thumb_func_end sub_80878A8 thumb_func_start sub_80878C4 sub_80878C4: @ 80878C4 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _080878EC ldr r2, _080878F0 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _080878EC: .4byte gUnknown_0839F378 _080878F0: .4byte 0x03004b20 thumb_func_end sub_80878C4 thumb_func_start sub_80878F4 sub_80878F4: @ 80878F4 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x40 strh r0, [r4, 0x24] bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] pop {r4} pop {r0} bx r0 thumb_func_end sub_80878F4 thumb_func_start sub_8087914 sub_8087914: @ 8087914 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 ldr r1, _080879B8 mov r0, sp movs r2, 0x5 bl memcpy ldrh r1, [r4, 0x24] movs r2, 0x24 ldrsh r0, [r4, r2] cmp r0, 0 beq _08087940 subs r0, r1, 0x1 strh r0, [r4, 0x24] lsls r0, 16 cmp r0, 0 bne _08087940 bl sub_8053FF8 bl sub_8080918 _08087940: ldr r0, _080879BC ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080879C0 adds r5, r0, r1 adds r0, r5, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 beq _08087966 adds r0, r5, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _08087A20 _08087966: movs r1, 0x24 ldrsh r0, [r4, r1] cmp r0, 0 bne _080879D8 ldr r0, _080879C4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080879D8 bl sub_8054034 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080879D8 ldrh r1, [r4, 0x26] lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl FieldObjectSetDirection bl sub_8053678 bl warp_in ldr r1, _080879C8 ldr r0, _080879CC str r0, [r1] ldr r0, _080879D0 bl SetMainCallback2 ldr r0, _080879D4 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask b _08087A20 .align 2, 0 _080879B8: .4byte gUnknown_0839F380 _080879BC: .4byte 0x0202e858 _080879C0: .4byte 0x030048a0 _080879C4: .4byte 0x0202f388 _080879C8: .4byte 0x0300485c _080879CC: .4byte mapldr_080859D4 _080879D0: .4byte c2_load_new_map _080879D4: .4byte sub_80878C4 _080879D8: ldrh r1, [r4, 0xA] movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0 beq _080879EC subs r0, r1, 0x1 strh r0, [r4, 0xA] lsls r0, 16 cmp r0, 0 bne _08087A20 _080879EC: ldrb r0, [r5, 0x18] lsls r0, 28 lsrs r0, 28 add r0, sp ldrb r0, [r0] bl GetFaceDirectionAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl FieldObjectSetSpecialAnim ldrh r1, [r4, 0xC] movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0xB bgt _08087A14 adds r0, r1, 0x1 strh r0, [r4, 0xC] _08087A14: ldrh r1, [r4, 0xC] lsls r1, 16 asrs r1, 18 movs r0, 0x8 asrs r0, r1 strh r0, [r4, 0xA] _08087A20: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8087914 thumb_func_start mapldr_080859D4 mapldr_080859D4: @ 8087A28 push {lr} bl sub_8053E90 bl pal_fill_for_maplights bl script_env_2_enable bl player_bitmagic ldr r1, _08087A64 movs r0, 0 str r0, [r1] ldr r2, _08087A68 ldr r0, _08087A6C ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1] movs r2, 0x20 orrs r1, r2 strb r1, [r0, 0x1] ldr r0, _08087A70 movs r1, 0 bl CreateTask pop {r0} bx r0 .align 2, 0 _08087A64: .4byte 0x0300485c _08087A68: .4byte 0x030048a0 _08087A6C: .4byte 0x0202e858 _08087A70: .4byte sub_8087A74 thumb_func_end mapldr_080859D4 thumb_func_start sub_8087A74 sub_8087A74: @ 8087A74 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _08087A9C ldr r2, _08087AA0 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _08087A9C: .4byte gUnknown_0839F388 _08087AA0: .4byte 0x03004b20 thumb_func_end sub_8087A74 thumb_func_start sub_8087AA4 sub_8087AA4: @ 8087AA4 push {r4,lr} adds r4, r0, 0 bl sub_807D770 lsls r0, 24 cmp r0, 0 beq _08087AC2 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] _08087AC2: pop {r4} pop {r0} bx r0 thumb_func_end sub_8087AA4 thumb_func_start sub_8087AC8 sub_8087AC8: @ 8087AC8 push {r4-r6,lr} sub sp, 0x8 adds r5, r0, 0 ldr r1, _08087B4C mov r0, sp movs r2, 0x5 bl memcpy ldr r0, _08087B50 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08087B54 adds r6, r0, r1 ldrh r1, [r5, 0xA] movs r2, 0xA ldrsh r0, [r5, r2] cmp r0, 0 beq _08087AFA subs r0, r1, 0x1 strh r0, [r5, 0xA] lsls r0, 16 cmp r0, 0 bne _08087B8C _08087AFA: adds r0, r6, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 beq _08087B12 adds r0, r6, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _08087BA0 _08087B12: movs r1, 0xC ldrsh r0, [r5, r1] cmp r0, 0x1F ble _08087B5C movs r2, 0x26 ldrsh r4, [r5, r2] bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 cmp r4, r0 bne _08087B5C ldrb r1, [r6, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r6, 0x1] bl script_env_2_disable bl sub_806451C ldr r0, _08087B58 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask b _08087BA0 .align 2, 0 _08087B4C: .4byte gUnknown_0839F380 _08087B50: .4byte 0x0202e858 _08087B54: .4byte 0x030048a0 _08087B58: .4byte sub_8087A74 _08087B5C: ldrb r0, [r6, 0x18] lsls r0, 28 lsrs r0, 28 add r0, sp ldrb r0, [r0] bl GetFaceDirectionAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl FieldObjectSetSpecialAnim ldrh r1, [r5, 0xC] movs r2, 0xC ldrsh r0, [r5, r2] cmp r0, 0x1F bgt _08087B84 adds r0, r1, 0x1 strh r0, [r5, 0xC] _08087B84: ldrh r0, [r5, 0xC] lsls r0, 16 asrs r0, 18 strh r0, [r5, 0xA] _08087B8C: ldrb r2, [r6, 0x1] lsls r1, r2, 26 lsrs r1, 31 movs r0, 0x1 eors r1, r0 lsls r1, 5 subs r0, 0x22 ands r0, r2 orrs r0, r1 strb r0, [r6, 0x1] _08087BA0: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8087AC8 thumb_func_start sub_8087BA8 sub_8087BA8: @ 8087BA8 push {lr} ldr r0, _08087BB8 movs r1, 0 bl CreateTask pop {r0} bx r0 .align 2, 0 _08087BB8: .4byte sub_8087BBC thumb_func_end sub_8087BA8 thumb_func_start sub_8087BBC sub_8087BBC: @ 8087BBC push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _08087BE4 ldr r2, _08087BE8 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _08087BE4: .4byte gUnknown_0839F390 _08087BE8: .4byte 0x03004b20 thumb_func_end sub_8087BBC thumb_func_start sub_8087BEC sub_8087BEC: @ 8087BEC push {r4,lr} adds r4, r0, 0 bl script_env_2_enable bl player_bitmagic bl CameraObjectReset2 bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] pop {r4} pop {r0} bx r0 thumb_func_end sub_8087BEC thumb_func_start sub_8087C14 sub_8087C14: @ 8087C14 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 ldr r1, _08087C98 mov r0, sp movs r2, 0x5 bl memcpy ldr r0, _08087C9C ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08087CA0 adds r5, r0, r1 ldrh r1, [r4, 0xA] movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0 beq _08087C46 subs r0, r1, 0x1 strh r0, [r4, 0xA] lsls r0, 16 cmp r0, 0 bne _08087C60 _08087C46: ldrb r0, [r5, 0x18] lsls r0, 28 lsrs r0, 28 add r0, sp ldrb r1, [r0] adds r0, r5, 0 bl FieldObjectTurn movs r0, 0x8 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] _08087C60: movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0x7 ble _08087C8E movs r2, 0x26 ldrsh r1, [r4, r2] ldrb r0, [r5, 0x18] lsls r0, 28 lsrs r0, 28 cmp r1, r0 bne _08087C8E ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x4 strh r0, [r4, 0xA] movs r0, 0x8 strh r0, [r4, 0xC] movs r0, 0x1 strh r0, [r4, 0xE] movs r0, 0x2D bl audio_play _08087C8E: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08087C98: .4byte gUnknown_0839F380 _08087C9C: .4byte 0x0202e858 _08087CA0: .4byte 0x030048a0 thumb_func_end sub_8087C14 thumb_func_start sub_8087CA4 sub_8087CA4: @ 8087CA4 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 ldr r1, _08087D68 mov r0, sp movs r2, 0x5 bl memcpy ldr r2, _08087D6C ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08087D70 adds r3, r0, r1 ldrb r1, [r2, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08087D74 adds r5, r0, r1 ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 cmp r0, 0 bgt _08087CEE movs r0, 0x4 strh r0, [r4, 0xA] ldrb r0, [r3, 0x18] lsls r0, 28 lsrs r0, 28 add r0, sp ldrb r1, [r0] adds r0, r3, 0 bl FieldObjectTurn _08087CEE: ldrh r0, [r5, 0x22] ldrh r1, [r4, 0xE] subs r0, r1 strh r0, [r5, 0x22] ldrh r1, [r4, 0xE] ldrh r2, [r4, 0x10] adds r0, r1, r2 strh r0, [r4, 0x10] ldrh r0, [r4, 0xC] subs r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 cmp r0, 0 bgt _08087D1A movs r0, 0x4 strh r0, [r4, 0xC] lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x7 bgt _08087D1A lsls r0, r1, 1 strh r0, [r4, 0xE] _08087D1A: movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0x8 ble _08087D48 ldrb r1, [r5, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r5, 0x5] adds r2, r5, 0 adds r2, 0x42 ldrb r1, [r2] movs r0, 0xC0 ands r0, r1 cmp r0, 0 beq _08087D48 movs r0, 0x3F ands r0, r1 movs r1, 0x80 orrs r0, r1 strb r0, [r2] _08087D48: movs r2, 0x10 ldrsh r0, [r4, r2] cmp r0, 0xA7 ble _08087D5E ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] bl sub_8053FF8 bl sub_8080918 _08087D5E: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08087D68: .4byte gUnknown_0839F380 _08087D6C: .4byte 0x0202e858 _08087D70: .4byte 0x030048a0 _08087D74: .4byte 0x02020004 thumb_func_end sub_8087CA4 thumb_func_start sub_8087D78 sub_8087D78: @ 8087D78 push {lr} ldr r0, _08087DB8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08087DB4 bl sub_8054034 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08087DB4 bl sub_8053570 bl warp_in ldr r0, _08087DBC bl SetMainCallback2 ldr r1, _08087DC0 ldr r0, _08087DC4 str r0, [r1] ldr r0, _08087DC8 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _08087DB4: pop {r0} bx r0 .align 2, 0 _08087DB8: .4byte 0x0202f388 _08087DBC: .4byte c2_load_new_map _08087DC0: .4byte 0x0300485c _08087DC4: .4byte mapldr_08085D88 _08087DC8: .4byte sub_8087BBC thumb_func_end sub_8087D78 thumb_func_start mapldr_08085D88 mapldr_08085D88: @ 8087DCC push {lr} bl sub_8053E90 bl pal_fill_for_maplights bl script_env_2_enable bl player_bitmagic ldr r1, _08087E0C movs r0, 0 str r0, [r1] ldr r2, _08087E10 ldr r0, _08087E14 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1] movs r2, 0x20 orrs r1, r2 strb r1, [r0, 0x1] bl CameraObjectReset2 ldr r0, _08087E18 movs r1, 0 bl CreateTask pop {r0} bx r0 .align 2, 0 _08087E0C: .4byte 0x0300485c _08087E10: .4byte 0x030048a0 _08087E14: .4byte 0x0202e858 _08087E18: .4byte sub_8087E1C thumb_func_end mapldr_08085D88 thumb_func_start sub_8087E1C sub_8087E1C: @ 8087E1C push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _08087E44 ldr r2, _08087E48 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _08087E44: .4byte gUnknown_0839F3A0 _08087E48: .4byte 0x03004b20 thumb_func_end sub_8087E1C thumb_func_start sub_8087E4C sub_8087E4C: @ 8087E4C push {r4-r6,lr} adds r6, r0, 0 bl sub_807D770 lsls r0, 24 cmp r0, 0 beq _08087EC2 ldr r5, _08087EC8 ldrb r0, [r5, 0x4] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _08087ECC adds r2, r0 adds r0, r2, 0 adds r0, 0x29 movs r4, 0 ldrsb r4, [r0, r4] lsls r0, r4, 17 negs r0, r0 ldrh r1, [r2, 0x22] ldr r3, _08087ED0 adds r1, r4 ldrh r3, [r3] adds r1, r3 asrs r0, 16 adds r0, r1 negs r0, r0 strh r0, [r2, 0x26] ldr r3, _08087ED4 ldrb r0, [r5, 0x5] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r3, [r1, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r3 strb r0, [r1, 0x1] ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] movs r0, 0x8 strh r0, [r6, 0xA] movs r0, 0x1 strh r0, [r6, 0xC] adds r2, 0x42 ldrb r0, [r2] lsrs r0, 6 strh r0, [r6, 0x24] bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x26] movs r0, 0x2D bl audio_play _08087EC2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08087EC8: .4byte 0x0202e858 _08087ECC: .4byte 0x02020004 _08087ED0: .4byte 0x030027e0 _08087ED4: .4byte 0x030048a0 thumb_func_end sub_8087E4C thumb_func_start sub_8087ED8 sub_8087ED8: @ 8087ED8 push {r4-r7,lr} sub sp, 0x8 adds r4, r0, 0 ldr r1, _08087F40 mov r0, sp movs r2, 0x5 bl memcpy ldr r2, _08087F44 ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08087F48 adds r6, r0, r1 ldrb r1, [r2, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08087F4C adds r5, r0, r1 ldrh r0, [r4, 0xA] ldrh r1, [r5, 0x26] adds r0, r1 strh r0, [r5, 0x26] lsls r0, 16 asrs r0, 16 movs r1, 0x8 negs r1, r1 cmp r0, r1 blt _08087F50 ldrh r1, [r4, 0x22] movs r2, 0x22 ldrsh r0, [r4, r2] cmp r0, 0 bne _08087F76 adds r0, r1, 0x1 strh r0, [r4, 0x22] ldrb r0, [r6] movs r1, 0x4 orrs r0, r1 strb r0, [r6] ldrh r1, [r4, 0x24] adds r3, r5, 0 adds r3, 0x42 lsls r1, 6 ldrb r2, [r3] movs r0, 0x3F ands r0, r2 orrs r0, r1 strb r0, [r3] b _08087F76 .align 2, 0 _08087F40: .4byte gUnknown_0839F380 _08087F44: .4byte 0x0202e858 _08087F48: .4byte 0x030048a0 _08087F4C: .4byte 0x02020004 _08087F50: ldrb r1, [r5, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r5, 0x5] adds r2, r5, 0 adds r2, 0x42 ldrb r1, [r2] movs r0, 0xC0 ands r0, r1 cmp r0, 0 beq _08087F76 movs r0, 0x3F ands r0, r1 movs r1, 0x80 orrs r0, r1 strb r0, [r2] _08087F76: ldrh r2, [r5, 0x26] movs r3, 0x26 ldrsh r1, [r5, r3] movs r0, 0x30 negs r0, r0 cmp r1, r0 blt _08087F9A ldrh r1, [r4, 0xA] movs r3, 0xA ldrsh r0, [r4, r3] cmp r0, 0x1 ble _08087F9A movs r0, 0x1 ands r0, r2 cmp r0, 0 bne _08087F9A subs r0, r1, 0x1 strh r0, [r4, 0xA] _08087F9A: ldrh r0, [r4, 0xC] subs r0, 0x1 movs r7, 0 strh r0, [r4, 0xC] lsls r0, 16 cmp r0, 0 bne _08087FBC movs r0, 0x4 strh r0, [r4, 0xC] ldrb r0, [r6, 0x18] lsls r0, 28 lsrs r0, 28 add r0, sp ldrb r1, [r0] adds r0, r6, 0 bl FieldObjectTurn _08087FBC: movs r1, 0x26 ldrsh r0, [r5, r1] cmp r0, 0 blt _08087FD2 strh r7, [r5, 0x26] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x1 strh r0, [r4, 0xA] strh r7, [r4, 0xC] _08087FD2: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8087ED8 thumb_func_start sub_8087FDC sub_8087FDC: @ 8087FDC push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 ldr r1, _08088058 mov r0, sp movs r2, 0x5 bl memcpy ldr r0, _0808805C ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08088060 adds r5, r0, r1 ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 cmp r0, 0 bne _08088050 ldrb r0, [r5, 0x18] lsls r0, 28 lsrs r0, 28 add r0, sp ldrb r1, [r0] adds r0, r5, 0 bl FieldObjectTurn movs r0, 0x8 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _08088050 movs r0, 0x24 ldrsh r1, [r4, r0] ldrb r0, [r5, 0x18] lsls r0, 28 lsrs r0, 28 cmp r1, r0 bne _08088050 bl script_env_2_disable bl CameraObjectReset1 bl sub_806451C ldr r0, _08088064 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _08088050: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08088058: .4byte gUnknown_0839F380 _0808805C: .4byte 0x0202e858 _08088060: .4byte 0x030048a0 _08088064: .4byte sub_8087E1C thumb_func_end sub_8087FDC thumb_func_start sub_8088068 sub_8088068: @ 8088068 push {r4,lr} bl sav1_map_get_light_level 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 bne _08088088 ldr r0, _08088084 b _0808808A .align 2, 0 _08088084: .4byte sub_8088120 _08088088: ldr r0, _080880B8 _0808808A: movs r1, 0xFF bl CreateTask lsls r0, 24 lsrs r4, r0, 24 ldr r2, _080880BC ldr r0, [r2] ldr r1, [r2, 0x4] ldr r2, [r2, 0x8] bl sub_8088830 ldr r2, _080880C0 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r2 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x26] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080880B8: .4byte sub_808847C _080880BC: .4byte 0x0202ff84 _080880C0: .4byte 0x03004b20 thumb_func_end sub_8088068 thumb_func_start sub_80880C4 sub_80880C4: @ 80880C4 push {r4-r6,lr} ldr r5, _08088118 ldr r0, [r5] movs r6, 0x80 lsls r6, 24 ands r6, r0 lsls r0, 24 lsrs r0, 24 movs r1, 0x64 adds r4, r0, 0 muls r4, r1 ldr r0, _0808811C adds r4, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField str r0, [r5] adds r0, r4, 0 movs r1, 0x1 bl PokemonGetField str r0, [r5, 0x4] adds r0, r4, 0 movs r1, 0 bl PokemonGetField str r0, [r5, 0x8] ldr r0, [r5] orrs r0, r6 str r0, [r5] movs r0, 0x6 bl FieldEffectStart movs r0, 0x3B bl FieldEffectActiveListRemove movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08088118: .4byte 0x0202ff84 _0808811C: .4byte 0x03004360 thumb_func_end sub_80880C4 thumb_func_start sub_8088120 sub_8088120: @ 8088120 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _08088148 ldr r2, _0808814C lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _08088148: .4byte gUnknown_0839F3AC _0808814C: .4byte 0x03004b20 thumb_func_end sub_8088120 thumb_func_start sub_8088150 sub_8088150: @ 8088150 push {r4-r6,lr} adds r4, r0, 0 ldr r6, _080881A0 ldrh r0, [r6] strh r0, [r4, 0x1E] ldr r5, _080881A4 ldrh r0, [r5] strh r0, [r4, 0x20] adds r0, r4, 0 adds r0, 0x22 ldr r1, _080881A8 ldr r1, [r1, 0xC] bl StoreWordInTwoHalfwords ldr r1, _080881AC strh r1, [r4, 0xA] ldr r0, _080881B0 strh r0, [r4, 0xC] movs r0, 0x3F strh r0, [r4, 0xE] movs r0, 0x3E strh r0, [r4, 0x10] ldr r0, _080881B4 strh r1, [r0] ldr r1, _080881B8 ldrh r0, [r4, 0xC] strh r0, [r1] ldrh r0, [r4, 0xE] strh r0, [r6] ldrh r0, [r4, 0x10] strh r0, [r5] ldr r0, _080881BC bl SetVBlankCallback ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080881A0: .4byte REG_WININ _080881A4: .4byte REG_WINOUT _080881A8: .4byte 0x03001770 _080881AC: .4byte 0x0000f0f1 _080881B0: .4byte 0x00005051 _080881B4: .4byte REG_WIN0H _080881B8: .4byte REG_WIN0V _080881BC: .4byte sub_80883DC thumb_func_end sub_8088150 thumb_func_start sub_80881C0 sub_80881C0: @ 80881C0 push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 ldr r0, _08088218 ldrh r1, [r0] lsrs r1, 2 lsls r1, 30 lsrs r1, 16 ldrh r4, [r0] lsrs r4, 8 lsls r4, 27 lsrs r4, 16 ldr r0, _0808821C movs r5, 0xC0 lsls r5, 19 adds r1, r5 movs r2, 0x80 lsls r2, 1 bl CpuSet movs r0, 0 str r0, [sp] adds r5, r4, r5 ldr r2, _08088220 mov r0, sp adds r1, r5, 0 bl CpuSet ldr r0, _08088224 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette adds r0, r4, 0 bl sub_808843C ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08088218: .4byte REG_BG0CNT _0808821C: .4byte gUnknown_0839E914 _08088220: .4byte 0x05000200 _08088224: .4byte gUnknown_0839EB14 thumb_func_end sub_80881C0 thumb_func_start sub_8088228 sub_8088228: @ 8088228 push {r4-r7,lr} adds r3, r0, 0 ldrh r0, [r3, 0x12] subs r0, 0x10 strh r0, [r3, 0x12] ldrh r6, [r3, 0xA] ldrh r2, [r3, 0xC] movs r7, 0xFF lsrs r1, r6, 8 subs r1, 0x10 lsls r1, 16 lsrs r0, r2, 8 subs r0, 0x2 lsls r0, 16 lsrs r4, r0, 16 adds r0, r7, 0 ands r0, r2 adds r5, r0, 0x2 lsrs r2, r1, 16 cmp r1, 0 bge _08088254 movs r2, 0 _08088254: lsls r0, r4, 16 asrs r0, 16 cmp r0, 0x27 bgt _0808825E movs r4, 0x28 _0808825E: cmp r5, 0x78 ble _08088264 movs r5, 0x78 _08088264: lsls r2, 16 asrs r2, 16 lsls r1, r2, 8 adds r0, r7, 0 ands r0, r6 orrs r1, r0 strh r1, [r3, 0xA] lsls r0, r4, 16 asrs r4, r0, 16 lsls r0, r4, 8 adds r1, r5, 0 orrs r0, r1 strh r0, [r3, 0xC] cmp r2, 0 bne _080882A4 cmp r4, 0x28 bne _080882A4 cmp r1, 0x78 bne _080882A4 ldr r2, _080882AC movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _080882B0 str r1, [r0] ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] _080882A4: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080882AC: .4byte 0x02020004 _080882B0: .4byte sub_8088890 thumb_func_end sub_8088228 thumb_func_start sub_80882B4 sub_80882B4: @ 80882B4 push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x12] subs r0, 0x10 strh r0, [r3, 0x12] ldr r2, _080882E0 movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x3C ldrsh r0, [r0, r1] cmp r0, 0 beq _080882DA ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] _080882DA: pop {r0} bx r0 .align 2, 0 _080882E0: .4byte 0x02020004 thumb_func_end sub_80882B4 thumb_func_start sub_80882E4 sub_80882E4: @ 80882E4 push {r4,lr} adds r3, r0, 0 ldrh r0, [r3, 0x12] subs r0, 0x10 strh r0, [r3, 0x12] ldrh r2, [r3, 0xC] lsls r1, r2, 16 movs r0, 0xFF asrs r1, 24 adds r1, 0x6 lsls r1, 16 ands r0, r2 subs r0, 0x6 lsls r0, 16 lsrs r2, r0, 16 lsrs r4, r1, 16 asrs r1, 16 cmp r1, 0x50 ble _0808830C movs r4, 0x50 _0808830C: lsls r0, r2, 16 asrs r0, 16 cmp r0, 0x50 bgt _08088316 movs r2, 0x51 _08088316: lsls r0, r4, 16 asrs r0, 16 lsls r1, r0, 8 lsls r2, 16 asrs r2, 16 orrs r1, r2 strh r1, [r3, 0xC] cmp r0, 0x50 bne _08088332 cmp r2, 0x51 bne _08088332 ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] _08088332: pop {r4} pop {r0} bx r0 thumb_func_end sub_80882E4 thumb_func_start sub_8088338 sub_8088338: @ 8088338 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 ldr r0, _08088378 ldrh r1, [r0] lsrs r1, 8 lsls r1, 27 lsrs r1, 16 movs r0, 0 str r0, [sp] movs r0, 0xC0 lsls r0, 19 adds r1, r0 ldr r2, _0808837C mov r0, sp bl CpuSet movs r0, 0xF1 strh r0, [r4, 0xA] movs r0, 0xA1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x1E] strh r0, [r4, 0xE] ldrh r0, [r4, 0x20] strh r0, [r4, 0x10] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08088378: .4byte REG_BG0CNT _0808837C: .4byte 0x05000200 thumb_func_end sub_8088338 thumb_func_start sub_8088380 sub_8088380: @ 8088380 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 adds r0, 0x22 mov r1, sp bl LoadWordFromTwoHalfwords ldr r0, [sp] bl SetVBlankCallback ldr r4, _080883D0 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C movs r0, 0x26 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080883D4 adds r0, r1 bl sub_8085C44 movs r0, 0x6 bl FieldEffectActiveListRemove ldr r0, _080883D8 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080883D0: .4byte gWindowConfig_81E6CE4 _080883D4: .4byte 0x02020004 _080883D8: .4byte sub_8088120 thumb_func_end sub_8088380 thumb_func_start sub_80883DC sub_80883DC: @ 80883DC push {r4,lr} sub sp, 0x4 ldr r0, _08088430 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _08088434 adds r4, r0 adds r0, r4, 0 adds r0, 0x22 mov r1, sp bl LoadWordFromTwoHalfwords ldr r0, [sp] bl _call_via_r0 ldr r1, _08088438 ldrh r0, [r4, 0xA] strh r0, [r1] adds r1, 0x4 ldrh r0, [r4, 0xC] strh r0, [r1] adds r1, 0x4 ldrh r0, [r4, 0xE] strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0x10] strh r0, [r1] subs r1, 0x3A ldrh r0, [r4, 0x12] strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0x14] strh r0, [r1] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08088430: .4byte sub_8088120 _08088434: .4byte 0x03004b20 _08088438: .4byte REG_WIN0H thumb_func_end sub_80883DC thumb_func_start sub_808843C sub_808843C: @ 808843C push {r4,r5,lr} lsls r0, 16 lsrs r0, 16 ldr r1, _08088470 adds r2, r0, r1 movs r1, 0 ldr r5, _08088474 movs r0, 0xF0 lsls r0, 8 adds r4, r0, 0 ldr r3, _08088478 _08088452: lsls r0, r1, 1 adds r0, r5 ldrh r0, [r0] orrs r0, r4 strh r0, [r2] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 adds r2, 0x2 cmp r1, r3 bls _08088452 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08088470: .4byte 0x06000140 _08088474: .4byte gUnknown_0839EB34 _08088478: .4byte 0x0000013f thumb_func_end sub_808843C thumb_func_start sub_808847C sub_808847C: @ 808847C push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _080884A4 ldr r2, _080884A8 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _080884A4: .4byte gUnknown_0839F3C8 _080884A8: .4byte 0x03004b20 thumb_func_end sub_808847C thumb_func_start sub_80884AC sub_80884AC: @ 80884AC push {r4,lr} adds r4, r0, 0 ldr r1, _080884DC ldrh r0, [r4, 0xA] strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0xC] strh r0, [r1] adds r0, r4, 0 adds r0, 0x22 ldr r1, _080884E0 ldr r1, [r1, 0xC] bl StoreWordInTwoHalfwords ldr r0, _080884E4 bl SetVBlankCallback ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _080884DC: .4byte REG_BG0HOFS _080884E0: .4byte 0x03001770 _080884E4: .4byte sub_80886B0 thumb_func_end sub_80884AC thumb_func_start sub_80884E8 sub_80884E8: @ 80884E8 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 adds r6, r0, 0 ldr r0, _08088544 ldrh r1, [r0] lsrs r1, 2 lsls r1, 30 lsrs r1, 16 ldrh r4, [r0] lsrs r4, 8 lsls r4, 27 lsrs r4, 16 movs r0, 0 mov r8, r0 strh r4, [r6, 0x20] ldr r0, _08088548 movs r5, 0xC0 lsls r5, 19 adds r1, r5 movs r2, 0x40 bl CpuSet mov r0, r8 str r0, [sp] adds r4, r5 ldr r2, _0808854C mov r0, sp adds r1, r4, 0 bl CpuSet ldr r0, _08088550 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08088544: .4byte REG_BG0CNT _08088548: .4byte gUnknown_0839EDB4 _0808854C: .4byte 0x05000200 _08088550: .4byte gUnknown_0839EE34 thumb_func_end sub_80884E8 thumb_func_start sub_8088554 sub_8088554: @ 8088554 push {r4,lr} adds r4, r0, 0 bl sub_8088708 lsls r0, 24 cmp r0, 0 beq _0808858A ldr r1, _08088598 movs r0, 0xF0 strh r0, [r1] adds r1, 0x4 ldr r2, _0808859C adds r0, r2, 0 strh r0, [r1] ldr r2, _080885A0 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _080885A4 str r1, [r0] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0808858A: adds r0, r4, 0 bl sub_80886F8 pop {r4} pop {r0} bx r0 .align 2, 0 _08088598: .4byte REG_WIN1H _0808859C: .4byte 0x00002878 _080885A0: .4byte 0x02020004 _080885A4: .4byte sub_8088890 thumb_func_end sub_8088554 thumb_func_start sub_80885A8 sub_80885A8: @ 80885A8 push {r4,lr} adds r4, r0, 0 bl sub_80886F8 ldr r2, _080885D4 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x3C ldrsh r0, [r0, r1] cmp r0, 0 beq _080885CC ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080885CC: pop {r4} pop {r0} bx r0 .align 2, 0 _080885D4: .4byte 0x02020004 thumb_func_end sub_80885A8 thumb_func_start sub_80885D8 sub_80885D8: @ 80885D8 push {r4,lr} adds r4, r0, 0 bl sub_80886F8 ldrh r1, [r4, 0xA] movs r0, 0x7 ands r0, r1 movs r1, 0 strh r0, [r4, 0xE] strh r1, [r4, 0x10] ldr r0, _08088604 ldr r2, _08088608 adds r1, r2, 0 strh r1, [r0] adds r0, 0x4 strh r1, [r0] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _08088604: .4byte REG_WIN1H _08088608: .4byte 0x0000ffff thumb_func_end sub_80885D8 thumb_func_start sub_808860C sub_808860C: @ 808860C push {r4,lr} adds r4, r0, 0 bl sub_80886F8 adds r0, r4, 0 bl sub_80887C0 lsls r0, 24 cmp r0, 0 beq _08088626 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _08088626: pop {r4} pop {r0} bx r0 thumb_func_end sub_808860C thumb_func_start sub_808862C sub_808862C: @ 808862C push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 ldr r0, _0808869C ldrh r1, [r0] lsrs r1, 8 lsls r1, 27 lsrs r1, 16 movs r0, 0 str r0, [sp] movs r0, 0xC0 lsls r0, 19 adds r1, r0 ldr r2, _080886A0 mov r0, sp bl CpuSet adds r0, r5, 0 adds r0, 0x22 add r1, sp, 0x4 bl LoadWordFromTwoHalfwords ldr r0, [sp, 0x4] bl SetVBlankCallback ldr r4, _080886A4 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C movs r0, 0x26 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080886A8 adds r0, r1 bl sub_8085C44 movs r0, 0x6 bl FieldEffectActiveListRemove ldr r0, _080886AC bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808869C: .4byte REG_BG0CNT _080886A0: .4byte 0x05000200 _080886A4: .4byte gWindowConfig_81E6CE4 _080886A8: .4byte 0x02020004 _080886AC: .4byte sub_808847C thumb_func_end sub_808862C thumb_func_start sub_80886B0 sub_80886B0: @ 80886B0 push {r4,lr} sub sp, 0x4 ldr r0, _080886EC bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080886F0 adds r4, r0 adds r0, r4, 0 adds r0, 0x22 mov r1, sp bl LoadWordFromTwoHalfwords ldr r0, [sp] bl _call_via_r0 ldr r1, _080886F4 ldrh r0, [r4, 0xA] strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0xC] strh r0, [r1] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080886EC: .4byte sub_808847C _080886F0: .4byte 0x03004b20 _080886F4: .4byte REG_BG0HOFS thumb_func_end sub_80886B0 thumb_func_start sub_80886F8 sub_80886F8: @ 80886F8 ldrh r1, [r0, 0xA] subs r1, 0x10 strh r1, [r0, 0xA] ldrh r1, [r0, 0xE] adds r1, 0x10 strh r1, [r0, 0xE] bx lr thumb_func_end sub_80886F8 thumb_func_start sub_8088708 sub_8088708: @ 8088708 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r5, r0, 0 ldrh r2, [r5, 0x10] movs r1, 0x10 ldrsh r0, [r5, r1] cmp r0, 0x1F ble _08088724 movs r0, 0x1 b _080887A8 _08088724: ldrh r0, [r5, 0xE] lsls r0, 16 asrs r3, r0, 19 movs r1, 0x1F ands r3, r1 movs r4, 0x10 ldrsh r0, [r5, r4] cmp r3, r0 blt _080887A6 movs r0, 0x20 subs r3, r0, r3 ands r3, r1 subs r0, r2 mov r12, r0 mov r7, r12 ands r7, r1 mov r12, r7 ldrh r0, [r5, 0x20] ldr r1, _080887B8 adds r1, r0 mov r8, r1 movs r4, 0 ldr r7, _080887BC mov r10, r7 movs r0, 0xF0 lsls r0, 8 mov r9, r0 adds r1, r3, 0x1 movs r0, 0x1F ands r1, r0 str r1, [sp] mov r6, r12 adds r6, 0x1 ands r6, r0 _08088768: lsls r1, r4, 5 adds r2, r1, r3 lsls r2, 1 add r2, r8 mov r7, r12 adds r0, r7, r1 lsls r0, 1 add r0, r10 ldrh r0, [r0] mov r7, r9 orrs r0, r7 strh r0, [r2] ldr r0, [sp] adds r2, r1, r0 lsls r2, 1 add r2, r8 adds r1, r6, r1 lsls r1, 1 add r1, r10 ldrh r0, [r1] mov r1, r9 orrs r0, r1 strh r0, [r2] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x9 bls _08088768 ldrh r0, [r5, 0x10] adds r0, 0x2 strh r0, [r5, 0x10] _080887A6: movs r0, 0 _080887A8: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080887B8: .4byte 0x06000140 _080887BC: .4byte gUnknown_0839EE54 thumb_func_end sub_8088708 thumb_func_start sub_80887C0 sub_80887C0: @ 80887C0 push {r4-r7,lr} adds r5, r0, 0 movs r1, 0x10 ldrsh r0, [r5, r1] cmp r0, 0x1F ble _080887D0 movs r0, 0x1 b _08088824 _080887D0: ldrh r0, [r5, 0xE] lsls r0, 16 asrs r0, 19 lsls r0, 16 lsrs r2, r0, 16 movs r1, 0x10 ldrsh r0, [r5, r1] cmp r2, r0 blt _08088822 ldrh r0, [r5, 0xA] lsls r0, 16 asrs r2, r0, 19 movs r0, 0x1F ands r2, r0 ldrh r0, [r5, 0x20] ldr r1, _0808882C adds r6, r0, r1 movs r3, 0 movs r0, 0xF0 lsls r0, 8 adds r7, r0, 0 adds r4, r2, 0x1 movs r0, 0x1F ands r4, r0 _08088800: lsls r0, r3, 5 adds r1, r0, r2 lsls r1, 1 adds r1, r6 strh r7, [r1] adds r0, r4 lsls r0, 1 adds r0, r6 strh r7, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x9 bls _08088800 ldrh r0, [r5, 0x10] adds r0, 0x2 strh r0, [r5, 0x10] _08088822: movs r0, 0 _08088824: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0808882C: .4byte 0x06000140 thumb_func_end sub_80887C0 thumb_func_start sub_8088830 sub_8088830: @ 8088830 push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 movs r5, 0x80 lsls r5, 24 ands r5, r6 lsrs r5, 16 lsls r5, 16 lsrs r5, 16 ldr r0, _08088884 ands r6, r0 lsls r0, r6, 16 lsrs r0, 16 movs r3, 0xA0 lsls r3, 1 movs r4, 0x50 str r4, [sp] movs r4, 0 str r4, [sp, 0x4] bl sub_8085B88 lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r1, _08088888 adds r2, r1 ldr r1, _0808888C str r1, [r2, 0x1C] ldrb r3, [r2, 0x5] movs r1, 0xD negs r1, r1 ands r1, r3 strb r1, [r2, 0x5] strh r6, [r2, 0x2E] strh r5, [r2, 0x3A] add sp, 0x8 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08088884: .4byte 0x7fffffff _08088888: .4byte 0x02020004 _0808888C: .4byte SpriteCallbackDummy thumb_func_end sub_8088830 thumb_func_start sub_8088890 sub_8088890: @ 8088890 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x20] subs r0, 0x14 strh r0, [r1, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0x78 bgt _080888D0 movs r0, 0x78 strh r0, [r1, 0x20] movs r0, 0x1E strh r0, [r1, 0x30] ldr r0, _080888C4 str r0, [r1, 0x1C] movs r2, 0x3A ldrsh r0, [r1, r2] cmp r0, 0 beq _080888C8 ldrh r0, [r1, 0x2E] movs r1, 0 movs r2, 0x7D movs r3, 0xA bl sub_8075090 b _080888D0 .align 2, 0 _080888C4: .4byte sub_80888D4 _080888C8: ldrh r0, [r1, 0x2E] movs r1, 0 bl cry_related _080888D0: pop {r0} bx r0 thumb_func_end sub_8088890 thumb_func_start sub_80888D4 sub_80888D4: @ 80888D4 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x30] subs r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 cmp r0, 0 bne _080888E8 ldr r0, _080888EC str r0, [r1, 0x1C] _080888E8: pop {r0} bx r0 .align 2, 0 _080888EC: .4byte sub_80888F0 thumb_func_end sub_80888D4 thumb_func_start sub_80888F0 sub_80888F0: @ 80888F0 push {lr} adds r2, r0, 0 ldrh r3, [r2, 0x20] movs r0, 0x20 ldrsh r1, [r2, r0] movs r0, 0x40 negs r0, r0 cmp r1, r0 bge _08088908 movs r0, 0x1 strh r0, [r2, 0x3C] b _0808890E _08088908: adds r0, r3, 0 subs r0, 0x14 strh r0, [r2, 0x20] _0808890E: pop {r0} bx r0 thumb_func_end sub_80888F0 thumb_func_start sub_8088914 sub_8088914: @ 8088914 push {lr} ldr r0, _08088944 movs r1, 0xFF bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08088948 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _0808894C ldr r0, [r0] strh r0, [r1, 0x26] bl sav1_reset_battle_music_maybe ldr r0, _08088950 bl sub_8053FB0 movs r0, 0 pop {r1} bx r1 .align 2, 0 _08088944: .4byte sub_8088954 _08088948: .4byte 0x03004b20 _0808894C: .4byte 0x0202ff84 _08088950: .4byte 0x0000016d thumb_func_end sub_8088914 thumb_func_start sub_8088954 sub_8088954: @ 8088954 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _0808897C ldr r2, _08088980 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _0808897C: .4byte gUnknown_0839F3E4 _08088980: .4byte 0x03004b20 thumb_func_end sub_8088954 thumb_func_start sub_8088984 sub_8088984: @ 8088984 push {r4-r6,lr} mov r6, r8 push {r6} adds r4, r0, 0 bl script_env_2_enable bl player_bitmagic ldr r5, _080889DC movs r0, 0x1 strb r0, [r5, 0x6] movs r0, 0x8 bl SetPlayerAvatarStateMask adds r6, r4, 0 adds r6, 0xA movs r0, 0xC adds r0, r4 mov r8, r0 adds r0, r6, 0 mov r1, r8 bl PlayerGetDestCoords ldr r2, _080889E0 ldrb r1, [r5, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x18] lsrs r0, 4 adds r1, r6, 0 mov r2, r8 bl MoveCoords ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080889DC: .4byte 0x0202e858 _080889E0: .4byte 0x030048a0 thumb_func_end sub_8088984 thumb_func_start sub_80889E4 sub_80889E4: @ 80889E4 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _08088A28 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08088A2C adds r4, r0, r1 adds r0, r4, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 beq _08088A0E adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _08088A20 _08088A0E: bl sub_8059BF4 adds r0, r4, 0 movs r1, 0x39 bl FieldObjectSetSpecialAnim ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] _08088A20: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08088A28: .4byte 0x0202e858 _08088A2C: .4byte 0x030048a0 thumb_func_end sub_80889E4 thumb_func_start sub_8088A30 sub_8088A30: @ 8088A30 push {r4,lr} adds r4, r0, 0 ldr r0, _08088A6C ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08088A70 adds r0, r1 bl FieldObjectCheckIfSpecialAnimFinishedOrInactive lsls r0, 24 cmp r0, 0 beq _08088A66 ldr r2, _08088A74 movs r1, 0x26 ldrsh r0, [r4, r1] movs r1, 0x80 lsls r1, 24 orrs r0, r1 str r0, [r2] movs r0, 0x3B bl FieldEffectStart ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _08088A66: pop {r4} pop {r0} bx r0 .align 2, 0 _08088A6C: .4byte 0x0202e858 _08088A70: .4byte 0x030048a0 _08088A74: .4byte 0x0202ff84 thumb_func_end sub_8088A30 thumb_func_start sub_8088A78 sub_8088A78: @ 8088A78 push {r4-r6,lr} adds r6, r0, 0 movs r0, 0x6 bl FieldEffectActiveListContains lsls r0, 24 cmp r0, 0 bne _08088AE2 ldr r5, _08088AE8 ldrb r0, [r5, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _08088AEC adds r4, r0 movs r0, 0x3 bl GetPlayerAvatarGraphicsIdByStateId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805B980 adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished ldrb r0, [r4, 0x18] lsrs r0, 4 bl sub_80608D0 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim ldr r1, _08088AF0 movs r2, 0xA ldrsh r0, [r6, r2] str r0, [r1] movs r2, 0xC ldrsh r0, [r6, r2] str r0, [r1, 0x4] ldrb r0, [r5, 0x5] str r0, [r1, 0x8] movs r0, 0x8 bl FieldEffectStart strb r0, [r4, 0x1A] ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] _08088AE2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08088AE8: .4byte 0x0202e858 _08088AEC: .4byte 0x030048a0 _08088AF0: .4byte 0x0202ff84 thumb_func_end sub_8088A78 thumb_func_start sub_8088AF4 sub_8088AF4: @ 8088AF4 push {r4,r5,lr} ldr r5, _08088B5C ldrb r1, [r5, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08088B60 adds r4, r0, r1 adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _08088B54 movs r0, 0 strb r0, [r5, 0x6] ldrb r1, [r5] movs r0, 0xDF ands r0, r1 strb r0, [r5] ldrb r0, [r4, 0x18] lsrs r0, 4 bl GetFaceDirectionAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim ldrb r0, [r4, 0x1A] movs r1, 0x1 bl sub_8127ED0 bl sub_806451C bl script_env_2_disable movs r0, 0x9 bl FieldEffectActiveListRemove ldr r0, _08088B64 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _08088B54: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08088B5C: .4byte 0x0202e858 _08088B60: .4byte 0x030048a0 _08088B64: .4byte sub_8088954 thumb_func_end sub_8088AF4 thumb_func_start sub_8088B68 sub_8088B68: @ 8088B68 push {r4,lr} ldr r0, _08088BB4 ldr r0, [r0, 0x68] movs r1, 0x78 movs r2, 0 movs r3, 0x1 bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r2, r4, 4 adds r2, r4 lsls r2, 2 ldr r0, _08088BB8 adds r2, r0 ldrb r1, [r2, 0x5] movs r0, 0xF ands r0, r1 movs r1, 0xD negs r1, r1 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r2, 0x5] ldr r0, _08088BBC str r0, [r2, 0x1C] ldr r0, _08088BC0 ldr r0, [r0] strh r0, [r2, 0x30] movs r0, 0x9E bl audio_play adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08088BB4: .4byte gFieldEffectObjectTemplatePointers _08088BB8: .4byte 0x02020004 _08088BBC: .4byte sub_8088BC4 _08088BC0: .4byte 0x0202ff84 thumb_func_end sub_8088B68 thumb_func_start sub_8088BC4 sub_8088BC4: @ 8088BC4 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x32 ldrsh r0, [r4, r1] movs r1, 0x8C bl cosine movs r5, 0 strh r0, [r4, 0x24] movs r2, 0x32 ldrsh r0, [r4, r2] movs r1, 0x48 bl sine strh r0, [r4, 0x26] ldrh r0, [r4, 0x32] adds r0, 0x4 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x32] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _08088C26 movs r2, 0x30 ldrsh r0, [r4, r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08088C3C adds r1, r0 adds r3, r1, 0 adds r3, 0x3E ldrb r2, [r3] movs r0, 0x3 negs r0, r0 ands r0, r2 strb r0, [r3] ldrh r0, [r4, 0x24] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r1, 0x20] ldrh r0, [r4, 0x26] ldrh r2, [r4, 0x22] adds r0, r2 subs r0, 0x8 strh r0, [r1, 0x22] strh r5, [r1, 0x24] strh r5, [r1, 0x26] _08088C26: movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0x7F ble _08088C36 adds r0, r4, 0 movs r1, 0x1E bl FieldEffectStop _08088C36: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08088C3C: .4byte 0x02020004 thumb_func_end sub_8088BC4 thumb_func_start sub_8088C40 sub_8088C40: @ 8088C40 push {lr} ldr r0, _08088C64 movs r1, 0xFE bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08088C68 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _08088C6C ldr r0, [r0] strh r0, [r1, 0xA] movs r0, 0 pop {r1} bx r1 .align 2, 0 _08088C64: .4byte sub_8088C70 _08088C68: .4byte 0x03004b20 _08088C6C: .4byte 0x0202ff84 thumb_func_end sub_8088C40 thumb_func_start sub_8088C70 sub_8088C70: @ 8088C70 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _08088C98 ldr r2, _08088C9C lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _08088C98: .4byte gUnknown_0839F3F8 _08088C9C: .4byte 0x03004b20 thumb_func_end sub_8088C70 thumb_func_start sub_8088CA0 sub_8088CA0: @ 8088CA0 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _08088CF0 ldrb r1, [r6, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08088CF4 adds r4, r0, r1 adds r0, r4, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 beq _08088CCA adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _08088CE8 _08088CCA: ldrb r0, [r6] strh r0, [r5, 0x26] movs r0, 0x1 strb r0, [r6, 0x6] bl SetPlayerAvatarStateMask bl sub_8059BF4 adds r0, r4, 0 movs r1, 0x39 bl FieldObjectSetSpecialAnim ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] _08088CE8: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08088CF0: .4byte 0x0202e858 _08088CF4: .4byte 0x030048a0 thumb_func_end sub_8088CA0 thumb_func_start sub_8088CF8 sub_8088CF8: @ 8088CF8 push {r4,lr} adds r4, r0, 0 ldr r0, _08088D30 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08088D34 adds r0, r1 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _08088D28 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] ldr r1, _08088D38 movs r2, 0xA ldrsh r0, [r4, r2] str r0, [r1] movs r0, 0x3B bl FieldEffectStart _08088D28: pop {r4} pop {r0} bx r0 .align 2, 0 _08088D30: .4byte 0x0202e858 _08088D34: .4byte 0x030048a0 _08088D38: .4byte 0x0202ff84 thumb_func_end sub_8088CF8 thumb_func_start sub_8088D3C sub_8088D3C: @ 8088D3C push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x6 bl FieldEffectActiveListContains lsls r0, 24 cmp r0, 0 bne _08088D84 ldr r0, _08088D8C ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08088D90 adds r5, r0, r1 ldrh r1, [r4, 0x26] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08088D74 ldrb r0, [r5, 0x1A] movs r1, 0x2 bl sub_8127ED0 ldrb r0, [r5, 0x1A] movs r1, 0 bl sub_8127EFC _08088D74: bl sub_8088F60 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xA] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _08088D84: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08088D8C: .4byte 0x0202e858 _08088D90: .4byte 0x030048a0 thumb_func_end sub_8088D3C thumb_func_start sub_8088D94 sub_8088D94: @ 8088D94 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4, 0xA] bl sub_8088FA4 lsls r0, 24 cmp r0, 0 beq _08088DC8 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x10 strh r0, [r4, 0xC] movs r0, 0x1 bl SetPlayerAvatarTransitionFlags ldr r0, _08088DD0 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08088DD4 adds r0, r1 movs r1, 0x2 bl FieldObjectSetSpecialAnim _08088DC8: pop {r4} pop {r0} bx r0 .align 2, 0 _08088DD0: .4byte 0x0202e858 _08088DD4: .4byte 0x030048a0 thumb_func_end sub_8088D94 thumb_func_start sub_8088DD8 sub_8088DD8: @ 8088DD8 push {r4,lr} adds r4, r0, 0 ldr r0, _08088E24 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08088E28 adds r2, r0, r1 ldrh r1, [r4, 0xC] movs r3, 0xC ldrsh r0, [r4, r3] cmp r0, 0 beq _08088DFE subs r0, r1, 0x1 strh r0, [r4, 0xC] lsls r0, 16 cmp r0, 0 bne _08088E1C _08088DFE: adds r0, r2, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _08088E1C ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x9E bl audio_play ldrb r0, [r4, 0xA] bl sub_8088FC0 _08088E1C: pop {r4} pop {r0} bx r0 .align 2, 0 _08088E24: .4byte 0x0202e858 _08088E28: .4byte 0x030048a0 thumb_func_end sub_8088DD8 thumb_func_start sub_8088E2C sub_8088E2C: @ 8088E2C push {r4-r6,lr} adds r5, r0, 0 ldrh r0, [r5, 0xC] adds r0, 0x1 strh r0, [r5, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _08088EA2 ldr r0, _08088EA8 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08088EAC adds r4, r0, r1 movs r0, 0x3 bl GetPlayerAvatarGraphicsIdByStateId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805B980 ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r6, _08088EB0 adds r0, r6 movs r1, 0x16 bl StartSpriteAnim ldrb r0, [r4, 0x1] movs r1, 0x10 orrs r0, r1 strb r0, [r4, 0x1] adds r0, r4, 0 movs r1, 0x48 bl FieldObjectSetSpecialAnim ldrh r1, [r5, 0x26] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08088E98 ldrb r1, [r4, 0x1A] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl DestroySprite _08088E98: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0 strh r0, [r5, 0xC] _08088EA2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08088EA8: .4byte 0x0202e858 _08088EAC: .4byte 0x030048a0 _08088EB0: .4byte 0x02020004 thumb_func_end sub_8088E2C thumb_func_start sub_8088EB4 sub_8088EB4: @ 8088EB4 push {r4,r5,lr} adds r5, r0, 0 ldrh r0, [r5, 0xC] adds r0, 0x1 strh r0, [r5, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 ble _08088F00 ldr r0, _08088F08 ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _08088F0C adds r4, r0 adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimActive ldrb r1, [r4, 0x1] movs r0, 0x11 negs r0, r0 ands r0, r1 strb r0, [r4, 0x1] ldrb r1, [r4, 0x2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r4, 0x2] ldrb r0, [r5, 0xA] ldrb r1, [r4, 0x4] bl sub_8088FFC bl CameraObjectReset2 ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] _08088F00: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08088F08: .4byte 0x0202e858 _08088F0C: .4byte 0x030048a0 thumb_func_end sub_8088EB4 thumb_func_start sub_8088F10 sub_8088F10: @ 8088F10 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4, 0xA] bl sub_8088FA4 lsls r0, 24 cmp r0, 0 beq _08088F2A bl sub_8080918 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _08088F2A: pop {r4} pop {r0} bx r0 thumb_func_end sub_8088F10 thumb_func_start sub_8088F30 sub_8088F30: @ 8088F30 push {lr} ldr r0, _08088F58 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08088F52 movs r0, 0x1F bl FieldEffectActiveListRemove ldr r0, _08088F5C bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _08088F52: pop {r0} bx r0 .align 2, 0 _08088F58: .4byte 0x0202f388 _08088F5C: .4byte sub_8088C70 thumb_func_end sub_8088F30 thumb_func_start sub_8088F60 sub_8088F60: @ 8088F60 push {lr} ldr r0, _08088F98 ldr r0, [r0, 0x68] movs r1, 0xFF movs r2, 0xB4 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r1, _08088F9C adds r2, r1 ldrb r3, [r2, 0x5] movs r1, 0xF ands r1, r3 movs r3, 0xD negs r3, r3 ands r1, r3 movs r3, 0x4 orrs r1, r3 strb r1, [r2, 0x5] ldr r1, _08088FA0 str r1, [r2, 0x1C] pop {r1} bx r1 .align 2, 0 _08088F98: .4byte gFieldEffectObjectTemplatePointers _08088F9C: .4byte 0x02020004 _08088FA0: .4byte sub_8089018 thumb_func_end sub_8088F60 thumb_func_start sub_8088FA4 sub_8088FA4: @ 8088FA4 lsls r0, 24 lsrs r0, 24 ldr r2, _08088FBC lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r0, [r1, 0x3C] lsls r0, 24 lsrs r0, 24 bx lr .align 2, 0 _08088FBC: .4byte 0x02020004 thumb_func_end sub_8088FA4 thumb_func_start sub_8088FC0 sub_8088FC0: @ 8088FC0 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _08088FF4 adds r4, r0 ldr r0, _08088FF8 str r0, [r4, 0x1C] movs r1, 0 movs r0, 0x78 strh r0, [r4, 0x20] strh r1, [r4, 0x22] strh r1, [r4, 0x24] strh r1, [r4, 0x26] adds r0, r4, 0 adds r0, 0x2E movs r2, 0x10 bl memset movs r0, 0x40 strh r0, [r4, 0x3A] pop {r4} pop {r0} bx r0 .align 2, 0 _08088FF4: .4byte 0x02020004 _08088FF8: .4byte sub_80890D8 thumb_func_end sub_8088FC0 thumb_func_start sub_8088FFC sub_8088FFC: @ 8088FFC lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 ldr r3, _08089014 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 strh r1, [r2, 0x3A] bx lr .align 2, 0 _08089014: .4byte 0x02020004 thumb_func_end sub_8088FFC thumb_func_start sub_8089018 sub_8089018: @ 8089018 push {r4,lr} adds r4, r0, 0 movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0 bne _080890C4 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _0808905C ldrb r0, [r4, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] ldr r0, _080890CC str r0, [r4, 0x10] adds r0, r4, 0 bl InitSpriteAffineAnim adds r0, r4, 0 movs r1, 0 bl StartSpriteAffineAnim movs r0, 0x76 strh r0, [r4, 0x20] ldr r0, _080890D0 strh r0, [r4, 0x22] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] movs r0, 0x40 strh r0, [r4, 0x30] adds r0, 0xC0 strh r0, [r4, 0x32] _0808905C: ldrh r0, [r4, 0x32] lsls r0, 16 asrs r0, 24 ldrh r1, [r4, 0x30] adds r0, r1 strh r0, [r4, 0x30] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x78 bl cosine strh r0, [r4, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x78 bl sine strh r0, [r4, 0x26] ldrh r2, [r4, 0x32] movs r0, 0x32 ldrsh r1, [r4, r0] ldr r0, _080890D4 cmp r1, r0 bgt _08089092 adds r0, r2, 0 adds r0, 0x60 strh r0, [r4, 0x32] _08089092: movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x81 ble _080890C4 ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldrb r1, [r4, 0x1] lsrs r1, 6 ldrb r2, [r4, 0x3] lsrs r2, 6 adds r0, r4, 0 movs r3, 0 bl CalcCenterToCornerVec _080890C4: pop {r4} pop {r0} bx r0 .align 2, 0 _080890CC: .4byte gUnknown_0839F44C _080890D0: .4byte 0x0000ffd0 _080890D4: .4byte 0x000007ff thumb_func_end sub_8089018 thumb_func_start sub_80890D8 sub_80890D8: @ 80890D8 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x32 ldrsh r0, [r4, r1] movs r1, 0x8C bl cosine movs r5, 0 strh r0, [r4, 0x24] movs r2, 0x32 ldrsh r0, [r4, r2] movs r1, 0x48 bl sine strh r0, [r4, 0x26] ldrh r0, [r4, 0x32] adds r0, 0x4 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x32] movs r1, 0x3A ldrsh r0, [r4, r1] cmp r0, 0x40 beq _08089136 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08089148 adds r1, r0 adds r3, r1, 0 adds r3, 0x3E ldrb r2, [r3] movs r0, 0x3 negs r0, r0 ands r0, r2 strb r0, [r3] ldrh r0, [r4, 0x24] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r1, 0x20] ldrh r0, [r4, 0x26] ldrh r2, [r4, 0x22] adds r0, r2 subs r0, 0x8 strh r0, [r1, 0x22] strh r5, [r1, 0x24] strh r5, [r1, 0x26] _08089136: movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0x7F ble _08089142 movs r0, 0x1 strh r0, [r4, 0x3C] _08089142: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08089148: .4byte 0x02020004 thumb_func_end sub_80890D8 thumb_func_start sub_808914C sub_808914C: @ 808914C push {r4,lr} adds r4, r0, 0 movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0 bne _08089220 movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 bne _08089196 ldrb r0, [r4, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] ldr r0, _08089228 str r0, [r4, 0x10] adds r0, r4, 0 bl InitSpriteAffineAnim adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim movs r0, 0x5E strh r0, [r4, 0x20] ldr r0, _0808922C strh r0, [r4, 0x22] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] movs r0, 0xF0 strh r0, [r4, 0x30] movs r0, 0x80 lsls r0, 4 strh r0, [r4, 0x32] movs r0, 0x80 strh r0, [r4, 0x36] _08089196: ldrh r1, [r4, 0x32] lsls r1, 16 asrs r1, 24 ldrh r2, [r4, 0x30] adds r2, r1 ldrh r0, [r4, 0x34] adds r0, r1 strh r0, [r4, 0x34] movs r0, 0xFF ands r2, r0 strh r2, [r4, 0x30] movs r3, 0x30 ldrsh r0, [r4, r3] movs r1, 0x20 bl cosine strh r0, [r4, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x78 bl sine strh r0, [r4, 0x26] ldrh r1, [r4, 0x32] movs r2, 0x32 ldrsh r0, [r4, r2] movs r2, 0x80 lsls r2, 1 cmp r0, r2 ble _080891D8 ldrh r0, [r4, 0x36] subs r0, r1, r0 strh r0, [r4, 0x32] _080891D8: ldrh r1, [r4, 0x36] movs r3, 0x36 ldrsh r0, [r4, r3] cmp r0, 0xFF bgt _080891E8 adds r0, r1, 0 adds r0, 0x18 strh r0, [r4, 0x36] _080891E8: movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0xFF bgt _080891F2 strh r2, [r4, 0x32] _080891F2: movs r2, 0x34 ldrsh r0, [r4, r2] cmp r0, 0x3B ble _08089220 ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _08089220: pop {r4} pop {r0} bx r0 .align 2, 0 _08089228: .4byte gUnknown_0839F44C _0808922C: .4byte 0x0000ffe0 thumb_func_end sub_808914C thumb_func_start sub_8089230 sub_8089230: @ 8089230 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_8088FC0 ldr r1, _08089254 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r1, 0x1C adds r0, r1 ldr r1, _08089258 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08089254: .4byte 0x02020004 _08089258: .4byte sub_808914C thumb_func_end sub_8089230 thumb_func_start sub_808925C sub_808925C: @ 808925C push {lr} ldr r0, _0808926C movs r1, 0xFE bl CreateTask movs r0, 0 pop {r1} bx r1 .align 2, 0 _0808926C: .4byte sub_8089270 thumb_func_end sub_808925C thumb_func_start sub_8089270 sub_8089270: @ 8089270 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _08089298 ldr r2, _0808929C lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _08089298: .4byte gUnknown_0839F454 _0808929C: .4byte 0x03004b20 thumb_func_end sub_8089270 thumb_func_start sub_80892A0 sub_80892A0: @ 80892A0 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _08089348 ldrb r1, [r6, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0808934C adds r4, r0, r1 adds r0, r4, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 beq _080892CA adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _08089342 _080892CA: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0x11 strh r0, [r5, 0xC] ldrb r0, [r6] strh r0, [r5, 0x26] movs r0, 0x1 strb r0, [r6, 0x6] bl SetPlayerAvatarStateMask ldrh r1, [r5, 0x26] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080892F2 ldrb r0, [r4, 0x1A] movs r1, 0 bl sub_8127ED0 _080892F2: movs r0, 0x3 bl GetPlayerAvatarGraphicsIdByStateId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805B980 bl CameraObjectReset2 adds r0, r4, 0 movs r1, 0x3 bl FieldObjectTurn ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08089350 adds r0, r1 movs r1, 0x16 bl StartSpriteAnim ldrb r1, [r4, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r4, 0x1] bl sub_8088F60 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xA] bl sub_8088FC0 ldrb r0, [r5, 0xA] ldrb r1, [r4, 0x4] bl sub_8088FFC _08089342: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08089348: .4byte 0x0202e858 _0808934C: .4byte 0x030048a0 _08089350: .4byte 0x02020004 thumb_func_end sub_80892A0 thumb_func_start sub_8089354 sub_8089354: @ 8089354 push {r4,r5,lr} adds r5, r0, 0 ldrh r1, [r5, 0xC] movs r2, 0xC ldrsh r0, [r5, r2] cmp r0, 0 beq _0808936C subs r0, r1, 0x1 strh r0, [r5, 0xC] lsls r0, 16 cmp r0, 0 bne _080893AC _0808936C: ldr r0, _080893B4 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080893B8 adds r0, r1 ldrb r0, [r0, 0x4] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _080893BC adds r4, r0 ldrb r0, [r5, 0xA] movs r1, 0x40 bl sub_8088FFC ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 movs r1, 0 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] strh r1, [r4, 0x24] strh r1, [r4, 0x26] ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] strh r1, [r5, 0xC] _080893AC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080893B4: .4byte 0x0202e858 _080893B8: .4byte 0x030048a0 _080893BC: .4byte 0x02020004 thumb_func_end sub_8089354 thumb_func_start sub_80893C0 sub_80893C0: @ 80893C0 push {r4,lr} sub sp, 0x24 adds r4, r0, 0 ldr r1, _08089408 mov r0, sp movs r2, 0x24 bl memcpy ldr r0, _0808940C ldrb r0, [r0, 0x4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08089410 adds r1, r0 movs r2, 0xC ldrsh r0, [r4, r2] lsls r0, 1 add r0, sp ldrh r0, [r0] strh r0, [r1, 0x26] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x11 ble _080893FE ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080893FE: add sp, 0x24 pop {r4} pop {r0} bx r0 .align 2, 0 _08089408: .4byte gUnknown_0839F470 _0808940C: .4byte 0x0202e858 _08089410: .4byte 0x02020004 thumb_func_end sub_80893C0 thumb_func_start sub_8089414 sub_8089414: @ 8089414 push {r4-r6,lr} adds r6, r0, 0 ldrb r0, [r6, 0xA] bl sub_8088FA4 lsls r0, 24 cmp r0, 0 beq _08089478 ldr r0, _08089480 ldrb r0, [r0, 0x5] lsls r5, r0, 3 adds r5, r0 lsls r5, 2 ldr r0, _08089484 adds r5, r0 ldrb r0, [r5, 0x4] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _08089488 adds r4, r0 ldrb r1, [r5, 0x1] movs r0, 0x11 negs r0, r0 ands r0, r1 strb r0, [r5, 0x1] movs r0, 0x10 ldrsh r1, [r5, r0] movs r0, 0x12 ldrsh r2, [r5, r0] adds r0, r5, 0 bl sub_805C058 movs r0, 0 strh r0, [r4, 0x24] strh r0, [r4, 0x26] adds r4, 0x3E ldrb r0, [r4] movs r1, 0x2 orrs r0, r1 strb r0, [r4] bl sub_8059BF4 adds r0, r5, 0 movs r1, 0x39 bl FieldObjectSetSpecialAnim ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] _08089478: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08089480: .4byte 0x0202e858 _08089484: .4byte 0x030048a0 _08089488: .4byte 0x02020004 thumb_func_end sub_8089414 thumb_func_start sub_808948C sub_808948C: @ 808948C push {r4,lr} adds r4, r0, 0 ldr r0, _080894BC ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080894C0 adds r0, r1 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _080894B4 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] ldrb r0, [r4, 0xA] bl sub_8089230 _080894B4: pop {r4} pop {r0} bx r0 .align 2, 0 _080894BC: .4byte 0x0202e858 _080894C0: .4byte 0x030048a0 thumb_func_end sub_808948C thumb_func_start sub_80894C4 sub_80894C4: @ 80894C4 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4, 0xA] bl sub_8088FA4 lsls r0, 24 cmp r0, 0 beq _080894F0 movs r0, 0xA ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080894F8 adds r0, r1 bl DestroySprite ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x10 strh r0, [r4, 0xA] _080894F0: pop {r4} pop {r0} bx r0 .align 2, 0 _080894F8: .4byte 0x02020004 thumb_func_end sub_80894C4 thumb_func_start fishE fishE: @ 80894FC push {r4-r7,lr} adds r5, r0, 0 ldrh r0, [r5, 0xA] subs r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 cmp r0, 0 bne _08089566 ldr r6, _0808956C ldrb r1, [r6, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08089570 adds r4, r0, r1 movs r7, 0 ldrh r1, [r5, 0x26] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08089530 movs r7, 0x3 ldrb r0, [r4, 0x1A] movs r1, 0x1 bl sub_8127ED0 _08089530: adds r0, r7, 0 bl GetPlayerAvatarGraphicsIdByStateId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805B980 adds r0, r4, 0 movs r1, 0x1 bl FieldObjectTurn ldrh r0, [r5, 0x26] strb r0, [r6] movs r0, 0 strb r0, [r6, 0x6] movs r0, 0x20 bl FieldEffectActiveListRemove ldr r0, _08089574 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _08089566: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808956C: .4byte 0x0202e858 _08089570: .4byte 0x030048a0 _08089574: .4byte sub_8089270 thumb_func_end fishE thumb_func_start remove_some_task remove_some_task: @ 8089578 push {r4,lr} ldr r4, _080895A8 movs r0, 0 strb r0, [r4, 0x15] ldr r1, _080895AC ldrh r2, [r1, 0xA] ldr r0, _080895B0 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _080895B4 ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] ldrb r0, [r4, 0x18] cmp r0, 0xFF beq _080895A2 bl DestroyTask movs r0, 0xFF strb r0, [r4, 0x18] _080895A2: pop {r4} pop {r0} bx r0 .align 2, 0 _080895A8: .4byte 0x03004dc0 _080895AC: .4byte 0x040000b0 _080895B0: .4byte 0x0000c5ff _080895B4: .4byte 0x00007fff thumb_func_end remove_some_task thumb_func_start dp12_8087EA4 dp12_8087EA4: @ 80895B8 push {r4,lr} sub sp, 0x4 mov r0, sp movs r4, 0 strh r4, [r0] ldr r1, _080895EC ldr r2, _080895F0 bl CpuSet ldr r0, _080895F4 movs r1, 0 str r1, [r0] str r1, [r0, 0x4] str r1, [r0, 0x8] str r1, [r0, 0xC] strb r4, [r0, 0x14] strb r4, [r0, 0x15] strb r4, [r0, 0x16] strb r4, [r0, 0x17] movs r1, 0xFF strb r1, [r0, 0x18] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080895EC: .4byte 0x03004de0 _080895F0: .4byte 0x01000780 _080895F4: .4byte 0x03004dc0 thumb_func_end dp12_8087EA4 thumb_func_start sub_80895F8 sub_80895F8: @ 80895F8 push {lr} sub sp, 0xC str r0, [sp] str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r0, _0808961C cmp r1, r0 bne _0808962C ldr r0, _08089620 ldr r1, _08089624 str r1, [r0] movs r2, 0xF0 lsls r2, 3 adds r1, r2 str r1, [r0, 0x4] ldr r1, _08089628 b _0808963C .align 2, 0 _0808961C: .4byte 0xa2600001 _08089620: .4byte 0x03004dc0 _08089624: .4byte 0x03004de2 _08089628: .4byte sub_80896F4 _0808962C: ldr r0, _0808965C ldr r1, _08089660 str r1, [r0] movs r2, 0xF0 lsls r2, 3 adds r1, r2 str r1, [r0, 0x4] ldr r1, _08089664 _0808963C: str r1, [r0, 0x10] adds r1, r0, 0 ldr r0, [sp, 0x4] str r0, [r1, 0xC] ldr r0, [sp] str r0, [r1, 0x8] mov r0, sp ldrb r0, [r0, 0x8] strb r0, [r1, 0x15] mov r0, sp ldrb r0, [r0, 0x9] strb r0, [r1, 0x16] strb r0, [r1, 0x17] add sp, 0xC pop {r0} bx r0 .align 2, 0 _0808965C: .4byte 0x03004dc0 _08089660: .4byte 0x03004de4 _08089664: .4byte sub_8089714 thumb_func_end sub_80895F8 thumb_func_start sub_8089668 sub_8089668: @ 8089668 push {r4,lr} ldr r4, _08089698 ldrb r0, [r4, 0x15] cmp r0, 0 beq _080896E2 cmp r0, 0x3 bne _080896AC movs r0, 0 strb r0, [r4, 0x15] ldr r1, _0808969C ldrh r2, [r1, 0xA] ldr r0, _080896A0 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _080896A4 ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] ldr r1, _080896A8 movs r0, 0x1 strb r0, [r1] b _080896E2 .align 2, 0 _08089698: .4byte 0x03004dc0 _0808969C: .4byte 0x040000b0 _080896A0: .4byte 0x0000c5ff _080896A4: .4byte 0x00007fff _080896A8: .4byte 0x0202ffa4 _080896AC: ldr r1, _080896E8 ldrh r2, [r1, 0xA] ldr r0, _080896EC ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _080896F0 ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] ldrb r0, [r4, 0x14] lsls r0, 2 adds r0, r4 ldr r0, [r0] str r0, [r1] ldr r0, [r4, 0x8] str r0, [r1, 0x4] ldr r0, [r4, 0xC] str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r0, [r4, 0x10] bl _call_via_r0 ldrb r0, [r4, 0x14] movs r1, 0x1 eors r0, r1 strb r0, [r4, 0x14] _080896E2: pop {r4} pop {r0} bx r0 .align 2, 0 _080896E8: .4byte 0x040000b0 _080896EC: .4byte 0x0000c5ff _080896F0: .4byte 0x00007fff thumb_func_end sub_8089668 thumb_func_start sub_80896F4 sub_80896F4: @ 80896F4 ldr r0, _0808970C ldr r2, [r0, 0x8] ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 ldr r1, _08089710 adds r0, r1 ldrh r0, [r0] strh r0, [r2] bx lr .align 2, 0 _0808970C: .4byte 0x03004dc0 _08089710: .4byte 0x03004de0 thumb_func_end sub_80896F4 thumb_func_start sub_8089714 sub_8089714: @ 8089714 ldr r0, _0808972C ldr r2, [r0, 0x8] ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 ldr r1, _08089730 adds r0, r1 ldr r0, [r0] str r0, [r2] bx lr .align 2, 0 _0808972C: .4byte 0x03004dc0 _08089730: .4byte 0x03004de0 thumb_func_end sub_8089714 thumb_func_start task00_for_dp12 task00_for_dp12: @ 8089734 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r12, r0 movs r6, 0 ldr r0, _0808975C ldrb r0, [r0] cmp r0, 0 beq _08089764 mov r0, r12 bl DestroyTask ldr r1, _08089760 movs r0, 0xFF strb r0, [r1, 0x18] b _080898E4 .align 2, 0 _0808975C: .4byte 0x0202ffa4 _08089760: .4byte 0x03004dc0 _08089764: ldr r1, _08089790 mov r0, r12 lsls r2, r0, 2 adds r0, r2, r0 lsls r0, 3 adds r3, r0, r1 movs r4, 0x16 ldrsh r0, [r3, r4] mov r10, r1 mov r9, r2 cmp r0, 0 beq _08089810 movs r1, 0x14 ldrsh r0, [r3, r1] cmp r0, 0xE bhi _08089810 lsls r0, 2 ldr r1, _08089794 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08089790: .4byte 0x03004b20 _08089794: .4byte _08089798 .align 2, 0 _08089798: .4byte _080897D4 .4byte _08089810 .4byte _080897DC .4byte _08089810 .4byte _080897E4 .4byte _08089810 .4byte _080897EC .4byte _08089810 .4byte _080897F4 .4byte _08089810 .4byte _080897FC .4byte _08089810 .4byte _08089804 .4byte _08089810 .4byte _0808980C _080897D4: ldr r0, _080897D8 b _0808980E .align 2, 0 _080897D8: .4byte 0x030042a4 _080897DC: ldr r0, _080897E0 b _0808980E .align 2, 0 _080897E0: .4byte 0x030042a0 _080897E4: ldr r0, _080897E8 b _0808980E .align 2, 0 _080897E8: .4byte 0x030042c0 _080897EC: ldr r0, _080897F0 b _0808980E .align 2, 0 _080897F0: .4byte 0x030041b4 _080897F4: ldr r0, _080897F8 b _0808980E .align 2, 0 _080897F8: .4byte 0x03004288 _080897FC: ldr r0, _08089800 b _0808980E .align 2, 0 _08089800: .4byte 0x03004280 _08089804: ldr r0, _08089808 b _0808980E .align 2, 0 _08089808: .4byte 0x030041b0 _0808980C: ldr r0, _08089870 _0808980E: ldrh r6, [r0] _08089810: mov r0, r9 add r0, r12 lsls r0, 3 mov r2, r10 adds r1, r0, r2 ldrh r2, [r1, 0x10] movs r3, 0x10 ldrsh r0, [r1, r3] cmp r0, 0 beq _0808987C subs r0, r2, 0x1 strh r0, [r1, 0x10] movs r4, 0xE ldrsh r0, [r1, r4] movs r3, 0xA0 lsls r3, 1 adds r2, r0, r3 movs r4, 0x8 ldrsh r3, [r1, r4] movs r4, 0xA ldrsh r0, [r1, r4] cmp r3, r0 bge _080898E4 ldr r5, _08089874 ldr r0, _08089878 mov r8, r0 adds r7, r1, 0 lsls r0, r2, 1 adds r4, r0, r5 _0808984A: lsls r2, r3, 1 mov r0, r8 ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 adds r2, r5 ldrh r0, [r4] adds r0, r6 strh r0, [r2] adds r4, 0x2 adds r3, 0x1 movs r1, 0xA ldrsh r0, [r7, r1] cmp r3, r0 blt _0808984A b _080898E4 .align 2, 0 _08089870: .4byte 0x030041b8 _08089874: .4byte 0x03004de0 _08089878: .4byte 0x03004dc0 _0808987C: ldrh r0, [r1, 0x12] strh r0, [r1, 0x10] movs r2, 0xE ldrsh r0, [r1, r2] movs r3, 0xA0 lsls r3, 1 adds r2, r0, r3 movs r4, 0x8 ldrsh r3, [r1, r4] movs r4, 0xA ldrsh r0, [r1, r4] cmp r3, r0 bge _080898C4 ldr r5, _080898F4 adds r7, r1, 0 lsls r0, r2, 1 adds r4, r0, r5 ldr r0, _080898F8 mov r8, r0 _080898A2: lsls r2, r3, 1 mov r0, r8 ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 adds r2, r5 ldrh r0, [r4] adds r0, r6 strh r0, [r2] adds r4, 0x2 adds r3, 0x1 movs r1, 0xA ldrsh r0, [r7, r1] cmp r3, r0 blt _080898A2 _080898C4: mov r0, r9 add r0, r12 lsls r0, 3 mov r3, r10 adds r2, r0, r3 ldrh r0, [r2, 0xE] adds r0, 0x1 strh r0, [r2, 0xE] lsls r0, 16 asrs r0, 16 movs r4, 0xC ldrsh r1, [r2, r4] cmp r0, r1 bne _080898E4 movs r0, 0 strh r0, [r2, 0xE] _080898E4: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080898F4: .4byte 0x03004de0 _080898F8: .4byte 0x03004dc0 thumb_func_end task00_for_dp12 thumb_func_start sub_80898FC sub_80898FC: @ 80898FC push {r4-r7,lr} adds r6, r0, 0 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r4, r2, 24 movs r1, 0 movs r2, 0 ldr r0, _08089940 mov r12, r0 _08089910: lsls r0, r1, 1 adds r3, r0, r6 lsls r0, r2, 1 add r0, r12 movs r7, 0 ldrsh r0, [r0, r7] muls r0, r4 cmp r0, 0 bge _08089924 adds r0, 0xFF _08089924: asrs r0, 8 strh r0, [r3] adds r0, r2, r5 lsls r0, 24 lsrs r2, r0, 24 adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0xFF bls _08089910 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08089940: .4byte gSineTable thumb_func_end sub_80898FC thumb_func_start sub_8089944 sub_8089944: @ 8089944 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 adds r5, r0, 0 str r1, [sp, 0x10] ldr r0, [sp, 0x40] mov r8, r0 ldr r1, [sp, 0x44] mov r9, r1 ldr r0, [sp, 0x48] mov r10, r0 lsls r5, 24 lsrs r5, 24 ldr r1, [sp, 0x10] lsls r1, 24 str r1, [sp, 0x14] lsrs r0, r1, 24 str r0, [sp, 0xC] lsls r1, r2, 24 lsrs r1, 24 str r1, [sp, 0x18] lsls r2, r3, 24 lsrs r2, 24 str r2, [sp, 0x1C] mov r1, r8 lsls r1, 24 lsrs r1, 24 mov r8, r1 mov r3, r9 lsls r3, 24 lsrs r3, 24 mov r9, r3 mov r0, r10 lsls r0, 24 lsrs r0, 24 mov r10, r0 bl dp12_8087EA4 ldr r0, _08089A50 add r0, r9 str r0, [sp] ldr r0, _08089A54 str r0, [sp, 0x4] mov r1, sp movs r0, 0x1 strb r0, [r1, 0x8] mov r0, sp movs r1, 0 strb r1, [r0, 0x9] ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl sub_80895F8 ldr r0, _08089A58 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r7, r0, 24 ldr r0, _08089A5C lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 strh r5, [r4, 0x8] mov r3, sp ldrh r3, [r3, 0xC] strh r3, [r4, 0xA] movs r0, 0x80 lsls r0, 1 ldr r1, [sp, 0x18] bl __divsi3 strh r0, [r4, 0xC] movs r0, 0 strh r0, [r4, 0xE] mov r1, r8 strh r1, [r4, 0x10] strh r1, [r4, 0x12] mov r3, r9 strh r3, [r4, 0x14] mov r0, r10 strh r0, [r4, 0x16] ldr r0, _08089A60 strb r7, [r0, 0x18] ldr r0, _08089A64 movs r1, 0 strb r1, [r0] ldr r4, _08089A68 ldr r3, [sp, 0xC] subs r6, r3, r5 lsls r3, r6, 24 lsrs r3, 24 adds r0, r4, 0 ldr r1, [sp, 0x18] ldr r2, [sp, 0x1C] bl sub_80898FC ldr r0, [sp, 0xC] cmp r5, r0 bge _08089A3E ldr r1, _08089A6C adds r2, r4, r1 lsls r1, r5, 1 movs r3, 0xF0 lsls r3, 3 adds r0, r1, r3 adds r3, r0, r2 adds r1, r2 adds r2, r4, 0 adds r5, r6, 0 _08089A2A: ldrh r0, [r2] strh r0, [r1] ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 adds r1, 0x2 subs r5, 0x1 cmp r5, 0 bne _08089A2A _08089A3E: adds r0, r7, 0 add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08089A50: .4byte REG_BG0HOFS _08089A54: .4byte 0xa2600001 _08089A58: .4byte task00_for_dp12 _08089A5C: .4byte 0x03004b20 _08089A60: .4byte 0x03004dc0 _08089A64: .4byte 0x0202ffa4 _08089A68: .4byte 0x03005060 _08089A6C: .4byte 0xfffffd80 thumb_func_end sub_8089944 thumb_func_start sub_8089A70 sub_8089A70: @ 8089A70 push {lr} ldr r0, _08089A88 ldrb r1, [r0, 0x8] movs r2, 0x80 orrs r1, r2 strb r1, [r0, 0x8] movs r0, 0 movs r1, 0 bl sub_806AFAC pop {r0} bx r0 .align 2, 0 _08089A88: .4byte 0x0202f388 thumb_func_end sub_8089A70 thumb_func_start sub_8089A8C sub_8089A8C: @ 8089A8C push {r4-r7,lr} mov r7, r8 push {r7} ldr r5, _08089AD0 movs r0, 0 strb r0, [r5] ldr r0, _08089AD4 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08089AD8 adds r0, r1 movs r1, 0x2D bl PokemonGetField cmp r0, 0 beq _08089AE0 ldr r4, _08089ADC adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl append_byte adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x1 bl append_byte adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x3 bl append_byte b _08089BC8 .align 2, 0 _08089AD0: .4byte 0x0202ffa9 _08089AD4: .4byte 0x03005ce0 _08089AD8: .4byte 0x03004360 _08089ADC: .4byte 0x0202ffaa _08089AE0: movs r6, 0 ldr r0, _08089B24 ldrh r0, [r0] mov r8, r0 _08089AE8: movs r4, 0 adds r7, r6, 0x1 mov r0, r8 cmp r0, 0xFF beq _08089B48 ldr r5, _08089B24 _08089AF4: ldr r0, _08089B28 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08089B2C adds r0, r1 adds r1, r6, 0 adds r1, 0xD bl PokemonGetField lsls r1, r4, 1 adds r1, r5 ldrh r1, [r1] cmp r0, r1 bne _08089B38 adds r2, r4, 0 adds r2, 0xA lsls r2, 24 lsrs r2, 24 ldr r0, _08089B30 ldr r1, _08089B34 bl append_byte b _08089B48 .align 2, 0 _08089B24: .4byte gUnknown_0839F554 _08089B28: .4byte 0x03005ce0 _08089B2C: .4byte 0x03004360 _08089B30: .4byte 0x0202ffaa _08089B34: .4byte 0x0202ffa9 _08089B38: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 lsls r0, r4, 1 adds r0, r5 ldrh r0, [r0] cmp r0, 0xFF bne _08089AF4 _08089B48: lsls r0, r7, 16 lsrs r6, r0, 16 cmp r6, 0x3 bls _08089AE8 ldr r4, _08089BA4 ldr r5, _08089BA8 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl append_byte ldr r6, _08089BAC adds r0, r6, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _08089B76 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x1 bl append_byte _08089B76: ldr r0, _08089BB0 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 adds r1, r6, 0 subs r1, 0x64 adds r0, r1 movs r1, 0xC bl PokemonGetField lsls r0, 16 lsrs r0, 16 bl itemid_is_mail lsls r0, 24 cmp r0, 0 beq _08089BB4 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x7 bl append_byte b _08089BBE .align 2, 0 _08089BA4: .4byte 0x0202ffaa _08089BA8: .4byte 0x0202ffa9 _08089BAC: .4byte 0x030043c4 _08089BB0: .4byte 0x03005ce0 _08089BB4: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x2 bl append_byte _08089BBE: ldr r0, _08089BD4 ldr r1, _08089BD8 movs r2, 0x3 bl append_byte _08089BC8: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08089BD4: .4byte 0x0202ffaa _08089BD8: .4byte 0x0202ffa9 thumb_func_end sub_8089A8C thumb_func_start sub_8089BDC sub_8089BDC: @ 8089BDC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 adds r4, r2, 0 mov r8, r3 ldr r7, [sp, 0x20] ldr r1, [sp, 0x24] lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 lsls r4, 24 lsrs r4, 24 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r1, 24 movs r0, 0x5 bl sub_806D538 adds r4, r5, r4 lsls r4, 24 lsrs r4, 24 mov r0, r8 lsls r3, r0, 1 adds r3, r6, r3 adds r3, 0x1 lsls r3, 24 lsrs r3, 24 adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 bl DrawDefaultWindow adds r5, 0x1 lsls r5, 24 lsrs r5, 24 adds r6, 0x1 lsls r6, 24 lsrs r6, 24 str r7, [sp] adds r0, r5, 0 adds r1, r6, 0 mov r2, r8 ldr r3, [sp, 0x1C] bl sub_80728E4 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8089BDC thumb_func_start sub_8089C50 sub_8089C50: @ 8089C50 push {r4,r5,lr} sub sp, 0xC ldr r4, [sp, 0x18] ldr r5, [sp, 0x1C] lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 str r4, [sp] str r5, [sp, 0x4] movs r4, 0x1 str r4, [sp, 0x8] bl sub_8089BDC add sp, 0xC pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8089C50 thumb_func_start sub_8089C7C sub_8089C7C: @ 8089C7C push {r4-r6,lr} sub sp, 0xC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r6, _08089CC8 ldrb r0, [r6] lsls r0, 1 movs r4, 0x12 subs r4, r0 lsls r4, 24 lsrs r4, 24 ldrb r3, [r6] ldr r0, _08089CCC str r0, [sp] ldr r0, _08089CD0 str r0, [sp, 0x4] movs r0, 0x3 str r0, [sp, 0x8] movs r0, 0x13 adds r1, r4, 0 movs r2, 0xA bl sub_8089BDC movs r2, 0x1 orrs r2, r4 ldrb r3, [r6] str r5, [sp] movs r0, 0x9 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x14 bl InitMenu add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08089CC8: .4byte 0x0202ffa9 _08089CCC: .4byte gUnknown_0839F494 _08089CD0: .4byte 0x0202ffaa thumb_func_end sub_8089C7C thumb_func_start sub_8089CD4 sub_8089CD4: @ 8089CD4 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08089D00 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08089D84 adds r0, r4, 0 bl sub_806BD80 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 beq _08089D04 cmp r0, 0x2 beq _08089D60 b _08089D84 .align 2, 0 _08089D00: .4byte 0x0202f388 _08089D04: movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_806CA38 ldr r1, _08089D48 strb r0, [r1] ldrb r1, [r1] movs r0, 0x64 muls r0, r1 ldr r1, _08089D4C adds r0, r1 ldr r1, _08089D50 bl GetMonNickname bl sub_8089A8C ldr r0, _08089D54 strb r5, [r0] movs r0, 0 bl sub_8089C7C ldr r1, _08089D58 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08089D5C str r1, [r0] adds r0, r4, 0 bl sub_808B5B4 b _08089D84 .align 2, 0 _08089D48: .4byte 0x03005ce0 _08089D4C: .4byte 0x03004360 _08089D50: .4byte 0x020231cc _08089D54: .4byte 0x0202ffa8 _08089D58: .4byte 0x03004b20 _08089D5C: .4byte sub_8089D94 _08089D60: movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _08089D8C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08089D90 str r1, [r0] _08089D84: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08089D8C: .4byte 0x03004b20 _08089D90: .4byte sub_8089E4C thumb_func_end sub_8089CD4 thumb_func_start sub_8089D94 sub_8089D94: @ 8089D94 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 ldr r0, _08089DC8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08089E44 ldr r2, _08089DCC ldrh r0, [r2, 0x30] movs r1, 0xF0 ands r1, r0 cmp r1, 0x40 bne _08089DD4 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 bl MoveMenuCursor ldr r1, _08089DD0 strb r0, [r1] b _08089E1A .align 2, 0 _08089DC8: .4byte 0x0202f388 _08089DCC: .4byte 0x03001770 _08089DD0: .4byte 0x0202ffa8 _08089DD4: cmp r1, 0x80 bne _08089DF0 movs r0, 0x5 bl audio_play movs r0, 0x1 bl MoveMenuCursor ldr r1, _08089DEC strb r0, [r1] b _08089E1A .align 2, 0 _08089DEC: .4byte 0x0202ffa8 _08089DF0: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08089E30 movs r0, 0x5 bl audio_play ldr r1, _08089E24 ldr r2, _08089E28 ldr r0, _08089E2C ldrb r0, [r0] adds r0, r2 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 _08089E1A: adds r0, r4, 0 bl sub_808B5B4 b _08089E44 .align 2, 0 _08089E24: .4byte gUnknown_0839F494 _08089E28: .4byte 0x0202ffaa _08089E2C: .4byte 0x0202ffa8 _08089E30: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08089E44 adds r0, r5, 0 bl sub_808A918 adds r0, r5, 0 bl sub_808B5B4 _08089E44: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8089D94 thumb_func_start sub_8089E4C sub_8089E4C: @ 8089E4C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08089E78 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _08089E72 ldr r0, _08089E7C strb r1, [r0] ldr r0, _08089E80 bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _08089E72: pop {r4} pop {r0} bx r0 .align 2, 0 _08089E78: .4byte 0x0202f388 _08089E7C: .4byte 0x03005ce0 _08089E80: .4byte sub_805469C thumb_func_end sub_8089E4C thumb_func_start sub_8089E84 sub_8089E84: @ 8089E84 push {lr} ldr r0, _08089EAC ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08089EB0 adds r0, r1 ldr r1, _08089EB4 bl GetMonNickname bl sub_8089A8C ldr r1, _08089EB8 movs r0, 0 strb r0, [r1] movs r0, 0 bl sub_8089C7C pop {r0} bx r0 .align 2, 0 _08089EAC: .4byte 0x03005ce0 _08089EB0: .4byte 0x03004360 _08089EB4: .4byte 0x020231cc _08089EB8: .4byte 0x0202ffa8 thumb_func_end sub_8089E84 thumb_func_start sub_8089EBC sub_8089EBC: @ 8089EBC push {r4,r5,lr} ldr r4, _08089EC4 ldr r5, _08089EC8 b _08089ED8 .align 2, 0 _08089EC4: .4byte 0x0201b260 _08089EC8: .4byte 0x020384f0 _08089ECC: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08089F04 _08089ED8: bl sub_806B124 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08089ECC ldrb r0, [r4] ldrb r1, [r5] bl sub_806C994 ldrb r0, [r4] movs r1, 0 bl sub_806BF74 ldr r1, _08089F0C ldrb r0, [r5] strb r0, [r1] bl sub_8089E84 ldr r0, _08089F10 bl SetMainCallback2 _08089F04: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08089F0C: .4byte 0x03005ce0 _08089F10: .4byte sub_806AEDC thumb_func_end sub_8089EBC thumb_func_start sub_8089F14 sub_8089F14: @ 8089F14 push {lr} ldr r2, _08089F38 ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r2, _08089F3C movs r0, 0 movs r1, 0xFF movs r3, 0x5 bl sub_806AF4C ldr r0, _08089F40 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _08089F38: .4byte 0x0202f388 _08089F3C: .4byte sub_8089D94 _08089F40: .4byte sub_8089EBC thumb_func_end sub_8089F14 thumb_func_start sub_8089F44 sub_8089F44: @ 8089F44 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r3, r0, 24 ldr r0, _08089FAC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08089FA2 ldr r2, _08089FB0 ldr r1, _08089FB4 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0xE] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r4, [r0, 0x2E] lsls r4, 24 lsrs r4, 24 adds r0, r3, 0 bl DestroyTask ldr r0, _08089FB8 ldr r1, _08089FBC adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, _08089FC0 ldr r1, _08089FC4 ldrb r2, [r1] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, _08089FC8 str r5, [sp] adds r1, r4, 0 bl sub_809D8BC _08089FA2: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08089FAC: .4byte 0x0202f388 _08089FB0: .4byte 0x02020004 _08089FB4: .4byte 0x03004b20 _08089FB8: .4byte 0x0201b000 _08089FBC: .4byte 0x00000262 _08089FC0: .4byte 0x03004360 _08089FC4: .4byte 0x03004350 _08089FC8: .4byte sub_8089F14 thumb_func_end sub_8089F44 thumb_func_start sub_8089FCC sub_8089FCC: @ 8089FCC 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, _08089FFC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0808A000 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08089FFC: .4byte 0x03004b20 _0808A000: .4byte sub_8089F44 thumb_func_end sub_8089FCC thumb_func_start sub_808A004 sub_808A004: @ 808A004 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0808A024 ldr r2, _0808A028 bl SetTaskFuncWithFollowupFunc movs r0, 0x13 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset pop {r0} bx r0 .align 2, 0 _0808A024: .4byte sub_806CA60 _0808A028: .4byte sub_8089CD4 thumb_func_end sub_808A004 thumb_func_start sub_808A02C sub_808A02C: @ 808A02C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC ldr r0, _0808A054 ldr r1, _0808A058 str r1, [r0, 0xC] ldr r1, _0808A05C adds r0, r1 movs r1, 0x1 strh r1, [r0] adds r0, r4, 0 bl sub_808A004 pop {r4} pop {r0} bx r0 .align 2, 0 _0808A054: .4byte 0x02001000 _0808A058: .4byte sub_806CD5C _0808A05C: .4byte 0x0001a272 thumb_func_end sub_808A02C thumb_func_start sub_808A060 sub_808A060: @ 808A060 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0808A0D0 ldrh r0, [r0, 0x2E] cmp r0, 0x40 bne _0808A086 ldr r4, _0808A0D4 ldrb r0, [r4] cmp r0, 0 beq _0808A086 movs r0, 0x1 negs r0, r0 bl MoveMenuCursor strb r0, [r4] movs r0, 0x5 bl audio_play _0808A086: ldr r0, _0808A0D0 ldrh r0, [r0, 0x2E] cmp r0, 0x80 bne _0808A0A4 ldr r4, _0808A0D4 ldrb r0, [r4] cmp r0, 0x2 beq _0808A0A4 movs r0, 0x1 bl MoveMenuCursor strb r0, [r4] movs r0, 0x5 bl audio_play _0808A0A4: ldr r0, _0808A0D0 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0808A0E0 movs r0, 0x5 bl audio_play ldr r1, _0808A0D8 ldr r2, _0808A0DC ldr r0, _0808A0D4 ldrb r3, [r0] movs r0, 0 bl sub_806E81C adds r1, r0, 0 adds r0, r5, 0 bl _call_via_r1 b _0808A0F6 .align 2, 0 _0808A0D0: .4byte 0x03001770 _0808A0D4: .4byte 0x0202ffa8 _0808A0D8: .4byte gUnknown_0839F578 _0808A0DC: .4byte gUnknown_0839F494 _0808A0E0: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0808A0F6 ldr r1, _0808A0FC movs r0, 0 bl sub_806E7D0 adds r0, r5, 0 bl sub_808A938 _0808A0F6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808A0FC: .4byte gUnknown_0839F578 thumb_func_end sub_808A060 thumb_func_start sub_808A100 sub_808A100: @ 808A100 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _0808A130 ldr r2, _0808A134 movs r0, 0 movs r3, 0 bl sub_806E750 movs r0, 0xD movs r1, 0x2 bl sub_806D538 ldr r1, _0808A138 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0808A13C str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0808A130: .4byte gUnknown_0839F578 _0808A134: .4byte gUnknown_0839F494 _0808A138: .4byte 0x03004b20 _0808A13C: .4byte sub_808A060 thumb_func_end sub_808A100 thumb_func_start sub_808A140 sub_808A140: @ 808A140 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC ldr r1, _0808A174 movs r0, 0 strb r0, [r1] movs r0, 0x13 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset ldr r1, _0808A178 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0808A17C str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0808A174: .4byte 0x0202ffa8 _0808A178: .4byte 0x03004b20 _0808A17C: .4byte sub_808A100 thumb_func_end sub_808A140 thumb_func_start sub_808A180 sub_808A180: @ 808A180 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0808A1D0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808A1CA adds r0, r5, 0 bl sub_806CA38 lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0808A1D4 adds r0, r1 movs r1, 0x40 bl PokemonGetField adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 bl DestroyTask lsls r1, r4, 3 adds r1, r4 lsls r1, 2 ldr r0, _0808A1D8 adds r1, r0 ldr r2, _0808A1DC movs r0, 0x4 movs r3, 0x3 bl sub_80E62A0 _0808A1CA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808A1D0: .4byte 0x0202f388 _0808A1D4: .4byte 0x03004360 _0808A1D8: .4byte 0x02028280 _0808A1DC: .4byte sub_808A520 thumb_func_end sub_808A180 thumb_func_start sub_808A1E0 sub_808A1E0: @ 808A1E0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808A21C ldrb r0, [r0] cmp r0, 0x1 beq _0808A216 adds r0, r4, 0 bl sub_806CA38 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_806DF60 movs r0, 0 movs r1, 0 bl sub_806D538 ldr r1, _0808A220 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0808A224 str r1, [r0] _0808A216: pop {r4} pop {r0} bx r0 .align 2, 0 _0808A21C: .4byte 0x0202e8f6 _0808A220: .4byte 0x03004b20 _0808A224: .4byte sub_8089CD4 thumb_func_end sub_808A1E0 thumb_func_start sub_808A228 sub_808A228: @ 808A228 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808A268 ldrh r0, [r0] bl itemid_is_mail lsls r0, 24 cmp r0, 0 beq _0808A278 ldr r0, _0808A26C ldrb r0, [r0] cmp r0, 0 beq _0808A278 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0808A270 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0808A274 str r1, [r0] b _0808A29A .align 2, 0 _0808A268: .4byte 0x0203855e _0808A26C: .4byte 0x0202e8f4 _0808A270: .4byte 0x03004b20 _0808A274: .4byte sub_808A180 _0808A278: movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset movs r0, 0 movs r1, 0 bl sub_806D538 ldr r0, _0808A2A4 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0808A2A8 str r0, [r1] _0808A29A: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0808A2A4: .4byte 0x03004b20 _0808A2A8: .4byte sub_8089CD4 thumb_func_end sub_808A228 thumb_func_start sub_808A2AC sub_808A2AC: @ 808A2AC push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, _0808A2D0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808A2CA ldr r0, _0808A2D4 ldrh r1, [r0] ldr r2, _0808A2D8 adds r0, r3, 0 bl sub_806E964 _0808A2CA: pop {r0} bx r0 .align 2, 0 _0808A2D0: .4byte 0x0202f388 _0808A2D4: .4byte 0x0203855e _0808A2D8: .4byte sub_808A228 thumb_func_end sub_808A2AC thumb_func_start sub_808A2DC sub_808A2DC: @ 808A2DC push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r5, 0 bl sub_806CA38 lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0808A324 adds r0, r1 movs r1, 0x40 bl PokemonGetField adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 bl DestroyTask lsls r1, r4, 3 adds r1, r4 lsls r1, 2 ldr r0, _0808A328 adds r1, r0 ldr r2, _0808A32C movs r0, 0x4 movs r3, 0x3 bl sub_80E62A0 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808A324: .4byte 0x03004360 _0808A328: .4byte 0x02028280 _0808A32C: .4byte sub_808A520 thumb_func_end sub_808A2DC thumb_func_start sub_808A330 sub_808A330: @ 808A330 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0808A344 ldrh r1, [r1] ldr r2, _0808A348 bl sub_806E964 pop {r0} bx r0 .align 2, 0 _0808A344: .4byte 0x0203855e _0808A348: .4byte sub_808A2DC thumb_func_end sub_808A330 thumb_func_start sub_808A34C sub_808A34C: @ 808A34C push {lr} bl RunTasks pop {r0} bx r0 thumb_func_end sub_808A34C thumb_func_start sub_808A358 sub_808A358: @ 808A358 push {r4,lr} ldr r4, _0808A360 b _0808A370 .align 2, 0 _0808A360: .4byte 0x0201b260 _0808A364: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0808A394 _0808A370: bl sub_806B124 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0808A364 ldrb r0, [r4] ldr r1, _0808A39C ldrb r1, [r1] bl sub_806C994 ldrb r0, [r4] movs r1, 0 bl sub_806BF74 ldr r0, _0808A3A0 bl SetMainCallback2 _0808A394: pop {r4} pop {r0} bx r0 .align 2, 0 _0808A39C: .4byte 0x03005ce0 _0808A3A0: .4byte sub_806AEDC thumb_func_end sub_808A358 thumb_func_start sub_808A3A4 sub_808A3A4: @ 808A3A4 push {r4,r5,lr} ldr r4, _0808A3D8 adds r5, r4, 0x2 _0808A3AA: bl sub_806B124 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0808A3E4 ldrb r0, [r4] ldr r1, _0808A3DC ldrb r1, [r1] bl sub_806C994 ldrb r0, [r4] movs r1, 0 bl sub_806BF74 movs r0, 0x3 strb r0, [r5] bl sub_8089E84 ldr r0, _0808A3E0 bl SetMainCallback2 b _0808A3F0 .align 2, 0 _0808A3D8: .4byte 0x0201b260 _0808A3DC: .4byte 0x03005ce0 _0808A3E0: .4byte sub_806AEDC _0808A3E4: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0808A3AA _0808A3F0: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_808A3A4 thumb_func_start sub_808A3F8 sub_808A3F8: @ 808A3F8 push {r4,lr} ldr r0, _0808A460 ldrh r0, [r0] bl itemid_is_mail lsls r0, 24 cmp r0, 0 beq _0808A47E ldr r0, _0808A464 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r4, r0, 24 ldr r2, _0808A468 ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] adds r0, r4, 0 movs r1, 0 bl sub_806BD58 ldr r0, _0808A46C ldrb r1, [r0] adds r0, r4, 0 bl sub_806C994 adds r0, r4, 0 movs r1, 0 bl sub_806BF74 adds r0, r4, 0 bl sub_806CA38 lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0808A470 adds r0, r1 movs r1, 0xC bl PokemonGetField lsls r0, 24 cmp r0, 0 bne _0808A478 ldr r0, _0808A474 bl SetMainCallback2 b _0808A4C6 .align 2, 0 _0808A460: .4byte 0x0203855e _0808A464: .4byte sub_808A330 _0808A468: .4byte 0x0202f388 _0808A46C: .4byte 0x03005ce0 _0808A470: .4byte 0x03004360 _0808A474: .4byte sub_808A34C _0808A478: adds r0, r4, 0 bl DestroyTask _0808A47E: ldr r2, _0808A4A4 ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r0, _0808A4A8 ldrh r0, [r0] cmp r0, 0 beq _0808A4B4 ldr r2, _0808A4AC movs r0, 0 movs r1, 0xFF movs r3, 0xFF bl sub_806AF4C ldr r0, _0808A4B0 bl SetMainCallback2 b _0808A4C6 .align 2, 0 _0808A4A4: .4byte 0x0202f388 _0808A4A8: .4byte 0x0203855e _0808A4AC: .4byte sub_808A2AC _0808A4B0: .4byte sub_808A358 _0808A4B4: ldr r2, _0808A4CC movs r0, 0 movs r1, 0xFF movs r3, 0x5 bl sub_806AF4C ldr r0, _0808A4D0 bl SetMainCallback2 _0808A4C6: pop {r4} pop {r0} bx r0 .align 2, 0 _0808A4CC: .4byte sub_8089D94 _0808A4D0: .4byte sub_808A3A4 thumb_func_end sub_808A3F8 thumb_func_start sub_808A4D4 sub_808A4D4: @ 808A4D4 push {r4,lr} ldr r4, _0808A4DC b _0808A4EC .align 2, 0 _0808A4DC: .4byte 0x0201b260 _0808A4E0: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0808A510 _0808A4EC: bl sub_806B124 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0808A4E0 ldrb r0, [r4] ldr r1, _0808A518 ldrb r1, [r1] bl sub_806C994 ldrb r0, [r4] movs r1, 0 bl sub_806BF74 ldr r0, _0808A51C bl SetMainCallback2 _0808A510: pop {r4} pop {r0} bx r0 .align 2, 0 _0808A518: .4byte 0x03005ce0 _0808A51C: .4byte sub_806AEDC thumb_func_end sub_808A4D4 thumb_func_start sub_808A520 sub_808A520: @ 808A520 push {r4-r7,lr} ldr r2, _0808A584 ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r0, _0808A588 ldrh r0, [r0] cmp r0, 0 bne _0808A59C ldr r7, _0808A58C ldrh r0, [r7] cmp r0, 0 beq _0808A542 movs r1, 0x1 bl sub_80A9538 _0808A542: ldr r6, _0808A590 ldrb r0, [r6] movs r5, 0x64 muls r0, r5 ldr r4, _0808A594 adds r0, r4 movs r1, 0xC bl PokemonGetField lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl sub_80A9424 ldrb r0, [r6] muls r0, r5 adds r0, r4 bl sub_80A2DF8 ldrb r0, [r6] muls r0, r5 adds r0, r4 movs r1, 0xC adds r2, r7, 0 bl pokemon_setattr ldr r2, _0808A598 movs r0, 0 movs r1, 0xFF movs r3, 0 bl sub_806AF4C b _0808A5A8 .align 2, 0 _0808A584: .4byte 0x0202f388 _0808A588: .4byte 0x0202e8dc _0808A58C: .4byte 0x0202e8f8 _0808A590: .4byte 0x03005ce0 _0808A594: .4byte 0x03004360 _0808A598: .4byte sub_8089CD4 _0808A59C: ldr r2, _0808A5B4 movs r0, 0 movs r1, 0xFF movs r3, 0xFF bl sub_806AF4C _0808A5A8: ldr r0, _0808A5B8 bl SetMainCallback2 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808A5B4: .4byte sub_808A5BC _0808A5B8: .4byte sub_808A4D4 thumb_func_end sub_808A520 thumb_func_start sub_808A5BC sub_808A5BC: @ 808A5BC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808A5F0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808A5EA ldr r0, _0808A5F4 ldrb r0, [r0] ldr r1, _0808A5F8 ldrh r1, [r1] movs r2, 0 bl sub_806EBF0 ldr r1, _0808A5FC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0808A600 str r1, [r0] _0808A5EA: pop {r4} pop {r0} bx r0 .align 2, 0 _0808A5F0: .4byte 0x0202f388 _0808A5F4: .4byte 0x03005ce0 _0808A5F8: .4byte 0x0203855e _0808A5FC: .4byte 0x03004b20 _0808A600: .4byte sub_808A1E0 thumb_func_end sub_808A5BC thumb_func_start sub_808A604 sub_808A604: @ 808A604 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808A628 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808A622 ldr r0, _0808A62C bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _0808A622: pop {r4} pop {r0} bx r0 .align 2, 0 _0808A628: .4byte 0x0202f388 _0808A62C: .4byte sub_80A61D0 thumb_func_end sub_808A604 thumb_func_start sub_808A630 sub_808A630: @ 808A630 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_806CA38 ldr r1, _0808A66C strb r0, [r1] movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0808A670 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0808A674 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0808A66C: .4byte 0x0202e8f5 _0808A670: .4byte 0x03004b20 _0808A674: .4byte sub_808A604 thumb_func_end sub_808A630 thumb_func_start sub_808A678 sub_808A678: @ 808A678 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_808A8D4 pop {r0} bx r0 thumb_func_end sub_808A678 thumb_func_start sub_808A688 sub_808A688: @ 808A688 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC movs r0, 0x13 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset bl sub_806D5A4 ldr r1, _0808A6B4 adds r0, r4, 0 bl sub_806ECE8 pop {r4} pop {r0} bx r0 .align 2, 0 _0808A6B4: .4byte sub_808A678 thumb_func_end sub_808A688 thumb_func_start sub_808A6B8 sub_808A6B8: @ 808A6B8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC movs r0, 0x13 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset bl sub_806D5A4 ldr r1, _0808A6E4 adds r0, r4, 0 bl sub_806EE08 pop {r4} pop {r0} bx r0 .align 2, 0 _0808A6E4: .4byte sub_808A678 thumb_func_end sub_808A6B8 thumb_func_start sub_808A6E8 sub_808A6E8: @ 808A6E8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC ldr r1, _0808A728 movs r0, 0 strb r0, [r1] movs r0, 0x13 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset ldr r1, _0808A72C ldr r2, _0808A730 movs r0, 0 movs r3, 0 bl sub_806E750 ldr r1, _0808A734 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0808A738 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0808A728: .4byte 0x0202ffa8 _0808A72C: .4byte gUnknown_0839F584 _0808A730: .4byte gUnknown_0839F494 _0808A734: .4byte 0x03004b20 _0808A738: .4byte sub_808A73C thumb_func_end sub_808A6E8 thumb_func_start sub_808A73C sub_808A73C: @ 808A73C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0808A764 ldrh r0, [r0, 0x30] cmp r0, 0x40 bne _0808A77A movs r0, 0x5 bl audio_play ldr r4, _0808A768 ldrb r0, [r4] cmp r0, 0 bne _0808A770 ldr r0, _0808A76C ldrb r0, [r0] subs r0, 0x1 lsls r0, 24 asrs r0, 24 b _0808A774 .align 2, 0 _0808A764: .4byte 0x03001770 _0808A768: .4byte 0x0202ffa8 _0808A76C: .4byte gUnknown_0839F584 _0808A770: movs r0, 0x1 negs r0, r0 _0808A774: bl MoveMenuCursor strb r0, [r4] _0808A77A: ldr r0, _0808A7A0 ldrh r0, [r0, 0x30] cmp r0, 0x80 bne _0808A7B4 movs r0, 0x5 bl audio_play ldr r4, _0808A7A4 ldrb r0, [r4] ldr r1, _0808A7A8 ldrb r2, [r1] subs r1, r2, 0x1 cmp r0, r1 bne _0808A7AC movs r0, 0x1 subs r0, r2 lsls r0, 24 asrs r0, 24 b _0808A7AE .align 2, 0 _0808A7A0: .4byte 0x03001770 _0808A7A4: .4byte 0x0202ffa8 _0808A7A8: .4byte gUnknown_0839F584 _0808A7AC: movs r0, 0x1 _0808A7AE: bl MoveMenuCursor strb r0, [r4] _0808A7B4: ldr r0, _0808A7E0 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0808A7F0 movs r0, 0x5 bl audio_play ldr r1, _0808A7E4 ldr r2, _0808A7E8 ldr r0, _0808A7EC ldrb r3, [r0] movs r0, 0 bl sub_806E81C adds r1, r0, 0 adds r0, r5, 0 bl _call_via_r1 b _0808A806 .align 2, 0 _0808A7E0: .4byte 0x03001770 _0808A7E4: .4byte gUnknown_0839F584 _0808A7E8: .4byte gUnknown_0839F494 _0808A7EC: .4byte 0x0202ffa8 _0808A7F0: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0808A806 ldr r1, _0808A80C movs r0, 0 bl sub_806E7D0 adds r0, r5, 0 bl sub_808A918 _0808A806: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808A80C: .4byte gUnknown_0839F584 thumb_func_end sub_808A73C thumb_func_start sub_808A810 sub_808A810: @ 808A810 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, _0808A840 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0808A844 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0808A840: .4byte 0x03004b20 _0808A844: .4byte sub_808A848 thumb_func_end sub_808A810 thumb_func_start sub_808A848 sub_808A848: @ 808A848 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0808A898 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808A890 adds r0, r5, 0 bl sub_806CA38 lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0808A89C adds r0, r1 movs r1, 0x40 bl PokemonGetField adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 bl DestroyTask lsls r0, r4, 3 adds r0, r4 lsls r0, 2 ldr r1, _0808A8A0 adds r0, r1 ldr r1, _0808A8A4 movs r2, 0x1 bl sub_80F890C _0808A890: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808A898: .4byte 0x0202f388 _0808A89C: .4byte 0x03004360 _0808A8A0: .4byte 0x02028280 _0808A8A4: .4byte sub_808A8A8 thumb_func_end sub_808A848 thumb_func_start sub_808A8A8 sub_808A8A8: @ 808A8A8 push {lr} ldr r1, _0808A8C4 ldr r0, _0808A8C8 ldrb r0, [r0] strb r0, [r1] ldr r0, _0808A8CC ldr r1, _0808A8D0 adds r0, r1 movs r1, 0x4 strb r1, [r0] bl sub_8089F14 pop {r0} bx r0 .align 2, 0 _0808A8C4: .4byte 0x020384f0 _0808A8C8: .4byte 0x03005ce0 _0808A8CC: .4byte 0x0201b000 _0808A8D0: .4byte 0x00000262 thumb_func_end sub_808A8A8 thumb_func_start sub_808A8D4 sub_808A8D4: @ 808A8D4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _0808A90C movs r0, 0 strb r0, [r1] movs r0, 0x13 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset movs r0, 0 movs r1, 0 bl sub_806D538 ldr r1, _0808A910 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0808A914 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0808A90C: .4byte 0x0202ffa8 _0808A910: .4byte 0x03004b20 _0808A914: .4byte sub_8089CD4 thumb_func_end sub_808A8D4 thumb_func_start sub_808A918 sub_808A918: @ 808A918 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_808A8D4 pop {r4} pop {r0} bx r0 thumb_func_end sub_808A918 thumb_func_start sub_808A938 sub_808A938: @ 808A938 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC movs r0, 0x5 bl audio_play movs r0, 0x13 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset bl sub_806D5A4 ldr r0, _0808A978 ldrb r0, [r0] bl sub_8089C7C ldr r1, _0808A97C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0808A980 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0808A978: .4byte 0x0202ffa8 _0808A97C: .4byte 0x03004b20 _0808A980: .4byte sub_8089D94 thumb_func_end sub_808A938 thumb_func_start sub_808A984 sub_808A984: @ 808A984 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r6, r0, 3 ldr r7, _0808A9D0 adds r4, r6, r7 bl sub_8072DEC ldr r1, _0808A9D4 ldr r0, _0808A9D8 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] subs r0, 0xA strh r0, [r4, 0x16] bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0808A9DC movs r0, 0x13 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset ldrh r0, [r4, 0x16] subs r0, 0xB lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _0808AABA movs r0, 0x9 b _0808AAB2 .align 2, 0 _0808A9D0: .4byte 0x03004b28 _0808A9D4: .4byte 0x0202ffaa _0808A9D8: .4byte 0x0202ffa8 _0808A9DC: ldrh r1, [r4, 0x16] movs r2, 0x16 ldrsh r0, [r4, r2] cmp r0, 0x7 bgt _0808AA2C ldr r2, _0808AA20 adds r0, r1, r2 lsls r0, 16 lsrs r0, 16 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0808AA2C movs r0, 0x13 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset bl sub_806D5A4 ldr r0, _0808AA24 movs r1, 0x1 bl sub_806E834 adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0808AA28 str r1, [r0] b _0808AADA .align 2, 0 _0808AA20: .4byte 0x00000807 _0808AA24: .4byte gUnknown_0840F090 _0808AA28: .4byte sub_808AAF0 _0808AA2C: ldr r1, _0808AA78 movs r2, 0x16 ldrsh r0, [r4, r2] lsls r0, 3 adds r0, r1 ldr r0, [r0] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0808AA90 ldr r1, _0808AA7C movs r0, 0 strb r0, [r1] ldrh r0, [r4, 0x16] subs r0, 0xB lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _0808AA88 ldr r1, _0808AA80 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0808AA84 str r1, [r0] movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _0808AADA .align 2, 0 _0808AA78: .4byte gUnknown_0839F58C _0808AA7C: .4byte 0x0202ffa8 _0808AA80: .4byte 0x03004b20 _0808AA84: .4byte sub_808AB34 _0808AA88: adds r0, r5, 0 bl unref_sub_8133D28 b _0808AADA _0808AA90: movs r0, 0x13 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset movs r1, 0x16 ldrsh r0, [r4, r1] cmp r0, 0x4 bne _0808AABA movs r0, 0x8 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _0808AABA movs r0, 0x8 _0808AAB2: movs r1, 0 bl sub_806D538 b _0808AACC _0808AABA: ldr r0, _0808AAE4 movs r2, 0x16 ldrsh r1, [r4, r2] lsls r1, 3 adds r1, r0 ldrb r0, [r1, 0x4] movs r1, 0 bl sub_806D538 _0808AACC: ldr r0, _0808AAE8 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _0808AAEC str r0, [r1] _0808AADA: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808AAE4: .4byte gUnknown_0839F58C _0808AAE8: .4byte 0x03004b20 _0808AAEC: .4byte sub_808ABF4 thumb_func_end sub_808A984 thumb_func_start sub_808AAF0 sub_808AAF0: @ 808AAF0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808AB2C ldrb r0, [r0] cmp r0, 0x1 beq _0808AB24 ldr r0, _0808AB30 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0808AB12 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0808AB24 _0808AB12: movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl Reset adds r0, r4, 0 bl sub_808A918 _0808AB24: pop {r4} pop {r0} bx r0 .align 2, 0 _0808AB2C: .4byte 0x0202e8f6 _0808AB30: .4byte 0x03001770 thumb_func_end sub_808AAF0 thumb_func_start sub_808AB34 sub_808AB34: @ 808AB34 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808AB6C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808AB84 ldr r0, _0808AB70 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r2, 0x1E ldrsh r0, [r1, r2] cmp r0, 0x5 bne _0808AB62 bl sub_8147588 lsls r0, 24 cmp r0, 0 beq _0808AB78 _0808AB62: ldr r0, _0808AB74 bl SetMainCallback2 b _0808AB7E .align 2, 0 _0808AB6C: .4byte 0x0202f388 _0808AB70: .4byte 0x03004b20 _0808AB74: .4byte c2_exit_to_overworld_2_switch _0808AB78: ldr r0, _0808AB8C bl SetMainCallback2 _0808AB7E: adds r0, r4, 0 bl DestroyTask _0808AB84: pop {r4} pop {r0} bx r0 .align 2, 0 _0808AB8C: .4byte sub_80FC074 thumb_func_end sub_808AB34 thumb_func_start sub_808AB90 sub_808AB90: @ 808AB90 push {lr} bl pal_fill_black ldr r0, _0808ABA4 movs r1, 0x8 bl CreateTask pop {r0} bx r0 .align 2, 0 _0808ABA4: .4byte sub_808ABA8 thumb_func_end sub_808AB90 thumb_func_start sub_808ABA8 sub_808ABA8: @ 808ABA8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0808ABDE ldr r0, _0808ABE4 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0808ABE8 adds r0, r1 movs r1, 0xB bl PokemonGetField ldr r1, _0808ABEC str r0, [r1] ldr r0, _0808ABF0 ldr r0, [r0] bl _call_via_r0 adds r0, r4, 0 bl DestroyTask _0808ABDE: pop {r4} pop {r0} bx r0 .align 2, 0 _0808ABE4: .4byte 0x03005ce0 _0808ABE8: .4byte 0x03004360 _0808ABEC: .4byte 0x0202ff84 _0808ABF0: .4byte 0x03005ce4 thumb_func_end sub_808ABA8 thumb_func_start sub_808ABF4 sub_808ABF4: @ 808ABF4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808AC28 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0808AC0E movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0808AC20 _0808AC0E: movs r0, 0x1 movs r1, 0x11 movs r2, 0x1C movs r3, 0x12 bl Reset adds r0, r4, 0 bl sub_808A918 _0808AC20: pop {r4} pop {r0} bx r0 .align 2, 0 _0808AC28: .4byte 0x03001770 thumb_func_end sub_808ABF4 thumb_func_start sub_808AC2C sub_808AC2C: @ 808AC2C push {lr} ldr r0, _0808AC40 ldr r1, _0808AC44 ldrb r1, [r1] str r1, [r0] movs r0, 0x9 bl FieldEffectStart pop {r0} bx r0 .align 2, 0 _0808AC40: .4byte 0x0202ff84 _0808AC44: .4byte 0x03005ce0 thumb_func_end sub_808AC2C thumb_func_start sub_808AC48 sub_808AC48: @ 808AC48 push {lr} bl PartyHasMonWithSurf lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0808AC84 bl IsPlayerFacingSurfableFishableWater lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0808AC84 ldr r1, _0808AC74 ldr r0, _0808AC78 str r0, [r1] ldr r1, _0808AC7C ldr r0, _0808AC80 str r0, [r1] movs r0, 0x1 b _0808AC86 .align 2, 0 _0808AC74: .4byte 0x0300485c _0808AC78: .4byte sub_808AB90 _0808AC7C: .4byte 0x03005ce4 _0808AC80: .4byte sub_808AC2C _0808AC84: movs r0, 0 _0808AC86: pop {r1} bx r1 thumb_func_end sub_808AC48 thumb_func_start sub_808AC8C sub_808AC8C: @ 808AC8C push {lr} ldr r0, _0808ACA0 ldr r1, _0808ACA4 ldrb r1, [r1] str r1, [r0] movs r0, 0x1F bl FieldEffectStart pop {r0} bx r0 .align 2, 0 _0808ACA0: .4byte 0x0202ff84 _0808ACA4: .4byte 0x03005ce0 thumb_func_end sub_808AC8C thumb_func_start sub_808ACA8 sub_808ACA8: @ 808ACA8 push {lr} bl sub_8147588 lsls r0, 24 cmp r0, 0 beq _0808ACD0 ldr r1, _0808ACC0 ldr r0, _0808ACC4 str r0, [r1] ldr r1, _0808ACC8 ldr r0, _0808ACCC b _0808ACF2 .align 2, 0 _0808ACC0: .4byte 0x0300485c _0808ACC4: .4byte sub_808AB90 _0808ACC8: .4byte 0x03005ce4 _0808ACCC: .4byte sub_81475C4 _0808ACD0: ldr r0, _0808ACE4 ldrb r0, [r0, 0x17] bl is_light_level_1_2_3_or_6 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0808ACE8 movs r0, 0 b _0808ACF6 .align 2, 0 _0808ACE4: .4byte 0x0202e828 _0808ACE8: ldr r1, _0808ACFC ldr r0, _0808AD00 str r0, [r1] ldr r1, _0808AD04 ldr r0, _0808AD08 _0808ACF2: str r0, [r1] movs r0, 0x1 _0808ACF6: pop {r1} bx r1 .align 2, 0 _0808ACFC: .4byte 0x0300485c _0808AD00: .4byte sub_808AB90 _0808AD04: .4byte 0x03005ce4 _0808AD08: .4byte sub_808AC8C thumb_func_end sub_808ACA8 thumb_func_start sub_808AD0C sub_808AD0C: @ 808AD0C push {r4,lr} ldr r4, _0808AD14 b _0808AD24 .align 2, 0 _0808AD14: .4byte 0x0201b260 _0808AD18: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0808AD48 _0808AD24: bl sub_806B124 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0808AD18 ldrb r0, [r4] ldr r1, _0808AD50 ldrb r1, [r1] bl sub_806C994 ldrb r0, [r4] movs r1, 0 bl sub_806BF74 ldr r0, _0808AD54 bl SetMainCallback2 _0808AD48: pop {r4} pop {r0} bx r0 .align 2, 0 _0808AD50: .4byte 0x03005ce0 _0808AD54: .4byte sub_806AEDC thumb_func_end sub_808AD0C thumb_func_start sub_808AD58 sub_808AD58: @ 808AD58 push {lr} ldr r2, _0808AD7C ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r2, _0808AD80 movs r0, 0 movs r1, 0xFF movs r3, 0 bl sub_806AF4C ldr r0, _0808AD84 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0808AD7C: .4byte 0x0202f388 _0808AD80: .4byte sub_8089CD4 _0808AD84: .4byte sub_808AD0C thumb_func_end sub_808AD58 thumb_func_start unref_sub_808AD88 unref_sub_808AD88: @ 808AD88 push {lr} ldr r0, _0808ADA4 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0808ADA8 adds r0, r1 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .align 2, 0 _0808ADA4: .4byte 0x03005ce0 _0808ADA8: .4byte 0x03004360 thumb_func_end unref_sub_808AD88 thumb_func_start sub_808ADAC sub_808ADAC: @ 808ADAC push {lr} ldr r0, _0808ADC0 ldr r1, _0808ADC4 ldrb r1, [r1] str r1, [r0] movs r0, 0x2C bl FieldEffectStart pop {r0} bx r0 .align 2, 0 _0808ADC0: .4byte 0x0202ff84 _0808ADC4: .4byte 0x03005ce0 thumb_func_end sub_808ADAC thumb_func_start sub_808ADC8 sub_808ADC8: @ 808ADC8 push {lr} bl sub_8068F18 ldr r1, _0808ADE0 lsls r0, 24 lsrs r0, 24 str r0, [r1, 0x4] cmp r0, 0 bne _0808ADE4 movs r0, 0 b _0808ADF2 .align 2, 0 _0808ADE0: .4byte 0x0202ff84 _0808ADE4: ldr r1, _0808ADF8 ldr r0, _0808ADFC str r0, [r1] ldr r1, _0808AE00 ldr r0, _0808AE04 str r0, [r1] movs r0, 0x1 _0808ADF2: pop {r1} bx r1 .align 2, 0 _0808ADF8: .4byte 0x0300485c _0808ADFC: .4byte sub_808AB90 _0808AE00: .4byte 0x03005ce4 _0808AE04: .4byte sub_808ADAC thumb_func_end sub_808ADC8 thumb_func_start sub_808AE08 sub_808AE08: @ 808AE08 push {lr} ldr r0, _0808AE1C ldr r1, _0808AE20 ldrb r1, [r1] str r1, [r0] movs r0, 0x2B bl FieldEffectStart pop {r0} bx r0 .align 2, 0 _0808AE1C: .4byte 0x0202ff84 _0808AE20: .4byte 0x03005ce0 thumb_func_end sub_808AE08 thumb_func_start hm_prepare_waterfall hm_prepare_waterfall: @ 808AE24 push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl MetatileBehavior_IsWaterfall lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0808AE80 bl IsPlayerSurfingNorth lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0808AE80 ldr r1, _0808AE70 ldr r0, _0808AE74 str r0, [r1] ldr r1, _0808AE78 ldr r0, _0808AE7C str r0, [r1] movs r0, 0x1 b _0808AE82 .align 2, 0 _0808AE70: .4byte 0x0300485c _0808AE74: .4byte sub_808AB90 _0808AE78: .4byte 0x03005ce4 _0808AE7C: .4byte sub_808AE08 _0808AE80: movs r0, 0 _0808AE82: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end hm_prepare_waterfall thumb_func_start sub_808AE8C sub_808AE8C: @ 808AE8C push {r4-r6,lr} ldr r0, _0808AED8 ldrb r0, [r0] subs r0, 0x21 lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 _0808AE9A: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _0808AEDC adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0808AF10 adds r0, r5, 0 bl sub_806D668 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _0808AECE adds r0, r4, 0 adds r1, r6, 0 bl sub_8040374 cmp r0, 0 bne _0808AEE0 _0808AECE: adds r0, r5, 0 movs r1, 0x9A bl sub_806BC3C b _0808AF10 .align 2, 0 _0808AED8: .4byte 0x0203855e _0808AEDC: .4byte 0x03004360 _0808AEE0: ldr r0, _0808AF04 ldrh r0, [r0] bl ItemIdToBattleMoveId adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl pokemon_has_move lsls r0, 24 cmp r0, 0 beq _0808AF08 adds r0, r5, 0 movs r1, 0xA8 bl sub_806BC3C b _0808AF10 .align 2, 0 _0808AF04: .4byte 0x0203855e _0808AF08: adds r0, r5, 0 movs r1, 0x8C bl sub_806BC3C _0808AF10: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _0808AE9A pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_808AE8C thumb_func_start sub_808AF20 sub_808AF20: @ 808AF20 push {r4,r5,lr} movs r5, 0 _0808AF24: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _0808AF78 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0808AF66 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _0808AF58 ldr r0, _0808AF7C ldrh r2, [r0] adds r0, r4, 0 movs r1, 0x3 bl GetEvolutionTargetSpecies lsls r0, 16 cmp r0, 0 bne _0808AF66 _0808AF58: adds r0, r5, 0 bl sub_806D668 adds r0, r5, 0 movs r1, 0 bl sub_806BC3C _0808AF66: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _0808AF24 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808AF78: .4byte 0x03004360 _0808AF7C: .4byte 0x0203855e thumb_func_end sub_808AF20 thumb_func_start sub_808AF80 sub_808AF80: @ 808AF80 push {r4,r5,lr} ldr r5, _0808AFB0 _0808AF84: bl sub_806B124 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0808B00C ldr r0, _0808AFB4 ldrb r0, [r0] cmp r0, 0 bne _0808AFC6 ldr r0, _0808AFB8 ldrh r0, [r0] bl CheckIfItemIsTMHMOrEvolutionStone lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0808AFBC cmp r0, 0x2 beq _0808AFC2 b _0808AFC6 .align 2, 0 _0808AFB0: .4byte 0x0201b260 _0808AFB4: .4byte 0x02038561 _0808AFB8: .4byte 0x0203855e _0808AFBC: bl sub_808AE8C b _0808AFC6 _0808AFC2: bl sub_808AF20 _0808AFC6: ldr r4, _0808B000 ldrb r0, [r4] cmp r0, 0x5 bhi _0808AFE2 adds r1, r0, 0 movs r0, 0x64 muls r0, r1 ldr r1, _0808B004 adds r0, r1 movs r1, 0xB bl PokemonGetField cmp r0, 0 bne _0808AFE6 _0808AFE2: movs r0, 0 strb r0, [r4] _0808AFE6: ldrb r0, [r5] ldr r1, _0808B000 ldrb r1, [r1] bl sub_806C994 ldrb r0, [r5] movs r1, 0 bl sub_806BF74 ldr r0, _0808B008 bl SetMainCallback2 b _0808B018 .align 2, 0 _0808B000: .4byte 0x03005ce0 _0808B004: .4byte 0x03004360 _0808B008: .4byte sub_806AEDC _0808B00C: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0808AF84 _0808B018: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_808AF80 thumb_func_start sub_808B020 sub_808B020: @ 808B020 push {lr} ldr r2, _0808B040 ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r0, _0808B044 ldrb r0, [r0] cmp r0, 0x1 beq _0808B0A0 cmp r0, 0x1 bgt _0808B048 cmp r0, 0 beq _0808B052 b _0808B0AC .align 2, 0 _0808B040: .4byte 0x0202f388 _0808B044: .4byte 0x02038561 _0808B048: cmp r0, 0x3 beq _0808B0A0 cmp r0, 0x4 beq _0808B08C b _0808B0AC _0808B052: ldr r0, _0808B070 ldrh r0, [r0] bl CheckIfItemIsTMHMOrEvolutionStone lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0808B078 ldr r2, _0808B074 movs r0, 0 movs r1, 0 movs r3, 0x14 bl sub_806AF4C b _0808B0AC .align 2, 0 _0808B070: .4byte 0x0203855e _0808B074: .4byte sub_808B0C0 _0808B078: ldr r2, _0808B088 movs r0, 0 movs r1, 0 movs r3, 0x3 bl sub_806AF4C b _0808B0AC .align 2, 0 _0808B088: .4byte sub_808B0C0 _0808B08C: ldr r2, _0808B09C movs r0, 0 movs r1, 0 movs r3, 0xFF bl sub_806AF4C b _0808B0AC .align 2, 0 _0808B09C: .4byte sub_808B1EC _0808B0A0: ldr r2, _0808B0B8 movs r0, 0 movs r1, 0 movs r3, 0x4 bl sub_806AF4C _0808B0AC: ldr r0, _0808B0BC bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0808B0B8: .4byte sub_808B0C0 _0808B0BC: .4byte sub_808AF80 thumb_func_end sub_808B020 thumb_func_start sub_808B0C0 sub_808B0C0: @ 808B0C0 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808B0EC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0808B1CE adds r0, r4, 0 bl sub_806BD80 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 beq _0808B0F0 cmp r0, 0x2 beq _0808B184 b _0808B1CE .align 2, 0 _0808B0EC: .4byte 0x0202f388 _0808B0F0: adds r0, r4, 0 bl sub_806CA38 ldr r1, _0808B118 strb r0, [r1] ldrb r1, [r1] movs r0, 0x64 muls r0, r1 ldr r1, _0808B11C adds r0, r1 movs r1, 0x2D bl PokemonGetField cmp r0, 0 beq _0808B120 movs r0, 0x20 bl audio_play b _0808B1CE .align 2, 0 _0808B118: .4byte 0x03005ce0 _0808B11C: .4byte 0x03004360 _0808B120: bl sub_806D5A4 ldr r5, _0808B16C ldrb r0, [r5] cmp r0, 0 bne _0808B13C ldr r3, _0808B170 ldr r0, _0808B174 ldrh r1, [r0] ldr r2, _0808B178 ldr r3, [r3] adds r0, r4, 0 bl _call_via_r3 _0808B13C: ldrb r0, [r5] cmp r0, 0x1 bne _0808B154 movs r0, 0x5 bl audio_play ldr r0, _0808B174 ldrh r1, [r0] ldr r2, _0808B17C adds r0, r4, 0 bl sub_806E964 _0808B154: ldrb r0, [r5] cmp r0, 0x3 bne _0808B1CE movs r0, 0x5 bl audio_play ldr r1, _0808B180 adds r0, r4, 0 bl sub_806EC44 b _0808B1CE .align 2, 0 _0808B16C: .4byte 0x02038561 _0808B170: .4byte 0x03004ae4 _0808B174: .4byte 0x0203855e _0808B178: .4byte sub_808B224 _0808B17C: .4byte sub_808B2EC _0808B180: .4byte sub_808B2B4 _0808B184: adds r0, r4, 0 bl sub_806CA38 ldr r1, _0808B1D8 strb r0, [r1] movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r2, _0808B1DC ldrb r0, [r2] cmp r0, 0x1 bhi _0808B1BA ldr r0, _0808B1E0 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0808B1E4 str r0, [r1] _0808B1BA: ldrb r0, [r2] cmp r0, 0x3 bne _0808B1CE ldr r0, _0808B1E0 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0808B1E8 str r0, [r1] _0808B1CE: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808B1D8: .4byte 0x03005ce0 _0808B1DC: .4byte 0x02038561 _0808B1E0: .4byte 0x03004b20 _0808B1E4: .4byte sub_808B25C _0808B1E8: .4byte sub_808B2B4 thumb_func_end sub_808B0C0 thumb_func_start sub_808B1EC sub_808B1EC: @ 808B1EC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808B214 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808B20E ldr r3, _0808B218 ldr r0, _0808B21C ldrh r1, [r0] ldr r2, _0808B220 ldr r3, [r3] adds r0, r4, 0 bl _call_via_r3 _0808B20E: pop {r4} pop {r0} bx r0 .align 2, 0 _0808B214: .4byte 0x0202f388 _0808B218: .4byte 0x03004ae4 _0808B21C: .4byte 0x0203855e _0808B220: .4byte sub_808B224 thumb_func_end sub_808B1EC thumb_func_start sub_808B224 sub_808B224: @ 808B224 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, _0808B254 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0808B258 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0808B254: .4byte 0x03004b20 _0808B258: .4byte sub_808B25C thumb_func_end sub_808B224 thumb_func_start sub_808B25C sub_808B25C: @ 808B25C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808B280 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808B27A ldr r0, _0808B284 bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _0808B27A: pop {r4} pop {r0} bx r0 .align 2, 0 _0808B280: .4byte 0x0202f388 _0808B284: .4byte sub_80A5B40 thumb_func_end sub_808B25C thumb_func_start sub_808B288 sub_808B288: @ 808B288 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808B2AC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808B2A6 ldr r0, _0808B2B0 bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _0808B2A6: pop {r4} pop {r0} bx r0 .align 2, 0 _0808B2AC: .4byte 0x0202f388 _0808B2B0: .4byte sub_813B6F8 thumb_func_end sub_808B288 thumb_func_start sub_808B2B4 sub_808B2B4: @ 808B2B4 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, _0808B2E4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0808B2E8 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0808B2E4: .4byte 0x03004b20 _0808B2E8: .4byte sub_808B288 thumb_func_end sub_808B2B4 thumb_func_start sub_808B2EC sub_808B2EC: @ 808B2EC push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808B31C ldrb r0, [r0] cmp r0, 0x2 bne _0808B328 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0808B320 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0808B324 str r1, [r0] b _0808B32E .align 2, 0 _0808B31C: .4byte 0x0202e8f4 _0808B320: .4byte 0x03004b20 _0808B324: .4byte sub_808B338 _0808B328: adds r0, r4, 0 bl sub_808B224 _0808B32E: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_808B2EC thumb_func_start sub_808B338 sub_808B338: @ 808B338 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0808B38C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808B384 adds r0, r5, 0 bl sub_806CA38 ldr r1, _0808B390 strb r0, [r1] ldrb r1, [r1] movs r0, 0x64 muls r0, r1 ldr r1, _0808B394 adds r0, r1 movs r1, 0x40 bl PokemonGetField adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 bl DestroyTask lsls r1, r4, 3 adds r1, r4 lsls r1, 2 ldr r0, _0808B398 adds r1, r0 ldr r2, _0808B39C movs r0, 0x4 movs r3, 0x3 bl sub_80E62A0 _0808B384: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808B38C: .4byte 0x0202f388 _0808B390: .4byte 0x03005ce0 _0808B394: .4byte 0x03004360 _0808B398: .4byte 0x02028280 _0808B39C: .4byte sub_808B3EC thumb_func_end sub_808B338 thumb_func_start sub_808B3A0 sub_808B3A0: @ 808B3A0 push {r4,lr} ldr r4, _0808B3A8 b _0808B3B8 .align 2, 0 _0808B3A8: .4byte 0x0201b260 _0808B3AC: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0808B3DC _0808B3B8: bl sub_806B124 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0808B3AC ldrb r0, [r4] ldr r1, _0808B3E4 ldrb r1, [r1] bl sub_806C994 ldrb r0, [r4] movs r1, 0 bl sub_806BF74 ldr r0, _0808B3E8 bl SetMainCallback2 _0808B3DC: pop {r4} pop {r0} bx r0 .align 2, 0 _0808B3E4: .4byte 0x03005ce0 _0808B3E8: .4byte sub_806AEDC thumb_func_end sub_808B3A0 thumb_func_start sub_808B3EC sub_808B3EC: @ 808B3EC push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _0808B464 mov r8, r0 ldrb r0, [r0, 0x8] movs r1, 0x80 orrs r0, r1 mov r1, r8 strb r0, [r1, 0x8] ldr r0, _0808B468 ldrh r0, [r0] cmp r0, 0 bne _0808B480 ldr r7, _0808B46C ldrh r0, [r7] cmp r0, 0 beq _0808B416 movs r1, 0x1 bl sub_80A9538 _0808B416: ldr r6, _0808B470 ldrb r0, [r6] movs r5, 0x64 muls r0, r5 ldr r4, _0808B474 adds r0, r4 movs r1, 0xC bl PokemonGetField lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl sub_80A9424 ldrb r0, [r6] muls r0, r5 adds r0, r4 bl sub_80A2DF8 ldrb r0, [r6] muls r0, r5 adds r0, r4 movs r1, 0xC adds r2, r7, 0 bl pokemon_setattr ldr r0, _0808B478 movs r1, 0x5 bl CreateTask mov r0, r8 ldrb r1, [r0, 0x8] movs r0, 0x7F ands r0, r1 mov r1, r8 strb r0, [r1, 0x8] ldr r0, _0808B47C b _0808B48E .align 2, 0 _0808B464: .4byte 0x0202f388 _0808B468: .4byte 0x0202e8dc _0808B46C: .4byte 0x0202e8f8 _0808B470: .4byte 0x03005ce0 _0808B474: .4byte 0x03004360 _0808B478: .4byte sub_808B25C _0808B47C: .4byte sub_806AEDC _0808B480: ldr r2, _0808B49C movs r0, 0 movs r1, 0 movs r3, 0xFF bl sub_806AF4C ldr r0, _0808B4A0 _0808B48E: bl SetMainCallback2 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808B49C: .4byte sub_808B4A4 _0808B4A0: .4byte sub_808B3A0 thumb_func_end sub_808B3EC thumb_func_start sub_808B4A4 sub_808B4A4: @ 808B4A4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808B4D8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808B4D2 ldr r0, _0808B4DC ldrb r0, [r0] ldr r1, _0808B4E0 ldrh r1, [r1] movs r2, 0x1 bl sub_806EBF0 ldr r1, _0808B4E4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0808B4E8 str r1, [r0] _0808B4D2: pop {r4} pop {r0} bx r0 .align 2, 0 _0808B4D8: .4byte 0x0202f388 _0808B4DC: .4byte 0x03005ce0 _0808B4E0: .4byte 0x0203855e _0808B4E4: .4byte 0x03004b20 _0808B4E8: .4byte sub_808B4EC thumb_func_end sub_808B4A4 thumb_func_start sub_808B4EC sub_808B4EC: @ 808B4EC push {lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _0808B504 ldrb r0, [r0] cmp r0, 0x1 beq _0808B500 adds r0, r1, 0 bl sub_808B224 _0808B500: pop {r0} bx r0 .align 2, 0 _0808B504: .4byte 0x0202e8f6 thumb_func_end sub_808B4EC thumb_func_start sub_808B508 sub_808B508: @ 808B508 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_808B224 pop {r0} bx r0 thumb_func_end sub_808B508 thumb_func_start sub_808B518 sub_808B518: @ 808B518 push {r4,lr} ldr r4, _0808B520 b _0808B530 .align 2, 0 _0808B520: .4byte 0x0201b260 _0808B524: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0808B554 _0808B530: bl sub_806B124 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0808B524 ldrb r0, [r4] ldr r1, _0808B55C ldrb r1, [r1] bl sub_806C994 ldrb r0, [r4] movs r1, 0 bl sub_806BF74 ldr r0, _0808B560 bl SetMainCallback2 _0808B554: pop {r4} pop {r0} bx r0 .align 2, 0 _0808B55C: .4byte 0x020384f0 _0808B560: .4byte sub_806AEDC thumb_func_end sub_808B518 thumb_func_start sub_808B564 sub_808B564: @ 808B564 push {lr} ldr r2, _0808B58C ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] bl sub_809FA30 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 beq _0808B594 ldr r2, _0808B590 movs r0, 0 movs r1, 0 movs r3, 0xFF bl sub_806AF4C b _0808B5A0 .align 2, 0 _0808B58C: .4byte 0x0202f388 _0808B590: .4byte sub_806F490 _0808B594: ldr r2, _0808B5AC movs r0, 0 movs r1, 0 movs r3, 0xFF bl sub_806AF4C _0808B5A0: ldr r0, _0808B5B0 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0808B5AC: .4byte sub_806F588 _0808B5B0: .4byte sub_808B518 thumb_func_end sub_808B564 thumb_func_start sub_808B5B4 sub_808B5B4: @ 808B5B4 push {lr} ldr r3, _0808B5D8 ldr r2, _0808B5DC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, [r1] str r2, [r3] ldr r2, _0808B5E0 str r2, [r1] lsls r0, 24 lsrs r0, 24 bl _call_via_r2 pop {r0} bx r0 .align 2, 0 _0808B5D8: .4byte 0x03005cf0 _0808B5DC: .4byte 0x03004b20 _0808B5E0: .4byte sub_808B5E4 thumb_func_end sub_808B5B4 thumb_func_start sub_808B5E4 sub_808B5E4: @ 808B5E4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8055870 cmp r0, 0x1 beq _0808B602 ldr r1, _0808B608 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0808B60C ldr r1, [r1] str r1, [r0] _0808B602: pop {r4} pop {r0} bx r0 .align 2, 0 _0808B608: .4byte 0x03004b20 _0808B60C: .4byte 0x03005cf0 thumb_func_end sub_808B5E4 thumb_func_start sub_808B610 sub_808B610: @ 808B610 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_808B610 thumb_func_start sub_808B628 sub_808B628: @ 808B628 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_808B628 thumb_func_start CB2_InitOptionMenu CB2_InitOptionMenu: @ 808B63C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC ldr r0, _0808B65C ldr r1, _0808B660 adds r0, r1 ldrb r0, [r0] cmp r0, 0x9 bhi _0808B690 lsls r0, 2 ldr r1, _0808B664 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0808B65C: .4byte 0x03001770 _0808B660: .4byte 0x0000043c _0808B664: .4byte _0808B668 .align 2, 0 _0808B668: .4byte _0808B690 .4byte _0808B758 .4byte _0808B76A .4byte _0808B784 .4byte _0808B790 .4byte _0808B7AC .4byte _0808B7D0 .4byte _0808B7F0 .4byte _0808B874 .4byte _0808B9AC _0808B690: movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 19 movs r1, 0 strh r1, [r0] adds r0, 0xC strh r1, [r0] subs r0, 0x2 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x10 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 add r2, sp, 0x8 mov r8, r2 add r2, sp, 0x4 movs r6, 0 ldr r1, _0808B748 movs r5, 0x80 lsls r5, 5 ldr r7, _0808B74C movs r0, 0x81 lsls r0, 24 mov r12, r0 _0808B6E0: strh r6, [r2] add r0, sp, 0x4 str r0, [r1] str r3, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r5 subs r4, r5 cmp r4, r5 bhi _0808B6E0 strh r6, [r2] add r2, sp, 0x4 str r2, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0xE0 lsls r0, 19 movs r3, 0x80 lsls r3, 3 movs r4, 0 str r4, [sp, 0x8] ldr r2, _0808B748 mov r1, r8 str r1, [r2] str r0, [r2, 0x4] lsrs r0, r3, 2 movs r1, 0x85 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xA0 lsls r1, 19 add r0, sp, 0x4 strh r4, [r0] str r0, [r2] str r1, [r2, 0x4] lsrs r3, 1 movs r0, 0x81 lsls r0, 24 orrs r3, r0 str r3, [r2, 0x8] ldr r0, [r2, 0x8] ldr r1, _0808B750 ldr r2, _0808B754 adds r1, r2 b _0808B962 .align 2, 0 _0808B748: .4byte 0x040000d4 _0808B74C: .4byte 0x81000800 _0808B750: .4byte 0x03001770 _0808B754: .4byte 0x0000043c _0808B758: bl ResetPaletteFade bl remove_some_task bl ResetTasks bl ResetSpriteData b _0808B95C _0808B76A: ldr r0, _0808B778 bl SetUpWindowConfig ldr r1, _0808B77C ldr r2, _0808B780 adds r1, r2 b _0808B962 .align 2, 0 _0808B778: .4byte gWindowConfig_81E71B4 _0808B77C: .4byte 0x03001770 _0808B780: .4byte 0x0000043c _0808B784: ldr r0, _0808B78C bl sub_8071C58 b _0808B95C .align 2, 0 _0808B78C: .4byte gWindowConfig_81E71B4 _0808B790: bl sub_8071C94 cmp r0, 0 bne _0808B79A b _0808B9B2 _0808B79A: ldr r1, _0808B7A4 ldr r2, _0808B7A8 adds r1, r2 b _0808B962 .align 2, 0 _0808B7A4: .4byte 0x03001770 _0808B7A8: .4byte 0x0000043c _0808B7AC: ldr r0, _0808B7C4 movs r1, 0x80 movs r2, 0x40 bl LoadPalette ldr r0, _0808B7C8 ldr r1, _0808B7CC movs r2, 0x20 bl CpuSet b _0808B95C .align 2, 0 _0808B7C4: .4byte gUnknown_0839F5FC _0808B7C8: .4byte gUnknown_0839F63C _0808B7CC: .4byte 0x0600bee0 _0808B7D0: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _0808B7E8 ldr r2, _0808B7EC adds r1, r2 b _0808B962 .align 2, 0 _0808B7E8: .4byte 0x03001770 _0808B7EC: .4byte 0x0000043c _0808B7F0: ldr r0, _0808B850 movs r4, 0 strh r4, [r0] adds r0, 0x4 strh r4, [r0] subs r0, 0x2 strh r4, [r0] adds r0, 0x4 strh r4, [r0] ldr r1, _0808B854 ldr r2, _0808B858 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x31 strh r0, [r1] adds r1, 0x6 movs r0, 0xE1 strh r0, [r1] ldr r0, _0808B85C strh r4, [r0] adds r1, 0x4 movs r0, 0x7 strh r0, [r1] ldr r3, _0808B860 ldrh r2, [r3] strh r4, [r3] ldr r4, _0808B864 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _0808B868 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _0808B86C bl SetVBlankCallback movs r1, 0x80 lsls r1, 19 ldr r2, _0808B870 adds r0, r2, 0 strh r0, [r1] b _0808B95C .align 2, 0 _0808B850: .4byte REG_WIN0H _0808B854: .4byte REG_WININ _0808B858: .4byte 0x00001111 _0808B85C: .4byte REG_BLDALPHA _0808B860: .4byte 0x04000208 _0808B864: .4byte 0x04000200 _0808B868: .4byte REG_DISPSTAT _0808B86C: .4byte sub_808B628 _0808B870: .4byte 0x00007140 _0808B874: ldr r0, _0808B96C movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r1, _0808B970 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r0, 0 strh r0, [r4, 0x8] ldr r1, _0808B974 ldrb r0, [r1, 0x14] lsls r0, 29 lsrs r0, 29 strh r0, [r4, 0xA] ldrb r0, [r1, 0x15] lsls r0, 29 lsrs r0, 31 strh r0, [r4, 0xC] ldrb r0, [r1, 0x15] lsls r0, 30 lsrs r0, 31 strh r0, [r4, 0xE] ldrb r0, [r1, 0x15] lsls r0, 31 lsrs r0, 31 strh r0, [r4, 0x10] ldrb r0, [r1, 0x13] strh r0, [r4, 0x12] ldrb r0, [r1, 0x14] lsrs r0, 3 strh r0, [r4, 0x14] movs r0, 0x2 movs r1, 0 movs r2, 0x1B movs r3, 0x3 bl DrawDefaultWindow movs r0, 0x2 movs r1, 0x4 movs r2, 0x1B movs r3, 0x13 bl DrawDefaultWindow ldr r0, _0808B978 movs r1, 0x4 movs r2, 0x1 bl Print ldr r0, _0808B97C movs r1, 0x4 movs r2, 0x5 bl Print ldr r0, _0808B980 movs r1, 0x4 movs r2, 0x7 bl Print ldr r0, _0808B984 movs r1, 0x4 movs r2, 0x9 bl Print ldr r0, _0808B988 movs r1, 0x4 movs r2, 0xB bl Print ldr r0, _0808B98C movs r1, 0x4 movs r2, 0xD bl Print ldr r0, _0808B990 movs r1, 0x4 movs r2, 0xF bl Print ldr r0, _0808B994 movs r1, 0x4 movs r2, 0x11 bl Print ldrb r0, [r4, 0xA] bl sub_808BCF8 ldrb r0, [r4, 0xC] bl sub_808BD6C ldrb r0, [r4, 0xE] bl sub_808BDCC ldrb r0, [r4, 0x10] bl sub_808BE34 ldrb r0, [r4, 0x12] bl sub_808BFD8 ldrb r0, [r4, 0x14] bl sub_808BECC ldr r1, _0808B998 ldr r2, _0808B99C adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _0808B9A0 adds r0, r2, 0 strh r0, [r1] ldrb r0, [r4, 0x8] bl sub_808BC3C _0808B95C: ldr r1, _0808B9A4 ldr r0, _0808B9A8 adds r1, r0 _0808B962: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0808B9B2 .align 2, 0 _0808B96C: .4byte sub_808B9C4 _0808B970: .4byte 0x03004b20 _0808B974: .4byte gSaveBlock2 _0808B978: .4byte gUnknown_0842C3A6 _0808B97C: .4byte gUnknown_0842C3B0 _0808B980: .4byte gUnknown_0842C3BE _0808B984: .4byte gUnknown_0842C3CE _0808B988: .4byte gUnknown_0842C3DE _0808B98C: .4byte gUnknown_0842C3FA _0808B990: .4byte gUnknown_0842C3E7 _0808B994: .4byte gUnknown_0842C3F0 _0808B998: .4byte REG_WIN0H _0808B99C: .4byte 0x000011df _0808B9A0: .4byte 0x0000011f _0808B9A4: .4byte 0x03001770 _0808B9A8: .4byte 0x0000043c _0808B9AC: ldr r0, _0808B9C0 bl SetMainCallback2 _0808B9B2: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808B9C0: .4byte sub_808B610 thumb_func_end CB2_InitOptionMenu thumb_func_start sub_808B9C4 sub_808B9C4: @ 808B9C4 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0808B9E8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808B9E4 ldr r0, _0808B9EC lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _0808B9F0 str r0, [r1] _0808B9E4: pop {r0} bx r0 .align 2, 0 _0808B9E8: .4byte 0x0202f388 _0808B9EC: .4byte 0x03004b20 _0808B9F0: .4byte sub_808B9F4 thumb_func_end sub_808B9C4 thumb_func_start sub_808B9F4 sub_808B9F4: @ 808B9F4 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808BA1C ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0808BA24 ldr r0, _0808BA20 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0x6 beq _0808BA1A b _0808BB7A _0808BA1A: b _0808BA36 .align 2, 0 _0808BA1C: .4byte 0x03001770 _0808BA20: .4byte 0x03004b20 _0808BA24: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0808BA44 ldr r0, _0808BA3C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 _0808BA36: ldr r0, _0808BA40 str r0, [r1] b _0808BB7A .align 2, 0 _0808BA3C: .4byte 0x03004b20 _0808BA40: .4byte sub_808BB80 _0808BA44: movs r0, 0x40 ands r0, r1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0 beq _0808BA74 ldr r1, _0808BA6C lsls r2, r4, 2 adds r0, r2, r4 lsls r0, 3 adds r3, r0, r1 ldrh r5, [r3, 0x8] movs r6, 0x8 ldrsh r0, [r3, r6] adds r7, r1, 0 cmp r0, 0 ble _0808BA70 subs r0, r5, 0x1 b _0808BA94 .align 2, 0 _0808BA6C: .4byte 0x03004b20 _0808BA70: movs r0, 0x6 b _0808BA94 _0808BA74: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0808BAAC ldr r1, _0808BA98 lsls r2, r4, 2 adds r0, r2, r4 lsls r0, 3 adds r3, r0, r1 ldrh r5, [r3, 0x8] movs r7, 0x8 ldrsh r0, [r3, r7] adds r7, r1, 0 cmp r0, 0x5 bgt _0808BA9C adds r0, r5, 0x1 _0808BA94: strh r0, [r3, 0x8] b _0808BA9E .align 2, 0 _0808BA98: .4byte 0x03004b20 _0808BA9C: strh r6, [r3, 0x8] _0808BA9E: adds r0, r2, r4 lsls r0, 3 adds r0, r7 ldrb r0, [r0, 0x8] bl sub_808BC3C b _0808BB7A _0808BAAC: ldr r0, _0808BACC lsls r2, r4, 2 adds r1, r2, r4 lsls r1, 3 adds r1, r0 movs r3, 0x8 ldrsh r1, [r1, r3] adds r7, r0, 0 cmp r1, 0x5 bhi _0808BB7A lsls r0, r1, 2 ldr r1, _0808BAD0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0808BACC: .4byte 0x03004b20 _0808BAD0: .4byte _0808BAD4 .align 2, 0 _0808BAD4: .4byte _0808BAEC .4byte _0808BB04 .4byte _0808BB1C .4byte _0808BB34 .4byte _0808BB4C .4byte _0808BB64 _0808BAEC: adds r4, r2, r4 lsls r4, 3 adds r4, r7 ldrb r0, [r4, 0xA] bl sub_808BCB4 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xA] bl sub_808BCF8 b _0808BB7A _0808BB04: adds r4, r2, r4 lsls r4, 3 adds r4, r7 ldrb r0, [r4, 0xC] bl sub_808BD4C lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xC] bl sub_808BD6C b _0808BB7A _0808BB1C: adds r4, r2, r4 lsls r4, 3 adds r4, r7 ldrb r0, [r4, 0xE] bl sub_808BDAC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xE] bl sub_808BDCC b _0808BB7A _0808BB34: adds r4, r2, r4 lsls r4, 3 adds r4, r7 ldrb r0, [r4, 0x10] bl sub_808BE0C lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x10] bl sub_808BE34 b _0808BB7A _0808BB4C: adds r4, r2, r4 lsls r4, 3 adds r4, r7 ldrb r0, [r4, 0x12] bl sub_808BF94 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x12] bl sub_808BFD8 b _0808BB7A _0808BB64: adds r4, r2, r4 lsls r4, 3 adds r4, r7 ldrb r0, [r4, 0x14] bl sub_808BE74 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x14] bl sub_808BECC _0808BB7A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_808B9F4 thumb_func_start sub_808BB80 sub_808BB80: @ 808BB80 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r5, _0808BC04 ldr r1, _0808BC08 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r1, 0x7 ldrb r0, [r4, 0xA] ands r0, r1 ldrb r1, [r5, 0x14] movs r3, 0x8 negs r3, r3 ands r3, r1 orrs r3, r0 strb r3, [r5, 0x14] movs r6, 0x1 ldrb r0, [r4, 0xC] ands r0, r6 lsls r0, 2 ldrb r1, [r5, 0x15] movs r2, 0x5 negs r2, r2 ands r2, r1 orrs r2, r0 strb r2, [r5, 0x15] ldrb r1, [r4, 0xE] ands r1, r6 lsls r1, 1 movs r0, 0x3 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x15] ldrb r1, [r4, 0x10] ands r1, r6 movs r2, 0x2 negs r2, r2 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x15] ldrh r0, [r4, 0x12] movs r2, 0 strb r0, [r5, 0x13] ldrb r0, [r4, 0x14] lsls r0, 3 movs r1, 0x7 ands r3, r1 orrs r3, r0 strb r3, [r5, 0x14] movs r0, 0x1 negs r0, r0 str r2, [sp] movs r1, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0808BC0C str r0, [r4] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808BC04: .4byte gSaveBlock2 _0808BC08: .4byte 0x03004b20 _0808BC0C: .4byte sub_808BC10 thumb_func_end sub_808BB80 thumb_func_start sub_808BC10 sub_808BC10: @ 808BC10 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0808BC34 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808BC30 adds r0, r2, 0 bl DestroyTask ldr r0, _0808BC38 ldr r0, [r0, 0x8] bl SetMainCallback2 _0808BC30: pop {r0} bx r0 .align 2, 0 _0808BC34: .4byte 0x0202f388 _0808BC38: .4byte 0x03001770 thumb_func_end sub_808BC10 thumb_func_start sub_808BC3C sub_808BC3C: @ 808BC3C lsls r0, 24 ldr r2, _0808BC58 ldr r3, _0808BC5C adds r1, r3, 0 strh r1, [r2] adds r2, 0x4 lsrs r0, 20 adds r1, r0, 0 adds r1, 0x28 lsls r1, 8 adds r0, 0x38 adds r1, r0 strh r1, [r2] bx lr .align 2, 0 _0808BC58: .4byte REG_WIN1H _0808BC5C: .4byte 0x000018d7 thumb_func_end sub_808BC3C thumb_func_start sub_808BC60 sub_808BC60: @ 808BC60 push {r4-r7,lr} sub sp, 0x10 adds r4, r0, 0 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r5, r2, 24 lsls r3, 24 lsrs r3, 24 movs r2, 0 ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF beq _0808BC96 _0808BC7C: mov r7, sp adds r0, r7, r2 strb r1, [r0] adds r4, 0x1 adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF beq _0808BC96 cmp r2, 0xE bls _0808BC7C _0808BC96: mov r0, sp strb r3, [r0, 0x2] adds r1, r0, r2 movs r0, 0xFF strb r0, [r1] mov r0, sp adds r1, r6, 0 adds r2, r5, 0 movs r3, 0x1 bl sub_80729D8 add sp, 0x10 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_808BC60 thumb_func_start sub_808BCB4 sub_808BCB4: @ 808BCB4 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r2, _0808BCD4 ldrh r1, [r2, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0808BCDA cmp r3, 0x1 bhi _0808BCD8 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 b _0808BCDA .align 2, 0 _0808BCD4: .4byte 0x03001770 _0808BCD8: movs r3, 0 _0808BCDA: ldrh r1, [r2, 0x2E] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0808BCF2 cmp r3, 0 beq _0808BCF0 subs r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 b _0808BCF2 _0808BCF0: movs r3, 0x2 _0808BCF2: adds r0, r3, 0 pop {r1} bx r1 thumb_func_end sub_808BCB4 thumb_func_start sub_808BCF8 sub_808BCF8: @ 808BCF8 push {lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r1, sp movs r2, 0xF strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] adds r1, r0 movs r0, 0x8 strb r0, [r1] ldr r0, _0808BD40 mov r1, sp ldrb r3, [r1] movs r1, 0x78 movs r2, 0x28 bl sub_808BC60 ldr r0, _0808BD44 mov r1, sp ldrb r3, [r1, 0x1] movs r1, 0x9B movs r2, 0x28 bl sub_808BC60 ldr r0, _0808BD48 mov r1, sp ldrb r3, [r1, 0x2] movs r1, 0xB8 movs r2, 0x28 bl sub_808BC60 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0808BD40: .4byte gUnknown_0842C409 _0808BD44: .4byte gUnknown_0842C411 _0808BD48: .4byte gUnknown_0842C418 thumb_func_end sub_808BCF8 thumb_func_start sub_808BD4C sub_808BD4C: @ 808BD4C push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0808BD68 ldrh r1, [r0, 0x2E] movs r0, 0x30 ands r0, r1 cmp r0, 0 beq _0808BD62 movs r0, 0x1 eors r2, r0 _0808BD62: adds r0, r2, 0 pop {r1} bx r1 .align 2, 0 _0808BD68: .4byte 0x03001770 thumb_func_end sub_808BD4C thumb_func_start sub_808BD6C sub_808BD6C: @ 808BD6C push {lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r1, sp movs r2, 0xF strb r2, [r1] strb r2, [r1, 0x1] adds r1, r0 movs r0, 0x8 strb r0, [r1] ldr r0, _0808BDA4 mov r1, sp ldrb r3, [r1] movs r1, 0x78 movs r2, 0x38 bl sub_808BC60 ldr r0, _0808BDA8 mov r1, sp ldrb r3, [r1, 0x1] movs r1, 0xBE movs r2, 0x38 bl sub_808BC60 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0808BDA4: .4byte gUnknown_0842C420 _0808BDA8: .4byte gUnknown_0842C426 thumb_func_end sub_808BD6C thumb_func_start sub_808BDAC sub_808BDAC: @ 808BDAC push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0808BDC8 ldrh r1, [r0, 0x2E] movs r0, 0x30 ands r0, r1 cmp r0, 0 beq _0808BDC2 movs r0, 0x1 eors r2, r0 _0808BDC2: adds r0, r2, 0 pop {r1} bx r1 .align 2, 0 _0808BDC8: .4byte 0x03001770 thumb_func_end sub_808BDAC thumb_func_start sub_808BDCC sub_808BDCC: @ 808BDCC push {lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r1, sp movs r2, 0xF strb r2, [r1] strb r2, [r1, 0x1] adds r1, r0 movs r0, 0x8 strb r0, [r1] ldr r0, _0808BE04 mov r1, sp ldrb r3, [r1] movs r1, 0x78 movs r2, 0x48 bl sub_808BC60 ldr r0, _0808BE08 mov r1, sp ldrb r3, [r1, 0x1] movs r1, 0xBE movs r2, 0x48 bl sub_808BC60 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0808BE04: .4byte gUnknown_0842C42D _0808BE08: .4byte gUnknown_0842C436 thumb_func_end sub_808BDCC thumb_func_start sub_808BE0C sub_808BE0C: @ 808BE0C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808BE30 ldrh r1, [r0, 0x2E] movs r0, 0x30 ands r0, r1 cmp r0, 0 beq _0808BE28 movs r0, 0x1 eors r4, r0 adds r0, r4, 0 bl sub_81DF5D8 _0808BE28: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0808BE30: .4byte 0x03001770 thumb_func_end sub_808BE0C thumb_func_start sub_808BE34 sub_808BE34: @ 808BE34 push {lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r1, sp movs r2, 0xF strb r2, [r1] strb r2, [r1, 0x1] adds r1, r0 movs r0, 0x8 strb r0, [r1] ldr r0, _0808BE6C mov r1, sp ldrb r3, [r1] movs r1, 0x78 movs r2, 0x58 bl sub_808BC60 ldr r0, _0808BE70 mov r1, sp ldrb r3, [r1, 0x1] movs r1, 0xAC movs r2, 0x58 bl sub_808BC60 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0808BE6C: .4byte gUnknown_0842C43D _0808BE70: .4byte gUnknown_0842C445 thumb_func_end sub_808BE34 thumb_func_start sub_808BE74 sub_808BE74: @ 808BE74 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808BE94 ldrh r1, [r0, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0808BEA0 cmp r4, 0x12 bhi _0808BE98 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 b _0808BE9A .align 2, 0 _0808BE94: .4byte 0x03001770 _0808BE98: movs r4, 0 _0808BE9A: adds r0, r4, 0 bl sub_8071E00 _0808BEA0: ldr r0, _0808BEB8 ldrh r1, [r0, 0x2E] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0808BEC4 cmp r4, 0 beq _0808BEBC subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 b _0808BEBE .align 2, 0 _0808BEB8: .4byte 0x03001770 _0808BEBC: movs r4, 0x13 _0808BEBE: adds r0, r4, 0 bl sub_8071E00 _0808BEC4: adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_808BE74 thumb_func_start sub_808BECC sub_808BECC: @ 808BECC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r7, r0, 24 movs r5, 0 ldr r1, _0808BF40 ldrb r0, [r1] ldr r2, _0808BF44 mov r8, r2 cmp r0, 0xFF beq _0808BF0A adds r2, r1, 0 _0808BEEE: mov r0, sp adds r1, r0, r5 adds r0, r5, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r0, r5, r2 ldrb r0, [r0] cmp r0, 0xFF beq _0808BF0A cmp r5, 0x5 bls _0808BEEE _0808BF0A: adds r0, r7, 0 movs r1, 0xA bl __udivsi3 adds r2, r0, 0 lsls r0, r2, 24 lsrs r6, r0, 24 cmp r6, 0 beq _0808BF48 mov r0, sp adds r1, r0, r5 adds r0, r2, 0 adds r0, 0xA1 strb r0, [r1] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 mov r1, sp adds r4, r1, r5 adds r0, r7, 0 movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r4] b _0808BF64 .align 2, 0 _0808BF40: .4byte gUnknown_0842C457 _0808BF44: .4byte gUnknown_0842C44F _0808BF48: mov r2, sp adds r4, r2, r5 adds r0, r7, 0 movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r4] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 mov r1, sp adds r0, r1, r5 strb r6, [r0] _0808BF64: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 mov r2, sp adds r1, r2, r5 movs r0, 0xFF strb r0, [r1] mov r0, r8 movs r1, 0xF movs r2, 0xF bl Print mov r0, sp movs r1, 0x12 movs r2, 0xF bl Print add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_808BECC thumb_func_start sub_808BF94 sub_808BF94: @ 808BF94 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r2, _0808BFB4 ldrh r1, [r2, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0808BFBA cmp r3, 0x1 bhi _0808BFB8 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 b _0808BFBA .align 2, 0 _0808BFB4: .4byte 0x03001770 _0808BFB8: movs r3, 0 _0808BFBA: ldrh r1, [r2, 0x2E] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0808BFD2 cmp r3, 0 beq _0808BFD0 subs r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 b _0808BFD2 _0808BFD0: movs r3, 0x2 _0808BFD2: adds r0, r3, 0 pop {r1} bx r1 thumb_func_end sub_808BF94 thumb_func_start sub_808BFD8 sub_808BFD8: @ 808BFD8 push {lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r1, sp movs r2, 0xF strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] adds r1, r0 movs r0, 0x8 strb r0, [r1] ldr r0, _0808C020 mov r1, sp ldrb r3, [r1] movs r1, 0x78 movs r2, 0x68 bl sub_808BC60 ldr r0, _0808C024 mov r1, sp ldrb r3, [r1, 0x1] movs r1, 0xA6 movs r2, 0x68 bl sub_808BC60 ldr r0, _0808C028 mov r1, sp ldrb r3, [r1, 0x2] movs r1, 0xBC movs r2, 0x68 bl sub_808BC60 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0808C020: .4byte gUnknown_0842C45B _0808C024: .4byte gUnknown_0842C465 _0808C028: .4byte gUnknown_0842C46B thumb_func_end sub_808BFD8 thumb_func_start sub_808C02C sub_808C02C: @ 808C02C push {r4-r6,lr} ldr r0, _0808C088 movs r1, 0 strh r1, [r0] ldr r2, _0808C08C movs r0, 0x40 strb r0, [r2] ldr r0, _0808C090 strb r1, [r0] ldr r4, _0808C094 movs r0, 0 strb r1, [r4, 0x19] strb r1, [r4, 0x18] strb r1, [r4, 0x1A] strb r1, [r4, 0x1B] str r0, [r4, 0x1C] str r0, [r4, 0x20] str r0, [r4, 0x24] bl sub_80690C8 movs r1, 0 adds r6, r4, 0 adds r6, 0x28 movs r2, 0 adds r5, r4, 0 adds r5, 0x5C ldr r3, _0808C098 ldr r0, _0808C09C adds r4, r3, r0 _0808C066: adds r0, r1, r6 strb r2, [r0] adds r0, r1, r5 strb r2, [r0] adds r0, r1, r3 strb r2, [r0] adds r0, r1, r4 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x33 bls _0808C066 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808C088: .4byte 0x0202ffb8 _0808C08C: .4byte 0x0202ffba _0808C090: .4byte 0x03005ce8 _0808C094: .4byte gSaveBlock2 _0808C098: .4byte 0x0202606c _0808C09C: .4byte 0x00003154 thumb_func_end sub_808C02C thumb_func_start sub_808C0A0 sub_808C0A0: @ 808C0A0 ldr r1, _0808C0B0 movs r0, 0 strh r0, [r1] ldr r1, _0808C0B4 movs r0, 0x40 strb r0, [r1] bx lr .align 2, 0 _0808C0B0: .4byte 0x0202ffb8 _0808C0B4: .4byte 0x0202ffba thumb_func_end sub_808C0A0 thumb_func_start sub_808C0B8 sub_808C0B8: @ 808C0B8 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_808C0B8 thumb_func_start sub_808C0CC sub_808C0CC: @ 808C0CC push {r4-r7,lr} adds r4, r0, 0 movs r3, 0 ldr r0, _0808C240 adds r7, r0, 0 movs r1, 0x2 negs r1, r1 mov r12, r1 movs r6, 0x3 negs r6, r6 ldr r5, _0808C244 _0808C0E2: lsls r1, r3, 2 adds r1, r4, r1 ldrh r0, [r1] orrs r0, r7 strh r0, [r1] ldrb r2, [r1, 0x2] mov r0, r12 ands r0, r2 ands r0, r6 strb r0, [r1, 0x2] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r5 bls _0808C0E2 movs r2, 0xC1 lsls r2, 3 adds r0, r4, r2 movs r2, 0 strh r2, [r0] ldr r0, _0808C248 adds r3, r4, r0 ldrb r1, [r3] movs r0, 0x2 negs r0, r0 ands r0, r1 movs r1, 0x3 negs r1, r1 ands r0, r1 strb r0, [r3] ldr r1, _0808C24C adds r0, r4, r1 strh r2, [r0] ldr r3, _0808C250 adds r0, r4, r3 strh r2, [r0] adds r1, 0x4 adds r0, r4, r1 strh r2, [r0] adds r3, 0x4 adds r0, r4, r3 strh r2, [r0] adds r1, 0x4 adds r0, r4, r1 strh r2, [r0] adds r3, 0x4 adds r0, r4, r3 strh r2, [r0] adds r1, 0x4 adds r0, r4, r1 strh r2, [r0] adds r3, 0x4 adds r0, r4, r3 strh r2, [r0] adds r1, 0x4 adds r0, r4, r1 strh r2, [r0] movs r3, 0 ldr r0, _0808C254 adds r2, r4, r0 ldr r1, _0808C240 adds r5, r1, 0 _0808C15E: lsls r0, r3, 1 adds r0, r2, r0 ldrh r1, [r0] orrs r1, r5 strh r1, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _0808C15E movs r2, 0xC5 lsls r2, 3 adds r0, r4, r2 movs r2, 0 movs r1, 0 strh r1, [r0] ldr r3, _0808C258 adds r0, r4, r3 strh r1, [r0] adds r3, 0x2 adds r0, r4, r3 strb r2, [r0] adds r3, 0x1 adds r0, r4, r3 strb r2, [r0] adds r3, 0x1 adds r0, r4, r3 strb r2, [r0] adds r3, 0x1 adds r0, r4, r3 strb r2, [r0] movs r2, 0xC6 lsls r2, 3 adds r0, r4, r2 strh r1, [r0] adds r3, 0x3 adds r0, r4, r3 strh r1, [r0] adds r2, 0x4 adds r0, r4, r2 strh r1, [r0] adds r3, 0x4 adds r0, r4, r3 strh r1, [r0] adds r2, 0x4 adds r0, r4, r2 strh r1, [r0] movs r3, 0 ldr r0, _0808C25C adds r1, r4, r0 movs r2, 0 _0808C1C4: lsls r0, r3, 1 adds r0, r1, r0 strh r2, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _0808C1C4 ldr r1, _0808C260 adds r0, r4, r1 movs r1, 0 strb r1, [r0] ldr r2, _0808C264 adds r0, r4, r2 strb r1, [r0] ldr r0, _0808C268 adds r3, r4, r0 ldrb r2, [r3] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r3] ldr r2, _0808C26C adds r0, r4, r2 strb r1, [r0] ldr r3, _0808C270 adds r0, r4, r3 strb r1, [r0] adds r2, 0x3 adds r0, r4, r2 strb r1, [r0] adds r3, 0x3 adds r0, r4, r3 strh r1, [r0] adds r2, 0x4 adds r0, r4, r2 strh r1, [r0] movs r3, 0 ldr r0, _0808C274 adds r1, r4, r0 movs r2, 0 _0808C216: adds r0, r1, r3 strb r2, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x7 bls _0808C216 movs r3, 0 ldr r2, _0808C278 adds r1, r4, r2 movs r2, 0 _0808C22C: adds r0, r1, r3 strb r2, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x7 bls _0808C22C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808C240: .4byte 0x0000ffff _0808C244: .4byte 0x00000181 _0808C248: .4byte 0x0000060a _0808C24C: .4byte 0x0000060c _0808C250: .4byte 0x0000060e _0808C254: .4byte 0x0000061e _0808C258: .4byte 0x0000062a _0808C25C: .4byte 0x0000063a _0808C260: .4byte 0x0000064a _0808C264: .4byte 0x0000064b _0808C268: .4byte 0x0000064c _0808C26C: .4byte 0x0000064d _0808C270: .4byte 0x0000064f _0808C274: .4byte 0x00000656 _0808C278: .4byte 0x0000065e thumb_func_end sub_808C0CC thumb_func_start sub_808C27C sub_808C27C: @ 808C27C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 ldr r0, _0808C334 ldr r1, _0808C338 adds r5, r0, r1 ldrb r0, [r5] cmp r0, 0x1 beq _0808C344 cmp r0, 0x1 ble _0808C29E cmp r0, 0x2 beq _0808C37C cmp r0, 0x3 bne _0808C29E b _0808C4C4 _0808C29E: movs r0, 0 bl SetVBlankCallback movs r0, 0 bl sub_8091060 movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 add r2, sp, 0x4 mov r8, r2 mov r2, sp movs r6, 0 ldr r1, _0808C33C movs r5, 0x80 lsls r5, 5 ldr r7, _0808C340 movs r0, 0x81 lsls r0, 24 mov r12, r0 _0808C2C8: strh r6, [r2] mov r0, sp str r0, [r1] str r3, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r5 subs r4, r5 cmp r4, r5 bhi _0808C2C8 strh r6, [r2] mov r2, sp str r2, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r3, r12 orrs r0, r3 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0xE0 lsls r0, 19 movs r3, 0x80 lsls r3, 3 movs r4, 0 str r4, [sp, 0x4] ldr r2, _0808C33C mov r1, r8 str r1, [r2] str r0, [r2, 0x4] lsrs r0, r3, 2 movs r1, 0x85 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xA0 lsls r1, 19 mov r0, sp strh r4, [r0] str r0, [r2] str r1, [r2, 0x4] lsrs r3, 1 movs r0, 0x81 lsls r0, 24 orrs r3, r0 str r3, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _0808C334 ldr r2, _0808C338 adds r0, r2 movs r1, 0x1 strb r1, [r0] b _0808C50C .align 2, 0 _0808C334: .4byte 0x03001770 _0808C338: .4byte 0x0000043c _0808C33C: .4byte 0x040000d4 _0808C340: .4byte 0x81000800 _0808C344: bl remove_some_task bl ResetTasks bl ResetSpriteData bl ResetPaletteFade bl FreeAllSpritePalettes ldr r1, _0808C374 movs r0, 0x8 strb r0, [r1] ldr r4, _0808C378 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _0808C50C .align 2, 0 _0808C374: .4byte 0x030028f8 _0808C378: .4byte gWindowConfig_81E7048 _0808C37C: bl Random movs r1, 0x3 ands r1, r0 cmp r1, 0x1 beq _0808C3A4 cmp r1, 0x1 ble _0808C394 cmp r1, 0x2 beq _0808C3B4 cmp r1, 0x3 beq _0808C3C4 _0808C394: ldr r1, _0808C39C ldr r0, _0808C3A0 b _0808C3C8 .align 2, 0 _0808C39C: .4byte 0x0202ffb4 _0808C3A0: .4byte 0x02018000 _0808C3A4: ldr r1, _0808C3AC ldr r0, _0808C3B0 b _0808C3C8 .align 2, 0 _0808C3AC: .4byte 0x0202ffb4 _0808C3B0: .4byte 0x02018800 _0808C3B4: ldr r1, _0808C3BC ldr r0, _0808C3C0 b _0808C3C8 .align 2, 0 _0808C3BC: .4byte 0x0202ffb4 _0808C3C0: .4byte 0x02019000 _0808C3C4: ldr r1, _0808C448 ldr r0, _0808C44C _0808C3C8: str r0, [r1] ldr r4, _0808C448 ldr r0, [r4] bl sub_808C0CC ldr r0, _0808C450 movs r1, 0 bl CreateTask ldr r0, [r4] ldr r5, _0808C454 ldrb r1, [r5, 0x19] ldr r3, _0808C458 adds r0, r3 movs r6, 0 strh r1, [r0] bl sub_806912C adds r1, r0, 0 cmp r1, 0 bne _0808C3FA ldr r0, [r4] ldr r2, _0808C458 adds r0, r2 strh r1, [r0] _0808C3FA: ldr r1, [r4] ldrb r2, [r5, 0x18] ldr r3, _0808C45C adds r0, r1, r3 strh r2, [r0] ldr r0, _0808C460 ldrh r2, [r0] subs r3, 0x8 adds r0, r1, r3 strh r2, [r0] ldr r0, _0808C464 ldrb r0, [r0] ldr r2, _0808C468 adds r1, r2 strb r0, [r1] ldr r0, [r4] adds r3, 0x3F adds r0, r3 strb r6, [r0] ldr r0, [r4] ldr r1, _0808C46C adds r0, r1 strb r6, [r0] bl sub_806912C cmp r0, 0 bne _0808C474 movs r0, 0 bl sub_8090F68 ldr r1, [r4] ldr r2, _0808C470 adds r1, r2 strh r0, [r1] movs r0, 0x1 bl sub_8090F68 b _0808C488 .align 2, 0 _0808C448: .4byte 0x0202ffb4 _0808C44C: .4byte 0x02019800 _0808C450: .4byte sub_808C608 _0808C454: .4byte gSaveBlock2 _0808C458: .4byte 0x00000612 _0808C45C: .4byte 0x00000616 _0808C460: .4byte 0x0202ffb8 _0808C464: .4byte 0x0202ffba _0808C468: .4byte 0x0000062c _0808C46C: .4byte 0x0000064e _0808C470: .4byte 0x0000061a _0808C474: movs r0, 0 bl pokedex_count ldr r1, [r4] ldr r2, _0808C4AC adds r1, r2 strh r0, [r1] movs r0, 0x1 bl pokedex_count _0808C488: ldr r1, [r4] ldr r3, _0808C4B0 adds r1, r3 strh r0, [r1] ldr r0, _0808C4B4 ldr r0, [r0] ldr r1, _0808C4B8 adds r0, r1 movs r1, 0x8 strb r1, [r0] ldr r1, _0808C4BC ldr r2, _0808C4C0 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0808C50C .align 2, 0 _0808C4AC: .4byte 0x0000061a _0808C4B0: .4byte 0x0000061c _0808C4B4: .4byte 0x0202ffb4 _0808C4B8: .4byte 0x0000062d _0808C4BC: .4byte 0x03001770 _0808C4C0: .4byte 0x0000043c _0808C4C4: ldr r3, _0808C518 ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _0808C51C ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _0808C520 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _0808C524 bl SetVBlankCallback ldr r0, _0808C528 bl SetMainCallback2 ldr r0, _0808C52C ldr r1, [r0] ldr r3, _0808C530 adds r0, r1, r3 ldrb r0, [r0] ldr r2, _0808C534 adds r1, r2 ldrb r1, [r1] bl sub_808D690 ldr r0, _0808C538 ldr r1, _0808C53C movs r2, 0x80 bl m4aMPlayVolumeControl _0808C50C: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808C518: .4byte 0x04000208 _0808C51C: .4byte 0x04000200 _0808C520: .4byte REG_DISPSTAT _0808C524: .4byte sub_808C0B8 _0808C528: .4byte sub_808C5F0 _0808C52C: .4byte 0x0202ffb4 _0808C530: .4byte 0x00000612 _0808C534: .4byte 0x00000616 _0808C538: .4byte 0x03007380 _0808C53C: .4byte 0x0000ffff thumb_func_end sub_808C27C thumb_func_start unref_sub_808C540 unref_sub_808C540: @ 808C540 push {r4,r5,lr} adds r5, r0, 0 movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 2 bl sub_8091060 bl remove_some_task bl ResetTasks bl ResetPaletteFade ldr r3, _0808C59C ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _0808C5A0 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _0808C5A4 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _0808C5A8 bl SetVBlankCallback ldr r0, _0808C5AC bl SetMainCallback2 ldr r0, _0808C5B0 ldr r0, [r0] ldr r1, _0808C5B4 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0808C5BC ldr r0, _0808C5B8 b _0808C5BE .align 2, 0 _0808C59C: .4byte 0x04000208 _0808C5A0: .4byte 0x04000200 _0808C5A4: .4byte REG_DISPSTAT _0808C5A8: .4byte sub_808C0B8 _0808C5AC: .4byte sub_808C5F0 _0808C5B0: .4byte 0x0202ffb4 _0808C5B4: .4byte 0x0000064b _0808C5B8: .4byte sub_808CAE4 _0808C5BC: ldr r0, _0808C5E8 _0808C5BE: movs r1, 0 bl CreateTask lsls r0, 24 lsrs r4, r0, 24 adds r0, r5, 0 movs r1, 0 bl CreateTask ldr r2, _0808C5EC lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r2 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x8] pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0808C5E8: .4byte sub_808D198 _0808C5EC: .4byte 0x03004b20 thumb_func_end unref_sub_808C540 thumb_func_start sub_808C5F0 sub_808C5F0: @ 808C5F0 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_808C5F0 thumb_func_start sub_808C608 sub_808C608: @ 808C608 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808C640 ldr r1, [r0] ldr r0, _0808C644 adds r1, r0 ldrb r2, [r1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1] movs r0, 0 bl sub_808D344 lsls r0, 24 cmp r0, 0 beq _0808C63A ldr r0, _0808C648 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0808C64C str r0, [r1] _0808C63A: pop {r4} pop {r0} bx r0 .align 2, 0 _0808C640: .4byte 0x0202ffb4 _0808C644: .4byte 0x0000064c _0808C648: .4byte 0x03004b20 _0808C64C: .4byte sub_808C650 thumb_func_end sub_808C608 thumb_func_start sub_808C650 sub_808C650: @ 808C650 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r2, _0808C680 ldr r1, _0808C684 ldr r4, [r1] ldr r0, _0808C688 adds r3, r4, r0 ldrh r0, [r3] strh r0, [r2] ldrh r0, [r3] movs r2, 0 ldrsh r5, [r3, r2] adds r7, r1, 0 cmp r5, 0 beq _0808C68C subs r0, 0x8 strh r0, [r3] b _0808C878 .align 2, 0 _0808C680: .4byte REG_BG0VOFS _0808C684: .4byte 0x0202ffb4 _0808C688: .4byte 0x00000654 _0808C68C: ldr r2, _0808C708 ldrh r1, [r2, 0x2E] movs r0, 0x1 mov r9, r0 ands r0, r1 cmp r0, 0 beq _0808C724 ldr r1, _0808C70C adds r0, r4, r1 ldrh r0, [r0] lsls r0, 2 adds r0, r4, r0 ldrb r0, [r0, 0x2] lsls r0, 31 cmp r0, 0 beq _0808C724 bl sub_808E6BC ldr r4, _0808C710 ldr r0, [r7] ldr r2, _0808C714 mov r8, r2 add r0, r8 ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x5] lsrs r1, 4 adds r1, 0x10 mov r0, r9 lsls r0, r1 mvns r0, r0 str r5, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, [r7] add r0, r8 ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _0808C718 str r1, [r0] ldr r1, _0808C71C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _0808C720 str r1, [r0] movs r0, 0x15 bl audio_play b _0808C878 .align 2, 0 _0808C708: .4byte 0x03001770 _0808C70C: .4byte 0x0000060e _0808C710: .4byte 0x02020004 _0808C714: .4byte 0x00000626 _0808C718: .4byte sub_808EDB8 _0808C71C: .4byte 0x03004b20 _0808C720: .4byte sub_808CA64 _0808C724: ldrh r2, [r2, 0x2E] movs r0, 0x8 ands r0, r2 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _0808C774 ldr r1, [r7] ldr r4, _0808C764 adds r0, r1, r4 movs r2, 0 strh r2, [r0] movs r0, 0xCA lsls r0, 3 adds r1, r0 movs r0, 0x1 strb r0, [r1] ldr r0, [r7] ldr r1, _0808C768 adds r0, r1 strh r2, [r0] ldr r1, _0808C76C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _0808C770 str r1, [r0] movs r0, 0x5 bl audio_play b _0808C878 .align 2, 0 _0808C764: .4byte 0x00000654 _0808C768: .4byte 0x00000652 _0808C76C: .4byte 0x03004b20 _0808C770: .4byte sub_808C8E8 _0808C774: movs r0, 0x4 ands r0, r2 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _0808C814 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade bl sub_8091E3C ldr r1, _0808C7F4 lsls r3, r6, 2 adds r3, r6 lsls r3, 3 adds r3, r1 lsls r0, 24 lsrs r0, 24 movs r2, 0 strh r0, [r3, 0x8] ldr r1, _0808C7F8 ldr r0, [r1] ldr r4, _0808C7FC adds r0, r4 strb r2, [r0] ldr r0, [r1] ldr r2, _0808C800 adds r1, r0, r2 ldrb r2, [r1] subs r4, 0x25 adds r1, r0, r4 strh r2, [r1] ldr r2, _0808C804 adds r1, r0, r2 ldrh r2, [r1] subs r4, 0x1A adds r1, r0, r4 strh r2, [r1] ldr r2, _0808C808 adds r1, r0, r2 ldrh r2, [r1] adds r4, 0x4 adds r1, r0, r4 strh r2, [r1] ldr r2, _0808C80C adds r1, r0, r2 ldrh r1, [r1] adds r4, 0x4 adds r0, r4 strh r1, [r0] ldr r0, _0808C810 str r0, [r3] movs r0, 0x2 bl audio_play b _0808C878 .align 2, 0 _0808C7F4: .4byte 0x03004b20 _0808C7F8: .4byte 0x0202ffb4 _0808C7FC: .4byte 0x0000064f _0808C800: .4byte 0x0000062c _0808C804: .4byte 0x0000060e _0808C808: .4byte 0x00000612 _0808C80C: .4byte 0x00000616 _0808C810: .4byte sub_808CB8C _0808C814: movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _0808C84C movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0808C844 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _0808C848 str r1, [r0] movs r0, 0x3 bl audio_play b _0808C878 .align 2, 0 _0808C844: .4byte 0x03004b20 _0808C848: .4byte sub_808CC50 _0808C84C: ldr r0, [r7] ldr r4, _0808C888 adds r0, r4 ldrh r0, [r0] movs r1, 0xE bl sub_808E48C ldr r1, [r7] adds r4, r1, r4 strh r0, [r4] ldr r0, _0808C88C adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _0808C878 ldr r0, _0808C890 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, _0808C894 str r0, [r1] _0808C878: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808C888: .4byte 0x0000060e _0808C88C: .4byte 0x0000062e _0808C890: .4byte 0x03004b20 _0808C894: .4byte sub_808C898 thumb_func_end sub_808C650 thumb_func_start sub_808C898 sub_808C898: @ 808C898 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808C8D4 ldr r2, [r0] ldr r1, _0808C8D8 adds r0, r2, r1 ldrb r0, [r0] ldr r3, _0808C8DC adds r1, r2, r3 ldrb r1, [r1] adds r3, 0x2 adds r2, r3 ldrb r2, [r2] bl sub_808E208 lsls r0, 24 cmp r0, 0 beq _0808C8CC ldr r0, _0808C8E0 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0808C8E4 str r0, [r1] _0808C8CC: pop {r4} pop {r0} bx r0 .align 2, 0 _0808C8D4: .4byte 0x0202ffb4 _0808C8D8: .4byte 0x0000062f _0808C8DC: .4byte 0x00000634 _0808C8E0: .4byte 0x03004b20 _0808C8E4: .4byte sub_808C650 thumb_func_end sub_808C898 thumb_func_start sub_808C8E8 sub_808C8E8: @ 808C8E8 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r1, _0808C910 ldr r7, _0808C914 ldr r3, [r7] ldr r0, _0808C918 adds r2, r3, r0 ldrh r0, [r2] strh r0, [r1] ldrh r1, [r2] movs r4, 0 ldrsh r0, [r2, r4] cmp r0, 0x50 beq _0808C91C adds r0, r1, 0 adds r0, 0x8 strh r0, [r2] b _0808CA52 .align 2, 0 _0808C910: .4byte REG_BG0VOFS _0808C914: .4byte 0x0202ffb4 _0808C918: .4byte 0x00000654 _0808C91C: ldr r5, _0808C940 ldrh r1, [r5, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0808C9C4 ldr r2, _0808C944 adds r0, r3, r2 ldrh r0, [r0] cmp r0, 0x1 beq _0808C948 cmp r0, 0x1 ble _0808C98C cmp r0, 0x2 beq _0808C960 cmp r0, 0x3 beq _0808C9A0 b _0808C98C .align 2, 0 _0808C940: .4byte 0x03001770 _0808C944: .4byte 0x00000652 _0808C948: ldr r4, _0808C958 adds r1, r3, r4 movs r0, 0 strh r0, [r1] ldr r0, _0808C95C adds r1, r3, r0 movs r0, 0x40 b _0808C978 .align 2, 0 _0808C958: .4byte 0x0000060e _0808C95C: .4byte 0x0000062c _0808C960: ldr r1, _0808C994 adds r2, r3, r1 ldrh r0, [r2] subs r0, 0x1 ldr r4, _0808C998 adds r1, r3, r4 strh r0, [r1] ldrh r0, [r2] lsls r0, 4 adds r0, 0x30 ldr r2, _0808C99C adds r1, r3, r2 _0808C978: strb r0, [r1] bl sub_808E82C ldr r0, [r7] adds r0, r4 ldrh r0, [r0] movs r1, 0xE bl sub_808E0CC ldrh r1, [r5, 0x2E] _0808C98C: movs r0, 0x8 orrs r0, r1 strh r0, [r5, 0x2E] b _0808C9C4 .align 2, 0 _0808C994: .4byte 0x0000060c _0808C998: .4byte 0x0000060e _0808C99C: .4byte 0x0000062c _0808C9A0: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0808C9F0 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _0808C9F4 str r1, [r0] movs r0, 0x3 bl audio_play _0808C9C4: ldr r2, _0808C9F8 ldrh r1, [r2, 0x2E] movs r0, 0xA ands r0, r1 cmp r0, 0 beq _0808CA04 ldr r0, _0808C9FC ldr r0, [r0] movs r3, 0xCA lsls r3, 3 adds r0, r3 movs r1, 0 strb r1, [r0] ldr r1, _0808C9F0 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _0808CA00 str r1, [r0] b _0808CA20 .align 2, 0 _0808C9F0: .4byte 0x03004b20 _0808C9F4: .4byte sub_808CC50 _0808C9F8: .4byte 0x03001770 _0808C9FC: .4byte 0x0202ffb4 _0808CA00: .4byte sub_808C650 _0808CA04: ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0808CA30 ldr r0, _0808CA28 ldr r0, [r0] ldr r4, _0808CA2C adds r1, r0, r4 ldrh r0, [r1] cmp r0, 0 beq _0808CA30 subs r0, 0x1 strh r0, [r1] _0808CA20: movs r0, 0x5 bl audio_play b _0808CA52 .align 2, 0 _0808CA28: .4byte 0x0202ffb4 _0808CA2C: .4byte 0x00000652 _0808CA30: ldrh r1, [r2, 0x30] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0808CA52 ldr r0, _0808CA5C ldr r0, [r0] ldr r2, _0808CA60 adds r1, r0, r2 ldrh r0, [r1] cmp r0, 0x2 bhi _0808CA52 adds r0, 0x1 strh r0, [r1] movs r0, 0x5 bl audio_play _0808CA52: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808CA5C: .4byte 0x0202ffb4 _0808CA60: .4byte 0x00000652 thumb_func_end sub_808C8E8 thumb_func_start sub_808CA64 sub_808CA64: @ 808CA64 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r2, _0808CAC8 ldr r5, _0808CACC ldr r3, [r5] ldr r6, _0808CAD0 adds r0, r3, r6 ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 movs r2, 0x20 ldrsh r0, [r1, r2] cmp r0, 0x30 bne _0808CAC2 movs r2, 0x22 ldrsh r0, [r1, r2] cmp r0, 0x38 bne _0808CAC2 ldr r1, _0808CAD4 adds r0, r3, r1 ldrb r1, [r0] ldr r2, _0808CAD8 adds r0, r3, r2 strb r1, [r0] ldr r1, [r5] subs r2, 0x3D adds r0, r1, r2 ldrh r0, [r0] lsls r0, 2 adds r0, r1, r0 adds r1, r6 ldrb r1, [r1] bl sub_808F210 ldr r2, _0808CADC lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r2 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x8] ldr r0, _0808CAE0 str r0, [r1] _0808CAC2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808CAC8: .4byte 0x02020004 _0808CACC: .4byte 0x0202ffb4 _0808CAD0: .4byte 0x00000626 _0808CAD4: .4byte 0x0000064a _0808CAD8: .4byte 0x0000064b _0808CADC: .4byte 0x03004b20 _0808CAE0: .4byte sub_808CAE4 thumb_func_end sub_808CA64 thumb_func_start sub_808CAE4 sub_808CAE4: @ 808CAE4 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0808CB40 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x4] cmp r0, 0 beq _0808CB50 ldr r5, _0808CB44 ldr r0, [r5] ldr r1, _0808CB48 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _0808CB6C ldrb r0, [r4, 0x8] bl sub_808F250 lsls r0, 24 cmp r0, 0 bne _0808CB6C bl sub_808E71C lsls r0, 24 cmp r0, 0 beq _0808CB6C ldr r0, [r5] ldr r2, _0808CB4C adds r1, r0, r2 ldrh r1, [r1] lsls r1, 2 adds r0, r1 ldrb r1, [r4, 0x8] bl sub_808F284 b _0808CB6C .align 2, 0 _0808CB40: .4byte 0x03004b20 _0808CB44: .4byte 0x0202ffb4 _0808CB48: .4byte 0x0000064a _0808CB4C: .4byte 0x0000060e _0808CB50: ldr r2, _0808CB74 ldr r0, _0808CB78 ldr r1, [r0] ldr r3, _0808CB7C adds r0, r1, r3 ldrh r0, [r0] strh r0, [r2] ldr r2, _0808CB80 ldr r0, _0808CB84 adds r1, r0 ldrb r0, [r1] strb r0, [r2] ldr r0, _0808CB88 str r0, [r4] _0808CB6C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808CB74: .4byte 0x0202ffb8 _0808CB78: .4byte 0x0202ffb4 _0808CB7C: .4byte 0x0000060e _0808CB80: .4byte 0x0202ffba _0808CB84: .4byte 0x0000062c _0808CB88: .4byte sub_808C608 thumb_func_end sub_808CAE4 thumb_func_start sub_808CB8C sub_808CB8C: @ 808CB8C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0808CBD0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r5, r1, r2 movs r0, 0x8 ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r1, [r0, 0x4] cmp r1, 0 bne _0808CC32 ldr r4, _0808CBD4 ldr r2, [r4] ldr r3, _0808CBD8 adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0 beq _0808CBE4 subs r3, 0x41 adds r0, r2, r3 strh r1, [r0] ldr r0, _0808CBDC adds r1, r2, r0 movs r0, 0x40 strb r0, [r1] ldr r0, _0808CBE0 b _0808CC30 .align 2, 0 _0808CBD0: .4byte 0x03004b20 _0808CBD4: .4byte 0x0202ffb4 _0808CBD8: .4byte 0x0000064f _0808CBDC: .4byte 0x0000062c _0808CBE0: .4byte sub_808CCC4 _0808CBE4: ldr r1, _0808CC38 adds r0, r2, r1 ldrh r1, [r0] ldr r3, _0808CC3C adds r0, r2, r3 strb r1, [r0] ldr r1, [r4] movs r2, 0xC2 lsls r2, 3 adds r0, r1, r2 ldrh r2, [r0] subs r3, 0x1E adds r0, r1, r3 strh r2, [r0] ldr r2, _0808CC40 adds r0, r1, r2 ldrh r0, [r0] adds r3, 0x4 adds r1, r3 strh r0, [r1] bl sub_806912C adds r1, r0, 0 cmp r1, 0 bne _0808CC1E ldr r0, [r4] ldr r2, _0808CC44 adds r0, r2 strh r1, [r0] _0808CC1E: ldr r0, [r4] movs r3, 0xC3 lsls r3, 3 adds r1, r0, r3 ldrh r1, [r1] ldr r2, _0808CC48 adds r0, r2 strh r1, [r0] ldr r0, _0808CC4C _0808CC30: str r0, [r5] _0808CC32: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808CC38: .4byte 0x0000062a _0808CC3C: .4byte 0x0000062c _0808CC40: .4byte 0x00000614 _0808CC44: .4byte 0x00000612 _0808CC48: .4byte 0x00000616 _0808CC4C: .4byte sub_808C608 thumb_func_end sub_808CB8C thumb_func_start sub_808CC50 sub_808CC50: @ 808CC50 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0808CCA4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808CC9C ldr r4, _0808CCA8 ldr r5, _0808CCAC ldr r0, [r5] ldr r1, _0808CCB0 adds r0, r1 ldrh r0, [r0] strb r0, [r4, 0x19] bl sub_806912C cmp r0, 0 bne _0808CC7A strb r0, [r4, 0x19] _0808CC7A: ldr r0, [r5] ldr r1, _0808CCB4 adds r0, r1 ldrh r0, [r0] strb r0, [r4, 0x18] adds r0, r6, 0 bl DestroyTask ldr r0, _0808CCB8 bl SetMainCallback2 ldr r0, _0808CCBC ldr r1, _0808CCC0 movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl _0808CC9C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808CCA4: .4byte 0x0202f388 _0808CCA8: .4byte gSaveBlock2 _0808CCAC: .4byte 0x0202ffb4 _0808CCB0: .4byte 0x00000612 _0808CCB4: .4byte 0x00000616 _0808CCB8: .4byte sub_805469C _0808CCBC: .4byte 0x03007380 _0808CCC0: .4byte 0x0000ffff thumb_func_end sub_808CC50 thumb_func_start sub_808CCC4 sub_808CCC4: @ 808CCC4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808CCFC ldr r1, [r0] ldr r0, _0808CD00 adds r1, r0 ldrb r0, [r1] movs r2, 0x1 orrs r0, r2 strb r0, [r1] movs r0, 0x3 bl sub_808D344 lsls r0, 24 cmp r0, 0 beq _0808CCF4 ldr r0, _0808CD04 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0808CD08 str r0, [r1] _0808CCF4: pop {r4} pop {r0} bx r0 .align 2, 0 _0808CCFC: .4byte 0x0202ffb4 _0808CD00: .4byte 0x0000064c _0808CD04: .4byte 0x03004b20 _0808CD08: .4byte sub_808CD0C thumb_func_end sub_808CCC4 thumb_func_start sub_808CD0C sub_808CD0C: @ 808CD0C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r2, _0808CD38 ldr r1, _0808CD3C ldr r4, [r1] ldr r0, _0808CD40 adds r3, r4, r0 ldrh r0, [r3] strh r0, [r2] ldrh r0, [r3] movs r2, 0 ldrsh r7, [r3, r2] adds r6, r1, 0 cmp r7, 0 beq _0808CD44 subs r0, 0x8 strh r0, [r3] b _0808CEDC .align 2, 0 _0808CD38: .4byte REG_BG0VOFS _0808CD3C: .4byte 0x0202ffb4 _0808CD40: .4byte 0x00000654 _0808CD44: ldr r2, _0808CDB4 ldrh r1, [r2, 0x2E] movs r3, 0x1 mov r8, r3 mov r0, r8 ands r0, r1 cmp r0, 0 beq _0808CDD0 ldr r1, _0808CDB8 adds r0, r4, r1 ldrh r0, [r0] lsls r0, 2 adds r0, r4, r0 ldrb r0, [r0, 0x2] lsls r0, 31 cmp r0, 0 beq _0808CDD0 bl sub_808E6BC ldr r3, _0808CDBC ldr r0, [r6] ldr r2, _0808CDC0 adds r0, r2 ldrh r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r0, r2, r3 ldrb r1, [r0, 0x5] lsrs r1, 4 adds r1, 0x10 mov r0, r8 lsls r0, r1 adds r3, 0x1C adds r2, r3 ldr r1, _0808CDC4 str r1, [r2] mvns r0, r0 str r7, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0808CDC8 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0808CDCC str r1, [r0] movs r0, 0x15 bl audio_play b _0808CEDC .align 2, 0 _0808CDB4: .4byte 0x03001770 _0808CDB8: .4byte 0x0000060e _0808CDBC: .4byte 0x02020004 _0808CDC0: .4byte 0x00000626 _0808CDC4: .4byte sub_808EDB8 _0808CDC8: .4byte 0x03004b20 _0808CDCC: .4byte sub_808D118 _0808CDD0: ldrh r2, [r2, 0x2E] movs r0, 0x8 ands r0, r2 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _0808CE20 ldr r1, [r6] ldr r3, _0808CE10 adds r0, r1, r3 movs r2, 0 strh r2, [r0] movs r0, 0xCA lsls r0, 3 adds r1, r0 movs r0, 0x1 strb r0, [r1] ldr r0, [r6] ldr r1, _0808CE14 adds r0, r1 strh r2, [r0] ldr r1, _0808CE18 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0808CE1C str r1, [r0] movs r0, 0x5 bl audio_play b _0808CEDC .align 2, 0 _0808CE10: .4byte 0x00000654 _0808CE14: .4byte 0x00000652 _0808CE18: .4byte 0x03004b20 _0808CE1C: .4byte sub_808CF48 _0808CE20: movs r0, 0x4 ands r0, r2 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _0808CE78 movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade bl sub_8091E3C ldr r2, _0808CE68 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r2 lsls r0, 24 lsrs r0, 24 movs r2, 0 strh r0, [r1, 0x8] ldr r0, _0808CE6C ldr r0, [r0] ldr r3, _0808CE70 adds r0, r3 strb r2, [r0] ldr r0, _0808CE74 str r0, [r1] movs r0, 0x2 bl audio_play b _0808CEDC .align 2, 0 _0808CE68: .4byte 0x03004b20 _0808CE6C: .4byte 0x0202ffb4 _0808CE70: .4byte 0x0000064f _0808CE74: .4byte sub_808CB8C _0808CE78: movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _0808CEB0 movs r0, 0x1 negs r0, r0 str r3, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0808CEA8 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0808CEAC str r1, [r0] movs r0, 0x3 bl audio_play b _0808CEDC .align 2, 0 _0808CEA8: .4byte 0x03004b20 _0808CEAC: .4byte sub_808D214 _0808CEB0: ldr r0, [r6] ldr r4, _0808CEE8 adds r0, r4 ldrh r0, [r0] movs r1, 0xE bl sub_808E48C ldr r1, [r6] adds r4, r1, r4 strh r0, [r4] ldr r0, _0808CEEC adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _0808CEDC ldr r0, _0808CEF0 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _0808CEF4 str r0, [r1] _0808CEDC: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808CEE8: .4byte 0x0000060e _0808CEEC: .4byte 0x0000062e _0808CEF0: .4byte 0x03004b20 _0808CEF4: .4byte sub_808CEF8 thumb_func_end sub_808CD0C thumb_func_start sub_808CEF8 sub_808CEF8: @ 808CEF8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808CF34 ldr r2, [r0] ldr r1, _0808CF38 adds r0, r2, r1 ldrb r0, [r0] ldr r3, _0808CF3C adds r1, r2, r3 ldrb r1, [r1] adds r3, 0x2 adds r2, r3 ldrb r2, [r2] bl sub_808E208 lsls r0, 24 cmp r0, 0 beq _0808CF2C ldr r0, _0808CF40 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0808CF44 str r0, [r1] _0808CF2C: pop {r4} pop {r0} bx r0 .align 2, 0 _0808CF34: .4byte 0x0202ffb4 _0808CF38: .4byte 0x0000062f _0808CF3C: .4byte 0x00000634 _0808CF40: .4byte 0x03004b20 _0808CF44: .4byte sub_808CD0C thumb_func_end sub_808CEF8 thumb_func_start sub_808CF48 sub_808CF48: @ 808CF48 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r2, _0808CF74 ldr r1, _0808CF78 ldr r4, [r1] ldr r0, _0808CF7C adds r3, r4, r0 ldrh r0, [r3] strh r0, [r2] ldrh r2, [r3] movs r5, 0 ldrsh r0, [r3, r5] adds r5, r1, 0 cmp r0, 0x60 beq _0808CF80 adds r0, r2, 0 adds r0, 0x8 strh r0, [r3] b _0808D106 .align 2, 0 _0808CF74: .4byte REG_BG0VOFS _0808CF78: .4byte 0x0202ffb4 _0808CF7C: .4byte 0x00000654 _0808CF80: ldr r0, _0808CFA0 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0808D078 ldr r1, _0808CFA4 adds r0, r4, r1 ldrh r0, [r0] cmp r0, 0x4 bhi _0808D008 lsls r0, 2 ldr r1, _0808CFA8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0808CFA0: .4byte 0x03001770 _0808CFA4: .4byte 0x00000652 _0808CFA8: .4byte _0808CFAC .align 2, 0 _0808CFAC: .4byte _0808D008 .4byte _0808CFC0 .4byte _0808CFDC .4byte _0808D024 .4byte _0808D054 _0808CFC0: ldr r1, [r5] ldr r4, _0808CFD4 adds r2, r1, r4 movs r0, 0 strh r0, [r2] ldr r2, _0808CFD8 adds r1, r2 movs r0, 0x40 strb r0, [r1] b _0808CFF8 .align 2, 0 _0808CFD4: .4byte 0x0000060e _0808CFD8: .4byte 0x0000062c _0808CFDC: ldr r2, [r5] ldr r0, _0808D014 adds r3, r2, r0 ldrh r0, [r3] subs r0, 0x1 ldr r4, _0808D018 adds r1, r2, r4 strh r0, [r1] ldrh r0, [r3] lsls r0, 4 adds r0, 0x30 ldr r1, _0808D01C adds r2, r1 strb r0, [r2] _0808CFF8: bl sub_808E82C ldr r0, [r5] adds r0, r4 ldrh r0, [r0] movs r1, 0xE bl sub_808E0CC _0808D008: ldr r2, _0808D020 ldrh r1, [r2, 0x2E] movs r0, 0x8 orrs r0, r1 strh r0, [r2, 0x2E] b _0808D078 .align 2, 0 _0808D014: .4byte 0x0000060c _0808D018: .4byte 0x0000060e _0808D01C: .4byte 0x0000062c _0808D020: .4byte 0x03001770 _0808D024: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0808D04C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _0808D050 str r1, [r0] movs r0, 0x34 bl audio_play b _0808D078 .align 2, 0 _0808D04C: .4byte 0x03004b20 _0808D050: .4byte sub_808D214 _0808D054: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0808D0A4 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _0808D0A8 str r1, [r0] movs r0, 0x3 bl audio_play _0808D078: ldr r2, _0808D0AC ldrh r1, [r2, 0x2E] movs r0, 0xA ands r0, r1 cmp r0, 0 beq _0808D0B8 ldr r0, _0808D0B0 ldr r0, [r0] movs r2, 0xCA lsls r2, 3 adds r0, r2 movs r1, 0 strb r1, [r0] ldr r1, _0808D0A4 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _0808D0B4 str r1, [r0] b _0808D0D4 .align 2, 0 _0808D0A4: .4byte 0x03004b20 _0808D0A8: .4byte sub_808D2AC _0808D0AC: .4byte 0x03001770 _0808D0B0: .4byte 0x0202ffb4 _0808D0B4: .4byte sub_808CD0C _0808D0B8: ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0808D0E4 ldr r0, _0808D0DC ldr r0, [r0] ldr r3, _0808D0E0 adds r1, r0, r3 ldrh r0, [r1] cmp r0, 0 beq _0808D0E4 subs r0, 0x1 strh r0, [r1] _0808D0D4: movs r0, 0x5 bl audio_play b _0808D106 .align 2, 0 _0808D0DC: .4byte 0x0202ffb4 _0808D0E0: .4byte 0x00000652 _0808D0E4: ldrh r1, [r2, 0x30] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0808D106 ldr r0, _0808D110 ldr r0, [r0] ldr r5, _0808D114 adds r1, r0, r5 ldrh r0, [r1] cmp r0, 0x3 bhi _0808D106 adds r0, 0x1 strh r0, [r1] movs r0, 0x5 bl audio_play _0808D106: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808D110: .4byte 0x0202ffb4 _0808D114: .4byte 0x00000652 thumb_func_end sub_808CF48 thumb_func_start sub_808D118 sub_808D118: @ 808D118 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r2, _0808D17C ldr r5, _0808D180 ldr r3, [r5] ldr r6, _0808D184 adds r0, r3, r6 ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 movs r2, 0x20 ldrsh r0, [r1, r2] cmp r0, 0x30 bne _0808D176 movs r2, 0x22 ldrsh r0, [r1, r2] cmp r0, 0x38 bne _0808D176 ldr r1, _0808D188 adds r0, r3, r1 ldrb r1, [r0] ldr r2, _0808D18C adds r0, r3, r2 strb r1, [r0] ldr r1, [r5] subs r2, 0x3D adds r0, r1, r2 ldrh r0, [r0] lsls r0, 2 adds r0, r1, r0 adds r1, r6 ldrb r1, [r1] bl sub_808F210 ldr r2, _0808D190 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r2 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x8] ldr r0, _0808D194 str r0, [r1] _0808D176: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808D17C: .4byte 0x02020004 _0808D180: .4byte 0x0202ffb4 _0808D184: .4byte 0x00000626 _0808D188: .4byte 0x0000064a _0808D18C: .4byte 0x0000064b _0808D190: .4byte 0x03004b20 _0808D194: .4byte sub_808D198 thumb_func_end sub_808D118 thumb_func_start sub_808D198 sub_808D198: @ 808D198 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0808D1F4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x4] cmp r0, 0 beq _0808D204 ldr r5, _0808D1F8 ldr r0, [r5] ldr r1, _0808D1FC adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _0808D208 ldrb r0, [r4, 0x8] bl sub_808F250 lsls r0, 24 cmp r0, 0 bne _0808D208 bl sub_808E71C lsls r0, 24 cmp r0, 0 beq _0808D208 ldr r0, [r5] ldr r2, _0808D200 adds r1, r0, r2 ldrh r1, [r1] lsls r1, 2 adds r0, r1 ldrb r1, [r4, 0x8] bl sub_808F284 b _0808D208 .align 2, 0 _0808D1F4: .4byte 0x03004b20 _0808D1F8: .4byte 0x0202ffb4 _0808D1FC: .4byte 0x0000064a _0808D200: .4byte 0x0000060e _0808D204: ldr r0, _0808D210 str r0, [r4] _0808D208: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808D210: .4byte sub_808CCC4 thumb_func_end sub_808D198 thumb_func_start sub_808D214 sub_808D214: @ 808D214 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0808D288 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808D280 ldr r4, _0808D28C ldr r0, [r4] ldr r2, _0808D290 adds r1, r0, r2 ldrh r1, [r1] ldr r3, _0808D294 adds r0, r3 strb r1, [r0] ldr r1, [r4] subs r2, 0x1A adds r0, r1, r2 ldrh r2, [r0] subs r3, 0x1E adds r0, r1, r3 strh r2, [r0] ldr r2, _0808D298 adds r0, r1, r2 ldrh r0, [r0] adds r3, 0x4 adds r1, r3 strh r0, [r1] bl sub_806912C adds r1, r0, 0 cmp r1, 0 bne _0808D262 ldr r0, [r4] ldr r2, _0808D29C adds r0, r2 strh r1, [r0] _0808D262: ldr r0, [r4] movs r3, 0xC3 lsls r3, 3 adds r1, r0, r3 ldrh r1, [r1] ldr r2, _0808D2A0 adds r0, r2 strh r1, [r0] ldr r1, _0808D2A4 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0808D2A8 str r1, [r0] _0808D280: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808D288: .4byte 0x0202f388 _0808D28C: .4byte 0x0202ffb4 _0808D290: .4byte 0x0000062a _0808D294: .4byte 0x0000062c _0808D298: .4byte 0x00000614 _0808D29C: .4byte 0x00000612 _0808D2A0: .4byte 0x00000616 _0808D2A4: .4byte 0x03004b20 _0808D2A8: .4byte sub_808C608 thumb_func_end sub_808D214 thumb_func_start sub_808D2AC sub_808D2AC: @ 808D2AC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0808D320 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808D318 ldr r4, _0808D324 ldr r0, [r4] ldr r2, _0808D328 adds r1, r0, r2 ldrh r1, [r1] ldr r3, _0808D32C adds r0, r3 strb r1, [r0] ldr r1, [r4] subs r2, 0x1A adds r0, r1, r2 ldrh r2, [r0] subs r3, 0x1E adds r0, r1, r3 strh r2, [r0] ldr r2, _0808D330 adds r0, r1, r2 ldrh r0, [r0] adds r3, 0x4 adds r1, r3 strh r0, [r1] bl sub_806912C adds r1, r0, 0 cmp r1, 0 bne _0808D2FA ldr r0, [r4] ldr r2, _0808D334 adds r0, r2 strh r1, [r0] _0808D2FA: ldr r0, [r4] movs r3, 0xC3 lsls r3, 3 adds r1, r0, r3 ldrh r1, [r1] ldr r2, _0808D338 adds r0, r2 strh r1, [r0] ldr r1, _0808D33C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0808D340 str r1, [r0] _0808D318: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808D320: .4byte 0x0202f388 _0808D324: .4byte 0x0202ffb4 _0808D328: .4byte 0x0000062a _0808D32C: .4byte 0x0000062c _0808D330: .4byte 0x00000614 _0808D334: .4byte 0x00000612 _0808D338: .4byte 0x00000616 _0808D33C: .4byte 0x03004b20 _0808D340: .4byte sub_808CC50 thumb_func_end sub_808D2AC thumb_func_start sub_808D344 sub_808D344: @ 808D344 push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0808D364 ldr r2, _0808D368 adds r0, r1, r2 ldrb r0, [r0] adds r3, r1, 0 cmp r0, 0x6 bhi _0808D38C lsls r0, 2 ldr r1, _0808D36C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0808D364: .4byte 0x03001770 _0808D368: .4byte 0x0000043c _0808D36C: .4byte _0808D370 .align 2, 0 _0808D370: .4byte _0808D38C .4byte _0808D49C .4byte _0808D4D8 .4byte _0808D50C .4byte _0808D564 .4byte _0808D590 .4byte _0808D610 _0808D38C: ldr r0, _0808D3FC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _0808D39E b _0808D634 _0808D39E: movs r0, 0 bl SetVBlankCallback ldr r4, _0808D400 ldr r0, [r4] ldr r1, _0808D404 adds r0, r1 strb r5, [r0] movs r0, 0 bl sub_8091060 ldr r1, _0808D408 ldr r0, [r4] ldr r2, _0808D40C adds r0, r2 ldrb r0, [r0] strh r0, [r1] ldr r0, _0808D410 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _0808D414 ldr r1, _0808D418 bl LZ77UnCompVram ldr r0, _0808D41C ldr r1, _0808D420 bl LZ77UnCompVram ldr r1, _0808D424 add r0, sp, 0x4 strh r6, [r0] ldr r0, _0808D428 add r2, sp, 0x4 str r2, [r0] str r1, [r0, 0x4] ldr r1, _0808D42C str r1, [r0, 0x8] ldr r0, [r0, 0x8] cmp r5, 0 bne _0808D438 ldr r0, _0808D430 ldr r1, _0808D434 bl LZ77UnCompVram b _0808D440 .align 2, 0 _0808D3FC: .4byte 0x0202f388 _0808D400: .4byte 0x0202ffb4 _0808D404: .4byte 0x0000064a _0808D408: .4byte REG_BG2VOFS _0808D40C: .4byte 0x0000062d _0808D410: .4byte gUnknown_08E86758 _0808D414: .4byte gUnknown_08E96738 _0808D418: .4byte 0x06006800 _0808D41C: .4byte gUnknown_08E9C6DC _0808D420: .4byte 0x06007800 _0808D424: .4byte 0x06006000 _0808D428: .4byte 0x040000d4 _0808D42C: .4byte 0x81000280 _0808D430: .4byte gUnknown_08E96888 _0808D434: .4byte 0x06006500 _0808D438: ldr r0, _0808D45C ldr r1, _0808D460 bl LZ77UnCompVram _0808D440: bl ResetPaletteFade cmp r5, 0 bne _0808D46C ldr r0, _0808D464 ldr r1, [r0] ldr r0, _0808D468 adds r1, r0 ldrb r2, [r1] movs r0, 0x2 negs r0, r0 ands r0, r2 b _0808D47A .align 2, 0 _0808D45C: .4byte gUnknown_08E96994 _0808D460: .4byte 0x06006500 _0808D464: .4byte 0x0202ffb4 _0808D468: .4byte 0x0000064c _0808D46C: ldr r0, _0808D48C ldr r1, [r0] ldr r2, _0808D490 adds r1, r2 ldrb r0, [r1] movs r2, 0x1 orrs r0, r2 _0808D47A: strb r0, [r1] bl sub_808D640 ldr r0, _0808D494 ldr r1, _0808D498 adds r0, r1 movs r1, 0x1 strb r1, [r0] b _0808D634 .align 2, 0 _0808D48C: .4byte 0x0202ffb4 _0808D490: .4byte 0x0000064c _0808D494: .4byte 0x03001770 _0808D498: .4byte 0x0000043c _0808D49C: bl ResetSpriteData bl FreeAllSpritePalettes ldr r1, _0808D4C4 movs r0, 0x8 strb r0, [r1] ldr r0, _0808D4C8 bl LoadCompressedObjectPic ldr r0, _0808D4CC bl LoadSpritePalettes adds r0, r5, 0 bl sub_808E978 ldr r1, _0808D4D0 ldr r2, _0808D4D4 adds r1, r2 b _0808D5E4 .align 2, 0 _0808D4C4: .4byte 0x030028f8 _0808D4C8: .4byte gUnknown_083A05CC _0808D4CC: .4byte gUnknown_083A05DC _0808D4D0: .4byte 0x03001770 _0808D4D4: .4byte 0x0000043c _0808D4D8: ldr r4, _0808D4F8 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C ldr r0, _0808D4FC ldr r1, _0808D500 bl LZ77UnCompVram ldr r1, _0808D504 ldr r0, _0808D508 adds r1, r0 b _0808D5E4 .align 2, 0 _0808D4F8: .4byte gWindowConfig_81E7048 _0808D4FC: .4byte gUnknown_0839FA7C _0808D500: .4byte 0x0600ff80 _0808D504: .4byte 0x03001770 _0808D508: .4byte 0x0000043c _0808D50C: cmp r5, 0 bne _0808D524 ldr r0, _0808D550 ldr r1, [r0] ldr r2, _0808D554 adds r0, r1, r2 ldrb r0, [r0] adds r2, 0x4 adds r1, r2 ldrb r1, [r1] bl sub_808D690 _0808D524: ldr r4, _0808D550 ldr r0, [r4] ldr r1, _0808D558 adds r0, r1 ldrh r0, [r0] movs r1, 0xE bl sub_808E0CC ldr r0, [r4] movs r2, 0xCA lsls r2, 3 adds r0, r2 movs r1, 0 strb r1, [r0] ldr r0, [r4] adds r2, 0x4 adds r0, r2 strh r1, [r0] ldr r1, _0808D55C ldr r0, _0808D560 adds r1, r0 b _0808D5E4 .align 2, 0 _0808D550: .4byte 0x0202ffb4 _0808D554: .4byte 0x00000612 _0808D558: .4byte 0x0000060e _0808D55C: .4byte 0x03001770 _0808D560: .4byte 0x0000043c _0808D564: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _0808D584 bl SetVBlankCallback ldr r1, _0808D588 ldr r2, _0808D58C adds r1, r2 b _0808D5E4 .align 2, 0 _0808D584: .4byte sub_808C0B8 _0808D588: .4byte 0x03001770 _0808D58C: .4byte 0x0000043c _0808D590: ldr r1, _0808D5EC ldr r2, _0808D5F0 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0808D5F4 adds r0, r2, 0 strh r0, [r1] ldr r0, _0808D5F8 movs r1, 0 strh r1, [r0] adds r0, 0x4 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0xA strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _0808D5FC ldr r2, _0808D600 adds r0, r2, 0 strh r0, [r1] subs r1, 0x4 ldr r2, _0808D604 adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 movs r2, 0xC0 lsls r2, 4 adds r0, r2, 0 strh r0, [r1] subs r1, 0x8 ldr r2, _0808D608 adds r0, r2, 0 strh r0, [r1] ldr r0, _0808D60C adds r1, r3, r0 _0808D5E4: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0808D634 .align 2, 0 _0808D5EC: .4byte REG_WININ _0808D5F0: .4byte 0x00003f3f _0808D5F4: .4byte 0x00001d3f _0808D5F8: .4byte REG_WIN0H _0808D5FC: .4byte REG_BG3CNT _0808D600: .4byte 0x00000f03 _0808D604: .4byte 0x00000d01 _0808D608: .4byte 0x00009f40 _0808D60C: .4byte 0x0000043c _0808D610: ldr r0, _0808D62C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _0808D634 ldr r1, _0808D630 adds r0, r3, r1 strb r2, [r0] movs r0, 0x1 b _0808D636 .align 2, 0 _0808D62C: .4byte 0x0202f388 _0808D630: .4byte 0x0000043c _0808D634: movs r0, 0 _0808D636: add sp, 0x8 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_808D344 thumb_func_start sub_808D640 sub_808D640: @ 808D640 push {lr} ldr r0, _0808D658 ldr r0, [r0] ldr r1, _0808D65C adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0808D664 ldr r0, _0808D660 b _0808D66E .align 2, 0 _0808D658: .4byte 0x0202ffb4 _0808D65C: .4byte 0x0000064c _0808D660: .4byte gUnknown_0839F67E _0808D664: bl sub_806912C cmp r0, 0 bne _0808D67C ldr r0, _0808D678 _0808D66E: movs r1, 0x1 movs r2, 0xBE bl LoadPalette b _0808D686 .align 2, 0 _0808D678: .4byte gUnknown_08E87AF6 _0808D67C: ldr r0, _0808D68C movs r1, 0x1 movs r2, 0xBE bl LoadPalette _0808D686: pop {r0} bx r0 .align 2, 0 _0808D68C: .4byte gUnknown_0839F73E thumb_func_end sub_808D640 thumb_func_start sub_808D690 sub_808D690: @ 808D690 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r6, r1, 24 ldr r0, _0808D6C4 ldr r0, [r0] ldr r1, _0808D6C8 adds r0, r1 movs r5, 0 strh r5, [r0] cmp r4, 0 beq _0808D6B8 cmp r4, 0x1 beq _0808D6CC _0808D6B8: mov r1, sp movs r0, 0xCA strh r0, [r1] movs r0, 0x1 strh r0, [r1, 0x2] b _0808D6E8 .align 2, 0 _0808D6C4: .4byte 0x0202ffb4 _0808D6C8: .4byte 0x0000060c _0808D6CC: bl sub_806912C cmp r0, 0 beq _0808D6E0 mov r0, sp movs r1, 0xC1 lsls r1, 1 strh r1, [r0] strh r5, [r0, 0x2] b _0808D6E8 _0808D6E0: mov r0, sp movs r1, 0xCA strh r1, [r0] strh r4, [r0, 0x2] _0808D6E8: cmp r6, 0x5 bls _0808D6EE b _0808DB70 _0808D6EE: lsls r0, r6, 2 ldr r1, _0808D6F8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0808D6F8: .4byte _0808D6FC .align 2, 0 _0808D6FC: .4byte _0808D714 .4byte _0808D888 .4byte _0808D934 .4byte _0808D9C4 .4byte _0808DA5C .4byte _0808DAEC _0808D714: mov r0, sp ldrh r0, [r0, 0x2] cmp r0, 0 beq _0808D7BC movs r4, 0 mov r0, sp ldrh r0, [r0] cmp r4, r0 blt _0808D728 b _0808DB70 _0808D728: mov r5, sp ldr r2, _0808D7B4 mov r8, r2 movs r3, 0x1 mov r9, r3 _0808D732: lsls r4, 16 asrs r4, 16 adds r7, r4, 0x1 mov r10, r7 lsls r0, r7, 16 lsrs r6, r0, 16 adds r0, r6, 0 bl HoennToNationalOrder strh r0, [r5, 0x4] mov r2, r8 ldr r1, [r2] lsls r4, 2 adds r1, r4 strh r0, [r1] ldrh r0, [r5, 0x4] movs r1, 0 bl sub_8090D90 mov r3, r8 ldr r2, [r3] adds r2, r4 mov r3, r9 ands r3, r0 ldrb r0, [r2, 0x2] movs r7, 0x2 negs r7, r7 adds r1, r7, 0 ands r0, r1 orrs r0, r3 strb r0, [r2, 0x2] ldrh r0, [r5, 0x4] movs r1, 0x1 bl sub_8090D90 mov r1, r8 ldr r3, [r1] adds r3, r4 mov r2, r9 ands r2, r0 lsls r2, 1 ldrb r0, [r3, 0x2] subs r7, 0x1 adds r1, r7, 0 ands r0, r1 orrs r0, r2 strb r0, [r3, 0x2] mov r0, r8 ldr r1, [r0] adds r4, r1, r4 ldrb r0, [r4, 0x2] lsls r0, 31 cmp r0, 0 beq _0808D7A6 ldr r2, _0808D7B8 adds r0, r1, r2 mov r3, r10 strh r3, [r0] _0808D7A6: adds r4, r6, 0 lsls r0, r4, 16 asrs r0, 16 ldrh r7, [r5] cmp r0, r7 blt _0808D732 b _0808DB70 .align 2, 0 _0808D7B4: .4byte 0x0202ffb4 _0808D7B8: .4byte 0x0000060c _0808D7BC: movs r4, 0 movs r5, 0 mov r10, r5 mov r0, sp ldrh r0, [r0] cmp r4, r0 blt _0808D7CC b _0808DB70 _0808D7CC: mov r6, sp ldr r0, _0808D880 mov r8, r0 movs r1, 0x1 mov r9, r1 _0808D7D6: lsls r4, 16 asrs r0, r4, 16 adds r0, 0x1 strh r0, [r6, 0x4] ldrh r0, [r6, 0x4] movs r1, 0 bl sub_8090D90 lsls r0, 24 adds r7, r4, 0 cmp r0, 0 beq _0808D7F2 movs r2, 0x1 mov r10, r2 _0808D7F2: mov r3, r10 cmp r3, 0 beq _0808D86E mov r4, r8 ldr r1, [r4] lsls r0, r5, 16 asrs r5, r0, 16 lsls r4, r5, 2 adds r1, r4 ldrh r0, [r6, 0x4] strh r0, [r1] ldrh r0, [r6, 0x4] movs r1, 0 bl sub_8090D90 mov r1, r8 ldr r2, [r1] adds r2, r4 mov r3, r9 ands r3, r0 mov r12, r3 ldrb r0, [r2, 0x2] movs r3, 0x2 negs r3, r3 adds r1, r3, 0 ands r0, r1 mov r1, r12 orrs r0, r1 strb r0, [r2, 0x2] ldrh r0, [r6, 0x4] movs r1, 0x1 bl sub_8090D90 mov r2, r8 ldr r3, [r2] adds r3, r4 mov r2, r9 ands r2, r0 lsls r2, 1 mov r12, r2 ldrb r0, [r3, 0x2] movs r2, 0x3 negs r2, r2 adds r1, r2, 0 ands r0, r1 mov r1, r12 orrs r0, r1 strb r0, [r3, 0x2] mov r3, r8 ldr r2, [r3] adds r4, r2, r4 ldrb r0, [r4, 0x2] lsls r0, 31 cmp r0, 0 beq _0808D868 adds r1, r5, 0x1 ldr r4, _0808D884 adds r0, r2, r4 strh r1, [r0] _0808D868: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _0808D86E: movs r1, 0x80 lsls r1, 9 adds r0, r7, r1 lsrs r4, r0, 16 asrs r0, 16 ldrh r2, [r6] cmp r0, r2 blt _0808D7D6 b _0808DB70 .align 2, 0 _0808D880: .4byte 0x0202ffb4 _0808D884: .4byte 0x0000060c _0808D888: movs r4, 0 mov r5, sp ldr r3, _0808D928 mov r8, r3 ldr r6, _0808D92C movs r7, 0x1 mov r9, r7 _0808D896: ldr r1, _0808D930 lsls r4, 16 asrs r0, r4, 15 adds r0, r1 ldrh r0, [r0] strh r0, [r5, 0x4] ldrh r0, [r5, 0x4] bl NationalToHoennOrder lsls r0, 16 lsrs r0, 16 adds r7, r4, 0 ldrh r1, [r5] cmp r0, r1 bhi _0808D914 ldrh r0, [r5, 0x4] movs r1, 0 bl sub_8090D90 lsls r0, 24 cmp r0, 0 beq _0808D914 mov r3, r8 ldr r2, [r3] adds r3, r2, r6 ldrh r0, [r3] lsls r0, 2 adds r0, r2, r0 ldrh r1, [r5, 0x4] strh r1, [r0] ldrh r0, [r3] lsls r0, 2 adds r2, r0 ldrb r0, [r2, 0x2] mov r4, r9 orrs r0, r4 strb r0, [r2, 0x2] ldrh r0, [r5, 0x4] movs r1, 0x1 bl sub_8090D90 mov r1, r8 ldr r3, [r1] adds r1, r3, r6 ldrh r1, [r1] lsls r1, 2 adds r3, r1 mov r2, r9 ands r2, r0 lsls r2, 1 ldrb r0, [r3, 0x2] movs r4, 0x3 negs r4, r4 adds r1, r4, 0 ands r0, r1 orrs r0, r2 strb r0, [r3, 0x2] mov r0, r8 ldr r1, [r0] adds r1, r6 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _0808D914: movs r2, 0x80 lsls r2, 9 adds r1, r7, r2 lsrs r4, r1, 16 movs r0, 0xCD lsls r0, 17 cmp r1, r0 ble _0808D896 b _0808DB70 .align 2, 0 _0808D928: .4byte 0x0202ffb4 _0808D92C: .4byte 0x0000060c _0808D930: .4byte gUnknown_0839FAC4 _0808D934: ldr r4, _0808D9B0 lsls r0, r4, 16 mov r5, sp ldr r7, _0808D9B4 ldr r6, _0808D9B8 _0808D93E: ldr r1, _0808D9BC asrs r0, 15 adds r0, r1 ldrh r0, [r0] strh r0, [r5, 0x4] ldrh r0, [r5, 0x4] bl NationalToHoennOrder lsls r0, 16 lsrs r0, 16 ldrh r3, [r5] cmp r0, r3 bhi _0808D99E ldrh r0, [r5, 0x4] movs r1, 0x1 bl sub_8090D90 lsls r0, 24 cmp r0, 0 beq _0808D99E ldr r2, [r7] adds r3, r2, r6 ldrh r0, [r3] lsls r0, 2 adds r0, r2, r0 ldrh r1, [r5, 0x4] strh r1, [r0] ldrh r0, [r3] lsls r0, 2 adds r2, r0 ldrb r0, [r2, 0x2] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x2] ldr r2, [r7] adds r0, r2, r6 ldrh r0, [r0] lsls r0, 2 adds r2, r0 ldrb r0, [r2, 0x2] movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0x2] ldr r1, [r7] adds r1, r6 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _0808D99E: lsls r0, r4, 16 ldr r4, _0808D9C0 adds r0, r4 lsrs r4, r0, 16 lsls r0, r4, 16 cmp r0, 0 bge _0808D93E b _0808DB70 .align 2, 0 _0808D9B0: .4byte 0x00000181 _0808D9B4: .4byte 0x0202ffb4 _0808D9B8: .4byte 0x0000060c _0808D9BC: .4byte gUnknown_0839FDFA _0808D9C0: .4byte 0xffff0000 _0808D9C4: movs r4, 0 mov r5, sp ldr r7, _0808DA4C mov r8, r7 ldr r6, _0808DA50 ldr r0, _0808DA54 mov r9, r0 _0808D9D2: ldr r1, _0808DA58 lsls r4, 16 asrs r0, r4, 15 adds r0, r1 ldrh r0, [r0] strh r0, [r5, 0x4] ldrh r0, [r5, 0x4] bl NationalToHoennOrder lsls r0, 16 lsrs r0, 16 adds r7, r4, 0 ldrh r1, [r5] cmp r0, r1 bhi _0808DA3A ldrh r0, [r5, 0x4] movs r1, 0x1 bl sub_8090D90 lsls r0, 24 cmp r0, 0 beq _0808DA3A mov r3, r8 ldr r2, [r3] adds r3, r2, r6 ldrh r0, [r3] lsls r0, 2 adds r0, r2, r0 ldrh r1, [r5, 0x4] strh r1, [r0] ldrh r0, [r3] lsls r0, 2 adds r2, r0 ldrb r0, [r2, 0x2] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x2] mov r4, r8 ldr r2, [r4] adds r0, r2, r6 ldrh r0, [r0] lsls r0, 2 adds r2, r0 ldrb r0, [r2, 0x2] movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0x2] ldr r1, [r4] adds r1, r6 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _0808DA3A: movs r1, 0x80 lsls r1, 9 adds r0, r7, r1 lsrs r4, r0, 16 asrs r0, 16 cmp r0, r9 ble _0808D9D2 b _0808DB70 .align 2, 0 _0808DA4C: .4byte 0x0202ffb4 _0808DA50: .4byte 0x0000060c _0808DA54: .4byte 0x00000181 _0808DA58: .4byte gUnknown_0839FDFA _0808DA5C: ldr r4, _0808DAD8 lsls r0, r4, 16 mov r5, sp ldr r7, _0808DADC ldr r6, _0808DAE0 _0808DA66: ldr r1, _0808DAE4 asrs r0, 15 adds r0, r1 ldrh r0, [r0] strh r0, [r5, 0x4] ldrh r0, [r5, 0x4] bl NationalToHoennOrder lsls r0, 16 lsrs r0, 16 ldrh r2, [r5] cmp r0, r2 bhi _0808DAC6 ldrh r0, [r5, 0x4] movs r1, 0x1 bl sub_8090D90 lsls r0, 24 cmp r0, 0 beq _0808DAC6 ldr r2, [r7] adds r3, r2, r6 ldrh r0, [r3] lsls r0, 2 adds r0, r2, r0 ldrh r1, [r5, 0x4] strh r1, [r0] ldrh r0, [r3] lsls r0, 2 adds r2, r0 ldrb r0, [r2, 0x2] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x2] ldr r2, [r7] adds r0, r2, r6 ldrh r0, [r0] lsls r0, 2 adds r2, r0 ldrb r0, [r2, 0x2] movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0x2] ldr r1, [r7] adds r1, r6 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _0808DAC6: lsls r0, r4, 16 ldr r3, _0808DAE8 adds r0, r3 lsrs r4, r0, 16 lsls r0, r4, 16 cmp r0, 0 bge _0808DA66 b _0808DB70 .align 2, 0 _0808DAD8: .4byte 0x00000181 _0808DADC: .4byte 0x0202ffb4 _0808DAE0: .4byte 0x0000060c _0808DAE4: .4byte gUnknown_083A00FE _0808DAE8: .4byte 0xffff0000 _0808DAEC: movs r4, 0 mov r5, sp ldr r7, _0808DBD4 mov r8, r7 ldr r6, _0808DBD8 ldr r0, _0808DBDC mov r9, r0 _0808DAFA: ldr r1, _0808DBE0 lsls r4, 16 asrs r0, r4, 15 adds r0, r1 ldrh r0, [r0] strh r0, [r5, 0x4] ldrh r0, [r5, 0x4] bl NationalToHoennOrder lsls r0, 16 lsrs r0, 16 adds r7, r4, 0 ldrh r1, [r5] cmp r0, r1 bhi _0808DB62 ldrh r0, [r5, 0x4] movs r1, 0x1 bl sub_8090D90 lsls r0, 24 cmp r0, 0 beq _0808DB62 mov r3, r8 ldr r2, [r3] adds r3, r2, r6 ldrh r0, [r3] lsls r0, 2 adds r0, r2, r0 ldrh r1, [r5, 0x4] strh r1, [r0] ldrh r0, [r3] lsls r0, 2 adds r2, r0 ldrb r0, [r2, 0x2] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x2] mov r4, r8 ldr r2, [r4] adds r0, r2, r6 ldrh r0, [r0] lsls r0, 2 adds r2, r0 ldrb r0, [r2, 0x2] movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0x2] ldr r1, [r4] adds r1, r6 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _0808DB62: movs r1, 0x80 lsls r1, 9 adds r0, r7, r1 lsrs r4, r0, 16 asrs r0, 16 cmp r0, r9 ble _0808DAFA _0808DB70: ldr r1, _0808DBD4 ldr r0, [r1] ldr r2, _0808DBD8 adds r0, r2 ldrh r4, [r0] lsls r3, r4, 16 asrs r0, r3, 16 ldr r2, _0808DBDC cmp r0, r2 bgt _0808DBC4 adds r5, r1, 0 movs r4, 0x2 negs r4, r4 mov r9, r4 movs r7, 0x3 negs r7, r7 mov r8, r7 adds r7, r2, 0 ldr r0, _0808DBE4 adds r6, r0, 0 _0808DB98: ldr r1, [r5] asrs r3, 16 lsls r4, r3, 2 adds r1, r4 ldrh r0, [r1] orrs r0, r6 strh r0, [r1] ldrb r2, [r1, 0x2] mov r0, r9 ands r0, r2 strb r0, [r1, 0x2] ldr r1, [r5] adds r1, r4 ldrb r2, [r1, 0x2] mov r0, r8 ands r0, r2 strb r0, [r1, 0x2] adds r3, 0x1 lsls r3, 16 asrs r0, r3, 16 cmp r0, r7 ble _0808DB98 _0808DBC4: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808DBD4: .4byte 0x0202ffb4 _0808DBD8: .4byte 0x0000060c _0808DBDC: .4byte 0x00000181 _0808DBE0: .4byte gUnknown_083A00FE _0808DBE4: .4byte 0x0000ffff thumb_func_end sub_808D690 thumb_func_start sub_808DBE8 sub_808DBE8: @ 808DBE8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r7, r2, 16 cmp r0, 0x1 beq _0808DCE0 cmp r0, 0x1 ble _0808DC0C cmp r0, 0x2 bne _0808DC0C b _0808DDD8 _0808DC0C: subs r0, r1, 0x5 lsls r0, 16 lsrs r1, r0, 16 movs r0, 0 mov r9, r0 _0808DC16: lsls r0, r1, 16 lsrs r5, r0, 16 mov r10, r0 ldr r1, _0808DC48 cmp r5, r1 bhi _0808DC36 ldr r2, _0808DC4C mov r8, r2 ldr r0, [r2] mov r3, r10 asrs r6, r3, 14 adds r0, r6 ldrh r0, [r0] ldr r1, _0808DC50 cmp r0, r1 bne _0808DC54 _0808DC36: mov r2, r9 lsls r1, r2, 25 lsrs r1, 24 movs r0, 0x11 adds r2, r7, 0 bl sub_808E090 b _0808DCC8 .align 2, 0 _0808DC48: .4byte 0x00000181 _0808DC4C: .4byte 0x0202ffb4 _0808DC50: .4byte 0x0000ffff _0808DC54: mov r3, r9 lsls r0, r3, 25 lsrs r4, r0, 24 movs r0, 0x11 adds r1, r4, 0 adds r2, r7, 0 bl sub_808E090 mov r1, r8 ldr r0, [r1] adds r0, r6 ldrb r0, [r0, 0x2] lsls r0, 31 cmp r0, 0 beq _0808DCA6 adds r0, r5, 0 movs r1, 0x12 adds r2, r4, 0 adds r3, r7, 0 bl sub_808DEB0 mov r2, r8 ldr r0, [r2] adds r0, r6 ldrb r0, [r0, 0x2] lsls r0, 30 lsrs r0, 31 movs r1, 0x11 adds r2, r4, 0 adds r3, r7, 0 bl sub_808DF88 mov r3, r8 ldr r0, [r3] adds r0, r6 ldrh r0, [r0] movs r1, 0x17 adds r2, r4, 0 bl sub_808DFE4 b _0808DCC8 _0808DCA6: adds r0, r5, 0 movs r1, 0x12 adds r2, r4, 0 adds r3, r7, 0 bl sub_808DEB0 movs r0, 0 movs r1, 0x11 adds r2, r4, 0 adds r3, r7, 0 bl sub_808DF88 movs r0, 0 movs r1, 0x17 adds r2, r4, 0 bl sub_808DFE4 _0808DCC8: movs r0, 0x80 lsls r0, 9 add r0, r10 lsrs r1, r0, 16 mov r0, r9 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r9, r0 cmp r0, 0xA bls _0808DC16 b _0808DEA2 _0808DCE0: subs r0, r1, 0x5 lsls r1, r0, 16 lsrs r5, r1, 16 ldr r0, _0808DD10 ldr r2, _0808DD14 cmp r5, r0 bhi _0808DCFE adds r6, r2, 0 ldr r3, [r6] asrs r4, r1, 14 adds r0, r3, r4 ldrh r1, [r0] ldr r0, _0808DD18 cmp r1, r0 bne _0808DD1C _0808DCFE: ldr r0, [r2] movs r1, 0xC6 lsls r1, 3 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] lsls r1, 25 b _0808DE16 .align 2, 0 _0808DD10: .4byte 0x00000181 _0808DD14: .4byte 0x0202ffb4 _0808DD18: .4byte 0x0000ffff _0808DD1C: movs r1, 0xC6 lsls r1, 3 adds r0, r3, r1 movs r2, 0 ldrsh r1, [r0, r2] lsls r1, 25 lsrs r1, 24 movs r0, 0x11 adds r2, r7, 0 bl sub_808E090 ldr r1, [r6] adds r0, r1, r4 ldrb r0, [r0, 0x2] lsls r0, 31 cmp r0, 0 beq _0808DD8C movs r3, 0xC6 lsls r3, 3 adds r0, r1, r3 movs r1, 0 ldrsh r2, [r0, r1] lsls r2, 25 lsrs r2, 24 adds r0, r5, 0 movs r1, 0x12 adds r3, r7, 0 bl sub_808DEB0 ldr r1, [r6] adds r0, r1, r4 ldrb r0, [r0, 0x2] lsls r0, 30 lsrs r0, 31 movs r2, 0xC6 lsls r2, 3 adds r1, r2 movs r3, 0 ldrsh r2, [r1, r3] lsls r2, 25 lsrs r2, 24 movs r1, 0x11 adds r3, r7, 0 bl sub_808DF88 ldr r1, [r6] adds r0, r1, r4 ldrh r0, [r0] movs r2, 0xC6 lsls r2, 3 adds r1, r2 movs r3, 0 ldrsh r2, [r1, r3] lsls r2, 25 lsrs r2, 24 b _0808DDD0 _0808DD8C: movs r2, 0xC6 lsls r2, 3 adds r0, r1, r2 movs r3, 0 ldrsh r2, [r0, r3] lsls r2, 25 lsrs r2, 24 adds r0, r5, 0 movs r1, 0x12 adds r3, r7, 0 bl sub_808DEB0 ldr r0, [r6] movs r1, 0xC6 lsls r1, 3 adds r0, r1 movs r3, 0 ldrsh r2, [r0, r3] lsls r2, 25 lsrs r2, 24 movs r0, 0 movs r1, 0x11 adds r3, r7, 0 bl sub_808DF88 ldr r0, [r6] movs r1, 0xC6 lsls r1, 3 adds r0, r1 movs r3, 0 ldrsh r2, [r0, r3] lsls r2, 25 lsrs r2, 24 movs r0, 0 _0808DDD0: movs r1, 0x17 bl sub_808DFE4 b _0808DEA2 _0808DDD8: adds r0, r1, 0x5 lsls r0, 16 lsrs r1, r0, 16 ldr r0, _0808DE24 mov r8, r0 ldr r3, [r0] movs r2, 0xC6 lsls r2, 3 adds r0, r3, r2 ldrh r0, [r0] adds r0, 0xA lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0xF bls _0808DDFE adds r0, r2, 0 subs r0, 0x10 lsls r0, 16 lsrs r2, r0, 16 _0808DDFE: lsls r1, 16 lsrs r5, r1, 16 ldr r0, _0808DE28 cmp r5, r0 bhi _0808DE14 asrs r6, r1, 14 adds r0, r3, r6 ldrh r1, [r0] ldr r0, _0808DE2C cmp r1, r0 bne _0808DE30 _0808DE14: lsls r1, r2, 25 _0808DE16: lsrs r1, 24 movs r0, 0x11 adds r2, r7, 0 bl sub_808E090 b _0808DEA2 .align 2, 0 _0808DE24: .4byte 0x0202ffb4 _0808DE28: .4byte 0x00000181 _0808DE2C: .4byte 0x0000ffff _0808DE30: lsls r0, r2, 25 lsrs r4, r0, 24 movs r0, 0x11 adds r1, r4, 0 adds r2, r7, 0 bl sub_808E090 mov r3, r8 ldr r0, [r3] adds r0, r6 ldrb r0, [r0, 0x2] lsls r0, 31 cmp r0, 0 beq _0808DE80 adds r0, r5, 0 movs r1, 0x12 adds r2, r4, 0 adds r3, r7, 0 bl sub_808DEB0 mov r1, r8 ldr r0, [r1] adds r0, r6 ldrb r0, [r0, 0x2] lsls r0, 30 lsrs r0, 31 movs r1, 0x11 adds r2, r4, 0 adds r3, r7, 0 bl sub_808DF88 mov r2, r8 ldr r0, [r2] adds r0, r6 ldrh r0, [r0] movs r1, 0x17 adds r2, r4, 0 bl sub_808DFE4 b _0808DEA2 _0808DE80: adds r0, r5, 0 movs r1, 0x12 adds r2, r4, 0 adds r3, r7, 0 bl sub_808DEB0 movs r0, 0 movs r1, 0x11 adds r2, r4, 0 adds r3, r7, 0 bl sub_808DF88 movs r0, 0 movs r1, 0x17 adds r2, r4, 0 bl sub_808DFE4 _0808DEA2: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_808DBE8 thumb_func_start sub_808DEB0 sub_808DEB0: @ 808DEB0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 16 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r2, 24 lsrs r2, 24 mov r9, r2 lsls r3, 16 lsrs r3, 16 mov r10, r3 ldr r1, _0808DF7C ldr r1, [r1] lsrs r0, 14 adds r0, r1, r0 ldrh r7, [r0] ldr r0, _0808DF80 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _0808DEEE adds r0, r7, 0 bl NationalToHoennOrder lsls r0, 16 lsrs r7, r0, 16 _0808DEEE: add r6, sp, 0x4 movs r0, 0xFF lsls r0, 2 strh r0, [r6] adds r0, 0x1 strh r0, [r6, 0x2] mov r4, sp adds r0, r7, 0 movs r1, 0x64 bl __udivsi3 adds r0, 0xA1 strb r0, [r4] mov r5, sp adds r0, r7, 0 movs r1, 0x64 bl __umodsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r4, 0 movs r1, 0xA bl __udivsi3 adds r0, 0xA1 strb r0, [r5, 0x1] mov r5, sp adds r0, r4, 0 movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r5, 0x2] mov r1, sp movs r0, 0xFF strb r0, [r1, 0x3] mov r1, r8 lsls r2, r1, 1 mov r3, r10 lsls r0, r3, 11 mov r3, r9 lsls r1, r3, 6 adds r0, r1 adds r2, r0 movs r0, 0xC0 lsls r0, 19 adds r1, r2, r0 ldrh r0, [r6] strh r0, [r1] ldr r1, _0808DF84 adds r2, r1 ldrh r0, [r6, 0x2] strh r0, [r2] mov r1, r8 subs r1, 0xF lsls r1, 24 lsrs r1, 24 mov r0, sp mov r2, r9 bl Print add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808DF7C: .4byte 0x0202ffb4 _0808DF80: .4byte 0x00000612 _0808DF84: .4byte 0x06000040 thumb_func_end sub_808DEB0 thumb_func_start sub_808DF88 sub_808DF88: @ 808DF88 push {r4-r6,lr} sub sp, 0x4 lsls r0, 16 lsrs r4, r0, 16 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r6, r2, 24 lsls r3, 16 lsrs r3, 16 cmp r4, 0 beq _0808DFB0 mov r1, sp ldr r0, _0808DFAC strh r0, [r1] adds r0, 0x1 strh r0, [r1, 0x2] b _0808DFB6 .align 2, 0 _0808DFAC: .4byte 0x000003fe _0808DFB0: mov r0, sp strh r4, [r0] strh r4, [r0, 0x2] _0808DFB6: lsls r2, r5, 1 lsls r0, r3, 11 lsls r1, r6, 6 adds r0, r1 adds r2, r0 movs r0, 0xC0 lsls r0, 19 adds r1, r2, r0 mov r0, sp ldrh r0, [r0] strh r0, [r1] ldr r0, _0808DFE0 adds r2, r0 mov r0, sp ldrh r0, [r0, 0x2] strh r0, [r2] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808DFE0: .4byte 0x06000040 thumb_func_end sub_808DF88 thumb_func_start sub_808DFE4 sub_808DFE4: @ 808DFE4 push {r4-r6,lr} sub sp, 0xC lsls r0, 16 lsrs r3, r0, 16 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r6, r2, 24 movs r4, 0 movs r1, 0 _0808DFF8: mov r2, sp adds r0, r2, r4 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _0808DFF8 adds r0, r2, r4 movs r1, 0xFF strb r1, [r0] adds r0, r3, 0 bl NationalPokedexNumToSpecies adds r3, r0, 0 cmp r3, 0 beq _0808E058 movs r4, 0 ldr r2, _0808E054 movs r0, 0xB adds r1, r3, 0 muls r1, r0 adds r0, r1, r2 ldrb r0, [r0] subs r5, 0x11 lsls r6, 19 cmp r0, 0xFF beq _0808E070 adds r3, r1, 0 _0808E032: mov r0, sp adds r1, r0, r4 adds r0, r4, r3 adds r0, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, r3 adds r0, r2 ldrb r0, [r0] cmp r0, 0xFF beq _0808E070 cmp r4, 0x9 bls _0808E032 b _0808E070 .align 2, 0 _0808E054: .4byte gSpeciesNames _0808E058: movs r4, 0 subs r5, 0x11 lsls r6, 19 movs r1, 0xAE _0808E060: mov r2, sp adds r0, r2, r4 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _0808E060 _0808E070: lsls r1, r5, 27 movs r0, 0xFC lsls r0, 24 adds r1, r0 lsrs r1, 24 lsrs r2, r6, 16 mov r0, sp movs r3, 0 bl sub_80729D8 adds r0, r4, 0 add sp, 0xC pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_808DFE4 thumb_func_start sub_808E090 sub_808E090: @ 808E090 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsls r2, 16 movs r3, 0 lsrs r2, 5 lsrs r1, 18 adds r4, r2, r1 movs r2, 0 movs r7, 0xC0 lsls r7, 19 ldr r6, _0808E0C8 _0808E0AA: adds r0, r5, r3 lsls r0, 1 adds r0, r4 adds r1, r0, r7 strh r2, [r1] adds r0, r6 strh r2, [r0] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xB bls _0808E0AA pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808E0C8: .4byte 0x06000040 thumb_func_end sub_808E090 thumb_func_start sub_808E0CC sub_808E0CC: @ 808E0CC push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 lsrs r7, r1, 16 movs r3, 0 ldr r0, _0808E1E0 mov r8, r0 mov r6, r8 ldr r2, _0808E1E4 ldr r1, _0808E1E8 adds r4, r1, 0 _0808E0E8: ldr r1, [r6] lsls r0, r3, 1 adds r1, r2 adds r1, r0 ldrh r0, [r1] orrs r0, r4 strh r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _0808E0E8 mov r4, r8 ldr r0, [r4] ldr r2, _0808E1EC adds r0, r2 ldr r1, _0808E1E8 strh r1, [r0] movs r0, 0 adds r1, r5, 0 adds r2, r7, 0 bl sub_808DBE8 ldr r1, _0808E1F0 ldr r0, [r4] ldr r2, _0808E1F4 adds r0, r2 ldrb r0, [r0] strh r0, [r1] subs r0, r5, 0x1 lsls r0, 16 lsrs r0, 16 bl sub_808E888 lsls r0, 16 lsrs r0, 16 ldr r4, _0808E1E8 cmp r0, r4 beq _0808E15A movs r1, 0x60 movs r2, 0x50 bl sub_808E8C8 lsls r0, 24 lsrs r1, r0, 24 ldr r3, _0808E1F8 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r1, r0, r1 ldr r2, _0808E1FC str r2, [r1] adds r0, r3 ldr r1, _0808E200 strh r1, [r0, 0x38] _0808E15A: adds r0, r5, 0 bl sub_808E888 lsls r0, 16 lsrs r0, 16 cmp r0, r4 beq _0808E18C movs r1, 0x60 movs r2, 0x50 bl sub_808E8C8 lsls r0, 24 lsrs r1, r0, 24 ldr r3, _0808E1F8 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r1, r0, r1 ldr r2, _0808E1FC str r2, [r1] adds r0, r3 movs r1, 0 strh r1, [r0, 0x38] _0808E18C: adds r0, r5, 0x1 lsls r0, 16 lsrs r0, 16 bl sub_808E888 lsls r0, 16 lsrs r0, 16 cmp r0, r4 beq _0808E1C2 movs r1, 0x60 movs r2, 0x50 bl sub_808E8C8 lsls r0, 24 lsrs r1, r0, 24 ldr r3, _0808E1F8 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r1, r0, r1 ldr r2, _0808E1FC str r2, [r1] adds r0, r3 movs r1, 0x20 strh r1, [r0, 0x38] _0808E1C2: mov r1, r8 ldr r0, [r1] movs r2, 0xC6 lsls r2, 3 adds r1, r0, r2 movs r2, 0 strh r2, [r1] ldr r1, _0808E204 adds r0, r1 strh r2, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808E1E0: .4byte 0x0202ffb4 _0808E1E4: .4byte 0x0000061e _0808E1E8: .4byte 0x0000ffff _0808E1EC: .4byte 0x00000626 _0808E1F0: .4byte REG_BG2VOFS _0808E1F4: .4byte 0x0000062d _0808E1F8: .4byte 0x02020004 _0808E1FC: .4byte sub_808EE28 _0808E200: .4byte 0x0000ffe0 _0808E204: .4byte 0x00000632 thumb_func_end sub_808E0CC thumb_func_start sub_808E208 sub_808E208: @ 808E208 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r6, r2, 24 ldr r0, _0808E23C ldr r3, [r0] ldr r1, _0808E240 adds r2, r3, r1 ldrb r1, [r2] adds r7, r0, 0 cmp r1, 0 bne _0808E22C b _0808E36C _0808E22C: subs r0, r1, 0x1 strb r0, [r2] cmp r4, 0x1 beq _0808E244 cmp r4, 0x2 beq _0808E2D8 b _0808E34C .align 2, 0 _0808E23C: .4byte 0x0202ffb4 _0808E240: .4byte 0x0000062e _0808E244: movs r3, 0 ldr r2, _0808E2BC mov r12, r2 ldr r4, _0808E2C0 mov r8, r4 adds r2, r7, 0 _0808E250: ldr r0, [r2] lsls r1, r3, 1 ldr r4, _0808E2C4 adds r0, r4 adds r1, r0, r1 ldrh r0, [r1] cmp r0, r12 beq _0808E26E lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 ldrh r0, [r1, 0x38] adds r0, r5 strh r0, [r1, 0x38] _0808E26E: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _0808E250 ldr r4, [r7] ldr r5, _0808E2C8 adds r0, r4, r5 ldrb r0, [r0] subs r0, r6, r0 lsls r0, 4 adds r1, r6, 0 bl __divsi3 lsls r0, 24 lsrs r3, r0, 24 ldr r2, _0808E2CC ldr r0, _0808E2D0 adds r1, r4, r0 adds r5, 0x4 adds r0, r4, r5 movs r5, 0 ldrsh r0, [r0, r5] lsls r0, 4 ldrb r1, [r1] adds r0, r1 subs r0, r3 strh r0, [r2] ldr r0, _0808E2D4 adds r2, r4, r0 movs r1, 0xC5 lsls r1, 3 adds r4, r1 ldrb r1, [r4] ldrb r0, [r2] subs r0, r1 strb r0, [r2] b _0808E34C .align 2, 0 _0808E2BC: .4byte 0x0000ffff _0808E2C0: .4byte 0x02020004 _0808E2C4: .4byte 0x0000061e _0808E2C8: .4byte 0x0000062e _0808E2CC: .4byte REG_BG2VOFS _0808E2D0: .4byte 0x0000062d _0808E2D4: .4byte 0x0000062c _0808E2D8: movs r3, 0 ldr r2, _0808E350 mov r12, r2 ldr r4, _0808E354 mov r8, r4 adds r2, r7, 0 _0808E2E4: ldr r0, [r2] lsls r1, r3, 1 ldr r4, _0808E358 adds r0, r4 adds r1, r0, r1 ldrh r0, [r1] cmp r0, r12 beq _0808E302 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 ldrh r0, [r1, 0x38] subs r0, r5 strh r0, [r1, 0x38] _0808E302: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _0808E2E4 ldr r4, [r7] ldr r5, _0808E35C adds r0, r4, r5 ldrb r0, [r0] subs r0, r6, r0 lsls r0, 4 adds r1, r6, 0 bl __divsi3 lsls r0, 24 lsrs r3, r0, 24 ldr r2, _0808E360 ldr r0, _0808E364 adds r1, r4, r0 adds r5, 0x4 adds r0, r4, r5 movs r5, 0 ldrsh r0, [r0, r5] lsls r0, 4 ldrb r1, [r1] adds r0, r1 adds r0, r3 strh r0, [r2] ldr r0, _0808E368 adds r1, r4, r0 movs r2, 0xC5 lsls r2, 3 adds r4, r2 ldrb r0, [r4] ldrb r3, [r1] adds r0, r3 strb r0, [r1] _0808E34C: movs r0, 0 b _0808E386 .align 2, 0 _0808E350: .4byte 0x0000ffff _0808E354: .4byte 0x02020004 _0808E358: .4byte 0x0000061e _0808E35C: .4byte 0x0000062e _0808E360: .4byte REG_BG2VOFS _0808E364: .4byte 0x0000062d _0808E368: .4byte 0x0000062c _0808E36C: ldr r2, _0808E390 ldr r4, _0808E394 adds r1, r3, r4 movs r5, 0xC6 lsls r5, 3 adds r0, r3, r5 movs r3, 0 ldrsh r0, [r0, r3] lsls r0, 4 ldrb r1, [r1] adds r0, r1 strh r0, [r2] movs r0, 0x1 _0808E386: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0808E390: .4byte REG_BG2VOFS _0808E394: .4byte 0x0000062d thumb_func_end sub_808E208 thumb_func_start sub_808E398 sub_808E398: @ 808E398 push {r4-r6,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 16 lsrs r3, r1, 16 ldr r4, _0808E3C0 ldr r0, [r4] movs r5, 0xC6 lsls r5, 3 adds r1, r0, r5 ldrh r1, [r1] ldr r6, _0808E3C4 adds r0, r6 strh r1, [r0] cmp r2, 0x1 beq _0808E3C8 cmp r2, 0x2 beq _0808E428 b _0808E484 .align 2, 0 _0808E3C0: .4byte 0x0202ffb4 _0808E3C4: .4byte 0x00000632 _0808E3C8: subs r0, r3, 0x1 lsls r0, 16 lsrs r0, 16 bl sub_808E888 lsls r0, 16 lsrs r1, r0, 16 ldr r0, _0808E414 cmp r1, r0 beq _0808E402 adds r0, r1, 0 movs r1, 0x60 movs r2, 0x50 bl sub_808E8C8 lsls r0, 24 lsrs r1, r0, 24 ldr r3, _0808E418 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r1, r0, r1 ldr r2, _0808E41C str r2, [r1] adds r0, r3 ldr r1, _0808E420 strh r1, [r0, 0x38] _0808E402: ldr r0, [r4] adds r1, r0, r5 ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 ble _0808E424 subs r0, r2, 0x1 b _0808E482 .align 2, 0 _0808E414: .4byte 0x0000ffff _0808E418: .4byte 0x02020004 _0808E41C: .4byte sub_808EE28 _0808E420: .4byte 0x0000ffc0 _0808E424: movs r0, 0xF b _0808E482 _0808E428: adds r0, r3, 0x1 lsls r0, 16 lsrs r0, 16 bl sub_808E888 lsls r0, 16 lsrs r1, r0, 16 ldr r0, _0808E474 cmp r1, r0 beq _0808E462 adds r0, r1, 0 movs r1, 0x60 movs r2, 0x50 bl sub_808E8C8 lsls r0, 24 lsrs r1, r0, 24 ldr r3, _0808E478 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r1, r0, r1 ldr r2, _0808E47C str r2, [r1] adds r0, r3 movs r1, 0x40 strh r1, [r0, 0x38] _0808E462: ldr r0, [r4] adds r1, r0, r5 ldrh r2, [r1] movs r6, 0 ldrsh r0, [r1, r6] cmp r0, 0xE bgt _0808E480 adds r0, r2, 0x1 b _0808E482 .align 2, 0 _0808E474: .4byte 0x0000ffff _0808E478: .4byte 0x02020004 _0808E47C: .4byte sub_808EE28 _0808E480: movs r0, 0 _0808E482: strh r0, [r1] _0808E484: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_808E398 thumb_func_start sub_808E48C sub_808E48C: @ 808E48C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 lsrs r7, r0, 16 lsls r1, 16 lsrs r4, r1, 16 movs r0, 0 mov r10, r0 ldr r1, _0808E52C ldrh r2, [r1, 0x2C] movs r0, 0x40 ands r0, r2 adds r3, r1, 0 cmp r0, 0 beq _0808E4B6 cmp r7, 0 beq _0808E4B6 b _0808E5E4 _0808E4B6: movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _0808E4CE ldr r0, _0808E530 ldr r0, [r0] ldr r1, _0808E534 adds r0, r1 ldrh r0, [r0] subs r0, 0x1 cmp r7, r0 blt _0808E5C4 _0808E4CE: ldrh r1, [r3, 0x2E] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0808E53C cmp r7, 0 beq _0808E53C adds r6, r7, 0 movs r4, 0 _0808E4E0: ldr r5, _0808E530 ldr r0, [r5] ldr r2, _0808E534 adds r0, r2 ldrh r3, [r0] subs r3, 0x1 lsls r3, 16 lsrs r3, 16 movs r0, 0x1 adds r1, r7, 0 movs r2, 0 bl sub_8091818 adds r7, r0, 0 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 bls _0808E4E0 ldr r1, [r5] ldr r3, _0808E538 adds r1, r3 subs r0, r7, r6 lsls r0, 4 ldrb r2, [r1] adds r0, r2 strb r0, [r1] bl sub_808E82C adds r0, r7, 0 movs r1, 0xE bl sub_808E0CC movs r0, 0x6D bl audio_play b _0808E5A2 .align 2, 0 _0808E52C: .4byte 0x03001770 _0808E530: .4byte 0x0202ffb4 _0808E534: .4byte 0x0000060c _0808E538: .4byte 0x0000062c _0808E53C: ldrh r1, [r3, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0808E5A2 ldr r0, _0808E5B8 ldr r0, [r0] ldr r3, _0808E5BC adds r0, r3 ldrh r0, [r0] subs r0, 0x1 cmp r7, r0 bge _0808E5A2 adds r6, r7, 0 movs r4, 0 _0808E55A: ldr r5, _0808E5B8 ldr r0, [r5] ldr r1, _0808E5BC adds r0, r1 ldrh r3, [r0] subs r3, 0x1 lsls r3, 16 lsrs r3, 16 movs r0, 0 adds r1, r7, 0 movs r2, 0 bl sub_8091818 adds r7, r0, 0 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 bls _0808E55A ldr r1, [r5] ldr r2, _0808E5C0 adds r1, r2 subs r0, r7, r6 lsls r0, 4 ldrb r3, [r1] adds r0, r3 strb r0, [r1] bl sub_808E82C adds r0, r7, 0 movs r1, 0xE bl sub_808E0CC movs r0, 0x6D bl audio_play _0808E5A2: mov r0, r10 cmp r0, 0 bne _0808E628 ldr r0, _0808E5B8 ldr r0, [r0] movs r1, 0xC7 lsls r1, 3 adds r0, r1 mov r2, r10 strh r2, [r0] b _0808E68E .align 2, 0 _0808E5B8: .4byte 0x0202ffb4 _0808E5BC: .4byte 0x0000060c _0808E5C0: .4byte 0x0000062c _0808E5C4: movs r3, 0x2 mov r10, r3 lsls r3, r0, 16 lsrs r3, 16 movs r0, 0 adds r1, r7, 0 movs r2, 0 bl sub_8091818 adds r7, r0, 0 movs r0, 0x2 adds r1, r7, 0 bl sub_808E398 movs r0, 0x2 b _0808E60E _0808E5E4: movs r0, 0x1 mov r10, r0 ldr r0, _0808E620 ldr r0, [r0] ldr r1, _0808E624 adds r0, r1 ldrh r3, [r0] subs r3, 0x1 lsls r3, 16 lsrs r3, 16 movs r0, 0x1 adds r1, r7, 0 movs r2, 0 bl sub_8091818 adds r7, r0, 0 movs r0, 0x1 adds r1, r7, 0 bl sub_808E398 movs r0, 0x1 _0808E60E: adds r1, r7, 0 adds r2, r4, 0 bl sub_808DBE8 movs r0, 0x6C bl audio_play b _0808E5A2 .align 2, 0 _0808E620: .4byte 0x0202ffb4 _0808E624: .4byte 0x0000060c _0808E628: ldr r1, _0808E6A0 ldr r6, _0808E6A4 ldr r2, [r6] movs r3, 0xC7 lsls r3, 3 mov r9, r3 adds r0, r2, r3 ldrh r0, [r0] lsrs r0, 2 adds r1, r0, r1 ldrb r5, [r1] ldr r1, _0808E6A8 adds r0, r1 ldrb r3, [r0] ldr r0, _0808E6AC adds r2, r0 strb r3, [r2] ldr r1, [r6] ldr r2, _0808E6B0 mov r8, r2 adds r0, r1, r2 strh r3, [r0] ldr r4, _0808E6B4 adds r0, r1, r4 strh r5, [r0] ldr r3, _0808E6B8 adds r1, r3 mov r0, r10 strb r0, [r1] ldr r2, [r6] lsrs r5, 1 movs r1, 0xC5 lsls r1, 3 adds r0, r2, r1 strh r5, [r0] adds r3, r2, r3 ldrb r0, [r3] adds r4, r2, r4 ldrb r1, [r4] add r2, r8 ldrb r2, [r2] bl sub_808E208 ldr r0, [r6] mov r2, r9 adds r1, r0, r2 ldrh r0, [r1] cmp r0, 0xB bhi _0808E68E adds r0, 0x1 strh r0, [r1] _0808E68E: adds r0, r7, 0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0808E6A0: .4byte gUnknown_083A05EC _0808E6A4: .4byte 0x0202ffb4 _0808E6A8: .4byte gUnknown_083A05F1 _0808E6AC: .4byte 0x0000062e _0808E6B0: .4byte 0x00000636 _0808E6B4: .4byte 0x00000634 _0808E6B8: .4byte 0x0000062f thumb_func_end sub_808E48C thumb_func_start sub_808E6BC sub_808E6BC: @ 808E6BC push {r4-r7,lr} movs r4, 0 ldr r0, _0808E708 mov r12, r0 ldr r6, _0808E70C ldr r5, _0808E710 _0808E6C8: mov r1, r12 ldr r3, [r1] lsls r1, r4, 1 ldr r2, _0808E714 adds r0, r3, r2 adds r0, r1 ldrh r2, [r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, r0, r6 movs r7, 0x24 ldrsh r0, [r1, r7] cmp r0, 0 bne _0808E6F8 movs r7, 0x26 ldrsh r0, [r1, r7] cmp r0, 0 bne _0808E6F8 cmp r2, r5 beq _0808E6F8 ldr r1, _0808E718 adds r0, r3, r1 strh r2, [r0] _0808E6F8: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3 bls _0808E6C8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808E708: .4byte 0x0202ffb4 _0808E70C: .4byte 0x02020004 _0808E710: .4byte 0x0000ffff _0808E714: .4byte 0x0000061e _0808E718: .4byte 0x00000626 thumb_func_end sub_808E6BC thumb_func_start sub_808E71C sub_808E71C: @ 808E71C push {r4-r6,lr} ldr r3, _0808E77C ldr r0, [r3] ldr r1, _0808E780 adds r0, r1 ldrh r4, [r0] ldr r2, _0808E784 ldrh r1, [r2, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0808E7A4 cmp r4, 0 beq _0808E7A4 adds r2, r4, 0 adds r5, r3, 0 _0808E73C: ldr r0, [r5] ldr r1, _0808E788 adds r0, r1 ldrh r3, [r0] subs r3, 0x1 lsls r3, 16 lsrs r3, 16 movs r0, 0x1 adds r1, r2, 0 movs r2, 0 bl sub_8091818 lsls r0, 16 lsrs r2, r0, 16 ldr r0, [r5] lsls r1, r2, 2 adds r0, r1 ldrb r0, [r0, 0x2] lsls r0, 31 cmp r0, 0 bne _0808E78C cmp r2, 0 bne _0808E73C _0808E76A: ldr r0, _0808E77C ldr r1, [r0] ldr r0, _0808E780 adds r2, r1, r0 ldrh r0, [r2] cmp r0, r4 bne _0808E790 b _0808E824 .align 2, 0 _0808E77C: .4byte 0x0202ffb4 _0808E780: .4byte 0x0000060e _0808E784: .4byte 0x03001770 _0808E788: .4byte 0x0000060c _0808E78C: adds r4, r2, 0 b _0808E76A _0808E790: strh r4, [r2] ldr r0, _0808E79C adds r1, r0 ldrb r0, [r1] subs r0, 0x10 b _0808E80C .align 2, 0 _0808E79C: .4byte 0x0000062c _0808E7A0: adds r4, r2, 0 b _0808E7F4 _0808E7A4: ldrh r1, [r2, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0808E824 ldr r0, [r3] ldr r1, _0808E814 adds r0, r1 ldrh r0, [r0] subs r0, 0x1 cmp r4, r0 bge _0808E824 adds r2, r4, 0 adds r6, r3, 0 adds r5, r1, 0 _0808E7C2: ldr r0, [r6] adds r0, r5 ldrh r3, [r0] subs r3, 0x1 lsls r3, 16 lsrs r3, 16 movs r0, 0 adds r1, r2, 0 movs r2, 0 bl sub_8091818 lsls r0, 16 lsrs r2, r0, 16 ldr r1, [r6] lsls r0, r2, 2 adds r0, r1, r0 ldrb r0, [r0, 0x2] lsls r0, 31 cmp r0, 0 bne _0808E7A0 adds r0, r1, r5 ldrh r0, [r0] subs r0, 0x1 cmp r2, r0 blt _0808E7C2 _0808E7F4: ldr r0, _0808E818 ldr r1, [r0] ldr r0, _0808E81C adds r2, r1, r0 ldrh r0, [r2] cmp r0, r4 beq _0808E824 strh r4, [r2] ldr r0, _0808E820 adds r1, r0 ldrb r0, [r1] adds r0, 0x10 _0808E80C: strb r0, [r1] movs r0, 0x1 b _0808E826 .align 2, 0 _0808E814: .4byte 0x0000060c _0808E818: .4byte 0x0202ffb4 _0808E81C: .4byte 0x0000060e _0808E820: .4byte 0x0000062c _0808E824: movs r0, 0 _0808E826: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_808E71C thumb_func_start sub_808E82C sub_808E82C: @ 808E82C push {r4-r7,lr} movs r5, 0 ldr r6, _0808E878 ldr r7, _0808E87C _0808E834: ldr r0, [r6] lsls r4, r5, 1 ldr r1, _0808E880 adds r0, r1 adds r1, r0, r4 ldrh r0, [r1] cmp r0, r7 beq _0808E864 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0808E884 adds r0, r1 bl DestroySprite ldr r1, [r6] ldr r0, _0808E880 adds r1, r0 adds r1, r4 ldrh r2, [r1] adds r0, r7, 0 orrs r0, r2 strh r0, [r1] _0808E864: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3 bls _0808E834 movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0808E878: .4byte 0x0202ffb4 _0808E87C: .4byte 0x0000ffff _0808E880: .4byte 0x0000061e _0808E884: .4byte 0x02020004 thumb_func_end sub_808E82C thumb_func_start sub_808E888 sub_808E888: @ 808E888 push {lr} lsls r0, 16 lsrs r2, r0, 16 ldr r0, _0808E8A8 cmp r2, r0 bhi _0808E8A4 ldr r0, _0808E8AC ldr r1, [r0] lsls r0, r2, 2 adds r2, r1, r0 ldrh r1, [r2] ldr r0, _0808E8B0 cmp r1, r0 bne _0808E8B4 _0808E8A4: ldr r0, _0808E8B0 b _0808E8C2 .align 2, 0 _0808E8A8: .4byte 0x00000181 _0808E8AC: .4byte 0x0202ffb4 _0808E8B0: .4byte 0x0000ffff _0808E8B4: ldrb r0, [r2, 0x2] lsls r0, 31 cmp r0, 0 bne _0808E8C0 movs r0, 0 b _0808E8C2 _0808E8C0: ldrh r0, [r2] _0808E8C2: pop {r1} bx r1 thumb_func_end sub_808E888 thumb_func_start sub_808E8C8 sub_808E8C8: @ 808E8C8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r2, 16 lsrs r2, 16 movs r6, 0 ldr r0, _0808E94C mov r9, r0 ldr r3, _0808E950 lsls r1, 16 _0808E8E4: mov r4, r9 ldr r0, [r4] lsls r7, r6, 1 ldr r4, _0808E954 adds r0, r4 adds r0, r7 ldrh r0, [r0] cmp r0, r3 bne _0808E95C lsls r2, 16 mov r0, r8 asrs r1, 16 asrs r2, 16 adds r3, r6, 0 bl sub_80918EC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, _0808E958 lsls r4, r5, 4 adds r4, r5 lsls r4, 2 adds r4, r0 ldrb r1, [r4, 0x1] movs r2, 0x4 negs r2, r2 adds r0, r2, 0 ands r1, r0 movs r0, 0x1 orrs r1, r0 strb r1, [r4, 0x1] ldrb r0, [r4, 0x5] movs r1, 0xC orrs r0, r1 strb r0, [r4, 0x5] movs r0, 0 strh r0, [r4, 0x2E] strh r6, [r4, 0x30] mov r0, r8 bl NationalPokedexNumToSpecies strh r0, [r4, 0x32] mov r4, r9 ldr r0, [r4] ldr r1, _0808E954 adds r0, r1 adds r0, r7 strh r5, [r0] adds r0, r5, 0 b _0808E968 .align 2, 0 _0808E94C: .4byte 0x0202ffb4 _0808E950: .4byte 0x0000ffff _0808E954: .4byte 0x0000061e _0808E958: .4byte 0x02020004 _0808E95C: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 bls _0808E8E4 ldr r0, _0808E974 _0808E968: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0808E974: .4byte 0x0000ffff thumb_func_end sub_808E8C8 thumb_func_start sub_808E978 sub_808E978: @ 808E978 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r8, r0 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r4, _0808EB3C adds r0, r4, 0 movs r1, 0xB8 movs r2, 0x4 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r1, _0808EB40 mov r10, r1 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 add r0, r10 movs r1, 0 strh r1, [r0, 0x30] adds r0, r4, 0 movs r1, 0xB8 movs r2, 0x9C movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 add r0, r10 movs r1, 0x1 strh r1, [r0, 0x30] adds r0, 0x3F ldrb r1, [r0] movs r2, 0x2 orrs r1, r2 strb r1, [r0] ldr r0, _0808EB44 movs r1, 0xEA movs r2, 0x14 movs r3, 0 bl CreateSprite ldr r5, _0808EB48 adds r0, r5, 0 movs r1, 0x10 movs r2, 0x8A movs r3, 0 bl CreateSprite adds r0, r5, 0 movs r1, 0x30 movs r2, 0x8A movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 add r0, r10 movs r1, 0x3 bl StartSpriteAnim adds r0, r5, 0 movs r1, 0x10 movs r2, 0x9E movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r4, r7, 4 adds r4, r7 lsls r4, 2 add r4, r10 adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim movs r0, 0x80 mov r9, r0 mov r1, r9 strh r1, [r4, 0x32] adds r0, r5, 0 movs r1, 0x30 movs r2, 0x9E movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 add r0, r10 movs r1, 0x1 bl StartSpriteAnim ldr r6, _0808EB4C adds r0, r6, 0 movs r1, 0 movs r2, 0x50 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r1, r7, 4 adds r1, r7 lsls r1, 2 add r1, r10 ldrb r2, [r1, 0x1] movs r4, 0x4 negs r4, r4 adds r0, r4, 0 ands r0, r2 movs r5, 0x1 orrs r0, r5 strb r0, [r1, 0x1] ldrb r2, [r1, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r2 movs r2, 0x3C orrs r0, r2 strb r0, [r1, 0x3] movs r0, 0x1E strh r0, [r1, 0x2E] movs r0, 0 strh r0, [r1, 0x30] adds r0, r6, 0 movs r1, 0 movs r2, 0x50 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r1, r7, 4 adds r1, r7 lsls r1, 2 add r1, r10 ldrb r0, [r1, 0x1] ands r4, r0 orrs r4, r5 strb r4, [r1, 0x1] ldrb r0, [r1, 0x3] movs r2, 0x3E orrs r0, r2 strb r0, [r1, 0x3] movs r0, 0x1F strh r0, [r1, 0x2E] mov r0, r9 strh r0, [r1, 0x30] mov r1, r8 cmp r1, 0 beq _0808EAC8 b _0808ED5C _0808EAC8: ldr r4, _0808EB50 adds r0, r4, 0 movs r1, 0x20 movs r2, 0x28 movs r3, 0x1 bl CreateSprite adds r0, r4, 0 movs r1, 0x20 movs r2, 0x48 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 add r0, r10 movs r1, 0x1 bl StartSpriteAnim movs r0, 0 mov r8, r0 ldr r0, _0808EB54 movs r1, 0x1C movs r2, 0x30 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, _0808EB58 ldr r0, [r0] ldr r1, _0808EB5C adds r0, r1 ldrh r0, [r0] movs r1, 0x64 bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 mov r1, r10 adds r4, r0, r1 lsls r1, r5, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim cmp r5, 0 beq _0808EB60 movs r0, 0x1 mov r8, r0 b _0808EB6C .align 2, 0 _0808EB3C: .4byte gSpriteTemplate_83A053C _0808EB40: .4byte 0x02020004 _0808EB44: .4byte gSpriteTemplate_83A0524 _0808EB48: .4byte gSpriteTemplate_83A0554 _0808EB4C: .4byte gSpriteTemplate_83A056C _0808EB50: .4byte gSpriteTemplate_83A0584 _0808EB54: .4byte gSpriteTemplate_83A059C _0808EB58: .4byte 0x0202ffb4 _0808EB5C: .4byte 0x0000061a _0808EB60: adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _0808EB6C: ldr r0, _0808EBB8 movs r1, 0x22 movs r2, 0x30 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, _0808EBBC ldr r0, [r0] ldr r1, _0808EBC0 adds r0, r1 ldrh r0, [r0] movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 bne _0808EBA4 mov r0, r8 cmp r0, 0 beq _0808EBC8 _0808EBA4: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r1, _0808EBC4 adds r0, r1 lsls r1, r5, 24 lsrs r1, 24 bl StartSpriteAnim b _0808EBDC .align 2, 0 _0808EBB8: .4byte gSpriteTemplate_83A059C _0808EBBC: .4byte 0x0202ffb4 _0808EBC0: .4byte 0x0000061a _0808EBC4: .4byte 0x02020004 _0808EBC8: ldr r1, _0808EC60 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _0808EBDC: ldr r6, _0808EC64 adds r0, r6, 0 movs r1, 0x28 movs r2, 0x30 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r5, _0808EC68 ldr r0, [r5] ldr r1, _0808EC6C adds r0, r1 ldrh r0, [r0] movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 adds r1, r0, 0 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r4, _0808EC60 adds r0, r4 lsls r1, 24 lsrs r1, 24 bl StartSpriteAnim movs r0, 0 mov r8, r0 adds r0, r6, 0 movs r1, 0x1C movs r2, 0x50 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, [r5] ldr r1, _0808EC70 adds r0, r1 ldrh r0, [r0] movs r1, 0x64 bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r4, r0, r4 lsls r1, r5, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim cmp r5, 0 beq _0808EC74 movs r0, 0x1 mov r8, r0 b _0808EC80 .align 2, 0 _0808EC60: .4byte 0x02020004 _0808EC64: .4byte gSpriteTemplate_83A059C _0808EC68: .4byte 0x0202ffb4 _0808EC6C: .4byte 0x0000061a _0808EC70: .4byte 0x0000061c _0808EC74: adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _0808EC80: ldr r0, _0808ECCC movs r1, 0x22 movs r2, 0x50 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, _0808ECD0 ldr r0, [r0] ldr r1, _0808ECD4 adds r0, r1 ldrh r0, [r0] movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 bne _0808ECB8 mov r0, r8 cmp r0, 0 beq _0808ECDC _0808ECB8: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r1, _0808ECD8 adds r0, r1 lsls r1, r5, 24 lsrs r1, 24 bl StartSpriteAnim b _0808ECF0 .align 2, 0 _0808ECCC: .4byte gSpriteTemplate_83A059C _0808ECD0: .4byte 0x0202ffb4 _0808ECD4: .4byte 0x0000061c _0808ECD8: .4byte 0x02020004 _0808ECDC: ldr r1, _0808ED48 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _0808ECF0: ldr r0, _0808ED4C movs r1, 0x28 movs r2, 0x50 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, _0808ED50 ldr r0, [r0] ldr r1, _0808ED54 adds r0, r1 ldrh r0, [r0] movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 adds r1, r0, 0 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r4, _0808ED48 adds r0, r4 lsls r1, 24 lsrs r1, 24 bl StartSpriteAnim ldr r0, _0808ED58 movs r1, 0x8C movs r2, 0x60 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r0, r4 b _0808ED74 .align 2, 0 _0808ED48: .4byte 0x02020004 _0808ED4C: .4byte gSpriteTemplate_83A059C _0808ED50: .4byte 0x0202ffb4 _0808ED54: .4byte 0x0000061c _0808ED58: .4byte gSpriteTemplate_83A05B4 _0808ED5C: ldr r0, _0808ED8C movs r1, 0x8C movs r2, 0x50 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 add r0, r10 _0808ED74: adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808ED8C: .4byte gSpriteTemplate_83A05B4 thumb_func_end sub_808E978 thumb_func_start nullsub_58 nullsub_58: @ 808ED90 bx lr thumb_func_end nullsub_58 thumb_func_start sub_808ED94 sub_808ED94: @ 808ED94 push {lr} adds r1, r0, 0 ldr r0, _0808EDB0 ldr r0, [r0] ldr r2, _0808EDB4 adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _0808EDAC adds r0, r1, 0 bl DestroySprite _0808EDAC: pop {r0} bx r0 .align 2, 0 _0808EDB0: .4byte 0x0202ffb4 _0808EDB4: .4byte 0x0000064a thumb_func_end sub_808ED94 thumb_func_start sub_808EDB8 sub_808EDB8: @ 808EDB8 push {lr} adds r2, r0, 0 ldrb r1, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2, 0x5] ldrb r1, [r2, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 strb r0, [r2, 0x1] movs r0, 0 strh r0, [r2, 0x24] strh r0, [r2, 0x26] ldr r1, [r2, 0x20] ldr r0, _0808EE18 cmp r1, r0 beq _0808EE1C ldrh r1, [r2, 0x20] movs r3, 0x20 ldrsh r0, [r2, r3] cmp r0, 0x30 ble _0808EDEC subs r0, r1, 0x1 strh r0, [r2, 0x20] _0808EDEC: ldrh r1, [r2, 0x20] movs r3, 0x20 ldrsh r0, [r2, r3] cmp r0, 0x2F bgt _0808EDFA adds r0, r1, 0x1 strh r0, [r2, 0x20] _0808EDFA: ldrh r1, [r2, 0x22] movs r3, 0x22 ldrsh r0, [r2, r3] cmp r0, 0x38 ble _0808EE08 subs r0, r1, 0x1 strh r0, [r2, 0x22] _0808EE08: ldrh r1, [r2, 0x22] movs r3, 0x22 ldrsh r0, [r2, r3] cmp r0, 0x37 bgt _0808EE20 adds r0, r1, 0x1 strh r0, [r2, 0x22] b _0808EE20 .align 2, 0 _0808EE18: .4byte 0x00380030 _0808EE1C: ldr r0, _0808EE24 str r0, [r2, 0x1C] _0808EE20: pop {r0} bx r0 .align 2, 0 _0808EE24: .4byte nullsub_58 thumb_func_end sub_808EDB8 thumb_func_start sub_808EE28 sub_808EE28: @ 808EE28 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r6, r0, 24 ldr r5, _0808EE50 ldr r0, [r5] ldr r1, _0808EE54 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0808EE58 cmp r0, 0x3 beq _0808EE58 adds r0, r4, 0 bl DestroySprite ldr r0, [r5] b _0808EF16 .align 2, 0 _0808EE50: .4byte 0x0202ffb4 _0808EE54: .4byte 0x0000064a _0808EE58: ldr r2, _0808EEE4 ldrh r0, [r4, 0x38] lsls r0, 24 lsrs r0, 23 adds r0, r2 movs r3, 0 ldrsh r1, [r0, r3] movs r0, 0x4C muls r0, r1 cmp r0, 0 bge _0808EE70 adds r0, 0xFF _0808EE70: asrs r0, 8 strh r0, [r4, 0x26] movs r1, 0x38 ldrsh r0, [r4, r1] adds r0, 0x40 lsls r0, 1 adds r0, r2 movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0x80 lsls r0, 9 bl __divsi3 adds r2, r0, 0 ldr r0, _0808EEE8 cmp r2, r0 bls _0808EE94 adds r2, r0, 0 _0808EE94: ldrh r0, [r4, 0x30] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 movs r1, 0x80 lsls r1, 1 lsls r2, 16 lsrs r2, 16 str r2, [sp] movs r2, 0 movs r3, 0 bl SetOamMatrix adds r1, r6, 0x1 movs r0, 0x1F ands r1, r0 lsls r1, 1 ldrb r2, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x3] ldrh r0, [r4, 0x38] adds r0, 0x3F lsls r0, 16 lsrs r0, 16 cmp r0, 0x7E bhi _0808EEEC adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r2] movs r0, 0x1 strh r0, [r4, 0x2E] b _0808EEF8 .align 2, 0 _0808EEE4: .4byte gSineTable _0808EEE8: .4byte 0x0000ffff _0808EEEC: adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _0808EEF8: ldrh r0, [r4, 0x38] adds r0, 0x3F lsls r0, 16 lsrs r0, 16 cmp r0, 0x7E bls _0808EF22 movs r3, 0x2E ldrsh r0, [r4, r3] cmp r0, 0 beq _0808EF22 adds r0, r4, 0 bl DestroySprite ldr r0, _0808EF2C ldr r0, [r0] _0808EF16: lsls r1, r6, 1 ldr r2, _0808EF30 adds r0, r2 adds r0, r1 ldr r1, _0808EF34 strh r1, [r0] _0808EF22: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808EF2C: .4byte 0x0202ffb4 _0808EF30: .4byte 0x0000061e _0808EF34: .4byte 0x0000ffff thumb_func_end sub_808EE28 thumb_func_start sub_808EF38 sub_808EF38: @ 808EF38 push {r4,lr} adds r4, r0, 0 ldr r1, _0808EF58 ldr r0, [r1] ldr r2, _0808EF5C adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _0808EF60 cmp r0, 0x3 beq _0808EF60 adds r0, r4, 0 bl DestroySprite b _0808EF7C .align 2, 0 _0808EF58: .4byte 0x0202ffb4 _0808EF5C: .4byte 0x0000064a _0808EF60: ldr r2, [r1] ldr r1, _0808EF84 adds r0, r2, r1 ldrh r1, [r0] lsls r0, r1, 4 subs r0, r1 lsls r0, 3 ldr r1, _0808EF88 adds r2, r1 ldrh r1, [r2] subs r1, 0x1 bl __divsi3 strh r0, [r4, 0x26] _0808EF7C: pop {r4} pop {r0} bx r0 .align 2, 0 _0808EF84: .4byte 0x0000060e _0808EF88: .4byte 0x0000060c thumb_func_end sub_808EF38 thumb_func_start sub_808EF8C sub_808EF8C: @ 808EF8C push {r4,r5,lr} adds r3, r0, 0 ldr r1, _0808EFAC ldr r0, [r1] ldr r2, _0808EFB0 adds r0, r2 ldrb r0, [r0] adds r5, r1, 0 cmp r0, 0 beq _0808EFB4 cmp r0, 0x3 beq _0808EFB4 adds r0, r3, 0 bl DestroySprite b _0808F084 .align 2, 0 _0808EFAC: .4byte 0x0202ffb4 _0808EFB0: .4byte 0x0000064a _0808EFB4: movs r1, 0x30 ldrsh r0, [r3, r1] cmp r0, 0 beq _0808EFF6 ldr r0, [r5] ldr r2, _0808EFDC adds r1, r0, r2 ldrh r1, [r1] subs r2, 0x2 adds r0, r2 ldrh r0, [r0] subs r0, 0x1 cmp r1, r0 bne _0808EFE0 adds r0, r3, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 b _0808EFEC .align 2, 0 _0808EFDC: .4byte 0x0000060e _0808EFE0: adds r0, r3, 0 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 _0808EFEC: strb r1, [r0] adds r2, r0, 0 ldrh r1, [r3, 0x32] lsls r0, r1, 24 b _0808F02C _0808EFF6: ldr r0, [r5] ldr r1, _0808F010 adds r0, r1 ldrh r0, [r0] cmp r0, 0 bne _0808F014 adds r0, r3, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 b _0808F020 .align 2, 0 _0808F010: .4byte 0x0000060e _0808F014: adds r0, r3, 0 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 _0808F020: strb r1, [r0] adds r2, r0, 0 ldrh r1, [r3, 0x32] adds r0, r1, 0 subs r0, 0x80 lsls r0, 24 _0808F02C: lsrs r0, 24 adds r4, r1, 0 ldr r1, _0808F078 lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bge _0808F040 adds r0, 0x3F _0808F040: asrs r0, 6 strh r0, [r3, 0x26] adds r0, r4, 0 adds r0, 0x8 strh r0, [r3, 0x32] ldr r1, [r5] movs r3, 0xCA lsls r3, 3 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _0808F07C adds r3, 0x4 adds r0, r1, r3 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _0808F07C ldrb r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _0808F07C movs r0, 0x5 negs r0, r0 ands r0, r1 b _0808F082 .align 2, 0 _0808F078: .4byte gSineTable _0808F07C: ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 _0808F082: strb r0, [r2] _0808F084: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_808EF8C thumb_func_start sub_808F08C sub_808F08C: @ 808F08C push {lr} adds r1, r0, 0 ldr r0, _0808F0AC ldr r0, [r0] ldr r2, _0808F0B0 adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _0808F0A8 cmp r0, 0x3 beq _0808F0A8 adds r0, r1, 0 bl DestroySprite _0808F0A8: pop {r0} bx r0 .align 2, 0 _0808F0AC: .4byte 0x0202ffb4 _0808F0B0: .4byte 0x0000064a thumb_func_end sub_808F08C thumb_func_start sub_808F0B4 sub_808F0B4: @ 808F0B4 push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 ldr r1, _0808F0D8 ldr r0, [r1] ldr r2, _0808F0DC adds r0, r2 ldrb r0, [r0] adds r7, r1, 0 cmp r0, 0 beq _0808F0E0 cmp r0, 0x3 beq _0808F0E0 adds r0, r6, 0 bl DestroySprite b _0808F158 .align 2, 0 _0808F0D8: .4byte 0x0202ffb4 _0808F0DC: .4byte 0x0000064a _0808F0E0: ldr r0, [r7] ldr r5, _0808F160 adds r0, r5 ldrb r1, [r0] ldrh r0, [r6, 0x30] adds r1, r0 lsls r1, 24 lsrs r1, 24 ldr r4, _0808F164 lsls r0, r1, 1 adds r0, r4 ldrh r3, [r0] adds r1, 0x40 lsls r1, 1 adds r1, r4 ldrh r0, [r6, 0x2E] lsls r0, 24 lsrs r0, 24 ldrh r1, [r1] lsls r3, 16 lsrs r2, r3, 16 negs r3, r3 lsrs r3, 16 str r1, [sp] bl SetOamMatrix ldr r1, [r7] adds r1, r5 ldrh r0, [r6, 0x30] adds r0, 0x40 ldrb r1, [r1] adds r0, r1 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r4 ldrh r3, [r1] adds r0, 0x40 lsls r0, 1 adds r0, r4 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 cmp r0, 0 bge _0808F140 adds r0, 0xFF _0808F140: asrs r0, 8 strh r0, [r6, 0x24] lsls r1, r3, 16 asrs r1, 16 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 cmp r0, 0 bge _0808F154 adds r0, 0xFF _0808F154: asrs r0, 8 strh r0, [r6, 0x26] _0808F158: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808F160: .4byte 0x0000062c _0808F164: .4byte gSineTable thumb_func_end sub_808F0B4 thumb_func_start sub_808F168 sub_808F168: @ 808F168 push {r4,lr} adds r3, r0, 0 ldr r1, _0808F188 ldr r0, [r1] ldr r2, _0808F18C adds r0, r2 ldrb r2, [r0] cmp r2, 0 beq _0808F190 cmp r2, 0x3 beq _0808F190 adds r0, r3, 0 bl DestroySprite b _0808F208 .align 2, 0 _0808F188: .4byte 0x0202ffb4 _0808F18C: .4byte 0x0000064a _0808F190: ldr r4, [r1] ldr r1, _0808F1F0 adds r0, r4, r1 ldrb r0, [r0] movs r1, 0x60 cmp r0, 0 bne _0808F1A0 movs r1, 0x50 _0808F1A0: movs r2, 0xCA lsls r2, 3 adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 beq _0808F1FC adds r2, 0x4 adds r0, r4, r2 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, r1 bne _0808F1FC adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r1, _0808F1F4 adds r0, r4, r1 ldrh r0, [r0] lsls r0, 4 strh r0, [r3, 0x26] ldr r1, _0808F1F8 ldrh r2, [r3, 0x32] lsls r0, r2, 24 lsrs r0, 23 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bge _0808F1E4 adds r0, 0x3F _0808F1E4: asrs r0, 6 strh r0, [r3, 0x24] adds r0, r2, 0 adds r0, 0x8 strh r0, [r3, 0x32] b _0808F208 .align 2, 0 _0808F1F0: .4byte 0x0000064a _0808F1F4: .4byte 0x00000652 _0808F1F8: .4byte gSineTable _0808F1FC: adds r0, r3, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _0808F208: pop {r4} pop {r0} bx r0 thumb_func_end sub_808F168 thumb_func_start sub_808F210 sub_808F210: @ 808F210 push {r4,lr} lsls r4, r1, 24 lsrs r4, 24 ldr r1, _0808F244 str r0, [r1] ldr r0, _0808F248 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0808F24C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r3, 0 strh r3, [r1, 0x8] movs r2, 0x1 strh r2, [r1, 0xA] strh r3, [r1, 0xC] strh r3, [r1, 0xE] strh r4, [r1, 0x10] pop {r4} pop {r1} bx r1 .align 2, 0 _0808F244: .4byte 0x0202ffbc _0808F248: .4byte sub_808F2B0 _0808F24C: .4byte 0x03004b20 thumb_func_end sub_808F210 thumb_func_start sub_808F250 sub_808F250: @ 808F250 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0808F274 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _0808F27C ldr r1, [r1] ldr r0, _0808F278 cmp r1, r0 bne _0808F27C movs r0, 0 b _0808F27E .align 2, 0 _0808F274: .4byte 0x03004b20 _0808F278: .4byte sub_808F6CC _0808F27C: movs r0, 0x1 _0808F27E: pop {r1} bx r1 thumb_func_end sub_808F250 thumb_func_start sub_808F284 sub_808F284: @ 808F284 adds r2, r0, 0 lsls r0, r1, 24 lsrs r0, 24 ldr r1, _0808F2A8 str r2, [r1] ldr r2, _0808F2AC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r3, 0 movs r2, 0x1 strh r2, [r1, 0x8] strh r3, [r1, 0xA] strh r3, [r1, 0xC] strh r3, [r1, 0xE] bx lr .align 2, 0 _0808F2A8: .4byte 0x0202ffbc _0808F2AC: .4byte 0x03004b20 thumb_func_end sub_808F284 thumb_func_start sub_808F2B0 sub_808F2B0: @ 808F2B0 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _0808F2D0 ldr r2, _0808F2D4 adds r0, r1, r2 ldrb r0, [r0] adds r5, r1, 0 cmp r0, 0xA bhi _0808F308 lsls r0, 2 ldr r1, _0808F2D8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0808F2D0: .4byte 0x03001770 _0808F2D4: .4byte 0x0000043c _0808F2D8: .4byte _0808F2DC .align 2, 0 _0808F2DC: .4byte _0808F308 .4byte _0808F38C .4byte _0808F3D0 .4byte _0808F3F4 .4byte _0808F418 .4byte _0808F52C .4byte _0808F578 .4byte _0808F5D4 .4byte _0808F614 .4byte _0808F672 .4byte _0808F694 _0808F308: ldr r0, _0808F370 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _0808F31A b _0808F6B6 _0808F31A: ldr r1, _0808F374 ldr r0, [r1] ldr r3, _0808F378 adds r0, r3 movs r6, 0x1 strb r6, [r0] ldr r0, [r1] ldr r1, _0808F37C adds r0, r1 strb r2, [r0] ldr r1, _0808F380 ldr r0, [r5, 0xC] str r0, [r1] movs r0, 0 bl SetVBlankCallback movs r2, 0 ldr r1, _0808F384 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 movs r3, 0xA ldrsh r0, [r1, r3] cmp r0, 0 beq _0808F352 movs r2, 0x80 lsls r2, 5 _0808F352: movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0 beq _0808F362 movs r1, 0x80 lsls r1, 2 adds r0, r1, 0 orrs r2, r0 _0808F362: adds r0, r2, 0 bl sub_8091060 ldr r2, _0808F388 adds r0, r5, r2 strb r6, [r0] b _0808F6B6 .align 2, 0 _0808F370: .4byte 0x0202f388 _0808F374: .4byte 0x0202ffb4 _0808F378: .4byte 0x0000064a _0808F37C: .4byte 0x0000064e _0808F380: .4byte 0x03005cec _0808F384: .4byte 0x03004b20 _0808F388: .4byte 0x0000043c _0808F38C: ldr r0, _0808F3B8 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _0808F3BC ldr r1, _0808F3C0 bl LZ77UnCompVram ldr r0, _0808F3C4 ldr r0, [r0] ldrh r0, [r0] movs r2, 0xFF lsls r2, 2 movs r1, 0x2 bl sub_8091738 ldr r1, _0808F3C8 ldr r3, _0808F3CC adds r1, r3 b _0808F682 .align 2, 0 _0808F3B8: .4byte gUnknown_08E86758 _0808F3BC: .4byte gUnknown_08E96BD4 _0808F3C0: .4byte 0x06007800 _0808F3C4: .4byte 0x0202ffbc _0808F3C8: .4byte 0x03001770 _0808F3CC: .4byte 0x0000043c _0808F3D0: movs r0, 0xD bl sub_80904FC ldr r0, _0808F3EC ldr r0, [r0] ldr r1, _0808F3F0 adds r0, r1 ldrb r0, [r0] movs r1, 0xD bl sub_8090584 bl sub_808D640 b _0808F67C .align 2, 0 _0808F3EC: .4byte 0x0202ffb4 _0808F3F0: .4byte 0x0000064d _0808F3F4: ldr r4, _0808F40C adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C ldr r1, _0808F410 ldr r3, _0808F414 adds r1, r3 b _0808F682 .align 2, 0 _0808F40C: .4byte gWindowConfig_81E7064 _0808F410: .4byte 0x03001770 _0808F414: .4byte 0x0000043c _0808F418: ldr r0, _0808F440 ldr r0, [r0] ldr r1, _0808F444 adds r0, r1 ldrh r0, [r0] cmp r0, 0 bne _0808F44C ldr r0, _0808F448 ldr r0, [r0] ldrh r0, [r0] bl NationalToHoennOrder lsls r0, 16 lsrs r0, 16 movs r1, 0xD movs r2, 0x3 bl sub_8091154 b _0808F45A .align 2, 0 _0808F440: .4byte 0x0202ffb4 _0808F444: .4byte 0x00000612 _0808F448: .4byte 0x0202ffbc _0808F44C: ldr r0, _0808F4F8 ldr r0, [r0] ldrh r0, [r0] movs r1, 0xD movs r2, 0x3 bl sub_8091154 _0808F45A: ldr r5, _0808F4F8 ldr r0, [r5] ldrh r0, [r0] movs r1, 0x10 movs r2, 0x3 bl sub_80911C8 ldr r0, _0808F4FC movs r1, 0xB movs r2, 0x5 bl Print ldr r0, _0808F500 movs r1, 0x10 movs r2, 0x7 bl Print ldr r0, _0808F504 movs r1, 0x10 movs r2, 0x9 bl Print ldr r2, [r5] ldrb r1, [r2, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0808F50C ldrh r1, [r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r4, _0808F508 adds r0, r4 movs r1, 0xB movs r2, 0x5 bl sub_8091304 ldr r0, [r5] ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0xC] movs r1, 0x10 movs r2, 0x7 bl sub_8091458 ldr r0, [r5] ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0xE] movs r1, 0x10 movs r2, 0x9 bl sub_8091564 ldr r0, [r5] ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r4, 0x10 adds r0, r4 ldr r0, [r0] movs r1, 0x2 movs r2, 0xD bl Print movs r1, 0xFF lsls r1, 2 movs r0, 0xE bl sub_80917CC b _0808F67C .align 2, 0 _0808F4F8: .4byte 0x0202ffbc _0808F4FC: .4byte gUnknown_0840DFF9 _0808F500: .4byte gUnknown_0840E013 _0808F504: .4byte gUnknown_0840E01D _0808F508: .4byte gPokedexEntries _0808F50C: ldr r0, _0808F524 movs r1, 0x2 movs r2, 0xD bl Print ldr r0, _0808F528 movs r1, 0x31 movs r2, 0x1E bl LoadPalette b _0808F67C .align 2, 0 _0808F524: .4byte gUnknown_083A05F8 _0808F528: .4byte 0x0202eaca _0808F52C: ldr r0, _0808F56C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r4, r1, r0 movs r3, 0xA ldrsh r0, [r4, r3] cmp r0, 0 beq _0808F540 b _0808F67C _0808F540: ldr r0, _0808F570 ldr r0, [r0] ldrh r0, [r0] movs r1, 0x30 movs r2, 0x38 movs r3, 0 bl sub_80918EC strh r0, [r4, 0x10] ldr r2, _0808F574 movs r1, 0x10 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x5] b _0808F67C .align 2, 0 _0808F56C: .4byte 0x03004b20 _0808F570: .4byte 0x0202ffbc _0808F574: .4byte 0x02020004 _0808F578: movs r3, 0 ldr r0, _0808F5C8 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r2, 0xC ldrsh r0, [r1, r2] cmp r0, 0 beq _0808F58E movs r3, 0x14 _0808F58E: movs r2, 0xA ldrsh r0, [r1, r2] cmp r0, 0 beq _0808F5B0 ldr r2, _0808F5CC movs r0, 0x10 ldrsh r1, [r1, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x5] lsrs r1, 4 adds r1, 0x10 movs r0, 0x1 lsls r0, r1 orrs r3, r0 _0808F5B0: mvns r0, r3 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _0808F5D0 ldr r0, [r0] bl SetVBlankCallback b _0808F67C .align 2, 0 _0808F5C8: .4byte 0x03004b20 _0808F5CC: .4byte 0x02020004 _0808F5D0: .4byte 0x03005cec _0808F5D4: ldr r0, _0808F604 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _0808F608 ldr r3, _0808F60C adds r0, r3, 0 strh r0, [r1] subs r1, 0x4 movs r2, 0xD0 lsls r2, 4 adds r0, r2, 0 strh r0, [r1] subs r1, 0xA movs r3, 0xF2 lsls r3, 5 adds r0, r3, 0 strh r0, [r1] ldr r0, _0808F610 adds r1, r5, r0 b _0808F682 .align 2, 0 _0808F604: .4byte REG_BLDCNT _0808F608: .4byte REG_BG3CNT _0808F60C: .4byte 0x00000f03 _0808F610: .4byte 0x0000043c _0808F614: ldr r0, _0808F65C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808F6B6 ldr r1, _0808F660 adds r2, r5, r1 ldrb r0, [r2] adds r3, r0, 0x1 strb r3, [r2] ldr r1, _0808F664 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0xE ldrsh r0, [r0, r1] cmp r0, 0 bne _0808F66C bl sub_8075398 ldr r0, _0808F668 ldr r0, [r0] ldrh r0, [r0] bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r0, 16 movs r1, 0 movs r2, 0x7D movs r3, 0xA bl sub_8075090 b _0808F6B6 .align 2, 0 _0808F65C: .4byte 0x0202f388 _0808F660: .4byte 0x0000043c _0808F664: .4byte 0x03004b20 _0808F668: .4byte 0x0202ffbc _0808F66C: adds r0, r3, 0x1 strb r0, [r2] b _0808F6B6 _0808F672: bl sub_80753C4 lsls r0, 24 cmp r0, 0 bne _0808F6B6 _0808F67C: ldr r1, _0808F68C ldr r2, _0808F690 adds r1, r2 _0808F682: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0808F6B6 .align 2, 0 _0808F68C: .4byte 0x03001770 _0808F690: .4byte 0x0000043c _0808F694: ldr r1, _0808F6C0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0 movs r1, 0 strh r1, [r0, 0x8] strh r1, [r0, 0xA] movs r1, 0x1 strh r1, [r0, 0xC] strh r1, [r0, 0xE] ldr r1, _0808F6C4 str r1, [r0] ldr r3, _0808F6C8 adds r0, r5, r3 strb r2, [r0] _0808F6B6: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808F6C0: .4byte 0x03004b20 _0808F6C4: .4byte sub_808F6CC _0808F6C8: .4byte 0x0000043c thumb_func_end sub_808F2B0 thumb_func_start sub_808F6CC sub_808F6CC: @ 808F6CC push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, _0808F704 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r5, r1, r2 movs r0, 0x8 ldrsh r4, [r5, r0] cmp r4, 0 beq _0808F70C movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0808F708 str r0, [r5] movs r0, 0x6C bl audio_play b _0808F874 .align 2, 0 _0808F704: .4byte 0x03004b20 _0808F708: .4byte sub_808F888 _0808F70C: ldr r1, _0808F73C ldrh r2, [r1, 0x2E] movs r6, 0x2 adds r0, r6, 0 ands r0, r2 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _0808F744 movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0808F740 str r0, [r5] movs r0, 0x3 bl audio_play b _0808F874 .align 2, 0 _0808F73C: .4byte 0x03001770 _0808F740: .4byte sub_808F8B8 _0808F744: movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _0808F7E8 ldr r0, _0808F764 ldr r0, [r0] ldr r1, _0808F768 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _0808F77C cmp r0, 0x1 bgt _0808F76C cmp r0, 0 beq _0808F776 b _0808F874 .align 2, 0 _0808F764: .4byte 0x0202ffb4 _0808F768: .4byte 0x0000064d _0808F76C: cmp r0, 0x2 beq _0808F794 cmp r0, 0x3 beq _0808F7AC b _0808F874 _0808F776: bl sub_8090C68 b _0808F874 _0808F77C: movs r0, 0x15 negs r0, r0 str r3, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0808F790 b _0808F7DA .align 2, 0 _0808F790: .4byte sub_808F8D8 _0808F794: movs r0, 0x15 negs r0, r0 str r3, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0808F7A8 b _0808F7DA .align 2, 0 _0808F7A8: .4byte sub_808FA64 _0808F7AC: ldr r0, _0808F7C4 ldr r0, [r0] ldrb r1, [r0, 0x2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _0808F7C8 movs r0, 0x20 bl audio_play b _0808F874 .align 2, 0 _0808F7C4: .4byte 0x0202ffbc _0808F7C8: movs r0, 0x15 negs r0, r0 str r3, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0808F7E4 _0808F7DA: str r0, [r5] movs r0, 0x15 bl audio_play b _0808F874 .align 2, 0 _0808F7E4: .4byte sub_8090070 _0808F7E8: movs r0, 0x20 ands r0, r2 cmp r0, 0 bne _0808F802 movs r0, 0x80 lsls r0, 2 ands r0, r2 cmp r0, 0 beq _0808F834 ldr r0, _0808F828 ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _0808F834 _0808F802: ldr r3, _0808F82C ldr r0, [r3] ldr r4, _0808F830 adds r2, r0, r4 ldrb r0, [r2] cmp r0, 0 beq _0808F834 subs r0, 0x1 strb r0, [r2] ldr r0, [r3] adds r0, r4 ldrb r0, [r0] movs r1, 0xD bl sub_8090584 movs r0, 0x6D bl audio_play b _0808F874 .align 2, 0 _0808F828: .4byte gSaveBlock2 _0808F82C: .4byte 0x0202ffb4 _0808F830: .4byte 0x0000064d _0808F834: ldrh r1, [r1, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0808F850 movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _0808F874 ldr r0, _0808F87C ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _0808F874 _0808F850: ldr r2, _0808F880 ldr r0, [r2] ldr r3, _0808F884 adds r1, r0, r3 ldrb r0, [r1] cmp r0, 0x2 bhi _0808F874 adds r0, 0x1 strb r0, [r1] ldr r0, [r2] adds r0, r3 ldrb r0, [r0] movs r1, 0xD bl sub_8090584 movs r0, 0x6D bl audio_play _0808F874: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0808F87C: .4byte gSaveBlock2 _0808F880: .4byte 0x0202ffb4 _0808F884: .4byte 0x0000064d thumb_func_end sub_808F6CC thumb_func_start sub_808F888 sub_808F888: @ 808F888 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0808F8AC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808F8A8 ldr r0, _0808F8B0 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _0808F8B4 str r0, [r1] _0808F8A8: pop {r0} bx r0 .align 2, 0 _0808F8AC: .4byte 0x0202f388 _0808F8B0: .4byte 0x03004b20 _0808F8B4: .4byte sub_808F2B0 thumb_func_end sub_808F888 thumb_func_start sub_808F8B8 sub_808F8B8: @ 808F8B8 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0808F8D4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808F8D0 adds r0, r2, 0 bl DestroyTask _0808F8D0: pop {r0} bx r0 .align 2, 0 _0808F8D4: .4byte 0x0202f388 thumb_func_end sub_808F8B8 thumb_func_start sub_808F8D8 sub_808F8D8: @ 808F8D8 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r2, _0808F92C ldr r0, _0808F930 adds r6, r2, r0 ldrb r0, [r6] cmp r0, 0x1 beq _0808F948 cmp r0, 0x1 ble _0808F8F2 cmp r0, 0x2 beq _0808F970 _0808F8F2: ldr r0, _0808F934 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808F9AA ldr r4, _0808F938 ldr r0, [r4] ldr r1, _0808F93C adds r0, r1 movs r1, 0x5 strb r1, [r0] ldr r1, _0808F940 ldr r0, [r2, 0xC] str r0, [r1] movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 2 bl sub_8091060 ldr r0, [r4] ldr r2, _0808F944 adds r0, r2 movs r1, 0x1 strb r1, [r0] strb r1, [r6] b _0808F9AA .align 2, 0 _0808F92C: .4byte 0x03001770 _0808F930: .4byte 0x0000043c _0808F934: .4byte 0x0202f388 _0808F938: .4byte 0x0202ffb4 _0808F93C: .4byte 0x0000064a _0808F940: .4byte 0x03005cec _0808F944: .4byte 0x0000064d _0808F948: movs r0, 0xD bl sub_8090540 movs r0, 0x1 movs r1, 0xD bl sub_8090644 bl sub_808D640 ldr r1, _0808F96C movs r2, 0xD0 lsls r2, 4 adds r0, r2, 0 strh r0, [r1] ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] b _0808F9AA .align 2, 0 _0808F96C: .4byte REG_BG1CNT _0808F970: ldr r0, _0808F9B0 ldr r0, [r0] ldrh r0, [r0] bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r0, 16 ldr r5, _0808F9B4 ldr r1, [r5] ldr r4, _0808F9B8 adds r1, r4 bl sub_81113AC ldr r0, _0808F9BC ldr r0, [r0] bl SetVBlankCallback ldr r0, [r5] adds r0, r4 movs r1, 0 strb r1, [r0] strb r1, [r6] ldr r1, _0808F9C0 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, _0808F9C4 str r1, [r0] _0808F9AA: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0808F9B0: .4byte 0x0202ffbc _0808F9B4: .4byte 0x0202ffb4 _0808F9B8: .4byte 0x0000064f _0808F9BC: .4byte 0x03005cec _0808F9C0: .4byte 0x03004b20 _0808F9C4: .4byte sub_808F9C8 thumb_func_end sub_808F8D8 thumb_func_start sub_808F9C8 sub_808F9C8: @ 808F9C8 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0808F9F0 ldr r0, [r0] ldr r1, _0808F9F4 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0808F9EA ldr r0, _0808F9F8 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _0808F9FC str r0, [r1] _0808F9EA: pop {r0} bx r0 .align 2, 0 _0808F9F0: .4byte 0x0202ffb4 _0808F9F4: .4byte 0x0000064f _0808F9F8: .4byte 0x03004b20 _0808F9FC: .4byte sub_808FA00 thumb_func_end sub_808F9C8 thumb_func_start sub_808FA00 sub_808FA00: @ 808FA00 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0808FA34 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0808FA56 ldr r0, _0808FA38 ldr r0, [r0] ldr r1, _0808FA3C adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _0808FA24 cmp r0, 0x2 beq _0808FA48 _0808FA24: ldr r0, _0808FA40 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _0808FA44 b _0808FA54 .align 2, 0 _0808FA34: .4byte 0x0202f388 _0808FA38: .4byte 0x0202ffb4 _0808FA3C: .4byte 0x0000064f _0808FA40: .4byte 0x03004b20 _0808FA44: .4byte sub_808F2B0 _0808FA48: ldr r0, _0808FA5C lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _0808FA60 _0808FA54: str r0, [r1] _0808FA56: pop {r0} bx r0 .align 2, 0 _0808FA5C: .4byte 0x03004b20 _0808FA60: .4byte sub_808FA64 thumb_func_end sub_808FA00 thumb_func_start sub_808FA64 sub_808FA64: @ 808FA64 push {r4,r5,lr} sub sp, 0x18 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _0808FA84 ldr r2, _0808FA88 adds r0, r1, r2 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0xA bhi _0808FABC lsls r0, 2 ldr r1, _0808FA8C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0808FA84: .4byte 0x03001770 _0808FA88: .4byte 0x0000043c _0808FA8C: .4byte _0808FA90 .align 2, 0 _0808FA90: .4byte _0808FABC .4byte _0808FB28 .4byte _0808FB58 .4byte _0808FB9C .4byte _0808FBC4 .4byte _0808FBF8 .4byte _0808FC54 .4byte _0808FCD4 .4byte _0808FD40 .4byte _0808FD6C .4byte _0808FDBC _0808FABC: ldr r0, _0808FB08 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0808FACA b _0808FDDC _0808FACA: ldr r0, _0808FB0C bl m4aMPlayStop ldr r5, _0808FB10 ldr r0, [r5] ldr r3, _0808FB14 adds r0, r3 movs r1, 0x6 strb r1, [r0] ldr r1, _0808FB18 ldr r4, _0808FB1C ldr r0, [r4, 0xC] str r0, [r1] movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 2 bl sub_8091060 ldr r0, [r5] ldr r1, _0808FB20 adds r0, r1 movs r1, 0x2 strb r1, [r0] ldr r2, _0808FB24 adds r4, r2 movs r0, 0x1 strb r0, [r4] b _0808FDDC .align 2, 0 _0808FB08: .4byte 0x0202f388 _0808FB0C: .4byte 0x03007380 _0808FB10: .4byte 0x0202ffb4 _0808FB14: .4byte 0x0000064a _0808FB18: .4byte 0x03005cec _0808FB1C: .4byte 0x03001770 _0808FB20: .4byte 0x0000064d _0808FB24: .4byte 0x0000043c _0808FB28: ldr r0, _0808FB44 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _0808FB48 ldr r1, _0808FB4C bl LZ77UnCompVram ldr r1, _0808FB50 ldr r3, _0808FB54 adds r1, r3 b _0808FDA0 .align 2, 0 _0808FB44: .4byte gUnknown_08E86758 _0808FB48: .4byte gUnknown_0839F8A0 _0808FB4C: .4byte 0x06007000 _0808FB50: .4byte 0x03001770 _0808FB54: .4byte 0x0000043c _0808FB58: movs r0, 0xD bl sub_8090540 movs r0, 0x2 movs r1, 0xD bl sub_8090644 bl sub_808D640 ldr r2, _0808FB88 add r1, sp, 0x4 movs r0, 0 strh r0, [r1] ldr r0, _0808FB8C str r1, [r0] str r2, [r0, 0x4] ldr r1, _0808FB90 str r1, [r0, 0x8] ldr r0, [r0, 0x8] ldr r1, _0808FB94 ldr r4, _0808FB98 adds r1, r4 b _0808FDA0 .align 2, 0 _0808FB88: .4byte 0x0600f800 _0808FB8C: .4byte 0x040000d4 _0808FB90: .4byte 0x81000280 _0808FB94: .4byte 0x03001770 _0808FB98: .4byte 0x0000043c _0808FB9C: ldr r4, _0808FBB8 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C bl ResetPaletteFade ldr r1, _0808FBBC ldr r0, _0808FBC0 adds r1, r0 b _0808FDA0 .align 2, 0 _0808FBB8: .4byte gWindowConfig_81E702C _0808FBBC: .4byte 0x03001770 _0808FBC0: .4byte 0x0000043c _0808FBC4: ldr r0, _0808FBE8 movs r1, 0xA movs r2, 0x4 bl Print ldr r0, _0808FBEC ldr r0, [r0] ldrh r0, [r0] movs r1, 0xA movs r2, 0x6 movs r3, 0x2 bl sub_8091260 ldr r1, _0808FBF0 ldr r2, _0808FBF4 adds r1, r2 b _0808FDA0 .align 2, 0 _0808FBE8: .4byte gUnknown_0840E02A _0808FBEC: .4byte 0x0202ffbc _0808FBF0: .4byte 0x03001770 _0808FBF4: .4byte 0x0000043c _0808FBF8: ldr r0, _0808FC3C ldr r0, [r0] ldrh r0, [r0] movs r1, 0x30 movs r2, 0x38 movs r3, 0 bl sub_80918EC ldr r2, _0808FC40 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r2 movs r3, 0 strh r0, [r1, 0x10] ldr r2, _0808FC44 movs r4, 0x10 ldrsh r0, [r1, r4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x5] ldr r0, _0808FC48 strb r3, [r0] ldr r1, _0808FC4C ldr r0, _0808FC50 adds r1, r0 b _0808FDA0 .align 2, 0 _0808FC3C: .4byte 0x0202ffbc _0808FC40: .4byte 0x03004b20 _0808FC44: .4byte 0x02020004 _0808FC48: .4byte 0x03005e98 _0808FC4C: .4byte 0x03001770 _0808FC50: .4byte 0x0000043c _0808FC54: ldr r1, _0808FCB0 ldr r0, [sp, 0x8] ands r0, r1 ldr r1, _0808FCB4 orrs r0, r1 ldr r1, _0808FCB8 ands r0, r1 movs r1, 0xF8 lsls r1, 13 orrs r0, r1 ldr r1, _0808FCBC ands r0, r1 movs r1, 0x80 lsls r1, 20 orrs r0, r1 str r0, [sp, 0x8] ldr r2, _0808FCC0 add r0, sp, 0x8 ldr r1, [r0, 0x4] ands r1, r2 movs r2, 0xF0 lsls r2, 5 orrs r1, r2 ldr r2, _0808FCC4 ands r1, r2 movs r2, 0xC orrs r1, r2 str r1, [r0, 0x4] movs r1, 0 bl sub_8119E3C lsls r0, 24 cmp r0, 0 bne _0808FC9A b _0808FDDC _0808FC9A: ldr r1, _0808FCC8 ldr r2, _0808FCCC adds r1, r2 ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] ldr r0, _0808FCD0 strb r2, [r0] b _0808FDDC .align 2, 0 _0808FCB0: .4byte 0xffff0000 _0808FCB4: .4byte 0x00004020 _0808FCB8: .4byte 0xff00ffff _0808FCBC: .4byte 0x00ffffff _0808FCC0: .4byte 0xffff00ff _0808FCC4: .4byte 0xffffff00 _0808FCC8: .4byte 0x03001770 _0808FCCC: .4byte 0x0000043c _0808FCD0: .4byte 0x03005e98 _0808FCD4: ldr r1, _0808FD24 ldr r0, [sp, 0x10] ands r0, r1 movs r1, 0xC0 lsls r1, 6 orrs r0, r1 ldr r1, _0808FD28 ands r0, r1 movs r1, 0xE0 lsls r1, 12 orrs r0, r1 ldr r1, _0808FD2C ands r0, r1 movs r1, 0x90 lsls r1, 20 orrs r0, r1 str r0, [sp, 0x10] ldr r2, _0808FD30 add r0, sp, 0x10 ldr r1, [r0, 0x4] ands r1, r2 movs r2, 0x12 orrs r1, r2 ldr r2, _0808FD34 ands r1, r2 movs r2, 0xC0 lsls r2, 2 orrs r1, r2 str r1, [r0, 0x4] movs r1, 0x1 bl sub_811A3CC lsls r0, 24 cmp r0, 0 beq _0808FDDC ldr r1, _0808FD38 ldr r3, _0808FD3C adds r1, r3 b _0808FDA0 .align 2, 0 _0808FD24: .4byte 0xffff0000 _0808FD28: .4byte 0xff00ffff _0808FD2C: .4byte 0x00ffffff _0808FD30: .4byte 0xffffff00 _0808FD34: .4byte 0xffff00ff _0808FD38: .4byte 0x03001770 _0808FD3C: .4byte 0x0000043c _0808FD40: movs r0, 0x15 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _0808FD60 ldr r0, [r0] bl SetVBlankCallback ldr r1, _0808FD64 ldr r4, _0808FD68 adds r1, r4 b _0808FDA0 .align 2, 0 _0808FD60: .4byte 0x03005cec _0808FD64: .4byte 0x03001770 _0808FD68: .4byte 0x0000043c _0808FD6C: ldr r0, _0808FDA8 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _0808FDAC ldr r3, _0808FDB0 adds r0, r3, 0 strh r0, [r1] subs r1, 0x4 ldr r4, _0808FDB4 adds r0, r4, 0 strh r0, [r1] adds r1, 0x2 movs r3, 0xD0 lsls r3, 4 adds r0, r3, 0 strh r0, [r1] subs r1, 0xA adds r4, 0x39 adds r0, r4, 0 strh r0, [r1] ldr r0, _0808FDB8 adds r1, r2, r0 _0808FDA0: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0808FDDC .align 2, 0 _0808FDA8: .4byte REG_BLDCNT _0808FDAC: .4byte REG_BG2CNT _0808FDB0: .4byte 0x00000e02 _0808FDB4: .4byte 0x00001f07 _0808FDB8: .4byte 0x0000043c _0808FDBC: ldr r0, _0808FDE4 ldr r0, [r0] ldr r1, _0808FDE8 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r3, _0808FDEC adds r0, r2, r3 strb r1, [r0] ldr r1, _0808FDF0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0808FDF4 str r1, [r0] _0808FDDC: add sp, 0x18 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808FDE4: .4byte 0x0202ffb4 _0808FDE8: .4byte 0x0000064f _0808FDEC: .4byte 0x0000043c _0808FDF0: .4byte 0x03004b20 _0808FDF4: .4byte sub_808FDF8 thumb_func_end sub_808FA64 thumb_func_start sub_808FDF8 sub_808FDF8: @ 808FDF8 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 bl sub_8119F88 bl sub_80753E8 lsls r0, 24 cmp r0, 0 beq _0808FE18 movs r0, 0x1 bl sub_8090040 b _0808FE1E _0808FE18: movs r0, 0 bl sub_8090040 _0808FE1E: ldr r1, _0808FE48 ldrh r2, [r1, 0x2E] movs r0, 0x1 ands r0, r2 adds r5, r1, 0 cmp r0, 0 beq _0808FE50 movs r0, 0x1 bl sub_8090040 ldr r0, _0808FE4C ldr r0, [r0] ldrh r0, [r0] bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r0, 16 bl sub_811A050 b _0808FF9E .align 2, 0 _0808FE48: .4byte 0x03001770 _0808FE4C: .4byte 0x0202ffbc _0808FE50: ldr r0, _0808FEA8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _0808FE62 b _0808FF9E _0808FE62: movs r0, 0x2 ands r0, r2 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _0808FEC0 movs r0, 0x15 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0808FEAC bl m4aMPlayContinue ldr r0, _0808FEB0 ldr r0, [r0] ldr r1, _0808FEB4 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r1, _0808FEB8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0808FEBC str r1, [r0] movs r0, 0x3 bl audio_play b _0808FF9E .align 2, 0 _0808FEA8: .4byte 0x0202f388 _0808FEAC: .4byte 0x03007380 _0808FEB0: .4byte 0x0202ffb4 _0808FEB4: .4byte 0x0000064f _0808FEB8: .4byte 0x03004b20 _0808FEBC: .4byte sub_808FFBC _0808FEC0: movs r0, 0x20 ands r0, r2 cmp r0, 0 bne _0808FEDA movs r0, 0x80 lsls r0, 2 ands r0, r2 cmp r0, 0 beq _0808FF2C ldr r0, _0808FF14 ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _0808FF2C _0808FEDA: movs r0, 0x15 negs r0, r0 str r3, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0808FF18 bl m4aMPlayContinue ldr r0, _0808FF1C ldr r0, [r0] ldr r1, _0808FF20 adds r0, r1 movs r1, 0x2 strb r1, [r0] ldr r1, _0808FF24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0808FF28 str r1, [r0] movs r0, 0x6D bl audio_play b _0808FF9E .align 2, 0 _0808FF14: .4byte gSaveBlock2 _0808FF18: .4byte 0x03007380 _0808FF1C: .4byte 0x0202ffb4 _0808FF20: .4byte 0x0000064f _0808FF24: .4byte 0x03004b20 _0808FF28: .4byte sub_808FFBC _0808FF2C: ldrh r1, [r5, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0808FF48 movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _0808FF9E ldr r0, _0808FF60 ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _0808FF9E _0808FF48: ldr r0, _0808FF64 ldr r0, [r0] ldrb r1, [r0, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0808FF68 movs r0, 0x20 bl audio_play b _0808FF9E .align 2, 0 _0808FF60: .4byte gSaveBlock2 _0808FF64: .4byte 0x0202ffbc _0808FF68: movs r0, 0x15 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0808FFA8 bl m4aMPlayContinue ldr r0, _0808FFAC ldr r0, [r0] ldr r1, _0808FFB0 adds r0, r1 movs r1, 0x3 strb r1, [r0] ldr r1, _0808FFB4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0808FFB8 str r1, [r0] movs r0, 0x6D bl audio_play _0808FF9E: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0808FFA8: .4byte 0x03007380 _0808FFAC: .4byte 0x0202ffb4 _0808FFB0: .4byte 0x0000064f _0808FFB4: .4byte 0x03004b20 _0808FFB8: .4byte sub_808FFBC thumb_func_end sub_808FDF8 thumb_func_start sub_808FFBC sub_808FFBC: @ 808FFBC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0808FFF8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08090032 bl sub_811A4F8 ldr r0, _0808FFFC ldr r0, [r0] ldr r1, _08090000 adds r0, r1 ldrb r0, [r0] cmp r0, 0x2 beq _0809000C cmp r0, 0x2 ble _0808FFE8 cmp r0, 0x3 beq _08090024 _0808FFE8: ldr r0, _08090004 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08090008 b _08090030 .align 2, 0 _0808FFF8: .4byte 0x0202f388 _0808FFFC: .4byte 0x0202ffb4 _08090000: .4byte 0x0000064f _08090004: .4byte 0x03004b20 _08090008: .4byte sub_808F2B0 _0809000C: ldr r0, _0809001C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08090020 b _08090030 .align 2, 0 _0809001C: .4byte 0x03004b20 _08090020: .4byte sub_808F8D8 _08090024: ldr r0, _08090038 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0809003C _08090030: str r0, [r1] _08090032: pop {r4} pop {r0} bx r0 .align 2, 0 _08090038: .4byte 0x03004b20 _0809003C: .4byte sub_8090070 thumb_func_end sub_808FFBC thumb_func_start sub_8090040 sub_8090040: @ 8090040 push {lr} sub sp, 0x4 lsls r0, 24 cmp r0, 0 beq _08090054 ldr r1, _08090050 b _08090056 .align 2, 0 _08090050: .4byte 0x00000392 _08090054: ldr r1, _0809006C _08090056: mov r0, sp strh r1, [r0] mov r0, sp movs r1, 0x5D movs r2, 0x2 bl LoadPalette add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0809006C: .4byte 0x000002af thumb_func_end sub_8090040 thumb_func_start sub_8090070 sub_8090070: @ 8090070 push {r4,r5,lr} sub sp, 0x2C lsls r0, 24 lsrs r3, r0, 24 ldr r1, _08090090 ldr r2, _08090094 adds r0, r1, r2 ldrb r0, [r0] adds r5, r1, 0 cmp r0, 0x9 bhi _080900C4 lsls r0, 2 ldr r1, _08090098 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08090090: .4byte 0x03001770 _08090094: .4byte 0x0000043c _08090098: .4byte _0809009C .align 2, 0 _0809009C: .4byte _080900C4 .4byte _08090120 .4byte _08090150 .4byte _08090174 .4byte _080901C0 .4byte _080901D4 .4byte _08090278 .4byte _08090318 .4byte _08090344 .4byte _08090380 _080900C4: ldr r0, _08090108 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080900D2 b _080903AE _080900D2: ldr r4, _0809010C ldr r0, [r4] ldr r1, _08090110 adds r0, r1 movs r1, 0x7 strb r1, [r0] ldr r1, _08090114 ldr r0, [r5, 0xC] str r0, [r1] movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 2 bl sub_8091060 ldr r0, [r4] ldr r2, _08090118 adds r0, r2 movs r1, 0x3 strb r1, [r0] ldr r0, _0809011C adds r1, r5, r0 movs r0, 0x1 strb r0, [r1] b _080903AE .align 2, 0 _08090108: .4byte 0x0202f388 _0809010C: .4byte 0x0202ffb4 _08090110: .4byte 0x0000064a _08090114: .4byte 0x03005cec _08090118: .4byte 0x0000064d _0809011C: .4byte 0x0000043c _08090120: ldr r0, _0809013C movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _08090140 ldr r1, _08090144 bl LZ77UnCompVram ldr r1, _08090148 ldr r2, _0809014C adds r1, r2 b _08090368 .align 2, 0 _0809013C: .4byte gUnknown_08E86758 _08090140: .4byte gUnknown_0839F988 _08090144: .4byte 0x06007000 _08090148: .4byte 0x03001770 _0809014C: .4byte 0x0000043c _08090150: movs r0, 0xD bl sub_8090540 movs r0, 0x3 movs r1, 0xD bl sub_8090644 bl sub_808D640 ldr r1, _0809016C ldr r0, _08090170 adds r1, r0 b _08090368 .align 2, 0 _0809016C: .4byte 0x03001770 _08090170: .4byte 0x0000043c _08090174: ldr r4, _080901AC adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C add r1, sp, 0x4 movs r0, 0xFF strb r0, [r1] ldr r1, _080901B0 add r0, sp, 0x4 bl StringAppend ldr r1, _080901B4 add r0, sp, 0x4 bl StringAppend add r0, sp, 0x4 movs r1, 0x3 movs r2, 0xF movs r3, 0xC0 bl Free ldr r1, _080901B8 ldr r2, _080901BC adds r1, r2 b _08090368 .align 2, 0 _080901AC: .4byte gWindowConfig_81E702C _080901B0: .4byte gUnknown_0840E035 _080901B4: .4byte gSaveBlock2 _080901B8: .4byte 0x03001770 _080901BC: .4byte 0x0000043c _080901C0: bl ResetPaletteFade ldr r1, _080901CC ldr r0, _080901D0 adds r1, r0 b _08090368 .align 2, 0 _080901CC: .4byte 0x03001770 _080901D0: .4byte 0x0000043c _080901D4: ldr r0, _0809025C ldrb r0, [r0, 0x8] movs r1, 0x98 movs r2, 0x38 movs r3, 0 bl sub_8091A4C lsls r0, 24 lsrs r1, r0, 24 ldr r0, _08090260 lsls r4, r1, 4 adds r4, r1 lsls r4, 2 adds r4, r0 ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x1] ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x2 orrs r0, r1 strb r0, [r4, 0x3] ldrb r1, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r4, 0x5] ldr r3, _08090264 ldr r0, _08090268 ldr r2, [r0] ldrh r1, [r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x20] strh r0, [r4, 0x26] ldrh r1, [r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x1E] str r1, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl SetOamMatrix ldr r0, _0809026C ldrb r1, [r4, 0x5] lsrs r1, 4 adds r1, 0x10 lsls r1, 4 movs r2, 0x20 bl LoadPalette ldr r1, _08090270 ldr r2, _08090274 adds r1, r2 b _08090368 .align 2, 0 _0809025C: .4byte gSaveBlock2 _08090260: .4byte 0x02020004 _08090264: .4byte gPokedexEntries _08090268: .4byte 0x0202ffbc _0809026C: .4byte gUnknown_083B4EC4 _08090270: .4byte 0x03001770 _08090274: .4byte 0x0000043c _08090278: ldr r5, _08090300 ldr r0, [r5] ldrh r0, [r0] movs r1, 0x58 movs r2, 0x38 movs r3, 0x1 bl sub_80918EC lsls r0, 24 lsrs r1, r0, 24 ldr r0, _08090304 lsls r4, r1, 4 adds r4, r1 lsls r4, 2 adds r4, r0 ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x1] ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r4, 0x3] ldrb r1, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r4, 0x5] ldr r3, _08090308 ldr r2, [r5] ldrh r1, [r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x1C] strh r0, [r4, 0x26] ldrh r1, [r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x1A] str r1, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 bl SetOamMatrix ldr r0, _0809030C ldrb r1, [r4, 0x5] lsrs r1, 4 adds r1, 0x10 lsls r1, 4 movs r2, 0x20 bl LoadPalette ldr r1, _08090310 ldr r0, _08090314 adds r1, r0 b _08090368 .align 2, 0 _08090300: .4byte 0x0202ffbc _08090304: .4byte 0x02020004 _08090308: .4byte gPokedexEntries _0809030C: .4byte gUnknown_083B4EC4 _08090310: .4byte 0x03001770 _08090314: .4byte 0x0000043c _08090318: movs r0, 0x15 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _08090338 ldr r0, [r0] bl SetVBlankCallback ldr r1, _0809033C ldr r2, _08090340 adds r1, r2 b _08090368 .align 2, 0 _08090338: .4byte 0x03005cec _0809033C: .4byte 0x03001770 _08090340: .4byte 0x0000043c _08090344: ldr r0, _08090370 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _08090374 ldr r2, _08090378 adds r0, r2, 0 strh r0, [r1] subs r1, 0xC movs r2, 0xF2 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _0809037C adds r1, r5, r0 _08090368: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080903AE .align 2, 0 _08090370: .4byte REG_BLDCNT _08090374: .4byte REG_BG2CNT _08090378: .4byte 0x00000e03 _0809037C: .4byte 0x0000043c _08090380: ldr r0, _080903B8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080903AE ldr r0, _080903BC ldr r0, [r0] ldr r1, _080903C0 adds r0, r1 strb r2, [r0] ldr r1, _080903C4 adds r0, r5, r1 strb r2, [r0] ldr r1, _080903C8 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 ldr r1, _080903CC str r1, [r0] _080903AE: add sp, 0x2C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080903B8: .4byte 0x0202f388 _080903BC: .4byte 0x0202ffb4 _080903C0: .4byte 0x0000064f _080903C4: .4byte 0x0000043c _080903C8: .4byte 0x03004b20 _080903CC: .4byte sub_80903D0 thumb_func_end sub_8090070 thumb_func_start sub_80903D0 sub_80903D0: @ 80903D0 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 ldr r0, _0809041C ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 beq _08090430 movs r0, 0x15 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08090420 ldr r0, [r0] ldr r1, _08090424 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r1, _08090428 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0809042C str r1, [r0] movs r0, 0x3 bl audio_play b _0809047A .align 2, 0 _0809041C: .4byte 0x03001770 _08090420: .4byte 0x0202ffb4 _08090424: .4byte 0x0000064f _08090428: .4byte 0x03004b20 _0809042C: .4byte sub_8090498 _08090430: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0809044A movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _0809047A ldr r0, _08090484 ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _0809047A _0809044A: movs r0, 0x15 negs r0, r0 str r2, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08090488 ldr r0, [r0] ldr r1, _0809048C adds r0, r1 movs r1, 0x2 strb r1, [r0] ldr r1, _08090490 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _08090494 str r1, [r0] movs r0, 0x6D bl audio_play _0809047A: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08090484: .4byte gSaveBlock2 _08090488: .4byte 0x0202ffb4 _0809048C: .4byte 0x0000064f _08090490: .4byte 0x03004b20 _08090494: .4byte sub_8090498 thumb_func_end sub_80903D0 thumb_func_start sub_8090498 sub_8090498: @ 8090498 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080904CC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080904EE ldr r0, _080904D0 ldr r0, [r0] ldr r1, _080904D4 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _080904BC cmp r0, 0x2 beq _080904E0 _080904BC: ldr r0, _080904D8 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _080904DC b _080904EC .align 2, 0 _080904CC: .4byte 0x0202f388 _080904D0: .4byte 0x0202ffb4 _080904D4: .4byte 0x0000064f _080904D8: .4byte 0x03004b20 _080904DC: .4byte sub_808F2B0 _080904E0: ldr r0, _080904F4 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _080904F8 _080904EC: str r0, [r1] _080904EE: pop {r0} bx r0 .align 2, 0 _080904F4: .4byte 0x03004b20 _080904F8: .4byte sub_808FA64 thumb_func_end sub_8090498 thumb_func_start sub_80904FC sub_80904FC: @ 80904FC push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 16 ldr r0, _08090530 lsrs r4, 5 movs r2, 0xC0 lsls r2, 19 adds r1, r4, r2 bl LZ77UnCompVram ldr r0, _08090534 adds r4, r0 mov r1, sp movs r0, 0 strh r0, [r1] ldr r0, _08090538 str r1, [r0] str r4, [r0, 0x4] ldr r1, _0809053C str r1, [r0, 0x8] ldr r0, [r0, 0x8] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08090530: .4byte gUnknown_08E96ACC _08090534: .4byte 0x060000c0 _08090538: .4byte 0x040000d4 _0809053C: .4byte 0x81000220 thumb_func_end sub_80904FC thumb_func_start sub_8090540 sub_8090540: @ 8090540 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 16 ldr r0, _08090574 lsrs r4, 5 movs r2, 0xC0 lsls r2, 19 adds r1, r4, r2 bl LZ77UnCompVram ldr r0, _08090578 adds r4, r0 mov r1, sp movs r0, 0 strh r0, [r1] ldr r0, _0809057C str r1, [r0] str r4, [r0, 0x4] ldr r1, _08090580 str r1, [r0, 0x8] ldr r0, [r0, 0x8] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08090574: .4byte gUnknown_08E96B58 _08090578: .4byte 0x060000c0 _0809057C: .4byte 0x040000d4 _08090580: .4byte 0x81000220 thumb_func_end sub_8090540 thumb_func_start sub_8090584 sub_8090584: @ 8090584 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r1, 16 lsrs r1, 16 mov r9, r1 movs r1, 0 _0809059C: lsls r0, r1, 2 adds r0, r1 adds r0, 0x1 lsls r0, 24 lsrs r7, r0, 24 movs r6, 0x80 lsls r6, 7 cmp r1, r10 bne _080905B2 movs r6, 0x80 lsls r6, 6 _080905B2: movs r3, 0 mov r0, r9 lsls r0, 11 mov r12, r0 adds r1, 0x1 mov r8, r1 mov r5, r12 ldr r4, _08090634 _080905C2: adds r0, r7, r3 lsls r0, 1 adds r0, r5, r0 movs r2, 0xC0 lsls r2, 19 adds r1, r0, r2 ldrh r2, [r1] ands r2, r4 orrs r2, r6 strh r2, [r1] ldr r1, _08090638 adds r0, r1 ldrh r2, [r0] ands r2, r4 orrs r2, r6 strh r2, [r0] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x4 bls _080905C2 mov r2, r8 lsls r0, r2, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _0809059C movs r6, 0x80 lsls r6, 7 movs r3, 0 mov r5, r12 ldr r4, _08090634 _08090600: lsls r0, r3, 1 adds r0, r5, r0 ldr r2, _0809063C adds r1, r0, r2 ldrh r2, [r1] ands r2, r4 orrs r2, r6 strh r2, [r1] ldr r1, _08090640 adds r0, r1 ldrh r2, [r0] ands r2, r4 orrs r2, r6 strh r2, [r0] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x4 bls _08090600 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08090634: .4byte 0x00000fff _08090638: .4byte 0x06000040 _0809063C: .4byte 0x06000032 _08090640: .4byte 0x06000072 thumb_func_end sub_8090584 thumb_func_start sub_8090644 sub_8090644: @ 8090644 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r1, 16 lsrs r1, 16 mov r9, r1 movs r1, 0 _0809065C: lsls r0, r1, 2 adds r0, r1 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r1, r10 beq _08090670 cmp r1, 0 bne _08090676 _08090670: movs r5, 0x80 lsls r5, 6 b _0809067A _08090676: movs r5, 0x80 lsls r5, 7 _0809067A: movs r3, 0 mov r0, r9 lsls r7, r0, 11 adds r1, 0x1 mov r12, r1 adds r6, r7, 0 ldr r4, _080906FC _08090688: mov r1, r8 adds r0, r1, r3 lsls r0, 1 adds r0, r6, r0 movs r2, 0xC0 lsls r2, 19 adds r1, r0, r2 ldrh r2, [r1] ands r2, r4 orrs r2, r5 strh r2, [r1] ldr r1, _08090700 adds r0, r1 ldrh r2, [r0] ands r2, r4 orrs r2, r5 strh r2, [r0] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x4 bls _08090688 mov r2, r12 lsls r0, r2, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _0809065C movs r5, 0x80 lsls r5, 7 movs r3, 0 adds r6, r7, 0 ldr r4, _080906FC _080906C8: lsls r0, r3, 1 adds r0, r6, r0 ldr r2, _08090704 adds r1, r0, r2 ldrh r2, [r1] ands r2, r4 orrs r2, r5 strh r2, [r1] ldr r1, _08090708 adds r0, r1 ldrh r2, [r0] ands r2, r4 orrs r2, r5 strh r2, [r0] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x4 bls _080906C8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080906FC: .4byte 0x00000fff _08090700: .4byte 0x06000040 _08090704: .4byte 0x06000032 _08090708: .4byte 0x06000072 thumb_func_end sub_8090644 thumb_func_start sub_809070C sub_809070C: @ 809070C push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _08090748 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0809074C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0 strh r2, [r1, 0x8] strh r4, [r1, 0xA] strh r5, [r1, 0x20] lsrs r5, 16 strh r5, [r1, 0x22] strh r6, [r1, 0x24] lsrs r6, 16 strh r6, [r1, 0x26] pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08090748: .4byte sub_8090750 _0809074C: .4byte 0x03004b20 thumb_func_end sub_809070C thumb_func_start sub_8090750 sub_8090750: @ 8090750 push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08090778 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrh r6, [r0, 0xA] movs r2, 0x8 ldrsh r0, [r0, r2] adds r4, r1, 0 cmp r0, 0x6 bhi _0809079C lsls r0, 2 ldr r1, _0809077C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08090778: .4byte 0x03004b20 _0809077C: .4byte _08090780 .align 2, 0 _08090780: .4byte _0809079C .4byte _080907E0 .4byte _0809085C .4byte _080908A0 .4byte _08090960 .4byte _080909B8 .4byte _080909F4 _0809079C: ldr r0, _080907D0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080907AA b _08090A26 _080907AA: ldr r1, _080907D4 ldr r0, _080907D8 ldr r0, [r0, 0xC] str r0, [r1] movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 1 bl sub_8091060 ldr r1, _080907DC lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 movs r1, 0x1 strh r1, [r0, 0x8] b _08090A26 .align 2, 0 _080907D0: .4byte 0x0202f388 _080907D4: .4byte 0x03005cec _080907D8: .4byte 0x03001770 _080907DC: .4byte 0x03004b20 _080907E0: ldr r0, _08090840 ldr r1, _08090844 bl LZ77UnCompVram ldr r0, _08090848 ldr r4, _0809084C adds r1, r4, 0 bl LZ77UnCompVram movs r2, 0 lsls r5, r7, 2 mov r12, r5 movs r0, 0x80 lsls r0, 6 adds r6, r0, 0 ldr r3, _08090850 _08090800: lsls r0, r2, 1 adds r0, r4 ldrh r5, [r0] adds r1, r6, r5 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r3 bls _08090800 ldr r0, _08090854 mov r1, r12 adds r4, r1, r7 lsls r4, 3 adds r4, r0 ldrh r0, [r4, 0xA] movs r2, 0xFF lsls r2, 2 movs r1, 0x2 bl sub_8091738 bl ResetPaletteFade ldr r0, _08090858 movs r1, 0x21 movs r2, 0x9E bl LoadPalette ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08090A26 .align 2, 0 _08090840: .4byte gUnknown_08E86758 _08090844: .4byte 0x06004000 _08090848: .4byte gUnknown_08E96BD4 _0809084C: .4byte 0x06007800 _08090850: .4byte 0x0000027f _08090854: .4byte 0x03004b20 _08090858: .4byte gUnknown_08E87AF6 _0809085C: ldr r4, _0809088C adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C ldr r2, _08090890 add r1, sp, 0x4 movs r0, 0 strh r0, [r1] ldr r0, _08090894 str r1, [r0] str r2, [r0, 0x4] ldr r1, _08090898 str r1, [r0, 0x8] ldr r0, [r0, 0x8] ldr r1, _0809089C lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 b _080909E0 .align 2, 0 _0809088C: .4byte gWindowConfig_81E7064 _08090890: .4byte 0x0600c000 _08090894: .4byte 0x040000d4 _08090898: .4byte 0x81000100 _0809089C: .4byte 0x03004b20 _080908A0: ldr r0, _080908C8 movs r1, 0x2 movs r2, 0 movs r3, 0xD0 bl Free bl sub_806912C cmp r0, 0 bne _080908CC adds r0, r6, 0 bl NationalToHoennOrder lsls r0, 16 lsrs r0, 16 movs r1, 0xD movs r2, 0x3 bl sub_8091154 b _080908D6 .align 2, 0 _080908C8: .4byte gUnknown_0840E047 _080908CC: adds r0, r6, 0 movs r1, 0xD movs r2, 0x3 bl sub_8091154 _080908D6: adds r0, r6, 0 movs r1, 0x10 movs r2, 0x3 bl sub_80911C8 ldr r0, _0809094C movs r1, 0xB movs r2, 0x5 bl Print ldr r0, _08090950 movs r1, 0x10 movs r2, 0x7 bl Print ldr r0, _08090954 movs r1, 0x10 movs r2, 0x9 bl Print lsls r4, r6, 3 adds r4, r6 lsls r4, 2 ldr r6, _08090958 adds r5, r4, r6 adds r0, r5, 0 movs r1, 0xB movs r2, 0x5 bl sub_8091304 ldrh r0, [r5, 0xC] movs r1, 0x10 movs r2, 0x7 bl sub_8091458 ldrh r0, [r5, 0xE] movs r1, 0x10 movs r2, 0x9 bl sub_8091564 adds r6, 0x10 adds r4, r6 ldr r0, [r4] movs r1, 0x2 movs r2, 0xD bl Print movs r1, 0xFF lsls r1, 2 movs r0, 0xE bl sub_80917CC ldr r1, _0809095C lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 b _080909E0 .align 2, 0 _0809094C: .4byte gUnknown_0840DFF9 _08090950: .4byte gUnknown_0840E013 _08090954: .4byte gUnknown_0840E01D _08090958: .4byte gPokedexEntries _0809095C: .4byte 0x03004b20 _08090960: adds r0, r6, 0 movs r1, 0x30 movs r2, 0x38 movs r3, 0 bl sub_80918EC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080909AC lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x5] movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080909B0 ldr r0, [r0] bl SetVBlankCallback ldr r1, _080909B4 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 strh r4, [r0, 0xE] b _080909E0 .align 2, 0 _080909AC: .4byte 0x02020004 _080909B0: .4byte 0x03005cec _080909B4: .4byte 0x03004b20 _080909B8: ldr r0, _080909E8 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _080909EC ldr r2, _080909F0 adds r0, r2, 0 strh r0, [r1] subs r1, 0xE movs r5, 0xE2 lsls r5, 5 adds r0, r5, 0 strh r0, [r1] lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r4 _080909E0: ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _08090A26 .align 2, 0 _080909E8: .4byte REG_BLDCNT _080909EC: .4byte REG_BG3CNT _080909F0: .4byte 0x00000f07 _080909F4: ldr r0, _08090A30 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08090A26 adds r0, r6, 0 bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r0, 16 movs r1, 0 bl cry_related ldr r1, _08090A34 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 strh r5, [r0, 0xC] strh r5, [r0, 0x10] ldr r1, _08090A38 str r1, [r0] _08090A26: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08090A30: .4byte 0x0202f388 _08090A34: .4byte 0x03004b20 _08090A38: .4byte sub_8090A3C thumb_func_end sub_8090750 thumb_func_start sub_8090A3C sub_8090A3C: @ 8090A3C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _08090A8C ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 beq _08090AA4 ldr r0, _08090A90 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r3, _08090A94 ldr r0, _08090A98 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 movs r0, 0xE ldrsh r2, [r1, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r3, 0x1C adds r0, r3 ldr r2, _08090A9C str r2, [r0] ldr r0, _08090AA0 str r0, [r1] b _08090B7A .align 2, 0 _08090A8C: .4byte 0x03001770 _08090A90: .4byte 0x0000fffc _08090A94: .4byte 0x02020004 _08090A98: .4byte 0x03004b20 _08090A9C: .4byte sub_8090C28 _08090AA0: .4byte sub_8090B8C _08090AA4: movs r0, 0x1 mov r8, r0 ands r0, r1 lsls r7, r6, 2 cmp r0, 0 beq _08090B44 ldr r0, _08090B00 adds r1, r7, r6 lsls r1, 3 adds r5, r1, r0 movs r1, 0x10 ldrsh r0, [r5, r1] cmp r0, 0 bne _08090B0C ldrh r4, [r5, 0xA] movs r0, 0x2 movs r1, 0xD movs r2, 0x1B movs r3, 0x13 bl Reset ldr r1, _08090B04 lsls r0, r4, 3 adds r0, r4 lsls r0, 2 adds r1, 0x14 adds r0, r1 ldr r0, [r0] movs r1, 0x2 movs r2, 0xD bl Print ldr r1, _08090B08 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] adds r1, 0x40 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] mov r0, r8 strh r0, [r5, 0x10] movs r0, 0x15 bl audio_play b _08090B44 .align 2, 0 _08090B00: .4byte 0x03004b20 _08090B04: .4byte gPokedexEntries _08090B08: .4byte 0x06007aca _08090B0C: ldr r0, _08090B34 str r2, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r2, _08090B38 movs r0, 0xE ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _08090B3C str r1, [r0] ldr r0, _08090B40 str r0, [r5] b _08090B7A .align 2, 0 _08090B34: .4byte 0x0000fffc _08090B38: .4byte 0x02020004 _08090B3C: .4byte sub_8090C28 _08090B40: .4byte sub_8090B8C _08090B44: ldr r1, _08090B68 adds r0, r7, r6 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0xC] adds r1, 0x1 strh r1, [r0, 0xC] movs r0, 0x10 ands r1, r0 cmp r1, 0 beq _08090B70 ldr r0, _08090B6C movs r1, 0x51 movs r2, 0xE bl LoadPalette b _08090B7A .align 2, 0 _08090B68: .4byte 0x03004b20 _08090B6C: .4byte gUnknown_08E87AF6 _08090B70: ldr r0, _08090B88 movs r1, 0x51 movs r2, 0xE bl LoadPalette _08090B7A: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08090B88: .4byte gUnknown_08E87B56 thumb_func_end sub_8090A3C thumb_func_start sub_8090B8C sub_8090B8C: @ 8090B8C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _08090C14 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08090C0C movs r1, 0x80 lsls r1, 19 movs r2, 0xCA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _08090C18 ldr r1, _08090C1C movs r2, 0x80 lsls r2, 4 bl CpuSet bl sub_800D74C ldr r0, _08090C20 lsls r4, r6, 2 adds r4, r6 lsls r4, 3 adds r4, r0 ldrh r0, [r4, 0xA] bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r0, 16 ldrh r1, [r4, 0x22] lsls r1, 16 ldrh r2, [r4, 0x20] orrs r1, r2 ldrh r2, [r4, 0x26] lsls r2, 16 ldrh r3, [r4, 0x24] orrs r2, r3 ldr r5, _08090C24 movs r3, 0xE ldrsh r4, [r4, r3] lsls r3, r4, 4 adds r3, r4 lsls r3, 2 adds r3, r5 ldrb r4, [r3, 0x5] lsrs r4, 4 bl species_and_otid_get_pal lsls r4, 4 movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 orrs r4, r1 adds r1, r4, 0 movs r2, 0x20 bl LoadCompressedPalette adds r0, r6, 0 bl DestroyTask _08090C0C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08090C14: .4byte 0x0202f388 _08090C18: .4byte gUnknown_08D00524 _08090C1C: .4byte 0x0600c000 _08090C20: .4byte 0x03004b20 _08090C24: .4byte 0x02020004 thumb_func_end sub_8090B8C thumb_func_start sub_8090C28 sub_8090C28: @ 8090C28 push {lr} adds r1, r0, 0 ldrh r2, [r1, 0x20] movs r3, 0x20 ldrsh r0, [r1, r3] cmp r0, 0x77 bgt _08090C3A adds r0, r2, 0x2 strh r0, [r1, 0x20] _08090C3A: ldrh r2, [r1, 0x20] movs r3, 0x20 ldrsh r0, [r1, r3] cmp r0, 0x78 ble _08090C48 subs r0, r2, 0x2 strh r0, [r1, 0x20] _08090C48: ldrh r2, [r1, 0x22] movs r3, 0x22 ldrsh r0, [r1, r3] cmp r0, 0x4F bgt _08090C56 adds r0, r2, 0x1 strh r0, [r1, 0x22] _08090C56: ldrh r2, [r1, 0x22] movs r3, 0x22 ldrsh r0, [r1, r3] cmp r0, 0x50 ble _08090C64 subs r0, r2, 0x1 strh r0, [r1, 0x22] _08090C64: pop {r0} bx r0 thumb_func_end sub_8090C28 thumb_func_start sub_8090C68 sub_8090C68: @ 8090C68 push {r4,r5,lr} ldr r4, _08090CD0 ldr r0, [r4] ldrb r1, [r0, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08090D2A ldr r5, _08090CD4 ldr r0, [r5] ldr r1, _08090CD8 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08090CE4 movs r0, 0x2 movs r1, 0xD movs r2, 0x1B movs r3, 0x13 bl Reset ldr r2, _08090CDC ldr r0, [r4] ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r2, 0x14 adds r0, r2 ldr r0, [r0] movs r1, 0x2 movs r2, 0xD bl Print ldr r0, [r5] ldr r1, _08090CD8 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r1, _08090CE0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] adds r1, 0x40 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0x15 bl audio_play b _08090D2A .align 2, 0 _08090CD0: .4byte 0x0202ffbc _08090CD4: .4byte 0x0202ffb4 _08090CD8: .4byte 0x0000064e _08090CDC: .4byte gPokedexEntries _08090CE0: .4byte 0x06007aca _08090CE4: movs r0, 0x2 movs r1, 0xD movs r2, 0x1B movs r3, 0x13 bl Reset ldr r2, _08090D30 ldr r0, [r4] ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r2, 0x10 adds r0, r2 ldr r0, [r0] movs r1, 0x2 movs r2, 0xD bl Print ldr r0, [r5] ldr r1, _08090D34 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r1, _08090D38 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r1, 0x40 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] movs r0, 0x15 bl audio_play _08090D2A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08090D30: .4byte gPokedexEntries _08090D34: .4byte 0x0000064e _08090D38: .4byte 0x06007aca thumb_func_end sub_8090C68 thumb_func_start sub_8090D3C sub_8090D3C: @ 8090D3C adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08090D50 adds r0, r1 bx lr .align 2, 0 _08090D50: .4byte gPokedexEntries thumb_func_end sub_8090D3C thumb_func_start sub_8090D54 sub_8090D54: @ 8090D54 push {lr} lsls r0, 16 lsrs r2, r0, 16 lsls r1, 24 lsrs r1, 24 cmp r1, 0 beq _08090D6A cmp r1, 0x1 beq _08090D7C movs r0, 0x1 b _08090D88 _08090D6A: ldr r0, _08090D78 lsls r1, r2, 3 adds r1, r2 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0xC] b _08090D88 .align 2, 0 _08090D78: .4byte gPokedexEntries _08090D7C: ldr r0, _08090D8C lsls r1, r2, 3 adds r1, r2 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0xE] _08090D88: pop {r1} bx r1 .align 2, 0 _08090D8C: .4byte gPokedexEntries thumb_func_end sub_8090D54 thumb_func_start sub_8090D90 sub_8090D90: @ 8090D90 push {r4-r7,lr} lsls r0, 16 lsls r1, 24 lsrs r2, r1, 24 adds r3, r2, 0 ldr r1, _08090DC4 adds r0, r1 lsrs r1, r0, 16 lsrs r0, 19 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x7 ands r1, r0 movs r0, 0x80 lsls r0, 17 lsls r0, r1 lsrs r5, r0, 24 movs r6, 0 cmp r2, 0x1 beq _08090E24 cmp r2, 0x1 bgt _08090DC8 cmp r2, 0 beq _08090DD4 b _08090F0A .align 2, 0 _08090DC4: .4byte 0xffff0000 _08090DC8: cmp r3, 0x2 beq _08090EBC cmp r3, 0x3 bne _08090DD2 b _08090EFC _08090DD2: b _08090F0A _08090DD4: ldr r1, _08090E14 adds r0, r1, 0 adds r0, 0x5C adds r0, r4, r0 ldrb r2, [r0] ands r2, r5 adds r7, r1, 0 cmp r2, 0 bne _08090DE8 b _08090F0A _08090DE8: ldr r0, _08090E18 ldr r3, _08090E1C adds r1, r0, r3 adds r1, r4, r1 ldrb r1, [r1] ands r1, r5 adds r6, r0, 0 cmp r2, r1 bne _08090E08 ldr r1, _08090E20 adds r0, r6, r1 adds r0, r4, r0 ldrb r0, [r0] ands r0, r5 cmp r2, r0 beq _08090E62 _08090E08: adds r1, r7, 0 adds r1, 0x5C adds r1, r4, r1 mvns r3, r5 b _08090E8E .align 2, 0 _08090E14: .4byte gSaveBlock2 _08090E18: .4byte 0x02025734 _08090E1C: .4byte 0x00000938 _08090E20: .4byte 0x00003a8c _08090E24: ldr r1, _08090E68 adds r0, r1, 0 adds r0, 0x28 adds r0, r4, r0 ldrb r2, [r0] ands r2, r5 adds r7, r1, 0 cmp r2, 0 beq _08090F0A adds r0, r7, 0 adds r0, 0x5C adds r0, r4, r0 ldrb r0, [r0] ands r0, r5 ldr r6, _08090E6C cmp r2, r0 bne _08090E78 ldr r3, _08090E70 adds r0, r6, r3 adds r0, r4, r0 ldrb r0, [r0] ands r0, r5 cmp r2, r0 bne _08090E78 ldr r1, _08090E74 adds r0, r6, r1 adds r0, r4, r0 ldrb r0, [r0] ands r0, r5 cmp r2, r0 bne _08090E78 _08090E62: movs r6, 0x1 b _08090F0A .align 2, 0 _08090E68: .4byte gSaveBlock2 _08090E6C: .4byte 0x02025734 _08090E70: .4byte 0x00000938 _08090E74: .4byte 0x00003a8c _08090E78: adds r1, r7, 0 adds r1, 0x28 adds r1, r4, r1 mvns r3, r5 ldrb r2, [r1] adds r0, r3, 0 ands r0, r2 strb r0, [r1] adds r1, r7, 0 adds r1, 0x5C adds r1, r4, r1 _08090E8E: ldrb r2, [r1] adds r0, r3, 0 ands r0, r2 strb r0, [r1] ldr r0, _08090EB4 adds r1, r6, r0 adds r1, r4, r1 ldrb r2, [r1] adds r0, r3, 0 ands r0, r2 strb r0, [r1] ldr r1, _08090EB8 adds r0, r6, r1 adds r0, r4, r0 ldrb r1, [r0] ands r3, r1 strb r3, [r0] movs r6, 0 b _08090F0A .align 2, 0 _08090EB4: .4byte 0x00000938 _08090EB8: .4byte 0x00003a8c _08090EBC: ldr r1, _08090EEC adds r1, 0x5C adds r1, r4, r1 ldrb r2, [r1] adds r0, r5, 0 orrs r0, r2 strb r0, [r1] ldr r1, _08090EF0 ldr r3, _08090EF4 adds r2, r1, r3 adds r2, r4, r2 ldrb r3, [r2] adds r0, r5, 0 orrs r0, r3 strb r0, [r2] ldr r0, _08090EF8 adds r1, r0 adds r1, r4, r1 ldrb r2, [r1] adds r0, r5, 0 orrs r0, r2 strb r0, [r1] b _08090F0A .align 2, 0 _08090EEC: .4byte gSaveBlock2 _08090EF0: .4byte 0x02025734 _08090EF4: .4byte 0x00000938 _08090EF8: .4byte 0x00003a8c _08090EFC: ldr r0, _08090F14 adds r0, 0x28 adds r0, r4, r0 ldrb r2, [r0] adds r1, r5, 0 orrs r1, r2 strb r1, [r0] _08090F0A: adds r0, r6, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08090F14: .4byte gSaveBlock2 thumb_func_end sub_8090D90 thumb_func_start pokedex_count pokedex_count: @ 8090F18 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 movs r0, 0 ldr r7, _08090F30 _08090F24: cmp r6, 0 beq _08090F34 cmp r6, 0x1 beq _08090F3E adds r4, r0, 0x1 b _08090F56 .align 2, 0 _08090F30: .4byte 0x00000181 _08090F34: adds r4, r0, 0x1 lsls r0, r4, 16 lsrs r0, 16 movs r1, 0 b _08090F46 _08090F3E: adds r4, r0, 0x1 lsls r0, r4, 16 lsrs r0, 16 movs r1, 0x1 _08090F46: bl sub_8090D90 lsls r0, 24 cmp r0, 0 beq _08090F56 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _08090F56: lsls r0, r4, 16 lsrs r0, 16 cmp r0, r7 bls _08090F24 adds r0, r5, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end pokedex_count thumb_func_start sub_8090F68 sub_8090F68: @ 8090F68 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 movs r0, 0 _08090F72: cmp r6, 0 beq _08090F7E cmp r6, 0x1 beq _08090F90 adds r4, r0, 0x1 b _08090FB0 _08090F7E: adds r4, r0, 0x1 lsls r0, r4, 16 lsrs r0, 16 bl HoennToNationalOrder lsls r0, 16 lsrs r0, 16 movs r1, 0 b _08090FA0 _08090F90: adds r4, r0, 0x1 lsls r0, r4, 16 lsrs r0, 16 bl HoennToNationalOrder lsls r0, 16 lsrs r0, 16 movs r1, 0x1 _08090FA0: bl sub_8090D90 lsls r0, 24 cmp r0, 0 beq _08090FB0 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _08090FB0: lsls r0, r4, 16 lsrs r0, 16 cmp r0, 0xC9 bls _08090F72 adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8090F68 thumb_func_start sub_8090FC0 sub_8090FC0: @ 8090FC0 push {r4,lr} movs r0, 0 _08090FC4: adds r0, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl HoennToNationalOrder lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl sub_8090D90 lsls r0, 24 cmp r0, 0 bne _08090FE4 movs r0, 0 b _08090FEC _08090FE4: adds r0, r4, 0 cmp r0, 0xC7 bls _08090FC4 movs r0, 0x1 _08090FEC: pop {r4} pop {r1} bx r1 thumb_func_end sub_8090FC0 thumb_func_start sub_8090FF4 sub_8090FF4: @ 8090FF4 push {r4,r5,lr} movs r0, 0 _08090FF8: adds r0, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 movs r1, 0x1 bl sub_8090D90 lsls r0, 24 cmp r0, 0 beq _08091046 adds r0, r4, 0 cmp r0, 0x95 bls _08090FF8 movs r0, 0x98 _08091014: adds r0, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 movs r1, 0x1 bl sub_8090D90 lsls r0, 24 cmp r0, 0 beq _08091046 adds r0, r4, 0 cmp r0, 0xF9 bls _08091014 movs r0, 0xFC ldr r5, _0809104C _08091032: adds r0, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 movs r1, 0x1 bl sub_8090D90 lsls r0, 24 cmp r0, 0 bne _08091050 _08091046: movs r0, 0 b _08091058 .align 2, 0 _0809104C: .4byte 0x0000017f _08091050: adds r0, r4, 0 cmp r0, r5 bls _08091032 movs r0, 0x1 _08091058: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8090FF4 thumb_func_start sub_8091060 sub_8091060: @ 8091060 push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 adds r5, r4, 0 movs r0, 0x80 lsls r0, 1 ands r0, r4 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 bne _0809108E movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _0809112C ands r0, r1 strh r0, [r2] ldr r0, _08091130 strh r3, [r0] adds r0, 0x8 strh r3, [r0] adds r0, 0x2 strh r3, [r0] _0809108E: movs r0, 0x80 lsls r0, 2 ands r0, r4 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 bne _080910B4 movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _08091134 ands r0, r1 strh r0, [r2] ldr r0, _08091138 strh r3, [r0] adds r0, 0xA strh r3, [r0] adds r0, 0x2 strh r3, [r0] _080910B4: movs r0, 0x80 lsls r0, 3 ands r0, r4 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 bne _080910DA movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _0809113C ands r0, r1 strh r0, [r2] ldr r0, _08091140 strh r3, [r0] adds r0, 0xC strh r3, [r0] adds r0, 0x2 strh r3, [r0] _080910DA: movs r0, 0x80 lsls r0, 4 ands r0, r4 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 bne _08091100 movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _08091144 ands r0, r1 strh r0, [r2] ldr r0, _08091148 strh r3, [r0] adds r0, 0xE strh r3, [r0] adds r0, 0x2 strh r3, [r0] _08091100: movs r0, 0x80 lsls r0, 5 ands r5, r0 cmp r5, 0 bne _08091124 movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _0809114C ands r0, r1 strh r0, [r2] bl ResetSpriteData bl FreeAllSpritePalettes ldr r1, _08091150 movs r0, 0x8 strb r0, [r1] _08091124: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809112C: .4byte 0x0000feff _08091130: .4byte REG_BG0CNT _08091134: .4byte 0x0000fdff _08091138: .4byte REG_BG1CNT _0809113C: .4byte 0x0000fbff _08091140: .4byte REG_BG2CNT _08091144: .4byte 0x0000f7ff _08091148: .4byte REG_BG3CNT _0809114C: .4byte 0x0000efff _08091150: .4byte 0x030028f8 thumb_func_end sub_8091060 thumb_func_start sub_8091154 sub_8091154: @ 8091154 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 adds r4, r0, 0 adds r6, r1, 0 mov r8, r2 lsls r4, 16 lsrs r4, 16 lsls r6, 24 lsrs r6, 24 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r5, sp adds r0, r4, 0 movs r1, 0x64 bl __udivsi3 adds r0, 0xA1 strb r0, [r5] mov r5, sp adds r0, r4, 0 movs r1, 0x64 bl __umodsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r4, 0 movs r1, 0xA bl __udivsi3 adds r0, 0xA1 strb r0, [r5, 0x1] mov r5, sp adds r0, r4, 0 movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r5, 0x2] mov r1, sp movs r0, 0xFF strb r0, [r1, 0x3] mov r0, sp adds r1, r6, 0 mov r2, r8 bl Print add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8091154 thumb_func_start sub_80911C8 sub_80911C8: @ 80911C8 push {r4-r6,lr} sub sp, 0xC lsls r0, 16 lsrs r3, r0, 16 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r5, r2, 24 movs r4, 0 movs r2, 0xFF _080911DC: mov r1, sp adds r0, r1, r4 ldrb r1, [r0] orrs r1, r2 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xA bls _080911DC adds r0, r3, 0 bl NationalPokedexNumToSpecies adds r3, r0, 0 cmp r3, 0 beq _08091238 movs r4, 0 ldr r2, _08091234 movs r0, 0xB adds r1, r3, 0 muls r1, r0 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0xFF beq _0809124C adds r3, r2, 0 adds r2, r1, 0 _08091212: mov r0, sp adds r1, r0, r4 adds r0, r4, r2 adds r0, r3 ldrb r0, [r0] strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, r2 adds r0, r3 ldrb r0, [r0] cmp r0, 0xFF beq _0809124C cmp r4, 0x9 bls _08091212 b _0809124C .align 2, 0 _08091234: .4byte gSpeciesNames _08091238: movs r4, 0 movs r1, 0xAE _0809123C: mov r2, sp adds r0, r2, r4 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _0809123C _0809124C: mov r0, sp adds r1, r6, 0 adds r2, r5, 0 bl Print adds r0, r4, 0 add sp, 0xC pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80911C8 thumb_func_start sub_8091260 sub_8091260: @ 8091260 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x28 adds r4, r3, 0 lsls r0, 16 lsrs r5, r0, 16 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r2, 24 lsrs r7, r2, 24 lsls r4, 24 lsrs r4, 24 ldr r1, _080912CC mov r0, sp bl StringCopy adds r6, r0, 0 mov r0, sp strb r4, [r0, 0x2] adds r0, r5, 0 bl NationalPokedexNumToSpecies adds r5, r0, 0 cmp r5, 0 beq _080912D4 movs r4, 0 ldr r2, _080912D0 movs r0, 0xB adds r1, r5, 0 muls r1, r0 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0xFF beq _080912E6 adds r3, r2, 0 adds r2, r1, 0 _080912AC: adds r1, r6, r4 adds r0, r4, r2 adds r0, r3 ldrb r0, [r0] strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, r2 adds r0, r3 ldrb r0, [r0] cmp r0, 0xFF beq _080912E6 cmp r4, 0x9 bls _080912AC b _080912E6 .align 2, 0 _080912CC: .4byte gUnknown_083B5558 _080912D0: .4byte gSpeciesNames _080912D4: movs r4, 0 movs r1, 0xAE _080912D8: adds r0, r6, r4 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _080912D8 _080912E6: adds r1, r6, r4 movs r0, 0xFF strb r0, [r1] mov r0, sp mov r1, r8 adds r2, r7, 0 bl Print adds r0, r4, 0 add sp, 0x28 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8091260 thumb_func_start sub_8091304 sub_8091304: @ 8091304 push {r4-r7,lr} sub sp, 0x20 adds r3, r0, 0 lsls r1, 24 lsrs r1, 24 mov r12, r1 lsls r2, 24 lsrs r7, r2, 24 movs r4, 0 ldrb r0, [r3] ldr r6, _08091340 cmp r0, 0xFF beq _0809133A _0809131E: mov r0, sp adds r1, r0, r4 adds r0, r3, r4 ldrb r0, [r0] strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r3, r4 ldrb r0, [r0] cmp r0, 0xFF beq _0809133A cmp r4, 0xA bls _0809131E _0809133A: movs r3, 0 ldrb r0, [r6] b _0809134E .align 2, 0 _08091340: .4byte gUnknown_0840DFF9 _08091344: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r0, r3, r6 ldrb r0, [r0] _0809134E: cmp r0, 0xAC beq _08091344 cmp r0, 0 beq _08091344 subs r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r0, r3, r6 ldrb r0, [r0] cmp r0, 0xFF beq _08091388 adds r5, r6, 0 _08091366: adds r1, r4, 0 adds r0, r1, 0x1 lsls r0, 24 lsrs r4, r0, 24 mov r0, sp adds r2, r0, r1 adds r1, r3, 0 adds r0, r1, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r1, r5 ldrb r0, [r1] strb r0, [r2] adds r0, r3, r5 ldrb r0, [r0] cmp r0, 0xFF bne _08091366 _08091388: mov r0, sp adds r1, r0, r4 movs r0, 0xFF strb r0, [r1] mov r0, sp mov r1, r12 adds r2, r7, 0 adds r3, r6, 0 bl sub_8072B80 add sp, 0x20 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8091304 thumb_func_start unref_sub_80913A4 unref_sub_80913A4: @ 80913A4 push {r4-r7,lr} sub sp, 0x8 lsls r0, 16 lsrs r4, r0, 16 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r6, r2, 24 movs r5, 0 movs r1, 0xFA lsls r1, 2 adds r0, r4, 0 bl __udivsi3 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080913CE mov r0, sp strb r5, [r0] b _080913D6 _080913CE: mov r1, sp adds r0, 0xA1 strb r0, [r1] movs r5, 0x1 _080913D6: movs r1, 0xFA lsls r1, 2 adds r0, r4, 0 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __udivsi3 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080913FC cmp r5, 0 bne _080913FC mov r0, sp strb r5, [r0, 0x1] b _08091402 _080913FC: mov r1, sp adds r0, 0xA1 strb r0, [r1, 0x1] _08091402: mov r5, sp movs r1, 0xFA lsls r1, 2 adds r0, r4, 0 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r4, 0 movs r1, 0xA bl __udivsi3 adds r0, 0xA1 strb r0, [r5, 0x2] mov r1, sp movs r0, 0xAD strb r0, [r1, 0x3] mov r5, sp adds r0, r4, 0 movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r5, 0x4] mov r1, sp movs r0, 0xFF strb r0, [r1, 0x5] mov r0, sp adds r1, r7, 0 adds r2, r6, 0 bl Print add sp, 0x8 pop {r4-r7} pop {r0} bx r0 thumb_func_end unref_sub_80913A4 thumb_func_start sub_8091458 sub_8091458: @ 8091458 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 lsls r0, 16 lsrs r0, 16 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r2, 24 lsrs r2, 24 mov r8, r2 ldr r1, _080914D4 muls r0, r1 movs r1, 0xFE bl __divsi3 adds r7, r0, 0 movs r1, 0xA bl __umodsi3 cmp r0, 0x4 bls _0809148A adds r7, 0xA _0809148A: adds r0, r7, 0 movs r1, 0x78 bl __udivsi3 adds r6, r0, 0 lsls r0, r6, 4 subs r0, r6 lsls r0, 3 subs r0, r7, r0 movs r1, 0xA bl __udivsi3 adds r7, r0, 0 mov r1, sp movs r0, 0xFC strb r0, [r1] adds r1, 0x1 movs r0, 0x13 strb r0, [r1] adds r0, r6, 0 movs r1, 0xA bl __udivsi3 adds r2, r0, 0 cmp r2, 0 bne _080914D8 mov r1, sp adds r1, 0x2 movs r0, 0x12 strb r0, [r1] movs r5, 0x4 adds r1, 0x1 adds r0, r6, 0 adds r0, 0xA1 strb r0, [r1] b _080914F8 .align 2, 0 _080914D4: .4byte 0x00002710 _080914D8: mov r1, sp adds r1, 0x2 movs r0, 0xC strb r0, [r1] adds r1, 0x1 adds r0, r2, 0 adds r0, 0xA1 strb r0, [r1] movs r5, 0x5 add r4, sp, 0x4 adds r0, r6, 0 movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r4] _080914F8: adds r1, r5, 0 adds r0, r1, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r2, r5, 0 add r1, sp movs r0, 0xB4 strb r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 mov r0, sp adds r4, r0, r2 adds r0, r7, 0 movs r1, 0xA bl __udivsi3 adds r0, 0xA1 strb r0, [r4] adds r0, r6, 0x1 lsls r0, 24 lsrs r5, r0, 24 mov r1, sp adds r4, r1, r6 adds r0, r7, 0 movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r4] adds r0, r5, 0x1 lsls r0, 24 lsrs r0, 24 mov r1, sp adds r2, r1, r5 movs r1, 0xB2 strb r1, [r2] mov r2, sp adds r1, r2, r0 movs r0, 0xFF strb r0, [r1] mov r0, sp mov r1, r9 mov r2, r8 bl Print add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8091458 thumb_func_start sub_8091564 sub_8091564: @ 8091564 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 16 lsrs r0, 16 lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x10] ldr r7, _080915BC muls r0, r7 ldr r1, _080915C0 bl __divsi3 adds r6, r0, 0 movs r1, 0xA bl __umodsi3 cmp r0, 0x4 bls _08091598 adds r6, 0xA _08091598: movs r5, 0 mov r4, sp adds r0, r6, 0 adds r1, r7, 0 bl __udivsi3 adds r0, 0xA1 strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, 0xA1 bne _080915C4 mov r0, sp strb r5, [r0] movs r7, 0x2 adds r0, 0x1 strb r5, [r0] b _080915C8 .align 2, 0 _080915BC: .4byte 0x000186a0 _080915C0: .4byte 0x000011b8 _080915C4: movs r5, 0x1 movs r7, 0x1 _080915C8: ldr r1, _0809160C adds r0, r6, 0 bl __umodsi3 adds r6, r0, 0 mov r0, sp adds r4, r0, r7 ldr r1, _08091610 adds r0, r6, 0 bl __udivsi3 adds r0, 0xA1 strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, 0xA1 bne _08091614 cmp r5, 0 bne _08091614 adds r1, r7, 0 adds r0, r1, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r2, r7, 0 mov r3, sp adds r0, r3, r1 strb r5, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r0, r3, r2 strb r5, [r0] b _0809161C .align 2, 0 _0809160C: .4byte 0x000186a0 _08091610: .4byte 0x00002710 _08091614: movs r5, 0x1 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _0809161C: ldr r1, _08091660 adds r0, r6, 0 bl __umodsi3 adds r6, r0, 0 mov r0, sp adds r4, r0, r7 movs r1, 0xFA lsls r1, 2 adds r0, r6, 0 bl __udivsi3 adds r0, 0xA1 strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, 0xA1 bne _08091664 cmp r5, 0 bne _08091664 adds r1, r7, 0 adds r0, r1, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r2, r7, 0 mov r3, sp adds r0, r3, r1 strb r5, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r0, r3, r2 strb r5, [r0] b _0809166A .align 2, 0 _08091660: .4byte 0x00002710 _08091664: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _0809166A: movs r1, 0xFA lsls r1, 2 adds r0, r6, 0 bl __umodsi3 adds r6, r0, 0 adds r1, r7, 0 adds r0, r1, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r5, r7, 0 mov r0, sp adds r4, r0, r1 adds r0, r6, 0 movs r1, 0x64 bl __udivsi3 adds r0, 0xA1 movs r1, 0 mov r9, r1 strb r0, [r4] adds r0, r6, 0 movs r1, 0x64 bl __umodsi3 adds r6, r0, 0 adds r0, r5, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r1, r7, 0 mov r2, sp adds r0, r2, r5 movs r3, 0xAD mov r8, r3 mov r2, r8 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r5, r7, 0 mov r3, sp adds r4, r3, r1 adds r0, r6, 0 movs r1, 0xA bl __udivsi3 adds r0, 0xA1 strb r0, [r4] adds r0, r5, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r1, r7, 0 mov r2, sp adds r0, r2, r5 mov r3, r9 strb r3, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r2, r7, 0 add r1, sp movs r0, 0xE0 strb r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r3, r7, 0 mov r0, sp adds r1, r0, r2 movs r0, 0xD6 strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r2, r7, 0 mov r0, sp adds r1, r0, r3 movs r0, 0xE7 strb r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r0, 24 mov r3, sp adds r1, r3, r2 mov r2, r8 strb r2, [r1] adds r1, r3, r0 movs r0, 0xFF strb r0, [r1] mov r0, sp mov r1, r10 ldr r2, [sp, 0x10] bl Print add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8091564 thumb_func_start sub_8091738 sub_8091738: @ 8091738 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x80 adds r4, r1, 0 adds r5, r2, 0 lsls r0, 16 lsrs r0, 16 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 ldr r6, _080917C8 bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r0, 14 adds r0, r6 ldr r0, [r0] mov r12, r0 movs r7, 0 movs r1, 0 lsls r4, 14 mov r8, r4 lsls r5, 5 _0809176A: mov r2, r12 adds r0, r2, r1 ldrb r3, [r0] movs r6, 0 adds r4, r1, 0x1 _08091774: lsls r1, r6, 1 adds r2, r3, 0 asrs r2, r1 movs r0, 0x1 ands r2, r0 movs r0, 0x2 lsls r0, r1 ands r0, r3 cmp r0, 0 beq _0809178C movs r0, 0x10 orrs r2, r0 _0809178C: mov r1, sp adds r0, r1, r7 strb r2, [r0] adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x3 bls _08091774 lsls r0, r4, 16 lsrs r1, r0, 16 cmp r1, 0x1F bls _0809176A movs r1, 0xC0 lsls r1, 19 adds r1, r5, r1 add r1, r8 mov r0, sp movs r2, 0x40 bl CpuSet add sp, 0x80 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080917C8: .4byte gMonFootprintTable thumb_func_end sub_8091738 thumb_func_start sub_80917CC sub_80917CC: @ 80917CC push {r4,lr} lsls r0, 16 lsls r1, 16 lsrs r1, 16 lsrs r0, 5 ldr r2, _08091808 adds r3, r0, r2 movs r4, 0xF0 lsls r4, 8 adds r2, r1, r4 strh r2, [r3] ldr r2, _0809180C adds r3, r0, r2 adds r4, 0x1 adds r2, r1, r4 strh r2, [r3] ldr r2, _08091810 adds r3, r0, r2 adds r4, 0x1 adds r2, r1, r4 strh r2, [r3] ldr r2, _08091814 adds r0, r2 adds r4, 0x1 adds r1, r4 strh r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08091808: .4byte 0x06000232 _0809180C: .4byte 0x06000234 _08091810: .4byte 0x06000272 _08091814: .4byte 0x06000274 thumb_func_end sub_80917CC thumb_func_start sub_8091818 sub_8091818: @ 8091818 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 lsls r1, 16 lsrs r0, r1, 16 lsls r2, 16 lsrs r2, 16 lsls r3, 16 lsrs r3, 16 cmp r4, 0x1 beq _08091844 cmp r4, 0x1 bgt _0809183A cmp r4, 0 beq _0809184C b _0809186C _0809183A: cmp r5, 0x2 beq _0809185E cmp r5, 0x3 beq _08091852 b _0809186C _08091844: cmp r0, r2 bls _0809186C subs r0, 0x1 b _08091864 _0809184C: cmp r0, r3 bcs _0809186C b _08091862 _08091852: cmp r0, r2 bls _0809185A subs r0, 0x1 b _08091864 _0809185A: adds r0, r3, 0 b _0809186C _0809185E: cmp r0, r3 bcs _0809186A _08091862: adds r0, 0x1 _08091864: lsls r0, 16 lsrs r0, 16 b _0809186C _0809186A: adds r0, r2, 0 _0809186C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8091818 thumb_func_start nullsub_59 nullsub_59: @ 8091874 bx lr thumb_func_end nullsub_59 thumb_func_start sub_8091878 sub_8091878: @ 8091878 push {r4-r7,lr} lsls r1, 24 ldr r4, _080918A0 adds r3, r4, 0 ldr r2, _080918A4 ldm r2!, {r5-r7} stm r3!, {r5-r7} ldm r2!, {r5-r7} stm r3!, {r5-r7} strh r0, [r4, 0x2] ldr r0, _080918A8 lsrs r1, 22 adds r1, r0 ldr r0, [r1] str r0, [r4, 0xC] ldr r0, _080918AC str r0, [r4, 0x8] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080918A0: .4byte 0x02024e8c _080918A4: .4byte gUnknown_083B57A4 _080918A8: .4byte gUnknown_083B5794 _080918AC: .4byte gSpriteAnimTable_81E7C64 thumb_func_end sub_8091878 thumb_func_start sub_80918B0 sub_80918B0: @ 80918B0 push {r4-r7,lr} lsls r1, 24 ldr r4, _080918DC adds r3, r4, 0 ldr r2, _080918E0 ldm r2!, {r5-r7} stm r3!, {r5-r7} ldm r2!, {r5-r7} stm r3!, {r5-r7} strh r0, [r4, 0x2] ldr r0, _080918E4 lsrs r1, 22 adds r1, r0 ldr r0, [r1] str r0, [r4, 0xC] ldr r0, _080918E8 ldr r0, [r0] str r0, [r4, 0x8] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080918DC: .4byte 0x02024e8c _080918E0: .4byte gUnknown_083B57A4 _080918E4: .4byte gUnknown_083B5794 _080918E8: .4byte gUnknown_081EC2A4 thumb_func_end sub_80918B0 thumb_func_start sub_80918EC sub_80918EC: @ 80918EC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 16 lsrs r7, r0, 16 lsls r1, 16 lsrs r1, 16 mov r9, r1 lsls r2, 16 lsrs r2, 16 mov r10, r2 lsls r3, 16 lsrs r3, 16 mov r8, r3 adds r0, r7, 0 bl NationalPokedexNumToSpecies adds r7, r0, 0 cmp r7, SPECIES_UNOWN beq _0809199C movs r0, 0x9A lsls r0, 1 cmp r7, r0 beq _08091958 lsls r6, r7, 3 ldr r0, _0809194C adds r0, r6, r0 ldr r1, _08091950 lsls r2, r7, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08091954 mov r12, r4 mov r5, r8 lsls r4, r5, 2 add r4, r12 ldr r4, [r4] str r4, [sp] str r7, [sp, 0x4] bl DecompressPicFromTable_2 b _080919CE .align 2, 0 _0809194C: .4byte gMonFrontPicTable _08091950: .4byte gMonFrontPicCoords _08091954: .4byte gUnknown_083B5584 _08091958: lsls r6, r7, 3 ldr r0, _0809198C adds r0, r6 ldr r2, _08091990 lsls r1, r7, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08091994 mov r12, r4 mov r5, r8 lsls r4, r5, 2 add r4, r12 ldr r4, [r4] str r4, [sp] str r7, [sp, 0x4] ldr r4, _08091998 ldr r4, [r4, 0x20] str r4, [sp, 0x8] movs r4, 0x1 str r4, [sp, 0xC] bl sub_800D378 b _080919CE .align 2, 0 _0809198C: .4byte gMonFrontPicTable _08091990: .4byte gMonFrontPicCoords _08091994: .4byte gUnknown_083B5584 _08091998: .4byte gSaveBlock2 _0809199C: lsls r6, r7, 3 ldr r0, _08091A30 adds r0, r6 ldr r2, _08091A34 lsls r1, r7, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08091A38 mov r12, r4 mov r5, r8 lsls r4, r5, 2 add r4, r12 ldr r4, [r4] str r4, [sp] str r7, [sp, 0x4] ldr r4, _08091A3C ldr r4, [r4, 0x1C] str r4, [sp, 0x8] movs r4, 0x1 str r4, [sp, 0xC] bl sub_800D378 _080919CE: ldr r0, _08091A40 adds r0, r6, r0 ldr r0, [r0] mov r1, r8 lsls r4, r1, 4 movs r2, 0x80 lsls r2, 1 adds r1, r4, r2 lsls r1, 16 lsrs r1, 16 movs r2, 0x20 bl LoadCompressedPalette mov r3, r8 lsls r1, r3, 24 lsrs r1, 24 mov r0, r8 bl sub_8091878 ldr r0, _08091A44 mov r5, r9 lsls r1, r5, 16 asrs r1, 16 mov r3, r10 lsls r2, r3, 16 asrs r2, 16 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _08091A48 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 ldrb r3, [r2, 0x5] movs r1, 0xF ands r1, r3 orrs r1, r4 strb r1, [r2, 0x5] add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08091A30: .4byte gMonFrontPicTable _08091A34: .4byte gMonFrontPicCoords _08091A38: .4byte gUnknown_083B5584 _08091A3C: .4byte gSaveBlock2 _08091A40: .4byte gMonPaletteTable _08091A44: .4byte 0x02024e8c _08091A48: .4byte 0x02020004 thumb_func_end sub_80918EC thumb_func_start sub_8091A4C sub_8091A4C: @ 8091A4C push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 adds r5, r0, 0 adds r6, r1, 0 mov r8, r2 mov r9, r3 lsls r5, 16 lsrs r5, 16 lsls r6, 16 lsrs r6, 16 mov r0, r8 lsls r0, 16 lsrs r0, 16 mov r8, r0 mov r1, r9 lsls r1, 16 lsrs r1, 16 mov r9, r1 lsls r0, r5, 3 ldr r1, _08091AE4 adds r0, r1 ldr r1, _08091AE8 lsls r2, r5, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08091AEC ldr r4, [r4] str r4, [sp] str r5, [sp, 0x4] bl DecompressPicFromTable_2 adds r0, r5, 0 movs r1, 0 bl sub_80918B0 ldr r0, _08091AF0 lsls r6, 16 asrs r6, 16 mov r3, r8 lsls r3, 16 asrs r3, 16 mov r8, r3 adds r1, r6, 0 mov r2, r8 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _08091AF4 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 mov r1, r9 lsls r1, 4 mov r9, r1 ldrb r3, [r2, 0x5] movs r1, 0xF ands r1, r3 mov r3, r9 orrs r1, r3 strb r1, [r2, 0x5] add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08091AE4: .4byte gTrainerFrontPicTable _08091AE8: .4byte gTrainerFrontPicCoords _08091AEC: .4byte gUnknown_083B5584 _08091AF0: .4byte 0x02024e8c _08091AF4: .4byte 0x02020004 thumb_func_end sub_8091A4C thumb_func_start sub_8091AF8 sub_8091AF8: @ 8091AF8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 ldr r4, [sp, 0x34] ldr r5, [sp, 0x38] lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x4] lsls r4, 24 lsrs r4, 24 str r4, [sp, 0x8] lsls r5, 24 lsrs r5, 24 mov r10, r5 bl sub_808D690 movs r5, 0 movs r6, 0 ldr r4, _08091D08 ldr r3, _08091D0C _08091B32: ldr r2, [r3] lsls r0, r5, 2 adds r1, r2, r0 ldrb r0, [r1, 0x2] lsls r0, 31 cmp r0, 0 beq _08091B4E lsls r0, r6, 2 adds r0, r2, r0 ldr r1, [r1] str r1, [r0] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _08091B4E: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r4 bls _08091B32 ldr r1, _08091D0C ldr r0, [r1] ldr r2, _08091D10 adds r0, r2 adds r1, r6, 0 strh r6, [r0] cmp r7, 0xFF beq _08091C04 movs r5, 0 lsls r0, r1, 16 movs r6, 0 cmp r0, 0 beq _08091BFA lsls r7, 2 ldr r0, _08091D14 adds r0, 0x3 adds r0, r7, r0 str r0, [sp, 0xC] ldr r0, _08091D14 adds r0, r7 mov r9, r0 _08091B82: ldr r1, _08091D0C ldr r0, [r1] lsls r4, r5, 2 adds r0, r4 ldrh r0, [r0] bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r2, r0, 16 ldr r1, _08091D18 movs r0, 0xB muls r0, r2 adds r0, r1 ldrb r2, [r0] adds r3, r2, 0 mov r0, r9 ldrb r0, [r0] cmp r2, r0 bcc _08091BBA mov r1, r9 ldrb r0, [r1] ldr r1, _08091D14 adds r1, 0x1 adds r1, r7, r1 ldrb r1, [r1] adds r0, r1 cmp r2, r0 blt _08091BD2 _08091BBA: ldr r0, _08091D14 adds r0, 0x2 adds r0, r7, r0 ldrb r2, [r0] cmp r3, r2 bcc _08091BE6 ldrb r1, [r0] ldr r2, [sp, 0xC] ldrb r0, [r2] adds r1, r0 cmp r3, r1 bge _08091BE6 _08091BD2: ldr r2, _08091D0C ldr r0, [r2] lsls r1, r6, 2 adds r1, r0, r1 adds r0, r4 ldr r0, [r0] str r0, [r1] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _08091BE6: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldr r1, _08091D0C ldr r0, [r1] ldr r2, _08091D10 adds r0, r2 ldrh r0, [r0] cmp r5, r0 bcc _08091B82 _08091BFA: ldr r1, _08091D0C ldr r0, [r1] ldr r2, _08091D10 adds r0, r2 strh r6, [r0] _08091C04: ldr r0, [sp, 0x4] cmp r0, 0xFF beq _08091C74 movs r5, 0 movs r6, 0 ldr r1, _08091D0C ldr r0, [r1] ldr r2, _08091D10 adds r0, r2 ldrh r0, [r0] cmp r6, r0 bcs _08091C6A adds r7, r1, 0 ldr r0, _08091D1C mov r8, r0 _08091C22: ldr r0, [r7] lsls r4, r5, 2 adds r0, r4 ldrh r0, [r0] bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r2, r0, 16 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 add r0, r8 ldrb r0, [r0, 0x19] lsls r0, 25 lsrs r0, 25 ldr r1, [sp, 0x4] cmp r1, r0 bne _08091C58 ldr r0, [r7] lsls r1, r6, 2 adds r1, r0, r1 adds r0, r4 ldr r0, [r0] str r0, [r1] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _08091C58: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldr r0, [r7] ldr r2, _08091D10 adds r0, r2 ldrh r0, [r0] cmp r5, r0 bcc _08091C22 _08091C6A: ldr r1, _08091D0C ldr r0, [r1] ldr r2, _08091D10 adds r0, r2 strh r6, [r0] _08091C74: ldr r0, [sp, 0x8] cmp r0, 0xFF bne _08091C8A mov r1, r10 cmp r1, 0xFF bne _08091C82 b _08091DA6 _08091C82: mov r2, r10 str r2, [sp, 0x8] movs r0, 0xFF mov r10, r0 _08091C8A: mov r1, r10 cmp r1, 0xFF bne _08091D20 movs r5, 0 movs r6, 0 ldr r2, _08091D0C ldr r0, [r2] ldr r1, _08091D10 adds r0, r1 ldrh r0, [r0] cmp r6, r0 bcs _08091D9C adds r3, r2, 0 mov r7, sp mov r8, r2 _08091CA8: ldr r0, [r3] lsls r4, r5, 2 adds r1, r0, r4 ldrb r0, [r1, 0x2] lsls r0, 30 cmp r0, 0 bge _08091CF2 ldrh r0, [r1] str r3, [sp, 0x10] bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r2, r0, 16 ldr r1, _08091D1C lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x6] strb r1, [r7] ldrb r0, [r0, 0x7] strb r0, [r7, 0x1] ldr r3, [sp, 0x10] ldr r2, [sp, 0x8] cmp r1, r2 beq _08091CE0 cmp r0, r2 bne _08091CF2 _08091CE0: ldr r0, [r3] lsls r1, r6, 2 adds r1, r0, r1 adds r0, r4 ldr r0, [r0] str r0, [r1] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _08091CF2: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 mov r1, r8 ldr r0, [r1] ldr r2, _08091D10 adds r0, r2 ldrh r0, [r0] cmp r5, r0 bcc _08091CA8 b _08091D9C .align 2, 0 _08091D08: .4byte 0x00000181 _08091D0C: .4byte 0x0202ffb4 _08091D10: .4byte 0x0000060c _08091D14: .4byte gUnknown_083B57BC _08091D18: .4byte gSpeciesNames _08091D1C: .4byte gBaseStats _08091D20: movs r5, 0 movs r6, 0 ldr r1, _08091E0C ldr r0, [r1] ldr r2, _08091E10 adds r0, r2 ldrh r0, [r0] cmp r6, r0 bcs _08091D9C mov r7, sp _08091D34: ldr r0, [r1] lsls r1, r5, 2 adds r2, r0, r1 ldrb r0, [r2, 0x2] lsls r0, 30 adds r4, r1, 0 cmp r0, 0 bge _08091D88 ldrh r0, [r2] bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r2, r0, 16 ldr r1, _08091E14 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x6] strb r1, [r7] ldrb r0, [r0, 0x7] strb r0, [r7, 0x1] ldr r2, [sp, 0x8] cmp r1, r2 bne _08091D6A cmp r0, r10 beq _08091D74 _08091D6A: cmp r1, r10 bne _08091D88 ldr r1, [sp, 0x8] cmp r0, r1 bne _08091D88 _08091D74: ldr r2, _08091E0C ldr r0, [r2] lsls r1, r6, 2 adds r1, r0, r1 adds r0, r4 ldr r0, [r0] str r0, [r1] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _08091D88: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldr r1, _08091E0C ldr r0, [r1] ldr r2, _08091E10 adds r0, r2 ldrh r0, [r0] cmp r5, r0 bcc _08091D34 _08091D9C: ldr r1, _08091E0C ldr r0, [r1] ldr r2, _08091E10 adds r0, r2 strh r6, [r0] _08091DA6: ldr r1, _08091E0C ldr r0, [r1] ldr r2, _08091E10 adds r1, r0, r2 ldrh r0, [r1] cmp r0, 0 beq _08091DFA adds r5, r0, 0 ldr r0, _08091E18 cmp r5, r0 bhi _08091DFA ldr r4, _08091E0C movs r1, 0x2 negs r1, r1 mov r10, r1 movs r2, 0x3 negs r2, r2 mov r9, r2 mov r8, r0 ldr r0, _08091E1C adds r7, r0, 0 _08091DD0: ldr r1, [r4] lsls r3, r5, 2 adds r1, r3 ldrh r0, [r1] orrs r0, r7 strh r0, [r1] ldrb r2, [r1, 0x2] mov r0, r10 ands r0, r2 strb r0, [r1, 0x2] ldr r1, [r4] adds r1, r3 ldrb r2, [r1, 0x2] mov r0, r9 ands r0, r2 strb r0, [r1, 0x2] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r8 bls _08091DD0 _08091DFA: adds r0, r6, 0 add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08091E0C: .4byte 0x0202ffb4 _08091E10: .4byte 0x0000060c _08091E14: .4byte gBaseStats _08091E18: .4byte 0x00000181 _08091E1C: .4byte 0x0000ffff thumb_func_end sub_8091AF8 thumb_func_start sub_8091E20 sub_8091E20: @ 8091E20 push {lr} sub sp, 0x8 movs r1, 0x20 str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] movs r1, 0x9 movs r2, 0x78 movs r3, 0xD0 bl sub_8072AB0 add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_8091E20 thumb_func_start sub_8091E3C sub_8091E3C: @ 8091E3C push {lr} ldr r0, _08091E50 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08091E50: .4byte sub_8091E54 thumb_func_end sub_8091E3C thumb_func_start sub_8091E54 sub_8091E54: @ 8091E54 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _08091E78 ldr r2, _08091E7C adds r0, r1, r2 ldrb r0, [r0] adds r3, r1, 0 cmp r0, 0x4 bhi _08091E98 lsls r0, 2 ldr r1, _08091E80 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08091E78: .4byte 0x03001770 _08091E7C: .4byte 0x0000043c _08091E80: .4byte _08091E84 .align 2, 0 _08091E84: .4byte _08091E98 .4byte _08091F50 .4byte _08091FC0 .4byte _08091FE0 .4byte _0809200C _08091E98: ldr r0, _08091F1C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08091EA6 b _08092030 _08091EA6: ldr r0, _08091F20 ldr r0, [r0] ldr r1, _08091F24 adds r0, r1 movs r1, 0x2 strb r1, [r0] movs r0, 0 bl sub_8091060 ldr r0, _08091F28 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _08091F2C ldr r1, _08091F30 bl LZ77UnCompVram ldr r0, _08091F34 movs r1, 0x1 movs r2, 0x7E bl LoadPalette bl sub_806912C cmp r0, 0 bne _08091F10 movs r4, 0 ldr r2, _08091F38 mov r8, r2 ldr r0, _08091F3C mov r12, r0 movs r5, 0x1 ldr r7, _08091F40 ldr r6, _08091F44 _08091EEC: lsls r1, r4, 1 mov r0, r8 adds r2, r1, r0 mov r0, r12 adds r3, r1, r0 ldrh r0, [r3] strh r0, [r2] adds r2, r1, r7 adds r1, r6 ldrh r0, [r1] strh r0, [r2] strh r5, [r3] strh r5, [r1] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x10 bls _08091EEC _08091F10: ldr r0, _08091F48 ldr r1, _08091F4C adds r0, r1 movs r1, 0x1 strb r1, [r0] b _08092030 .align 2, 0 _08091F1C: .4byte 0x0202f388 _08091F20: .4byte 0x0202ffb4 _08091F24: .4byte 0x0000064a _08091F28: .4byte gUnknown_08E87DB0 _08091F2C: .4byte gUnknown_08E96D2C _08091F30: .4byte 0x06007800 _08091F34: .4byte gUnknown_08E882DA _08091F38: .4byte 0x06007a80 _08091F3C: .4byte 0x06007b00 _08091F40: .4byte 0x06007ac0 _08091F44: .4byte 0x06007b40 _08091F48: .4byte 0x03001770 _08091F4C: .4byte 0x0000043c _08091F50: ldr r4, _08091FA8 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C ldr r0, _08091FAC bl LoadCompressedObjectPic ldr r0, _08091FB0 bl LoadSpritePalettes adds r0, r5, 0 bl sub_809308C movs r4, 0 lsls r0, r5, 2 adds r0, r5 lsls r1, r0, 3 ldr r3, _08091FB4 movs r2, 0 _08091F7C: lsls r0, r4, 1 adds r0, r1 adds r0, r3 strh r2, [r0] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xF bls _08091F7C adds r0, r5, 0 bl sub_8092EB0 movs r0, 0 bl sub_8092AB0 adds r0, r5, 0 bl sub_8092B68 ldr r1, _08091FB8 ldr r2, _08091FBC adds r1, r2 b _08091FF6 .align 2, 0 _08091FA8: .4byte gWindowConfig_81E7064 _08091FAC: .4byte gUnknown_083A05CC _08091FB0: .4byte gUnknown_083A05DC _08091FB4: .4byte 0x03004b28 _08091FB8: .4byte 0x03001770 _08091FBC: .4byte 0x0000043c _08091FC0: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _08091FD8 ldr r0, _08091FDC adds r1, r0 b _08091FF6 .align 2, 0 _08091FD8: .4byte 0x03001770 _08091FDC: .4byte 0x0000043c _08091FE0: ldr r1, _08092000 ldr r2, _08092004 adds r0, r2, 0 strh r0, [r1] subs r1, 0xE movs r2, 0xE2 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _08092008 adds r1, r3, r0 _08091FF6: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08092030 .align 2, 0 _08092000: .4byte REG_BG3CNT _08092004: .4byte 0x00000f03 _08092008: .4byte 0x0000043c _0809200C: ldr r0, _0809203C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _08092030 ldr r1, _08092040 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _08092044 str r1, [r0] ldr r1, _08092048 adds r0, r3, r1 strb r2, [r0] _08092030: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809203C: .4byte 0x0202f388 _08092040: .4byte 0x03004b20 _08092044: .4byte sub_809204C _08092048: .4byte 0x0000043c thumb_func_end sub_8091E54 thumb_func_start sub_809204C sub_809204C: @ 809204C push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, _08092074 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 ldrb r0, [r4, 0x8] bl sub_8092AB0 adds r0, r5, 0 bl sub_8092B68 ldr r0, _08092078 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08092074: .4byte 0x03004b20 _08092078: .4byte sub_809207C thumb_func_end sub_809204C thumb_func_start sub_809207C sub_809207C: @ 809207C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080920A4 ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080920B0 movs r0, 0x3 bl audio_play ldr r0, _080920A8 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _080920AC str r0, [r1] b _0809216C .align 2, 0 _080920A4: .4byte 0x03001770 _080920A8: .4byte 0x03004b20 _080920AC: .4byte sub_80927B8 _080920B0: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809210C ldr r1, _080920D4 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r5, r0, r1 movs r0, 0x8 ldrsh r4, [r5, r0] cmp r4, 0x1 beq _080920E8 cmp r4, 0x1 bgt _080920D8 cmp r4, 0 beq _080920DE b _0809216C .align 2, 0 _080920D4: .4byte 0x03004b20 _080920D8: cmp r4, 0x2 beq _080920FC b _0809216C _080920DE: movs r0, 0x15 bl audio_play strh r4, [r5, 0xA] b _080920F2 _080920E8: movs r0, 0x15 bl audio_play movs r0, 0x4 strh r0, [r5, 0xA] _080920F2: ldr r0, _080920F8 str r0, [r5] b _0809216C .align 2, 0 _080920F8: .4byte sub_809217C _080920FC: movs r0, 0x3 bl audio_play ldr r0, _08092108 str r0, [r5] b _0809216C .align 2, 0 _08092108: .4byte sub_80927B8 _0809210C: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0809213A ldr r0, _08092174 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r4, r1, r0 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 ble _0809213A movs r0, 0x6D bl audio_play ldrh r0, [r4, 0x8] subs r0, 0x1 strh r0, [r4, 0x8] lsls r0, 24 lsrs r0, 24 bl sub_8092AB0 _0809213A: ldr r0, _08092178 ldrh r1, [r0, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0809216C ldr r0, _08092174 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r4, r1, r0 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 bgt _0809216C movs r0, 0x6D bl audio_play ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] lsls r0, 24 lsrs r0, 24 bl sub_8092AB0 _0809216C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08092174: .4byte 0x03004b20 _08092178: .4byte 0x03001770 thumb_func_end sub_809207C thumb_func_start sub_809217C sub_809217C: @ 809217C push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, _080921A8 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 ldrb r0, [r4, 0x8] ldrb r1, [r4, 0xA] bl sub_8092AD4 adds r0, r5, 0 bl sub_8092B68 ldr r0, _080921AC str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080921A8: .4byte 0x03004b20 _080921AC: .4byte sub_80921B0 thumb_func_end sub_809217C thumb_func_start sub_80921B0 sub_80921B0: @ 80921B0 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080921D8 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0 beq _080921E4 bl sub_806912C ldr r6, _080921DC cmp r0, 0 bne _080921F0 ldr r6, _080921E0 b _080921F0 .align 2, 0 _080921D8: .4byte 0x03004b20 _080921DC: .4byte gUnknown_083B586C _080921E0: .4byte gUnknown_083B58A4 _080921E4: bl sub_806912C ldr r6, _0809221C cmp r0, 0 bne _080921F0 ldr r6, _08092220 _080921F0: ldr r0, _08092224 ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _08092230 movs r0, 0x17 bl audio_play adds r0, r5, 0 bl sub_8092EB0 ldr r0, _08092228 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _0809222C str r0, [r1] b _080923EC .align 2, 0 _0809221C: .4byte gUnknown_083B5850 _08092220: .4byte gUnknown_083B5888 _08092224: .4byte 0x03001770 _08092228: .4byte 0x03004b20 _0809222C: .4byte sub_809204C _08092230: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08092300 ldr r0, _080922B4 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r6, r1, r0 movs r2, 0xA ldrsh r0, [r6, r2] cmp r0, 0x6 bne _080922F0 movs r1, 0x8 ldrsh r0, [r6, r1] cmp r0, 0 beq _080922D4 ldr r1, _080922B8 movs r0, 0x40 strb r0, [r1] ldr r7, _080922BC ldr r1, [r7] ldr r0, _080922C0 adds r2, r1, r0 movs r0, 0x40 strh r0, [r2] ldr r0, _080922C4 strh r3, [r0] movs r2, 0xC2 lsls r2, 3 adds r1, r2 strh r3, [r1] adds r0, r5, 0 movs r1, 0x5 bl sub_8092E10 ldr r4, _080922C8 strb r0, [r4, 0x19] bl sub_806912C cmp r0, 0 bne _08092288 movs r0, 0 strb r0, [r4, 0x19] _08092288: ldr r0, [r7] ldrb r1, [r4, 0x19] ldr r2, _080922CC adds r0, r2 strh r1, [r0] adds r0, r5, 0 movs r1, 0x4 bl sub_8092E10 strb r0, [r4, 0x18] ldr r0, [r7] ldrb r1, [r4, 0x18] movs r2, 0xC3 lsls r2, 3 adds r0, r2 strh r1, [r0] movs r0, 0x3 bl audio_play ldr r0, _080922D0 str r0, [r6] b _080923EC .align 2, 0 _080922B4: .4byte 0x03004b20 _080922B8: .4byte 0x0202ffba _080922BC: .4byte 0x0202ffb4 _080922C0: .4byte 0x0000062a _080922C4: .4byte 0x0202ffb8 _080922C8: .4byte gSaveBlock2 _080922CC: .4byte 0x00000614 _080922D0: .4byte sub_80927B8 _080922D4: ldr r0, _080922E8 bl sub_8091E20 ldr r0, _080922EC str r0, [r6] movs r0, 0x70 bl audio_play b _080923EC .align 2, 0 _080922E8: .4byte gUnknown_0840E067 _080922EC: .4byte sub_80923FC _080922F0: movs r0, 0x15 bl audio_play ldr r0, _080922FC str r0, [r6] b _080923EC .align 2, 0 _080922FC: .4byte sub_80925CC _08092300: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08092338 ldr r1, _080923F4 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r6 ldrb r0, [r0] cmp r0, 0xFF beq _08092338 movs r0, 0x5 bl audio_play movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r6 ldrb r1, [r0] strh r1, [r4, 0xA] ldrb r0, [r4, 0x8] bl sub_8092AD4 _08092338: ldr r0, _080923F8 ldrh r1, [r0, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08092374 ldr r1, _080923F4 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r6 ldrb r0, [r0, 0x1] cmp r0, 0xFF beq _08092374 movs r0, 0x5 bl audio_play movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r6 ldrb r1, [r0, 0x1] strh r1, [r4, 0xA] ldrb r0, [r4, 0x8] bl sub_8092AD4 _08092374: ldr r0, _080923F8 ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080923B0 ldr r1, _080923F4 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r6 ldrb r0, [r0, 0x2] cmp r0, 0xFF beq _080923B0 movs r0, 0x5 bl audio_play movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r6 ldrb r1, [r0, 0x2] strh r1, [r4, 0xA] ldrb r0, [r4, 0x8] bl sub_8092AD4 _080923B0: ldr r0, _080923F8 ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080923EC ldr r1, _080923F4 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r6 ldrb r0, [r0, 0x3] cmp r0, 0xFF beq _080923EC movs r0, 0x5 bl audio_play movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r6 ldrb r1, [r0, 0x3] strh r1, [r4, 0xA] ldrb r0, [r4, 0x8] bl sub_8092AD4 _080923EC: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080923F4: .4byte 0x03004b20 _080923F8: .4byte 0x03001770 thumb_func_end sub_80921B0 thumb_func_start sub_80923FC sub_80923FC: @ 80923FC push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x8 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r5, 0 movs r1, 0x5 bl sub_8092E10 mov r10, r0 mov r0, r10 lsls r0, 24 lsrs r0, 24 mov r10, r0 adds r0, r5, 0 movs r1, 0x4 bl sub_8092E10 mov r9, r0 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 adds r0, r5, 0 movs r1, 0 bl sub_8092E10 mov r8, r0 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 adds r0, r5, 0 movs r1, 0x1 bl sub_8092E10 adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 adds r0, r5, 0 movs r1, 0x2 bl sub_8092E10 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x3 bl sub_8092E10 lsls r0, 24 lsrs r0, 24 str r4, [sp] str r0, [sp, 0x4] mov r0, r10 mov r1, r9 mov r2, r8 adds r3, r6, 0 bl sub_8091AF8 ldr r1, _0809249C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080924A0 str r1, [r0] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809249C: .4byte 0x03004b20 _080924A0: .4byte sub_80924A4 thumb_func_end sub_80923FC thumb_func_start sub_80924A4 sub_80924A4: @ 80924A4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 bne _080924F6 ldr r0, _080924D0 ldr r0, [r0] ldr r1, _080924D4 adds r0, r1 ldrh r0, [r0] cmp r0, 0 beq _080924DC movs r0, 0x1F bl audio_play ldr r0, _080924D8 bl sub_8091E20 b _080924E8 .align 2, 0 _080924D0: .4byte 0x0202ffb4 _080924D4: .4byte 0x0000060c _080924D8: .4byte gUnknown_0840E081 _080924DC: movs r0, 0x20 bl audio_play ldr r0, _080924FC bl sub_8091E20 _080924E8: ldr r0, _08092500 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08092504 str r0, [r1] _080924F6: pop {r4} pop {r0} bx r0 .align 2, 0 _080924FC: .4byte gUnknown_0840E093 _08092500: .4byte 0x03004b20 _08092504: .4byte sub_8092508 thumb_func_end sub_80924A4 thumb_func_start sub_8092508 sub_8092508: @ 8092508 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r2, r4, 0 ldr r0, _08092570 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080925A4 ldr r5, _08092574 ldr r1, [r5] ldr r3, _08092578 adds r0, r1, r3 ldrh r0, [r0] cmp r0, 0 beq _08092590 ldr r0, _0809257C adds r1, r0 movs r0, 0x1 strb r0, [r1] adds r0, r4, 0 movs r1, 0x5 bl sub_8092E10 ldr r1, [r5] lsls r0, 24 lsrs r0, 24 ldr r2, _08092580 adds r1, r2 strh r0, [r1] adds r0, r4, 0 movs r1, 0x4 bl sub_8092E10 ldr r1, [r5] lsls r0, 24 lsrs r0, 24 ldr r3, _08092584 adds r1, r3 strh r0, [r1] ldr r1, _08092588 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0809258C str r1, [r0] movs r0, 0x3 bl audio_play b _080925A4 .align 2, 0 _08092570: .4byte 0x03001770 _08092574: .4byte 0x0202ffb4 _08092578: .4byte 0x0000060c _0809257C: .4byte 0x0000064f _08092580: .4byte 0x00000612 _08092584: .4byte 0x00000616 _08092588: .4byte 0x03004b20 _0809258C: .4byte sub_80927B8 _08092590: ldr r0, _080925AC lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _080925B0 str r0, [r1] movs r0, 0x17 bl audio_play _080925A4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080925AC: .4byte 0x03004b20 _080925B0: .4byte sub_809217C thumb_func_end sub_8092508 thumb_func_start sub_80925B4 sub_80925B4: @ 80925B4 push {lr} adds r1, r0, 0 lsls r1, 16 lsrs r1, 15 adds r1, 0x1 lsls r1, 27 lsrs r1, 24 movs r0, 0x90 bl sub_814AD7C pop {r0} bx r0 thumb_func_end sub_80925B4 thumb_func_start sub_80925CC sub_80925CC: @ 80925CC push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl sub_8092C8C ldr r2, _08092630 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r6, r1, r2 ldrb r0, [r6, 0xA] adds r2, 0x8 adds r1, r2 ldr r2, _08092634 lsls r0, 3 adds r0, r2 ldrb r5, [r0, 0x4] lsls r5, 1 adds r5, r1, r5 ldrb r0, [r0, 0x5] lsls r0, 1 adds r1, r0 ldrh r0, [r5] strh r0, [r6, 0x24] ldrh r0, [r1] strh r0, [r6, 0x26] adds r0, r4, 0 bl sub_8092D78 ldr r1, _08092638 ldr r3, _0809263C movs r0, 0xB str r0, [sp] movs r0, 0x10 movs r2, 0xC bl sub_814AC58 ldrh r0, [r5] movs r1, 0x1 bl sub_80925B4 ldr r0, _08092640 str r0, [r6] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08092630: .4byte 0x03004b20 _08092634: .4byte gUnknown_083B5A7C _08092638: .4byte 0x0000ffff _0809263C: .4byte 0x00002d9f _08092640: .4byte sub_8092644 thumb_func_end sub_80925CC thumb_func_start sub_8092644 sub_8092644: @ 8092644 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 ldr r3, _080926A8 lsls r2, r7, 2 adds r2, r7 lsls r2, 3 adds r6, r2, r3 ldrb r1, [r6, 0xA] ldr r0, _080926AC lsls r1, 3 adds r1, r0 ldr r0, [r1] mov r8, r0 adds r3, 0x8 adds r2, r3 ldrb r0, [r1, 0x4] lsls r0, 1 adds r4, r2, r0 ldrb r0, [r1, 0x5] lsls r0, 1 adds r5, r2, r0 ldrh r0, [r1, 0x6] subs r0, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldr r0, _080926B0 mov r12, r0 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080926B4 bl sub_814ADC8 movs r0, 0x15 bl audio_play movs r0, 0x12 movs r1, 0x1 movs r2, 0x1C movs r3, 0xC bl Reset movs r0, 0x1 bl sub_8092C8C b _080926E0 .align 2, 0 _080926A8: .4byte 0x03004b20 _080926AC: .4byte gUnknown_083B5A7C _080926B0: .4byte 0x03001770 _080926B4: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080926EC bl sub_814ADC8 movs r0, 0x17 bl audio_play movs r0, 0x12 movs r1, 0x1 movs r2, 0x1C movs r3, 0xC bl Reset movs r0, 0x1 bl sub_8092C8C ldrh r0, [r6, 0x24] strh r0, [r4] ldrh r0, [r6, 0x26] strh r0, [r5] _080926E0: ldr r0, _080926E8 str r0, [r6] b _080927AE .align 2, 0 _080926E8: .4byte sub_809217C _080926EC: movs r3, 0 mov r0, r12 ldrh r1, [r0, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0809274C ldrh r0, [r4] cmp r0, 0 beq _08092716 movs r1, 0 bl sub_80925B4 ldrh r0, [r4] subs r0, 0x1 strh r0, [r4] ldrh r0, [r4] movs r1, 0x1 bl sub_80925B4 b _08092734 _08092716: ldrh r0, [r5] cmp r0, 0 beq _08092730 subs r0, 0x1 strh r0, [r5] adds r0, r7, 0 bl sub_8092D78 ldrh r0, [r4] movs r1, 0x1 bl sub_80925B4 movs r3, 0x1 _08092730: cmp r3, 0 beq _080927AE _08092734: movs r0, 0x5 bl audio_play ldrh r0, [r4] ldrh r1, [r5] adds r0, r1 lsls r0, 3 add r0, r8 ldr r0, [r0] bl sub_8091E20 b _080927AE _0809274C: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080927AE ldrh r0, [r4] cmp r0, 0x4 bhi _08092774 cmp r0, r2 bcs _08092774 movs r1, 0 bl sub_80925B4 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] ldrh r0, [r4] movs r1, 0x1 bl sub_80925B4 b _08092798 _08092774: cmp r2, 0x5 bls _08092794 ldrh r1, [r5] subs r0, r2, 0x5 cmp r1, r0 bge _08092794 adds r0, r1, 0x1 strh r0, [r5] adds r0, r7, 0 bl sub_8092D78 movs r0, 0x5 movs r1, 0x1 bl sub_80925B4 movs r3, 0x1 _08092794: cmp r3, 0 beq _080927AE _08092798: movs r0, 0x5 bl audio_play ldrh r0, [r4] ldrh r1, [r5] adds r0, r1 lsls r0, 3 add r0, r8 ldr r0, [r0] bl sub_8091E20 _080927AE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8092644 thumb_func_start sub_80927B8 sub_80927B8: @ 80927B8 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, _080927E8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080927EC str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080927E8: .4byte 0x03004b20 _080927EC: .4byte sub_80927F0 thumb_func_end sub_80927B8 thumb_func_start sub_80927F0 sub_80927F0: @ 80927F0 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0809280C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08092808 adds r0, r2, 0 bl DestroyTask _08092808: pop {r0} bx r0 .align 2, 0 _0809280C: .4byte 0x0202f388 thumb_func_end sub_80927F0 thumb_func_start sub_8092810 sub_8092810: @ 8092810 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 mov r12, r1 lsls r2, 24 lsrs r1, r2, 24 lsls r3, 24 lsrs r5, r3, 8 movs r3, 0 cmp r5, 0 beq _0809285A lsls r7, r1, 6 ldr r6, _08092860 lsls r4, r0, 12 _08092830: mov r0, r12 adds r1, r0, r3 lsls r1, 1 adds r1, r7, r1 ldr r0, _08092864 adds r2, r1, r0 ldrh r0, [r2] ands r0, r6 orrs r0, r4 strh r0, [r2] ldr r0, _08092868 adds r1, r0 ldrh r0, [r1] ands r0, r6 orrs r0, r4 strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r0, r5 bcc _08092830 _0809285A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08092860: .4byte 0x00000fff _08092864: .4byte 0x06007800 _08092868: .4byte 0x06007840 thumb_func_end sub_8092810 thumb_func_start sub_809286C sub_809286C: @ 809286C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r2, 24 movs r0, 0x1 ands r5, r0 ands r2, r0 lsls r2, 1 orrs r5, r2 cmp r4, 0xA bhi _08092958 lsls r0, r4, 2 ldr r1, _08092894 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08092894: .4byte _08092898 .align 2, 0 _08092898: .4byte _080928C4 .4byte _080928C4 .4byte _080928C4 .4byte _080928D4 .4byte _080928D4 .4byte _080928EC .4byte _080928EC .4byte _080928D4 .4byte _080928D4 .4byte _08092914 .4byte _08092904 _080928C4: ldr r1, _080928D0 lsls r0, r4, 3 adds r0, r1 ldrb r1, [r0, 0x4] ldrb r2, [r0, 0x5] b _08092932 .align 2, 0 _080928D0: .4byte gUnknown_083B57E4 _080928D4: ldr r2, _08092900 subs r1, r4, 0x3 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x4] ldrb r2, [r0, 0x5] ldrb r3, [r0, 0x6] adds r0, r5, 0 bl sub_8092810 _080928EC: ldr r2, _08092900 subs r1, r4, 0x3 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x7] ldrb r2, [r0, 0x8] ldrb r3, [r0, 0x9] b _08092934 .align 2, 0 _08092900: .4byte gUnknown_083B57FC _08092904: ldr r0, _08092910 ldrb r1, [r0, 0x1C] ldrb r2, [r0, 0x1D] ldrb r3, [r0, 0x1E] b _08092934 .align 2, 0 _08092910: .4byte gUnknown_083B57FC _08092914: bl sub_806912C cmp r0, 0 bne _08092940 ldr r2, _0809293C subs r1, r4, 0x3 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x4] ldrb r2, [r0, 0x5] subs r2, 0x2 lsls r2, 24 lsrs r2, 24 _08092932: ldrb r3, [r0, 0x6] _08092934: adds r0, r5, 0 bl sub_8092810 b _08092958 .align 2, 0 _0809293C: .4byte gUnknown_083B57FC _08092940: ldr r2, _08092960 subs r1, r4, 0x3 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x4] ldrb r2, [r0, 0x5] ldrb r3, [r0, 0x6] adds r0, r5, 0 bl sub_8092810 _08092958: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08092960: .4byte gUnknown_083B57FC thumb_func_end sub_809286C thumb_func_start sub_8092964 sub_8092964: @ 8092964 push {lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x1 beq _080929CE cmp r0, 0x1 bgt _0809297A cmp r0, 0 beq _08092980 b _08092AAC _0809297A: cmp r1, 0x2 beq _08092A3E b _08092AAC _08092980: movs r0, 0 movs r1, 0 movs r2, 0 bl sub_809286C movs r0, 0x1 movs r1, 0x1 movs r2, 0 bl sub_809286C movs r0, 0x2 movs r1, 0x1 movs r2, 0 bl sub_809286C movs r0, 0x3 movs r1, 0x1 movs r2, 0 bl sub_809286C movs r0, 0x4 movs r1, 0x1 movs r2, 0 bl sub_809286C movs r0, 0xA movs r1, 0x1 movs r2, 0 bl sub_809286C movs r0, 0x5 movs r1, 0x1 movs r2, 0 bl sub_809286C movs r0, 0x6 movs r1, 0x1 movs r2, 0 b _08092A1A _080929CE: movs r0, 0 movs r1, 0x1 movs r2, 0 bl sub_809286C movs r0, 0x1 movs r1, 0 movs r2, 0 bl sub_809286C movs r0, 0x2 movs r1, 0x1 movs r2, 0 bl sub_809286C movs r0, 0x3 movs r1, 0x1 movs r2, 0x1 bl sub_809286C movs r0, 0x4 movs r1, 0x1 movs r2, 0x1 bl sub_809286C movs r0, 0xA movs r1, 0x1 movs r2, 0x1 bl sub_809286C movs r0, 0x5 movs r1, 0x1 movs r2, 0x1 bl sub_809286C movs r0, 0x6 movs r1, 0x1 movs r2, 0x1 _08092A1A: bl sub_809286C movs r0, 0x7 movs r1, 0x1 movs r2, 0 bl sub_809286C movs r0, 0x8 movs r1, 0x1 movs r2, 0 bl sub_809286C movs r0, 0x9 movs r1, 0x1 movs r2, 0 bl sub_809286C b _08092AAC _08092A3E: movs r0, 0 movs r1, 0x1 movs r2, 0 bl sub_809286C movs r0, 0x1 movs r1, 0x1 movs r2, 0 bl sub_809286C movs r0, 0x2 movs r1, 0 movs r2, 0 bl sub_809286C movs r0, 0x3 movs r1, 0x1 movs r2, 0x1 bl sub_809286C movs r0, 0x4 movs r1, 0x1 movs r2, 0x1 bl sub_809286C movs r0, 0xA movs r1, 0x1 movs r2, 0x1 bl sub_809286C movs r0, 0x5 movs r1, 0x1 movs r2, 0x1 bl sub_809286C movs r0, 0x6 movs r1, 0x1 movs r2, 0x1 bl sub_809286C movs r0, 0x7 movs r1, 0x1 movs r2, 0x1 bl sub_809286C movs r0, 0x8 movs r1, 0x1 movs r2, 0x1 bl sub_809286C movs r0, 0x9 movs r1, 0x1 movs r2, 0x1 bl sub_809286C _08092AAC: pop {r0} bx r0 thumb_func_end sub_8092964 thumb_func_start sub_8092AB0 sub_8092AB0: @ 8092AB0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_8092964 ldr r0, _08092AD0 lsls r4, 3 adds r4, r0 ldr r0, [r4] bl sub_8091E20 pop {r4} pop {r0} bx r0 .align 2, 0 _08092AD0: .4byte gUnknown_083B57E4 thumb_func_end sub_8092AB0 thumb_func_start sub_8092AD4 sub_8092AD4: @ 8092AD4 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r4, r1, 24 bl sub_8092964 cmp r4, 0x6 bhi _08092B4E lsls r0, r4, 2 ldr r1, _08092AF0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08092AF0: .4byte _08092AF4 .align 2, 0 _08092AF4: .4byte _08092B10 .4byte _08092B14 .4byte _08092B18 .4byte _08092B26 .4byte _08092B34 .4byte _08092B38 .4byte _08092B44 _08092B10: movs r0, 0x3 b _08092B3A _08092B14: movs r0, 0x4 b _08092B3A _08092B18: movs r0, 0xA movs r1, 0 movs r2, 0 bl sub_809286C movs r0, 0x5 b _08092B3A _08092B26: movs r0, 0xA movs r1, 0 movs r2, 0 bl sub_809286C movs r0, 0x6 b _08092B3A _08092B34: movs r0, 0x7 b _08092B3A _08092B38: movs r0, 0x8 _08092B3A: movs r1, 0 movs r2, 0 bl sub_809286C b _08092B4E _08092B44: movs r0, 0x9 movs r1, 0 movs r2, 0 bl sub_809286C _08092B4E: ldr r0, _08092B64 lsls r1, r4, 1 adds r1, r4 lsls r1, 2 adds r1, r0 ldr r0, [r1] bl sub_8091E20 pop {r4} pop {r0} bx r0 .align 2, 0 _08092B64: .4byte gUnknown_083B57FC thumb_func_end sub_8092AD4 thumb_func_start sub_8092B68 sub_8092B68: @ 8092B68 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 ldr r2, _08092C68 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r6, r1, r2 ldrh r0, [r6, 0x16] ldrh r1, [r6, 0x14] adds r0, r1 lsls r0, 16 ldr r7, _08092C6C ldr r1, _08092C70 lsrs r0, 13 adds r1, 0x4 adds r0, r1 ldr r1, [r0] adds r0, r7, 0 bl StringCopy ldr r0, _08092C74 mov r8, r0 movs r1, 0x2D movs r2, 0x10 movs r3, 0x1 bl sub_80729D8 ldrh r0, [r6, 0x1A] ldrh r1, [r6, 0x18] adds r0, r1 lsls r0, 16 ldr r1, _08092C78 lsrs r0, 13 adds r1, 0x4 adds r0, r1 ldr r1, [r0] adds r0, r7, 0 bl StringCopy mov r0, r8 movs r1, 0x2D movs r2, 0x20 movs r3, 0x1 bl sub_80729D8 ldrh r0, [r6, 0x1E] ldrh r1, [r6, 0x1C] adds r0, r1 lsls r0, 16 ldr r4, _08092C7C lsrs r0, 13 adds r4, 0x4 adds r0, r4 ldr r1, [r0] adds r0, r7, 0 bl StringCopy ldr r5, _08092C80 adds r0, r5, 0 movs r1, 0x2D movs r2, 0x30 movs r3, 0x1 bl sub_80729D8 ldrh r0, [r6, 0x22] ldrh r1, [r6, 0x20] adds r0, r1 lsls r0, 16 lsrs r0, 13 adds r0, r4 ldr r1, [r0] adds r0, r7, 0 bl StringCopy adds r0, r5, 0 movs r1, 0x5D movs r2, 0x30 movs r3, 0x1 bl sub_80729D8 ldrh r0, [r6, 0x12] ldrh r1, [r6, 0x10] adds r0, r1 lsls r0, 16 ldr r1, _08092C84 lsrs r0, 13 adds r1, 0x4 adds r0, r1 ldr r1, [r0] adds r0, r7, 0 bl StringCopy mov r0, r8 movs r1, 0x2D movs r2, 0x40 movs r3, 0x1 bl sub_80729D8 bl sub_806912C cmp r0, 0 beq _08092C5E ldrh r0, [r6, 0xE] ldrh r6, [r6, 0xC] adds r0, r6 lsls r0, 16 ldr r1, _08092C88 lsrs r0, 13 adds r1, 0x4 adds r0, r1 ldr r1, [r0] adds r0, r7, 0 bl StringCopy mov r0, r8 movs r1, 0x2D movs r2, 0x50 movs r3, 0x1 bl sub_80729D8 _08092C5E: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08092C68: .4byte 0x03004b20 _08092C6C: .4byte 0x020231cc _08092C70: .4byte gUnknown_083B5910 _08092C74: .4byte gUnknown_083B5AB2 _08092C78: .4byte gUnknown_083B5968 _08092C7C: .4byte gUnknown_083B59C8 _08092C80: .4byte gUnknown_083B5AAC _08092C84: .4byte gUnknown_083B58D8 _08092C88: .4byte gUnknown_083B58C0 thumb_func_end sub_8092B68 thumb_func_start sub_8092C8C sub_8092C8C: @ 8092C8C push {r4-r6,lr} lsls r0, 24 cmp r0, 0 bne _08092D48 ldr r1, _08092D1C ldr r2, _08092D20 adds r0, r2, 0 strh r0, [r1] movs r1, 0x12 ldr r3, _08092D24 ldr r4, _08092D28 adds r2, r4, 0 _08092CA4: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x1C bls _08092CA4 ldr r1, _08092D2C ldr r2, _08092D30 adds r0, r2, 0 strh r0, [r1] movs r3, 0x1 ldr r6, _08092D24 movs r5, 0x2 _08092CC2: lsls r2, r3, 6 ldr r4, _08092D1C adds r1, r2, r4 ldr r4, _08092D34 adds r0, r4, 0 strh r0, [r1] movs r1, 0x12 adds r4, r3, 0x1 adds r3, r2, 0 _08092CD4: lsls r0, r1, 1 adds r0, r3, r0 adds r0, r6 strh r5, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x1C bls _08092CD4 ldr r1, _08092D2C adds r0, r2, r1 movs r1, 0xA strh r1, [r0] lsls r0, r4, 16 lsrs r3, r0, 16 cmp r3, 0xC bls _08092CC2 ldr r1, _08092D38 ldr r2, _08092D3C adds r0, r2, 0 strh r0, [r1] movs r1, 0x12 ldr r3, _08092D40 movs r2, 0xD _08092D04: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x1C bls _08092D04 ldr r1, _08092D44 movs r0, 0xB strh r0, [r1] b _08092D6E .align 2, 0 _08092D1C: .4byte 0x06007822 _08092D20: .4byte 0x00000c0b _08092D24: .4byte 0x06007800 _08092D28: .4byte 0x0000080d _08092D2C: .4byte 0x0600783a _08092D30: .4byte 0x0000080b _08092D34: .4byte 0x0000040a _08092D38: .4byte 0x06007b62 _08092D3C: .4byte 0x0000040b _08092D40: .4byte 0x06007b40 _08092D44: .4byte 0x06007b7a _08092D48: movs r3, 0 ldr r6, _08092D74 movs r5, 0x4F _08092D4E: movs r1, 0x11 adds r4, r3, 0x1 lsls r2, r3, 6 _08092D54: lsls r0, r1, 1 adds r0, r2, r0 adds r0, r6 strh r5, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x1D bls _08092D54 lsls r0, r4, 16 lsrs r3, r0, 16 cmp r3, 0xD bls _08092D4E _08092D6E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08092D74: .4byte 0x06007800 thumb_func_end sub_8092C8C thumb_func_start sub_8092D78 sub_8092D78: @ 8092D78 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 ldr r4, _08092DBC ldr r3, _08092DC0 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r0, r2, r3 movs r5, 0xA ldrsh r1, [r0, r5] lsls r1, 3 adds r1, r4 ldr r6, [r1] adds r3, 0x8 adds r2, r3 ldrb r0, [r1, 0x4] lsls r0, 1 adds r0, r2 mov r8, r0 ldrb r0, [r1, 0x5] lsls r0, 1 adds r7, r2, r0 movs r0, 0x12 movs r1, 0x1 movs r2, 0x1C movs r3, 0xC bl Reset movs r5, 0 ldrh r4, [r7] b _08092DE8 .align 2, 0 _08092DBC: .4byte gUnknown_083B5A7C _08092DC0: .4byte 0x03004b20 _08092DC4: lsls r0, r4, 3 adds r0, r6 ldr r0, [r0, 0x4] lsls r2, r5, 1 adds r2, 0x1 lsls r2, 24 lsrs r2, 24 movs r1, 0x12 bl Print adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r5, 0x5 bhi _08092DF2 _08092DE8: lsls r0, r4, 3 adds r0, r6 ldr r0, [r0, 0x4] cmp r0, 0 bne _08092DC4 _08092DF2: mov r1, r8 ldrh r0, [r1] ldrh r1, [r7] adds r0, r1 lsls r0, 3 adds r0, r6 ldr r0, [r0] bl sub_8091E20 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8092D78 thumb_func_start sub_8092E10 sub_8092E10: @ 8092E10 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r3, r1, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08092E50 adds r1, r0 ldr r2, _08092E54 lsls r0, r3, 3 adds r0, r2 ldrb r2, [r0, 0x4] lsls r2, 1 adds r2, r1, r2 ldrb r0, [r0, 0x5] lsls r0, 1 adds r1, r0 ldrh r0, [r1] ldrh r2, [r2] adds r0, r2 lsls r0, 16 lsrs r2, r0, 16 cmp r3, 0x5 bhi _08092E74 lsls r0, r3, 2 ldr r1, _08092E58 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08092E50: .4byte 0x03004b28 _08092E54: .4byte gUnknown_083B5A7C _08092E58: .4byte _08092E5C .align 2, 0 _08092E5C: .4byte _08092E88 .4byte _08092E92 .4byte _08092EA2 .4byte _08092EA2 .4byte _08092E80 .4byte _08092E78 _08092E74: movs r0, 0 b _08092EA8 _08092E78: ldr r0, _08092E7C b _08092EA4 .align 2, 0 _08092E7C: .4byte gUnknown_083B5A60 _08092E80: ldr r0, _08092E84 b _08092EA4 .align 2, 0 _08092E84: .4byte gUnknown_083B5A62 _08092E88: cmp r2, 0 beq _08092E96 lsls r0, r2, 24 lsrs r0, 24 b _08092EA8 _08092E92: cmp r2, 0 bne _08092E9A _08092E96: movs r0, 0xFF b _08092EA8 _08092E9A: subs r0, r2, 0x1 lsls r0, 24 lsrs r0, 24 b _08092EA8 _08092EA2: ldr r0, _08092EAC _08092EA4: adds r0, r2, r0 ldrb r0, [r0] _08092EA8: pop {r1} bx r1 .align 2, 0 _08092EAC: .4byte gUnknown_083B5A68 thumb_func_end sub_8092E10 thumb_func_start sub_8092EB0 sub_8092EB0: @ 8092EB0 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08092ED0 ldr r0, [r1] ldr r2, _08092ED4 adds r0, r2 ldrh r0, [r0] adds r5, r1, 0 cmp r0, 0 beq _08092ECA cmp r0, 0x1 beq _08092ED8 _08092ECA: movs r3, 0 b _08092EDA .align 2, 0 _08092ED0: .4byte 0x0202ffb4 _08092ED4: .4byte 0x00000614 _08092ED8: movs r3, 0x1 _08092EDA: ldr r1, _08092F00 lsls r2, r4, 2 adds r0, r2, r4 lsls r0, 3 adds r0, r1 strh r3, [r0, 0xC] ldr r0, [r5] movs r3, 0xC3 lsls r3, 3 adds r0, r3 ldrh r0, [r0] adds r5, r1, 0 cmp r0, 0x5 bhi _08092F20 lsls r0, 2 ldr r1, _08092F04 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08092F00: .4byte 0x03004b20 _08092F04: .4byte _08092F08 .align 2, 0 _08092F08: .4byte _08092F20 .4byte _08092F24 .4byte _08092F28 .4byte _08092F2C .4byte _08092F30 .4byte _08092F34 _08092F20: movs r3, 0 b _08092F36 _08092F24: movs r3, 0x1 b _08092F36 _08092F28: movs r3, 0x2 b _08092F36 _08092F2C: movs r3, 0x3 b _08092F36 _08092F30: movs r3, 0x4 b _08092F36 _08092F34: movs r3, 0x5 _08092F36: adds r0, r2, r4 lsls r0, 3 adds r0, r5 strh r3, [r0, 0x10] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8092EB0 thumb_func_start sub_8092F44 sub_8092F44: @ 8092F44 push {lr} lsls r0, 24 lsrs r0, 24 ldr r3, _08092F7C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r0, r1, r3 ldrb r2, [r0, 0xA] adds r3, 0x8 adds r1, r3 ldr r0, _08092F80 lsls r2, 3 adds r2, r0 ldrb r0, [r2, 0x5] lsls r0, 1 adds r1, r0 ldrh r0, [r2, 0x6] subs r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x5 bls _08092F84 ldrh r0, [r1] cmp r0, 0 beq _08092F84 movs r0, 0 b _08092F86 .align 2, 0 _08092F7C: .4byte 0x03004b20 _08092F80: .4byte gUnknown_083B5A7C _08092F84: movs r0, 0x1 _08092F86: pop {r1} bx r1 thumb_func_end sub_8092F44 thumb_func_start sub_8092F8C sub_8092F8C: @ 8092F8C push {lr} lsls r0, 24 lsrs r0, 24 ldr r3, _08092FC8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r0, r1, r3 ldrb r2, [r0, 0xA] adds r3, 0x8 adds r1, r3 ldr r0, _08092FCC lsls r2, 3 adds r2, r0 ldrb r0, [r2, 0x5] lsls r0, 1 adds r1, r0 ldrh r0, [r2, 0x6] subs r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x5 bls _08092FD0 ldrh r1, [r1] subs r0, 0x5 cmp r1, r0 bge _08092FD0 movs r0, 0 b _08092FD2 .align 2, 0 _08092FC8: .4byte 0x03004b20 _08092FCC: .4byte gUnknown_083B5A7C _08092FD0: movs r0, 0x1 _08092FD2: pop {r1} bx r1 thumb_func_end sub_8092F8C thumb_func_start sub_8092FD8 sub_8092FD8: @ 8092FD8 push {r4,lr} adds r4, r0, 0 ldr r2, _08093018 movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, [r0] ldr r0, _0809301C cmp r1, r0 bne _08093078 movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0 beq _08093020 ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 bl sub_8092F8C lsls r0, 24 cmp r0, 0 beq _0809303C adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 b _08093048 .align 2, 0 _08093018: .4byte 0x03004b20 _0809301C: .4byte sub_8092644 _08093020: ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 bl sub_8092F44 lsls r0, 24 cmp r0, 0 beq _0809303C adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 b _08093048 _0809303C: adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 _08093048: strb r0, [r2] ldrh r2, [r4, 0x32] movs r1, 0x30 ldrsh r0, [r4, r1] lsls r0, 7 adds r0, r2, r0 lsls r0, 24 ldr r1, _08093074 lsrs r0, 23 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bge _08093066 adds r0, 0x7F _08093066: asrs r0, 7 strh r0, [r4, 0x26] adds r0, r2, 0 adds r0, 0x8 strh r0, [r4, 0x32] b _08093084 .align 2, 0 _08093074: .4byte gSineTable _08093078: adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _08093084: pop {r4} pop {r0} bx r0 thumb_func_end sub_8092FD8 thumb_func_start sub_809308C sub_809308C: @ 809308C push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r6, _08093104 adds r0, r6, 0 movs r1, 0xB8 movs r2, 0x4 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r4, _08093108 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r0, r1, r4 movs r2, 0 strh r5, [r0, 0x2E] strh r2, [r0, 0x30] movs r0, 0x1C adds r0, r4 mov r9, r0 add r1, r9 ldr r0, _0809310C mov r8, r0 str r0, [r1] adds r0, r6, 0 movs r1, 0xB8 movs r2, 0x6C movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r4, r1, r4 strh r5, [r4, 0x2E] movs r0, 0x1 strh r0, [r4, 0x30] adds r4, 0x3F ldrb r0, [r4] movs r2, 0x2 orrs r0, r2 strb r0, [r4] add r1, r9 mov r0, r8 str r0, [r1] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08093104: .4byte gSpriteTemplate_83A053C _08093108: .4byte 0x02020004 _0809310C: .4byte sub_8092FD8 thumb_func_end sub_809308C thumb_func_start sub_8093110 sub_8093110: @ 8093110 push {lr} bl sub_80932AC ldr r0, _08093128 bl SetMainCallback2 ldr r0, _0809312C adds r0, 0x9C movs r1, 0x2 strb r1, [r0] pop {r0} bx r0 .align 2, 0 _08093128: .4byte sub_8093174 _0809312C: .4byte 0x02000000 thumb_func_end sub_8093110 thumb_func_start sub_8093130 sub_8093130: @ 8093130 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_80932E4 ldr r0, _08093164 bl SetMainCallback2 ldr r2, _08093168 ldr r3, _0809316C ldr r0, _08093170 lsls r4, 2 adds r4, r0 ldrb r1, [r4, 0x1] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x1A] adds r2, 0x9C strb r0, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _08093164: .4byte sub_8093174 _08093168: .4byte 0x02000000 _0809316C: .4byte 0x03002970 _08093170: .4byte 0x02029818 thumb_func_end sub_8093130 thumb_func_start sub_8093174 sub_8093174: @ 8093174 push {lr} ldr r0, _0809318C ldr r1, _08093190 adds r0, r1 ldrb r0, [r0] cmp r0, 0x8 bhi _08093232 lsls r0, 2 ldr r1, _08093194 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809318C: .4byte 0x03001770 _08093190: .4byte 0x0000043c _08093194: .4byte _08093198 .align 2, 0 _08093198: .4byte _080931BC .4byte _080931C6 .4byte _080931CC .4byte _080931D2 .4byte _080931DC .4byte _080931EC .4byte _08093200 .4byte _08093206 .4byte _08093220 _080931BC: bl sub_8093534 bl sub_8093688 b _0809320A _080931C6: bl sub_8093598 b _0809320A _080931CC: bl sub_80935EC b _0809320A _080931D2: bl sub_8093610 bl sub_80937A4 b _0809320A _080931DC: bl sub_80937BC ldr r1, _080931F8 ldr r0, _080931FC adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080931EC: bl sub_8071C94 cmp r0, 0 beq _08093232 b _0809320A .align 2, 0 _080931F8: .4byte 0x03001770 _080931FC: .4byte 0x0000043c _08093200: bl sub_80937F0 b _0809320A _08093206: bl sub_80937D8 _0809320A: ldr r1, _08093218 ldr r0, _0809321C adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08093232 .align 2, 0 _08093218: .4byte 0x03001770 _0809321C: .4byte 0x0000043c _08093220: bl nullsub_15 bl sub_8093800 bl sub_8093550 ldr r0, _08093238 bl SetMainCallback2 _08093232: pop {r0} bx r0 .align 2, 0 _08093238: .4byte sub_809323C thumb_func_end sub_8093174 thumb_func_start sub_809323C sub_809323C: @ 809323C push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_809323C thumb_func_start sub_8093254 sub_8093254: @ 8093254 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer ldr r2, _0809329C ldrb r0, [r2, 0x6] adds r0, 0x1 strb r0, [r2, 0x6] lsls r0, 24 lsrs r0, 24 cmp r0, 0x3B bls _0809327E movs r0, 0 strb r0, [r2, 0x6] ldrb r0, [r2, 0x5] movs r1, 0x1 eors r0, r1 strb r0, [r2, 0x5] _0809327E: ldrb r0, [r2, 0x4] cmp r0, 0 beq _08093298 ldr r1, _080932A0 ldr r0, _080932A4 str r0, [r1] movs r2, 0xF0 lsls r2, 3 adds r0, r2 str r0, [r1, 0x4] ldr r0, _080932A8 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _08093298: pop {r0} bx r0 .align 2, 0 _0809329C: .4byte 0x02000000 _080932A0: .4byte 0x040000d4 _080932A4: .4byte 0x03004de0 _080932A8: .4byte 0x800000a0 thumb_func_end sub_8093254 thumb_func_start sub_80932AC sub_80932AC: @ 80932AC push {r4,lr} adds r4, r0, 0 ldr r0, _080932DC movs r1, 0xFF bl CreateTask adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _080932E0 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] adds r0, 0xC adds r1, r4, 0 bl StoreWordInTwoHalfwords pop {r4} pop {r0} bx r0 .align 2, 0 _080932DC: .4byte nullsub_60 _080932E0: .4byte 0x03004b20 thumb_func_end sub_80932AC thumb_func_start sub_80932E4 sub_80932E4: @ 80932E4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0809331C movs r1, 0xFF bl CreateTask adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _08093320 adds r0, r1 movs r1, 0x1 strh r1, [r0, 0x8] strh r4, [r0, 0xA] adds r0, 0xC adds r1, r5, 0 bl StoreWordInTwoHalfwords pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809331C: .4byte nullsub_60 _08093320: .4byte 0x03004b20 thumb_func_end sub_80932E4 thumb_func_start sub_8093324 sub_8093324: @ 8093324 push {r4,r5,lr} ldr r0, _0809336C bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08093370 adds r4, r1, r0 ldr r5, _08093374 ldrh r0, [r4, 0x8] strb r0, [r5, 0x1] adds r0, r4, 0 adds r0, 0xC adds r1, r5, 0 adds r1, 0x60 bl LoadWordFromTwoHalfwords ldrb r0, [r5, 0x1] cmp r0, 0 beq _0809337C ldr r2, _08093378 movs r1, 0xA ldrsh r0, [r4, r1] lsls r1, r0, 3 subs r1, r0 lsls r1, 3 adds r1, r2 adds r0, r5, 0 adds r0, 0x64 movs r2, 0x38 bl memcpy b _08093384 .align 2, 0 _0809336C: .4byte nullsub_60 _08093370: .4byte 0x03004b20 _08093374: .4byte 0x02000000 _08093378: .4byte 0x0202ffc0 _0809337C: adds r0, r5, 0 adds r0, 0x64 bl sub_8093390 _08093384: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8093324 thumb_func_start nullsub_60 nullsub_60: @ 809338C bx lr thumb_func_end nullsub_60 thumb_func_start sub_8093390 sub_8093390: @ 8093390 push {r4-r7,lr} adds r5, r0, 0 ldr r6, _080934A4 ldrb r0, [r6, 0x8] strb r0, [r5] ldrh r0, [r6, 0xE] strh r0, [r5, 0x10] ldrb r0, [r6, 0x10] strh r0, [r5, 0x12] movs r0, 0x1 bl sub_8053108 adds r4, r0, 0 movs r0, 0xA bl sub_8053108 cmp r0, 0 bne _080933B6 movs r4, 0 _080933B6: lsrs r0, r4, 16 strh r0, [r5, 0x6] lsrs r0, r4, 8 movs r1, 0xFF ands r0, r1 strh r0, [r5, 0x8] ands r4, r1 strh r4, [r5, 0xA] ldr r0, _080934A8 bl FlagGet strb r0, [r5, 0x2] bl sub_8090FC0 strb r0, [r5, 0x3] bl GetPokedexSeenCount strh r0, [r5, 0xC] ldrb r1, [r6, 0xB] lsls r1, 8 ldrb r0, [r6, 0xA] orrs r0, r1 strh r0, [r5, 0xE] ldr r7, _080934AC movs r0, 0x17 adds r1, r7, 0 bl sav12_xor_get_clamped_above strh r0, [r5, 0x14] movs r0, 0x18 adds r1, r7, 0 bl sav12_xor_get_clamped_above strh r0, [r5, 0x16] ldr r1, _080934B0 movs r0, 0x23 bl sav12_xor_get_clamped_above strh r0, [r5, 0x1C] ldr r4, _080934B4 movs r0, 0x22 adds r1, r4, 0 bl sav12_xor_get_clamped_above strh r0, [r5, 0x1E] movs r0, 0x15 adds r1, r4, 0 bl sav12_xor_get_clamped_above strh r0, [r5, 0x20] movs r1, 0xAE lsls r1, 3 adds r0, r6, r1 ldrh r0, [r0] strh r0, [r5, 0x18] ldr r2, _080934B8 adds r1, r6, r2 ldrh r1, [r1] strh r1, [r5, 0x1A] lsls r0, 16 lsrs r0, 16 cmp r0, r7 bls _08093436 strh r7, [r5, 0x18] _08093436: ldrh r0, [r5, 0x1A] cmp r0, r7 bls _0809343E strh r7, [r5, 0x1A] _0809343E: movs r4, 0 bl sub_80C4D50 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _0809344E movs r4, 0x1 _0809344E: strb r4, [r5, 0x4] ldr r0, _080934BC movs r2, 0x92 lsls r2, 3 adds r1, r0, r2 ldr r1, [r1] str r1, [r5, 0x24] movs r2, 0 adds r6, r5, 0 adds r6, 0x30 adds r3, r5, 0 adds r3, 0x28 ldr r1, _080934C0 adds r4, r0, r1 _0809346A: lsls r0, r2, 1 adds r1, r3, r0 adds r0, r4 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _0809346A movs r2, 0 adds r3, r6, 0 ldr r4, _080934A4 _08093484: adds r1, r3, r2 adds r0, r2, r4 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x7 bls _08093484 adds r0, r5, 0 bl sub_80934F4 strb r0, [r5, 0x1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080934A4: .4byte gSaveBlock2 _080934A8: .4byte 0x00000801 _080934AC: .4byte 0x0000270f _080934B0: .4byte 0x000003e7 _080934B4: .4byte 0x0000ffff _080934B8: .4byte 0x00000572 _080934BC: .4byte 0x02025734 _080934C0: .4byte 0x00002b1c thumb_func_end sub_8093390 thumb_func_start sub_80934C4 sub_80934C4: @ 80934C4 lsls r0, 24 lsrs r0, 24 ldr r2, _080934D8 lsls r1, r0, 3 subs r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0x1] bx lr .align 2, 0 _080934D8: .4byte 0x0202ffc0 thumb_func_end sub_80934C4 thumb_func_start sav12_xor_get_clamped_above sav12_xor_get_clamped_above: @ 80934DC push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 bl sub_8053108 cmp r0, r4 bls _080934EE adds r0, r4, 0 _080934EE: pop {r4} pop {r1} bx r1 thumb_func_end sav12_xor_get_clamped_above thumb_func_start sub_80934F4 sub_80934F4: @ 80934F4 push {lr} adds r1, r0, 0 movs r2, 0 ldrh r0, [r1, 0x6] cmp r0, 0 bne _08093506 ldr r0, [r1, 0x8] cmp r0, 0 beq _08093508 _08093506: movs r2, 0x1 _08093508: ldrb r0, [r1, 0x3] cmp r0, 0 beq _08093514 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 _08093514: ldrh r0, [r1, 0x1A] cmp r0, 0x31 bls _08093520 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 _08093520: ldrb r0, [r1, 0x4] cmp r0, 0 beq _0809352C adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 _0809352C: adds r0, r2, 0 pop {r1} bx r1 thumb_func_end sub_80934F4 thumb_func_start sub_8093534 sub_8093534: @ 8093534 push {lr} movs r0, 0 bl SetVBlankCallback movs r0, 0 bl SetHBlankCallback movs r1, 0x80 lsls r1, 19 movs r0, 0 strh r0, [r1] pop {r0} bx r0 thumb_func_end sub_8093534 thumb_func_start sub_8093550 sub_8093550: @ 8093550 push {r4,lr} ldr r0, _08093588 bl SetVBlankCallback ldr r3, _0809358C ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _08093590 ldrh r0, [r4] movs r1, 0x3 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08093594 ldrh r0, [r2] movs r1, 0x18 orrs r0, r1 strh r0, [r2] movs r1, 0x80 lsls r1, 19 movs r2, 0xFA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08093588: .4byte sub_8093254 _0809358C: .4byte 0x04000208 _08093590: .4byte 0x04000200 _08093594: .4byte REG_DISPSTAT thumb_func_end sub_8093550 thumb_func_start sub_8093598 sub_8093598: @ 8093598 push {r4-r7,lr} sub sp, 0x4 movs r2, 0xC0 lsls r2, 19 movs r3, 0x80 lsls r3, 9 mov r4, sp movs r6, 0 ldr r1, _080935E4 movs r5, 0x80 lsls r5, 5 ldr r7, _080935E8 movs r0, 0x81 lsls r0, 24 mov r12, r0 _080935B6: strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r5 subs r3, r5 cmp r3, r5 bhi _080935B6 strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080935E4: .4byte 0x040000d4 _080935E8: .4byte 0x81000800 thumb_func_end sub_8093598 thumb_func_start sub_80935EC sub_80935EC: @ 80935EC sub sp, 0x4 movs r2, 0xE0 lsls r2, 19 mov r1, sp movs r0, 0 strh r0, [r1] ldr r0, _08093608 str r1, [r0] str r2, [r0, 0x4] ldr r1, _0809360C str r1, [r0, 0x8] ldr r0, [r0, 0x8] add sp, 0x4 bx lr .align 2, 0 _08093608: .4byte 0x040000d4 _0809360C: .4byte 0x81000200 thumb_func_end sub_80935EC thumb_func_start sub_8093610 sub_8093610: @ 8093610 push {r4,r5,lr} ldr r5, _08093664 movs r1, 0 strh r1, [r5] ldr r2, _08093668 strh r1, [r2] ldr r3, _0809366C strh r1, [r3] ldr r4, _08093670 strh r1, [r4] ldr r0, _08093674 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _08093678 adds r0, r1, 0 strh r0, [r5] ldr r1, _0809367C adds r0, r1, 0 strh r0, [r2] ldr r1, _08093680 adds r0, r1, 0 strh r0, [r3] ldr r1, _08093684 adds r0, r1, 0 strh r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08093664: .4byte REG_BG0CNT _08093668: .4byte REG_BG1CNT _0809366C: .4byte REG_BG2CNT _08093670: .4byte REG_BG3CNT _08093674: .4byte REG_BG0HOFS _08093678: .4byte 0x00001e08 _0809367C: .4byte 0x00000801 _08093680: .4byte 0x00000902 _08093684: .4byte 0x00000a03 thumb_func_end sub_8093610 thumb_func_start sub_8093688 sub_8093688: @ 8093688 push {r4-r6,lr} bl sub_8093324 ldr r2, _080936D0 movs r1, 0 strb r1, [r2] strb r1, [r2, 0x3] strb r1, [r2, 0x4] adds r0, r2, 0 adds r0, 0x65 ldrb r0, [r0] strb r0, [r2, 0x2] strb r1, [r2, 0x5] strb r1, [r2, 0x6] movs r4, 0 adds r6, r2, 0 adds r6, 0x20 adds r5, r2, 0 adds r5, 0x8C _080936AE: lsls r0, r4, 4 adds r0, r6 lsls r1, r4, 1 adds r1, r5, r1 ldrh r1, [r1] bl sub_80EB3FC adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080936AE bl sub_80936D4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080936D0: .4byte 0x02000000 thumb_func_end sub_8093688 thumb_func_start sub_80936D4 sub_80936D4: @ 80936D4 push {r4-r6,lr} ldr r4, _08093798 movs r0, 0 strb r0, [r4, 0x7] strb r0, [r4, 0x8] strb r0, [r4, 0x9] strb r0, [r4, 0xA] strb r0, [r4, 0xB] strb r0, [r4, 0xC] strb r0, [r4, 0xD] adds r0, r4, 0 adds r0, 0xE movs r1, 0 movs r2, 0x8 bl memset adds r0, r4, 0 adds r0, 0x66 ldrb r0, [r0] cmp r0, 0 beq _08093704 ldrb r0, [r4, 0x7] adds r0, 0x1 strb r0, [r4, 0x7] _08093704: adds r0, r4, 0 adds r0, 0x6A ldrh r0, [r0] cmp r0, 0 bne _08093714 ldr r0, [r4, 0x6C] cmp r0, 0 beq _0809371A _08093714: ldrb r0, [r4, 0x8] adds r0, 0x1 strb r0, [r4, 0x8] _0809371A: ldr r1, _08093798 ldr r0, [r1, 0x78] cmp r0, 0 beq _08093728 ldrb r0, [r1, 0x9] adds r0, 0x1 strb r0, [r1, 0x9] _08093728: ldr r0, [r1, 0x7C] cmp r0, 0 beq _08093734 ldrb r0, [r1, 0xA] adds r0, 0x1 strb r0, [r1, 0xA] _08093734: adds r0, r1, 0 adds r0, 0x80 ldrh r0, [r0] cmp r0, 0 beq _08093744 ldrb r0, [r1, 0xB] adds r0, 0x1 strb r0, [r1, 0xB] _08093744: adds r0, r1, 0 adds r0, 0x82 ldrh r0, [r0] cmp r0, 0 beq _08093754 ldrb r0, [r1, 0xC] adds r0, 0x1 strb r0, [r1, 0xC] _08093754: adds r0, r1, 0 adds r0, 0x84 ldrh r0, [r0] cmp r0, 0 beq _08093764 ldrb r0, [r1, 0xD] adds r0, 0x1 strb r0, [r1, 0xD] _08093764: ldrb r0, [r1, 0x1] cmp r0, 0 bne _08093792 movs r5, 0 ldr r4, _0809379C adds r6, r1, 0 adds r6, 0xE _08093772: lsls r0, r4, 16 lsrs r0, 16 bl FlagGet lsls r0, 24 cmp r0, 0 beq _08093788 adds r1, r5, r6 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08093788: adds r4, 0x1 adds r5, 0x1 ldr r0, _080937A0 cmp r4, r0 bls _08093772 _08093792: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08093798: .4byte 0x02000000 _0809379C: .4byte 0x00000807 _080937A0: .4byte 0x0000080e thumb_func_end sub_80936D4 thumb_func_start sub_80937A4 sub_80937A4: @ 80937A4 push {lr} bl ResetPaletteFade bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks pop {r0} bx r0 thumb_func_end sub_80937A4 thumb_func_start sub_80937BC sub_80937BC: @ 80937BC push {r4,lr} ldr r4, _080937D4 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C58 pop {r4} pop {r0} bx r0 .align 2, 0 _080937D4: .4byte gWindowConfig_81E6DC4 thumb_func_end sub_80937BC thumb_func_start sub_80937D8 sub_80937D8: @ 80937D8 push {lr} bl sub_8093E04 bl sub_8093E28 bl sub_8093F64 bl sub_8093DAC pop {r0} bx r0 thumb_func_end sub_80937D8 thumb_func_start sub_80937F0 sub_80937F0: @ 80937F0 push {lr} bl sub_8093EF8 pop {r0} bx r0 thumb_func_end sub_80937F0 thumb_func_start nullsub_15 nullsub_15: @ 80937FC bx lr thumb_func_end nullsub_15 thumb_func_start sub_8093800 sub_8093800: @ 8093800 push {lr} bl sub_809380C pop {r0} bx r0 thumb_func_end sub_8093800 thumb_func_start sub_809380C sub_809380C: @ 809380C push {r4,lr} ldr r4, _08093828 adds r0, r4, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _08093828: .4byte sub_809382C thumb_func_end sub_809380C thumb_func_start sub_809382C sub_809382C: @ 809382C push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 ldr r7, _08093858 lsls r1, r0, 2 adds r1, r0 lsls r4, r1, 3 ldr r6, _0809385C ldr r5, _08093860 _0809383E: ldrb r0, [r6] lsls r0, 2 adds r0, r7 ldr r1, [r0] adds r0, r4, r5 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0809383E pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08093858: .4byte gUnknown_083B5EBC _0809385C: .4byte 0x02000000 _08093860: .4byte 0x03004b20 thumb_func_end sub_809382C thumb_func_start sub_8093864 sub_8093864: @ 8093864 push {r4,r5,lr} sub sp, 0x4 ldr r4, _080938A0 ldr r2, _080938A4 ldrb r1, [r2, 0x11] movs r0, 0x1 ands r0, r1 movs r5, 0 strb r0, [r4, 0x5] ldrb r0, [r2, 0x12] strb r0, [r4, 0x6] bl sub_80939A4 movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r0, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080938A0: .4byte 0x02000000 _080938A4: .4byte gSaveBlock2 thumb_func_end sub_8093864 thumb_func_start sub_80938A8 sub_80938A8: @ 80938A8 push {lr} ldr r0, _080938C4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080938BE ldr r1, _080938C8 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080938BE: movs r0, 0 pop {r1} bx r1 .align 2, 0 _080938C4: .4byte 0x0202f388 _080938C8: .4byte 0x02000000 thumb_func_end sub_80938A8 thumb_func_start rfu_NI_stopReceivingData rfu_NI_stopReceivingData: @ 80938CC push {lr} ldr r0, _080938E4 ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080938EC ldr r1, _080938E8 movs r0, 0x5 strb r0, [r1] movs r0, 0x1 b _08093914 .align 2, 0 _080938E4: .4byte 0x03001770 _080938E8: .4byte 0x02000000 _080938EC: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08093912 ldr r2, _08093900 ldrb r1, [r2, 0x3] cmp r1, 0 beq _08093904 movs r0, 0x5 b _0809390C .align 2, 0 _08093900: .4byte 0x02000000 _08093904: movs r0, 0x1 eors r0, r1 strb r0, [r2, 0x3] movs r0, 0x3 _0809390C: strb r0, [r2] movs r0, 0x1 b _08093914 _08093912: movs r0, 0 _08093914: pop {r1} bx r1 thumb_func_end rfu_NI_stopReceivingData thumb_func_start sub_8093918 sub_8093918: @ 8093918 push {lr} bl sub_8093A28 movs r0, 0x36 bl audio_play ldr r1, _08093934 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _08093934: .4byte 0x02000000 thumb_func_end sub_8093918 thumb_func_start sub_8093938 sub_8093938: @ 8093938 push {lr} bl sub_8093A48 lsls r0, 24 cmp r0, 0 beq _0809394A ldr r1, _08093950 movs r0, 0x2 strb r0, [r1] _0809394A: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08093950: .4byte 0x02000000 thumb_func_end sub_8093938 thumb_func_start sub_8093954 sub_8093954: @ 8093954 push {lr} sub sp, 0x4 bl sub_80939C0 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0809397C ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0 add sp, 0x4 pop {r1} bx r1 .align 2, 0 _0809397C: .4byte 0x02000000 thumb_func_end sub_8093954 thumb_func_start sub_8093980 sub_8093980: @ 8093980 push {lr} ldr r0, _0809399C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08093996 ldr r0, _080939A0 ldr r0, [r0, 0x60] bl SetMainCallback2 _08093996: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0809399C: .4byte 0x0202f388 _080939A0: .4byte 0x02000000 thumb_func_end sub_8093980 thumb_func_start sub_80939A4 sub_80939A4: @ 80939A4 push {lr} ldr r0, _080939B8 movs r1, 0 bl CreateTask ldr r0, _080939BC bl sub_8071E2C pop {r0} bx r0 .align 2, 0 _080939B8: .4byte sub_80939DC _080939BC: .4byte gWindowConfig_81E6DC4 thumb_func_end sub_80939A4 thumb_func_start sub_80939C0 sub_80939C0: @ 80939C0 push {lr} ldr r0, _080939D8 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _080939D4 bl DestroyTask _080939D4: pop {r0} bx r0 .align 2, 0 _080939D8: .4byte sub_80939DC thumb_func_end sub_80939C0 thumb_func_start sub_80939DC sub_80939DC: @ 80939DC push {lr} sub sp, 0x20 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08093A20 adds r2, r1, r0 ldr r0, _08093A24 ldrb r1, [r0, 0x5] movs r3, 0xA ldrsh r0, [r2, r3] cmp r1, r0 beq _08093A04 strh r1, [r2, 0xA] ldrh r0, [r2, 0x8] movs r1, 0x1 eors r0, r1 strh r0, [r2, 0x8] _08093A04: movs r0, 0x8 ldrsh r1, [r2, r0] mov r0, sp bl sub_8094250 mov r0, sp movs r1, 0xA movs r2, 0xC bl Print add sp, 0x20 pop {r0} bx r0 .align 2, 0 _08093A20: .4byte 0x03004b20 _08093A24: .4byte 0x02000000 thumb_func_end sub_80939DC thumb_func_start sub_8093A28 sub_8093A28: @ 8093A28 push {r4,lr} ldr r4, _08093A44 adds r0, r4, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _08093A44: .4byte sub_8093A68 thumb_func_end sub_8093A28 thumb_func_start sub_8093A48 sub_8093A48: @ 8093A48 push {lr} ldr r0, _08093A5C bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _08093A60 movs r0, 0 b _08093A62 .align 2, 0 _08093A5C: .4byte sub_8093A68 _08093A60: movs r0, 0x1 _08093A62: pop {r1} bx r1 thumb_func_end sub_8093A48 thumb_func_start sub_8093A68 sub_8093A68: @ 8093A68 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _08093A98 ldr r2, _08093A9C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _08093A7A: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _08093A7A pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08093A98: .4byte gUnknown_083B5ED8 _08093A9C: .4byte 0x03004b20 thumb_func_end sub_8093A68 thumb_func_start sub_8093AA0 sub_8093AA0: @ 8093AA0 push {r4,lr} adds r4, r0, 0 ldr r0, _08093AE0 movs r1, 0 strb r1, [r0, 0x4] bl dp12_8087EA4 movs r1, 0 ldr r0, _08093AE4 ldr r2, _08093AE8 movs r3, 0xF0 lsls r3, 3 adds r0, r3 _08093ABA: strh r2, [r0] adds r0, 0x2 adds r1, 0x1 cmp r1, 0x9F bls _08093ABA ldr r0, _08093AEC bl SetHBlankCallback ldr r1, _08093AE0 movs r0, 0x1 strb r0, [r1, 0x4] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08093AE0: .4byte 0x02000000 _08093AE4: .4byte 0x03004de0 _08093AE8: .4byte 0x0000fffc _08093AEC: .4byte sub_8093D7C thumb_func_end sub_8093AA0 thumb_func_start sub_8093AF0 sub_8093AF0: @ 8093AF0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r8, r0 ldr r1, _08093BFC movs r0, 0 strb r0, [r1, 0x4] mov r2, r8 ldrh r0, [r2, 0xA] adds r0, 0x3 strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x4F ble _08093B18 movs r0, 0x4F strh r0, [r2, 0xA] _08093B18: mov r4, r8 movs r0, 0xA ldrsh r7, [r4, r0] movs r0, 0xA0 subs r0, r7 mov r9, r0 subs r4, r0, r7 negs r0, r7 lsls r6, r0, 16 movs r0, 0xA0 lsls r0, 16 adds r1, r4, 0 bl __udivsi3 adds r5, r0, 0 ldr r1, _08093C00 adds r5, r1 adds r0, r5, 0 muls r0, r4 adds r0, r6 mov r10, r0 adds r0, r5, 0 adds r1, r4, 0 bl __udivsi3 str r0, [sp] lsls r5, 1 movs r3, 0 cmp r3, r7 bcs _08093B74 ldr r2, _08093C04 mov r12, r2 ldr r0, _08093C08 adds r4, r0, 0 _08093B5C: lsls r0, r3, 16 asrs r0, 16 lsls r1, r0, 1 add r1, r12 subs r2, r4, r0 strh r2, [r1] adds r0, 0x1 lsls r0, 16 lsrs r3, r0, 16 asrs r0, 16 cmp r0, r7 bcc _08093B5C _08093B74: lsls r2, r3, 16 mov r1, r9 lsls r0, r1, 16 asrs r1, r0, 16 mov r4, r10 lsrs r7, r4, 16 cmp r2, r0 bge _08093BAE ldr r0, _08093C04 mov r9, r0 ldr r4, _08093C08 mov r12, r4 adds r4, r1, 0 _08093B8E: lsrs r1, r6, 16 adds r6, r5 ldr r0, [sp] subs r5, r0 asrs r2, 16 lsls r0, r2, 1 add r0, r9 add r1, r12 strh r1, [r0] adds r2, 0x1 lsls r2, 16 lsrs r3, r2, 16 lsls r2, r3, 16 asrs r0, r2, 16 cmp r0, r4 blt _08093B8E _08093BAE: adds r1, r7, 0 lsls r0, r3, 16 asrs r0, 16 cmp r0, 0x9F bgt _08093BD4 ldr r4, _08093C04 ldr r0, _08093C08 adds r2, r1, r0 _08093BBE: lsls r1, r3, 16 asrs r1, 16 lsls r0, r1, 1 adds r0, r4 strh r2, [r0] adds r1, 0x1 lsls r1, 16 lsrs r3, r1, 16 asrs r1, 16 cmp r1, 0x9F ble _08093BBE _08093BD4: movs r0, 0x1 ldr r1, _08093BFC strb r0, [r1, 0x4] mov r2, r8 movs r4, 0xA ldrsh r0, [r2, r4] cmp r0, 0x4A ble _08093BEA ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] _08093BEA: movs r0, 0 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08093BFC: .4byte 0x02000000 _08093C00: .4byte 0xffff0000 _08093C04: .4byte 0x03004de0 _08093C08: .4byte 0x0000fffc thumb_func_end sub_8093AF0 thumb_func_start sub_8093C0C sub_8093C0C: @ 8093C0C push {r4,lr} adds r4, r0, 0 bl sub_80939C0 bl sub_8093DAC ldr r0, _08093C34 ldrb r0, [r0, 0x3] cmp r0, 0 bne _08093C24 bl sub_80939A4 _08093C24: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _08093C34: .4byte 0x02000000 thumb_func_end sub_8093C0C thumb_func_start sub_8093C38 sub_8093C38: @ 8093C38 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r8, r0 ldr r1, _08093D40 movs r2, 0 strb r2, [r1, 0x4] ldrh r0, [r0, 0xA] subs r0, 0x3 mov r3, r8 strh r0, [r3, 0xA] lsls r0, 16 cmp r0, 0 bgt _08093C5C strh r2, [r3, 0xA] _08093C5C: mov r4, r8 movs r0, 0xA ldrsh r7, [r4, r0] movs r0, 0xA0 subs r0, r7 mov r9, r0 subs r4, r0, r7 negs r0, r7 lsls r6, r0, 16 movs r0, 0xA0 lsls r0, 16 adds r1, r4, 0 bl __udivsi3 adds r5, r0, 0 ldr r1, _08093D44 adds r5, r1 adds r0, r5, 0 muls r0, r4 adds r0, r6 mov r10, r0 adds r0, r5, 0 adds r1, r4, 0 bl __udivsi3 str r0, [sp] lsrs r5, 1 movs r3, 0 cmp r3, r7 bcs _08093CB8 ldr r2, _08093D48 mov r12, r2 ldr r0, _08093D4C adds r4, r0, 0 _08093CA0: lsls r0, r3, 16 asrs r0, 16 lsls r1, r0, 1 add r1, r12 subs r2, r4, r0 strh r2, [r1] adds r0, 0x1 lsls r0, 16 lsrs r3, r0, 16 asrs r0, 16 cmp r0, r7 bcc _08093CA0 _08093CB8: lsls r2, r3, 16 mov r1, r9 lsls r0, r1, 16 asrs r1, r0, 16 mov r4, r10 lsrs r7, r4, 16 cmp r2, r0 bge _08093CF2 ldr r0, _08093D48 mov r9, r0 ldr r3, _08093D4C mov r12, r3 adds r4, r1, 0 _08093CD2: lsrs r1, r6, 16 adds r6, r5 ldr r0, [sp] adds r5, r0 asrs r2, 16 lsls r0, r2, 1 add r0, r9 add r1, r12 strh r1, [r0] adds r2, 0x1 lsls r2, 16 lsrs r3, r2, 16 lsls r2, r3, 16 asrs r0, r2, 16 cmp r0, r4 blt _08093CD2 _08093CF2: adds r1, r7, 0 lsls r0, r3, 16 asrs r0, 16 cmp r0, 0x9F bgt _08093D18 ldr r4, _08093D48 ldr r0, _08093D4C adds r2, r1, r0 _08093D02: lsls r1, r3, 16 asrs r1, 16 lsls r0, r1, 1 adds r0, r4 strh r2, [r0] adds r1, 0x1 lsls r1, 16 lsrs r3, r1, 16 asrs r1, 16 cmp r1, 0x9F ble _08093D02 _08093D18: movs r0, 0x1 ldr r1, _08093D40 strb r0, [r1, 0x4] mov r2, r8 movs r3, 0xA ldrsh r0, [r2, r3] cmp r0, 0 bgt _08093D2E ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] _08093D2E: movs r0, 0 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08093D40: .4byte 0x02000000 _08093D44: .4byte 0xffff0000 _08093D48: .4byte 0x03004de0 _08093D4C: .4byte 0x0000fffc thumb_func_end sub_8093C38 thumb_func_start sub_8093D50 sub_8093D50: @ 8093D50 push {lr} ldr r1, _08093D74 movs r0, 0 strb r0, [r1, 0x4] bl SetHBlankCallback bl sub_8093E04 ldr r0, _08093D78 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 pop {r1} bx r1 .align 2, 0 _08093D74: .4byte 0x02000000 _08093D78: .4byte sub_8093A68 thumb_func_end sub_8093D50 thumb_func_start sub_8093D7C sub_8093D7C: @ 8093D7C ldr r1, _08093DA0 ldr r0, _08093DA4 ldrh r2, [r0] movs r0, 0xFF ands r0, r2 lsls r0, 1 movs r2, 0xF0 lsls r2, 3 adds r1, r2 adds r0, r1 ldrh r1, [r0] ldr r0, _08093DA8 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x4 strh r1, [r0] bx lr .align 2, 0 _08093DA0: .4byte 0x03004de0 _08093DA4: .4byte REG_VCOUNT _08093DA8: .4byte REG_BG0VOFS thumb_func_end sub_8093D7C thumb_func_start sub_8093DAC sub_8093DAC: @ 8093DAC push {lr} ldr r0, _08093DBC ldrb r0, [r0, 0x3] cmp r0, 0 beq _08093DC0 bl sub_8093DEC b _08093DC4 .align 2, 0 _08093DBC: .4byte 0x02000000 _08093DC0: bl sub_8093DC8 _08093DC4: pop {r0} bx r0 thumb_func_end sub_8093DAC thumb_func_start sub_8093DC8 sub_8093DC8: @ 8093DC8 push {lr} bl sub_8071EF4 bl sub_80940E4 bl sub_8093F14 bl sub_8093F80 bl sub_8093FD0 bl sub_8094038 bl sub_8094140 pop {r0} bx r0 thumb_func_end sub_8093DC8 thumb_func_start sub_8093DEC sub_8093DEC: @ 8093DEC push {lr} bl sub_8071EF4 bl sub_80940E4 bl sub_8093F48 bl sub_8094188 pop {r0} bx r0 thumb_func_end sub_8093DEC thumb_func_start sub_8093E04 sub_8093E04: @ 8093E04 ldr r0, _08093E20 ldr r2, _08093E24 adds r1, r2, 0 strh r1, [r0] adds r0, 0x2 movs r2, 0 strh r2, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r1, [r0] bx lr .align 2, 0 _08093E20: .4byte REG_BG0VOFS _08093E24: .4byte 0x0000fffc thumb_func_end sub_8093E04 thumb_func_start sub_8093E28 sub_8093E28: @ 8093E28 push {r4-r7,lr} bl sub_8093EA0 ldr r0, _08093E84 movs r1, 0xE0 movs r2, 0x20 bl LoadPalette ldr r3, _08093E88 movs r4, 0xC0 lsls r4, 19 movs r5, 0xA4 lsls r5, 5 ldr r1, _08093E8C ldr r6, _08093E90 movs r2, 0x80 lsls r2, 5 movs r7, 0x80 lsls r7, 24 _08093E4E: str r3, [r1] str r4, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r2 adds r4, r2 subs r5, r2 cmp r5, r2 bhi _08093E4E str r3, [r1] str r4, [r1, 0x4] lsrs r0, r5, 1 orrs r0, r7 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, _08093E94 ldr r2, _08093E98 ldr r0, _08093E8C str r1, [r0] str r2, [r0, 0x4] ldr r1, _08093E9C str r1, [r0, 0x8] ldr r0, [r0, 0x8] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08093E84: .4byte gUnknown_083B5F6C _08093E88: .4byte gUnknown_08E8B4E0 _08093E8C: .4byte 0x040000d4 _08093E90: .4byte 0x80000800 _08093E94: .4byte gBadgesTiles _08093E98: .4byte 0x06001480 _08093E9C: .4byte 0x80000200 thumb_func_end sub_8093E28 thumb_func_start sub_8093EA0 sub_8093EA0: @ 8093EA0 push {r4,lr} ldr r1, _08093EE4 ldr r4, _08093EE8 ldrb r0, [r4, 0x2] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0 movs r2, 0x60 bl LoadPalette ldr r0, _08093EEC movs r1, 0x30 movs r2, 0x20 bl LoadPalette ldr r0, _08093EF0 movs r1, 0x40 movs r2, 0x20 bl LoadPalette adds r4, 0x64 ldrb r0, [r4] cmp r0, 0 beq _08093EDC ldr r0, _08093EF4 movs r1, 0x10 movs r2, 0x20 bl LoadPalette _08093EDC: pop {r4} pop {r0} bx r0 .align 2, 0 _08093EE4: .4byte gUnknown_083B5EF8 _08093EE8: .4byte 0x02000000 _08093EEC: .4byte gBadgesPalette _08093EF0: .4byte gUnknown_083B5F4C _08093EF4: .4byte gUnknown_083B5F0C thumb_func_end sub_8093EA0 thumb_func_start sub_8093EF8 sub_8093EF8: @ 8093EF8 push {lr} ldr r0, _08093F0C adds r0, 0x64 ldrb r0, [r0] ldr r2, _08093F10 movs r1, 0x50 bl sub_8085A5C pop {r0} bx r0 .align 2, 0 _08093F0C: .4byte 0x02000000 _08093F10: .4byte 0x06001880 thumb_func_end sub_8093EF8 thumb_func_start sub_8093F14 sub_8093F14: @ 8093F14 push {lr} sub sp, 0x8 ldr r0, _08093F3C ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] ldr r0, _08093F40 ldrb r0, [r0, 0x1] lsls r0, 2 add r0, sp ldr r0, [r0] ldr r1, _08093F44 movs r2, 0xA0 lsls r2, 1 bl CpuFastSet add sp, 0x8 pop {r0} bx r0 .align 2, 0 _08093F3C: .4byte gUnknown_083B5EEC _08093F40: .4byte 0x02000000 _08093F44: .4byte 0x06004800 thumb_func_end sub_8093F14 thumb_func_start sub_8093F48 sub_8093F48: @ 8093F48 push {lr} ldr r0, _08093F5C ldr r1, _08093F60 movs r2, 0xA0 lsls r2, 1 bl CpuFastSet pop {r0} bx r0 .align 2, 0 _08093F5C: .4byte gUnknown_08E8CFC0 _08093F60: .4byte 0x06004800 thumb_func_end sub_8093F48 thumb_func_start sub_8093F64 sub_8093F64: @ 8093F64 push {lr} ldr r0, _08093F78 ldr r1, _08093F7C movs r2, 0xA0 lsls r2, 1 bl CpuFastSet pop {r0} bx r0 .align 2, 0 _08093F78: .4byte gUnknown_08E8D9C0 _08093F7C: .4byte 0x06005000 thumb_func_end sub_8093F64 thumb_func_start sub_8093F80 sub_8093F80: @ 8093F80 push {r4-r7,lr} movs r5, 0xC4 ldr r7, _08093FCC movs r1, 0x5 movs r0, 0xA0 lsls r0, 7 adds r6, r0, 0 _08093F8E: movs r0, 0x13 lsls r3, r1, 16 asrs r4, r3, 11 _08093F94: lsls r2, r0, 16 asrs r2, 16 adds r1, r4, r2 lsls r1, 1 adds r1, r7 adds r0, r5, 0 orrs r0, r6 strh r0, [r1] adds r2, 0x1 lsls r2, 16 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 lsrs r0, r2, 16 asrs r2, 16 cmp r2, 0x1A ble _08093F94 movs r1, 0x80 lsls r1, 9 adds r0, r3, r1 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0xC ble _08093F8E pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08093FCC: .4byte 0x06004000 thumb_func_end sub_8093F80 thumb_func_start sub_8093FD0 sub_8093FD0: @ 8093FD0 push {r4-r6,lr} ldr r4, _0809402C movs r2, 0xF ldr r0, _08094030 ldrb r0, [r0, 0x2] adds r0, 0xF cmp r2, r0 bge _08094002 movs r6, 0xC0 lsls r6, 1 ldr r1, _08094034 adds r5, r1, 0 adds r3, r0, 0 _08093FEA: lsls r1, r2, 16 asrs r1, 16 lsls r0, r1, 1 adds r0, r4 adds r0, r6 strh r5, [r0] adds r1, 0x1 lsls r1, 16 lsrs r2, r1, 16 asrs r1, 16 cmp r1, r3 blt _08093FEA _08094002: lsls r1, r2, 16 asrs r0, r1, 16 cmp r0, 0x12 bgt _08094024 movs r3, 0xC0 lsls r3, 1 movs r2, 0 _08094010: asrs r0, r1, 16 lsls r1, r0, 1 adds r1, r4 adds r1, r3 strh r2, [r1] adds r0, 0x1 lsls r1, r0, 16 asrs r0, r1, 16 cmp r0, 0x12 ble _08094010 _08094024: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809402C: .4byte 0x06004000 _08094030: .4byte 0x02000000 _08094034: .4byte 0x0000408f thumb_func_end sub_8093FD0 thumb_func_start sub_8094038 sub_8094038: @ 8094038 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r1, _080940D0 ldrb r0, [r1, 0x1] cmp r0, 0 bne _080940C2 ldr r0, _080940D4 mov r9, r0 movs r0, 0 movs r2, 0x4 adds r1, 0xE mov r8, r1 ldr r7, _080940D8 movs r1, 0xC0 lsls r1, 6 adds r6, r1, 0 adds r1, r7, 0x6 mov r12, r1 _08094060: lsls r0, 16 asrs r4, r0, 16 mov r1, r8 adds r0, r4, r1 ldrb r0, [r0] lsls r5, r2, 16 cmp r0, 0 beq _080940AE asrs r1, r5, 15 add r1, r9 movs r2, 0xF0 lsls r2, 2 adds r3, r1, r2 lsls r2, r4, 3 adds r0, r2, r7 ldrh r0, [r0] orrs r0, r6 strh r0, [r3] ldr r0, _080940DC adds r3, r1, r0 adds r0, r7, 0x2 adds r0, r2, r0 ldrh r0, [r0] orrs r0, r6 strh r0, [r3] movs r0, 0x80 lsls r0, 3 adds r3, r1, r0 adds r0, r7, 0x4 adds r0, r2, r0 ldrh r0, [r0] orrs r0, r6 strh r0, [r3] ldr r0, _080940E0 adds r1, r0 add r2, r12 ldrh r0, [r2] orrs r0, r6 strh r0, [r1] _080940AE: adds r1, r4, 0x1 lsls r1, 16 movs r2, 0xC0 lsls r2, 10 adds r0, r5, r2 lsrs r2, r0, 16 lsrs r0, r1, 16 asrs r1, 16 cmp r1, 0x7 ble _08094060 _080940C2: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080940D0: .4byte 0x02000000 _080940D4: .4byte 0x06004000 _080940D8: .4byte gUnknown_083B5F8C _080940DC: .4byte 0x000003c2 _080940E0: .4byte 0x00000402 thumb_func_end sub_8094038 thumb_func_start sub_80940E4 sub_80940E4: @ 80940E4 push {r4,lr} movs r2, 0 ldr r1, _08094108 movs r4, 0 ldr r3, _0809410C _080940EE: strh r4, [r1] lsls r0, r2, 16 movs r2, 0x80 lsls r2, 9 adds r0, r2 adds r1, 0x2 lsrs r2, r0, 16 asrs r0, 16 cmp r0, r3 ble _080940EE pop {r4} pop {r0} bx r0 .align 2, 0 _08094108: .4byte 0x06004000 _0809410C: .4byte 0x000003ff thumb_func_end sub_80940E4 thumb_func_start sub_8094110 sub_8094110: @ 8094110 push {r4-r6,lr} ldr r6, _0809413C movs r2, 0x3 movs r5, 0xA0 lsls r5, 2 movs r3, 0x1 movs r4, 0xB0 lsls r4, 2 _08094120: lsls r0, r2, 1 adds r0, r6 adds r1, r0, r5 strh r3, [r1] adds r0, r4 strh r3, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x10 bls _08094120 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809413C: .4byte 0x06004800 thumb_func_end sub_8094110 thumb_func_start sub_8094140 sub_8094140: @ 8094140 push {r4,r5,lr} ldr r0, _0809417C bl sub_8071E2C ldr r4, _08094180 ldr r5, _08094184 adds r0, r4, 0 adds r1, r5, 0 bl StringCopy ldrb r1, [r5, 0x8] adds r0, r4, 0 bl ConvertInternationalString adds r0, r4, 0 movs r1, 0x7 movs r2, 0x5 bl Print bl sub_80941D8 bl sub_8094200 bl sub_8094218 bl sub_809429C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809417C: .4byte gWindowConfig_81E6DC4 _08094180: .4byte 0x020231cc _08094184: .4byte 0x02000094 thumb_func_end sub_8094140 thumb_func_start sub_8094188 sub_8094188: @ 8094188 push {lr} ldr r0, _080941D0 bl sub_8071E2C bl sub_80942F8 bl sub_8094334 bl sub_80943C4 bl sub_8094428 bl sub_8094498 bl sub_80944E8 bl sub_8094538 ldr r0, _080941D4 bl sub_8071E2C bl sub_8094354 bl sub_80943E4 bl sub_8094448 bl sub_80944B8 bl sub_8094508 bl sub_8094558 pop {r0} bx r0 .align 2, 0 _080941D0: .4byte gWindowConfig_81E6DC4 _080941D4: .4byte gWindowConfig_81E6DE0 thumb_func_end sub_8094188 thumb_func_start sub_80941D8 sub_80941D8: @ 80941D8 push {lr} sub sp, 0x8 ldr r0, _080941FC adds r0, 0x72 ldrh r1, [r0] mov r0, sp movs r2, 0x2 movs r3, 0x5 bl ConvertIntToDecimalStringN mov r0, sp movs r1, 0x14 movs r2, 0x2 bl Print add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080941FC: .4byte 0x02000000 thumb_func_end sub_80941D8 thumb_func_start sub_8094200 sub_8094200: @ 8094200 push {lr} ldr r0, _08094214 adds r0, 0x88 ldr r0, [r0] movs r1, 0x10 movs r2, 0x8 bl sub_80B7AEC pop {r0} bx r0 .align 2, 0 _08094214: .4byte 0x02000000 thumb_func_end sub_8094200 thumb_func_start sub_8094218 sub_8094218: @ 8094218 push {lr} sub sp, 0x10 ldr r1, _0809422C ldrb r0, [r1, 0x7] cmp r0, 0 bne _08094230 bl sub_8094110 b _0809424A .align 2, 0 _0809422C: .4byte 0x02000000 _08094230: adds r0, r1, 0 adds r0, 0x70 ldrh r1, [r0] mov r0, sp movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN mov r0, sp movs r1, 0x10 movs r2, 0xA bl PrintCoinsString _0809424A: add sp, 0x10 pop {r0} bx r0 thumb_func_end sub_8094218 thumb_func_start sub_8094250 sub_8094250: @ 8094250 push {r4,r5,lr} sub sp, 0x10 adds r5, r0, 0 lsls r1, 16 lsrs r3, r1, 16 ldr r0, _08094294 ldrh r4, [r0, 0xE] ldrb r2, [r0, 0x10] ldr r1, _08094298 ldrb r0, [r1, 0x1] cmp r0, 0 beq _08094272 adds r0, r1, 0 adds r0, 0x74 ldrh r4, [r0] adds r0, 0x2 ldrh r2, [r0] _08094272: lsls r3, 16 asrs r3, 16 mov r0, sp adds r1, r4, 0 bl FormatPlayTime adds r0, r5, 0 mov r1, sp movs r2, 0x30 movs r3, 0x1 bl sub_8072C74 add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08094294: .4byte gSaveBlock2 _08094298: .4byte 0x02000000 thumb_func_end sub_8094250 thumb_func_start sub_809429C sub_809429C: @ 809429C push {r4-r6,lr} ldr r6, _080942F0 ldrb r0, [r6, 0x1] cmp r0, 0 beq _080942EA ldr r0, _080942F4 adds r1, r6, 0 adds r1, 0x20 bl StringCopy movs r5, 0 strb r5, [r0] adds r0, 0x1 adds r1, r6, 0 adds r1, 0x30 bl StringCopy ldr r4, _080942F4 adds r0, r4, 0 movs r1, 0x2 movs r2, 0xE bl Print adds r1, r6, 0 adds r1, 0x40 adds r0, r4, 0 bl StringCopy strb r5, [r0] adds r0, 0x1 adds r1, r6, 0 adds r1, 0x50 bl StringCopy adds r0, r4, 0 movs r1, 0x2 movs r2, 0x10 bl Print _080942EA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080942F0: .4byte 0x02000000 _080942F4: .4byte 0x020231cc thumb_func_end sub_809429C thumb_func_start sub_80942F8 sub_80942F8: @ 80942F8 push {r4,r5,lr} ldr r4, _08094328 ldr r5, _0809432C adds r0, r4, 0 adds r1, r5, 0 bl StringCopy ldrb r1, [r5, 0x8] adds r0, r4, 0 bl ConvertInternationalString ldr r1, _08094330 adds r0, r4, 0 bl StringAppend adds r0, r4, 0 movs r1, 0x1C movs r2, 0x2 bl PrintCoinsString pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08094328: .4byte 0x020231cc _0809432C: .4byte 0x02000094 _08094330: .4byte gUnknown_0842C8DC thumb_func_end sub_80942F8 thumb_func_start sub_8094334 sub_8094334: @ 8094334 push {lr} ldr r0, _0809434C ldrb r0, [r0, 0x8] cmp r0, 0 beq _08094348 ldr r0, _08094350 movs r1, 0x3 movs r2, 0x5 bl Print _08094348: pop {r0} bx r0 .align 2, 0 _0809434C: .4byte 0x02000000 _08094350: .4byte gUnknown_0842C8EC thumb_func_end sub_8094334 thumb_func_start sub_8094354 sub_8094354: @ 8094354 push {r4,r5,lr} ldr r5, _080943B8 ldrb r0, [r5, 0x8] cmp r0, 0 beq _080943B0 ldr r2, _080943BC adds r0, r5, 0 adds r0, 0x6A ldrh r1, [r0] adds r0, r2, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN adds r2, r0, 0 ldr r4, _080943C0 adds r1, r4, 0 bl StringCopy adds r2, r0, 0 adds r0, r5, 0 adds r0, 0x6C ldrh r1, [r0] adds r0, r2, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN adds r2, r0, 0 adds r1, r4, 0 bl StringCopy adds r2, r0, 0 adds r0, r5, 0 adds r0, 0x6E ldrh r1, [r0] adds r0, r2, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, _080943BC movs r1, 0x1C movs r2, 0x5 bl PrintCoinsString _080943B0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080943B8: .4byte 0x02000000 _080943BC: .4byte 0x020231cc _080943C0: .4byte gUnknown_083B5EF4 thumb_func_end sub_8094354 thumb_func_start sub_80943C4 sub_80943C4: @ 80943C4 push {lr} ldr r0, _080943DC ldrb r0, [r0, 0x9] cmp r0, 0 beq _080943D8 ldr r0, _080943E0 movs r1, 0x3 movs r2, 0x7 bl Print _080943D8: pop {r0} bx r0 .align 2, 0 _080943DC: .4byte 0x02000000 _080943E0: .4byte gUnknown_0842C8FF thumb_func_end sub_80943C4 thumb_func_start sub_80943E4 sub_80943E4: @ 80943E4 push {r4,lr} sub sp, 0x10 ldr r4, _08094424 ldrb r0, [r4, 0x9] cmp r0, 0 beq _0809441C adds r0, r4, 0 adds r0, 0x78 ldrh r1, [r0] mov r0, sp bl ConvertIntToDecimalString mov r0, sp movs r1, 0x16 movs r2, 0x7 bl PrintCoinsString adds r0, r4, 0 adds r0, 0x7A ldrh r1, [r0] mov r0, sp bl ConvertIntToDecimalString mov r0, sp movs r1, 0x1C movs r2, 0x7 bl PrintCoinsString _0809441C: add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _08094424: .4byte 0x02000000 thumb_func_end sub_80943E4 thumb_func_start sub_8094428 sub_8094428: @ 8094428 push {lr} ldr r0, _08094440 ldrb r0, [r0, 0xA] cmp r0, 0 beq _0809443C ldr r0, _08094444 movs r1, 0x3 movs r2, 0xF bl Print _0809443C: pop {r0} bx r0 .align 2, 0 _08094440: .4byte 0x02000000 _08094444: .4byte gUnknown_0842C924 thumb_func_end sub_8094428 thumb_func_start sub_8094448 sub_8094448: @ 8094448 push {r4,lr} sub sp, 0x10 ldr r4, _08094494 ldrb r0, [r4, 0xA] cmp r0, 0 beq _0809448C adds r0, r4, 0 adds r0, 0x7C ldrh r1, [r0] mov r0, sp movs r2, 0x18 movs r3, 0x1 bl sub_8072C44 mov r0, sp movs r1, 0x70 movs r2, 0x78 movs r3, 0 bl sub_80729D8 adds r0, r4, 0 adds r0, 0x7E ldrh r1, [r0] mov r0, sp movs r2, 0x18 movs r3, 0x1 bl sub_8072C44 mov r0, sp movs r1, 0x95 movs r2, 0x78 movs r3, 0 bl sub_80729D8 _0809448C: add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _08094494: .4byte 0x02000000 thumb_func_end sub_8094448 thumb_func_start sub_8094498 sub_8094498: @ 8094498 push {lr} ldr r0, _080944B0 ldrb r0, [r0, 0xB] cmp r0, 0 beq _080944AC ldr r0, _080944B4 movs r1, 0x3 movs r2, 0xD bl Print _080944AC: pop {r0} bx r0 .align 2, 0 _080944B0: .4byte 0x02000000 _080944B4: .4byte gUnknown_0842C943 thumb_func_end sub_8094498 thumb_func_start sub_80944B8 sub_80944B8: @ 80944B8 push {lr} sub sp, 0x8 ldr r1, _080944E4 ldrb r0, [r1, 0xB] cmp r0, 0 beq _080944DE adds r0, r1, 0 adds r0, 0x80 ldrh r1, [r0] mov r0, sp movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN mov r0, sp movs r1, 0x1C movs r2, 0xD bl PrintCoinsString _080944DE: add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080944E4: .4byte 0x02000000 thumb_func_end sub_80944B8 thumb_func_start sub_80944E8 sub_80944E8: @ 80944E8 push {lr} ldr r0, _08094500 ldrb r0, [r0, 0xC] cmp r0, 0 beq _080944FC ldr r0, _08094504 movs r1, 0x3 movs r2, 0xB bl Print _080944FC: pop {r0} bx r0 .align 2, 0 _08094500: .4byte 0x02000000 _08094504: .4byte gUnknown_0842C959 thumb_func_end sub_80944E8 thumb_func_start sub_8094508 sub_8094508: @ 8094508 push {lr} sub sp, 0x8 ldr r1, _08094534 ldrb r0, [r1, 0xC] cmp r0, 0 beq _0809452E adds r0, r1, 0 adds r0, 0x82 ldrh r1, [r0] mov r0, sp movs r2, 0x1 movs r3, 0x5 bl ConvertIntToDecimalStringN mov r0, sp movs r1, 0x1C movs r2, 0xB bl PrintCoinsString _0809452E: add sp, 0x8 pop {r0} bx r0 .align 2, 0 _08094534: .4byte 0x02000000 thumb_func_end sub_8094508 thumb_func_start sub_8094538 sub_8094538: @ 8094538 push {lr} ldr r0, _08094550 ldrb r0, [r0, 0xD] cmp r0, 0 beq _0809454C ldr r0, _08094554 movs r1, 0x3 movs r2, 0x9 bl Print _0809454C: pop {r0} bx r0 .align 2, 0 _08094550: .4byte 0x02000000 _08094554: .4byte gUnknown_0842C96A thumb_func_end sub_8094538 thumb_func_start sub_8094558 sub_8094558: @ 8094558 push {lr} sub sp, 0x8 ldr r1, _08094584 ldrb r0, [r1, 0xD] cmp r0, 0 beq _0809457E adds r0, r1, 0 adds r0, 0x84 ldrh r1, [r0] mov r0, sp movs r2, 0x1 movs r3, 0x5 bl ConvertIntToDecimalStringN mov r0, sp movs r1, 0x1C movs r2, 0x9 bl PrintCoinsString _0809457E: add sp, 0x8 pop {r0} bx r0 .align 2, 0 _08094584: .4byte 0x02000000 thumb_func_end sub_8094558 thumb_func_start unref_sub_8094588 unref_sub_8094588: @ 8094588 push {r4,lr} lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 lsrs r2, r1, 16 ldr r4, _080945B4 ldr r0, _080945B8 ldrb r0, [r0, 0x8] cmp r0, 0x1 bne _0809459E ldr r4, _080945BC _0809459E: lsls r1, r3, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 bl Print pop {r4} pop {r0} bx r0 .align 2, 0 _080945B4: .4byte gUnknown_0842C979 _080945B8: .4byte gSaveBlock2 _080945BC: .4byte gUnknown_0842C97D thumb_func_end unref_sub_8094588 thumb_func_start sub_80945C0 sub_80945C0: @ 80945C0 push {r4-r6,lr} lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 lsrs r4, r1, 16 movs r6, 0xC bl sub_809473C lsls r0, 24 cmp r0, 0 beq _080945D8 movs r6, 0xD _080945D8: ldr r0, _08094658 bl FlagGet lsls r0, 24 cmp r0, 0 beq _0809465C lsls r0, r5, 24 lsrs r0, 24 lsls r1, r4, 24 lsrs r1, 24 adds r2, r5, r6 lsls r2, 24 lsrs r2, 24 adds r3, r4, 0 adds r3, 0xB lsls r3, 24 lsrs r3, 24 bl DrawDefaultWindow lsls r0, r5, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r5, r0, 16 asrs r0, 16 lsls r1, r4, 16 movs r2, 0x80 lsls r2, 9 adds r1, r2 lsrs r4, r1, 16 asrs r1, 16 bl sub_8094778 lsls r5, 16 asrs r5, 16 lsls r1, r4, 16 asrs r4, r1, 16 movs r0, 0x80 lsls r0, 10 adds r1, r0 asrs r1, 16 adds r0, r5, 0 bl sub_8094740 adds r1, r4, 0x4 lsls r1, 16 asrs r1, 16 adds r0, r5, 0 bl sub_80947B0 adds r1, r4, 0x6 lsls r1, 16 asrs r1, 16 adds r0, r5, 0 bl sub_80947F8 adds r4, 0x8 lsls r4, 16 asrs r4, 16 adds r0, r5, 0 adds r1, r4, 0 bl sub_8094844 b _080946C2 .align 2, 0 _08094658: .4byte 0x00000801 _0809465C: lsls r0, r5, 24 lsrs r0, 24 lsls r1, r4, 24 lsrs r1, 24 adds r2, r5, r6 lsls r2, 24 lsrs r2, 24 adds r3, r4, 0 adds r3, 0x9 lsls r3, 24 lsrs r3, 24 bl DrawDefaultWindow lsls r0, r5, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r5, r0, 16 asrs r0, 16 lsls r1, r4, 16 movs r2, 0x80 lsls r2, 9 adds r1, r2 lsrs r4, r1, 16 asrs r1, 16 bl sub_8094778 lsls r5, 16 asrs r5, 16 lsls r1, r4, 16 asrs r4, r1, 16 movs r0, 0x80 lsls r0, 10 adds r1, r0 asrs r1, 16 adds r0, r5, 0 bl sub_8094740 adds r1, r4, 0x4 lsls r1, 16 asrs r1, 16 adds r0, r5, 0 bl sub_80947B0 adds r4, 0x6 lsls r4, 16 asrs r4, 16 adds r0, r5, 0 adds r1, r4, 0 bl sub_8094844 _080946C2: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80945C0 thumb_func_start sub_80946C8 sub_80946C8: @ 80946C8 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 lsrs r4, r0, 16 adds r7, r4, 0 lsls r1, 16 lsrs r5, r1, 16 mov r8, r5 movs r6, 0xC bl sub_809473C lsls r0, 24 cmp r0, 0 beq _080946E8 movs r6, 0xD _080946E8: ldr r0, _08094710 bl FlagGet lsls r0, 24 cmp r0, 0 beq _08094714 lsls r0, r4, 24 lsrs r0, 24 lsls r1, r5, 24 lsrs r1, 24 adds r2, r4, r6 lsls r2, 24 lsrs r2, 24 adds r3, r5, 0 adds r3, 0xB lsls r3, 24 lsrs r3, 24 bl Reset b _08094730 .align 2, 0 _08094710: .4byte 0x00000801 _08094714: lsls r0, r7, 24 lsrs r0, 24 mov r2, r8 lsls r1, r2, 24 lsrs r1, 24 adds r2, r7, r6 lsls r2, 24 lsrs r2, 24 mov r3, r8 adds r3, 0x9 lsls r3, 24 lsrs r3, 24 bl Reset _08094730: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80946C8 thumb_func_start sub_809473C sub_809473C: @ 809473C movs r0, 0x1 bx lr thumb_func_end sub_809473C thumb_func_start sub_8094740 sub_8094740: @ 8094740 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _08094770 lsls r1, r4, 24 lsrs r1, 24 lsls r5, 24 lsrs r5, 24 adds r2, r5, 0 bl Print ldr r0, _08094774 adds r4, 0xC lsls r4, 24 lsrs r4, 24 adds r1, r4, 0 adds r2, r5, 0 bl PrintCoinsString pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08094770: .4byte gUnknown_0842C983 _08094774: .4byte gSaveBlock2 thumb_func_end sub_8094740 thumb_func_start sub_8094778 sub_8094778: @ 8094778 push {r4,r5,lr} sub sp, 0x20 adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 ldr r0, _080947AC ldrb r1, [r0, 0x14] mov r0, sp bl sub_80FBFF8 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 mov r0, sp adds r1, r4, 0 adds r2, r5, 0 bl Print add sp, 0x20 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080947AC: .4byte 0x0202e828 thumb_func_end sub_8094778 thumb_func_start sub_80947B0 sub_80947B0: @ 80947B0 push {r4,r5,lr} sub sp, 0x10 adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _080947F4 lsls r1, r4, 24 lsrs r1, 24 lsls r5, 24 lsrs r5, 24 adds r2, r5, 0 bl Print bl GetBadgeCount adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, sp bl ConvertIntToDecimalString adds r4, 0xC lsls r4, 24 lsrs r4, 24 mov r0, sp adds r1, r4, 0 adds r2, r5, 0 bl PrintCoinsString add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080947F4: .4byte gUnknown_0842C98A thumb_func_end sub_80947B0 thumb_func_start sub_80947F8 sub_80947F8: @ 80947F8 push {r4,r5,lr} sub sp, 0x10 adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _08094840 lsls r1, r4, 24 lsrs r1, 24 lsls r5, 24 lsrs r5, 24 adds r2, r5, 0 bl Print bl GetPokedexSeenCount adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 mov r0, sp movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN adds r4, 0xC lsls r4, 24 lsrs r4, 24 mov r0, sp adds r1, r4, 0 adds r2, r5, 0 bl PrintCoinsString add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08094840: .4byte gUnknown_0842C992 thumb_func_end sub_80947F8 thumb_func_start sub_8094844 sub_8094844: @ 8094844 push {r4,r5,lr} sub sp, 0x10 adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _08094888 lsls r1, r4, 24 lsrs r1, 24 lsls r5, 24 lsrs r5, 24 adds r2, r5, 0 bl Print ldr r0, _0809488C ldrh r1, [r0, 0xE] ldrb r2, [r0, 0x10] mov r0, sp movs r3, 0x1 bl FormatPlayTime adds r4, 0xC lsls r4, 24 lsrs r4, 24 mov r0, sp adds r1, r4, 0 adds r2, r5, 0 bl PrintCoinsString add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08094888: .4byte gUnknown_0842C99A _0809488C: .4byte gSaveBlock2 thumb_func_end sub_8094844 thumb_func_start GetBadgeCount GetBadgeCount: @ 8094890 push {r4,r5,lr} movs r5, 0 ldr r4, _080948BC _08094896: lsls r0, r4, 16 lsrs r0, 16 bl FlagGet lsls r0, 24 cmp r0, 0 beq _080948AA adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _080948AA: adds r4, 0x1 ldr r0, _080948C0 cmp r4, r0 ble _08094896 adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080948BC: .4byte 0x00000807 _080948C0: .4byte 0x0000080e thumb_func_end GetBadgeCount thumb_func_start GetPokedexSeenCount GetPokedexSeenCount: @ 80948C4 push {lr} bl sub_806912C cmp r0, 0 beq _080948D6 movs r0, 0x1 bl pokedex_count b _080948DC _080948D6: movs r0, 0x1 bl sub_8090F68 _080948DC: lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end GetPokedexSeenCount thumb_func_start FormatPlayTime FormatPlayTime: @ 80948E4 push {r4-r6,lr} adds r5, r0, 0 adds r4, r3, 0 lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r6, r2, 16 lsls r4, 16 lsrs r4, 16 bl ConvertIntToDecimalString adds r5, r0, 0 movs r0, 0 strb r0, [r5] lsls r4, 16 asrs r4, 16 cmp r4, 0 beq _0809490E movs r0, 0xF0 strb r0, [r5, 0x1] b _08094910 _0809490E: strb r4, [r5, 0x1] _08094910: movs r0, 0 strb r0, [r5, 0x2] adds r5, 0x3 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN pop {r4-r6} pop {r0} bx r0 thumb_func_end FormatPlayTime thumb_func_start unref_sub_8094928 unref_sub_8094928: @ 8094928 push {lr} ldr r1, _08094938 ldr r2, _0809493C bl memcpy pop {r0} bx r0 .align 2, 0 _08094938: .4byte 0x020300a0 _0809493C: .4byte 0x000083d0 thumb_func_end unref_sub_8094928 thumb_func_start unref_sub_8094940 unref_sub_8094940: @ 8094940 push {lr} adds r1, r0, 0 ldr r0, _08094950 ldr r2, _08094954 bl memcpy pop {r0} bx r0 .align 2, 0 _08094950: .4byte 0x020300a0 _08094954: .4byte 0x000083d0 thumb_func_end unref_sub_8094940 thumb_func_start sub_8094958 sub_8094958: @ 8094958 push {r4,lr} ldr r4, _08094974 bl sub_803FBBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_8094998 pop {r4} pop {r0} bx r0 .align 2, 0 _08094974: .4byte 0x02038470 thumb_func_end sub_8094958 thumb_func_start sub_8094978 sub_8094978: @ 8094978 push {lr} adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 lsls r1, 24 lsrs r1, 24 lsls r0, r2, 1 adds r0, r2 ldr r3, _08094994 adds r0, r3 bl sub_8094A74 pop {r0} bx r0 .align 2, 0 _08094994: .4byte 0x0201606c thumb_func_end sub_8094978 thumb_func_start sub_8094998 sub_8094998: @ 8094998 push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 lsls r1, 24 lsrs r4, r1, 24 bl sub_806B528 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080949CE cmp r4, 0 beq _080949C0 movs r0, 0x30 strb r0, [r6] movs r0, 0x45 strb r0, [r6, 0x1] movs r0, 0x12 strb r0, [r6, 0x2] b _08094A68 _080949C0: movs r0, 0x3 strb r0, [r6] movs r0, 0x12 strb r0, [r6, 0x1] movs r0, 0x45 strb r0, [r6, 0x2] b _08094A68 _080949CE: bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _08094A0C movs r5, 0x1 movs r0, 0 bl battle_get_side_with_given_state mov r2, sp ldr r1, _08094A08 lsls r0, 24 lsrs r0, 23 adds r0, r1 ldrh r0, [r0] strb r0, [r2] movs r4, 0 mov r1, sp _080949F2: ldrb r0, [r1] cmp r4, r0 beq _08094A00 mov r2, sp adds r0, r2, r5 strb r4, [r0] adds r5, 0x1 _08094A00: adds r4, 0x1 cmp r4, 0x5 ble _080949F2 b _08094A50 .align 2, 0 _08094A08: .4byte 0x02024a6a _08094A0C: movs r5, 0x2 movs r0, 0 bl battle_get_side_with_given_state mov r1, sp ldr r4, _08094A70 lsls r0, 24 lsrs r0, 23 adds r0, r4 ldrh r0, [r0] strb r0, [r1] movs r0, 0x2 bl battle_get_side_with_given_state mov r1, sp lsls r0, 24 lsrs r0, 23 adds r0, r4 ldrh r0, [r0] strb r0, [r1, 0x1] movs r4, 0 _08094A36: ldrb r0, [r1] cmp r4, r0 beq _08094A4A ldrb r0, [r1, 0x1] cmp r4, r0 beq _08094A4A mov r2, sp adds r0, r2, r5 strb r4, [r0] adds r5, 0x1 _08094A4A: adds r4, 0x1 cmp r4, 0x5 ble _08094A36 _08094A50: movs r4, 0 mov r3, sp _08094A54: adds r0, r6, r4 ldrb r1, [r3] lsls r1, 4 ldrb r2, [r3, 0x1] orrs r1, r2 strb r1, [r0] adds r3, 0x2 adds r4, 0x1 cmp r4, 0x2 ble _08094A54 _08094A68: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08094A70: .4byte 0x02024a6a thumb_func_end sub_8094998 thumb_func_start sub_8094A74 sub_8094A74: @ 8094A74 push {r4-r7,lr} sub sp, 0x8 adds r5, r0, 0 adds r0, r2, 0 lsls r1, 24 lsrs r7, r1, 24 lsls r0, 24 lsrs r0, 24 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08094A9C movs r0, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x2 b _08094AA8 _08094A9C: movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x3 _08094AA8: bl battle_get_side_with_given_state lsls r0, 24 lsrs r6, r0, 24 bl sub_806B528 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08094ADC cmp r7, 0 beq _08094ACE movs r0, 0x30 strb r0, [r5] movs r0, 0x45 strb r0, [r5, 0x1] movs r0, 0x12 strb r0, [r5, 0x2] b _08094B5E _08094ACE: movs r0, 0x3 strb r0, [r5] movs r0, 0x12 strb r0, [r5, 0x1] movs r0, 0x45 strb r0, [r5, 0x2] b _08094B5E _08094ADC: bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _08094B14 movs r3, 0x1 mov r2, sp ldr r1, _08094B10 lsls r0, r4, 1 adds r0, r1 ldrh r0, [r0] strb r0, [r2] movs r4, 0 mov r1, sp _08094AF8: ldrb r0, [r1] cmp r4, r0 beq _08094B06 mov r2, sp adds r0, r2, r3 strb r4, [r0] adds r3, 0x1 _08094B06: adds r4, 0x1 cmp r4, 0x5 ble _08094AF8 b _08094B46 .align 2, 0 _08094B10: .4byte 0x02024a6a _08094B14: movs r3, 0x2 mov r1, sp ldr r2, _08094B68 lsls r0, r4, 1 adds r0, r2 ldrh r0, [r0] strb r0, [r1] lsls r0, r6, 1 adds r0, r2 ldrh r0, [r0] strb r0, [r1, 0x1] movs r4, 0 _08094B2C: ldrb r0, [r1] cmp r4, r0 beq _08094B40 ldrb r0, [r1, 0x1] cmp r4, r0 beq _08094B40 mov r2, sp adds r0, r2, r3 strb r4, [r0] adds r3, 0x1 _08094B40: adds r4, 0x1 cmp r4, 0x5 ble _08094B2C _08094B46: movs r4, 0 mov r3, sp _08094B4A: adds r0, r5, r4 ldrb r1, [r3] lsls r1, 4 ldrb r2, [r3, 0x1] orrs r1, r2 strb r1, [r0] adds r3, 0x2 adds r4, 0x1 cmp r4, 0x2 ble _08094B4A _08094B5E: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08094B68: .4byte 0x02024a6a thumb_func_end sub_8094A74 thumb_func_start sub_8094B6C sub_8094B6C: @ 8094B6C push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r6, r2, 24 movs r7, 0 bl sub_806B528 lsls r0, 24 cmp r0, 0 beq _08094C16 lsls r0, r4, 1 adds r0, r4 ldr r1, _08094BCC adds r4, r0, r1 movs r2, 0 add r6, sp mov r12, r6 movs r6, 0xF mov r3, sp _08094B9A: adds r1, r4, r2 ldrb r0, [r1] lsrs r0, 4 strb r0, [r3] adds r3, 0x1 ldrb r1, [r1] adds r0, r6, 0 ands r0, r1 strb r0, [r3] adds r3, 0x1 adds r2, 0x1 cmp r2, 0x2 ble _08094B9A mov r0, r12 ldrb r3, [r0] movs r2, 0 mov r0, sp ldrb r0, [r0] cmp r0, r5 bne _08094BD0 mov r0, sp ldrb r7, [r0] strb r3, [r0] b _08094BE4 .align 2, 0 _08094BCC: .4byte 0x0201606c _08094BD0: adds r2, 0x1 cmp r2, 0x5 bgt _08094BE4 mov r0, sp adds r1, r0, r2 ldrb r0, [r1] cmp r0, r5 bne _08094BD0 adds r7, r0, 0 strb r3, [r1] _08094BE4: cmp r2, 0x6 beq _08094C16 mov r0, r12 strb r7, [r0] mov r0, sp ldrb r0, [r0] lsls r0, 4 mov r1, sp ldrb r1, [r1, 0x1] orrs r0, r1 strb r0, [r4] mov r0, sp ldrb r0, [r0, 0x2] lsls r0, 4 mov r1, sp ldrb r1, [r1, 0x3] orrs r0, r1 strb r0, [r4, 0x1] mov r0, sp ldrb r0, [r0, 0x4] lsls r0, 4 mov r1, sp ldrb r1, [r1, 0x5] orrs r0, r1 strb r0, [r4, 0x2] _08094C16: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8094B6C thumb_func_start sub_8094C20 sub_8094C20: @ 8094C20 push {lr} lsls r0, 24 lsrs r2, r0, 24 movs r1, 0x1 ands r1, r2 lsrs r2, r0, 25 cmp r1, 0 beq _08094C40 ldr r0, _08094C3C adds r0, r2, r0 ldrb r0, [r0] movs r1, 0xF ands r1, r0 b _08094C48 .align 2, 0 _08094C3C: .4byte 0x02038470 _08094C40: ldr r0, _08094C50 adds r0, r2, r0 ldrb r0, [r0] lsrs r1, r0, 4 _08094C48: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _08094C50: .4byte 0x02038470 thumb_func_end sub_8094C20 thumb_func_start sub_8094C54 sub_8094C54: @ 8094C54 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r4, r1, 24 movs r1, 0x1 ands r1, r3 lsrs r3, r0, 25 cmp r1, 0 beq _08094C7C ldr r0, _08094C78 adds r0, r3, r0 ldrb r2, [r0] movs r1, 0xF0 ands r1, r2 orrs r1, r4 strb r1, [r0] b _08094C8C .align 2, 0 _08094C78: .4byte 0x02038470 _08094C7C: ldr r2, _08094C94 adds r2, r3, r2 ldrb r1, [r2] movs r0, 0xF ands r0, r1 lsls r1, r4, 4 orrs r0, r1 strb r0, [r2] _08094C8C: pop {r4} pop {r0} bx r0 .align 2, 0 _08094C94: .4byte 0x02038470 thumb_func_end sub_8094C54 thumb_func_start sub_8094C98 sub_8094C98: @ 8094C98 push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 adds r0, r5, 0 bl sub_8094C20 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 bl sub_8094C20 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_8094C54 adds r0, r6, 0 adds r1, r4, 0 bl sub_8094C54 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8094C98 thumb_func_start pokemon_order_func pokemon_order_func: @ 8094CD4 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 movs r3, 0 movs r2, 0 ldr r5, _08094CFC _08094CE0: adds r0, r3, r5 ldrb r1, [r0] lsrs r0, r1, 4 cmp r0, r4 beq _08094CF8 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 movs r0, 0xF ands r0, r1 cmp r0, r4 bne _08094D00 _08094CF8: adds r0, r2, 0 b _08094D12 .align 2, 0 _08094CFC: .4byte 0x02038470 _08094D00: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x2 bls _08094CE0 movs r0, 0 _08094D12: pop {r4,r5} pop {r1} bx r1 thumb_func_end pokemon_order_func thumb_func_start pokemon_change_order pokemon_change_order: @ 8094D18 push {r4,r5,lr} ldr r0, _08094D58 ldr r1, _08094D5C movs r2, 0x96 lsls r2, 2 bl memcpy movs r4, 0 movs r5, 0x64 _08094D2A: adds r0, r4, 0 bl pokemon_order_func lsls r0, 24 lsrs r0, 24 muls r0, r5 ldr r1, _08094D5C adds r0, r1 adds r1, r4, 0 muls r1, r5 ldr r2, _08094D58 adds r1, r2 movs r2, 0x64 bl memcpy adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _08094D2A pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08094D58: .4byte 0x0201b000 _08094D5C: .4byte 0x03004360 thumb_func_end pokemon_change_order thumb_func_start sub_8094D60 sub_8094D60: @ 8094D60 push {r4,r5,lr} ldr r4, _08094DA8 add sp, r4 ldr r1, _08094DAC movs r2, 0x96 lsls r2, 2 mov r0, sp bl memcpy movs r4, 0 movs r5, 0x64 _08094D76: adds r0, r4, 0 bl sub_8094C20 lsls r0, 24 lsrs r0, 24 muls r0, r5 ldr r1, _08094DAC adds r0, r1 adds r1, r4, 0 muls r1, r5 add r1, sp movs r2, 0x64 bl memcpy adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _08094D76 movs r3, 0x96 lsls r3, 2 add sp, r3 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08094DA8: .4byte 0xfffffda8 _08094DAC: .4byte 0x03004360 thumb_func_end sub_8094D60 thumb_func_start unref_sub_8094DB0 unref_sub_8094DB0: @ 8094DB0 push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0x1 movs r7, 0x64 ldr r0, _08094E08 mov r8, r0 _08094DBE: adds r0, r6, 0 bl sub_8094C20 lsls r0, 24 lsrs r0, 24 muls r0, r7 mov r1, r8 adds r5, r0, r1 adds r0, r5, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _08094E0C adds r0, r5, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _08094E0C movs r0, 0 bl sub_8094C20 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 adds r1, r6, 0 bl sub_8094C98 adds r0, r4, 0 muls r0, r7 add r0, r8 adds r1, r5, 0 bl sub_806E6F0 b _08094E16 .align 2, 0 _08094E08: .4byte 0x03004360 _08094E0C: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x5 bls _08094DBE _08094E16: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end unref_sub_8094DB0 thumb_func_start sub_8094E20 sub_8094E20: @ 8094E20 push {lr} ldr r3, _08094E44 ldrb r1, [r3, 0x8] movs r2, 0x80 orrs r1, r2 strb r1, [r3, 0x8] ldr r1, _08094E48 strb r0, [r1] bl nullsub_14 bl pokemon_change_order movs r0, 0x1 movs r1, 0xFF bl sub_806AFAC pop {r0} bx r0 .align 2, 0 _08094E44: .4byte 0x0202f388 _08094E48: .4byte 0x02038473 thumb_func_end sub_8094E20 thumb_func_start sub_8094E4C sub_8094E4C: @ 8094E4C push {lr} movs r0, 0x3 bl sub_8094E20 pop {r0} bx r0 thumb_func_end sub_8094E4C thumb_func_start sub_8094E58 sub_8094E58: @ 8094E58 push {r4,r5,lr} ldr r1, _08094E78 movs r2, 0x99 lsls r2, 2 adds r0, r1, r2 movs r3, 0 ldrsh r0, [r0, r3] adds r4, r1, 0 cmp r0, 0xA bls _08094E6E b _08095048 _08094E6E: lsls r0, 2 ldr r1, _08094E7C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08094E78: .4byte 0x0201b000 _08094E7C: .4byte _08094E80 .align 2, 0 _08094E80: .4byte _08094EAC .4byte _08094F28 .4byte _08094F3C .4byte _08094F4A .4byte _08094F6C .4byte _08094F80 .4byte _08094F94 .4byte _08094FA8 .4byte _08094FBC .4byte _08094FD0 .4byte _08095000 _08094EAC: bl sub_806B528 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08094EDC ldr r1, _08094ED4 ldr r0, _08094ED8 adds r4, r1, r0 ldrh r2, [r4] movs r3, 0 ldrsh r0, [r4, r3] cmp r0, 0x6 bne _08094EEC movs r0, 0 strh r0, [r4] movs r3, 0x99 lsls r3, 2 adds r1, r3 b _08094FEC .align 2, 0 _08094ED4: .4byte 0x0201b000 _08094ED8: .4byte 0x00000266 _08094EDC: ldr r1, _08094F10 ldr r0, _08094F14 adds r4, r1, r0 ldrh r2, [r4] movs r3, 0 ldrsh r0, [r4, r3] cmp r0, 0x5 bgt _08094F1C _08094EEC: movs r3, 0x98 lsls r3, 2 adds r0, r1, r3 ldrb r0, [r0] lsls r1, r2, 24 lsrs r1, 24 movs r2, 0 ldrsh r3, [r4, r2] movs r2, 0x64 muls r2, r3 ldr r3, _08094F18 adds r2, r3 bl sub_806D90C ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _08095048 .align 2, 0 _08094F10: .4byte 0x0201b000 _08094F14: .4byte 0x00000266 _08094F18: .4byte 0x03004360 _08094F1C: movs r0, 0 strh r0, [r4] movs r3, 0x99 lsls r3, 2 adds r1, r3 b _08094FEC _08094F28: bl sub_806DA98 ldr r1, _08094F38 movs r0, 0x99 lsls r0, 2 adds r1, r0 b _08094FEC .align 2, 0 _08094F38: .4byte 0x0201b000 _08094F3C: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] bl sub_806DC34 b _08094FE6 _08094F4A: movs r3, 0x98 lsls r3, 2 adds r0, r4, r3 ldrb r0, [r0] ldr r1, _08094F68 adds r5, r4, r1 ldrb r1, [r5] bl sub_806BD58 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08094FE2 b _08094FF8 .align 2, 0 _08094F68: .4byte 0x00000266 _08094F6C: bl sub_806E334 ldr r1, _08094F7C movs r3, 0x99 lsls r3, 2 adds r1, r3 b _08094FEC .align 2, 0 _08094F7C: .4byte 0x0201b000 _08094F80: bl sub_806E0C4 ldr r1, _08094F90 movs r0, 0x99 lsls r0, 2 adds r1, r0 b _08094FEC .align 2, 0 _08094F90: .4byte 0x0201b000 _08094F94: bl sub_806E53C ldr r1, _08094FA4 movs r2, 0x99 lsls r2, 2 adds r1, r2 b _08094FEC .align 2, 0 _08094FA4: .4byte 0x0201b000 _08094FA8: bl nullsub_13 ldr r1, _08094FB8 movs r3, 0x99 lsls r3, 2 adds r1, r3 b _08094FEC .align 2, 0 _08094FB8: .4byte 0x0201b000 _08094FBC: bl sub_806E6C8 ldr r1, _08094FCC movs r0, 0x99 lsls r0, 2 adds r1, r0 b _08094FEC .align 2, 0 _08094FCC: .4byte 0x0201b000 _08094FD0: ldr r1, _08094FF4 adds r5, r4, r1 ldrb r0, [r5] bl sub_806B58C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08094FF8 _08094FE2: movs r0, 0 strh r0, [r5] _08094FE6: movs r2, 0x99 lsls r2, 2 adds r1, r4, r2 _08094FEC: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _08095048 .align 2, 0 _08094FF4: .4byte 0x00000266 _08094FF8: ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] b _08095048 _08095000: ldr r0, _08095024 ldrb r4, [r0] cmp r4, 0x3 bne _0809503C ldr r0, _08095028 ldrh r0, [r0] bl sub_8070E48 lsls r0, 24 lsrs r0, 24 cmp r0, 0xA bne _08095034 ldr r0, _0809502C ldr r3, _08095030 adds r0, r3 movs r1, 0xFF strb r1, [r0] b _0809503C .align 2, 0 _08095024: .4byte 0x02038473 _08095028: .4byte 0x0203855e _0809502C: .4byte 0x0201b000 _08095030: .4byte 0x00000259 _08095034: ldr r0, _08095040 ldr r1, _08095044 adds r0, r1 strb r4, [r0] _0809503C: movs r0, 0x1 b _0809504A .align 2, 0 _08095040: .4byte 0x0201b000 _08095044: .4byte 0x00000259 _08095048: movs r0, 0 _0809504A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8094E58 thumb_func_start sub_8095050 sub_8095050: @ 8095050 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r1, 24 movs r0, 0x64 muls r0, r1 ldr r1, _0809508C adds r0, r1 movs r1, 0x2D bl PokemonGetField adds r5, r0, 0 cmp r5, 0 bne _080950C8 ldr r0, _08095090 ldrb r4, [r0] cmp r4, 0x1 bne _0809509C ldr r3, _08095094 ldr r2, _08095098 movs r0, 0x98 lsls r0, 2 adds r2, r0 ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r3 b _080950DE .align 2, 0 _0809508C: .4byte 0x03004360 _08095090: .4byte 0x02038473 _08095094: .4byte 0x03004b20 _08095098: .4byte 0x0201b000 _0809509C: ldr r3, _080950C0 ldr r2, _080950C4 movs r0, 0x98 lsls r0, 2 adds r2, r0 ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r3 strh r5, [r0, 0x10] ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r3 strh r5, [r0, 0x12] b _080950EC .align 2, 0 _080950C0: .4byte 0x03004b20 _080950C4: .4byte 0x0201b000 _080950C8: ldr r3, _08095108 ldr r2, _0809510C movs r0, 0x98 lsls r0, 2 adds r2, r0 ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r3 movs r4, 0x2 _080950DE: strh r4, [r0, 0x10] ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r3 strh r4, [r0, 0x12] _080950EC: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r3 ldrb r0, [r0, 0x10] ldr r1, _08095110 ldr r2, _08095114 movs r3, 0 bl sub_806E750 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08095108: .4byte 0x03004b20 _0809510C: .4byte 0x0201b000 _08095110: .4byte gUnknown_083B5FF4 _08095114: .4byte gUnknown_083B5FCC thumb_func_end sub_8095050 thumb_func_start sub_8095118 sub_8095118: @ 8095118 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08095150 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0809512C b _08095268 _0809512C: ldr r0, _08095154 ldrb r0, [r0] cmp r0, 0x3 bne _08095164 ldr r5, _08095158 ldrh r0, [r5] bl sub_8070E48 lsls r0, 24 lsrs r0, 24 cmp r0, 0xA bne _08095164 ldr r0, _0809515C ldrh r1, [r5] ldr r2, _08095160 ldr r3, [r0] b _080951AA .align 2, 0 _08095150: .4byte 0x0202f388 _08095154: .4byte 0x02038473 _08095158: .4byte 0x0203855e _0809515C: .4byte 0x03004ae4 _08095160: .4byte sub_80952E4 _08095164: adds r0, r4, 0 bl sub_806BD80 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 beq _08095178 cmp r0, 0x2 beq _08095214 b _08095268 _08095178: ldr r0, _080951B4 ldrb r0, [r0] cmp r0, 0x3 bne _080951C8 adds r0, r4, 0 bl sub_806CA38 lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _080951B8 adds r0, r1 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _0809521C bl sub_806D5A4 ldr r3, _080951BC ldr r0, _080951C0 ldrh r1, [r0] ldr r2, _080951C4 ldr r3, [r3] _080951AA: adds r0, r4, 0 bl _call_via_r3 b _08095268 .align 2, 0 _080951B4: .4byte 0x02038473 _080951B8: .4byte 0x03004360 _080951BC: .4byte 0x03004ae4 _080951C0: .4byte 0x0203855e _080951C4: .4byte sub_80952E4 _080951C8: movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_806CA38 lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _08095204 adds r0, r1 ldr r1, _08095208 bl GetMonNickname adds r0, r4, 0 bl sub_806CA38 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_8095050 ldr r1, _0809520C ldr r2, _08095210 adds r0, r4, 0 bl SetTaskFuncWithFollowupFunc b _08095268 .align 2, 0 _08095204: .4byte 0x03004360 _08095208: .4byte 0x020231cc _0809520C: .4byte sub_8095408 _08095210: .4byte sub_8095118 _08095214: ldr r5, _08095224 ldrb r0, [r5] cmp r0, 0x1 bne _08095228 _0809521C: movs r0, 0x20 bl audio_play b _08095268 .align 2, 0 _08095224: .4byte 0x02038473 _08095228: movs r0, 0x5 bl audio_play ldrb r0, [r5] cmp r0, 0x3 bne _08095254 ldr r1, _08095248 movs r0, 0 strb r0, [r1] ldr r1, _0809524C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08095250 b _08095266 .align 2, 0 _08095248: .4byte 0x0202e8f4 _0809524C: .4byte 0x03004b20 _08095250: .4byte sub_80952E4 _08095254: ldr r1, _08095270 movs r0, 0 strb r0, [r1] ldr r1, _08095274 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08095278 _08095266: str r1, [r0] _08095268: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08095270: .4byte 0x0202e8f4 _08095274: .4byte 0x03004b20 _08095278: .4byte sub_809527C thumb_func_end sub_8095118 thumb_func_start sub_809527C sub_809527C: @ 809527C 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, _080952AC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080952B0 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080952AC: .4byte 0x03004b20 _080952B0: .4byte sub_80952B4 thumb_func_end sub_809527C thumb_func_start sub_80952B4 sub_80952B4: @ 80952B4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080952DC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080952D6 bl sub_8094D60 adds r0, r4, 0 bl DestroyTask ldr r0, _080952E0 bl SetMainCallback2 _080952D6: pop {r4} pop {r0} bx r0 .align 2, 0 _080952DC: .4byte 0x0202f388 _080952E0: .4byte sub_802E414 thumb_func_end sub_80952B4 thumb_func_start sub_80952E4 sub_80952E4: @ 80952E4 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080952FC ldrb r1, [r0] cmp r1, 0 beq _08095300 adds r0, r4, 0 bl sub_809527C b _0809531E .align 2, 0 _080952FC: .4byte 0x0202e8f4 _08095300: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _08095328 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0809532C str r1, [r0] _0809531E: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08095328: .4byte 0x03004b20 _0809532C: .4byte sub_8095330 thumb_func_end sub_80952E4 thumb_func_start sub_8095330 sub_8095330: @ 8095330 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08095358 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08095350 bl sub_8094D60 adds r0, r4, 0 bl DestroyTask bl sub_80A6DCC _08095350: pop {r4} pop {r0} bx r0 .align 2, 0 _08095358: .4byte 0x0202f388 thumb_func_end sub_8095330 thumb_func_start sub_809535C sub_809535C: @ 809535C push {lr} ldr r2, _08095380 ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r2, _08095384 movs r0, 0x1 movs r1, 0xFF movs r3, 0x5 bl sub_806AF4C ldr r0, _08095388 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _08095380: .4byte 0x0202f388 _08095384: .4byte sub_8095118 _08095388: .4byte sub_809538C thumb_func_end sub_809535C thumb_func_start sub_809538C sub_809538C: @ 809538C push {r4,r5,lr} ldr r4, _080953D8 ldr r5, _080953DC _08095392: bl sub_806B124 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080953F4 ldrb r0, [r4] ldrb r1, [r5] bl sub_806C994 ldrb r0, [r4] movs r1, 0 bl sub_806BF74 ldrb r1, [r5] movs r0, 0x64 muls r0, r1 ldr r1, _080953E0 adds r0, r1 ldr r1, _080953E4 bl GetMonNickname ldrb r0, [r4] ldrb r1, [r5] bl sub_8095050 ldrb r0, [r4] ldr r1, _080953E8 ldr r2, _080953EC bl SetTaskFuncWithFollowupFunc ldr r0, _080953F0 bl SetMainCallback2 b _08095400 .align 2, 0 _080953D8: .4byte 0x0201b260 _080953DC: .4byte 0x020384f0 _080953E0: .4byte 0x03004360 _080953E4: .4byte 0x020231cc _080953E8: .4byte sub_8095408 _080953EC: .4byte sub_8095118 _080953F0: .4byte sub_806AEDC _080953F4: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08095392 _08095400: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_809538C thumb_func_start sub_8095408 sub_8095408: @ 8095408 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 adds r4, r7, 0 ldr r0, _0809543C ldrb r1, [r0, 0x7] movs r3, 0x80 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _080954B8 ldr r2, _08095440 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08095444 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 bl MoveMenuCursor b _080954B8 .align 2, 0 _0809543C: .4byte 0x0202f388 _08095440: .4byte 0x03001770 _08095444: adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0809545A movs r0, 0x5 bl audio_play movs r0, 0x1 bl MoveMenuCursor b _080954B8 _0809545A: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080954A4 movs r0, 0x5 bl audio_play ldr r1, _08095498 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrb r4, [r0, 0x10] ldr r5, _0809549C ldr r6, _080954A0 bl GetMenuCursorPos adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_806E81C adds r1, r0, 0 adds r0, r7, 0 bl _call_via_r1 b _080954B8 .align 2, 0 _08095498: .4byte 0x03004b20 _0809549C: .4byte gUnknown_083B5FF4 _080954A0: .4byte gUnknown_083B5FCC _080954A4: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080954B8 movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_80958C4 _080954B8: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8095408 thumb_func_start sub_80954C0 sub_80954C0: @ 80954C0 push {lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _080954D8 ldrb r0, [r0] cmp r0, 0 bne _080954D4 adds r0, r1, 0 bl sub_80958C4 _080954D4: pop {r0} bx r0 .align 2, 0 _080954D8: .4byte 0x0202e8f6 thumb_func_end sub_80954C0 thumb_func_start sub_80954DC sub_80954DC: @ 80954DC push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_806CA38 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0809552C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08095522 adds r0, r4, 0 bl DestroyTask ldr r0, _08095530 ldr r1, _08095534 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, _08095538 ldr r1, _0809553C ldrb r2, [r1] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, _08095540 movs r1, 0x4 str r1, [sp] adds r1, r5, 0 bl sub_809D8BC _08095522: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809552C: .4byte 0x0202f388 _08095530: .4byte 0x0201b000 _08095534: .4byte 0x00000262 _08095538: .4byte 0x03004360 _0809553C: .4byte 0x03004350 _08095540: .4byte sub_809535C thumb_func_end sub_80954DC thumb_func_start sub_8095544 sub_8095544: @ 8095544 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_806CA38 ldr r1, _0809557C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08095580 str r1, [r0] movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0809557C: .4byte 0x03004b20 _08095580: .4byte sub_80954DC thumb_func_end sub_8095544 thumb_func_start sub_8095584 sub_8095584: @ 8095584 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080955F8 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x10] ldr r1, _080955FC bl sub_806E7D0 adds r0, r6, 0 bl sub_806CA38 lsls r0, 24 lsrs r5, r0, 24 bl sub_806B528 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08095610 cmp r5, 0x1 beq _080955C6 cmp r5, 0x4 beq _080955C6 cmp r5, 0x5 bne _08095610 _080955C6: bl sub_806D5A4 ldr r4, _08095600 bl sub_8040D08 adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldr r4, _08095604 ldr r1, _08095608 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0 bl sub_806E834 ldr r1, _080955F8 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _0809560C b _0809589A .align 2, 0 _080955F8: .4byte 0x03004b20 _080955FC: .4byte gUnknown_083B5FF4 _08095600: .4byte 0x020231cc _08095604: .4byte 0x020234cc _08095608: .4byte gUnknown_0840F046 _0809560C: .4byte sub_80954C0 _08095610: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _08095654 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 bne _0809566C bl sub_806D5A4 ldr r1, _08095658 adds r0, r4, 0 bl GetMonNickname ldr r4, _0809565C ldr r1, _08095660 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0 bl sub_806E834 ldr r1, _08095664 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _08095668 b _0809589A .align 2, 0 _08095654: .4byte 0x03004360 _08095658: .4byte 0x020231cc _0809565C: .4byte 0x020234cc _08095660: .4byte gUnknown_0840F023 _08095664: .4byte 0x03004b20 _08095668: .4byte sub_80954C0 _0809566C: movs r4, 0 ldr r0, _08095678 lsls r1, r6, 2 mov r8, r1 b _080956A8 .align 2, 0 _08095678: .4byte 0x02024a68 _0809567C: adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080956A0 adds r0, r5, 0 bl sub_8094C20 lsls r0, 24 ldr r2, _080956EC lsls r1, r4, 1 adds r1, r2 lsrs r0, 24 ldrh r1, [r1] cmp r0, r1 bne _080956A0 b _08095808 _080956A0: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080956F0 _080956A8: ldrb r0, [r0] cmp r4, r0 bcc _0809567C movs r2, 0x64 mov r9, r2 mov r0, r9 muls r0, r5 ldr r1, _080956F4 mov r10, r1 adds r7, r0, r1 adds r0, r7, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 beq _08095708 bl sub_806D5A4 ldr r4, _080956F8 ldr r1, _080956FC adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0 bl sub_806E834 ldr r1, _08095700 mov r2, r8 adds r0, r2, r6 lsls r0, 3 adds r0, r1 ldr r1, _08095704 b _0809589A .align 2, 0 _080956EC: .4byte 0x02024a6a _080956F0: .4byte 0x02024a68 _080956F4: .4byte 0x03004360 _080956F8: .4byte 0x020234cc _080956FC: .4byte gUnknown_0840F079 _08095700: .4byte 0x03004b20 _08095704: .4byte sub_80954C0 _08095708: adds r0, r5, 0 bl sub_8094C20 ldr r1, _0809574C ldr r2, _08095750 adds r1, r2 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bne _08095768 bl sub_806D5A4 ldr r1, _08095754 adds r0, r7, 0 bl GetMonNickname ldr r4, _08095758 ldr r1, _0809575C adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0 bl sub_806E834 ldr r1, _08095760 mov r2, r8 adds r0, r2, r6 lsls r0, 3 adds r0, r1 ldr r1, _08095764 b _0809589A .align 2, 0 _0809574C: .4byte 0x02000000 _08095750: .4byte 0x0001609d _08095754: .4byte 0x020231cc _08095758: .4byte 0x020234cc _0809575C: .4byte gUnknown_0840F003 _08095760: .4byte 0x03004b20 _08095764: .4byte sub_80954C0 _08095768: ldr r0, _08095790 ldrb r0, [r0] cmp r0, 0x4 bne _080957A0 bl sub_806D5A4 bl sub_8040B8C ldr r0, _08095794 movs r1, 0 bl sub_806E834 ldr r1, _08095798 mov r2, r8 adds r0, r2, r6 lsls r0, 3 adds r0, r1 ldr r1, _0809579C b _0809589A .align 2, 0 _08095790: .4byte 0x02038473 _08095794: .4byte 0x020234cc _08095798: .4byte 0x03004b20 _0809579C: .4byte sub_80954C0 _080957A0: cmp r0, 0x2 bne _08095854 ldr r0, _080957EC ldrb r4, [r0] bl sub_806D5A4 ldr r0, _080957F0 lsls r4, 1 adds r4, r0 ldrb r0, [r4] bl pokemon_order_func lsls r0, 24 lsrs r0, 24 mov r1, r9 muls r1, r0 adds r0, r1, 0 add r0, r10 ldr r1, _080957F4 bl GetMonNickname ldr r4, _080957F8 ldr r1, _080957FC adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0 bl sub_806E834 ldr r1, _08095800 mov r2, r8 adds r0, r2, r6 lsls r0, 3 adds r0, r1 ldr r1, _08095804 b _0809589A .align 2, 0 _080957EC: .4byte 0x02024e6c _080957F0: .4byte 0x02024a6a _080957F4: .4byte 0x020231cc _080957F8: .4byte 0x020234cc _080957FC: .4byte gUnknown_0840EFCC _08095800: .4byte 0x03004b20 _08095804: .4byte sub_80954C0 _08095808: bl sub_806D5A4 movs r0, 0x64 muls r0, r5 ldr r1, _0809583C adds r0, r1 ldr r1, _08095840 bl GetMonNickname ldr r4, _08095844 ldr r1, _08095848 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0 bl sub_806E834 ldr r1, _0809584C mov r2, r8 adds r0, r2, r6 lsls r0, 3 adds r0, r1 ldr r1, _08095850 b _0809589A .align 2, 0 _0809583C: .4byte 0x03004360 _08095840: .4byte 0x020231cc _08095844: .4byte 0x020234cc _08095848: .4byte gUnknown_0840EFE8 _0809584C: .4byte 0x03004b20 _08095850: .4byte sub_80954C0 _08095854: adds r0, r5, 0 bl sub_8094C20 ldr r1, _080958AC strb r0, [r1] ldr r1, _080958B0 movs r0, 0x1 strb r0, [r1] ldr r1, _080958B4 ldr r0, _080958B8 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrb r0, [r0] bl pokemon_order_func adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 adds r1, r5, 0 bl sub_8094C98 mov r0, r9 muls r0, r4 add r0, r10 adds r1, r7, 0 bl sub_806E6F0 ldr r1, _080958BC mov r2, r8 adds r0, r2, r6 lsls r0, 3 adds r0, r1 ldr r1, _080958C0 _0809589A: str r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080958AC: .4byte 0x0202e8f5 _080958B0: .4byte 0x0202e8f4 _080958B4: .4byte 0x02024a6a _080958B8: .4byte 0x02024e6c _080958BC: .4byte 0x03004b20 _080958C0: .4byte sub_809527C thumb_func_end sub_8095584 thumb_func_start sub_80958C4 sub_80958C4: @ 80958C4 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 bl sub_8072DEC ldr r0, _080958FC lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 ldrb r0, [r4, 0x10] ldr r1, _08095900 bl sub_806E7D0 ldrh r0, [r4, 0x12] strh r0, [r4, 0x10] movs r0, 0 movs r1, 0 bl sub_806D538 adds r0, r5, 0 bl SwitchTaskToFollowupFunc pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080958FC: .4byte 0x03004b20 _08095900: .4byte gUnknown_083B5FF4 thumb_func_end sub_80958C4 thumb_func_start sub_8095904 sub_8095904: @ 8095904 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C str r0, [sp] adds r7, r1, 0 adds r4, r2, 0 ldr r0, [sp, 0x3C] lsls r4, 24 lsrs r4, 24 lsls r3, 16 lsrs r3, 16 str r3, [sp, 0x4] lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x8] ldr r0, [sp] bl StringLength lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r4, 0 bne _08095988 movs r5, 0 cmp r5, r8 bcs _08095A2E _0809593E: ldr r1, [sp] adds r0, r1, r5 ldrb r2, [r0] ldr r0, _08095980 ands r0, r2 lsls r0, 6 movs r1, 0xF ands r2, r1 lsls r2, 5 adds r0, r2 ldr r1, _08095984 adds r4, r0, r1 adds r0, r4, 0 adds r1, r7, 0 movs r2, 0x10 bl CpuSet movs r2, 0x80 lsls r2, 2 adds r0, r4, r2 ldr r3, [sp, 0x4] adds r1, r7, r3 movs r2, 0x10 bl CpuSet adds r7, 0x20 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r8 bcc _0809593E b _08095A2E .align 2, 0 _08095980: .4byte 0x0000fff0 _08095984: .4byte gFont3LatinGlyphs _08095988: movs r0, 0 mov r9, r0 ldr r1, [sp, 0x8] lsls r0, r1, 28 lsrs r0, 24 str r0, [sp, 0xC] mov r2, r8 lsls r0, r2, 21 movs r1, 0 lsrs r0, 1 str r0, [sp, 0x10] _0809599E: movs r5, 0 ldr r3, [sp, 0x4] adds r3, r7, r3 str r3, [sp, 0x14] adds r0, r1, 0x1 str r0, [sp, 0x18] cmp r5, r8 bcs _08095A12 movs r2, 0xF mov r12, r2 lsls r1, 9 ldr r0, _08095A40 adds r1, r0 mov r10, r1 _080959BA: ldr r3, [sp] adds r0, r3, r5 ldrb r1, [r0] ldr r0, _08095A44 ands r0, r1 lsls r0, 6 mov r2, r12 ands r1, r2 lsls r1, 5 adds r0, r1 mov r3, r10 adds r4, r0, r3 movs r6, 0 adds r5, 0x1 _080959D6: ldrb r0, [r4] movs r3, 0xF0 ands r3, r0 mov r2, r12 ands r2, r0 cmp r3, 0 bne _080959E6 ldr r3, [sp, 0xC] _080959E6: cmp r2, 0 bne _080959EC ldr r2, [sp, 0x8] _080959EC: mov r0, r9 adds r1, r0, 0x1 lsls r1, 16 lsrs r1, 16 mov r9, r1 ldr r1, [sp, 0x40] adds r0, r1, r0 orrs r3, r2 strb r3, [r0] adds r4, 0x1 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x1F bls _080959D6 lsls r0, r5, 16 lsrs r5, r0, 16 cmp r5, r8 bcc _080959BA _08095A12: ldr r0, [sp, 0x40] adds r1, r7, 0 ldr r3, [sp, 0x10] lsrs r2, r3, 16 bl CpuSet ldr r7, [sp, 0x14] movs r0, 0 mov r9, r0 ldr r1, [sp, 0x18] lsls r0, r1, 16 lsrs r1, r0, 16 cmp r1, 0x1 bls _0809599E _08095A2E: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08095A40: .4byte gFont3LatinGlyphs _08095A44: .4byte 0x0000fff0 thumb_func_end sub_8095904 thumb_func_start unref_sub_8095A48 unref_sub_8095A48: @ 8095A48 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 adds r4, r0, 0 adds r5, r1, 0 lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 lsrs r7, r3, 24 movs r6, 0 _08095A60: movs r3, 0 ldrb r0, [r4] adds r1, r0, 0 adds r2, r0, 0 cmp r1, 0xFF beq _08095ACE _08095A6C: mov r0, sp adds r0, r3 adds r0, 0x8 strb r2, [r0] adds r4, 0x1 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bhi _08095AA8 ldrb r0, [r4] adds r1, r0, 0 adds r2, r0, 0 cmp r1, 0xFF bne _08095A6C cmp r3, 0 beq _08095ACE movs r6, 0x1 cmp r3, 0x3 bhi _08095AA8 movs r2, 0 _08095A96: adds r0, r3, 0 adds r1, r0, 0x1 lsls r1, 16 lsrs r3, r1, 16 add r0, sp adds r0, 0x8 strb r2, [r0] cmp r3, 0x3 bls _08095A96 _08095AA8: mov r1, sp adds r1, r3 adds r1, 0x8 movs r0, 0xFF strb r0, [r1] str r7, [sp] ldr r0, [sp, 0x28] str r0, [sp, 0x4] add r0, sp, 0x8 adds r1, r5, 0 mov r2, r8 movs r3, 0x80 bl sub_8095904 movs r0, 0x80 lsls r0, 1 adds r5, r0 cmp r6, 0 beq _08095A60 _08095ACE: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end unref_sub_8095A48 thumb_func_start sub_8095ADC sub_8095ADC: @ 8095ADC push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 movs r4, 0 movs r5, 0 lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r6, r0, 5 _08095AF0: lsls r0, r4, 2 adds r0, r4 lsls r0, 4 ldr r1, _08095B20 adds r0, r1 adds r0, r6, r0 movs r1, 0xB bl PokemonGetEncryptedField cmp r0, 0 beq _08095B0C adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _08095B0C: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1D bls _08095AF0 lsls r0, r5, 24 lsrs r0, 24 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08095B20: .4byte 0x020300a4 thumb_func_end sub_8095ADC thumb_func_start sub_8095B24 sub_8095B24: @ 8095B24 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 movs r4, 0 lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r5, r0, 5 _08095B36: lsls r0, r4, 2 adds r0, r4 lsls r0, 4 ldr r1, _08095B54 adds r0, r1 adds r0, r5, r0 movs r1, 0xB bl PokemonGetEncryptedField cmp r0, 0 bne _08095B58 lsls r0, r4, 16 asrs r0, 16 b _08095B66 .align 2, 0 _08095B54: .4byte 0x020300a4 _08095B58: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1D bls _08095B36 movs r0, 0x1 negs r0, r0 _08095B66: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8095B24 thumb_func_start sub_8095B6C sub_8095B6C: @ 8095B6C push {r4-r6,lr} movs r5, 0 movs r6, 0 _08095B72: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _08095BB0 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _08095B9A adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _08095B9A adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _08095B9A: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x5 bls _08095B72 lsls r0, r6, 24 lsrs r0, 24 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08095BB0: .4byte 0x03004360 thumb_func_end sub_8095B6C thumb_func_start sub_8095BB4 sub_8095BB4: @ 8095BB4 push {r4-r7,lr} lsls r0, 24 movs r5, 0 movs r6, 0 lsrs r7, r0, 24 _08095BBE: cmp r5, r7 beq _08095BF6 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _08095C0C adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _08095BF6 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _08095BF6 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _08095BF6 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _08095BF6: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x5 bls _08095BBE lsls r0, r6, 24 lsrs r0, 24 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08095C0C: .4byte 0x03004360 thumb_func_end sub_8095BB4 thumb_func_start sub_8095C10 sub_8095C10: @ 8095C10 push {lr} ldr r0, _08095C24 ldrb r0, [r0] bl sub_8095BB4 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08095C24: .4byte 0x0202e8cc thumb_func_end sub_8095C10 thumb_func_start sub_8095C28 sub_8095C28: @ 8095C28 push {r4,r5,lr} movs r4, 0 movs r5, 0 _08095C2E: movs r0, 0x64 muls r0, r4 ldr r1, _08095C5C adds r0, r1 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _08095C46 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _08095C46: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x5 bls _08095C2E lsls r0, r5, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08095C5C: .4byte 0x03004360 thumb_func_end sub_8095C28 thumb_func_start unref_sub_8095C60 unref_sub_8095C60: @ 8095C60 push {r4,r5,lr} adds r5, r0, 0 lsls r4, r2, 16 lsrs r4, 16 bl StringCopy adds r1, r0, 0 adds r5, r4 cmp r1, r5 bcs _08095C7E movs r0, 0 _08095C76: strb r0, [r1] adds r1, 0x1 cmp r1, r5 bcc _08095C76 _08095C7E: movs r0, 0xFF strb r0, [r1] adds r0, r1, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end unref_sub_8095C60 thumb_func_start sub_8095C8C sub_8095C8C: @ 8095C8C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r6, r0, 0 adds r7, r3, 0 ldr r5, [sp, 0x1C] ldr r4, [sp, 0x20] ldr r0, [sp, 0x24] mov r9, r0 ldr r0, [sp, 0x28] ldr r3, [sp, 0x2C] lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsls r5, 16 lsrs r5, 16 lsls r4, 16 lsrs r4, 16 lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r3, 16 lsrs r3, 16 mov r0, r9 lsls r0, 17 mov r9, r0 lsrs r2, 11 adds r2, r1 lsls r2, 1 adds r6, r2 adds r0, r4, 0 muls r0, r3 adds r0, r5 lsls r0, 1 adds r7, r0 movs r4, 0 cmp r4, r8 bcs _08095CFC mov r0, r9 lsrs r0, 1 mov r9, r0 lsls r5, r3, 1 _08095CE2: adds r0, r7, 0 adds r1, r6, 0 mov r3, r9 lsrs r2, r3, 16 bl CpuSet adds r6, 0x40 adds r7, r5 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r8 bcc _08095CE2 _08095CFC: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8095C8C thumb_func_start unref_sub_8095D08 unref_sub_8095D08: @ 8095D08 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r4, r0, 0 ldr r0, [sp, 0x28] lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsls r0, 16 lsrs r0, 16 mov r10, r0 lsrs r2, 11 adds r2, r1 lsls r2, 1 adds r4, r2 lsls r3, 17 lsrs r0, r3, 16 str r0, [sp, 0x4] movs r0, 0 cmp r0, r10 bcs _08095DB2 movs r6, 0x80 lsls r6, 5 mov r5, sp ldr r7, _08095D74 lsrs r3, 17 mov r9, r3 mov r1, r9 movs r2, 0x81 lsls r2, 24 orrs r1, r2 mov r9, r1 _08095D4E: adds r3, r4, 0 ldr r2, [sp, 0x4] movs r1, 0x40 adds r1, r4 mov r8, r1 adds r0, 0x1 mov r12, r0 cmp r2, r6 bhi _08095D78 movs r0, 0 strh r0, [r5] mov r2, sp str r2, [r7] str r4, [r7, 0x4] mov r0, r9 str r0, [r7, 0x8] ldr r0, [r7, 0x8] b _08095DA6 .align 2, 0 _08095D74: .4byte 0x040000d4 _08095D78: movs r4, 0 strh r4, [r5] ldr r1, _08095DC4 mov r0, sp str r0, [r1] str r3, [r1, 0x4] ldr r0, _08095DC8 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r6 subs r2, r6 cmp r2, r6 bhi _08095D78 strh r4, [r5] mov r0, sp str r0, [r1] str r3, [r1, 0x4] lsrs r0, r2, 1 movs r2, 0x81 lsls r2, 24 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _08095DA6: mov r4, r8 mov r1, r12 lsls r0, r1, 16 lsrs r0, 16 cmp r0, r10 bcc _08095D4E _08095DB2: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08095DC4: .4byte 0x040000d4 _08095DC8: .4byte 0x81000800 thumb_func_end unref_sub_8095D08 thumb_func_start sub_8095DCC sub_8095DCC: @ 8095DCC push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 24 lsrs r0, r3, 24 cmp r0, 0 beq _08095DE8 cmp r0, 0x2 bne _08095DEC _08095DE8: movs r2, 0x1 b _08095DEE _08095DEC: ldr r2, _08095E38 _08095DEE: subs r0, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08095E44 lsls r0, r1, 24 asrs r0, 24 lsls r2, 16 asrs r1, r2, 16 adds r1, r0 lsls r0, r1, 16 asrs r1, r0, 16 adds r6, r2, 0 cmp r1, 0 blt _08095E90 cmp r1, r7 bgt _08095E90 _08095E10: asrs r4, r0, 16 lsls r0, r4, 2 adds r0, r4 lsls r0, 4 add r0, r8 movs r1, 0xB bl PokemonGetEncryptedField cmp r0, 0 bne _08095E3C asrs r0, r6, 16 adds r0, r4, r0 lsls r0, 16 asrs r2, r0, 16 cmp r2, 0 blt _08095E90 cmp r2, r7 ble _08095E10 b _08095E90 .align 2, 0 _08095E38: .4byte 0x0000ffff _08095E3C: adds r0, r4, 0 b _08095E94 _08095E40: adds r0, r5, 0 b _08095E94 _08095E44: lsls r0, r1, 24 asrs r0, 24 lsls r2, 16 asrs r1, r2, 16 adds r1, r0 lsls r0, r1, 16 asrs r1, r0, 16 adds r6, r2, 0 cmp r1, 0 blt _08095E90 cmp r1, r7 bgt _08095E90 _08095E5C: asrs r5, r0, 16 lsls r0, r5, 2 adds r0, r5 lsls r0, 4 mov r1, r8 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetEncryptedField cmp r0, 0 beq _08095E80 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetEncryptedField cmp r0, 0 beq _08095E40 _08095E80: asrs r0, r6, 16 adds r0, r5, r0 lsls r0, 16 asrs r2, r0, 16 cmp r2, 0 blt _08095E90 cmp r2, r7 ble _08095E5C _08095E90: movs r0, 0x1 negs r0, r0 _08095E94: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8095DCC thumb_func_start sub_8095EA0 sub_8095EA0: @ 8095EA0 push {lr} movs r0, 0x2 movs r1, 0xF movs r2, 0x1B movs r3, 0x12 bl sub_8071EBC pop {r0} bx r0 thumb_func_end sub_8095EA0 thumb_func_start sub_8095EB4 sub_8095EB4: @ 8095EB4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _08095ED8 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x4 bls _08095ECE b _080960F4 _08095ECE: lsls r0, 2 ldr r1, _08095EDC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08095ED8: .4byte 0x03004b20 _08095EDC: .4byte _08095EE0 .align 2, 0 _08095EE0: .4byte _08095EF4 .4byte _08095F1C .4byte _08095F30 .4byte _08096042 .4byte _080960DC _08095EF4: ldrb r0, [r4, 0xA] bl sub_8096168 bl sub_8071FFC ldr r1, _08095F18 movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r0, [r0] movs r1, 0x2 movs r2, 0xF bl Print b _08095F28 .align 2, 0 _08095F18: .4byte gUnknown_083B600C _08095F1C: bl sub_807D770 lsls r0, 24 cmp r0, 0 bne _08095F28 b _080960F4 _08095F28: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080960F4 _08095F30: bl ProcessMenuInput lsls r0, 24 asrs r0, 24 strh r0, [r4, 0xC] movs r3, 0xC ldrsh r1, [r4, r3] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08095FC8 cmp r1, r0 bgt _08095F52 subs r0, 0x1 cmp r1, r0 beq _08095F58 b _08095FE8 _08095F52: cmp r1, 0x3 beq _08095FC8 b _08095FE8 _08095F58: ldrh r3, [r4, 0xA] strh r3, [r4, 0xE] ldr r2, _08095FC0 ldrh r1, [r2, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08095F76 subs r0, r3, 0x1 strh r0, [r4, 0xE] lsls r0, 16 cmp r0, 0 bge _08095F76 movs r0, 0x3 strh r0, [r4, 0xE] _08095F76: ldrh r1, [r2, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08095F92 ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _08095F92 movs r0, 0 strh r0, [r4, 0xE] _08095F92: lsls r0, r3, 16 asrs r0, 16 ldrh r2, [r4, 0xE] movs r3, 0xE ldrsh r1, [r4, r3] cmp r0, r1 bne _08095FA2 b _080960F4 _08095FA2: strh r2, [r4, 0xA] bl sub_8095EA0 ldr r0, _08095FC4 movs r2, 0xA ldrsh r1, [r4, r2] lsls r1, 3 adds r0, 0x4 adds r1, r0 ldr r0, [r1] movs r1, 0x2 movs r2, 0xF bl Print b _080960F4 .align 2, 0 _08095FC0: .4byte 0x03001770 _08095FC4: .4byte gUnknown_083B600C _08095FC8: bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0xD movs r3, 0x9 bl Reset bl script_env_2_disable bl script_env_2_enable_and_set_ctx_running adds r0, r5, 0 bl DestroyTask b _080960F4 _08095FE8: movs r3, 0xC ldrsh r0, [r4, r3] cmp r0, 0 bne _08096008 bl sub_8095C28 lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bne _08096008 bl sub_8095EA0 ldr r0, _08096004 b _08096022 .align 2, 0 _08096004: .4byte gUnknown_08410C40 _08096008: movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0x1 bne _08096034 bl sub_8095C28 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08096034 bl sub_8095EA0 ldr r0, _08096030 _08096022: movs r1, 0x2 movs r2, 0xF bl Print movs r0, 0x3 strh r0, [r4, 0x8] b _080960F4 .align 2, 0 _08096030: .4byte gUnknown_08410C1C _08096034: movs r0, 0x1 movs r1, 0 bl fade_screen movs r0, 0x4 strh r0, [r4, 0x8] b _080960F4 _08096042: ldr r0, _08096088 ldrh r1, [r0, 0x2E] movs r3, 0x3 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _080960B8 movs r0, 0x40 ands r0, r1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 beq _08096090 ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 cmp r0, 0 bge _0809606A strh r3, [r4, 0xA] _0809606A: movs r0, 0x1 negs r0, r0 bl MoveMenuCursor bl GetMenuCursorPos lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xA] bl sub_8095EA0 ldr r1, _0809608C movs r3, 0xA ldrsh r0, [r4, r3] b _080960C2 .align 2, 0 _08096088: .4byte 0x03001770 _0809608C: .4byte gUnknown_083B600C _08096090: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080960F4 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080960A8 strh r2, [r4, 0xA] _080960A8: movs r0, 0x1 bl MoveMenuCursor bl GetMenuCursorPos lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xA] _080960B8: bl sub_8095EA0 ldr r1, _080960D8 movs r2, 0xA ldrsh r0, [r4, r2] _080960C2: lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r0, [r0] movs r1, 0x2 movs r2, 0xF bl Print movs r0, 0x2 strh r0, [r4, 0x8] b _080960F4 .align 2, 0 _080960D8: .4byte gUnknown_083B600C _080960DC: ldr r0, _080960FC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080960F4 ldrb r0, [r4, 0xC] bl task_intro_29 adds r0, r5, 0 bl DestroyTask _080960F4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080960FC: .4byte 0x0202f388 thumb_func_end sub_8095EB4 thumb_func_start sub_8096100 sub_8096100: @ 8096100 push {lr} ldr r0, _08096128 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0809612C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0x8] strh r0, [r1, 0xA] bl script_env_2_enable pop {r0} bx r0 .align 2, 0 _08096128: .4byte sub_8095EB4 _0809612C: .4byte 0x03004b20 thumb_func_end sub_8096100 thumb_func_start sub_8096130 sub_8096130: @ 8096130 push {lr} ldr r0, _0809615C movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08096160 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0x8] ldr r0, _08096164 ldrb r0, [r0] strh r0, [r1, 0xA] bl pal_fill_black pop {r0} bx r0 .align 2, 0 _0809615C: .4byte sub_8095EB4 _08096160: .4byte 0x03004b20 _08096164: .4byte 0x02038474 thumb_func_end sub_8096130 thumb_func_start sub_8096168 sub_8096168: @ 8096168 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0xD movs r3, 0x9 bl DrawDefaultWindow ldr r3, _080961A4 movs r0, 0x1 movs r1, 0x1 movs r2, 0x4 bl PrintStringArray str r4, [sp] movs r0, 0xC str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0x4 bl InitMenu add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080961A4: .4byte gUnknown_083B600C thumb_func_end sub_8096168 thumb_func_start sub_80961A8 sub_80961A8: @ 80961A8 push {lr} ldr r1, _080961C4 ldr r0, _080961C8 ldr r0, [r0] ldrb r0, [r0, 0x5] strb r0, [r1] ldr r1, _080961CC ldr r0, _080961D0 str r0, [r1] ldr r0, _080961D4 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _080961C4: .4byte 0x02038474 _080961C8: .4byte gUnknown_083B6DB4 _080961CC: .4byte 0x0300485c _080961D0: .4byte sub_8096130 _080961D4: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_80961A8 thumb_func_start sub_80961D8 sub_80961D8: @ 80961D8 push {r4-r7,lr} ldr r1, _08096258 movs r0, 0 strb r0, [r1] movs r5, 0 adds r7, r1, 0x4 _080961E4: movs r4, 0 lsls r1, r5, 2 adds r1, r5 lsls r0, r1, 4 subs r0, r1 lsls r6, r0, 5 _080961F0: lsls r0, r4, 2 adds r0, r4 lsls r0, 4 adds r0, r7 adds r0, r6, r0 bl zero_pokemon_boxed_data adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1D bls _080961F0 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0xD bls _080961E4 movs r5, 0 _08096214: lsls r0, r5, 3 adds r0, r5 ldr r6, _0809625C adds r0, r6 ldr r1, _08096260 bl StringCopy adds r4, r5, 0x1 adds r1, r4, 0 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN lsls r4, 16 lsrs r5, r4, 16 cmp r5, 0xD bls _08096214 movs r5, 0 adds r3, r6, 0 adds r3, 0x7E movs r2, 0x3 _0809623E: adds r0, r5, r3 adds r1, r5, 0 ands r1, r2 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0xD bls _0809623E pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08096258: .4byte 0x020300a0 _0809625C: .4byte 0x020383e4 _08096260: .4byte gUnknown_08410C54 thumb_func_end sub_80961D8 thumb_func_start sub_8096264 sub_8096264: @ 8096264 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x20 mov r8, r0 adds r4, r1, 0 adds r6, r2, 0 mov r9, r3 lsls r4, 16 lsrs r4, 16 lsls r6, 16 lsrs r6, 16 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r0, _080962F4 str r0, [sp, 0x18] ldr r1, _080962F8 add r5, sp, 0x18 ldr r0, [r5, 0x4] ands r0, r1 orrs r0, r6 str r0, [r5, 0x4] mov r1, sp ldr r0, _080962FC str r0, [sp] movs r0, 0x80 lsls r0, 4 strh r0, [r1, 0x4] strh r4, [r1, 0x6] ldr r0, _08096300 str r0, [sp, 0x8] movs r0, 0xC0 lsls r0, 1 strh r0, [r1, 0xC] adds r0, r4, 0x1 strh r0, [r1, 0xE] add r0, sp, 0x10 movs r1, 0 movs r2, 0x8 bl memset adds r0, r5, 0 bl LoadSpritePalette mov r0, sp bl LoadSpriteSheets ldr r0, _08096304 mov r1, r8 str r1, [r0] movs r0, 0x90 lsls r0, 2 add r0, r8 strh r4, [r0] ldr r0, _08096308 add r0, r8 strh r6, [r0] ldr r0, _0809630C add r8, r0 mov r0, r9 mov r1, r8 strb r0, [r1] add sp, 0x20 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080962F4: .4byte gBoxSelectionPopupPalette _080962F8: .4byte 0xffff0000 _080962FC: .4byte gBoxSelectionPopupCenterTiles _08096300: .4byte gBoxSelectionPopupSidesTiles _08096304: .4byte 0x02038478 _08096308: .4byte 0x00000242 _0809630C: .4byte 0x0000023e thumb_func_end sub_8096264 thumb_func_start sub_8096310 sub_8096310: @ 8096310 push {r4,r5,lr} ldr r4, _08096344 ldr r0, [r4] ldr r1, _08096348 adds r0, r1 ldrh r0, [r0] bl FreeSpritePaletteByTag ldr r0, [r4] movs r5, 0x90 lsls r5, 2 adds r0, r5 ldrh r0, [r0] bl FreeSpriteTilesByTag ldr r0, [r4] adds r0, r5 ldrh r0, [r0] adds r0, 0x1 lsls r0, 16 lsrs r0, 16 bl FreeSpriteTilesByTag pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08096344: .4byte 0x02038478 _08096348: .4byte 0x00000242 thumb_func_end sub_8096310 thumb_func_start sub_809634C sub_809634C: @ 809634C push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80963D0 pop {r0} bx r0 thumb_func_end sub_809634C thumb_func_start sub_809635C sub_809635C: @ 809635C push {lr} bl sub_809658C pop {r0} bx r0 thumb_func_end sub_809635C thumb_func_start sub_8096368 sub_8096368: @ 8096368 push {lr} ldr r0, _08096380 ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08096384 movs r0, 0x5 bl audio_play movs r0, 0xC9 b _080963CC .align 2, 0 _08096380: .4byte 0x03001770 _08096384: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080963A4 movs r0, 0x5 bl audio_play ldr r0, _080963A0 ldr r0, [r0] movs r1, 0x8F lsls r1, 2 adds r0, r1 ldrb r0, [r0] b _080963CC .align 2, 0 _080963A0: .4byte 0x02038478 _080963A4: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080963B8 movs r0, 0x5 bl audio_play bl sub_809662C b _080963CA _080963B8: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080963CA movs r0, 0x5 bl audio_play bl sub_80965F8 _080963CA: movs r0, 0xC8 _080963CC: pop {r1} bx r1 thumb_func_end sub_8096368 thumb_func_start sub_80963D0 sub_80963D0: @ 80963D0 push {r4-r6,lr} sub sp, 0x3C adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0 movs r1, 0 str r0, [sp, 0x34] str r1, [sp, 0x38] movs r1, 0xC0 lsls r1, 24 ldr r0, [sp, 0x34] orrs r0, r1 str r0, [sp, 0x34] ldr r1, _08096564 add r4, sp, 0x34 ldr r0, [r4, 0x4] ands r0, r1 movs r1, 0x80 lsls r1, 5 orrs r0, r1 str r0, [r4, 0x4] add r1, sp, 0x1C movs r2, 0 strh r2, [r1] mov r0, sp adds r0, 0x1E strh r2, [r0] str r4, [sp, 0x20] ldr r0, _08096568 str r0, [sp, 0x24] str r2, [sp, 0x28] ldr r0, _0809656C str r0, [sp, 0x2C] ldr r0, _08096570 str r0, [sp, 0x30] add r0, sp, 0x4 movs r2, 0x18 bl memcpy ldr r6, _08096574 ldr r0, [r6] movs r1, 0x8F lsls r1, 2 adds r0, r1 strb r5, [r0] add r2, sp, 0x4 ldr r1, [r6] movs r5, 0x90 lsls r5, 2 adds r0, r1, r5 ldrh r0, [r0] strh r0, [r2] ldr r3, _08096578 adds r1, r3 ldrh r0, [r1] strh r0, [r2, 0x2] adds r0, r2, 0 movs r1, 0xA0 movs r2, 0x60 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 ldr r3, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0809657C adds r0, r1 str r0, [r3] ldrb r2, [r4, 0x1] movs r1, 0x3F adds r0, r1, 0 ands r0, r2 movs r2, 0x80 orrs r0, r2 strb r0, [r4, 0x1] ldrb r0, [r4, 0x3] ands r1, r0 movs r0, 0x40 orrs r1, r0 strb r1, [r4, 0x3] add r1, sp, 0x4 adds r3, r5 ldrh r0, [r3] adds r0, 0x1 strh r0, [r1] ldr r0, _08096580 str r0, [sp, 0xC] movs r4, 0 _08096488: ldr r0, [r6] ldr r1, _08096584 adds r0, r1 ldrb r3, [r0] add r0, sp, 0x4 movs r1, 0x7C movs r2, 0x50 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 ldr r2, [r6] lsls r3, r4, 2 adds r2, 0x4 adds r2, r3 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0809657C adds r1, r0, r1 str r1, [r2] movs r5, 0 movs r0, 0x2 ands r0, r4 cmp r0, 0 beq _080964C2 movs r0, 0xC4 strh r0, [r1, 0x20] movs r5, 0x2 _080964C2: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _080964E6 ldr r1, [r6] adds r1, 0x4 adds r1, r3 ldr r2, [r1] movs r0, 0x70 strh r0, [r2, 0x22] ldr r2, [r1] ldrb r1, [r2, 0x3] movs r0, 0x3F ands r0, r1 strb r0, [r2, 0x3] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _080964E6: ldr r0, [r6] adds r0, 0x4 adds r0, r3 ldr r0, [r0] lsls r1, r5, 24 lsrs r1, 24 bl StartSpriteAnim adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3 bls _08096488 movs r4, 0 ldr r5, _08096574 _08096504: lsls r0, r4, 3 adds r0, r4 lsls r0, 19 movs r3, 0xF8 lsls r3, 15 adds r0, r3 lsrs r0, 16 lsls r2, r4, 24 lsrs r2, 24 ldr r1, [r5] ldr r3, _08096584 adds r1, r3 ldrb r1, [r1] str r1, [sp] movs r1, 0x58 movs r3, 0 bl sub_809A9A0 adds r2, r0, 0 ldr r0, [r5] lsls r1, r4, 2 adds r0, 0x20 adds r0, r1 str r2, [r0] cmp r2, 0 beq _0809654C movs r1, 0x1 cmp r4, 0 bne _08096544 movs r3, 0x1 negs r3, r3 adds r1, r3, 0 _08096544: strh r1, [r2, 0x2E] ldr r1, [r0] ldr r0, _08096588 str r0, [r1, 0x1C] _0809654C: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _08096504 bl sub_809665C add sp, 0x3C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08096564: .4byte 0xffff0fff _08096568: .4byte gDummySpriteAnimTable _0809656C: .4byte gDummySpriteAffineAnimTable _08096570: .4byte SpriteCallbackDummy _08096574: .4byte 0x02038478 _08096578: .4byte 0x00000242 _0809657C: .4byte 0x02020004 _08096580: .4byte gSpriteAnimTable_83B604C _08096584: .4byte 0x0000023e _08096588: .4byte sub_8096784 thumb_func_end sub_80963D0 thumb_func_start sub_809658C sub_809658C: @ 809658C push {r4-r6,lr} ldr r4, _080965F4 ldr r0, [r4] ldr r0, [r0] cmp r0, 0 beq _080965A2 bl DestroySprite ldr r1, [r4] movs r0, 0 str r0, [r1] _080965A2: movs r5, 0 adds r6, r4, 0 _080965A6: ldr r0, [r6] lsls r4, r5, 2 adds r0, 0x4 adds r0, r4 ldr r0, [r0] cmp r0, 0 beq _080965C2 bl DestroySprite ldr r0, [r6] adds r0, 0x4 adds r0, r4 movs r1, 0 str r1, [r0] _080965C2: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3 bls _080965A6 movs r5, 0 _080965CE: ldr r0, _080965F4 ldr r0, [r0] lsls r1, r5, 2 adds r0, 0x20 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _080965E2 bl DestroySprite _080965E2: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1 bls _080965CE pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080965F4: .4byte 0x02038478 thumb_func_end sub_809658C thumb_func_start sub_80965F8 sub_80965F8: @ 80965F8 push {lr} ldr r2, _08096628 ldr r1, [r2] movs r0, 0x8F lsls r0, 2 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0xD bls _0809661E ldr r0, [r2] movs r1, 0x8F lsls r1, 2 adds r0, r1 movs r1, 0 strb r1, [r0] _0809661E: bl sub_809665C pop {r0} bx r0 .align 2, 0 _08096628: .4byte 0x02038478 thumb_func_end sub_80965F8 thumb_func_start sub_809662C sub_809662C: @ 809662C push {lr} ldr r0, _08096644 ldr r2, [r0] movs r1, 0x8F lsls r1, 2 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _08096648 subs r1, r0, 0x1 b _0809664A .align 2, 0 _08096644: .4byte 0x02038478 _08096648: movs r1, 0xD _0809664A: movs r3, 0x8F lsls r3, 2 adds r0, r2, r3 strb r1, [r0] bl sub_809665C pop {r0} bx r0 thumb_func_end sub_809662C thumb_func_start sub_809665C sub_809665C: @ 809665C push {r4-r7,lr} ldr r5, _080966B4 ldr r0, [r5] movs r4, 0x8F lsls r4, 2 adds r0, r4 ldrb r0, [r0] bl sub_8095ADC lsls r0, 24 lsrs r7, r0, 24 ldr r2, _080966B8 movs r6, 0xFC strb r6, [r2] movs r0, 0x4 strb r0, [r2, 0x1] movs r0, 0xF strb r0, [r2, 0x2] movs r0, 0x1 strb r0, [r2, 0x3] movs r0, 0xE strb r0, [r2, 0x4] adds r2, 0x5 ldr r0, [r5] adds r0, r4 ldrb r0, [r0] lsls r1, r0, 3 adds r1, r0 ldr r0, _080966BC adds r1, r0 adds r0, r2, 0 bl StringCopy adds r2, r0, 0 movs r0, 0xFE strb r0, [r2] strb r6, [r2, 0x1] movs r0, 0x11 strb r0, [r2, 0x2] cmp r7, 0x9 bhi _080966C0 movs r0, 0x28 b _080966C2 .align 2, 0 _080966B4: .4byte 0x02038478 _080966B8: .4byte 0x020231cc _080966BC: .4byte 0x020383e4 _080966C0: movs r0, 0x22 _080966C2: strb r0, [r2, 0x3] adds r2, 0x4 adds r0, r2, 0 adds r1, r7, 0 bl ConvertIntToDecimalString adds r2, r0, 0 movs r0, 0xBA strb r0, [r2] movs r0, 0xA4 strb r0, [r2, 0x1] movs r0, 0xA1 strb r0, [r2, 0x2] movs r0, 0xFF strb r0, [r2, 0x3] ldr r0, _080966F0 movs r1, 0 movs r2, 0x1 bl sub_80966F4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080966F0: .4byte 0x020231cc thumb_func_end sub_809665C thumb_func_start sub_80966F4 sub_80966F4: @ 80966F4 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 mov r8, r0 adds r5, r1, 0 adds r4, r2, 0 lsls r5, 16 lsrs r5, 16 lsls r4, 16 lsrs r4, 16 ldr r0, _08096764 ldr r0, [r0] movs r1, 0x90 lsls r1, 2 adds r0, r1 ldrh r0, [r0] bl GetSpriteTileStartByTag adds r6, r0, 0 lsls r6, 16 lsrs r6, 11 lsls r4, 8 ldr r2, _08096768 adds r4, r2 adds r6, r4 lsls r5, 5 adds r6, r5 ldr r0, _0809676C ldr r5, [r0] mov r1, sp ldr r2, _08096770 adds r0, r2, 0 strh r0, [r1] ldr r4, _08096774 str r1, [r4] str r5, [r4, 0x4] ldr r0, _08096778 str r0, [r4, 0x8] ldr r0, [r4, 0x8] ldr r0, _0809677C adds r1, r5, 0 mov r2, r8 bl sub_8004E3C str r5, [r4] str r6, [r4, 0x4] ldr r0, _08096780 str r0, [r4, 0x8] ldr r0, [r4, 0x8] add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08096764: .4byte 0x02038478 _08096768: .4byte 0x06010000 _0809676C: .4byte gUnknown_083B6DB8 _08096770: .4byte 0x00001111 _08096774: .4byte 0x040000d4 _08096778: .4byte 0x81000200 _0809677C: .4byte gWindowConfig_81E6D38 _08096780: .4byte 0x80000200 thumb_func_end sub_80966F4 thumb_func_start sub_8096784 sub_8096784: @ 8096784 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x30] adds r0, 0x1 movs r2, 0 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080967B4 strh r2, [r1, 0x30] ldrh r0, [r1, 0x2E] ldrh r3, [r1, 0x24] adds r0, r3 strh r0, [r1, 0x24] ldrh r0, [r1, 0x32] adds r0, 0x1 strh r0, [r1, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _080967B4 strh r2, [r1, 0x32] strh r2, [r1, 0x24] _080967B4: pop {r0} bx r0 thumb_func_end sub_8096784 thumb_func_start task_intro_29 task_intro_29: @ 80967B8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080967D0 strb r0, [r1] ldr r1, _080967D4 strb r0, [r1, 0x5] ldr r0, _080967D8 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _080967D0: .4byte 0x0203847d _080967D4: .4byte 0x02000000 _080967D8: .4byte sub_8096884 thumb_func_end task_intro_29 thumb_func_start sub_80967DC sub_80967DC: @ 80967DC ldr r0, _08096800 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x4 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bx lr .align 2, 0 _08096800: .4byte REG_BG0HOFS thumb_func_end sub_80967DC thumb_func_start sub_8096804 sub_8096804: @ 8096804 push {lr} bl ResetPaletteFade bl ResetSpriteData bl FreeSpriteTileRanges bl FreeAllSpritePalettes bl ResetTasks ldr r1, _0809683C movs r2, 0xA0 lsls r2, 2 adds r0, r2, 0 strh r0, [r1] ldr r0, _08096840 adds r1, r0, 0 adds r1, 0x8 movs r2, 0x8 bl sub_809CFDC ldr r1, _08096844 movs r0, 0x14 strh r0, [r1] pop {r0} bx r0 .align 2, 0 _0809683C: .4byte 0x030024d8 _08096840: .4byte 0x02000020 _08096844: .4byte 0x03001760 thumb_func_end sub_8096804 thumb_func_start sub_8096848 sub_8096848: @ 8096848 push {lr} bl sub_809B0D4 ldr r2, _08096868 movs r1, 0 ldr r0, _0809686C ldrb r0, [r0, 0x5] cmp r0, 0x1 bne _0809685C movs r1, 0x1 _0809685C: strb r1, [r2] ldr r1, _08096870 movs r0, 0 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _08096868: .4byte 0x0203847c _0809686C: .4byte 0x02000000 _08096870: .4byte 0x0203847e thumb_func_end sub_8096848 thumb_func_start sub_8096874 sub_8096874: @ 8096874 movs r1, 0x80 lsls r1, 19 movs r2, 0xFA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] bx lr thumb_func_end sub_8096874 thumb_func_start sub_8096884 sub_8096884: @ 8096884 push {lr} ldr r0, _080968A0 ldr r1, _080968A4 adds r0, r1 ldrb r0, [r0] cmp r0, 0x9 bls _08096894 b _08096986 _08096894: lsls r0, 2 ldr r1, _080968A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080968A0: .4byte 0x03001770 _080968A4: .4byte 0x0000043c _080968A8: .4byte _080968AC .align 2, 0 _080968AC: .4byte _080968D4 .4byte _080968E8 .4byte _080968F4 .4byte _08096904 .4byte _0809690E .4byte _08096918 .4byte _0809691E .4byte _08096924 .4byte _0809692A .4byte _08096964 _080968D4: movs r0, 0 bl SetVBlankCallback movs r1, 0x80 lsls r1, 19 movs r0, 0 strh r0, [r1] bl sub_8096804 b _0809697A _080968E8: ldr r0, _080968F0 bl SetUpWindowConfig b _0809697A .align 2, 0 _080968F0: .4byte gWindowConfig_81E6D00 _080968F4: ldr r0, _08096900 bl sub_8071C4C bl sub_8071EF4 b _0809697A .align 2, 0 _08096900: .4byte gWindowConfig_81E6D00 _08096904: bl sub_80967DC bl sub_8096848 b _0809697A _0809690E: bl sub_8098B48 bl sub_809AA24 b _0809697A _08096918: bl sub_8097DE0 b _0809697A _0809691E: bl sub_8097E70 b _0809697A _08096924: bl sub_8098400 b _0809697A _0809692A: ldr r0, _08096950 ldrb r0, [r0] bl sub_8099BF8 ldr r2, _08096954 ldr r1, _08096958 adds r0, r2, r1 movs r1, 0xA strh r1, [r0] ldr r1, _0809695C adds r2, r1 ldr r1, _08096960 strh r1, [r2] bl sub_80F727C bl sub_80F7404 b _0809697A .align 2, 0 _08096950: .4byte 0x020300a0 _08096954: .4byte 0x02000000 _08096958: .4byte 0x000012bc _0809695C: .4byte 0x000012be _08096960: .4byte 0x0000dacb _08096964: bl sub_8096874 ldr r0, _0809698C bl sub_8096BE0 ldr r0, _08096990 bl SetMainCallback2 ldr r0, _08096994 bl SetVBlankCallback _0809697A: ldr r1, _08096998 ldr r0, _0809699C adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08096986: pop {r0} bx r0 .align 2, 0 _0809698C: .4byte sub_8096BF0 _08096990: .4byte sub_8096B38 _08096994: .4byte sub_8096AFC _08096998: .4byte 0x03001770 _0809699C: .4byte 0x0000043c thumb_func_end sub_8096884 thumb_func_start sub_80969A0 sub_80969A0: @ 80969A0 push {r4,lr} sub sp, 0x4 ldr r0, _080969BC ldr r1, _080969C0 adds r0, r1 ldrb r0, [r0] cmp r0, 0xA bls _080969B2 b _08096AE4 _080969B2: lsls r0, 2 ldr r1, _080969C4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080969BC: .4byte 0x03001770 _080969C0: .4byte 0x0000043c _080969C4: .4byte _080969C8 .align 2, 0 _080969C8: .4byte _080969F4 .4byte _08096A34 .4byte _08096A40 .4byte _08096A50 .4byte _08096A56 .4byte _08096A60 .4byte _08096A66 .4byte _08096A6C .4byte _08096A72 .4byte _08096AAC .4byte _08096AC8 _080969F4: movs r0, 0 bl SetVBlankCallback movs r1, 0x80 lsls r1, 19 movs r0, 0 strh r0, [r1] ldr r1, _08096A28 ldr r0, _08096A2C ldrb r0, [r0] strb r0, [r1, 0x5] bl sub_8096804 ldr r4, _08096A30 ldrb r0, [r4] cmp r0, 0x1 bne _08096A1A bl sub_809BBC0 _08096A1A: ldrb r0, [r4] cmp r0, 0 bne _08096AD8 bl sub_809BD14 b _08096AD8 .align 2, 0 _08096A28: .4byte 0x02000000 _08096A2C: .4byte 0x0203847d _08096A30: .4byte 0x0203847f _08096A34: ldr r0, _08096A3C bl SetUpWindowConfig b _08096AD8 .align 2, 0 _08096A3C: .4byte gWindowConfig_81E6D00 _08096A40: ldr r0, _08096A4C bl sub_8071C4C bl sub_8071EF4 b _08096AD8 .align 2, 0 _08096A4C: .4byte gWindowConfig_81E6D00 _08096A50: bl sub_80967DC b _08096AD8 _08096A56: bl sub_8098B48 bl sub_809AA98 b _08096AD8 _08096A60: bl sub_8097DE0 b _08096AD8 _08096A66: bl sub_8097E70 b _08096AD8 _08096A6C: bl sub_8098400 b _08096AD8 _08096A72: ldr r0, _08096A98 ldrb r0, [r0] bl sub_8099BF8 ldr r2, _08096A9C ldr r1, _08096AA0 adds r0, r2, r1 movs r1, 0xA strh r1, [r0] ldr r1, _08096AA4 adds r2, r1 ldr r1, _08096AA8 strh r1, [r2] bl sub_80F727C bl sub_80F7404 b _08096AD8 .align 2, 0 _08096A98: .4byte 0x020300a0 _08096A9C: .4byte 0x02000000 _08096AA0: .4byte 0x000012bc _08096AA4: .4byte 0x000012be _08096AA8: .4byte 0x0000dacb _08096AAC: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _08096AC4 bl SetVBlankCallback b _08096AD8 .align 2, 0 _08096AC4: .4byte sub_8096AFC _08096AC8: bl sub_8096874 ldr r0, _08096AEC bl sub_8096BE0 ldr r0, _08096AF0 bl SetMainCallback2 _08096AD8: ldr r1, _08096AF4 ldr r0, _08096AF8 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08096AE4: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08096AEC: .4byte sub_8096C68 _08096AF0: .4byte sub_8096B38 _08096AF4: .4byte 0x03001770 _08096AF8: .4byte 0x0000043c thumb_func_end sub_80969A0 thumb_func_start sub_8096AFC sub_8096AFC: @ 8096AFC push {lr} ldr r2, _08096B2C ldr r1, _08096B30 ldr r3, _08096B34 adds r0, r1, r3 ldrh r0, [r0] strh r0, [r2] adds r2, 0x4 ldrh r0, [r1, 0xA] strh r0, [r2] adds r2, 0x2 ldrh r0, [r1, 0x8] strh r0, [r2] bl LoadOam bl ProcessSpriteCopyRequests bl sub_809CFF0 bl TransferPlttBuffer pop {r0} bx r0 .align 2, 0 _08096B2C: .4byte REG_BG2HOFS _08096B30: .4byte 0x02000000 _08096B34: .4byte 0x000008b4 thumb_func_end sub_8096AFC thumb_func_start sub_8096B38 sub_8096B38: @ 8096B38 push {lr} ldr r0, _08096B58 ldr r0, [r0] bl _call_via_r0 bl sub_8097E44 bl sub_8098734 bl AnimateSprites bl BuildOamBuffer pop {r0} bx r0 .align 2, 0 _08096B58: .4byte 0x02000000 thumb_func_end sub_8096B38 thumb_func_start sub_8096B5C sub_8096B5C: @ 8096B5C push {r4,r5,lr} sub sp, 0x8 ldr r4, _08096B70 ldrb r0, [r4, 0x6] cmp r0, 0 beq _08096B74 cmp r0, 0x1 beq _08096BAC b _08096BCC .align 2, 0 _08096B70: .4byte 0x02000000 _08096B74: ldr r1, _08096B98 adds r0, r4, r1 ldr r0, [r0] ldr r2, _08096B9C adds r1, r4, r2 ldrb r1, [r1] ldr r3, _08096BA0 adds r2, r4, r3 ldrb r2, [r2] ldr r3, _08096BA4 ldr r5, _08096BA8 adds r4, r5 ldrb r4, [r4] str r4, [sp] bl sub_809D8BC b _08096BCC .align 2, 0 _08096B98: .4byte 0x00002690 _08096B9C: .4byte 0x0000268d _08096BA0: .4byte 0x0000268c _08096BA4: .4byte sub_80969A0 _08096BA8: .4byte 0x0000268e _08096BAC: ldr r0, _08096BD4 ldrb r2, [r0] lsls r1, r2, 3 adds r1, r2 ldr r2, _08096BD8 adds r0, r2 adds r1, r0 movs r0, 0 str r0, [sp] ldr r0, _08096BDC str r0, [sp, 0x4] movs r0, 0x1 movs r2, 0 movs r3, 0 bl DoNamingScreen _08096BCC: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08096BD4: .4byte 0x020300a0 _08096BD8: .4byte 0x00008344 _08096BDC: .4byte sub_80969A0 thumb_func_end sub_8096B5C thumb_func_start sub_8096BE0 sub_8096BE0: @ 8096BE0 ldr r1, _08096BEC str r0, [r1] movs r0, 0 strb r0, [r1, 0x4] bx lr .align 2, 0 _08096BEC: .4byte 0x02000000 thumb_func_end sub_8096BE0 thumb_func_start sub_8096BF0 sub_8096BF0: @ 8096BF0 push {r4,lr} ldr r4, _08096C04 ldrb r0, [r4, 0x4] cmp r0, 0x1 beq _08096C16 cmp r0, 0x1 bgt _08096C08 cmp r0, 0 beq _08096C0E b _08096C5C .align 2, 0 _08096C04: .4byte 0x02000000 _08096C08: cmp r0, 0x2 beq _08096C4C b _08096C5C _08096C0E: movs r0, 0x1 negs r0, r0 movs r1, 0x10 b _08096C38 _08096C16: movs r0, 0x2 bl audio_play movs r1, 0 movs r0, 0xE strh r0, [r4, 0xC] ldr r0, _08096C48 strh r0, [r4, 0xE] strh r1, [r4, 0x10] strh r1, [r4, 0x12] adds r0, r4, 0 adds r0, 0xC bl sub_80C5CD4 movs r0, 0x1 negs r0, r0 movs r1, 0 _08096C38: movs r2, 0 bl BlendPalettes ldrb r0, [r4, 0x4] adds r0, 0x1 strb r0, [r4, 0x4] b _08096C5C .align 2, 0 _08096C48: .4byte 0x0000dad0 _08096C4C: bl sub_80C5DCC lsls r0, 24 cmp r0, 0 beq _08096C5C ldr r0, _08096C64 bl sub_8096BE0 _08096C5C: pop {r4} pop {r0} bx r0 .align 2, 0 _08096C64: .4byte sub_8096C84 thumb_func_end sub_8096BF0 thumb_func_start sub_8096C68 sub_8096C68: @ 8096C68 push {lr} bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _08096C7A ldr r0, _08096C80 bl sub_8096BE0 _08096C7A: pop {r0} bx r0 .align 2, 0 _08096C80: .4byte sub_8096C84 thumb_func_end sub_8096C68 thumb_func_start sub_8096C84 sub_8096C84: @ 8096C84 push {r4,lr} ldr r0, _08096C9C ldrb r0, [r0, 0x4] cmp r0, 0x6 bls _08096C90 b _08096FBA _08096C90: lsls r0, 2 ldr r1, _08096CA0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08096C9C: .4byte 0x02000000 _08096CA0: .4byte _08096CA4 .align 2, 0 _08096CA4: .4byte _08096CC0 .4byte _08096EE0 .4byte _08096F1C .4byte _08096F60 .4byte _08096F80 .4byte _08096F8A .4byte _08096FA4 _08096CC0: bl sub_809CA40 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r0, 0xF bls _08096CD0 b _08096FBA _08096CD0: lsls r0, 2 ldr r1, _08096CDC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08096CDC: .4byte _08096CE0 .align 2, 0 _08096CE0: .4byte _08096D20 .4byte _08096FBA .4byte _08096FBA .4byte _08096D94 .4byte _08096D34 .4byte _08096D5C .4byte _08096DAC .4byte _08096DC0 .4byte _08096DD4 .4byte _08096DFC .4byte _08096E30 .4byte _08096EB8 .4byte _08096E70 .4byte _08096E8C .4byte _08096ECC .4byte _08096DA0 _08096D20: movs r0, 0x5 bl audio_play ldr r1, _08096D30 movs r0, 0x1 strb r0, [r1, 0x4] b _08096FBA .align 2, 0 _08096D30: .4byte 0x02000000 _08096D34: ldr r4, _08096D48 ldrb r0, [r4, 0x5] cmp r0, 0x2 beq _08096D4C movs r0, 0x10 bl sub_8098898 movs r0, 0x3 strb r0, [r4, 0x4] b _08096FBA .align 2, 0 _08096D48: .4byte 0x02000000 _08096D4C: bl sub_809B0D4 ldr r0, _08096D58 bl sub_8096BE0 b _08096FBA .align 2, 0 _08096D58: .4byte sub_8096FC8 _08096D5C: ldr r4, _08096D88 ldrb r0, [r4, 0x5] cmp r0, 0x2 beq _08096D66 b _08096FBA _08096D66: bl sub_809BF20 lsls r0, 24 cmp r0, 0 beq _08096D80 ldr r1, _08096D8C adds r0, r4, r1 ldrh r0, [r0] bl itemid_is_mail lsls r0, 24 cmp r0, 0 bne _08096E4C _08096D80: ldr r0, _08096D90 bl sub_8096BE0 b _08096FBA .align 2, 0 _08096D88: .4byte 0x02000000 _08096D8C: .4byte 0x000011f2 _08096D90: .4byte sub_8097004 _08096D94: ldr r0, _08096D9C bl sub_8096BE0 b _08096FBA .align 2, 0 _08096D9C: .4byte sub_8097BA0 _08096DA0: ldr r0, _08096DA8 bl sub_8096BE0 b _08096FBA .align 2, 0 _08096DA8: .4byte sub_8097CC0 _08096DAC: movs r0, 0x5 bl audio_play ldr r0, _08096DBC bl sub_8096BE0 b _08096FBA .align 2, 0 _08096DBC: .4byte sub_809789C _08096DC0: movs r0, 0x5 bl audio_play ldr r0, _08096DD0 bl sub_8096BE0 b _08096FBA .align 2, 0 _08096DD0: .4byte sub_8097078 _08096DD4: movs r0, 0x5 bl audio_play ldr r4, _08096DF0 ldr r0, _08096DF4 ldrb r0, [r0] adds r0, 0x1 ldr r2, _08096DF8 adds r1, r4, r2 strh r0, [r1] cmp r0, 0xD ble _08096E18 movs r0, 0 b _08096E16 .align 2, 0 _08096DF0: .4byte 0x02000000 _08096DF4: .4byte 0x020300a0 _08096DF8: .4byte 0x000008b2 _08096DFC: movs r0, 0x5 bl audio_play ldr r4, _08096E24 ldr r0, _08096E28 ldrb r0, [r0] subs r0, 0x1 ldr r2, _08096E2C adds r1, r4, r2 strh r0, [r1] cmp r0, 0 bge _08096E18 movs r0, 0xD _08096E16: strh r0, [r1] _08096E18: ldrb r0, [r1] bl sub_8099C70 movs r0, 0x2 strb r0, [r4, 0x4] b _08096FBA .align 2, 0 _08096E24: .4byte 0x02000000 _08096E28: .4byte 0x020300a0 _08096E2C: .4byte 0x000008b2 _08096E30: bl sub_809BE80 lsls r0, 24 cmp r0, 0 bne _08096E96 ldr r4, _08096E54 ldr r1, _08096E58 adds r0, r4, r1 ldrh r0, [r0] bl itemid_is_mail lsls r0, 24 cmp r0, 0 beq _08096E5C _08096E4C: movs r0, 0x5 strb r0, [r4, 0x4] b _08096FBA .align 2, 0 _08096E54: .4byte 0x02000000 _08096E58: .4byte 0x000011f2 _08096E5C: movs r0, 0x5 bl audio_play ldr r0, _08096E6C bl sub_8096BE0 b _08096FBA .align 2, 0 _08096E6C: .4byte sub_809746C _08096E70: bl sub_809BE80 lsls r0, 24 cmp r0, 0 bne _08096E96 movs r0, 0x5 bl audio_play ldr r0, _08096E88 bl sub_8096BE0 b _08096FBA .align 2, 0 _08096E88: .4byte sub_80972A8 _08096E8C: bl sub_809BEBC lsls r0, 24 cmp r0, 0 bne _08096EA4 _08096E96: ldr r1, _08096EA0 movs r0, 0x4 strb r0, [r1, 0x4] b _08096FBA .align 2, 0 _08096EA0: .4byte 0x02000000 _08096EA4: movs r0, 0x5 bl audio_play ldr r0, _08096EB4 bl sub_8096BE0 b _08096FBA .align 2, 0 _08096EB4: .4byte c3_0808DC50 _08096EB8: movs r0, 0x5 bl audio_play ldr r0, _08096EC8 bl sub_8096BE0 b _08096FBA .align 2, 0 _08096EC8: .4byte sub_8097390 _08096ECC: movs r0, 0x5 bl audio_play ldr r0, _08096EDC bl sub_8096BE0 b _08096FBA .align 2, 0 _08096EDC: .4byte sub_80972FC _08096EE0: bl sub_809AC00 lsls r0, 24 cmp r0, 0 bne _08096FBA bl sub_809BF48 lsls r0, 24 cmp r0, 0 beq _08096EFA bl sub_80986E8 b _08096EFE _08096EFA: bl sub_8098710 _08096EFE: ldr r4, _08096F14 ldr r2, _08096F18 adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 beq _08096F0E bl BoxSetMosaic _08096F0E: movs r0, 0 strb r0, [r4, 0x4] b _08096FBA .align 2, 0 _08096F14: .4byte 0x02000000 _08096F18: .4byte 0x000011f6 _08096F1C: bl sub_8099D34 lsls r0, 24 cmp r0, 0 bne _08096FBA ldr r1, _08096F50 ldr r0, _08096F54 ldr r2, _08096F58 adds r0, r2 ldrh r0, [r0] strb r0, [r1] ldr r0, _08096F5C ldrb r0, [r0] cmp r0, 0 bne _08096F70 bl sub_809BF20 lsls r0, 24 cmp r0, 0 bne _08096F70 bl sub_809B440 bl BoxSetMosaic b _08096F70 .align 2, 0 _08096F50: .4byte 0x020300a0 _08096F54: .4byte 0x02000000 _08096F58: .4byte 0x000008b2 _08096F5C: .4byte 0x0203847c _08096F60: ldr r0, _08096F78 ldrh r1, [r0, 0x2E] movs r0, 0xF3 ands r0, r1 cmp r0, 0 beq _08096FBA bl sub_8098A5C _08096F70: ldr r1, _08096F7C movs r0, 0 strb r0, [r1, 0x4] b _08096FBA .align 2, 0 _08096F78: .4byte 0x03001770 _08096F7C: .4byte 0x02000000 _08096F80: movs r0, 0x20 bl audio_play movs r0, 0xD b _08096F92 _08096F8A: movs r0, 0x20 bl audio_play movs r0, 0x16 _08096F92: bl sub_8098898 ldr r1, _08096FA0 movs r0, 0x6 strb r0, [r1, 0x4] b _08096FBA .align 2, 0 _08096FA0: .4byte 0x02000000 _08096FA4: ldr r0, _08096FC0 ldrh r1, [r0, 0x2E] movs r0, 0xF3 ands r0, r1 cmp r0, 0 beq _08096FBA bl sub_8098A5C ldr r0, _08096FC4 bl sub_8096BE0 _08096FBA: pop {r4} pop {r0} bx r0 .align 2, 0 _08096FC0: .4byte 0x03001770 _08096FC4: .4byte sub_8096C84 thumb_func_end sub_8096C84 thumb_func_start sub_8096FC8 sub_8096FC8: @ 8096FC8 push {r4,lr} ldr r4, _08096FD8 ldrb r0, [r4, 0x4] cmp r0, 0 beq _08096FDC cmp r0, 0x1 beq _08096FE8 b _08096FF8 .align 2, 0 _08096FD8: .4byte 0x02000000 _08096FDC: bl sub_809880C ldrb r0, [r4, 0x4] adds r0, 0x1 strb r0, [r4, 0x4] b _08096FF8 _08096FE8: bl sub_8098830 lsls r0, 24 cmp r0, 0 bne _08096FF8 ldr r0, _08097000 bl sub_8096BE0 _08096FF8: pop {r4} pop {r0} bx r0 .align 2, 0 _08097000: .4byte sub_8096C84 thumb_func_end sub_8096FC8 thumb_func_start sub_8097004 sub_8097004: @ 8097004 push {r4,lr} ldr r4, _08097018 ldrb r0, [r4, 0x4] cmp r0, 0x1 beq _0809702E cmp r0, 0x1 bgt _0809701C cmp r0, 0 beq _08097022 b _0809706A .align 2, 0 _08097018: .4byte 0x02000000 _0809701C: cmp r0, 0x2 beq _0809704C b _0809706A _08097022: movs r0, 0x5 bl audio_play bl add_to_c3_somehow b _08097044 _0809702E: bl sub_80985CC lsls r0, 24 cmp r0, 0 bne _0809706A bl sub_809B0F4 lsls r0, 24 lsrs r0, 24 bl sub_809B0C0 _08097044: ldrb r0, [r4, 0x4] adds r0, 0x1 strb r0, [r4, 0x4] b _0809706A _0809704C: bl sub_809AC00 lsls r0, 24 cmp r0, 0 bne _0809706A ldr r1, _08097070 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 beq _08097064 bl BoxSetMosaic _08097064: ldr r0, _08097074 bl sub_8096BE0 _0809706A: pop {r4} pop {r0} bx r0 .align 2, 0 _08097070: .4byte 0x000011f6 _08097074: .4byte sub_8096C84 thumb_func_end sub_8097004 thumb_func_start sub_8097078 sub_8097078: @ 8097078 push {r4,lr} ldr r0, _08097090 ldrb r0, [r0, 0x4] cmp r0, 0x5 bls _08097084 b _0809729A _08097084: lsls r0, 2 ldr r1, _08097094 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08097090: .4byte 0x02000000 _08097094: .4byte _08097098 .align 2, 0 _08097098: .4byte _080970B0 .4byte _080970C8 .4byte _08097258 .4byte _0809726C .4byte _08097262 .4byte _08097284 _080970B0: movs r0, 0x4 bl sub_8098898 bl sub_809CE84 ldr r1, _080970C4 movs r0, 0x1 strb r0, [r1, 0x4] b _0809729A .align 2, 0 _080970C4: .4byte 0x02000000 _080970C8: bl sub_809CF30 adds r0, 0x1 lsls r0, 16 asrs r0, 16 cmp r0, 0x9 bls _080970D8 b _0809729A _080970D8: lsls r0, 2 ldr r1, _080970E4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080970E4: .4byte _080970E8 .align 2, 0 _080970E8: .4byte _08097110 .4byte _08097110 .4byte _08097190 .4byte _08097178 .4byte _08097120 .4byte _08097158 .4byte _08097140 .4byte _08097230 .4byte _080971CC .4byte _08097244 _08097110: bl sub_8098A5C ldr r0, _0809711C bl sub_8096BE0 b _0809729A .align 2, 0 _0809711C: .4byte sub_8096C84 _08097120: bl sub_809BE80 lsls r0, 24 cmp r0, 0 bne _080971D6 movs r0, 0x5 bl audio_play bl sub_8098A5C ldr r0, _0809713C bl sub_8096BE0 b _0809729A .align 2, 0 _0809713C: .4byte sub_80972A8 _08097140: movs r0, 0x5 bl audio_play bl sub_8098A5C ldr r0, _08097154 bl sub_8096BE0 b _0809729A .align 2, 0 _08097154: .4byte sub_80972FC _08097158: bl sub_809BEBC lsls r0, 24 cmp r0, 0 beq _080971D6 movs r0, 0x5 bl audio_play bl sub_8098A5C ldr r0, _08097174 bl sub_8096BE0 b _0809729A .align 2, 0 _08097174: .4byte c3_0808DC50 _08097178: movs r0, 0x5 bl audio_play bl sub_8098A5C ldr r0, _0809718C bl sub_8096BE0 b _0809729A .align 2, 0 _0809718C: .4byte sub_8097390 _08097190: bl sub_809BE80 lsls r0, 24 cmp r0, 0 bne _080971D6 ldr r4, _080971C0 ldr r1, _080971C4 adds r0, r4, r1 ldrh r0, [r0] bl itemid_is_mail lsls r0, 24 cmp r0, 0 bne _08097210 movs r0, 0x5 bl audio_play bl sub_8098A5C ldr r0, _080971C8 bl sub_8096BE0 b _0809729A .align 2, 0 _080971C0: .4byte 0x02000000 _080971C4: .4byte 0x000011f2 _080971C8: .4byte sub_809746C _080971CC: bl sub_809BE80 lsls r0, 24 cmp r0, 0 beq _080971E4 _080971D6: ldr r1, _080971E0 movs r0, 0x2 strb r0, [r1, 0x4] b _0809729A .align 2, 0 _080971E0: .4byte 0x02000000 _080971E4: ldr r4, _080971F8 ldr r1, _080971FC adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 beq _08097200 movs r0, 0x4 strb r0, [r4, 0x4] b _0809729A .align 2, 0 _080971F8: .4byte 0x02000000 _080971FC: .4byte 0x000011f9 _08097200: ldr r1, _08097218 adds r0, r4, r1 ldrh r0, [r0] bl itemid_is_mail lsls r0, 24 cmp r0, 0 beq _0809721C _08097210: movs r0, 0x3 strb r0, [r4, 0x4] b _0809729A .align 2, 0 _08097218: .4byte 0x000011f2 _0809721C: movs r0, 0x5 bl audio_play ldr r0, _0809722C bl sub_8096BE0 b _0809729A .align 2, 0 _0809722C: .4byte sub_8097594 _08097230: movs r0, 0x5 bl audio_play ldr r0, _08097240 bl sub_8096BE0 b _0809729A .align 2, 0 _08097240: .4byte sub_8097788 _08097244: movs r0, 0x5 bl audio_play ldr r0, _08097254 bl sub_8096BE0 b _0809729A .align 2, 0 _08097254: .4byte sub_80977E4 _08097258: movs r0, 0x20 bl audio_play movs r0, 0xD b _08097274 _08097262: movs r0, 0x20 bl audio_play movs r0, 0x11 b _08097274 _0809726C: movs r0, 0x20 bl audio_play movs r0, 0x16 _08097274: bl sub_8098898 ldr r1, _08097280 movs r0, 0x5 strb r0, [r1, 0x4] b _0809729A .align 2, 0 _08097280: .4byte 0x02000000 _08097284: ldr r0, _080972A0 ldrh r1, [r0, 0x2E] movs r0, 0xF3 ands r0, r1 cmp r0, 0 beq _0809729A bl sub_8098A5C ldr r0, _080972A4 bl sub_8096BE0 _0809729A: pop {r4} pop {r0} bx r0 .align 2, 0 _080972A0: .4byte 0x03001770 _080972A4: .4byte sub_8096C84 thumb_func_end sub_8097078 thumb_func_start sub_80972A8 sub_80972A8: @ 80972A8 push {r4,lr} ldr r4, _080972B8 ldrb r0, [r4, 0x4] cmp r0, 0 beq _080972BC cmp r0, 0x1 beq _080972CA b _080972F2 .align 2, 0 _080972B8: .4byte 0x02000000 _080972BC: movs r0, 0 bl sub_809B100 ldrb r0, [r4, 0x4] adds r0, 0x1 strb r0, [r4, 0x4] b _080972F2 _080972CA: bl sub_809B130 lsls r0, 24 cmp r0, 0 bne _080972F2 ldr r0, _080972E4 ldrb r0, [r0] cmp r0, 0 beq _080972EC ldr r0, _080972E8 bl sub_8096BE0 b _080972F2 .align 2, 0 _080972E4: .4byte 0x0203847c _080972E8: .4byte sub_8097858 _080972EC: ldr r0, _080972F8 bl sub_8096BE0 _080972F2: pop {r4} pop {r0} bx r0 .align 2, 0 _080972F8: .4byte sub_8096C84 thumb_func_end sub_80972A8 thumb_func_start sub_80972FC sub_80972FC: @ 80972FC push {r4,lr} ldr r4, _0809730C ldrb r0, [r4, 0x4] cmp r0, 0 beq _08097310 cmp r0, 0x1 beq _0809731E b _08097346 .align 2, 0 _0809730C: .4byte 0x02000000 _08097310: movs r0, 0x1 bl sub_809B100 ldrb r0, [r4, 0x4] adds r0, 0x1 strb r0, [r4, 0x4] b _08097346 _0809731E: bl sub_809B130 lsls r0, 24 cmp r0, 0 bne _08097346 ldr r0, _08097338 ldrb r0, [r0] cmp r0, 0 beq _08097340 ldr r0, _0809733C bl sub_8096BE0 b _08097346 .align 2, 0 _08097338: .4byte 0x0203847c _0809733C: .4byte sub_8097858 _08097340: ldr r0, _0809734C bl sub_8096BE0 _08097346: pop {r4} pop {r0} bx r0 .align 2, 0 _0809734C: .4byte sub_8096C84 thumb_func_end sub_80972FC thumb_func_start c3_0808DC50 c3_0808DC50: @ 8097350 push {r4,lr} ldr r4, _08097360 ldrb r0, [r4, 0x4] cmp r0, 0 beq _08097364 cmp r0, 0x1 beq _08097372 b _08097386 .align 2, 0 _08097360: .4byte 0x02000000 _08097364: movs r0, 0x2 bl sub_809B100 ldrb r0, [r4, 0x4] adds r0, 0x1 strb r0, [r4, 0x4] b _08097386 _08097372: bl sub_809B130 lsls r0, 24 cmp r0, 0 bne _08097386 bl BoxSetMosaic ldr r0, _0809738C bl sub_8096BE0 _08097386: pop {r4} pop {r0} bx r0 .align 2, 0 _0809738C: .4byte sub_8096C84 thumb_func_end c3_0808DC50 thumb_func_start sub_8097390 sub_8097390: @ 8097390 push {lr} ldr r0, _080973A4 ldrb r0, [r0, 0x4] cmp r0, 0x5 bhi _08097462 lsls r0, 2 ldr r1, _080973A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080973A4: .4byte 0x02000000 _080973A8: .4byte _080973AC .align 2, 0 _080973AC: .4byte _080973C4 .4byte _080973FC .4byte _0809741C .4byte _0809742C .4byte _0809743E .4byte _0809745C _080973C4: bl calc_player_party_count lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bne _080973E4 movs r0, 0xE bl sub_8098898 ldr r1, _080973E0 movs r0, 0x1 strb r0, [r1, 0x4] b _08097462 .align 2, 0 _080973E0: .4byte 0x02000000 _080973E4: bl sub_809B0E0 movs r0, 0 bl sub_809B100 ldr r1, _080973F8 movs r0, 0x2 strb r0, [r1, 0x4] b _08097462 .align 2, 0 _080973F8: .4byte 0x02000000 _080973FC: ldr r0, _08097414 ldrh r1, [r0, 0x2E] movs r0, 0xF3 ands r0, r1 cmp r0, 0 beq _08097462 bl sub_8098A5C ldr r0, _08097418 bl sub_8096BE0 b _08097462 .align 2, 0 _08097414: .4byte 0x03001770 _08097418: .4byte sub_8096C84 _0809741C: bl sub_809B130 lsls r0, 24 cmp r0, 0 bne _08097462 bl sub_809880C b _0809744C _0809742C: bl sub_8098830 lsls r0, 24 cmp r0, 0 bne _08097462 movs r0, 0x1 bl sub_809B100 b _0809744C _0809743E: bl sub_809B130 lsls r0, 24 cmp r0, 0 bne _08097462 bl sub_80987DC _0809744C: ldr r1, _08097458 ldrb r0, [r1, 0x4] adds r0, 0x1 strb r0, [r1, 0x4] b _08097462 .align 2, 0 _08097458: .4byte 0x02000000 _0809745C: ldr r0, _08097468 bl sub_8096BE0 _08097462: pop {r0} bx r0 .align 2, 0 _08097468: .4byte sub_8097004 thumb_func_end sub_8097390 thumb_func_start sub_809746C sub_809746C: @ 809746C push {r4,lr} ldr r0, _08097484 ldrb r0, [r0, 0x4] cmp r0, 0x4 bls _08097478 b _08097584 _08097478: lsls r0, 2 ldr r1, _08097488 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08097484: .4byte 0x02000000 _08097488: .4byte _0809748C .align 2, 0 _0809748C: .4byte _080974A0 .4byte _080974D8 .4byte _08097534 .4byte _08097548 .4byte _0809756C _080974A0: movs r0, 0x6 bl sub_8098898 ldr r4, _080974C8 ldr r2, _080974CC adds r0, r4, 0 movs r1, 0x7 movs r3, 0x3 bl sub_8096264 ldr r0, _080974D0 ldrb r0, [r0] bl sub_809634C ldr r0, _080974D4 adds r4, r0 ldrb r0, [r4, 0x4] adds r0, 0x1 strb r0, [r4, 0x4] b _08097584 .align 2, 0 _080974C8: .4byte 0x02002370 _080974CC: .4byte 0x0000daca _080974D0: .4byte 0x0203847e _080974D4: .4byte 0xffffdc90 _080974D8: bl sub_8096368 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xC8 beq _08097584 cmp r4, 0xC9 bne _080974F6 bl sub_8098A5C bl sub_809635C bl sub_8096310 b _0809755E _080974F6: adds r0, r4, 0 bl sub_809B62C lsls r0, 24 cmp r0, 0 beq _08097518 bl sub_8098A5C bl sub_809635C bl sub_8096310 ldr r1, _08097514 movs r0, 0x2 b _08097522 .align 2, 0 _08097514: .4byte 0x02000000 _08097518: movs r0, 0x8 bl sub_8098898 ldr r1, _0809752C movs r0, 0x4 _08097522: strb r0, [r1, 0x4] ldr r0, _08097530 strb r4, [r0] b _08097584 .align 2, 0 _0809752C: .4byte 0x02000000 _08097530: .4byte 0x0203847e _08097534: bl party_compaction bl sub_8099310 ldr r1, _08097544 ldrb r0, [r1, 0x4] adds r0, 0x1 b _08097582 .align 2, 0 _08097544: .4byte 0x02000000 _08097548: bl sub_8099374 lsls r0, 24 cmp r0, 0 bne _08097584 bl sub_809B6BC bl BoxSetMosaic bl sub_80987DC _0809755E: ldr r0, _08097568 bl sub_8096BE0 b _08097584 .align 2, 0 _08097568: .4byte sub_8096C84 _0809756C: ldr r0, _0809758C ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08097584 movs r0, 0x6 bl sub_8098898 ldr r1, _08097590 movs r0, 0x1 _08097582: strb r0, [r1, 0x4] _08097584: pop {r4} pop {r0} bx r0 .align 2, 0 _0809758C: .4byte 0x03001770 _08097590: .4byte 0x02000000 thumb_func_end sub_809746C thumb_func_start sub_8097594 sub_8097594: @ 8097594 push {r4,lr} ldr r0, _080975AC ldrb r0, [r0, 0x4] cmp r0, 0xD bls _080975A0 b _0809777A _080975A0: lsls r0, 2 ldr r1, _080975B0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080975AC: .4byte 0x02000000 _080975B0: .4byte _080975B4 .align 2, 0 _080975B4: .4byte _080975EC .4byte _08097600 .4byte _0809763A .4byte _0809766E .4byte _0809767A .4byte _08097690 .4byte _080976C8 .4byte _080976E0 .4byte _080976EC .4byte _080976F0 .4byte _08097704 .4byte _08097720 .4byte _08097732 .4byte _08097764 _080975EC: movs r0, 0x9 bl sub_8098898 movs r0, 0x1 bl sub_8098A38 ldr r1, _0809761C ldrb r0, [r1, 0x4] adds r0, 0x1 strb r0, [r1, 0x4] _08097600: bl ProcessMenuInputNoWrap lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _0809762C cmp r1, 0 bgt _08097620 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08097626 b _0809777A .align 2, 0 _0809761C: .4byte 0x02000000 _08097620: cmp r1, 0x1 beq _08097626 b _0809777A _08097626: bl sub_8098A5C b _080976E0 _0809762C: bl sub_8098A5C bl sub_809B7D4 bl sub_809B6DC b _08097744 _0809763A: bl sub_809B960 bl sub_809B734 lsls r0, 24 cmp r0, 0 beq _0809764A b _0809777A _0809764A: ldr r4, _08097650 b _0809765A .align 2, 0 _08097650: .4byte 0x02000000 _08097654: cmp r0, 0 bne _0809765A b _08097758 _0809765A: bl sub_809B960 lsls r0, 24 asrs r0, 24 cmp r0, 0x1 bne _08097654 ldrb r0, [r4, 0x4] adds r0, 0x1 strb r0, [r4, 0x4] b _0809777A _0809766E: bl sub_809B760 bl sub_809801C movs r0, 0xA b _08097740 _0809767A: ldr r0, _0809768C ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _08097688 b _0809777A _08097688: movs r0, 0xB b _08097740 .align 2, 0 _0809768C: .4byte 0x03001770 _08097690: ldr r0, _080976B4 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _0809777A bl sub_8098A5C ldr r0, _080976B8 ldrb r0, [r0] cmp r0, 0 beq _080976BC bl party_compaction bl sub_8099310 b _08097744 .align 2, 0 _080976B4: .4byte 0x03001770 _080976B8: .4byte 0x0203847c _080976BC: ldr r1, _080976C4 movs r0, 0x7 strb r0, [r1, 0x4] b _0809777A .align 2, 0 _080976C4: .4byte 0x02000000 _080976C8: bl sub_8099374 lsls r0, 24 cmp r0, 0 bne _0809777A bl sub_809B440 bl BoxSetMosaic bl sub_80987DC b _08097744 _080976E0: ldr r0, _080976E8 bl sub_8096BE0 b _0809777A .align 2, 0 _080976E8: .4byte sub_8096C84 _080976EC: movs r0, 0xA b _08097740 _080976F0: ldr r0, _08097700 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _0809777A movs r0, 0x15 b _08097740 .align 2, 0 _08097700: .4byte 0x03001770 _08097704: ldr r0, _0809771C ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _0809777A bl sub_8098A5C bl sub_8099958 b _08097744 .align 2, 0 _0809771C: .4byte 0x03001770 _08097720: bl sub_8099990 lsls r0, 24 cmp r0, 0 bne _0809777A bl sub_809B7AC movs r0, 0x13 b _08097740 _08097732: ldr r0, _08097750 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _0809777A movs r0, 0x14 _08097740: bl sub_8098898 _08097744: ldr r1, _08097754 ldrb r0, [r1, 0x4] adds r0, 0x1 strb r0, [r1, 0x4] b _0809777A .align 2, 0 _08097750: .4byte 0x03001770 _08097754: .4byte 0x02000000 _08097758: ldr r1, _08097760 movs r0, 0x8 strb r0, [r1, 0x4] b _0809777A .align 2, 0 _08097760: .4byte 0x02000000 _08097764: ldr r0, _08097780 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _0809777A bl sub_8098A5C ldr r0, _08097784 bl sub_8096BE0 _0809777A: pop {r4} pop {r0} bx r0 .align 2, 0 _08097780: .4byte 0x03001770 _08097784: .4byte sub_8096C84 thumb_func_end sub_8097594 thumb_func_start sub_8097788 sub_8097788: @ 8097788 push {r4,r5,lr} sub sp, 0x4 ldr r5, _0809779C ldrb r4, [r5, 0x4] cmp r4, 0 beq _080977A0 cmp r4, 0x1 beq _080977BC b _080977D4 .align 2, 0 _0809779C: .4byte 0x02000000 _080977A0: bl sub_809BC18 movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrb r0, [r5, 0x4] adds r0, 0x1 strb r0, [r5, 0x4] b _080977D4 _080977BC: bl UpdatePaletteFade lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _080977D4 ldr r0, _080977DC strb r1, [r0] strb r1, [r5, 0x6] ldr r0, _080977E0 bl SetMainCallback2 _080977D4: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080977DC: .4byte 0x0203847f _080977E0: .4byte sub_8096B5C thumb_func_end sub_8097788 thumb_func_start sub_80977E4 sub_80977E4: @ 80977E4 push {r4,lr} ldr r4, _080977F4 ldrb r0, [r4, 0x4] cmp r0, 0 beq _080977F8 cmp r0, 0x1 beq _08097824 b _0809784C .align 2, 0 _080977F4: .4byte 0x02000000 _080977F8: movs r0, 0xC bl sub_8098898 ldr r0, _08097820 adds r2, r4, r0 ldrb r1, [r2] movs r3, 0x96 lsls r3, 5 adds r0, r4, r3 strb r1, [r0] ldrb r0, [r2] movs r1, 0xB0 movs r2, 0x10 bl sub_80F7418 ldrb r0, [r4, 0x4] adds r0, 0x1 strb r0, [r4, 0x4] b _0809784C .align 2, 0 _08097820: .4byte 0x000011f7 _08097824: bl sub_80F7500 lsls r0, 24 cmp r0, 0 bne _0809784C bl sub_80F7470 bl sub_8098A5C movs r1, 0x96 lsls r1, 5 adds r0, r4, r1 ldrb r0, [r0] bl sub_809BDD8 bl sub_809801C ldr r0, _08097854 bl sub_8096BE0 _0809784C: pop {r4} pop {r0} bx r0 .align 2, 0 _08097854: .4byte sub_8096C84 thumb_func_end sub_80977E4 thumb_func_start sub_8097858 sub_8097858: @ 8097858 push {r4,lr} ldr r4, _08097868 ldrb r0, [r4, 0x4] cmp r0, 0 beq _0809786C cmp r0, 0x1 beq _0809787C b _08097890 .align 2, 0 _08097868: .4byte 0x02000000 _0809786C: bl party_compaction bl sub_8099310 ldrb r0, [r4, 0x4] adds r0, 0x1 strb r0, [r4, 0x4] b _08097890 _0809787C: bl sub_8099374 lsls r0, 24 cmp r0, 0 bne _08097890 bl sub_80987DC ldr r0, _08097898 bl sub_8096BE0 _08097890: pop {r4} pop {r0} bx r0 .align 2, 0 _08097898: .4byte sub_8096C84 thumb_func_end sub_8097858 thumb_func_start sub_809789C sub_809789C: @ 809789C push {r4,lr} ldr r4, _080978AC ldrb r0, [r4, 0x4] cmp r0, 0 beq _080978B0 cmp r0, 0x1 beq _080978C2 b _08097968 .align 2, 0 _080978AC: .4byte 0x02000000 _080978B0: movs r0, 0x1 bl sub_8098898 bl sub_809CE84 ldrb r0, [r4, 0x4] adds r0, 0x1 strb r0, [r4, 0x4] b _08097968 _080978C2: bl sub_809CF30 adds r0, 0x1 lsls r0, 16 asrs r0, 16 cmp r0, 0xC bhi _08097968 lsls r0, 2 ldr r1, _080978DC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080978DC: .4byte _080978E0 .align 2, 0 _080978E0: .4byte _08097914 .4byte _08097914 .4byte _08097968 .4byte _08097968 .4byte _08097968 .4byte _08097968 .4byte _08097968 .4byte _08097968 .4byte _08097968 .4byte _08097968 .4byte _08097958 .4byte _08097940 .4byte _0809792C _08097914: movs r0, 0x1 bl sub_809A860 bl sub_8098A5C ldr r0, _08097928 bl sub_8096BE0 b _08097968 .align 2, 0 _08097928: .4byte sub_8096C84 _0809792C: movs r0, 0x5 bl audio_play ldr r0, _0809793C bl sub_8096BE0 b _08097968 .align 2, 0 _0809793C: .4byte sub_8097B44 _08097940: movs r0, 0x5 bl audio_play bl sub_8098A5C ldr r0, _08097954 bl sub_8096BE0 b _08097968 .align 2, 0 _08097954: .4byte sub_8097974 _08097958: movs r0, 0x5 bl audio_play bl sub_8098A5C ldr r0, _08097970 bl sub_8096BE0 _08097968: pop {r4} pop {r0} bx r0 .align 2, 0 _08097970: .4byte sub_8097A64 thumb_func_end sub_809789C thumb_func_start sub_8097974 sub_8097974: @ 8097974 push {r4,r5,lr} ldr r5, _08097988 ldrb r0, [r5, 0x4] cmp r0, 0x1 beq _080979A2 cmp r0, 0x1 bgt _0809798C cmp r0, 0 beq _08097996 b _08097A5A .align 2, 0 _08097988: .4byte 0x02000000 _0809798C: cmp r0, 0x2 beq _080979FC cmp r0, 0x3 beq _08097A44 b _08097A5A _08097996: bl sub_8098A80 movs r0, 0x2 bl sub_8098898 b _08097A3C _080979A2: bl sub_809CF30 ldr r1, _080979CC adds r4, r5, r1 strh r0, [r4] movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080979D4 movs r0, 0x1 bl sub_809A860 bl sub_8098A5C ldr r0, _080979D0 bl sub_8096BE0 b _08097A5A .align 2, 0 _080979CC: .4byte 0x00000d5e _080979D0: .4byte sub_8096C84 _080979D4: cmp r0, r1 blt _08097A5A cmp r0, 0xF bgt _08097A5A cmp r0, 0xC blt _08097A5A movs r0, 0x5 bl audio_play ldrh r0, [r4] subs r0, 0xC strh r0, [r4] lsls r0, 24 lsrs r0, 24 bl sub_8098AA8 movs r0, 0x3 bl sub_8098898 b _08097A3C _080979FC: bl sub_809CF30 movs r1, 0xD6 lsls r1, 4 adds r4, r5, r1 strh r0, [r4] movs r0, 0 ldrsh r1, [r4, r0] movs r0, 0x2 negs r0, r0 cmp r1, r0 beq _08097A5A adds r0, 0x1 cmp r1, r0 bne _08097A24 bl sub_8098A5C movs r0, 0 strb r0, [r5, 0x4] b _08097A5A _08097A24: movs r0, 0x5 bl audio_play bl sub_8098A5C ldrh r0, [r4] subs r0, 0x10 strh r0, [r4] lsls r0, 24 lsrs r0, 24 bl sub_8099DCC _08097A3C: ldrb r0, [r5, 0x4] adds r0, 0x1 strb r0, [r5, 0x4] b _08097A5A _08097A44: bl sub_8099E08 lsls r0, 24 cmp r0, 0 bne _08097A5A movs r0, 0x1 bl sub_809A860 ldr r0, _08097A60 bl sub_8096BE0 _08097A5A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08097A60: .4byte sub_8096C84 thumb_func_end sub_8097974 thumb_func_start sub_8097A64 sub_8097A64: @ 8097A64 push {r4,r5,lr} ldr r5, _08097A78 ldrb r0, [r5, 0x4] cmp r0, 0x1 beq _08097AB0 cmp r0, 0x1 bgt _08097A7C cmp r0, 0 beq _08097A86 b _08097B32 .align 2, 0 _08097A78: .4byte 0x02000000 _08097A7C: cmp r0, 0x2 beq _08097B00 cmp r0, 0x3 beq _08097B18 b _08097B32 _08097A86: movs r0, 0x5 bl sub_8098898 ldr r1, _08097AA4 adds r0, r5, r1 ldr r2, _08097AA8 movs r1, 0x7 movs r3, 0x3 bl sub_8096264 ldr r0, _08097AAC ldrb r0, [r0] bl sub_809634C b _08097B0A .align 2, 0 _08097AA4: .4byte 0x00002370 _08097AA8: .4byte 0x0000daca _08097AAC: .4byte 0x020300a0 _08097AB0: bl sub_8096368 lsls r0, 24 lsrs r0, 24 ldr r2, _08097AF4 adds r4, r5, r2 strh r0, [r4] movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0xC8 beq _08097B32 bl sub_8098A5C bl sub_809635C bl sub_8096310 movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0xC9 beq _08097AE4 adds r1, r0, 0 ldr r0, _08097AF8 ldrb r0, [r0] cmp r1, r0 bne _08097B0A _08097AE4: movs r0, 0x1 bl sub_809A860 ldr r0, _08097AFC bl sub_8096BE0 b _08097B32 .align 2, 0 _08097AF4: .4byte 0x000008b2 _08097AF8: .4byte 0x020300a0 _08097AFC: .4byte sub_8096C84 _08097B00: ldr r1, _08097B14 adds r0, r5, r1 ldrb r0, [r0] bl sub_8099C70 _08097B0A: ldrb r0, [r5, 0x4] adds r0, 0x1 strb r0, [r5, 0x4] b _08097B32 .align 2, 0 _08097B14: .4byte 0x000008b2 _08097B18: bl sub_8099D34 lsls r0, 24 cmp r0, 0 bne _08097B32 ldr r1, _08097B38 ldr r2, _08097B3C adds r0, r5, r2 ldrh r0, [r0] strb r0, [r1] ldr r0, _08097B40 bl sub_8096BE0 _08097B32: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08097B38: .4byte 0x020300a0 _08097B3C: .4byte 0x000008b2 _08097B40: .4byte sub_8096C84 thumb_func_end sub_8097A64 thumb_func_start sub_8097B44 sub_8097B44: @ 8097B44 push {r4,r5,lr} sub sp, 0x4 ldr r5, _08097B58 ldrb r4, [r5, 0x4] cmp r4, 0 beq _08097B5C cmp r4, 0x1 beq _08097B78 b _08097B8E .align 2, 0 _08097B58: .4byte 0x02000000 _08097B5C: bl sub_809BB90 movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrb r0, [r5, 0x4] adds r0, 0x1 strb r0, [r5, 0x4] b _08097B8E _08097B78: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _08097B8E ldr r0, _08097B98 strb r4, [r0] strb r4, [r5, 0x6] ldr r0, _08097B9C bl SetMainCallback2 _08097B8E: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08097B98: .4byte 0x0203847f _08097B9C: .4byte sub_8096B5C thumb_func_end sub_8097B44 thumb_func_start sub_8097BA0 sub_8097BA0: @ 8097BA0 push {r4,lr} ldr r0, _08097BB8 ldrb r1, [r0, 0x4] adds r4, r0, 0 cmp r1, 0x4 bls _08097BAE b _08097CB0 _08097BAE: lsls r0, r1, 2 ldr r1, _08097BBC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08097BB8: .4byte 0x02000000 _08097BBC: .4byte _08097BC0 .align 2, 0 _08097BC0: .4byte _08097BD4 .4byte _08097C18 .4byte _08097C2C .4byte _08097C74 .4byte _08097C98 _08097BD4: bl sub_809BF20 lsls r0, 24 cmp r0, 0 beq _08097BF8 movs r0, 0x20 bl audio_play movs r0, 0xF bl sub_8098898 ldr r1, _08097BF4 movs r0, 0x1 strb r0, [r1, 0x4] b _08097CB0 .align 2, 0 _08097BF4: .4byte 0x02000000 _08097BF8: movs r0, 0x5 bl audio_play movs r0, 0 bl sub_8098898 movs r0, 0 bl sub_8098A38 ldr r1, _08097C14 movs r0, 0x2 strb r0, [r1, 0x4] b _08097CB0 .align 2, 0 _08097C14: .4byte 0x02000000 _08097C18: ldr r0, _08097C28 ldrh r1, [r0, 0x2E] movs r0, 0xF3 ands r0, r1 cmp r0, 0 beq _08097CB0 b _08097C4A .align 2, 0 _08097C28: .4byte 0x03001770 _08097C2C: bl ProcessMenuInputNoWrap lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _08097C5C cmp r1, 0 bgt _08097C46 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08097C4A b _08097CB0 _08097C46: cmp r1, 0x1 bne _08097CB0 _08097C4A: bl sub_8098A5C ldr r0, _08097C58 bl sub_8096BE0 b _08097CB0 .align 2, 0 _08097C58: .4byte sub_8096C84 _08097C5C: movs r0, 0x3 bl audio_play bl sub_8098A5C ldr r1, _08097C70 ldrb r0, [r1, 0x4] adds r0, 0x1 strb r0, [r1, 0x4] b _08097CB0 .align 2, 0 _08097C70: .4byte 0x02000000 _08097C74: movs r1, 0 movs r0, 0xE strh r0, [r4, 0xC] ldr r0, _08097C94 strh r0, [r4, 0xE] movs r0, 0x14 strh r0, [r4, 0x10] strh r1, [r4, 0x12] adds r0, r4, 0 adds r0, 0xC bl sub_80C5E38 ldrb r0, [r4, 0x4] adds r0, 0x1 strb r0, [r4, 0x4] b _08097CB0 .align 2, 0 _08097C94: .4byte 0x0000dad0 _08097C98: bl sub_80C5F98 lsls r0, 24 cmp r0, 0 beq _08097CB0 bl calc_player_party_count ldr r1, _08097CB8 strb r0, [r1] ldr r0, _08097CBC bl SetMainCallback2 _08097CB0: pop {r4} pop {r0} bx r0 .align 2, 0 _08097CB8: .4byte 0x03004350 _08097CBC: .4byte sub_80961A8 thumb_func_end sub_8097BA0 thumb_func_start sub_8097CC0 sub_8097CC0: @ 8097CC0 push {r4,lr} ldr r0, _08097CD8 ldrb r1, [r0, 0x4] adds r4, r0, 0 cmp r1, 0x4 bls _08097CCE b _08097DD0 _08097CCE: lsls r0, r1, 2 ldr r1, _08097CDC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08097CD8: .4byte 0x02000000 _08097CDC: .4byte _08097CE0 .align 2, 0 _08097CE0: .4byte _08097CF4 .4byte _08097D38 .4byte _08097D4C .4byte _08097D94 .4byte _08097DB8 _08097CF4: bl sub_809BF20 lsls r0, 24 cmp r0, 0 beq _08097D18 movs r0, 0x20 bl audio_play movs r0, 0xF bl sub_8098898 ldr r1, _08097D14 movs r0, 0x1 strb r0, [r1, 0x4] b _08097DD0 .align 2, 0 _08097D14: .4byte 0x02000000 _08097D18: movs r0, 0x5 bl audio_play movs r0, 0x12 bl sub_8098898 movs r0, 0 bl sub_8098A38 ldr r1, _08097D34 movs r0, 0x2 strb r0, [r1, 0x4] b _08097DD0 .align 2, 0 _08097D34: .4byte 0x02000000 _08097D38: ldr r0, _08097D48 ldrh r1, [r0, 0x2E] movs r0, 0xF3 ands r0, r1 cmp r0, 0 beq _08097DD0 b _08097D6C .align 2, 0 _08097D48: .4byte 0x03001770 _08097D4C: bl ProcessMenuInputNoWrap lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _08097D6C cmp r1, 0 bgt _08097D66 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08097D7C b _08097DD0 _08097D66: cmp r1, 0x1 beq _08097D7C b _08097DD0 _08097D6C: bl sub_8098A5C ldr r0, _08097D78 bl sub_8096BE0 b _08097DD0 .align 2, 0 _08097D78: .4byte sub_8096C84 _08097D7C: movs r0, 0x3 bl audio_play bl sub_8098A5C ldr r1, _08097D90 ldrb r0, [r1, 0x4] adds r0, 0x1 strb r0, [r1, 0x4] b _08097DD0 .align 2, 0 _08097D90: .4byte 0x02000000 _08097D94: movs r1, 0 movs r0, 0xE strh r0, [r4, 0xC] ldr r0, _08097DB4 strh r0, [r4, 0xE] movs r0, 0x14 strh r0, [r4, 0x10] strh r1, [r4, 0x12] adds r0, r4, 0 adds r0, 0xC bl sub_80C5E38 ldrb r0, [r4, 0x4] adds r0, 0x1 strb r0, [r4, 0x4] b _08097DD0 .align 2, 0 _08097DB4: .4byte 0x0000dad0 _08097DB8: bl sub_80C5F98 lsls r0, 24 cmp r0, 0 beq _08097DD0 bl calc_player_party_count ldr r1, _08097DD8 strb r0, [r1] ldr r0, _08097DDC bl SetMainCallback2 _08097DD0: pop {r4} pop {r0} bx r0 .align 2, 0 _08097DD8: .4byte 0x03004350 _08097DDC: .4byte sub_80961A8 thumb_func_end sub_8097CC0 thumb_func_start sub_8097DE0 sub_8097DE0: @ 8097DE0 push {lr} ldr r1, _08097E1C movs r0, 0 strb r0, [r1, 0x7] strh r0, [r1, 0x8] strh r0, [r1, 0xA] ldr r1, _08097E20 ldr r2, _08097E24 adds r0, r2, 0 strh r0, [r1] ldr r1, _08097E28 ldr r2, _08097E2C ldr r0, _08097E30 str r1, [r0] str r2, [r0, 0x4] ldr r1, _08097E34 str r1, [r0, 0x8] ldr r0, [r0, 0x8] ldr r0, _08097E38 ldr r1, _08097E3C bl LZ77UnCompVram ldr r0, _08097E40 movs r1, 0xD0 movs r2, 0x10 bl LoadPalette pop {r0} bx r0 .align 2, 0 _08097E1C: .4byte 0x02000000 _08097E20: .4byte REG_BG3CNT _08097E24: .4byte 0x00001e0f _08097E28: .4byte gPokemonStorageScrollingBGTile _08097E2C: .4byte 0x0600e000 _08097E30: .4byte 0x040000d4 _08097E34: .4byte 0x80000010 _08097E38: .4byte gPokemonStorageScrollingBGTilemap _08097E3C: .4byte 0x0600f000 _08097E40: .4byte gPokemonStorageScrollingBGPalette thumb_func_end sub_8097DE0 thumb_func_start sub_8097E44 sub_8097E44: @ 8097E44 push {lr} ldr r1, _08097E6C ldrb r0, [r1, 0x7] adds r0, 0x1 strb r0, [r1, 0x7] lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _08097E66 movs r0, 0 strb r0, [r1, 0x7] ldrh r0, [r1, 0x8] subs r0, 0x1 strh r0, [r1, 0x8] ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] _08097E66: pop {r0} bx r0 .align 2, 0 _08097E6C: .4byte 0x02000000 thumb_func_end sub_8097E44 thumb_func_start sub_8097E70 sub_8097E70: @ 8097E70 push {r4,lr} sub sp, 0x10 ldr r0, _08097F2C ldr r1, _08097F30 bl LZ77UnCompVram ldr r0, _08097F34 ldr r4, _08097F38 adds r1, r4, 0 bl LZ77UnCompWram ldr r0, _08097F3C movs r1, 0 str r1, [sp] str r1, [sp, 0x4] movs r1, 0xA str r1, [sp, 0x8] movs r1, 0x14 str r1, [sp, 0xC] movs r1, 0 movs r2, 0 adds r3, r4, 0 bl sub_809D034 ldr r0, _08097F40 movs r1, 0x10 movs r2, 0x20 bl LoadPalette ldr r0, _08097F44 movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r0, _08097F48 movs r1, 0xB0 movs r2, 0x20 bl LoadPalette ldr r0, _08097F4C movs r1, 0xC0 movs r2, 0x20 bl LoadPalette ldr r4, _08097F50 adds r0, r4, 0 movs r1, 0xF1 movs r2, 0x2 bl LoadPalette adds r0, r4, 0 movs r1, 0xF2 movs r2, 0x2 bl LoadPalette adds r0, r4, 0 adds r0, 0x8 movs r1, 0xF3 movs r2, 0x2 bl LoadPalette adds r0, r4, 0 adds r0, 0x16 movs r1, 0xF4 movs r2, 0x4 bl LoadPalette adds r0, r4, 0 adds r0, 0x12 movs r1, 0xF6 movs r2, 0x4 bl LoadPalette adds r4, 0x2 adds r0, r4, 0 movs r1, 0xFF movs r2, 0x2 bl LoadPalette ldr r0, _08097F54 bl LoadSpritePalette bl sub_80980D4 bl sub_8097F58 bl sub_8097FB8 bl sub_809801C add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _08097F2C: .4byte gUnknown_08E8DEC0 _08097F30: .4byte 0x06005000 _08097F34: .4byte gUnknown_08E8E128 _08097F38: .4byte 0x02039760 _08097F3C: .4byte 0x06007800 _08097F40: .4byte gUnknown_08E8E0E8 _08097F44: .4byte gUnknown_08E8E108 _08097F48: .4byte gUnknown_083B6D74 _08097F4C: .4byte gUnknown_083B6D94 _08097F50: .4byte gUnknownPalette_81E6692+0x2 _08097F54: .4byte gWaveformSpritePalette thumb_func_end sub_8097E70 thumb_func_start sub_8097F58 sub_8097F58: @ 8097F58 push {r4,lr} ldr r1, _08097FA4 movs r0, 0xD movs r2, 0 bl sub_80F7940 ldr r4, _08097FA8 ldr r1, _08097FAC adds r3, r4, r1 str r0, [r3] ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 strb r1, [r0, 0x5] ldr r0, [r3] adds r0, 0x43 movs r1, 0x1 strb r1, [r0] ldr r1, [r3] movs r0, 0x28 strh r0, [r1, 0x20] ldr r1, [r3] movs r0, 0x95 strh r0, [r1, 0x22] movs r0, 0xD bl GetSpriteTileStartByTag ldr r1, _08097FB0 adds r4, r1 lsls r0, 16 lsrs r0, 11 ldr r1, _08097FB4 adds r0, r1 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _08097FA4: .4byte 0x0000dace _08097FA8: .4byte 0x02000000 _08097FAC: .4byte 0x000012ac _08097FB0: .4byte 0x000012b8 _08097FB4: .4byte 0x06010000 thumb_func_end sub_8097F58 thumb_func_start sub_8097FB8 sub_8097FB8: @ 8097FB8 push {r4,r5,lr} sub sp, 0x8 ldr r0, _0809800C ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] mov r0, sp bl LoadSpriteSheet movs r4, 0 ldr r5, _08098010 _08097FD0: lsls r1, r4, 6 subs r1, r4 adds r1, 0x8 lsls r1, 16 asrs r1, 16 ldr r0, _08098014 movs r2, 0x9 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r2, r4, 2 adds r2, r5 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08098018 adds r1, r0 str r1, [r2] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _08097FD0 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809800C: .4byte gWaveformSpriteSheet _08098010: .4byte 0x020012b0 _08098014: .4byte gSpriteTemplate_83B6EFC _08098018: .4byte 0x02020004 thumb_func_end sub_8097FB8 thumb_func_start sub_809801C sub_809801C: @ 809801C push {lr} ldr r1, _0809803C ldr r2, _08098040 adds r0, r1, r2 ldrh r0, [r0] subs r2, 0x4 adds r1, r2 ldr r1, [r1] bl sub_80981F0 bl sub_80982B4 bl sub_8098350 pop {r0} bx r0 .align 2, 0 _0809803C: .4byte 0x02000000 _08098040: .4byte 0x000011f0 thumb_func_end sub_809801C thumb_func_start BoxSetMosaic BoxSetMosaic: @ 8098044 push {lr} bl sub_809801C ldr r0, _08098084 movs r1, 0x9C lsls r1, 6 adds r3, r0, r1 ldr r2, [r3] cmp r2, 0 beq _08098080 ldrb r0, [r2, 0x1] movs r1, 0x10 orrs r0, r1 strb r0, [r2, 0x1] ldr r1, [r3] movs r0, 0xA strh r0, [r1, 0x2E] ldr r1, [r3] movs r0, 0x1 strh r0, [r1, 0x30] ldr r1, [r3] ldr r0, _08098088 str r0, [r1, 0x1C] ldr r2, _0809808C ldr r0, [r3] ldrh r0, [r0, 0x2E] lsls r1, r0, 12 lsls r0, 8 orrs r1, r0 strh r1, [r2] _08098080: pop {r0} bx r0 .align 2, 0 _08098084: .4byte 0x02000000 _08098088: .4byte sub_8098090 _0809808C: .4byte REG_MOSAIC thumb_func_end BoxSetMosaic thumb_func_start sub_8098090 sub_8098090: @ 8098090 push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x2E] ldrh r1, [r3, 0x30] subs r0, r1 strh r0, [r3, 0x2E] lsls r0, 16 cmp r0, 0 bge _080980A6 movs r0, 0 strh r0, [r3, 0x2E] _080980A6: ldr r2, _080980CC ldrh r0, [r3, 0x2E] lsls r1, r0, 12 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r1, 0x2E ldrsh r0, [r3, r1] cmp r0, 0 bne _080980C8 ldrb r0, [r3, 0x1] movs r1, 0x11 negs r1, r1 ands r1, r0 strb r1, [r3, 0x1] ldr r0, _080980D0 str r0, [r3, 0x1C] _080980C8: pop {r0} bx r0 .align 2, 0 _080980CC: .4byte REG_MOSAIC _080980D0: .4byte SpriteCallbackDummy thumb_func_end sub_8098090 thumb_func_start sub_80980D4 sub_80980D4: @ 80980D4 push {r4,r5,lr} sub sp, 0x28 ldr r0, _08098150 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x18] str r1, [sp, 0x1C] ldr r0, _08098154 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x20] str r1, [sp, 0x24] mov r1, sp ldr r0, _08098158 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} movs r1, 0 add r5, sp, 0x18 ldr r4, _0809815C movs r3, 0 ldr r2, _08098160 _08098102: adds r0, r1, r4 strb r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r2 bls _08098102 movs r1, 0 ldr r3, _08098164 movs r2, 0 _08098116: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0xF bls _08098116 ldr r0, _08098168 movs r1, 0x9C lsls r1, 6 adds r0, r1 movs r1, 0 str r1, [r0] adds r0, r5, 0 bl LoadSpriteSheet lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 beq _080981C4 add r0, sp, 0x20 bl LoadSpritePalette lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xFF beq _080981C4 b _080981B0 .align 2, 0 _08098150: .4byte gUnknown_083B6DCC _08098154: .4byte gUnknown_083B6DD4 _08098158: .4byte gSpriteTemplate_83B6DDC _0809815C: .4byte 0x02002784 _08098160: .4byte 0x000007ff _08098164: .4byte 0x02002704 _08098168: .4byte 0x02000000 _0809816C: ldr r2, _0809819C movs r0, 0x9C lsls r0, 6 adds r3, r2, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080981A0 adds r0, r1 str r0, [r3] lsls r0, r4, 4 movs r1, 0x80 lsls r1, 1 adds r0, r1 ldr r3, _080981A4 adds r1, r2, r3 strh r0, [r1] ldr r4, _080981A8 adds r2, r4 lsls r0, r5, 5 ldr r1, _080981AC adds r0, r1 str r0, [r2] b _080981C4 .align 2, 0 _0809819C: .4byte 0x02000000 _080981A0: .4byte 0x02020004 _080981A4: .4byte 0x000026fa _080981A8: .4byte 0x000026fc _080981AC: .4byte 0x06010000 _080981B0: mov r0, sp movs r1, 0x28 movs r2, 0x30 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 bne _0809816C _080981C4: ldr r0, _080981E8 movs r2, 0x9C lsls r2, 6 adds r0, r2 ldr r0, [r0] cmp r0, 0 bne _080981DE movs r0, 0x2 bl FreeSpriteTilesByTag ldr r0, _080981EC bl FreeSpritePaletteByTag _080981DE: add sp, 0x28 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080981E8: .4byte 0x02000000 _080981EC: .4byte 0x0000dac7 thumb_func_end sub_80980D4 thumb_func_start sub_80981F0 sub_80981F0: @ 80981F0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r7, r1, 0 lsls r0, 16 lsrs r4, r0, 16 ldr r6, _08098274 movs r0, 0x9C lsls r0, 6 adds r0, r6 mov r8, r0 ldr r0, [r0] cmp r0, 0 beq _080982A6 cmp r4, 0 beq _0809829C lsls r0, r4, 3 ldr r1, _08098278 adds r0, r1 ldr r2, _0809827C lsls r1, r4, 2 adds r1, r2 ldrb r1, [r1] ldr r2, _08098280 adds r3, r6, r2 ldr r2, _08098284 adds r5, r6, r2 str r5, [sp] str r4, [sp, 0x4] str r7, [sp, 0x8] movs r2, 0x1 bl sub_800D334 ldr r1, _08098288 adds r0, r6, r1 ldr r0, [r0] ldr r2, _0809828C adds r4, r6, r2 adds r1, r4, 0 bl LZ77UnCompWram ldr r1, _08098290 adds r0, r6, r1 ldr r1, [r0] ldr r2, _08098294 adds r0, r5, 0 bl CpuSet ldr r2, _08098298 adds r0, r6, r2 ldrh r1, [r0] adds r0, r4, 0 movs r2, 0x20 bl LoadPalette mov r0, r8 ldr r1, [r0] adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] b _080982A6 .align 2, 0 _08098274: .4byte 0x02000000 _08098278: .4byte gMonFrontPicTable _0809827C: .4byte gMonFrontPicCoords _08098280: .4byte 0x00004784 _08098284: .4byte 0x00002784 _08098288: .4byte 0x000011e8 _0809828C: .4byte 0x00002704 _08098290: .4byte 0x000026fc _08098294: .4byte 0x04000200 _08098298: .4byte 0x000026fa _0809829C: adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080982A6: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80981F0 thumb_func_start sub_80982B4 sub_80982B4: @ 80982B4 push {r4,lr} ldr r4, _080982E4 ldr r1, _080982E8 adds r0, r4, r1 ldrh r0, [r0] cmp r0, 0 beq _080982F4 ldr r2, _080982EC adds r0, r4, r2 ldrb r0, [r0] adds r2, 0xC1 adds r1, r4, r2 ldr r1, [r1] bl sub_80F7A10 ldr r1, _080982F0 adds r0, r4, r1 ldr r1, [r0] adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 b _08098302 .align 2, 0 _080982E4: .4byte 0x02000000 _080982E8: .4byte 0x000011f0 _080982EC: .4byte 0x000011f7 _080982F0: .4byte 0x000012ac _080982F4: ldr r2, _08098348 adds r0, r4, r2 ldr r1, [r0] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 _08098302: strb r0, [r1] movs r0, 0 movs r1, 0xB movs r2, 0x9 movs r3, 0x11 bl Reset ldr r4, _0809834C adds r0, r4, 0 movs r1, 0x1 movs r2, 0x10 bl Print adds r0, r4, 0 subs r0, 0x6B movs r1, 0x1 movs r2, 0xB bl Print adds r0, r4, 0 subs r0, 0x46 movs r1, 0 movs r2, 0xD bl Print subs r4, 0x21 adds r0, r4, 0 movs r1, 0x1 movs r2, 0xF bl Print pop {r4} pop {r0} bx r0 .align 2, 0 _08098348: .4byte 0x000012ac _0809834C: .4byte 0x0200127a thumb_func_end sub_80982B4 thumb_func_start sub_8098350 sub_8098350: @ 8098350 push {r4,r5,lr} sub sp, 0x10 ldr r5, _080983A0 ldr r1, _080983A4 adds r0, r5, r1 ldrh r2, [r0] cmp r2, 0 beq _080983B4 ldr r0, _080983A8 ldr r3, _080983AC movs r1, 0x1 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] movs r1, 0x8 str r1, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] movs r1, 0x1 movs r2, 0 bl sub_809D034 movs r4, 0 ldr r0, _080983B0 adds r5, r0 _08098382: lsls r0, r4, 2 adds r0, r5 ldr r0, [r0] lsls r1, r4, 1 adds r1, 0x1 lsls r1, 24 lsrs r1, 24 bl StartSpriteAnimIfDifferent adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _08098382 b _080983EC .align 2, 0 _080983A0: .4byte 0x02000000 _080983A4: .4byte 0x000011f0 _080983A8: .4byte 0x06007800 _080983AC: .4byte 0x02039760 _080983B0: .4byte 0x000012b0 _080983B4: ldr r0, _080983F4 ldr r3, _080983F8 movs r1, 0xA str r1, [sp] str r2, [sp, 0x4] movs r1, 0x8 str r1, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] movs r1, 0x1 movs r2, 0 bl sub_809D034 movs r4, 0 ldr r1, _080983FC adds r5, r1 _080983D4: lsls r0, r4, 2 adds r0, r5 ldr r0, [r0] lsls r1, r4, 25 lsrs r1, 24 bl StartSpriteAnim adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _080983D4 _080983EC: add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080983F4: .4byte 0x06007800 _080983F8: .4byte 0x02039760 _080983FC: .4byte 0x000012b0 thumb_func_end sub_8098350 thumb_func_start sub_8098400 sub_8098400: @ 8098400 push {r4,r5,lr} sub sp, 0x14 ldr r1, _0809847C ldr r2, _08098480 adds r0, r2, 0 strh r0, [r1] ldr r0, _08098484 ldr r1, _08098488 bl LZ77UnCompVram ldr r0, _0809848C ldr r5, _08098490 adds r1, r5, 0 bl LZ77UnCompWram ldr r0, _08098494 movs r1, 0x20 movs r2, 0x20 bl LoadPalette ldr r0, _08098498 movs r1, 0x30 movs r2, 0x20 bl LoadPalette ldr r4, _0809849C add r1, sp, 0x10 movs r0, 0 strh r0, [r1] ldr r0, _080984A0 str r1, [r0] str r4, [r0, 0x4] ldr r1, _080984A4 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8098780 ldr r0, _080984A8 ldrb r0, [r0] cmp r0, 0 beq _080984AC movs r0, 0x1 bl sub_8098690 movs r0, 0x1 bl sub_8099200 movs r0, 0 str r0, [sp] str r0, [sp, 0x4] movs r0, 0xC str r0, [sp, 0x8] movs r0, 0x16 str r0, [sp, 0xC] adds r0, r4, 0 movs r1, 0xA movs r2, 0 adds r3, r5, 0 bl sub_809D034 b _080984CC .align 2, 0 _0809847C: .4byte REG_BG1CNT _08098480: .4byte 0x00000f01 _08098484: .4byte gUnknown_08E8E244 _08098488: .4byte 0x06006800 _0809848C: .4byte gUnknown_08E8E6E8 _08098490: .4byte 0x020000a8 _08098494: .4byte gUnknown_08E8E6A8 _08098498: .4byte gUnknown_08E8E6C8 _0809849C: .4byte 0x06007800 _080984A0: .4byte 0x040000d4 _080984A4: .4byte 0x81000400 _080984A8: .4byte 0x0203847c _080984AC: str r0, [sp] movs r0, 0x14 str r0, [sp, 0x4] movs r0, 0xC str r0, [sp, 0x8] movs r0, 0x2 str r0, [sp, 0xC] adds r0, r4, 0 movs r1, 0xA movs r2, 0 adds r3, r5, 0 bl sub_809D034 movs r0, 0x1 bl sub_8098690 _080984CC: ldr r0, _080984E0 ldr r1, _080984E4 adds r0, r1 movs r1, 0 strb r1, [r0] add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080984E0: .4byte 0x02000000 _080984E4: .4byte 0x000008af thumb_func_end sub_8098400 thumb_func_start sub_80984E8 sub_80984E8: @ 80984E8 push {lr} ldr r1, _08098510 ldr r0, _08098514 adds r2, r1, r0 movs r3, 0 movs r0, 0x14 strh r0, [r2] ldr r0, _08098518 adds r2, r1, r0 movs r0, 0x2 strh r0, [r2] ldr r0, _0809851C adds r1, r0 strb r3, [r1] movs r0, 0 bl sub_8099200 pop {r0} bx r0 .align 2, 0 _08098510: .4byte 0x02000000 _08098514: .4byte 0x000008a8 _08098518: .4byte 0x000008aa _0809851C: .4byte 0x000008ad thumb_func_end sub_80984E8 thumb_func_start sub_8098520 sub_8098520: @ 8098520 push {r4,r5,lr} sub sp, 0x10 ldr r3, _08098578 ldr r0, _0809857C adds r5, r3, r0 ldrb r0, [r5] cmp r0, 0x14 beq _08098592 ldr r0, _08098580 adds r1, r3, r0 ldrh r0, [r1] subs r0, 0x1 movs r4, 0 strh r0, [r1] ldr r0, _08098584 adds r2, r3, r0 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] ldr r0, _08098588 adds r3, 0xA8 str r4, [sp] ldrh r1, [r1] str r1, [sp, 0x4] movs r1, 0xC str r1, [sp, 0x8] ldrh r1, [r2] str r1, [sp, 0xC] movs r1, 0xA movs r2, 0 bl sub_809D034 movs r0, 0x8 bl sub_80994A8 ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] lsls r0, 24 lsrs r0, 24 cmp r0, 0x14 beq _0809858C movs r0, 0x1 b _08098594 .align 2, 0 _08098578: .4byte 0x02000000 _0809857C: .4byte 0x000008ad _08098580: .4byte 0x000008a8 _08098584: .4byte 0x000008aa _08098588: .4byte 0x06007800 _0809858C: ldr r1, _0809859C movs r0, 0x1 strb r0, [r1] _08098592: movs r0, 0 _08098594: add sp, 0x10 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0809859C: .4byte 0x0203847c thumb_func_end sub_8098520 thumb_func_start add_to_c3_somehow add_to_c3_somehow: @ 80985A0 ldr r1, _080985BC ldr r0, _080985C0 adds r2, r1, r0 movs r3, 0 movs r0, 0 strh r0, [r2] ldr r0, _080985C4 adds r2, r1, r0 movs r0, 0x16 strh r0, [r2] ldr r0, _080985C8 adds r1, r0 strb r3, [r1] bx lr .align 2, 0 _080985BC: .4byte 0x02000000 _080985C0: .4byte 0x000008a8 _080985C4: .4byte 0x000008aa _080985C8: .4byte 0x000008ad thumb_func_end add_to_c3_somehow thumb_func_start sub_80985CC sub_80985CC: @ 80985CC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 ldr r3, _08098640 ldr r0, _08098644 adds r6, r3, r0 ldrb r0, [r6] cmp r0, 0x14 beq _0809867A ldr r2, _08098648 adds r1, r3, r2 ldrh r0, [r1] adds r0, 0x1 movs r2, 0 mov r9, r2 strh r0, [r1] ldr r0, _0809864C adds r4, r3, r0 ldrh r0, [r4] subs r0, 0x1 strh r0, [r4] ldr r5, _08098650 adds r3, 0xA8 mov r8, r3 str r2, [sp] ldrh r0, [r1] str r0, [sp, 0x4] movs r7, 0xC str r7, [sp, 0x8] ldrh r0, [r4] str r0, [sp, 0xC] adds r0, r5, 0 movs r1, 0xA bl sub_809D034 ldrh r2, [r4] movs r4, 0x1 str r4, [sp] adds r0, r5, 0 movs r1, 0xA movs r3, 0xC bl sub_809D16C movs r0, 0x8 negs r0, r0 bl sub_80994A8 ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] lsls r0, 24 lsrs r0, 24 cmp r0, 0x14 beq _08098654 movs r0, 0x1 b _0809867C .align 2, 0 _08098640: .4byte 0x02000000 _08098644: .4byte 0x000008ad _08098648: .4byte 0x000008a8 _0809864C: .4byte 0x000008aa _08098650: .4byte 0x06007800 _08098654: ldr r0, _0809868C movs r1, 0 strb r1, [r0] bl sub_809954C bl party_compaction str r7, [sp] mov r2, r9 str r2, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x2 str r0, [sp, 0xC] adds r0, r5, 0 movs r1, 0x15 movs r2, 0 mov r3, r8 bl sub_809D034 _0809867A: movs r0, 0 _0809867C: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0809868C: .4byte 0x0203847c thumb_func_end sub_80985CC thumb_func_start sub_8098690 sub_8098690: @ 8098690 push {lr} sub sp, 0x10 lsls r0, 24 cmp r0, 0 beq _080986C0 ldr r0, _080986B8 ldr r3, _080986BC movs r1, 0xC str r1, [sp] movs r1, 0 str r1, [sp, 0x4] movs r1, 0x9 str r1, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] movs r1, 0x15 movs r2, 0 bl sub_809D034 b _080986DA .align 2, 0 _080986B8: .4byte 0x06007800 _080986BC: .4byte 0x020000a8 _080986C0: ldr r0, _080986E0 ldr r3, _080986E4 movs r1, 0xC str r1, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r1, 0x9 str r1, [sp, 0x8] str r2, [sp, 0xC] movs r1, 0x15 movs r2, 0 bl sub_809D034 _080986DA: add sp, 0x10 pop {r0} bx r0 .align 2, 0 _080986E0: .4byte 0x06007800 _080986E4: .4byte 0x020000a8 thumb_func_end sub_8098690 thumb_func_start sub_80986E8 sub_80986E8: @ 80986E8 ldr r1, _08098704 ldr r2, _08098708 adds r0, r1, r2 movs r3, 0x1 strb r3, [r0] movs r0, 0x8B lsls r0, 4 adds r2, r1, r0 movs r0, 0x1E strb r0, [r2] ldr r2, _0809870C adds r1, r2 strb r3, [r1] bx lr .align 2, 0 _08098704: .4byte 0x02000000 _08098708: .4byte 0x000008af _0809870C: .4byte 0x000008b1 thumb_func_end sub_80986E8 thumb_func_start sub_8098710 sub_8098710: @ 8098710 push {lr} ldr r0, _0809872C ldr r2, _08098730 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 beq _08098728 movs r0, 0 strb r0, [r1] movs r0, 0x1 bl sub_8098690 _08098728: pop {r0} bx r0 .align 2, 0 _0809872C: .4byte 0x02000000 _08098730: .4byte 0x000008af thumb_func_end sub_8098710 thumb_func_start sub_8098734 sub_8098734: @ 8098734 push {lr} ldr r2, _08098774 ldr r1, _08098778 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _08098770 movs r0, 0x8B lsls r0, 4 adds r1, r2, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x1E bls _08098770 movs r0, 0 strb r0, [r1] movs r3, 0 ldr r0, _0809877C adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0 bne _08098768 movs r3, 0x1 _08098768: strb r3, [r1] ldrb r0, [r1] bl sub_8098690 _08098770: pop {r0} bx r0 .align 2, 0 _08098774: .4byte 0x02000000 _08098778: .4byte 0x000008af _0809877C: .4byte 0x000008b1 thumb_func_end sub_8098734 thumb_func_start sub_8098780 sub_8098780: @ 8098780 push {r4-r6,lr} sub sp, 0x10 movs r4, 0x1 ldr r6, _080987D4 movs r5, 0x80 lsls r5, 9 _0809878C: movs r0, 0x64 muls r0, r4 ldr r1, _080987D8 adds r0, r1 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _080987A0 movs r0, 0x1 _080987A0: movs r1, 0x10 cmp r0, 0 beq _080987A8 movs r1, 0xC _080987A8: lsrs r2, r5, 16 str r1, [sp] movs r0, 0x4 str r0, [sp, 0x4] str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] adds r0, r6, 0 movs r1, 0x7 adds r3, r6, 0 bl sub_809D104 movs r0, 0xC0 lsls r0, 10 adds r5, r0 adds r4, 0x1 cmp r4, 0x5 ble _0809878C add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080987D4: .4byte 0x020000a8 _080987D8: .4byte 0x03004360 thumb_func_end sub_8098780 thumb_func_start sub_80987DC sub_80987DC: @ 80987DC push {lr} sub sp, 0x10 bl sub_8098780 ldr r0, _08098804 ldr r3, _08098808 movs r1, 0 str r1, [sp] str r1, [sp, 0x4] movs r1, 0xC str r1, [sp, 0x8] movs r1, 0x16 str r1, [sp, 0xC] movs r1, 0xA movs r2, 0 bl sub_809D034 add sp, 0x10 pop {r0} bx r0 .align 2, 0 _08098804: .4byte 0x06007800 _08098808: .4byte 0x020000a8 thumb_func_end sub_80987DC thumb_func_start sub_809880C sub_809880C: @ 809880C push {lr} ldr r0, _08098828 ldr r1, _0809882C adds r0, r1 movs r1, 0 strb r1, [r0] movs r0, 0x6 bl audio_play bl sub_80984E8 pop {r0} bx r0 .align 2, 0 _08098828: .4byte 0x02000000 _0809882C: .4byte 0x000008ae thumb_func_end sub_809880C thumb_func_start sub_8098830 sub_8098830: @ 8098830 push {r4,r5,lr} ldr r5, _08098848 ldr r0, _0809884C adds r4, r5, r0 ldrb r0, [r4] cmp r0, 0x1 beq _08098866 cmp r0, 0x1 bgt _08098850 cmp r0, 0 beq _08098856 b _08098890 .align 2, 0 _08098848: .4byte 0x02000000 _0809884C: .4byte 0x000008ae _08098850: cmp r0, 0x2 beq _0809888C b _08098890 _08098856: bl sub_8098520 lsls r0, 24 cmp r0, 0 bne _08098890 bl sub_809B068 b _0809887E _08098866: bl sub_809AC00 lsls r0, 24 cmp r0, 0 bne _08098890 ldr r1, _08098888 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 beq _0809887E bl BoxSetMosaic _0809887E: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _08098890 .align 2, 0 _08098888: .4byte 0x000011f6 _0809888C: movs r0, 0 b _08098892 _08098890: movs r0, 0x1 _08098892: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8098830 thumb_func_start sub_8098898 sub_8098898: @ 8098898 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0xA movs r1, 0x10 movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow ldr r1, _080988C4 lsls r0, r5, 3 adds r0, r1 ldrb r0, [r0, 0x4] cmp r0, 0x6 bls _080988B8 b _080989F4 _080988B8: lsls r0, 2 ldr r1, _080988C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080988C4: .4byte gUnknown_083B6DF4 _080988C8: .4byte _080988CC .align 2, 0 _080988CC: .4byte _080989F4 .4byte _08098930 .4byte _080988E8 .4byte _08098974 .4byte _08098954 .4byte _08098910 .4byte _080989B8 _080988E8: ldr r4, _08098904 ldr r1, _08098908 lsls r0, r5, 3 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl StringCopy adds r2, r0, 0 ldr r0, _0809890C adds r4, r0 adds r0, r2, 0 adds r1, r4, 0 b _080989FE .align 2, 0 _08098904: .4byte 0x02002694 _08098908: .4byte gUnknown_083B6DF4 _0809890C: .4byte 0xffffeb66 _08098910: ldr r4, _08098928 ldr r1, _0809892C lsls r0, r5, 3 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl StringCopy adds r2, r0, 0 adds r4, 0x50 adds r1, r4, 0 b _080989FE .align 2, 0 _08098928: .4byte 0x02002694 _0809892C: .4byte gUnknown_083B6DF4 _08098930: ldr r0, _08098948 ldr r2, _0809894C adds r1, r0, r2 bl StringCopy adds r2, r0, 0 ldr r1, _08098950 lsls r0, r5, 3 adds r0, r1 ldr r1, [r0] adds r0, r2, 0 b _080989FE .align 2, 0 _08098948: .4byte 0x02002694 _0809894C: .4byte 0xffffeb66 _08098950: .4byte gUnknown_083B6DF4 _08098954: ldr r0, _0809896C adds r1, r0, 0 adds r1, 0x50 bl StringCopy adds r2, r0, 0 ldr r1, _08098970 lsls r0, r5, 3 adds r0, r1 ldr r1, [r0] adds r0, r2, 0 b _080989FE .align 2, 0 _0809896C: .4byte 0x02002694 _08098970: .4byte gUnknown_083B6DF4 _08098974: ldr r1, _080989AC lsls r0, r5, 3 adds r0, r1 ldr r6, [r0] adds r0, r6, 0 bl StringLength adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r4, r6, r4 adds r4, 0x1 ldr r5, _080989B0 adds r0, r5, 0 adds r1, r6, 0 bl StringCopy adds r2, r0, 0 ldr r0, _080989B4 adds r5, r0 adds r0, r2, 0 adds r1, r5, 0 bl StringCopy adds r2, r0, 0 adds r1, r4, 0 b _080989FE .align 2, 0 _080989AC: .4byte gUnknown_083B6DF4 _080989B0: .4byte 0x02002694 _080989B4: .4byte 0xffffeb66 _080989B8: ldr r1, _080989EC lsls r0, r5, 3 adds r0, r1 ldr r6, [r0] adds r0, r6, 0 bl StringLength adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r4, r6, r4 subs r4, 0x1 ldr r5, _080989F0 adds r0, r5, 0 adds r1, r6, 0 bl StringCopy adds r2, r0, 0 subs r0, r2, 0x1 adds r5, 0x50 adds r1, r5, 0 bl StringCopy adds r2, r0, 0 adds r1, r4, 0 b _080989FE .align 2, 0 _080989EC: .4byte gUnknown_083B6DF4 _080989F0: .4byte 0x02002694 _080989F4: ldr r0, _08098A2C ldr r2, _08098A30 lsls r1, r5, 3 adds r1, r2 ldr r1, [r1] _080989FE: bl StringCopy adds r2, r0, 0 ldr r0, _08098A34 adds r3, r0, 0 subs r3, 0x12 cmp r2, r0 bcs _08098A18 movs r1, 0 _08098A10: strb r1, [r2] adds r2, 0x1 cmp r2, r0 bcc _08098A10 _08098A18: movs r0, 0xFF strb r0, [r2] adds r0, r3, 0 movs r1, 0xB movs r2, 0x11 bl Print pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08098A2C: .4byte 0x02002694 _08098A30: .4byte gUnknown_083B6DF4 _08098A34: .4byte 0x020026a6 thumb_func_end sub_8098898 thumb_func_start sub_8098A38 sub_8098A38: @ 8098A38 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x17 movs r1, 0xA movs r2, 0 bl sub_8072974 lsls r4, 24 asrs r4, 24 adds r0, r4, 0 bl MoveMenuCursor pop {r4} pop {r0} bx r0 thumb_func_end sub_8098A38 thumb_func_start sub_8098A5C sub_8098A5C: @ 8098A5C push {lr} bl sub_8072DEC movs r0, 0xA movs r1, 0x10 movs r2, 0x1D movs r3, 0x13 bl Reset movs r0, 0x17 movs r1, 0xA movs r2, 0x1D movs r3, 0xF bl Reset pop {r0} bx r0 thumb_func_end sub_8098A5C thumb_func_start sub_8098A80 sub_8098A80: @ 8098A80 push {lr} bl sub_809CDCC movs r0, 0xC bl sub_809CDEC movs r0, 0xD bl sub_809CDEC movs r0, 0xE bl sub_809CDEC movs r0, 0xF bl sub_809CDEC bl sub_809CE84 pop {r0} bx r0 thumb_func_end sub_8098A80 thumb_func_start sub_8098AA8 sub_8098AA8: @ 8098AA8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl sub_809CDCC cmp r4, 0x1 beq _08098AE6 cmp r4, 0x1 bgt _08098AC2 cmp r4, 0 beq _08098ACC b _08098B32 _08098AC2: cmp r5, 0x2 beq _08098B00 cmp r5, 0x3 beq _08098B1A b _08098B32 _08098ACC: movs r0, 0x10 bl sub_809CDEC movs r0, 0x11 bl sub_809CDEC movs r0, 0x12 bl sub_809CDEC movs r0, 0x13 bl sub_809CDEC b _08098B32 _08098AE6: movs r0, 0x14 bl sub_809CDEC movs r0, 0x15 bl sub_809CDEC movs r0, 0x16 bl sub_809CDEC movs r0, 0x17 bl sub_809CDEC b _08098B32 _08098B00: movs r0, 0x18 bl sub_809CDEC movs r0, 0x19 bl sub_809CDEC movs r0, 0x1A bl sub_809CDEC movs r0, 0x1B bl sub_809CDEC b _08098B32 _08098B1A: movs r0, 0x1C bl sub_809CDEC movs r0, 0x1D bl sub_809CDEC movs r0, 0x1E bl sub_809CDEC movs r0, 0x1F bl sub_809CDEC _08098B32: bl sub_809CE84 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8098AA8 thumb_func_start get_preferred_box get_preferred_box: @ 8098B3C ldr r0, _08098B44 ldrb r0, [r0] bx lr .align 2, 0 _08098B44: .4byte 0x020300a0 thumb_func_end get_preferred_box thumb_func_start sub_8098B48 sub_8098B48: @ 8098B48 push {r4,r5,lr} bl sub_809D51C movs r2, 0 ldr r1, _08098BD8 ldr r0, [r1] ldr r4, _08098BDC adds r3, r0, r4 movs r4, 0 adds r5, r1, 0 _08098B5C: lsls r0, r2, 1 adds r0, r3, r0 strh r4, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x27 bls _08098B5C movs r2, 0 ldr r0, _08098BD8 ldr r0, [r0] movs r1, 0x89 lsls r1, 5 adds r3, r0, r1 movs r1, 0 _08098B7A: lsls r0, r2, 1 adds r0, r3, r0 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x27 bls _08098B7A movs r2, 0 ldr r0, _08098BD8 ldr r0, [r0] ldr r4, _08098BE0 adds r3, r0, r4 movs r1, 0 _08098B96: lsls r0, r2, 2 adds r0, r3, r0 str r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x5 bls _08098B96 movs r2, 0 ldr r0, _08098BD8 ldr r0, [r0] ldr r1, _08098BE4 adds r3, r0, r1 movs r1, 0 _08098BB2: lsls r0, r2, 2 adds r0, r3, r0 str r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x1D bls _08098BB2 ldr r0, [r5] ldr r2, _08098BE8 adds r1, r0, r2 movs r2, 0 str r2, [r1] ldr r4, _08098BEC adds r0, r4 strh r2, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08098BD8: .4byte gUnknown_083B6DB4 _08098BDC: .4byte 0x000010d0 _08098BE0: .4byte 0x00001038 _08098BE4: .4byte 0x00001050 _08098BE8: .4byte 0x00001034 _08098BEC: .4byte 0x00000d5c thumb_func_end sub_8098B48 thumb_func_start sub_8098BF0 sub_8098BF0: @ 8098BF0 push {r4-r6,lr} sub sp, 0x8 ldr r0, _08098C38 ldr r5, [r0] ldr r0, _08098C3C adds r4, r5, r0 adds r0, r4, 0 movs r1, 0 bl PokemonGetField adds r6, r0, 0 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField lsls r0, 16 lsrs r0, 16 movs r1, 0x1 str r1, [sp] movs r1, 0x7 str r1, [sp, 0x4] adds r1, r6, 0 movs r2, 0 movs r3, 0 bl sub_8099AFC ldr r1, _08098C40 adds r5, r1 str r0, [r5] ldr r1, _08098C44 str r1, [r0, 0x1C] add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08098C38: .4byte gUnknown_083B6DB4 _08098C3C: .4byte 0x000025b4 _08098C40: .4byte 0x00001034 _08098C44: .4byte sub_80999C4 thumb_func_end sub_8098BF0 thumb_func_start sub_8098C48 sub_8098C48: @ 8098C48 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 ldr r1, _08098CCC adds r6, r0, r1 movs r0, 0 mov r8, r0 movs r7, 0 _08098C6A: movs r5, 0 adds r1, r7, 0x1 mov r9, r1 _08098C70: adds r0, r6, 0 movs r1, 0x41 bl PokemonGetEncryptedField lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _08098CD8 adds r0, r6, 0 movs r1, 0 bl PokemonGetEncryptedField adds r1, r0, 0 lsls r2, r5, 1 adds r2, r5 lsls r2, 19 movs r3, 0xC8 lsls r3, 15 adds r2, r3 asrs r2, 16 lsls r3, r7, 1 adds r3, r7 lsls r3, 19 movs r0, 0xB0 lsls r0, 14 adds r3, r0 movs r0, 0x2 str r0, [sp] movs r0, 0x12 subs r0, r5 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] adds r0, r4, 0 asrs r3, 16 bl sub_8099AFC ldr r1, _08098CD0 ldr r1, [r1] mov r3, r8 lsls r2, r3, 2 ldr r3, _08098CD4 adds r1, r3 adds r1, r2 str r0, [r1] b _08098CE8 .align 2, 0 _08098CCC: .4byte 0x020300a4 _08098CD0: .4byte gUnknown_083B6DB4 _08098CD4: .4byte 0x00001050 _08098CD8: ldr r0, _08098D18 ldr r0, [r0] mov r2, r8 lsls r1, r2, 2 ldr r3, _08098D1C adds r0, r3 adds r0, r1 str r4, [r0] _08098CE8: adds r6, 0x50 mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x5 bls _08098C70 mov r1, r9 lsls r0, r1, 16 lsrs r7, r0, 16 cmp r7, 0x4 bls _08098C6A add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08098D18: .4byte gUnknown_083B6DB4 _08098D1C: .4byte 0x00001050 thumb_func_end sub_8098C48 thumb_func_start sub_8098D20 sub_8098D20: @ 8098D20 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 bl get_preferred_box lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r2, r1, 4 subs r2, r1 lsls r2, 5 lsls r0, r4, 2 mov r9, r0 adds r0, r4 lsls r0, 4 ldr r1, _08098DD4 adds r0, r1 adds r7, r2, r0 adds r0, r7, 0 movs r1, 0x41 bl PokemonGetEncryptedField lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r0, 0 beq _08098DC4 adds r0, r4, 0 movs r1, 0x6 bl __umodsi3 adds r6, r0, 0 lsls r0, r6, 24 lsrs r0, 24 lsls r5, r0, 1 adds r5, r0 lsls r5, 19 movs r1, 0xC8 lsls r1, 15 adds r5, r1 lsrs r5, 16 adds r0, r4, 0 movs r1, 0x6 bl __udivsi3 lsls r0, 24 lsrs r0, 24 lsls r4, r0, 1 adds r4, r0 lsls r4, 19 movs r2, 0xB0 lsls r2, 14 adds r4, r2 lsrs r4, 16 adds r0, r7, 0 movs r1, 0 bl PokemonGetEncryptedField adds r1, r0, 0 movs r0, 0x2 str r0, [sp] movs r0, 0x12 subs r0, r6 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] mov r0, r8 adds r2, r5, 0 adds r3, r4, 0 bl sub_8099AFC ldr r1, _08098DD8 ldr r1, [r1] ldr r2, _08098DDC adds r1, r2 add r1, r9 str r0, [r1] _08098DC4: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08098DD4: .4byte 0x020300a4 _08098DD8: .4byte gUnknown_083B6DB4 _08098DDC: .4byte 0x00001050 thumb_func_end sub_8098D20 thumb_func_start sub_8098DE0 sub_8098DE0: @ 8098DE0 push {r4-r6,lr} lsls r0, 16 lsrs r4, r0, 16 movs r2, 0 ldr r0, _08098E18 ldr r0, [r0] ldr r1, _08098E1C adds r3, r0, r1 movs r6, 0x1 ldr r5, _08098E20 _08098DF4: lsls r0, r2, 2 adds r1, r3, r0 ldr r0, [r1] cmp r0, 0 beq _08098E08 strh r4, [r0, 0x32] ldr r0, [r1] strh r6, [r0, 0x36] ldr r0, [r1] str r5, [r0, 0x1C] _08098E08: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x1D bls _08098DF4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08098E18: .4byte gUnknown_083B6DB4 _08098E1C: .4byte 0x00001050 _08098E20: .4byte sub_8098E68 thumb_func_end sub_8098DE0 thumb_func_start sub_8098E24 sub_8098E24: @ 8098E24 push {lr} adds r2, r0, 0 ldrh r1, [r2, 0x30] movs r3, 0x30 ldrsh r0, [r2, r3] cmp r0, 0 beq _08098E40 subs r0, r1, 0x1 strh r0, [r2, 0x30] ldrh r0, [r2, 0x32] ldrh r1, [r2, 0x20] adds r0, r1 strh r0, [r2, 0x20] b _08098E56 _08098E40: ldr r0, _08098E5C ldr r1, [r0] ldr r3, _08098E60 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] ldrh r0, [r2, 0x34] strh r0, [r2, 0x20] ldr r0, _08098E64 str r0, [r2, 0x1C] _08098E56: pop {r0} bx r0 .align 2, 0 _08098E5C: .4byte gUnknown_083B6DB4 _08098E60: .4byte 0x00001178 _08098E64: .4byte SpriteCallbackDummy thumb_func_end sub_8098E24 thumb_func_start sub_8098E68 sub_8098E68: @ 8098E68 push {lr} adds r2, r0, 0 ldrh r1, [r2, 0x36] movs r3, 0x36 ldrsh r0, [r2, r3] cmp r0, 0 beq _08098E7C subs r0, r1, 0x1 strh r0, [r2, 0x36] b _08098E98 _08098E7C: ldrh r0, [r2, 0x32] ldrh r1, [r2, 0x20] adds r0, r1 strh r0, [r2, 0x20] ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x38] subs r0, 0x45 lsls r0, 16 lsrs r0, 16 cmp r0, 0xB6 bls _08098E98 ldr r0, _08098E9C str r0, [r2, 0x1C] _08098E98: pop {r0} bx r0 .align 2, 0 _08098E9C: .4byte SpriteCallbackDummy thumb_func_end sub_8098E68 thumb_func_start sub_8098EA0 sub_8098EA0: @ 8098EA0 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 ldr r0, _08098ED8 ldr r0, [r0] ldr r1, _08098EDC adds r7, r0, r1 _08098EB0: lsls r0, r5, 2 adds r4, r7, r0 ldr r0, [r4] cmp r0, 0 beq _08098EC2 bl sub_8099BE0 movs r0, 0 str r0, [r4] _08098EC2: adds r0, r5, 0x6 lsls r0, 24 lsrs r5, r0, 24 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x4 bls _08098EB0 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08098ED8: .4byte gUnknown_083B6DB4 _08098EDC: .4byte 0x00001050 thumb_func_end sub_8098EA0 thumb_func_start sub_8098EE0 sub_8098EE0: @ 8098EE0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 lsls r0, 24 lsrs r6, r0, 24 lsls r1, 16 lsrs r1, 16 str r1, [sp, 0x8] lsls r2, 16 movs r0, 0x2C str r0, [sp, 0x10] lsls r0, r6, 1 adds r0, r6 lsls r0, 19 movs r1, 0xC8 lsls r1, 15 adds r0, r1 lsrs r0, 16 mov r10, r0 ldr r0, [sp, 0x8] adds r0, 0x1 lsrs r3, r2, 16 str r3, [sp, 0xC] asrs r2, 16 adds r1, r0, 0 muls r1, r2 mov r4, r10 subs r1, r4, r1 movs r0, 0x12 subs r0, r6 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x18] movs r0, 0 str r0, [sp, 0x14] mov r9, r0 ldr r0, _08098FF8 ldr r0, [r0] ldr r2, _08098FFC adds r2, r0 mov r8, r2 ldr r3, _08099000 adds r3, r0, r3 str r3, [sp, 0x20] lsls r1, 16 str r1, [sp, 0x1C] _08098F42: mov r4, r8 ldrb r0, [r4] lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 lsls r7, r6, 2 adds r1, r7, r6 lsls r1, 4 ldr r2, _08099004 adds r4, r1, r2 adds r0, r4 movs r1, 0x41 bl PokemonGetEncryptedField lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 beq _08098FC8 mov r1, r8 ldrb r0, [r1] lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 adds r0, r4 movs r1, 0 bl PokemonGetEncryptedField adds r1, r0, 0 ldr r2, [sp, 0x10] lsls r3, r2, 16 asrs r3, 16 movs r0, 0x2 str r0, [sp] ldr r4, [sp, 0x18] str r4, [sp, 0x4] adds r0, r5, 0 ldr r4, [sp, 0x1C] asrs r2, r4, 16 bl sub_8099AFC ldr r2, [sp, 0x20] adds r1, r2, r7 str r0, [r1] cmp r0, 0 beq _08098FC8 mov r3, sp ldrh r3, [r3, 0x8] strh r3, [r0, 0x30] ldr r0, [r1] mov r4, sp ldrh r4, [r4, 0xC] strh r4, [r0, 0x32] ldr r0, [r1] mov r2, r10 strh r2, [r0, 0x34] ldr r1, [r1] ldr r0, _08099008 str r0, [r1, 0x1C] ldr r0, [sp, 0x14] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x14] _08098FC8: adds r0, r6, 0x6 lsls r0, 24 lsrs r6, r0, 24 ldr r0, [sp, 0x10] adds r0, 0x18 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x10] mov r0, r9 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r9, r0 cmp r0, 0x4 bls _08098F42 ldr r0, [sp, 0x14] add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08098FF8: .4byte gUnknown_083B6DB4 _08098FFC: .4byte 0x0000117d _08099000: .4byte 0x00001050 _08099004: .4byte 0x020300a4 _08099008: .4byte sub_8098E24 thumb_func_end sub_8098EE0 thumb_func_start sub_809900C sub_809900C: @ 809900C push {r4-r6,lr} lsls r1, 24 lsrs r1, 24 ldr r4, _08099058 ldr r5, [r4] ldr r3, _0809905C adds r2, r5, r3 movs r3, 0 strb r3, [r2] ldr r6, _08099060 adds r2, r5, r6 strb r0, [r2] ldr r2, _08099064 adds r0, r5, r2 strb r1, [r0] subs r6, 0xB adds r2, r5, r6 movs r0, 0x20 strh r0, [r2] lsls r1, 24 asrs r1, 24 lsls r0, r1, 1 adds r0, r1 lsls r0, 1 negs r0, r0 adds r6, 0x4 adds r2, r5, r6 strh r0, [r2] ldr r2, _08099068 adds r0, r5, r2 strh r3, [r0] cmp r1, 0 ble _08099070 ldr r3, _0809906C adds r1, r5, r3 movs r0, 0 b _08099076 .align 2, 0 _08099058: .4byte gUnknown_083B6DB4 _0809905C: .4byte 0x0000117c _08099060: .4byte 0x0000117d _08099064: .4byte 0x0000117b _08099068: .4byte 0x00001178 _0809906C: .4byte 0x0000117a _08099070: ldr r6, _080990A0 adds r1, r5, r6 movs r0, 0x5 _08099076: strb r0, [r1] ldr r2, [r4] ldr r1, _080990A0 adds r0, r2, r1 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, 0x64 ldr r3, _080990A4 adds r1, r2, r3 strh r0, [r1] ldr r6, _080990A8 adds r2, r6 movs r1, 0 ldrsh r0, [r2, r1] bl sub_8098DE0 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080990A0: .4byte 0x0000117a _080990A4: .4byte 0x00001174 _080990A8: .4byte 0x00001176 thumb_func_end sub_809900C thumb_func_start sub_80990AC sub_80990AC: @ 80990AC push {r4-r6,lr} ldr r0, _080990D4 ldr r4, [r0] ldr r0, _080990D8 adds r3, r4, r0 ldrh r0, [r3] cmp r0, 0 beq _080990C0 subs r0, 0x1 strh r0, [r3] _080990C0: ldr r1, _080990DC adds r6, r4, r1 ldrb r0, [r6] cmp r0, 0x1 beq _08099138 cmp r0, 0x1 bgt _080990E0 cmp r0, 0 beq _080990E8 b _080991F0 .align 2, 0 _080990D4: .4byte gUnknown_083B6DB4 _080990D8: .4byte 0x00001172 _080990DC: .4byte 0x0000117c _080990E0: cmp r0, 0x2 bne _080990E6 b _080991E0 _080990E6: b _080991F0 _080990E8: ldr r2, _0809912C adds r5, r4, r2 ldr r3, _08099130 adds r0, r4, r3 ldrh r0, [r0] ldrh r1, [r5] adds r0, r1 strh r0, [r5] subs r0, 0x41 lsls r0, 16 lsrs r0, 16 cmp r0, 0xBA bhi _08099104 b _080991F8 _08099104: adds r2, 0x6 adds r0, r4, r2 ldrb r0, [r0] bl sub_8098EA0 ldr r3, _08099134 adds r0, r4, r3 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 ldrh r1, [r5] adds r0, r1 strh r0, [r5] ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] b _080991F8 .align 2, 0 _0809912C: .4byte 0x00001174 _08099130: .4byte 0x00001176 _08099134: .4byte 0x0000117b _08099138: ldr r2, _08099194 adds r1, r4, r2 ldr r5, _08099198 adds r2, r4, r5 ldrh r0, [r2] ldrh r5, [r1] adds r0, r5 strh r0, [r1] ldr r0, _0809919C adds r5, r4, r0 ldrb r0, [r5] ldrh r1, [r3] movs r3, 0 ldrsh r2, [r2, r3] bl sub_8098EE0 ldr r2, _080991A0 adds r1, r4, r2 lsls r0, 24 lsrs r0, 24 ldrh r3, [r1] adds r0, r3 strh r0, [r1] ldr r1, _080991A4 adds r0, r4, r1 movs r1, 0 ldrsb r1, [r0, r1] cmp r1, 0 ble _08099178 ldrb r0, [r5] cmp r0, 0x5 beq _08099182 _08099178: cmp r1, 0 bge _080991B0 ldrb r0, [r5] cmp r0, 0 bne _080991B0 _08099182: ldr r0, _080991A8 ldr r1, [r0] ldr r2, _080991AC adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080991F8 .align 2, 0 _08099194: .4byte 0x00001174 _08099198: .4byte 0x00001176 _0809919C: .4byte 0x0000117a _080991A0: .4byte 0x00001178 _080991A4: .4byte 0x0000117b _080991A8: .4byte gUnknown_083B6DB4 _080991AC: .4byte 0x0000117c _080991B0: ldr r0, _080991D0 ldr r1, [r0] ldr r5, _080991D4 adds r3, r1, r5 ldr r2, _080991D8 adds r0, r1, r2 ldrb r0, [r0] ldrb r5, [r3] adds r0, r5 movs r2, 0 strb r0, [r3] ldr r0, _080991DC adds r1, r0 strb r2, [r1] b _080991F8 .align 2, 0 _080991D0: .4byte gUnknown_083B6DB4 _080991D4: .4byte 0x0000117a _080991D8: .4byte 0x0000117b _080991DC: .4byte 0x0000117c _080991E0: ldr r1, _080991F4 adds r0, r4, r1 ldrh r0, [r0] cmp r0, 0 bne _080991F8 ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] _080991F0: movs r0, 0 b _080991FA .align 2, 0 _080991F4: .4byte 0x00001178 _080991F8: movs r0, 0x1 _080991FA: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80990AC thumb_func_start sub_8099200 sub_8099200: @ 8099200 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r4, _080992A0 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0 bl PokemonGetField adds r1, r0, 0 movs r0, 0x1 str r0, [sp] movs r0, 0xB str r0, [sp, 0x4] adds r0, r5, 0 movs r2, 0x68 movs r3, 0x40 bl sub_8099AFC ldr r1, _080992A4 ldr r1, [r1] ldr r2, _080992A8 adds r1, r2 str r0, [r1] movs r7, 0x1 movs r6, 0x1 _08099246: movs r0, 0x64 adds r1, r6, 0 muls r1, r0 ldr r0, _080992A0 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 beq _080992AC adds r0, r4, 0 movs r1, 0 bl PokemonGetField adds r1, r0, 0 subs r0, r6, 0x1 lsls r3, r0, 1 adds r3, r0 lsls r3, 19 movs r0, 0x80 lsls r0, 13 adds r3, r0 asrs r3, 16 movs r0, 0x1 str r0, [sp] movs r0, 0xB str r0, [sp, 0x4] adds r0, r5, 0 movs r2, 0x98 bl sub_8099AFC ldr r1, _080992A4 ldr r1, [r1] lsls r2, r6, 2 ldr r3, _080992A8 adds r1, r3 adds r1, r2 str r0, [r1] adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 b _080992BA .align 2, 0 _080992A0: .4byte 0x03004360 _080992A4: .4byte gUnknown_083B6DB4 _080992A8: .4byte 0x00001038 _080992AC: ldr r0, _08099308 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _0809930C adds r0, r2 adds r0, r1 str r5, [r0] _080992BA: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x5 bls _08099246 mov r3, r8 cmp r3, 0 bne _080992FA movs r6, 0 cmp r6, r7 bcs _080992FA ldr r0, _08099308 ldr r0, [r0] ldr r1, _0809930C adds r3, r0, r1 movs r4, 0x4 _080992DA: lsls r1, r6, 2 adds r1, r3, r1 ldr r2, [r1] ldrh r0, [r2, 0x22] subs r0, 0xA0 strh r0, [r2, 0x22] ldr r1, [r1] adds r1, 0x3E ldrb r0, [r1] orrs r0, r4 strb r0, [r1] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, r7 bcc _080992DA _080992FA: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08099308: .4byte gUnknown_083B6DB4 _0809930C: .4byte 0x00001038 thumb_func_end sub_8099200 thumb_func_start sub_8099310 sub_8099310: @ 8099310 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _08099368 ldr r2, [r0] ldr r0, _0809936C adds r1, r2, r0 movs r0, 0 strb r0, [r1] movs r5, 0 movs r6, 0 mov r8, r2 ldr r7, _0809936C add r7, r8 _0809932C: lsls r1, r5, 2 ldr r0, _08099370 add r0, r8 adds r4, r0, r1 ldr r0, [r4] cmp r0, 0 beq _08099354 cmp r5, r6 beq _0809934E adds r1, r6, 0 bl sub_8099388 movs r0, 0 str r0, [r4] ldrb r0, [r7] adds r0, 0x1 strb r0, [r7] _0809934E: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _08099354: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x5 bls _0809932C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08099368: .4byte gUnknown_083B6DB4 _0809936C: .4byte 0x00001171 _08099370: .4byte 0x00001038 thumb_func_end sub_8099310 thumb_func_start sub_8099374 sub_8099374: @ 8099374 ldr r0, _08099380 ldr r0, [r0] ldr r1, _08099384 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _08099380: .4byte gUnknown_083B6DB4 _08099384: .4byte 0x00001171 thumb_func_end sub_8099374 thumb_func_start sub_8099388 sub_8099388: @ 8099388 push {r4,lr} adds r2, r0, 0 lsls r1, 16 lsrs r1, 16 strh r1, [r2, 0x30] cmp r1, 0 bne _0809939C movs r3, 0x68 movs r4, 0x40 b _080993AE _0809939C: movs r3, 0x98 subs r1, 0x1 lsls r0, r1, 1 adds r0, r1 lsls r0, 19 movs r1, 0x80 lsls r1, 13 adds r0, r1 lsrs r4, r0, 16 _080993AE: ldrh r0, [r2, 0x20] lsls r0, 3 strh r0, [r2, 0x32] ldrh r0, [r2, 0x22] lsls r0, 3 strh r0, [r2, 0x34] lsls r1, r3, 3 movs r3, 0x32 ldrsh r0, [r2, r3] subs r0, r1, r0 cmp r0, 0 bge _080993C8 adds r0, 0x7 _080993C8: asrs r0, 3 strh r0, [r2, 0x36] lsls r0, r4, 16 asrs r0, 13 movs r3, 0x34 ldrsh r1, [r2, r3] subs r0, r1 cmp r0, 0 bge _080993DC adds r0, 0x7 _080993DC: asrs r0, 3 strh r0, [r2, 0x38] movs r0, 0x8 strh r0, [r2, 0x3A] ldr r0, _080993F0 str r0, [r2, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080993F0: .4byte sub_80993F4 thumb_func_end sub_8099388 thumb_func_start sub_80993F4 sub_80993F4: @ 80993F4 push {r4,lr} adds r3, r0, 0 ldrh r2, [r3, 0x3A] movs r1, 0x3A ldrsh r0, [r3, r1] cmp r0, 0 beq _08099424 ldrh r0, [r3, 0x36] ldrh r4, [r3, 0x32] adds r0, r4 strh r0, [r3, 0x32] ldrh r1, [r3, 0x38] ldrh r4, [r3, 0x34] adds r1, r4 strh r1, [r3, 0x34] lsls r0, 16 asrs r0, 19 strh r0, [r3, 0x20] lsls r1, 16 asrs r1, 19 strh r1, [r3, 0x22] subs r0, r2, 0x1 strh r0, [r3, 0x3A] b _08099468 _08099424: movs r1, 0x30 ldrsh r0, [r3, r1] cmp r0, 0 bne _08099434 movs r0, 0x68 strh r0, [r3, 0x20] movs r0, 0x40 b _08099446 _08099434: movs r0, 0x98 strh r0, [r3, 0x20] movs r4, 0x30 ldrsh r1, [r3, r4] subs r1, 0x1 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, 0x10 _08099446: strh r0, [r3, 0x22] ldr r0, _08099470 str r0, [r3, 0x1C] ldr r0, _08099474 ldr r2, [r0] movs r0, 0x30 ldrsh r1, [r3, r0] lsls r1, 2 ldr r4, _08099478 adds r0, r2, r4 adds r0, r1 str r3, [r0] ldr r0, _0809947C adds r2, r0 ldrb r0, [r2] subs r0, 0x1 strb r0, [r2] _08099468: pop {r4} pop {r0} bx r0 .align 2, 0 _08099470: .4byte SpriteCallbackDummy _08099474: .4byte gUnknown_083B6DB4 _08099478: .4byte 0x00001038 _0809947C: .4byte 0x00001171 thumb_func_end sub_80993F4 thumb_func_start sub_8099480 sub_8099480: @ 8099480 push {r4,lr} ldr r0, _080994A0 ldr r0, [r0] ldr r1, _080994A4 adds r4, r0, r1 ldr r0, [r4] cmp r0, 0 beq _08099498 bl sub_8099BE0 movs r0, 0 str r0, [r4] _08099498: pop {r4} pop {r0} bx r0 .align 2, 0 _080994A0: .4byte gUnknown_083B6DB4 _080994A4: .4byte 0x00001034 thumb_func_end sub_8099480 thumb_func_start sub_80994A8 sub_80994A8: @ 80994A8 push {r4-r6,lr} movs r3, 0 ldr r1, _080994FC ldr r1, [r1] ldr r2, _08099500 adds r5, r1, r2 lsls r0, 16 asrs r4, r0, 16 movs r6, 0x5 negs r6, r6 _080994BC: lsls r0, r3, 2 adds r2, r5, r0 ldr r1, [r2] cmp r1, 0 beq _0809950E ldrh r0, [r1, 0x22] adds r0, r4, r0 strh r0, [r1, 0x22] ldr r2, [r2] ldrh r1, [r2, 0x26] ldrh r0, [r2, 0x22] adds r1, r0 adds r0, r2, 0 adds r0, 0x29 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r0, r1 lsls r0, 16 movs r1, 0x80 lsls r1, 13 adds r0, r1 lsrs r0, 16 cmp r0, 0xC0 bls _08099504 adds r0, r2, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _0809950E .align 2, 0 _080994FC: .4byte gUnknown_083B6DB4 _08099500: .4byte 0x00001038 _08099504: adds r2, 0x3E ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 strb r0, [r2] _0809950E: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x5 bls _080994BC pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80994A8 thumb_func_start sub_8099520 sub_8099520: @ 8099520 push {r4,lr} lsls r0, 24 ldr r1, _08099544 ldr r1, [r1] lsrs r0, 22 ldr r2, _08099548 adds r1, r2 adds r4, r1, r0 ldr r0, [r4] cmp r0, 0 beq _0809953E bl sub_8099BE0 movs r0, 0 str r0, [r4] _0809953E: pop {r4} pop {r0} bx r0 .align 2, 0 _08099544: .4byte gUnknown_083B6DB4 _08099548: .4byte 0x00001038 thumb_func_end sub_8099520 thumb_func_start sub_809954C sub_809954C: @ 809954C push {r4-r6,lr} movs r5, 0 ldr r0, _0809957C ldr r0, [r0] ldr r1, _08099580 adds r6, r0, r1 _08099558: lsls r0, r5, 2 adds r4, r6, r0 ldr r0, [r4] cmp r0, 0 beq _0809956A bl sub_8099BE0 movs r0, 0 str r0, [r4] _0809956A: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x5 bls _08099558 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809957C: .4byte gUnknown_083B6DB4 _08099580: .4byte 0x00001038 thumb_func_end sub_809954C thumb_func_start sub_8099584 sub_8099584: @ 8099584 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r1, 24 adds r5, r1, 0 cmp r4, 0 bne _080995B4 ldr r3, _080995AC ldr r0, [r3] ldr r5, _080995B0 adds r2, r0, r5 lsls r1, 2 adds r5, 0x4 adds r0, r5 adds r0, r1 ldr r1, [r0] str r1, [r2] str r4, [r0] b _080995D0 .align 2, 0 _080995AC: .4byte gUnknown_083B6DB4 _080995B0: .4byte 0x00001034 _080995B4: cmp r4, 0x1 bne _080995F4 ldr r3, _080995FC ldr r0, [r3] ldr r1, _08099600 adds r2, r0, r1 lsls r1, r5, 2 ldr r4, _08099604 adds r0, r4 adds r0, r1 ldr r1, [r0] str r1, [r2] movs r1, 0 str r1, [r0] _080995D0: ldr r2, [r3] ldr r5, _08099600 adds r2, r5 ldr r1, [r2] ldr r0, _08099608 str r0, [r1, 0x1C] ldr r3, [r2] ldrb r1, [r3, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r3, 0x5] ldr r0, [r2] adds r0, 0x43 movs r1, 0x7 strb r1, [r0] _080995F4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080995FC: .4byte gUnknown_083B6DB4 _08099600: .4byte 0x00001034 _08099604: .4byte 0x00001050 _08099608: .4byte sub_80999C4 thumb_func_end sub_8099584 thumb_func_start sub_809960C sub_809960C: @ 809960C push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r6, r1, 24 cmp r0, 0xE bne _08099654 ldr r4, _08099648 ldr r0, [r4] lsls r1, r6, 2 ldr r2, _0809964C adds r3, r0, r2 adds r3, r1 ldr r1, _08099650 adds r0, r1 ldr r2, [r0] str r2, [r3] ldrb r1, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r2, 0x5] ldr r0, [r3] adds r0, 0x43 movs r1, 0xB strb r1, [r0] b _0809968A .align 2, 0 _08099648: .4byte gUnknown_083B6DB4 _0809964C: .4byte 0x00001038 _08099650: .4byte 0x00001034 _08099654: ldr r5, _080996A0 ldr r0, [r5] lsls r1, r6, 2 ldr r2, _080996A4 adds r3, r0, r2 adds r3, r1 ldr r1, _080996A8 adds r0, r1 ldr r2, [r0] str r2, [r3] ldrb r1, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r2, 0x5] ldr r4, [r3] adds r0, r6, 0 movs r1, 0x6 bl __umodsi3 movs r1, 0x12 subs r1, r0 adds r4, 0x43 strb r1, [r4] adds r4, r5, 0 _0809968A: ldr r1, [r4] ldr r2, _080996A8 adds r1, r2 ldr r2, [r1] ldr r0, _080996AC str r0, [r2, 0x1C] movs r0, 0 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080996A0: .4byte gUnknown_083B6DB4 _080996A4: .4byte 0x00001050 _080996A8: .4byte 0x00001034 _080996AC: .4byte SpriteCallbackDummy thumb_func_end sub_809960C thumb_func_start sub_80996B0 sub_80996B0: @ 80996B0 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r4, r1, 24 cmp r0, 0xE bne _080996D8 ldr r3, _080996CC ldr r1, [r3] ldr r0, _080996D0 adds r2, r1, r0 lsls r0, r4, 2 ldr r4, _080996D4 b _080996E4 .align 2, 0 _080996CC: .4byte gUnknown_083B6DB4 _080996D0: .4byte 0x000010c8 _080996D4: .4byte 0x00001038 _080996D8: ldr r3, _08099704 ldr r1, [r3] ldr r0, _08099708 adds r2, r1, r0 lsls r0, r4, 2 ldr r4, _0809970C _080996E4: adds r0, r4 adds r1, r0 str r1, [r2] ldr r1, [r3] ldr r2, _08099710 adds r0, r1, r2 ldr r2, [r0] ldr r0, _08099714 str r0, [r2, 0x1C] ldr r4, _08099718 adds r1, r4 movs r0, 0 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08099704: .4byte gUnknown_083B6DB4 _08099708: .4byte 0x000010c8 _0809970C: .4byte 0x00001050 _08099710: .4byte 0x00001034 _08099714: .4byte SpriteCallbackDummy _08099718: .4byte 0x00001170 thumb_func_end sub_80996B0 thumb_func_start sub_809971C sub_809971C: @ 809971C push {r4-r7,lr} ldr r0, _08099730 ldr r2, [r0] ldr r0, _08099734 adds r7, r2, r0 ldrb r0, [r7] cmp r0, 0x10 bne _08099738 movs r0, 0 b _08099800 .align 2, 0 _08099730: .4byte gUnknown_083B6DB4 _08099734: .4byte 0x00001170 _08099738: adds r0, 0x1 strb r0, [r7] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0809975E ldr r1, _08099808 adds r0, r2, r1 ldr r0, [r0] ldr r1, [r0] ldrh r0, [r1, 0x22] subs r0, 0x1 strh r0, [r1, 0x22] ldr r4, _0809980C adds r0, r2, r4 ldr r1, [r0] ldrh r0, [r1, 0x22] adds r0, 0x1 strh r0, [r1, 0x22] _0809975E: ldr r0, _08099808 adds r5, r2, r0 ldr r0, [r5] ldr r1, [r0] ldr r3, _08099810 ldrb r0, [r7] lsls r0, 4 adds r0, r3 movs r4, 0 ldrsh r0, [r0, r4] cmp r0, 0 bge _08099778 adds r0, 0xF _08099778: asrs r0, 4 strh r0, [r1, 0x24] ldr r0, _0809980C adds r6, r2, r0 ldr r1, [r6] ldrb r0, [r7] lsls r0, 4 adds r0, r3 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bge _08099792 adds r0, 0xF _08099792: asrs r0, 4 negs r0, r0 strh r0, [r1, 0x24] ldrb r0, [r7] cmp r0, 0x8 bne _080997DE ldr r4, [r6] ldr r0, [r5] ldr r0, [r0] ldrb r0, [r0, 0x5] movs r2, 0xC ands r2, r0 ldrb r3, [r4, 0x5] movs r1, 0xD negs r1, r1 adds r0, r1, 0 ands r0, r3 orrs r0, r2 strb r0, [r4, 0x5] ldr r2, [r6] ldr r0, [r5] ldr r0, [r0] adds r0, 0x43 ldrb r0, [r0] adds r2, 0x43 strb r0, [r2] ldr r0, [r5] ldr r2, [r0] ldrb r0, [r2, 0x5] ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r2, 0x5] ldr r0, [r5] ldr r0, [r0] adds r0, 0x43 movs r1, 0x7 strb r1, [r0] _080997DE: ldrb r0, [r7] cmp r0, 0x10 bne _080997FE ldr r1, [r6] ldr r0, [r5] ldr r0, [r0] str r0, [r6] ldr r0, [r5] str r1, [r0] ldr r1, [r6] ldr r0, _08099814 str r0, [r1, 0x1C] ldr r0, [r5] ldr r1, [r0] ldr r0, _08099818 str r0, [r1, 0x1C] _080997FE: movs r0, 0x1 _08099800: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08099808: .4byte 0x000010c8 _0809980C: .4byte 0x00001034 _08099810: .4byte gSineTable _08099814: .4byte sub_80999C4 _08099818: .4byte SpriteCallbackDummy thumb_func_end sub_809971C thumb_func_start sub_809981C sub_809981C: @ 809981C push {r4,lr} lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 lsls r1, 24 lsrs r4, r1, 24 cmp r0, 0x1 beq _08099858 cmp r0, 0x1 bgt _08099836 cmp r0, 0 beq _0809983C b _080998C0 _08099836: cmp r2, 0x2 beq _0809987C b _080998C0 _0809983C: ldr r3, _0809984C ldr r1, [r3] ldr r0, _08099850 adds r2, r1, r0 lsls r0, r4, 2 ldr r4, _08099854 b _08099864 .align 2, 0 _0809984C: .4byte gUnknown_083B6DB4 _08099850: .4byte 0x000010cc _08099854: .4byte 0x00001038 _08099858: ldr r3, _08099870 ldr r1, [r3] ldr r0, _08099874 adds r2, r1, r0 lsls r0, r4, 2 ldr r4, _08099878 _08099864: adds r0, r4 adds r1, r0 str r1, [r2] adds r0, r3, 0 b _0809988A .align 2, 0 _08099870: .4byte gUnknown_083B6DB4 _08099874: .4byte 0x000010cc _08099878: .4byte 0x00001050 _0809987C: ldr r0, _080998C8 ldr r1, [r0] ldr r3, _080998CC adds r2, r1, r3 ldr r4, _080998D0 adds r1, r4 str r1, [r2] _0809988A: ldr r0, [r0] ldr r1, _080998CC adds r4, r0, r1 ldr r0, [r4] ldr r0, [r0] cmp r0, 0 beq _080998C0 bl InitSpriteAffineAnim ldr r0, [r4] ldr r2, [r0] ldrb r1, [r2, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x1] ldr r0, [r4] ldr r1, [r0] ldr r0, _080998D4 str r0, [r1, 0x10] ldr r0, [r4] ldr r0, [r0] movs r1, 0 bl StartSpriteAffineAnim _080998C0: pop {r4} pop {r0} bx r0 .align 2, 0 _080998C8: .4byte gUnknown_083B6DB4 _080998CC: .4byte 0x000010cc _080998D0: .4byte 0x00001034 _080998D4: .4byte gUnknown_083B6F5C thumb_func_end sub_809981C thumb_func_start sub_80998D8 sub_80998D8: @ 80998D8 push {lr} ldr r0, _080998FC ldr r0, [r0] ldr r1, _08099900 adds r0, r1 ldr r0, [r0] ldr r1, [r0] cmp r1, 0 beq _080998F8 adds r3, r1, 0 adds r3, 0x3E ldrb r2, [r3] movs r0, 0x4 ands r0, r2 cmp r0, 0 beq _08099904 _080998F8: movs r0, 0 b _0809991A .align 2, 0 _080998FC: .4byte gUnknown_083B6DB4 _08099900: .4byte 0x000010cc _08099904: adds r0, r1, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08099918 movs r0, 0x4 orrs r0, r2 strb r0, [r3] _08099918: movs r0, 0x1 _0809991A: pop {r1} bx r1 thumb_func_end sub_80998D8 thumb_func_start sub_8099920 sub_8099920: @ 8099920 push {r4,lr} ldr r0, _08099950 ldr r0, [r0] ldr r1, _08099954 adds r4, r0, r1 ldr r0, [r4] ldr r0, [r0] cmp r0, 0 beq _0809994A ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldr r0, [r4] ldr r0, [r0] bl sub_8099BE0 ldr r1, [r4] movs r0, 0 str r0, [r1] _0809994A: pop {r4} pop {r0} bx r0 .align 2, 0 _08099950: .4byte gUnknown_083B6DB4 _08099954: .4byte 0x000010cc thumb_func_end sub_8099920 thumb_func_start sub_8099958 sub_8099958: @ 8099958 push {lr} ldr r0, _08099988 ldr r0, [r0] ldr r1, _0809998C adds r3, r0, r1 ldr r0, [r3] ldr r0, [r0] cmp r0, 0 beq _08099982 adds r2, r0, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, [r3] ldr r0, [r0] movs r1, 0x1 bl StartSpriteAffineAnim _08099982: pop {r0} bx r0 .align 2, 0 _08099988: .4byte gUnknown_083B6DB4 _0809998C: .4byte 0x000010cc thumb_func_end sub_8099958 thumb_func_start sub_8099990 sub_8099990: @ 8099990 push {lr} ldr r0, _080999A4 ldr r0, [r0] ldr r1, _080999A8 adds r2, r0, r1 ldr r0, [r2] cmp r0, 0 bne _080999AC movs r0, 0 b _080999C0 .align 2, 0 _080999A4: .4byte gUnknown_083B6DB4 _080999A8: .4byte 0x000010cc _080999AC: ldr r0, [r0] adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080999BE movs r0, 0 str r0, [r2] _080999BE: movs r0, 0x1 _080999C0: pop {r1} bx r1 thumb_func_end sub_8099990 thumb_func_start sub_80999C4 sub_80999C4: @ 80999C4 ldr r1, _080999E4 ldr r1, [r1] movs r2, 0x8E lsls r2, 5 adds r1, r2 ldr r2, [r1] ldrh r2, [r2, 0x20] strh r2, [r0, 0x20] ldr r2, [r1] ldrh r1, [r2, 0x26] ldrh r2, [r2, 0x22] adds r1, r2 adds r1, 0x4 strh r1, [r0, 0x22] bx lr .align 2, 0 _080999E4: .4byte gUnknown_083B6DB4 thumb_func_end sub_80999C4 thumb_func_start sub_80999E8 sub_80999E8: @ 80999E8 push {r4-r6,lr} lsls r0, 16 lsrs r3, r0, 16 movs r4, 0 ldr r1, _08099A58 ldr r0, [r1] movs r2, 0x89 lsls r2, 5 adds r0, r2 ldrh r0, [r0] adds r2, r1, 0 cmp r0, r3 beq _08099A20 adds r6, r2, 0 movs r5, 0x89 lsls r5, 5 _08099A08: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x27 bhi _08099A20 ldr r0, [r6] lsls r1, r4, 1 adds r0, r5 adds r0, r1 ldrh r0, [r0] cmp r0, r3 bne _08099A08 _08099A20: cmp r4, 0x28 bne _08099A60 movs r4, 0 ldr r0, [r2] movs r5, 0x89 lsls r5, 5 adds r0, r5 ldrh r0, [r0] cmp r0, 0 beq _08099A4E adds r6, r2, 0 _08099A36: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x27 bhi _08099A4E ldr r0, [r6] lsls r1, r4, 1 adds r0, r5 adds r0, r1 ldrh r0, [r0] cmp r0, 0 bne _08099A36 _08099A4E: cmp r4, 0x28 bne _08099A60 ldr r0, _08099A5C b _08099A94 .align 2, 0 _08099A58: .4byte gUnknown_083B6DB4 _08099A5C: .4byte 0x0000ffff _08099A60: ldr r1, [r2] lsls r2, r4, 1 movs r5, 0x89 lsls r5, 5 adds r0, r1, r5 adds r0, r2 strh r3, [r0] ldr r0, _08099A9C adds r1, r0 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r4, 20 lsrs r4, 16 ldr r1, _08099AA0 lsls r0, r3, 2 adds r0, r1 ldr r0, [r0] lsls r1, r4, 5 ldr r2, _08099AA4 adds r1, r2 ldr r2, _08099AA8 bl CpuSet adds r0, r4, 0 _08099A94: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08099A9C: .4byte 0x000010d0 _08099AA0: .4byte gMonIconTable _08099AA4: .4byte 0x06010000 _08099AA8: .4byte 0x04000080 thumb_func_end sub_80999E8 thumb_func_start sub_8099AAC sub_8099AAC: @ 8099AAC push {r4-r7,lr} lsls r0, 16 lsrs r6, r0, 16 movs r3, 0 ldr r0, _08099AE4 ldr r0, [r0] movs r1, 0x89 lsls r1, 5 adds r5, r0, r1 subs r1, 0x50 adds r4, r0, r1 ldr r0, _08099AE8 adds r7, r0, 0 _08099AC6: lsls r1, r3, 1 adds r2, r5, r1 ldrh r0, [r2] cmp r0, r6 bne _08099AEC adds r1, r4, r1 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] ands r0, r7 cmp r0, 0 bne _08099AF6 strh r0, [r2] b _08099AF6 .align 2, 0 _08099AE4: .4byte gUnknown_083B6DB4 _08099AE8: .4byte 0x0000ffff _08099AEC: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x27 bls _08099AC6 _08099AF6: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8099AAC thumb_func_start sub_8099AFC sub_8099AFC: @ 8099AFC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C ldr r4, [sp, 0x3C] ldr r5, [sp, 0x40] lsls r0, 16 lsrs r6, r0, 16 lsls r2, 16 lsrs r2, 16 str r2, [sp, 0x18] lsls r3, 16 lsrs r3, 16 mov r8, r3 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 mov r9, r5 mov r2, sp ldr r0, _08099BAC ldm r0!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldm r0!, {r3,r5,r7} stm r2!, {r3,r5,r7} adds r0, r6, 0 bl mon_icon_convert_unown_species_id mov r10, r0 mov r6, r10 mov r2, sp ldr r1, _08099BB0 adds r1, r6, r1 ldr r3, _08099BB4 adds r0, r3, 0 ldrb r1, [r1] adds r0, r1 strh r0, [r2, 0x2] adds r0, r6, 0 bl sub_80999E8 lsls r0, 16 lsrs r0, 16 adds r5, r0, 0 ldr r0, _08099BB8 cmp r5, r0 beq _08099BCE ldr r7, [sp, 0x18] lsls r1, r7, 16 asrs r1, 16 mov r0, r8 lsls r2, r0, 16 asrs r2, 16 mov r0, sp mov r3, r9 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _08099BC8 ldr r1, _08099BBC lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 ldr r2, _08099BC0 ands r2, r5 ldrh r3, [r0, 0x4] ldr r1, _08099BC4 ands r1, r3 orrs r1, r2 strh r1, [r0, 0x4] movs r1, 0x3 ands r4, r1 lsls r3, r4, 2 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 orrs r1, r3 strb r1, [r0, 0x5] mov r1, r10 strh r1, [r0, 0x2E] b _08099BD0 .align 2, 0 _08099BAC: .4byte gSpriteTemplate_83B6F14 _08099BB0: .4byte gMonIconPaletteIndices _08099BB4: .4byte 0x0000dac0 _08099BB8: .4byte 0x0000ffff _08099BBC: .4byte 0x02020004 _08099BC0: .4byte 0x000003ff _08099BC4: .4byte 0xfffffc00 _08099BC8: adds r0, r6, 0 bl sub_8099AAC _08099BCE: movs r0, 0 _08099BD0: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8099AFC thumb_func_start sub_8099BE0 sub_8099BE0: @ 8099BE0 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] bl sub_8099AAC adds r0, r4, 0 bl DestroySprite pop {r4} pop {r0} bx r0 thumb_func_end sub_8099BE0 thumb_func_start sub_8099BF8 sub_8099BF8: @ 8099BF8 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _08099C50 ldr r0, [r0] ldr r1, _08099C54 adds r2, r0, r1 movs r1, 0 strb r1, [r2] ldr r2, _08099C58 adds r0, r2 strh r1, [r0] str r1, [sp] ldr r1, _08099C5C mov r0, sp str r0, [r1] ldr r0, _08099C60 str r0, [r1, 0x4] ldr r0, _08099C64 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r0, r4, 0 movs r1, 0 bl sub_8099EB0 adds r0, r4, 0 bl sub_809A23C bl sub_809A6DC adds r0, r4, 0 bl sub_8098C48 ldr r1, _08099C68 ldr r2, _08099C6C adds r0, r2, 0 strh r0, [r1] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08099C50: .4byte gUnknown_083B6DB4 _08099C54: .4byte 0x000008ba _08099C58: .4byte 0x000008b4 _08099C5C: .4byte 0x040000d4 _08099C60: .4byte 0x0600d000 _08099C64: .4byte 0x85000400 _08099C68: .4byte REG_BG2CNT _08099C6C: .4byte 0x00005a0a thumb_func_end sub_8099BF8 thumb_func_start sub_8099C70 sub_8099C70: @ 8099C70 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 bl sub_8099D90 lsls r0, 24 asrs r4, r0, 24 adds r0, r5, 0 adds r1, r4, 0 bl sub_8099EB0 ldr r0, _08099D10 ldr r2, [r0] lsls r0, r4, 1 adds r0, r4 lsls r0, 1 ldr r3, _08099D14 adds r1, r2, r3 strh r0, [r1] ldr r0, _08099D18 adds r1, r2, r0 movs r0, 0x20 strh r0, [r1] ldr r1, _08099D1C adds r0, r2, r1 strb r5, [r0] movs r1, 0 cmp r4, 0 bgt _08099CAE movs r1, 0x5 _08099CAE: ldr r3, _08099D20 adds r0, r2, r3 strh r1, [r0] ldr r1, _08099D24 adds r0, r2, r1 strh r4, [r0] movs r1, 0x38 cmp r4, 0 ble _08099CC6 movs r3, 0x84 lsls r3, 1 adds r1, r3, 0 _08099CC6: movs r3, 0x8C lsls r3, 4 adds r0, r2, r3 strh r1, [r0] movs r1, 0 cmp r4, 0 bgt _08099CD6 movs r1, 0x5 _08099CD6: ldr r3, _08099D28 adds r0, r2, r3 strh r1, [r0] ldr r1, _08099D2C adds r0, r2, r1 strh r4, [r0] adds r3, 0x4 adds r1, r2, r3 movs r0, 0 strh r0, [r1] ldr r0, _08099D30 adds r1, r2, r0 movs r0, 0x2 strh r0, [r1] adds r0, r5, 0 adds r1, r4, 0 bl sub_809900C adds r0, r5, 0 adds r1, r4, 0 bl sub_809A3D0 adds r0, r4, 0 bl sub_809A774 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08099D10: .4byte gUnknown_083B6DB4 _08099D14: .4byte 0x000008b6 _08099D18: .4byte 0x000008b8 _08099D1C: .4byte 0x000008bb _08099D20: .4byte 0x000008bc _08099D24: .4byte 0x000008be _08099D28: .4byte 0x000008c2 _08099D2C: .4byte 0x000008c4 _08099D30: .4byte 0x000008c8 thumb_func_end sub_8099C70 thumb_func_start sub_8099D34 sub_8099D34: @ 8099D34 push {r4,lr} bl sub_80990AC lsls r0, 24 lsrs r2, r0, 24 ldr r0, _08099D78 ldr r1, [r0] ldr r0, _08099D7C adds r3, r1, r0 ldrh r0, [r3] cmp r0, 0 beq _08099D88 ldr r4, _08099D80 adds r2, r1, r4 adds r4, 0x2 adds r0, r1, r4 ldrh r0, [r0] ldrh r1, [r2] adds r0, r1 ldr r1, _08099D84 ands r0, r1 strh r0, [r2] ldrh r0, [r3] subs r0, 0x1 strh r0, [r3] lsls r0, 16 cmp r0, 0 bne _08099D74 bl sub_809A598 bl sub_809A810 _08099D74: movs r0, 0x1 b _08099D8A .align 2, 0 _08099D78: .4byte gUnknown_083B6DB4 _08099D7C: .4byte 0x000008b8 _08099D80: .4byte 0x000008b4 _08099D84: .4byte 0x000001ff _08099D88: adds r0, r2, 0 _08099D8A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8099D34 thumb_func_start sub_8099D90 sub_8099D90: @ 8099D90 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl get_preferred_box lsls r0, 24 lsrs r1, r0, 24 movs r2, 0 cmp r1, r4 beq _08099DBA _08099DA4: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xD bls _08099DB0 movs r1, 0 _08099DB0: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r1, r4 bne _08099DA4 _08099DBA: movs r0, 0x1 negs r0, r0 cmp r2, 0x6 bhi _08099DC4 movs r0, 0x1 _08099DC4: pop {r4} pop {r1} bx r1 thumb_func_end sub_8099D90 thumb_func_start sub_8099DCC sub_8099DCC: @ 8099DCC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl get_preferred_box lsls r0, 24 lsrs r0, 24 ldr r1, _08099DF8 ldr r2, _08099DFC adds r1, r2 adds r0, r1 movs r1, 0 strb r4, [r0] ldr r0, _08099E00 ldr r0, [r0] ldr r2, _08099E04 adds r0, r2 strb r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08099DF8: .4byte 0x020300a0 _08099DFC: .4byte 0x000083c2 _08099E00: .4byte gUnknown_083B6DB4 _08099E04: .4byte 0x00001032 thumb_func_end sub_8099DCC thumb_func_start sub_8099E08 sub_8099E08: @ 8099E08 push {r4,r5,lr} sub sp, 0x4 ldr r0, _08099E24 ldr r5, [r0] ldr r0, _08099E28 adds r4, r5, r0 ldrb r0, [r4] cmp r0, 0x1 beq _08099E54 cmp r0, 0x1 bgt _08099E2C cmp r0, 0 beq _08099E36 b _08099EA6 .align 2, 0 _08099E24: .4byte gUnknown_083B6DB4 _08099E28: .4byte 0x00001032 _08099E2C: cmp r0, 0x2 beq _08099E90 cmp r0, 0x3 beq _08099EA2 b _08099EA6 _08099E36: ldr r1, _08099E4C adds r0, r5, r1 ldr r0, [r0] ldr r1, _08099E50 str r1, [sp] movs r1, 0x1 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _08099E9A .align 2, 0 _08099E4C: .4byte 0x00000d08 _08099E50: .4byte 0x0000ffff _08099E54: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _08099EA6 bl get_preferred_box lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_8099EB0 bl sub_809A654 ldr r1, _08099E88 adds r0, r5, r1 ldr r0, [r0] ldr r1, _08099E8C str r1, [sp] movs r1, 0x1 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _08099E9A .align 2, 0 _08099E88: .4byte 0x00000d08 _08099E8C: .4byte 0x0000ffff _08099E90: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _08099EA6 _08099E9A: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _08099EA6 _08099EA2: movs r0, 0 b _08099EA8 _08099EA6: movs r0, 0x1 _08099EA8: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8099E08 thumb_func_start sub_8099EB0 sub_8099EB0: @ 8099EB0 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r7, r1, 24 cmp r1, 0 beq _08099ED8 ldr r0, _08099F38 ldr r0, [r0] movs r2, 0 ldr r3, _08099F3C adds r1, r0, r3 ldrb r0, [r1] cmp r0, 0 bne _08099ED0 movs r2, 0x1 _08099ED0: strb r2, [r1] ldr r0, _08099F40 bl sub_809A14C _08099ED8: ldr r0, _08099F44 ldr r1, _08099F48 adds r0, r1 adds r0, r4, r0 ldrb r4, [r0] lsls r4, 4 ldr r0, _08099F4C adds r4, r0 ldr r0, [r4, 0xC] ldr r1, _08099F38 ldr r5, [r1] ldr r2, _08099F3C adds r6, r5, r2 ldrb r2, [r6] lsls r1, r2, 1 adds r1, r2 lsls r1, 20 movs r3, 0x80 lsls r3, 15 adds r1, r3 lsrs r1, 16 movs r2, 0x60 bl LoadPalette ldr r0, [r4, 0x8] ldr r1, _08099F50 adds r5, r1 adds r1, r5, 0 bl LZ77UnCompWram ldr r0, _08099F40 lsls r2, r7, 24 asrs r2, 24 ldrb r3, [r6] adds r1, r5, 0 bl sub_8099F58 ldr r0, [r4] ldrb r1, [r6] lsls r1, 13 ldr r2, _08099F54 adds r1, r2 bl LZ77UnCompVram pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08099F38: .4byte gUnknown_083B6DB4 _08099F3C: .4byte 0x000008ba _08099F40: .4byte 0x0600d000 _08099F44: .4byte 0x020300a0 _08099F48: .4byte 0x000083c2 _08099F4C: .4byte gWallpaperTable _08099F50: .4byte 0x00000d62 _08099F54: .4byte 0x06008000 thumb_func_end sub_8099EB0 thumb_func_start sub_8099F58 sub_8099F58: @ 8099F58 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 mov r9, r0 adds r5, r1, 0 lsls r2, 24 lsls r3, 24 lsrs r3, 24 lsls r0, r3, 8 str r0, [sp] lsls r0, r3, 1 adds r0, r3 adds r0, 0x4 lsls r0, 28 lsrs r0, 16 str r0, [sp, 0x4] ldr r0, _08099FB8 ldr r0, [r0] ldr r1, _08099FBC adds r0, r1 ldrh r1, [r0] lsrs r1, 3 adds r1, 0xA lsrs r0, r2, 24 mov r8, r0 asrs r2, 24 lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 movs r0, 0x3F ands r1, r0 str r1, [sp, 0x8] adds r2, r1, 0 cmp r2, 0xC bgt _08099FC0 movs r6, 0x14 movs r3, 0 lsls r0, r2, 1 adds r0, 0x80 mov r1, r9 adds r4, r1, r0 movs r7, 0 b _0809A020 .align 2, 0 _08099FB8: .4byte gUnknown_083B6DB4 _08099FBC: .4byte 0x000008b4 _08099FC0: cmp r2, 0x1F bgt _08099FE6 movs r0, 0x20 subs r0, r2 lsls r0, 16 movs r1, 0x14 lsrs r6, r0, 16 asrs r0, 16 subs r1, r0 lsls r1, 16 lsrs r3, r1, 16 lsls r0, r2, 1 adds r0, 0x80 mov r2, r9 adds r4, r2, r0 movs r7, 0x88 lsls r7, 4 add r7, r9 b _0809A020 _08099FE6: cmp r2, 0x2C bgt _08099FFE movs r6, 0x14 movs r3, 0 lsls r0, r2, 1 movs r1, 0x84 lsls r1, 4 adds r0, r1 mov r2, r9 adds r4, r2, r0 movs r7, 0 b _0809A020 _08099FFE: movs r0, 0x40 subs r0, r2 lsls r0, 16 movs r1, 0x14 lsrs r6, r0, 16 asrs r0, 16 subs r1, r0 lsls r1, 16 lsrs r3, r1, 16 lsls r0, r2, 1 movs r1, 0x84 lsls r1, 4 adds r0, r1 mov r2, r9 adds r4, r2, r0 mov r7, r9 adds r7, 0x80 _0809A020: movs r1, 0 mov r0, r8 lsls r0, 24 str r0, [sp, 0x14] lsls r0, r6, 16 asrs r0, 16 mov r8, r0 lsls r3, 16 str r3, [sp, 0xC] asrs r2, r3, 16 str r2, [sp, 0x10] _0809A036: movs r3, 0 adds r0, r4, 0 adds r0, 0x40 str r0, [sp, 0x18] adds r2, r7, 0 adds r2, 0x40 str r2, [sp, 0x1C] adds r1, 0x1 mov r10, r1 cmp r3, r8 bge _0809A07A ldr r0, _0809A0D4 mov r12, r0 movs r6, 0xF0 lsls r6, 8 _0809A054: ldrh r2, [r5] mov r0, r12 ands r0, r2 ldr r1, [sp] adds r0, r1, r0 adds r1, r6, 0 ands r1, r2 ldr r2, [sp, 0x4] adds r1, r2, r1 orrs r1, r0 lsls r0, r3, 1 adds r0, r4 strh r1, [r0] adds r5, 0x2 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r8 blt _0809A054 _0809A07A: movs r3, 0 ldr r0, [sp, 0x10] cmp r3, r0 bge _0809A0B4 ldr r1, _0809A0D4 mov r12, r1 movs r6, 0xF0 lsls r6, 8 ldr r2, [sp, 0xC] asrs r4, r2, 16 _0809A08E: ldrh r2, [r5] mov r0, r12 ands r0, r2 ldr r1, [sp] adds r0, r1, r0 adds r1, r6, 0 ands r1, r2 ldr r2, [sp, 0x4] adds r1, r2, r1 orrs r1, r0 lsls r0, r3, 1 adds r0, r7 strh r1, [r0] adds r5, 0x2 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r4 blt _0809A08E _0809A0B4: ldr r4, [sp, 0x18] ldr r7, [sp, 0x1C] mov r1, r10 lsls r0, r1, 16 lsrs r1, r0, 16 cmp r1, 0x11 bls _0809A036 ldr r0, [sp, 0x14] asrs r2, r0, 24 cmp r2, 0 beq _0809A13A cmp r2, 0 ble _0809A0D8 ldr r1, [sp, 0x8] adds r1, 0x14 b _0809A0DC .align 2, 0 _0809A0D4: .4byte 0x00000fff _0809A0D8: ldr r1, [sp, 0x8] subs r1, 0x4 _0809A0DC: movs r0, 0x3F ands r1, r0 adds r4, r1, 0 adds r0, r4, 0 cmp r0, 0x1F bgt _0809A0EE lsls r0, 1 adds r0, 0x80 b _0809A0F6 _0809A0EE: lsls r0, 1 movs r2, 0x84 lsls r2, 4 adds r0, r2 _0809A0F6: mov r1, r9 adds r2, r1, r0 movs r3, 0 movs r6, 0 _0809A0FE: movs r1, 0 adds r5, r3, 0x1 lsls r3, r4, 16 _0809A104: strh r6, [r2] adds r2, 0x40 adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x11 bls _0809A104 asrs r0, r3, 16 adds r4, r0, 0x1 movs r0, 0x3F ands r4, r0 adds r0, r4, 0 cmp r0, 0x1F bgt _0809A126 lsls r0, 1 adds r0, 0x80 b _0809A12E _0809A126: lsls r0, 1 movs r2, 0x84 lsls r2, 4 adds r0, r2 _0809A12E: mov r1, r9 adds r2, r1, r0 lsls r0, r5, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _0809A0FE _0809A13A: add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8099F58 thumb_func_start sub_809A14C sub_809A14C: @ 809A14C push {r4-r6,lr} adds r2, r0, 0 ldr r0, _0809A174 ldr r0, [r0] ldr r1, _0809A178 adds r0, r1 ldrh r0, [r0] lsrs r0, 3 adds r3, r0, 0 adds r3, 0x1E movs r0, 0x3F ands r3, r0 adds r0, r3, 0 cmp r0, 0x1F bgt _0809A17C lsls r0, 1 movs r6, 0x98 lsls r6, 3 adds r0, r6 b _0809A184 .align 2, 0 _0809A174: .4byte gUnknown_083B6DB4 _0809A178: .4byte 0x000008b4 _0809A17C: lsls r0, 1 movs r1, 0xC8 lsls r1, 4 adds r0, r1 _0809A184: adds r2, r0 movs r0, 0 movs r5, 0 movs r4, 0x3F _0809A18C: strh r5, [r2] adds r2, 0x2 adds r3, 0x1 ands r3, r4 adds r1, r3, 0 cmp r1, 0 bne _0809A19E ldr r6, _0809A1B8 adds r2, r6 _0809A19E: cmp r1, 0x20 bne _0809A1A8 movs r1, 0xF8 lsls r1, 3 adds r2, r1 _0809A1A8: adds r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2B bls _0809A18C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809A1B8: .4byte 0xfffff7c0 thumb_func_end sub_809A14C thumb_func_start sub_809A1BC sub_809A1BC: @ 809A1BC push {r4-r6,lr} sub sp, 0x8 adds r3, r0, 0 adds r2, r1, 0 ldr r0, _0809A228 ldr r5, [r0] mov r1, sp movs r0, 0 strh r0, [r1] ldr r4, _0809A22C str r1, [r4] str r5, [r4, 0x4] movs r6, 0x80 lsls r6, 1 ldr r0, _0809A230 str r0, [r4, 0x8] ldr r0, [r4, 0x8] ldr r0, _0809A234 adds r1, r5, 0 str r3, [sp, 0x4] bl sub_8004E3C str r5, [r4] ldr r3, [sp, 0x4] str r3, [r4, 0x4] ldr r1, _0809A238 str r1, [r4, 0x8] ldr r0, [r4, 0x8] adds r0, r5, r6 str r0, [r4] adds r0, r3, 0 adds r0, 0x80 str r0, [r4, 0x4] str r1, [r4, 0x8] ldr r0, [r4, 0x8] adds r0, r5, 0 adds r0, 0x80 str r0, [r4] adds r6, r3, r6 str r6, [r4, 0x4] str r1, [r4, 0x8] ldr r0, [r4, 0x8] movs r0, 0xC0 lsls r0, 1 adds r5, r0 str r5, [r4] adds r3, r0 str r3, [r4, 0x4] str r1, [r4, 0x8] ldr r0, [r4, 0x8] add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809A228: .4byte gUnknown_083B6DB8 _0809A22C: .4byte 0x040000d4 _0809A230: .4byte 0x81000100 _0809A234: .4byte gWindowConfig_81E6D38 _0809A238: .4byte 0x80000040 thumb_func_end sub_809A1BC thumb_func_start sub_809A23C sub_809A23C: @ 809A23C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 mov r8, r0 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _0809A384 ldr r5, [r0] ldr r1, _0809A388 adds r7, r5, r1 str r7, [sp, 0x18] mov r2, sp adds r2, 0x18 str r2, [sp, 0x20] ldr r0, _0809A38C str r0, [r2, 0x4] mov r1, sp ldr r3, _0809A390 adds r0, r5, r3 str r0, [sp] ldr r4, _0809A394 strh r4, [r1, 0x4] str r0, [sp, 0x8] ldr r6, _0809A398 strh r6, [r1, 0xC] add r0, sp, 0x10 movs r1, 0 movs r2, 0x8 bl memset ldr r0, _0809A39C mov r9, r0 ldr r0, _0809A3A0 add r0, r9 add r0, r8 ldrb r1, [r0] ldr r2, _0809A3A4 lsls r1, 2 adds r0, r1, r2 ldrh r3, [r0] ldr r6, _0809A3A8 adds r0, r5, r6 strh r3, [r0] adds r2, 0x2 adds r1, r2 ldrh r1, [r1] ldr r2, _0809A3AC adds r0, r5, r2 strh r1, [r0] mov r0, sp bl LoadSpritePalettes ldr r3, _0809A3B0 adds r6, r5, r3 movs r0, 0xFC lsls r0, 2 str r0, [r6] adds r0, r4, 0 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 movs r2, 0x87 lsls r2, 1 mov r10, r2 add r1, r10 ldr r3, _0809A3B4 adds r2, r5, r3 strh r1, [r2] movs r4, 0x80 lsls r4, 9 adds r1, r4, 0 lsls r1, r0 ldr r0, [r6] orrs r0, r1 str r0, [r6] ldr r0, _0809A3B8 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 add r1, r10 ldr r2, _0809A3BC adds r5, r2 strh r1, [r5] lsls r4, r0 ldr r0, [r6] orrs r0, r4 str r0, [r6] mov r3, r8 lsls r4, r3, 3 add r4, r8 ldr r6, _0809A3C0 add r9, r6 add r4, r9 adds r0, r7, 0 adds r1, r4, 0 bl sub_809A1BC ldr r0, [sp, 0x20] bl LoadSpriteSheet adds r0, r4, 0 bl sub_8072CA4 lsls r0, 24 lsrs r0, 24 bl sub_809A6D0 movs r4, 0 lsls r0, 16 asrs r6, r0, 16 _0809A328: lsls r1, r4, 5 adds r1, r6, r1 lsls r1, 16 asrs r1, 16 ldr r0, _0809A3C4 movs r2, 0x1C movs r3, 0x17 bl CreateSprite adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r0, _0809A384 ldr r5, [r0] lsls r0, r4, 2 movs r3, 0xCF lsls r3, 4 adds r2, r5, r3 adds r2, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0809A3C8 adds r0, r1 str r0, [r2] lsls r1, r4, 24 lsrs r1, 24 bl StartSpriteAnim adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _0809A328 ldr r6, _0809A3CC adds r1, r5, r6 movs r0, 0 strb r0, [r1] add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809A384: .4byte gUnknown_083B6DB4 _0809A388: .4byte 0x000008ca _0809A38C: .4byte 0x00030200 _0809A390: .4byte 0x00000ccc _0809A394: .4byte 0x0000dac8 _0809A398: .4byte 0xffffdac9 _0809A39C: .4byte 0x020300a0 _0809A3A0: .4byte 0x000083c2 _0809A3A4: .4byte gUnknown_083BB0A8 _0809A3A8: .4byte 0x00000ce8 _0809A3AC: .4byte 0x00000cea _0809A3B0: .4byte 0x00000d08 _0809A3B4: .4byte 0x00000cec _0809A3B8: .4byte 0x0000dac9 _0809A3BC: .4byte 0x00000cee _0809A3C0: .4byte 0x00008344 _0809A3C4: .4byte gSpriteTemplate_83BB2B8 _0809A3C8: .4byte 0x02020004 _0809A3CC: .4byte 0x00000cca thumb_func_end sub_809A23C thumb_func_start sub_809A3D0 sub_809A3D0: @ 809A3D0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x28] lsls r1, 24 lsrs r1, 24 mov r10, r1 ldr r3, _0809A43C ldr r5, [r3] ldr r1, _0809A440 adds r0, r5, r1 str r0, [sp, 0x18] add r2, sp, 0x18 ldr r4, _0809A444 mov r9, r4 movs r6, 0xC0 lsls r6, 10 mov r8, r6 ldr r0, _0809A448 str r0, [r2, 0x4] mov r1, sp ldr r0, _0809A44C ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} movs r1, 0 ldr r7, _0809A450 adds r4, r5, r7 ldrb r0, [r4] adds r6, r2, 0 cmp r0, 0 bne _0809A41E movs r1, 0x1 _0809A41E: strb r1, [r4] cmp r1, 0 bne _0809A458 ldr r0, [r6, 0x4] mov r1, r9 ands r0, r1 mov r4, r8 orrs r0, r4 str r0, [r6, 0x4] ldr r7, _0809A454 adds r0, r5, r7 ldrh r0, [r0] mov r8, r0 b _0809A478 .align 2, 0 _0809A43C: .4byte gUnknown_083B6DB4 _0809A440: .4byte 0x000008ca _0809A444: .4byte 0x0000ffff _0809A448: .4byte 0x00030200 _0809A44C: .4byte gSpriteTemplate_83BB2B8 _0809A450: .4byte 0x00000cca _0809A454: .4byte 0x00000cec _0809A458: ldr r0, [r6, 0x4] mov r1, r9 ands r0, r1 movs r1, 0x80 lsls r1, 11 orrs r0, r1 str r0, [r6, 0x4] ldr r4, _0809A570 adds r0, r5, r4 ldrh r0, [r0] mov r8, r0 mov r1, sp movs r0, 0x4 strh r0, [r1] ldr r0, _0809A574 strh r0, [r1, 0x2] _0809A478: ldr r0, [r3] ldr r7, _0809A578 adds r0, r7 ldr r1, [sp, 0x28] lsls r5, r1, 3 adds r5, r1 ldr r4, _0809A57C adds r5, r4 adds r1, r5, 0 bl sub_809A1BC adds r0, r6, 0 bl LoadSpriteSheet adds r4, 0x7E ldr r3, [sp, 0x28] adds r4, r3, r4 ldrb r0, [r4] lsls r0, 2 ldr r1, _0809A580 adds r0, r1 mov r1, r8 movs r2, 0x4 bl LoadPalette adds r0, r5, 0 bl sub_8072CA4 lsls r0, 24 lsrs r0, 24 bl sub_809A6D0 lsls r0, 16 mov r4, r10 lsls r2, r4, 24 asrs r2, 24 lsls r1, r2, 1 adds r1, r2 lsls r1, 6 lsrs r6, r0, 16 str r6, [sp, 0x20] asrs r0, 16 adds r0, r1 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x24] movs r7, 0 negs r2, r2 mov r9, r2 movs r0, 0x1 mov r10, r0 _0809A4DE: lsls r1, r7, 5 mov r8, r1 ldr r3, [sp, 0x24] lsls r1, r3, 16 asrs r1, 16 add r1, r8 lsls r1, 16 asrs r1, 16 mov r0, sp movs r2, 0x1C movs r3, 0x17 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _0809A584 ldr r4, [r1] lsls r6, r7, 2 ldr r1, _0809A588 adds r2, r4, r1 adds r2, r6 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _0809A58C adds r1, r0 str r1, [r2] mov r3, r9 lsls r5, r3, 1 add r5, r9 lsls r5, 1 strh r5, [r1, 0x2E] ldr r1, [r2] ldr r3, [sp, 0x20] lsls r0, r3, 16 asrs r0, 16 add r0, r8 strh r0, [r1, 0x30] ldr r0, [r2] mov r1, r10 strh r1, [r0, 0x32] ldr r0, [r2] ldr r1, _0809A590 str r1, [r0, 0x1C] lsls r1, r7, 24 lsrs r1, 24 bl StartSpriteAnim movs r3, 0xCF lsls r3, 4 adds r4, r3 adds r4, r6 ldr r0, [r4] strh r5, [r0, 0x2E] ldr r0, [r4] mov r6, r10 strh r6, [r0, 0x30] ldr r1, [r4] ldr r0, _0809A594 str r0, [r1, 0x1C] adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0x1 bls _0809A4DE add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809A570: .4byte 0x00000cec _0809A574: .4byte 0x0000dac9 _0809A578: .4byte 0x000008ca _0809A57C: .4byte 0x020383e4 _0809A580: .4byte gUnknown_083BB0A8 _0809A584: .4byte gUnknown_083B6DB4 _0809A588: .4byte 0x00000cf8 _0809A58C: .4byte 0x02020004 _0809A590: .4byte sub_809A5E8 _0809A594: .4byte sub_809A61C thumb_func_end sub_809A3D0 thumb_func_start sub_809A598 sub_809A598: @ 809A598 push {lr} ldr r0, _0809A5B0 ldr r0, [r0] ldr r1, _0809A5B4 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0809A5B8 movs r0, 0x4 bl FreeSpriteTilesByTag b _0809A5BE .align 2, 0 _0809A5B0: .4byte gUnknown_083B6DB4 _0809A5B4: .4byte 0x00000cca _0809A5B8: movs r0, 0x3 bl FreeSpriteTilesByTag _0809A5BE: ldr r0, _0809A5E0 ldr r0, [r0] movs r3, 0xCF lsls r3, 4 adds r2, r0, r3 adds r3, 0x8 adds r1, r0, r3 ldr r1, [r1] str r1, [r2] ldr r2, _0809A5E4 adds r1, r0, r2 adds r3, 0x4 adds r0, r3 ldr r0, [r0] str r0, [r1] pop {r0} bx r0 .align 2, 0 _0809A5E0: .4byte gUnknown_083B6DB4 _0809A5E4: .4byte 0x00000cf4 thumb_func_end sub_809A598 thumb_func_start sub_809A5E8 sub_809A5E8: @ 809A5E8 push {lr} adds r2, r0, 0 ldrh r1, [r2, 0x32] movs r3, 0x32 ldrsh r0, [r2, r3] cmp r0, 0 beq _0809A5FC subs r0, r1, 0x1 strh r0, [r2, 0x32] b _0809A614 _0809A5FC: ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x20] adds r0, r1 strh r0, [r2, 0x20] lsls r0, 16 asrs r0, 16 movs r3, 0x30 ldrsh r1, [r2, r3] cmp r0, r1 bne _0809A614 ldr r0, _0809A618 str r0, [r2, 0x1C] _0809A614: pop {r0} bx r0 .align 2, 0 _0809A618: .4byte SpriteCallbackDummy thumb_func_end sub_809A5E8 thumb_func_start sub_809A61C sub_809A61C: @ 809A61C push {lr} adds r2, r0, 0 ldrh r1, [r2, 0x30] movs r3, 0x30 ldrsh r0, [r2, r3] cmp r0, 0 beq _0809A630 subs r0, r1, 0x1 strh r0, [r2, 0x30] b _0809A64E _0809A630: ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x20] adds r0, r1 strh r0, [r2, 0x20] ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x32] subs r0, 0x40 lsls r0, 16 lsrs r0, 16 cmp r0, 0xC0 bls _0809A64E adds r0, r2, 0 bl DestroySprite _0809A64E: pop {r0} bx r0 thumb_func_end sub_809A61C thumb_func_start sub_809A654 sub_809A654: @ 809A654 push {lr} bl get_preferred_box lsls r0, 24 lsrs r0, 24 ldr r1, _0809A690 ldr r2, _0809A694 adds r1, r2 adds r0, r1 ldrb r1, [r0] ldr r0, _0809A698 ldr r2, [r0] ldr r3, _0809A69C adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0 bne _0809A6A8 lsls r0, r1, 2 ldr r1, _0809A6A0 adds r0, r1 adds r3, 0x22 adds r1, r2, r3 ldrh r1, [r1] lsls r1, 1 ldr r2, _0809A6A4 adds r1, r2 movs r2, 0x2 bl CpuSet b _0809A6C0 .align 2, 0 _0809A690: .4byte 0x020300a0 _0809A694: .4byte 0x000083c2 _0809A698: .4byte gUnknown_083B6DB4 _0809A69C: .4byte 0x00000cca _0809A6A0: .4byte gUnknown_083BB0A8 _0809A6A4: .4byte 0x0202eac8 _0809A6A8: lsls r0, r1, 2 ldr r1, _0809A6C4 adds r0, r1 ldr r3, _0809A6C8 adds r1, r2, r3 ldrh r1, [r1] lsls r1, 1 ldr r2, _0809A6CC adds r1, r2 movs r2, 0x2 bl CpuSet _0809A6C0: pop {r0} bx r0 .align 2, 0 _0809A6C4: .4byte gUnknown_083BB0A8 _0809A6C8: .4byte 0x00000cee _0809A6CC: .4byte 0x0202eac8 thumb_func_end sub_809A654 thumb_func_start sub_809A6D0 sub_809A6D0: @ 809A6D0 adds r1, r0, 0 lsls r1, 24 lsrs r1, 25 movs r0, 0xB0 subs r0, r1 bx lr thumb_func_end sub_809A6D0 thumb_func_start sub_809A6DC sub_809A6DC: @ 809A6DC push {r4,r5,lr} ldr r0, _0809A760 bl LoadSpriteSheet ldr r0, _0809A764 bl LoadSpritePalette movs r5, 0 _0809A6EC: lsls r1, r5, 4 adds r1, r5 lsls r1, 19 movs r0, 0xB8 lsls r0, 15 adds r1, r0 asrs r1, 16 ldr r0, _0809A768 movs r2, 0x1C movs r3, 0x15 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _0809A73E lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0809A76C adds r4, r0, r1 lsls r1, r5, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim movs r0, 0x1 cmp r5, 0 bne _0809A72C movs r1, 0x1 negs r1, r1 adds r0, r1, 0 _0809A72C: strh r0, [r4, 0x34] ldr r0, _0809A770 ldr r0, [r0] lsls r1, r5, 2 movs r2, 0xD0 lsls r2, 4 adds r0, r2 adds r0, r1 str r4, [r0] _0809A73E: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1 bls _0809A6EC bl sub_809BF2C lsls r0, 24 cmp r0, 0 beq _0809A758 movs r0, 0x1 bl sub_809A860 _0809A758: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809A760: .4byte gUnknown_083BB288 _0809A764: .4byte gUnknown_083BB290 _0809A768: .4byte gSpriteTemplate_83BB2F0 _0809A76C: .4byte 0x02020004 _0809A770: .4byte gUnknown_083B6DB4 thumb_func_end sub_809A6DC thumb_func_start sub_809A774 sub_809A774: @ 809A774 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 movs r2, 0 ldr r7, _0809A7C4 ldr r0, [r7] movs r1, 0xD0 lsls r1, 4 adds r3, r0, r1 movs r5, 0 movs r4, 0x2 _0809A78A: lsls r1, r2, 2 adds r1, r3, r1 ldr r0, [r1] strh r5, [r0, 0x24] ldr r0, [r1] strh r4, [r0, 0x2E] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x1 bls _0809A78A lsls r0, r6, 24 cmp r0, 0 bge _0809A7CC ldr r1, [r7] movs r2, 0xD0 lsls r2, 4 adds r3, r1, r2 ldr r2, [r3] movs r0, 0x1D strh r0, [r2, 0x30] ldr r0, _0809A7C8 adds r1, r0 ldr r2, [r1] movs r0, 0x5 strh r0, [r2, 0x30] ldr r0, [r3] movs r2, 0x48 b _0809A7E8 .align 2, 0 _0809A7C4: .4byte gUnknown_083B6DB4 _0809A7C8: .4byte 0x00000d04 _0809A7CC: ldr r1, [r7] movs r2, 0xD0 lsls r2, 4 adds r3, r1, r2 ldr r2, [r3] movs r0, 0x5 strh r0, [r2, 0x30] ldr r0, _0809A80C adds r1, r0 ldr r2, [r1] movs r0, 0x1D strh r0, [r2, 0x30] ldr r0, [r3] movs r2, 0xF8 _0809A7E8: strh r2, [r0, 0x32] ldr r0, [r1] strh r2, [r0, 0x32] ldr r1, [r7] movs r2, 0xD0 lsls r2, 4 adds r0, r1, r2 ldr r2, [r0] movs r0, 0 strh r0, [r2, 0x3C] ldr r0, _0809A80C adds r1, r0 ldr r1, [r1] movs r0, 0x1 strh r0, [r1, 0x3C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809A80C: .4byte 0x00000d04 thumb_func_end sub_809A774 thumb_func_start sub_809A810 sub_809A810: @ 809A810 push {r4-r6,lr} movs r3, 0 ldr r0, _0809A85C ldr r0, [r0] movs r1, 0xD0 lsls r1, 4 adds r4, r0, r1 movs r5, 0 movs r6, 0x5 negs r6, r6 _0809A824: lsls r1, r3, 2 adds r1, r4, r1 ldr r2, [r1] lsls r0, r3, 4 adds r0, r3 lsls r0, 3 adds r0, 0x5C strh r0, [r2, 0x20] ldr r0, [r1] strh r5, [r0, 0x24] ldr r1, [r1] adds r1, 0x3E ldrb r2, [r1] adds r0, r6, 0 ands r0, r2 strb r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x1 bls _0809A824 movs r0, 0x1 bl sub_809A860 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809A85C: .4byte gUnknown_083B6DB4 thumb_func_end sub_809A810 thumb_func_start sub_809A860 sub_809A860: @ 809A860 push {r4,r5,lr} lsls r0, 24 cmp r0, 0 beq _0809A89C movs r2, 0 ldr r0, _0809A898 ldr r0, [r0] movs r1, 0xD0 lsls r1, 4 adds r4, r0, r1 movs r3, 0 movs r5, 0x1 _0809A878: lsls r1, r2, 2 adds r1, r4, r1 ldr r0, [r1] strh r5, [r0, 0x2E] ldr r0, [r1] strh r3, [r0, 0x30] ldr r0, [r1] strh r3, [r0, 0x32] ldr r0, [r1] strh r3, [r0, 0x36] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x1 bls _0809A878 b _0809A8BC .align 2, 0 _0809A898: .4byte gUnknown_083B6DB4 _0809A89C: movs r2, 0 ldr r0, _0809A8C4 ldr r0, [r0] movs r3, 0xD0 lsls r3, 4 adds r1, r0, r3 movs r3, 0 _0809A8AA: lsls r0, r2, 2 adds r0, r1, r0 ldr r0, [r0] strh r3, [r0, 0x2E] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x1 bls _0809A8AA _0809A8BC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809A8C4: .4byte gUnknown_083B6DB4 thumb_func_end sub_809A860 thumb_func_start sub_809A8C8 sub_809A8C8: @ 809A8C8 push {lr} adds r2, r0, 0 movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0x4 bhi _0809A994 lsls r0, 2 ldr r1, _0809A8E0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809A8E0: .4byte _0809A8E4 .align 2, 0 _0809A8E4: .4byte _0809A8F8 .4byte _0809A8FE .4byte _0809A92C .4byte _0809A932 .4byte _0809A984 _0809A8F8: movs r0, 0 strh r0, [r2, 0x24] b _0809A994 _0809A8FE: ldrh r0, [r2, 0x30] adds r0, 0x1 movs r1, 0 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _0809A994 strh r1, [r2, 0x30] ldrh r0, [r2, 0x34] ldrh r3, [r2, 0x24] adds r0, r3 strh r0, [r2, 0x24] ldrh r0, [r2, 0x32] adds r0, 0x1 strh r0, [r2, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _0809A994 strh r1, [r2, 0x32] strh r1, [r2, 0x24] b _0809A994 _0809A92C: movs r0, 0x3 strh r0, [r2, 0x2E] b _0809A994 _0809A932: ldr r0, _0809A97C ldr r1, [r0] ldr r0, _0809A980 adds r1, r0 ldrh r0, [r2, 0x20] ldrh r1, [r1] subs r0, r1 strh r0, [r2, 0x20] subs r0, 0x49 lsls r0, 16 lsrs r0, 16 cmp r0, 0xAE bls _0809A958 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] _0809A958: ldrh r0, [r2, 0x30] subs r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 cmp r0, 0 bne _0809A994 ldrh r0, [r2, 0x32] strh r0, [r2, 0x20] adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] movs r0, 0x4 strh r0, [r2, 0x2E] b _0809A994 .align 2, 0 _0809A97C: .4byte gUnknown_083B6DB4 _0809A980: .4byte 0x000008b6 _0809A984: ldr r0, _0809A998 ldr r0, [r0] ldr r1, _0809A99C adds r0, r1 ldrh r1, [r2, 0x20] ldrh r0, [r0] subs r1, r0 strh r1, [r2, 0x20] _0809A994: pop {r0} bx r0 .align 2, 0 _0809A998: .4byte gUnknown_083B6DB4 _0809A99C: .4byte 0x000008b6 thumb_func_end sub_809A8C8 thumb_func_start sub_809A9A0 sub_809A9A0: @ 809A9A0 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r6, r1, 0 ldr r4, [sp, 0x18] lsls r2, 24 lsrs r7, r2, 24 lsls r3, 24 lsrs r3, 24 mov r8, r3 lsls r4, 24 lsrs r4, 24 ldr r0, _0809AA0C lsls r5, 16 asrs r5, 16 lsls r6, 16 asrs r6, 16 adds r1, r5, 0 adds r2, r6, 0 adds r3, r4, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0809AA18 movs r1, 0x1 ands r1, r7 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r5, _0809AA10 adds r6, r4, r5 adds r0, r6, 0 bl StartSpriteAnim movs r0, 0x3 mov r1, r8 ands r1, r0 lsls r1, 2 ldrb r2, [r6, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r6, 0x5] adds r5, 0x1C adds r4, r5 ldr r0, _0809AA14 str r0, [r4] adds r0, r6, 0 b _0809AA1A .align 2, 0 _0809AA0C: .4byte gSpriteTemplate_83BB2F0 _0809AA10: .4byte 0x02020004 _0809AA14: .4byte SpriteCallbackDummy _0809AA18: movs r0, 0 _0809AA1A: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_809A9A0 thumb_func_start sub_809AA24 sub_809AA24: @ 809AA24 push {lr} ldr r0, _0809AA38 ldr r0, [r0] ldrb r1, [r0, 0x5] cmp r1, 0x1 beq _0809AA40 ldr r1, _0809AA3C movs r0, 0 strb r0, [r1] b _0809AA44 .align 2, 0 _0809AA38: .4byte gUnknown_083B6DB4 _0809AA3C: .4byte 0x020384e4 _0809AA40: ldr r0, _0809AA78 strb r1, [r0] _0809AA44: ldr r0, _0809AA7C movs r1, 0 strb r1, [r0] ldr r0, _0809AA80 strb r1, [r0] ldr r0, _0809AA84 strb r1, [r0] ldr r0, _0809AA88 strb r1, [r0] ldr r0, _0809AA8C strb r1, [r0] bl sub_809B0D4 bl sub_809CC04 ldr r0, _0809AA90 ldr r0, [r0] ldr r1, _0809AA94 adds r0, r1 movs r1, 0x1 strb r1, [r0] bl sub_809BF74 pop {r0} bx r0 .align 2, 0 _0809AA78: .4byte 0x020384e4 _0809AA7C: .4byte 0x020384e5 _0809AA80: .4byte 0x020384e6 _0809AA84: .4byte 0x020384e7 _0809AA88: .4byte 0x020384e8 _0809AA8C: .4byte 0x020384e9 _0809AA90: .4byte gUnknown_083B6DB4 _0809AA94: .4byte 0x000011e2 thumb_func_end sub_809AA24 thumb_func_start sub_809AA98 sub_809AA98: @ 809AA98 push {lr} bl sub_809CC04 bl sub_809C028 ldr r0, _0809AAC0 ldr r0, [r0] ldr r1, _0809AAC4 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, _0809AAC8 ldrb r0, [r0] cmp r0, 0 beq _0809AABA bl sub_8098BF0 _0809AABA: pop {r0} bx r0 .align 2, 0 _0809AAC0: .4byte gUnknown_083B6DB4 _0809AAC4: .4byte 0x000011e2 _0809AAC8: .4byte 0x020384e6 thumb_func_end sub_809AA98 thumb_func_start sub_809AACC sub_809AACC: @ 809AACC push {r4-r6,lr} adds r4, r2, 0 adds r6, r3, 0 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r5, r1, 24 cmp r0, 0x4 bhi _0809AB84 lsls r0, 2 ldr r1, _0809AAE8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809AAE8: .4byte _0809AAEC .align 2, 0 _0809AAEC: .4byte _0809AB00 .4byte _0809AB2E .4byte _0809AB56 .4byte _0809AB5E .4byte _0809AB7C _0809AB00: adds r0, r5, 0 movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, 0x64 strh r1, [r4] adds r0, r5, 0 movs r1, 0x6 bl __udivsi3 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, 0x20 strh r1, [r6] b _0809AB84 _0809AB2E: cmp r5, 0 bne _0809AB3A movs r0, 0x68 strh r0, [r4] movs r0, 0x34 b _0809AB82 _0809AB3A: cmp r5, 0x6 bne _0809AB46 movs r0, 0x98 strh r0, [r4] movs r0, 0x84 b _0809AB82 _0809AB46: movs r0, 0x98 strh r0, [r4] subs r1, r5, 0x1 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, 0x4 b _0809AB82 _0809AB56: movs r0, 0xA2 strh r0, [r4] movs r0, 0xC b _0809AB82 _0809AB5E: ldr r0, _0809AB78 ldrb r0, [r0] movs r1, 0xE cmp r0, 0 beq _0809AB6A movs r1, 0x8 _0809AB6A: strh r1, [r6] movs r0, 0x58 muls r0, r5 adds r0, 0x78 strh r0, [r4] b _0809AB84 .align 2, 0 _0809AB78: .4byte 0x020384e6 _0809AB7C: movs r0, 0xA0 strh r0, [r4] movs r0, 0x60 _0809AB82: strh r0, [r6] _0809AB84: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_809AACC thumb_func_start sub_809AB8C sub_809AB8C: @ 809AB8C push {lr} ldr r0, _0809ABB4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _0809ABC0 cmp r0, 0x1 bne _0809ABF8 ldr r0, _0809ABB8 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, _0809ABBC adds r0, r1 movs r1, 0xB bl PokemonGetField b _0809ABEA .align 2, 0 _0809ABB4: .4byte 0x020384e4 _0809ABB8: .4byte 0x020384e5 _0809ABBC: .4byte 0x03004360 _0809ABC0: bl get_preferred_box lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 ldr r1, _0809ABF0 movs r2, 0 ldrsb r2, [r1, r2] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 ldr r2, _0809ABF4 adds r1, r2 adds r0, r1 movs r1, 0xB bl PokemonGetEncryptedField _0809ABEA: lsls r0, 16 lsrs r0, 16 b _0809ABFA .align 2, 0 _0809ABF0: .4byte 0x020384e5 _0809ABF4: .4byte 0x020300a4 _0809ABF8: movs r0, 0 _0809ABFA: pop {r1} bx r1 thumb_func_end sub_809AB8C thumb_func_start sub_809AC00 sub_809AC00: @ 809AC00 push {r4-r6,lr} ldr r0, _0809AC14 ldr r4, [r0] ldr r0, _0809AC18 adds r1, r4, r0 ldrh r0, [r1] cmp r0, 0 bne _0809AC1C movs r0, 0 b _0809AD2C .align 2, 0 _0809AC14: .4byte gUnknown_083B6DB4 _0809AC18: .4byte 0x000011dc _0809AC1C: subs r0, 0x1 strh r0, [r1] lsls r0, 16 cmp r0, 0 beq _0809AD0C ldr r1, _0809ACF4 adds r3, r4, r1 ldr r2, _0809ACF8 adds r1, r4, r2 ldr r0, [r3] ldr r1, [r1] adds r0, r1 str r0, [r3] ldr r6, _0809ACFC adds r2, r4, r6 ldr r0, _0809AD00 adds r1, r4, r0 ldr r0, [r2] ldr r1, [r1] adds r0, r1 str r0, [r2] movs r1, 0x8E lsls r1, 5 adds r5, r4, r1 ldr r1, [r5] ldr r0, [r3] asrs r0, 8 strh r0, [r1, 0x20] ldr r1, [r5] ldr r0, [r2] asrs r0, 8 strh r0, [r1, 0x22] ldr r1, [r5] ldrh r2, [r1, 0x20] movs r3, 0x20 ldrsh r0, [r1, r3] movs r3, 0x80 lsls r3, 1 cmp r0, r3 ble _0809AC78 ldr r6, _0809AD04 adds r0, r2, r6 lsls r0, 16 asrs r0, 16 adds r0, 0x40 strh r0, [r1, 0x20] _0809AC78: ldr r1, [r5] ldrh r2, [r1, 0x20] movs r6, 0x20 ldrsh r0, [r1, r6] cmp r0, 0x3F bgt _0809AC90 movs r0, 0x40 subs r0, r2 lsls r0, 16 asrs r0, 16 subs r0, r3, r0 strh r0, [r1, 0x20] _0809AC90: ldr r1, [r5] ldrh r2, [r1, 0x22] movs r3, 0x22 ldrsh r0, [r1, r3] cmp r0, 0xB0 ble _0809ACA8 adds r0, r2, 0 subs r0, 0xB0 lsls r0, 16 asrs r0, 16 subs r0, 0x10 strh r0, [r1, 0x22] _0809ACA8: ldr r2, [r5] ldrh r3, [r2, 0x22] movs r6, 0x22 ldrsh r0, [r2, r6] movs r1, 0x10 negs r1, r1 cmp r0, r1 bge _0809ACC4 subs r0, r1, r3 movs r1, 0xB0 lsls r0, 16 asrs r0, 16 subs r1, r0 strh r1, [r2, 0x22] _0809ACC4: ldr r0, _0809AD08 adds r1, r4, r0 ldrb r0, [r1] cmp r0, 0 beq _0809AD2A subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bne _0809AD2A ldr r2, [r5] adds r2, 0x3F ldrb r3, [r2] lsrs r1, r3, 1 movs r0, 0x1 eors r1, r0 ands r1, r0 lsls r1, 1 movs r0, 0x3 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] b _0809AD2A .align 2, 0 _0809ACF4: .4byte 0x000011c8 _0809ACF8: .4byte 0x000011d0 _0809ACFC: .4byte 0x000011cc _0809AD00: .4byte 0x000011d4 _0809AD04: .4byte 0xffffff00 _0809AD08: .4byte 0x000011e3 _0809AD0C: movs r1, 0x8E lsls r1, 5 adds r2, r4, r1 ldr r1, [r2] ldr r3, _0809AD34 adds r0, r4, r3 ldrh r0, [r0] strh r0, [r1, 0x20] ldr r1, [r2] ldr r6, _0809AD38 adds r0, r4, r6 ldrh r0, [r0] strh r0, [r1, 0x22] bl sub_809AFB8 _0809AD2A: movs r0, 0x1 _0809AD2C: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0809AD34: .4byte 0x000011d8 _0809AD38: .4byte 0x000011da thumb_func_end sub_809AC00 thumb_func_start sub_809AD3C sub_809AD3C: @ 809AD3C push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 mov r6, sp adds r6, 0x2 adds r0, r4, 0 adds r1, r5, 0 mov r2, sp adds r3, r6, 0 bl sub_809AACC ldr r0, _0809AD88 ldr r1, [r0] movs r2, 0x8F lsls r2, 5 adds r0, r1, r2 strb r4, [r0] ldr r3, _0809AD8C adds r0, r1, r3 strb r5, [r0] mov r0, sp ldrh r2, [r0] subs r3, 0x9 adds r0, r1, r3 strh r2, [r0] ldrh r0, [r6] ldr r2, _0809AD90 adds r1, r2 strh r0, [r1] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809AD88: .4byte gUnknown_083B6DB4 _0809AD8C: .4byte 0x000011e1 _0809AD90: .4byte 0x000011da thumb_func_end sub_809AD3C thumb_func_start sub_809AD94 sub_809AD94: @ 809AD94 push {r4-r7,lr} ldr r0, _0809ADB0 ldr r2, [r0] ldr r3, _0809ADB4 adds r1, r2, r3 ldrh r1, [r1] adds r4, r0, 0 cmp r1, 0 beq _0809ADBC ldr r0, _0809ADB8 adds r1, r2, r0 movs r0, 0xC b _0809ADC2 .align 2, 0 _0809ADB0: .4byte gUnknown_083B6DB4 _0809ADB4: .4byte 0x000011de _0809ADB8: .4byte 0x000011dc _0809ADBC: ldr r3, _0809AE04 adds r1, r2, r3 movs r0, 0x6 _0809ADC2: strh r0, [r1] ldr r2, [r4] ldr r0, _0809AE08 adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0 beq _0809ADDA ldr r3, _0809AE04 adds r0, r2, r3 ldrh r0, [r0] lsrs r0, 1 strb r0, [r1] _0809ADDA: ldr r1, _0809AE0C adds r0, r2, r1 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0809AE14 cmp r1, 0x1 beq _0809AE30 ldr r3, _0809AE10 adds r0, r2, r3 movs r3, 0 ldrsh r1, [r0, r3] movs r3, 0x8E lsls r3, 5 adds r0, r2, r3 ldr r0, [r0] movs r2, 0x22 ldrsh r0, [r0, r2] b _0809AE46 .align 2, 0 _0809AE04: .4byte 0x000011dc _0809AE08: .4byte 0x000011e3 _0809AE0C: .4byte 0x000011de _0809AE10: .4byte 0x000011da _0809AE14: ldr r3, _0809AE2C adds r0, r2, r3 movs r3, 0 ldrsh r1, [r0, r3] movs r3, 0x8E lsls r3, 5 adds r0, r2, r3 ldr r0, [r0] movs r2, 0x22 ldrsh r0, [r0, r2] adds r0, 0xC0 b _0809AE46 .align 2, 0 _0809AE2C: .4byte 0x000011da _0809AE30: ldr r3, _0809AE74 adds r0, r2, r3 movs r3, 0 ldrsh r1, [r0, r3] movs r3, 0x8E lsls r3, 5 adds r0, r2, r3 ldr r0, [r0] movs r2, 0x22 ldrsh r0, [r0, r2] subs r0, 0xC0 _0809AE46: subs r7, r1, r0 ldr r2, [r4] ldr r3, _0809AE78 adds r0, r2, r3 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0809AE80 cmp r1, 0x1 beq _0809AE9C ldr r1, _0809AE7C adds r0, r2, r1 movs r3, 0 ldrsh r1, [r0, r3] movs r3, 0x8E lsls r3, 5 adds r0, r2, r3 ldr r0, [r0] movs r2, 0x20 ldrsh r0, [r0, r2] b _0809AEB2 .align 2, 0 _0809AE74: .4byte 0x000011da _0809AE78: .4byte 0x000011df _0809AE7C: .4byte 0x000011d8 _0809AE80: ldr r3, _0809AE98 adds r0, r2, r3 movs r3, 0 ldrsh r1, [r0, r3] movs r3, 0x8E lsls r3, 5 adds r0, r2, r3 ldr r0, [r0] movs r2, 0x20 ldrsh r0, [r0, r2] adds r0, 0xC0 b _0809AEB2 .align 2, 0 _0809AE98: .4byte 0x000011d8 _0809AE9C: ldr r3, _0809AF00 adds r0, r2, r3 movs r3, 0 ldrsh r1, [r0, r3] movs r3, 0x8E lsls r3, 5 adds r0, r2, r3 ldr r0, [r0] movs r2, 0x20 ldrsh r0, [r0, r2] subs r0, 0xC0 _0809AEB2: subs r0, r1, r0 lsls r7, 8 lsls r0, 8 ldr r4, [r4] ldr r3, _0809AF04 adds r6, r4, r3 ldr r1, _0809AF08 adds r5, r4, r1 ldrh r1, [r5] bl __divsi3 str r0, [r6] ldr r2, _0809AF0C adds r6, r4, r2 ldrh r1, [r5] adds r0, r7, 0 bl __divsi3 str r0, [r6] ldr r3, _0809AF10 adds r2, r4, r3 movs r0, 0x8E lsls r0, 5 adds r1, r4, r0 ldr r0, [r1] movs r3, 0x20 ldrsh r0, [r0, r3] lsls r0, 8 str r0, [r2] ldr r0, _0809AF14 adds r4, r0 ldr r0, [r1] movs r1, 0x22 ldrsh r0, [r0, r1] lsls r0, 8 str r0, [r4] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809AF00: .4byte 0x000011d8 _0809AF04: .4byte 0x000011d0 _0809AF08: .4byte 0x000011dc _0809AF0C: .4byte 0x000011d4 _0809AF10: .4byte 0x000011c8 _0809AF14: .4byte 0x000011cc thumb_func_end sub_809AD94 thumb_func_start sub_809AF18 sub_809AF18: @ 809AF18 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_809AD3C bl sub_809AD94 ldr r0, _0809AFA4 ldrb r0, [r0] cmp r0, 0 bne _0809AF46 ldr r0, _0809AFA8 ldr r0, [r0] movs r1, 0x8E lsls r1, 5 adds r0, r1 ldr r0, [r0] movs r1, 0x1 bl StartSpriteAnim _0809AF46: cmp r4, 0x1 bne _0809AF70 ldr r0, _0809AFAC ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x1 beq _0809AF70 ldr r0, _0809AFA8 ldr r0, [r0] ldr r2, _0809AFB0 adds r1, r0, r2 strb r4, [r1] ldr r1, _0809AFB4 adds r0, r1 ldr r1, [r0] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] _0809AF70: cmp r4, 0 beq _0809AF9E cmp r4, 0 blt _0809AF9E cmp r4, 0x3 bgt _0809AF9E ldr r0, _0809AFA8 ldr r2, [r0] ldr r0, _0809AFB4 adds r2, r0 ldr r1, [r2] adds r1, 0x3E ldrb r0, [r1] movs r3, 0x4 orrs r0, r3 strb r0, [r1] ldr r2, [r2] ldrb r1, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 orrs r0, r3 strb r0, [r2, 0x5] _0809AF9E: pop {r4} pop {r0} bx r0 .align 2, 0 _0809AFA4: .4byte 0x020384e6 _0809AFA8: .4byte gUnknown_083B6DB4 _0809AFAC: .4byte 0x020384e4 _0809AFB0: .4byte 0x000011e2 _0809AFB4: .4byte 0x000011c4 thumb_func_end sub_809AF18 thumb_func_start sub_809AFB8 sub_809AFB8: @ 809AFB8 push {r4,r5,lr} ldr r5, _0809B000 ldr r0, _0809B004 ldr r4, [r0] movs r1, 0x8F lsls r1, 5 adds r0, r4, r1 ldrb r0, [r0] strb r0, [r5] ldr r1, _0809B008 ldr r2, _0809B00C adds r0, r4, r2 ldrb r0, [r0] strb r0, [r1] ldr r0, _0809B010 ldrb r0, [r0] cmp r0, 0 bne _0809AFEA movs r1, 0x8E lsls r1, 5 adds r0, r4, r1 ldr r0, [r0] movs r1, 0 bl StartSpriteAnim _0809AFEA: bl sub_809BF74 movs r0, 0 ldrsb r0, [r5, r0] cmp r0, 0x1 beq _0809B020 cmp r0, 0x1 bgt _0809B014 cmp r0, 0 beq _0809B034 b _0809B05E .align 2, 0 _0809B000: .4byte 0x020384e4 _0809B004: .4byte gUnknown_083B6DB4 _0809B008: .4byte 0x020384e5 _0809B00C: .4byte 0x000011e1 _0809B010: .4byte 0x020384e6 _0809B014: cmp r0, 0x2 bne _0809B05E movs r0, 0x1 bl sub_809A860 b _0809B05E _0809B020: ldr r2, _0809B030 adds r0, r4, r2 ldr r0, [r0] adds r0, 0x43 movs r1, 0xC strb r1, [r0] b _0809B05E .align 2, 0 _0809B030: .4byte 0x000011c4 _0809B034: ldr r0, _0809B064 adds r2, r4, r0 ldr r3, [r2] ldrb r1, [r3, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r3, 0x5] ldr r0, [r2] adds r0, 0x43 movs r1, 0x14 strb r1, [r0] ldr r1, [r2] adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] _0809B05E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809B064: .4byte 0x000011c4 thumb_func_end sub_809AFB8 thumb_func_start sub_809B068 sub_809B068: @ 809B068 push {lr} ldr r0, _0809B078 ldrb r0, [r0] cmp r0, 0 bne _0809B07C movs r3, 0 b _0809B08A .align 2, 0 _0809B078: .4byte 0x020384e6 _0809B07C: bl calc_player_party_count lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x5 bls _0809B08A movs r3, 0x5 _0809B08A: ldr r0, _0809B0B8 ldr r2, [r0] movs r1, 0x8E lsls r1, 5 adds r0, r2, r1 ldr r0, [r0] adds r0, 0x3F ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809B0AA ldr r0, _0809B0BC adds r1, r2, r0 movs r0, 0x1 strb r0, [r1] _0809B0AA: movs r0, 0x1 adds r1, r3, 0 bl sub_809AF18 pop {r0} bx r0 .align 2, 0 _0809B0B8: .4byte gUnknown_083B6DB4 _0809B0BC: .4byte 0x000011e3 thumb_func_end sub_809B068 thumb_func_start sub_809B0C0 sub_809B0C0: @ 809B0C0 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_809AF18 pop {r0} bx r0 thumb_func_end sub_809B0C0 thumb_func_start sub_809B0D4 sub_809B0D4: @ 809B0D4 ldr r1, _0809B0DC movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _0809B0DC: .4byte 0x020384ea thumb_func_end sub_809B0D4 thumb_func_start sub_809B0E0 sub_809B0E0: @ 809B0E0 ldr r0, _0809B0EC ldr r1, _0809B0F0 ldrb r1, [r1] strb r1, [r0] bx lr .align 2, 0 _0809B0EC: .4byte 0x020384ea _0809B0F0: .4byte 0x020384e5 thumb_func_end sub_809B0E0 thumb_func_start sub_809B0F4 sub_809B0F4: @ 809B0F4 ldr r0, _0809B0FC ldrb r0, [r0] bx lr .align 2, 0 _0809B0FC: .4byte 0x020384ea thumb_func_end sub_809B0F4 thumb_func_start sub_809B100 sub_809B100: @ 809B100 lsls r0, 24 ldr r1, _0809B120 ldr r1, [r1] ldr r2, _0809B124 adds r3, r1, r2 ldr r2, _0809B128 lsrs r0, 22 adds r0, r2 ldr r0, [r0] str r0, [r3] ldr r0, _0809B12C adds r1, r0 movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _0809B120: .4byte gUnknown_083B6DB4 _0809B124: .4byte 0x000012a4 _0809B128: .4byte gUnknown_083BBBC8 _0809B12C: .4byte 0x000012a8 thumb_func_end sub_809B100 thumb_func_start sub_809B130 sub_809B130: @ 809B130 push {lr} ldr r0, _0809B148 ldr r0, [r0] ldr r1, _0809B14C adds r0, r1 ldr r0, [r0] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0809B148: .4byte gUnknown_083B6DB4 _0809B14C: .4byte 0x000012a4 thumb_func_end sub_809B130 thumb_func_start sub_809B150 sub_809B150: @ 809B150 push {r4,r5,lr} ldr r0, _0809B16C ldr r5, [r0] ldr r0, _0809B170 adds r4, r5, r0 ldrb r0, [r4] cmp r0, 0x1 beq _0809B1A0 cmp r0, 0x1 bgt _0809B174 cmp r0, 0 beq _0809B17E b _0809B1CE .align 2, 0 _0809B16C: .4byte gUnknown_083B6DB4 _0809B170: .4byte 0x000012a8 _0809B174: cmp r0, 0x2 beq _0809B1BE cmp r0, 0x3 beq _0809B186 b _0809B1CE _0809B17E: ldr r0, _0809B18C ldrb r0, [r0] cmp r0, 0 beq _0809B190 _0809B186: movs r0, 0 b _0809B1D0 .align 2, 0 _0809B18C: .4byte 0x020384e6 _0809B190: movs r1, 0x8E lsls r1, 5 adds r0, r5, r1 ldr r0, [r0] movs r1, 0x2 bl StartSpriteAnim b _0809B1C8 _0809B1A0: bl sub_809B324 lsls r0, 24 cmp r0, 0 bne _0809B1CE movs r1, 0x8E lsls r1, 5 adds r0, r5, r1 ldr r0, [r0] movs r1, 0x3 bl StartSpriteAnim bl sub_809B384 b _0809B1C8 _0809B1BE: bl sub_809B358 lsls r0, 24 cmp r0, 0 bne _0809B1CE _0809B1C8: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _0809B1CE: movs r0, 0x1 _0809B1D0: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809B150 thumb_func_start sub_809B1D8 sub_809B1D8: @ 809B1D8 push {r4,r5,lr} ldr r0, _0809B1F4 ldr r4, [r0] ldr r0, _0809B1F8 adds r5, r4, r0 ldrb r0, [r5] cmp r0, 0x1 beq _0809B220 cmp r0, 0x1 bgt _0809B1FC cmp r0, 0 beq _0809B202 b _0809B244 .align 2, 0 _0809B1F4: .4byte gUnknown_083B6DB4 _0809B1F8: .4byte 0x000012a8 _0809B1FC: cmp r0, 0x2 beq _0809B240 b _0809B244 _0809B202: bl sub_809B324 lsls r0, 24 cmp r0, 0 bne _0809B244 movs r1, 0x8E lsls r1, 5 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x2 bl StartSpriteAnim bl sub_809B3E0 b _0809B238 _0809B220: bl sub_809B358 lsls r0, 24 cmp r0, 0 bne _0809B244 movs r1, 0x8E lsls r1, 5 adds r0, r4, r1 ldr r0, [r0] movs r1, 0 bl StartSpriteAnim _0809B238: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _0809B244 _0809B240: movs r0, 0 b _0809B246 _0809B244: movs r0, 0x1 _0809B246: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809B1D8 thumb_func_start sub_809B24C sub_809B24C: @ 809B24C push {r4,r5,lr} ldr r0, _0809B268 ldr r4, [r0] ldr r0, _0809B26C adds r5, r4, r0 ldrb r0, [r5] cmp r0, 0x1 beq _0809B2E0 cmp r0, 0x1 bgt _0809B270 cmp r0, 0 beq _0809B276 b _0809B31C .align 2, 0 _0809B268: .4byte gUnknown_083B6DB4 _0809B26C: .4byte 0x000012a8 _0809B270: cmp r0, 0x2 beq _0809B318 b _0809B31C _0809B276: ldr r0, _0809B290 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _0809B298 cmp r0, 0x1 bne _0809B318 ldr r2, _0809B294 adds r1, r4, r2 movs r0, 0xE b _0809B2A0 .align 2, 0 _0809B290: .4byte 0x020384e4 _0809B294: .4byte 0x000012a9 _0809B298: bl get_preferred_box ldr r2, _0809B2D0 adds r1, r4, r2 _0809B2A0: strb r0, [r1] ldr r0, _0809B2D4 ldr r4, [r0] movs r1, 0x8E lsls r1, 5 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x2 bl StartSpriteAnim ldr r2, _0809B2D0 adds r0, r4, r2 ldrb r0, [r0] ldr r1, _0809B2D8 ldrb r1, [r1] bl sub_80996B0 ldr r0, _0809B2DC adds r4, r0 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0809B31C .align 2, 0 _0809B2D0: .4byte 0x000012a9 _0809B2D4: .4byte gUnknown_083B6DB4 _0809B2D8: .4byte 0x020384e5 _0809B2DC: .4byte 0x000012a8 _0809B2E0: bl sub_809971C lsls r0, 24 cmp r0, 0 bne _0809B31C movs r1, 0x8E lsls r1, 5 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x3 bl StartSpriteAnim ldr r2, _0809B310 adds r0, r4, r2 ldrb r0, [r0] ldr r1, _0809B314 ldrb r1, [r1] bl diegohint1 ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _0809B31C .align 2, 0 _0809B310: .4byte 0x000012a9 _0809B314: .4byte 0x020384e5 _0809B318: movs r0, 0 b _0809B31E _0809B31C: movs r0, 0x1 _0809B31E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809B24C thumb_func_start sub_809B324 sub_809B324: @ 809B324 push {lr} ldr r0, _0809B348 ldr r0, [r0] movs r1, 0x8E lsls r1, 5 adds r0, r1 ldr r1, [r0] movs r2, 0x26 ldrsh r0, [r1, r2] cmp r0, 0 beq _0809B33E cmp r0, 0x8 beq _0809B34C _0809B33E: ldrh r0, [r1, 0x26] adds r0, 0x1 strh r0, [r1, 0x26] b _0809B350 .align 2, 0 _0809B348: .4byte gUnknown_083B6DB4 _0809B34C: movs r0, 0 b _0809B352 _0809B350: movs r0, 0x1 _0809B352: pop {r1} bx r1 thumb_func_end sub_809B324 thumb_func_start sub_809B358 sub_809B358: @ 809B358 push {lr} ldr r0, _0809B378 ldr r0, [r0] movs r1, 0x8E lsls r1, 5 adds r0, r1 ldr r1, [r0] movs r2, 0x26 ldrsh r0, [r1, r2] cmp r0, 0 beq _0809B37C ldrh r0, [r1, 0x26] subs r0, 0x1 strh r0, [r1, 0x26] movs r0, 0x1 b _0809B37E .align 2, 0 _0809B378: .4byte gUnknown_083B6DB4 _0809B37C: movs r0, 0 _0809B37E: pop {r1} bx r1 thumb_func_end sub_809B358 thumb_func_start sub_809B384 sub_809B384: @ 809B384 push {r4,lr} ldr r0, _0809B3AC ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _0809B3B4 cmp r0, 0x1 bne _0809B3D2 ldr r4, _0809B3B0 ldrb r1, [r4] movs r0, 0xE bl sub_809B44C ldrb r1, [r4] movs r0, 0 bl sub_8099584 b _0809B3CC .align 2, 0 _0809B3AC: .4byte 0x020384e4 _0809B3B0: .4byte 0x020384e5 _0809B3B4: bl get_preferred_box lsls r0, 24 lsrs r0, 24 ldr r4, _0809B3D8 ldrb r1, [r4] bl sub_809B44C ldrb r1, [r4] movs r0, 0x1 bl sub_8099584 _0809B3CC: ldr r1, _0809B3DC movs r0, 0x1 strb r0, [r1] _0809B3D2: pop {r4} pop {r0} bx r0 .align 2, 0 _0809B3D8: .4byte 0x020384e5 _0809B3DC: .4byte 0x020384e6 thumb_func_end sub_809B384 thumb_func_start sub_809B3E0 sub_809B3E0: @ 809B3E0 push {r4,r5,lr} ldr r0, _0809B408 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _0809B410 cmp r0, 0x1 bne _0809B432 ldr r4, _0809B40C ldrb r1, [r4] movs r0, 0xE bl diegohint2 ldrb r1, [r4] movs r0, 0xE bl sub_809960C b _0809B42C .align 2, 0 _0809B408: .4byte 0x020384e4 _0809B40C: .4byte 0x020384e5 _0809B410: bl get_preferred_box adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _0809B438 ldrb r1, [r5] adds r0, r4, 0 bl diegohint2 ldrb r1, [r5] adds r0, r4, 0 bl sub_809960C _0809B42C: ldr r1, _0809B43C movs r0, 0 strb r0, [r1] _0809B432: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809B438: .4byte 0x020384e5 _0809B43C: .4byte 0x020384e6 thumb_func_end sub_809B3E0 thumb_func_start sub_809B440 sub_809B440: @ 809B440 push {lr} bl sub_809BF74 pop {r0} bx r0 thumb_func_end sub_809B440 thumb_func_start sub_809B44C sub_809B44C: @ 809B44C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 cmp r4, 0xE bne _0809B488 ldr r0, _0809B478 ldr r0, [r0] ldr r1, _0809B47C adds r0, r1 ldr r3, _0809B480 ldr r1, _0809B484 movs r2, 0 ldrsb r2, [r1, r2] movs r1, 0x64 muls r1, r2 adds r1, r3 movs r2, 0x64 bl memcpy b _0809B4AA .align 2, 0 _0809B478: .4byte gUnknown_083B6DB4 _0809B47C: .4byte 0x000025b4 _0809B480: .4byte 0x03004360 _0809B484: .4byte 0x020384e5 _0809B488: lsls r1, r4, 2 adds r1, r4 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 lsls r1, r5, 2 adds r1, r5 lsls r1, 4 ldr r2, _0809B4C0 adds r1, r2 adds r0, r1 ldr r1, _0809B4C4 ldr r1, [r1] ldr r2, _0809B4C8 adds r1, r2 bl sub_803B4B4 _0809B4AA: adds r0, r4, 0 adds r1, r5, 0 bl sub_809B548 ldr r0, _0809B4CC strb r4, [r0] ldr r0, _0809B4D0 strb r5, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809B4C0: .4byte 0x020300a4 _0809B4C4: .4byte gUnknown_083B6DB4 _0809B4C8: .4byte 0x000025b4 _0809B4CC: .4byte 0x020384e7 _0809B4D0: .4byte 0x020384e8 thumb_func_end sub_809B44C thumb_func_start diegohint2 diegohint2: @ 809B4D4 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r5, r1, 24 cmp r6, 0xE bne _0809B508 ldr r1, _0809B4FC movs r0, 0x64 muls r0, r5 adds r0, r1 ldr r1, _0809B500 ldr r1, [r1] ldr r2, _0809B504 adds r1, r2 movs r2, 0x64 bl memcpy b _0809B536 .align 2, 0 _0809B4FC: .4byte 0x03004360 _0809B500: .4byte gUnknown_083B6DB4 _0809B504: .4byte 0x000025b4 _0809B508: ldr r0, _0809B53C ldr r4, [r0] ldr r0, _0809B540 adds r4, r0 adds r0, r4, 0 bl pokemon_restore_pp ldr r3, _0809B544 lsls r0, r5, 2 adds r0, r5 lsls r0, 4 lsls r2, r6, 2 adds r2, r6 lsls r1, r2, 4 subs r1, r2 lsls r1, 5 adds r0, r1 adds r0, r3 adds r0, 0x4 adds r1, r4, 0 movs r2, 0x50 bl memcpy _0809B536: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809B53C: .4byte gUnknown_083B6DB4 _0809B540: .4byte 0x000025b4 _0809B544: .4byte 0x020300a0 thumb_func_end diegohint2 thumb_func_start sub_809B548 sub_809B548: @ 809B548 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r2, r1, 24 cmp r0, 0xE bne _0809B568 movs r0, 0x64 muls r0, r2 ldr r1, _0809B564 adds r0, r1 bl zero_pokemon_struct b _0809B582 .align 2, 0 _0809B564: .4byte 0x03004360 _0809B568: lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 lsls r1, r2, 2 adds r1, r2 lsls r1, 4 ldr r2, _0809B588 adds r1, r2 adds r0, r1 bl zero_pokemon_boxed_data _0809B582: pop {r0} bx r0 .align 2, 0 _0809B588: .4byte 0x020300a4 thumb_func_end sub_809B548 thumb_func_start diegohint1 diegohint1: @ 809B58C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r6, r1, 24 cmp r5, 0xE bne _0809B5C0 ldr r0, _0809B5B4 ldr r0, [r0] ldr r1, _0809B5B8 adds r0, r1 ldr r2, _0809B5BC movs r1, 0x64 muls r1, r6 adds r1, r2 movs r2, 0x64 bl memcpy b _0809B5E2 .align 2, 0 _0809B5B4: .4byte gUnknown_083B6DB4 _0809B5B8: .4byte 0x00002618 _0809B5BC: .4byte 0x03004360 _0809B5C0: lsls r1, r5, 2 adds r1, r5 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 lsls r1, r6, 2 adds r1, r6 lsls r1, 4 ldr r2, _0809B614 adds r1, r2 adds r0, r1 ldr r1, _0809B618 ldr r1, [r1] ldr r2, _0809B61C adds r1, r2 bl sub_803B4B4 _0809B5E2: adds r0, r5, 0 adds r1, r6, 0 bl diegohint2 ldr r0, _0809B618 ldr r1, [r0] ldr r0, _0809B620 adds r4, r1, r0 ldr r2, _0809B61C adds r1, r2 adds r0, r4, 0 movs r2, 0x64 bl memcpy adds r0, r4, 0 movs r1, 0 bl sub_809C04C ldr r0, _0809B624 strb r5, [r0] ldr r0, _0809B628 strb r6, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809B614: .4byte 0x020300a4 _0809B618: .4byte gUnknown_083B6DB4 _0809B61C: .4byte 0x00002618 _0809B620: .4byte 0x000025b4 _0809B624: .4byte 0x020384e7 _0809B628: .4byte 0x020384e8 thumb_func_end diegohint1 thumb_func_start sub_809B62C sub_809B62C: @ 809B62C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 adds r0, r6, 0 bl sub_8095B24 lsls r0, 16 lsrs r4, r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0809B64A movs r0, 0 b _0809B6AC _0809B64A: ldr r5, _0809B668 ldrb r0, [r5] cmp r0, 0 beq _0809B66C lsls r4, 24 lsrs r1, r4, 24 adds r0, r6, 0 bl diegohint2 bl sub_8099480 movs r0, 0 strb r0, [r5] b _0809B686 .align 2, 0 _0809B668: .4byte 0x020384e6 _0809B66C: ldr r5, _0809B6B4 ldrb r1, [r5] movs r0, 0xE bl sub_809B44C lsls r4, 24 lsrs r1, r4, 24 adds r0, r6, 0 bl diegohint2 ldrb r0, [r5] bl sub_8099520 _0809B686: bl get_preferred_box lsls r0, 24 lsrs r0, 24 cmp r6, r0 bne _0809B698 lsrs r0, r4, 24 bl sub_8098D20 _0809B698: ldr r0, _0809B6B8 ldr r0, [r0] movs r1, 0x8E lsls r1, 5 adds r0, r1 ldr r0, [r0] movs r1, 0x1 bl StartSpriteAnim movs r0, 0x1 _0809B6AC: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0809B6B4: .4byte 0x020384e5 _0809B6B8: .4byte gUnknown_083B6DB4 thumb_func_end sub_809B62C thumb_func_start sub_809B6BC sub_809B6BC: @ 809B6BC push {lr} ldr r0, _0809B6D8 ldr r0, [r0] movs r1, 0x8E lsls r1, 5 adds r0, r1 ldr r0, [r0] movs r1, 0 bl StartSpriteAnim bl sub_809BF74 pop {r0} bx r0 .align 2, 0 _0809B6D8: .4byte gUnknown_083B6DB4 thumb_func_end sub_809B6BC thumb_func_start sub_809B6DC sub_809B6DC: @ 809B6DC push {lr} ldr r0, _0809B6EC ldrb r0, [r0] cmp r0, 0 beq _0809B6F0 movs r2, 0x2 b _0809B700 .align 2, 0 _0809B6EC: .4byte 0x020384e6 _0809B6F0: ldr r0, _0809B720 movs r1, 0 ldrsb r1, [r0, r1] movs r2, 0x1 eors r1, r2 negs r0, r1 orrs r0, r1 lsrs r2, r0, 31 _0809B700: ldr r0, _0809B724 ldrb r1, [r0] adds r0, r2, 0 bl sub_809981C ldr r0, _0809B728 ldr r1, [r0] ldr r2, _0809B72C adds r0, r1, r2 ldr r2, _0809B730 adds r1, r2 bl StringCopy pop {r0} bx r0 .align 2, 0 _0809B720: .4byte 0x020384e4 _0809B724: .4byte 0x020384e5 _0809B728: .4byte gUnknown_083B6DB4 _0809B72C: .4byte 0x000026e4 _0809B730: .4byte 0x000011fa thumb_func_end sub_809B6DC thumb_func_start sub_809B734 sub_809B734: @ 809B734 push {lr} bl sub_80998D8 lsls r0, 24 cmp r0, 0 beq _0809B744 movs r0, 0x1 b _0809B758 _0809B744: ldr r0, _0809B75C ldr r0, [r0] movs r1, 0x8E lsls r1, 5 adds r0, r1 ldr r0, [r0] movs r1, 0 bl StartSpriteAnim movs r0, 0 _0809B758: pop {r1} bx r1 .align 2, 0 _0809B75C: .4byte gUnknown_083B6DB4 thumb_func_end sub_809B734 thumb_func_start sub_809B760 sub_809B760: @ 809B760 push {lr} bl sub_8099920 ldr r1, _0809B774 ldrb r0, [r1] cmp r0, 0 beq _0809B778 movs r0, 0 strb r0, [r1] b _0809B79E .align 2, 0 _0809B774: .4byte 0x020384e6 _0809B778: ldr r0, _0809B788 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x1 bne _0809B78C movs r2, 0xE b _0809B794 .align 2, 0 _0809B788: .4byte 0x020384e4 _0809B78C: bl get_preferred_box lsls r0, 24 lsrs r2, r0, 24 _0809B794: ldr r0, _0809B7A8 ldrb r1, [r0] adds r0, r2, 0 bl sub_809B548 _0809B79E: bl sub_809BF74 pop {r0} bx r0 .align 2, 0 _0809B7A8: .4byte 0x020384e5 thumb_func_end sub_809B760 thumb_func_start sub_809B7AC sub_809B7AC: @ 809B7AC push {lr} ldr r0, _0809B7CC ldrb r0, [r0] cmp r0, 0 beq _0809B7C8 ldr r0, _0809B7D0 ldr r0, [r0] movs r1, 0x8E lsls r1, 5 adds r0, r1 ldr r0, [r0] movs r1, 0x3 bl StartSpriteAnim _0809B7C8: pop {r0} bx r0 .align 2, 0 _0809B7CC: .4byte 0x020384e6 _0809B7D0: .4byte gUnknown_083B6DB4 thumb_func_end sub_809B7AC thumb_func_start sub_809B7D4 sub_809B7D4: @ 809B7D4 push {r4-r6,lr} ldr r0, _0809B804 ldrb r0, [r0] cmp r0, 0 beq _0809B81C ldr r0, _0809B808 ldr r4, [r0] ldr r1, _0809B80C adds r0, r4, r1 ldr r2, _0809B810 adds r1, r4, r2 movs r2, 0x64 bl memcpy ldr r0, _0809B814 adds r1, r4, r0 movs r0, 0xFF strb r0, [r1] ldr r1, _0809B818 adds r4, r1 movs r0, 0x1 negs r0, r0 strb r0, [r4] b _0809B8A6 .align 2, 0 _0809B804: .4byte 0x020384e6 _0809B808: .4byte gUnknown_083B6DB4 _0809B80C: .4byte 0x00002618 _0809B810: .4byte 0x000025b4 _0809B814: .4byte 0x00002682 _0809B818: .4byte 0x00002683 _0809B81C: ldr r0, _0809B84C ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x1 bne _0809B864 ldr r0, _0809B850 ldr r4, [r0] ldr r2, _0809B854 adds r0, r4, r2 ldr r3, _0809B858 ldr r1, _0809B85C movs r2, 0 ldrsb r2, [r1, r2] movs r1, 0x64 muls r1, r2 adds r1, r3 movs r2, 0x64 bl memcpy ldr r0, _0809B860 adds r4, r0 movs r0, 0xE b _0809B896 .align 2, 0 _0809B84C: .4byte 0x020384e4 _0809B850: .4byte gUnknown_083B6DB4 _0809B854: .4byte 0x00002618 _0809B858: .4byte 0x03004360 _0809B85C: .4byte 0x020384e5 _0809B860: .4byte 0x00002682 _0809B864: ldr r5, _0809B8FC ldrb r0, [r5] lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 ldr r1, _0809B900 movs r2, 0 ldrsb r2, [r1, r2] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 adds r2, r5, 0x4 adds r1, r2 adds r0, r1 ldr r1, _0809B904 ldr r4, [r1] ldr r2, _0809B908 adds r1, r4, r2 bl sub_803B4B4 ldrb r0, [r5] ldr r1, _0809B90C adds r4, r1 _0809B896: strb r0, [r4] ldr r0, _0809B904 ldr r0, [r0] ldr r1, _0809B900 ldrb r1, [r1] ldr r2, _0809B910 adds r0, r2 strb r1, [r0] _0809B8A6: ldr r0, _0809B904 ldr r6, [r0] ldr r0, _0809B914 adds r4, r6, r0 movs r0, 0 strb r0, [r4] ldr r1, _0809B918 adds r5, r6, r1 strb r0, [r5] ldr r0, _0809B91C adds r2, r6, r0 movs r0, 0x39 strh r0, [r2] ldr r0, _0809B920 adds r1, r6, r0 ldr r0, _0809B924 strh r0, [r1] ldr r0, _0809B928 adds r1, r6, r0 ldr r0, _0809B92C strh r0, [r1] ldr r1, _0809B908 adds r0, r6, r1 movs r1, 0x50 bl PokemonGetField lsls r0, 16 lsrs r1, r0, 16 movs r2, 0x1 ands r1, r2 strb r1, [r4] lsrs r0, 17 movs r1, 0x1 ands r0, r1 strb r0, [r5] ldrh r0, [r4] cmp r0, 0 beq _0809B934 ldr r2, _0809B930 adds r1, r6, r2 movs r0, 0 strb r0, [r1] b _0809B940 .align 2, 0 _0809B8FC: .4byte 0x020300a0 _0809B900: .4byte 0x020384e5 _0809B904: .4byte gUnknown_083B6DB4 _0809B908: .4byte 0x00002618 _0809B90C: .4byte 0x00002682 _0809B910: .4byte 0x00002683 _0809B914: .4byte 0x0000267e _0809B918: .4byte 0x0000267f _0809B91C: .4byte 0x00002686 _0809B920: .4byte 0x00002688 _0809B924: .4byte 0x00000123 _0809B928: .4byte 0x0000268a _0809B92C: .4byte 0x00000163 _0809B930: .4byte 0x0000267d _0809B934: ldr r2, _0809B954 adds r0, r6, r2 strb r1, [r0] subs r2, 0x1 adds r0, r6, r2 strb r1, [r0] _0809B940: ldr r0, _0809B958 ldr r0, [r0] ldr r1, _0809B95C adds r0, r1 movs r1, 0 strh r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809B954: .4byte 0x0000267d _0809B958: .4byte gUnknown_083B6DB4 _0809B95C: .4byte 0x00002684 thumb_func_end sub_809B7D4 thumb_func_start sub_809B960 sub_809B960: @ 809B960 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _0809B988 ldr r2, [r0] ldr r3, _0809B98C adds r1, r2, r3 ldrb r1, [r1] mov r12, r0 cmp r1, 0 beq _0809B994 ldr r7, _0809B990 adds r0, r2, r7 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 b _0809BB5C .align 2, 0 _0809B988: .4byte gUnknown_083B6DB4 _0809B98C: .4byte 0x0000267d _0809B990: .4byte 0x0000267c _0809B994: ldr r1, _0809B9A4 adds r0, r2, r1 ldrh r0, [r0] cmp r0, 0 beq _0809B9A8 cmp r0, 0x1 beq _0809BA84 b _0809BB58 .align 2, 0 _0809B9A4: .4byte 0x00002684 _0809B9A8: movs r5, 0 movs r6, 0 _0809B9AC: mov r2, r12 ldr r4, [r2] ldr r3, _0809BA28 adds r0, r4, r3 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0xE bne _0809B9CC ldr r7, _0809BA2C adds r0, r4, r7 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, r5 beq _0809BA02 _0809B9CC: movs r0, 0x64 muls r0, r5 ldr r1, _0809BA30 adds r0, r1 ldr r1, _0809BA34 adds r2, r4, r1 movs r1, 0x50 bl PokemonGetField lsls r0, 16 lsrs r3, r0, 16 movs r0, 0x1 ands r0, r3 cmp r0, 0 beq _0809B9F0 ldr r2, _0809BA38 adds r0, r4, r2 strb r6, [r0] _0809B9F0: movs r0, 0x2 ands r3, r0 ldr r7, _0809BA3C mov r12, r7 cmp r3, 0 beq _0809BA02 ldr r1, _0809BA40 adds r0, r4, r1 strb r6, [r0] _0809BA02: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x5 bls _0809B9AC mov r3, r12 ldr r2, [r3] ldr r7, _0809BA38 adds r0, r2, r7 ldrh r0, [r0] cmp r0, 0 bne _0809BA4C ldr r1, _0809BA44 adds r0, r2, r1 movs r1, 0x1 strb r1, [r0] ldr r3, _0809BA48 b _0809BB54 .align 2, 0 _0809BA28: .4byte 0x00002682 _0809BA2C: .4byte 0x00002683 _0809BA30: .4byte 0x03004360 _0809BA34: .4byte 0x00002686 _0809BA38: .4byte 0x0000267e _0809BA3C: .4byte gUnknown_083B6DB4 _0809BA40: .4byte 0x0000267f _0809BA44: .4byte 0x0000267d _0809BA48: .4byte 0x0000267c _0809BA4C: movs r7, 0x9A lsls r7, 6 adds r0, r2, r7 movs r1, 0 strb r1, [r0] ldr r3, _0809BA68 adds r0, r2, r3 strb r1, [r0] adds r7, 0x4 adds r1, r2, r7 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _0809BB58 .align 2, 0 _0809BA68: .4byte 0x00002681 _0809BA6C: ldr r1, _0809BA7C adds r0, r2, r1 movs r1, 0x1 strb r1, [r0] ldr r7, _0809BA80 adds r0, r2, r7 strb r3, [r0] b _0809BB3C .align 2, 0 _0809BA7C: .4byte 0x0000267d _0809BA80: .4byte 0x0000267c _0809BA84: movs r5, 0 mov r9, r12 adds r4, r2, 0 movs r0, 0x9A lsls r0, 6 adds r6, r4, r0 ldr r1, _0809BB6C adds r1, r4 mov r8, r1 ldr r2, _0809BB70 mov r10, r2 _0809BA9A: movs r0, 0 ldrsb r0, [r6, r0] lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 ldr r3, _0809BB74 adds r1, r4, r3 movs r2, 0 ldrsb r2, [r1, r2] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 ldr r2, _0809BB78 adds r1, r2 adds r0, r1 movs r1, 0x50 ldr r7, _0809BB7C adds r2, r4, r7 bl PokemonGetEncryptedField lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _0809BB00 ldr r1, _0809BB80 adds r0, r4, r1 ldrh r0, [r0] ldrh r2, [r6] mov r1, r10 ands r1, r0 mov r0, r10 ands r0, r2 cmp r1, r0 beq _0809BB00 movs r0, 0x1 ands r0, r3 cmp r0, 0 beq _0809BAF2 ldr r2, _0809BB84 adds r1, r4, r2 movs r0, 0 strb r0, [r1] _0809BAF2: movs r0, 0x2 ands r3, r0 cmp r3, 0 beq _0809BB00 movs r0, 0 mov r3, r8 strb r0, [r3] _0809BB00: mov r7, r9 ldr r2, [r7] ldr r0, _0809BB74 adds r1, r2, r0 ldrb r0, [r1] adds r0, 0x1 movs r3, 0 strb r0, [r1] lsls r0, 24 asrs r0, 24 ldr r7, _0809BB88 mov r12, r7 cmp r0, 0x1D ble _0809BB32 strb r3, [r1] movs r0, 0x9A lsls r0, 6 adds r1, r2, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 asrs r0, 24 cmp r0, 0xD bgt _0809BA6C _0809BB32: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x4 bls _0809BA9A _0809BB3C: mov r1, r12 ldr r2, [r1] ldr r3, _0809BB84 adds r0, r2, r3 ldrh r0, [r0] cmp r0, 0 bne _0809BB58 ldr r7, _0809BB8C adds r0, r2, r7 movs r1, 0x1 strb r1, [r0] subs r3, 0x2 _0809BB54: adds r0, r2, r3 strb r1, [r0] _0809BB58: movs r0, 0x1 negs r0, r0 _0809BB5C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0809BB6C: .4byte 0x0000267f _0809BB70: .4byte 0x0000ffff _0809BB74: .4byte 0x00002681 _0809BB78: .4byte 0x020300a4 _0809BB7C: .4byte 0x00002686 _0809BB80: .4byte 0x00002682 _0809BB84: .4byte 0x0000267e _0809BB88: .4byte gUnknown_083B6DB4 _0809BB8C: .4byte 0x0000267d thumb_func_end sub_809B960 thumb_func_start sub_809BB90 sub_809BB90: @ 809BB90 push {lr} ldr r0, _0809BBB0 ldrb r0, [r0] cmp r0, 0 beq _0809BBAA ldr r0, _0809BBB4 ldr r1, _0809BBB8 ldr r1, [r1] ldr r2, _0809BBBC adds r1, r2 movs r2, 0x64 bl memcpy _0809BBAA: pop {r0} bx r0 .align 2, 0 _0809BBB0: .4byte 0x020384e6 _0809BBB4: .4byte 0x02038480 _0809BBB8: .4byte gUnknown_083B6DB4 _0809BBBC: .4byte 0x000025b4 thumb_func_end sub_809BB90 thumb_func_start sub_809BBC0 sub_809BBC0: @ 809BBC0 push {lr} ldr r0, _0809BBE4 ldrb r0, [r0] cmp r0, 0 beq _0809BC08 ldr r0, _0809BBE8 ldrb r0, [r0] cmp r0, 0xE bne _0809BBF8 ldr r0, _0809BBEC ldr r0, [r0] ldr r1, _0809BBF0 adds r0, r1 ldr r1, _0809BBF4 movs r2, 0x64 bl memcpy b _0809BC08 .align 2, 0 _0809BBE4: .4byte 0x020384e6 _0809BBE8: .4byte 0x020384e7 _0809BBEC: .4byte gUnknown_083B6DB4 _0809BBF0: .4byte 0x000025b4 _0809BBF4: .4byte 0x02038480 _0809BBF8: ldr r0, _0809BC0C ldr r0, [r0] ldr r1, _0809BC10 adds r0, r1 ldr r1, _0809BC14 movs r2, 0x50 bl memcpy _0809BC08: pop {r0} bx r0 .align 2, 0 _0809BC0C: .4byte gUnknown_083B6DB4 _0809BC10: .4byte 0x000025b4 _0809BC14: .4byte 0x02038480 thumb_func_end sub_809BBC0 thumb_func_start sub_809BC18 sub_809BC18: @ 809BC18 push {r4,r5,lr} ldr r0, _0809BC48 ldrb r5, [r0] cmp r5, 0 beq _0809BC64 bl sub_809BB90 ldr r0, _0809BC4C ldr r2, [r0] ldr r0, _0809BC50 adds r1, r2, r0 ldr r0, _0809BC54 str r0, [r1] ldr r1, _0809BC58 adds r0, r2, r1 movs r1, 0 strb r1, [r0] ldr r3, _0809BC5C adds r0, r2, r3 strb r1, [r0] ldr r0, _0809BC60 adds r2, r0 strb r1, [r2] b _0809BCF2 .align 2, 0 _0809BC48: .4byte 0x020384e6 _0809BC4C: .4byte gUnknown_083B6DB4 _0809BC50: .4byte 0x00002690 _0809BC54: .4byte 0x02038480 _0809BC58: .4byte 0x0000268d _0809BC5C: .4byte 0x0000268c _0809BC60: .4byte 0x0000268e _0809BC64: ldr r0, _0809BC9C ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x1 bne _0809BCBC ldr r0, _0809BCA0 ldr r4, [r0] ldr r2, _0809BCA4 adds r1, r4, r2 ldr r0, _0809BCA8 str r0, [r1] ldr r0, _0809BCAC ldrb r1, [r0] ldr r3, _0809BCB0 adds r0, r4, r3 strb r1, [r0] bl sub_8095C28 subs r0, 0x1 ldr r2, _0809BCB4 adds r1, r4, r2 strb r0, [r1] ldr r3, _0809BCB8 adds r4, r3 strb r5, [r4] b _0809BCF2 .align 2, 0 _0809BC9C: .4byte 0x020384e4 _0809BCA0: .4byte gUnknown_083B6DB4 _0809BCA4: .4byte 0x00002690 _0809BCA8: .4byte 0x03004360 _0809BCAC: .4byte 0x020384e5 _0809BCB0: .4byte 0x0000268d _0809BCB4: .4byte 0x0000268c _0809BCB8: .4byte 0x0000268e _0809BCBC: ldr r0, _0809BCF8 ldr r3, [r0] ldr r0, _0809BCFC adds r4, r3, r0 ldr r2, _0809BD00 ldrb r0, [r2] lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 adds r2, 0x4 adds r0, r2 str r0, [r4] ldr r0, _0809BD04 ldrb r1, [r0] ldr r2, _0809BD08 adds r0, r3, r2 strb r1, [r0] ldr r0, _0809BD0C adds r1, r3, r0 movs r0, 0x1D strb r0, [r1] ldr r1, _0809BD10 adds r3, r1 movs r0, 0x5 strb r0, [r3] _0809BCF2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809BCF8: .4byte gUnknown_083B6DB4 _0809BCFC: .4byte 0x00002690 _0809BD00: .4byte 0x020300a0 _0809BD04: .4byte 0x020384e5 _0809BD08: .4byte 0x0000268d _0809BD0C: .4byte 0x0000268c _0809BD10: .4byte 0x0000268e thumb_func_end sub_809BC18 thumb_func_start sub_809BD14 sub_809BD14: @ 809BD14 push {lr} ldr r0, _0809BD24 ldrb r0, [r0] cmp r0, 0 beq _0809BD28 bl sub_809BBC0 b _0809BD30 .align 2, 0 _0809BD24: .4byte 0x020384e6 _0809BD28: ldr r0, _0809BD34 ldr r1, _0809BD38 ldrb r1, [r1, 0x9] strb r1, [r0] _0809BD30: pop {r0} bx r0 .align 2, 0 _0809BD34: .4byte 0x020384e5 _0809BD38: .4byte 0x02018000 thumb_func_end sub_809BD14 thumb_func_start party_compaction party_compaction: @ 809BD3C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r7, _0809BD88 movs r6, 0 movs r5, 0 movs r0, 0x64 mov r9, r0 ldr r1, _0809BD8C mov r8, r1 subs r0, 0x65 mov r10, r0 _0809BD58: mov r0, r9 muls r0, r6 mov r1, r8 adds r4, r0, r1 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField lsls r0, 16 cmp r0, 0 beq _0809BD90 cmp r6, r5 beq _0809BD80 mov r0, r9 muls r0, r5 add r0, r8 adds r1, r4, 0 movs r2, 0x64 bl memcpy _0809BD80: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 b _0809BD9A .align 2, 0 _0809BD88: .4byte 0x0000ffff _0809BD8C: .4byte 0x03004360 _0809BD90: lsls r0, r7, 16 asrs r0, 16 cmp r0, r10 bne _0809BD9A adds r7, r6, 0 _0809BD9A: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x5 bls _0809BD58 lsls r7, 16 cmp r5, 0x5 bhi _0809BDC2 movs r6, 0x64 ldr r4, _0809BDD4 _0809BDAE: adds r0, r5, 0 muls r0, r6 adds r0, r4 bl zero_pokemon_struct adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x5 bls _0809BDAE _0809BDC2: asrs r0, r7, 16 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0809BDD4: .4byte 0x03004360 thumb_func_end party_compaction thumb_func_start sub_809BDD8 sub_809BDD8: @ 809BDD8 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r1, sp strb r0, [r1] ldr r1, _0809BE04 ldr r2, [r1] ldr r3, _0809BE08 adds r1, r2, r3 strb r0, [r1] ldr r0, _0809BE0C ldrb r0, [r0] cmp r0, 0 beq _0809BE14 ldr r1, _0809BE10 adds r0, r2, r1 movs r1, 0x8 mov r2, sp bl pokemon_setattr b _0809BE68 .align 2, 0 _0809BE04: .4byte gUnknown_083B6DB4 _0809BE08: .4byte 0x000011f7 _0809BE0C: .4byte 0x020384e6 _0809BE10: .4byte 0x000025b4 _0809BE14: ldr r4, _0809BE70 movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0x1 bne _0809BE34 ldr r0, _0809BE74 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, _0809BE78 adds r0, r1 movs r1, 0x8 mov r2, sp bl pokemon_setattr _0809BE34: movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0 bne _0809BE68 bl get_preferred_box lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 ldr r1, _0809BE74 movs r2, 0 ldrsb r2, [r1, r2] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 ldr r2, _0809BE7C adds r1, r2 adds r0, r1 movs r1, 0x8 mov r2, sp bl PokemonSetEncryptedField _0809BE68: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0809BE70: .4byte 0x020384e4 _0809BE74: .4byte 0x020384e5 _0809BE78: .4byte 0x03004360 _0809BE7C: .4byte 0x020300a4 thumb_func_end sub_809BDD8 thumb_func_start sub_809BE80 sub_809BE80: @ 809BE80 push {lr} ldr r0, _0809BEA8 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x1 bne _0809BEB4 ldr r0, _0809BEAC ldrb r0, [r0] cmp r0, 0 bne _0809BEB4 ldr r0, _0809BEB0 ldrb r0, [r0] bl sub_8095BB4 lsls r0, 24 cmp r0, 0 bne _0809BEB4 movs r0, 0x1 b _0809BEB6 .align 2, 0 _0809BEA8: .4byte 0x020384e4 _0809BEAC: .4byte 0x020384e6 _0809BEB0: .4byte 0x020384e5 _0809BEB4: movs r0, 0 _0809BEB6: pop {r1} bx r1 thumb_func_end sub_809BE80 thumb_func_start sub_809BEBC sub_809BEBC: @ 809BEBC push {lr} ldr r0, _0809BF00 ldrb r0, [r0] cmp r0, 0 beq _0809BF18 ldr r0, _0809BF04 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x1 bne _0809BEFC ldr r0, _0809BF08 ldrb r0, [r0] bl sub_8095BB4 lsls r0, 24 cmp r0, 0 bne _0809BEFC ldr r0, _0809BF0C ldr r1, [r0] ldr r2, _0809BF10 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _0809BF18 ldr r2, _0809BF14 adds r0, r1, r2 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _0809BF18 _0809BEFC: movs r0, 0x1 b _0809BF1A .align 2, 0 _0809BF00: .4byte 0x020384e6 _0809BF04: .4byte 0x020384e4 _0809BF08: .4byte 0x020384e5 _0809BF0C: .4byte gUnknown_083B6DB4 _0809BF10: .4byte 0x000011f9 _0809BF14: .4byte 0x000025b4 _0809BF18: movs r0, 0 _0809BF1A: pop {r1} bx r1 thumb_func_end sub_809BEBC thumb_func_start sub_809BF20 sub_809BF20: @ 809BF20 ldr r0, _0809BF28 ldrb r0, [r0] bx lr .align 2, 0 _0809BF28: .4byte 0x020384e6 thumb_func_end sub_809BF20 thumb_func_start sub_809BF2C sub_809BF2C: @ 809BF2C push {lr} movs r1, 0 ldr r0, _0809BF44 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x2 bne _0809BF3E movs r1, 0x1 _0809BF3E: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _0809BF44: .4byte 0x020384e4 thumb_func_end sub_809BF2C thumb_func_start sub_809BF48 sub_809BF48: @ 809BF48 push {lr} movs r1, 0 ldr r0, _0809BF6C ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x3 bne _0809BF66 ldr r0, _0809BF70 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x1 bne _0809BF66 movs r1, 0x1 _0809BF66: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _0809BF6C: .4byte 0x020384e4 _0809BF70: .4byte 0x020384e5 thumb_func_end sub_809BF48 thumb_func_start sub_809BF74 sub_809BF74: @ 809BF74 push {r4,lr} ldr r0, _0809BFA8 ldr r1, [r0] movs r2, 0 ldr r3, _0809BFAC ldrb r0, [r3] cmp r0, 0 bne _0809BF86 movs r2, 0x1 _0809BF86: ldr r4, _0809BFB0 adds r0, r1, r4 strb r2, [r0] ldrb r0, [r3] cmp r0, 0 bne _0809C018 ldr r0, _0809BFB4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x1 beq _0809BFBE cmp r0, 0x1 bgt _0809BFB8 cmp r0, 0 beq _0809BFEE b _0809C018 .align 2, 0 _0809BFA8: .4byte gUnknown_083B6DB4 _0809BFAC: .4byte 0x020384e6 _0809BFB0: .4byte 0x000011f6 _0809BFB4: .4byte 0x020384e4 _0809BFB8: cmp r0, 0x3 bgt _0809C018 b _0809BFE4 _0809BFBE: ldr r1, _0809BFDC movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0x5 bgt _0809BFE4 adds r1, r0, 0 movs r0, 0x64 muls r0, r1 ldr r1, _0809BFE0 adds r0, r1 movs r1, 0 bl sub_809C04C b _0809C018 .align 2, 0 _0809BFDC: .4byte 0x020384e5 _0809BFE0: .4byte 0x03004360 _0809BFE4: movs r0, 0 movs r1, 0x2 bl sub_809C04C b _0809C018 _0809BFEE: bl get_preferred_box lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 ldr r1, _0809C020 movs r2, 0 ldrsb r2, [r1, r2] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 ldr r2, _0809C024 adds r1, r2 adds r0, r1 movs r1, 0x1 bl sub_809C04C _0809C018: pop {r4} pop {r0} bx r0 .align 2, 0 _0809C020: .4byte 0x020384e5 _0809C024: .4byte 0x020300a4 thumb_func_end sub_809BF74 thumb_func_start sub_809C028 sub_809C028: @ 809C028 push {lr} ldr r0, _0809C03C ldrb r0, [r0] cmp r0, 0 beq _0809C044 ldr r0, _0809C040 movs r1, 0 bl sub_809C04C b _0809C048 .align 2, 0 _0809C03C: .4byte 0x020384e6 _0809C040: .4byte 0x02038480 _0809C044: bl sub_809BF74 _0809C048: pop {r0} bx r0 thumb_func_end sub_809C028 thumb_func_start sub_809C04C sub_809C04C: @ 809C04C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r7, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0 str r0, [sp] ldr r0, _0809C0FC ldr r6, [r0] ldr r2, _0809C100 adds r2, r6 mov r8, r2 mov r0, sp ldrh r0, [r0] strh r0, [r2] cmp r1, 0 bne _0809C120 adds r0, r7, 0 movs r1, 0x41 bl PokemonGetField ldr r2, _0809C104 adds r1, r6, r2 strh r0, [r1] lsls r0, 16 cmp r0, 0 bne _0809C08C b _0809C1EC _0809C08C: adds r0, r7, 0 movs r1, 0x2D bl PokemonGetField ldr r2, _0809C108 adds r1, r6, r2 strb r0, [r1] ldr r0, _0809C10C adds r4, r6, r0 adds r0, r7, 0 movs r1, 0x2 adds r2, r4, 0 bl PokemonGetField adds r0, r4, 0 bl StringGetEnd10 adds r0, r7, 0 movs r1, 0x38 bl PokemonGetField ldr r2, _0809C110 adds r1, r6, r2 strb r0, [r1] adds r0, r7, 0 movs r1, 0x8 bl PokemonGetField ldr r2, _0809C114 adds r1, r6, r2 strb r0, [r1] adds r0, r7, 0 movs r1, 0 bl PokemonGetField ldr r2, _0809C118 adds r1, r6, r2 str r0, [r1] adds r0, r7, 0 bl pokemon_get_pal ldr r2, _0809C11C adds r1, r6, r2 str r0, [r1] adds r0, r7, 0 bl pokemon_get_gender lsls r0, 24 lsrs r0, 24 str r0, [sp] adds r0, r7, 0 movs r1, 0xC bl PokemonGetField b _0809C1B2 .align 2, 0 _0809C0FC: .4byte gUnknown_083B6DB4 _0809C100: .4byte 0x000011f2 _0809C104: .4byte 0x000011f0 _0809C108: .4byte 0x000011f9 _0809C10C: .4byte 0x000011fa _0809C110: .4byte 0x000011f8 _0809C114: .4byte 0x000011f7 _0809C118: .4byte 0x000011ec _0809C11C: .4byte 0x000011e8 _0809C120: cmp r1, 0x1 bne _0809C1D4 adds r0, r7, 0 movs r1, 0x41 bl PokemonGetEncryptedField ldr r2, _0809C1B8 adds r5, r6, r2 strh r0, [r5] lsls r0, 16 cmp r0, 0 beq _0809C1EC adds r0, r7, 0 movs r1, 0x1 bl PokemonGetEncryptedField mov r9, r0 adds r0, r7, 0 movs r1, 0x2D bl PokemonGetEncryptedField ldr r2, _0809C1BC adds r1, r6, r2 strb r0, [r1] ldr r0, _0809C1C0 adds r4, r6, r0 adds r0, r7, 0 movs r1, 0x2 adds r2, r4, 0 bl PokemonGetEncryptedField adds r0, r4, 0 bl StringGetEnd10 adds r0, r7, 0 bl sub_803B570 ldr r2, _0809C1C4 adds r1, r6, r2 strb r0, [r1] adds r0, r7, 0 movs r1, 0x8 bl PokemonGetEncryptedField ldr r2, _0809C1C8 adds r1, r6, r2 strb r0, [r1] adds r0, r7, 0 movs r1, 0 bl PokemonGetEncryptedField adds r2, r0, 0 ldr r0, _0809C1CC adds r4, r6, r0 str r2, [r4] ldrh r0, [r5] mov r1, r9 bl species_and_otid_get_pal ldr r2, _0809C1D0 adds r1, r6, r2 str r0, [r1] ldrh r0, [r5] ldr r1, [r4] bl pokemon_species_get_gender_info lsls r0, 24 lsrs r0, 24 str r0, [sp] adds r0, r7, 0 movs r1, 0xC bl PokemonGetEncryptedField _0809C1B2: mov r1, r8 strh r0, [r1] b _0809C1DE .align 2, 0 _0809C1B8: .4byte 0x000011f0 _0809C1BC: .4byte 0x000011f9 _0809C1C0: .4byte 0x000011fa _0809C1C4: .4byte 0x000011f8 _0809C1C8: .4byte 0x000011f7 _0809C1CC: .4byte 0x000011ec _0809C1D0: .4byte 0x000011e8 _0809C1D4: ldr r2, _0809C220 adds r0, r6, r2 mov r1, sp ldrh r1, [r1] strh r1, [r0] _0809C1DE: ldr r0, _0809C224 ldr r4, [r0] ldr r2, _0809C220 adds r0, r4, r2 ldrh r1, [r0] cmp r1, 0 bne _0809C23C _0809C1EC: ldr r0, _0809C224 ldr r1, [r0] ldr r0, _0809C228 adds r2, r1, r0 movs r0, 0xFF strb r0, [r2] ldr r0, _0809C22C adds r2, r1, r0 movs r0, 0x1 negs r0, r0 strb r0, [r2] ldr r0, _0809C230 adds r2, r1, r0 movs r0, 0x1 negs r0, r0 strb r0, [r2] ldr r0, _0809C234 adds r2, r1, r0 movs r0, 0x1 negs r0, r0 strb r0, [r2] ldr r2, _0809C238 adds r1, r2 strb r0, [r1] b _0809C43E .align 2, 0 _0809C220: .4byte 0x000011f0 _0809C224: .4byte gUnknown_083B6DB4 _0809C228: .4byte 0x000011fa _0809C22C: .4byte 0x0000120f _0809C230: .4byte 0x00001234 _0809C234: .4byte 0x00001259 _0809C238: .4byte 0x0000127a _0809C23C: ldr r2, _0809C28C adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 beq _0809C2A4 ldr r0, _0809C290 adds r7, r4, r0 movs r0, 0xFC strb r0, [r7] movs r0, 0x4 strb r0, [r7, 0x1] movs r0, 0xF strb r0, [r7, 0x2] movs r0, 0 strb r0, [r7, 0x3] movs r0, 0x1 strb r0, [r7, 0x4] ldr r1, _0809C294 adds r7, r4, r1 adds r2, 0x1 adds r1, r4, r2 adds r0, r7, 0 bl StringCopy ldr r0, _0809C298 adds r1, r4, r0 movs r0, 0xFF strb r0, [r1] ldr r2, _0809C29C adds r1, r4, r2 movs r0, 0x1 negs r0, r0 strb r0, [r1] ldr r0, _0809C2A0 adds r1, r4, r0 movs r0, 0x1 negs r0, r0 strb r0, [r1] b _0809C43E .align 2, 0 _0809C28C: .4byte 0x000011f9 _0809C290: .4byte 0x0000120f _0809C294: .4byte 0x00001214 _0809C298: .4byte 0x00001234 _0809C29C: .4byte 0x00001259 _0809C2A0: .4byte 0x0000127a _0809C2A4: cmp r1, 0x20 beq _0809C2AC cmp r1, 0x1D bne _0809C2B0 _0809C2AC: movs r1, 0xFF str r1, [sp] _0809C2B0: ldr r0, _0809C388 ldr r4, [r0] ldr r2, _0809C38C adds r7, r4, r2 movs r0, 0xFC mov r9, r0 strb r0, [r7] movs r1, 0x4 mov r8, r1 strb r1, [r7, 0x1] movs r2, 0xF strb r2, [r7, 0x2] movs r0, 0 strb r0, [r7, 0x3] movs r6, 0x1 strb r6, [r7, 0x4] ldr r1, _0809C390 adds r7, r4, r1 ldr r2, _0809C394 adds r1, r4, r2 adds r0, r7, 0 bl StringCopy ldr r0, _0809C398 adds r7, r4, r0 mov r1, r9 strb r1, [r7] mov r2, r8 strb r2, [r7, 0x1] movs r0, 0xF strb r0, [r7, 0x2] movs r1, 0 strb r1, [r7, 0x3] strb r6, [r7, 0x4] mov r2, r9 strb r2, [r7, 0x5] movs r0, 0x13 mov r10, r0 strb r0, [r7, 0x6] movs r1, 0x7 strb r1, [r7, 0x7] movs r0, 0xBA strb r0, [r7, 0x8] ldr r2, _0809C39C adds r7, r4, r2 ldr r1, _0809C3A0 adds r0, r4, r1 ldrh r1, [r0] movs r0, 0xB muls r1, r0 ldr r0, _0809C3A4 adds r1, r0 adds r0, r7, 0 bl StringCopy adds r7, r0, 0 mov r2, r9 strb r2, [r7] mov r0, r10 strb r0, [r7, 0x1] movs r0, 0x50 strb r0, [r7, 0x2] movs r0, 0xFF strb r0, [r7, 0x3] ldr r1, _0809C3A8 adds r7, r4, r1 strb r2, [r7] mov r2, r8 strb r2, [r7, 0x1] movs r0, 0xF strb r0, [r7, 0x2] movs r1, 0 strb r1, [r7, 0x3] strb r6, [r7, 0x4] mov r2, r9 strb r2, [r7, 0x5] mov r0, r10 strb r0, [r7, 0x6] movs r6, 0x8 strb r6, [r7, 0x7] ldr r1, _0809C3AC adds r7, r4, r1 movs r0, 0x34 strb r0, [r7] ldr r2, _0809C3B0 adds r7, r4, r2 ldr r0, _0809C3B4 adds r4, r0 ldrb r1, [r4] adds r0, r7, 0 movs r2, 0x22 movs r3, 0x1 bl sub_8072C14 adds r7, r0, 0 mov r1, r9 strb r1, [r7] movs r0, 0x11 strb r0, [r7, 0x1] strb r6, [r7, 0x2] adds r7, 0x3 ldr r2, [sp] cmp r2, 0 beq _0809C3B8 cmp r2, 0xFE beq _0809C3D0 b _0809C3EA .align 2, 0 _0809C388: .4byte gUnknown_083B6DB4 _0809C38C: .4byte 0x0000120f _0809C390: .4byte 0x00001214 _0809C394: .4byte 0x000011fa _0809C398: .4byte 0x00001234 _0809C39C: .4byte 0x0000123d _0809C3A0: .4byte 0x000011f0 _0809C3A4: .4byte gSpeciesNames _0809C3A8: .4byte 0x00001259 _0809C3AC: .4byte 0x00001261 _0809C3B0: .4byte 0x00001262 _0809C3B4: .4byte 0x000011f8 _0809C3B8: mov r0, r9 strb r0, [r7] mov r1, r8 strb r1, [r7, 0x1] strb r1, [r7, 0x2] mov r2, sp ldrb r2, [r2] strb r2, [r7, 0x3] movs r0, 0x5 strb r0, [r7, 0x4] movs r0, 0xB5 b _0809C3E6 _0809C3D0: mov r0, r9 strb r0, [r7] mov r1, r8 strb r1, [r7, 0x1] movs r0, 0x6 strb r0, [r7, 0x2] movs r2, 0 strb r2, [r7, 0x3] movs r0, 0x7 strb r0, [r7, 0x4] movs r0, 0xB6 _0809C3E6: strb r0, [r7, 0x5] adds r7, 0x6 _0809C3EA: movs r5, 0xFF strb r5, [r7] ldr r0, _0809C450 ldr r2, [r0] ldr r1, _0809C454 adds r7, r2, r1 ldr r0, _0809C458 adds r3, r2, r0 ldrh r0, [r3] cmp r0, 0 beq _0809C43C movs r4, 0xFC strb r4, [r7] movs r1, 0x4 strb r1, [r7, 0x1] movs r0, 0xF strb r0, [r7, 0x2] movs r0, 0 strb r0, [r7, 0x3] movs r0, 0x1 strb r0, [r7, 0x4] ldr r0, _0809C45C adds r7, r2, r0 strb r4, [r7] movs r0, 0x6 strb r0, [r7, 0x1] strb r1, [r7, 0x2] ldr r1, _0809C460 adds r7, r2, r1 ldrh r0, [r3] bl itemid_get_item adds r1, r0, 0 adds r0, r7, 0 bl StringCopy adds r7, r0, 0 strb r4, [r7] movs r0, 0x7 strb r0, [r7, 0x1] adds r7, 0x2 _0809C43C: strb r5, [r7] _0809C43E: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809C450: .4byte gUnknown_083B6DB4 _0809C454: .4byte 0x0000127a _0809C458: .4byte 0x000011f2 _0809C45C: .4byte 0x0000127f _0809C460: .4byte 0x00001282 thumb_func_end sub_809C04C thumb_func_start sub_809C464 sub_809C464: @ 809C464 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _0809C4D8 ldrb r0, [r0] mov r8, r0 ldr r2, _0809C4DC ldrb r4, [r2] ldr r0, _0809C4E0 ldr r1, [r0] ldr r0, _0809C4E4 adds r7, r1, r0 movs r0, 0 strb r0, [r7] ldr r3, _0809C4E8 adds r5, r1, r3 strb r0, [r5] adds r3, 0x4 adds r6, r1, r3 strb r0, [r6] ldr r0, _0809C4EC mov r12, r0 ldrh r1, [r0, 0x30] movs r0, 0x40 ands r0, r1 adds r3, r2, 0 cmp r0, 0 beq _0809C4A0 b _0809C62A _0809C4A0: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0809C4F0 movs r1, 0x1 mov r9, r1 lsls r0, r4, 24 movs r3, 0xC0 lsls r3, 19 adds r0, r3 lsrs r4, r0, 24 asrs r0, 24 cmp r0, 0x1D bgt _0809C4BE b _0809C648 _0809C4BE: movs r1, 0x3 mov r8, r1 subs r0, 0x1E lsls r0, 24 asrs r0, 24 bl __divsi3 lsls r0, 24 lsrs r4, r0, 24 mov r3, r9 strb r3, [r7] strb r3, [r6] b _0809C648 .align 2, 0 _0809C4D8: .4byte 0x020384e4 _0809C4DC: .4byte 0x020384e5 _0809C4E0: .4byte gUnknown_083B6DB4 _0809C4E4: .4byte 0x000011de _0809C4E8: .4byte 0x000011df _0809C4EC: .4byte 0x03001770 _0809C4F0: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0809C524 movs r0, 0x1 mov r9, r0 movs r0, 0 ldrsb r0, [r3, r0] movs r1, 0x6 bl __modsi3 lsls r0, 24 cmp r0, 0 beq _0809C514 lsls r0, r4, 24 movs r1, 0xFF lsls r1, 24 b _0809C63C _0809C514: movs r0, 0xFF strb r0, [r5] lsls r0, r4, 24 movs r3, 0xA0 lsls r3, 19 adds r0, r3 lsrs r4, r0, 24 b _0809C648 _0809C524: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0809C554 movs r0, 0x1 mov r9, r0 movs r0, 0 ldrsb r0, [r3, r0] adds r0, 0x1 movs r1, 0x6 bl __modsi3 cmp r0, 0 beq _0809C548 lsls r0, r4, 24 movs r1, 0x80 lsls r1, 17 b _0809C63C _0809C548: mov r3, r9 strb r3, [r5] lsls r0, r4, 24 movs r1, 0xFB lsls r1, 24 b _0809C63C _0809C554: mov r3, r12 ldrh r1, [r3, 0x2E] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0809C56A movs r0, 0x1 mov r9, r0 movs r1, 0x2 mov r8, r1 b _0809C646 _0809C56A: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809C5D4 bl sub_809CAB0 lsls r0, 24 cmp r0, 0 beq _0809C5D4 ldr r0, _0809C588 ldrb r0, [r0] cmp r0, 0 bne _0809C58C movs r0, 0x8 b _0809C658 .align 2, 0 _0809C588: .4byte 0x020384e9 _0809C58C: movs r0, 0 bl sub_809CE4C subs r0, 0x1 lsls r0, 24 asrs r0, 24 cmp r0, 0x4 bhi _0809C5D4 lsls r0, 2 ldr r1, _0809C5A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809C5A8: .4byte _0809C5AC .align 2, 0 _0809C5AC: .4byte _0809C5C0 .4byte _0809C5C4 .4byte _0809C5C8 .4byte _0809C5CC .4byte _0809C5D0 _0809C5C0: movs r0, 0xB b _0809C658 _0809C5C4: movs r0, 0xC b _0809C658 _0809C5C8: movs r0, 0xD b _0809C658 _0809C5CC: movs r0, 0xE b _0809C658 _0809C5D0: movs r0, 0xF b _0809C658 _0809C5D4: ldr r2, _0809C5E4 ldrh r1, [r2, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809C5E8 movs r0, 0x10 b _0809C658 .align 2, 0 _0809C5E4: .4byte 0x03001770 _0809C5E8: ldr r0, _0809C600 ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _0809C612 ldrh r1, [r2, 0x2C] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _0809C604 movs r0, 0xA b _0809C658 .align 2, 0 _0809C600: .4byte gSaveBlock2 _0809C604: movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _0809C612 movs r0, 0x9 b _0809C658 _0809C612: ldrh r1, [r2, 0x2E] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0809C624 bl sub_809CD88 movs r0, 0 b _0809C658 _0809C624: movs r3, 0 mov r9, r3 b _0809C656 _0809C62A: movs r0, 0x1 mov r9, r0 movs r0, 0 ldrsb r0, [r2, r0] cmp r0, 0x5 ble _0809C642 lsls r0, r4, 24 movs r1, 0xFA lsls r1, 24 _0809C63C: adds r0, r1 lsrs r4, r0, 24 b _0809C648 _0809C642: movs r3, 0x2 mov r8, r3 _0809C646: movs r4, 0 _0809C648: mov r0, r9 cmp r0, 0 beq _0809C656 mov r0, r8 adds r1, r4, 0 bl sub_809AF18 _0809C656: mov r0, r9 _0809C658: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_809C464 thumb_func_start sub_809C664 sub_809C664: @ 809C664 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _0809C6D8 ldrb r0, [r0] mov r10, r0 ldr r7, _0809C6DC ldrb r4, [r7] ldr r2, _0809C6E0 ldr r5, [r2] ldr r1, _0809C6E4 adds r0, r5, r1 movs r1, 0 strb r1, [r0] ldr r3, _0809C6E8 adds r0, r5, r3 strb r1, [r0] adds r3, 0x5 adds r0, r5, r3 strb r1, [r0] mov r9, r1 mov r8, r1 ldr r1, _0809C6EC ldrh r3, [r1, 0x30] movs r0, 0x40 ands r0, r3 adds r6, r7, 0 mov r12, r2 adds r2, r1, 0 cmp r0, 0 beq _0809C6A8 b _0809C81C _0809C6A8: movs r0, 0x80 ands r0, r3 cmp r0, 0 beq _0809C6F0 lsls r0, r4, 24 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r4, r0, 24 asrs r0, 24 cmp r0, 0x6 ble _0809C6C2 movs r4, 0 _0809C6C2: lsls r0, r4, 24 asrs r0, 24 movs r1, 0 ldrsb r1, [r6, r1] cmp r0, r1 bne _0809C6D0 b _0809C83C _0809C6D0: movs r2, 0x1 mov r8, r2 b _0809C842 .align 2, 0 _0809C6D8: .4byte 0x020384e4 _0809C6DC: .4byte 0x020384e5 _0809C6E0: .4byte gUnknown_083B6DB4 _0809C6E4: .4byte 0x000011df _0809C6E8: .4byte 0x000011de _0809C6EC: .4byte 0x03001770 _0809C6F0: movs r0, 0x20 ands r0, r3 cmp r0, 0 beq _0809C714 ldrb r1, [r6] movs r0, 0 ldrsb r0, [r6, r0] cmp r0, 0 beq _0809C714 movs r3, 0x1 mov r8, r3 ldr r2, _0809C710 adds r0, r5, r2 strb r1, [r0] movs r4, 0 b _0809C83C .align 2, 0 _0809C710: .4byte 0x000011e2 _0809C714: ldrh r1, [r2, 0x30] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0809C748 movs r0, 0 ldrsb r0, [r6, r0] cmp r0, 0 bne _0809C73C movs r3, 0x1 mov r8, r3 mov r1, r12 ldr r0, [r1] ldr r2, _0809C738 adds r0, r2 ldrb r4, [r0] b _0809C83C .align 2, 0 _0809C738: .4byte 0x000011e2 _0809C73C: movs r3, 0x6 mov r8, r3 movs r0, 0 mov r10, r0 movs r4, 0 b _0809C83C _0809C748: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809C7D0 movs r0, 0 ldrsb r0, [r6, r0] cmp r0, 0x6 bne _0809C76E mov r1, r12 ldr r0, [r1] ldrb r0, [r0, 0x5] cmp r0, 0x1 bne _0809C768 movs r0, 0x4 b _0809C84C _0809C768: movs r2, 0x1 mov r9, r2 b _0809C7D0 _0809C76E: bl sub_809CAB0 lsls r0, 24 cmp r0, 0 beq _0809C7D0 ldr r0, _0809C784 ldrb r0, [r0] cmp r0, 0 bne _0809C788 movs r0, 0x8 b _0809C84C .align 2, 0 _0809C784: .4byte 0x020384e9 _0809C788: movs r0, 0 bl sub_809CE4C subs r0, 0x1 lsls r0, 24 asrs r0, 24 cmp r0, 0x4 bhi _0809C7D0 lsls r0, 2 ldr r1, _0809C7A4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809C7A4: .4byte _0809C7A8 .align 2, 0 _0809C7A8: .4byte _0809C7BC .4byte _0809C7C0 .4byte _0809C7C4 .4byte _0809C7C8 .4byte _0809C7CC _0809C7BC: movs r0, 0xB b _0809C84C _0809C7C0: movs r0, 0xC b _0809C84C _0809C7C4: movs r0, 0xD b _0809C84C _0809C7C8: movs r0, 0xE b _0809C84C _0809C7CC: movs r0, 0xF b _0809C84C _0809C7D0: ldr r2, _0809C7EC ldrh r1, [r2, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809C7F8 ldr r0, _0809C7F0 ldr r0, [r0] ldrb r0, [r0, 0x5] cmp r0, 0x1 bne _0809C7F4 movs r0, 0x10 b _0809C84C .align 2, 0 _0809C7EC: .4byte 0x03001770 _0809C7F0: .4byte gUnknown_083B6DB4 _0809C7F4: movs r3, 0x1 mov r9, r3 _0809C7F8: mov r0, r9 cmp r0, 0 beq _0809C80A movs r1, 0x6 mov r8, r1 movs r2, 0 mov r10, r2 movs r4, 0 b _0809C83C _0809C80A: ldrh r1, [r2, 0x2E] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0809C83C bl sub_809CD88 movs r0, 0 b _0809C84C _0809C81C: lsls r0, r4, 24 movs r3, 0xFF lsls r3, 24 adds r0, r3 lsrs r4, r0, 24 cmp r0, 0 bge _0809C82C movs r4, 0x6 _0809C82C: lsls r0, r4, 24 asrs r0, 24 movs r1, 0 ldrsb r1, [r7, r1] cmp r0, r1 beq _0809C83C movs r0, 0x1 mov r8, r0 _0809C83C: mov r1, r8 cmp r1, 0 beq _0809C84A _0809C842: mov r0, r10 adds r1, r4, 0 bl sub_809AF18 _0809C84A: mov r0, r8 _0809C84C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_809C664 thumb_func_start sub_809C85C sub_809C85C: @ 809C85C push {r4-r6,lr} ldr r0, _0809C894 ldr r2, [r0] ldr r1, _0809C898 adds r0, r2, r1 movs r1, 0 strb r1, [r0] ldr r3, _0809C89C adds r0, r2, r3 strb r1, [r0] ldr r0, _0809C8A0 adds r2, r0 strb r1, [r2] ldr r1, _0809C8A4 ldrh r3, [r1, 0x30] movs r0, 0x40 ands r0, r3 cmp r0, 0 bne _0809C91A movs r0, 0x80 ands r0, r3 cmp r0, 0 beq _0809C8A8 movs r4, 0x1 movs r0, 0 movs r5, 0x2 b _0809C922 .align 2, 0 _0809C894: .4byte gUnknown_083B6DB4 _0809C898: .4byte 0x000011df _0809C89C: .4byte 0x000011de _0809C8A0: .4byte 0x000011e3 _0809C8A4: .4byte 0x03001770 _0809C8A8: ldrh r2, [r1, 0x2C] movs r0, 0x20 ands r0, r2 cmp r0, 0 bne _0809C8CC movs r0, 0x10 ands r0, r2 cmp r0, 0 bne _0809C8DE ldr r0, _0809C8D0 ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _0809C8E2 movs r0, 0x80 lsls r0, 2 ands r0, r2 cmp r0, 0 beq _0809C8D4 _0809C8CC: movs r0, 0xA b _0809C93E .align 2, 0 _0809C8D0: .4byte gSaveBlock2 _0809C8D4: movs r0, 0x80 lsls r0, 1 ands r0, r2 cmp r0, 0 beq _0809C8E2 _0809C8DE: movs r0, 0x9 b _0809C93E _0809C8E2: ldrh r1, [r1, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809C8FA movs r0, 0 bl sub_809A860 bl sub_809CA8C movs r0, 0x7 b _0809C93E _0809C8FA: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809C906 movs r0, 0x10 b _0809C93E _0809C906: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0809C916 bl sub_809CD88 movs r0, 0 b _0809C93E _0809C916: movs r4, 0 b _0809C93C _0809C91A: movs r4, 0x1 movs r0, 0x3 movs r5, 0 strb r4, [r2] _0809C922: cmp r4, 0 beq _0809C93C lsls r6, r0, 24 cmp r0, 0x2 beq _0809C932 movs r0, 0 bl sub_809A860 _0809C932: lsrs r0, r6, 24 lsls r1, r5, 24 lsrs r1, 24 bl sub_809AF18 _0809C93C: adds r0, r4, 0 _0809C93E: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_809C85C thumb_func_start sub_809C944 sub_809C944: @ 809C944 push {r4-r7,lr} ldr r0, _0809C988 ldrb r0, [r0] mov r12, r0 ldr r7, _0809C98C ldrb r3, [r7] ldr r0, _0809C990 ldr r1, [r0] ldr r0, _0809C994 adds r5, r1, r0 movs r0, 0 strb r0, [r5] ldr r2, _0809C998 adds r4, r1, r2 strb r0, [r4] adds r2, 0x5 adds r1, r2 strb r0, [r1] ldr r6, _0809C99C ldrh r2, [r6, 0x30] movs r0, 0x40 ands r0, r2 cmp r0, 0 bne _0809CA14 movs r0, 0x88 ands r0, r2 cmp r0, 0 beq _0809C9A0 movs r6, 0x1 movs r0, 0x2 mov r12, r0 movs r3, 0 b _0809CA2A .align 2, 0 _0809C988: .4byte 0x020384e4 _0809C98C: .4byte 0x020384e5 _0809C990: .4byte gUnknown_083B6DB4 _0809C994: .4byte 0x000011df _0809C998: .4byte 0x000011de _0809C99C: .4byte 0x03001770 _0809C9A0: movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _0809C9C0 movs r6, 0x1 lsls r0, r3, 24 movs r1, 0xFF lsls r1, 24 adds r0, r1 lsrs r3, r0, 24 cmp r0, 0 bge _0809CA2C movs r0, 0xFF strb r0, [r5] movs r3, 0x1 b _0809CA2C _0809C9C0: movs r0, 0x10 ands r0, r2 cmp r0, 0 beq _0809C9E0 movs r6, 0x1 lsls r0, r3, 24 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r3, r0, 24 asrs r0, 24 cmp r0, 0x1 ble _0809CA2C strb r6, [r5] movs r3, 0 b _0809CA2C _0809C9E0: ldrh r1, [r6, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809C9F4 movs r0, 0x4 cmp r3, 0 bne _0809CA3A movs r0, 0x5 b _0809CA3A _0809C9F4: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809CA00 movs r0, 0x10 b _0809CA3A _0809CA00: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0809CA10 bl sub_809CD88 movs r0, 0 b _0809CA3A _0809CA10: movs r6, 0 b _0809CA38 _0809CA14: movs r6, 0x1 movs r0, 0 mov r12, r0 movs r0, 0xFF strb r0, [r4] movs r0, 0 ldrsb r0, [r7, r0] movs r3, 0x1D cmp r0, 0 bne _0809CA2A movs r3, 0x18 _0809CA2A: strb r6, [r1] _0809CA2C: cmp r6, 0 beq _0809CA38 mov r0, r12 adds r1, r3, 0 bl sub_809AF18 _0809CA38: adds r0, r6, 0 _0809CA3A: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_809C944 thumb_func_start sub_809CA40 sub_809CA40: @ 809CA40 push {r4,r5,lr} movs r3, 0 ldr r0, _0809CA6C ldr r1, [r0] adds r4, r0, 0 cmp r1, 0 beq _0809CA84 ldr r5, _0809CA70 _0809CA50: lsls r0, r3, 3 adds r2, r0, r4 movs r1, 0x4 ldrsb r1, [r2, r1] movs r0, 0 ldrsb r0, [r5, r0] cmp r1, r0 bne _0809CA74 ldr r0, [r2] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 b _0809CA86 .align 2, 0 _0809CA6C: .4byte gUnknown_083BBBD4 _0809CA70: .4byte 0x020384e4 _0809CA74: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 lsls r0, r3, 3 adds r0, r4 ldr r0, [r0] cmp r0, 0 bne _0809CA50 _0809CA84: movs r0, 0 _0809CA86: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809CA40 thumb_func_start sub_809CA8C sub_809CA8C: @ 809CA8C push {lr} bl sub_809CDCC movs r0, 0x9 bl sub_809CDEC movs r0, 0xA bl sub_809CDEC movs r0, 0xB bl sub_809CDEC movs r0, 0 bl sub_809CDEC pop {r0} bx r0 thumb_func_end sub_809CA8C thumb_func_start sub_809CAB0 sub_809CAB0: @ 809CAB0 push {lr} bl sub_809CDCC bl sub_809AB8C lsls r0, 16 lsrs r1, r0, 16 ldr r0, _0809CAD4 ldr r0, [r0] ldrb r0, [r0, 0x5] cmp r0, 0x1 beq _0809CADE cmp r0, 0x1 bgt _0809CAD8 cmp r0, 0 beq _0809CAEA b _0809CB24 .align 2, 0 _0809CAD4: .4byte gUnknown_083B6DB4 _0809CAD8: cmp r0, 0x2 beq _0809CAF6 b _0809CB24 _0809CADE: cmp r1, 0 beq _0809CB24 movs r0, 0x1 bl sub_809CDEC b _0809CB28 _0809CAEA: cmp r1, 0 beq _0809CB24 movs r0, 0x2 bl sub_809CDEC b _0809CB28 _0809CAF6: ldr r0, _0809CB0C ldrb r0, [r0] cmp r0, 0 beq _0809CB18 cmp r1, 0 beq _0809CB10 movs r0, 0x4 bl sub_809CDEC b _0809CB28 .align 2, 0 _0809CB0C: .4byte 0x020384e6 _0809CB10: movs r0, 0x5 bl sub_809CDEC b _0809CB28 _0809CB18: cmp r1, 0 beq _0809CB24 movs r0, 0x3 bl sub_809CDEC b _0809CB28 _0809CB24: movs r0, 0 b _0809CB6E _0809CB28: movs r0, 0x6 bl sub_809CDEC ldr r0, _0809CB4C ldr r0, [r0] ldrb r0, [r0, 0x5] cmp r0, 0x2 bne _0809CB5A ldr r0, _0809CB50 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 bne _0809CB54 movs r0, 0x2 bl sub_809CDEC b _0809CB5A .align 2, 0 _0809CB4C: .4byte gUnknown_083B6DB4 _0809CB50: .4byte 0x020384e4 _0809CB54: movs r0, 0x1 bl sub_809CDEC _0809CB5A: movs r0, 0x8 bl sub_809CDEC movs r0, 0x7 bl sub_809CDEC movs r0, 0 bl sub_809CDEC movs r0, 0x1 _0809CB6E: pop {r1} bx r1 thumb_func_end sub_809CAB0 thumb_func_start sub_809CB74 sub_809CB74: @ 809CB74 ldr r1, _0809CB90 ldr r1, [r1] movs r2, 0x8E lsls r2, 5 adds r1, r2 ldr r2, [r1] ldrh r2, [r2, 0x20] strh r2, [r0, 0x20] ldr r1, [r1] ldrh r1, [r1, 0x22] adds r1, 0x14 strh r1, [r0, 0x22] bx lr .align 2, 0 _0809CB90: .4byte gUnknown_083B6DB4 thumb_func_end sub_809CB74 thumb_func_start unref_sub_809CB94 unref_sub_809CB94: @ 809CB94 push {r4,lr} adds r4, r0, 0 ldr r0, _0809CBBC ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x1 bne _0809CBC8 ldr r2, _0809CBC0 ldr r0, _0809CBC4 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0x64 muls r1, r0 adds r1, r2 adds r0, r4, 0 movs r2, 0x50 bl memcpy b _0809CBF6 .align 2, 0 _0809CBBC: .4byte 0x020384e4 _0809CBC0: .4byte 0x03004360 _0809CBC4: .4byte 0x020384e5 _0809CBC8: bl get_preferred_box lsls r0, 24 lsrs r0, 24 ldr r3, _0809CBFC ldr r1, _0809CC00 movs r2, 0 ldrsb r2, [r1, r2] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 lsls r2, r0, 2 adds r2, r0 lsls r0, r2, 4 subs r0, r2 lsls r0, 5 adds r1, r0 adds r1, r3 adds r1, 0x4 adds r0, r4, 0 movs r2, 0x50 bl memcpy _0809CBF6: pop {r4} pop {r0} bx r0 .align 2, 0 _0809CBFC: .4byte 0x020300a0 _0809CC00: .4byte 0x020384e5 thumb_func_end unref_sub_809CB94 thumb_func_start sub_809CC04 sub_809CC04: @ 809CC04 push {r4-r7,lr} sub sp, 0x34 mov r1, sp ldr r0, _0809CCB0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} add r4, sp, 0x18 adds r1, r4, 0 ldr r0, _0809CCB4 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} mov r0, sp bl LoadSpriteSheets adds r0, r4, 0 bl LoadSpritePalettes ldr r0, _0809CCB8 bl IndexOfSpritePaletteTag ldr r1, _0809CCBC ldr r6, [r1] ldr r4, _0809CCC0 adds r7, r6, r4 strb r0, [r7] ldr r0, _0809CCC4 bl IndexOfSpritePaletteTag ldr r5, _0809CCC8 adds r1, r6, r5 strb r0, [r1] ldr r0, _0809CCCC ldrb r0, [r0] ldr r1, _0809CCD0 ldrb r1, [r1] add r4, sp, 0x30 mov r5, sp adds r5, 0x32 adds r2, r4, 0 adds r3, r5, 0 bl sub_809AACC ldr r0, _0809CCD4 movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0 ldrsh r2, [r5, r3] movs r3, 0x6 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _0809CCE4 movs r5, 0x8E lsls r5, 5 adds r4, r6, r5 lsls r1, r2, 4 adds r1, r2 lsls r1, 2 ldr r0, _0809CCD8 adds r1, r0 str r1, [r4] ldr r0, _0809CCDC ldrb r0, [r0] adds r0, r7, r0 ldrb r2, [r0] lsls r2, 4 ldrb r3, [r1, 0x5] movs r0, 0xF ands r0, r3 orrs r0, r2 strb r0, [r1, 0x5] ldr r0, _0809CCE0 ldrb r0, [r0] cmp r0, 0 beq _0809CCEE ldr r0, [r4] movs r1, 0x3 bl StartSpriteAnim b _0809CCEE .align 2, 0 _0809CCB0: .4byte gHandCursorSpriteSheets _0809CCB4: .4byte gHandCursorSpritePalettes _0809CCB8: .4byte 0x0000dac6 _0809CCBC: .4byte gUnknown_083B6DB4 _0809CCC0: .4byte 0x000011e4 _0809CCC4: .4byte 0x0000dad1 _0809CCC8: .4byte 0x000011e5 _0809CCCC: .4byte 0x020384e4 _0809CCD0: .4byte 0x020384e5 _0809CCD4: .4byte gSpriteTemplate_83BBC70 _0809CCD8: .4byte 0x02020004 _0809CCDC: .4byte 0x020384e9 _0809CCE0: .4byte 0x020384e6 _0809CCE4: movs r0, 0x8E lsls r0, 5 adds r1, r6, r0 movs r0, 0 str r0, [r1] _0809CCEE: ldr r0, _0809CD00 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x1 bne _0809CD04 movs r3, 0xC movs r5, 0x1 b _0809CD08 .align 2, 0 _0809CD00: .4byte 0x020384e4 _0809CD04: movs r3, 0x14 movs r5, 0x2 _0809CD08: ldr r0, _0809CD58 movs r1, 0 movs r2, 0 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _0809CD6C ldr r0, _0809CD5C ldr r0, [r0] ldr r1, _0809CD60 adds r4, r0, r1 lsls r1, r2, 4 adds r1, r2 lsls r1, 2 ldr r0, _0809CD64 adds r1, r0 str r1, [r4] lsls r3, r5, 2 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldr r0, _0809CD68 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _0809CD78 ldr r0, [r4] adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _0809CD78 .align 2, 0 _0809CD58: .4byte gSpriteTemplate_83BBC88 _0809CD5C: .4byte gUnknown_083B6DB4 _0809CD60: .4byte 0x000011c4 _0809CD64: .4byte 0x02020004 _0809CD68: .4byte 0x020384e4 _0809CD6C: ldr r0, _0809CD80 ldr r0, [r0] ldr r2, _0809CD84 adds r0, r2 movs r1, 0 str r1, [r0] _0809CD78: add sp, 0x34 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809CD80: .4byte gUnknown_083B6DB4 _0809CD84: .4byte 0x000011c4 thumb_func_end sub_809CC04 thumb_func_start sub_809CD88 sub_809CD88: @ 809CD88 push {lr} ldr r2, _0809CDC0 movs r1, 0 ldrb r0, [r2] cmp r0, 0 bne _0809CD96 movs r1, 0x1 _0809CD96: strb r1, [r2] ldr r0, _0809CDC4 ldr r0, [r0] movs r3, 0x8E lsls r3, 5 adds r1, r0, r3 ldr r3, [r1] ldr r1, _0809CDC8 adds r0, r1 ldrb r2, [r2] adds r0, r2 ldrb r1, [r0] lsls r1, 4 ldrb r2, [r3, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r1 strb r0, [r3, 0x5] pop {r0} bx r0 .align 2, 0 _0809CDC0: .4byte 0x020384e9 _0809CDC4: .4byte gUnknown_083B6DB4 _0809CDC8: .4byte 0x000011e4 thumb_func_end sub_809CD88 thumb_func_start sub_809CDCC sub_809CDCC: @ 809CDCC ldr r0, _0809CDE0 ldr r0, [r0] ldr r2, _0809CDE4 adds r1, r0, r2 movs r2, 0 strb r2, [r1] ldr r1, _0809CDE8 adds r0, r1 strb r2, [r0] bx lr .align 2, 0 _0809CDE0: .4byte gUnknown_083B6DB4 _0809CDE4: .4byte 0x000011b8 _0809CDE8: .4byte 0x000011b9 thumb_func_end sub_809CDCC thumb_func_start sub_809CDEC sub_809CDEC: @ 809CDEC push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, _0809CE3C ldr r5, [r0] ldr r0, _0809CE40 adds r4, r5, r0 ldrb r0, [r4] cmp r0, 0x6 bhi _0809CE36 adds r1, r0, 0 lsls r1, 3 movs r2, 0x8C lsls r2, 5 adds r1, r2 adds r1, r5, r1 ldr r2, _0809CE44 lsls r0, r3, 2 adds r0, r2 ldr r0, [r0] str r0, [r1] str r3, [r1, 0x4] bl sub_8072CA4 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0x7 lsrs r1, 3 ldr r2, _0809CE48 adds r0, r5, r2 ldrb r2, [r0] cmp r1, r2 bls _0809CE30 strb r1, [r0] _0809CE30: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _0809CE36: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809CE3C: .4byte gUnknown_083B6DB4 _0809CE40: .4byte 0x000011b8 _0809CE44: .4byte gUnknown_083BBCA0 _0809CE48: .4byte 0x000011b9 thumb_func_end sub_809CDEC thumb_func_start sub_809CE4C sub_809CE4C: @ 809CE4C push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0809CE70 ldr r1, [r0] ldr r3, _0809CE74 adds r0, r1, r3 ldrb r0, [r0] cmp r2, r0 bcs _0809CE7C lsls r0, r2, 3 ldr r2, _0809CE78 adds r1, r2 adds r1, r0 movs r0, 0 ldrsb r0, [r1, r0] b _0809CE80 .align 2, 0 _0809CE70: .4byte gUnknown_083B6DB4 _0809CE74: .4byte 0x000011b8 _0809CE78: .4byte 0x00001184 _0809CE7C: movs r0, 0x1 negs r0, r0 _0809CE80: pop {r1} bx r1 thumb_func_end sub_809CE4C thumb_func_start sub_809CE84 sub_809CE84: @ 809CE84 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x8 ldr r0, _0809CF20 ldr r4, [r0] ldr r0, _0809CF24 adds r0, r4 mov r8, r0 ldrb r0, [r0] lsls r0, 1 movs r1, 0xE subs r1, r0 ldr r3, _0809CF28 adds r6, r4, r3 movs r0, 0 mov r10, r0 strh r1, [r6] ldr r1, _0809CF2C adds r1, r4 mov r9, r1 ldrb r1, [r1] movs r0, 0x1C subs r0, r1 subs r3, 0x2 adds r5, r4, r3 strh r0, [r5] lsls r0, 24 lsrs r0, 24 ldrb r1, [r6] movs r2, 0x1D movs r3, 0xF bl DrawDefaultWindow ldrb r0, [r5] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 ldrb r1, [r6] adds r1, 0x1 lsls r1, 24 lsrs r1, 24 mov r3, r8 ldrb r2, [r3] movs r3, 0x8C lsls r3, 5 adds r4, r3 adds r3, r4, 0 bl PrintStringArray ldrb r1, [r5] adds r1, 0x1 lsls r1, 24 lsrs r1, 24 ldrb r2, [r6] adds r2, 0x1 lsls r2, 24 lsrs r2, 24 mov r4, r8 ldrb r3, [r4] mov r0, r10 str r0, [sp] mov r4, r9 ldrb r0, [r4] str r0, [sp, 0x4] movs r0, 0 bl InitMenu add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809CF20: .4byte gUnknown_083B6DB4 _0809CF24: .4byte 0x000011b8 _0809CF28: .4byte 0x000011bc _0809CF2C: .4byte 0x000011b9 thumb_func_end sub_809CE84 thumb_func_start sub_809CF30 sub_809CF30: @ 809CF30 push {r4,r5,lr} movs r5, 0x2 negs r5, r5 ldr r4, _0809CF6C ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0809CF86 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809CF52 movs r0, 0x5 bl audio_play adds r5, 0x1 _0809CF52: ldrh r1, [r4, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0809CF70 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 bl MoveMenuCursor b _0809CF8E .align 2, 0 _0809CF6C: .4byte 0x03001770 _0809CF70: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0809CF8E movs r0, 0x5 bl audio_play movs r0, 0x1 bl MoveMenuCursor b _0809CF8E _0809CF86: bl GetMenuCursorPos lsls r0, 24 lsrs r5, r0, 24 _0809CF8E: movs r0, 0x2 negs r0, r0 cmp r5, r0 beq _0809CFB2 bl sub_8072DEC ldr r0, _0809CFD0 ldr r1, [r0] ldr r2, _0809CFD4 adds r0, r1, r2 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] movs r2, 0x1D movs r3, 0xF bl Reset _0809CFB2: cmp r5, 0 blt _0809CFC4 ldr r0, _0809CFD0 ldr r0, [r0] lsls r1, r5, 3 ldr r2, _0809CFD8 adds r0, r2 adds r0, r1 ldr r5, [r0] _0809CFC4: lsls r0, r5, 16 asrs r0, 16 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0809CFD0: .4byte gUnknown_083B6DB4 _0809CFD4: .4byte 0x000011ba _0809CFD8: .4byte 0x00001184 thumb_func_end sub_809CF30 thumb_func_start sub_809CFDC sub_809CFDC: @ 809CFDC ldr r3, _0809CFEC str r0, [r3] str r1, [r0] movs r1, 0 strb r2, [r0, 0x5] strb r1, [r0, 0x4] bx lr .align 2, 0 _0809CFEC: .4byte 0x020384ec thumb_func_end sub_809CFDC thumb_func_start sub_809CFF0 sub_809CFF0: @ 809CFF0 push {r4,r5,lr} ldr r2, _0809D030 ldr r1, [r2] ldrb r0, [r1, 0x4] cmp r0, 0 beq _0809D02A movs r4, 0 ldrb r1, [r1, 0x4] cmp r4, r1 bcs _0809D022 adds r5, r2, 0 _0809D006: ldr r0, [r5] lsls r1, r4, 4 ldr r0, [r0] adds r0, r1 ldr r1, [r0, 0xC] bl _call_via_r1 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldr r0, [r5] ldrb r0, [r0, 0x4] cmp r4, r0 bcc _0809D006 _0809D022: ldr r0, _0809D030 ldr r1, [r0] movs r0, 0 strb r0, [r1, 0x4] _0809D02A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809D030: .4byte 0x020384ec thumb_func_end sub_809CFF0 thumb_func_start sub_809D034 sub_809D034: @ 809D034 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r8, r0 mov r9, r3 ldr r0, [sp, 0x20] ldr r3, [sp, 0x24] ldr r4, [sp, 0x28] ldr r5, [sp, 0x2C] lsls r1, 16 lsrs r1, 16 mov r10, r1 lsls r2, 16 lsrs r6, r2, 16 lsls r0, 16 lsrs r0, 16 mov r12, r0 lsls r3, 16 lsrs r3, 16 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 ldr r0, _0809D0A4 ldr r2, [r0] ldrb r0, [r2, 0x4] adds r1, r0, 0 ldrb r7, [r2, 0x5] cmp r1, r7 bcs _0809D0AC adds r0, 0x1 strb r0, [r2, 0x4] lsls r0, r1, 4 ldr r2, [r2] adds r2, r0 lsls r0, r4, 1 strh r0, [r2, 0x8] lsls r0, r6, 6 add r0, r8 mov r4, r10 lsls r1, r4, 1 adds r0, r1 str r0, [r2, 0x4] lsls r0, r3, 6 add r0, r9 mov r7, r12 lsls r1, r7, 1 adds r0, r1 str r0, [r2] strh r5, [r2, 0xA] ldr r0, _0809D0A8 str r0, [r2, 0xC] movs r0, 0x1 b _0809D0AE .align 2, 0 _0809D0A4: .4byte 0x020384ec _0809D0A8: .4byte sub_809D0BC _0809D0AC: movs r0, 0 _0809D0AE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_809D034 thumb_func_start sub_809D0BC sub_809D0BC: @ 809D0BC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r6, [r0] ldr r5, [r0, 0x4] ldrh r7, [r0, 0xA] ldrh r2, [r0, 0x8] movs r4, 0 cmp r4, r7 bcs _0809D0F2 lsrs r2, 1 mov r8, r2 ldr r0, _0809D100 mov r9, r0 _0809D0DA: adds r0, r6, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 ands r2, r3 bl CpuSet adds r5, 0x40 adds r6, 0x40 adds r4, 0x1 cmp r4, r7 bcc _0809D0DA _0809D0F2: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809D100: .4byte 0x001fffff thumb_func_end sub_809D0BC thumb_func_start sub_809D104 sub_809D104: @ 809D104 push {r4-r7,lr} mov r7, r8 push {r7} ldr r5, [sp, 0x18] ldr r4, [sp, 0x1C] ldr r6, [sp, 0x20] mov r8, r6 ldr r6, [sp, 0x24] lsls r1, 16 lsls r2, 16 lsrs r2, 16 lsls r5, 16 lsls r4, 16 mov r7, r8 lsls r7, 16 lsls r6, 16 lsrs r6, 16 lsrs r4, 10 adds r3, r4 lsrs r5, 15 adds r5, r3, r5 lsls r3, r2, 6 adds r3, r0, r3 lsrs r1, 15 adds r4, r3, r1 adds r2, r6 lsls r2, 6 adds r6, r0, r2 lsrs r2, r7, 15 cmp r4, r6 bcs _0809D15C lsrs r7, r2, 1 ldr r0, _0809D168 mov r8, r0 _0809D148: adds r0, r5, 0 adds r1, r4, 0 mov r2, r8 ands r2, r7 bl CpuSet adds r4, 0x40 adds r5, 0x40 cmp r4, r6 bcc _0809D148 _0809D15C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809D168: .4byte 0x001fffff thumb_func_end sub_809D104 thumb_func_start sub_809D16C sub_809D16C: @ 809D16C push {r4-r7,lr} mov r12, r0 ldr r0, [sp, 0x14] lsls r1, 16 lsrs r6, r1, 16 lsls r2, 16 lsrs r4, r2, 16 lsls r3, 16 lsrs r3, 16 lsls r0, 16 lsrs r5, r0, 16 ldr r0, _0809D1B4 ldr r1, [r0] ldrb r0, [r1, 0x4] adds r2, r0, 0 ldrb r7, [r1, 0x5] cmp r2, r7 bcs _0809D1BC adds r0, 0x1 strb r0, [r1, 0x4] lsls r0, r2, 4 ldr r1, [r1] adds r1, r0 lsls r0, r3, 1 strh r0, [r1, 0x8] lsls r0, r4, 5 adds r0, r6 lsls r0, 1 add r0, r12 str r0, [r1, 0x4] strh r5, [r1, 0xA] ldr r0, _0809D1B8 str r0, [r1, 0xC] movs r0, 0x1 b _0809D1BE .align 2, 0 _0809D1B4: .4byte 0x020384ec _0809D1B8: .4byte sub_809D1C4 _0809D1BC: movs r0, 0 _0809D1BE: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_809D16C thumb_func_start sub_809D1C4 sub_809D1C4: @ 809D1C4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r0, 0 movs r0, 0 ldrh r1, [r6, 0xA] cmp r0, r1 bcs _0809D252 movs r7, 0x80 lsls r7, 5 mov r5, sp ldr r2, _0809D210 mov r8, r2 movs r1, 0x81 lsls r1, 24 mov r10, r1 _0809D1EA: ldr r2, [r6, 0x4] ldrh r3, [r6, 0x8] mov r12, r2 adds r0, 0x1 mov r9, r0 cmp r3, r7 bhi _0809D214 movs r0, 0 strh r0, [r5] mov r2, sp mov r0, r8 str r2, [r0] mov r1, r12 str r1, [r0, 0x4] lsrs r0, r3, 1 mov r2, r10 orrs r0, r2 mov r1, r8 b _0809D23C .align 2, 0 _0809D210: .4byte 0x040000d4 _0809D214: movs r4, 0 strh r4, [r5] ldr r1, _0809D264 mov r0, sp str r0, [r1] str r2, [r1, 0x4] ldr r0, _0809D268 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r7 subs r3, r7 cmp r3, r7 bhi _0809D214 strh r4, [r5] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 1 mov r2, r10 orrs r0, r2 _0809D23C: str r0, [r1, 0x8] ldr r0, [r1, 0x8] mov r0, r12 adds r0, 0x40 str r0, [r6, 0x4] mov r1, r9 lsls r0, r1, 16 lsrs r0, 16 ldrh r2, [r6, 0xA] cmp r0, r2 bcc _0809D1EA _0809D252: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809D264: .4byte 0x040000d4 _0809D268: .4byte 0x81000800 thumb_func_end sub_809D1C4 thumb_func_start unref_sub_809D26C unref_sub_809D26C: @ 809D26C push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x18 adds r6, r3, 0 ldr r3, [sp, 0x2C] lsls r0, 16 lsrs r0, 16 lsls r3, 24 lsrs r3, 24 mov r8, sp ldr r4, _0809D2E0 str r4, [sp] ldr r5, _0809D2E4 lsls r4, r0, 2 adds r4, r5 ldr r4, [r4] str r4, [sp, 0x4] ldr r4, _0809D2E8 str r4, [sp, 0x8] ldr r4, _0809D2EC str r4, [sp, 0xC] str r1, [sp, 0x10] ldr r1, _0809D2F0 adds r0, r1 ldr r4, _0809D2F4 adds r1, r4, 0 ldrb r0, [r0] adds r1, r0 mov r0, r8 strh r1, [r0, 0x14] lsls r2, 16 asrs r2, 16 lsls r6, 16 asrs r6, 16 mov r0, sp adds r1, r2, 0 adds r2, r6, 0 bl sub_809D710 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, _0809D2F8 adds r0, r1 bl sub_809D638 adds r0, r4, 0 add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0809D2E0: .4byte gUnknown_083BC5E8 _0809D2E4: .4byte gMonIconTable _0809D2E8: .4byte gUnknown_083BC62C _0809D2EC: .4byte gUnknown_083BC660 _0809D2F0: .4byte gMonIconPaletteIndices _0809D2F4: .4byte 0x0000dac0 _0809D2F8: .4byte 0x02020004 thumb_func_end unref_sub_809D26C thumb_func_start sub_809D2FC sub_809D2FC: @ 809D2FC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x30 adds r4, r0, 0 adds r5, r1, 0 ldr r0, [sp, 0x48] ldr r1, [sp, 0x4C] lsls r4, 16 lsrs r4, 16 lsls r2, 16 lsrs r7, r2, 16 lsls r3, 16 lsrs r6, r3, 16 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _0809D38C str r0, [sp, 0x18] adds r0, r4, 0 bl sub_809D4F4 str r0, [sp, 0x1C] ldr r0, _0809D390 str r0, [sp, 0x20] ldr r0, _0809D394 str r0, [sp, 0x24] str r5, [sp, 0x28] ldr r0, _0809D398 adds r0, r4, r0 ldr r1, _0809D39C adds r5, r1, 0 ldrb r0, [r0] adds r1, r5, r0 add r0, sp, 0x2C strh r1, [r0] add r1, sp, 0x18 mov r0, sp movs r2, 0x18 bl memcpy movs r0, 0xCE lsls r0, 1 cmp r4, r0 bls _0809D35A mov r0, sp strh r5, [r0, 0x14] _0809D35A: lsls r1, r7, 16 asrs r1, 16 lsls r2, r6, 16 asrs r2, 16 mov r0, sp mov r3, r8 bl sub_809D710 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, _0809D3A0 adds r0, r1 bl sub_809D638 adds r0, r4, 0 add sp, 0x30 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0809D38C: .4byte gUnknown_083BC5E8 _0809D390: .4byte gUnknown_083BC62C _0809D394: .4byte gUnknown_083BC660 _0809D398: .4byte gMonIconPaletteIndices _0809D39C: .4byte 0x0000dac0 _0809D3A0: .4byte 0x02020004 thumb_func_end sub_809D2FC thumb_func_start sub_809D3A4 sub_809D3A4: @ 809D3A4 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x18 adds r6, r3, 0 ldr r3, [sp, 0x2C] lsls r0, 16 lsrs r0, 16 lsls r3, 24 lsrs r3, 24 mov r8, sp ldr r4, _0809D418 str r4, [sp] ldr r5, _0809D41C lsls r4, r0, 2 adds r4, r5 ldr r4, [r4] str r4, [sp, 0x4] ldr r4, _0809D420 str r4, [sp, 0x8] ldr r4, _0809D424 str r4, [sp, 0xC] str r1, [sp, 0x10] ldr r1, _0809D428 adds r0, r1 ldr r4, _0809D42C adds r1, r4, 0 ldrb r0, [r0] adds r1, r0 mov r0, r8 strh r1, [r0, 0x14] lsls r2, 16 asrs r2, 16 lsls r6, 16 asrs r6, 16 mov r0, sp adds r1, r2, 0 adds r2, r6, 0 bl sub_809D710 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, _0809D430 adds r0, r1 bl sub_809D638 adds r0, r4, 0 add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0809D418: .4byte gUnknown_083BC5E8 _0809D41C: .4byte gMonIconTable _0809D420: .4byte gUnknown_083BC62C _0809D424: .4byte gUnknown_083BC660 _0809D428: .4byte gMonIconPaletteIndices _0809D42C: .4byte 0x0000dac0 _0809D430: .4byte 0x02020004 thumb_func_end sub_809D3A4 thumb_func_start mon_icon_convert_unown_species_id mon_icon_convert_unown_species_id: @ 809D434 push {lr} lsls r0, 16 lsrs r2, r0, 16 cmp r2, SPECIES_UNOWN bne _0809D45E adds r0, r1, 0 bl sub_809D474 lsls r0, 16 lsrs r0, 16 cmp r0, 0 bne _0809D450 movs r0, SPECIES_UNOWN b _0809D45A _0809D450: movs r1, 0xCE lsls r1, 1 adds r0, r1 lsls r0, 16 lsrs r0, 16 _0809D45A: adds r1, r0, 0 b _0809D46C _0809D45E: movs r0, 0xCE lsls r0, 1 adds r1, r2, 0 cmp r1, r0 bls _0809D46C movs r1, 0x82 lsls r1, 1 _0809D46C: adds r0, r1, 0 pop {r1} bx r1 thumb_func_end mon_icon_convert_unown_species_id thumb_func_start sub_809D474 sub_809D474: @ 809D474 push {lr} adds r2, r0, 0 movs r0, 0xC0 lsls r0, 18 ands r0, r2 lsrs r0, 18 movs r1, 0xC0 lsls r1, 10 ands r1, r2 lsrs r1, 12 orrs r0, r1 movs r1, 0xC0 lsls r1, 2 ands r1, r2 lsrs r1, 6 orrs r0, r1 movs r1, 0x3 ands r1, r2 orrs r0, r1 movs r1, 0x1C bl __umodsi3 lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_809D474 thumb_func_start sub_809D4A8 sub_809D4A8: @ 809D4A8 push {r4,lr} sub sp, 0x4 lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 mov r1, sp bl sub_80A2D64 lsls r0, 16 lsrs r0, 16 cmp r0, SPECIES_UNOWN bne _0809D4DE mov r0, sp ldrh r0, [r0] cmp r0, 0 bne _0809D4CE mov r1, sp adds r0, SPECIES_UNOWN b _0809D4D6 _0809D4CE: mov r1, sp movs r2, 0xCE lsls r2, 1 adds r0, r2 _0809D4D6: strh r0, [r1] mov r0, sp ldrh r0, [r0] b _0809D4EA _0809D4DE: adds r0, r4, 0 movs r1, 0 bl mon_icon_convert_unown_species_id lsls r0, 16 lsrs r0, 16 _0809D4EA: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_809D4A8 thumb_func_start sub_809D4F4 sub_809D4F4: @ 809D4F4 push {lr} lsls r0, 16 lsrs r0, 16 bl mon_icon_convert_unown_species_id lsls r0, 16 ldr r1, _0809D50C lsrs r0, 14 adds r0, r1 ldr r0, [r0] pop {r1} bx r1 .align 2, 0 _0809D50C: .4byte gMonIconTable thumb_func_end sub_809D4F4 thumb_func_start sub_809D510 sub_809D510: @ 809D510 push {lr} bl sub_809D7E8 pop {r0} bx r0 thumb_func_end sub_809D510 thumb_func_start sub_809D51C sub_809D51C: @ 809D51C push {r4,r5,lr} movs r4, 0 ldr r5, _0809D53C _0809D522: lsls r0, r4, 3 adds r0, r5 bl LoadSpritePalette adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _0809D522 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809D53C: .4byte gMonIconPaletteTable thumb_func_end sub_809D51C thumb_func_start unref_sub_809D540 unref_sub_809D540: @ 809D540 push {r4,lr} lsls r0, 16 lsrs r1, r0, 16 movs r0, 0xCE lsls r0, 1 cmp r1, r0 bls _0809D552 movs r1, 0x82 lsls r1, 1 _0809D552: ldr r0, _0809D578 adds r0, r1, r0 ldrb r0, [r0] ldr r1, _0809D57C lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x4] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _0809D572 adds r0, r4, 0 bl LoadSpritePalette _0809D572: pop {r4} pop {r0} bx r0 .align 2, 0 _0809D578: .4byte gMonIconPaletteIndices _0809D57C: .4byte gMonIconPaletteTable thumb_func_end unref_sub_809D540 thumb_func_start sub_809D580 sub_809D580: @ 809D580 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r1, _0809D5AC adds r0, r1 ldrb r0, [r0] ldr r1, _0809D5B0 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x4] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _0809D5A6 adds r0, r4, 0 bl LoadSpritePalette _0809D5A6: pop {r4} pop {r0} bx r0 .align 2, 0 _0809D5AC: .4byte gMonIconPaletteIndices _0809D5B0: .4byte gMonIconPaletteTable thumb_func_end sub_809D580 thumb_func_start unref_sub_809D5B4 unref_sub_809D5B4: @ 809D5B4 push {r4,r5,lr} movs r4, 0 ldr r5, _0809D5D4 _0809D5BA: lsls r0, r4, 3 adds r0, r5 ldrh r0, [r0, 0x4] bl FreeSpritePaletteByTag adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _0809D5BA pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809D5D4: .4byte gMonIconPaletteTable thumb_func_end unref_sub_809D5B4 thumb_func_start unref_sub_809D5D8 unref_sub_809D5D8: @ 809D5D8 push {lr} lsls r0, 16 lsrs r1, r0, 16 movs r0, 0xCE lsls r0, 1 cmp r1, r0 bls _0809D5EA movs r1, 0x82 lsls r1, 1 _0809D5EA: ldr r0, _0809D600 adds r0, r1, r0 ldrb r0, [r0] ldr r1, _0809D604 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x4] bl FreeSpritePaletteByTag pop {r0} bx r0 .align 2, 0 _0809D600: .4byte gMonIconPaletteIndices _0809D604: .4byte gMonIconPaletteTable thumb_func_end unref_sub_809D5D8 thumb_func_start sub_809D608 sub_809D608: @ 809D608 push {lr} lsls r0, 16 lsrs r0, 16 ldr r1, _0809D624 adds r0, r1 ldrb r0, [r0] ldr r1, _0809D628 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x4] bl FreeSpritePaletteByTag pop {r0} bx r0 .align 2, 0 _0809D624: .4byte gMonIconPaletteIndices _0809D628: .4byte gMonIconPaletteTable thumb_func_end sub_809D608 thumb_func_start sub_809D62C sub_809D62C: @ 809D62C push {lr} bl sub_809D638 pop {r0} bx r0 thumb_func_end sub_809D62C thumb_func_start sub_809D638 sub_809D638: @ 809D638 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r4, r0, 0 movs r7, 0 adds r6, r4, 0 adds r6, 0x2C ldrb r2, [r6] movs r0, 0x3F mov r9, r0 ands r0, r2 cmp r0, 0 bne _0809D6EC movs r1, 0x2A adds r1, r4 mov r8, r1 ldrb r1, [r1] ldr r0, [r4, 0x8] lsls r1, 2 adds r1, r0 adds r5, r4, 0 adds r5, 0x2B ldrb r0, [r5] ldr r1, [r1] lsls r0, 2 adds r0, r1 movs r1, 0 ldrsh r3, [r0, r1] movs r0, 0x2 negs r0, r0 cmp r3, r0 beq _0809D682 adds r0, 0x1 cmp r3, r0 bne _0809D686 b _0809D700 _0809D682: strb r7, [r5] b _0809D700 _0809D686: ldr r2, _0809D6E4 ldrb r1, [r4, 0x3] lsrs r1, 6 lsls r1, 1 ldrb r0, [r4, 0x1] lsrs r0, 6 lsls r0, 3 adds r1, r0 adds r1, r2 ldrh r2, [r1] adds r1, r2, 0 muls r1, r3 ldr r0, [r4, 0xC] adds r0, r1 ldrh r1, [r4, 0x4] lsls r1, 22 lsrs r1, 17 ldr r3, _0809D6E8 adds r1, r3 bl RequestSpriteCopy mov r0, r8 ldrb r1, [r0] ldr r0, [r4, 0x8] lsls r1, 2 adds r1, r0 ldrb r0, [r5] ldr r1, [r1] lsls r0, 2 adds r0, r1 ldr r0, [r0] lsls r0, 10 lsrs r0, 26 mov r1, r9 ands r1, r0 ldrb r2, [r6] movs r0, 0x40 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r6] ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] ldrb r7, [r5] b _0809D700 .align 2, 0 _0809D6E4: .4byte gUnknown_083BC668 _0809D6E8: .4byte 0x06010000 _0809D6EC: lsls r0, r2, 26 lsrs r0, 26 subs r0, 0x1 movs r1, 0x3F ands r0, r1 movs r1, 0x40 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r6] _0809D700: adds r0, r7, 0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_809D638 thumb_func_start sub_809D710 sub_809D710: @ 809D710 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x38 mov r9, r0 adds r4, r1, 0 adds r5, r2, 0 mov r8, r3 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r0, 0 str r0, [sp, 0x30] ldr r2, _0809D7D8 mov r0, r9 ldr r6, [r0] ldrb r1, [r6, 0x3] lsrs r1, 6 lsls r1, 1 ldrb r0, [r6, 0x1] lsrs r0, 6 lsls r0, 3 adds r1, r0 adds r1, r2 ldrh r2, [r1] ldr r1, _0809D7DC add r3, sp, 0x30 ldr r0, [r3, 0x4] ands r0, r1 orrs r0, r2 str r0, [r3, 0x4] add r1, sp, 0x18 ldr r0, _0809D7E0 strh r0, [r1] mov r0, r9 ldrh r2, [r0, 0x14] mov r0, sp adds r0, 0x1A strh r2, [r0] str r6, [sp, 0x1C] mov r2, r9 ldr r0, [r2, 0x8] str r0, [sp, 0x20] str r3, [sp, 0x24] ldr r0, [r2, 0xC] str r0, [sp, 0x28] ldr r0, [r2, 0x10] str r0, [sp, 0x2C] mov r0, sp movs r2, 0x18 bl memcpy lsls r4, 16 asrs r4, 16 lsls r5, 16 asrs r5, 16 mov r0, sp adds r1, r4, 0 adds r2, r5, 0 mov r3, r8 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r6, _0809D7E4 lsls r3, r0, 4 adds r3, r0 lsls r3, 2 adds r4, r3, r6 adds r5, r4, 0 adds r5, 0x2C ldrb r1, [r5] movs r2, 0x40 orrs r1, r2 strb r1, [r5] adds r4, 0x3F ldrb r2, [r4] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r4] adds r6, 0xC adds r3, r6 mov r2, r9 ldr r1, [r2, 0x4] str r1, [r3] add sp, 0x38 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0809D7D8: .4byte gUnknown_083BC668 _0809D7DC: .4byte 0xffff0000 _0809D7E0: .4byte 0x0000ffff _0809D7E4: .4byte 0x02020004 thumb_func_end sub_809D710 thumb_func_start sub_809D7E8 sub_809D7E8: @ 809D7E8 push {lr} sub sp, 0x8 movs r1, 0 str r1, [sp] ldr r3, _0809D81C ldrb r2, [r0, 0x3] lsrs r2, 6 lsls r2, 1 ldrb r1, [r0, 0x1] lsrs r1, 6 lsls r1, 3 adds r2, r1 adds r2, r3 ldrh r3, [r2] ldr r2, _0809D820 ldr r1, [sp, 0x4] ands r1, r2 orrs r1, r3 str r1, [sp, 0x4] mov r1, sp str r1, [r0, 0xC] bl DestroySprite add sp, 0x8 pop {r0} bx r0 .align 2, 0 _0809D81C: .4byte gUnknown_083BC668 _0809D820: .4byte 0xffff0000 thumb_func_end sub_809D7E8 thumb_func_start sub_809D824 sub_809D824: @ 809D824 mov r12, r0 adds r0, 0x2A movs r3, 0 strb r1, [r0] mov r2, r12 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x40 negs r0, r0 ands r0, r1 strb r0, [r2] mov r0, r12 adds r0, 0x2B strb r3, [r0] bx lr thumb_func_end sub_809D824 thumb_func_start sub_809D844 sub_809D844: @ 809D844 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_809D844 thumb_func_start sub_809D85C sub_809D85C: @ 809D85C push {lr} ldr r1, _0809D8A0 ldr r0, _0809D8A4 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _0809D8A8 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _0809D8AC ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _0809D8B0 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _0809D8B4 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _0809D8B8 ldrh r0, [r0] strh r0, [r1] bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 .align 2, 0 _0809D8A0: .4byte REG_BG1HOFS _0809D8A4: .4byte 0x030042c0 _0809D8A8: .4byte 0x030041b4 _0809D8AC: .4byte 0x03004288 _0809D8B0: .4byte 0x03004280 _0809D8B4: .4byte 0x030041b0 _0809D8B8: .4byte 0x030041b8 thumb_func_end sub_809D85C thumb_func_start sub_809D8BC sub_809D8BC: @ 809D8BC push {r4-r7,lr} ldr r4, [sp, 0x14] lsls r4, 24 lsrs r7, r4, 24 ldr r6, _0809D904 ldrb r4, [r6, 0x8] movs r5, 0x80 orrs r4, r5 strb r4, [r6, 0x8] ldr r5, _0809D908 str r0, [r5] movs r4, 0 strb r7, [r5, 0x8] strb r1, [r5, 0x9] strb r2, [r5, 0xA] str r3, [r5, 0x4] adds r0, r5, 0 adds r0, 0x74 strb r4, [r0] adds r1, r5, 0 adds r1, 0x79 movs r0, 0x4 strb r0, [r1] adds r0, r5, 0 adds r0, 0x7C movs r1, 0 strh r4, [r0] adds r0, 0x4 strb r1, [r0] subs r0, 0x5 strb r1, [r0] cmp r7, 0x4 bls _0809D90C movs r0, 0x1 strb r0, [r5, 0xE] b _0809D90E .align 2, 0 _0809D904: .4byte 0x0202f388 _0809D908: .4byte 0x02018000 _0809D90C: strb r1, [r5, 0xE] _0809D90E: cmp r7, 0x6 bhi _0809D9D6 lsls r0, r7, 2 ldr r1, _0809D91C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809D91C: .4byte _0809D920 .align 2, 0 _0809D920: .4byte _0809D93C .4byte _0809D9BC .4byte _0809D992 .4byte _0809D9D6 .4byte _0809D966 .4byte _0809D93C .4byte _0809D9BC _0809D93C: adds r0, r5, 0 adds r0, 0x75 movs r1, 0 strb r1, [r0] adds r2, r5, 0 adds r2, 0x76 movs r0, 0x3 strb r0, [r2] adds r0, r5, 0 adds r0, 0x77 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r1, r5, 0 adds r1, 0x7E movs r0, 0x1 strb r0, [r1] adds r1, 0x1 movs r0, 0x7 strb r0, [r1] b _0809D9D6 _0809D966: adds r0, r5, 0 adds r0, 0x75 movs r1, 0 strb r1, [r0] adds r2, r5, 0 adds r2, 0x76 movs r0, 0x3 strb r0, [r2] adds r0, r5, 0 adds r0, 0x77 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r0, 0x6 movs r1, 0x1 strb r1, [r0] adds r2, 0x9 movs r0, 0x7 strb r0, [r2] adds r0, r5, 0 adds r0, 0x7B b _0809D9D4 _0809D992: adds r1, r5, 0 adds r1, 0x75 movs r3, 0 movs r0, 0x2 strb r0, [r1] adds r0, r5, 0 adds r0, 0x76 movs r2, 0x3 strb r2, [r0] adds r0, 0x1 movs r1, 0x1 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r0, 0x6 strb r2, [r0] adds r0, 0x1 strb r3, [r0] subs r0, 0x6 strb r3, [r0] b _0809D9D6 _0809D9BC: adds r1, r5, 0 adds r1, 0x75 movs r0, 0x2 strb r0, [r1] adds r1, 0x1 movs r0, 0x3 strb r0, [r1] adds r0, r5, 0 adds r0, 0x77 movs r1, 0x1 strb r1, [r0] adds r0, 0x1 _0809D9D4: strb r1, [r0] _0809D9D6: adds r0, r5, 0 adds r0, 0x75 ldrb r0, [r0] strb r0, [r5, 0xB] ldr r0, _0809D9EC bl SetMainCallback2 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809D9EC: .4byte sub_809DE44 thumb_func_end sub_809D8BC thumb_func_start sub_809D9F0 sub_809D9F0: @ 809D9F0 push {r4,r5,lr} sub sp, 0x4 ldr r5, [sp, 0x10] lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r5, 16 lsrs r5, 16 movs r4, 0x2 str r4, [sp] bl sub_809D8BC ldr r0, _0809DA18 adds r0, 0x7C strh r5, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809DA18: .4byte 0x02018000 thumb_func_end sub_809D9F0 thumb_func_start sub_809DA1C sub_809DA1C: @ 809DA1C push {lr} ldr r0, _0809DA30 ldrb r0, [r0, 0x8] cmp r0, 0x6 bhi _0809DA78 lsls r0, 2 ldr r1, _0809DA34 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809DA30: .4byte 0x02018000 _0809DA34: .4byte _0809DA38 .align 2, 0 _0809DA38: .4byte _0809DA54 .4byte _0809DA6C .4byte _0809DA64 .4byte _0809DA64 .4byte _0809DA5C .4byte _0809DA54 .4byte _0809DA6C _0809DA54: ldr r0, _0809DA58 b _0809DA6E .align 2, 0 _0809DA58: .4byte sub_809E19C _0809DA5C: ldr r0, _0809DA60 b _0809DA6E .align 2, 0 _0809DA60: .4byte sub_809E19C _0809DA64: ldr r0, _0809DA68 b _0809DA6E .align 2, 0 _0809DA68: .4byte sub_809EB40 _0809DA6C: ldr r0, _0809DA7C _0809DA6E: movs r1, 0 bl CreateTask ldr r1, _0809DA80 strb r0, [r1, 0xF] _0809DA78: pop {r0} bx r0 .align 2, 0 _0809DA7C: .4byte sub_809E3FC _0809DA80: .4byte 0x02018000 thumb_func_end sub_809DA1C thumb_func_start sub_809DA84 sub_809DA84: @ 809DA84 push {r4-r7,lr} sub sp, 0x8 ldr r1, _0809DAA4 ldr r2, _0809DAA8 adds r0, r1, r2 ldrb r0, [r0] mov r12, r1 cmp r0, 0x16 bls _0809DA98 b _0809DE00 _0809DA98: lsls r0, 2 ldr r1, _0809DAAC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809DAA4: .4byte 0x03001770 _0809DAA8: .4byte 0x0000043c _0809DAAC: .4byte _0809DAB0 .align 2, 0 _0809DAB0: .4byte _0809DB0C .4byte _0809DB18 .4byte _0809DB2C .4byte _0809DB32 .4byte _0809DB80 .4byte _0809DB94 .4byte _0809DBA0 .4byte _0809DBBC .4byte _0809DBC8 .4byte _0809DBDC .4byte _0809DC2C .4byte _0809DC48 .4byte _0809DC5C .4byte _0809DC90 .4byte _0809DCB0 .4byte _0809DCC4 .4byte _0809DCF8 .4byte _0809DD02 .4byte _0809DD30 .4byte _0809DD3C .4byte _0809DD68 .4byte _0809DD98 .4byte _0809DDE0 _0809DB0C: movs r0, 0 bl SetVBlankCallback bl ResetSpriteData b _0809DDE8 _0809DB18: bl remove_some_task ldr r1, _0809DB24 ldr r2, _0809DB28 adds r1, r2 b _0809DDEE .align 2, 0 _0809DB24: .4byte 0x03001770 _0809DB28: .4byte 0x0000043c _0809DB2C: bl FreeAllSpritePalettes b _0809DDE8 _0809DB32: movs r2, 0xC0 lsls r2, 19 movs r3, 0x80 lsls r3, 9 movs r5, 0 ldr r1, _0809DB74 movs r4, 0x80 lsls r4, 5 ldr r6, _0809DB78 movs r7, 0x85 lsls r7, 24 _0809DB48: str r5, [sp, 0x4] add r0, sp, 0x4 str r0, [r1] str r2, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _0809DB48 str r5, [sp, 0x4] add r0, sp, 0x4 str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 orrs r0, r7 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, _0809DB7C add r1, r12 b _0809DDEE .align 2, 0 _0809DB74: .4byte 0x040000d4 _0809DB78: .4byte 0x85000400 _0809DB7C: .4byte 0x0000043c _0809DB80: bl sub_809DE64 ldr r1, _0809DB8C ldr r2, _0809DB90 adds r1, r2 b _0809DDEE .align 2, 0 _0809DB8C: .4byte 0x03001770 _0809DB90: .4byte 0x0000043c _0809DB94: ldr r0, _0809DB9C bl SetUpWindowConfig b _0809DDE8 .align 2, 0 _0809DB9C: .4byte gWindowConfig_81E6E6C _0809DBA0: ldr r0, _0809DBB0 bl sub_8071C58 ldr r1, _0809DBB4 ldr r2, _0809DBB8 adds r1, r2 b _0809DDEE .align 2, 0 _0809DBB0: .4byte gWindowConfig_81E6E6C _0809DBB4: .4byte 0x03001770 _0809DBB8: .4byte 0x0000043c _0809DBBC: bl sub_8071C94 cmp r0, 0 bne _0809DBC6 b _0809DE38 _0809DBC6: b _0809DDE8 _0809DBC8: bl sub_809DA1C ldr r1, _0809DBD4 ldr r2, _0809DBD8 adds r1, r2 b _0809DDEE .align 2, 0 _0809DBD4: .4byte 0x03001770 _0809DBD8: .4byte 0x0000043c _0809DBDC: ldr r1, _0809DC08 ldr r2, _0809DC0C ldr r0, _0809DC10 str r1, [r0] str r2, [r0, 0x4] ldr r1, _0809DC14 str r1, [r0, 0x8] ldr r1, [r0, 0x8] ldr r1, _0809DC18 ldr r2, _0809DC1C str r1, [r0] str r2, [r0, 0x4] ldr r1, _0809DC20 str r1, [r0, 0x8] ldr r0, [r0, 0x8] ldr r0, _0809DC24 adds r0, 0x74 movs r1, 0 strb r1, [r0] ldr r1, _0809DC28 add r1, r12 b _0809DDEE .align 2, 0 _0809DC08: .4byte gUnknown_083C133C _0809DC0C: .4byte 0x0600d000 _0809DC10: .4byte 0x040000d4 _0809DC14: .4byte 0x800000a0 _0809DC18: .4byte gUnknown_083C147C _0809DC1C: .4byte 0x0600d140 _0809DC20: .4byte 0x80000080 _0809DC24: .4byte 0x02018000 _0809DC28: .4byte 0x0000043c _0809DC2C: bl sub_809DF00 lsls r0, 24 cmp r0, 0 bne _0809DC38 b _0809DE38 _0809DC38: ldr r0, _0809DC44 adds r0, 0x74 movs r1, 0 strb r1, [r0] b _0809DDE8 .align 2, 0 _0809DC44: .4byte 0x02018000 _0809DC48: bl sub_80A18C4 ldr r1, _0809DC54 ldr r2, _0809DC58 adds r1, r2 b _0809DDEE .align 2, 0 _0809DC54: .4byte 0x03001770 _0809DC58: .4byte 0x0000043c _0809DC5C: ldr r4, _0809DC78 adds r0, r4, 0 bl sub_809F678 adds r0, r4, 0 bl sub_80A1CD8 lsls r0, 24 cmp r0, 0 bne _0809DC7C movs r0, 0 bl sub_80A12D0 b _0809DC82 .align 2, 0 _0809DC78: .4byte 0x02018010 _0809DC7C: movs r0, 0xA bl sub_80A12D0 _0809DC82: ldr r0, _0809DC8C bl sub_80A0EA4 b _0809DDE8 .align 2, 0 _0809DC8C: .4byte 0x02018010 _0809DC90: bl sub_80A1950 ldr r0, _0809DCA4 bl sub_80A1D84 ldr r1, _0809DCA8 ldr r2, _0809DCAC adds r1, r2 b _0809DDEE .align 2, 0 _0809DCA4: .4byte 0x02018010 _0809DCA8: .4byte 0x03001770 _0809DCAC: .4byte 0x0000043c _0809DCB0: ldr r4, _0809DCC0 adds r0, r4, 0 bl sub_80A1DE8 adds r4, 0x64 movs r0, 0 strb r0, [r4] b _0809DDE8 .align 2, 0 _0809DCC0: .4byte 0x02018010 _0809DCC4: ldr r4, _0809DCEC adds r5, r4, 0 adds r5, 0x64 adds r0, r4, 0 adds r1, r5, 0 bl sub_809F6B4 subs r4, 0x10 strb r0, [r4, 0xC] lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _0809DCE0 b _0809DE38 _0809DCE0: movs r0, 0 strb r0, [r5] ldr r1, _0809DCF0 ldr r2, _0809DCF4 adds r1, r2 b _0809DDEE .align 2, 0 _0809DCEC: .4byte 0x02018010 _0809DCF0: .4byte 0x03001770 _0809DCF4: .4byte 0x0000043c _0809DCF8: bl sub_809E044 bl sub_80A0EE8 b _0809DDE8 _0809DD02: ldr r1, _0809DD20 ldrb r0, [r1, 0xB] cmp r0, 0x1 bhi _0809DD18 ldr r0, _0809DD24 ldrb r1, [r1, 0xB] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl _call_via_r0 _0809DD18: ldr r1, _0809DD28 ldr r2, _0809DD2C adds r1, r2 b _0809DDEE .align 2, 0 _0809DD20: .4byte 0x02018000 _0809DD24: .4byte gUnknown_083C1580 _0809DD28: .4byte 0x03001770 _0809DD2C: .4byte 0x0000043c _0809DD30: ldr r0, _0809DD38 bl sub_809FAC8 b _0809DDE8 .align 2, 0 _0809DD38: .4byte 0x02018010 _0809DD3C: ldr r2, _0809DD58 ldr r0, _0809DD5C ldrb r1, [r0, 0xB] lsls r1, 2 adds r1, r2 adds r0, 0x10 ldr r1, [r1] bl _call_via_r1 ldr r1, _0809DD60 ldr r2, _0809DD64 adds r1, r2 b _0809DDEE .align 2, 0 _0809DD58: .4byte gUnknown_083C1598 _0809DD5C: .4byte 0x02018000 _0809DD60: .4byte 0x03001770 _0809DD64: .4byte 0x0000043c _0809DD68: ldr r0, _0809DD84 movs r1, 0x2D bl PokemonGetField adds r1, r0, 0 cmp r1, 0 beq _0809DD8C ldr r1, _0809DD88 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] b _0809DDE8 .align 2, 0 _0809DD84: .4byte 0x02018010 _0809DD88: .4byte 0x030041b0 _0809DD8C: ldr r0, _0809DD94 strh r1, [r0] b _0809DDE8 .align 2, 0 _0809DD94: .4byte 0x030041b0 _0809DD98: bl sub_809EBC4 ldr r0, _0809DDB8 adds r0, 0x79 ldrb r0, [r0] cmp r0, 0 beq _0809DDBC movs r0, 0 movs r1, 0 bl sub_80A1488 movs r0, 0 movs r1, 0 bl sub_80A1654 b _0809DDCC .align 2, 0 _0809DDB8: .4byte 0x02018000 _0809DDBC: movs r0, 0xA movs r1, 0 bl sub_80A1488 movs r0, 0xA movs r1, 0 bl sub_80A1654 _0809DDCC: bl sub_80A0DD0 ldr r1, _0809DDD8 ldr r2, _0809DDDC adds r1, r2 b _0809DDEE .align 2, 0 _0809DDD8: .4byte 0x03001770 _0809DDDC: .4byte 0x0000043c _0809DDE0: bl sub_8055870 cmp r0, 0x1 beq _0809DE38 _0809DDE8: ldr r1, _0809DDF8 ldr r0, _0809DDFC adds r1, r0 _0809DDEE: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0809DE38 .align 2, 0 _0809DDF8: .4byte 0x03001770 _0809DDFC: .4byte 0x0000043c _0809DE00: ldr r0, _0809DE2C bl SetVBlankCallback movs r0, 0x1 str r0, [sp] movs r0, 0xFF movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginHardwarePaletteFade ldr r0, _0809DE30 bl SetMainCallback2 ldr r2, _0809DE34 ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] movs r0, 0x1 b _0809DE3A .align 2, 0 _0809DE2C: .4byte sub_809D85C _0809DE30: .4byte sub_809D844 _0809DE34: .4byte 0x0202f388 _0809DE38: movs r0, 0 _0809DE3A: add sp, 0x8 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_809DA84 thumb_func_start sub_809DE44 sub_809DE44: @ 809DE44 push {lr} _0809DE46: bl sub_809DA84 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0809DE5E bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809DE46 _0809DE5E: pop {r0} bx r0 thumb_func_end sub_809DE44 thumb_func_start sub_809DE64 sub_809DE64: @ 809DE64 ldr r1, _0809DED0 ldr r2, _0809DED4 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0809DED8 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0809DEDC adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0809DEE0 adds r0, r2, 0 strh r0, [r1] ldr r1, _0809DEE4 movs r0, 0 strh r0, [r1] ldr r1, _0809DEE8 strh r0, [r1] ldr r1, _0809DEEC strh r0, [r1] ldr r1, _0809DEF0 strh r0, [r1] ldr r1, _0809DEF4 strh r0, [r1] ldr r1, _0809DEF8 strh r0, [r1] ldr r1, _0809DEFC strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x32 strh r0, [r1] subs r1, 0x50 movs r2, 0xFA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] bx lr .align 2, 0 _0809DED0: .4byte REG_BG0CNT _0809DED4: .4byte 0x00001e08 _0809DED8: .4byte 0x00004801 _0809DEDC: .4byte 0x00004a02 _0809DEE0: .4byte 0x00005c03 _0809DEE4: .4byte 0x030042c0 _0809DEE8: .4byte 0x030041b4 _0809DEEC: .4byte 0x03004288 _0809DEF0: .4byte 0x03004280 _0809DEF4: .4byte 0x030041b0 _0809DEF8: .4byte 0x030041b8 _0809DEFC: .4byte REG_BG0HOFS thumb_func_end sub_809DE64 thumb_func_start sub_809DF00 sub_809DF00: @ 809DF00 push {lr} ldr r0, _0809DF18 adds r0, 0x74 ldrb r0, [r0] cmp r0, 0xC bls _0809DF0E b _0809E030 _0809DF0E: lsls r0, 2 ldr r1, _0809DF1C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809DF18: .4byte 0x02018000 _0809DF1C: .4byte _0809DF20 .align 2, 0 _0809DF20: .4byte _0809DF54 .4byte _0809DF64 .4byte _0809DF74 .4byte _0809DF88 .4byte _0809DF9C .4byte _0809DFAC .4byte _0809DFC4 .4byte _0809DFD4 .4byte _0809DFE0 .4byte _0809DFEC .4byte _0809DFF8 .4byte _0809E004 .4byte _0809E010 _0809DF54: ldr r0, _0809DF60 movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram b _0809E030 .align 2, 0 _0809DF60: .4byte gUnknown_08E72A78 _0809DF64: ldr r0, _0809DF6C ldr r1, _0809DF70 b _0809DFB0 .align 2, 0 _0809DF6C: .4byte gUnknown_08E73508 _0809DF70: .4byte 0x0600e000 _0809DF74: ldr r0, _0809DF80 ldr r1, _0809DF84 bl LZDecompressVram b _0809E030 .align 2, 0 _0809DF80: .4byte gUnknown_08E74E88 _0809DF84: .4byte 0x0600e800 _0809DF88: ldr r0, _0809DF94 ldr r1, _0809DF98 bl LZDecompressVram b _0809E030 .align 2, 0 _0809DF94: .4byte gUnknown_08E73D08 _0809DF98: .4byte 0x06004800 _0809DF9C: ldr r0, _0809DFA4 ldr r1, _0809DFA8 b _0809DFB0 .align 2, 0 _0809DFA4: .4byte gUnknown_08E73E88 _0809DFA8: .4byte 0x06005800 _0809DFAC: ldr r0, _0809DFBC ldr r1, _0809DFC0 _0809DFB0: movs r2, 0x80 lsls r2, 3 bl CpuSet b _0809E030 .align 2, 0 _0809DFBC: .4byte gUnknown_08E74688 _0809DFC0: .4byte 0x06006800 _0809DFC4: ldr r0, _0809DFD0 movs r1, 0 movs r2, 0xA0 bl LoadCompressedPalette b _0809E030 .align 2, 0 _0809DFD0: .4byte gUnknown_08E73468 _0809DFD4: ldr r0, _0809DFDC bl LoadCompressedObjectPic b _0809E030 .align 2, 0 _0809DFDC: .4byte gUnknown_083C11B8 _0809DFE0: ldr r0, _0809DFE8 bl LoadCompressedObjectPic b _0809E030 .align 2, 0 _0809DFE8: .4byte gUnknown_083C1270 _0809DFEC: ldr r0, _0809DFF4 bl LoadCompressedObjectPic b _0809E030 .align 2, 0 _0809DFF4: .4byte gUnknown_083C12F4 _0809DFF8: ldr r0, _0809E000 bl LoadCompressedObjectPalette b _0809E030 .align 2, 0 _0809E000: .4byte gUnknown_083C12FC _0809E004: ldr r0, _0809E00C bl LoadCompressedObjectPalette b _0809E030 .align 2, 0 _0809E00C: .4byte gUnknown_083C1278 _0809E010: ldr r0, _0809E028 movs r1, 0xE8 lsls r1, 1 movs r2, 0x60 bl LoadCompressedPalette ldr r0, _0809E02C adds r0, 0x74 movs r1, 0 strb r1, [r0] movs r0, 0x1 b _0809E03C .align 2, 0 _0809E028: .4byte gUnknown_08E726E4 _0809E02C: .4byte 0x02018000 _0809E030: ldr r1, _0809E040 adds r1, 0x74 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0 _0809E03C: pop {r1} bx r1 .align 2, 0 _0809E040: .4byte 0x02018000 thumb_func_end sub_809DF00 thumb_func_start sub_809E044 sub_809E044: @ 809E044 push {r4,r5,lr} ldr r4, _0809E0F4 adds r0, r4, 0 movs r1, 0x81 movs r2, 0x2 bl LoadPalette adds r5, r4, 0x2 adds r0, r5, 0 movs r1, 0x88 movs r2, 0x2 bl LoadPalette adds r0, r4, 0 movs r1, 0x8F movs r2, 0x2 bl LoadPalette adds r0, r5, 0 movs r1, 0x89 movs r2, 0x2 bl LoadPalette subs r5, 0x12 adds r0, r5, 0 movs r1, 0xD1 movs r2, 0x4 bl LoadPalette adds r0, r4, 0 subs r0, 0x8 movs r1, 0xD3 movs r2, 0x4 bl LoadPalette adds r0, r4, 0 movs r1, 0xD5 movs r2, 0x4 bl LoadPalette adds r0, r5, 0 movs r1, 0xD7 movs r2, 0x4 bl LoadPalette adds r0, r4, 0 subs r0, 0x14 movs r1, 0xD9 movs r2, 0x4 bl LoadPalette adds r0, r4, 0 subs r0, 0xC movs r1, 0xDB movs r2, 0x4 bl LoadPalette adds r0, r4, 0 subs r0, 0x18 movs r1, 0xDD movs r2, 0x2 bl LoadPalette subs r5, 0x6 adds r0, r5, 0 movs r1, 0xDE movs r2, 0x2 bl LoadPalette subs r4, 0x1A adds r0, r4, 0 movs r1, 0xDF movs r2, 0x2 bl LoadPalette ldr r0, _0809E0F8 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette adds r0, r5, 0 movs r1, 0xF9 movs r2, 0x2 bl LoadPalette pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809E0F4: .4byte gUnknownPalette_81E6692+0x1C _0809E0F8: .4byte gFontDefaultPalette thumb_func_end sub_809E044 thumb_func_start sub_809E0FC sub_809E0FC: @ 809E0FC push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0809E134 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0809E138 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0809E134: .4byte 0x03004b20 _0809E138: .4byte sub_809E13C thumb_func_end sub_809E0FC thumb_func_start sub_809E13C sub_809E13C: @ 809E13C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl sub_8055870 cmp r0, 0x1 beq _0809E182 ldr r0, _0809E188 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0809E182 ldr r1, _0809E18C ldr r4, _0809E190 ldrb r0, [r4, 0x9] strb r0, [r1] bl ResetSpriteData bl FreeAllSpritePalettes bl sub_8075398 ldr r0, _0809E194 ldr r1, _0809E198 movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl ldr r0, [r4, 0x4] bl SetMainCallback2 adds r0, r5, 0 bl DestroyTask _0809E182: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809E188: .4byte 0x0202f388 _0809E18C: .4byte 0x020384f0 _0809E190: .4byte 0x02018000 _0809E194: .4byte 0x03007380 _0809E198: .4byte 0x0000ffff thumb_func_end sub_809E13C thumb_func_start sub_809E19C sub_809E19C: @ 809E19C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0809E1C8 ldrb r1, [r0, 0x7] movs r2, 0x80 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0809E25A ldr r5, _0809E1CC ldrh r1, [r5, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0809E1D0 movs r1, 0x1 negs r1, r1 adds r0, r4, 0 bl sub_809F1B8 b _0809E25A .align 2, 0 _0809E1C8: .4byte 0x0202f388 _0809E1CC: .4byte 0x03001770 _0809E1D0: adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0809E1E2 adds r0, r4, 0 movs r1, 0x1 bl sub_809F1B8 b _0809E25A _0809E1E2: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0809E1F6 bl sub_80F9284 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809E202 _0809E1F6: movs r1, 0x1 negs r1, r1 adds r0, r4, 0 bl sub_809F134 b _0809E25A _0809E202: ldrh r1, [r5, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0809E218 bl sub_80F9284 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0809E222 _0809E218: adds r0, r4, 0 movs r1, 0x1 bl sub_809F134 b _0809E25A _0809E222: ldrh r1, [r5, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809E24C ldr r5, _0809E248 ldrb r0, [r5, 0xB] cmp r0, 0x1 bls _0809E23A adds r0, r4, 0 bl sub_809EA50 _0809E23A: ldrb r0, [r5, 0xB] cmp r0, 0 bne _0809E25A adds r0, r4, 0 bl sub_809E0FC b _0809E25A .align 2, 0 _0809E248: .4byte 0x02018000 _0809E24C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809E25A adds r0, r4, 0 bl sub_809E0FC _0809E25A: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_809E19C thumb_func_start sub_809E260 sub_809E260: @ 809E260 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0809E29C ldrb r1, [r0, 0x7] movs r2, 0x80 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0809E276 b _0809E3EE _0809E276: ldr r5, _0809E2A0 ldrh r1, [r5, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0809E2AC ldr r1, _0809E2A4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x4 strh r1, [r0, 0x8] subs r1, 0x5 ldr r2, _0809E2A8 adds r0, r4, 0 bl sub_809E8F0 b _0809E3EE .align 2, 0 _0809E29C: .4byte 0x0202f388 _0809E2A0: .4byte 0x03001770 _0809E2A4: .4byte 0x03004b20 _0809E2A8: .4byte 0x02018079 _0809E2AC: adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0809E2D8 ldr r1, _0809E2D0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x4 strh r1, [r0, 0x8] ldr r2, _0809E2D4 adds r0, r4, 0 movs r1, 0x1 bl sub_809E8F0 b _0809E3EE .align 2, 0 _0809E2D0: .4byte 0x03004b20 _0809E2D4: .4byte 0x02018079 _0809E2D8: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0809E2EC bl sub_80F9284 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809E324 _0809E2EC: ldr r1, _0809E320 ldrb r0, [r1, 0xB] cmp r0, 0x3 bne _0809E314 adds r0, r1, 0 adds r0, 0x79 ldrb r0, [r0] cmp r0, 0x4 bne _0809E308 adds r0, r1, 0 adds r0, 0x7C ldrh r0, [r0] cmp r0, 0 beq _0809E314 _0809E308: movs r0, 0 movs r1, 0xE movs r2, 0x9 movs r3, 0x12 bl Reset _0809E314: movs r1, 0x1 negs r1, r1 adds r0, r4, 0 bl sub_809F134 b _0809E3EE .align 2, 0 _0809E320: .4byte 0x02018000 _0809E324: ldrh r1, [r5, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0809E33A bl sub_80F9284 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0809E37C _0809E33A: ldr r1, _0809E378 adds r2, r1, 0 adds r2, 0x76 ldrb r0, [r1, 0xB] ldrb r2, [r2] cmp r0, r2 beq _0809E3EE cmp r0, 0x2 bne _0809E36C adds r0, r1, 0 adds r0, 0x79 ldrb r0, [r0] cmp r0, 0x4 bne _0809E360 adds r0, r1, 0 adds r0, 0x7C ldrh r0, [r0] cmp r0, 0 beq _0809E36C _0809E360: movs r0, 0 movs r1, 0xE movs r2, 0x9 movs r3, 0x12 bl Reset _0809E36C: adds r0, r4, 0 movs r1, 0x1 bl sub_809F134 b _0809E3EE .align 2, 0 _0809E378: .4byte 0x02018000 _0809E37C: ldrh r1, [r5, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809E3D4 adds r0, r4, 0 bl sub_809F7D0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0809E3A0 ldr r0, _0809E3BC adds r5, r0, 0 adds r5, 0x79 ldrb r0, [r5] cmp r0, 0x4 bne _0809E3C4 _0809E3A0: ldr r0, _0809E3BC adds r1, r0, 0 adds r1, 0x79 ldrb r1, [r1] adds r0, 0x7A strb r1, [r0] ldr r1, _0809E3C0 ldrb r0, [r0] strh r0, [r1] adds r0, r4, 0 bl sub_809E0FC b _0809E3EE .align 2, 0 _0809E3BC: .4byte 0x02018000 _0809E3C0: .4byte 0x0202e8ce _0809E3C4: movs r0, 0x20 bl audio_play ldrb r1, [r5] adds r0, r4, 0 bl sub_809F9D0 b _0809E3EE _0809E3D4: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809E3EE ldr r0, _0809E3F4 adds r0, 0x7A movs r1, 0x4 strb r1, [r0] ldr r0, _0809E3F8 strh r1, [r0] adds r0, r4, 0 bl sub_809E0FC _0809E3EE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809E3F4: .4byte 0x02018000 _0809E3F8: .4byte 0x0202e8ce thumb_func_end sub_809E260 thumb_func_start sub_809E3FC sub_809E3FC: @ 809E3FC push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 adds r7, r5, 0 ldr r0, _0809E438 ldrb r1, [r0, 0x7] movs r2, 0x80 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0809E502 ldr r0, _0809E43C ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0809E448 ldr r1, _0809E440 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x4 strh r1, [r0, 0x8] subs r1, 0x5 ldr r2, _0809E444 adds r0, r5, 0 bl sub_809E8F0 b _0809E502 .align 2, 0 _0809E438: .4byte 0x0202f388 _0809E43C: .4byte 0x03001770 _0809E440: .4byte 0x03004b20 _0809E444: .4byte 0x02018079 _0809E448: adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0809E474 ldr r1, _0809E46C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x4 strh r1, [r0, 0x8] ldr r2, _0809E470 adds r0, r5, 0 movs r1, 0x1 bl sub_809E8F0 b _0809E502 .align 2, 0 _0809E46C: .4byte 0x03004b20 _0809E470: .4byte 0x02018079 _0809E474: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809E4EE ldr r4, _0809E4A8 adds r6, r4, 0 adds r6, 0x79 ldrb r0, [r6] cmp r0, 0x4 beq _0809E4E0 adds r0, r4, 0 adds r0, 0x7B ldrb r0, [r0] cmp r0, 0 bne _0809E4E0 adds r0, r4, 0 adds r0, 0x10 bl sub_809E508 lsls r0, 24 cmp r0, 0 bne _0809E4AC movs r0, 0x20 bl audio_play b _0809E502 .align 2, 0 _0809E4A8: .4byte 0x02018000 _0809E4AC: movs r0, 0x5 bl audio_play ldrb r1, [r6] adds r0, r4, 0 adds r0, 0x7A strb r1, [r0] movs r0, 0x1 bl sub_80A1B40 movs r0, 0x13 bl sub_80A1A30 ldr r1, _0809E4D8 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0809E4DC str r1, [r0] b _0809E502 .align 2, 0 _0809E4D8: .4byte 0x03004b20 _0809E4DC: .4byte sub_809E534 _0809E4E0: movs r0, 0x5 bl audio_play adds r0, r7, 0 bl sub_809EAC8 b _0809E502 _0809E4EE: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809E502 movs r0, 0x5 bl audio_play adds r0, r7, 0 bl sub_809EAC8 _0809E502: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_809E3FC thumb_func_start sub_809E508 sub_809E508: @ 809E508 push {r4,r5,lr} adds r5, r0, 0 movs r4, 0x1 _0809E50E: adds r0, r5, 0 adds r1, r4, 0 bl sub_809F760 lsls r0, 16 cmp r0, 0 beq _0809E520 movs r0, 0x1 b _0809E52C _0809E520: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _0809E50E movs r0, 0 _0809E52C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809E508 thumb_func_start sub_809E534 sub_809E534: @ 809E534 push {lr} lsls r0, 24 lsrs r3, r0, 24 adds r2, r3, 0 ldr r0, _0809E564 ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0809E570 ldr r1, _0809E568 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r1, 0x3 strh r1, [r0, 0x8] subs r1, 0x4 ldr r2, _0809E56C adds r0, r3, 0 bl sub_809E8F0 b _0809E5C0 .align 2, 0 _0809E564: .4byte 0x03001770 _0809E568: .4byte 0x03004b20 _0809E56C: .4byte 0x0201807a _0809E570: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0809E59C ldr r1, _0809E594 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r1, 0x3 strh r1, [r0, 0x8] ldr r2, _0809E598 adds r0, r3, 0 movs r1, 0x1 bl sub_809E8F0 b _0809E5C0 .align 2, 0 _0809E594: .4byte 0x03004b20 _0809E598: .4byte 0x0201807a _0809E59C: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809E5AE adds r0, r3, 0 movs r1, 0x1 bl sub_809E83C b _0809E5C0 _0809E5AE: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809E5C0 movs r1, 0x1 negs r1, r1 adds r0, r2, 0 bl sub_809E83C _0809E5C0: pop {r0} bx r0 thumb_func_end sub_809E534 thumb_func_start sub_809E5C4 sub_809E5C4: @ 809E5C4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 ldr r1, _0809E6D0 ldr r5, [r1] ldrb r2, [r1, 0x9] movs r0, 0x64 muls r0, r2 adds r5, r0 adds r0, r1, 0 adds r0, 0x79 ldrb r0, [r0] mov r8, r0 adds r1, 0x7A ldrb r6, [r1] adds r0, 0xD str r0, [sp, 0x8] adds r0, r5, 0 ldr r1, [sp, 0x8] bl PokemonGetField mov r1, sp adds r1, 0x2 str r1, [sp, 0x14] strh r0, [r1] adds r2, r6, 0 adds r2, 0xD str r2, [sp, 0xC] adds r0, r5, 0 adds r1, r2, 0 bl PokemonGetField mov r1, sp strh r0, [r1] mov r3, r8 adds r3, 0x11 str r3, [sp, 0x10] adds r0, r5, 0 adds r1, r3, 0 bl PokemonGetField mov r7, sp adds r7, 0x5 str r7, [sp, 0x18] strb r0, [r7] adds r0, r6, 0 adds r0, 0x11 str r0, [sp, 0x1C] adds r0, r5, 0 ldr r1, [sp, 0x1C] bl PokemonGetField add r1, sp, 0x4 mov r10, r1 strb r0, [r1] adds r0, r5, 0 movs r1, 0x15 bl PokemonGetField mov r4, sp adds r4, 0x6 strb r0, [r4] ldr r1, _0809E6D4 mov r2, r8 adds r0, r2, r1 ldrb r0, [r0] mov r9, r0 ldrb r0, [r4] adds r2, r0, 0 mov r3, r9 ands r2, r3 mov r7, r8 lsls r7, 1 mov r8, r7 asrs r2, r7 lsls r2, 24 lsrs r2, 24 adds r1, r6, r1 ldrb r3, [r1] adds r1, r0, 0 ands r1, r3 lsls r6, 1 asrs r1, r6 lsls r1, 24 lsrs r1, 24 mov r7, r9 bics r0, r7 strb r0, [r4] ldrb r0, [r4] bics r0, r3 strb r0, [r4] lsls r2, r6 mov r0, r8 lsls r1, r0 adds r2, r1 ldrb r0, [r4] orrs r0, r2 strb r0, [r4] adds r0, r5, 0 ldr r1, [sp, 0x8] mov r2, sp bl pokemon_setattr adds r0, r5, 0 ldr r1, [sp, 0xC] ldr r2, [sp, 0x14] bl pokemon_setattr adds r0, r5, 0 ldr r1, [sp, 0x10] mov r2, r10 bl pokemon_setattr adds r0, r5, 0 ldr r1, [sp, 0x1C] ldr r2, [sp, 0x18] bl pokemon_setattr adds r0, r5, 0 movs r1, 0x15 adds r2, r4, 0 bl pokemon_setattr add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809E6D0: .4byte 0x02018000 _0809E6D4: .4byte gUnknown_08208238 thumb_func_end sub_809E5C4 thumb_func_start sub_809E6D8 sub_809E6D8: @ 809E6D8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 ldr r2, _0809E7E8 ldr r5, [r2] ldrb r1, [r2, 0x9] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r5, r0 adds r0, r2, 0 adds r0, 0x79 ldrb r0, [r0] mov r8, r0 adds r2, 0x7A ldrb r6, [r2] adds r0, 0xD str r0, [sp, 0x8] adds r0, r5, 0 ldr r1, [sp, 0x8] bl PokemonGetEncryptedField mov r1, sp adds r1, 0x2 str r1, [sp, 0x14] strh r0, [r1] adds r2, r6, 0 adds r2, 0xD str r2, [sp, 0xC] adds r0, r5, 0 adds r1, r2, 0 bl PokemonGetEncryptedField mov r1, sp strh r0, [r1] mov r3, r8 adds r3, 0x11 str r3, [sp, 0x10] adds r0, r5, 0 adds r1, r3, 0 bl PokemonGetEncryptedField mov r7, sp adds r7, 0x5 str r7, [sp, 0x18] strb r0, [r7] adds r0, r6, 0 adds r0, 0x11 str r0, [sp, 0x1C] adds r0, r5, 0 ldr r1, [sp, 0x1C] bl PokemonGetEncryptedField add r1, sp, 0x4 mov r10, r1 strb r0, [r1] adds r0, r5, 0 movs r1, 0x15 bl PokemonGetEncryptedField mov r4, sp adds r4, 0x6 strb r0, [r4] ldr r1, _0809E7EC mov r2, r8 adds r0, r2, r1 ldrb r0, [r0] mov r9, r0 ldrb r0, [r4] adds r2, r0, 0 mov r3, r9 ands r2, r3 mov r7, r8 lsls r7, 1 mov r8, r7 asrs r2, r7 lsls r2, 24 lsrs r2, 24 adds r1, r6, r1 ldrb r3, [r1] adds r1, r0, 0 ands r1, r3 lsls r6, 1 asrs r1, r6 lsls r1, 24 lsrs r1, 24 mov r7, r9 bics r0, r7 strb r0, [r4] ldrb r0, [r4] bics r0, r3 strb r0, [r4] lsls r2, r6 mov r0, r8 lsls r1, r0 adds r2, r1 ldrb r0, [r4] orrs r0, r2 strb r0, [r4] adds r0, r5, 0 ldr r1, [sp, 0x8] mov r2, sp bl PokemonSetEncryptedField adds r0, r5, 0 ldr r1, [sp, 0xC] ldr r2, [sp, 0x14] bl PokemonSetEncryptedField adds r0, r5, 0 ldr r1, [sp, 0x10] mov r2, r10 bl PokemonSetEncryptedField adds r0, r5, 0 ldr r1, [sp, 0x1C] ldr r2, [sp, 0x18] bl PokemonSetEncryptedField adds r0, r5, 0 movs r1, 0x15 adds r2, r4, 0 bl PokemonSetEncryptedField add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809E7E8: .4byte 0x02018000 _0809E7EC: .4byte gUnknown_08208238 thumb_func_end sub_809E6D8 thumb_func_start sub_809E7F0 sub_809E7F0: @ 809E7F0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_809F5F8 lsls r0, 24 cmp r0, 0 beq _0809E828 ldr r1, _0809E830 adds r2, r1, 0 adds r2, 0x74 movs r0, 0 strb r0, [r2] adds r0, r1, 0 adds r0, 0x10 adds r1, 0x79 bl sub_80A0428 ldr r1, _0809E834 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0809E838 str r1, [r0] adds r0, r4, 0 bl BgFrame_FillTileMap _0809E828: pop {r4} pop {r0} bx r0 .align 2, 0 _0809E830: .4byte 0x02018000 _0809E834: .4byte 0x03004b20 _0809E838: .4byte sub_809E3FC thumb_func_end sub_809E7F0 thumb_func_start sub_809E83C sub_809E83C: @ 809E83C push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl audio_play movs r0, 0x13 bl sub_80A1B1C movs r0, 0 bl sub_80A1B40 cmp r4, 0x1 bne _0809E8C0 ldr r1, _0809E87C adds r0, r1, 0 adds r0, 0x79 adds r2, r1, 0 adds r2, 0x7A ldrb r0, [r0] ldrb r2, [r2] cmp r0, r2 beq _0809E8CA ldrb r0, [r1, 0xE] cmp r0, 0 bne _0809E880 bl sub_809E5C4 b _0809E884 .align 2, 0 _0809E87C: .4byte 0x02018000 _0809E880: bl sub_809E6D8 _0809E884: ldr r4, _0809E8B4 adds r0, r4, 0 adds r0, 0x7A ldrb r0, [r0] adds r1, r4, 0 adds r1, 0x79 strb r0, [r1] adds r0, r4, 0 adds r0, 0x10 bl sub_809F678 adds r1, r4, 0 adds r1, 0x74 movs r0, 0x1 strb r0, [r1] ldr r1, _0809E8B8 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0809E8BC str r1, [r0] b _0809E8DE .align 2, 0 _0809E8B4: .4byte 0x02018000 _0809E8B8: .4byte 0x03004b20 _0809E8BC: .4byte sub_809E7F0 _0809E8C0: ldr r0, _0809E8E4 adds r1, r0, 0 adds r1, 0x69 bl sub_80A0428 _0809E8CA: ldr r0, _0809E8E8 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _0809E8EC str r0, [r1] adds r0, r5, 0 bl BgFrame_FillTileMap _0809E8DE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809E8E4: .4byte 0x02018010 _0809E8E8: .4byte 0x03004b20 _0809E8EC: .4byte sub_809E3FC thumb_func_end sub_809E83C thumb_func_start sub_809E8F0 sub_809E8F0: @ 809E8F0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r4, r1, 0 mov r9, r2 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 str r0, [sp] movs r0, 0x5 bl audio_play mov r1, r9 ldrb r6, [r1] ldr r1, _0809E944 mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x8] movs r2, 0 lsls r4, 24 asrs r4, 24 mov r10, r4 lsls r7, r0, 24 _0809E930: lsls r0, r6, 24 asrs r0, 24 add r0, r10 lsls r0, 24 lsrs r6, r0, 24 asrs r1, r0, 24 cmp r0, r7 ble _0809E948 movs r6, 0 b _0809E94E .align 2, 0 _0809E944: .4byte 0x03004b20 _0809E948: cmp r1, 0 bge _0809E94E lsrs r6, r7, 24 _0809E94E: lsls r4, r6, 24 lsrs r1, r4, 24 ldr r0, _0809EA10 str r2, [sp, 0x4] bl sub_809F760 lsls r0, 16 adds r5, r4, 0 ldr r2, [sp, 0x4] cmp r0, 0 bne _0809E97A asrs r0, r5, 24 cmp r0, 0x4 beq _0809E97A lsls r0, r2, 24 movs r3, 0x80 lsls r3, 17 adds r0, r3 lsrs r2, r0, 24 asrs r0, 24 cmp r0, 0x3 ble _0809E930 _0809E97A: mov r1, r9 ldrb r0, [r1] cmp r0, 0x4 bne _0809E996 asrs r0, r5, 24 cmp r0, 0x4 beq _0809E996 ldr r0, _0809EA14 adds r0, 0x7C ldrh r0, [r0] mov r2, r8 lsls r7, r2, 2 cmp r0, 0 beq _0809E9AC _0809E996: ldr r2, _0809EA18 mov r3, r8 lsls r1, r3, 2 adds r0, r1, r3 lsls r0, 3 adds r0, r2 movs r2, 0x22 ldrsh r0, [r0, r2] adds r7, r1, 0 cmp r0, 0x1 bne _0809E9D0 _0809E9AC: lsrs r4, r5, 24 movs r0, 0x2 adds r1, r4, 0 bl sub_80A1488 movs r0, 0x2 adds r1, r4, 0 bl sub_80A1654 ldr r1, _0809EA18 mov r3, r8 adds r0, r7, r3 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x22] movs r0, 0 str r0, [sp] _0809E9D0: mov r1, r9 ldrb r0, [r1] cmp r0, 0x4 beq _0809E9FE asrs r0, r5, 24 cmp r0, 0x4 bne _0809E9FE ldr r0, _0809EA14 adds r0, 0x7C ldrh r0, [r0] cmp r0, 0 bne _0809E9FE movs r4, 0x2 negs r4, r4 lsrs r5, 24 adds r0, r4, 0 adds r1, r5, 0 bl sub_80A1488 adds r0, r4, 0 adds r1, r5, 0 bl sub_80A1654 _0809E9FE: mov r2, r9 strb r6, [r2] ldr r0, _0809EA1C cmp r9, r0 bne _0809EA20 movs r0, 0 bl sub_80A1C30 b _0809EA26 .align 2, 0 _0809EA10: .4byte 0x02018010 _0809EA14: .4byte 0x02018000 _0809EA18: .4byte 0x03004b20 _0809EA1C: .4byte 0x02018079 _0809EA20: movs r0, 0x1 bl sub_80A1C30 _0809EA26: ldr r3, [sp] cmp r3, 0 beq _0809EA34 ldr r0, _0809EA4C mov r1, r9 bl sub_80A0428 _0809EA34: mov r0, r8 bl BgFrame_FillTileMap add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809EA4C: .4byte 0x02018010 thumb_func_end sub_809E8F0 thumb_func_start sub_809EA50 sub_809EA50: @ 809EA50 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x5 bl audio_play ldr r4, _0809EABC adds r1, r4, 0 adds r1, 0x79 movs r0, 0 strb r0, [r1] movs r0, 0x2 movs r1, 0 bl sub_80A1488 movs r0, 0x2 movs r1, 0 bl sub_80A1654 adds r0, r4, 0 adds r0, 0x7B ldrb r0, [r0] cmp r0, 0 bne _0809EA8C adds r1, r4, 0 adds r1, 0x7F movs r0, 0x5 strb r0, [r1] bl sub_80A0DD0 _0809EA8C: movs r0, 0 bl sub_80A16CC adds r0, r4, 0 adds r0, 0x10 bl sub_80A029C movs r0, 0x9 bl sub_80A1A30 ldr r1, _0809EAC0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0809EAC4 str r1, [r0] adds r0, r5, 0 bl BgFrame_FillTileMap pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809EABC: .4byte 0x02018000 _0809EAC0: .4byte 0x03004b20 _0809EAC4: .4byte sub_809E3FC thumb_func_end sub_809EA50 thumb_func_start sub_809EAC8 sub_809EAC8: @ 809EAC8 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r6, _0809EB34 adds r0, r6, 0 adds r0, 0x79 ldrb r0, [r0] cmp r0, 0x4 beq _0809EAEE movs r4, 0x2 negs r4, r4 adds r0, r4, 0 movs r1, 0 bl sub_80A1488 adds r0, r4, 0 movs r1, 0 bl sub_80A1654 _0809EAEE: movs r0, 0x9 bl sub_80A1B1C movs r0, 0x1 bl sub_80A16CC movs r0, 0xF movs r1, 0xC movs r2, 0x1C movs r3, 0xD bl Reset movs r0, 0xB movs r1, 0xF movs r2, 0x1C movs r3, 0x12 bl Reset adds r1, r6, 0 adds r1, 0x7F movs r0, 0x6 strb r0, [r1] bl sub_80A0DD0 ldr r1, _0809EB38 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0809EB3C str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809EB34: .4byte 0x02018000 _0809EB38: .4byte 0x03004b20 _0809EB3C: .4byte sub_809E19C thumb_func_end sub_809EAC8 thumb_func_start sub_809EB40 sub_809EB40: @ 809EB40 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0809EB6C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _0809EB74 cmp r0, 0x5 bne _0809EBA4 movs r0, 0x9 bl sub_80A1A30 movs r0, 0 strh r0, [r4, 0x8] ldr r0, _0809EB70 str r0, [r4] b _0809EBB4 .align 2, 0 _0809EB6C: .4byte 0x03004b20 _0809EB70: .4byte sub_809E260 _0809EB74: ldr r4, _0809EBBC adds r6, r4, 0 adds r6, 0x79 strb r0, [r6] adds r0, r4, 0 adds r0, 0x7C ldrh r0, [r0] cmp r0, 0 beq _0809EB96 movs r0, 0xA movs r1, 0 bl sub_80A1488 ldrb r1, [r6] movs r0, 0xA bl sub_80A1654 _0809EB96: movs r0, 0 bl sub_80A16CC adds r0, r4, 0 adds r0, 0x10 bl sub_80A029C _0809EBA4: ldr r0, _0809EBC0 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _0809EBB4: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809EBBC: .4byte 0x02018000 _0809EBC0: .4byte 0x03004b20 thumb_func_end sub_809EB40 thumb_func_start sub_809EBC4 sub_809EBC4: @ 809EBC4 push {r4,lr} ldr r4, _0809EC28 ldrb r0, [r4, 0xB] cmp r0, 0 beq _0809EC22 bl sub_80A0EE8 ldr r0, _0809EC2C movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 strh r1, [r0] ldrb r0, [r4, 0xB] cmp r0, 0x1 bne _0809EBF4 ldr r2, _0809EC30 ldrh r1, [r2] ldr r0, _0809EC34 ands r0, r1 movs r3, 0x80 lsls r3, 4 adds r1, r3, 0 adds r0, r1 strh r0, [r2] _0809EBF4: ldrb r3, [r4, 0xB] cmp r3, 0x2 bne _0809EC0C ldr r2, _0809EC30 ldrh r1, [r2] ldr r0, _0809EC34 ands r0, r1 movs r4, 0xA0 lsls r4, 4 adds r1, r4, 0 adds r0, r1 strh r0, [r2] _0809EC0C: cmp r3, 0x3 bne _0809EC22 ldr r2, _0809EC30 ldrh r1, [r2] ldr r0, _0809EC34 ands r0, r1 movs r3, 0xC0 lsls r3, 4 adds r1, r3, 0 adds r0, r1 strh r0, [r2] _0809EC22: pop {r4} pop {r0} bx r0 .align 2, 0 _0809EC28: .4byte 0x02018000 _0809EC2C: .4byte 0x030042c0 _0809EC30: .4byte REG_BG1CNT _0809EC34: .4byte 0x0000e0ff thumb_func_end sub_809EBC4 thumb_func_start sub_809EC38 sub_809EC38: @ 809EC38 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _0809EC5C adds r6, r0, r1 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0x5 bls _0809EC52 b _0809EE64 _0809EC52: lsls r0, 2 ldr r1, _0809EC60 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809EC5C: .4byte 0x03004b28 _0809EC60: .4byte _0809EC64 .align 2, 0 _0809EC64: .4byte _0809EC7C .4byte _0809ED14 .4byte _0809ED98 .4byte _0809EE12 .4byte _0809EE1C .4byte _0809EE4C _0809EC7C: ldr r1, _0809ECB8 adds r0, r1, 0 adds r0, 0x80 ldrb r0, [r0] cmp r0, 0 bne _0809ECC8 ldrb r3, [r1, 0xB] cmp r3, 0 beq _0809EC98 ldr r1, _0809ECBC movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] _0809EC98: cmp r3, 0x1 bne _0809ECAE ldr r2, _0809ECC0 ldrh r1, [r2] ldr r0, _0809ECC4 ands r0, r1 movs r4, 0x80 lsls r4, 4 adds r1, r4, 0 adds r0, r1 strh r0, [r2] _0809ECAE: cmp r3, 0x2 beq _0809ECB4 b _0809EE3A _0809ECB4: ldr r2, _0809ECC0 b _0809ECF6 .align 2, 0 _0809ECB8: .4byte 0x02018000 _0809ECBC: .4byte 0x03004288 _0809ECC0: .4byte REG_BG2CNT _0809ECC4: .4byte 0x0000e0ff _0809ECC8: ldrb r3, [r1, 0xB] cmp r3, 0 beq _0809ECD8 ldr r1, _0809ED08 movs r4, 0x80 lsls r4, 1 adds r0, r4, 0 strh r0, [r1] _0809ECD8: cmp r3, 0x1 bne _0809ECEE ldr r2, _0809ED0C ldrh r1, [r2] ldr r0, _0809ED10 ands r0, r1 movs r4, 0x80 lsls r4, 4 adds r1, r4, 0 adds r0, r1 strh r0, [r2] _0809ECEE: cmp r3, 0x2 beq _0809ECF4 b _0809EE3A _0809ECF4: ldr r2, _0809ED0C _0809ECF6: ldrh r1, [r2] ldr r0, _0809ED10 ands r0, r1 movs r3, 0xA0 lsls r3, 4 adds r1, r3, 0 adds r0, r1 strh r0, [r2] b _0809EE3A .align 2, 0 _0809ED08: .4byte 0x030042c0 _0809ED0C: .4byte REG_BG1CNT _0809ED10: .4byte 0x0000e0ff _0809ED14: ldr r0, _0809ED48 adds r0, 0x80 ldrb r0, [r0] cmp r0, 0 bne _0809ED5C ldr r1, _0809ED4C ldrh r0, [r1] subs r0, 0x20 strh r0, [r1] lsls r0, 16 cmp r0, 0 beq _0809ED2E b _0809EE64 _0809ED2E: ldr r3, _0809ED50 ldrh r2, [r3] ldr r1, _0809ED54 adds r0, r1, 0 ands r0, r2 adds r0, 0x2 strh r0, [r3] ldr r2, _0809ED58 ldrh r0, [r2] ands r1, r0 adds r1, 0x1 strh r1, [r2] b _0809EE3A .align 2, 0 _0809ED48: .4byte 0x02018000 _0809ED4C: .4byte 0x030042c0 _0809ED50: .4byte REG_BG1CNT _0809ED54: .4byte 0x0000fffc _0809ED58: .4byte REG_BG2CNT _0809ED5C: ldr r1, _0809ED88 ldrh r0, [r1] subs r0, 0x20 strh r0, [r1] lsls r0, 16 cmp r0, 0 beq _0809ED6C b _0809EE64 _0809ED6C: ldr r3, _0809ED8C ldrh r2, [r3] ldr r1, _0809ED90 adds r0, r1, 0 ands r0, r2 adds r0, 0x1 strh r0, [r3] ldr r2, _0809ED94 ldrh r0, [r2] ands r1, r0 adds r1, 0x2 strh r1, [r2] b _0809EE3A .align 2, 0 _0809ED88: .4byte 0x03004288 _0809ED8C: .4byte REG_BG1CNT _0809ED90: .4byte 0x0000fffc _0809ED94: .4byte REG_BG2CNT _0809ED98: ldr r1, _0809EDD4 ldrb r3, [r1, 0xB] adds r0, r3, 0x1 adds r2, r1, 0 adds r2, 0x7E strb r0, [r2] ldrb r2, [r1, 0x8] subs r0, r2, 0x2 lsls r0, 24 lsrs r0, 24 adds r5, r1, 0 cmp r0, 0x1 bhi _0809EDD8 adds r1, 0x7F movs r0, 0 strb r0, [r1] adds r4, r5, 0 adds r4, 0x10 adds r0, r4, 0 bl sub_80A029C adds r5, 0x79 adds r0, r4, 0 adds r1, r5, 0 bl sub_80A0428 ldrb r0, [r5] bl sub_80A00F4 b _0809EE3A .align 2, 0 _0809EDD4: .4byte 0x02018000 _0809EDD8: lsls r0, r3, 24 lsrs r0, 24 cmp r0, 0x1 bls _0809EDFA adds r0, r5, 0 adds r0, 0x7B ldrb r0, [r0] cmp r0, 0 beq _0809EDF2 lsls r0, r2, 24 lsrs r0, 24 cmp r0, 0x4 bne _0809EDFA _0809EDF2: adds r1, r5, 0 adds r1, 0x7F movs r0, 0x6 b _0809EE0E _0809EDFA: ldrb r0, [r5, 0xB] cmp r0, 0 bne _0809EE08 adds r1, r5, 0 adds r1, 0x7F movs r0, 0x7 b _0809EE0E _0809EE08: adds r1, r5, 0 adds r1, 0x7F movs r0, 0 _0809EE0E: strb r0, [r1] b _0809EE3A _0809EE12: bl sub_80A0EE8 bl sub_80A0DD0 b _0809EE3A _0809EE1C: ldr r0, _0809EE44 ldr r4, _0809EE48 ldrb r1, [r4, 0xB] lsls r1, 2 adds r1, r0 adds r0, r4, 0 adds r0, 0x10 ldr r1, [r1] bl _call_via_r1 adds r4, 0x80 ldrb r0, [r4] movs r1, 0x1 eors r0, r1 strb r0, [r4] _0809EE3A: ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] b _0809EE64 .align 2, 0 _0809EE44: .4byte gUnknown_083C1598 _0809EE48: .4byte 0x02018000 _0809EE4C: bl sub_8055870 cmp r0, 0x1 beq _0809EE64 ldr r1, _0809EE6C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0809EE70 ldr r1, [r1] str r1, [r0] _0809EE64: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809EE6C: .4byte 0x03004b20 _0809EE70: .4byte 0x03005cf0 thumb_func_end sub_809EC38 thumb_func_start sub_809EE74 sub_809EE74: @ 809EE74 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _0809EE98 adds r6, r0, r1 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0x6 bls _0809EE8E b _0809F0C0 _0809EE8E: lsls r0, 2 ldr r1, _0809EE9C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809EE98: .4byte 0x03004b28 _0809EE9C: .4byte _0809EEA0 .align 2, 0 _0809EEA0: .4byte _0809EEBC .4byte _0809EEE0 .4byte _0809EFB4 .4byte _0809EFF4 .4byte _0809F06E .4byte _0809F078 .4byte _0809F0A8 _0809EEBC: ldr r0, _0809EECC adds r0, 0x80 ldrb r1, [r0] cmp r1, 0 bne _0809EED4 ldr r0, _0809EED0 strh r1, [r0] b _0809F096 .align 2, 0 _0809EECC: .4byte 0x02018000 _0809EED0: .4byte 0x03004288 _0809EED4: ldr r1, _0809EEDC movs r0, 0 strh r0, [r1] b _0809F096 .align 2, 0 _0809EEDC: .4byte 0x030042c0 _0809EEE0: ldr r1, _0809EF30 adds r0, r1, 0 adds r0, 0x80 ldrb r0, [r0] cmp r0, 0 bne _0809EF4C ldrb r3, [r1, 0xB] cmp r3, 0x1 bne _0809EF02 ldr r2, _0809EF34 ldrh r1, [r2] ldr r0, _0809EF38 ands r0, r1 ldr r4, _0809EF3C adds r1, r4, 0 adds r0, r1 strh r0, [r2] _0809EF02: cmp r3, 0x2 bne _0809EF16 ldr r2, _0809EF34 ldrh r1, [r2] ldr r0, _0809EF38 ands r0, r1 ldr r4, _0809EF40 adds r1, r4, 0 adds r0, r1 strh r0, [r2] _0809EF16: cmp r3, 0x3 bne _0809EF2A ldr r2, _0809EF34 ldrh r1, [r2] ldr r0, _0809EF38 ands r0, r1 ldr r3, _0809EF44 adds r1, r3, 0 adds r0, r1 strh r0, [r2] _0809EF2A: ldr r2, _0809EF48 b _0809EF8C .align 2, 0 _0809EF30: .4byte 0x02018000 _0809EF34: .4byte REG_BG2CNT _0809EF38: .4byte 0x0000e0fc _0809EF3C: .4byte 0x00000801 _0809EF40: .4byte 0x00000a01 _0809EF44: .4byte 0x00000c01 _0809EF48: .4byte REG_BG1CNT _0809EF4C: ldrb r3, [r1, 0xB] cmp r3, 0x1 bne _0809EF62 ldr r2, _0809EF98 ldrh r1, [r2] ldr r0, _0809EF9C ands r0, r1 ldr r4, _0809EFA0 adds r1, r4, 0 adds r0, r1 strh r0, [r2] _0809EF62: cmp r3, 0x2 bne _0809EF76 ldr r2, _0809EF98 ldrh r1, [r2] ldr r0, _0809EF9C ands r0, r1 ldr r4, _0809EFA4 adds r1, r4, 0 adds r0, r1 strh r0, [r2] _0809EF76: cmp r3, 0x3 bne _0809EF8A ldr r2, _0809EF98 ldrh r1, [r2] ldr r0, _0809EF9C ands r0, r1 ldr r3, _0809EFA8 adds r1, r3, 0 adds r0, r1 strh r0, [r2] _0809EF8A: ldr r2, _0809EFAC _0809EF8C: ldrh r1, [r2] ldr r0, _0809EFB0 ands r0, r1 adds r0, 0x2 strh r0, [r2] b _0809F096 .align 2, 0 _0809EF98: .4byte REG_BG1CNT _0809EF9C: .4byte 0x0000e0fc _0809EFA0: .4byte 0x00000801 _0809EFA4: .4byte 0x00000a01 _0809EFA8: .4byte 0x00000c01 _0809EFAC: .4byte REG_BG2CNT _0809EFB0: .4byte 0x0000fffc _0809EFB4: ldr r0, _0809EFD4 adds r0, 0x80 ldrb r0, [r0] cmp r0, 0 bne _0809EFDC ldr r0, _0809EFD8 ldrh r1, [r0] adds r1, 0x20 strh r1, [r0] lsls r1, 16 movs r0, 0x80 lsls r0, 17 cmp r1, r0 bne _0809F0C0 b _0809F096 .align 2, 0 _0809EFD4: .4byte 0x02018000 _0809EFD8: .4byte 0x03004288 _0809EFDC: ldr r0, _0809EFF0 ldrh r1, [r0] adds r1, 0x20 strh r1, [r0] lsls r1, 16 movs r0, 0x80 lsls r0, 17 cmp r1, r0 bne _0809F0C0 b _0809F096 .align 2, 0 _0809EFF0: .4byte 0x030042c0 _0809EFF4: ldr r1, _0809F030 ldrb r3, [r1, 0xB] adds r0, r3, 0x1 adds r2, r1, 0 adds r2, 0x7E strb r0, [r2] ldrb r2, [r1, 0x8] subs r0, r2, 0x2 lsls r0, 24 lsrs r0, 24 adds r5, r1, 0 cmp r0, 0x1 bhi _0809F034 adds r1, 0x7F movs r0, 0 strb r0, [r1] adds r4, r5, 0 adds r4, 0x10 adds r0, r4, 0 bl sub_80A029C adds r5, 0x79 adds r0, r4, 0 adds r1, r5, 0 bl sub_80A0428 ldrb r0, [r5] bl sub_80A00F4 b _0809F096 .align 2, 0 _0809F030: .4byte 0x02018000 _0809F034: lsls r0, r3, 24 lsrs r0, 24 cmp r0, 0x1 bls _0809F056 adds r0, r5, 0 adds r0, 0x7B ldrb r0, [r0] cmp r0, 0 beq _0809F04E lsls r0, r2, 24 lsrs r0, 24 cmp r0, 0x4 bne _0809F056 _0809F04E: adds r1, r5, 0 adds r1, 0x7F movs r0, 0x6 b _0809F06A _0809F056: ldrb r0, [r5, 0xB] cmp r0, 0 bne _0809F064 adds r1, r5, 0 adds r1, 0x7F movs r0, 0x7 b _0809F06A _0809F064: adds r1, r5, 0 adds r1, 0x7F movs r0, 0 _0809F06A: strb r0, [r1] b _0809F096 _0809F06E: bl sub_80A0EE8 bl sub_80A0DD0 b _0809F096 _0809F078: ldr r0, _0809F0A0 ldr r4, _0809F0A4 ldrb r1, [r4, 0xB] lsls r1, 2 adds r1, r0 adds r0, r4, 0 adds r0, 0x10 ldr r1, [r1] bl _call_via_r1 adds r4, 0x80 ldrb r0, [r4] movs r1, 0x1 eors r0, r1 strb r0, [r4] _0809F096: ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] b _0809F0C0 .align 2, 0 _0809F0A0: .4byte gUnknown_083C1598 _0809F0A4: .4byte 0x02018000 _0809F0A8: bl sub_8055870 cmp r0, 0x1 beq _0809F0C0 ldr r1, _0809F0C8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0809F0CC ldr r1, [r1] str r1, [r0] _0809F0C0: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809F0C8: .4byte 0x03004b20 _0809F0CC: .4byte 0x03005cf0 thumb_func_end sub_809EE74 thumb_func_start sub_809F0D0 sub_809F0D0: @ 809F0D0 push {r4-r7,lr} adds r4, r1, 0 lsls r0, 24 lsrs r7, r0, 24 lsls r4, 24 lsrs r4, 24 ldr r1, _0809F110 ldrb r0, [r1, 0xB] adds r0, r4 movs r5, 0 strb r0, [r1, 0xB] ldr r2, _0809F114 ldr r1, _0809F118 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r6, r0, r1 ldr r0, [r6] str r0, [r2] bl sub_809FBE4 strh r5, [r6, 0x8] lsls r4, 24 asrs r4, 24 movs r0, 0x1 negs r0, r0 cmp r4, r0 bne _0809F120 ldr r0, _0809F11C str r0, [r6] b _0809F12A .align 2, 0 _0809F110: .4byte 0x02018000 _0809F114: .4byte 0x03005cf0 _0809F118: .4byte 0x03004b20 _0809F11C: .4byte sub_809EC38 _0809F120: ldr r1, _0809F130 str r1, [r6] adds r0, r7, 0 bl _call_via_r1 _0809F12A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809F130: .4byte sub_809EE74 thumb_func_end sub_809F0D0 thumb_func_start sub_809F134 sub_809F134: @ 809F134 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r4, _0809F1AC adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _0809F1A6 lsls r0, r5, 24 asrs r5, r0, 24 movs r0, 0x1 negs r0, r0 cmp r5, r0 bne _0809F168 adds r0, r4, 0 subs r0, 0x10 adds r1, r4, 0 adds r1, 0x65 ldrb r0, [r0, 0xB] ldrb r1, [r1] cmp r0, r1 beq _0809F1A6 _0809F168: cmp r5, 0x1 bne _0809F17C adds r0, r4, 0 subs r0, 0x10 adds r1, r4, 0 adds r1, 0x66 ldrb r0, [r0, 0xB] ldrb r1, [r1] cmp r0, r1 beq _0809F1A6 _0809F17C: ldr r0, _0809F1B0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _0809F1A6 ldr r0, _0809F1B4 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _0809F1A6 movs r0, 0x5 bl audio_play adds r0, r6, 0 adds r1, r5, 0 bl sub_809F0D0 _0809F1A6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809F1AC: .4byte 0x02018010 _0809F1B0: .4byte sub_80A1334 _0809F1B4: .4byte sub_80A1500 thumb_func_end sub_809F134 thumb_func_start sub_809F1B8 sub_809F1B8: @ 809F1B8 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r4, r1, 24 ldr r0, _0809F1E4 ldrb r1, [r0, 0xE] adds r2, r0, 0 cmp r1, 0x1 bne _0809F202 ldrb r0, [r2, 0xB] cmp r0, 0 beq _0809F1E8 lsls r1, r4, 24 asrs r1, 24 movs r4, 0x1 eors r1, r4 negs r0, r1 orrs r0, r1 lsrs r4, r0, 31 b _0809F1F4 .align 2, 0 _0809F1E4: .4byte 0x02018000 _0809F1E8: lsls r0, r4, 24 asrs r0, 24 movs r4, 0x3 cmp r0, 0x1 bne _0809F1F4 movs r4, 0x2 _0809F1F4: ldr r0, [r2] ldrb r1, [r2, 0x9] ldrb r2, [r2, 0xA] adds r3, r4, 0 bl sub_8095DCC b _0809F22C _0809F202: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809F224 bl sub_806B528 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809F224 lsls r0, r4, 24 asrs r0, 24 bl sub_809F3CC b _0809F22C _0809F224: lsls r0, r4, 24 asrs r0, 24 bl sub_809F284 _0809F22C: lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _0809F270 movs r0, 0x5 bl audio_play ldr r5, _0809F278 adds r0, r5, 0 bl sub_80A1CD8 lsls r0, 24 cmp r0, 0 beq _0809F258 movs r0, 0x2 negs r0, r0 bl sub_80A12D0 _0809F258: adds r0, r5, 0 subs r0, 0x10 strb r4, [r0, 0x9] ldr r1, _0809F27C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, [r0] str r1, [r5, 0x74] ldr r1, _0809F280 str r1, [r0] _0809F270: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809F278: .4byte 0x02018010 _0809F27C: .4byte 0x03004b20 _0809F280: .4byte sub_809F43C thumb_func_end sub_809F1B8 thumb_func_start sub_809F284 sub_809F284: @ 809F284 push {r4-r7,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, _0809F2C0 ldr r7, [r0] movs r6, 0 ldrb r1, [r0, 0xB] adds r4, r0, 0 cmp r1, 0 bne _0809F2C4 lsls r0, r3, 24 asrs r2, r0, 24 movs r1, 0x1 negs r1, r1 adds r5, r0, 0 cmp r2, r1 bne _0809F2AC ldrb r0, [r4, 0x9] cmp r0, 0 beq _0809F2E4 _0809F2AC: asrs r0, r5, 24 cmp r0, 0x1 bne _0809F2BA ldrb r0, [r4, 0x9] ldrb r1, [r4, 0xA] cmp r0, r1 bcs _0809F2E4 _0809F2BA: ldrb r0, [r4, 0x9] adds r0, r3 b _0809F304 .align 2, 0 _0809F2C0: .4byte 0x02018000 _0809F2C4: lsls r5, r3, 24 _0809F2C6: lsls r0, r6, 24 asrs r0, 24 asrs r1, r5, 24 adds r0, r1 lsls r0, 24 ldr r4, _0809F2EC lsrs r6, r0, 24 asrs r0, 24 ldrb r2, [r4, 0x9] adds r1, r0, r2 cmp r1, 0 blt _0809F2E4 ldrb r0, [r4, 0xA] cmp r1, r0 ble _0809F2F0 _0809F2E4: movs r0, 0x1 negs r0, r0 b _0809F308 .align 2, 0 _0809F2EC: .4byte 0x02018000 _0809F2F0: movs r0, 0x64 muls r0, r1 adds r0, r7, r0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _0809F2C6 ldrb r0, [r4, 0x9] adds r0, r6 _0809F304: lsls r0, 24 asrs r0, 24 _0809F308: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_809F284 thumb_func_start sub_809F310 sub_809F310: @ 809F310 push {r4,lr} adds r4, r0, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0809F33C ldr r0, _0809F338 ldrb r0, [r0, 0xB] cmp r0, 0 bne _0809F332 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _0809F33C _0809F332: movs r0, 0x1 b _0809F33E .align 2, 0 _0809F338: .4byte 0x02018000 _0809F33C: movs r0, 0 _0809F33E: pop {r4} pop {r1} bx r1 thumb_func_end sub_809F310 thumb_func_start sub_809F344 sub_809F344: @ 809F344 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 _0809F34A: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 beq _0809F37C ldr r0, _0809F374 adds r5, r4, r0 ldrb r1, [r5] movs r0, 0x64 muls r0, r1 ldr r1, _0809F378 adds r0, r1 bl sub_809F310 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809F34A movs r0, 0 ldrsb r0, [r5, r0] b _0809F380 .align 2, 0 _0809F374: .4byte gUnknown_083C15A8 _0809F378: .4byte 0x03004360 _0809F37C: movs r0, 0x1 negs r0, r0 _0809F380: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809F344 thumb_func_start sub_809F388 sub_809F388: @ 809F388 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 _0809F38E: cmp r4, 0 beq _0809F3C0 subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0809F3B8 adds r5, r4, r0 ldrb r1, [r5] movs r0, 0x64 muls r0, r1 ldr r1, _0809F3BC adds r0, r1 bl sub_809F310 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809F38E movs r0, 0 ldrsb r0, [r5, r0] b _0809F3C4 .align 2, 0 _0809F3B8: .4byte gUnknown_083C15A8 _0809F3BC: .4byte 0x03004360 _0809F3C0: movs r0, 0x1 negs r0, r0 _0809F3C4: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809F388 thumb_func_start sub_809F3CC sub_809F3CC: @ 809F3CC push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r2, 0 movs r1, 0 ldr r3, _0809F41C ldr r4, _0809F420 ldrb r0, [r3] ldrb r5, [r4, 0x9] cmp r0, r5 beq _0809F3FC adds r5, r3, 0 adds r3, r4, 0 _0809F3E6: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x5 bhi _0809F3FC adds r0, r1, r5 ldrb r0, [r0] ldrb r4, [r3, 0x9] cmp r0, r4 bne _0809F3E6 adds r2, r1, 0 _0809F3FC: lsls r0, r6, 24 asrs r1, r0, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _0809F40C cmp r2, 0 beq _0809F414 _0809F40C: cmp r1, 0x1 bne _0809F424 cmp r2, 0x5 bne _0809F42C _0809F414: movs r0, 0x1 negs r0, r0 b _0809F436 .align 2, 0 _0809F41C: .4byte gUnknown_083C15A8 _0809F420: .4byte 0x02018000 _0809F424: adds r0, r2, 0 bl sub_809F388 b _0809F432 _0809F42C: adds r0, r2, 0 bl sub_809F344 _0809F432: lsls r0, 24 asrs r0, 24 _0809F436: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_809F3CC thumb_func_start sub_809F43C sub_809F43C: @ 809F43C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0809F45C ldr r1, _0809F460 adds r5, r0, r1 ldrb r2, [r5] adds r3, r0, 0 cmp r2, 0x8 bls _0809F452 b _0809F5CC _0809F452: lsls r0, r2, 2 ldr r1, _0809F464 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809F45C: .4byte 0x03001770 _0809F460: .4byte 0x0000043c _0809F464: .4byte _0809F468 .align 2, 0 _0809F468: .4byte _0809F48C .4byte _0809F492 .4byte _0809F4BC .4byte _0809F4D8 .4byte _0809F4F4 .4byte _0809F51C .4byte _0809F578 .4byte _0809F584 .4byte _0809F5A0 _0809F48C: bl sub_8075398 b _0809F5B2 _0809F492: ldr r0, _0809F4AC ldrb r1, [r0, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0809F4B0 adds r0, r1 bl DestroySpriteAndFreeResources ldr r1, _0809F4B4 ldr r0, _0809F4B8 adds r1, r0 b _0809F5B8 .align 2, 0 _0809F4AC: .4byte 0x02018000 _0809F4B0: .4byte 0x02020004 _0809F4B4: .4byte 0x03001770 _0809F4B8: .4byte 0x0000043c _0809F4BC: ldr r0, _0809F4D0 ldrb r1, [r0, 0xD] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0809F4D4 adds r0, r1 bl DestroySpriteAndFreeResources b _0809F5B2 .align 2, 0 _0809F4D0: .4byte 0x02018000 _0809F4D4: .4byte 0x02020004 _0809F4D8: ldr r0, _0809F4EC adds r1, r0, 0 adds r1, 0x74 movs r2, 0 strb r2, [r1] adds r0, 0x79 strb r2, [r0] ldr r0, _0809F4F0 adds r1, r3, r0 b _0809F5B8 .align 2, 0 _0809F4EC: .4byte 0x02018000 _0809F4F0: .4byte 0x0000043c _0809F4F4: ldr r4, _0809F518 adds r0, r4, 0 bl sub_809F678 adds r0, r4, 0 bl sub_80A1CD8 lsls r0, 24 cmp r0, 0 beq _0809F50E movs r0, 0x2 bl sub_80A12D0 _0809F50E: adds r0, r4, 0 bl sub_80A0EA4 b _0809F5B2 .align 2, 0 _0809F518: .4byte 0x02018010 _0809F51C: ldr r4, _0809F558 adds r5, r4, 0 adds r5, 0x64 adds r0, r4, 0 adds r1, r5, 0 bl sub_809F6B4 adds r1, r4, 0 subs r1, 0x10 strb r0, [r1, 0xC] lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _0809F5EA movs r0, 0 strb r0, [r5] adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField adds r1, r0, 0 cmp r1, 0 beq _0809F560 ldr r1, _0809F55C movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] b _0809F564 .align 2, 0 _0809F558: .4byte 0x02018010 _0809F55C: .4byte 0x030041b0 _0809F560: ldr r0, _0809F56C strh r1, [r0] _0809F564: ldr r1, _0809F570 ldr r0, _0809F574 adds r1, r0 b _0809F5B8 .align 2, 0 _0809F56C: .4byte 0x030041b0 _0809F570: .4byte 0x03001770 _0809F574: .4byte 0x0000043c _0809F578: ldr r0, _0809F580 bl sub_80A1DCC b _0809F5B2 .align 2, 0 _0809F580: .4byte 0x02018010 _0809F584: ldr r0, _0809F594 bl sub_80A1DE8 ldr r1, _0809F598 ldr r0, _0809F59C adds r1, r0 b _0809F5B8 .align 2, 0 _0809F594: .4byte 0x02018010 _0809F598: .4byte 0x03001770 _0809F59C: .4byte 0x0000043c _0809F5A0: bl sub_809F5F8 lsls r0, 24 cmp r0, 0 beq _0809F5EA ldr r0, _0809F5C0 adds r0, 0x74 movs r1, 0 strb r1, [r0] _0809F5B2: ldr r1, _0809F5C4 ldr r2, _0809F5C8 adds r1, r2 _0809F5B8: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0809F5EA .align 2, 0 _0809F5C0: .4byte 0x02018000 _0809F5C4: .4byte 0x03001770 _0809F5C8: .4byte 0x0000043c _0809F5CC: bl sub_8055870 cmp r0, 0x1 beq _0809F5EA movs r0, 0 strb r0, [r5] ldr r0, _0809F5F0 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0809F5F4 adds r0, 0x84 ldr r0, [r0] str r0, [r1] _0809F5EA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809F5F0: .4byte 0x03004b20 _0809F5F4: .4byte 0x02018000 thumb_func_end sub_809F43C thumb_func_start sub_809F5F8 sub_809F5F8: @ 809F5F8 push {r4,lr} ldr r2, _0809F61C adds r4, r2, 0 adds r4, 0x74 ldrb r0, [r4] cmp r0, 0 beq _0809F624 ldr r0, _0809F620 ldrb r1, [r2, 0xB] lsls r1, 2 adds r1, r0 adds r0, r2, 0 adds r0, 0x10 ldr r1, [r1] bl _call_via_r1 movs r0, 0x1 b _0809F634 .align 2, 0 _0809F61C: .4byte 0x02018000 _0809F620: .4byte gUnknown_083C1588 _0809F624: adds r0, r2, 0 adds r0, 0x10 bl sub_809FAC8 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r0, 0 _0809F634: pop {r4} pop {r1} bx r1 thumb_func_end sub_809F5F8 thumb_func_start sub_809F63C sub_809F63C: @ 809F63C push {r4,lr} adds r4, r0, 0 bl sub_809FE80 adds r0, r4, 0 bl sub_809FC34 pop {r4} pop {r0} bx r0 thumb_func_end sub_809F63C thumb_func_start sub_809F650 sub_809F650: @ 809F650 push {r4,lr} adds r4, r0, 0 bl sub_80A00A4 adds r0, r4, 0 bl sub_809FF64 pop {r4} pop {r0} bx r0 thumb_func_end sub_809F650 thumb_func_start sub_809F664 sub_809F664: @ 809F664 push {r4,lr} adds r4, r0, 0 bl sub_80A0390 adds r0, r4, 0 bl sub_80A015C pop {r4} pop {r0} bx r0 thumb_func_end sub_809F664 thumb_func_start sub_809F678 sub_809F678: @ 809F678 push {lr} adds r3, r0, 0 ldr r1, _0809F698 ldrb r0, [r1, 0xE] cmp r0, 0 bne _0809F69C ldr r2, [r1] ldrb r1, [r1, 0x9] movs r0, 0x64 muls r1, r0 adds r1, r2 adds r0, r3, 0 movs r2, 0x64 bl memcpy b _0809F6AE .align 2, 0 _0809F698: .4byte 0x02018000 _0809F69C: ldr r0, [r1] ldrb r2, [r1, 0x9] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 adds r0, r1 adds r1, r3, 0 bl sub_803B4B4 _0809F6AE: pop {r0} bx r0 thumb_func_end sub_809F678 thumb_func_start sub_809F6B4 sub_809F6B4: @ 809F6B4 push {r4-r7,lr} sub sp, 0xC adds r4, r0, 0 adds r7, r1, 0 ldrb r0, [r7] cmp r0, 0 beq _0809F6D2 cmp r0, 0x1 beq _0809F718 adds r0, r4, 0 bl sub_80A1808 lsls r0, 24 lsrs r0, 24 b _0809F756 _0809F6D2: adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0 bl PokemonGetField adds r6, r0, 0 lsls r0, r5, 3 ldr r1, _0809F70C adds r0, r1 ldr r1, _0809F710 lsls r2, r5, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _0809F714 ldr r4, [r4, 0x4] str r4, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] bl sub_800D334 b _0809F74E .align 2, 0 _0809F70C: .4byte gMonFrontPicTable _0809F710: .4byte gMonFrontPicCoords _0809F714: .4byte gUnknown_081FAF4C _0809F718: adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0 bl PokemonGetField adds r6, r0, 0 adds r0, r4, 0 movs r1, 0x1 bl PokemonGetField adds r1, r0, 0 adds r0, r5, 0 adds r2, r6, 0 bl sub_80409C8 adds r4, r0, 0 bl LoadCompressedObjectPalette ldrh r0, [r4, 0x4] movs r1, 0x1 bl gpu_pal_obj_decompress_and_apply _0809F74E: ldrb r0, [r7] adds r0, 0x1 strb r0, [r7] movs r0, 0xFF _0809F756: add sp, 0xC pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_809F6B4 thumb_func_start sub_809F760 sub_809F760: @ 809F760 push {lr} lsls r1, 24 lsrs r1, 24 adds r2, r1, 0 cmp r1, 0x1 beq _0809F780 cmp r1, 0x1 bgt _0809F776 cmp r1, 0 beq _0809F77C b _0809F788 _0809F776: cmp r2, 0x2 beq _0809F784 b _0809F788 _0809F77C: movs r1, 0xD b _0809F78A _0809F780: movs r1, 0xE b _0809F78A _0809F784: movs r1, 0xF b _0809F78A _0809F788: movs r1, 0x10 _0809F78A: bl PokemonGetField lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_809F760 thumb_func_start sub_809F798 sub_809F798: @ 809F798 push {lr} lsls r1, 24 lsrs r1, 24 adds r2, r1, 0 cmp r1, 0x1 beq _0809F7B8 cmp r1, 0x1 bgt _0809F7AE cmp r1, 0 beq _0809F7B4 b _0809F7C0 _0809F7AE: cmp r2, 0x2 beq _0809F7BC b _0809F7C0 _0809F7B4: movs r1, 0x11 b _0809F7C2 _0809F7B8: movs r1, 0x12 b _0809F7C2 _0809F7BC: movs r1, 0x13 b _0809F7C2 _0809F7C0: movs r1, 0x14 _0809F7C2: bl PokemonGetField lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_809F798 thumb_func_start sub_809F7D0 sub_809F7D0: @ 809F7D0 push {r4,lr} sub sp, 0x64 mov r0, sp bl sub_809F678 ldr r4, _0809F804 adds r0, r4, 0 adds r0, 0x79 ldrb r1, [r0] mov r0, sp bl sub_809F760 lsls r0, 16 lsrs r0, 16 bl sub_806F7B8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809F808 ldrb r0, [r4, 0x8] cmp r0, 0x3 beq _0809F808 movs r0, 0 b _0809F80A .align 2, 0 _0809F804: .4byte 0x02018000 _0809F808: movs r0, 0x1 _0809F80A: add sp, 0x64 pop {r4} pop {r1} bx r1 thumb_func_end sub_809F7D0 thumb_func_start sub_809F814 sub_809F814: @ 809F814 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r6, r0, 3 ldr r0, _0809F83C mov r8, r0 adds r4, r6, r0 ldrh r1, [r4, 0x1C] movs r2, 0x1C ldrsh r0, [r4, r2] cmp r0, 0x3 bgt _0809F840 adds r0, r1, 0x1 strh r0, [r4, 0x1C] b _0809F9C0 .align 2, 0 _0809F83C: .4byte 0x03004b28 _0809F840: ldr r7, _0809F874 ldrh r1, [r7, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0809F880 mov r0, r8 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0809F878 str r1, [r0] movs r0, 0x4 strh r0, [r4] movs r0, 0x1 strh r0, [r4, 0x1A] ldr r2, _0809F87C ldrh r0, [r4, 0x1E] adds r2, 0x79 strb r0, [r2] movs r1, 0x1 negs r1, r1 adds r0, r5, 0 bl sub_809E8F0 b _0809F9C0 .align 2, 0 _0809F874: .4byte 0x03001770 _0809F878: .4byte sub_809E260 _0809F87C: .4byte 0x02018000 _0809F880: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0809F8B4 mov r0, r8 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0809F8AC str r1, [r0] movs r0, 0x4 strh r0, [r4] movs r0, 0x1 strh r0, [r4, 0x1A] ldr r2, _0809F8B0 ldrh r0, [r4, 0x1E] adds r2, 0x79 strb r0, [r2] adds r0, r5, 0 movs r1, 0x1 bl sub_809E8F0 b _0809F9C0 .align 2, 0 _0809F8AC: .4byte sub_809E260 _0809F8B0: .4byte 0x02018000 _0809F8B4: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0809F8C8 bl sub_80F9284 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809F918 _0809F8C8: ldr r1, _0809F90C ldrb r0, [r1, 0xB] cmp r0, 0x2 beq _0809F9C0 cmp r0, 0x3 bne _0809F8F4 adds r0, r1, 0 adds r0, 0x79 ldrb r0, [r0] cmp r0, 0x4 bne _0809F8E8 adds r0, r1, 0 adds r0, 0x7C ldrh r0, [r0] cmp r0, 0 beq _0809F8F4 _0809F8E8: movs r0, 0 movs r1, 0xE movs r2, 0x9 movs r3, 0x12 bl Reset _0809F8F4: ldr r1, _0809F910 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0809F914 str r1, [r0] movs r1, 0x1 negs r1, r1 adds r0, r5, 0 b _0809F972 .align 2, 0 _0809F90C: .4byte 0x02018000 _0809F910: .4byte 0x03004b20 _0809F914: .4byte sub_809E260 _0809F918: ldrh r1, [r7, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0809F92E bl sub_80F9284 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0809F994 _0809F92E: ldr r1, _0809F988 adds r2, r1, 0 adds r2, 0x76 ldrb r0, [r1, 0xB] ldrb r2, [r2] cmp r0, r2 beq _0809F9C0 cmp r0, 0x2 bne _0809F960 adds r0, r1, 0 adds r0, 0x79 ldrb r0, [r0] cmp r0, 0x4 bne _0809F954 adds r0, r1, 0 adds r0, 0x7C ldrh r0, [r0] cmp r0, 0 beq _0809F960 _0809F954: movs r0, 0 movs r1, 0xE movs r2, 0x9 movs r3, 0x12 bl Reset _0809F960: ldr r1, _0809F98C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0809F990 str r1, [r0] adds r0, r5, 0 movs r1, 0x1 _0809F972: bl sub_809F134 ldrb r1, [r4, 0x1E] movs r0, 0x1 bl sub_80A1488 ldrb r1, [r4, 0x1E] movs r0, 0x1 bl sub_80A1654 b _0809F9C0 .align 2, 0 _0809F988: .4byte 0x02018000 _0809F98C: .4byte 0x03004b20 _0809F990: .4byte sub_809E260 _0809F994: ldrh r1, [r7, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0809F9A6 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809F9C0 _0809F9A6: ldrb r1, [r4, 0x1E] movs r0, 0x2 bl sub_80A1488 ldrb r1, [r4, 0x1E] movs r0, 0x2 bl sub_80A1654 mov r0, r8 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0809F9CC str r1, [r0] _0809F9C0: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809F9CC: .4byte sub_809E260 thumb_func_end sub_809F814 thumb_func_start sub_809F9D0 sub_809F9D0: @ 809F9D0 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r6, _0809FA24 adds r2, r4, r6 movs r0, 0 strh r0, [r2, 0x1C] strh r1, [r2, 0x1E] movs r5, 0x2 negs r5, r5 adds r0, r5, 0 movs r1, 0x4 bl sub_80A1488 adds r0, r5, 0 movs r1, 0x4 bl sub_80A1654 movs r0, 0xB movs r1, 0xF movs r2, 0x1C movs r3, 0x12 bl Reset ldr r0, _0809FA28 movs r1, 0xB movs r2, 0xF bl Print subs r6, 0x8 adds r4, r6 ldr r0, _0809FA2C str r0, [r4] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809FA24: .4byte 0x03004b28 _0809FA28: .4byte gUnknown_0840F944 _0809FA2C: .4byte sub_809F814 thumb_func_end sub_809F9D0 thumb_func_start sub_809FA30 sub_809FA30: @ 809FA30 ldr r0, _0809FA38 adds r0, 0x7A ldrb r0, [r0] bx lr .align 2, 0 _0809FA38: .4byte 0x02018000 thumb_func_end sub_809FA30 thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing GetStringCenterAlignXOffsetWithLetterSpacing: @ 809FA3C push {r4,lr} lsls r0, 24 lsls r1, 24 lsls r2, 24 lsls r3, 24 lsrs r2, 23 lsrs r3, 18 ldr r4, _0809FA70 adds r3, r4 adds r2, r3 lsrs r1, 12 lsrs r0, 23 movs r4, 0x80 lsls r4, 2 adds r3, r4, 0 adds r0, r3 adds r1, r0 adds r0, r1, 0 adds r0, 0x80 strh r0, [r2] adds r2, 0x40 adds r1, 0x81 strh r1, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _0809FA70: .4byte 0x0600f000 thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing thumb_func_start GetStringCenterAlignXOffset GetStringCenterAlignXOffset: @ 809FA74 push {r4,lr} adds r4, r1, 0 adds r3, r2, 0 lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 movs r1, 0xF adds r2, r4, 0 bl GetStringCenterAlignXOffsetWithLetterSpacing pop {r4} pop {r0} bx r0 thumb_func_end GetStringCenterAlignXOffset thumb_func_start sub_809FA94 sub_809FA94: @ 809FA94 push {lr} bl sub_8040CB4 lsls r0, 24 cmp r0, 0 beq _0809FAB4 ldr r0, _0809FAB0 movs r1, 0x4 movs r2, 0x2 bl LoadPalette movs r0, 0x1 b _0809FAC0 .align 2, 0 _0809FAB0: .4byte gUnknown_083C157E _0809FAB4: ldr r0, _0809FAC4 movs r1, 0x4 movs r2, 0x2 bl LoadPalette movs r0, 0 _0809FAC0: pop {r1} bx r1 .align 2, 0 _0809FAC4: .4byte gUnknown_083C157C thumb_func_end sub_809FA94 thumb_func_start sub_809FAC8 sub_809FAC8: @ 809FAC8 push {r4-r6,lr} sub sp, 0xC adds r5, r0, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 beq _0809FB28 movs r0, 0x1 movs r1, 0x2 movs r2, 0x4 movs r3, 0x3 bl Reset movs r0, 0x3 movs r1, 0x10 movs r2, 0x9 movs r3, 0x11 bl Reset movs r0, 0 movs r1, 0xC movs r2, 0xB movs r3, 0xF bl Reset ldr r4, _0809FB20 adds r0, r5, 0 adds r1, r4, 0 bl GetMonNickname adds r0, r4, 0 movs r1, 0xD movs r2, 0x3 movs r3, 0x10 bl sub_80A1FF8 ldr r0, _0809FB24 movs r1, 0x4 movs r2, 0x2 bl LoadPalette b _0809FBD6 .align 2, 0 _0809FB20: .4byte 0x020231cc _0809FB24: .4byte gUnknown_083C157C _0809FB28: adds r0, r5, 0 bl sub_809FA94 lsls r0, 24 lsrs r6, r0, 24 adds r0, r5, 0 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r0, 16 bl sub_80406D8 lsls r0, 16 lsrs r4, r0, 16 ldr r0, _0809FB6C cmp r4, r0 beq _0809FB96 cmp r6, 0 bne _0809FB70 movs r0, 0x2 movs r1, 0x1 movs r2, 0x2 bl GetStringCenterAlignXOffset movs r0, 0x11 str r0, [sp] movs r0, 0x10 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] adds r0, r4, 0 movs r1, 0xD b _0809FB8C .align 2, 0 _0809FB6C: .4byte 0x0000ffff _0809FB70: movs r0, 0x2 movs r1, 0x8 movs r2, 0x1 movs r3, 0x2 bl GetStringCenterAlignXOffsetWithLetterSpacing movs r0, 0x11 str r0, [sp] movs r0, 0x10 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] adds r0, r4, 0 movs r1, 0x8 _0809FB8C: movs r2, 0x3 movs r3, 0x2 bl sub_80A1F98 b _0809FBA2 _0809FB96: movs r0, 0x1 movs r1, 0x2 movs r2, 0x4 movs r3, 0x3 bl Reset _0809FBA2: ldr r1, _0809FBE0 adds r0, r1, 0 movs r1, 0xD bl sub_80A1E58 adds r1, r0, 0 adds r0, r5, 0 bl GetMonNickname adds r1, r0, 0 movs r0, 0xFC strb r0, [r1] movs r0, 0x13 strb r0, [r1, 0x1] movs r0, 0x3C strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] ldr r0, _0809FBE0 movs r1, 0x1 movs r2, 0xC bl Print adds r0, r5, 0 bl sub_80A0958 _0809FBD6: add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809FBE0: .4byte 0x020231cc thumb_func_end sub_809FAC8 thumb_func_start sub_809FBE4 sub_809FBE4: @ 809FBE4 push {r4,lr} movs r4, 0 _0809FBE8: adds r0, r4, 0 movs r1, 0x1 bl sub_80A1918 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1B bls _0809FBE8 movs r0, 0xB movs r1, 0x4 movs r2, 0x1D movs r3, 0x12 bl Reset pop {r4} pop {r0} bx r0 thumb_func_end sub_809FBE4 thumb_func_start sub_809FC0C sub_809FC0C: @ 809FC0C push {lr} ldr r0, _0809FC30 movs r1, 0xB movs r2, 0x6 bl Print movs r0, 0 movs r1, 0x16 movs r2, 0x4 bl GetStringCenterAlignXOffset movs r0, 0x2 movs r1, 0x17 movs r2, 0x4 bl GetStringCenterAlignXOffset pop {r0} bx r0 .align 2, 0 _0809FC30: .4byte gUnknown_0840F7F3 thumb_func_end sub_809FC0C thumb_func_start sub_809FC34 sub_809FC34: @ 809FC34 push {r4-r6,lr} sub sp, 0xC adds r6, r0, 0 movs r4, 0 _0809FC3C: adds r0, r4, 0 movs r1, 0x1 bl sub_80A1918 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _0809FC3C movs r0, 0xB movs r1, 0x9 movs r2, 0x1C movs r3, 0xC bl Reset adds r0, r6, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 beq _0809FD1C ldr r5, _0809FCD0 adds r0, r5, 0 movs r1, 0xD bl sub_80A1E58 adds r5, r0, 0 ldr r1, _0809FCD4 bl StringCopy adds r5, r0, 0 ldr r4, _0809FCD8 adds r1, r4, 0 bl StringCopy adds r5, r0, 0 movs r0, 0xFC strb r0, [r5] movs r0, 0x13 strb r0, [r5, 0x1] movs r0, 0x4E strb r0, [r5, 0x2] movs r0, 0xFF strb r0, [r5, 0x3] ldr r0, _0809FCD0 movs r1, 0xB movs r2, 0x4 bl Print movs r0, 0x1 str r0, [sp] adds r0, r4, 0 movs r1, 0xD movs r2, 0xC1 movs r3, 0x20 bl sub_80A1EF8 movs r0, 0x9 movs r1, 0x78 movs r2, 0x30 movs r3, 0 bl sub_80A198C adds r0, r6, 0 movs r1, 0x20 bl PokemonGetField lsls r0, 16 lsrs r0, 16 adds r1, r0, 0 cmp r0, 0x5 bhi _0809FCE0 ldr r0, _0809FCDC b _0809FCF2 .align 2, 0 _0809FCD0: .4byte 0x020231cc _0809FCD4: .4byte gUnknown_0840F7EF _0809FCD8: .4byte gUnknown_0840E678 _0809FCDC: .4byte gUnknown_0840F91B _0809FCE0: cmp r0, 0xA bhi _0809FCEC ldr r0, _0809FCE8 b _0809FCF2 .align 2, 0 _0809FCE8: .4byte gUnknown_0840F8EE _0809FCEC: cmp r1, 0x28 bhi _0809FD00 ldr r0, _0809FCFC _0809FCF2: movs r1, 0xB movs r2, 0x9 bl Print b _0809FD0A .align 2, 0 _0809FCFC: .4byte gUnknown_0840F8BB _0809FD00: ldr r0, _0809FD18 movs r1, 0xB movs r2, 0x9 bl Print _0809FD0A: adds r0, r6, 0 movs r1, 0xB movs r2, 0xE bl sub_80A0708 b _0809FE4C .align 2, 0 _0809FD18: .4byte gUnknown_0840F884 _0809FD1C: ldr r4, _0809FD64 adds r0, r6, 0 movs r1, 0x7 adds r2, r4, 0 bl PokemonGetField adds r0, r6, 0 movs r1, 0x3 bl PokemonGetField adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl ConvertInternationalString ldr r5, _0809FD68 adds r0, r5, 0 movs r1, 0xD bl sub_80A1E58 adds r5, r0, 0 ldr r1, _0809FD6C bl StringCopy adds r5, r0, 0 adds r0, r6, 0 movs r1, 0x31 bl PokemonGetField cmp r0, 0 bne _0809FD70 adds r0, r5, 0 movs r1, 0x9 b _0809FD74 .align 2, 0 _0809FD64: .4byte 0x020232cc _0809FD68: .4byte 0x020231cc _0809FD6C: .4byte gUnknown_0840F7EF _0809FD70: adds r0, r5, 0 movs r1, 0xA _0809FD74: bl sub_80A1E58 adds r5, r0, 0 ldr r1, _0809FE54 adds r0, r5, 0 bl StringCopy adds r5, r0, 0 movs r0, 0xFC strb r0, [r5] movs r0, 0x13 strb r0, [r5, 0x1] movs r0, 0x4E strb r0, [r5, 0x2] movs r0, 0xFF strb r0, [r5, 0x3] ldr r0, _0809FE58 movs r1, 0xB movs r2, 0x4 bl Print adds r0, r6, 0 movs r1, 0x1 bl PokemonGetField ldr r1, _0809FE5C ands r1, r0 movs r0, 0xC1 str r0, [sp] movs r0, 0x20 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] adds r0, r1, 0 movs r1, 0xD movs r2, 0x5 movs r3, 0x2 bl sub_80A1F98 adds r0, r6, 0 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r0, 16 ldr r2, _0809FE60 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r5, r1, r2 ldrb r4, [r5, 0x6] adds r0, r4, 0 movs r1, 0x78 movs r2, 0x30 movs r3, 0 bl sub_80A198C ldrb r0, [r5, 0x7] cmp r4, r0 beq _0809FDF8 ldrb r0, [r5, 0x7] movs r1, 0xA0 movs r2, 0x30 movs r3, 0x1 bl sub_80A198C _0809FDF8: adds r0, r6, 0 movs r1, 0xB bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r6, 0 movs r1, 0x2E bl PokemonGetField adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_803DB14 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0xD muls r0, r4 ldr r1, _0809FE64 adds r0, r1 movs r1, 0xD movs r2, 0xB movs r3, 0x9 bl sub_80A1FF8 ldr r0, _0809FE68 lsls r4, 2 adds r4, r0 ldr r0, [r4] movs r1, 0xB movs r2, 0xB bl Print adds r0, r6, 0 movs r1, 0xB movs r2, 0xE bl sub_80A0798 _0809FE4C: add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809FE54: .4byte 0x020232cc _0809FE58: .4byte 0x020231cc _0809FE5C: .4byte 0x0000ffff _0809FE60: .4byte gBaseStats _0809FE64: .4byte gAbilityNames _0809FE68: .4byte gAbilityDescriptions thumb_func_end sub_809FC34 thumb_func_start sub_809FE6C sub_809FE6C: @ 809FE6C push {r4,lr} adds r4, r0, 0 bl sub_809FC0C adds r0, r4, 0 bl sub_809FC34 pop {r4} pop {r0} bx r0 thumb_func_end sub_809FE6C thumb_func_start sub_809FE80 sub_809FE80: @ 809FE80 push {lr} movs r0, 0xE movs r1, 0x4 movs r2, 0x12 movs r3, 0x5 bl Reset movs r0, 0x19 movs r1, 0x4 movs r2, 0x1E movs r3, 0x5 bl Reset movs r0, 0xB movs r1, 0x9 movs r2, 0x1C movs r3, 0xC bl Reset movs r0, 0xB movs r1, 0xE movs r2, 0x1C movs r3, 0x11 bl Reset pop {r0} bx r0 thumb_func_end sub_809FE80 thumb_func_start sub_809FEB8 sub_809FEB8: @ 809FEB8 push {r4,lr} sub sp, 0x4 ldr r0, _0809FF40 movs r1, 0xD movs r2, 0xB movs r3, 0xE bl sub_80A1FF8 ldr r0, _0809FF44 movs r1, 0xD movs r2, 0xB movs r3, 0x10 bl sub_80A1FF8 ldr r0, _0809FF48 movs r1, 0x15 movs r2, 0x10 bl Print ldr r0, _0809FF4C movs r4, 0x2A str r4, [sp] movs r1, 0xD movs r2, 0xB movs r3, 0x7 bl sub_80A1F48 ldr r0, _0809FF50 str r4, [sp] movs r1, 0xD movs r2, 0xB movs r3, 0x9 bl sub_80A1F48 ldr r0, _0809FF54 str r4, [sp] movs r1, 0xD movs r2, 0xB movs r3, 0xB bl sub_80A1F48 ldr r0, _0809FF58 movs r4, 0x24 str r4, [sp] movs r1, 0xD movs r2, 0x16 movs r3, 0x7 bl sub_80A1F48 ldr r0, _0809FF5C str r4, [sp] movs r1, 0xD movs r2, 0x16 movs r3, 0x9 bl sub_80A1F48 ldr r0, _0809FF60 str r4, [sp] movs r1, 0xD movs r2, 0x16 movs r3, 0xB bl sub_80A1F48 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0809FF40: .4byte gUnknown_0840F81A _0809FF44: .4byte gUnknown_0840F826 _0809FF48: .4byte gUnknown_0840F7EE _0809FF4C: .4byte gUnknown_0840F7EB _0809FF50: .4byte gUnknown_0840F7C6 _0809FF54: .4byte gUnknown_0840F7CD _0809FF58: .4byte gUnknown_0840F7D5 _0809FF5C: .4byte gUnknown_0840F7DD _0809FF60: .4byte gUnknown_0840F7E5 thumb_func_end sub_809FEB8 thumb_func_start sub_809FF64 sub_809FF64: @ 809FF64 push {r4,r5,lr} adds r5, r0, 0 movs r4, 0 _0809FF6A: adds r0, r4, 0 movs r1, 0x1 bl sub_80A1918 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _0809FF6A adds r0, r5, 0 movs r1, 0xC bl PokemonGetField lsls r0, 16 lsrs r0, 16 movs r1, 0xB movs r2, 0x4 bl sub_80A0BF4 adds r0, r5, 0 bl sub_80A0B88 ldr r4, _080A008C adds r0, r5, 0 movs r1, 0x19 bl PokemonGetField adds r1, r0, 0 adds r0, r4, 0 bl ConvertIntToDecimalString adds r0, r4, 0 movs r1, 0x1D movs r2, 0xE bl PrintCoinsString adds r0, r5, 0 movs r1, 0x17 movs r2, 0x10 bl sub_80A0C80 adds r0, r5, 0 movs r1, 0x3B bl PokemonGetField adds r1, r0, 0 adds r0, r4, 0 bl ConvertIntToDecimalString adds r0, r4, 0 movs r1, 0x10 movs r2, 0x9 movs r3, 0x32 bl Free adds r0, r5, 0 movs r1, 0x3C bl PokemonGetField adds r1, r0, 0 adds r0, r4, 0 bl ConvertIntToDecimalString adds r0, r4, 0 movs r1, 0x10 movs r2, 0xB movs r3, 0x32 bl Free adds r0, r5, 0 movs r1, 0x3E bl PokemonGetField adds r1, r0, 0 adds r0, r4, 0 bl ConvertIntToDecimalString adds r0, r4, 0 movs r1, 0x1B movs r2, 0x7 movs r3, 0x12 bl Free adds r0, r5, 0 movs r1, 0x3F bl PokemonGetField adds r1, r0, 0 adds r0, r4, 0 bl ConvertIntToDecimalString adds r0, r4, 0 movs r1, 0x1B movs r2, 0x9 movs r3, 0x12 bl Free adds r0, r5, 0 movs r1, 0x3D bl PokemonGetField adds r1, r0, 0 adds r0, r4, 0 bl ConvertIntToDecimalString adds r0, r4, 0 movs r1, 0x1B movs r2, 0xB movs r3, 0x12 bl Free adds r0, r5, 0 movs r1, 0x39 bl PokemonGetField adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x18 movs r3, 0x1 bl sub_8072C14 adds r4, r0, 0 movs r0, 0xBA strb r0, [r4] adds r4, 0x1 adds r0, r5, 0 movs r1, 0x3A bl PokemonGetField adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x30 movs r3, 0x1 bl sub_8072C14 ldr r0, _080A008C movs r1, 0x7E movs r2, 0x38 movs r3, 0x1 bl sub_80729D8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A008C: .4byte 0x020231cc thumb_func_end sub_809FF64 thumb_func_start sub_80A0090 sub_80A0090: @ 80A0090 push {r4,lr} adds r4, r0, 0 bl sub_809FEB8 adds r0, r4, 0 bl sub_809FF64 pop {r4} pop {r0} bx r0 thumb_func_end sub_80A0090 thumb_func_start sub_80A00A4 sub_80A00A4: @ 80A00A4 push {lr} movs r0, 0xB movs r1, 0x4 movs r2, 0x13 movs r3, 0x5 bl Reset movs r0, 0x10 movs r1, 0x7 movs r2, 0x15 movs r3, 0x8 bl Reset movs r0, 0x11 movs r1, 0x9 movs r2, 0x15 movs r3, 0xC bl Reset movs r0, 0x1B movs r1, 0x7 movs r2, 0x1D movs r3, 0xC bl Reset movs r0, 0x16 movs r1, 0xE movs r2, 0x1C movs r3, 0xF bl Reset movs r0, 0x17 movs r1, 0x10 movs r2, 0x1C movs r3, 0x11 bl Reset pop {r0} bx r0 thumb_func_end sub_80A00A4 thumb_func_start sub_80A00F4 sub_80A00F4: @ 80A00F4 push {lr} lsls r0, 24 lsrs r1, r0, 24 ldr r2, _080A012C adds r0, r2, 0 adds r0, 0x7C ldrh r0, [r0] cmp r0, 0 bne _080A010A cmp r1, 0x4 beq _080A0150 _080A010A: ldrb r0, [r2, 0xB] cmp r0, 0x2 bne _080A0138 ldr r0, _080A0130 movs r1, 0xD movs r2, 0x1 movs r3, 0xF bl sub_80A1FF8 ldr r0, _080A0134 movs r1, 0xD movs r2, 0x1 movs r3, 0x11 bl sub_80A1FF8 b _080A0150 .align 2, 0 _080A012C: .4byte 0x02018000 _080A0130: .4byte gUnknown_0840F7F9 _080A0134: .4byte gUnknown_0840F7FF _080A0138: ldr r0, _080A0154 movs r1, 0xD movs r2, 0x1 movs r3, 0xF bl sub_80A1FF8 ldr r0, _080A0158 movs r1, 0xD movs r2, 0x1 movs r3, 0x11 bl sub_80A1FF8 _080A0150: pop {r0} bx r0 .align 2, 0 _080A0154: .4byte gUnknown_0840F808 _080A0158: .4byte gUnknown_0840F80F thumb_func_end sub_80A00F4 thumb_func_start sub_80A015C sub_80A015C: @ 80A015C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r8, r0 movs r7, 0 _080A0168: mov r0, r8 adds r1, r7, 0 bl sub_809F760 lsls r0, 16 lsrs r6, r0, 16 mov r0, r8 adds r1, r7, 0 bl sub_809F798 lsls r0, 16 lsrs r0, 16 mov r9, r0 cmp r6, 0 bne _080A01B8 adds r0, r7, 0 movs r1, 0x1 bl sub_80A1918 lsls r4, r7, 25 movs r0, 0x80 lsls r0, 19 adds r4, r0 lsrs r4, 24 ldr r0, _080A01B0 movs r1, 0xD movs r2, 0xF adds r3, r4, 0 bl sub_80A1FF8 ldr r0, _080A01B4 movs r1, 0x1A adds r2, r4, 0 bl Print b _080A0276 .align 2, 0 _080A01B0: .4byte gUnknown_0840E680 _080A01B4: .4byte gUnknown_0840E682 _080A01B8: ldr r0, _080A01E0 ldrb r0, [r0, 0xB] cmp r0, 0x2 bne _080A01E8 ldr r1, _080A01E4 lsls r0, r6, 1 adds r0, r6 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x2] lsls r4, r7, 1 adds r2, r4, 0x4 lsls r2, 27 lsrs r2, 24 movs r1, 0x57 adds r3, r7, 0 bl sub_80A198C b _080A020C .align 2, 0 _080A01E0: .4byte 0x02018000 _080A01E4: .4byte gBattleMoves _080A01E8: ldr r1, _080A0290 lsls r0, r6, 3 adds r0, r1 ldrb r0, [r0, 0x1] lsls r0, 29 lsrs r0, 5 movs r1, 0x90 lsls r1, 21 adds r0, r1 lsrs r0, 24 lsls r4, r7, 1 adds r2, r4, 0x4 lsls r2, 27 lsrs r2, 24 movs r1, 0x57 adds r3, r7, 0 bl sub_80A198C _080A020C: movs r0, 0xD muls r0, r6 ldr r1, _080A0294 adds r0, r1 adds r5, r4, 0x4 lsls r5, 24 lsrs r5, 24 movs r1, 0xD movs r2, 0xF adds r3, r5, 0 bl sub_80A1FF8 movs r0, 0x1 movs r1, 0x18 adds r2, r5, 0 bl GetStringCenterAlignXOffset mov r0, r8 movs r1, 0x15 bl PokemonGetField adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 adds r2, r7, 0 bl CalcPPWithPPUps adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080A0298 adds r0, r1, 0 mov r1, r9 movs r2, 0xE movs r3, 0x1 bl sub_8072C14 adds r1, r0, 0 movs r0, 0xBA strb r0, [r1] adds r1, 0x1 adds r0, r1, 0 adds r1, r4, 0 movs r2, 0x20 movs r3, 0x1 bl sub_8072C14 ldr r0, _080A0298 movs r1, 0x19 adds r2, r5, 0 bl Print _080A0276: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x3 bhi _080A0282 b _080A0168 _080A0282: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A0290: .4byte gContestMoves _080A0294: .4byte gMoveNames _080A0298: .4byte 0x020231cc thumb_func_end sub_80A015C thumb_func_start sub_80A029C sub_80A029C: @ 80A029C push {r4,r5,lr} ldr r1, _080A02B8 adds r4, r1, 0 adds r4, 0x7C ldrh r0, [r4] cmp r0, 0 bne _080A02C0 ldr r0, _080A02BC movs r1, 0xD movs r2, 0xF movs r3, 0xC bl sub_80A1FF8 b _080A037E .align 2, 0 _080A02B8: .4byte 0x02018000 _080A02BC: .4byte gUnknown_0840E645 _080A02C0: ldrh r5, [r4] ldrb r0, [r1, 0xB] cmp r0, 0x2 bne _080A02E4 ldr r1, _080A02E0 lsls r4, r5, 1 adds r0, r4, r5 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x2] movs r1, 0x57 movs r2, 0x60 movs r3, 0x4 bl sub_80A198C b _080A0304 .align 2, 0 _080A02E0: .4byte gBattleMoves _080A02E4: ldr r1, _080A0320 lsls r0, r5, 3 adds r0, r1 ldrb r0, [r0, 0x1] lsls r0, 29 lsrs r0, 5 movs r1, 0x90 lsls r1, 21 adds r0, r1 lsrs r0, 24 movs r1, 0x57 movs r2, 0x60 movs r3, 0x4 bl sub_80A198C lsls r4, r5, 1 _080A0304: ldr r0, _080A0324 ldrb r0, [r0, 0xB] cmp r0, 0x2 bne _080A032C movs r0, 0xD muls r0, r5 ldr r1, _080A0328 adds r0, r1 movs r1, 0xA movs r2, 0xF movs r3, 0xC bl sub_80A1FF8 b _080A033E .align 2, 0 _080A0320: .4byte gContestMoves _080A0324: .4byte 0x02018000 _080A0328: .4byte gMoveNames _080A032C: movs r0, 0xD muls r0, r5 ldr r1, _080A0384 adds r0, r1 movs r1, 0x9 movs r2, 0xF movs r3, 0xC bl sub_80A1FF8 _080A033E: movs r0, 0x1 movs r1, 0x18 movs r2, 0xC bl GetStringCenterAlignXOffset ldr r2, _080A0388 ldr r1, _080A038C adds r0, r4, r5 lsls r0, 2 adds r0, r1 ldrb r4, [r0, 0x4] adds r0, r2, 0 adds r1, r4, 0 movs r2, 0xE movs r3, 0x1 bl sub_8072C14 adds r2, r0, 0 movs r0, 0xBA strb r0, [r2] adds r2, 0x1 adds r0, r2, 0 adds r1, r4, 0 movs r2, 0x20 movs r3, 0x1 bl sub_8072C14 ldr r0, _080A0388 movs r1, 0x19 movs r2, 0xC bl Print _080A037E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A0384: .4byte gMoveNames _080A0388: .4byte 0x020231cc _080A038C: .4byte gBattleMoves thumb_func_end sub_80A029C thumb_func_start sub_80A0390 sub_80A0390: @ 80A0390 push {r4,lr} movs r4, 0 _080A0394: lsls r3, r4, 1 adds r1, r3, 0x4 lsls r1, 24 lsrs r1, 24 adds r3, 0x5 lsls r3, 24 lsrs r3, 24 movs r0, 0xF movs r2, 0x1C bl Reset adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080A0394 pop {r4} pop {r0} bx r0 thumb_func_end sub_80A0390 thumb_func_start sub_80A03BC sub_80A03BC: @ 80A03BC push {lr} lsls r1, 24 lsrs r1, 24 cmp r1, 0x4 beq _080A03D0 bl sub_809F760 lsls r0, 16 lsrs r1, r0, 16 b _080A03E0 _080A03D0: ldr r0, _080A03E8 adds r2, r0, 0 adds r2, 0x7C ldrh r0, [r2] ldr r1, _080A03EC cmp r0, 0 beq _080A03E0 adds r1, r0, 0 _080A03E0: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _080A03E8: .4byte 0x02018000 _080A03EC: .4byte 0x0000ffff thumb_func_end sub_80A03BC thumb_func_start sub_80A03F0 sub_80A03F0: @ 80A03F0 push {lr} ldrb r1, [r1] bl sub_80A03BC lsls r0, 16 lsrs r1, r0, 16 ldr r0, _080A0414 ldrb r0, [r0, 0xB] cmp r0, 0x2 bne _080A041C adds r0, r1, 0 bl sub_80A04CC ldr r0, _080A0418 bl sub_80A057C b _080A0422 .align 2, 0 _080A0414: .4byte 0x02018000 _080A0418: .4byte 0x0000ffff _080A041C: adds r0, r1, 0 bl sub_80A057C _080A0422: pop {r0} bx r0 thumb_func_end sub_80A03F0 thumb_func_start sub_80A0428 sub_80A0428: @ 80A0428 push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 ldrb r1, [r6] bl sub_80A03BC lsls r0, 16 lsrs r4, r0, 16 movs r0, 0xB movs r1, 0xF movs r2, 0x1C movs r3, 0x12 bl Reset ldr r0, _080A0454 ldrb r0, [r0, 0xB] cmp r0, 0x2 bne _080A0458 adds r0, r4, 0 bl sub_80A046C b _080A045E .align 2, 0 _080A0454: .4byte 0x02018000 _080A0458: adds r0, r4, 0 bl sub_80A0498 _080A045E: adds r0, r5, 0 adds r1, r6, 0 bl sub_80A03F0 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80A0428 thumb_func_start sub_80A046C sub_80A046C: @ 80A046C push {lr} lsls r0, 16 lsrs r1, r0, 16 ldr r0, _080A0490 cmp r1, r0 beq _080A048A ldr r0, _080A0494 subs r1, 0x1 lsls r1, 2 adds r1, r0 ldr r0, [r1] movs r1, 0xB movs r2, 0xF bl Print _080A048A: pop {r0} bx r0 .align 2, 0 _080A0490: .4byte 0x0000ffff _080A0494: .4byte gMoveDescriptions thumb_func_end sub_80A046C thumb_func_start sub_80A0498 sub_80A0498: @ 80A0498 push {lr} lsls r0, 16 lsrs r3, r0, 16 ldr r0, _080A04C0 cmp r3, r0 beq _080A04BC ldr r2, _080A04C4 ldr r1, _080A04C8 lsls r0, r3, 3 adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldr r0, [r0] movs r1, 0xB movs r2, 0xF bl Print _080A04BC: pop {r0} bx r0 .align 2, 0 _080A04C0: .4byte 0x0000ffff _080A04C4: .4byte gUnknown_083CADD4 _080A04C8: .4byte gContestMoves thumb_func_end sub_80A0498 thumb_func_start sub_80A04CC sub_80A04CC: @ 80A04CC push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 ldr r0, _080A0504 cmp r4, r0 beq _080A0572 ldr r2, _080A0508 lsls r1, r4, 1 adds r0, r1, r4 lsls r0, 2 adds r2, r0, r2 ldrb r0, [r2, 0x1] adds r5, r1, 0 cmp r0, 0x1 bhi _080A0514 ldr r0, _080A050C ldr r1, _080A0510 movs r2, 0x15 movs r3, 0x1 bl sub_8072C74 ldr r0, _080A050C movs r1, 0x7 movs r2, 0xF bl Print b _080A052A .align 2, 0 _080A0504: .4byte 0x0000ffff _080A0508: .4byte gBattleMoves _080A050C: .4byte 0x020231cc _080A0510: .4byte gUnknown_0840E685 _080A0514: ldr r0, _080A0550 ldrb r1, [r2, 0x1] movs r2, 0x15 movs r3, 0x1 bl sub_8072C14 ldr r0, _080A0550 movs r1, 0x7 movs r2, 0xF bl Print _080A052A: ldr r0, _080A0554 adds r1, r5, r4 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x3] cmp r0, 0 bne _080A055C ldr r0, _080A0550 ldr r1, _080A0558 movs r2, 0x15 movs r3, 0x1 bl sub_8072C74 ldr r0, _080A0550 movs r1, 0x7 movs r2, 0x11 bl Print b _080A0572 .align 2, 0 _080A0550: .4byte 0x020231cc _080A0554: .4byte gBattleMoves _080A0558: .4byte gUnknown_0840E685 _080A055C: ldr r0, _080A0578 ldrb r1, [r1, 0x3] movs r2, 0x15 movs r3, 0x1 bl sub_8072C14 ldr r0, _080A0578 movs r1, 0x7 movs r2, 0x11 bl Print _080A0572: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A0578: .4byte 0x020231cc thumb_func_end sub_80A04CC thumb_func_start sub_80A057C sub_80A057C: @ 80A057C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 lsrs r5, r0, 16 ldr r0, _080A0648 mov r8, r0 ldr r0, _080A064C cmp r5, r0 beq _080A063A ldr r1, _080A0650 ldr r2, _080A0654 lsls r3, r5, 3 adds r0, r3, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldrb r4, [r0, 0x1] mov r10, r2 mov r9, r3 cmp r4, 0xFF beq _080A05B8 adds r0, r4, 0 movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r4, r0, 24 _080A05B8: movs r2, 0 movs r7, 0x3 movs r6, 0xF3 lsls r6, 2 _080A05C0: ldr r3, _080A0658 cmp r4, 0xFF beq _080A05CC cmp r2, r4 bcs _080A05CC adds r3, 0x1 _080A05CC: lsrs r0, r2, 2 lsls r0, 5 adds r1, r2, 0 ands r1, r7 adds r1, r0 lsls r1, 1 add r1, r8 adds r1, r6 strh r3, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x7 bls _080A05C0 ldr r0, _080A064C cmp r5, r0 beq _080A063A mov r0, r9 add r0, r10 ldrb r0, [r0] lsls r0, 2 ldr r1, _080A0650 adds r0, r1 ldrb r4, [r0, 0x2] cmp r4, 0xFF beq _080A060C adds r0, r4, 0 movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r4, r0, 24 _080A060C: movs r2, 0 movs r6, 0x3 ldr r5, _080A065C _080A0612: ldr r3, _080A0660 cmp r4, 0xFF beq _080A061E cmp r2, r4 bcs _080A061E subs r3, 0x1 _080A061E: lsrs r0, r2, 2 lsls r0, 5 adds r1, r2, 0 ands r1, r6 adds r1, r0 lsls r1, 1 add r1, r8 adds r1, r5 strh r3, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x7 bls _080A0612 _080A063A: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A0648: .4byte 0x06006800 _080A064C: .4byte 0x0000ffff _080A0650: .4byte gContestEffects _080A0654: .4byte gContestMoves _080A0658: .4byte 0x00001039 _080A065C: .4byte 0x0000044c _080A0660: .4byte 0x0000103d thumb_func_end sub_80A057C thumb_func_start sub_80A0664 sub_80A0664: @ 80A0664 push {r4-r6,lr} adds r6, r0, 0 ldr r0, _080A06A0 ldr r1, [r0] ldr r0, _080A06A4 cmp r1, r0 bne _080A06B0 bl GetMultiplayerId movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 ldr r2, _080A06A8 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r0, r2, 0x4 adds r0, r1, r0 ldrh r5, [r0] ldr r4, _080A06AC adds r2, 0x8 adds r1, r2 adds r0, r4, 0 bl StringCopy adds r0, r4, 0 bl SkipExtCtrlCodes b _080A06C2 .align 2, 0 _080A06A0: .4byte 0x02018000 _080A06A4: .4byte 0x030045c0 _080A06A8: .4byte 0x03002970 _080A06AC: .4byte 0x020231cc _080A06B0: bl sub_80BFB94 adds r5, r0, 0 ldr r0, _080A06F0 ands r5, r0 ldr r0, _080A06F4 ldr r1, _080A06F8 bl StringCopy _080A06C2: adds r0, r6, 0 movs r1, 0x1 bl PokemonGetField ldr r1, _080A06F0 ands r1, r0 cmp r5, r1 bne _080A06EA ldr r4, _080A06FC adds r0, r6, 0 movs r1, 0x7 adds r2, r4, 0 bl PokemonGetField ldr r0, _080A06F4 adds r1, r4, 0 bl StringCompareWithoutExtCtrlCodes cmp r0, 0 beq _080A0700 _080A06EA: movs r0, 0 b _080A0702 .align 2, 0 _080A06F0: .4byte 0x0000ffff _080A06F4: .4byte 0x020231cc _080A06F8: .4byte gSaveBlock2 _080A06FC: .4byte 0x020232cc _080A0700: movs r0, 0x1 _080A0702: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80A0664 thumb_func_start sub_80A0708 sub_80A0708: @ 80A0708 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 mov r9, r5 lsls r2, 24 lsrs r6, r2, 24 mov r8, r6 movs r1, 0x25 bl PokemonGetField lsls r0, 24 movs r1, 0xFF lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0x2 bls _080A073C ldr r0, _080A0738 b _080A076E .align 2, 0 _080A0738: .4byte gUnknown_0842D197 _080A073C: adds r0, r4, 0 movs r1, 0x23 bl PokemonGetField lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0xFF bne _080A0754 ldr r0, _080A0750 b _080A076E .align 2, 0 _080A0750: .4byte gUnknown_0842D164 _080A0754: adds r0, r4, 0 bl sub_80A0664 lsls r0, 24 cmp r0, 0 bne _080A0768 ldr r0, _080A0764 b _080A076E .align 2, 0 _080A0764: .4byte gUnknown_0842D197 _080A0768: cmp r7, 0xFD bne _080A077C ldr r0, _080A0778 _080A076E: adds r1, r5, 0 adds r2, r6, 0 bl Print b _080A0786 .align 2, 0 _080A0778: .4byte gUnknown_0842D1C3 _080A077C: ldr r0, _080A0794 mov r1, r9 mov r2, r8 bl Print _080A0786: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A0794: .4byte gUnknown_0842D133 thumb_func_end sub_80A0708 thumb_func_start sub_80A0798 sub_80A0798: @ 80A0798 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r2, 24 lsrs r2, 24 mov r8, r2 ldr r5, _080A0838 bl GetNature lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080A083C lsls r0, r4, 2 adds r0, r1 ldr r1, [r0] adds r0, r5, 0 movs r2, 0xE bl sub_80A1E9C adds r5, r0, 0 cmp r4, 0x5 beq _080A07DA cmp r4, 0x15 beq _080A07DA ldr r1, _080A0840 bl StringCopy adds r5, r0, 0 _080A07DA: ldr r1, _080A0844 adds r0, r5, 0 bl StringCopy adds r5, r0, 0 adds r0, r7, 0 bl sub_80A0664 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A0898 adds r0, r7, 0 movs r1, 0x23 bl PokemonGetField lsls r0, 24 lsrs r6, r0, 24 adds r0, r7, 0 movs r1, 0x24 bl PokemonGetField cmp r0, 0 bne _080A0850 adds r0, r5, 0 movs r1, 0x5 bl sub_80A203C adds r5, r0, 0 movs r0, 0xFE strb r0, [r5] adds r5, 0x1 ldr r4, _080A0848 adds r0, r4, 0 adds r1, r6, 0 bl sub_80FC02C adds r0, r5, 0 adds r1, r4, 0 movs r2, 0xE bl sub_80A1E9C adds r5, r0, 0 ldr r1, _080A084C bl StringCopy b _080A0934 .align 2, 0 _080A0838: .4byte 0x020234cc _080A083C: .4byte gNatureNames _080A0840: .4byte gUnknown_0842D0E6 _080A0844: .4byte gUnknown_0842D0E7 _080A0848: .4byte 0x020231cc _080A084C: .4byte gUnknown_0842D0FB _080A0850: cmp r6, 0x57 bhi _080A08E8 adds r0, r7, 0 movs r1, 0x24 bl PokemonGetField adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_80A203C adds r5, r0, 0 movs r0, 0xFE strb r0, [r5] adds r5, 0x1 ldr r4, _080A0890 adds r0, r4, 0 adds r1, r6, 0 bl sub_80FC02C adds r0, r5, 0 adds r1, r4, 0 movs r2, 0xE bl sub_80A1E9C adds r5, r0, 0 ldr r1, _080A0894 bl StringCopy b _080A0934 .align 2, 0 _080A0890: .4byte 0x020231cc _080A0894: .4byte gUnknown_0842D0F3 _080A0898: adds r0, r7, 0 movs r1, 0x25 bl PokemonGetField lsls r0, 24 movs r1, 0xFF lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0x2 bhi _080A08E8 adds r0, r7, 0 movs r1, 0x23 bl PokemonGetField lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0xFF bne _080A08E4 adds r0, r7, 0 movs r1, 0x24 bl PokemonGetField adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_80A203C adds r5, r0, 0 movs r0, 0xFE strb r0, [r5] adds r5, 0x1 ldr r1, _080A08E0 b _080A08F0 .align 2, 0 _080A08E0: .4byte gUnknown_0842D118 _080A08E4: cmp r6, 0x57 bls _080A08FC _080A08E8: movs r0, 0xFE strb r0, [r5] adds r5, 0x1 ldr r1, _080A08F8 _080A08F0: adds r0, r5, 0 bl StringCopy b _080A0934 .align 2, 0 _080A08F8: .4byte gUnknown_0842D103 _080A08FC: adds r0, r7, 0 movs r1, 0x24 bl PokemonGetField adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_80A203C adds r5, r0, 0 movs r0, 0xFE strb r0, [r5] adds r5, 0x1 ldr r4, _080A094C adds r0, r4, 0 adds r1, r6, 0 bl sub_80FC02C adds r0, r5, 0 adds r1, r4, 0 movs r2, 0xE bl sub_80A1E9C adds r5, r0, 0 ldr r1, _080A0950 bl StringCopy _080A0934: ldr r0, _080A0954 mov r1, r9 mov r2, r8 bl Print pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A094C: .4byte 0x020231cc _080A0950: .4byte gUnknown_0842D12B _080A0954: .4byte 0x020234cc thumb_func_end sub_80A0798 thumb_func_start sub_80A0958 sub_80A0958: @ 80A0958 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} mov r8, r0 movs r1, 0xB bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r2, _080A0A24 adds r0, r2, 0 movs r1, 0xD bl sub_80A1E58 adds r2, r0, 0 movs r6, 0xFC strb r6, [r2] movs r0, 0x11 strb r0, [r2, 0x1] movs r0, 0x7 strb r0, [r2, 0x2] movs r0, 0xBA strb r0, [r2, 0x3] adds r2, 0x4 movs r0, 0xB adds r1, r4, 0 muls r1, r0 ldr r0, _080A0A28 adds r1, r0 adds r0, r2, 0 bl StringCopy adds r2, r0, 0 strb r6, [r2] movs r0, 0x13 mov r10, r0 strb r0, [r2, 0x1] movs r0, 0x50 strb r0, [r2, 0x2] movs r0, 0xFF mov r9, r0 strb r0, [r2, 0x3] ldr r5, _080A0A24 adds r0, r5, 0 movs r1, 0 movs r2, 0xE bl Print movs r0, 0x3 movs r1, 0x10 movs r2, 0x9 movs r3, 0x11 bl Reset mov r0, r8 movs r1, 0x38 bl PokemonGetField adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0xD bl sub_80A1E58 adds r2, r0, 0 movs r0, 0x34 strb r0, [r2] adds r2, 0x1 adds r0, r2, 0 adds r1, r4, 0 bl ConvertIntToDecimalString adds r2, r0, 0 strb r6, [r2] mov r0, r10 strb r0, [r2, 0x1] movs r0, 0x20 strb r0, [r2, 0x2] mov r0, r9 strb r0, [r2, 0x3] adds r0, r5, 0 movs r1, 0x3 movs r2, 0x10 bl Print mov r0, r8 movs r1, 0x7 movs r2, 0x10 bl sub_80A0A2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A0A24: .4byte 0x020231cc _080A0A28: .4byte gSpeciesNames thumb_func_end sub_80A0958 thumb_func_start sub_80A0A2C sub_80A0A2C: @ 80A0A2C push {r4-r6,lr} adds r6, r0, 0 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r4, r2, 24 movs r1, 0x41 bl PokemonGetField lsls r0, 16 lsrs r0, 16 cmp r0, 0x20 beq _080A0A84 cmp r0, 0x1D beq _080A0A84 adds r0, r6, 0 bl pokemon_get_gender lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080A0A6E cmp r0, 0xFE beq _080A0A78 adds r3, r4, 0x1 lsls r3, 24 lsrs r3, 24 adds r0, r5, 0 adds r1, r4, 0 adds r2, r5, 0 bl Reset b _080A0A84 _080A0A6E: ldr r0, _080A0A74 movs r1, 0xB b _080A0A7C .align 2, 0 _080A0A74: .4byte gUnknown_0840E689 _080A0A78: ldr r0, _080A0A8C movs r1, 0xC _080A0A7C: adds r2, r5, 0 adds r3, r4, 0 bl sub_80A1FF8 _080A0A84: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A0A8C: .4byte gUnknown_0840E68B thumb_func_end sub_80A0A2C thumb_func_start sub_80A0A90 sub_80A0A90: @ 80A0A90 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x32 bl PokemonGetField adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x33 bl PokemonGetField adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x34 bl PokemonGetField adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x35 bl PokemonGetField adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x36 bl PokemonGetField adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x43 bl PokemonGetField adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x44 bl PokemonGetField adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x45 bl PokemonGetField adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x46 bl PokemonGetField adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x47 bl PokemonGetField adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x48 bl PokemonGetField adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x49 bl PokemonGetField adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x4A bl PokemonGetField adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x4B bl PokemonGetField adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x4C bl PokemonGetField adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x4D bl PokemonGetField adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x4E bl PokemonGetField adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80A0A90 thumb_func_start sub_80A0B88 sub_80A0B88: @ 80A0B88 push {r4,r5,lr} bl sub_80A0A90 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _080A0BA8 ldr r0, _080A0BA0 ldr r1, _080A0BA4 bl StringCopy b _080A0BD8 .align 2, 0 _080A0BA0: .4byte 0x020231cc _080A0BA4: .4byte gUnknown_0840E66F _080A0BA8: ldr r4, _080A0BE8 ldr r1, _080A0BEC adds r0, r4, 0 bl StringCopy adds r0, r4, 0 bl StringLength lsls r0, 24 lsrs r0, 24 subs r4, 0x2 adds r0, r4 movs r1, 0xFC strb r1, [r0] movs r1, 0x14 strb r1, [r0, 0x1] movs r1, 0x6 strb r1, [r0, 0x2] adds r0, 0x3 adds r1, r5, 0 movs r2, 0x1 movs r3, 0x2 bl ConvertIntToDecimalStringN _080A0BD8: ldr r0, _080A0BF0 movs r1, 0x15 movs r2, 0x4 bl Print pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A0BE8: .4byte 0x020231cc _080A0BEC: .4byte gUnknown_0840F82F _080A0BF0: .4byte gUnknown_083C15AE thumb_func_end sub_80A0B88 thumb_func_start sub_80A0BF4 sub_80A0BF4: @ 80A0BF4 push {r4-r7,lr} lsls r0, 16 lsrs r5, r0, 16 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r6, r2, 24 cmp r5, 0xAF bne _080A0C48 bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A0C48 bl sub_806B528 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A0C48 ldr r0, _080A0C40 ldrb r0, [r0, 0x9] cmp r0, 0x1 beq _080A0C2E cmp r0, 0x4 beq _080A0C2E cmp r0, 0x5 bne _080A0C48 _080A0C2E: ldr r4, _080A0C44 adds r0, r5, 0 bl itemid_get_item adds r1, r0, 0 adds r0, r4, 0 bl StringCopy b _080A0C68 .align 2, 0 _080A0C40: .4byte 0x02018000 _080A0C44: .4byte 0x020231cc _080A0C48: cmp r5, 0 bne _080A0C60 ldr r0, _080A0C58 ldr r1, _080A0C5C bl StringCopy b _080A0C68 .align 2, 0 _080A0C58: .4byte 0x020231cc _080A0C5C: .4byte gUnknown_0840E66F _080A0C60: ldr r1, _080A0C78 adds r0, r5, 0 bl itemid_copy_name _080A0C68: ldr r0, _080A0C7C adds r1, r7, 0 adds r2, r6, 0 bl Print pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A0C78: .4byte 0x020231cc _080A0C7C: .4byte gUnknown_083C15B4 thumb_func_end sub_80A0BF4 thumb_func_start sub_80A0C80 sub_80A0C80: @ 80A0C80 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 lsrs r2, 24 str r2, [sp] movs r0, 0 mov r9, r0 movs r6, 0 movs r7, 0 adds r0, r4, 0 movs r1, 0x19 bl PokemonGetField mov r8, r0 adds r0, r4, 0 movs r1, 0x38 bl PokemonGetField lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r4, r0, 16 cmp r5, 0x63 bhi _080A0D14 ldr r3, _080A0D4C adds r1, r5, 0x1 lsls r1, 2 ldr r2, _080A0D50 lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r0, r2 ldrb r2, [r0, 0x13] movs r0, 0xCA lsls r0, 1 muls r2, r0 adds r1, r2 adds r1, r3 ldr r1, [r1] mov r0, r8 subs r0, r1, r0 mov r9, r0 lsls r0, r5, 2 adds r0, r2 adds r0, r3 ldr r0, [r0] subs r1, r0 mov r2, r8 subs r4, r2, r0 lsls r0, r4, 6 bl __udivsi3 adds r6, r0, 0 movs r7, 0 adds r0, r7, 0 orrs r0, r6 cmp r0, 0 bne _080A0D14 cmp r4, 0 beq _080A0D14 movs r6, 0x1 movs r7, 0 _080A0D14: ldr r4, _080A0D54 adds r0, r4, 0 mov r1, r9 bl ConvertIntToDecimalString mov r1, r10 adds r1, 0x6 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 ldr r2, [sp] bl PrintCoinsString ldr r0, _080A0D58 mov r9, r0 movs r2, 0 mov r12, r2 ldr r0, _080A0D5C mov r8, r0 _080A0D3A: cmp r7, 0 bgt _080A0D46 cmp r7, 0 bne _080A0D64 cmp r6, 0x7 bls _080A0D64 _080A0D46: ldr r1, _080A0D60 b _080A0D96 .align 2, 0 _080A0D4C: .4byte gExperienceTables _080A0D50: .4byte gBaseStats _080A0D54: .4byte 0x020231cc _080A0D58: .4byte 0x06004caa _080A0D5C: .4byte 0x00002062 _080A0D60: .4byte 0x0000206a _080A0D64: adds r5, r7, 0 adds r4, r6, 0 cmp r7, 0 bge _080A0D74 movs r4, 0x7 movs r5, 0 adds r4, r6 adcs r5, r7 _080A0D74: lsls r3, r5, 29 lsrs r2, r4, 3 adds r0, r3, 0 orrs r0, r2 asrs r1, r5, 3 lsrs r5, r0, 29 lsls r4, r1, 3 adds r3, r5, 0 orrs r3, r4 lsls r2, r0, 3 adds r1, r7, 0 adds r0, r6, 0 subs r0, r2 sbcs r1, r3 add r0, r8 lsls r0, 16 lsrs r1, r0, 16 _080A0D96: mov r2, r12 lsls r0, r2, 1 add r0, r9 strh r1, [r0] movs r0, 0x8 negs r0, r0 asrs r1, r0, 31 adds r6, r0 adcs r7, r1 cmp r7, 0 bge _080A0DB0 movs r6, 0 movs r7, 0 _080A0DB0: mov r0, r12 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r12, r0 cmp r0, 0x7 bls _080A0D3A add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A0C80 thumb_func_start sub_80A0DD0 sub_80A0DD0: @ 80A0DD0 push {r4,r5,lr} ldr r2, _080A0E3C movs r5, 0xFC strb r5, [r2] movs r0, 0x12 strb r0, [r2, 0x1] movs r0, 0x2 strb r0, [r2, 0x2] adds r2, 0x3 adds r0, r2, 0 movs r1, 0xD bl sub_80A1E58 adds r2, r0, 0 ldr r1, _080A0E40 ldr r4, _080A0E44 adds r0, r4, 0 adds r0, 0x7E ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r2, 0 bl StringCopy adds r2, r0, 0 strb r5, [r2] movs r0, 0x13 strb r0, [r2, 0x1] movs r0, 0x58 strb r0, [r2, 0x2] movs r0, 0xFF strb r0, [r2, 0x3] ldr r0, _080A0E3C movs r1, 0 movs r2, 0 bl Print adds r4, 0x7F ldrb r0, [r4] cmp r0, 0 beq _080A0E48 movs r0, 0x5 movs r1, 0x17 movs r2, 0 bl GetStringCenterAlignXOffset movs r0, 0x6 movs r1, 0x18 movs r2, 0 bl GetStringCenterAlignXOffset b _080A0E54 .align 2, 0 _080A0E3C: .4byte 0x020231cc _080A0E40: .4byte gUnknown_083C1068 _080A0E44: .4byte 0x02018000 _080A0E48: movs r0, 0x17 movs r1, 0 movs r2, 0x18 movs r3, 0x1 bl Reset _080A0E54: ldr r2, _080A0E98 adds r0, r2, 0 movs r1, 0xD bl sub_80A1E58 adds r2, r0, 0 ldr r1, _080A0E9C ldr r0, _080A0EA0 adds r0, 0x7F ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r2, 0 bl StringCopy adds r2, r0, 0 movs r0, 0xFC strb r0, [r2] movs r0, 0x13 strb r0, [r2, 0x1] movs r0, 0x28 strb r0, [r2, 0x2] movs r0, 0xFF strb r0, [r2, 0x3] ldr r0, _080A0E98 movs r1, 0x19 movs r2, 0 bl Print pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A0E98: .4byte 0x020231cc _080A0E9C: .4byte gUnknown_083C1068 _080A0EA0: .4byte 0x02018000 thumb_func_end sub_80A0DD0 thumb_func_start sub_80A0EA4 sub_80A0EA4: @ 80A0EA4 push {r4-r6,lr} adds r4, r0, 0 ldr r5, _080A0ECC ldr r6, _080A0ED0 movs r1, 0 bl sub_8040110 lsls r0, 24 cmp r0, 0 bne _080A0ED4 adds r0, r4, 0 movs r1, 0 bl sub_8040178 lsls r0, 24 cmp r0, 0 beq _080A0ED4 movs r0, 0x2C b _080A0ED8 .align 2, 0 _080A0ECC: .4byte 0x0600e444 _080A0ED0: .4byte 0x0600ec44 _080A0ED4: ldr r1, _080A0EE4 adds r0, r1, 0 _080A0ED8: strh r0, [r5] strh r0, [r6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A0EE4: .4byte 0x0000081a thumb_func_end sub_80A0EA4 thumb_func_start sub_80A0EE8 sub_80A0EE8: @ 80A0EE8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 movs r3, 0 ldr r6, _080A0F24 adds r5, r6, 0 ldr r1, _080A0F28 mov r8, r1 ldr r2, _080A0F2C mov r10, r2 _080A0F02: adds r0, r5, 0 adds r0, 0x75 ldrb r0, [r0] cmp r3, r0 bcs _080A0F30 lsls r1, r3, 1 lsls r0, r3, 2 add r0, sp mov r4, r8 strh r4, [r0] adds r1, 0x1 lsls r1, 1 mov r7, sp adds r0, r7, r1 strh r4, [r0] b _080A0FE2 .align 2, 0 _080A0F24: .4byte 0x02018000 _080A0F28: .4byte 0x00004040 _080A0F2C: .4byte 0x0000404a _080A0F30: movs r0, 0x76 adds r0, r6 mov r12, r0 ldrb r1, [r0] cmp r3, r1 bls _080A0F52 lsls r1, r3, 1 lsls r0, r3, 2 add r0, sp mov r2, r10 strh r2, [r0] adds r1, 0x1 lsls r1, 1 mov r4, sp adds r0, r4, r1 strh r2, [r0] b _080A0FE2 _080A0F52: ldrb r4, [r5, 0xB] cmp r3, r4 bcs _080A0F6E lsls r1, r3, 1 lsls r0, r3, 2 mov r7, sp adds r2, r7, r0 ldr r0, _080A0F88 strh r0, [r2] adds r1, 0x1 lsls r1, 1 add r1, sp adds r0, 0x1 strh r0, [r1] _080A0F6E: cmp r3, r4 bne _080A0FA6 mov r0, r12 ldrb r0, [r0] cmp r3, r0 beq _080A0F90 lsls r1, r3, 1 lsls r0, r3, 2 mov r4, sp adds r2, r4, r0 ldr r0, _080A0F8C b _080A0F9A .align 2, 0 _080A0F88: .4byte 0x00004046 _080A0F8C: .4byte 0x00004041 _080A0F90: lsls r1, r3, 1 lsls r0, r3, 2 mov r7, sp adds r2, r7, r0 ldr r0, _080A0FC4 _080A0F9A: strh r0, [r2] adds r1, 0x1 lsls r1, 1 add r1, sp adds r0, 0x1 strh r0, [r1] _080A0FA6: ldrb r0, [r5, 0xB] cmp r3, r0 bls _080A0FE2 adds r0, r6, 0 adds r0, 0x76 ldrb r0, [r0] cmp r3, r0 beq _080A0FCC lsls r1, r3, 1 lsls r0, r3, 2 mov r4, sp adds r2, r4, r0 ldr r0, _080A0FC8 b _080A0FD6 .align 2, 0 _080A0FC4: .4byte 0x0000404b _080A0FC8: .4byte 0x00004043 _080A0FCC: lsls r1, r3, 1 lsls r0, r3, 2 mov r7, sp adds r2, r7, r0 ldr r0, _080A1034 _080A0FD6: strh r0, [r2] adds r1, 0x1 lsls r1, 1 add r1, sp adds r0, 0x1 strh r0, [r1] _080A0FE2: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _080A0F02 ldr r1, _080A1038 ldr r0, _080A103C mov r2, sp str r2, [r0] str r1, [r0, 0x4] ldr r1, _080A1040 str r1, [r0, 0x8] ldr r0, [r0, 0x8] movs r3, 0 _080A0FFE: lsls r0, r3, 1 mov r4, sp adds r1, r4, r0 ldrh r0, [r1] adds r0, 0x10 strh r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x7 bls _080A0FFE ldr r1, _080A1044 ldr r0, _080A103C str r4, [r0] str r1, [r0, 0x4] ldr r1, _080A1040 str r1, [r0, 0x8] ldr r0, [r0, 0x8] add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A1034: .4byte 0x00004048 _080A1038: .4byte 0x0600e016 _080A103C: .4byte 0x040000d4 _080A1040: .4byte 0x80000008 _080A1044: .4byte 0x0600e056 thumb_func_end sub_80A0EE8 thumb_func_start sub_80A1048 sub_80A1048: @ 80A1048 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r0, 2 add r0, r8 lsls r0, 3 ldr r1, _080A10A0 adds r6, r0, r1 ldrh r0, [r6] ldrh r1, [r6, 0x2] adds r0, r1 strh r0, [r6, 0x2] lsls r0, 16 cmp r0, 0 bne _080A106E b _080A1224 _080A106E: movs r5, 0x2 ldrsh r2, [r6, r5] ldr r0, _080A10A4 subs r0, r2 lsls r0, 1 ldr r1, _080A10A8 adds r4, r0, r1 ldr r5, _080A10AC lsls r2, 1 movs r0, 0x80 lsls r0, 5 adds r7, r1, 0 cmp r2, r0 bhi _080A10B4 ldr r0, _080A10B0 str r4, [r0] str r5, [r0, 0x4] lsrs r1, r2, 1 movs r2, 0x80 lsls r2, 24 orrs r1, r2 str r1, [r0, 0x8] ldr r0, [r0, 0x8] b _080A10E0 .align 2, 0 _080A10A0: .4byte 0x03004b28 _080A10A4: .4byte 0x0000024a _080A10A8: .4byte gUnknown_08E73508 _080A10AC: .4byte 0x0600e480 _080A10B0: .4byte 0x040000d4 _080A10B4: ldr r3, _080A110C str r4, [r3] str r5, [r3, 0x4] ldr r0, _080A1110 str r0, [r3, 0x8] ldr r0, [r3, 0x8] movs r0, 0x80 lsls r0, 5 adds r4, r0 adds r5, r0 ldr r1, _080A1114 adds r2, r1 cmp r2, r0 bhi _080A10B4 str r4, [r3] str r5, [r3, 0x4] lsrs r0, r2, 1 movs r1, 0x80 lsls r1, 24 orrs r0, r1 str r0, [r3, 0x8] ldr r0, [r3, 0x8] _080A10E0: movs r5, 0x2 ldrsh r0, [r6, r5] ldr r1, _080A1118 subs r1, r0 lsls r1, 1 adds r3, r1, r7 ldr r4, _080A111C lsls r1, r0, 1 movs r0, 0x80 lsls r0, 5 cmp r1, r0 bhi _080A1120 ldr r0, _080A110C str r3, [r0] str r4, [r0, 0x4] lsrs r1, 1 movs r2, 0x80 lsls r2, 24 orrs r1, r2 str r1, [r0, 0x8] ldr r0, [r0, 0x8] b _080A114C .align 2, 0 _080A110C: .4byte 0x040000d4 _080A1110: .4byte 0x80000800 _080A1114: .4byte 0xfffff000 _080A1118: .4byte 0x0000026a _080A111C: .4byte 0x0600e4c0 _080A1120: ldr r2, _080A1178 str r3, [r2] str r4, [r2, 0x4] ldr r0, _080A117C str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r0, 0x80 lsls r0, 5 adds r3, r0 adds r4, r0 ldr r5, _080A1180 adds r1, r5 cmp r1, r0 bhi _080A1120 str r3, [r2] str r4, [r2, 0x4] lsrs r0, r1, 1 movs r1, 0x80 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] _080A114C: movs r1, 0x2 ldrsh r0, [r6, r1] ldr r1, _080A1184 subs r1, r0 lsls r1, 1 adds r3, r1, r7 ldr r4, _080A1188 lsls r1, r0, 1 movs r0, 0x80 lsls r0, 5 cmp r1, r0 bhi _080A118C ldr r0, _080A1178 str r3, [r0] str r4, [r0, 0x4] lsrs r1, 1 movs r2, 0x80 lsls r2, 24 orrs r1, r2 str r1, [r0, 0x8] ldr r0, [r0, 0x8] b _080A11B8 .align 2, 0 _080A1178: .4byte 0x040000d4 _080A117C: .4byte 0x80000800 _080A1180: .4byte 0xfffff000 _080A1184: .4byte 0x0000024a _080A1188: .4byte 0x0600ec80 _080A118C: ldr r2, _080A11E4 str r3, [r2] str r4, [r2, 0x4] ldr r0, _080A11E8 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r0, 0x80 lsls r0, 5 adds r3, r0 adds r4, r0 ldr r5, _080A11EC adds r1, r5 cmp r1, r0 bhi _080A118C str r3, [r2] str r4, [r2, 0x4] lsrs r0, r1, 1 movs r1, 0x80 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] _080A11B8: movs r1, 0x2 ldrsh r0, [r6, r1] ldr r1, _080A11F0 subs r1, r0 lsls r1, 1 adds r3, r1, r7 ldr r4, _080A11F4 lsls r1, r0, 1 movs r0, 0x80 lsls r0, 5 cmp r1, r0 bhi _080A11F8 ldr r0, _080A11E4 str r3, [r0] str r4, [r0, 0x4] lsrs r1, 1 movs r2, 0x80 lsls r2, 24 orrs r1, r2 str r1, [r0, 0x8] ldr r0, [r0, 0x8] b _080A1224 .align 2, 0 _080A11E4: .4byte 0x040000d4 _080A11E8: .4byte 0x80000800 _080A11EC: .4byte 0xfffff000 _080A11F0: .4byte 0x0000026a _080A11F4: .4byte 0x0600ecc0 _080A11F8: ldr r2, _080A12B0 str r3, [r2] str r4, [r2, 0x4] ldr r0, _080A12B4 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r0, 0x80 lsls r0, 5 adds r3, r0 adds r4, r0 ldr r5, _080A12B8 adds r1, r5 cmp r1, r0 bhi _080A11F8 str r3, [r2] str r4, [r2, 0x4] lsrs r0, r1, 1 movs r1, 0x80 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] _080A1224: ldrb r4, [r6, 0x2] ldrh r7, [r6, 0x2] ldrh r0, [r6] mov r12, r0 cmp r4, 0x9 bhi _080A1272 adds r3, r6, 0x4 ldr r2, _080A12B0 ldr r5, _080A12BC _080A1236: lsls r1, r4, 1 ldr r6, _080A12C0 adds r0, r1, r6 str r3, [r2] str r0, [r2, 0x4] str r5, [r2, 0x8] ldr r0, [r2, 0x8] adds r6, 0x40 adds r0, r1, r6 str r3, [r2] str r0, [r2, 0x4] str r5, [r2, 0x8] ldr r0, [r2, 0x8] ldr r6, _080A12C4 adds r0, r1, r6 str r3, [r2] str r0, [r2, 0x4] str r5, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _080A12C8 adds r1, r0 str r3, [r2] str r1, [r2, 0x4] str r5, [r2, 0x8] ldr r0, [r2, 0x8] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _080A1236 _080A1272: mov r1, r12 lsls r0, r1, 16 cmp r0, 0 beq _080A1286 lsls r0, r7, 16 asrs r0, 16 cmp r0, 0 ble _080A1286 cmp r0, 0x9 ble _080A12A4 _080A1286: lsls r0, r7, 16 asrs r0, 16 cmp r0, 0x9 ble _080A129A ldr r0, _080A12CC movs r1, 0xD movs r2, 0x1 movs r3, 0x12 bl sub_80A1FF8 _080A129A: bl sub_80A1D18 mov r0, r8 bl DestroyTask _080A12A4: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A12B0: .4byte 0x040000d4 _080A12B4: .4byte 0x80000800 _080A12B8: .4byte 0xfffff000 _080A12BC: .4byte 0x80000001 _080A12C0: .4byte 0x0600e480 _080A12C4: .4byte 0x0600ec80 _080A12C8: .4byte 0x0600ecc0 _080A12CC: .4byte gUnknown_0840F813 thumb_func_end sub_80A1048 thumb_func_start sub_80A12D0 sub_80A12D0: @ 80A12D0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 movs r1, 0x12 movs r2, 0x5 movs r3, 0x13 bl Reset movs r0, 0x1D bl sub_80A18E4 ldr r0, _080A1310 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080A1314 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0, r1 lsls r4, 24 asrs r4, 24 strh r4, [r1, 0x8] cmp r4, 0 bge _080A1318 movs r0, 0xA b _080A131A .align 2, 0 _080A1310: .4byte sub_80A1048 _080A1314: .4byte 0x03004b20 _080A1318: movs r0, 0 _080A131A: strh r0, [r1, 0xA] ldr r0, _080A1330 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0xC] pop {r4} pop {r0} bx r0 .align 2, 0 _080A1330: .4byte 0x03004b20 thumb_func_end sub_80A12D0 thumb_func_start sub_80A1334 sub_80A1334: @ 80A1334 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r0, 2 add r0, r10 lsls r0, 3 ldr r1, _080A13E4 adds r7, r0, r1 ldrh r0, [r7] ldrh r1, [r7, 0x2] adds r0, r1 strh r0, [r7, 0x2] lsls r0, 16 asrs r1, r0, 16 movs r0, 0 cmp r1, 0 blt _080A136A movs r0, 0xA cmp r1, 0xA bgt _080A136A ldrh r0, [r7, 0x2] _080A136A: lsls r0, 16 asrs r2, r0, 16 mov r9, r0 cmp r2, 0 ble _080A13A6 movs r0, 0xA subs r0, r2 lsls r0, 1 ldr r1, _080A13E8 adds r4, r0, r1 movs r5, 0 adds r6, r2, 0 ldr r0, _080A13EC mov r8, r0 _080A1386: adds r0, r5, 0 adds r0, 0xD lsls r0, 6 ldr r1, _080A13F0 adds r0, r1 adds r1, r4, 0 mov r2, r8 ands r2, r6 bl CpuSet adds r4, 0x40 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x6 bls _080A1386 _080A13A6: mov r1, r9 asrs r2, r1, 16 cmp r2, 0x9 bgt _080A13F4 ldr r4, _080A13E8 movs r5, 0 mov r8, sp movs r0, 0xA subs r6, r0, r2 ldr r0, _080A13EC ands r6, r0 movs r0, 0x80 lsls r0, 17 mov r9, r0 _080A13C2: ldrh r0, [r7, 0x4] mov r1, r8 strh r0, [r1] mov r0, sp adds r1, r4, 0 mov r2, r9 orrs r2, r6 bl CpuSet adds r4, 0x40 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x6 bls _080A13C2 b _080A1400 .align 2, 0 _080A13E4: .4byte 0x03004b28 _080A13E8: .4byte 0x06005b40 _080A13EC: .4byte 0x001fffff _080A13F0: .4byte gUnknown_08E73E88 _080A13F4: movs r0, 0 movs r1, 0x13 movs r2, 0x9 movs r3, 0x13 bl Reset _080A1400: movs r1, 0 ldrsh r0, [r7, r1] cmp r0, 0 beq _080A1410 movs r1, 0x2 ldrsh r0, [r7, r1] cmp r0, 0 bge _080A144A _080A1410: ldr r4, _080A1480 ldrb r0, [r4, 0xB] cmp r0, 0x2 bne _080A1444 movs r0, 0 movs r1, 0xE movs r2, 0x9 movs r3, 0x12 bl Reset adds r4, 0x10 adds r0, r4, 0 bl sub_80A0958 adds r0, r4, 0 bl sub_80A1CD8 lsls r0, 24 cmp r0, 0 beq _080A1444 ldr r0, _080A1484 movs r1, 0xD movs r2, 0x1 movs r3, 0x12 bl sub_80A1FF8 _080A1444: mov r0, r10 bl DestroyTask _080A144A: movs r1, 0x2 ldrsh r0, [r7, r1] cmp r0, 0x9 ble _080A1470 ldr r4, _080A1480 ldrb r0, [r4, 0xB] cmp r0, 0x2 bne _080A1460 ldrb r0, [r7, 0x6] bl sub_80A00F4 _080A1460: adds r0, r4, 0 adds r0, 0x10 adds r1, r7, 0x6 bl sub_80A0428 mov r0, r10 bl DestroyTask _080A1470: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A1480: .4byte 0x02018000 _080A1484: .4byte gUnknown_0840F813 thumb_func_end sub_80A1334 thumb_func_start sub_80A1488 sub_80A1488: @ 80A1488 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r7, r1, 24 ldr r0, _080A14DC ldrb r0, [r0, 0xB] cmp r0, 0x2 bne _080A14A6 movs r0, 0 movs r1, 0xE movs r2, 0x9 movs r3, 0x13 bl Reset _080A14A6: ldr r5, _080A14E0 adds r0, r5, 0 bl FindTaskIdByFunc lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xFF bne _080A14C2 adds r0, r5, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r4, r0, 24 _080A14C2: ldr r1, _080A14E4 lsls r2, r4, 2 adds r0, r2, r4 lsls r0, 3 adds r3, r0, r1 lsls r0, r6, 24 asrs r0, 24 strh r0, [r3, 0x8] cmp r0, 0 bge _080A14E8 movs r0, 0xA b _080A14EA .align 2, 0 _080A14DC: .4byte 0x02018000 _080A14E0: .4byte sub_80A1334 _080A14E4: .4byte 0x03004b20 _080A14E8: movs r0, 0 _080A14EA: strh r0, [r3, 0xA] adds r0, r2, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] strh r7, [r0, 0xE] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A1488 thumb_func_start sub_80A1500 sub_80A1500: @ 80A1500 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r0, 2 add r0, r10 lsls r0, 3 ldr r1, _080A15B0 adds r7, r0, r1 ldrh r0, [r7] ldrh r1, [r7, 0x2] adds r0, r1 strh r0, [r7, 0x2] lsls r0, 16 asrs r1, r0, 16 movs r0, 0 cmp r1, 0 blt _080A1536 movs r0, 0xA cmp r1, 0xA bgt _080A1536 ldrh r0, [r7, 0x2] _080A1536: lsls r0, 16 asrs r2, r0, 16 mov r9, r0 cmp r2, 0 ble _080A1572 movs r0, 0xA subs r0, r2 lsls r0, 1 ldr r1, _080A15B4 adds r4, r0, r1 movs r5, 0 adds r6, r2, 0 ldr r0, _080A15B8 mov r8, r0 _080A1552: adds r0, r5, 0 adds r0, 0xD lsls r0, 6 ldr r1, _080A15BC adds r0, r1 adds r1, r4, 0 mov r2, r8 ands r2, r6 bl CpuSet adds r4, 0x40 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x6 bls _080A1552 _080A1572: mov r1, r9 asrs r2, r1, 16 cmp r2, 0x9 bgt _080A15C0 ldr r4, _080A15B4 movs r5, 0 mov r8, sp movs r0, 0xA subs r6, r0, r2 ldr r0, _080A15B8 ands r6, r0 movs r0, 0x80 lsls r0, 17 mov r9, r0 _080A158E: ldrh r0, [r7, 0x4] mov r1, r8 strh r0, [r1] mov r0, sp adds r1, r4, 0 mov r2, r9 orrs r2, r6 bl CpuSet adds r4, 0x40 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x6 bls _080A158E b _080A15CC .align 2, 0 _080A15B0: .4byte 0x03004b28 _080A15B4: .4byte 0x06006b40 _080A15B8: .4byte 0x001fffff _080A15BC: .4byte gUnknown_08E74688 _080A15C0: movs r0, 0 movs r1, 0x13 movs r2, 0x9 movs r3, 0x13 bl Reset _080A15CC: movs r1, 0 ldrsh r0, [r7, r1] cmp r0, 0 beq _080A15DC movs r1, 0x2 ldrsh r0, [r7, r1] cmp r0, 0 bge _080A1616 _080A15DC: ldr r4, _080A164C ldrb r0, [r4, 0xB] cmp r0, 0x3 bne _080A1610 movs r0, 0 movs r1, 0xE movs r2, 0x9 movs r3, 0x12 bl Reset adds r4, 0x10 adds r0, r4, 0 bl sub_80A0958 adds r0, r4, 0 bl sub_80A1CD8 lsls r0, 24 cmp r0, 0 beq _080A1610 ldr r0, _080A1650 movs r1, 0xD movs r2, 0x1 movs r3, 0x12 bl sub_80A1FF8 _080A1610: mov r0, r10 bl DestroyTask _080A1616: movs r1, 0x2 ldrsh r0, [r7, r1] cmp r0, 0x9 ble _080A163C ldr r4, _080A164C ldrb r0, [r4, 0xB] cmp r0, 0x3 bne _080A162C ldrb r0, [r7, 0x6] bl sub_80A00F4 _080A162C: adds r0, r4, 0 adds r0, 0x10 adds r1, r7, 0x6 bl sub_80A0428 mov r0, r10 bl DestroyTask _080A163C: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A164C: .4byte 0x02018000 _080A1650: .4byte gUnknown_0840F813 thumb_func_end sub_80A1500 thumb_func_start sub_80A1654 sub_80A1654: @ 80A1654 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r7, r1, 24 ldr r0, _080A16A8 ldrb r0, [r0, 0xB] cmp r0, 0x3 bne _080A1672 movs r0, 0 movs r1, 0xE movs r2, 0x9 movs r3, 0x13 bl Reset _080A1672: ldr r5, _080A16AC adds r0, r5, 0 bl FindTaskIdByFunc lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xFF bne _080A168E adds r0, r5, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r4, r0, 24 _080A168E: ldr r1, _080A16B0 lsls r2, r4, 2 adds r0, r2, r4 lsls r0, 3 adds r3, r0, r1 lsls r0, r6, 24 asrs r0, 24 strh r0, [r3, 0x8] cmp r0, 0 bge _080A16B4 movs r0, 0xA b _080A16B6 .align 2, 0 _080A16A8: .4byte 0x02018000 _080A16AC: .4byte sub_80A1500 _080A16B0: .4byte 0x03004b20 _080A16B4: movs r0, 0 _080A16B6: strh r0, [r3, 0xA] adds r0, r2, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] strh r7, [r0, 0xE] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A1654 thumb_func_start sub_80A16CC sub_80A16CC: @ 80A16CC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r0, _080A1724 mov r12, r0 mov r1, r9 cmp r1, 0 bne _080A172C movs r5, 0 ldr r7, _080A1728 movs r0, 0x80 lsls r0, 5 adds r6, r0, 0 movs r1, 0x40 adds r1, r7 mov r8, r1 _080A16F4: lsls r2, r5, 1 mov r0, r12 adds r3, r2, r0 adds r4, r2, r7 ldrh r1, [r4] adds r0, r6, r1 strh r0, [r3] adds r1, r3, 0 adds r1, 0x40 ldrh r4, [r4] adds r0, r6, r4 strh r0, [r1] adds r3, 0x80 add r2, r8 ldrh r2, [r2] adds r0, r6, r2 strh r0, [r3] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _080A16F4 b _080A1768 .align 2, 0 _080A1724: .4byte 0x06006ad4 _080A1728: .4byte gUnknown_08E94510 _080A172C: movs r5, 0 ldr r6, _080A17B0 movs r7, 0x80 lsls r7, 5 adds r4, r7, 0 movs r0, 0x40 adds r0, r6 mov r8, r0 _080A173C: lsls r1, r5, 1 mov r7, r12 adds r2, r1, r7 adds r0, r1, r6 ldrh r0, [r0] adds r0, r4, r0 strh r0, [r2] adds r3, r2, 0 adds r3, 0x40 add r1, r8 ldrh r7, [r1] adds r0, r4, r7 strh r0, [r3] adds r2, 0x80 ldrh r1, [r1] adds r0, r4, r1 strh r0, [r2] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _080A173C _080A1768: ldr r0, _080A17B4 mov r12, r0 mov r1, r9 cmp r1, 0 bne _080A17BC movs r5, 0 ldr r7, _080A17B8 movs r0, 0xC0 lsls r0, 6 adds r6, r0, 0 movs r1, 0x40 adds r1, r7 mov r8, r1 _080A1782: lsls r2, r5, 1 mov r0, r12 adds r3, r2, r0 adds r4, r2, r7 ldrh r1, [r4] adds r0, r6, r1 strh r0, [r3] adds r1, r3, 0 adds r1, 0x40 ldrh r4, [r4] adds r0, r6, r4 strh r0, [r1] adds r3, 0x80 add r2, r8 ldrh r2, [r2] adds r0, r6, r2 strh r0, [r3] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _080A1782 b _080A17F8 .align 2, 0 _080A17B0: .4byte gUnknown_08E94550 _080A17B4: .4byte 0x06005ad4 _080A17B8: .4byte gUnknown_08E94510 _080A17BC: movs r5, 0 ldr r6, _080A1804 movs r7, 0xC0 lsls r7, 6 adds r4, r7, 0 movs r0, 0x40 adds r0, r6 mov r8, r0 _080A17CC: lsls r1, r5, 1 mov r7, r12 adds r2, r1, r7 adds r0, r1, r6 ldrh r0, [r0] adds r0, r4, r0 strh r0, [r2] adds r3, r2, 0 adds r3, 0x40 add r1, r8 ldrh r7, [r1] adds r0, r4, r7 strh r0, [r3] adds r2, 0x80 ldrh r1, [r1] adds r0, r4, r1 strh r0, [r2] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _080A17CC _080A17F8: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A1804: .4byte gUnknown_08E94550 thumb_func_end sub_80A16CC thumb_func_start sub_80A1808 sub_80A1808: @ 80A1808 push {r4-r7,lr} mov r7, r8 push {r7} movs r1, 0x41 bl PokemonGetField adds r6, r0, 0 lsls r6, 16 lsrs r6, 16 ldr r0, _080A1860 movs r1, 0x28 movs r2, 0x40 movs r3, 0x5 bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r4, r0, 4 add r4, r8 lsls r4, 2 ldr r5, _080A1864 adds r7, r4, r5 adds r0, r7, 0 bl FreeSpriteOamMatrix strh r6, [r7, 0x2E] adds r5, 0x1C adds r4, r5 ldr r0, _080A1868 str r0, [r4] adds r0, r6, 0 bl sub_8040A3C lsls r0, 24 cmp r0, 0 bne _080A186C adds r0, r7, 0 adds r0, 0x3F ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] b _080A187A .align 2, 0 _080A1860: .4byte 0x02024e8c _080A1864: .4byte 0x02020004 _080A1868: .4byte sub_80A1888 _080A186C: adds r2, r7, 0 adds r2, 0x3F ldrb r1, [r2] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2] _080A187A: mov r0, r8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A1808 thumb_func_start sub_80A1888 sub_80A1888: @ 80A1888 push {r4,lr} adds r4, r0, 0 ldr r0, _080A18B8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080A18B0 ldr r0, _080A18BC str r0, [r4, 0x1C] ldr r0, _080A18C0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _080A18B0 ldrh r0, [r4, 0x2E] movs r1, 0 bl cry_related _080A18B0: pop {r4} pop {r0} bx r0 .align 2, 0 _080A18B8: .4byte 0x0202f388 _080A18BC: .4byte SpriteCallbackDummy _080A18C0: .4byte 0x02018010 thumb_func_end sub_80A1888 thumb_func_start sub_80A18C4 sub_80A18C4: @ 80A18C4 push {lr} movs r1, 0 ldr r3, _080A18E0 movs r2, 0xFF _080A18CC: adds r0, r1, r3 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1D bls _080A18CC pop {r0} bx r0 .align 2, 0 _080A18E0: .4byte 0x0201a000 thumb_func_end sub_80A18C4 thumb_func_start sub_80A18E4 sub_80A18E4: @ 80A18E4 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080A1910 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0xFF beq _080A1908 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080A1914 adds r0, r1 bl DestroySprite movs r0, 0xFF strb r0, [r4] _080A1908: pop {r4} pop {r0} bx r0 .align 2, 0 _080A1910: .4byte 0x0201a000 _080A1914: .4byte 0x02020004 thumb_func_end sub_80A18E4 thumb_func_start sub_80A1918 sub_80A1918: @ 80A1918 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 ldr r3, _080A1948 ldr r2, _080A194C adds r0, r2 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 adds r2, 0x3E movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r3, [r2] movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] bx lr .align 2, 0 _080A1948: .4byte 0x02020004 _080A194C: .4byte 0x0201a000 thumb_func_end sub_80A1918 thumb_func_start sub_80A1950 sub_80A1950: @ 80A1950 push {r4,r5,lr} movs r5, 0 _080A1954: ldr r0, _080A1984 adds r4, r5, r0 ldrb r0, [r4] cmp r0, 0xFF bne _080A196C ldr r0, _080A1988 movs r1, 0 movs r2, 0 movs r3, 0x2 bl CreateSprite strb r0, [r4] _080A196C: adds r0, r5, 0 movs r1, 0x1 bl sub_80A1918 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _080A1954 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A1984: .4byte 0x0201a000 _080A1988: .4byte gSpriteTemplate_83C11C0 thumb_func_end sub_80A1950 thumb_func_start sub_80A198C sub_80A198C: @ 80A198C push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 mov r10, r3 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 mov r0, r10 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r1, _080A1A24 mov r8, r1 add r8, r10 mov r0, r8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080A1A28 mov r9, r1 add r0, r9 adds r1, r4, 0 bl StartSpriteAnim mov r1, r8 ldrb r0, [r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r9 ldr r0, _080A1A2C adds r4, r0 ldrb r2, [r4] lsls r2, 4 ldrb r3, [r1, 0x5] movs r0, 0xF ands r0, r3 orrs r0, r2 strb r0, [r1, 0x5] mov r0, r8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 adds r5, 0x10 strh r5, [r0, 0x20] mov r0, r8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 adds r6, 0x8 strh r6, [r0, 0x22] mov r0, r10 movs r1, 0 bl sub_80A1918 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A1A24: .4byte 0x0201a000 _080A1A28: .4byte 0x02020004 _080A1A2C: .4byte gUnknown_083C11D8 thumb_func_end sub_80A198C thumb_func_start sub_80A1A30 sub_80A1A30: @ 80A1A30 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 mov r9, r0 ldr r1, _080A1A98 ldrb r0, [r1, 0xB] cmp r0, 0x1 bls _080A1B0A cmp r4, 0x9 bne _080A1A52 movs r3, 0x1 mov r9, r3 _080A1A52: movs r5, 0 movs r0, 0x80 lsls r0, 6 adds r0, r1 mov r8, r0 ldr r6, _080A1A9C mov r10, r5 _080A1A60: lsls r1, r5, 20 movs r3, 0xB0 lsls r3, 15 adds r1, r3 asrs r1, 16 ldr r0, _080A1AA0 movs r2, 0x28 mov r3, r9 bl CreateSprite adds r1, r4, r5 mov r3, r8 adds r2, r1, r3 strb r0, [r2] adds r7, r1, 0 cmp r5, 0 bne _080A1AA4 adds r0, r4, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x4 bl StartSpriteAnim b _080A1AD0 .align 2, 0 _080A1A98: .4byte 0x02018000 _080A1A9C: .4byte 0x02020004 _080A1AA0: .4byte gSpriteTemplate_83C1280 _080A1AA4: cmp r5, 0x9 bne _080A1AC0 adds r0, r4, 0 adds r0, 0x9 add r0, r8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x5 bl StartSpriteAnim b _080A1AD0 _080A1AC0: ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x6 bl StartSpriteAnim _080A1AD0: mov r0, r8 adds r2, r7, r0 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r6, 0 adds r1, 0x1C adds r0, r1 ldr r1, _080A1B18 str r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r4, [r0, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 mov r1, r10 strh r1, [r0, 0x30] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x9 bls _080A1A60 _080A1B0A: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A1B18: .4byte sub_80A1BC0 thumb_func_end sub_80A1A30 thumb_func_start sub_80A1B1C sub_80A1B1C: @ 80A1B1C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 _080A1B24: adds r0, r5, r4 lsls r0, 24 lsrs r0, 24 bl sub_80A18E4 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _080A1B24 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80A1B1C thumb_func_start sub_80A1B40 sub_80A1B40: @ 80A1B40 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 lsls r1, r7, 1 adds r1, r7 lsls r1, 24 ldr r0, _080A1BB4 ldrb r2, [r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 ldr r2, _080A1BB8 adds r0, r2 lsrs r7, r1, 24 movs r2, 0x80 lsls r2, 19 adds r1, r2 lsrs r1, 24 bl StartSpriteAnim movs r4, 0 adds r0, r7, 0x6 lsls r0, 24 mov r8, r0 _080A1B74: ldr r6, _080A1BBC adds r0, r4, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _080A1BB8 adds r0, r5 mov r2, r8 lsrs r1, r2, 24 bl StartSpriteAnim adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _080A1B74 ldrb r1, [r6, 0x8] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r1, r7, 0x5 lsls r1, 24 lsrs r1, 24 bl StartSpriteAnim pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A1BB4: .4byte 0x0201a009 _080A1BB8: .4byte 0x02020004 _080A1BBC: .4byte 0x0201a00a thumb_func_end sub_80A1B40 thumb_func_start sub_80A1BC0 sub_80A1BC0: @ 80A1BC0 push {lr} adds r2, r0, 0 adds r0, 0x2A ldrb r0, [r0] subs r0, 0x4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bhi _080A1BF8 ldrh r0, [r2, 0x30] adds r0, 0x1 movs r1, 0x1F ands r0, r1 strh r0, [r2, 0x30] cmp r0, 0x18 ble _080A1BEC adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 b _080A1C06 _080A1BEC: adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 b _080A1C04 _080A1BF8: movs r0, 0 strh r0, [r2, 0x30] adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] subs r0, 0x5 _080A1C04: ands r0, r1 _080A1C06: strb r0, [r3] movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0x9 bne _080A1C1C ldr r0, _080A1C18 adds r0, 0x79 b _080A1C20 .align 2, 0 _080A1C18: .4byte 0x02018000 _080A1C1C: ldr r0, _080A1C2C adds r0, 0x7A _080A1C20: ldrb r0, [r0] lsls r0, 4 strh r0, [r2, 0x26] pop {r0} bx r0 .align 2, 0 _080A1C2C: .4byte 0x02018000 thumb_func_end sub_80A1BC0 thumb_func_start sub_80A1C30 sub_80A1C30: @ 80A1C30 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 25 lsrs r3, r0, 24 adds r4, r3, 0 adds r0, r3, 0 adds r0, 0xA cmp r3, r0 bge _080A1C82 ldr r5, _080A1C88 movs r7, 0x5 negs r7, r7 ldr r6, _080A1C8C _080A1C50: adds r2, r3, r6 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0 strh r1, [r0, 0x30] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r2, [r1] adds r0, r7, 0 ands r0, r2 strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r0, r4, 0 adds r0, 0xA cmp r3, r0 blt _080A1C50 _080A1C82: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A1C88: .4byte 0x02020004 _080A1C8C: .4byte 0x0201a009 thumb_func_end sub_80A1C30 thumb_func_start pokemon_ailments_get_primary pokemon_ailments_get_primary: @ 80A1C90 push {lr} adds r1, r0, 0 movs r0, 0x88 ands r0, r1 cmp r0, 0 beq _080A1CA0 movs r0, 0x1 b _080A1CD2 _080A1CA0: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080A1CAC movs r0, 0x2 b _080A1CD2 _080A1CAC: movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _080A1CB8 movs r0, 0x3 b _080A1CD2 _080A1CB8: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080A1CC4 movs r0, 0x4 b _080A1CD2 _080A1CC4: movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _080A1CD0 movs r0, 0 b _080A1CD2 _080A1CD0: movs r0, 0x5 _080A1CD2: pop {r1} bx r1 thumb_func_end pokemon_ailments_get_primary thumb_func_start sub_80A1CD8 sub_80A1CD8: @ 80A1CD8 push {r4,lr} adds r4, r0, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 bne _080A1CEA movs r0, 0x7 b _080A1D12 _080A1CEA: adds r0, r4, 0 movs r1, 0x37 bl PokemonGetField bl pokemon_ailments_get_primary lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080A1D12 adds r0, r4, 0 movs r1, 0 bl sub_8040110 lsls r0, 24 cmp r0, 0 bne _080A1D10 movs r0, 0 b _080A1D12 _080A1D10: movs r0, 0x6 _080A1D12: pop {r4} pop {r1} bx r1 thumb_func_end sub_80A1CD8 thumb_func_start sub_80A1D18 sub_80A1D18: @ 80A1D18 push {r4,r5,lr} sub sp, 0x64 mov r0, sp bl sub_809F678 mov r0, sp bl sub_80A1CD8 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080A1D58 subs r0, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldr r4, _080A1D50 ldrb r0, [r4] cmp r0, 0xFF bne _080A1D60 ldr r0, _080A1D54 movs r1, 0x40 movs r2, 0x98 movs r3, 0 bl CreateSprite strb r0, [r4] b _080A1D60 .align 2, 0 _080A1D50: .4byte 0x0201a01d _080A1D54: .4byte gSpriteTemplate_83C1304 _080A1D58: movs r0, 0x1D bl sub_80A18E4 b _080A1D74 _080A1D60: ldr r0, _080A1D7C ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080A1D80 adds r0, r1 adds r1, r5, 0 bl StartSpriteAnim _080A1D74: add sp, 0x64 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A1D7C: .4byte 0x0201a01d _080A1D80: .4byte 0x02020004 thumb_func_end sub_80A1D18 thumb_func_start sub_80A1D84 sub_80A1D84: @ 80A1D84 push {r4-r6,lr} adds r5, r0, 0 ldr r1, _080A1DC0 ldr r2, _080A1DC4 adds r0, r1, 0 bl sub_80F7920 adds r4, r0, 0 ldr r6, _080A1DC8 str r4, [r6] cmp r4, 0 beq _080A1DBA adds r0, r5, 0 movs r1, 0x8 bl PokemonGetField adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim ldr r1, [r6] movs r0, 0x3C strh r0, [r1, 0x20] movs r0, 0x1A strh r0, [r1, 0x22] _080A1DBA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A1DC0: .4byte 0x00007533 _080A1DC4: .4byte gUnknown_083C131C _080A1DC8: .4byte 0x020384f4 thumb_func_end sub_80A1D84 thumb_func_start sub_80A1DCC sub_80A1DCC: @ 80A1DCC push {r4,lr} adds r4, r0, 0 ldr r0, _080A1DE4 ldr r0, [r0] bl DestroySprite adds r0, r4, 0 bl sub_80A1D84 pop {r4} pop {r0} bx r0 .align 2, 0 _080A1DE4: .4byte 0x020384f4 thumb_func_end sub_80A1DCC thumb_func_start sub_80A1DE8 sub_80A1DE8: @ 80A1DE8 push {r4,lr} movs r1, 0x26 bl PokemonGetField lsls r0, 16 lsrs r0, 16 bl ball_number_to_ball_processing_index adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_80478DC lsls r0, r4, 1 adds r0, r4 lsls r0, 3 ldr r1, _080A1E48 adds r0, r1 movs r1, 0x6 movs r2, 0x88 movs r3, 0 bl CreateSprite ldr r2, _080A1E4C strb r0, [r2, 0xD] ldr r3, _080A1E50 ldrb r1, [r2, 0xD] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r0, r1 ldr r1, _080A1E54 str r1, [r0] ldrb r1, [r2, 0xD] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x5] movs r2, 0xC orrs r1, r2 strb r1, [r0, 0x5] pop {r4} pop {r0} bx r0 .align 2, 0 _080A1E48: .4byte gSpriteTemplate_820AAB4 _080A1E4C: .4byte 0x02018000 _080A1E50: .4byte 0x02020004 _080A1E54: .4byte SpriteCallbackDummy thumb_func_end sub_80A1DE8 thumb_func_start sub_80A1E58 sub_80A1E58: @ 80A1E58 push {r4,lr} adds r2, r0, 0 lsls r1, 24 lsrs r1, 24 cmp r1, 0xFF beq _080A1E92 ldr r3, _080A1E6C ldrb r0, [r3] adds r4, r2, 0x5 b _080A1E74 .align 2, 0 _080A1E6C: .4byte gUnknown_083C15BC _080A1E70: adds r3, 0x4 ldrb r0, [r3] _080A1E74: cmp r0, 0xFF beq _080A1E7C cmp r0, r1 bne _080A1E70 _080A1E7C: movs r0, 0xFC strb r0, [r2] movs r0, 0x4 strb r0, [r2, 0x1] ldrb r0, [r3, 0x1] strb r0, [r2, 0x2] ldrb r0, [r3, 0x2] strb r0, [r2, 0x3] ldrb r0, [r3, 0x3] strb r0, [r2, 0x4] adds r2, r4, 0 _080A1E92: adds r0, r2, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80A1E58 thumb_func_start sub_80A1E9C sub_80A1E9C: @ 80A1E9C push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 adds r5, r1, 0 lsls r4, r2, 24 lsrs r4, 24 mov r1, sp adds r1, 0x1 mov r2, sp adds r2, 0x2 mov r0, sp bl sub_8072CD4 adds r0, r6, 0 adds r1, r4, 0 bl sub_80A1E58 adds r6, r0, 0 adds r1, r5, 0 bl StringCopy adds r6, r0, 0 cmp r4, 0xFF beq _080A1EEC movs r0, 0xFC strb r0, [r6] movs r0, 0x4 strb r0, [r6, 0x1] mov r0, sp ldrb r0, [r0] strb r0, [r6, 0x2] mov r0, sp ldrb r0, [r0, 0x1] strb r0, [r6, 0x3] mov r0, sp ldrb r0, [r0, 0x2] strb r0, [r6, 0x4] movs r0, 0xFF strb r0, [r6, 0x5] adds r6, 0x5 _080A1EEC: adds r0, r6, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80A1E9C thumb_func_start sub_80A1EF8 sub_80A1EF8: @ 80A1EF8 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 mov r9, r0 adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 ldr r3, [sp, 0x1C] lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 16 lsrs r6, 16 ldr r0, _080A1F44 mov r8, r0 mov r1, r9 adds r2, r4, 0 str r3, [sp] bl sub_80A1E9C ldr r3, [sp] lsls r3, 24 lsrs r3, 24 mov r0, r8 adds r1, r5, 0 adds r2, r6, 0 bl sub_80729D8 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A1F44: .4byte 0x020234cc thumb_func_end sub_80A1EF8 thumb_func_start sub_80A1F48 sub_80A1F48: @ 80A1F48 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 mov r9, r0 adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 ldr r3, [sp, 0x1C] lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 lsls r3, 16 lsrs r3, 16 ldr r0, _080A1F94 mov r8, r0 mov r1, r9 adds r2, r4, 0 str r3, [sp] bl sub_80A1E9C mov r0, r8 adds r1, r5, 0 adds r2, r6, 0 ldr r3, [sp] bl Free add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A1F94: .4byte 0x020234cc thumb_func_end sub_80A1F48 thumb_func_start sub_80A1F98 sub_80A1F98: @ 80A1F98 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r10, r0 mov r8, r1 adds r4, r2, 0 adds r2, r3, 0 ldr r5, [sp, 0x24] ldr r6, [sp, 0x28] ldr r7, [sp, 0x2C] mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r4, 24 lsrs r4, 24 lsls r2, 24 lsrs r2, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 16 lsrs r6, 16 ldr r0, _080A1FF4 mov r9, r0 mov r1, r10 adds r3, r4, 0 bl ConvertIntToDecimalStringN str r7, [sp] mov r0, r9 mov r1, r8 adds r2, r5, 0 adds r3, r6, 0 bl sub_80A1EF8 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A1FF4: .4byte 0x020231cc thumb_func_end sub_80A1F98 thumb_func_start sub_80A1FF8 sub_80A1FF8: @ 80A1FF8 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} mov r9, r0 adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 ldr r0, _080A2038 mov r8, r0 mov r1, r9 adds r2, r4, 0 bl sub_80A1E9C mov r0, r8 adds r1, r5, 0 adds r2, r6, 0 bl Print pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A2038: .4byte 0x020234cc thumb_func_end sub_80A1FF8 thumb_func_start sub_80A203C sub_80A203C: @ 80A203C push {r4,lr} sub sp, 0xC adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0x34 strb r0, [r4] adds r4, 0x1 cmp r1, 0 bne _080A2052 movs r1, 0x5 _080A2052: mov r0, sp bl ConvertIntToDecimalString adds r0, r4, 0 mov r1, sp movs r2, 0xE bl sub_80A1E9C adds r4, r0, 0 ldr r1, _080A2074 bl StringCopy adds r4, r0, 0 add sp, 0xC pop {r4} pop {r1} bx r1 .align 2, 0 _080A2074: .4byte gUnknown_0842D0F1 thumb_func_end sub_80A203C thumb_func_start BgFrame_FillTileMap BgFrame_FillTileMap: @ 80A2078 push {lr} ldr r3, _080A209C ldr r2, _080A20A0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, [r1] str r2, [r3] ldr r2, _080A20A4 str r2, [r1] lsls r0, 24 lsrs r0, 24 bl _call_via_r2 pop {r0} bx r0 .align 2, 0 _080A209C: .4byte 0x03005cf0 _080A20A0: .4byte 0x03004b20 _080A20A4: .4byte sub_80A20A8 thumb_func_end BgFrame_FillTileMap thumb_func_start sub_80A20A8 sub_80A20A8: @ 80A20A8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8055870 cmp r0, 0x1 beq _080A20C6 ldr r1, _080A20CC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080A20D0 ldr r1, [r1] str r1, [r0] _080A20C6: pop {r4} pop {r0} bx r0 .align 2, 0 _080A20CC: .4byte 0x03004b20 _080A20D0: .4byte 0x03005cf0 thumb_func_end sub_80A20A8 thumb_func_start exec_movement exec_movement: @ 80A20D4 push {r4,lr} sub sp, 0x4 adds r4, r3, 0 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 beq _080A20F6 movs r0, 0x1 b _080A211E _080A20F6: ldr r0, _080A2128 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _080A2108 movs r0, 0x32 bl sub_80A2198 _080A2108: bl sub_80A21E0 lsls r0, 24 lsrs r0, 24 mov r1, sp ldrb r1, [r1] adds r2, r4, 0 bl sub_80A21F4 lsls r0, 24 lsrs r0, 24 _080A211E: add sp, 0x4 pop {r4} pop {r1} bx r1 .align 2, 0 _080A2128: .4byte sub_80A244C thumb_func_end exec_movement thumb_func_start sub_80A212C sub_80A212C: @ 80A212C push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _080A216E bl sub_80A21E0 lsls r0, 24 lsrs r4, r0, 24 mov r0, sp ldrb r1, [r0] adds r0, r4, 0 bl sub_80A2260 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x10 beq _080A216E adds r0, r4, 0 bl sub_80A2370 lsls r0, 24 lsrs r0, 24 b _080A2170 _080A216E: movs r0, 0x1 _080A2170: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_80A212C thumb_func_start sub_80A2178 sub_80A2178: @ 80A2178 push {r4,lr} bl sub_80A21E0 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xFF beq _080A2192 adds r0, r4, 0 bl sub_80A2408 adds r0, r4, 0 bl DestroyTask _080A2192: pop {r4} pop {r0} bx r0 thumb_func_end sub_80A2178 thumb_func_start sub_80A2198 sub_80A2198: @ 80A2198 push {r4,r5,lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r0, _080A21D4 bl CreateTask lsls r0, 24 lsrs r0, 24 movs r2, 0x1 lsls r1, r0, 2 adds r1, r0 lsls r3, r1, 3 ldr r5, _080A21D8 ldr r0, _080A21DC adds r4, r0, 0 _080A21B8: lsls r0, r2, 1 adds r0, r3 adds r0, r5 ldrh r1, [r0] orrs r1, r4 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xF bls _080A21B8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A21D4: .4byte sub_80A244C _080A21D8: .4byte 0x03004b28 _080A21DC: .4byte 0x0000ffff thumb_func_end sub_80A2198 thumb_func_start sub_80A21E0 sub_80A21E0: @ 80A21E0 push {lr} ldr r0, _080A21F0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080A21F0: .4byte sub_80A244C thumb_func_end sub_80A21E0 thumb_func_start sub_80A21F4 sub_80A21F4: @ 80A21F4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r2 lsls r0, 24 lsrs r5, r0, 24 adds r7, r5, 0 lsls r1, 24 lsrs r6, r1, 24 mov r8, r6 adds r0, r5, 0 adds r1, r6, 0 bl sub_80A2260 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x10 beq _080A2230 adds r0, r5, 0 adds r1, r4, 0 bl sub_80A2370 lsls r0, 24 cmp r0, 0 beq _080A2250 adds r0, r5, 0 adds r1, r4, 0 adds r2, r6, 0 b _080A2246 _080A2230: adds r0, r7, 0 movs r1, 0xFF bl sub_80A2260 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x10 beq _080A2250 adds r0, r7, 0 adds r1, r4, 0 mov r2, r8 _080A2246: mov r3, r9 bl sub_80A23C8 movs r0, 0 b _080A2252 _080A2250: movs r0, 0x1 _080A2252: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A21F4 thumb_func_start sub_80A2260 sub_80A2260: @ 80A2260 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r3, r1, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080A2284 adds r1, r0 adds r1, 0x2 movs r2, 0 _080A2278: ldrb r0, [r1] cmp r0, r3 bne _080A2288 adds r0, r2, 0 b _080A2296 .align 2, 0 _080A2284: .4byte 0x03004b28 _080A2288: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 adds r1, 0x1 cmp r2, 0xF bls _080A2278 movs r0, 0x10 _080A2296: pop {r1} bx r1 thumb_func_end sub_80A2260 thumb_func_start sub_80A229C sub_80A229C: @ 80A229C push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r3, r1, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080A22CC adds r1, r0 adds r1, 0x2 str r1, [r2] movs r0, 0 cmp r0, r3 bcs _080A22C8 _080A22BA: adds r0, 0x1 lsls r0, 24 lsrs r0, 24 adds r1, 0x1 cmp r0, r3 bcc _080A22BA str r1, [r2] _080A22C8: pop {r0} bx r0 .align 2, 0 _080A22CC: .4byte 0x03004b28 thumb_func_end sub_80A229C thumb_func_start sub_80A22D0 sub_80A22D0: @ 80A22D0 push {r4,lr} sub sp, 0x4 adds r4, r2, 0 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r4, 24 lsrs r4, 24 mov r2, sp bl sub_80A229C ldr r0, [sp] strb r4, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_80A22D0 thumb_func_start sub_80A22F4 sub_80A22F4: @ 80A22F4 push {r4,lr} sub sp, 0x4 adds r4, r2, 0 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 mov r2, sp bl sub_80A229C ldr r0, [sp] ldrb r0, [r0] strb r0, [r4] add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_80A22F4 thumb_func_start sub_80A2318 sub_80A2318: @ 80A2318 lsls r0, 24 lsrs r0, 24 lsls r1, 24 ldr r2, _080A2340 lsrs r1, 22 adds r1, r2 ldr r2, [r1] mvns r2, r2 lsls r2, 16 lsrs r2, 16 ldr r3, _080A2344 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r3 ldrh r0, [r1, 0x8] ands r2, r0 strh r2, [r1, 0x8] bx lr .align 2, 0 _080A2340: .4byte gBitTable _080A2344: .4byte 0x03004b20 thumb_func_end sub_80A2318 thumb_func_start sub_80A2348 sub_80A2348: @ 80A2348 lsls r0, 24 lsrs r0, 24 lsls r1, 24 ldr r3, _080A2368 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r2, r3 ldr r0, _080A236C lsrs r1, 22 adds r1, r0 ldr r0, [r1] ldrh r1, [r2, 0x8] orrs r0, r1 strh r0, [r2, 0x8] bx lr .align 2, 0 _080A2368: .4byte 0x03004b20 _080A236C: .4byte gBitTable thumb_func_end sub_80A2348 thumb_func_start sub_80A2370 sub_80A2370: @ 80A2370 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 ldr r3, _080A2398 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r2, r3 ldr r0, _080A239C lsrs r1, 22 adds r1, r0 ldr r0, [r1] ldrh r1, [r2, 0x8] ands r0, r1 cmp r0, 0 bne _080A23A0 movs r0, 0 b _080A23A2 .align 2, 0 _080A2398: .4byte 0x03004b20 _080A239C: .4byte gBitTable _080A23A0: movs r0, 0x1 _080A23A2: pop {r1} bx r1 thumb_func_end sub_80A2370 thumb_func_start npc_obj_offscreen_culling_and_flag_update npc_obj_offscreen_culling_and_flag_update: @ 80A23A8 lsls r0, 24 ldr r2, _080A23B4 lsrs r0, 22 adds r0, r2 str r1, [r0] bx lr .align 2, 0 _080A23B4: .4byte 0x020384f8 thumb_func_end npc_obj_offscreen_culling_and_flag_update thumb_func_start sub_80A23B8 sub_80A23B8: @ 80A23B8 lsls r0, 24 ldr r1, _080A23C4 lsrs r0, 22 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _080A23C4: .4byte 0x020384f8 thumb_func_end sub_80A23B8 thumb_func_start sub_80A23C8 sub_80A23C8: @ 80A23C8 push {r4-r6,lr} mov r6, r8 push {r6} adds r5, r0, 0 adds r4, r1, 0 adds r6, r2, 0 mov r8, r3 lsls r5, 24 lsrs r5, 24 lsls r4, 24 lsrs r4, 24 lsls r6, 24 lsrs r6, 24 adds r0, r5, 0 adds r1, r4, 0 bl sub_80A2318 adds r0, r4, 0 mov r1, r8 bl npc_obj_offscreen_culling_and_flag_update adds r0, r5, 0 adds r1, r4, 0 adds r2, r6, 0 bl sub_80A22D0 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80A23C8 thumb_func_start sub_80A2408 sub_80A2408: @ 80A2408 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080A2444 adds r1, r0 adds r4, r1, 0x2 movs r5, 0 _080A241C: ldrb r0, [r4] cmp r0, 0xFF beq _080A2432 adds r1, r0, 0 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080A2448 adds r0, r1 bl npc_sync_anim_pause_bits _080A2432: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x1 cmp r5, 0xF bls _080A241C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A2444: .4byte 0x03004b28 _080A2448: .4byte 0x030048a0 thumb_func_end sub_80A2408 thumb_func_start sub_80A244C sub_80A244C: @ 80A244C push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 movs r5, 0 mov r6, sp _080A2458: adds r0, r7, 0 adds r1, r5, 0 mov r2, sp bl sub_80A22F4 ldrb r0, [r6] cmp r0, 0xFF beq _080A247C adds r4, r0, 0 adds r0, r5, 0 bl sub_80A23B8 adds r3, r0, 0 adds r0, r7, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_80A2490 _080A247C: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xF bls _080A2458 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A244C thumb_func_start sub_80A2490 sub_80A2490: @ 80A2490 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r3, 0 lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r6, r1, 24 mov r8, r6 lsls r2, 24 lsrs r2, 24 lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r1, _080A24E0 adds r4, r0, r1 adds r0, r4, 0 bl FieldObjectIsSpecialAnimActive lsls r0, 24 cmp r0, 0 beq _080A24C8 adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _080A24FA _080A24C8: ldrb r1, [r5] cmp r1, 0xFE bne _080A24E4 adds r0, r7, 0 adds r1, r6, 0 bl sub_80A2348 adds r0, r4, 0 bl sub_80643A4 b _080A24FA .align 2, 0 _080A24E0: .4byte 0x030048a0 _080A24E4: adds r0, r4, 0 bl FieldObjectSetSpecialAnim lsls r0, 24 cmp r0, 0 bne _080A24FA adds r5, 0x1 mov r0, r8 adds r1, r5, 0 bl npc_obj_offscreen_culling_and_flag_update _080A24FA: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A2490 thumb_func_start sub_80A2504 sub_80A2504: @ 80A2504 push {r4-r7,lr} mov r7, r8 push {r7} movs r0, 0x52 bl npc_before_player_of_type lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A2534 ldr r1, _080A2524 ldr r0, _080A2528 str r0, [r1] ldr r1, _080A252C ldr r0, _080A2530 b _080A25A8 .align 2, 0 _080A2524: .4byte 0x0300485c _080A2528: .4byte sub_808AB90 _080A252C: .4byte 0x03005ce4 _080A2530: .4byte sub_80A2634 _080A2534: ldr r4, _080A25B0 adds r1, r4, 0x2 adds r0, r4, 0 bl PlayerGetDestCoords movs r7, 0 mov r8, r4 _080A2542: ldr r1, _080A25B4 adds r0, r7, r1 mov r2, r8 ldrh r2, [r2, 0x2] adds r0, r2 movs r6, 0 lsls r0, 16 asrs r5, r0, 16 _080A2552: ldr r1, _080A25B4 adds r0, r6, r1 mov r2, r8 ldrh r2, [r2] adds r0, r2 lsls r0, 16 asrs r4, r0, 16 adds r0, r4, 0 adds r1, r5, 0 bl MapGridGetZCoordAt lsls r0, 24 lsrs r0, 24 mov r2, r8 movs r1, 0x4 ldrsb r1, [r2, r1] cmp r0, r1 bne _080A25C8 adds r0, r4, 0 adds r1, r5, 0 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_8056E14 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080A259E adds r0, r4, 0 bl MetatileBehavior_IsAsh lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A25C8 _080A259E: ldr r1, _080A25B8 ldr r0, _080A25BC str r0, [r1] ldr r1, _080A25C0 ldr r0, _080A25C4 _080A25A8: str r0, [r1] movs r0, 0x1 b _080A25DE .align 2, 0 _080A25B0: .4byte 0x0203923c _080A25B4: .4byte 0x0000ffff _080A25B8: .4byte 0x0300485c _080A25BC: .4byte sub_808AB90 _080A25C0: .4byte 0x03005ce4 _080A25C4: .4byte sub_80A25E8 _080A25C8: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x2 bls _080A2552 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x2 bls _080A2542 movs r0, 0 _080A25DE: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A2504 thumb_func_start sub_80A25E8 sub_80A25E8: @ 80A25E8 push {lr} movs r0, 0x1 bl FieldEffectStart ldr r0, _080A25FC ldr r1, _080A2600 ldrb r1, [r1] str r1, [r0] pop {r0} bx r0 .align 2, 0 _080A25FC: .4byte 0x0202ff84 _080A2600: .4byte 0x03005ce0 thumb_func_end sub_80A25E8 thumb_func_start sub_80A2604 sub_80A2604: @ 80A2604 push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _080A262C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _080A2630 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0x12 bl sav12_xor_increment movs r0, 0 pop {r1} bx r1 .align 2, 0 _080A262C: .4byte 0x03004b20 _080A2630: .4byte sub_80A2684 thumb_func_end sub_80A2604 thumb_func_start sub_80A2634 sub_80A2634: @ 80A2634 push {lr} ldr r1, _080A2648 ldr r0, _080A264C ldrb r0, [r0] str r0, [r1] ldr r0, _080A2650 bl script_env_1_execute_new_script pop {r0} bx r0 .align 2, 0 _080A2648: .4byte 0x0202ff84 _080A264C: .4byte 0x03005ce0 _080A2650: .4byte UseCutScript thumb_func_end sub_80A2634 thumb_func_start sub_80A2654 sub_80A2654: @ 80A2654 push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _080A267C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _080A2680 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0x12 bl sav12_xor_increment movs r0, 0 pop {r1} bx r1 .align 2, 0 _080A267C: .4byte 0x03004b20 _080A2680: .4byte sub_80A2B00 thumb_func_end sub_80A2654 thumb_func_start sub_80A2684 sub_80A2684: @ 80A2684 push {lr} movs r0, 0x1 bl FieldEffectActiveListRemove movs r0, 0x3A bl FieldEffectStart pop {r0} bx r0 thumb_func_end sub_80A2684 thumb_func_start sub_80A2698 sub_80A2698: @ 80A2698 push {r4-r7,lr} mov r7, r8 push {r7} movs r7, 0 movs r0, 0x80 bl audio_play ldr r4, _080A2790 adds r1, r4, 0x2 adds r0, r4, 0 bl PlayerGetDestCoords mov r8, r4 _080A26B2: ldr r1, _080A2794 adds r0, r7, r1 mov r2, r8 ldrh r2, [r2, 0x2] adds r0, r2 movs r6, 0 lsls r0, 16 asrs r5, r0, 16 _080A26C2: ldr r1, _080A2794 adds r0, r6, r1 mov r2, r8 ldrh r2, [r2] adds r0, r2 lsls r0, 16 asrs r4, r0, 16 adds r0, r4, 0 adds r1, r5, 0 bl MapGridGetZCoordAt lsls r0, 24 lsrs r0, 24 mov r2, r8 movs r1, 0x4 ldrsb r1, [r2, r1] cmp r0, r1 bne _080A270E adds r0, r4, 0 adds r1, r5, 0 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl sub_80578F8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A270E adds r0, r4, 0 adds r1, r5, 0 bl sub_80A27A8 adds r0, r4, 0 adds r1, r5, 0 bl sub_805BCC0 _080A270E: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x2 bls _080A26C2 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x2 bls _080A26B2 ldr r1, _080A2790 ldrh r0, [r1] subs r0, 0x1 lsls r0, 16 asrs r0, 16 ldrh r1, [r1, 0x2] subs r1, 0x2 lsls r1, 16 asrs r1, 16 bl sub_80A28F4 bl DrawWholeMapView movs r7, 0 ldr r4, _080A2798 _080A2740: ldr r0, _080A279C ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x2] lsls r1, 23 lsrs r1, 7 movs r2, 0x80 lsls r2, 12 adds r1, r2 asrs r1, 16 ldrb r2, [r0] adds r2, 0x14 ldr r0, _080A27A0 movs r3, 0 bl CreateSprite ldr r1, _080A27A4 adds r1, r7, r1 strb r0, [r1] ldrb r1, [r1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 lsls r1, r7, 5 strh r1, [r0, 0x32] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x7 bls _080A2740 movs r0, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080A2790: .4byte 0x0203923c _080A2794: .4byte 0x0000ffff _080A2798: .4byte 0x02020004 _080A279C: .4byte 0x0202e858 _080A27A0: .4byte gSpriteTemplate_CutGrass _080A27A4: .4byte 0x0201fff0 thumb_func_end sub_80A2698 thumb_func_start sub_80A27A8 sub_80A27A8: @ 80A27A8 push {r4-r7,lr} lsls r0, 16 lsls r1, 16 lsrs r6, r0, 16 asrs r4, r0, 16 lsrs r7, r1, 16 asrs r5, r1, 16 adds r0, r4, 0 adds r1, r5, 0 bl MapGridGetMetatileIdAt adds r1, r0, 0 ldr r0, _080A27E0 cmp r1, r0 bgt _080A27F4 subs r0, 0x1 cmp r1, r0 bge _080A286C cmp r1, 0x25 beq _080A288E cmp r1, 0x25 bgt _080A27E4 cmp r1, 0xD beq _080A2834 cmp r1, 0x15 beq _080A2834 b _080A2898 .align 2, 0 _080A27E0: .4byte 0x00000207 _080A27E4: movs r0, 0xE3 lsls r0, 1 cmp r1, r0 beq _080A2844 adds r0, 0x1 cmp r1, r0 beq _080A284A b _080A2898 _080A27F4: ldr r0, _080A280C cmp r1, r0 beq _080A287C cmp r1, r0 bgt _080A2810 subs r0, 0xA cmp r1, r0 beq _080A2834 adds r0, 0x2 cmp r1, r0 beq _080A287C b _080A2898 .align 2, 0 _080A280C: .4byte 0x00000212 _080A2810: ldr r0, _080A2824 cmp r1, r0 beq _080A285C cmp r1, r0 bgt _080A2828 subs r0, 0x1 cmp r1, r0 beq _080A2854 b _080A2898 .align 2, 0 _080A2824: .4byte 0x00000282 _080A2828: ldr r0, _080A2830 cmp r1, r0 beq _080A2864 b _080A2898 .align 2, 0 _080A2830: .4byte 0x00000283 _080A2834: lsls r0, r6, 16 asrs r0, 16 lsls r1, r7, 16 asrs r1, 16 movs r2, 0x1 bl MapGridSetMetatileIdAt b _080A2898 _080A2844: movs r2, 0xE7 lsls r2, 1 b _080A286E _080A284A: ldr r2, _080A2850 b _080A286E .align 2, 0 _080A2850: .4byte 0x000001cf _080A2854: ldr r2, _080A2858 b _080A286E .align 2, 0 _080A2858: .4byte 0x00000279 _080A285C: ldr r2, _080A2860 b _080A286E .align 2, 0 _080A2860: .4byte 0x0000027a _080A2864: ldr r2, _080A2868 b _080A286E .align 2, 0 _080A2868: .4byte 0x0000027b _080A286C: ldr r2, _080A2878 _080A286E: adds r0, r4, 0 adds r1, r5, 0 bl MapGridSetMetatileIdAt b _080A2898 .align 2, 0 _080A2878: .4byte 0x00000271 _080A287C: lsls r0, r6, 16 asrs r0, 16 lsls r1, r7, 16 asrs r1, 16 movs r2, 0x86 lsls r2, 2 bl MapGridSetMetatileIdAt b _080A2898 _080A288E: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xE bl MapGridSetMetatileIdAt _080A2898: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A27A8 thumb_func_start sub_80A28A0 sub_80A28A0: @ 80A28A0 push {lr} lsls r0, 16 asrs r0, 16 lsls r1, 16 asrs r1, 16 bl MapGridGetMetatileIdAt lsls r0, 16 lsrs r1, r0, 16 adds r2, r1, 0 cmp r1, 0x1 bne _080A28BC movs r0, 0x1 b _080A28EE _080A28BC: ldr r0, _080A28C8 cmp r1, r0 bne _080A28CC movs r0, 0x2 b _080A28EE .align 2, 0 _080A28C8: .4byte 0x00000279 _080A28CC: ldr r0, _080A28D8 cmp r1, r0 bne _080A28DC movs r0, 0x3 b _080A28EE .align 2, 0 _080A28D8: .4byte 0x0000027a _080A28DC: ldr r0, _080A28E8 cmp r2, r0 beq _080A28EC movs r0, 0 b _080A28EE .align 2, 0 _080A28E8: .4byte 0x0000027b _080A28EC: movs r0, 0x4 _080A28EE: pop {r1} bx r1 thumb_func_end sub_80A28A0 thumb_func_start sub_80A28F4 sub_80A28F4: @ 80A28F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 lsrs r0, 16 mov r10, r0 lsls r1, 16 movs r2, 0xC0 lsls r2, 10 adds r0, r1, r2 lsrs r0, 16 mov r9, r0 movs r4, 0 asrs r7, r1, 16 _080A2914: mov r1, r10 lsls r0, r1, 16 asrs r0, 16 lsls r4, 16 asrs r1, r4, 16 adds r0, r1 lsls r0, 16 lsrs r6, r0, 16 asrs r5, r0, 16 adds r0, r5, 0 adds r1, r7, 0 bl MapGridGetMetatileIdAt mov r8, r4 cmp r0, 0x15 bne _080A2996 adds r4, r7, 0x1 lsls r1, r4, 16 asrs r1, 16 adds r0, r5, 0 bl sub_80A28A0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _080A296A cmp r0, 0x2 bgt _080A2952 cmp r0, 0x1 beq _080A295C b _080A2996 _080A2952: cmp r0, 0x3 beq _080A297C cmp r0, 0x4 beq _080A298C b _080A2996 _080A295C: adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x82 lsls r2, 2 bl MapGridSetMetatileIdAt b _080A2996 _080A296A: adds r0, r5, 0 adds r1, r4, 0 ldr r2, _080A2978 bl MapGridSetMetatileIdAt b _080A2996 .align 2, 0 _080A2978: .4byte 0x00000281 _080A297C: adds r0, r5, 0 adds r1, r4, 0 ldr r2, _080A2988 bl MapGridSetMetatileIdAt b _080A2996 .align 2, 0 _080A2988: .4byte 0x00000282 _080A298C: adds r0, r5, 0 adds r1, r4, 0 ldr r2, _080A2A30 bl MapGridSetMetatileIdAt _080A2996: lsls r0, r6, 16 asrs r5, r0, 16 mov r2, r9 lsls r0, r2, 16 asrs r4, r0, 16 adds r0, r5, 0 adds r1, r4, 0 bl MapGridGetMetatileIdAt cmp r0, 0x1 bne _080A2A10 adds r4, 0x1 adds r0, r5, 0 adds r1, r4, 0 bl MapGridGetMetatileIdAt movs r1, 0x82 lsls r1, 2 cmp r0, r1 bne _080A29C8 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl MapGridSetMetatileIdAt _080A29C8: adds r0, r5, 0 adds r1, r4, 0 bl MapGridGetMetatileIdAt ldr r1, _080A2A34 cmp r0, r1 bne _080A29E0 adds r0, r5, 0 adds r1, r4, 0 ldr r2, _080A2A38 bl MapGridSetMetatileIdAt _080A29E0: adds r0, r5, 0 adds r1, r4, 0 bl MapGridGetMetatileIdAt ldr r1, _080A2A3C cmp r0, r1 bne _080A29F8 adds r0, r5, 0 adds r1, r4, 0 ldr r2, _080A2A40 bl MapGridSetMetatileIdAt _080A29F8: adds r0, r5, 0 adds r1, r4, 0 bl MapGridGetMetatileIdAt ldr r1, _080A2A30 cmp r0, r1 bne _080A2A10 adds r0, r5, 0 adds r1, r4, 0 ldr r2, _080A2A44 bl MapGridSetMetatileIdAt _080A2A10: movs r0, 0x80 lsls r0, 9 add r0, r8 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x2 bgt _080A2A20 b _080A2914 _080A2A20: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A2A30: .4byte 0x00000283 _080A2A34: .4byte 0x00000281 _080A2A38: .4byte 0x00000279 _080A2A3C: .4byte 0x00000282 _080A2A40: .4byte 0x0000027a _080A2A44: .4byte 0x0000027b thumb_func_end sub_80A28F4 thumb_func_start sub_80A2A48 sub_80A2A48: @ 80A2A48 movs r2, 0 movs r1, 0x8 strh r1, [r0, 0x2E] strh r2, [r0, 0x30] strh r2, [r0, 0x34] ldr r1, _080A2A58 str r1, [r0, 0x1C] bx lr .align 2, 0 _080A2A58: .4byte objc_8097BBC thumb_func_end sub_80A2A48 thumb_func_start objc_8097BBC objc_8097BBC: @ 80A2A5C push {r4,lr} adds r4, r0, 0 movs r1, 0x32 ldrsh r0, [r4, r1] movs r2, 0x2E ldrsh r1, [r4, r2] bl sine strh r0, [r4, 0x24] movs r1, 0x32 ldrsh r0, [r4, r1] movs r2, 0x2E ldrsh r1, [r4, r2] bl cosine strh r0, [r4, 0x26] ldrh r0, [r4, 0x32] adds r0, 0x8 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x32] ldrh r1, [r4, 0x2E] adds r1, 0x1 ldrh r2, [r4, 0x34] lsls r0, r2, 16 asrs r0, 18 adds r1, r0 strh r1, [r4, 0x2E] adds r2, 0x1 strh r2, [r4, 0x34] ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0x1C beq _080A2AA8 adds r0, r1, 0x1 strh r0, [r4, 0x30] b _080A2AAC _080A2AA8: ldr r0, _080A2AB4 str r0, [r4, 0x1C] _080A2AAC: pop {r4} pop {r0} bx r0 .align 2, 0 _080A2AB4: .4byte sub_80A2AB8 thumb_func_end objc_8097BBC thumb_func_start sub_80A2AB8 sub_80A2AB8: @ 80A2AB8 push {r4-r6,lr} movs r4, 0x1 _080A2ABC: ldr r6, _080A2AF8 adds r0, r4, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _080A2AFC adds r0, r5 bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _080A2ABC ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x3A bl FieldEffectStop bl sub_8064E2C bl script_env_2_disable pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A2AF8: .4byte 0x0201fff0 _080A2AFC: .4byte 0x02020004 thumb_func_end sub_80A2AB8 thumb_func_start sub_80A2B00 sub_80A2B00: @ 80A2B00 push {lr} movs r0, 0x80 bl audio_play movs r0, 0x2 bl FieldEffectActiveListRemove bl script_env_2_enable_and_set_ctx_running pop {r0} bx r0 thumb_func_end sub_80A2B00 thumb_func_start sub_80A2B18 sub_80A2B18: @ 80A2B18 push {r4,r5,lr} movs r4, 0 ldr r5, _080A2B3C _080A2B1E: lsls r0, r4, 3 adds r0, r4 lsls r0, 2 adds r0, r5 bl sub_80A2B40 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _080A2B1E pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A2B3C: .4byte 0x02028280 thumb_func_end sub_80A2B18 thumb_func_start sub_80A2B40 sub_80A2B40: @ 80A2B40 push {r4-r6,lr} adds r3, r0, 0 ldr r0, _080A2B90 adds r4, r0, 0 adds r1, r3, 0 movs r2, 0x8 _080A2B4C: ldrh r0, [r1] orrs r0, r4 strh r0, [r1] adds r1, 0x2 subs r2, 0x1 cmp r2, 0 bge _080A2B4C movs r2, 0 adds r6, r3, 0 adds r6, 0x1A adds r4, r3, 0 adds r4, 0x12 movs r5, 0xFF _080A2B66: adds r1, r4, r2 ldrb r0, [r1] orrs r0, r5 strb r0, [r1] adds r2, 0x1 cmp r2, 0x7 ble _080A2B66 adds r1, r6, 0 movs r2, 0 adds r0, r1, 0x3 _080A2B7A: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _080A2B7A movs r1, 0 movs r0, 0x1 strh r0, [r3, 0x1E] strh r1, [r3, 0x20] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A2B90: .4byte 0x0000ffff thumb_func_end sub_80A2B40 thumb_func_start sub_80A2B94 sub_80A2B94: @ 80A2B94 push {r4,lr} adds r4, r0, 0 movs r1, 0xC bl PokemonGetField lsls r0, 16 lsrs r0, 16 bl itemid_is_mail lsls r0, 24 cmp r0, 0 beq _080A2BBC adds r0, r4, 0 movs r1, 0x40 bl PokemonGetField cmp r0, 0xFF beq _080A2BBC movs r0, 0x1 b _080A2BBE _080A2BBC: movs r0, 0 _080A2BBE: pop {r4} pop {r1} bx r1 thumb_func_end sub_80A2B94 thumb_func_start sub_80A2BC4 sub_80A2BC4: @ 80A2BC4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC adds r7, r0, 0 lsls r1, 16 lsrs r0, r1, 16 str r0, [sp, 0x8] mov r0, sp movs r2, 0 ldrb r3, [r0, 0x8] strb r3, [r0] lsrs r1, 24 strb r1, [r0, 0x1] add r3, sp, 0x4 strb r2, [r3] mov r10, r3 ldr r4, _080A2D00 mov r9, r4 mov r8, r3 adds r2, r3, 0 _080A2BF2: ldrb r1, [r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 add r0, r9 ldr r5, _080A2D04 adds r0, r5 ldrh r0, [r0] cmp r0, 0 beq _080A2C08 b _080A2D24 _080A2C08: movs r3, 0 ldr r0, _080A2D08 mov r12, r0 mov r4, r10 ldr r6, _080A2D0C ldr r1, _080A2D10 adds r5, r1, 0 _080A2C16: lsls r2, r3, 1 ldrb r1, [r4] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r2, r0 adds r2, r6 ldrh r0, [r2] orrs r0, r5 strh r0, [r2] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x8 bls _080A2C16 movs r3, 0 mov r2, r10 ldr r4, _080A2D14 _080A2C3A: ldrb r1, [r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3, r0 adds r0, r4 mov r5, r12 adds r1, r3, r5 ldrb r1, [r1] strb r1, [r0] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x6 bls _080A2C3A mov r0, r8 ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3, r0 ldr r1, _080A2D14 adds r0, r1 movs r1, 0xFF strb r1, [r0] mov r2, r8 ldrb r1, [r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r3, _080A2D14 adds r0, r3 movs r1, 0 bl sub_814A518 movs r3, 0 mov r2, r10 ldr r5, _080A2D18 ldr r4, _080A2D1C _080A2C88: ldrb r1, [r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3, r0 adds r0, r5 adds r1, r3, r4 ldrb r1, [r1] strb r1, [r0] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _080A2C88 adds r0, r7, 0 movs r1, 0xB bl PokemonGetEncryptedField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r7, 0 movs r1, 0 bl PokemonGetEncryptedField adds r1, r0, 0 adds r0, r4, 0 bl sub_80A2D44 mov r4, r8 ldrb r2, [r4] lsls r1, r2, 3 adds r1, r2 lsls r1, 2 add r1, r9 ldr r5, _080A2D20 adds r1, r5 strh r0, [r1] ldrb r1, [r4] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 add r0, r9 ldr r1, _080A2D04 adds r0, r1 mov r2, sp ldrh r2, [r2, 0x8] strh r2, [r0] adds r0, r7, 0 movs r1, 0x40 mov r2, r8 bl pokemon_setattr adds r0, r7, 0 movs r1, 0xC mov r2, sp bl pokemon_setattr ldrb r0, [r4] b _080A2D32 .align 2, 0 _080A2D00: .4byte 0x02025734 _080A2D04: .4byte 0x00002b6c _080A2D08: .4byte gSaveBlock2 _080A2D0C: .4byte 0x02028280 _080A2D10: .4byte 0x0000ffff _080A2D14: .4byte 0x02028292 _080A2D18: .4byte 0x0202829a _080A2D1C: .4byte 0x02024eae _080A2D20: .4byte 0x00002b6a _080A2D24: adds r0, r1, 0x1 strb r0, [r3] ldrb r0, [r2] cmp r0, 0x5 bhi _080A2D30 b _080A2BF2 _080A2D30: movs r0, 0xFF _080A2D32: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A2BC4 thumb_func_start sub_80A2D44 sub_80A2D44: @ 80A2D44 push {lr} lsls r0, 16 lsrs r0, 16 cmp r0, 0xC9 bne _080A2D5C adds r0, r1, 0 bl sub_809D474 lsls r0, 16 ldr r1, _080A2D60 adds r0, r1 lsrs r0, 16 _080A2D5C: pop {r1} bx r1 .align 2, 0 _080A2D60: .4byte 0x75300000 thumb_func_end sub_80A2D44 thumb_func_start sub_80A2D64 sub_80A2D64: @ 80A2D64 push {lr} lsls r0, 16 lsrs r3, r0, 16 ldr r0, _080A2D7C adds r2, r3, r0 lsls r0, r2, 16 lsrs r0, 16 cmp r0, 0x1B bhi _080A2D80 movs r0, 0xC9 strh r2, [r1] b _080A2D82 .align 2, 0 _080A2D7C: .4byte 0xffff8ad0 _080A2D80: adds r0, r3, 0 _080A2D82: pop {r1} bx r1 thumb_func_end sub_80A2D64 thumb_func_start sub_80A2D88 sub_80A2D88: @ 80A2D88 push {r4-r7,lr} sub sp, 0x8 adds r6, r0, 0 adds r7, r1, 0 ldrh r5, [r7, 0x20] adds r1, r5, 0 bl sub_80A2BC4 add r4, sp, 0x4 strb r0, [r4] ldrb r2, [r4] cmp r2, 0xFF beq _080A2DE8 ldr r0, _080A2DE0 lsls r1, r2, 3 adds r1, r2 lsls r1, 2 adds r1, r0 ldr r0, _080A2DE4 adds r1, r0 adds r0, r7, 0 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} adds r0, r6, 0 movs r1, 0x40 adds r2, r4, 0 bl pokemon_setattr mov r0, sp strb r5, [r0] mov r1, sp lsrs r0, r5, 8 strb r0, [r1, 0x1] adds r0, r6, 0 movs r1, 0xC mov r2, sp bl pokemon_setattr ldrb r0, [r4] b _080A2DEA .align 2, 0 _080A2DE0: .4byte 0x02025734 _080A2DE4: .4byte 0x00002b4c _080A2DE8: movs r0, 0xFF _080A2DEA: add sp, 0x8 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A2D88 thumb_func_start unref_sub_80A2DF4 unref_sub_80A2DF4: @ 80A2DF4 movs r0, 0 bx lr thumb_func_end unref_sub_80A2DF4 thumb_func_start sub_80A2DF8 sub_80A2DF8: @ 80A2DF8 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 bl sub_80A2B94 lsls r0, 24 cmp r0, 0 beq _080A2E46 adds r0, r4, 0 movs r1, 0x40 bl PokemonGetField add r2, sp, 0x4 strb r0, [r2] ldr r3, _080A2E50 ldrb r1, [r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3 ldr r1, _080A2E54 adds r0, r1 movs r3, 0 movs r1, 0 strh r1, [r0] movs r0, 0xFF strb r0, [r2] mov r0, sp strb r3, [r0] strb r3, [r0, 0x1] adds r0, r4, 0 movs r1, 0x40 bl pokemon_setattr adds r0, r4, 0 movs r1, 0xC mov r2, sp bl pokemon_setattr _080A2E46: add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080A2E50: .4byte 0x02025734 _080A2E54: .4byte 0x00002b6c thumb_func_end sub_80A2DF8 thumb_func_start unref_sub_80A2E58 unref_sub_80A2E58: @ 80A2E58 lsls r0, 24 lsrs r0, 24 ldr r2, _080A2E70 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r2 ldr r0, _080A2E74 adds r1, r0 movs r0, 0 strh r0, [r1] bx lr .align 2, 0 _080A2E70: .4byte 0x02025734 _080A2E74: .4byte 0x00002b6c thumb_func_end unref_sub_80A2E58 thumb_func_start sub_80A2E78 sub_80A2E78: @ 80A2E78 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC adds r5, r0, 0 mov r0, sp movs r1, 0 strb r1, [r0] strb r1, [r0, 0x1] add r1, sp, 0x4 movs r0, 0xFF strb r0, [r1] movs r7, 0x6 mov r9, r1 ldr r0, _080A2F04 mov r8, r0 ldr r2, _080A2F08 add r2, r8 _080A2E9E: lsls r0, r7, 3 adds r0, r7 lsls r4, r0, 2 mov r1, r8 adds r0, r4, r1 ldr r3, _080A2F0C adds r0, r3 ldrh r6, [r0] cmp r6, 0 bne _080A2F10 adds r4, r2 adds r0, r5, 0 movs r1, 0x40 str r2, [sp, 0x8] bl PokemonGetField lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r2, [sp, 0x8] adds r1, r2 ldm r1!, {r0,r2,r3} stm r4!, {r0,r2,r3} ldm r1!, {r0,r2,r3} stm r4!, {r0,r2,r3} ldm r1!, {r0,r2,r3} stm r4!, {r0,r2,r3} adds r0, r5, 0 movs r1, 0x40 bl PokemonGetField lsls r1, r0, 3 adds r1, r0 lsls r1, 2 add r1, r8 ldr r0, _080A2F0C adds r1, r0 strh r6, [r1] adds r0, r5, 0 movs r1, 0x40 mov r2, r9 bl pokemon_setattr adds r0, r5, 0 movs r1, 0xC mov r2, sp bl pokemon_setattr adds r0, r7, 0 b _080A2F1C .align 2, 0 _080A2F04: .4byte 0x02025734 _080A2F08: .4byte 0x00002b4c _080A2F0C: .4byte 0x00002b6c _080A2F10: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0xF bls _080A2E9E movs r0, 0xFF _080A2F1C: add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A2E78 thumb_func_start itemid_is_mail itemid_is_mail: @ 80A2F2C push {lr} lsls r0, 16 lsrs r0, 16 cmp r0, 0x84 bgt _080A2F3E cmp r0, 0x79 blt _080A2F3E movs r0, 0x1 b _080A2F40 _080A2F3E: movs r0, 0 _080A2F40: pop {r1} bx r1 thumb_func_end itemid_is_mail thumb_func_start unref_sub_80A2F44 unref_sub_80A2F44: @ 80A2F44 push {lr} bl sub_8071C20 bl AddMapNamePopUpWindowTask movs r0, 0x1 pop {r1} bx r1 thumb_func_end unref_sub_80A2F44 thumb_func_start AddMapNamePopUpWindowTask AddMapNamePopUpWindowTask: @ 80A2F54 push {r4,r5,lr} movs r0, 0x80 lsls r0, 7 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080A2FE4 ldr r4, _080A2FAC adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _080A2FBC adds r0, r4, 0 movs r1, 0x5A bl CreateTask ldr r4, _080A2FB0 strb r0, [r4] ldr r1, _080A2FB4 movs r0, 0x20 strh r0, [r1] bl sub_80A30E0 ldr r2, _080A2FB8 ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 strh r5, [r0, 0x8] ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0x20 strh r1, [r0, 0xC] b _080A2FE4 .align 2, 0 _080A2FAC: .4byte sub_80A2FF4 _080A2FB0: .4byte 0x02038538 _080A2FB4: .4byte REG_BG0VOFS _080A2FB8: .4byte 0x03004b20 _080A2FBC: ldr r3, _080A2FEC ldr r2, _080A2FF0 ldrb r0, [r2] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r3 movs r4, 0x8 ldrsh r0, [r1, r4] cmp r0, 0x2 beq _080A2FD6 movs r0, 0x2 strh r0, [r1, 0x8] _080A2FD6: ldrb r0, [r2] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r3 movs r0, 0x1 strh r0, [r1, 0xE] _080A2FE4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A2FEC: .4byte 0x03004b20 _080A2FF0: .4byte 0x02038538 thumb_func_end AddMapNamePopUpWindowTask thumb_func_start sub_80A2FF4 sub_80A2FF4: @ 80A2FF4 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r3, _080A3018 adds r4, r1, r3 movs r0, 0x8 ldrsh r2, [r4, r0] cmp r2, 0x1 beq _080A304C cmp r2, 0x1 bgt _080A301C cmp r2, 0 beq _080A3026 b _080A3092 .align 2, 0 _080A3018: .4byte 0x03004b20 _080A301C: cmp r2, 0x2 beq _080A3064 cmp r2, 0x4 beq _080A308C b _080A3092 _080A3026: ldrh r0, [r4, 0xC] subs r0, 0x2 strh r0, [r4, 0xC] lsls r0, 16 cmp r0, 0 bgt _080A3092 movs r0, 0x1 strh r0, [r4, 0x8] ldr r0, _080A3048 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r3 strh r2, [r0, 0xA] b _080A3092 .align 2, 0 _080A3048: .4byte 0x02038538 _080A304C: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x78 ble _080A3092 movs r0, 0 strh r0, [r4, 0xA] movs r0, 0x2 strh r0, [r4, 0x8] b _080A3092 _080A3064: ldrh r0, [r4, 0xC] adds r0, 0x2 movs r5, 0 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F ble _080A3092 movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0 beq _080A3086 bl sub_80A30E0 strh r5, [r4, 0x8] strh r5, [r4, 0xE] b _080A3092 _080A3086: movs r0, 0x4 strh r0, [r4, 0x8] b _080A3098 _080A308C: bl HideMapNamePopUpWindow b _080A3098 _080A3092: ldr r1, _080A30A0 ldrh r0, [r4, 0xC] strh r0, [r1] _080A3098: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A30A0: .4byte REG_BG0VOFS thumb_func_end sub_80A2FF4 thumb_func_start HideMapNamePopUpWindow HideMapNamePopUpWindow: @ 80A30A4 push {lr} ldr r0, _080A30D4 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 beq _080A30D0 bl GetMapNamePopUpWindowId movs r0, 0 movs r1, 0 movs r2, 0xD movs r3, 0x3 bl Reset ldr r1, _080A30D8 movs r0, 0 strh r0, [r1] ldr r0, _080A30DC ldrb r0, [r0] bl DestroyTask _080A30D0: pop {r0} bx r0 .align 2, 0 _080A30D4: .4byte sub_80A2FF4 _080A30D8: .4byte REG_BG0VOFS _080A30DC: .4byte 0x02038538 thumb_func_end HideMapNamePopUpWindow thumb_func_start sub_80A30E0 sub_80A30E0: @ 80A30E0 push {lr} sub sp, 0x14 movs r0, 0 bl sub_8071E00 ldr r0, _080A3114 ldrb r1, [r0, 0x14] mov r0, sp movs r2, 0 bl sub_80FBFB4 movs r0, 0 movs r1, 0 movs r2, 0xD movs r3, 0x3 bl DrawDefaultWindow mov r0, sp movs r1, 0x1 movs r2, 0x1 movs r3, 0x60 bl Free add sp, 0x14 pop {r0} bx r0 .align 2, 0 _080A3114: .4byte 0x0202e828 thumb_func_end sub_80A30E0 thumb_func_start sub_80A3118 sub_80A3118: @ 80A3118 push {lr} bl AnimateSprites bl BuildOamBuffer bl RunTasks bl sub_80A740C bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80A3118 thumb_func_start sub_80A3134 sub_80A3134: @ 80A3134 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer ldr r1, _080A3168 ldr r2, _080A316C ldr r0, _080A3170 str r1, [r0] str r2, [r0, 0x4] ldr r3, _080A3174 str r3, [r0, 0x8] ldr r2, [r0, 0x8] movs r2, 0x80 lsls r2, 4 adds r1, r2 ldr r2, _080A3178 str r1, [r0] str r2, [r0, 0x4] str r3, [r0, 0x8] ldr r0, [r0, 0x8] pop {r0} bx r0 .align 2, 0 _080A3168: .4byte 0x020219cc _080A316C: .4byte 0x06002000 _080A3170: .4byte 0x040000d4 _080A3174: .4byte 0x80000400 _080A3178: .4byte 0x06006000 thumb_func_end sub_80A3134 thumb_func_start sub_80A317C sub_80A317C: @ 80A317C push {r4,r5,lr} sub sp, 0x4 ldr r0, _080A3198 ldr r1, _080A319C adds r0, r1 ldrb r0, [r0] cmp r0, 0x10 bls _080A318E b _080A34A8 _080A318E: lsls r0, 2 ldr r1, _080A31A0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080A3198: .4byte 0x03001770 _080A319C: .4byte 0x0000043c _080A31A0: .4byte _080A31A4 .align 2, 0 _080A31A4: .4byte _080A31E8 .4byte _080A31F2 .4byte _080A3208 .4byte _080A320E .4byte _080A3228 .4byte _080A324C .4byte _080A3252 .4byte _080A3270 .4byte _080A327C .4byte _080A3298 .4byte _080A32A4 .4byte _080A3328 .4byte _080A338C .4byte _080A33F4 .4byte _080A3404 .4byte _080A345C .4byte _080A347C _080A31E8: bl sub_80F9438 bl sub_80A34E8 b _080A3464 _080A31F2: bl remove_some_task ldr r1, _080A3200 ldr r0, _080A3204 adds r1, r0 b _080A346A .align 2, 0 _080A3200: .4byte 0x03001770 _080A3204: .4byte 0x0000043c _080A3208: bl gpu_pal_allocator_reset__manage_upper_four b _080A3464 _080A320E: bl sub_80F9020 ldr r0, _080A3220 ldr r1, _080A3224 adds r0, r1 movs r1, 0 strb r1, [r0] b _080A3464 .align 2, 0 _080A3220: .4byte 0x02000000 _080A3224: .4byte 0x0001ffff _080A3228: bl ResetPaletteFade ldr r2, _080A3240 ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r1, _080A3244 ldr r0, _080A3248 adds r1, r0 b _080A346A .align 2, 0 _080A3240: .4byte 0x0202f388 _080A3244: .4byte 0x03001770 _080A3248: .4byte 0x0000043c _080A324C: bl ResetSpriteData b _080A3464 _080A3252: bl sub_80A3520 lsls r0, 24 cmp r0, 0 bne _080A325E b _080A34A8 _080A325E: ldr r1, _080A3268 ldr r0, _080A326C adds r1, r0 b _080A346A .align 2, 0 _080A3268: .4byte 0x03001770 _080A326C: .4byte 0x0000043c _080A3270: ldr r0, _080A3278 bl SetUpWindowConfig b _080A3464 .align 2, 0 _080A3278: .4byte gWindowConfig_81E6DFC _080A327C: ldr r0, _080A328C bl sub_8071C58 ldr r1, _080A3290 ldr r0, _080A3294 adds r1, r0 b _080A346A .align 2, 0 _080A328C: .4byte gWindowConfig_81E6DFC _080A3290: .4byte 0x03001770 _080A3294: .4byte 0x0000043c _080A3298: bl sub_8071C94 cmp r0, 0 bne _080A32A2 b _080A34A8 _080A32A2: b _080A3464 _080A32A4: bl sub_80F944C bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed movs r0, 0 movs r1, 0xAC movs r2, 0xC bl sub_80F953C movs r0, 0x1 movs r1, 0xAC movs r2, 0x94 bl sub_80F953C movs r0, 0x2 movs r1, 0x1C movs r2, 0x58 bl sub_80F953C movs r0, 0x3 movs r1, 0x64 movs r2, 0x58 bl sub_80F953C movs r0, 0 movs r1, 0x2 bl sub_80F9988 movs r0, 0x1 movs r1, 0x2 bl sub_80F9988 movs r0, 0x2 movs r1, 0x2 bl sub_80F9988 movs r0, 0x3 movs r1, 0x2 bl sub_80F9988 ldr r0, _080A331C ldrb r0, [r0] subs r0, 0x4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080A3312 movs r0, 0x2 movs r1, 0x1 bl sub_80F979C movs r0, 0x3 movs r1, 0x1 bl sub_80F979C _080A3312: ldr r1, _080A3320 ldr r0, _080A3324 adds r1, r0 b _080A346A .align 2, 0 _080A331C: .4byte 0x03000701 _080A3320: .4byte 0x03001770 _080A3324: .4byte 0x0000043c _080A3328: ldr r1, _080A3378 movs r0, 0x10 strb r0, [r1] ldr r4, _080A337C ldr r5, _080A3380 ldrb r1, [r5] adds r1, 0x1 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_80A39B8 ldrb r1, [r5] adds r0, r4, 0 bl sub_80A3AC0 bl sub_80A3D08 ldr r4, _080A3384 ldr r0, [r4, 0x10] ldr r1, [r4, 0x14] bl sub_80A3C34 ldr r0, [r4, 0x18] ldr r1, [r4, 0x1C] bl sub_80A3C34 bl sub_80A3D40 ldr r1, _080A3388 movs r0, 0 ldrsb r0, [r5, r0] lsls r0, 3 adds r0, r4 ldr r0, [r0] str r0, [r1] bl sub_80A362C b _080A3464 .align 2, 0 _080A3378: .4byte 0x0203855a _080A337C: .4byte 0x020221cc _080A3380: .4byte 0x02038559 _080A3384: .4byte gUnknown_083C1618 _080A3388: .4byte 0x03005d24 _080A338C: ldr r0, _080A33D4 movs r1, 0 movs r2, 0x7 bl sub_80A48E8 ldr r1, _080A33D8 ldr r4, _080A33DC movs r0, 0 ldrsb r0, [r4, r0] lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x1] ldrb r0, [r0] adds r1, r0 ldr r0, _080A33E0 ldr r0, [r0] lsls r1, 2 adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] bl sub_80A490C bl sub_80A736C ldr r1, _080A33E4 ldrb r0, [r4] adds r0, 0x1 strb r0, [r1] ldr r1, _080A33E8 movs r0, 0 strb r0, [r1] ldr r1, _080A33EC ldr r0, _080A33F0 adds r1, r0 b _080A346A .align 2, 0 _080A33D4: .4byte 0x0000ffff _080A33D8: .4byte 0x03005d10 _080A33DC: .4byte 0x02038559 _080A33E0: .4byte 0x03005d24 _080A33E4: .4byte 0x0203855b _080A33E8: .4byte 0x0203855c _080A33EC: .4byte 0x03001770 _080A33F0: .4byte 0x0000043c _080A33F4: bl sub_80A7B10 movs r0, 0 bl sub_80A7C20 bl sub_80A3740 b _080A3464 _080A3404: ldr r3, _080A3444 ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _080A3448 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _080A344C ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r2, _080A3450 ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] ldr r1, _080A3454 ldr r0, _080A3458 adds r1, r0 b _080A346A .align 2, 0 _080A3444: .4byte 0x04000208 _080A3448: .4byte 0x04000200 _080A344C: .4byte REG_DISPSTAT _080A3450: .4byte 0x0202f388 _080A3454: .4byte 0x03001770 _080A3458: .4byte 0x0000043c _080A345C: bl sub_8055870 cmp r0, 0x1 beq _080A34A8 _080A3464: ldr r1, _080A3474 ldr r2, _080A3478 adds r1, r2 _080A346A: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080A34A8 .align 2, 0 _080A3474: .4byte 0x03001770 _080A3478: .4byte 0x0000043c _080A347C: ldr r0, _080A34A0 bl SetVBlankCallback ldr r0, _080A34A4 bl SetMainCallback2 bl sub_80A751C bl sub_80A7630 bl sub_80A770C bl sub_80A7828 bl sub_80A78B8 movs r0, 0x1 b _080A34AA .align 2, 0 _080A34A0: .4byte sub_80A3134 _080A34A4: .4byte sub_80A3118 _080A34A8: movs r0, 0 _080A34AA: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80A317C thumb_func_start sub_80A34B4 sub_80A34B4: @ 80A34B4 push {lr} _080A34B6: bl sub_80A317C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080A34D2 bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A34B6 movs r0, 0 b _080A34DE _080A34D2: ldr r1, _080A34E4 movs r0, 0 strb r0, [r1] bl ResetTasks movs r0, 0x1 _080A34DE: pop {r1} bx r1 .align 2, 0 _080A34E4: .4byte 0x03000700 thumb_func_end sub_80A34B4 thumb_func_start sub_80A34E8 sub_80A34E8: @ 80A34E8 push {lr} bl sub_80F9368 ldr r1, _080A3514 ldr r2, _080A3518 adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 ldr r2, _080A351C adds r0, r2, 0 strh r0, [r1] subs r1, 0xA movs r2, 0xBA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] adds r1, 0x50 movs r0, 0 strh r0, [r1] pop {r0} bx r0 .align 2, 0 _080A3514: .4byte REG_BG2CNT _080A3518: .4byte 0x00000c06 _080A351C: .4byte 0x00000405 thumb_func_end sub_80A34E8 thumb_func_start sub_80A3520 sub_80A3520: @ 80A3520 push {lr} ldr r0, _080A353C ldr r1, _080A3540 adds r0, r1 ldrb r0, [r0] cmp r0, 0x4 bls _080A3530 b _080A3624 _080A3530: lsls r0, 2 ldr r1, _080A3544 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080A353C: .4byte 0x02000000 _080A3540: .4byte 0x0001ffff _080A3544: .4byte _080A3548 .align 2, 0 _080A3548: .4byte _080A355C .4byte _080A3570 .4byte _080A3588 .4byte _080A35C0 .4byte _080A3604 _080A355C: ldr r0, _080A3568 ldr r1, _080A356C bl LZDecompressVram b _080A35EA .align 2, 0 _080A3568: .4byte gUnknown_08E76728 _080A356C: .4byte 0x06004000 _080A3570: ldr r0, _080A3580 ldr r1, _080A3584 movs r2, 0x80 lsls r2, 3 bl CpuSet b _080A35EA .align 2, 0 _080A3580: .4byte gUnknown_08E77004 _080A3584: .4byte 0x020221cc _080A3588: ldr r0, _080A35A4 ldrb r0, [r0, 0x8] cmp r0, 0 beq _080A3598 ldr r0, _080A35A8 ldrb r0, [r0] cmp r0, 0x7 bne _080A35B0 _080A3598: ldr r0, _080A35AC movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette b _080A35EA .align 2, 0 _080A35A4: .4byte gSaveBlock2 _080A35A8: .4byte 0x03000701 _080A35AC: .4byte gUnknown_08E76F94 _080A35B0: ldr r0, _080A35BC movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette b _080A35EA .align 2, 0 _080A35BC: .4byte gUnknown_08E76FCC _080A35C0: ldr r0, _080A35D8 ldrb r0, [r0, 0x8] cmp r0, 0 beq _080A35D0 ldr r0, _080A35DC ldrb r0, [r0] cmp r0, 0x7 bne _080A35E4 _080A35D0: ldr r0, _080A35E0 bl LoadCompressedObjectPic b _080A35EA .align 2, 0 _080A35D8: .4byte gSaveBlock2 _080A35DC: .4byte 0x03000701 _080A35E0: .4byte gUnknown_083C1CC8 _080A35E4: ldr r0, _080A35F8 bl LoadCompressedObjectPic _080A35EA: ldr r1, _080A35FC ldr r0, _080A3600 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080A3624 .align 2, 0 _080A35F8: .4byte gUnknown_083C1CD0 _080A35FC: .4byte 0x02000000 _080A3600: .4byte 0x0001ffff _080A3604: ldr r0, _080A3618 bl LoadCompressedObjectPalette ldr r0, _080A361C ldr r1, _080A3620 adds r0, r1 movs r1, 0 strb r1, [r0] movs r0, 0x1 b _080A3626 .align 2, 0 _080A3618: .4byte gUnknown_083C1CD8 _080A361C: .4byte 0x02000000 _080A3620: .4byte 0x0001ffff _080A3624: movs r0, 0 _080A3626: pop {r1} bx r1 thumb_func_end sub_80A3520 thumb_func_start sub_80A362C sub_80A362C: @ 80A362C push {r4-r6,lr} movs r4, 0 ldr r6, _080A3648 ldr r5, _080A364C _080A3634: ldrb r0, [r6] cmp r0, 0x5 bne _080A3650 lsls r1, r4, 2 adds r0, r1, r5 ldrb r0, [r0, 0x2] subs r0, 0x1 lsls r0, 24 lsrs r3, r0, 24 b _080A3656 .align 2, 0 _080A3648: .4byte 0x03000701 _080A364C: .4byte 0x03005d10 _080A3650: lsls r1, r4, 2 adds r0, r1, r5 ldrb r3, [r0, 0x2] _080A3656: adds r1, r5 ldrb r0, [r1, 0x1] cmp r0, 0 beq _080A366C ldrb r2, [r1, 0x3] adds r0, r2 cmp r0, r3 ble _080A3674 subs r0, r3, r2 strb r0, [r1, 0x1] b _080A3674 _080A366C: ldrb r0, [r1] cmp r0, r3 bls _080A3674 strb r3, [r1] _080A3674: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _080A3634 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80A362C thumb_func_start sub_80A3684 sub_80A3684: @ 80A3684 push {r4,lr} movs r2, 0 ldr r4, _080A36B0 ldr r3, _080A36B4 movs r1, 0 _080A368E: lsls r0, r2, 2 adds r0, r3 strb r1, [r0] strb r1, [r0, 0x1] strb r1, [r0, 0x2] strb r1, [r0, 0x3] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x4 bls _080A368E movs r0, 0 strb r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080A36B0: .4byte 0x02038559 _080A36B4: .4byte 0x03005d10 thumb_func_end sub_80A3684 thumb_func_start sub_80A36B8 sub_80A36B8: @ 80A36B8 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 ldr r0, [sp, 0x18] lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r2, 24 lsls r3, 24 lsrs r3, 24 mov r12, r3 lsls r0, 24 lsrs r0, 24 lsrs r2, 24 adds r0, r2, r0 cmp r2, r0 bgt _080A370A adds r7, r0, 0 _080A36DE: mov r1, r8 mov r3, r12 adds r0, r1, r3 adds r4, r2, 0x1 cmp r1, r0 bgt _080A3702 lsls r3, r2, 5 movs r5, 0 adds r2, r0, 0 _080A36F0: adds r0, r1, r3 lsls r0, 1 adds r0, r6 strh r5, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r2 ble _080A36F0 _080A3702: lsls r0, r4, 16 lsrs r2, r0, 16 cmp r2, r7 ble _080A36DE _080A370A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A36B8 thumb_func_start sub_80A3714 sub_80A3714: @ 80A3714 push {r4,r5,lr} movs r4, 0 ldr r5, _080A373C _080A371A: lsls r1, r4, 3 adds r1, r5 ldr r0, [r1] ldrb r1, [r1, 0x4] bl sub_80A9684 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _080A371A bl sub_80A3684 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A373C: .4byte gUnknown_083C1618 thumb_func_end sub_80A3714 thumb_func_start sub_80A3740 sub_80A3740: @ 80A3740 push {lr} sub sp, 0x4 ldr r1, _080A376C mov r0, sp movs r2, 0x4 bl memcpy mov r0, sp adds r0, 0x2 movs r1, 0xD1 movs r2, 0x2 bl LoadPalette mov r0, sp movs r1, 0xD8 movs r2, 0x2 bl LoadPalette add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080A376C: .4byte gUnknown_083C1704 thumb_func_end sub_80A3740 thumb_func_start sub_80A3770 sub_80A3770: @ 80A3770 push {lr} ldr r0, _080A379C ldrb r0, [r0] cmp r0, 0 bne _080A37B6 ldr r3, _080A37A0 ldr r2, _080A37A4 movs r1, 0 ldrsb r1, [r2, r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 1 ldr r1, _080A37A8 adds r0, r1 str r0, [r3] movs r0, 0 ldrsb r0, [r2, r0] cmp r0, 0x3 beq _080A37B0 ldr r1, _080A37AC movs r0, 0x4 b _080A37B4 .align 2, 0 _080A379C: .4byte 0x03000701 _080A37A0: .4byte 0x03000704 _080A37A4: .4byte 0x02038559 _080A37A8: .4byte gUnknown_083C1690 _080A37AC: .4byte 0x02038564 _080A37B0: ldr r1, _080A37BC movs r0, 0x6 _080A37B4: strb r0, [r1] _080A37B6: pop {r0} bx r0 .align 2, 0 _080A37BC: .4byte 0x02038564 thumb_func_end sub_80A3770 thumb_func_start sub_80A37C0 sub_80A37C0: @ 80A37C0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080A37F0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080A37F4 str r0, [r1] movs r0, 0 bl sub_80F98DC movs r0, 0x1 bl sub_80F98DC movs r0, 0x2 bl sub_80F98DC movs r0, 0x3 bl sub_80F98DC pop {r0} bx r0 .align 2, 0 _080A37F0: .4byte 0x03004b20 _080A37F4: .4byte sub_80A50C8 thumb_func_end sub_80A37C0 thumb_func_start sub_80A37F8 sub_80A37F8: @ 80A37F8 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r6, _080A3854 ldrb r5, [r6] cmp r5, 0xF bhi _080A3868 adds r0, r5, 0x1 strb r0, [r6] ldr r4, _080A3858 ldrb r2, [r6] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x4F bl sub_80A396C ldr r0, _080A385C ldrb r1, [r0] adds r1, 0x1 lsls r1, 24 lsrs r1, 24 ldrb r2, [r6] lsrs r2, 1 ldr r3, _080A3860 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r3 movs r3, 0x12 ldrsb r3, [r0, r3] adds r0, r4, 0 bl sub_80A39E4 ldr r4, _080A3864 movs r0, 0x1 strb r0, [r4] lsrs r1, r5, 1 ldrb r2, [r6] lsrs r2, 1 subs r2, 0x1 adds r0, r7, 0 bl sub_80A48E8 movs r0, 0 strb r0, [r4] b _080A3932 .align 2, 0 _080A3854: .4byte 0x0203855a _080A3858: .4byte 0x020221cc _080A385C: .4byte 0x02038559 _080A3860: .4byte 0x03004b20 _080A3864: .4byte 0x02038558 _080A3868: ldr r0, _080A38A0 ldrb r0, [r0] cmp r0, 0x1 bne _080A38B4 ldr r1, _080A38A4 ldr r0, _080A38A8 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x1] ldrb r0, [r0] adds r1, r0 ldr r0, _080A38AC ldr r0, [r0] lsls r1, 2 adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] ldr r4, _080A38B0 ldrb r1, [r4] bl sub_80A49AC ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _080A38F2 .align 2, 0 _080A38A0: .4byte 0x020238c0 _080A38A4: .4byte 0x03005d10 _080A38A8: .4byte 0x02038559 _080A38AC: .4byte 0x03005d24 _080A38B0: .4byte 0x02038562 _080A38B4: ldr r1, _080A3938 ldrb r0, [r1] cmp r0, 0x2 bhi _080A38F2 ldr r5, _080A393C adds r4, r1, 0 _080A38C0: ldr r0, _080A3940 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x1] ldrb r0, [r0] adds r1, r0 ldr r0, _080A3944 ldr r0, [r0] lsls r1, 2 adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] ldrb r1, [r4] bl sub_80A49AC ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bls _080A38C0 _080A38F2: ldr r0, _080A3938 ldrb r0, [r0] cmp r0, 0x3 bne _080A3932 ldr r1, _080A3948 movs r0, 0x10 strb r0, [r1] ldr r1, _080A394C ldr r0, _080A3940 ldrb r0, [r0] adds r0, 0x1 strb r0, [r1] ldr r0, _080A3950 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl sub_80A37C0 adds r0, r7, 0 bl DestroyTask bl sub_80A736C movs r0, 0x2 movs r1, 0 bl sub_80F979C movs r0, 0x3 movs r1, 0 bl sub_80F979C _080A3932: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A3938: .4byte 0x02038562 _080A393C: .4byte 0x03005d10 _080A3940: .4byte 0x02038559 _080A3944: .4byte 0x03005d24 _080A3948: .4byte 0x0203855a _080A394C: .4byte 0x0203855b _080A3950: .4byte sub_80A4F68 thumb_func_end sub_80A37F8 thumb_func_start sub_80A3954 sub_80A3954: @ 80A3954 push {lr} adds r1, r0, 0 ldr r0, _080A3968 movs r2, 0x80 lsls r2, 3 bl CpuSet pop {r0} bx r0 .align 2, 0 _080A3968: .4byte gUnknown_08E77004 thumb_func_end sub_80A3954 thumb_func_start sub_80A396C sub_80A396C: @ 80A396C push {r4-r7,lr} lsls r1, 24 lsrs r5, r1, 24 adds r4, r5, 0 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 24 lsrs r6, r3, 24 adds r1, r4, 0x2 lsls r1, 6 adds r1, 0x1C adds r2, r0, r1 adds r0, r4, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r7, r4 bls _080A39B2 _080A398E: movs r1, 0 adds r3, r5, 0x1 adds r4, r2, 0 adds r4, 0x40 _080A3996: lsls r0, r1, 1 adds r0, r2 strh r6, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0xE bls _080A3996 adds r2, r4, 0 adds r1, r5, 0 lsls r0, r3, 24 lsrs r5, r0, 24 cmp r7, r1 bhi _080A398E _080A39B2: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A396C thumb_func_start sub_80A39B8 sub_80A39B8: @ 80A39B8 push {lr} sub sp, 0x10 lsls r1, 25 lsrs r1, 24 ldr r3, _080A39E0 movs r2, 0 str r2, [sp] str r1, [sp, 0x4] movs r1, 0x8 str r1, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] movs r1, 0x4 movs r2, 0xA bl sub_809D104 add sp, 0x10 pop {r0} bx r0 .align 2, 0 _080A39E0: .4byte gUnknown_08E96EC8 thumb_func_end sub_80A39B8 thumb_func_start sub_80A39E4 sub_80A39E4: @ 80A39E4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 mov r8, r0 lsls r1, 24 lsrs r1, 24 adds r4, r1, 0 lsls r2, 24 lsrs r6, r2, 24 adds r5, r6, 0 lsls r2, r1, 1 mov r9, r2 lsls r3, 24 asrs r3, 24 movs r0, 0x1 negs r0, r0 cmp r3, r0 bne _080A3A5C adds r0, r1, 0x1 lsls r7, r0, 1 cmp r1, 0x5 bne _080A3A18 movs r7, 0x2 _080A3A18: ldr r0, _080A3A58 mov r10, r0 movs r4, 0x8 subs r4, r6 lsls r4, 16 lsrs r4, 16 str r4, [sp] str r2, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0x2 mov r9, r0 str r0, [sp, 0xC] mov r0, r8 movs r1, 0x4 movs r2, 0xA mov r3, r10 bl sub_809D104 adds r1, r6, 0x4 movs r0, 0 str r0, [sp] str r7, [sp, 0x4] str r4, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] mov r0, r8 movs r2, 0xA mov r3, r10 bl sub_809D104 b _080A3AAA .align 2, 0 _080A3A58: .4byte gUnknown_08E96EC8 _080A3A5C: cmp r3, 0x1 bne _080A3AAA subs r0, r4, 0x1 lsls r0, 17 lsrs r7, r0, 16 cmp r4, 0x1 bne _080A3A6C movs r7, 0xA _080A3A6C: ldr r6, _080A3ABC str r5, [sp] str r7, [sp, 0x4] movs r0, 0x8 subs r0, r5 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x8] movs r4, 0x2 str r4, [sp, 0xC] mov r0, r8 movs r1, 0x4 movs r2, 0xA adds r3, r6, 0 bl sub_809D104 movs r1, 0xC subs r1, r5 lsls r1, 16 lsrs r1, 16 movs r0, 0 str r0, [sp] mov r0, r9 str r0, [sp, 0x4] str r5, [sp, 0x8] str r4, [sp, 0xC] mov r0, r8 movs r2, 0xA adds r3, r6, 0 bl sub_809D104 _080A3AAA: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A3ABC: .4byte gUnknown_08E96EC8 thumb_func_end sub_80A39E4 thumb_func_start sub_80A3AC0 sub_80A3AC0: @ 80A3AC0 push {r4-r6,lr} adds r3, r0, 0 lsls r1, 24 lsrs r4, r1, 24 movs r2, 0 ldr r1, _080A3AE4 ldr r0, _080A3AE8 adds r6, r0, 0 subs r0, 0x1 adds r5, r0, 0 _080A3AD4: cmp r2, r4 bne _080A3AEC lsls r0, r2, 1 adds r0, r3 adds r0, r1 strh r6, [r0] b _080A3AF4 .align 2, 0 _080A3AE4: .4byte 0x0000024a _080A3AE8: .4byte 0x0000107d _080A3AEC: lsls r0, r2, 1 adds r0, r3 adds r0, r1 strh r5, [r0] _080A3AF4: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x4 bls _080A3AD4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80A3AC0 thumb_func_start sub_80A3B04 sub_80A3B04: @ 80A3B04 push {r4-r6,lr} adds r5, r0, 0 ldr r4, _080A3BA4 ldrb r0, [r4] lsls r1, 24 asrs r6, r1, 24 adds r0, r6, r0 strb r0, [r4] lsls r0, 24 asrs r0, 24 cmp r0, 0x4 ble _080A3B20 movs r0, 0 strb r0, [r4] _080A3B20: movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0 bge _080A3B2C movs r0, 0x4 strb r0, [r4] _080A3B2C: bl sub_80A76A0 bl sub_80A7590 ldr r2, _080A3BA8 ldr r1, _080A3BAC movs r0, 0 ldrsb r0, [r4, r0] lsls r0, 3 adds r0, r1 ldr r0, [r0] str r0, [r2] ldrb r0, [r4] bl sub_80A3D24 ldr r0, _080A3BB0 movs r4, 0 strb r4, [r0] adds r0, r5, 0 bl sub_80A3954 adds r0, r5, 0 movs r1, 0 movs r2, 0x10 movs r3, 0x3 bl sub_80A396C adds r0, r5, 0 movs r1, 0 bl sub_80A39B8 ldr r1, _080A3BB4 movs r0, 0x6 strb r0, [r1] ldr r0, _080A3BB8 strb r4, [r0] ldr r4, _080A3BBC adds r0, r4, 0 bl FindTaskIdByFunc lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF bne _080A3B90 adds r0, r4, 0 movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r2, r0, 24 _080A3B90: ldr r1, _080A3BC0 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 strh r6, [r0, 0x12] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A3BA4: .4byte 0x02038559 _080A3BA8: .4byte 0x03005d24 _080A3BAC: .4byte gUnknown_083C1618 _080A3BB0: .4byte 0x0203855a _080A3BB4: .4byte 0x0203855b _080A3BB8: .4byte 0x02038562 _080A3BBC: .4byte sub_80A37F8 _080A3BC0: .4byte 0x03004b20 thumb_func_end sub_80A3B04 thumb_func_start swap32 swap32: @ 80A3BC4 ldr r3, [r0] ldr r2, [r1] str r2, [r0] str r3, [r1] bx lr thumb_func_end swap32 thumb_func_start sub_80A3BD0 sub_80A3BD0: @ 80A3BD0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r7, r1, 0 adds r6, r0, 0 movs r3, 0 b _080A3C1A _080A3BE0: adds r0, r3, 0x1 lsls r1, r0, 16 lsrs r4, r1, 16 lsls r1, r2, 24 lsrs r1, 24 mov r8, r0 cmp r4, r1 bcs _080A3C14 lsls r0, r3, 2 adds r5, r0, r6 adds r2, r1, 0 _080A3BF6: ldrh r0, [r5, 0x2] cmp r0, 0 bne _080A3C0A lsls r1, r4, 2 adds r1, r6 adds r0, r5, 0 str r2, [sp] bl swap32 ldr r2, [sp] _080A3C0A: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r2 bcc _080A3BF6 _080A3C14: mov r1, r8 lsls r0, r1, 16 lsrs r3, r0, 16 _080A3C1A: adds r2, r7, 0 lsls r0, r2, 24 lsrs r0, 24 subs r0, 0x1 cmp r3, r0 blt _080A3BE0 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A3BD0 thumb_func_start sub_80A3C34 sub_80A3C34: @ 80A3C34 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r7, r1, 0 adds r6, r0, 0 adds r2, r7, 0 lsls r0, r2, 24 movs r3, 0 cmp r0, 0 beq _080A3C9C _080A3C4A: adds r0, r3, 0x1 lsls r1, r0, 16 lsrs r4, r1, 16 lsls r1, r2, 24 lsrs r1, 24 mov r8, r0 cmp r4, r1 bcs _080A3C8C lsls r0, r3, 2 adds r5, r0, r6 adds r2, r1, 0 _080A3C60: ldrh r0, [r5, 0x2] cmp r0, 0 beq _080A3C82 lsls r0, r4, 2 adds r1, r0, r6 ldrh r0, [r1, 0x2] cmp r0, 0 beq _080A3C82 ldrh r0, [r5] ldrh r3, [r1] cmp r0, r3 bls _080A3C82 adds r0, r5, 0 str r2, [sp] bl swap32 ldr r2, [sp] _080A3C82: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r2 bcc _080A3C60 _080A3C8C: mov r1, r8 lsls r0, r1, 16 lsrs r3, r0, 16 adds r2, r7, 0 lsls r0, r2, 24 lsrs r0, 24 cmp r3, r0 bcc _080A3C4A _080A3C9C: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A3C34 thumb_func_start sub_80A3CA8 sub_80A3CA8: @ 80A3CA8 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080A3D00 lsls r0, r6, 2 adds r3, r0, r1 movs r0, 0 strb r0, [r3, 0x2] movs r4, 0 ldr r0, _080A3D04 lsls r2, r6, 3 adds r1, r2, r0 mov r12, r0 ldrb r1, [r1, 0x4] cmp r4, r1 bcs _080A3CEC mov r7, r12 adds r5, r3, 0 _080A3CCC: adds r3, r2, r7 ldr r0, [r3] lsls r1, r4, 2 adds r1, r0 ldrh r0, [r1, 0x2] cmp r0, 0 beq _080A3CE0 ldrb r0, [r5, 0x2] adds r0, 0x1 strb r0, [r5, 0x2] _080A3CE0: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldrb r3, [r3, 0x4] cmp r4, r3 bcc _080A3CCC _080A3CEC: lsls r0, r6, 3 add r0, r12 ldr r1, [r0, 0x4] ldr r0, [r0] bl sub_80A3BD0 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A3D00: .4byte 0x03005d10 _080A3D04: .4byte gUnknown_083C1618 thumb_func_end sub_80A3CA8 thumb_func_start sub_80A3D08 sub_80A3D08: @ 80A3D08 push {r4,lr} movs r4, 0 _080A3D0C: adds r0, r4, 0 bl sub_80A3CA8 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _080A3D0C pop {r4} pop {r0} bx r0 thumb_func_end sub_80A3D08 thumb_func_start sub_80A3D24 sub_80A3D24: @ 80A3D24 push {lr} lsls r0, 24 ldr r1, _080A3D3C lsrs r0, 22 adds r1, r0, r1 ldrb r0, [r1, 0x2] cmp r0, 0x6 bls _080A3D36 movs r0, 0x7 _080A3D36: strb r0, [r1, 0x3] pop {r0} bx r0 .align 2, 0 _080A3D3C: .4byte 0x03005d10 thumb_func_end sub_80A3D24 thumb_func_start sub_80A3D40 sub_80A3D40: @ 80A3D40 push {r4,lr} movs r4, 0 _080A3D44: adds r0, r4, 0 bl sub_80A3D24 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _080A3D44 pop {r4} pop {r0} bx r0 thumb_func_end sub_80A3D40 thumb_func_start sub_80A3D5C sub_80A3D5C: @ 80A3D5C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 ldr r1, _080A3DF4 mov r9, r1 ldr r2, _080A3DF8 mov r8, r2 movs r1, 0 ldrsb r1, [r2, r1] lsls r1, 2 add r1, r9 ldrb r2, [r1, 0x1] ldrb r1, [r1] adds r2, r1 ldr r7, _080A3DFC ldr r1, [r7] lsls r6, r2, 2 adds r3, r6, r1 ldr r2, _080A3E00 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrh r0, [r3, 0x2] ldrh r1, [r1, 0xA] subs r0, r1 strh r0, [r3, 0x2] lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 bne _080A3DE0 ldr r0, _080A3E04 ldr r1, _080A3E08 adds r5, r0, r1 ldrh r0, [r5] ldrh r3, [r3] cmp r0, r3 bne _080A3DB4 bl sub_80A40D0 strh r4, [r5] _080A3DB4: ldr r0, [r7] adds r0, r6, r0 strh r4, [r0] mov r2, r8 movs r0, 0 ldrsb r0, [r2, r0] lsls r0, 2 mov r3, r9 adds r2, r0, r3 ldrb r1, [r2, 0x1] adds r0, r1, 0x7 ldrb r3, [r2, 0x2] cmp r0, r3 bne _080A3DD8 cmp r1, 0 beq _080A3DD8 subs r0, r1, 0x1 strb r0, [r2, 0x1] _080A3DD8: ldr r0, _080A3DF8 ldrb r0, [r0] bl sub_80A3CA8 _080A3DE0: ldr r0, _080A3DF8 ldrb r0, [r0] bl sub_80A3D24 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A3DF4: .4byte 0x03005d10 _080A3DF8: .4byte 0x02038559 _080A3DFC: .4byte 0x03005d24 _080A3E00: .4byte 0x03004b20 _080A3E04: .4byte 0x02025734 _080A3E08: .4byte 0x00000496 thumb_func_end sub_80A3D5C thumb_func_start sub_80A3E0C sub_80A3E0C: @ 80A3E0C push {lr} ldr r3, _080A3E60 ldr r2, _080A3E64 movs r0, 0 ldrsb r0, [r2, r0] lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x1] ldrb r0, [r0] adds r1, r0 ldr r0, _080A3E68 ldr r0, [r0] lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x2] cmp r0, 0 bne _080A3E52 strh r0, [r1] movs r0, 0 ldrsb r0, [r2, r0] lsls r0, 2 adds r2, r0, r3 ldrb r1, [r2, 0x1] adds r0, r1, 0x7 ldrb r3, [r2, 0x2] cmp r0, r3 bne _080A3E4A cmp r1, 0 beq _080A3E4A subs r0, r1, 0x1 strb r0, [r2, 0x1] _080A3E4A: ldr r0, _080A3E64 ldrb r0, [r0] bl sub_80A3CA8 _080A3E52: ldr r0, _080A3E64 ldrb r0, [r0] bl sub_80A3D24 pop {r0} bx r0 .align 2, 0 _080A3E60: .4byte 0x03005d10 _080A3E64: .4byte 0x02038559 _080A3E68: .4byte 0x03005d24 thumb_func_end sub_80A3E0C thumb_func_start nullsub_16 nullsub_16: @ 80A3E6C bx lr thumb_func_end nullsub_16 thumb_func_start sub_80A3E70 sub_80A3E70: @ 80A3E70 lsls r0, 24 lsls r1, 24 ldr r2, _080A3E8C ldr r2, [r2] lsrs r0, 22 adds r0, r2 ldr r3, [r0] lsrs r1, 22 adds r1, r2 ldr r2, [r1] str r2, [r0] str r3, [r1] bx lr .align 2, 0 _080A3E8C: .4byte 0x03005d24 thumb_func_end sub_80A3E70 thumb_func_start sub_80A3E90 sub_80A3E90: @ 80A3E90 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl audio_play bl nullsub_16 ldr r0, _080A3EE8 lsls r5, r4, 2 adds r5, r4 lsls r5, 3 adds r5, r0 ldrb r0, [r5, 0x1C] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 ldr r3, _080A3EEC ldr r1, _080A3EF0 movs r2, 0 ldrsb r2, [r1, r2] lsls r2, 2 adds r2, r3 ldrb r1, [r2, 0x1] ldrb r2, [r2] adds r1, r2 lsls r1, 24 lsrs r1, 24 bl sub_80A3E70 movs r0, 0 strh r0, [r5, 0x1C] bl sub_80A763C movs r0, 0 bl sub_80A7528 bl sub_80A736C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A3EE8: .4byte 0x03004b20 _080A3EEC: .4byte 0x03005d10 _080A3EF0: .4byte 0x02038559 thumb_func_end sub_80A3E90 thumb_func_start sub_80A3EF4 sub_80A3EF4: @ 80A3EF4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x5 bl audio_play bl nullsub_16 ldr r0, _080A3F44 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r2, _080A3F48 ldr r0, _080A3F4C ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] mvns r0, r0 ldrb r2, [r1, 0x1C] adds r0, r2 lsls r0, 24 lsrs r2, r0, 24 movs r0, 0 strh r0, [r1, 0x1C] cmp r2, 0x7 bhi _080A3F38 adds r0, r4, 0 adds r1, r2, 0 bl sub_80A48E8 _080A3F38: movs r0, 0 bl sub_80A7528 pop {r4} pop {r0} bx r0 .align 2, 0 _080A3F44: .4byte 0x03004b20 _080A3F48: .4byte 0x03005d10 _080A3F4C: .4byte 0x02038559 thumb_func_end sub_80A3EF4 thumb_func_start sub_80A3F50 sub_80A3F50: @ 80A3F50 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080A3F94 lsls r3, r0, 2 adds r3, r0 lsls r3, 3 adds r3, r1 ldr r5, _080A3F98 ldr r4, _080A3F9C movs r1, 0 ldrsb r1, [r4, r1] lsls r1, 2 adds r1, r5 ldrb r2, [r1, 0x1] ldrb r1, [r1] adds r2, r1 adds r2, 0x1 strh r2, [r3, 0x1C] movs r1, 0 ldrsb r1, [r4, r1] lsls r1, 2 adds r1, r5 ldrb r2, [r1] adds r1, r2, 0 bl sub_80A48E8 movs r0, 0x1 bl sub_80A7528 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A3F94: .4byte 0x03004b20 _080A3F98: .4byte 0x03005d10 _080A3F9C: .4byte 0x02038559 thumb_func_end sub_80A3F50 thumb_func_start sub_80A3FA0 sub_80A3FA0: @ 80A3FA0 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 ldr r0, [sp, 0x18] ldr r4, [sp, 0x1C] lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsls r3, 24 lsrs r3, 24 lsls r0, 24 lsrs r0, 24 lsls r4, 16 lsrs r6, r4, 16 lsrs r2, 24 adds r0, r2, r0 cmp r2, r0 bge _080A3FFC mov r8, r5 adds r4, r5, r3 mov r12, r0 _080A3FCC: adds r0, r5, 0 lsls r3, r2, 16 cmp r8, r4 bge _080A3FEE asrs r2, r3, 11 _080A3FD6: lsls r1, r0, 16 asrs r1, 16 adds r0, r1, r2 lsls r0, 1 adds r0, r7 strh r6, [r0] adds r1, 0x1 lsls r1, 16 lsrs r0, r1, 16 asrs r1, 16 cmp r1, r4 blt _080A3FD6 _080A3FEE: movs r1, 0x80 lsls r1, 9 adds r0, r3, r1 lsrs r2, r0, 16 asrs r0, 16 cmp r0, r12 blt _080A3FCC _080A3FFC: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A3FA0 thumb_func_start sub_80A4008 sub_80A4008: @ 80A4008 push {r4,lr} sub sp, 0x8 ldr r4, [sp, 0x10] lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 lsls r4, 24 lsrs r4, 24 str r4, [sp] movs r4, 0x1 str r4, [sp, 0x4] bl sub_80A3FA0 add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_80A4008 thumb_func_start sub_80A4030 sub_80A4030: @ 80A4030 ldr r1, _080A4058 lsls r0, 7 adds r1, r0, r1 movs r0, 0x5A strh r0, [r1] movs r0, 0x5B strh r0, [r1, 0x2] movs r0, 0x5C strh r0, [r1, 0x4] adds r2, r1, 0 adds r2, 0x40 movs r0, 0x6A strh r0, [r2] adds r2, 0x2 movs r0, 0x6B strh r0, [r2] adds r1, 0x44 movs r0, 0x6C strh r0, [r1] bx lr .align 2, 0 _080A4058: .4byte 0x02022280 thumb_func_end sub_80A4030 thumb_func_start sub_80A405C sub_80A405C: @ 80A405C push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r2, _080A40A8 movs r0, 0 adds r4, r2, 0 movs r1, 0x4F _080A406A: strh r1, [r2] strh r1, [r2, 0x2] strh r1, [r2, 0x4] adds r2, 0x40 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0xF bls _080A406A lsls r0, r3, 7 adds r2, r0, r4 movs r0, 0x5A strh r0, [r2] movs r0, 0x5B strh r0, [r2, 0x2] movs r0, 0x5C strh r0, [r2, 0x4] adds r1, r2, 0 adds r1, 0x40 movs r0, 0x6A strh r0, [r1] adds r1, 0x2 movs r0, 0x6B strh r0, [r1] adds r1, 0x2 movs r0, 0x6C strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080A40A8: .4byte 0x02022280 thumb_func_end sub_80A405C thumb_func_start sub_80A40AC sub_80A40AC: @ 80A40AC lsls r0, 24 ldr r1, _080A40CC lsrs r0, 17 adds r1, r0, r1 movs r2, 0x4F strh r2, [r1] strh r2, [r1, 0x2] strh r2, [r1, 0x4] adds r0, r1, 0 adds r0, 0x40 strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r1, 0x44 strh r2, [r1] bx lr .align 2, 0 _080A40CC: .4byte 0x02022280 thumb_func_end sub_80A40AC thumb_func_start sub_80A40D0 sub_80A40D0: @ 80A40D0 push {r4-r7,lr} movs r4, 0 ldr r2, _080A4114 ldr r3, _080A4118 movs r0, 0 ldrsb r0, [r3, r0] lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1] adds r7, r2, 0 adds r6, r3, 0 ldrb r0, [r0, 0x2] cmp r1, r0 beq _080A4136 ldr r5, _080A411C _080A40EE: movs r0, 0 ldrsb r0, [r6, r0] lsls r0, 2 adds r3, r0, r7 ldrb r2, [r3, 0x1] adds r1, r2, r4 ldr r0, _080A4120 ldr r0, [r0] lsls r1, 2 adds r1, r0 ldrh r0, [r1] ldrh r1, [r5] cmp r0, r1 bne _080A4124 adds r0, r4, 0 bl sub_80A40AC b _080A4136 .align 2, 0 _080A4114: .4byte 0x03005d10 _080A4118: .4byte 0x02038559 _080A411C: .4byte 0x02025bca _080A4120: .4byte 0x03005d24 _080A4124: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bhi _080A4136 adds r0, r2, r4 ldrb r3, [r3, 0x2] cmp r0, r3 bne _080A40EE _080A4136: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A40D0 thumb_func_start sub_80A413C sub_80A413C: @ 80A413C push {lr} bl sub_80A40D0 ldr r1, _080A415C ldr r0, _080A4160 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r0, [r0] bl sub_80A405C pop {r0} bx r0 .align 2, 0 _080A415C: .4byte 0x03005d10 _080A4160: .4byte 0x02038559 thumb_func_end sub_80A413C thumb_func_start sub_80A4164 sub_80A4164: @ 80A4164 push {r4,lr} lsls r1, 16 lsrs r1, 16 lsls r3, 24 lsrs r3, 24 movs r4, 0xB9 strb r4, [r0] adds r0, 0x1 movs r4, 0xFC strb r4, [r0] movs r4, 0x14 strb r4, [r0, 0x1] movs r4, 0x6 strb r4, [r0, 0x2] adds r0, 0x3 bl ConvertIntToDecimalStringN pop {r4} pop {r0} bx r0 thumb_func_end sub_80A4164 thumb_func_start sub_80A418C sub_80A418C: @ 80A418C push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} adds r4, r0, 0 mov r9, r1 adds r5, r2, 0 adds r6, r3, 0 ldr r3, [sp, 0x18] lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 lsls r3, 24 lsrs r3, 24 ldr r0, _080A41D0 mov r8, r0 adds r1, r4, 0 mov r2, r9 bl sub_80A4164 mov r0, r8 adds r1, r5, 0 adds r2, r6, 0 bl Print pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A41D0: .4byte 0x020231cc thumb_func_end sub_80A418C thumb_func_start sub_80A41D4 sub_80A41D4: @ 80A41D4 push {lr} bl sub_80A763C pop {r0} bx r0 thumb_func_end sub_80A41D4 thumb_func_start sub_80A41E0 sub_80A41E0: @ 80A41E0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 mov r9, r2 adds r5, r3, 0 ldr r4, [sp, 0x1C] lsls r1, 16 lsrs r1, 16 lsls r5, 16 lsrs r5, 16 lsls r4, 24 lsrs r4, 24 movs r0, 0xFC mov r8, r0 strb r0, [r7] movs r6, 0x13 strb r6, [r7, 0x1] movs r0, 0x8 strb r0, [r7, 0x2] adds r7, 0x3 adds r0, r7, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN mov r1, r8 strb r1, [r0] strb r6, [r0, 0x1] movs r1, 0x18 strb r1, [r0, 0x2] adds r7, r0, 0x3 adds r4, 0x1 lsls r0, r4, 1 adds r0, r4 lsls r0, 1 movs r2, 0x78 subs r2, r0 lsls r2, 24 lsrs r2, 24 adds r0, r7, 0 mov r1, r9 movs r3, 0 bl sub_8072C74 movs r1, 0xB9 strb r1, [r0] adds r7, r0, 0x1 adds r0, r7, 0 adds r1, r5, 0 movs r2, 0x78 movs r3, 0x1 bl sub_8072C14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A41E0 thumb_func_start sub_80A425C sub_80A425C: @ 80A425C push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r2, 24 lsrs r2, 24 ldr r3, _080A42A4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r3 movs r0, 0x1C ldrsh r1, [r1, r0] ldr r3, _080A42A8 ldr r0, _080A42AC ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x1] subs r1, r0 subs r1, 0x1 cmp r1, r2 bne _080A429C movs r0, 0xFC strb r0, [r4] movs r0, 0x1 strb r0, [r4, 0x1] movs r0, 0x2 strb r0, [r4, 0x2] adds r4, 0x3 _080A429C: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080A42A4: .4byte 0x03004b20 _080A42A8: .4byte 0x03005d10 _080A42AC: .4byte 0x02038559 thumb_func_end sub_80A425C thumb_func_start sub_80A42B0 sub_80A42B0: @ 80A42B0 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r1, 0 lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 ldr r0, _080A4344 mov r8, r0 ldr r1, _080A4348 ldr r0, _080A434C ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x1] adds r1, r6 ldrb r0, [r0, 0x2] cmp r1, r0 bgt _080A4370 cmp r1, r0 bne _080A4374 ldr r0, _080A4350 ldrb r0, [r0] cmp r0, 0x5 beq _080A4370 lsls r0, r6, 25 movs r1, 0x80 lsls r1, 18 adds r0, r1 lsrs r5, r0, 24 ldr r4, _080A4354 ldr r1, _080A4358 adds r0, r4, 0 movs r2, 0x78 movs r3, 0 bl sub_8072C74 adds r0, r4, 0 movs r1, 0xE adds r2, r5, 0 bl Print lsls r0, r5, 6 ldr r1, _080A435C adds r0, r1 movs r2, 0x4F strh r2, [r0] strh r2, [r0, 0x2] adds r1, r0, 0 adds r1, 0x40 strh r2, [r1] adds r0, 0x42 strh r2, [r0] cmp r6, 0x7 beq _080A4370 cmp r7, 0x1 bne _080A432E mov r1, r8 ldrb r0, [r1, 0x2] cmp r0, 0 bne _080A4332 _080A432E: cmp r7, 0x2 bne _080A4360 _080A4332: adds r1, r5, 0x2 lsls r1, 24 lsrs r1, 24 movs r0, 0xE movs r2, 0x1D movs r3, 0xD bl sub_8071EBC b _080A4370 .align 2, 0 _080A4344: .4byte 0x02038540 _080A4348: .4byte 0x03005d10 _080A434C: .4byte 0x02038559 _080A4350: .4byte 0x03000701 _080A4354: .4byte 0x020231cc _080A4358: .4byte gUnknown_0840E6E4 _080A435C: .4byte 0x020221e8 _080A4360: adds r1, r5, 0x2 lsls r1, 24 lsrs r1, 24 movs r0, 0xE movs r2, 0x1D movs r3, 0x11 bl sub_8071EBC _080A4370: movs r0, 0x1 b _080A4376 _080A4374: movs r0, 0 _080A4376: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A42B0 thumb_func_start sub_80A4380 sub_80A4380: @ 80A4380 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 str r2, [sp] mov r10, r3 lsls r0, 16 lsrs r0, 16 mov r9, r0 lsls r1, 24 lsrs r7, r1, 24 ldr r0, _080A43A0 mov r8, r0 b _080A441A .align 2, 0 _080A43A0: .4byte 0x03005d24 _080A43A4: ldr r1, _080A4440 ldr r0, _080A4444 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r4, [r0, 0x1] adds r4, r7, r4 lsls r4, 24 lsrs r4, 24 lsls r5, r7, 25 movs r1, 0x80 lsls r1, 18 adds r5, r1 lsrs r5, 24 ldr r6, _080A4448 mov r1, r9 lsls r0, r1, 24 lsrs r0, 24 adds r1, r6, 0 adds r2, r7, 0 bl sub_80A425C adds r6, r0, 0 mov r1, r8 ldr r0, [r1] lsls r4, 2 adds r0, r4, r0 ldrh r0, [r0] bl itemid_get_item adds r1, r0, 0 adds r0, r6, 0 movs r2, 0x66 movs r3, 0 bl sub_8072C74 adds r6, r0, 0 movs r0, 0xB9 strb r0, [r6] adds r6, 0x1 mov r1, r8 ldr r0, [r1] adds r4, r0 ldrh r1, [r4, 0x2] adds r0, r6, 0 movs r2, 0x78 movs r3, 0x1 bl sub_8072C14 ldr r0, _080A4448 movs r1, 0xE adds r2, r5, 0 bl Print adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _080A441A: ldr r0, [sp] cmp r7, r0 bgt _080A4430 adds r0, r7, 0 mov r1, r10 bl sub_80A42B0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A43A4 _080A4430: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A4440: .4byte 0x03005d10 _080A4444: .4byte 0x02038559 _080A4448: .4byte 0x020231cc thumb_func_end sub_80A4380 thumb_func_start sub_80A444C sub_80A444C: @ 80A444C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 str r2, [sp] str r3, [sp, 0x4] lsls r0, 16 lsrs r0, 16 mov r10, r0 lsls r1, 24 lsrs r6, r1, 24 ldr r0, _080A446C mov r9, r0 b _080A4520 .align 2, 0 _080A446C: .4byte 0x02025bca _080A4470: ldr r1, _080A44E8 ldr r0, _080A44EC ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r4, [r0, 0x1] adds r4, r6, r4 lsls r4, 24 lsrs r4, 24 lsls r5, r6, 25 movs r1, 0x80 lsls r1, 18 adds r5, r1 lsrs r5, 24 ldr r7, _080A44F0 mov r2, r10 lsls r0, r2, 24 lsrs r0, 24 adds r1, r7, 0 adds r2, r6, 0 bl sub_80A425C adds r7, r0, 0 ldr r0, _080A44F4 mov r8, r0 ldr r0, [r0] lsls r4, 2 adds r0, r4, r0 ldrh r0, [r0] bl itemid_get_item adds r1, r0, 0 adds r0, r7, 0 movs r2, 0x60 movs r3, 0 bl sub_8072C74 ldr r0, _080A44F0 movs r1, 0xE adds r2, r5, 0 bl Print ldr r0, _080A44F8 ldrb r0, [r0] cmp r0, 0 beq _080A44FC mov r1, r8 ldr r0, [r1] adds r0, r4, r0 ldrh r0, [r0] mov r2, r9 ldrh r2, [r2] cmp r0, r2 bne _080A451A adds r0, r6, 0 bl sub_80A4030 b _080A451A .align 2, 0 _080A44E8: .4byte 0x03005d10 _080A44EC: .4byte 0x02038559 _080A44F0: .4byte 0x020231cc _080A44F4: .4byte 0x03005d24 _080A44F8: .4byte 0x02038558 _080A44FC: mov r1, r8 ldr r0, [r1] adds r0, r4, r0 ldrh r0, [r0] mov r2, r9 ldrh r2, [r2] cmp r0, r2 bne _080A4514 adds r0, r6, 0 bl sub_80A405C b _080A451A _080A4514: adds r0, r6, 0 bl sub_80A40AC _080A451A: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _080A4520: ldr r0, [sp] cmp r6, r0 bgt _080A4536 adds r0, r6, 0 ldr r1, [sp, 0x4] bl sub_80A42B0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A4470 _080A4536: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A444C thumb_func_start sub_80A4548 sub_80A4548: @ 80A4548 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 str r2, [sp, 0x8] str r3, [sp, 0xC] lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x4] lsls r1, 24 lsrs r1, 24 mov r8, r1 ldr r0, _080A456C mov r9, r0 b _080A46C2 .align 2, 0 _080A456C: .4byte 0x020221cc _080A4570: ldr r1, _080A461C ldr r0, _080A4620 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r4, [r0, 0x1] add r4, r8 lsls r4, 24 lsrs r4, 24 mov r1, r8 lsls r0, r1, 25 movs r3, 0x80 lsls r3, 18 adds r0, r3 lsrs r0, 24 str r0, [sp, 0x10] lsls r0, 5 adds r0, 0xE adds r5, r0, 0 ldr r6, _080A4624 ldr r1, [sp, 0x4] lsls r0, r1, 24 lsrs r0, 24 adds r1, r6, 0 mov r2, r8 bl sub_80A425C adds r6, r0, 0 ldr r3, _080A4628 mov r10, r3 ldr r0, [r3] lsls r7, r4, 2 adds r3, r7, r0 ldrh r1, [r3] movs r0, 0xA9 lsls r0, 1 cmp r1, r0 bhi _080A4634 lsls r0, r5, 1 add r0, r9 movs r1, 0x59 strh r1, [r0] adds r0, r5, 0x1 lsls r0, 1 add r0, r9 movs r2, 0x4F strh r2, [r0] adds r0, r5, 0 adds r0, 0x20 lsls r0, 1 add r0, r9 movs r1, 0x69 strh r1, [r0] adds r0, r5, 0 adds r0, 0x21 lsls r0, 1 add r0, r9 strh r2, [r0] ldrh r0, [r3] bl ItemIdToBattleMoveId lsls r0, 16 lsrs r0, 16 movs r1, 0xD adds r2, r0, 0 muls r2, r1 ldr r0, _080A462C adds r2, r0 mov r1, r10 ldr r0, [r1] adds r0, r7, r0 ldr r3, _080A4630 adds r1, r3, 0 ldrh r3, [r0] adds r1, r3 lsls r1, 16 lsrs r1, 16 ldrh r3, [r0, 0x2] movs r0, 0x2 str r0, [sp] adds r0, r6, 0 bl sub_80A41E0 b _080A46AE .align 2, 0 _080A461C: .4byte 0x03005d10 _080A4620: .4byte 0x02038559 _080A4624: .4byte 0x020231cc _080A4628: .4byte 0x03005d24 _080A462C: .4byte gMoveNames _080A4630: .4byte 0xfffffee0 _080A4634: lsls r0, r5, 1 add r0, r9 ldr r1, _080A46EC strh r1, [r0] adds r0, r5, 0x1 lsls r0, 1 add r0, r9 adds r1, 0x1 strh r1, [r0] adds r0, r5, 0 adds r0, 0x20 lsls r0, 1 add r0, r9 adds r1, 0xF strh r1, [r0] adds r0, r5, 0 adds r0, 0x21 lsls r0, 1 add r0, r9 adds r1, 0x1 strh r1, [r0] movs r0, 0xFC strb r0, [r6] movs r4, 0x13 strb r4, [r6, 0x1] movs r0, 0x11 strb r0, [r6, 0x2] adds r6, 0x3 mov r1, r10 ldr r0, [r1] adds r0, r7, r0 ldrh r1, [r0] ldr r3, _080A46F0 adds r1, r3 adds r0, r6, 0 bl ConvertIntToDecimalString adds r6, r0, 0 movs r0, 0xFC strb r0, [r6] strb r4, [r6, 0x1] movs r0, 0x18 strb r0, [r6, 0x2] adds r6, 0x3 mov r1, r10 ldr r0, [r1] adds r0, r7, r0 ldrh r0, [r0] bl ItemIdToBattleMoveId lsls r0, 16 lsrs r0, 16 movs r1, 0xD muls r1, r0 ldr r0, _080A46F4 adds r1, r0 adds r0, r6, 0 movs r2, 0x78 movs r3, 0 bl sub_8072C74 _080A46AE: ldr r0, _080A46F8 movs r1, 0xE ldr r2, [sp, 0x10] bl Print mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 _080A46C2: ldr r3, [sp, 0x8] cmp r8, r3 bgt _080A46DA mov r0, r8 ldr r1, [sp, 0xC] bl sub_80A42B0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080A46DA b _080A4570 _080A46DA: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A46EC: .4byte 0x0000105d _080A46F0: .4byte 0xfffffeae _080A46F4: .4byte gMoveNames _080A46F8: .4byte 0x020231cc thumb_func_end sub_80A4548 thumb_func_start sub_80A46FC sub_80A46FC: @ 80A46FC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 str r2, [sp, 0x8] str r3, [sp, 0xC] lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x4] lsls r1, 24 lsrs r6, r1, 24 ldr r0, _080A4724 mov r10, r0 ldr r1, _080A4728 mov r9, r1 ldr r0, _080A472C mov r8, r0 b _080A47B4 .align 2, 0 _080A4724: .4byte 0x020221cc _080A4728: .4byte 0x020232cc _080A472C: .4byte 0x03005d24 _080A4730: ldr r1, _080A47DC ldr r0, _080A47E0 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r4, [r0, 0x1] adds r4, r6, r4 lsls r4, 24 lsrs r4, 24 lsls r5, r6, 25 movs r1, 0x80 lsls r1, 18 adds r5, r1 lsrs r5, 24 lsls r0, r5, 5 adds r0, 0xE lsls r1, r0, 1 add r1, r10 movs r2, 0x59 strh r2, [r1] adds r0, 0x20 lsls r0, 1 add r0, r10 movs r1, 0x69 strh r1, [r0] ldr r7, _080A47E4 ldr r1, [sp, 0x4] lsls r0, r1, 24 lsrs r0, 24 adds r1, r7, 0 adds r2, r6, 0 bl sub_80A425C adds r7, r0, 0 mov r1, r8 ldr r0, [r1] lsls r4, 2 adds r0, r4, r0 ldrh r0, [r0] mov r1, r9 bl itemid_copy_name mov r1, r8 ldr r0, [r1] adds r4, r0 ldrh r1, [r4] subs r1, 0x84 lsls r1, 16 lsrs r1, 16 ldrh r3, [r4, 0x2] movs r0, 0x3 str r0, [sp] adds r0, r7, 0 mov r2, r9 bl sub_80A41E0 ldr r0, _080A47E4 movs r1, 0xE adds r2, r5, 0 bl Print adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _080A47B4: ldr r0, [sp, 0x8] cmp r6, r0 bgt _080A47CA adds r0, r6, 0 ldr r1, [sp, 0xC] bl sub_80A42B0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A4730 _080A47CA: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A47DC: .4byte 0x03005d10 _080A47E0: .4byte 0x02038559 _080A47E4: .4byte 0x020231cc thumb_func_end sub_80A46FC thumb_func_start sub_80A47E8 sub_80A47E8: @ 80A47E8 push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 lsls r0, 16 lsrs r2, r0, 16 ldr r0, _080A4808 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x4 bhi _080A4852 lsls r0, 2 ldr r1, _080A480C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080A4808: .4byte 0x02038559 _080A480C: .4byte _080A4810 .align 2, 0 _080A4810: .4byte _080A4824 .4byte _080A4824 .4byte _080A483C .4byte _080A4848 .4byte _080A4830 _080A4824: adds r0, r2, 0 adds r1, r4, 0 adds r2, r5, 0 bl sub_80A4380 b _080A4852 _080A4830: adds r0, r2, 0 adds r1, r4, 0 adds r2, r5, 0 bl sub_80A444C b _080A4852 _080A483C: adds r0, r2, 0 adds r1, r4, 0 adds r2, r5, 0 bl sub_80A4548 b _080A4852 _080A4848: adds r0, r2, 0 adds r1, r4, 0 adds r2, r5, 0 bl sub_80A46FC _080A4852: ldr r1, _080A4870 ldr r0, _080A4874 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x1] cmp r0, 0 beq _080A4878 movs r0, 0 movs r1, 0 bl sub_80F979C b _080A4880 .align 2, 0 _080A4870: .4byte 0x03005d10 _080A4874: .4byte 0x02038559 _080A4878: movs r0, 0 movs r1, 0x1 bl sub_80F979C _080A4880: ldr r0, _080A48A4 ldrb r0, [r0] cmp r0, 0x5 beq _080A48B0 ldr r1, _080A48A8 ldr r0, _080A48AC ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x1] adds r1, 0x8 ldrb r0, [r0, 0x2] adds r0, 0x1 cmp r1, r0 blt _080A48C6 b _080A48D8 .align 2, 0 _080A48A4: .4byte 0x03000701 _080A48A8: .4byte 0x03005d10 _080A48AC: .4byte 0x02038559 _080A48B0: ldr r2, _080A48D0 ldr r0, _080A48D4 movs r1, 0 ldrsb r1, [r0, r1] lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x1] adds r0, 0x8 ldrb r1, [r1, 0x2] cmp r0, r1 bge _080A48D8 _080A48C6: movs r0, 0x1 movs r1, 0 bl sub_80F979C b _080A48E0 .align 2, 0 _080A48D0: .4byte 0x03005d10 _080A48D4: .4byte 0x02038559 _080A48D8: movs r0, 0x1 movs r1, 0x1 bl sub_80F979C _080A48E0: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80A47E8 thumb_func_start sub_80A48E8 sub_80A48E8: @ 80A48E8 push {lr} lsls r0, 16 lsrs r0, 16 movs r3, 0 bl sub_80A47E8 pop {r0} bx r0 thumb_func_end sub_80A48E8 thumb_func_start sub_80A48F8 sub_80A48F8: @ 80A48F8 push {lr} lsls r0, 16 lsrs r0, 16 movs r1, 0 movs r2, 0x5 movs r3, 0x2 bl sub_80A47E8 pop {r0} bx r0 thumb_func_end sub_80A48F8 thumb_func_start sub_80A490C sub_80A490C: @ 80A490C push {r4,r5,lr} sub sp, 0x4 lsls r0, 16 lsrs r3, r0, 16 ldr r1, _080A4960 ldr r0, _080A4964 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x1] ldrb r2, [r0] adds r1, r2 ldrb r0, [r0, 0x2] cmp r1, r0 bne _080A4974 ldr r0, _080A4968 movs r4, 0x1 str r4, [sp] movs r1, 0x4 movs r2, 0x68 movs r3, 0x68 bl sub_8072A18 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080A496C ldr r0, _080A4970 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r4, [sp] movs r1, 0x4 movs r2, 0x78 movs r3, 0x68 bl sub_8072A18 adds r0, r5, r0 b _080A4988 .align 2, 0 _080A4960: .4byte 0x03005d10 _080A4964: .4byte 0x02038559 _080A4968: .4byte gUnknown_0840E75C _080A496C: .4byte gUnknown_0840E740 _080A4970: .4byte 0x03000701 _080A4974: adds r0, r3, 0 bl itemid_get_description movs r1, 0x1 str r1, [sp] movs r1, 0x4 movs r2, 0x68 movs r3, 0x68 bl sub_8072A18 _080A4988: lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bhi _080A49A4 lsls r1, r5, 25 movs r0, 0xD0 lsls r0, 20 adds r1, r0 lsrs r1, 24 movs r0, 0 movs r2, 0xD movs r3, 0x14 bl Reset _080A49A4: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80A490C thumb_func_start sub_80A49AC sub_80A49AC: @ 80A49AC push {r4,r5,lr} sub sp, 0x64 adds r4, r1, 0 lsls r0, 16 lsrs r5, r0, 16 ldr r1, _080A49E8 ldr r0, _080A49EC ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x1] ldrb r2, [r0] adds r1, r2 ldrb r0, [r0, 0x2] cmp r1, r0 bne _080A4A18 cmp r4, 0 bne _080A49F4 movs r0, 0 movs r1, 0xD movs r2, 0xD movs r3, 0x14 bl Reset ldr r0, _080A49F0 movs r1, 0x4 movs r2, 0x68 b _080A4A08 .align 2, 0 _080A49E8: .4byte 0x03005d10 _080A49EC: .4byte 0x02038559 _080A49F0: .4byte gUnknown_0840E75C _080A49F4: cmp r4, 0x1 bne _080A4A4C ldr r1, _080A4A10 ldr r0, _080A4A14 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x4 movs r2, 0x78 _080A4A08: movs r3, 0 bl sub_80729D8 b _080A4A4C .align 2, 0 _080A4A10: .4byte gUnknown_0840E740 _080A4A14: .4byte 0x03000701 _080A4A18: cmp r4, 0 bne _080A4A28 movs r0, 0 movs r1, 0xD movs r2, 0xD movs r3, 0x14 bl Reset _080A4A28: lsls r1, r5, 16 asrs r1, 16 mov r0, sp adds r2, r4, 0 bl sub_80A99A8 cmp r0, 0 beq _080A4A4C lsls r2, r4, 20 movs r0, 0xD0 lsls r0, 15 adds r2, r0 lsrs r2, 16 mov r0, sp movs r1, 0x4 movs r3, 0 bl sub_80729D8 _080A4A4C: add sp, 0x64 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80A49AC thumb_func_start sub_80A4A54 sub_80A4A54: @ 80A4A54 push {r4,r5,lr} adds r5, r0, 0 adds r4, r2, 0x1 adds r2, r1, 0 adds r1, r5, 0 _080A4A5E: ldrb r3, [r2] adds r0, r3, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080A4A8A subs r4, 0x1 cmp r4, 0 bne _080A4A78 movs r0, 0xFF strb r0, [r1] movs r0, 0x1 b _080A4A92 _080A4A78: lsls r0, r3, 24 lsrs r0, 24 cmp r0, 0xFF bne _080A4A84 movs r0, 0 b _080A4A92 _080A4A84: adds r1, r5, 0 adds r2, 0x1 b _080A4A5E _080A4A8A: strb r3, [r1] adds r2, 0x1 adds r1, 0x1 b _080A4A5E _080A4A92: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80A4A54 thumb_func_start sub_80A4A98 sub_80A4A98: @ 80A4A98 push {r4,r5,lr} sub sp, 0x64 adds r5, r0, 0 adds r4, r1, 0 cmp r4, 0 bne _080A4AB0 movs r0, 0 movs r1, 0xD movs r2, 0xD movs r3, 0x14 bl Reset _080A4AB0: mov r0, sp adds r1, r5, 0 adds r2, r4, 0 bl sub_80A4A54 cmp r0, 0 beq _080A4AD2 lsls r2, r4, 20 movs r0, 0xD0 lsls r0, 15 adds r2, r0 lsrs r2, 16 mov r0, sp movs r1, 0x4 movs r3, 0 bl sub_80729D8 _080A4AD2: add sp, 0x64 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80A4A98 thumb_func_start sub_80A4ADC sub_80A4ADC: @ 80A4ADC push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080A4B0C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0x1C ldrsh r0, [r1, r2] cmp r0, 0 bne _080A4AFA movs r0, 0 bl sub_80A7528 _080A4AFA: movs r0, 0x5 bl audio_play ldr r1, _080A4B10 movs r0, 0x1 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _080A4B0C: .4byte 0x03004b20 _080A4B10: .4byte 0x0203855c thumb_func_end sub_80A4ADC thumb_func_start sub_80A4B14 sub_80A4B14: @ 80A4B14 push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsls r4, 24 lsrs r4, 24 ldr r2, _080A4B50 ldr r1, _080A4B54 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 lsls r1, 2 adds r1, r2 lsrs r0, 24 ldrb r2, [r1, 0x1] adds r0, r2 strb r0, [r1, 0x1] movs r0, 0 bl MoveMenuCursor bl sub_80A73C0 bl sub_80A763C adds r0, r4, 0 bl sub_80A4ADC pop {r4} pop {r0} bx r0 .align 2, 0 _080A4B50: .4byte 0x03005d10 _080A4B54: .4byte 0x02038559 thumb_func_end sub_80A4B14 thumb_func_start sub_80A4B58 sub_80A4B58: @ 80A4B58 push {r4,lr} adds r4, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r0, 24 asrs r0, 24 bl MoveMenuCursor ldr r2, _080A4B88 ldr r1, _080A4B8C ldrb r1, [r1] lsls r1, 24 asrs r1, 24 lsls r1, 2 adds r1, r2 strb r0, [r1] bl sub_80A73C0 adds r0, r4, 0 bl sub_80A4ADC pop {r4} pop {r0} bx r0 .align 2, 0 _080A4B88: .4byte 0x03005d10 _080A4B8C: .4byte 0x02038559 thumb_func_end sub_80A4B58 thumb_func_start sub_80A4B90 sub_80A4B90: @ 80A4B90 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 movs r0, 0x6 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _080A4BBC ldr r0, _080A4BB4 cmp r4, r0 beq _080A4BAE adds r0, 0xD cmp r4, r0 bne _080A4BBC _080A4BAE: ldr r0, _080A4BB8 b _080A4BE6 .align 2, 0 _080A4BB4: .4byte 0x00000103 _080A4BB8: .4byte gUnknown_0840E63B _080A4BBC: adds r0, r4, 0 bl itemid_is_mail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080A4BE4 ldr r1, _080A4BDC ldr r0, _080A4BE0 ldr r0, [r0] ldrb r0, [r0] lsls r0, 3 adds r0, r1 ldr r0, [r0] b _080A4BE6 .align 2, 0 _080A4BDC: .4byte gUnknown_083C1640 _080A4BE0: .4byte 0x03000704 _080A4BE4: ldr r0, _080A4BEC _080A4BE6: pop {r4} pop {r1} bx r1 .align 2, 0 _080A4BEC: .4byte gUnknown_0840E669 thumb_func_end sub_80A4B90 thumb_func_start sub_80A4BF0 sub_80A4BF0: @ 80A4BF0 push {r4-r7,lr} sub sp, 0x8 adds r5, r0, 0 ldr r7, _080A4C38 ldrb r4, [r7] cmp r4, 0x4 beq _080A4C00 b _080A4CF8 _080A4C00: movs r0, 0 movs r1, 0x7 movs r2, 0xD movs r3, 0xC bl DrawDefaultWindow str r4, [sp] adds r0, r5, 0 movs r1, 0x1 movs r2, 0x8 movs r3, 0xC bl sub_80A4008 bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A4C40 ldr r0, _080A4C3C ldrb r0, [r0] cmp r0, 0x5 bne _080A4C40 movs r0, 0x1 movs r1, 0 bl sub_80A7834 b _080A4CA0 .align 2, 0 _080A4C38: .4byte 0x02038564 _080A4C3C: .4byte 0x03000701 _080A4C40: movs r6, 0 ldr r0, _080A4C5C ldrb r0, [r0] cmp r6, r0 bcs _080A4CA0 ldr r4, _080A4C60 _080A4C4C: cmp r6, 0 bne _080A4C68 ldr r0, _080A4C64 ldrh r0, [r0] bl sub_80A4B90 adds r3, r0, 0 b _080A4C76 .align 2, 0 _080A4C5C: .4byte 0x02038564 _080A4C60: .4byte gUnknown_083C1640 _080A4C64: .4byte 0x0203855e _080A4C68: ldr r0, _080A4CC4 ldr r0, [r0] adds r0, r6 ldrb r0, [r0] lsls r0, 3 adds r0, r4 ldr r3, [r0] _080A4C76: lsrs r0, r6, 1 lsls r1, r0, 1 adds r1, r0 lsls r1, 1 adds r1, 0x1 lsls r1, 24 lsrs r1, 24 movs r2, 0x1 ands r2, r6 lsls r2, 1 adds r2, 0x8 adds r0, r3, 0 bl Print adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _080A4CC8 ldrb r0, [r0] cmp r6, r0 bcc _080A4C4C _080A4CA0: ldr r0, _080A4CCC ldrb r0, [r0] cmp r0, 0x5 bne _080A4CD4 ldr r0, _080A4CC8 ldrb r3, [r0] ldr r0, _080A4CD0 ldrb r0, [r0] str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x8 bl InitMenu b _080A4CEA .align 2, 0 _080A4CC4: .4byte 0x03000704 _080A4CC8: .4byte 0x02038564 _080A4CCC: .4byte 0x03000701 _080A4CD0: .4byte 0x03000700 _080A4CD4: ldr r0, _080A4CF4 ldrb r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x8 bl InitMenu _080A4CEA: movs r0, 0x2F bl sub_8072DCC b _080A4D8A .align 2, 0 _080A4CF4: .4byte 0x02038564 _080A4CF8: movs r0, 0 movs r1, 0x5 movs r2, 0xD movs r3, 0xC bl DrawDefaultWindow movs r0, 0x6 str r0, [sp] adds r0, r5, 0 movs r1, 0x1 movs r2, 0x6 movs r3, 0xC bl sub_80A4008 movs r6, 0 ldrb r7, [r7] cmp r6, r7 bcs _080A4D6E ldr r7, _080A4D98 _080A4D1E: ldr r0, _080A4D9C ldr r0, [r0] adds r0, r6 ldrb r0, [r0] lsls r0, 3 adds r0, r7 ldr r5, [r0] adds r0, r6, 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, r6, 0 movs r1, 0x3 bl __umodsi3 adds r2, r0, 0 lsls r2, 25 movs r0, 0xC0 lsls r0, 19 adds r2, r0 lsrs r2, 24 adds r0, r5, 0 adds r1, r4, 0 bl Print adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _080A4DA0 ldrb r0, [r0] cmp r6, r0 bcc _080A4D1E _080A4D6E: ldr r0, _080A4DA0 ldrb r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x6 bl InitMenu movs r0, 0x2F bl sub_8072DCC _080A4D8A: movs r0, 0x2 bl sub_80A7528 add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A4D98: .4byte gUnknown_083C1640 _080A4D9C: .4byte 0x03000704 _080A4DA0: .4byte 0x02038564 thumb_func_end sub_80A4BF0 thumb_func_start sub_80A4DA4 sub_80A4DA4: @ 80A4DA4 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 bl sub_80A73FC movs r0, 0x6 str r0, [sp] adds r0, r4, 0 movs r1, 0 movs r2, 0x6 movs r3, 0xD bl sub_80A36B8 movs r0, 0 movs r1, 0x5 movs r2, 0xD movs r3, 0xC bl Reset bl sub_80A7590 add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_80A4DA4 thumb_func_start sub_80A4DD8 sub_80A4DD8: @ 80A4DD8 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x4 adds r4, r1, 0 adds r1, r2, 0 adds r6, r3, 0 ldr r5, [sp, 0x20] ldr r2, [sp, 0x24] lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsrs r4, 24 lsls r1, 24 lsrs r1, 24 lsls r6, 24 lsrs r6, 24 lsls r5, 24 lsrs r5, 24 lsls r2, 24 lsrs r2, 24 mov r10, r2 ldr r3, _080A4E84 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r2, r3 movs r0, 0x1 strh r0, [r2, 0xA] adds r0, r4, 0x2 mov r9, r0 strh r0, [r2, 0xC] adds r0, r1, 0x1 mov r8, r0 strh r0, [r2, 0xE] adds r2, r4, r6 lsls r2, 24 lsrs r2, 24 adds r3, r1, r5 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 bl DrawDefaultWindow ldr r0, _080A4E88 adds r4, 0x1 lsls r4, 24 lsrs r4, 24 mov r1, r8 lsls r1, 24 lsrs r1, 24 mov r8, r1 subs r6, 0x1 lsls r6, 24 lsrs r6, 24 subs r5, 0x1 lsls r5, 24 lsrs r5, 24 str r5, [sp] adds r1, r4, 0 mov r2, r8 adds r3, r6, 0 bl sub_80A4008 mov r2, r9 lsls r2, 24 lsrs r2, 24 mov r9, r2 mov r0, r10 str r0, [sp] movs r0, 0x1 movs r1, 0x1 mov r3, r8 bl sub_80A418C add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A4E84: .4byte 0x03004b20 _080A4E88: .4byte 0x020219cc thumb_func_end sub_80A4DD8 thumb_func_start sub_80A4E8C sub_80A4E8C: @ 80A4E8C push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r6, 24 lsrs r6, 24 movs r0, 0x5 bl audio_play movs r0, 0 movs r1, 0x1 bl sub_80F979C movs r0, 0x1 movs r1, 0x1 bl sub_80F979C movs r0, 0x2 movs r1, 0x1 bl sub_80F979C movs r0, 0x3 movs r1, 0x1 bl sub_80F979C movs r0, 0 bl sub_80F996C movs r0, 0x1 bl sub_80F996C movs r0, 0x2 bl sub_80F996C movs r0, 0x3 bl sub_80F996C ldr r5, _080A4F04 lsls r4, 24 asrs r4, 24 adds r0, r5, 0 adds r1, r4, 0 bl sub_80A3B04 ldr r0, _080A4F08 ldrb r1, [r0] adds r0, r5, 0 bl sub_80A3AC0 bl sub_80A3770 bl sub_80A7C64 adds r0, r6, 0 bl sub_80A7C20 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A4F04: .4byte 0x020221cc _080A4F08: .4byte 0x02038559 thumb_func_end sub_80A4E8C thumb_func_start sub_80A4F0C sub_80A4F0C: @ 80A4F0C push {r4,lr} ldr r0, _080A4F38 ldrb r0, [r0] subs r0, 0x4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _080A4F60 ldr r4, _080A4F3C ldrh r0, [r4, 0x2E] cmp r0, 0x10 beq _080A4F30 bl sub_80F9284 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _080A4F40 _080A4F30: movs r0, 0x1 movs r1, 0x2 b _080A4F58 .align 2, 0 _080A4F38: .4byte 0x03000701 _080A4F3C: .4byte 0x03001770 _080A4F40: ldrh r0, [r4, 0x2E] cmp r0, 0x20 beq _080A4F52 bl sub_80F9284 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A4F60 _080A4F52: movs r0, 0x1 negs r0, r0 movs r1, 0x1 _080A4F58: bl sub_80A4E8C movs r0, 0x1 b _080A4F62 _080A4F60: movs r0, 0 _080A4F62: pop {r4} pop {r1} bx r1 thumb_func_end sub_80A4F0C thumb_func_start sub_80A4F68 sub_80A4F68: @ 80A4F68 push {lr} bl sub_80A4F0C pop {r0} bx r0 thumb_func_end sub_80A4F68 thumb_func_start sub_80A4F74 sub_80A4F74: @ 80A4F74 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r2, r4, 0 movs r5, 0 ldr r0, _080A4FAC ldrh r0, [r0, 0x30] movs r1, 0xF0 ands r1, r0 cmp r1, 0x40 bne _080A4FE8 ldr r1, _080A4FB0 ldr r0, _080A4FB4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 beq _080A4FB8 movs r0, 0x1 negs r0, r0 adds r1, r4, 0 bl sub_80A4B58 b _080A4FC8 .align 2, 0 _080A4FAC: .4byte 0x03001770 _080A4FB0: .4byte 0x03005d10 _080A4FB4: .4byte 0x02038559 _080A4FB8: ldrb r0, [r1, 0x1] cmp r0, 0 beq _080A4FC8 movs r0, 0x1 negs r0, r0 adds r1, r4, 0 bl sub_80A4B14 _080A4FC8: ldr r0, _080A4FE0 ldrb r0, [r0] cmp r0, 0x1 bne _080A50AE ldr r1, _080A4FE4 ldrh r0, [r1, 0x32] cmp r0, 0x5 bne _080A50AE movs r0, 0xB strh r0, [r1, 0x32] b _080A50AE .align 2, 0 _080A4FE0: .4byte 0x020238c0 _080A4FE4: .4byte 0x03001770 _080A4FE8: cmp r1, 0x80 bne _080A5088 ldr r0, _080A5020 ldrb r0, [r0] cmp r0, 0x5 beq _080A502C ldr r1, _080A5024 ldr r0, _080A5028 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r2, r0, r1 ldrb r0, [r2] ldrb r1, [r2, 0x3] cmp r0, r1 bne _080A504E ldrb r0, [r2, 0x1] ldrb r1, [r2] adds r0, r1 ldrb r2, [r2, 0x2] cmp r0, r2 beq _080A5068 movs r0, 0x1 adds r1, r4, 0 bl sub_80A4B14 b _080A5068 .align 2, 0 _080A5020: .4byte 0x03000701 _080A5024: .4byte 0x03005d10 _080A5028: .4byte 0x02038559 _080A502C: ldr r1, _080A5058 ldr r0, _080A505C ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r2, r0, r1 ldrb r1, [r2, 0x1] ldrb r3, [r2] adds r1, r3 ldrb r0, [r2, 0x2] subs r0, 0x1 cmp r1, r0 beq _080A5068 ldrb r2, [r2, 0x3] cmp r3, r2 beq _080A5060 _080A504E: movs r0, 0x1 adds r1, r4, 0 bl sub_80A4B58 b _080A5068 .align 2, 0 _080A5058: .4byte 0x03005d10 _080A505C: .4byte 0x02038559 _080A5060: movs r0, 0x1 adds r1, r4, 0 bl sub_80A4B14 _080A5068: movs r5, 0x1 ldr r0, _080A5080 ldrb r0, [r0] cmp r0, 0x1 bne _080A50C0 ldr r1, _080A5084 ldrh r0, [r1, 0x32] cmp r0, 0x5 bne _080A50C0 movs r0, 0xB strh r0, [r1, 0x32] b _080A50C0 .align 2, 0 _080A5080: .4byte 0x020238c0 _080A5084: .4byte 0x03001770 _080A5088: ldr r0, _080A50B4 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r4, r1, r0 movs r1, 0x1C ldrsh r0, [r4, r1] cmp r0, 0 bne _080A50BC bl sub_80A4F0C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A50BC bl sub_80A73F0 ldr r0, _080A50B8 str r0, [r4] _080A50AE: movs r5, 0x1 b _080A50C0 .align 2, 0 _080A50B4: .4byte 0x03004b20 _080A50B8: .4byte sub_80A4F68 _080A50BC: bl sub_80A73C0 _080A50C0: adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80A4F74 thumb_func_start sub_80A50C8 sub_80A50C8: @ 80A50C8 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080A5148 adds r5, r0, r1 ldr r0, _080A514C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080A50E6 b _080A52BC _080A50E6: adds r0, r4, 0 bl sub_80A4F74 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A50F6 b _080A526A _080A50F6: ldr r2, _080A5150 ldrh r1, [r2, 0x2E] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080A5190 ldr r3, _080A5154 ldrb r0, [r3] subs r0, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _080A5190 ldr r0, _080A5158 ldrb r0, [r0] cmp r0, 0x1 bhi _080A5190 movs r1, 0x14 ldrsh r0, [r5, r1] cmp r0, 0 bne _080A5160 ldr r1, _080A515C movs r0, 0 ldrsb r0, [r3, r0] lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x1] ldrb r2, [r0] adds r1, r2 ldrb r0, [r0, 0x2] cmp r1, r0 bne _080A5138 b _080A526A _080A5138: movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_80A3F50 b _080A526A .align 2, 0 _080A5148: .4byte 0x03004b28 _080A514C: .4byte 0x0202f388 _080A5150: .4byte 0x03001770 _080A5154: .4byte 0x02038559 _080A5158: .4byte 0x03000701 _080A515C: .4byte 0x03005d10 _080A5160: ldr r1, _080A5184 movs r0, 0 ldrsb r0, [r3, r0] lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x1] ldrb r2, [r0] adds r1, r2 ldrb r0, [r0, 0x2] cmp r1, r0 beq _080A5188 movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_80A3E90 b _080A526A .align 2, 0 _080A5184: .4byte 0x03005d10 _080A5188: adds r0, r4, 0 bl sub_80A3EF4 b _080A526A _080A5190: ldrh r2, [r2, 0x2E] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _080A5272 ldr r7, _080A51D4 ldr r6, _080A51D8 movs r0, 0 ldrsb r0, [r6, r0] lsls r0, 2 adds r0, r7 ldrb r1, [r0, 0x1] ldrb r2, [r0] adds r1, r2 ldrb r0, [r0, 0x2] cmp r1, r0 bne _080A51F0 movs r0, 0x14 ldrsh r1, [r5, r0] cmp r1, 0 bne _080A51E8 ldr r0, _080A51DC strh r1, [r0] ldr r1, _080A51E0 ldr r0, _080A51E4 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 b _080A526A .align 2, 0 _080A51D4: .4byte 0x03005d10 _080A51D8: .4byte 0x02038559 _080A51DC: .4byte 0x0203855e _080A51E0: .4byte gUnknown_083C16BC _080A51E4: .4byte 0x03000701 _080A51E8: adds r0, r4, 0 bl sub_80A3EF4 b _080A526A _080A51F0: movs r1, 0x14 ldrsh r0, [r5, r1] cmp r0, 0 bne _080A5264 movs r0, 0x5 bl audio_play ldr r2, _080A5250 movs r1, 0 ldrsb r1, [r6, r1] lsls r1, 2 adds r1, r7 ldrb r0, [r1] ldrb r1, [r1, 0x1] adds r0, r1 strb r0, [r2] ldr r3, _080A5254 ldrb r0, [r2] ldr r1, _080A5258 ldr r1, [r1] lsls r0, 2 adds r0, r1 ldrh r0, [r0] strh r0, [r3] ldr r1, _080A525C ldr r0, _080A5260 ldrb r0, [r0] lsls r0, 3 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 movs r0, 0 bl sub_80F98A4 movs r0, 0x1 bl sub_80F98A4 movs r0, 0x2 bl sub_80F98A4 movs r0, 0x3 bl sub_80F98A4 bl sub_80A797C b _080A526A .align 2, 0 _080A5250: .4byte 0x02038560 _080A5254: .4byte 0x0203855e _080A5258: .4byte 0x03005d24 _080A525C: .4byte gUnknown_083C16BC _080A5260: .4byte 0x03000701 _080A5264: adds r0, r4, 0 bl sub_80A3E90 _080A526A: adds r0, r4, 0 bl sub_808B5B4 b _080A52BC _080A5272: movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _080A52BC movs r0, 0x14 ldrsh r1, [r5, r0] cmp r1, 0 bne _080A52B0 ldr r2, _080A52A4 ldrb r0, [r2] cmp r0, 0x5 beq _080A52B6 ldr r0, _080A52A8 strh r1, [r0] ldr r1, _080A52AC ldrb r0, [r2] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 b _080A52B6 .align 2, 0 _080A52A4: .4byte 0x03000701 _080A52A8: .4byte 0x0203855e _080A52AC: .4byte gUnknown_083C16BC _080A52B0: adds r0, r4, 0 bl sub_80A3EF4 _080A52B6: adds r0, r4, 0 bl sub_808B5B4 _080A52BC: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A50C8 thumb_func_start sub_80A52C4 sub_80A52C4: @ 80A52C4 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r3, r1, 16 adds r4, r3, 0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080A52F4 adds r1, r0 ldr r0, _080A52F8 ldrh r0, [r0, 0x30] movs r2, 0xF0 ands r2, r0 cmp r2, 0x40 bne _080A52FC movs r2, 0x2 ldrsh r0, [r1, r2] cmp r0, r3 beq _080A533E ldrh r0, [r1, 0x2] adds r0, 0x1 b _080A5340 .align 2, 0 _080A52F4: .4byte 0x03004b28 _080A52F8: .4byte 0x03001770 _080A52FC: cmp r2, 0x80 bne _080A5312 ldrh r2, [r1, 0x2] movs r4, 0x2 ldrsh r0, [r1, r4] cmp r0, 0x1 beq _080A530E subs r0, r2, 0x1 b _080A5340 _080A530E: strh r3, [r1, 0x2] b _080A5342 _080A5312: cmp r2, 0x10 bne _080A532A movs r2, 0x2 ldrsh r0, [r1, r2] adds r0, 0xA cmp r0, r3 bge _080A5326 ldrh r0, [r1, 0x2] adds r0, 0xA b _080A5340 _080A5326: strh r4, [r1, 0x2] b _080A5342 _080A532A: cmp r2, 0x20 bne _080A5346 ldrh r2, [r1, 0x2] movs r3, 0x2 ldrsh r0, [r1, r3] cmp r0, 0xA ble _080A533E adds r0, r2, 0 subs r0, 0xA b _080A5340 _080A533E: movs r0, 0x1 _080A5340: strh r0, [r1, 0x2] _080A5342: movs r0, 0x1 b _080A5348 _080A5346: movs r0, 0 _080A5348: pop {r4} pop {r1} bx r1 thumb_func_end sub_80A52C4 thumb_func_start sub_80A5350 sub_80A5350: @ 80A5350 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r2, _080A539C adds r4, r1, r2 ldr r1, _080A53A0 ldrb r1, [r1] ldr r2, _080A53A4 ldr r2, [r2] lsls r1, 2 adds r1, r2 ldrh r1, [r1, 0x2] bl sub_80A52C4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A53C0 ldr r0, _080A53A8 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x3 bne _080A53AC ldrh r0, [r4, 0x2] ldrb r2, [r4, 0x4] ldrb r3, [r4, 0x6] movs r1, 0x3 str r1, [sp] movs r1, 0x1 bl sub_80A418C b _080A53BC .align 2, 0 _080A539C: .4byte 0x03004b28 _080A53A0: .4byte 0x02038560 _080A53A4: .4byte 0x03005d24 _080A53A8: .4byte 0x02038559 _080A53AC: ldrh r0, [r4, 0x2] ldrb r2, [r4, 0x4] ldrb r3, [r4, 0x6] movs r1, 0x2 str r1, [sp] movs r1, 0x1 bl sub_80A418C _080A53BC: movs r0, 0x1 b _080A53C2 _080A53C0: movs r0, 0 _080A53C2: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_80A5350 thumb_func_start sub_80A53CC sub_80A53CC: @ 80A53CC push {lr} bl sub_80A34B4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A53EA bl sub_80A3770 ldr r0, _080A53F0 movs r1, 0 bl CreateTask ldr r1, _080A53F4 strb r0, [r1] _080A53EA: pop {r0} bx r0 .align 2, 0 _080A53F0: .4byte sub_80A50C8 _080A53F4: .4byte 0x02038563 thumb_func_end sub_80A53CC thumb_func_start sub_80A53F8 sub_80A53F8: @ 80A53F8 push {lr} ldr r0, _080A540C movs r1, 0 strb r1, [r0] ldr r0, _080A5410 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _080A540C: .4byte 0x03000701 _080A5410: .4byte sub_80A53CC thumb_func_end sub_80A53F8 thumb_func_start sub_80A5414 sub_80A5414: @ 80A5414 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 movs r5, 0 bl rfu_lacks_rfufunc cmp r0, 0 bne _080A5426 b _080A5552 _080A5426: ldr r2, _080A5460 ldrh r0, [r2, 0x30] movs r1, 0xF0 ands r1, r0 cmp r1, 0x40 bne _080A546C ldr r4, _080A5464 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080A5440 b _080A5552 _080A5440: ldrb r1, [r4] ldr r0, _080A5468 ldr r0, [r0] adds r1, r0 subs r1, 0x1 ldrb r0, [r1] cmp r0, 0x8 bne _080A5452 b _080A5552 _080A5452: movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 b _080A54EE .align 2, 0 _080A5460: .4byte 0x03001770 _080A5464: .4byte 0x03000700 _080A5468: .4byte 0x03000704 _080A546C: cmp r1, 0x80 bne _080A549C ldr r4, _080A5494 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080A5552 ldrb r1, [r4] ldr r0, _080A5498 ldr r0, [r0] adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0x8 beq _080A5552 movs r0, 0x5 bl audio_play movs r0, 0x1 b _080A54EE .align 2, 0 _080A5494: .4byte 0x03000700 _080A5498: .4byte 0x03000704 _080A549C: cmp r1, 0x20 bne _080A54CC ldr r4, _080A54C4 ldrb r0, [r4] cmp r0, 0x1 bls _080A5552 adds r1, r0, 0 ldr r0, _080A54C8 ldr r0, [r0] adds r1, r0 subs r1, 0x2 ldrb r0, [r1] cmp r0, 0x8 beq _080A5552 movs r0, 0x5 bl audio_play movs r0, 0x2 negs r0, r0 b _080A54EE .align 2, 0 _080A54C4: .4byte 0x03000700 _080A54C8: .4byte 0x03000704 _080A54CC: cmp r1, 0x10 bne _080A5500 ldr r4, _080A54F8 ldrb r0, [r4] cmp r0, 0x1 bhi _080A5552 adds r1, r0, 0 ldr r0, _080A54FC ldr r0, [r0] adds r1, r0 ldrb r0, [r1, 0x2] cmp r0, 0x8 beq _080A5552 movs r0, 0x5 bl audio_play movs r0, 0x2 _080A54EE: bl MoveMenuCursor3 strb r0, [r4] b _080A5552 .align 2, 0 _080A54F8: .4byte 0x03000700 _080A54FC: .4byte 0x03000704 _080A5500: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080A5590 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080A5552 ldr r1, _080A5570 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x1C] ldr r1, _080A5574 ldr r0, _080A5578 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r2, [r0] adds r0, r4, 0 adds r1, r2, 0 bl sub_80A48E8 ldr r0, _080A557C bl sub_80A4DA4 ldr r1, _080A5580 ldr r0, _080A5584 ldr r0, [r0] ldrb r0, [r0, 0x3] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r5, [r0] adds r0, r4, 0 bl _call_via_r5 _080A5552: cmp r5, 0 bne _080A55FA ldr r0, _080A5588 ldrb r0, [r0] cmp r0, 0x5 bne _080A55E0 ldr r0, _080A558C ldrb r0, [r0] cmp r0, 0 bne _080A55D4 movs r0, 0xC bl sub_8072DDC b _080A55FA .align 2, 0 _080A5570: .4byte 0x03004b20 _080A5574: .4byte 0x03005d10 _080A5578: .4byte 0x02038559 _080A557C: .4byte 0x020219cc _080A5580: .4byte gUnknown_083C1640 _080A5584: .4byte 0x03000704 _080A5588: .4byte 0x03000701 _080A558C: .4byte 0x03000700 _080A5590: ldr r1, _080A55C0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x1C] ldr r0, _080A55C4 bl sub_80A4DA4 ldr r1, _080A55C8 ldr r0, _080A55CC ldrb r2, [r0] ldr r0, _080A55D0 ldr r0, [r0] adds r0, r2 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r5, [r0] adds r0, r4, 0 bl _call_via_r5 b _080A5552 .align 2, 0 _080A55C0: .4byte 0x03004b20 _080A55C4: .4byte 0x020219cc _080A55C8: .4byte gUnknown_083C1640 _080A55CC: .4byte 0x03000700 _080A55D0: .4byte 0x03000704 _080A55D4: cmp r0, 0x1 bls _080A55E8 movs r0, 0x30 bl sub_8072DCC b _080A55FA _080A55E0: ldr r0, _080A55F0 ldrb r0, [r0] cmp r0, 0x1 bhi _080A55F4 _080A55E8: movs r0, 0x2F bl sub_8072DCC b _080A55FA .align 2, 0 _080A55F0: .4byte 0x03000700 _080A55F4: movs r0, 0x30 bl sub_8072DCC _080A55FA: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80A5414 thumb_func_start sub_80A5600 sub_80A5600: @ 80A5600 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 movs r5, 0 ldr r2, _080A563C ldrh r0, [r2, 0x30] movs r1, 0xF0 ands r1, r0 cmp r1, 0x40 bne _080A5648 ldr r4, _080A5640 ldrb r0, [r4] cmp r0, 0 bne _080A561E b _080A5736 _080A561E: adds r1, r0, 0 ldr r0, _080A5644 ldr r0, [r0] adds r1, r0 subs r1, 0x1 ldrb r0, [r1] cmp r0, 0x8 bne _080A5630 b _080A5736 _080A5630: movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 b _080A56D2 .align 2, 0 _080A563C: .4byte 0x03001770 _080A5640: .4byte 0x03000700 _080A5644: .4byte 0x03000704 _080A5648: cmp r1, 0x80 bne _080A5680 ldr r4, _080A5674 ldrb r1, [r4] ldr r0, _080A5678 ldrb r0, [r0] subs r0, 0x1 cmp r1, r0 beq _080A5736 cmp r1, 0x2 beq _080A5736 ldr r0, _080A567C ldr r0, [r0] adds r0, r1, r0 ldrb r0, [r0, 0x1] cmp r0, 0x8 beq _080A5736 movs r0, 0x5 bl audio_play movs r0, 0x1 b _080A56D2 .align 2, 0 _080A5674: .4byte 0x03000700 _080A5678: .4byte 0x02038564 _080A567C: .4byte 0x03000704 _080A5680: cmp r1, 0x20 bne _080A56B0 ldr r4, _080A56A8 ldrb r0, [r4] cmp r0, 0x2 bls _080A5736 adds r1, r0, 0 ldr r0, _080A56AC ldr r0, [r0] adds r1, r0 subs r1, 0x3 ldrb r0, [r1] cmp r0, 0x8 beq _080A5736 movs r0, 0x5 bl audio_play movs r0, 0x3 negs r0, r0 b _080A56D2 .align 2, 0 _080A56A8: .4byte 0x03000700 _080A56AC: .4byte 0x03000704 _080A56B0: cmp r1, 0x10 bne _080A56E4 ldr r4, _080A56DC ldrb r0, [r4] cmp r0, 0x2 bhi _080A5736 adds r1, r0, 0 ldr r0, _080A56E0 ldr r0, [r0] adds r1, r0 ldrb r0, [r1, 0x3] cmp r0, 0x8 beq _080A5736 movs r0, 0x5 bl audio_play movs r0, 0x3 _080A56D2: bl MoveMenuCursor3 strb r0, [r4] b _080A5736 .align 2, 0 _080A56DC: .4byte 0x03000700 _080A56E0: .4byte 0x03000704 _080A56E4: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080A5768 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080A5736 ldr r1, _080A574C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x1C] ldr r1, _080A5750 ldr r0, _080A5754 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r2, [r0] adds r0, r4, 0 adds r1, r2, 0 bl sub_80A48E8 ldr r0, _080A5758 bl sub_80A4DA4 ldr r1, _080A575C ldr r0, _080A5760 ldr r0, [r0] ldrb r0, [r0, 0x5] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r5, [r0] adds r0, r4, 0 bl _call_via_r5 _080A5736: cmp r5, 0 bne _080A57BE ldr r0, _080A5764 ldrb r0, [r0] cmp r0, 0 bne _080A57AC movs r0, 0xC bl sub_8072DDC b _080A57BE .align 2, 0 _080A574C: .4byte 0x03004b20 _080A5750: .4byte 0x03005d10 _080A5754: .4byte 0x02038559 _080A5758: .4byte 0x020219cc _080A575C: .4byte gUnknown_083C1640 _080A5760: .4byte 0x03000704 _080A5764: .4byte 0x03000700 _080A5768: ldr r1, _080A5798 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x1C] ldr r0, _080A579C bl sub_80A4DA4 ldr r1, _080A57A0 ldr r0, _080A57A4 ldrb r2, [r0] ldr r0, _080A57A8 ldr r0, [r0] adds r0, r2 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r5, [r0] adds r0, r4, 0 bl _call_via_r5 b _080A5736 .align 2, 0 _080A5798: .4byte 0x03004b20 _080A579C: .4byte 0x020219cc _080A57A0: .4byte gUnknown_083C1640 _080A57A4: .4byte 0x03000700 _080A57A8: .4byte 0x03000704 _080A57AC: cmp r0, 0x2 bhi _080A57B8 movs r0, 0x2F bl sub_8072DCC b _080A57BE _080A57B8: movs r0, 0x30 bl sub_8072DCC _080A57BE: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80A5600 thumb_func_start sub_80A57C4 sub_80A57C4: @ 80A57C4 push {r4-r6,lr} sub sp, 0x8 ldr r5, _080A57EC ldr r0, _080A57F0 movs r1, 0 ldrsb r1, [r0, r1] lsls r1, 1 ldr r4, _080A57F4 adds r1, r4 str r1, [r5] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x4 bne _080A57FC ldr r1, _080A57F8 movs r0, 0x1 strb r0, [r1] movs r5, 0x9 b _080A582C .align 2, 0 _080A57EC: .4byte 0x03000704 _080A57F0: .4byte 0x02038559 _080A57F4: .4byte gUnknown_083C16AE _080A57F8: .4byte 0x02038564 _080A57FC: ldr r0, _080A581C ldrh r0, [r0] bl sub_80F92F4 lsls r0, 24 cmp r0, 0 bne _080A5824 adds r0, r4, 0 adds r0, 0x8 str r0, [r5] ldr r1, _080A5820 movs r0, 0x1 strb r0, [r1] movs r5, 0x9 b _080A582C .align 2, 0 _080A581C: .4byte 0x0203855e _080A5820: .4byte 0x02038564 _080A5824: ldr r1, _080A5880 movs r0, 0x2 strb r0, [r1] movs r5, 0x7 _080A582C: adds r6, r1, 0 ldr r0, _080A5884 adds r4, r5, 0x1 ldrb r1, [r6] lsls r1, 25 lsrs r1, 24 str r1, [sp] movs r1, 0x7 adds r2, r4, 0 movs r3, 0x6 bl sub_80A4008 ldrb r3, [r6] lsls r3, 1 adds r3, 0x1 adds r3, r5, r3 lsls r3, 24 lsrs r3, 24 movs r0, 0x6 adds r1, r5, 0 movs r2, 0xD bl DrawDefaultWindow movs r0, 0 adds r1, r5, 0 bl sub_80A7834 ldrb r3, [r6] movs r0, 0 str r0, [sp] movs r0, 0x6 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x7 adds r2, r4, 0 bl InitMenu add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A5880: .4byte 0x02038564 _080A5884: .4byte 0x020219cc thumb_func_end sub_80A57C4 thumb_func_start sub_80A5888 sub_80A5888: @ 80A5888 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl rfu_lacks_rfufunc cmp r0, 0 beq _080A5988 ldr r2, _080A58B8 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080A58C0 ldr r4, _080A58BC ldrb r0, [r4] cmp r0, 0 beq _080A5988 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 b _080A58E2 .align 2, 0 _080A58B8: .4byte 0x03001770 _080A58BC: .4byte 0x03000700 _080A58C0: movs r0, 0x80 ands r0, r1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _080A58F4 ldr r4, _080A58EC ldrb r1, [r4] ldr r0, _080A58F0 ldrb r0, [r0] subs r0, 0x1 cmp r1, r0 beq _080A5988 movs r0, 0x5 bl audio_play movs r0, 0x1 _080A58E2: bl MoveMenuCursor strb r0, [r4] b _080A5988 .align 2, 0 _080A58EC: .4byte 0x03000700 _080A58F0: .4byte 0x02038564 _080A58F4: ldrh r1, [r2, 0x2E] movs r2, 0x1 ands r2, r1 cmp r2, 0 beq _080A5964 ldr r1, _080A5948 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r3, [r0, 0x1C] ldr r1, _080A594C ldr r0, _080A5950 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r2, [r0] adds r0, r4, 0 adds r1, r2, 0 bl sub_80A48E8 ldr r0, _080A5954 bl sub_80A4DA4 ldr r1, _080A5958 ldr r0, _080A595C ldrb r2, [r0] ldr r0, _080A5960 ldr r0, [r0] adds r0, r2 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 b _080A5988 .align 2, 0 _080A5948: .4byte 0x03004b20 _080A594C: .4byte 0x03005d10 _080A5950: .4byte 0x02038559 _080A5954: .4byte 0x020219cc _080A5958: .4byte gUnknown_083C1640 _080A595C: .4byte 0x03000700 _080A5960: .4byte 0x03000704 _080A5964: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080A5988 ldr r1, _080A5990 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x1C] ldr r0, _080A5994 bl sub_80A4DA4 ldr r0, _080A5998 ldr r1, [r0, 0x14] adds r0, r5, 0 bl _call_via_r1 _080A5988: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A5990: .4byte 0x03004b20 _080A5994: .4byte 0x020219cc _080A5998: .4byte gUnknown_083C1640 thumb_func_end sub_80A5888 thumb_func_start sub_80A599C sub_80A599C: @ 80A599C push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080A59C4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r3, _080A59C8 lsrs r2, r3, 16 movs r4, 0 strh r2, [r1, 0x18] strh r3, [r1, 0x1A] ldr r1, _080A59CC strb r4, [r1] bl sub_80A5AE4 pop {r4} pop {r0} bx r0 .align 2, 0 _080A59C4: .4byte 0x03004b20 _080A59C8: .4byte sub_805469C _080A59CC: .4byte 0x03005ce0 thumb_func_end sub_80A599C thumb_func_start sub_80A59D0 sub_80A59D0: @ 80A59D0 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080A5A3C movs r0, 0 strb r0, [r1] ldr r7, _080A5A40 ldrb r0, [r7] cmp r0, 0x5 bne _080A59E8 movs r0, 0x1 strb r0, [r1] _080A59E8: ldr r1, _080A5A44 lsls r4, r5, 2 adds r0, r4, r5 lsls r0, 3 adds r6, r0, r1 ldr r3, _080A5A48 ldr r2, _080A5A4C movs r0, 0 ldrsb r0, [r2, r0] lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x1] ldrb r0, [r0] adds r1, r0 adds r1, 0x1 strh r1, [r6, 0x1C] movs r0, 0 ldrsb r0, [r2, r0] lsls r0, 2 adds r0, r3 ldrb r2, [r0] adds r0, r5, 0 adds r1, r2, 0 bl sub_80A48E8 bl sub_80A73FC bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A5A54 ldrb r0, [r7] cmp r0, 0x5 beq _080A5A54 bl sub_80A57C4 ldr r0, _080A5A50 str r0, [r6] b _080A5A9C .align 2, 0 _080A5A3C: .4byte 0x03000700 _080A5A40: .4byte 0x03000701 _080A5A44: .4byte 0x03004b20 _080A5A48: .4byte 0x03005d10 _080A5A4C: .4byte 0x02038559 _080A5A50: .4byte sub_80A5888 _080A5A54: ldr r0, _080A5A7C bl sub_80A4BF0 ldr r0, _080A5A80 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x3 bne _080A5A6E ldr r0, _080A5A84 ldrb r0, [r0] cmp r0, 0x5 bne _080A5A90 _080A5A6E: ldr r0, _080A5A88 adds r1, r4, r5 lsls r1, 3 adds r1, r0 ldr r0, _080A5A8C b _080A5A9A .align 2, 0 _080A5A7C: .4byte 0x020219cc _080A5A80: .4byte 0x02038559 _080A5A84: .4byte 0x03000701 _080A5A88: .4byte 0x03004b20 _080A5A8C: .4byte sub_80A5414 _080A5A90: ldr r0, _080A5AA4 adds r1, r4, r5 lsls r1, 3 adds r1, r0 ldr r0, _080A5AA8 _080A5A9A: str r0, [r1] _080A5A9C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A5AA4: .4byte 0x03004b20 _080A5AA8: .4byte sub_80A5600 thumb_func_end sub_80A59D0 thumb_func_start sub_80A5AAC sub_80A5AAC: @ 80A5AAC 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, _080A5ADC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080A5AE0 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080A5ADC: .4byte 0x03004b20 _080A5AE0: .4byte sub_80A5B00 thumb_func_end sub_80A5AAC thumb_func_start sub_80A5AE4 sub_80A5AE4: @ 80A5AE4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_80A5AAC pop {r4} pop {r0} bx r0 thumb_func_end sub_80A5AE4 thumb_func_start sub_80A5B00 sub_80A5B00: @ 80A5B00 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080A5B38 adds r2, r0, r1 ldr r0, _080A5B3C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080A5B32 ldrh r0, [r2, 0x10] lsls r0, 16 ldrh r1, [r2, 0x12] orrs r0, r1 bl SetMainCallback2 bl gpu_pal_allocator_reset__manage_upper_four adds r0, r4, 0 bl DestroyTask _080A5B32: pop {r4} pop {r0} bx r0 .align 2, 0 _080A5B38: .4byte 0x03004b28 _080A5B3C: .4byte 0x0202f388 thumb_func_end sub_80A5B00 thumb_func_start sub_80A5B40 sub_80A5B40: @ 80A5B40 push {lr} _080A5B42: bl sub_80A317C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A5B68 bl ResetTasks ldr r0, _080A5B60 movs r1, 0 bl CreateTask ldr r1, _080A5B64 strb r0, [r1] b _080A5B74 .align 2, 0 _080A5B60: .4byte sub_80A50C8 _080A5B64: .4byte 0x02038563 _080A5B68: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A5B42 _080A5B74: pop {r0} bx r0 thumb_func_end sub_80A5B40 thumb_func_start sub_80A5B78 sub_80A5B78: @ 80A5B78 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r5, _080A5BB0 ldrh r0, [r5] bl itemid_get_overworld_function cmp r0, 0 beq _080A5BF2 movs r0, 0x5 bl audio_play bl calc_player_party_count lsls r0, 24 cmp r0, 0 bne _080A5BB4 ldrh r0, [r5] bl itemid_get_type lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A5BB4 adds r0, r4, 0 bl sub_80A5BF8 b _080A5BF2 .align 2, 0 _080A5BB0: .4byte 0x0203855e _080A5BB4: ldr r1, _080A5BE0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] ldr r0, _080A5BE4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x3 beq _080A5BEC ldr r0, _080A5BE8 ldrh r0, [r0] bl itemid_get_overworld_function adds r1, r0, 0 adds r0, r4, 0 bl _call_via_r1 b _080A5BF2 .align 2, 0 _080A5BE0: .4byte 0x03004b20 _080A5BE4: .4byte 0x02038559 _080A5BE8: .4byte 0x0203855e _080A5BEC: adds r0, r4, 0 bl sub_80C9C7C _080A5BF2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80A5B78 thumb_func_start sub_80A5BF8 sub_80A5BF8: @ 80A5BF8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80A73FC bl sub_80A7590 ldr r1, _080A5C1C ldr r2, _080A5C20 adds r0, r4, 0 movs r3, 0x1 bl DisplayCannotUseItemMessage pop {r4} pop {r0} bx r0 .align 2, 0 _080A5C1C: .4byte gUnknown_0840E79C _080A5C20: .4byte sub_80A5C48 thumb_func_end sub_80A5BF8 thumb_func_start sub_80A5C24 sub_80A5C24: @ 80A5C24 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl sub_80A7528 adds r0, r4, 0 bl sub_80A41D4 bl sub_80A736C adds r0, r4, 0 bl sub_80A37C0 pop {r4} pop {r0} bx r0 thumb_func_end sub_80A5C24 thumb_func_start sub_80A5C48 sub_80A5C48: @ 80A5C48 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080A5C90 movs r1, 0x1F str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x1F bl sub_80A36B8 movs r0, 0x7 movs r1, 0x7 movs r2, 0xD movs r3, 0xC bl Reset movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl Reset ldr r1, _080A5C94 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080A5C98 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080A5C90: .4byte 0x020219cc _080A5C94: .4byte 0x03004b20 _080A5C98: .4byte sub_80A5C24 thumb_func_end sub_80A5C48 thumb_func_start sub_80A5C9C sub_80A5C9C: @ 80A5C9C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0xD movs r2, 0x1D movs r3, 0x13 bl Reset adds r0, r4, 0 bl DestroyTask bl sub_8064E2C bl script_env_2_disable pop {r4} pop {r0} bx r0 thumb_func_end sub_80A5C9C thumb_func_start sub_80A5CC4 sub_80A5CC4: @ 80A5CC4 push {lr} bl pal_fill_black ldr r0, _080A5CD8 movs r1, 0x8 bl CreateTask pop {r0} bx r0 .align 2, 0 _080A5CD8: .4byte Task_CallItemUseOnFieldCallback thumb_func_end sub_80A5CC4 thumb_func_start Task_CallItemUseOnFieldCallback Task_CallItemUseOnFieldCallback: @ 80A5CDC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A5CF8 ldr r0, _080A5D00 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 _080A5CF8: pop {r4} pop {r0} bx r0 .align 2, 0 _080A5D00: .4byte 0x03005d00 thumb_func_end Task_CallItemUseOnFieldCallback thumb_func_start sub_80A5D04 sub_80A5D04: @ 80A5D04 push {lr} _080A5D06: bl sub_80A317C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A5D28 ldr r0, _080A5D20 movs r1, 0 bl CreateTask ldr r1, _080A5D24 strb r0, [r1] b _080A5D34 .align 2, 0 _080A5D20: .4byte sub_80A50C8 _080A5D24: .4byte 0x02038563 _080A5D28: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A5D06 _080A5D34: pop {r0} bx r0 thumb_func_end sub_80A5D04 thumb_func_start sub_80A5D38 sub_80A5D38: @ 80A5D38 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080A5D70 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xA] ldr r0, _080A5D74 bl sub_80A4DA4 movs r0, 0 bl sub_80A7528 adds r0, r4, 0 bl sub_80A41D4 bl sub_80A736C adds r0, r4, 0 bl sub_80A37C0 pop {r4} pop {r0} bx r0 .align 2, 0 _080A5D70: .4byte 0x03004b20 _080A5D74: .4byte 0x020219cc thumb_func_end sub_80A5D38 thumb_func_start sub_80A5D78 sub_80A5D78: @ 80A5D78 push {lr} sub sp, 0x4 ldr r0, _080A5D9C movs r1, 0x4 str r1, [sp] movs r1, 0x8 movs r2, 0x8 movs r3, 0x5 bl sub_80A4008 movs r0, 0x7 movs r1, 0x7 movs r2, 0x1 bl sub_8072974 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080A5D9C: .4byte 0x020219cc thumb_func_end sub_80A5D78 thumb_func_start sub_80A5DA0 sub_80A5DA0: @ 80A5DA0 push {r4,lr} lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r4, r1, 16 ldr r1, _080A5DC4 bl itemid_copy_name cmp r4, 0x63 bls _080A5DCC ldr r0, _080A5DC8 adds r1, r4, 0 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN b _080A5DD8 .align 2, 0 _080A5DC4: .4byte 0x020231cc _080A5DC8: .4byte 0x020232cc _080A5DCC: ldr r0, _080A5DF0 adds r1, r4, 0 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN _080A5DD8: ldr r0, _080A5DF4 bl sub_80A4DA4 movs r0, 0x5 bl sub_80A7528 bl sub_80A5D78 pop {r4} pop {r0} bx r0 .align 2, 0 _080A5DF0: .4byte 0x020232cc _080A5DF4: .4byte 0x020219cc thumb_func_end sub_80A5DA0 thumb_func_start sub_80A5DF8 sub_80A5DF8: @ 80A5DF8 push {lr} ldr r0, _080A5E18 bl sub_80A4DA4 movs r0, 0x7 movs r1, 0x6 movs r2, 0xB movs r3, 0xD bl Reset movs r0, 0x4 bl sub_80A7528 pop {r0} bx r0 .align 2, 0 _080A5E18: .4byte 0x020219cc thumb_func_end sub_80A5DF8 thumb_func_start sub_80A5E1C sub_80A5E1C: @ 80A5E1C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080A5E58 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080A5E36 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080A5E50 _080A5E36: ldr r0, _080A5E5C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0 strh r0, [r1, 0x1C] adds r0, r4, 0 bl sub_80A41D4 adds r0, r4, 0 bl sub_80A5D38 _080A5E50: pop {r4} pop {r0} bx r0 .align 2, 0 _080A5E58: .4byte 0x03001770 _080A5E5C: .4byte 0x03004b20 thumb_func_end sub_80A5E1C thumb_func_start sub_80A5E60 sub_80A5E60: @ 80A5E60 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80A5DF8 adds r0, r4, 0 bl sub_80A3D5C ldr r1, _080A5E88 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080A5E8C str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080A5E88: .4byte 0x03004b20 _080A5E8C: .4byte sub_80A5E1C thumb_func_end sub_80A5E60 thumb_func_start sub_80A5E90 sub_80A5E90: @ 80A5E90 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80A5D38 pop {r0} bx r0 thumb_func_end sub_80A5E90 thumb_func_start sub_80A5EA0 sub_80A5EA0: @ 80A5EA0 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 adds r0, r4, 0 bl sub_80A5350 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080A5F0C ldr r0, _080A5EE8 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080A5EF8 movs r0, 0x5 bl audio_play ldr r0, _080A5EEC ldrh r0, [r0] ldr r2, _080A5EF0 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r2 ldrh r1, [r1, 0xA] bl sub_80A5DA0 ldr r1, _080A5EF4 adds r0, r4, 0 bl sub_80F914C b _080A5F0C .align 2, 0 _080A5EE8: .4byte 0x03001770 _080A5EEC: .4byte 0x0203855e _080A5EF0: .4byte 0x03004b20 _080A5EF4: .4byte gUnknown_083C16F4 _080A5EF8: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080A5F0C movs r0, 0x5 bl audio_play adds r0, r5, 0 bl sub_80A5D38 _080A5F0C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80A5EA0 thumb_func_start sub_80A5F14 sub_80A5F14: @ 80A5F14 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x5 bl audio_play ldr r1, _080A5F58 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080A5F5C str r1, [r0] movs r0, 0x3 bl sub_80A7528 ldr r0, _080A5F60 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x3 bne _080A5F64 movs r0, 0x3 str r0, [sp] str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0x6 movs r2, 0x9 movs r3, 0x7 bl sub_80A4DD8 b _080A5F78 .align 2, 0 _080A5F58: .4byte 0x03004b20 _080A5F5C: .4byte sub_80A5EA0 _080A5F60: .4byte 0x02038559 _080A5F64: movs r0, 0x3 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0x7 movs r2, 0x9 movs r3, 0x6 bl sub_80A4DD8 _080A5F78: add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_80A5F14 thumb_func_start sub_80A5F80 sub_80A5F80: @ 80A5F80 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl audio_play movs r0, 0 bl sub_80A7528 adds r0, r4, 0 bl sub_80A41D4 bl sub_80A736C adds r0, r4, 0 bl sub_80A37C0 pop {r4} pop {r0} bx r0 thumb_func_end sub_80A5F80 thumb_func_start sub_80A5FAC sub_80A5FAC: @ 80A5FAC push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r0, 0x5 bl audio_play ldr r0, _080A5FD0 ldr r1, _080A5FD4 adds r4, r0, r1 ldr r5, _080A5FD8 ldrh r0, [r4] ldrh r1, [r5] cmp r0, r1 bne _080A5FDC bl sub_80A40D0 movs r0, 0 b _080A5FE2 .align 2, 0 _080A5FD0: .4byte 0x02025734 _080A5FD4: .4byte 0x00000496 _080A5FD8: .4byte 0x0203855e _080A5FDC: bl sub_80A413C ldrh r0, [r5] _080A5FE2: strh r0, [r4] movs r0, 0 bl sub_80A7528 adds r0, r6, 0 bl sub_80A41D4 bl sub_80A736C adds r0, r6, 0 bl sub_80A37C0 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80A5FAC thumb_func_start sub_80A6000 sub_80A6000: @ 80A6000 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl sub_80A7528 adds r0, r4, 0 bl sub_80A41D4 bl sub_80A736C adds r0, r4, 0 bl sub_80A37C0 pop {r4} pop {r0} bx r0 thumb_func_end sub_80A6000 thumb_func_start sub_80A6024 sub_80A6024: @ 80A6024 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080A606C ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080A6062 ldr r0, _080A6070 movs r1, 0x1F str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x1F bl sub_80A36B8 movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl Reset ldr r1, _080A6074 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080A6078 str r1, [r0] _080A6062: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080A606C: .4byte 0x03001770 _080A6070: .4byte 0x020219cc _080A6074: .4byte 0x03004b20 _080A6078: .4byte sub_80A6000 thumb_func_end sub_80A6024 thumb_func_start DisplayCannotDismountBikeMessage DisplayCannotDismountBikeMessage: @ 80A607C push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80A73FC ldr r0, _080A60B4 ldrh r0, [r0] ldr r1, _080A60B8 bl itemid_copy_name ldr r5, _080A60BC ldr r1, _080A60C0 adds r0, r5, 0 bl StringExpandPlaceholders bl sub_80A7590 ldr r2, _080A60C4 adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x1 bl DisplayCannotUseItemMessage pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A60B4: .4byte 0x0203855e _080A60B8: .4byte 0x020231cc _080A60BC: .4byte 0x020234cc _080A60C0: .4byte gUnknown_0840E7CB _080A60C4: .4byte sub_80A6024 thumb_func_end DisplayCannotDismountBikeMessage thumb_func_start ItemMenu_Give ItemMenu_Give: @ 80A60C8 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 movs r0, 0x5 bl audio_play ldr r5, _080A60FC ldrh r0, [r5] bl sub_80F931C lsls r0, 24 cmp r0, 0 bne _080A6108 bl sub_80A73FC bl sub_80A7590 ldr r1, _080A6100 ldr r2, _080A6104 adds r0, r4, 0 movs r3, 0x1 bl DisplayCannotUseItemMessage b _080A616E .align 2, 0 _080A60FC: .4byte 0x0203855e _080A6100: .4byte gUnknown_0840E781 _080A6104: .4byte sub_80A6024 _080A6108: ldrh r0, [r5] bl itemid_is_unique lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _080A6168 bl calc_player_party_count lsls r0, 24 cmp r0, 0 bne _080A6128 adds r0, r4, 0 bl sub_80A5BF8 b _080A616E _080A6128: ldr r1, _080A6158 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r2, _080A615C lsrs r1, r2, 16 strh r1, [r0, 0x18] strh r2, [r0, 0x1A] ldr r1, _080A6160 str r1, [r0] ldr r1, _080A6164 movs r0, 0x1 strb r0, [r1] movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _080A616E .align 2, 0 _080A6158: .4byte 0x03004b20 _080A615C: .4byte sub_808B020 _080A6160: .4byte sub_80A5B00 _080A6164: .4byte 0x02038561 _080A6168: adds r0, r6, 0 bl DisplayCannotDismountBikeMessage _080A616E: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end ItemMenu_Give thumb_func_start sub_80A6178 sub_80A6178: @ 80A6178 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_80A5AE4 ldr r1, _080A61A0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r2, _080A61A4 lsrs r1, r2, 16 strh r1, [r0, 0x18] strh r2, [r0, 0x1A] pop {r4} pop {r0} bx r0 .align 2, 0 _080A61A0: .4byte 0x03004b20 _080A61A4: .4byte sub_814625C thumb_func_end sub_80A6178 thumb_func_start sub_80A61A8 sub_80A61A8: @ 80A61A8 push {lr} bl sub_80A34B4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A61C2 ldr r0, _080A61C8 movs r1, 0 bl CreateTask ldr r1, _080A61CC strb r0, [r1] _080A61C2: pop {r0} bx r0 .align 2, 0 _080A61C8: .4byte sub_80A50C8 _080A61CC: .4byte 0x02038563 thumb_func_end sub_80A61A8 thumb_func_start sub_80A61D0 sub_80A61D0: @ 80A61D0 push {lr} ldr r0, _080A61E4 movs r1, 0x2 strb r1, [r0] ldr r0, _080A61E8 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _080A61E4: .4byte 0x03000701 _080A61E8: .4byte sub_80A61A8 thumb_func_end sub_80A61D0 thumb_func_start sub_80A61EC sub_80A61EC: @ 80A61EC push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080A620C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r3, _080A6210 lsrs r2, r3, 16 strh r2, [r1, 0x18] strh r3, [r1, 0x1A] bl sub_80A5AE4 pop {r0} bx r0 .align 2, 0 _080A620C: .4byte 0x03004b20 _080A6210: .4byte sub_808A3F8 thumb_func_end sub_80A61EC thumb_func_start sub_80A6214 sub_80A6214: @ 80A6214 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080A6244 ldrb r0, [r0] adds r0, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldr r4, _080A6248 ldrh r0, [r4] bl sub_80F931C lsls r0, 24 cmp r0, 0 bne _080A6254 bl sub_80A73FC bl sub_80A7590 ldr r1, _080A624C ldr r2, _080A6250 adds r0, r5, 0 b _080A6280 .align 2, 0 _080A6244: .4byte 0x02038559 _080A6248: .4byte 0x0203855e _080A624C: .4byte gUnknown_0840E781 _080A6250: .4byte sub_80A6024 _080A6254: ldrh r0, [r4] bl sub_80F92F4 lsls r0, 24 cmp r0, 0 bne _080A6298 bl sub_80A73FC ldrh r0, [r4] ldr r1, _080A6288 bl itemid_copy_name ldr r4, _080A628C ldr r1, _080A6290 adds r0, r4, 0 bl StringExpandPlaceholders bl sub_80A7590 ldr r2, _080A6294 adds r0, r5, 0 adds r1, r4, 0 _080A6280: movs r3, 0x1 bl DisplayCannotUseItemMessage b _080A62D2 .align 2, 0 _080A6288: .4byte 0x020231cc _080A628C: .4byte 0x020234cc _080A6290: .4byte gUnknown_0840E7DD _080A6294: .4byte sub_80A6024 _080A6298: cmp r6, 0x5 beq _080A62CC ldrh r0, [r4] bl itemid_is_unique lsls r0, 24 cmp r0, 0 bne _080A62CC ldr r1, _080A62C4 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r2, _080A62C8 lsrs r1, r2, 16 strh r1, [r0, 0x18] strh r2, [r0, 0x1A] adds r0, r5, 0 bl sub_80A5AAC b _080A62D2 .align 2, 0 _080A62C4: .4byte 0x03004b20 _080A62C8: .4byte sub_808A3F8 _080A62CC: adds r0, r5, 0 bl DisplayCannotDismountBikeMessage _080A62D2: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80A6214 thumb_func_start sub_80A62D8 sub_80A62D8: @ 80A62D8 push {lr} bl sub_80A34B4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A62F2 ldr r0, _080A62F8 movs r1, 0 bl CreateTask ldr r1, _080A62FC strb r0, [r1] _080A62F2: pop {r0} bx r0 .align 2, 0 _080A62F8: .4byte sub_80A50C8 _080A62FC: .4byte 0x02038563 thumb_func_end sub_80A62D8 thumb_func_start sub_80A6300 sub_80A6300: @ 80A6300 push {lr} ldr r0, _080A6314 movs r1, 0x3 strb r1, [r0] ldr r0, _080A6318 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _080A6314: .4byte 0x03000701 _080A6318: .4byte sub_80A62D8 thumb_func_end sub_80A6300 thumb_func_start sub_80A631C sub_80A631C: @ 80A631C push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080A6344 ldr r1, _080A6348 str r1, [r2] ldr r2, _080A634C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r3, _080A6350 lsrs r2, r3, 16 strh r2, [r1, 0x18] strh r3, [r1, 0x1A] bl sub_80A5AE4 pop {r0} bx r0 .align 2, 0 _080A6344: .4byte 0x0300485c _080A6348: .4byte sub_80B3050 _080A634C: .4byte 0x03004b20 _080A6350: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_80A631C thumb_func_start sub_80A6354 sub_80A6354: @ 80A6354 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl sub_80A7590 ldr r0, _080A63C4 lsls r2, r5, 2 adds r2, r5 lsls r2, 3 adds r2, r0 ldr r4, _080A63C8 ldr r3, _080A63CC movs r0, 0 ldrsb r0, [r3, r0] lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x1] ldrb r0, [r0] adds r1, r0 adds r1, 0x1 strh r1, [r2, 0x1C] movs r0, 0 ldrsb r0, [r3, r0] lsls r0, 2 adds r0, r4 ldrb r2, [r0] adds r0, r5, 0 adds r1, r2, 0 bl sub_80A48E8 bl sub_80A73FC ldr r4, _080A63D0 ldrh r0, [r4] ldr r1, _080A63D4 bl itemid_copy_name ldrh r0, [r4] bl itemid_get_market_price lsls r0, 16 cmp r0, 0 bne _080A63E4 ldr r4, _080A63D8 ldr r1, _080A63DC adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _080A63E0 adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl DisplayCannotUseItemMessage b _080A63FA .align 2, 0 _080A63C4: .4byte 0x03004b20 _080A63C8: .4byte 0x03005d10 _080A63CC: .4byte 0x02038559 _080A63D0: .4byte 0x0203855e _080A63D4: .4byte 0x020232cc _080A63D8: .4byte 0x020234cc _080A63DC: .4byte gUnknown_0840EEA4 _080A63E0: .4byte sub_80A6444 _080A63E4: ldr r4, _080A6400 ldr r1, _080A6404 adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _080A6408 adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl DisplayCannotUseItemMessage _080A63FA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A6400: .4byte 0x020234cc _080A6404: .4byte gUnknown_0840EEC4 _080A6408: .4byte sub_80A648C thumb_func_end sub_80A6354 thumb_func_start sub_80A640C sub_80A640C: @ 80A640C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080A6440 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] movs r0, 0 bl sub_80A7528 adds r0, r4, 0 bl sub_80A41D4 bl sub_80A736C adds r0, r4, 0 bl sub_80A37C0 pop {r4} pop {r0} bx r0 .align 2, 0 _080A6440: .4byte 0x03004b20 thumb_func_end sub_80A640C thumb_func_start sub_80A6444 sub_80A6444: @ 80A6444 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080A6480 movs r1, 0x1F str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x1F bl sub_80A36B8 movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl Reset ldr r1, _080A6484 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080A6488 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080A6480: .4byte 0x020219cc _080A6484: .4byte 0x03004b20 _080A6488: .4byte sub_80A640C thumb_func_end sub_80A6444 thumb_func_start sub_80A648C sub_80A648C: @ 80A648C push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r1, _080A64E8 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldr r0, _080A64EC str r0, [r4] ldr r0, _080A64F0 movs r5, 0x2 str r5, [sp] movs r1, 0x1 movs r2, 0xB movs r3, 0xC bl sub_80A4008 movs r0, 0 movs r1, 0xA movs r2, 0xD movs r3, 0xD bl DrawDefaultWindow movs r0, 0x1 strh r0, [r4, 0xA] strh r0, [r4, 0xC] movs r0, 0xB strh r0, [r4, 0xE] ldr r0, _080A64F4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x3 bne _080A64F8 movs r0, 0x3 str r0, [sp] movs r0, 0x1 movs r1, 0x1 movs r2, 0x1 movs r3, 0xB bl sub_80A418C b _080A6506 .align 2, 0 _080A64E8: .4byte 0x03004b20 _080A64EC: .4byte Task_BuyHowManyDialogueHandleInput _080A64F0: .4byte 0x020219cc _080A64F4: .4byte 0x02038559 _080A64F8: str r5, [sp] movs r0, 0x1 movs r1, 0x1 movs r2, 0x1 movs r3, 0xB bl sub_80A418C _080A6506: ldr r0, _080A651C ldrh r0, [r0] movs r1, 0x1 bl BuyMenuDisplayMessage bl sub_80A683C add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A651C: .4byte 0x0203855e thumb_func_end sub_80A648C thumb_func_start sub_80A6520 sub_80A6520: @ 80A6520 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080A6544 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080A653E movs r0, 0x5 bl audio_play adds r0, r4, 0 bl BuyMenuPrintItemQuantityAndPrice _080A653E: pop {r4} pop {r0} bx r0 .align 2, 0 _080A6544: .4byte 0x03001770 thumb_func_end sub_80A6520 thumb_func_start sub_80A6548 sub_80A6548: @ 80A6548 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_80A48F8 ldr r1, _080A656C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080A6570 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080A656C: .4byte 0x03004b20 _080A6570: .4byte sub_80A6520 thumb_func_end sub_80A6548 thumb_func_start sub_80A6574 sub_80A6574: @ 80A6574 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0x5F bl audio_play ldr r0, _080A65A0 ldrh r0, [r0] ldr r1, _080A65A4 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r1 ldrb r1, [r4, 0xA] bl sub_80A6870 ldr r0, _080A65A8 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A65A0: .4byte 0x0203855e _080A65A4: .4byte 0x03004b20 _080A65A8: .4byte sub_80A6548 thumb_func_end sub_80A6574 thumb_func_start sub_80A65AC sub_80A65AC: @ 80A65AC push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0x7 movs r1, 0x6 movs r2, 0xD movs r3, 0xC bl Reset ldr r0, _080A6600 movs r1, 0x6 str r1, [sp] movs r1, 0x7 movs r2, 0x6 movs r3, 0x6 bl sub_80A36B8 ldr r0, _080A6604 ldrh r0, [r0] ldr r1, _080A6608 bl itemid_copy_name ldr r4, _080A660C ldr r1, _080A6610 adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _080A6614 adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl DisplayCannotUseItemMessage adds r0, r5, 0 bl sub_80A3D5C add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A6600: .4byte 0x020219cc _080A6604: .4byte 0x0203855e _080A6608: .4byte 0x020232cc _080A660C: .4byte 0x020234cc _080A6610: .4byte gUnknown_0840EF0C _080A6614: .4byte sub_80A6574 thumb_func_end sub_80A65AC thumb_func_start sub_80A6618 sub_80A6618: @ 80A6618 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x7 movs r1, 0x6 movs r2, 0xD movs r3, 0xC bl Reset ldr r0, _080A664C movs r1, 0x6 str r1, [sp] movs r1, 0x7 movs r2, 0x6 movs r3, 0x6 bl sub_80A36B8 adds r0, r4, 0 bl BuyMenuPrintItemQuantityAndPrice add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080A664C: .4byte 0x020219cc thumb_func_end sub_80A6618 thumb_func_start sub_80A6650 sub_80A6650: @ 80A6650 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80A5D78 ldr r1, _080A666C adds r0, r4, 0 bl sub_80F914C pop {r4} pop {r0} bx r0 .align 2, 0 _080A666C: .4byte gUnknown_083C16FC thumb_func_end sub_80A6650 thumb_func_start Task_BuyHowManyDialogueHandleInput Task_BuyHowManyDialogueHandleInput: @ 80A6670 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 adds r4, r5, 0 adds r0, r5, 0 bl sub_80A5350 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A66B4 movs r0, 0x6 movs r1, 0xB movs r2, 0xC movs r3, 0xB bl Reset ldr r0, _080A66AC ldrh r0, [r0] ldr r2, _080A66B0 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r2 ldrh r1, [r1, 0xA] bl BuyMenuDisplayMessage b _080A6758 .align 2, 0 _080A66AC: .4byte 0x0203855e _080A66B0: .4byte 0x03004b20 _080A66B4: ldr r0, _080A6724 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080A6744 movs r0, 0x5 bl audio_play movs r0, 0 movs r1, 0xA movs r2, 0xD movs r3, 0xD bl Reset ldr r0, _080A6728 movs r1, 0x3 str r1, [sp] movs r1, 0 movs r2, 0xA movs r3, 0xD bl sub_80A36B8 ldr r4, _080A672C ldr r0, _080A6730 ldrh r0, [r0] bl itemid_get_market_price lsls r0, 16 lsrs r0, 17 ldr r2, _080A6734 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r2 movs r2, 0xA ldrsh r1, [r1, r2] muls r1, r0 adds r0, r4, 0 movs r2, 0 movs r3, 0x6 bl ConvertIntToDecimalStringN ldr r4, _080A6738 ldr r1, _080A673C adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _080A6740 adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl DisplayCannotUseItemMessage b _080A6758 .align 2, 0 _080A6724: .4byte 0x03001770 _080A6728: .4byte 0x020219cc _080A672C: .4byte 0x020231cc _080A6730: .4byte 0x0203855e _080A6734: .4byte 0x03004b20 _080A6738: .4byte 0x020234cc _080A673C: .4byte gUnknown_0840EEE9 _080A6740: .4byte sub_80A6650 _080A6744: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080A6758 movs r0, 0x5 bl audio_play adds r0, r4, 0 bl BuyMenuPrintItemQuantityAndPrice _080A6758: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end Task_BuyHowManyDialogueHandleInput thumb_func_start sub_80A6760 sub_80A6760: @ 80A6760 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080A6794 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] movs r0, 0 bl sub_80A7528 adds r0, r4, 0 bl sub_80A41D4 bl sub_80A736C adds r0, r4, 0 bl sub_80A37C0 pop {r4} pop {r0} bx r0 .align 2, 0 _080A6794: .4byte 0x03004b20 thumb_func_end sub_80A6760 thumb_func_start BuyMenuPrintItemQuantityAndPrice BuyMenuPrintItemQuantityAndPrice: @ 80A6798 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080A67E8 movs r1, 0x1F str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x1F bl sub_80A36B8 movs r0, 0 movs r1, 0 bl RemoveMoneyLabelObject movs r0, 0 movs r1, 0x4 movs r2, 0xD movs r3, 0xD bl Reset movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl Reset ldr r1, _080A67EC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080A67F0 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080A67E8: .4byte 0x020219cc _080A67EC: .4byte 0x03004b20 _080A67F0: .4byte sub_80A6760 thumb_func_end BuyMenuPrintItemQuantityAndPrice thumb_func_start BuyMenuDisplayMessage BuyMenuDisplayMessage: @ 80A67F4 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 bl itemid_get_market_price lsls r0, 16 lsrs r0, 17 muls r0, r5 movs r1, 0x6 movs r2, 0x6 movs r3, 0xB bl sub_80B7A94 ldr r6, _080A6838 adds r0, r4, 0 bl itemid_get_market_price lsls r0, 16 lsrs r0, 17 adds r1, r0, 0 muls r1, r5 adds r0, r6, 0 movs r2, 0 movs r3, 0x6 bl ConvertIntToDecimalStringN pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A6838: .4byte 0x020231cc thumb_func_end BuyMenuDisplayMessage thumb_func_start sub_80A683C sub_80A683C: @ 80A683C push {lr} sub sp, 0x4 ldr r0, _080A6868 movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] movs r1, 0 movs r2, 0 bl sub_80B7C14 ldr r0, _080A686C movs r1, 0x2 str r1, [sp] movs r1, 0x1 movs r2, 0x1 movs r3, 0xC bl sub_80A4008 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080A6868: .4byte 0x02025734 _080A686C: .4byte 0x020219cc thumb_func_end sub_80A683C thumb_func_start sub_80A6870 sub_80A6870: @ 80A6870 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 16 lsrs r0, 16 lsls r4, 24 lsrs r4, 24 ldr r5, _080A68A0 bl itemid_get_market_price lsls r0, 16 lsrs r0, 17 adds r1, r0, 0 muls r1, r4 adds r0, r5, 0 bl sub_80B79B8 ldr r0, [r5] movs r1, 0 movs r2, 0 bl sub_80B7BEC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A68A0: .4byte 0x02025bc4 thumb_func_end sub_80A6870 thumb_func_start sub_80A68A4 sub_80A68A4: @ 80A68A4 push {lr} bl sub_80A34B4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A68BE ldr r0, _080A68C4 movs r1, 0 bl CreateTask ldr r1, _080A68C8 strb r0, [r1] _080A68BE: pop {r0} bx r0 .align 2, 0 _080A68C4: .4byte sub_80A50C8 _080A68C8: .4byte 0x02038563 thumb_func_end sub_80A68A4 thumb_func_start sub_80A68CC sub_80A68CC: @ 80A68CC push {lr} ldr r1, _080A68E4 movs r0, 0x3 strb r0, [r1] ldr r1, _080A68E8 movs r0, 0x4 strb r0, [r1] ldr r0, _080A68EC bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _080A68E4: .4byte 0x02038559 _080A68E8: .4byte 0x03000701 _080A68EC: .4byte sub_80A68A4 thumb_func_end sub_80A68CC thumb_func_start sub_80A68F0 sub_80A68F0: @ 80A68F0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080A6910 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r3, _080A6914 lsrs r2, r3, 16 strh r2, [r1, 0x18] strh r3, [r1, 0x1A] bl sub_80A5AE4 pop {r0} bx r0 .align 2, 0 _080A6910: .4byte 0x03004b20 _080A6914: .4byte sub_80546B8 thumb_func_end sub_80A68F0 thumb_func_start sub_80A6918 sub_80A6918: @ 80A6918 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080A6938 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r3, _080A693C lsrs r2, r3, 16 strh r2, [r1, 0x18] strh r3, [r1, 0x1A] bl sub_80A5AAC pop {r0} bx r0 .align 2, 0 _080A6938: .4byte 0x03004b20 _080A693C: .4byte sub_80546B8 thumb_func_end sub_80A6918 thumb_func_start sub_80A6940 sub_80A6940: @ 80A6940 push {lr} _080A6942: bl sub_80A317C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A6968 ldr r0, _080A6960 movs r1, 0 bl CreateTask ldr r1, _080A6964 strb r0, [r1] bl sub_80A699C b _080A6974 .align 2, 0 _080A6960: .4byte sub_80A50C8 _080A6964: .4byte 0x02038563 _080A6968: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A6942 _080A6974: pop {r0} bx r0 thumb_func_end sub_80A6940 thumb_func_start sub_80A6978 sub_80A6978: @ 80A6978 push {lr} ldr r1, _080A6990 movs r0, 0x3 strb r0, [r1] ldr r1, _080A6994 movs r0, 0x5 strb r0, [r1] ldr r0, _080A6998 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _080A6990: .4byte 0x02038559 _080A6994: .4byte 0x03000701 _080A6998: .4byte sub_80A6940 thumb_func_end sub_80A6978 thumb_func_start sub_80A699C sub_80A699C: @ 80A699C ldr r1, _080A69AC ldr r0, _080A69B0 str r0, [r1] ldr r1, _080A69B4 movs r0, 0x4 strb r0, [r1] bx lr .align 2, 0 _080A69AC: .4byte 0x03000704 _080A69B0: .4byte gUnknown_083C16B8 _080A69B4: .4byte 0x02038564 thumb_func_end sub_80A699C thumb_func_start sub_80A69B8 sub_80A69B8: @ 80A69B8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080A69D8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r3, _080A69DC lsrs r2, r3, 16 strh r2, [r1, 0x18] strh r3, [r1, 0x1A] bl sub_80A5AE4 pop {r0} bx r0 .align 2, 0 _080A69D8: .4byte 0x03004b20 _080A69DC: .4byte sub_804E990 thumb_func_end sub_80A69B8 thumb_func_start sub_80A69E0 sub_80A69E0: @ 80A69E0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080A6A00 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r3, _080A6A04 lsrs r2, r3, 16 strh r2, [r1, 0x18] strh r3, [r1, 0x1A] bl sub_80A5AAC pop {r0} bx r0 .align 2, 0 _080A6A00: .4byte 0x03004b20 _080A6A04: .4byte sub_804E990 thumb_func_end sub_80A69E0 thumb_func_start sub_80A6A08 sub_80A6A08: @ 80A6A08 push {lr} bl sub_80A34B4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A6A22 ldr r0, _080A6A28 movs r1, 0 bl CreateTask ldr r1, _080A6A2C strb r0, [r1] _080A6A22: pop {r0} bx r0 .align 2, 0 _080A6A28: .4byte sub_80A50C8 _080A6A2C: .4byte 0x02038563 thumb_func_end sub_80A6A08 thumb_func_start sub_80A6A30 sub_80A6A30: @ 80A6A30 push {lr} ldr r0, _080A6A44 movs r1, 0x6 strb r1, [r0] ldr r0, _080A6A48 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _080A6A44: .4byte 0x03000701 _080A6A48: .4byte sub_80A6A08 thumb_func_end sub_80A6A30 thumb_func_start sub_80A6A4C sub_80A6A4C: @ 80A6A4C push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080A6A74 ldr r1, _080A6A78 str r1, [r2] ldr r2, _080A6A7C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r3, _080A6A80 lsrs r2, r3, 16 strh r2, [r1, 0x18] strh r3, [r1, 0x1A] bl sub_80A5AE4 pop {r0} bx r0 .align 2, 0 _080A6A74: .4byte 0x0300485c _080A6A78: .4byte sub_813A0F8 _080A6A7C: .4byte 0x03004b20 _080A6A80: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_80A6A4C thumb_func_start sub_80A6A84 sub_80A6A84: @ 80A6A84 push {r4-r6,lr} mov r6, r8 push {r6} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 ldr r6, _080A6AE8 adds r0, r4, r6 mov r8, r0 ldr r0, _080A6AEC bl sub_80A4DA4 ldr r0, _080A6AF0 ldrh r0, [r0] ldr r1, _080A6AF4 bl itemid_copy_name ldr r0, _080A6AF8 mov r2, r8 movs r3, 0x2 ldrsh r1, [r2, r3] movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN movs r0, 0x7 movs r1, 0x6 movs r2, 0xB movs r3, 0xD bl Reset movs r0, 0x7 bl sub_80A7528 adds r0, r5, 0 bl sub_80A3D5C subs r6, 0x8 adds r4, r6 ldr r0, _080A6AFC str r0, [r4] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A6AE8: .4byte 0x03004b28 _080A6AEC: .4byte 0x020219cc _080A6AF0: .4byte 0x0203855e _080A6AF4: .4byte 0x020231cc _080A6AF8: .4byte 0x020232cc _080A6AFC: .4byte sub_80A5E1C thumb_func_end sub_80A6A84 thumb_func_start sub_80A6B00 sub_80A6B00: @ 80A6B00 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080A6B54 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080A6B1A movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080A6B4C _080A6B1A: ldr r1, _080A6B58 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] ldr r1, _080A6B5C ldr r0, _080A6B60 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r2, [r0] adds r0, r4, 0 adds r1, r2, 0 bl sub_80A48E8 movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_80A5D38 _080A6B4C: pop {r4} pop {r0} bx r0 .align 2, 0 _080A6B54: .4byte 0x03001770 _080A6B58: .4byte 0x03004b20 _080A6B5C: .4byte 0x03005d10 _080A6B60: .4byte 0x02038559 thumb_func_end sub_80A6B00 thumb_func_start sub_80A6B64 sub_80A6B64: @ 80A6B64 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r5, r0, 3 ldr r6, _080A6B9C adds r7, r5, r6 ldr r0, _080A6BA0 mov r8, r0 ldrh r0, [r0] bl itemid_is_unique lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _080A6BA8 adds r0, r6, 0 subs r0, 0x8 adds r0, r5, r0 ldr r1, _080A6BA4 str r1, [r0] movs r0, 0x9 bl sub_80A7528 b _080A6BD2 .align 2, 0 _080A6B9C: .4byte 0x03004b28 _080A6BA0: .4byte 0x0203855e _080A6BA4: .4byte sub_80A6B00 _080A6BA8: mov r1, r8 ldrh r0, [r1] ldrh r1, [r7, 0x2] bl sub_80A9760 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A6BC2 adds r0, r4, 0 bl sub_80A6A84 b _080A6BD2 _080A6BC2: adds r0, r6, 0 subs r0, 0x8 adds r0, r5, r0 ldr r1, _080A6BDC str r1, [r0] movs r0, 0x8 bl sub_80A7528 _080A6BD2: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A6BDC: .4byte sub_80A6B00 thumb_func_end sub_80A6B64 thumb_func_start sub_80A6BE0 sub_80A6BE0: @ 80A6BE0 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 adds r0, r4, 0 bl sub_80A5350 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080A6C58 ldr r0, _080A6C18 ldrh r1, [r0, 0x2E] movs r2, 0x1 ands r2, r1 cmp r2, 0 beq _080A6C20 movs r0, 0x5 bl audio_play ldr r0, _080A6C1C bl sub_80A4DA4 adds r0, r4, 0 bl sub_80A6B64 b _080A6C58 .align 2, 0 _080A6C18: .4byte 0x03001770 _080A6C1C: .4byte 0x020219cc _080A6C20: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080A6C58 ldr r1, _080A6C60 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x1C] ldr r1, _080A6C64 ldr r0, _080A6C68 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r2, [r0] adds r0, r5, 0 adds r1, r2, 0 bl sub_80A48E8 movs r0, 0x5 bl audio_play adds r0, r5, 0 bl sub_80A5D38 _080A6C58: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A6C60: .4byte 0x03004b20 _080A6C64: .4byte 0x03005d10 _080A6C68: .4byte 0x02038559 thumb_func_end sub_80A6BE0 thumb_func_start sub_80A6C6C sub_80A6C6C: @ 80A6C6C push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080A6CE4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r5, r0, r1 ldr r2, _080A6CE8 ldr r6, _080A6CEC movs r0, 0 ldrsb r0, [r6, r0] lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1] ldrb r0, [r0] adds r1, r0 adds r1, 0x1 strh r1, [r5, 0x1C] movs r0, 0 ldrsb r0, [r6, r0] lsls r0, 2 adds r0, r2 ldrb r2, [r0] adds r0, r4, 0 adds r1, r2, 0 bl sub_80A48E8 bl sub_80A73FC movs r0, 0x5 bl audio_play bl sub_80A7590 movs r0, 0 ldrsb r0, [r6, r0] cmp r0, 0x4 beq _080A6D0A ldr r0, _080A6CF0 str r0, [r5] movs r0, 0x6 bl sub_80A7528 movs r0, 0 ldrsb r0, [r6, r0] cmp r0, 0x3 bne _080A6CF4 movs r0, 0x3 str r0, [sp] str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0x6 movs r2, 0x9 movs r3, 0x7 bl sub_80A4DD8 b _080A6D14 .align 2, 0 _080A6CE4: .4byte 0x03004b20 _080A6CE8: .4byte 0x03005d10 _080A6CEC: .4byte 0x02038559 _080A6CF0: .4byte sub_80A6BE0 _080A6CF4: movs r0, 0x3 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0x7 movs r2, 0x9 movs r3, 0x6 bl sub_80A4DD8 b _080A6D14 _080A6D0A: movs r0, 0x1 strh r0, [r5, 0xA] adds r0, r4, 0 bl sub_80A6B64 _080A6D14: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80A6C6C thumb_func_start sub_80A6D1C sub_80A6D1C: @ 80A6D1C push {r4,r5,lr} bl HideMapNamePopUpWindow ldr r0, _080A6D70 ldr r1, _080A6D74 adds r4, r0, r1 ldrh r0, [r4] cmp r0, 0 beq _080A6D84 movs r1, 0x1 bl sub_80A92D4 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bne _080A6D80 bl script_env_2_enable bl player_bitmagic bl sub_80594C0 bl sub_80597F4 ldr r1, _080A6D78 ldrh r0, [r4] strh r0, [r1] ldrh r0, [r4] bl itemid_get_overworld_function movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080A6D7C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r5, [r1, 0xC] b _080A6D8A .align 2, 0 _080A6D70: .4byte 0x02025734 _080A6D74: .4byte 0x00000496 _080A6D78: .4byte 0x0203855e _080A6D7C: .4byte 0x03004b20 _080A6D80: movs r0, 0 strh r0, [r4] _080A6D84: ldr r0, _080A6D94 bl script_env_1_execute_new_script _080A6D8A: movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080A6D94: .4byte Event_NoRegisteredItem thumb_func_end sub_80A6D1C thumb_func_start sub_80A6D98 sub_80A6D98: @ 80A6D98 push {lr} _080A6D9A: bl sub_80A317C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A6DBC ldr r0, _080A6DB4 movs r1, 0 bl CreateTask ldr r1, _080A6DB8 strb r0, [r1] b _080A6DC8 .align 2, 0 _080A6DB4: .4byte sub_80A50C8 _080A6DB8: .4byte 0x02038563 _080A6DBC: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A6D9A _080A6DC8: pop {r0} bx r0 thumb_func_end sub_80A6D98 thumb_func_start sub_80A6DCC sub_80A6DCC: @ 80A6DCC push {lr} ldr r1, _080A6DE4 movs r0, 0 strb r0, [r1] ldr r1, _080A6DE8 movs r0, 0x1 strb r0, [r1] ldr r0, _080A6DEC bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _080A6DE4: .4byte 0x03000700 _080A6DE8: .4byte 0x03000701 _080A6DEC: .4byte sub_80A6D98 thumb_func_end sub_80A6DCC thumb_func_start sub_80A6DF0 sub_80A6DF0: @ 80A6DF0 push {r4-r6,lr} sub sp, 0x8 adds r5, r0, 0 ldr r4, _080A6E4C ldrb r0, [r4] subs r0, 0x1 lsls r0, 25 lsrs r6, r0, 24 movs r1, 0x9 subs r1, r6 lsls r1, 24 lsrs r1, 24 movs r0, 0x7 movs r2, 0xD movs r3, 0xC bl DrawDefaultWindow movs r2, 0xA subs r2, r6 lsls r2, 24 lsrs r2, 24 adds r0, r6, 0x2 lsls r0, 24 lsrs r0, 24 str r0, [sp] adds r0, r5, 0 movs r1, 0x8 movs r3, 0x5 bl sub_80A4008 ldrb r0, [r4] cmp r0, 0x1 bne _080A6E58 ldr r1, _080A6E50 ldr r0, _080A6E54 ldr r0, [r0] ldrb r0, [r0] lsls r0, 3 adds r0, r1 ldr r0, [r0] movs r1, 0x8 movs r2, 0xA bl Print b _080A6E80 .align 2, 0 _080A6E4C: .4byte 0x02038564 _080A6E50: .4byte gUnknown_083C1640 _080A6E54: .4byte 0x03000704 _080A6E58: ldr r5, _080A6EAC ldr r4, _080A6EB0 ldr r0, [r4] ldrb r0, [r0] lsls r0, 3 adds r0, r5 ldr r0, [r0] movs r1, 0x8 movs r2, 0x8 bl Print ldr r0, [r4] ldrb r0, [r0, 0x1] lsls r0, 3 adds r0, r5 ldr r0, [r0] movs r1, 0x8 movs r2, 0xA bl Print _080A6E80: movs r2, 0xA subs r2, r6 lsls r2, 24 lsrs r2, 24 ldr r0, _080A6EB4 ldrb r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x5 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x8 bl InitMenu movs r0, 0x2 bl sub_80A7528 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A6EAC: .4byte gUnknown_083C1640 _080A6EB0: .4byte 0x03000704 _080A6EB4: .4byte 0x02038564 thumb_func_end sub_80A6DF0 thumb_func_start sub_80A6EB8 sub_80A6EB8: @ 80A6EB8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 ldr r2, _080A6EE0 ldrh r0, [r2, 0x30] movs r1, 0xF0 ands r1, r0 cmp r1, 0x40 bne _080A6EE8 ldr r4, _080A6EE4 ldrb r0, [r4] cmp r0, 0x1 bne _080A6FC0 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 b _080A6F02 .align 2, 0 _080A6EE0: .4byte 0x03001770 _080A6EE4: .4byte 0x03000700 _080A6EE8: cmp r1, 0x80 bne _080A6F14 ldr r4, _080A6F0C ldrb r0, [r4] adds r0, 0x1 ldr r1, _080A6F10 ldrb r1, [r1] cmp r0, r1 bge _080A6FC0 movs r0, 0x5 bl audio_play movs r0, 0x1 _080A6F02: bl MoveMenuCursor strb r0, [r4] b _080A6FC0 .align 2, 0 _080A6F0C: .4byte 0x03000700 _080A6F10: .4byte 0x02038564 _080A6F14: ldrh r1, [r2, 0x2E] movs r2, 0x1 ands r2, r1 cmp r2, 0 beq _080A6F84 ldr r1, _080A6F68 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] ldr r1, _080A6F6C ldr r0, _080A6F70 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r2, [r0] adds r0, r4, 0 adds r1, r2, 0 bl sub_80A48E8 ldr r0, _080A6F74 bl sub_80A4DA4 ldr r1, _080A6F78 ldr r0, _080A6F7C ldrb r2, [r0] ldr r0, _080A6F80 ldr r0, [r0] adds r0, r2 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 b _080A6FC0 .align 2, 0 _080A6F68: .4byte 0x03004b20 _080A6F6C: .4byte 0x03005d10 _080A6F70: .4byte 0x02038559 _080A6F74: .4byte 0x020219cc _080A6F78: .4byte gUnknown_083C1640 _080A6F7C: .4byte 0x03000700 _080A6F80: .4byte 0x03000704 _080A6F84: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080A6FC0 ldr r1, _080A6FC8 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x1C] ldr r1, _080A6FCC ldr r0, _080A6FD0 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r2, [r0] adds r0, r5, 0 adds r1, r2, 0 bl sub_80A48E8 ldr r0, _080A6FD4 bl sub_80A4DA4 ldr r0, _080A6FD8 ldr r1, [r0, 0x2C] adds r0, r5, 0 bl _call_via_r1 _080A6FC0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A6FC8: .4byte 0x03004b20 _080A6FCC: .4byte 0x03005d10 _080A6FD0: .4byte 0x02038559 _080A6FD4: .4byte 0x020219cc _080A6FD8: .4byte gUnknown_083C1640 thumb_func_end sub_80A6EB8 thumb_func_start sub_80A6FDC sub_80A6FDC: @ 80A6FDC push {lr} ldr r0, _080A6FF8 ldrh r0, [r0] bl itemid_get_usage lsls r0, 24 cmp r0, 0 beq _080A7008 ldr r1, _080A6FFC ldr r0, _080A7000 str r0, [r1] ldr r1, _080A7004 movs r0, 0x2 b _080A7012 .align 2, 0 _080A6FF8: .4byte 0x0203855e _080A6FFC: .4byte 0x03000704 _080A7000: .4byte gUnknown_083C1708 _080A7004: .4byte 0x02038564 _080A7008: ldr r1, _080A7018 ldr r0, _080A701C str r0, [r1] ldr r1, _080A7020 movs r0, 0x1 _080A7012: strb r0, [r1] pop {r0} bx r0 .align 2, 0 _080A7018: .4byte 0x03000704 _080A701C: .4byte gUnknown_083C170A _080A7020: .4byte 0x02038564 thumb_func_end sub_80A6FDC thumb_func_start sub_80A7024 sub_80A7024: @ 80A7024 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r1, _080A707C movs r0, 0 strb r0, [r1] bl sub_80A6FDC ldr r0, _080A7080 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 ldr r3, _080A7084 ldr r2, _080A7088 movs r0, 0 ldrsb r0, [r2, r0] lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x1] ldrb r0, [r0] adds r1, r0 adds r1, 0x1 strh r1, [r4, 0x1C] movs r0, 0 ldrsb r0, [r2, r0] lsls r0, 2 adds r0, r3 ldrb r2, [r0] adds r0, r5, 0 adds r1, r2, 0 bl sub_80A48E8 bl sub_80A73FC ldr r0, _080A708C bl sub_80A6DF0 ldr r0, _080A7090 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A707C: .4byte 0x03000700 _080A7080: .4byte 0x03004b20 _080A7084: .4byte 0x03005d10 _080A7088: .4byte 0x02038559 _080A708C: .4byte 0x020219cc _080A7090: .4byte sub_80A6EB8 thumb_func_end sub_80A7024 thumb_func_start sub_80A7094 sub_80A7094: @ 80A7094 push {lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, _080A70CC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _080A70D0 lsrs r0, r2, 16 movs r3, 0 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] ldr r0, _080A70D4 str r0, [r1] movs r0, 0x1 negs r0, r0 str r3, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080A70CC: .4byte 0x03004b20 _080A70D0: .4byte sub_802E424 _080A70D4: .4byte sub_80A5B00 thumb_func_end sub_80A7094 thumb_func_start sub_80A70D8 sub_80A70D8: @ 80A70D8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_80A7094 pop {r4} pop {r0} bx r0 thumb_func_end sub_80A70D8 thumb_func_start ItemMenu_UseInBattle ItemMenu_UseInBattle: @ 80A70F4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, _080A7120 ldrh r0, [r4] bl itemid_get_battle_function cmp r0, 0 beq _080A711A movs r0, 0x5 bl audio_play ldrh r0, [r4] bl itemid_get_battle_function adds r1, r0, 0 adds r0, r5, 0 bl _call_via_r1 _080A711A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A7120: .4byte 0x0203855e thumb_func_end ItemMenu_UseInBattle thumb_func_start sub_80A7124 sub_80A7124: @ 80A7124 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl audio_play movs r0, 0 bl sub_80A7528 adds r0, r4, 0 bl sub_80A41D4 bl sub_80A736C adds r0, r4, 0 bl sub_80A37C0 pop {r4} pop {r0} bx r0 thumb_func_end sub_80A7124 thumb_func_start sub_80A7150 sub_80A7150: @ 80A7150 push {r4,r5,lr} ldr r4, _080A7158 ldr r5, _080A715C b _080A716C .align 2, 0 _080A7158: .4byte 0x02038563 _080A715C: .4byte 0x03004b20 _080A7160: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080A7190 _080A716C: bl sub_80A317C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A7160 ldr r0, _080A7198 movs r1, 0 bl CreateTask strb r0, [r4] ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r1, 0 strh r1, [r0, 0x26] _080A7190: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A7198: .4byte sub_80A7230 thumb_func_end sub_80A7150 thumb_func_start PrepareBagForWallyTutorial PrepareBagForWallyTutorial: @ 80A719C push {r4,r5,lr} ldr r0, _080A7214 movs r1, 0 strb r1, [r0] ldr r0, _080A7218 strb r1, [r0] movs r1, 0 ldr r4, _080A721C ldr r5, _080A7220 ldr r3, _080A7224 movs r2, 0 _080A71B2: lsls r0, r1, 2 adds r0, r3 strb r2, [r0] strb r2, [r0, 0x1] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x4 bls _080A71B2 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x50 bl memcpy movs r1, 0x80 lsls r1, 5 adds r0, r4, r1 adds r4, r5, 0 adds r4, 0xA0 adds r1, r4, 0 movs r2, 0x40 bl memcpy adds r0, r5, 0 movs r1, 0x14 bl sub_80A9684 adds r0, r4, 0 movs r1, 0x10 bl sub_80A9684 movs r0, 0xD movs r1, 0x1 bl sub_80A9424 movs r0, 0x4 movs r1, 0x1 bl sub_80A9424 ldr r1, _080A7228 movs r0, 0x7 strb r0, [r1] ldr r0, _080A722C bl SetMainCallback2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A7214: .4byte 0x03000700 _080A7218: .4byte 0x02038559 _080A721C: .4byte 0x0201e000 _080A7220: .4byte 0x02025c94 _080A7224: .4byte 0x03005d10 _080A7228: .4byte 0x03000701 _080A722C: .4byte sub_80A7150 thumb_func_end PrepareBagForWallyTutorial thumb_func_start sub_80A7230 sub_80A7230: @ 80A7230 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r6, r0, 3 ldr r0, _080A725C mov r8, r0 adds r7, r6, r0 movs r0, 0x1E ldrsh r1, [r7, r0] cmp r1, 0xCC beq _080A727A cmp r1, 0xCC bgt _080A7260 cmp r1, 0x66 beq _080A726A b _080A7358 .align 2, 0 _080A725C: .4byte 0x03004b28 _080A7260: movs r0, 0x99 lsls r0, 1 cmp r1, r0 beq _080A72F4 b _080A7358 _080A726A: movs r0, 0x5 bl audio_play movs r0, 0x1 movs r1, 0x2 bl sub_80A4E8C b _080A7358 _080A727A: movs r0, 0x5 bl audio_play movs r0, 0x2 bl sub_80F98A4 movs r0, 0x3 bl sub_80F98A4 ldr r1, _080A72D8 movs r0, 0x4 strh r0, [r1] ldr r1, _080A72DC ldr r0, _080A72E0 str r0, [r1] ldr r1, _080A72E4 movs r0, 0x2 strb r0, [r1] mov r0, r8 adds r4, r0, r6 ldr r3, _080A72E8 ldr r2, _080A72EC movs r0, 0 ldrsb r0, [r2, r0] lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x1] ldrb r0, [r0] adds r1, r0 adds r1, 0x1 strh r1, [r4, 0x14] movs r0, 0 ldrsb r0, [r2, r0] lsls r0, 2 adds r0, r3 ldrb r2, [r0] adds r0, r5, 0 adds r1, r2, 0 bl sub_80A48E8 bl sub_80A73FC ldr r0, _080A72F0 bl sub_80A6DF0 b _080A7358 .align 2, 0 _080A72D8: .4byte 0x0203855e _080A72DC: .4byte 0x03000704 _080A72E0: .4byte gUnknown_083C1708 _080A72E4: .4byte 0x02038564 _080A72E8: .4byte 0x03005d10 _080A72EC: .4byte 0x02038559 _080A72F0: .4byte 0x020219cc _080A72F4: movs r0, 0x5 bl audio_play ldr r0, _080A7344 bl sub_80A4DA4 ldr r4, _080A7348 ldr r5, _080A734C adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x50 bl memcpy adds r4, 0xA0 movs r0, 0x80 lsls r0, 5 adds r5, r0 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x40 bl memcpy ldr r1, _080A7350 lsrs r0, r1, 16 strh r0, [r7, 0x10] strh r1, [r7, 0x12] mov r0, r8 subs r0, 0x8 adds r0, r6, r0 ldr r1, _080A7354 str r1, [r0] movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _080A735E .align 2, 0 _080A7344: .4byte 0x020219cc _080A7348: .4byte 0x02025c94 _080A734C: .4byte 0x0201e000 _080A7350: .4byte sub_802E424 _080A7354: .4byte sub_80A5B00 _080A7358: ldrh r0, [r7, 0x1E] adds r0, 0x1 strh r0, [r7, 0x1E] _080A735E: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A7230 thumb_func_start sub_80A736C sub_80A736C: @ 80A736C push {lr} sub sp, 0x8 ldr r1, _080A73B0 ldr r0, _080A73B4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r3, [r0, 0x3] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 ldrb r0, [r0] str r0, [sp] movs r0, 0 str r0, [sp, 0x4] movs r1, 0xE movs r2, 0x2 bl InitMenu ldr r1, _080A73B8 ldr r3, _080A73BC movs r0, 0xF str r0, [sp] movs r0, 0x10 movs r2, 0xC bl sub_814AC58 bl sub_80A73C0 add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080A73B0: .4byte 0x03005d10 _080A73B4: .4byte 0x02038559 _080A73B8: .4byte 0x0000ffff _080A73BC: .4byte 0x00002d9f thumb_func_end sub_80A736C thumb_func_start sub_80A73C0 sub_80A73C0: @ 80A73C0 push {lr} ldr r1, _080A73E8 ldr r0, _080A73EC ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r1, [r0] lsls r1, 28 movs r0, 0x80 lsls r0, 21 adds r1, r0 lsrs r1, 24 movs r0, 0x70 bl sub_814AD7C pop {r0} bx r0 .align 2, 0 _080A73E8: .4byte 0x03005d10 _080A73EC: .4byte 0x02038559 thumb_func_end sub_80A73C0 thumb_func_start sub_80A73F0 sub_80A73F0: @ 80A73F0 push {lr} bl sub_814ADC8 pop {r0} bx r0 thumb_func_end sub_80A73F0 thumb_func_start sub_80A73FC sub_80A73FC: @ 80A73FC push {lr} bl sub_8072DEC bl sub_814AD44 pop {r0} bx r0 thumb_func_end sub_80A73FC thumb_func_start sub_80A740C sub_80A740C: @ 80A740C push {lr} bl sub_80A75E4 bl sub_80A7768 bl sub_80A7420 pop {r0} bx r0 thumb_func_end sub_80A740C thumb_func_start sub_80A7420 sub_80A7420: @ 80A7420 push {r4,lr} ldr r4, _080A7438 ldrb r0, [r4] cmp r0, 0x2 beq _080A743C cmp r0, 0x3 beq _080A7430 b _080A7512 _080A7430: movs r0, 0x2 strb r0, [r4] b _080A7512 .align 2, 0 _080A7438: .4byte 0x0203853c _080A743C: ldrb r0, [r4, 0x2] cmp r0, 0x9 bhi _080A74FC lsls r0, 2 ldr r1, _080A744C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080A744C: .4byte _080A7450 .align 2, 0 _080A7450: .4byte _080A7478 .4byte _080A74AC .4byte _080A74B4 .4byte _080A74BC .4byte _080A74C4 .4byte _080A74CC .4byte _080A74D4 .4byte _080A74DC .4byte _080A74E4 .4byte _080A74F4 _080A7478: ldr r1, _080A74A0 ldr r0, _080A74A4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x1] ldrb r0, [r0] adds r1, r0 ldr r0, _080A74A8 ldr r0, [r0] lsls r1, 2 adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] ldrb r1, [r4, 0x1] bl sub_80A49AC b _080A74FC .align 2, 0 _080A74A0: .4byte 0x03005d10 _080A74A4: .4byte 0x02038559 _080A74A8: .4byte 0x03005d24 _080A74AC: ldr r0, _080A74B0 b _080A74E6 .align 2, 0 _080A74B0: .4byte gUnknown_0840E7B3 _080A74B4: ldr r0, _080A74B8 b _080A74E6 .align 2, 0 _080A74B8: .4byte gUnknown_0840E766 _080A74BC: ldr r0, _080A74C0 b _080A74E6 .align 2, 0 _080A74C0: .4byte gUnknown_0840E89F _080A74C4: ldr r0, _080A74C8 b _080A74E6 .align 2, 0 _080A74C8: .4byte gUnknown_0840E8B2 _080A74CC: ldr r0, _080A74D0 b _080A74E6 .align 2, 0 _080A74D0: .4byte gUnknown_0840E8C7 _080A74D4: ldr r0, _080A74D8 b _080A74E6 .align 2, 0 _080A74D8: .4byte gUnknown_0840E7F4 _080A74DC: ldr r0, _080A74E0 b _080A74E6 .align 2, 0 _080A74E0: .4byte gUnknown_0840E815 _080A74E4: ldr r0, _080A74F0 _080A74E6: ldrb r1, [r4, 0x1] bl sub_80A4A98 b _080A74FC .align 2, 0 _080A74F0: .4byte gUnknown_0840E829 _080A74F4: ldr r0, _080A7518 ldrb r1, [r4, 0x1] bl sub_80A4A98 _080A74FC: ldrb r0, [r4, 0x1] adds r0, 0x1 strb r0, [r4, 0x1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _080A7512 movs r0, 0 strb r0, [r4] bl sub_80A7918 _080A7512: pop {r4} pop {r0} bx r0 .align 2, 0 _080A7518: .4byte gUnknown_0840E849 thumb_func_end sub_80A7420 thumb_func_start sub_80A751C sub_80A751C: @ 80A751C ldr r1, _080A7524 movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _080A7524: .4byte 0x0203853c thumb_func_end sub_80A751C thumb_func_start sub_80A7528 sub_80A7528: @ 80A7528 push {r4,lr} ldr r4, _080A7544 movs r1, 0 strb r1, [r4, 0x1] strb r0, [r4, 0x2] bl sub_80A78F4 cmp r0, 0x1 beq _080A755E cmp r0, 0x1 bgt _080A7548 cmp r0, 0 beq _080A754E b _080A7566 .align 2, 0 _080A7544: .4byte 0x0203853c _080A7548: cmp r0, 0x2 beq _080A7562 b _080A7566 _080A754E: movs r0, 0x2 strb r0, [r4] _080A7552: bl sub_80A7420 ldrb r0, [r4] cmp r0, 0 bne _080A7552 b _080A7566 _080A755E: movs r0, 0x3 b _080A7564 _080A7562: movs r0, 0x1 _080A7564: strb r0, [r4] _080A7566: pop {r4} pop {r0} bx r0 thumb_func_end sub_80A7528 thumb_func_start sub_80A756C sub_80A756C: @ 80A756C push {r4,lr} ldr r4, _080A758C ldrb r0, [r4] subs r0, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080A7580 bl sub_80A7918 _080A7580: movs r0, 0 strb r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080A758C: .4byte 0x0203853c thumb_func_end sub_80A756C thumb_func_start sub_80A7590 sub_80A7590: @ 80A7590 push {lr} movs r0, 0 movs r1, 0xD movs r2, 0xD movs r3, 0x14 bl Reset bl sub_80A756C pop {r0} bx r0 thumb_func_end sub_80A7590 thumb_func_start sub_80A75A8 sub_80A75A8: @ 80A75A8 push {lr} ldr r1, _080A75C0 ldrb r0, [r1] subs r0, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080A75BC movs r0, 0x1 strb r0, [r1] _080A75BC: pop {r0} bx r0 .align 2, 0 _080A75C0: .4byte 0x0203853c thumb_func_end sub_80A75A8 thumb_func_start sub_80A75C4 sub_80A75C4: @ 80A75C4 push {lr} ldr r1, _080A75D8 ldrb r0, [r1] cmp r0, 0 beq _080A75DC cmp r0, 0x1 bne _080A75E0 movs r0, 0x3 strb r0, [r1] b _080A75E0 .align 2, 0 _080A75D8: .4byte 0x0203853c _080A75DC: bl sub_80A7918 _080A75E0: pop {r0} bx r0 thumb_func_end sub_80A75C4 thumb_func_start sub_80A75E4 sub_80A75E4: @ 80A75E4 push {r4,r5,lr} ldr r4, _080A7628 ldrb r0, [r4] cmp r0, 0x1 bne _080A7622 bl sub_80A7988 adds r5, r0, 0 cmp r5, 0 bne _080A7622 ldr r0, _080A762C ldrb r0, [r0] ldrb r2, [r4, 0x1] adds r1, r2, 0 movs r3, 0x1 bl sub_80A47E8 ldrb r0, [r4, 0x1] adds r0, 0x1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x2] movs r1, 0x7 cmp r0, 0 beq _080A7616 movs r1, 0x5 _080A7616: ldrb r0, [r4, 0x1] cmp r1, r0 bge _080A7622 strb r5, [r4] bl sub_80A78E8 _080A7622: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A7628: .4byte 0x02038540 _080A762C: .4byte 0x02038563 thumb_func_end sub_80A75E4 thumb_func_start sub_80A7630 sub_80A7630: @ 80A7630 ldr r1, _080A7638 movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _080A7638: .4byte 0x02038540 thumb_func_end sub_80A7630 thumb_func_start sub_80A763C sub_80A763C: @ 80A763C push {r4,lr} ldr r4, _080A7650 bl sub_80A78C4 adds r1, r0, 0 cmp r1, 0 beq _080A7654 cmp r1, 0x1 beq _080A7668 b _080A7670 .align 2, 0 _080A7650: .4byte 0x02038540 _080A7654: ldr r0, _080A7664 ldrb r0, [r0] movs r1, 0 movs r2, 0x7 bl sub_80A48E8 b _080A7670 .align 2, 0 _080A7664: .4byte 0x02038563 _080A7668: movs r0, 0 strb r1, [r4] strb r0, [r4, 0x1] strb r0, [r4, 0x2] _080A7670: pop {r4} pop {r0} bx r0 thumb_func_end sub_80A763C thumb_func_start sub_80A7678 sub_80A7678: @ 80A7678 push {r4,lr} ldr r4, _080A7690 ldrb r0, [r4] cmp r0, 0x1 bne _080A7686 bl sub_80A78E8 _080A7686: movs r0, 0 strb r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080A7690: .4byte 0x02038540 thumb_func_end sub_80A7678 thumb_func_start sub_80A7694 sub_80A7694: @ 80A7694 ldr r1, _080A769C movs r0, 0x1 strb r0, [r1, 0x2] bx lr .align 2, 0 _080A769C: .4byte 0x02038540 thumb_func_end sub_80A7694 thumb_func_start sub_80A76A0 sub_80A76A0: @ 80A76A0 push {lr} movs r0, 0xE movs r1, 0x2 movs r2, 0x1D movs r3, 0x12 bl Reset bl sub_80A7678 pop {r0} bx r0 thumb_func_end sub_80A76A0 thumb_func_start sub_80A76B8 sub_80A76B8: @ 80A76B8 push {lr} ldr r0, _080A76CC movs r1, 0 ldrb r0, [r0] cmp r0, 0 bne _080A76C6 movs r1, 0x1 _080A76C6: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _080A76CC: .4byte 0x02038540 thumb_func_end sub_80A76B8 thumb_func_start sub_80A76D0 sub_80A76D0: @ 80A76D0 push {lr} ldr r0, _080A76E4 movs r1, 0 ldrb r0, [r0, 0x1] cmp r0, 0x5 bls _080A76DE movs r1, 0x1 _080A76DE: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _080A76E4: .4byte 0x02038540 thumb_func_end sub_80A76D0 thumb_func_start sub_80A76E8 sub_80A76E8: @ 80A76E8 push {r4,lr} ldr r4, _080A7708 ldrb r0, [r4] cmp r0, 0x1 bne _080A7702 ldrb r0, [r4, 0x1] ldr r1, [r4, 0x4] ldr r2, [r4, 0x8] ldrh r3, [r4, 0x2] bl DisplayItemMessageOnField movs r0, 0 strb r0, [r4] _080A7702: pop {r4} pop {r0} bx r0 .align 2, 0 _080A7708: .4byte 0x02038544 thumb_func_end sub_80A76E8 thumb_func_start sub_80A770C sub_80A770C: @ 80A770C ldr r1, _080A7714 movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _080A7714: .4byte 0x02038544 thumb_func_end sub_80A770C thumb_func_start DisplayCannotUseItemMessage DisplayCannotUseItemMessage: @ 80A7718 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r7, r1, 0 mov r8, r2 adds r6, r3, 0 ldr r4, _080A7738 bl sub_80A7924 cmp r0, 0 beq _080A773C cmp r0, 0x2 beq _080A774E b _080A775C .align 2, 0 _080A7738: .4byte 0x02038544 _080A773C: lsls r0, r5, 24 lsrs r0, 24 lsls r3, r6, 16 lsrs r3, 16 adds r1, r7, 0 mov r2, r8 bl DisplayItemMessageOnField b _080A775C _080A774E: movs r0, 0x1 strb r0, [r4] strb r5, [r4, 0x1] str r7, [r4, 0x4] mov r0, r8 str r0, [r4, 0x8] strh r6, [r4, 0x2] _080A775C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end DisplayCannotUseItemMessage thumb_func_start sub_80A7768 sub_80A7768: @ 80A7768 push {r4,lr} ldr r4, _080A77A8 ldrb r0, [r4] cmp r0, 0x2 bne _080A7814 ldrb r1, [r4, 0x1] cmp r1, 0 beq _080A780E ldrb r0, [r4, 0x2] cmp r0, 0x1 beq _080A77B4 ldr r2, _080A77AC ldr r0, _080A77B0 ldr r0, [r0] adds r0, r1, r0 subs r0, 0x1 ldrb r0, [r0] lsls r0, 3 adds r0, r2 ldr r0, [r0] subs r1, 0x1 lsls r1, 1 adds r1, 0x1 ldrb r2, [r4, 0x3] adds r2, r1 lsls r2, 24 lsrs r2, 24 movs r1, 0x7 bl Print b _080A77FC .align 2, 0 _080A77A8: .4byte 0x02038550 _080A77AC: .4byte gUnknown_083C1640 _080A77B0: .4byte 0x03000704 _080A77B4: cmp r1, 0x1 bne _080A77C8 ldr r0, _080A77C4 ldrh r0, [r0] bl sub_80A4B90 adds r3, r0, 0 b _080A77DC .align 2, 0 _080A77C4: .4byte 0x0203855e _080A77C8: ldr r2, _080A781C ldrb r0, [r4, 0x1] ldr r1, _080A7820 ldr r1, [r1] adds r0, r1 subs r0, 0x1 ldrb r0, [r0] lsls r0, 3 adds r0, r2 ldr r3, [r0] _080A77DC: ldrb r2, [r4, 0x1] subs r2, 0x1 asrs r0, r2, 1 lsls r1, r0, 1 adds r1, r0 lsls r1, 1 adds r1, 0x1 lsls r1, 24 lsrs r1, 24 movs r0, 0x1 ands r2, r0 lsls r2, 1 adds r2, 0x8 adds r0, r3, 0 bl Print _080A77FC: ldr r1, _080A7824 ldrb r0, [r4, 0x1] ldrb r1, [r1] cmp r0, r1 bne _080A780E movs r0, 0 strb r0, [r4] bl sub_80A7970 _080A780E: ldrb r0, [r4, 0x1] adds r0, 0x1 strb r0, [r4, 0x1] _080A7814: pop {r4} pop {r0} bx r0 .align 2, 0 _080A781C: .4byte gUnknown_083C1640 _080A7820: .4byte 0x03000704 _080A7824: .4byte 0x02038564 thumb_func_end sub_80A7768 thumb_func_start sub_80A7828 sub_80A7828: @ 80A7828 ldr r1, _080A7830 movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _080A7830: .4byte 0x02038550 thumb_func_end sub_80A7828 thumb_func_start sub_80A7834 sub_80A7834: @ 80A7834 push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 ldr r4, _080A784C bl sub_80A7958 cmp r0, 0x1 beq _080A7850 cmp r0, 0x2 beq _080A7856 b _080A7862 .align 2, 0 _080A784C: .4byte 0x02038550 _080A7850: movs r1, 0 movs r0, 0x2 b _080A785A _080A7856: movs r1, 0 movs r0, 0x1 _080A785A: strb r0, [r4] strb r1, [r4, 0x1] strb r5, [r4, 0x2] strb r6, [r4, 0x3] _080A7862: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80A7834 thumb_func_start sub_80A7868 sub_80A7868: @ 80A7868 push {lr} ldr r1, _080A787C ldrb r0, [r1] cmp r0, 0x2 bne _080A7876 movs r0, 0x1 strb r0, [r1] _080A7876: pop {r0} bx r0 .align 2, 0 _080A787C: .4byte 0x02038550 thumb_func_end sub_80A7868 thumb_func_start sub_80A7880 sub_80A7880: @ 80A7880 push {lr} ldr r1, _080A7894 ldrb r0, [r1] cmp r0, 0 beq _080A7898 cmp r0, 0x1 bne _080A789C movs r0, 0x2 strb r0, [r1] b _080A789C .align 2, 0 _080A7894: .4byte 0x02038550 _080A7898: bl sub_80A7970 _080A789C: pop {r0} bx r0 thumb_func_end sub_80A7880 thumb_func_start rfu_lacks_rfufunc rfu_lacks_rfufunc: @ 80A78A0 push {lr} ldr r0, _080A78B4 movs r1, 0 ldrb r0, [r0] cmp r0, 0 bne _080A78AE movs r1, 0x1 _080A78AE: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _080A78B4: .4byte 0x02038550 thumb_func_end rfu_lacks_rfufunc thumb_func_start sub_80A78B8 sub_80A78B8: @ 80A78B8 ldr r1, _080A78C0 movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _080A78C0: .4byte 0x02038554 thumb_func_end sub_80A78B8 thumb_func_start sub_80A78C4 sub_80A78C4: @ 80A78C4 push {lr} ldr r0, _080A78DC ldrb r0, [r0] cmp r0, 0x1 bne _080A78E0 bl sub_80A7868 bl sub_80A75A8 movs r0, 0x1 b _080A78E2 .align 2, 0 _080A78DC: .4byte 0x020238c0 _080A78E0: movs r0, 0 _080A78E2: pop {r1} bx r1 thumb_func_end sub_80A78C4 thumb_func_start sub_80A78E8 sub_80A78E8: @ 80A78E8 push {lr} bl sub_80A7880 pop {r0} bx r0 thumb_func_end sub_80A78E8 thumb_func_start sub_80A78F4 sub_80A78F4: @ 80A78F4 push {lr} ldr r0, _080A790C ldrb r0, [r0] cmp r0, 0x1 bne _080A7910 bl sub_80A76B8 movs r1, 0x2 cmp r0, 0 beq _080A7912 movs r1, 0x1 b _080A7912 .align 2, 0 _080A790C: .4byte 0x020238c0 _080A7910: movs r1, 0 _080A7912: adds r0, r1, 0 pop {r1} bx r1 thumb_func_end sub_80A78F4 thumb_func_start sub_80A7918 sub_80A7918: @ 80A7918 push {lr} bl sub_80A76E8 pop {r0} bx r0 thumb_func_end sub_80A7918 thumb_func_start sub_80A7924 sub_80A7924: @ 80A7924 push {lr} ldr r0, _080A7948 ldrb r0, [r0] cmp r0, 0x1 bne _080A7942 bl sub_80A76B8 cmp r0, 0 bne _080A7942 bl sub_80A76D0 cmp r0, 0 beq _080A794C bl sub_80A7678 _080A7942: movs r0, 0 b _080A7952 .align 2, 0 _080A7948: .4byte 0x020238c0 _080A794C: bl sub_80A7694 movs r0, 0x2 _080A7952: pop {r1} bx r1 thumb_func_end sub_80A7924 thumb_func_start sub_80A7958 sub_80A7958: @ 80A7958 push {lr} bl sub_80A76B8 cmp r0, 0 beq _080A796A bl sub_80A75A8 movs r0, 0x1 b _080A796C _080A796A: movs r0, 0x2 _080A796C: pop {r1} bx r1 thumb_func_end sub_80A7958 thumb_func_start sub_80A7970 sub_80A7970: @ 80A7970 push {lr} bl sub_80A75C4 pop {r0} bx r0 thumb_func_end sub_80A7970 thumb_func_start sub_80A797C sub_80A797C: @ 80A797C ldr r1, _080A7984 movs r0, 0x1 strb r0, [r1] bx lr .align 2, 0 _080A7984: .4byte 0x02038554 thumb_func_end sub_80A797C thumb_func_start sub_80A7988 sub_80A7988: @ 80A7988 ldr r1, _080A7994 ldrb r0, [r1] movs r2, 0 strb r2, [r1] bx lr .align 2, 0 _080A7994: .4byte 0x02038554 thumb_func_end sub_80A7988 thumb_func_start sub_80A7998 sub_80A7998: @ 80A7998 adds r2, r0, 0 adds r2, 0x2A movs r1, 0 strb r1, [r2] strh r1, [r0, 0x2E] strh r1, [r0, 0x30] strh r1, [r0, 0x32] strh r1, [r0, 0x34] strh r1, [r0, 0x36] ldr r1, _080A79B0 str r1, [r0, 0x1C] bx lr .align 2, 0 _080A79B0: .4byte sub_80A79B4 thumb_func_end sub_80A7998 thumb_func_start sub_80A79B4 sub_80A79B4: @ 80A79B4 push {r4,lr} adds r4, r0, 0 ldr r0, _080A79E4 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A79CC adds r0, r4, 0 bl sub_80A79EC _080A79CC: ldr r0, _080A79E8 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _080A79DE adds r0, r4, 0 bl sub_80A7A94 _080A79DE: pop {r4} pop {r0} bx r0 .align 2, 0 _080A79E4: .4byte 0x0203855b _080A79E8: .4byte 0x0203855c thumb_func_end sub_80A79B4 thumb_func_start sub_80A79EC sub_80A79EC: @ 80A79EC push {r4-r6,lr} adds r2, r0, 0 movs r0, 0x34 ldrsh r4, [r2, r0] cmp r4, 0 beq _080A79FE cmp r4, 0x1 beq _080A7A54 b _080A7A8A _080A79FE: ldr r5, _080A7A28 ldrb r6, [r5] movs r0, 0 ldrsb r0, [r5, r0] cmp r0, 0x6 beq _080A7A2C adds r3, r2, 0 adds r3, 0x3F ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] adds r0, r2, 0 adds r0, 0x2A strb r6, [r0] movs r1, 0x1 negs r1, r1 adds r0, r1, 0 strb r0, [r5] b _080A7A8A .align 2, 0 _080A7A28: .4byte 0x0203855b _080A7A2C: adds r3, r2, 0 adds r3, 0x3F ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] adds r0, r2, 0 adds r0, 0x2A strb r4, [r0] ldrh r0, [r2, 0x22] subs r0, 0x4 strh r0, [r2, 0x22] movs r0, 0x4 strh r0, [r2, 0x2E] movs r0, 0x1 strh r0, [r2, 0x34] adds r0, r2, 0 bl sub_80A7AE4 b _080A7A8A _080A7A54: ldrh r4, [r2, 0x2E] movs r0, 0x2E ldrsh r3, [r2, r0] cmp r3, 0 beq _080A7A7C ldrh r1, [r2, 0x30] movs r3, 0x30 ldrsh r0, [r2, r3] cmp r0, 0 beq _080A7A72 ldrh r0, [r2, 0x22] adds r0, 0x1 strh r0, [r2, 0x22] subs r0, r4, 0x1 strh r0, [r2, 0x2E] _080A7A72: adds r0, r1, 0x1 movs r1, 0x1 ands r0, r1 strh r0, [r2, 0x30] b _080A7A8A _080A7A7C: ldr r1, _080A7A90 movs r4, 0x1 negs r4, r4 adds r0, r4, 0 strb r0, [r1] strh r3, [r2, 0x30] strh r3, [r2, 0x34] _080A7A8A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A7A90: .4byte 0x0203855b thumb_func_end sub_80A79EC thumb_func_start sub_80A7A94 sub_80A7A94: @ 80A7A94 push {r4,lr} adds r4, r0, 0 movs r1, 0x36 ldrsh r0, [r4, r1] cmp r0, 0 beq _080A7AA6 cmp r0, 0x1 beq _080A7AC8 b _080A7ADC _080A7AA6: 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, _080A7AC4 str r0, [r4, 0x10] adds r0, r4, 0 bl InitSpriteAffineAnim movs r0, 0x1 strh r0, [r4, 0x36] b _080A7ADC .align 2, 0 _080A7AC4: .4byte gSpriteAffineAnimTable_83C1CC4 _080A7AC8: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0xC bne _080A7ADC adds r0, r4, 0 bl sub_80A7AE4 _080A7ADC: pop {r4} pop {r0} bx r0 thumb_func_end sub_80A7A94 thumb_func_start sub_80A7AE4 sub_80A7AE4: @ 80A7AE4 push {lr} ldr r2, _080A7B0C movs r1, 0 strb r1, [r2] ldrb r2, [r0, 0x1] movs r1, 0x4 negs r1, r1 ands r1, r2 strb r1, [r0, 0x1] movs r1, 0 strh r1, [r0, 0x32] strh r1, [r0, 0x36] ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix pop {r0} bx r0 .align 2, 0 _080A7B0C: .4byte 0x0203855c thumb_func_end sub_80A7AE4 thumb_func_start sub_80A7B10 sub_80A7B10: @ 80A7B10 push {lr} ldr r0, _080A7B24 movs r1, 0x3A movs r2, 0x28 movs r3, 0 bl CreateSprite pop {r0} bx r0 .align 2, 0 _080A7B24: .4byte gSpriteTemplate_83C1CE0 thumb_func_end sub_80A7B10 thumb_func_start sub_80A7B28 sub_80A7B28: @ 80A7B28 push {r4,lr} adds r4, r0, 0 movs r0, 0 strh r0, [r4, 0x34] strh r0, [r4, 0x2E] adds r0, r4, 0 bl sub_80A7B6C ldr r0, _080A7B44 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080A7B44: .4byte sub_80A7B6C thumb_func_end sub_80A7B28 thumb_func_start sub_80A7B48 sub_80A7B48: @ 80A7B48 ldrh r2, [r0, 0x38] ldrh r1, [r0, 0x2E] adds r1, 0x1 movs r3, 0x1 ands r1, r3 subs r2, r1 adds r1, r0, 0 adds r1, 0x28 strb r2, [r1] ldrh r2, [r0, 0x3A] ldrh r1, [r0, 0x2E] adds r1, 0x1 ands r1, r3 subs r2, r1 adds r0, 0x29 strb r2, [r0] bx lr thumb_func_end sub_80A7B48 thumb_func_start sub_80A7B6C sub_80A7B6C: @ 80A7B6C push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x3C ldrsh r2, [r4, r0] cmp r2, 0 beq _080A7C16 movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 beq _080A7B86 cmp r0, 0x1 beq _080A7BD4 b _080A7C16 _080A7B86: ldrb r0, [r4, 0x1] movs r1, 0x4 negs r1, r1 ands r1, r0 movs r0, 0x1 orrs r1, r0 strb r1, [r4, 0x1] cmp r2, 0x1 bne _080A7BA0 ldr r0, _080A7B9C b _080A7BA2 .align 2, 0 _080A7B9C: .4byte gSpriteAffineAnimTable_83C1D20 _080A7BA0: ldr r0, _080A7BD0 _080A7BA2: str r0, [r4, 0x10] adds r0, r4, 0 bl InitSpriteAffineAnim movs r0, 0x1 strh r0, [r4, 0x34] adds r0, r4, 0 adds r0, 0x28 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 strh r0, [r4, 0x38] adds r0, r4, 0 adds r0, 0x29 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 strh r0, [r4, 0x3A] adds r0, r4, 0 bl sub_80A7B48 b _080A7C16 .align 2, 0 _080A7BD0: .4byte gSpriteAffineAnimTable_83C1D20 + 0x4 _080A7BD4: ldrh r0, [r4, 0x2E] adds r0, 0x1 movs r5, 0 strh r0, [r4, 0x2E] adds r0, r4, 0 bl sub_80A7B48 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x20 bne _080A7C16 strh r5, [r4, 0x2E] strh r5, [r4, 0x34] ldrh r1, [r4, 0x38] adds r0, r4, 0 adds r0, 0x28 strb r1, [r0] ldrh r0, [r4, 0x3A] adds r1, r4, 0 adds r1, 0x29 strb r0, [r1] ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 strb r0, [r4, 0x1] ldr r0, _080A7C1C str r0, [r4, 0x1C] _080A7C16: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A7C1C: .4byte SpriteCallbackDummy thumb_func_end sub_80A7B6C thumb_func_start sub_80A7C20 sub_80A7C20: @ 80A7C20 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080A7C54 bl LoadSpritePalette ldr r0, _080A7C58 movs r1, 0x10 movs r2, 0x58 movs r3, 0 bl CreateSprite ldr r1, _080A7C5C strb r0, [r1] ldr r2, _080A7C60 ldrb r1, [r1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r4, [r0, 0x3C] pop {r4} pop {r0} bx r0 .align 2, 0 _080A7C54: .4byte gUnknown_083C1D30 _080A7C58: .4byte gSpriteTemplate_83C1D38 _080A7C5C: .4byte 0x02038568 _080A7C60: .4byte 0x02020004 thumb_func_end sub_80A7C20 thumb_func_start sub_80A7C64 sub_80A7C64: @ 80A7C64 push {r4,r5,lr} movs r0, 0x8 bl FreeSpritePaletteByTag ldr r5, _080A7C98 ldr r4, _080A7C9C ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A7C98: .4byte 0x02020004 _080A7C9C: .4byte 0x02038568 thumb_func_end sub_80A7C64 thumb_func_start sub_80A7CA0 sub_80A7CA0: @ 80A7CA0 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 movs r2, 0x80 lsls r2, 4 adds r0, r4, 0 movs r1, 0 bl memset movs r0, 0x80 lsls r0, 1 adds r4, r0 movs r7, 0 _080A7CBE: adds r4, 0x20 movs r5, 0 adds r1, r7, 0x1 mov r8, r1 _080A7CC6: adds r0, r4, 0 adds r1, r6, 0 movs r2, 0x20 bl memcpy adds r4, 0x20 adds r6, 0x20 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _080A7CC6 cmp r7, 0x5 beq _080A7CE4 adds r4, 0x20 _080A7CE4: mov r1, r8 lsls r0, r1, 24 lsrs r7, r0, 24 cmp r7, 0x5 bls _080A7CBE pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A7CA0 thumb_func_start sub_80A7CF8 sub_80A7CF8: @ 80A7CF8 push {r4,r5,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2A bne _080A7D44 bl sub_80B4940 cmp r0, 0x1 bne _080A7D44 ldr r4, _080A7D34 ldr r1, _080A7D38 adds r0, r4, 0 bl sub_80A7CA0 movs r0, 0x90 lsls r0, 3 adds r4, r0 str r4, [sp] ldr r1, _080A7D3C ldr r0, [sp, 0x4] ands r0, r1 ldr r1, _080A7D40 orrs r0, r1 str r0, [sp, 0x4] mov r0, sp bl LoadSpritePalette b _080A7D72 .align 2, 0 _080A7D34: .4byte 0x020288b0 _080A7D38: .4byte 0x02000000 _080A7D3C: .4byte 0xffff0000 _080A7D40: .4byte 0x00007544 _080A7D44: ldr r5, _080A7D7C lsls r4, 3 adds r0, r5, 0x4 adds r0, r4, r0 ldr r0, [r0] str r0, [sp] mov r1, sp ldr r0, _080A7D80 strh r0, [r1, 0x4] mov r0, sp bl LoadCompressedObjectPalette adds r4, r5 ldr r0, [r4] ldr r4, _080A7D84 adds r1, r4, 0 bl sub_800D238 ldr r0, _080A7D88 adds r1, r4, r0 adds r0, r4, 0 bl sub_80A7CA0 _080A7D72: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A7D7C: .4byte gBerryGraphicsTable _080A7D80: .4byte 0x00007544 _080A7D84: .4byte 0x02001000 _080A7D88: .4byte 0xfffff000 thumb_func_end sub_80A7CF8 thumb_func_start sub_80A7D8C sub_80A7D8C: @ 80A7D8C push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 lsls r0, 24 lsrs r0, 24 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 bl sub_80A7CF8 ldr r0, _080A7DC0 lsls r4, 16 asrs r4, 16 lsls r5, 16 asrs r5, 16 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080A7DC0: .4byte gSpriteTemplate_83C1D74 thumb_func_end sub_80A7D8C thumb_func_start sub_80A7DC4 sub_80A7DC4: @ 80A7DC4 ldr r1, _080A7DD0 ldrh r1, [r1] negs r1, r1 strh r1, [r0, 0x26] bx lr .align 2, 0 _080A7DD0: .4byte 0x030041b4 thumb_func_end sub_80A7DC4 thumb_func_start sub_80A7DD4 sub_80A7DD4: @ 80A7DD4 push {lr} ldr r0, _080A7DE8 bl FreeSpritePaletteByTag movs r0, 0x8 bl FreeSpritePaletteByTag pop {r0} bx r0 .align 2, 0 _080A7DE8: .4byte 0x00007544 thumb_func_end sub_80A7DD4 thumb_func_start sub_80A7DEC sub_80A7DEC: @ 80A7DEC push {r4-r6,lr} mov r6, r8 push {r6} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 mov r8, r3 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _080A7E50 bl FreeSpritePaletteByTag adds r0, r4, 0 bl sub_80A7CF8 ldr r0, _080A7E54 adds r1, r5, 0 adds r2, r6, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 adds r4, r1, 0 mov r0, r8 cmp r0, 0x1 bne _080A7E42 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080A7E58 adds r0, r1 movs r1, 0x1 bl StartSpriteAffineAnim _080A7E42: adds r0, r4, 0 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080A7E50: .4byte 0x00007544 _080A7E54: .4byte gSpriteTemplate_83C1E04 _080A7E58: .4byte 0x02020004 thumb_func_end sub_80A7DEC thumb_func_start sub_80A7E5C sub_80A7E5C: @ 80A7E5C push {lr} adds r1, r0, 0 ldr r0, _080A7E78 lsls r1, 16 asrs r1, 16 movs r2, 0x63 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080A7E78: .4byte gSpriteTemplate_83C1F98 thumb_func_end sub_80A7E5C thumb_func_start sub_80A7E7C sub_80A7E7C: @ 80A7E7C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, _080A7E9C ldrb r0, [r4] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF bne _080A7EA0 adds r0, r5, 0 bl move_anim_task_del b _080A7EDC .align 2, 0 _080A7E9C: .4byte 0x03004b00 _080A7EA0: ldr r1, _080A7EE4 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 ldrh r1, [r4, 0x2] strh r1, [r0, 0x24] ldrh r1, [r4, 0x4] strh r1, [r0, 0x26] ldr r1, _080A7EE8 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x8] ldrh r1, [r4, 0x6] strh r1, [r0, 0xA] ldrh r1, [r4, 0x8] strh r1, [r0, 0xC] ldrh r1, [r4, 0x8] strh r1, [r0, 0xE] ldrh r1, [r4, 0x2] strh r1, [r0, 0x10] ldrh r1, [r4, 0x4] strh r1, [r0, 0x12] ldr r1, _080A7EEC str r1, [r0] adds r0, r5, 0 bl _call_via_r1 _080A7EDC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A7EE4: .4byte 0x02020004 _080A7EE8: .4byte 0x03004b20 _080A7EEC: .4byte sub_80A7EF0 thumb_func_end sub_80A7E7C thumb_func_start sub_80A7EF0 sub_80A7EF0: @ 80A7EF0 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080A7F2C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r3, r0, r1 ldrh r0, [r3, 0xE] movs r2, 0xE ldrsh r5, [r3, r2] adds r7, r1, 0 cmp r5, 0 bne _080A7F96 ldr r2, _080A7F30 movs r6, 0x8 ldrsh r1, [r3, r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 movs r6, 0x24 ldrsh r0, [r1, r6] adds r6, r2, 0 cmp r0, 0 bne _080A7F34 ldrh r0, [r3, 0x10] strh r0, [r1, 0x24] b _080A7F36 .align 2, 0 _080A7F2C: .4byte 0x03004b20 _080A7F30: .4byte 0x02020004 _080A7F34: strh r5, [r1, 0x24] _080A7F36: lsls r2, r4, 2 adds r0, r2, r4 lsls r0, 3 adds r3, r0, r7 movs r0, 0x8 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r6 movs r5, 0x26 ldrsh r0, [r1, r5] cmp r0, 0 bne _080A7F56 ldrh r0, [r3, 0x12] b _080A7F58 _080A7F56: movs r0, 0 _080A7F58: strh r0, [r1, 0x26] adds r0, r2, r4 lsls r0, 3 adds r2, r0, r7 ldrh r0, [r2, 0xC] strh r0, [r2, 0xE] ldrh r0, [r2, 0xA] subs r0, 0x1 strh r0, [r2, 0xA] lsls r0, 16 asrs r3, r0, 16 cmp r3, 0 bne _080A7F9A movs r0, 0x8 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r3, [r0, 0x24] movs r5, 0x8 ldrsh r1, [r2, r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r3, [r0, 0x26] adds r0, r4, 0 bl move_anim_task_del b _080A7F9A _080A7F96: subs r0, 0x1 strh r0, [r3, 0xE] _080A7F9A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A7EF0 thumb_func_start sub_80A7FA0 sub_80A7FA0: @ 80A7FA0 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 ldr r2, _080A7FC8 ldrh r0, [r2] movs r3, 0 ldrsh r1, [r2, r3] cmp r1, 0x3 bgt _080A7FCC lsls r0, 24 lsrs r0, 24 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xFF bne _080A8022 b _080A8026 .align 2, 0 _080A7FC8: .4byte 0x03004b00 _080A7FCC: cmp r1, 0x8 beq _080A8018 movs r1, 0 ldrsh r0, [r2, r1] cmp r0, 0x5 beq _080A7FEC cmp r0, 0x5 bgt _080A7FE2 cmp r0, 0x4 beq _080A7FE8 b _080A7FF4 _080A7FE2: cmp r0, 0x6 beq _080A7FF0 b _080A7FF4 _080A7FE8: movs r0, 0 b _080A7FF6 _080A7FEC: movs r0, 0x2 b _080A7FF6 _080A7FF0: movs r0, 0x1 b _080A7FF6 _080A7FF4: movs r0, 0x3 _080A7FF6: bl battle_get_side_with_given_state lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 bne _080A800C movs r6, 0x1 _080A800C: ldr r0, _080A8014 adds r0, r4, r0 b _080A8020 .align 2, 0 _080A8014: .4byte 0x02024be0 _080A8018: ldr r1, _080A8030 ldr r0, _080A8034 ldrb r0, [r0] adds r0, r1 _080A8020: ldrb r3, [r0] _080A8022: cmp r6, 0 beq _080A8038 _080A8026: adds r0, r5, 0 bl move_anim_task_del b _080A8076 .align 2, 0 _080A8030: .4byte 0x02024be0 _080A8034: .4byte 0x0202f7c8 _080A8038: ldr r1, _080A807C lsls r0, r3, 4 adds r0, r3 lsls r0, 2 adds r0, r1 ldr r2, _080A8080 ldrh r1, [r2, 0x2] strh r1, [r0, 0x24] ldrh r1, [r2, 0x4] strh r1, [r0, 0x26] ldr r1, _080A8084 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r3, [r0, 0x8] ldrh r1, [r2, 0x6] strh r1, [r0, 0xA] ldrh r1, [r2, 0x8] strh r1, [r0, 0xC] ldrh r1, [r2, 0x8] strh r1, [r0, 0xE] ldrh r1, [r2, 0x2] strh r1, [r0, 0x10] ldrh r1, [r2, 0x4] strh r1, [r0, 0x12] ldr r1, _080A8088 str r1, [r0] adds r0, r5, 0 bl _call_via_r1 _080A8076: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A807C: .4byte 0x02020004 _080A8080: .4byte 0x03004b00 _080A8084: .4byte 0x03004b20 _080A8088: .4byte sub_80A808C thumb_func_end sub_80A7FA0 thumb_func_start sub_80A808C sub_80A808C: @ 80A808C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080A80D0 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r3, r0, r1 ldrh r2, [r3, 0xE] movs r4, 0xE ldrsh r0, [r3, r4] mov r12, r1 cmp r0, 0 bne _080A8144 ldr r2, _080A80D4 movs r7, 0x8 ldrsh r1, [r3, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r0, r2 movs r0, 0x24 ldrsh r1, [r4, r0] ldrh r5, [r3, 0x10] movs r7, 0x10 ldrsh r0, [r3, r7] adds r7, r2, 0 cmp r1, r0 bne _080A80D8 negs r0, r5 strh r0, [r4, 0x24] b _080A80DA .align 2, 0 _080A80D0: .4byte 0x03004b20 _080A80D4: .4byte 0x02020004 _080A80D8: strh r5, [r4, 0x24] _080A80DA: lsls r3, r6, 2 adds r1, r3, r6 lsls r1, 3 add r1, r12 movs r0, 0x8 ldrsh r2, [r1, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r4, r0, r7 movs r0, 0x26 ldrsh r2, [r4, r0] mov r8, r2 ldrh r5, [r1, 0x12] movs r2, 0x12 ldrsh r0, [r1, r2] cmp r8, r0 bne _080A8104 negs r0, r5 strh r0, [r4, 0x26] b _080A8106 _080A8104: strh r5, [r4, 0x26] _080A8106: adds r0, r3, r6 lsls r0, 3 mov r4, r12 adds r3, r0, r4 ldrh r0, [r3, 0xC] strh r0, [r3, 0xE] ldrh r0, [r3, 0xA] subs r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r2, r0, 16 cmp r2, 0 bne _080A8148 movs r0, 0x8 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x24] movs r4, 0x8 ldrsh r1, [r3, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] adds r0, r6, 0 bl move_anim_task_del b _080A8148 _080A8144: subs r0, r2, 0x1 strh r0, [r3, 0xE] _080A8148: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A808C thumb_func_start sub_80A8154 sub_80A8154: @ 80A8154 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, _080A8174 ldrb r0, [r4] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xFF bne _080A8178 adds r0, r5, 0 bl move_anim_task_del b _080A81C6 .align 2, 0 _080A8174: .4byte 0x03004b00 _080A8178: ldr r0, _080A81CC lsls r1, r3, 4 adds r1, r3 lsls r1, 2 adds r1, r0 ldrh r0, [r4, 0x2] ldrh r2, [r1, 0x24] adds r0, r2 movs r2, 0 strh r0, [r1, 0x24] ldrh r0, [r4, 0x4] ldrh r6, [r1, 0x26] adds r0, r6 strh r0, [r1, 0x26] ldr r0, _080A81D0 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 strh r3, [r1, 0x8] strh r2, [r1, 0xA] ldrh r0, [r4, 0x6] strh r0, [r1, 0xC] strh r2, [r1, 0xE] ldrh r0, [r4, 0x8] strh r0, [r1, 0x10] movs r2, 0x2 ldrsh r0, [r4, r2] lsls r0, 1 strh r0, [r1, 0x12] movs r6, 0x4 ldrsh r0, [r4, r6] lsls r0, 1 strh r0, [r1, 0x14] ldr r2, _080A81D4 str r2, [r1] adds r0, r5, 0 bl _call_via_r2 _080A81C6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A81CC: .4byte 0x02020004 _080A81D0: .4byte 0x03004b20 _080A81D4: .4byte sub_80A81D8 thumb_func_end sub_80A8154 thumb_func_start sub_80A81D8 sub_80A81D8: @ 80A81D8 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080A8230 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r2, [r4, 0xE] movs r3, 0xE ldrsh r0, [r4, r3] adds r6, r1, 0 cmp r0, 0 beq _080A81F6 b _080A8308 _080A81F6: ldrh r1, [r4, 0xA] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080A8238 ldr r2, _080A8234 movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r4, 0x12] ldrh r3, [r0, 0x24] adds r1, r3 strh r1, [r0, 0x24] movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r4, 0x14] ldrh r3, [r0, 0x26] adds r1, r3 strh r1, [r0, 0x26] adds r3, r2, 0 b _080A8262 .align 2, 0 _080A8230: .4byte 0x03004b20 _080A8234: .4byte 0x02020004 _080A8238: ldr r3, _080A82C4 movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x24] ldrh r2, [r4, 0x12] subs r1, r2 strh r1, [r0, 0x24] movs r2, 0x8 ldrsh r1, [r4, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x26] ldrh r2, [r4, 0x14] subs r1, r2 strh r1, [r0, 0x26] _080A8262: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r6 ldrh r0, [r4, 0x10] strh r0, [r4, 0xE] ldrh r0, [r4, 0xA] adds r2, r0, 0x1 strh r2, [r4, 0xA] lsls r0, r2, 16 asrs r0, 16 movs r6, 0xC ldrsh r1, [r4, r6] cmp r0, r1 blt _080A830C movs r0, 0x1 ands r2, r0 cmp r2, 0 beq _080A82C8 movs r1, 0x8 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 movs r2, 0x12 ldrsh r0, [r4, r2] lsrs r2, r0, 31 adds r0, r2 asrs r0, 1 ldrh r6, [r1, 0x24] adds r0, r6 strh r0, [r1, 0x24] movs r1, 0x8 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 movs r2, 0x14 ldrsh r0, [r4, r2] lsrs r2, r0, 31 adds r0, r2 asrs r0, 1 ldrh r3, [r1, 0x26] adds r0, r3 strh r0, [r1, 0x26] b _080A8300 .align 2, 0 _080A82C4: .4byte 0x02020004 _080A82C8: movs r6, 0x8 ldrsh r0, [r4, r6] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 movs r0, 0x12 ldrsh r1, [r4, r0] lsrs r0, r1, 31 adds r1, r0 asrs r1, 1 ldrh r0, [r2, 0x24] subs r0, r1 strh r0, [r2, 0x24] movs r1, 0x8 ldrsh r0, [r4, r1] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 movs r3, 0x14 ldrsh r1, [r4, r3] lsrs r0, r1, 31 adds r1, r0 asrs r1, 1 ldrh r0, [r2, 0x26] subs r0, r1 strh r0, [r2, 0x26] _080A8300: adds r0, r5, 0 bl move_anim_task_del b _080A830C _080A8308: subs r0, r2, 0x1 strh r0, [r4, 0xE] _080A830C: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80A81D8 thumb_func_start sub_80A8314 sub_80A8314: @ 80A8314 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _080A8364 ldrb r0, [r5] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 ldr r2, _080A8368 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r2, [r5, 0x2] strh r2, [r1, 0x24] ldr r2, _080A836C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r2 strh r0, [r1, 0x8] ldrh r0, [r5, 0x2] strh r0, [r1, 0xA] ldrh r0, [r5, 0x4] strh r0, [r1, 0xC] ldrh r0, [r5, 0x6] strh r0, [r1, 0xE] ldrh r0, [r5, 0x8] strh r0, [r1, 0x10] ldr r2, _080A8370 str r2, [r1] adds r0, r4, 0 bl _call_via_r2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A8364: .4byte 0x03004b00 _080A8368: .4byte 0x02020004 _080A836C: .4byte 0x03004b20 _080A8370: .4byte sub_80A8374 thumb_func_end sub_80A8314 thumb_func_start sub_80A8374 sub_80A8374: @ 80A8374 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r2, _080A8400 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r3, r0, r2 ldrb r5, [r3, 0x8] ldrh r4, [r3, 0xA] ldrh r1, [r3, 0x18] adds r0, r1, 0x1 strh r0, [r3, 0x18] movs r7, 0xC ldrsh r0, [r3, r7] lsls r1, 16 asrs r1, 16 mov r12, r2 ldr r7, _080A8404 cmp r0, r1 bne _080A83C6 movs r0, 0 strh r0, [r3, 0x18] lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r1, r0, r7 ldrh r3, [r1, 0x24] movs r0, 0x24 ldrsh r2, [r1, r0] lsls r0, r4, 16 asrs r0, 16 cmp r2, r0 bne _080A83BE negs r0, r2 lsls r0, 16 lsrs r4, r0, 16 _080A83BE: lsls r0, r4, 16 asrs r0, 16 adds r0, r3 strh r0, [r1, 0x24] _080A83C6: lsls r2, r6, 2 adds r2, r6 lsls r2, 3 add r2, r12 strh r4, [r2, 0xA] ldrh r1, [r2, 0xE] ldrh r0, [r2, 0x1A] adds r1, r0 strh r1, [r2, 0x1A] lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r0, r7 lsls r1, 16 asrs r1, 24 strh r1, [r0, 0x26] ldrh r0, [r2, 0x10] subs r0, 0x1 strh r0, [r2, 0x10] lsls r0, 16 cmp r0, 0 bne _080A83F8 adds r0, r6, 0 bl move_anim_task_del _080A83F8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A8400: .4byte 0x03004b20 _080A8404: .4byte 0x02020004 thumb_func_end sub_80A8374 thumb_func_start sub_80A8408 sub_80A8408: @ 80A8408 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 movs r6, 0x1 ldr r4, _080A847C ldrb r0, [r4] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r7, r0, 24 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x5 ble _080A842C movs r0, 0x5 strh r0, [r4, 0x8] _080A842C: movs r1, 0 movs r2, 0x8 ldrsh r0, [r4, r2] adds r3, r4, 0 ldr r2, _080A8480 mov r12, r2 lsls r4, r5, 2 ldr r2, _080A8484 mov r8, r2 cmp r1, r0 bge _080A8452 adds r2, r0, 0 _080A8444: lsls r0, r6, 25 lsrs r6, r0, 24 adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, r2 blt _080A8444 _080A8452: adds r0, r4, r5 lsls r0, 3 add r0, r12 strh r7, [r0, 0x8] ldrh r1, [r3, 0x2] strh r1, [r0, 0xA] ldrh r1, [r3, 0x4] strh r1, [r0, 0xC] ldrh r1, [r3, 0x6] strh r1, [r0, 0xE] strh r6, [r0, 0x10] mov r1, r8 str r1, [r0] adds r0, r5, 0 bl _call_via_r8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A847C: .4byte 0x03004b00 _080A8480: .4byte 0x03004b20 _080A8484: .4byte sub_80A8488 thumb_func_end sub_80A8408 thumb_func_start sub_80A8488 sub_80A8488: @ 80A8488 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 ldr r1, _080A84F8 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r5, r0, r1 ldrb r4, [r5, 0x8] movs r1, 0x12 ldrsh r0, [r5, r1] movs r2, 0xA ldrsh r1, [r5, r2] bl sine ldr r2, _080A84FC lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r4, r1, r2 strh r0, [r4, 0x24] movs r1, 0x12 ldrsh r0, [r5, r1] movs r2, 0xC ldrsh r1, [r5, r2] bl cosine negs r0, r0 strh r0, [r4, 0x26] ldrh r1, [r5, 0xC] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r5, 0x10] ldrh r1, [r5, 0x12] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r5, 0x12] cmp r0, 0 bne _080A84E0 ldrh r0, [r5, 0xE] subs r0, 0x1 strh r0, [r5, 0xE] _080A84E0: movs r2, 0xE ldrsh r0, [r5, r2] cmp r0, 0 bne _080A84F2 strh r0, [r4, 0x24] strh r0, [r4, 0x26] adds r0, r6, 0 bl move_anim_task_del _080A84F2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A84F8: .4byte 0x03004b20 _080A84FC: .4byte 0x02020004 thumb_func_end sub_80A8488 thumb_func_start sub_80A8500 sub_80A8500: @ 80A8500 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080A8528 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080A851C ldr r1, _080A852C ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] _080A851C: adds r0, r4, 0 bl sub_80A8408 pop {r4} pop {r0} bx r0 .align 2, 0 _080A8528: .4byte 0x0202f7c8 _080A852C: .4byte 0x03004b00 thumb_func_end sub_80A8500 thumb_func_start sub_80A8530 sub_80A8530: @ 80A8530 push {r4,lr} adds r4, r0, 0 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080A8558 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080A8560 ldr r1, _080A855C ldrh r0, [r1, 0x2] negs r0, r0 b _080A8564 .align 2, 0 _080A8558: .4byte 0x0202f7c8 _080A855C: .4byte 0x03004b00 _080A8560: ldr r1, _080A8590 ldrh r0, [r1, 0x2] _080A8564: strh r0, [r4, 0x30] ldrh r2, [r1] movs r0, 0 strh r2, [r4, 0x2E] strh r0, [r4, 0x32] ldr r1, _080A8594 ldr r0, _080A8598 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] strh r0, [r4, 0x34] strh r2, [r4, 0x36] ldr r1, _080A859C adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080A85A0 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080A8590: .4byte 0x03004b00 _080A8594: .4byte 0x02024be0 _080A8598: .4byte 0x0202f7c8 _080A859C: .4byte sub_80A85A4 _080A85A0: .4byte sub_8078458 thumb_func_end sub_80A8530 thumb_func_start sub_80A85A4 sub_80A85A4: @ 80A85A4 push {lr} ldrh r1, [r0, 0x36] strh r1, [r0, 0x2E] ldrh r1, [r0, 0x30] negs r1, r1 strh r1, [r0, 0x30] ldr r1, _080A85C0 str r1, [r0, 0x1C] ldr r1, _080A85C4 bl oamt_set_x3A_32 pop {r0} bx r0 .align 2, 0 _080A85C0: .4byte sub_8078458 _080A85C4: .4byte move_anim_8072740 thumb_func_end sub_80A85A4 thumb_func_start sub_80A85C8 sub_80A85C8: @ 80A85C8 push {r4,r5,lr} adds r4, r0, 0 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r5, _080A8608 ldrb r0, [r5, 0x4] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 ldrh r2, [r5] movs r1, 0 strh r2, [r4, 0x2E] strh r1, [r4, 0x30] ldrh r1, [r5, 0x2] strh r1, [r4, 0x32] strh r0, [r4, 0x34] strh r2, [r4, 0x36] ldr r1, _080A860C adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080A8610 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A8608: .4byte 0x03004b00 _080A860C: .4byte sub_80A8614 _080A8610: .4byte sub_8078458 thumb_func_end sub_80A85C8 thumb_func_start sub_80A8614 sub_80A8614: @ 80A8614 push {lr} ldrh r1, [r0, 0x36] strh r1, [r0, 0x2E] ldrh r1, [r0, 0x32] negs r1, r1 strh r1, [r0, 0x32] ldr r1, _080A8630 str r1, [r0, 0x1C] ldr r1, _080A8634 bl oamt_set_x3A_32 pop {r0} bx r0 .align 2, 0 _080A8630: .4byte sub_8078458 _080A8634: .4byte move_anim_8072740 thumb_func_end sub_80A8614 thumb_func_start sub_80A8638 sub_80A8638: @ 80A8638 push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 ldr r0, _080A8650 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080A865C ldr r1, _080A8654 ldr r0, _080A8658 b _080A8660 .align 2, 0 _080A8650: .4byte 0x03004b00 _080A8654: .4byte 0x02024be0 _080A8658: .4byte 0x0202f7c8 _080A865C: ldr r1, _080A86C0 ldr r0, _080A86C4 _080A8660: ldrb r0, [r0] adds r0, r1 ldrb r7, [r0] ldr r5, _080A86C8 ldrh r0, [r5, 0x4] movs r3, 0 strh r0, [r6, 0x2E] ldr r0, _080A86CC lsls r4, r7, 4 adds r4, r7 lsls r4, 2 adds r4, r0 ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r6, 0x30] ldrh r0, [r4, 0x20] strh r0, [r6, 0x32] ldrh r0, [r4, 0x26] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r6, 0x34] ldrh r0, [r4, 0x22] strh r0, [r6, 0x36] adds r0, r6, 0 str r3, [sp] bl sub_8078A5C ldr r3, [sp] strh r3, [r6, 0x34] strh r3, [r6, 0x36] ldrh r0, [r4, 0x24] strh r0, [r6, 0x38] ldrh r0, [r4, 0x26] strh r0, [r6, 0x3A] adds r2, r6, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] movs r1, 0x2 ldrsh r0, [r5, r1] cmp r0, 0x1 bne _080A86D0 strh r3, [r6, 0x32] b _080A86D6 .align 2, 0 _080A86C0: .4byte 0x02024be0 _080A86C4: .4byte 0x0202f7c9 _080A86C8: .4byte 0x03004b00 _080A86CC: .4byte 0x02020004 _080A86D0: cmp r0, 0x2 bne _080A86D6 strh r3, [r6, 0x30] _080A86D6: ldr r0, _080A86EC ldrh r1, [r0, 0x2] lsls r0, r7, 8 orrs r0, r1 strh r0, [r6, 0x3C] ldr r0, _080A86F0 str r0, [r6, 0x1C] add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A86EC: .4byte 0x03004b00 _080A86F0: .4byte sub_80A86F4 thumb_func_end sub_80A8638 thumb_func_start sub_80A86F4 sub_80A86F4: @ 80A86F4 push {r4-r6,lr} adds r2, r0, 0 ldrh r0, [r2, 0x3C] lsls r1, r0, 24 lsrs r4, r1, 24 adds r5, r4, 0 lsls r0, 16 asrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _080A8730 adds r3, r1, r0 ldrh r0, [r2, 0x2E] movs r6, 0x2E ldrsh r1, [r2, r6] cmp r1, 0 bne _080A8734 cmp r4, 0x1 bhi _080A871E strh r1, [r3, 0x24] _080A871E: cmp r5, 0x2 beq _080A8726 cmp r5, 0 bne _080A8728 _080A8726: strh r1, [r3, 0x26] _080A8728: adds r0, r2, 0 bl move_anim_8072740 b _080A875E .align 2, 0 _080A8730: .4byte 0x02020004 _080A8734: subs r0, 0x1 strh r0, [r2, 0x2E] ldrh r1, [r2, 0x30] ldrh r0, [r2, 0x34] adds r1, r0 strh r1, [r2, 0x34] ldrh r0, [r2, 0x32] ldrh r4, [r2, 0x36] adds r0, r4 strh r0, [r2, 0x36] lsls r1, 16 asrs r1, 24 ldrh r6, [r2, 0x38] adds r1, r6 strh r1, [r3, 0x24] ldrh r0, [r2, 0x36] lsls r0, 16 asrs r0, 24 ldrh r2, [r2, 0x3A] adds r0, r2 strh r0, [r3, 0x26] _080A875E: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80A86F4 thumb_func_start sub_80A8764 sub_80A8764: @ 80A8764 push {r4-r6,lr} adds r5, r0, 0 ldr r0, _080A8778 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080A8780 ldr r0, _080A877C b _080A8782 .align 2, 0 _080A8778: .4byte 0x03004b00 _080A877C: .4byte 0x0202f7c8 _080A8780: ldr r0, _080A8800 _080A8782: ldrb r2, [r0] ldr r0, _080A8804 adds r0, r2, r0 ldrb r6, [r0] adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080A87AC ldr r1, _080A8808 ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] movs r2, 0x6 ldrsh r0, [r1, r2] cmp r0, 0x1 bne _080A87AC ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080A87AC: ldr r2, _080A8808 ldrh r0, [r2, 0x8] movs r4, 0 strh r0, [r5, 0x2E] ldr r0, _080A880C lsls r1, r6, 4 adds r1, r6 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x20] strh r0, [r5, 0x30] ldrh r0, [r2, 0x2] ldrh r3, [r1, 0x20] adds r0, r3 strh r0, [r5, 0x32] ldrh r0, [r1, 0x22] strh r0, [r5, 0x34] ldrh r0, [r2, 0x4] ldrh r1, [r1, 0x22] adds r0, r1 strh r0, [r5, 0x36] adds r0, r5, 0 bl sub_8078A5C strh r4, [r5, 0x34] strh r4, [r5, 0x36] strh r6, [r5, 0x38] adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r1, _080A8810 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080A8814 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A8800: .4byte 0x0202f7c9 _080A8804: .4byte 0x02024be0 _080A8808: .4byte 0x03004b00 _080A880C: .4byte 0x02020004 _080A8810: .4byte move_anim_8072740 _080A8814: .4byte sub_80784A8 thumb_func_end sub_80A8764 thumb_func_start sub_80A8818 sub_80A8818: @ 80A8818 push {r4-r7,lr} adds r6, r0, 0 adds r2, r6, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080A8838 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080A8840 ldr r0, _080A883C b _080A8842 .align 2, 0 _080A8838: .4byte 0x03004b00 _080A883C: .4byte 0x0202f7c8 _080A8840: ldr r0, _080A88C0 _080A8842: ldrb r1, [r0] ldr r0, _080A88C4 adds r0, r1, r0 ldrb r7, [r0] adds r0, r1, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080A886C ldr r1, _080A88C8 ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] movs r2, 0x6 ldrsh r0, [r1, r2] cmp r0, 0x1 bne _080A886C ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080A886C: ldr r5, _080A88C8 ldrh r0, [r5, 0x8] strh r0, [r6, 0x2E] ldr r0, _080A88CC lsls r4, r7, 4 adds r4, r7 lsls r4, 2 adds r4, r0 ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r6, 0x30] ldrh r1, [r5, 0x2] adds r0, r1 strh r0, [r6, 0x32] ldrh r0, [r4, 0x26] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r6, 0x34] ldrh r1, [r5, 0x4] adds r0, r1 strh r0, [r6, 0x36] adds r0, r6, 0 bl sub_8078A5C ldrh r0, [r4, 0x24] lsls r0, 8 strh r0, [r6, 0x34] ldrh r0, [r4, 0x26] lsls r0, 8 strh r0, [r6, 0x36] strh r7, [r6, 0x38] ldrh r0, [r5, 0xA] strh r0, [r6, 0x3A] lsls r0, 16 cmp r0, 0 bne _080A88D4 ldr r1, _080A88D0 adds r0, r6, 0 bl oamt_set_x3A_32 b _080A88DC .align 2, 0 _080A88C0: .4byte 0x0202f7c9 _080A88C4: .4byte 0x02024be0 _080A88C8: .4byte 0x03004b00 _080A88CC: .4byte 0x02020004 _080A88D0: .4byte move_anim_8072740 _080A88D4: ldr r1, _080A88E8 adds r0, r6, 0 bl oamt_set_x3A_32 _080A88DC: ldr r0, _080A88EC str r0, [r6, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A88E8: .4byte sub_80A88F0 _080A88EC: .4byte sub_80784A8 thumb_func_end sub_80A8818 thumb_func_start sub_80A88F0 sub_80A88F0: @ 80A88F0 push {r4,lr} ldr r4, _080A891C movs r1, 0x38 ldrsh r2, [r0, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 movs r3, 0 strh r3, [r1, 0x24] movs r1, 0x38 ldrsh r2, [r0, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 strh r3, [r1, 0x26] bl move_anim_8072740 pop {r4} pop {r0} bx r0 .align 2, 0 _080A891C: .4byte 0x02020004 thumb_func_end sub_80A88F0 thumb_func_start sub_80A8920 sub_80A8920: @ 80A8920 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r5, _080A89A4 movs r0, 0x6 ldrsh r1, [r5, r0] movs r0, 0x80 lsls r0, 8 bl __divsi3 lsls r0, 16 lsrs r7, r0, 16 ldr r0, _080A89A8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080A8952 ldrh r0, [r5, 0x2] negs r0, r0 strh r0, [r5, 0x2] ldrh r0, [r5, 0xA] negs r0, r0 strh r0, [r5, 0xA] _080A8952: ldrb r0, [r5] bl obj_id_for_side_relative_to_move ldr r1, _080A89AC lsls r4, r6, 2 adds r4, r6 lsls r4, 3 adds r4, r1 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x8] movs r1, 0x2 ldrsh r0, [r5, r1] lsls r0, 8 movs r2, 0x6 ldrsh r1, [r5, r2] bl __divsi3 strh r0, [r4, 0xA] ldrh r0, [r5, 0x4] strh r0, [r4, 0xC] ldrh r0, [r5, 0x6] strh r0, [r4, 0xE] ldrh r0, [r5, 0x8] strh r0, [r4, 0x10] movs r1, 0xA ldrsh r0, [r5, r1] lsls r0, 8 movs r2, 0xC ldrsh r1, [r5, r2] bl __divsi3 strh r0, [r4, 0x12] ldrh r0, [r5, 0xC] strh r0, [r4, 0x14] strh r7, [r4, 0x16] ldr r0, _080A89B0 str r0, [r4] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A89A4: .4byte 0x03004b00 _080A89A8: .4byte 0x0202f7c8 _080A89AC: .4byte 0x03004b20 _080A89B0: .4byte sub_80A89B4 thumb_func_end sub_80A8920 thumb_func_start sub_80A89B4 sub_80A89B4: @ 80A89B4 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080A8A0C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r5, r1, r2 ldrb r1, [r5, 0x8] ldrh r0, [r5, 0xA] ldrh r2, [r5, 0x1E] adds r0, r2 strh r0, [r5, 0x1E] ldr r2, _080A8A10 lsls r4, r1, 4 adds r4, r1 lsls r4, 2 adds r4, r2 lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] ldrh r0, [r5, 0x1C] lsrs r0, 8 movs r2, 0xC ldrsh r1, [r5, r2] bl sine strh r0, [r4, 0x26] ldrh r0, [r5, 0x16] ldrh r1, [r5, 0x1C] adds r0, r1 strh r0, [r5, 0x1C] ldrh r0, [r5, 0xE] subs r0, 0x1 strh r0, [r5, 0xE] lsls r0, 16 cmp r0, 0 bne _080A8A04 ldr r0, _080A8A14 str r0, [r5] _080A8A04: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A8A0C: .4byte 0x03004b20 _080A8A10: .4byte 0x02020004 _080A8A14: .4byte sub_80A8A18 thumb_func_end sub_80A89B4 thumb_func_start sub_80A8A18 sub_80A8A18: @ 80A8A18 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, _080A8A3C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r1, [r4, 0x10] movs r2, 0x10 ldrsh r0, [r4, r2] cmp r0, 0 ble _080A8A40 subs r0, r1, 0x1 strh r0, [r4, 0x10] b _080A8A74 .align 2, 0 _080A8A3C: .4byte 0x03004b20 _080A8A40: ldrb r0, [r4, 0x8] ldrh r2, [r4, 0x12] ldrh r1, [r4, 0x20] adds r2, r1 strh r2, [r4, 0x20] ldr r3, _080A8A7C lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 lsls r2, 16 asrs r2, 24 ldrh r0, [r4, 0x1E] lsls r0, 16 asrs r0, 24 adds r2, r0 strh r2, [r1, 0x24] ldrh r0, [r4, 0x14] subs r0, 0x1 strh r0, [r4, 0x14] lsls r0, 16 cmp r0, 0 bne _080A8A74 adds r0, r5, 0 bl move_anim_task_del _080A8A74: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A8A7C: .4byte 0x02020004 thumb_func_end sub_80A8A18 thumb_func_start sub_80A8A80 sub_80A8A80: @ 80A8A80 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080A8AA4 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0x2 beq _080A8AAE cmp r0, 0x2 bgt _080A8AA8 cmp r0, 0 blt _080A8AE0 ldrb r0, [r1] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r2, r0, 24 b _080A8AE8 .align 2, 0 _080A8AA4: .4byte 0x03004b00 _080A8AA8: cmp r0, 0x3 beq _080A8AB8 b _080A8AE0 _080A8AAE: ldr r5, _080A8AB4 b _080A8ABA .align 2, 0 _080A8AB4: .4byte 0x0202f7c8 _080A8AB8: ldr r5, _080A8AD8 _080A8ABA: ldrb r0, [r5] movs r4, 0x2 eors r0, r4 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080A8AE0 ldr r1, _080A8ADC ldrb r0, [r5] eors r0, r4 adds r0, r1 ldrb r2, [r0] b _080A8AE8 .align 2, 0 _080A8AD8: .4byte 0x0202f7c9 _080A8ADC: .4byte 0x02024be0 _080A8AE0: adds r0, r6, 0 bl move_anim_task_del b _080A8B28 _080A8AE8: ldr r1, _080A8B08 lsls r4, r6, 2 adds r0, r4, r6 lsls r0, 3 adds r5, r0, r1 strh r2, [r5, 0x8] ldr r0, _080A8B0C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080A8B14 ldr r0, _080A8B10 ldrh r0, [r0, 0x2] b _080A8B1A .align 2, 0 _080A8B08: .4byte 0x03004b20 _080A8B0C: .4byte 0x0202f7c9 _080A8B10: .4byte 0x03004b00 _080A8B14: ldr r0, _080A8B30 ldrh r0, [r0, 0x2] negs r0, r0 _080A8B1A: strh r0, [r5, 0xA] ldr r0, _080A8B34 adds r1, r4, r6 lsls r1, 3 adds r1, r0 ldr r0, _080A8B38 str r0, [r1] _080A8B28: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A8B30: .4byte 0x03004b00 _080A8B34: .4byte 0x03004b20 _080A8B38: .4byte sub_80A8B3C thumb_func_end sub_80A8A80 thumb_func_start sub_80A8B3C sub_80A8B3C: @ 80A8B3C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080A8B80 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrb r2, [r1, 0x8] ldr r3, _080A8B84 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 ldrh r1, [r1, 0xA] ldrh r2, [r0, 0x24] adds r1, r2 strh r1, [r0, 0x24] movs r2, 0x24 ldrsh r1, [r0, r2] movs r2, 0x20 ldrsh r0, [r0, r2] adds r1, r0 adds r1, 0x20 movs r0, 0x98 lsls r0, 1 cmp r1, r0 bls _080A8B7A adds r0, r4, 0 bl move_anim_task_del _080A8B7A: pop {r4} pop {r0} bx r0 .align 2, 0 _080A8B80: .4byte 0x03004b20 _080A8B84: .4byte 0x02020004 thumb_func_end sub_80A8B3C thumb_func_start sub_80A8B88 sub_80A8B88: @ 80A8B88 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r6, _080A8BD8 ldrb r0, [r6] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080A8BA4 ldr r1, _080A8BDC ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] _080A8BA4: ldr r4, _080A8BDC ldrb r0, [r4, 0x8] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 ldr r2, _080A8BE0 lsls r3, r5, 2 adds r1, r3, r5 lsls r1, 3 adds r2, r1, r2 ldrh r1, [r4] strh r1, [r2, 0x8] ldrh r1, [r4, 0x2] strh r1, [r2, 0xA] ldrh r1, [r4, 0x4] strh r1, [r2, 0xC] ldrh r1, [r4, 0x6] strh r1, [r2, 0xE] strh r0, [r2, 0x10] movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bne _080A8BE4 ldrb r0, [r6] b _080A8BE8 .align 2, 0 _080A8BD8: .4byte 0x0202f7c8 _080A8BDC: .4byte 0x03004b00 _080A8BE0: .4byte 0x03004b20 _080A8BE4: ldr r0, _080A8C00 ldrb r0, [r0] _080A8BE8: strh r0, [r2, 0x12] ldr r1, _080A8C04 adds r0, r3, r5 lsls r0, 3 adds r0, r1 movs r1, 0x1 strh r1, [r0, 0x20] ldr r1, _080A8C08 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A8C00: .4byte 0x0202f7c9 _080A8C04: .4byte 0x03004b20 _080A8C08: .4byte sub_80A8C0C thumb_func_end sub_80A8B88 thumb_func_start sub_80A8C0C sub_80A8C0C: @ 80A8C0C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080A8C5C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 ldrb r7, [r4, 0x10] ldrh r0, [r4, 0xC] ldrh r1, [r4, 0x1C] adds r0, r1 lsls r1, r0, 16 strh r0, [r4, 0x1C] lsrs r1, 24 mov r8, r1 mov r0, r8 movs r2, 0xA ldrsh r1, [r4, r2] bl sine lsls r0, 16 lsrs r5, r0, 16 mov r9, r5 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bne _080A8C64 ldr r0, _080A8C60 lsls r2, r7, 4 adds r1, r2, r7 lsls r1, 2 adds r1, r0 strh r5, [r1, 0x24] mov r9, r0 adds r4, r2, 0 b _080A8CAA .align 2, 0 _080A8C5C: .4byte 0x03004b20 _080A8C60: .4byte 0x02020004 _080A8C64: ldrb r0, [r4, 0x12] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080A8C8C ldr r1, _080A8C88 lsls r2, r7, 4 adds r0, r2, r7 lsls r0, 2 adds r3, r0, r1 lsls r0, r5, 16 asrs r0, 16 mov r9, r1 adds r4, r2, 0 cmp r0, 0 bge _080A8CA8 b _080A8CA6 .align 2, 0 _080A8C88: .4byte 0x02020004 _080A8C8C: ldr r1, _080A8D2C lsls r2, r7, 4 adds r0, r2, r7 lsls r0, 2 adds r3, r0, r1 mov r4, r9 lsls r0, r4, 16 asrs r0, 16 mov r9, r1 adds r4, r2, 0 cmp r0, 0 bge _080A8CA6 negs r0, r0 _080A8CA6: negs r0, r0 _080A8CA8: strh r0, [r3, 0x26] _080A8CAA: mov r5, r8 cmp r5, 0x7F bls _080A8CCC ldr r1, _080A8D30 lsls r2, r6, 2 adds r0, r2, r6 lsls r0, 3 adds r3, r0, r1 movs r5, 0x1E ldrsh r0, [r3, r5] adds r5, r1, 0 cmp r0, 0 bne _080A8CCC movs r1, 0x20 ldrsh r0, [r3, r1] cmp r0, 0x1 beq _080A8CEE _080A8CCC: mov r2, r8 cmp r2, 0x7E bhi _080A8D20 ldr r1, _080A8D30 lsls r2, r6, 2 adds r0, r2, r6 lsls r0, 3 adds r3, r0, r1 movs r5, 0x1E ldrsh r0, [r3, r5] adds r5, r1, 0 cmp r0, 0x1 bne _080A8D20 movs r1, 0x20 ldrsh r0, [r3, r1] cmp r0, 0 bne _080A8D20 _080A8CEE: adds r1, r2, r6 lsls r1, 3 adds r1, r5 ldrh r0, [r1, 0x1E] movs r2, 0x1 eors r0, r2 strh r0, [r1, 0x1E] ldrh r0, [r1, 0x20] eors r0, r2 strh r0, [r1, 0x20] ldrh r0, [r1, 0xE] subs r0, 0x1 strh r0, [r1, 0xE] lsls r0, 16 asrs r3, r0, 16 cmp r3, 0 bne _080A8D20 adds r0, r4, r7 lsls r0, 2 add r0, r9 strh r3, [r0, 0x24] strh r3, [r0, 0x26] adds r0, r6, 0 bl move_anim_task_del _080A8D20: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A8D2C: .4byte 0x02020004 _080A8D30: .4byte 0x03004b20 thumb_func_end sub_80A8C0C thumb_func_start sub_80A8D34 sub_80A8D34: @ 80A8D34 push {r4-r6,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r6, _080A8D80 ldrb r0, [r6, 0x6] bl obj_id_for_side_relative_to_move adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldrb r1, [r6, 0x8] adds r0, r5, 0 bl sub_8078E70 ldr r1, _080A8D84 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrh r1, [r6] strh r1, [r0, 0x8] ldrh r1, [r6, 0x2] strh r1, [r0, 0xA] ldrh r1, [r6, 0x4] strh r1, [r0, 0xC] ldrh r1, [r6, 0x4] strh r1, [r0, 0xE] strh r5, [r0, 0x10] movs r1, 0x80 lsls r1, 1 strh r1, [r0, 0x1C] strh r1, [r0, 0x1E] ldr r1, _080A8D88 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A8D80: .4byte 0x03004b00 _080A8D84: .4byte 0x03004b20 _080A8D88: .4byte sub_80A8D8C thumb_func_end sub_80A8D34 thumb_func_start sub_80A8D8C sub_80A8D8C: @ 80A8D8C push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, _080A8DEC lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x8] ldrh r1, [r4, 0x1C] adds r0, r1 strh r0, [r4, 0x1C] ldrh r0, [r4, 0xA] ldrh r3, [r4, 0x1E] adds r0, r3 strh r0, [r4, 0x1E] ldrb r0, [r4, 0x10] adds r6, r0, 0 movs r0, 0x1C ldrsh r1, [r4, r0] movs r3, 0x1E ldrsh r2, [r4, r3] adds r0, r6, 0 movs r3, 0 bl obj_id_set_rotscale ldrh r0, [r4, 0xC] subs r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 bne _080A8DFC ldrh r2, [r4, 0xE] movs r3, 0xE ldrsh r0, [r4, r3] cmp r0, 0 ble _080A8DF0 ldrh r0, [r4, 0x8] negs r0, r0 strh r0, [r4, 0x8] ldrh r0, [r4, 0xA] negs r0, r0 strh r0, [r4, 0xA] strh r2, [r4, 0xC] strh r1, [r4, 0xE] b _080A8DFC .align 2, 0 _080A8DEC: .4byte 0x03004b20 _080A8DF0: adds r0, r6, 0 bl sub_8078F40 adds r0, r5, 0 bl move_anim_task_del _080A8DFC: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80A8D8C thumb_func_start sub_80A8E04 sub_80A8E04: @ 80A8E04 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 ldr r4, _080A8E40 ldrb r0, [r4, 0x4] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r1, 0 bl sub_8078E70 ldr r1, _080A8E44 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r2, r0, r1 movs r1, 0 strh r1, [r2, 0xA] ldrh r0, [r4] strh r0, [r2, 0xC] movs r3, 0x6 ldrsh r0, [r4, r3] cmp r0, 0x1 beq _080A8E48 strh r1, [r2, 0xE] b _080A8E54 .align 2, 0 _080A8E40: .4byte 0x03004b00 _080A8E44: .4byte 0x03004b20 _080A8E48: ldrh r0, [r4] ldrh r1, [r4, 0x2] adds r3, r0, 0 muls r3, r1 adds r0, r3, 0 strh r0, [r2, 0xE] _080A8E54: ldr r1, _080A8E80 lsls r4, r7, 2 adds r0, r4, r7 lsls r0, 3 adds r5, r0, r1 ldr r6, _080A8E84 ldrh r0, [r6, 0x2] strh r0, [r5, 0x10] mov r0, r8 strh r0, [r5, 0x12] ldrh r0, [r6, 0x6] strh r0, [r5, 0x14] bl sub_8076BE0 lsls r0, 24 mov r8, r4 cmp r0, 0 beq _080A8E88 movs r0, 0x1 strh r0, [r5, 0x16] b _080A8EAC .align 2, 0 _080A8E80: .4byte 0x03004b20 _080A8E84: .4byte 0x03004b00 _080A8E88: movs r1, 0x4 ldrsh r0, [r6, r1] cmp r0, 0 bne _080A8E98 ldr r0, _080A8E94 b _080A8E9A .align 2, 0 _080A8E94: .4byte 0x0202f7c8 _080A8E98: ldr r0, _080A8EF0 _080A8E9A: ldrb r0, [r0] bl battle_side_get_owner movs r1, 0 lsls r0, 24 cmp r0, 0 bne _080A8EAA movs r1, 0x1 _080A8EAA: strh r1, [r5, 0x16] _080A8EAC: ldr r0, _080A8EF4 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r4, r1, r0 movs r3, 0x16 ldrsh r0, [r4, r3] cmp r0, 0 beq _080A8ED8 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080A8ED8 movs r1, 0xE ldrsh r0, [r4, r1] negs r0, r0 strh r0, [r4, 0xE] movs r2, 0x10 ldrsh r0, [r4, r2] negs r0, r0 strh r0, [r4, 0x10] _080A8ED8: ldr r0, _080A8EF4 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 ldr r0, _080A8EF8 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A8EF0: .4byte 0x0202f7c9 _080A8EF4: .4byte 0x03004b20 _080A8EF8: .4byte sub_80A8FD8 thumb_func_end sub_80A8E04 thumb_func_start sub_80A8EFC sub_80A8EFC: @ 80A8EFC push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 ldr r4, _080A8F38 ldrb r0, [r4, 0x4] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r1, 0 bl sub_8078E70 ldr r1, _080A8F3C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xA] ldrh r1, [r4] strh r1, [r0, 0xC] movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 bne _080A8F44 ldr r0, _080A8F40 b _080A8F46 .align 2, 0 _080A8F38: .4byte 0x03004b00 _080A8F3C: .4byte 0x03004b20 _080A8F40: .4byte 0x0202f7c8 _080A8F44: ldr r0, _080A8F74 _080A8F46: ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080A8F58 ldrh r0, [r4, 0x2] negs r0, r0 strh r0, [r4, 0x2] _080A8F58: ldr r0, _080A8F78 movs r2, 0x6 ldrsh r1, [r0, r2] adds r6, r0, 0 cmp r1, 0x1 beq _080A8F80 ldr r2, _080A8F7C lsls r3, r5, 2 adds r0, r3, r5 lsls r0, 3 adds r0, r2 movs r1, 0 strh r1, [r0, 0xE] b _080A8F9A .align 2, 0 _080A8F74: .4byte 0x0202f7c9 _080A8F78: .4byte 0x03004b00 _080A8F7C: .4byte 0x03004b20 _080A8F80: ldr r3, _080A8FD0 lsls r4, r5, 2 adds r0, r4, r5 lsls r0, 3 adds r0, r3 ldrh r2, [r6] ldrh r1, [r6, 0x2] adds r7, r2, 0 muls r7, r1 adds r1, r7, 0 strh r1, [r0, 0xE] adds r2, r3, 0 adds r3, r4, 0 _080A8F9A: adds r1, r3, r5 lsls r1, 3 adds r1, r2 ldrh r0, [r6, 0x2] strh r0, [r1, 0x10] mov r0, r8 strh r0, [r1, 0x12] ldrh r0, [r6, 0x6] strh r0, [r1, 0x14] movs r0, 0x1 strh r0, [r1, 0x16] movs r2, 0xE ldrsh r0, [r1, r2] negs r0, r0 strh r0, [r1, 0xE] movs r7, 0x10 ldrsh r0, [r1, r7] negs r0, r0 strh r0, [r1, 0x10] ldr r0, _080A8FD4 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A8FD0: .4byte 0x03004b20 _080A8FD4: .4byte sub_80A8FD8 thumb_func_end sub_80A8EFC thumb_func_start sub_80A8FD8 sub_80A8FD8: @ 80A8FD8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080A9030 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x10] ldrh r1, [r4, 0xE] adds r0, r1 strh r0, [r4, 0xE] ldrb r0, [r4, 0x12] movs r2, 0x80 lsls r2, 1 ldrh r3, [r4, 0xE] adds r1, r2, 0 bl obj_id_set_rotscale movs r2, 0x16 ldrsh r0, [r4, r2] cmp r0, 0 beq _080A900C ldrb r0, [r4, 0x12] bl sub_8078F9C _080A900C: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 movs r2, 0xC ldrsh r1, [r4, r2] cmp r0, r1 blt _080A9052 movs r1, 0x14 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080A9034 cmp r0, 0x1 ble _080A903A cmp r0, 0x2 beq _080A9042 b _080A903A .align 2, 0 _080A9030: .4byte 0x03004b20 _080A9034: ldrb r0, [r4, 0x12] bl sub_8078F40 _080A903A: adds r0, r5, 0 bl move_anim_task_del b _080A9052 _080A9042: movs r0, 0 strh r0, [r4, 0xA] movs r2, 0x10 ldrsh r0, [r4, r2] negs r0, r0 strh r0, [r4, 0x10] movs r0, 0x1 strh r0, [r4, 0x14] _080A9052: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80A8FD8 thumb_func_start sub_80A9058 sub_80A9058: @ 80A9058 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 ldr r0, _080A9084 movs r2, 0 ldrsh r1, [r0, r2] mov r8, r0 cmp r1, 0 bne _080A9090 ldr r4, _080A9088 lsls r5, r7, 2 adds r0, r5, r7 lsls r0, 3 adds r6, r0, r4 ldr r0, _080A908C ldrh r0, [r0] movs r1, 0xC bl __udivsi3 b _080A90A4 .align 2, 0 _080A9084: .4byte 0x03004b00 _080A9088: .4byte 0x03004b20 _080A908C: .4byte 0x0202f7bc _080A9090: ldr r4, _080A912C lsls r5, r7, 2 adds r0, r5, r7 lsls r0, 3 adds r6, r0, r4 ldr r0, _080A9130 ldr r0, [r0] movs r1, 0xC bl __divsi3 _080A90A4: strh r0, [r6, 0x26] lsls r0, 16 adds r1, r4, 0 cmp r0, 0 bgt _080A90B2 movs r0, 0x1 strh r0, [r6, 0x26] _080A90B2: movs r2, 0x26 ldrsh r0, [r6, r2] cmp r0, 0x10 ble _080A90BE movs r0, 0x10 strh r0, [r6, 0x26] _080A90BE: adds r4, r5, r7 lsls r4, 3 adds r4, r1 movs r0, 0x26 ldrsh r1, [r4, r0] lsrs r0, r1, 31 adds r1, r0 asrs r1, 1 movs r5, 0 strh r1, [r4, 0x24] ldrh r2, [r4, 0x26] movs r0, 0x1 ands r0, r2 adds r1, r0 strh r1, [r4, 0x22] strh r5, [r4, 0x20] mov r1, r8 ldrh r0, [r1, 0x6] strh r0, [r4, 0x1C] ldrh r0, [r1, 0x8] strh r0, [r4, 0x1E] movs r0, 0x1 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x16] ldr r2, _080A9134 movs r0, 0x16 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x24] strh r0, [r4, 0x18] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x26] strh r0, [r4, 0x1A] strh r5, [r4, 0x8] mov r1, r8 ldrh r0, [r1, 0x2] strh r0, [r4, 0xA] ldrh r0, [r1, 0x4] strh r0, [r4, 0xC] ldr r0, _080A9138 str r0, [r4] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A912C: .4byte 0x03004b20 _080A9130: .4byte 0x0202f7b8 _080A9134: .4byte 0x02020004 _080A9138: .4byte sub_80A913C thumb_func_end sub_80A9058 thumb_func_start sub_80A913C sub_80A913C: @ 80A913C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080A9190 adds r3, r0, r1 ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] lsls r0, 16 asrs r0, 16 movs r2, 0xA ldrsh r1, [r3, r2] cmp r0, r1 ble _080A921A movs r0, 0 strh r0, [r3, 0x8] ldrh r0, [r3, 0x20] adds r1, r0, 0x1 movs r0, 0x1 ands r1, r0 strh r1, [r3, 0x20] movs r2, 0x1C ldrsh r0, [r3, r2] cmp r0, 0 beq _080A91AE cmp r1, 0 beq _080A9198 ldr r2, _080A9194 movs r0, 0x16 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r3, 0x22] ldrh r2, [r3, 0x18] adds r1, r2 b _080A91AC .align 2, 0 _080A9190: .4byte 0x03004b20 _080A9194: .4byte 0x02020004 _080A9198: ldr r2, _080A91D4 movs r0, 0x16 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r3, 0x18] ldrh r2, [r3, 0x24] subs r1, r2 _080A91AC: strh r1, [r0, 0x24] _080A91AE: movs r1, 0x1E ldrsh r0, [r3, r1] cmp r0, 0 beq _080A91E8 movs r2, 0x20 ldrsh r4, [r3, r2] cmp r4, 0 beq _080A91D8 ldr r2, _080A91D4 movs r0, 0x16 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r3, 0x26] strh r1, [r0, 0x26] b _080A91E8 .align 2, 0 _080A91D4: .4byte 0x02020004 _080A91D8: ldr r2, _080A9220 movs r0, 0x16 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r4, [r0, 0x26] _080A91E8: ldrh r0, [r3, 0xC] subs r0, 0x1 strh r0, [r3, 0xC] lsls r0, 16 asrs r4, r0, 16 cmp r4, 0 bne _080A921A ldr r2, _080A9220 movs r0, 0x16 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r4, [r0, 0x24] movs r0, 0x16 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r4, [r0, 0x26] adds r0, r5, 0 bl move_anim_task_del _080A921A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A9220: .4byte 0x02020004 thumb_func_end sub_80A913C thumb_func_start itemid_copy_name itemid_copy_name: @ 80A9224 push {r4,lr} adds r4, r1, 0 lsls r0, 16 lsrs r0, 16 cmp r0, 0xAF bne _080A924C movs r0, 0x2B bl GetBerryInfo adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldr r1, _080A9248 adds r0, r4, 0 bl StringAppend b _080A9258 .align 2, 0 _080A9248: .4byte gUnknown_0840E6D4 _080A924C: bl itemid_get_item adds r1, r0, 0 adds r0, r4, 0 bl StringCopy _080A9258: pop {r4} pop {r0} bx r0 thumb_func_end itemid_copy_name thumb_func_start unref_sub_80A9260 unref_sub_80A9260: @ 80A9260 push {lr} lsls r0, 24 movs r2, 0 ldr r1, _080A9284 lsrs r0, 21 adds r0, r1 ldrb r1, [r0, 0x4] cmp r2, r1 bcs _080A9292 ldr r3, [r0] _080A9274: lsls r0, r2, 2 adds r0, r3 ldrh r0, [r0] cmp r0, 0 bne _080A9288 lsls r0, r2, 24 asrs r0, 24 b _080A9296 .align 2, 0 _080A9284: .4byte gUnknown_083C1618 _080A9288: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r1 bcc _080A9274 _080A9292: movs r0, 0x1 negs r0, r0 _080A9296: pop {r1} bx r1 thumb_func_end unref_sub_80A9260 thumb_func_start IsBagPocketNonEmpty IsBagPocketNonEmpty: @ 80A929C push {lr} lsls r0, 24 movs r2, 0 ldr r1, _080A92C0 lsrs r0, 21 subs r0, 0x8 adds r0, r1 ldrb r1, [r0, 0x4] cmp r2, r1 bcs _080A92CE ldr r3, [r0] _080A92B2: lsls r0, r2, 2 adds r0, r3 ldrh r0, [r0] cmp r0, 0 beq _080A92C4 movs r0, 0x1 b _080A92D0 .align 2, 0 _080A92C0: .4byte gUnknown_083C1618 _080A92C4: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r1 bcc _080A92B2 _080A92CE: movs r0, 0 _080A92D0: pop {r1} bx r1 thumb_func_end IsBagPocketNonEmpty thumb_func_start sub_80A92D4 sub_80A92D4: @ 80A92D4 push {r4-r7,lr} lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 lsrs r4, r1, 16 adds r0, r5, 0 bl itemid_get_pocket_number lsls r0, 24 cmp r0, 0 bne _080A92F0 b _080A9336 _080A92EC: movs r0, 0x1 b _080A9338 _080A92F0: adds r0, r5, 0 bl itemid_get_pocket_number subs r0, 0x1 lsls r0, 24 movs r3, 0 ldr r6, _080A9340 lsrs r2, r0, 21 adds r0, r2, r6 ldrb r0, [r0, 0x4] cmp r3, r0 bcs _080A9336 adds r7, r6, 0 _080A930A: adds r0, r2, r7 ldr r1, [r0] lsls r0, r3, 2 adds r1, r0, r1 ldrh r0, [r1] cmp r0, r5 bne _080A9328 ldrh r0, [r1, 0x2] cmp r0, r4 bcs _080A92EC subs r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _080A92EC _080A9328: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r0, r2, r6 ldrb r0, [r0, 0x4] cmp r3, r0 bcc _080A930A _080A9336: movs r0, 0 _080A9338: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080A9340: .4byte gUnknown_083C1618 thumb_func_end sub_80A92D4 thumb_func_start sub_80A9344 sub_80A9344: @ 80A9344 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 lsrs r6, r0, 16 lsls r1, 16 lsrs r4, r1, 16 adds r0, r6, 0 bl itemid_get_pocket_number lsls r0, 24 cmp r0, 0 beq _080A9408 adds r0, r6, 0 bl itemid_get_pocket_number subs r0, 0x1 lsls r0, 24 lsrs r1, r0, 24 ldr r5, _080A940C cmp r1, 0x3 beq _080A9376 movs r5, 0x63 _080A9376: movs r3, 0 ldr r0, _080A9410 mov r8, r0 lsls r2, r1, 3 adds r0, r2, r0 mov r12, r8 mov r9, r2 ldrb r0, [r0, 0x4] cmp r3, r0 bcs _080A93CA mov r10, r12 subs r0, r1, 0x2 lsls r0, 24 lsrs r7, r0, 24 _080A9392: mov r1, r10 adds r0, r2, r1 ldr r1, [r0] lsls r0, r3, 2 adds r1, r0, r1 ldrh r0, [r1] cmp r0, r6 bne _080A93BA ldrh r1, [r1, 0x2] adds r0, r1, r4 cmp r0, r5 ble _080A9414 cmp r7, 0x1 bls _080A9408 subs r0, r5, r1 subs r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _080A9414 _080A93BA: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 mov r1, r8 adds r0, r2, r1 ldrb r0, [r0, 0x4] cmp r3, r0 bcc _080A9392 _080A93CA: cmp r4, 0 beq _080A9414 movs r3, 0 mov r6, r12 mov r2, r9 adds r0, r2, r6 ldrb r0, [r0, 0x4] cmp r3, r0 bcs _080A9404 adds r7, r6, 0 _080A93DE: adds r0, r2, r7 ldr r1, [r0] lsls r0, r3, 2 adds r0, r1 ldrh r0, [r0] cmp r0, 0 bne _080A93F6 cmp r4, r5 bls _080A9414 subs r0, r4, r5 lsls r0, 16 lsrs r4, r0, 16 _080A93F6: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r0, r2, r6 ldrb r0, [r0, 0x4] cmp r3, r0 bcc _080A93DE _080A9404: cmp r4, 0 beq _080A9414 _080A9408: movs r0, 0 b _080A9416 .align 2, 0 _080A940C: .4byte 0x000003e7 _080A9410: .4byte gUnknown_083C1618 _080A9414: movs r0, 0x1 _080A9416: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A9344 thumb_func_start sub_80A9424 sub_80A9424: @ 80A9424 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x100 lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r1, 16 lsrs r4, r1, 16 bl itemid_get_pocket_number lsls r0, 24 cmp r0, 0 beq _080A9510 mov r0, r8 bl itemid_get_pocket_number subs r0, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080A94F8 lsls r0, r6, 3 adds r5, r0, r1 ldr r1, [r5] ldrb r2, [r5, 0x4] lsls r2, 2 mov r0, sp bl memcpy ldr r7, _080A94FC cmp r6, 0x3 beq _080A9468 movs r7, 0x63 _080A9468: movs r1, 0 ldrb r0, [r5, 0x4] cmp r1, r0 bcs _080A94B2 subs r0, r6, 0x2 lsls r0, 24 lsrs r0, 24 mov r12, r0 _080A9478: lsls r0, r1, 2 mov r2, sp adds r3, r2, r0 ldrh r0, [r3] cmp r0, r8 bne _080A94A6 ldrh r2, [r3, 0x2] adds r0, r2, r4 cmp r0, r7 ble _080A9500 mov r0, r12 cmp r0, 0x1 bls _080A9510 subs r0, r7, r2 subs r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 strh r7, [r3, 0x2] ldr r2, _080A94F8 mov r9, r2 lsls r3, r6, 3 cmp r4, 0 beq _080A9516 _080A94A6: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 ldrb r0, [r5, 0x4] cmp r1, r0 bcc _080A9478 _080A94B2: ldr r2, _080A94F8 mov r9, r2 lsls r3, r6, 3 cmp r4, 0 beq _080A9516 movs r1, 0 adds r0, r3, r2 ldrb r0, [r0, 0x4] cmp r1, r0 bcs _080A94F2 mov r6, r9 adds r5, r3, r6 _080A94CA: lsls r0, r1, 2 mov r6, sp adds r2, r6, r0 ldrh r0, [r2] cmp r0, 0 bne _080A94E6 mov r0, r8 strh r0, [r2] cmp r4, r7 bls _080A9514 subs r0, r4, r7 lsls r0, 16 lsrs r4, r0, 16 strh r7, [r2, 0x2] _080A94E6: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 ldrb r2, [r5, 0x4] cmp r1, r2 bcc _080A94CA _080A94F2: cmp r4, 0 beq _080A9516 b _080A9510 .align 2, 0 _080A94F8: .4byte gUnknown_083C1618 _080A94FC: .4byte 0x000003e7 _080A9500: strh r0, [r3, 0x2] ldr r0, _080A950C lsls r1, r6, 3 adds r1, r0 b _080A951A .align 2, 0 _080A950C: .4byte gUnknown_083C1618 _080A9510: movs r0, 0 b _080A9528 _080A9514: strh r4, [r2, 0x2] _080A9516: mov r6, r9 adds r1, r3, r6 _080A951A: ldr r0, [r1] ldrb r2, [r1, 0x4] lsls r2, 2 mov r1, sp bl memcpy movs r0, 0x1 _080A9528: add sp, 0x100 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A9424 thumb_func_start sub_80A9538 sub_80A9538: @ 80A9538 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 lsrs r6, r0, 16 lsls r1, 16 lsrs r4, r1, 16 movs r7, 0 adds r0, r6, 0 bl itemid_get_pocket_number lsls r0, 24 cmp r0, 0 beq _080A959E cmp r6, 0 beq _080A959E adds r0, r6, 0 bl itemid_get_pocket_number subs r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r12, r0 movs r5, 0 ldr r1, _080A95A4 lsls r2, r0, 3 adds r0, r2, r1 ldrb r0, [r0, 0x4] cmp r5, r0 bcs _080A959A mov r8, r1 _080A9576: mov r0, r8 adds r3, r2, r0 ldr r0, [r3] lsls r1, r5, 2 adds r1, r0 ldrh r0, [r1] cmp r0, r6 bne _080A958E ldrh r0, [r1, 0x2] adds r0, r7, r0 lsls r0, 16 lsrs r7, r0, 16 _080A958E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldrb r3, [r3, 0x4] cmp r5, r3 bcc _080A9576 _080A959A: cmp r7, r4 bcs _080A95A8 _080A959E: movs r0, 0 b _080A9664 .align 2, 0 _080A95A4: .4byte gUnknown_083C1618 _080A95A8: ldr r0, _080A95DC mov r2, r12 lsls r1, r2, 3 adds r5, r1, r0 ldr r2, _080A95E0 ldrb r3, [r5, 0x4] mov r8, r0 adds r7, r1, 0 ldrb r0, [r2] cmp r3, r0 bls _080A9606 ldrb r0, [r2] ldr r1, [r5] lsls r0, 2 adds r1, r0, r1 ldrh r0, [r1] cmp r0, r6 bne _080A9606 ldrh r0, [r1, 0x2] cmp r0, r4 bcc _080A95E4 subs r0, r4 strh r0, [r1, 0x2] movs r4, 0 b _080A95EE .align 2, 0 _080A95DC: .4byte gUnknown_083C1618 _080A95E0: .4byte 0x02038560 _080A95E4: subs r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 movs r0, 0 strh r0, [r1, 0x2] _080A95EE: mov r1, r8 adds r0, r7, r1 ldrb r1, [r2] ldr r0, [r0] lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x2] cmp r0, 0 bne _080A9602 strh r0, [r1] _080A9602: cmp r4, 0 beq _080A9662 _080A9606: movs r5, 0 adds r1, r7, 0 mov r2, r8 adds r0, r1, r2 ldrb r2, [r0, 0x4] cmp r5, r2 bcs _080A9662 mov r12, r8 adds r3, r0, 0 _080A9618: mov r2, r12 adds r0, r1, r2 ldr r0, [r0] lsls r1, r5, 2 adds r2, r1, r0 ldrh r0, [r2] cmp r0, r6 bne _080A9650 ldrh r0, [r2, 0x2] cmp r0, r4 bcc _080A9636 subs r0, r4 strh r0, [r2, 0x2] movs r4, 0 b _080A9640 _080A9636: subs r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 movs r0, 0 strh r0, [r2, 0x2] _080A9640: ldr r0, [r3] adds r1, r0 ldrh r0, [r1, 0x2] cmp r0, 0 bne _080A964C strh r0, [r1] _080A964C: cmp r4, 0 beq _080A9662 _080A9650: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r1, r7, 0 mov r2, r8 adds r0, r1, r2 ldrb r0, [r0, 0x4] cmp r5, r0 bcc _080A9618 _080A9662: movs r0, 0x1 _080A9664: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A9538 thumb_func_start sub_80A9670 sub_80A9670: @ 80A9670 push {lr} lsls r0, 16 lsrs r0, 16 bl itemid_get_pocket_number lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80A9670 thumb_func_start sub_80A9684 sub_80A9684: @ 80A9684 push {r4,lr} adds r4, r0, 0 lsls r1, 24 movs r2, 0 lsrs r1, 24 cmp r2, r1 bcs _080A96A6 movs r3, 0 _080A9694: lsls r0, r2, 2 adds r0, r4 strh r3, [r0] strh r3, [r0, 0x2] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r1 bcc _080A9694 _080A96A6: pop {r4} pop {r0} bx r0 thumb_func_end sub_80A9684 thumb_func_start sub_80A96AC sub_80A96AC: @ 80A96AC push {lr} movs r1, 0 ldr r3, _080A96CC movs r2, 0x93 lsls r2, 3 _080A96B6: lsls r0, r1, 24 asrs r1, r0, 24 lsls r0, r1, 2 adds r0, r3 adds r0, r2 ldrh r0, [r0] cmp r0, 0 bne _080A96D0 adds r0, r1, 0 b _080A96E0 .align 2, 0 _080A96CC: .4byte 0x02025734 _080A96D0: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 asrs r0, 24 cmp r0, 0x31 ble _080A96B6 movs r0, 0x1 negs r0, r0 _080A96E0: pop {r1} bx r1 thumb_func_end sub_80A96AC thumb_func_start sub_80A96E4 sub_80A96E4: @ 80A96E4 push {r4,lr} movs r2, 0 movs r1, 0 ldr r4, _080A9714 movs r3, 0x93 lsls r3, 3 _080A96F0: lsls r0, r1, 2 adds r0, r4 adds r0, r3 ldrh r0, [r0] cmp r0, 0 beq _080A9702 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 _080A9702: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x31 bls _080A96F0 adds r0, r2, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080A9714: .4byte 0x02025734 thumb_func_end sub_80A96E4 thumb_func_start sub_80A9718 sub_80A9718: @ 80A9718 push {r4-r7,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 16 lsrs r1, 16 movs r3, 0 ldr r7, _080A9744 movs r6, 0x93 lsls r6, 3 ldr r5, _080A9748 _080A972C: lsls r0, r3, 2 adds r2, r0, r7 adds r0, r2, r6 ldrh r0, [r0] cmp r0, r4 bne _080A974C adds r0, r2, r5 ldrh r0, [r0] cmp r0, r1 bcc _080A974C movs r0, 0x1 b _080A9758 .align 2, 0 _080A9744: .4byte 0x02025734 _080A9748: .4byte 0x0000049a _080A974C: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x31 bls _080A972C movs r0, 0 _080A9758: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A9718 thumb_func_start sub_80A9760 sub_80A9760: @ 80A9760 push {r4-r7,lr} sub sp, 0xC8 lsls r0, 16 lsrs r6, r0, 16 lsls r1, 16 lsrs r4, r1, 16 ldr r1, _080A97C4 mov r0, sp movs r2, 0xC8 bl memcpy movs r5, 0 ldr r0, _080A97C8 adds r7, r0, 0 _080A977C: lsls r0, r5, 2 mov r1, sp adds r2, r1, r0 ldrh r0, [r2] cmp r0, r6 bne _080A97A0 ldrh r1, [r2, 0x2] adds r0, r1, r4 ldr r3, _080A97CC cmp r0, r3 ble _080A97D0 adds r0, r4, r7 adds r0, r1, r0 lsls r0, 16 lsrs r4, r0, 16 strh r3, [r2, 0x2] cmp r4, 0 beq _080A97DC _080A97A0: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x31 bls _080A977C cmp r4, 0 beq _080A97DC bl sub_80A96AC lsls r0, 24 asrs r1, r0, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080A97D4 movs r0, 0 b _080A97E8 .align 2, 0 _080A97C4: .4byte 0x02025bcc _080A97C8: .4byte 0x0000fc19 _080A97CC: .4byte 0x000003e7 _080A97D0: strh r0, [r2, 0x2] b _080A97DC _080A97D4: lsls r0, r1, 2 add r0, sp strh r6, [r0] strh r4, [r0, 0x2] _080A97DC: ldr r0, _080A97F0 mov r1, sp movs r2, 0xC8 bl memcpy movs r0, 0x1 _080A97E8: add sp, 0xC8 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080A97F0: .4byte 0x02025bcc thumb_func_end sub_80A9760 thumb_func_start sub_80A97F4 sub_80A97F4: @ 80A97F4 push {lr} lsls r0, 24 lsls r1, 16 lsrs r1, 16 ldr r2, _080A9824 lsrs r0, 22 adds r3, r0, r2 ldr r0, _080A9828 adds r2, r3, r0 ldrh r0, [r2] subs r0, r1 strh r0, [r2] lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _080A9820 movs r2, 0x93 lsls r2, 3 adds r0, r3, r2 strh r1, [r0] bl sub_80A982C _080A9820: pop {r0} bx r0 .align 2, 0 _080A9824: .4byte 0x02025734 _080A9828: .4byte 0x0000049a thumb_func_end sub_80A97F4 thumb_func_start sub_80A982C sub_80A982C: @ 80A982C push {r4-r7,lr} movs r2, 0 ldr r0, _080A987C mov r12, r0 _080A9834: adds r1, r2, 0x1 lsls r0, r1, 16 lsrs r3, r0, 16 adds r7, r1, 0 cmp r3, 0x31 bhi _080A986C lsls r1, r2, 2 mov r2, r12 adds r0, r1, r2 movs r2, 0x93 lsls r2, 3 adds r5, r0, r2 ldr r6, _080A9880 adds r4, r1, r6 _080A9850: ldrh r0, [r5] cmp r0, 0 bne _080A9862 ldr r2, [r4] lsls r1, r3, 2 adds r1, r6 ldr r0, [r1] str r0, [r4] str r2, [r1] _080A9862: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x31 bls _080A9850 _080A986C: lsls r0, r7, 16 lsrs r2, r0, 16 cmp r2, 0x30 bls _080A9834 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A987C: .4byte 0x02025734 _080A9880: .4byte 0x02025bcc thumb_func_end sub_80A982C thumb_func_start sub_80A9884 sub_80A9884: @ 80A9884 push {lr} ldr r0, _080A98A0 ldr r1, _080A98A4 adds r2, r0, r1 ldrh r1, [r2] ldr r3, _080A98A8 cmp r1, r3 beq _080A98AC movs r0, 0x88 lsls r0, 1 cmp r1, r0 beq _080A98B4 b _080A98B6 .align 2, 0 _080A98A0: .4byte 0x02025734 _080A98A4: .4byte 0x00000496 _080A98A8: .4byte 0x00000103 _080A98AC: movs r0, 0x88 lsls r0, 1 strh r0, [r2] b _080A98B6 _080A98B4: strh r3, [r2] _080A98B6: pop {r0} bx r0 thumb_func_end sub_80A9884 thumb_func_start itemid_sanitize itemid_sanitize: @ 80A98BC push {lr} lsls r0, 16 lsrs r1, r0, 16 movs r0, 0xAE lsls r0, 1 cmp r1, r0 bhi _080A98CE adds r0, r1, 0 b _080A98D0 _080A98CE: movs r0, 0 _080A98D0: pop {r1} bx r1 thumb_func_end itemid_sanitize thumb_func_start itemid_get_item itemid_get_item: @ 80A98D4 push {lr} lsls r0, 16 lsrs r0, 16 bl itemid_sanitize lsls r0, 16 lsrs r0, 16 movs r1, 0x2C muls r0, r1 ldr r1, _080A98F0 adds r0, r1 pop {r1} bx r1 .align 2, 0 _080A98F0: .4byte gItems thumb_func_end itemid_get_item thumb_func_start itemid_get_number itemid_get_number: @ 80A98F4 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, _080A9914 bl itemid_sanitize lsls r0, 16 lsrs r0, 16 movs r1, 0x2C muls r0, r1 adds r0, r4 ldrh r0, [r0, 0xE] pop {r4} pop {r1} bx r1 .align 2, 0 _080A9914: .4byte gItems thumb_func_end itemid_get_number thumb_func_start itemid_get_market_price itemid_get_market_price: @ 80A9918 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, _080A9938 bl itemid_sanitize lsls r0, 16 lsrs r0, 16 movs r1, 0x2C muls r0, r1 adds r0, r4 ldrh r0, [r0, 0x10] pop {r4} pop {r1} bx r1 .align 2, 0 _080A9938: .4byte gItems thumb_func_end itemid_get_market_price thumb_func_start itemid_get_x12 itemid_get_x12: @ 80A993C push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, _080A995C bl itemid_sanitize lsls r0, 16 lsrs r0, 16 movs r1, 0x2C muls r0, r1 adds r0, r4 ldrb r0, [r0, 0x12] pop {r4} pop {r1} bx r1 .align 2, 0 _080A995C: .4byte gItems thumb_func_end itemid_get_x12 thumb_func_start itemid_get_quality itemid_get_quality: @ 80A9960 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, _080A9980 bl itemid_sanitize lsls r0, 16 lsrs r0, 16 movs r1, 0x2C muls r0, r1 adds r0, r4 ldrb r0, [r0, 0x13] pop {r4} pop {r1} bx r1 .align 2, 0 _080A9980: .4byte gItems thumb_func_end itemid_get_quality thumb_func_start itemid_get_description itemid_get_description: @ 80A9984 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, _080A99A4 bl itemid_sanitize lsls r0, 16 lsrs r0, 16 movs r1, 0x2C muls r0, r1 adds r4, 0x14 adds r0, r4 ldr r0, [r0] pop {r4} pop {r1} bx r1 .align 2, 0 _080A99A4: .4byte gItems thumb_func_end itemid_get_description thumb_func_start sub_80A99A8 sub_80A99A8: @ 80A99A8 push {r4-r6,lr} adds r6, r0, 0 adds r0, r1, 0 adds r5, r2, 0x1 ldr r4, _080A99E4 lsls r0, 16 lsrs r0, 16 bl itemid_sanitize lsls r0, 16 lsrs r0, 16 movs r1, 0x2C muls r0, r1 adds r4, 0x14 adds r0, r4 ldr r3, [r0] adds r2, r6, 0 _080A99CA: ldrb r1, [r3] adds r0, r1, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080A99FA subs r5, 0x1 cmp r5, 0 bne _080A99E8 movs r0, 0xFF strb r0, [r2] movs r0, 0x1 b _080A9A02 .align 2, 0 _080A99E4: .4byte gItems _080A99E8: lsls r0, r1, 24 lsrs r0, 24 cmp r0, 0xFF bne _080A99F4 movs r0, 0 b _080A9A02 _080A99F4: adds r2, r6, 0 adds r3, 0x1 b _080A99CA _080A99FA: strb r1, [r2] adds r3, 0x1 adds r2, 0x1 b _080A99CA _080A9A02: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80A99A8 thumb_func_start itemid_is_unique itemid_is_unique: @ 80A9A08 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, _080A9A28 bl itemid_sanitize lsls r0, 16 lsrs r0, 16 movs r1, 0x2C muls r0, r1 adds r0, r4 ldrb r0, [r0, 0x18] pop {r4} pop {r1} bx r1 .align 2, 0 _080A9A28: .4byte gItems thumb_func_end itemid_is_unique thumb_func_start itemid_get_x19 itemid_get_x19: @ 80A9A2C push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, _080A9A4C bl itemid_sanitize lsls r0, 16 lsrs r0, 16 movs r1, 0x2C muls r0, r1 adds r0, r4 ldrb r0, [r0, 0x19] pop {r4} pop {r1} bx r1 .align 2, 0 _080A9A4C: .4byte gItems thumb_func_end itemid_get_x19 thumb_func_start itemid_get_pocket_number itemid_get_pocket_number: @ 80A9A50 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, _080A9A70 bl itemid_sanitize lsls r0, 16 lsrs r0, 16 movs r1, 0x2C muls r0, r1 adds r0, r4 ldrb r0, [r0, 0x1A] pop {r4} pop {r1} bx r1 .align 2, 0 _080A9A70: .4byte gItems thumb_func_end itemid_get_pocket_number thumb_func_start itemid_get_type itemid_get_type: @ 80A9A74 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, _080A9A94 bl itemid_sanitize lsls r0, 16 lsrs r0, 16 movs r1, 0x2C muls r0, r1 adds r0, r4 ldrb r0, [r0, 0x1B] pop {r4} pop {r1} bx r1 .align 2, 0 _080A9A94: .4byte gItems thumb_func_end itemid_get_type thumb_func_start itemid_get_overworld_function itemid_get_overworld_function: @ 80A9A98 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, _080A9AB8 bl itemid_sanitize lsls r0, 16 lsrs r0, 16 movs r1, 0x2C muls r0, r1 adds r4, 0x1C adds r0, r4 ldr r0, [r0] pop {r4} pop {r1} bx r1 .align 2, 0 _080A9AB8: .4byte gItems thumb_func_end itemid_get_overworld_function thumb_func_start itemid_get_usage itemid_get_usage: @ 80A9ABC push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, _080A9ADC bl itemid_sanitize lsls r0, 16 lsrs r0, 16 movs r1, 0x2C muls r0, r1 adds r0, r4 adds r0, 0x20 ldrb r0, [r0] pop {r4} pop {r1} bx r1 .align 2, 0 _080A9ADC: .4byte gItems thumb_func_end itemid_get_usage thumb_func_start itemid_get_battle_function itemid_get_battle_function: @ 80A9AE0 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, _080A9B00 bl itemid_sanitize lsls r0, 16 lsrs r0, 16 movs r1, 0x2C muls r0, r1 adds r4, 0x24 adds r0, r4 ldr r0, [r0] pop {r4} pop {r1} bx r1 .align 2, 0 _080A9B00: .4byte gItems thumb_func_end itemid_get_battle_function thumb_func_start itemid_get_x28 itemid_get_x28: @ 80A9B04 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, _080A9B24 bl itemid_sanitize lsls r0, 16 lsrs r0, 16 movs r1, 0x2C muls r0, r1 adds r0, r4 adds r0, 0x28 ldrb r0, [r0] pop {r4} pop {r1} bx r1 .align 2, 0 _080A9B24: .4byte gItems thumb_func_end itemid_get_x28 thumb_func_start unref_sub_80A9B28 unref_sub_80A9B28: @ 80A9B28 push {lr} sub sp, 0x8 bl sub_8071EF4 movs r0, 0 movs r1, 0 movs r2, 0x11 movs r3, 0x12 bl DrawDefaultWindow ldr r3, _080A9B6C movs r0, 0x1 movs r1, 0x1 movs r2, 0x7 bl PrintStringArray movs r0, 0 str r0, [sp] movs r0, 0x10 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0x7 bl InitMenu ldr r1, _080A9B70 ldr r0, _080A9B74 str r0, [r1] movs r0, 0 add sp, 0x8 pop {r1} bx r1 .align 2, 0 _080A9B6C: .4byte gUnknown_083C91F0 _080A9B70: .4byte 0x03004ae8 _080A9B74: .4byte sub_80A9B78 thumb_func_end unref_sub_80A9B28 thumb_func_start sub_80A9B78 sub_80A9B78: @ 80A9B78 push {lr} bl ProcessMenuInput lsls r0, 24 asrs r1, r0, 24 movs r0, 0x2 negs r0, r0 cmp r1, r0 bne _080A9B8E movs r0, 0 b _080A9BB6 _080A9B8E: movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A9BB0 ldr r2, _080A9BA8 ldr r0, _080A9BAC lsls r1, 3 adds r0, 0x4 adds r1, r0 ldr r0, [r1] str r0, [r2] movs r0, 0 b _080A9BB6 .align 2, 0 _080A9BA8: .4byte 0x03004ae8 _080A9BAC: .4byte gUnknown_083C91F0 _080A9BB0: bl sub_8071C20 movs r0, 0x1 _080A9BB6: pop {r1} bx r1 thumb_func_end sub_80A9B78 thumb_func_start sub_80A9BBC sub_80A9BBC: @ 80A9BBC push {lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _080A9BE0 movs r1, 0xFF bl CreateTask movs r0, 0x1 add sp, 0x4 pop {r1} bx r1 .align 2, 0 _080A9BE0: .4byte sub_80A9BE4 thumb_func_end sub_80A9BBC thumb_func_start sub_80A9BE4 sub_80A9BE4: @ 80A9BE4 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080A9C14 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080A9C10 adds r0, r2, 0 bl DestroyTask ldr r0, _080A9C18 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080A9C0C bl sub_80AF668 _080A9C0C: bl sub_80C2358 _080A9C10: pop {r0} bx r0 .align 2, 0 _080A9C14: .4byte 0x0202f388 _080A9C18: .4byte 0x0203869a thumb_func_end sub_80A9BE4 thumb_func_start sub_80A9C1C sub_80A9C1C: @ 80A9C1C push {lr} ldr r1, _080A9C30 movs r0, 0 strb r0, [r1] bl sub_80AA10C movs r0, 0 pop {r1} bx r1 .align 2, 0 _080A9C30: .4byte 0x0203869a thumb_func_end sub_80A9C1C thumb_func_start sub_80A9C34 sub_80A9C34: @ 80A9C34 push {lr} bl sub_80AA10C movs r0, 0 pop {r1} bx r1 thumb_func_end sub_80A9C34 thumb_func_start sub_80A9C40 sub_80A9C40: @ 80A9C40 push {r4,r5,lr} ldr r5, _080A9C88 adds r0, r5, 0 movs r1, 0 bl CreateTask adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r2, _080A9C8C adds r0, r4, 0 adds r1, r5, 0 bl SetTaskFuncWithFollowupFunc ldr r0, _080A9C90 movs r1, 0x1 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080A9C94 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x1C] lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r2 strh r0, [r1, 0x1C] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080A9C88: .4byte sub_80A9E3C _080A9C8C: .4byte sub_80A9C98 _080A9C90: .4byte sub_80A9E04 _080A9C94: .4byte 0x03004b20 thumb_func_end sub_80A9C40 thumb_func_start sub_80A9C98 sub_80A9C98: @ 80A9C98 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl sub_80AE098 ldr r1, _080A9CB8 ldr r2, _080A9CBC adds r0, r4, 0 bl SetTaskFuncWithFollowupFunc pop {r4} pop {r0} bx r0 .align 2, 0 _080A9CB8: .4byte sub_80C8734 _080A9CBC: .4byte sub_80A9CC0 thumb_func_end sub_80A9C98 thumb_func_start sub_80A9CC0 sub_80A9CC0: @ 80A9CC0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080A9CD4 ldr r2, _080A9CD8 bl SetTaskFuncWithFollowupFunc pop {r0} bx r0 .align 2, 0 _080A9CD4: .4byte sub_80C88AC _080A9CD8: .4byte sub_80A9CDC thumb_func_end sub_80A9CC0 thumb_func_start sub_80A9CDC sub_80A9CDC: @ 80A9CDC push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080A9CF0 ldr r2, _080A9CF4 bl SetTaskFuncWithFollowupFunc pop {r0} bx r0 .align 2, 0 _080A9CF0: .4byte sub_80C8E1C _080A9CF4: .4byte sub_80A9D58 thumb_func_end sub_80A9CDC thumb_func_start sub_80A9CF8 sub_80A9CF8: @ 80A9CF8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080A9D28 ldrb r0, [r0] cmp r0, 0 bne _080A9D20 ldr r0, _080A9D2C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrb r0, [r1, 0x1C] bl DestroyTask adds r0, r4, 0 bl DestroyTask bl sub_8071C20 _080A9D20: pop {r4} pop {r0} bx r0 .align 2, 0 _080A9D28: .4byte 0x03002fa4 _080A9D2C: .4byte 0x03004b20 thumb_func_end sub_80A9CF8 thumb_func_start sub_80A9D30 sub_80A9D30: @ 80A9D30 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_800832C ldr r1, _080A9D50 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080A9D54 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080A9D50: .4byte 0x03004b20 _080A9D54: .4byte sub_80A9CF8 thumb_func_end sub_80A9D30 thumb_func_start sub_80A9D58 sub_80A9D58: @ 80A9D58 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 movs r3, 0 ldr r1, _080A9DA8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, 0x12 adds r2, r0, r1 _080A9D6E: mov r0, sp adds r1, r0, r3 ldrh r0, [r2] strb r0, [r1] adds r2, 0x2 adds r3, 0x1 cmp r3, 0x3 ble _080A9D6E mov r0, sp bl sub_80C4B34 ldr r1, _080A9DAC strb r0, [r1] ldr r0, _080A9DB0 ldrb r0, [r0] bl sub_80AE82C movs r0, 0 bl sub_80B0F28 ldr r1, _080A9DB4 ldr r2, _080A9DB8 adds r0, r4, 0 bl SetTaskFuncWithFollowupFunc add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080A9DA8: .4byte 0x03004b20 _080A9DAC: .4byte 0x0203869b _080A9DB0: .4byte 0x0203869c _080A9DB4: .4byte sub_80C8EBC _080A9DB8: .4byte sub_80A9DBC thumb_func_end sub_80A9D58 thumb_func_start sub_80A9DBC sub_80A9DBC: @ 80A9DBC push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080A9DD0 ldr r2, _080A9DD4 bl SetTaskFuncWithFollowupFunc pop {r0} bx r0 .align 2, 0 _080A9DD0: .4byte sub_80C8F34 _080A9DD4: .4byte sub_80A9DD8 thumb_func_end sub_80A9DBC thumb_func_start sub_80A9DD8 sub_80A9DD8: @ 80A9DD8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080A9E00 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x1C] bl DestroyTask adds r0, r4, 0 bl DestroyTask bl sub_8071C20 pop {r4} pop {r0} bx r0 .align 2, 0 _080A9E00: .4byte 0x03004b20 thumb_func_end sub_80A9DD8 thumb_func_start sub_80A9E04 sub_80A9E04: @ 80A9E04 push {lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _080A9E30 ldrh r0, [r0, 0x2E] cmp r0, 0x2 bne _080A9E2A ldr r2, _080A9E34 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r1, [r0, 0x1C] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, _080A9E38 str r1, [r0] _080A9E2A: pop {r0} bx r0 .align 2, 0 _080A9E30: .4byte 0x03001770 _080A9E34: .4byte 0x03004b20 _080A9E38: .4byte sub_80A9D30 thumb_func_end sub_80A9E04 thumb_func_start sub_80A9E3C sub_80A9E3C: @ 80A9E3C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl OpenLink movs r1, 0 ldr r3, _080A9E74 movs r2, 0xFF _080A9E4C: lsls r0, r1, 8 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _080A9E4C ldr r1, _080A9E78 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] ldr r1, _080A9E7C str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080A9E74: .4byte 0x03002b80 _080A9E78: .4byte 0x03004b20 _080A9E7C: .4byte sub_80A9E80 thumb_func_end sub_80A9E3C thumb_func_start sub_80A9E80 sub_80A9E80: @ 80A9E80 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080A9EA0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r1, [r4, 0x8] movs r2, 0x8 ldrsh r0, [r4, r2] cmp r0, 0x9 bgt _080A9EA4 adds r0, r1, 0x1 strh r0, [r4, 0x8] b _080A9ECC .align 2, 0 _080A9EA0: .4byte 0x03004b20 _080A9EA4: bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _080A9ECC movs r0, 0 strh r0, [r4, 0x8] bl IsLinkMaster lsls r0, 24 cmp r0, 0 beq _080A9EC8 ldr r0, _080A9EC4 b _080A9ECA .align 2, 0 _080A9EC4: .4byte sub_80A9ED8 _080A9EC8: ldr r0, _080A9ED4 _080A9ECA: str r0, [r4] _080A9ECC: pop {r4} pop {r0} bx r0 .align 2, 0 _080A9ED4: .4byte sub_80A9F10 thumb_func_end sub_80A9E80 thumb_func_start sub_80A9ED8 sub_80A9ED8: @ 80A9ED8 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080A9F08 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x65 bne _080A9F02 bl sub_8007F4C movs r0, 0 strh r0, [r4, 0x8] ldr r0, _080A9F0C str r0, [r4] _080A9F02: pop {r4} pop {r0} bx r0 .align 2, 0 _080A9F08: .4byte 0x03004b20 _080A9F0C: .4byte sub_80A9F10 thumb_func_end sub_80A9ED8 thumb_func_start sub_80A9F10 sub_80A9F10: @ 80A9F10 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080A9F44 ldrb r0, [r0] cmp r0, 0 beq _080A9F3E bl GetMultiplayerId ldr r1, _080A9F48 strb r0, [r1] bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _080A9F3E ldr r1, _080A9F4C movs r0, 0x1 strb r0, [r1] adds r0, r4, 0 bl SwitchTaskToFollowupFunc _080A9F3E: pop {r4} pop {r0} bx r0 .align 2, 0 _080A9F44: .4byte 0x03002fa4 _080A9F48: .4byte 0x02038695 _080A9F4C: .4byte 0x0203869a thumb_func_end sub_80A9F10 thumb_func_start sub_80A9F50 sub_80A9F50: @ 80A9F50 push {r4,lr} movs r2, 0x80 lsls r2, 19 movs r0, 0x40 strh r0, [r2] ldrh r0, [r2] movs r3, 0x88 lsls r3, 5 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] ldr r4, _080A9FB8 adds r0, r4, 0 bl SetUpWindowConfig ldr r0, _080A9FBC adds r1, r4, 0 bl InitWindowFromConfig ldr r0, _080A9FC0 movs r1, 0 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x44 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r0, _080A9FC4 strh r1, [r0] ldr r0, _080A9FC8 strh r1, [r0] ldr r0, _080A9FCC strh r1, [r0] ldr r0, _080A9FD0 strh r1, [r0] ldr r0, _080A9FD4 strh r1, [r0] ldr r0, _080A9FD8 strh r1, [r0] ldr r0, _080A9FDC strh r1, [r0] ldr r0, _080A9FE0 strh r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080A9FB8: .4byte gWindowConfig_81E6C3C _080A9FBC: .4byte 0x0202e908 _080A9FC0: .4byte REG_MOSAIC _080A9FC4: .4byte 0x030042a4 _080A9FC8: .4byte 0x030042a0 _080A9FCC: .4byte 0x030042c0 _080A9FD0: .4byte 0x030041b4 _080A9FD4: .4byte 0x03004288 _080A9FD8: .4byte 0x03004280 _080A9FDC: .4byte 0x030041b0 _080A9FE0: .4byte 0x030041b8 thumb_func_end sub_80A9F50 thumb_func_start sub_80A9FE4 sub_80A9FE4: @ 80A9FE4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC ldr r1, _080AA054 mov r0, sp movs r2, 0x5 bl memcpy movs r2, 0xC0 lsls r2, 19 movs r3, 0xC0 lsls r3, 9 add r5, sp, 0x8 movs r6, 0 ldr r1, _080AA058 movs r4, 0x80 lsls r4, 5 mov r12, r5 ldr r7, _080AA05C movs r0, 0x85 lsls r0, 24 mov r8, r0 _080AA012: str r6, [sp, 0x8] mov r0, r12 str r0, [r1] str r2, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080AA012 str r6, [sp, 0x8] str r5, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r8 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0xC0 lsls r0, 19 mov r1, sp bl sub_80034D4 ldr r0, _080AA060 bl LoadFontDefaultPalette add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AA054: .4byte gUnknown_083C9228 _080AA058: .4byte 0x040000d4 _080AA05C: .4byte 0x85000400 _080AA060: .4byte gWindowConfig_81E6C3C thumb_func_end sub_80A9FE4 thumb_func_start sub_80AA064 sub_80AA064: @ 80AA064 push {lr} bl AnimateSprites bl BuildOamBuffer bl RunTasks bl UpdatePaletteFade ldr r0, _080AA088 ldrh r0, [r0, 0x2E] cmp r0, 0x4 bne _080AA084 ldr r0, _080AA08C bl SetMainCallback2 _080AA084: pop {r0} bx r0 .align 2, 0 _080AA088: .4byte 0x03001770 _080AA08C: .4byte sub_805469C thumb_func_end sub_80AA064 thumb_func_start sub_80AA090 sub_80AA090: @ 80AA090 push {lr} ldr r1, _080AA0E8 ldr r0, _080AA0EC ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080AA0F0 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080AA0F4 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080AA0F8 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080AA0FC ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080AA100 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080AA104 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080AA108 ldrh r0, [r0] strh r0, [r1] bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_8089668 pop {r0} bx r0 .align 2, 0 _080AA0E8: .4byte REG_BG0HOFS _080AA0EC: .4byte 0x030042a4 _080AA0F0: .4byte 0x030042a0 _080AA0F4: .4byte 0x030042c0 _080AA0F8: .4byte 0x030041b4 _080AA0FC: .4byte 0x03004288 _080AA100: .4byte 0x03004280 _080AA104: .4byte 0x030041b0 _080AA108: .4byte 0x030041b8 thumb_func_end sub_80AA090 thumb_func_start sub_80AA10C sub_80AA10C: @ 80AA10C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r4, _080AA238 ldrb r0, [r4, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r4, 0x8] movs r0, 0 bl SetVBlankCallback bl sub_80A9F50 bl dp12_8087EA4 bl ResetPaletteFade bl ResetSpriteData bl ResetTasks bl FreeAllSpritePalettes bl sub_80A9FE4 ldr r0, _080AA23C bl SetVBlankCallback ldr r0, _080AA240 bl SetMainCallback2 ldrb r1, [r4, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r4, 0x8] ldr r4, _080AA244 movs r0, 0 strb r0, [r4] ldr r0, _080AA248 ldrb r0, [r0, 0x2] cmp r0, 0 bne _080AA16A movs r0, 0 movs r1, 0 bl sub_80AE398 _080AA16A: ldrb r0, [r4] bl sub_80AE098 movs r5, 0 ldr r6, _080AA24C adds r0, r6, 0x1 mov r8, r0 ldr r7, _080AA250 _080AA17A: lsls r2, r5, 2 adds r0, r2, r7 ldr r1, [r0] adds r2, r5 lsls r2, 17 movs r0, 0xA8 lsls r0, 14 adds r2, r0 lsrs r2, 16 lsls r4, r5, 1 adds r0, r4, r6 ldrb r3, [r0] add r4, r8 ldrb r0, [r4] str r0, [sp] ldr r0, _080AA254 bl sub_8003460 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _080AA17A ldr r1, _080AA258 ldr r4, _080AA25C movs r0, 0 strh r0, [r4] strh r0, [r1] movs r5, 0 movs r0, 0 bl sub_80AA5BC ldrb r0, [r4] bl sub_80AA5E8 ldr r4, _080AA254 ldr r1, _080AA260 movs r0, 0x12 str r0, [sp] adds r0, r4, 0 movs r2, 0xD6 movs r3, 0x12 bl sub_8003460 ldr r1, _080AA264 movs r0, 0xC str r0, [sp] adds r0, r4, 0 movs r2, 0xDC movs r3, 0 bl sub_8003460 ldr r0, _080AA268 bl LoadSpriteSheet ldr r0, _080AA26C bl LoadSpritePalette movs r0, 0x3 bl sub_80AA280 movs r0, 0x3 bl sub_80AA658 movs r0, 0x3 movs r1, 0 bl sub_80AA614 ldr r0, _080AA270 ldr r1, _080AA274 ldrb r1, [r1, 0x3] ldr r2, _080AA278 ldrb r2, [r2, 0x1] movs r3, 0x5 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _080AA27C lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0x1 strh r0, [r1, 0x2E] strh r0, [r1, 0x30] movs r0, 0x3 strh r0, [r1, 0x32] strh r5, [r1, 0x34] add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AA238: .4byte 0x0202f388 _080AA23C: .4byte sub_80AA090 _080AA240: .4byte sub_80AA064 _080AA244: .4byte 0x02038694 _080AA248: .4byte 0x02038570 _080AA24C: .4byte gUnknown_083C9276 _080AA250: .4byte gUnknown_083C9364 _080AA254: .4byte 0x0202e908 _080AA258: .4byte 0x0203869c _080AA25C: .4byte 0x0203869e _080AA260: .4byte gUnknown_083C9337 _080AA264: .4byte gUnknown_083C933B _080AA268: .4byte gUnknown_083C92B4 _080AA26C: .4byte gUnknown_083C92BC _080AA270: .4byte gSpriteTemplate_83C92CC _080AA274: .4byte gUnknown_083C9296 _080AA278: .4byte gUnknown_083C92A8 _080AA27C: .4byte 0x02020004 thumb_func_end sub_80AA10C thumb_func_start sub_80AA280 sub_80AA280: @ 80AA280 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r7, r0, 24 ldr r0, _080AA2E8 movs r1, 0x1E str r1, [sp] movs r1, 0x3 str r1, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0 bl FillWindowRect_DefaultPalette ldr r4, _080AA2EC ldr r1, _080AA2F0 adds r0, r4, 0 bl StringCopy lsls r1, r7, 6 ldr r0, _080AA2F4 adds r1, r0 adds r0, r4, 0 bl StringAppend movs r5, 0 ldr r6, _080AA2F8 adds r0, r6, 0x1 mov r8, r0 _080AA2BE: cmp r7, r5 bne _080AA2FC lsls r2, r5, 2 adds r2, r5 lsls r2, 17 movs r0, 0x80 lsls r0, 10 adds r2, r0 lsrs r2, 16 lsls r1, r5, 1 adds r0, r1, r6 ldrb r3, [r0] add r1, r8 ldrb r0, [r1] str r0, [sp] ldr r0, _080AA2E8 ldr r1, _080AA2EC bl sub_8003460 b _080AA322 .align 2, 0 _080AA2E8: .4byte 0x0202e908 _080AA2EC: .4byte 0x02000000 _080AA2F0: .4byte gUnknown_083C932C _080AA2F4: .4byte 0x0203857d _080AA2F8: .4byte gUnknown_083C926E _080AA2FC: lsls r1, r5, 6 ldr r0, _080AA338 adds r1, r0 lsls r2, r5, 2 adds r2, r5 lsls r2, 17 movs r0, 0x80 lsls r0, 10 adds r2, r0 lsrs r2, 16 lsls r4, r5, 1 adds r0, r4, r6 ldrb r3, [r0] add r4, r8 ldrb r0, [r4] str r0, [sp] ldr r0, _080AA33C bl sub_8003460 _080AA322: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _080AA2BE add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AA338: .4byte 0x0203857d _080AA33C: .4byte 0x0202e908 thumb_func_end sub_80AA280 thumb_func_start sub_80AA340 sub_80AA340: @ 80AA340 push {r4,lr} sub sp, 0x4 lsls r0, 24 ldr r4, _080AA378 ldr r1, _080AA37C lsrs r0, 18 adds r0, r1 adds r0, 0x26 ldrb r1, [r0] adds r0, r4, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, _080AA380 ldr r1, _080AA384 ldrb r3, [r1] ldrb r1, [r1, 0x1] str r1, [sp] adds r1, r4, 0 movs r2, 0x66 bl sub_8003460 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080AA378: .4byte 0x02000000 _080AA37C: .4byte 0x02038570 _080AA380: .4byte 0x0202e908 _080AA384: .4byte gUnknown_083C9282 thumb_func_end sub_80AA340 thumb_func_start sub_80AA388 sub_80AA388: @ 80AA388 push {r4,lr} sub sp, 0x4 lsls r0, 24 ldr r4, _080AA3C0 ldr r1, _080AA3C4 lsrs r0, 18 adds r0, r1 adds r0, 0x28 ldrb r1, [r0] adds r0, r4, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, _080AA3C8 ldr r1, _080AA3CC ldrb r3, [r1, 0x2] ldrb r1, [r1, 0x3] str r1, [sp] adds r1, r4, 0 movs r2, 0x6C bl sub_8003460 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080AA3C0: .4byte 0x02000000 _080AA3C4: .4byte 0x02038570 _080AA3C8: .4byte 0x0202e908 _080AA3CC: .4byte gUnknown_083C9282 thumb_func_end sub_80AA388 thumb_func_start sub_80AA3D0 sub_80AA3D0: @ 80AA3D0 push {r4,lr} sub sp, 0x4 lsls r0, 24 ldr r4, _080AA408 ldr r1, _080AA40C lsrs r0, 18 adds r0, r1 adds r0, 0x27 ldrb r1, [r0] adds r0, r4, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, _080AA410 ldr r1, _080AA414 ldrb r3, [r1, 0x4] ldrb r1, [r1, 0x5] str r1, [sp] adds r1, r4, 0 movs r2, 0x72 bl sub_8003460 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080AA408: .4byte 0x02000000 _080AA40C: .4byte 0x02038570 _080AA410: .4byte 0x0202e908 _080AA414: .4byte gUnknown_083C9282 thumb_func_end sub_80AA3D0 thumb_func_start sub_80AA418 sub_80AA418: @ 80AA418 push {r4,lr} sub sp, 0x4 lsls r0, 24 ldr r4, _080AA450 ldr r1, _080AA454 lsrs r0, 18 adds r0, r1 adds r0, 0x29 ldrb r1, [r0] adds r0, r4, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, _080AA458 ldr r1, _080AA45C ldrb r3, [r1, 0x6] ldrb r1, [r1, 0x7] str r1, [sp] adds r1, r4, 0 movs r2, 0x78 bl sub_8003460 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080AA450: .4byte 0x02000000 _080AA454: .4byte 0x02038570 _080AA458: .4byte 0x0202e908 _080AA45C: .4byte gUnknown_083C9282 thumb_func_end sub_80AA418 thumb_func_start sub_80AA460 sub_80AA460: @ 80AA460 push {r4,lr} sub sp, 0x4 lsls r0, 24 ldr r4, _080AA498 ldr r1, _080AA49C lsrs r0, 18 adds r0, r1 adds r0, 0x2A ldrb r1, [r0] adds r0, r4, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, _080AA4A0 ldr r1, _080AA4A4 ldrb r3, [r1, 0x8] ldrb r1, [r1, 0x9] str r1, [sp] adds r1, r4, 0 movs r2, 0x7E bl sub_8003460 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080AA498: .4byte 0x02000000 _080AA49C: .4byte 0x02038570 _080AA4A0: .4byte 0x0202e908 _080AA4A4: .4byte gUnknown_083C9282 thumb_func_end sub_80AA460 thumb_func_start sub_80AA4A8 sub_80AA4A8: @ 80AA4A8 push {r4,lr} sub sp, 0x4 lsls r0, 24 ldr r4, _080AA4E0 ldr r1, _080AA4E4 lsrs r0, 18 adds r0, r1 adds r0, 0x2B ldrb r1, [r0] adds r0, r4, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, _080AA4E8 ldr r1, _080AA4EC ldrb r3, [r1, 0xA] ldrb r1, [r1, 0xB] str r1, [sp] adds r1, r4, 0 movs r2, 0x84 bl sub_8003460 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080AA4E0: .4byte 0x02000000 _080AA4E4: .4byte 0x02038570 _080AA4E8: .4byte 0x0202e908 _080AA4EC: .4byte gUnknown_083C9282 thumb_func_end sub_80AA4A8 thumb_func_start sub_80AA4F0 sub_80AA4F0: @ 80AA4F0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r4, r0, 0 adds r6, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r6, 24 lsrs r6, 24 ldr r7, _080AA5A8 ldr r0, _080AA5AC lsls r5, r6, 1 adds r1, r5, r0 ldrb r1, [r1] mov r9, r1 adds r0, 0x1 adds r0, r5, r0 ldrb r0, [r0] mov r10, r0 movs r0, 0x7 add r0, r9 lsls r0, 24 lsrs r0, 24 mov r8, r0 str r0, [sp] mov r0, r10 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] adds r0, r7, 0 movs r1, 0 mov r2, r9 mov r3, r10 bl FillWindowRect_DefaultPalette ldr r0, _080AA5B0 lsls r4, 6 adds r4, r5, r4 adds r0, 0x1E adds r4, r0 ldrh r1, [r4] movs r0, 0xD muls r1, r0 ldr r0, _080AA5B4 adds r1, r0 lsls r2, r6, 3 subs r2, r6 lsls r2, 17 movs r0, 0x8A lsls r0, 16 adds r2, r0 lsrs r2, 16 mov r0, r10 str r0, [sp] adds r0, r7, 0 mov r3, r9 bl sub_8003460 ldr r0, _080AA5B8 mov r9, r0 ldrh r1, [r4] movs r2, 0x2 movs r3, 0x3 bl ConvertIntToDecimalStringN adds r5, r6 lsls r5, 17 movs r0, 0xFA lsls r0, 16 adds r5, r0 lsrs r5, 16 mov r0, r10 str r0, [sp] adds r0, r7, 0 mov r1, r9 adds r2, r5, 0 mov r3, r8 bl sub_8003460 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AA5A8: .4byte 0x0202e908 _080AA5AC: .4byte gUnknown_083C928E _080AA5B0: .4byte 0x02038570 _080AA5B4: .4byte gMoveNames _080AA5B8: .4byte 0x020231cc thumb_func_end sub_80AA4F0 thumb_func_start sub_80AA5BC sub_80AA5BC: @ 80AA5BC push {lr} sub sp, 0x4 lsls r0, 24 ldr r2, _080AA5E0 ldr r1, _080AA5E4 lsrs r0, 22 adds r0, r1 ldr r1, [r0] movs r0, 0x12 str r0, [sp] adds r0, r2, 0 movs r2, 0xC2 movs r3, 0x3 bl sub_8003460 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080AA5E0: .4byte 0x0202e908 _080AA5E4: .4byte gUnknown_083C93B4 thumb_func_end sub_80AA5BC thumb_func_start sub_80AA5E8 sub_80AA5E8: @ 80AA5E8 push {lr} sub sp, 0x4 lsls r0, 24 ldr r2, _080AA60C ldr r1, _080AA610 lsrs r0, 22 adds r0, r1 ldr r1, [r0] movs r0, 0x4 str r0, [sp] adds r0, r2, 0 movs r2, 0xE8 movs r3, 0x3 bl sub_8003460 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080AA60C: .4byte 0x0202e908 _080AA610: .4byte gUnknown_083C93F0 thumb_func_end sub_80AA5E8 thumb_func_start sub_80AA614 sub_80AA614: @ 80AA614 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 bl sub_80AE770 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r4, _080AA650 adds r0, r4, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, _080AA654 movs r1, 0xC str r1, [sp] adds r1, r4, 0 movs r2, 0xE2 movs r3, 0x3 bl sub_8003460 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080AA650: .4byte 0x02000000 _080AA654: .4byte 0x0202e908 thumb_func_end sub_80AA614 thumb_func_start sub_80AA658 sub_80AA658: @ 80AA658 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl sub_80AA340 adds r0, r5, 0 bl sub_80AA388 adds r0, r5, 0 bl sub_80AA3D0 adds r0, r5, 0 bl sub_80AA418 adds r0, r5, 0 bl sub_80AA460 adds r0, r5, 0 bl sub_80AA4A8 movs r4, 0 _080AA684: adds r0, r5, 0 adds r1, r4, 0 bl sub_80AA4F0 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080AA684 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80AA658 thumb_func_start sub_80AA69C sub_80AA69C: @ 80AA69C push {r4-r6,lr} ldr r6, _080AA748 ldr r5, _080AA74C ldrb r2, [r5] lsls r2, 6 ldr r4, _080AA750 adds r2, r4 adds r0, r6, 0 movs r1, 0x16 bl pokemon_setattr ldrb r2, [r5] lsls r2, 6 adds r0, r4, 0x2 adds r2, r0 adds r0, r6, 0 movs r1, 0x18 bl pokemon_setattr ldrb r2, [r5] lsls r2, 6 adds r0, r4, 0x1 adds r2, r0 adds r0, r6, 0 movs r1, 0x17 bl pokemon_setattr ldrb r2, [r5] lsls r2, 6 adds r0, r4, 0x3 adds r2, r0 adds r0, r6, 0 movs r1, 0x21 bl pokemon_setattr ldrb r2, [r5] lsls r2, 6 adds r0, r4, 0x4 adds r2, r0 adds r0, r6, 0 movs r1, 0x2F bl pokemon_setattr ldrb r2, [r5] lsls r2, 6 adds r0, r4, 0x5 adds r2, r0 adds r0, r6, 0 movs r1, 0x30 bl pokemon_setattr ldrb r2, [r5] lsls r2, 6 subs r4, 0x8 adds r2, r4 adds r0, r6, 0 movs r1, 0xD bl pokemon_setattr ldrb r2, [r5] lsls r2, 6 adds r2, r4 adds r2, 0x2 adds r0, r6, 0 movs r1, 0xE bl pokemon_setattr ldrb r2, [r5] lsls r2, 6 adds r2, r4 adds r2, 0x4 adds r0, r6, 0 movs r1, 0xF bl pokemon_setattr ldrb r2, [r5] lsls r2, 6 adds r2, r4 adds r2, 0x6 adds r0, r6, 0 movs r1, 0x10 bl pokemon_setattr pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080AA748: .4byte 0x03004360 _080AA74C: .4byte 0x02038695 _080AA750: .4byte 0x02038596 thumb_func_end sub_80AA69C thumb_func_start sub_80AA754 sub_80AA754: @ 80AA754 push {r4,lr} adds r4, r0, 0 ldr r0, _080AA774 ldrh r1, [r0, 0x30] cmp r1, 0x20 beq _080AA7A2 cmp r1, 0x20 bgt _080AA782 cmp r1, 0x2 beq _080AA7F8 cmp r1, 0x2 bgt _080AA778 cmp r1, 0x1 beq _080AA7D8 b _080AA870 .align 2, 0 _080AA774: .4byte 0x03001770 _080AA778: cmp r1, 0x8 beq _080AA868 cmp r1, 0x10 beq _080AA7A2 b _080AA870 _080AA782: cmp r1, 0x80 beq _080AA7C2 cmp r1, 0x80 bgt _080AA790 cmp r1, 0x40 beq _080AA7AC b _080AA870 _080AA790: movs r0, 0x80 lsls r0, 1 cmp r1, r0 beq _080AA814 movs r0, 0x80 lsls r0, 2 cmp r1, r0 beq _080AA834 b _080AA870 _080AA7A2: ldrh r0, [r4, 0x2E] movs r1, 0x1 eors r0, r1 strh r0, [r4, 0x2E] b _080AA870 _080AA7AC: ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0 bne _080AA7BC movs r0, 0x8 strh r0, [r4, 0x30] b _080AA870 _080AA7BC: subs r0, r1, 0x1 strh r0, [r4, 0x30] b _080AA870 _080AA7C2: ldrh r1, [r4, 0x30] movs r3, 0x30 ldrsh r0, [r4, r3] cmp r0, 0x8 bne _080AA7D2 movs r0, 0 strh r0, [r4, 0x30] b _080AA870 _080AA7D2: adds r0, r1, 0x1 strh r0, [r4, 0x30] b _080AA870 _080AA7D8: ldr r2, _080AA7F4 movs r1, 0x2E ldrsh r0, [r4, r1] lsls r0, 2 movs r3, 0x30 ldrsh r1, [r4, r3] lsls r1, 3 adds r0, r1 adds r0, r2 ldr r2, [r0] adds r0, r4, 0 movs r1, 0x1 b _080AA84E .align 2, 0 _080AA7F4: .4byte gUnknown_083C92E4 _080AA7F8: ldr r1, _080AA810 movs r0, 0x2E ldrsh r2, [r4, r0] lsls r2, 2 movs r3, 0x30 ldrsh r0, [r4, r3] lsls r0, 3 adds r2, r0 adds r2, r1 movs r1, 0x1 negs r1, r1 b _080AA84A .align 2, 0 _080AA810: .4byte gUnknown_083C92E4 _080AA814: ldr r2, _080AA830 movs r1, 0x2E ldrsh r0, [r4, r1] lsls r0, 2 movs r3, 0x30 ldrsh r1, [r4, r3] lsls r1, 3 adds r0, r1 adds r0, r2 ldr r2, [r0] adds r0, r4, 0 movs r1, 0xA b _080AA84E .align 2, 0 _080AA830: .4byte gUnknown_083C92E4 _080AA834: ldr r1, _080AA864 movs r0, 0x2E ldrsh r2, [r4, r0] lsls r2, 2 movs r3, 0x30 ldrsh r0, [r4, r3] lsls r0, 3 adds r2, r0 adds r2, r1 movs r1, 0xA negs r1, r1 _080AA84A: ldr r2, [r2] adds r0, r4, 0 _080AA84E: bl _call_via_r2 ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x34] lsls r1, 24 lsrs r1, 24 bl sub_80AA614 b _080AA870 .align 2, 0 _080AA864: .4byte gUnknown_083C92E4 _080AA868: adds r0, r4, 0 movs r1, 0x1 bl sub_80AAD08 _080AA870: ldr r2, _080AA898 movs r0, 0x2E ldrsh r1, [r4, r0] movs r3, 0x30 ldrsh r0, [r4, r3] lsls r0, 1 adds r1, r0 adds r1, r2 ldrb r0, [r1] strh r0, [r4, 0x20] ldr r1, _080AA89C movs r2, 0x30 ldrsh r0, [r4, r2] adds r0, r1 ldrb r0, [r0] strh r0, [r4, 0x22] pop {r4} pop {r0} bx r0 .align 2, 0 _080AA898: .4byte gUnknown_083C9296 _080AA89C: .4byte gUnknown_083C92A8 thumb_func_end sub_80AA754 thumb_func_start sub_80AA8A0 sub_80AA8A0: @ 80AA8A0 push {r4,lr} adds r4, r0, 0 lsls r2, 24 lsrs r0, r2, 24 lsls r1, 24 asrs r1, 24 cmp r1, 0x1 bne _080AA8C0 strh r0, [r4, 0x32] bl sub_80AA280 ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 bl sub_80AA658 _080AA8C0: pop {r4} pop {r0} bx r0 thumb_func_end sub_80AA8A0 thumb_func_start sub_80AA8C8 sub_80AA8C8: @ 80AA8C8 push {lr} lsls r1, 24 asrs r1, 24 movs r2, 0 bl sub_80AA8A0 pop {r0} bx r0 thumb_func_end sub_80AA8C8 thumb_func_start sub_80AA8D8 sub_80AA8D8: @ 80AA8D8 push {lr} lsls r1, 24 asrs r1, 24 movs r2, 0x1 bl sub_80AA8A0 pop {r0} bx r0 thumb_func_end sub_80AA8D8 thumb_func_start sub_80AA8E8 sub_80AA8E8: @ 80AA8E8 push {lr} lsls r1, 24 asrs r1, 24 movs r2, 0x2 bl sub_80AA8A0 pop {r0} bx r0 thumb_func_end sub_80AA8E8 thumb_func_start sub_80AA8F8 sub_80AA8F8: @ 80AA8F8 push {lr} lsls r1, 24 asrs r1, 24 movs r2, 0x3 bl sub_80AA8A0 pop {r0} bx r0 thumb_func_end sub_80AA8F8 thumb_func_start sub_80AA908 sub_80AA908: @ 80AA908 push {lr} lsls r1, 24 lsrs r1, 24 lsls r2, 24 asrs r2, 24 adds r2, r1 lsls r2, 16 lsrs r0, r2, 16 asrs r2, 16 cmp r2, 0xFF ble _080AA922 movs r0, 0xFF b _080AA928 _080AA922: cmp r2, 0 bge _080AA928 movs r0, 0 _080AA928: lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80AA908 thumb_func_start sub_80AA930 sub_80AA930: @ 80AA930 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 ldr r5, _080AA970 movs r3, 0x32 ldrsh r2, [r4, r3] lsls r2, 6 adds r2, r5 adds r2, 0x26 ldrb r3, [r2] lsls r2, r1, 24 asrs r2, 24 adds r1, r3, 0 bl sub_80AA908 movs r2, 0x32 ldrsh r1, [r4, r2] lsls r1, 6 adds r1, r5 adds r1, 0x26 strb r0, [r1] ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 bl sub_80AA340 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AA970: .4byte 0x02038570 thumb_func_end sub_80AA930 thumb_func_start sub_80AA974 sub_80AA974: @ 80AA974 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 ldr r5, _080AA9B4 movs r3, 0x32 ldrsh r2, [r4, r3] lsls r2, 6 adds r2, r5 adds r2, 0x28 ldrb r3, [r2] lsls r2, r1, 24 asrs r2, 24 adds r1, r3, 0 bl sub_80AA908 movs r2, 0x32 ldrsh r1, [r4, r2] lsls r1, 6 adds r1, r5 adds r1, 0x28 strb r0, [r1] ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 bl sub_80AA388 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AA9B4: .4byte 0x02038570 thumb_func_end sub_80AA974 thumb_func_start sub_80AA9B8 sub_80AA9B8: @ 80AA9B8 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 ldr r5, _080AA9F8 movs r3, 0x32 ldrsh r2, [r4, r3] lsls r2, 6 adds r2, r5 adds r2, 0x27 ldrb r3, [r2] lsls r2, r1, 24 asrs r2, 24 adds r1, r3, 0 bl sub_80AA908 movs r2, 0x32 ldrsh r1, [r4, r2] lsls r1, 6 adds r1, r5 adds r1, 0x27 strb r0, [r1] ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 bl sub_80AA3D0 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AA9F8: .4byte 0x02038570 thumb_func_end sub_80AA9B8 thumb_func_start sub_80AA9FC sub_80AA9FC: @ 80AA9FC push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 ldr r5, _080AAA3C movs r3, 0x32 ldrsh r2, [r4, r3] lsls r2, 6 adds r2, r5 adds r2, 0x29 ldrb r3, [r2] lsls r2, r1, 24 asrs r2, 24 adds r1, r3, 0 bl sub_80AA908 movs r2, 0x32 ldrsh r1, [r4, r2] lsls r1, 6 adds r1, r5 adds r1, 0x29 strb r0, [r1] ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 bl sub_80AA418 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AAA3C: .4byte 0x02038570 thumb_func_end sub_80AA9FC thumb_func_start sub_80AAA40 sub_80AAA40: @ 80AAA40 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 ldr r5, _080AAA80 movs r3, 0x32 ldrsh r2, [r4, r3] lsls r2, 6 adds r2, r5 adds r2, 0x2A ldrb r3, [r2] lsls r2, r1, 24 asrs r2, 24 adds r1, r3, 0 bl sub_80AA908 movs r2, 0x32 ldrsh r1, [r4, r2] lsls r1, 6 adds r1, r5 adds r1, 0x2A strb r0, [r1] ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 bl sub_80AA460 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AAA80: .4byte 0x02038570 thumb_func_end sub_80AAA40 thumb_func_start sub_80AAA84 sub_80AAA84: @ 80AAA84 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 ldr r5, _080AAAC4 movs r3, 0x32 ldrsh r2, [r4, r3] lsls r2, 6 adds r2, r5 adds r2, 0x2B ldrb r3, [r2] lsls r2, r1, 24 asrs r2, 24 adds r1, r3, 0 bl sub_80AA908 movs r2, 0x32 ldrsh r1, [r4, r2] lsls r1, 6 adds r1, r5 adds r1, 0x2B strb r0, [r1] ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 bl sub_80AA4A8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AAAC4: .4byte 0x02038570 thumb_func_end sub_80AAA84 thumb_func_start sub_80AAAC8 sub_80AAAC8: @ 80AAAC8 push {lr} lsls r1, 16 lsrs r1, 16 lsls r2, 24 asrs r2, 24 adds r1, r2 lsls r1, 16 lsrs r0, r1, 16 asrs r1, 16 movs r2, 0xB1 lsls r2, 1 cmp r1, r2 ble _080AAAE6 movs r0, 0x1 b _080AAAEC _080AAAE6: cmp r1, 0 bge _080AAAEC adds r0, r2, 0 _080AAAEC: pop {r1} bx r1 thumb_func_end sub_80AAAC8 thumb_func_start sub_80AAAF0 sub_80AAAF0: @ 80AAAF0 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 ldr r5, _080AAB2C movs r3, 0x32 ldrsh r2, [r4, r3] lsls r2, 6 adds r2, r5 ldrh r3, [r2, 0x1E] lsls r2, r1, 24 asrs r2, 24 adds r1, r3, 0 bl sub_80AAAC8 movs r2, 0x32 ldrsh r1, [r4, r2] lsls r1, 6 adds r1, r5 strh r0, [r1, 0x1E] ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_80AA4F0 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AAB2C: .4byte 0x02038570 thumb_func_end sub_80AAAF0 thumb_func_start sub_80AAB30 sub_80AAB30: @ 80AAB30 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 ldr r5, _080AAB6C movs r3, 0x32 ldrsh r2, [r4, r3] lsls r2, 6 adds r2, r5 ldrh r3, [r2, 0x20] lsls r2, r1, 24 asrs r2, 24 adds r1, r3, 0 bl sub_80AAAC8 movs r2, 0x32 ldrsh r1, [r4, r2] lsls r1, 6 adds r1, r5 strh r0, [r1, 0x20] ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl sub_80AA4F0 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AAB6C: .4byte 0x02038570 thumb_func_end sub_80AAB30 thumb_func_start sub_80AAB70 sub_80AAB70: @ 80AAB70 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 ldr r5, _080AABAC movs r3, 0x32 ldrsh r2, [r4, r3] lsls r2, 6 adds r2, r5 ldrh r3, [r2, 0x22] lsls r2, r1, 24 asrs r2, 24 adds r1, r3, 0 bl sub_80AAAC8 movs r2, 0x32 ldrsh r1, [r4, r2] lsls r1, 6 adds r1, r5 strh r0, [r1, 0x22] ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_80AA4F0 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AABAC: .4byte 0x02038570 thumb_func_end sub_80AAB70 thumb_func_start sub_80AABB0 sub_80AABB0: @ 80AABB0 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 ldr r5, _080AABEC movs r3, 0x32 ldrsh r2, [r4, r3] lsls r2, 6 adds r2, r5 ldrh r3, [r2, 0x24] lsls r2, r1, 24 asrs r2, 24 adds r1, r3, 0 bl sub_80AAAC8 movs r2, 0x32 ldrsh r1, [r4, r2] lsls r1, 6 adds r1, r5 strh r0, [r1, 0x24] ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 movs r1, 0x3 bl sub_80AA4F0 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AABEC: .4byte 0x02038570 thumb_func_end sub_80AABB0 thumb_func_start sub_80AABF0 sub_80AABF0: @ 80AABF0 push {r4,r5,lr} adds r5, r0, 0 lsls r1, 24 movs r0, 0xFF cmp r1, 0 ble _080AABFE movs r0, 0x1 _080AABFE: lsls r0, 24 asrs r0, 24 ldrh r1, [r5, 0x34] adds r0, r1 lsls r0, 24 lsrs r4, r0, 24 asrs r0, 24 cmp r0, 0 bge _080AAC14 movs r4, 0 b _080AAC1A _080AAC14: cmp r0, 0x4 ble _080AAC1A movs r4, 0x4 _080AAC1A: lsls r4, 24 lsrs r0, r4, 24 bl sub_80AA5BC asrs r4, 24 strh r4, [r5, 0x34] ldr r0, _080AAC54 strh r4, [r0] lsls r4, 24 lsrs r4, 24 ldr r0, _080AAC58 ldrb r1, [r0] adds r0, r4, 0 bl sub_80AE398 ldrh r0, [r5, 0x32] lsls r0, 24 lsrs r0, 24 bl sub_80AA280 ldrh r0, [r5, 0x32] lsls r0, 24 lsrs r0, 24 bl sub_80AA658 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AAC54: .4byte 0x0203869c _080AAC58: .4byte 0x0203869e thumb_func_end sub_80AABF0 thumb_func_start sub_80AAC5C sub_80AAC5C: @ 80AAC5C push {r4,r5,lr} adds r5, r0, 0 lsls r1, 24 cmp r1, 0 ble _080AAC78 ldr r1, _080AAC74 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] adds r4, r1, 0 b _080AAC86 .align 2, 0 _080AAC74: .4byte 0x0203869e _080AAC78: ldr r0, _080AACBC ldrh r2, [r0] adds r4, r0, 0 cmp r2, 0 beq _080AAC86 subs r0, r2, 0x1 strh r0, [r4] _080AAC86: adds r1, r4, 0 ldrh r0, [r1] cmp r0, 0x3 bls _080AAC92 movs r0, 0x3 strh r0, [r1] _080AAC92: ldrb r0, [r4] bl sub_80AA5E8 ldr r0, _080AACC0 ldrb r0, [r0] ldrb r1, [r4] bl sub_80AE398 ldrh r0, [r5, 0x32] lsls r0, 24 lsrs r0, 24 bl sub_80AA280 ldrh r0, [r5, 0x32] lsls r0, 24 lsrs r0, 24 bl sub_80AA658 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AACBC: .4byte 0x0203869e _080AACC0: .4byte 0x0203869c thumb_func_end sub_80AAC5C thumb_func_start sub_80AACC4 sub_80AACC4: @ 80AACC4 push {lr} bl UpdatePaletteFade ldr r0, _080AACF8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080AACF4 bl sub_80AA69C ldr r0, _080AACFC ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080AACEE ldr r0, _080AAD00 ldrb r0, [r0] bl sub_80AE82C _080AACEE: ldr r0, _080AAD04 bl SetMainCallback2 _080AACF4: pop {r0} bx r0 .align 2, 0 _080AACF8: .4byte 0x0202f388 _080AACFC: .4byte 0x0203869a _080AAD00: .4byte 0x02000000 _080AAD04: .4byte sub_80AB47C thumb_func_end sub_80AACC4 thumb_func_start sub_80AAD08 sub_80AAD08: @ 80AAD08 push {r4,lr} sub sp, 0x4 lsls r1, 24 asrs r1, 24 cmp r1, 0x1 bne _080AAD32 ldr r1, _080AAD3C ldrh r0, [r0, 0x34] movs r4, 0 strb r0, [r1] ldr r0, _080AAD40 bl SetMainCallback2 movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _080AAD32: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080AAD3C: .4byte 0x02000000 _080AAD40: .4byte sub_80AACC4 thumb_func_end sub_80AAD08 thumb_func_start sub_80AAD44 sub_80AAD44: @ 80AAD44 push {r4,r5,lr} lsls r1, 24 asrs r1, 24 cmp r1, 0x1 bne _080AAD72 bl sub_80AA69C movs r4, 0 ldr r5, _080AAD78 _080AAD56: lsls r0, r4, 24 lsrs r0, 24 ldr r1, _080AAD7C ldrb r1, [r1] bl sub_80AE770 strh r0, [r5] adds r5, 0x2 adds r4, 0x1 cmp r4, 0x3 ble _080AAD56 ldr r0, _080AAD80 bl SetMainCallback2 _080AAD72: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AAD78: .4byte 0x02038670 _080AAD7C: .4byte 0x0203869c _080AAD80: .4byte sub_805469C thumb_func_end sub_80AAD44 thumb_func_start sub_80AAD84 sub_80AAD84: @ 80AAD84 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x64 mov r9, r0 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x48] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x4C] lsls r3, 24 lsrs r3, 24 mov r10, r3 mov r5, r10 adds r5, 0x1 lsls r1, r5, 8 ldr r0, _080AAEC4 subs r1, r0, r1 movs r0, 0 str r0, [sp, 0x44] ldr r4, _080AAEC8 add r0, sp, 0x44 str r0, [r4] str r1, [r4, 0x4] ldr r0, _080AAECC str r0, [r4, 0x8] ldr r0, [r4, 0x8] mov r0, r9 bl StringLength lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0x8 bls _080AADD0 movs r7, 0x8 _080AADD0: movs r6, 0 mov r8, r5 mov r1, r10 lsls r1, 1 str r1, [sp, 0x58] ldr r2, [sp, 0x48] adds r2, 0x20 str r2, [sp, 0x5C] cmp r6, r7 bge _080AAE1E add r5, sp, 0x40 add r0, sp, 0x20 mov r10, r0 ldr r2, _080AAEC4 _080AADEC: mov r1, r9 adds r0, r1, r6 ldrb r0, [r0] strb r0, [r5] movs r0, 0xFF strb r0, [r5, 0x1] mov r0, sp adds r1, r5, 0 str r2, [sp, 0x60] bl sub_80034D4 mov r1, r8 lsls r0, r1, 8 ldr r2, [sp, 0x60] subs r0, r2, r0 mov r1, r10 str r1, [r4] str r0, [r4, 0x4] ldr r0, _080AAED0 str r0, [r4, 0x8] ldr r0, [r4, 0x8] adds r2, 0x20 adds r6, 0x1 cmp r6, r7 blt _080AADEC _080AAE1E: movs r1, 0x7C ldr r2, [sp, 0x58] subs r1, r2 lsls r1, 24 lsrs r7, r1, 24 ldr r0, _080AAED4 mov r9, r0 lsls r3, r7, 3 add r3, r9 ldr r0, _080AAED8 ldr r1, [r0] ldr r2, [r0, 0x4] str r1, [sp, 0x50] str r2, [sp, 0x54] str r1, [r3, 0x3C] str r2, [r3, 0x40] mov r2, r8 lsls r0, r2, 3 movs r1, 0x80 lsls r1, 3 adds r2, r1, 0 subs r2, r0 adds r6, r3, 0 adds r6, 0x40 ldr r0, _080AAEDC mov r8, r0 mov r1, r8 ands r2, r1 ldrh r5, [r6] ldr r4, _080AAEE0 adds r0, r4, 0 ands r0, r5 orrs r0, r2 strh r0, [r6] ldrh r5, [r3, 0x3E] ldr r2, _080AAEE4 adds r0, r2, 0 ands r0, r5 ldr r1, [sp, 0x48] orrs r0, r1 strh r0, [r3, 0x3E] adds r3, 0x3C add r0, sp, 0x4C ldrb r0, [r0] strb r0, [r3] adds r1, r7, 0x1 lsls r1, 3 mov r0, r9 adds r7, r1, r0 ldr r0, [sp, 0x50] ldr r1, [sp, 0x54] str r0, [r7, 0x3C] str r1, [r7, 0x40] ldrh r0, [r6] lsls r0, 22 lsrs r0, 22 adds r0, 0x4 adds r5, r7, 0 adds r5, 0x40 mov r1, r8 ands r0, r1 ldrh r3, [r5] ands r4, r3 orrs r4, r0 strh r4, [r5] ldrh r0, [r7, 0x3E] ands r2, r0 ldr r0, [sp, 0x5C] orrs r2, r0 strh r2, [r7, 0x3E] adds r1, r7, 0 adds r1, 0x3C add r2, sp, 0x4C ldrb r2, [r2] strb r2, [r1] add sp, 0x64 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AAEC4: .4byte 0x06018000 _080AAEC8: .4byte 0x040000d4 _080AAECC: .4byte 0x85000040 _080AAED0: .4byte 0x84000008 _080AAED4: .4byte 0x03001770 _080AAED8: .4byte gUnknown_083C9400 _080AAEDC: .4byte 0x000003ff _080AAEE0: .4byte 0xfffffc00 _080AAEE4: .4byte 0xfffffe00 thumb_func_end sub_80AAD84 thumb_func_start unref_sub_80AAEE8 unref_sub_80AAEE8: @ 80AAEE8 push {r4-r7,lr} sub sp, 0xC adds r4, r0, 0 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r6, r2, 24 lsls r3, 24 lsrs r5, r3, 24 movs r0, 0 cmp r4, 0 bge _080AAF08 mov r1, sp movs r0, 0xAE strb r0, [r1] movs r0, 0x1 _080AAF08: add r0, sp adds r1, r4, 0 cmp r1, 0 bge _080AAF12 negs r1, r1 _080AAF12: movs r2, 0 movs r3, 0x8 bl ConvertIntToDecimalStringN mov r0, sp adds r1, r7, 0 adds r2, r6, 0 adds r3, r5, 0 bl sub_80AAD84 add sp, 0xC pop {r4-r7} pop {r0} bx r0 thumb_func_end unref_sub_80AAEE8 thumb_func_start sub_80AAF30 sub_80AAF30: @ 80AAF30 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 ldr r1, _080AAFC0 movs r0, 0x1 strb r0, [r1] ldr r1, _080AAFC4 movs r0, 0x3 strb r0, [r1] movs r0, 0 bl sub_80AE098 movs r4, 0x3 movs r5, 0x1 negs r5, r5 ldr r3, _080AAFC8 movs r2, 0x3 _080AAF56: adds r1, r4, r3 subs r0, r2, r4 strb r0, [r1] subs r4, 0x1 cmp r4, r5 bgt _080AAF56 movs r4, 0 movs r6, 0 ldr r7, _080AAFCC ldr r5, _080AAFD0 mov r9, r5 _080AAF6C: lsls r1, r4, 1 strh r6, [r7] ldr r0, _080AAFD4 mov r8, r0 adds r0, r1, r0 strh r6, [r0] ldr r3, _080AAFD8 adds r1, r3 strh r6, [r1] adds r0, r5, 0 mov r1, r9 adds r1, 0xC0 movs r2, 0x40 str r3, [sp] bl memcpy adds r7, 0x2 adds r5, 0x40 adds r4, 0x1 ldr r3, [sp] cmp r4, 0x2 ble _080AAF6C ldr r0, _080AAFCC movs r1, 0x96 lsls r1, 1 strh r1, [r0, 0x6] movs r0, 0xC8 lsls r0, 1 mov r1, r8 strh r0, [r1, 0x6] strh r0, [r3, 0x6] movs r0, 0xFE bl sub_80B2A7C add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AAFC0: .4byte 0x0203856c _080AAFC4: .4byte 0x02038695 _080AAFC8: .4byte 0x02038690 _080AAFCC: .4byte 0x02038670 _080AAFD0: .4byte 0x02038570 _080AAFD4: .4byte 0x02038680 _080AAFD8: .4byte 0x02038678 thumb_func_end sub_80AAF30 thumb_func_start sub_80AAFDC sub_80AAFDC: @ 80AAFDC push {lr} bl sub_80AAF30 bl sub_8071C20 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_80AAFDC thumb_func_start sub_80AAFEC sub_80AAFEC: @ 80AAFEC push {r4,lr} ldr r1, _080AB01C movs r0, 0 strb r0, [r1] movs r4, 0 ldr r3, _080AB020 ldr r2, _080AB024 ldr r1, _080AB028 movs r0, 0x3 _080AAFFE: strh r4, [r1] strh r4, [r2] strh r4, [r3] adds r3, 0x2 adds r2, 0x2 adds r1, 0x2 subs r0, 0x1 cmp r0, 0 bge _080AAFFE bl sub_8071C20 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _080AB01C: .4byte 0x0203856c _080AB020: .4byte 0x02038678 _080AB024: .4byte 0x02038680 _080AB028: .4byte 0x02038670 thumb_func_end sub_80AAFEC thumb_func_start sub_80AB02C sub_80AB02C: @ 80AB02C push {r4,r5,lr} ldr r1, _080AB078 movs r0, 0x3 strb r0, [r1] movs r0, 0 bl sub_80AE098 movs r2, 0x3 movs r5, 0x1 negs r5, r5 ldr r4, _080AB07C movs r3, 0x3 _080AB044: adds r1, r2, r4 subs r0, r3, r2 strb r0, [r1] subs r2, 0x1 cmp r2, r5 bgt _080AB044 ldr r1, _080AB080 movs r0, 0 strh r0, [r1] adds r4, r1, 0 _080AB058: movs r0, 0xFF bl sub_80B2A7C ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] lsls r0, 16 lsrs r0, 16 cmp r0, 0x4 bls _080AB058 bl sub_8071C20 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080AB078: .4byte 0x02038695 _080AB07C: .4byte 0x02038690 _080AB080: .4byte 0x0203869c thumb_func_end sub_80AB02C thumb_func_start unref_sub_80AB084 unref_sub_80AB084: @ 80AB084 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 mov r8, r0 ldr r0, _080AB160 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x22 strh r1, [r0] adds r0, 0x4 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x4 strh r1, [r0] movs r2, 0x80 lsls r2, 19 movs r3, 0xFA lsls r3, 5 adds r0, r3, 0 strh r0, [r2] ldr r3, _080AB164 ldrh r2, [r3] strh r1, [r3] ldr r4, _080AB168 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r1, _080AB16C movs r0, 0x8 strh r0, [r1] bl ResetTasks bl ResetSpriteData ldr r0, _080AB170 bl SetMainCallback2 movs r2, 0xC0 lsls r2, 19 movs r3, 0xC0 lsls r3, 9 movs r5, 0 ldr r1, _080AB174 movs r4, 0x80 lsls r4, 5 ldr r6, _080AB178 movs r7, 0x85 lsls r7, 24 _080AB108: str r5, [sp, 0x4] add r0, sp, 0x4 str r0, [r1] str r2, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080AB108 str r5, [sp, 0x4] add r0, sp, 0x4 str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 orrs r0, r7 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r4, _080AB17C adds r0, r4, 0 bl SetUpWindowConfig ldr r5, _080AB180 adds r0, r5, 0 adds r1, r4, 0 bl InitWindowFromConfig adds r0, r4, 0 bl LoadFontDefaultPalette movs r0, 0x7 str r0, [sp] adds r0, r5, 0 mov r1, r8 movs r2, 0x1 movs r3, 0x9 bl sub_8003460 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AB160: .4byte REG_BG0HOFS _080AB164: .4byte 0x04000208 _080AB168: .4byte 0x04000200 _080AB16C: .4byte REG_DISPSTAT _080AB170: .4byte sub_80AB184 _080AB174: .4byte 0x040000d4 _080AB178: .4byte 0x85000400 _080AB17C: .4byte gWindowConfig_81E6FD8 _080AB180: .4byte 0x03004210 thumb_func_end unref_sub_80AB084 thumb_func_start sub_80AB184 sub_80AB184: @ 80AB184 ldr r0, _080AB1A8 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bx lr .align 2, 0 _080AB1A8: .4byte REG_BG0HOFS thumb_func_end sub_80AB184 thumb_func_start nullsub_89 nullsub_89: @ 80AB1AC bx lr thumb_func_end nullsub_89 thumb_func_start sub_80AB1B0 sub_80AB1B0: @ 80AB1B0 ldr r1, _080AB1B8 movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _080AB1B8: .4byte 0x0203869a thumb_func_end sub_80AB1B0 thumb_func_start sub_80AB1BC sub_80AB1BC: @ 80AB1BC push {r4-r6,lr} movs r6, 0x80 lsls r6, 19 movs r0, 0x40 strh r0, [r6] ldr r4, _080AB260 ldrh r3, [r4] movs r2, 0 strh r2, [r4] ldr r5, _080AB264 ldrh r0, [r5] movs r1, 0x1 orrs r0, r1 strh r0, [r5] strh r3, [r4] ldr r1, _080AB268 movs r0, 0x8 strh r0, [r1] adds r1, 0x4 movs r3, 0x98 lsls r3, 8 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080AB26C adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 movs r3, 0x9C lsls r3, 8 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080AB270 adds r0, r3, 0 strh r0, [r1] ldr r0, _080AB274 strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r2, [r0] subs r0, 0xC ldr r3, _080AB278 adds r1, r3, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldrh r0, [r6] movs r3, 0xFE lsls r3, 7 adds r1, r3, 0 orrs r0, r1 strh r0, [r6] ldr r0, _080AB27C strh r2, [r0] ldr r0, _080AB280 strh r2, [r0] ldr r0, _080AB284 strh r2, [r0] ldr r0, _080AB288 strh r2, [r0] ldr r0, _080AB28C strh r2, [r0] ldr r0, _080AB290 strh r2, [r0] ldr r0, _080AB294 strh r2, [r0] ldr r0, _080AB298 strh r2, [r0] ldr r0, _080AB29C strh r2, [r0] ldr r0, _080AB2A0 strh r2, [r0] ldr r0, _080AB2A4 strh r2, [r0] ldr r0, _080AB2A8 strh r2, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080AB260: .4byte 0x04000208 _080AB264: .4byte 0x04000200 _080AB268: .4byte REG_DISPSTAT _080AB26C: .4byte 0x00009e09 _080AB270: .4byte 0x00003a03 _080AB274: .4byte REG_BLDCNT _080AB278: .4byte 0x00003f3f _080AB27C: .4byte 0x030042a4 _080AB280: .4byte 0x030042a0 _080AB284: .4byte 0x030042c0 _080AB288: .4byte 0x030041b4 _080AB28C: .4byte 0x03004288 _080AB290: .4byte 0x03004280 _080AB294: .4byte 0x030041b0 _080AB298: .4byte 0x030041b8 _080AB29C: .4byte 0x030042c4 _080AB2A0: .4byte 0x03004240 _080AB2A4: .4byte 0x03004200 _080AB2A8: .4byte 0x03004244 thumb_func_end sub_80AB1BC thumb_func_start sub_80AB2AC sub_80AB2AC: @ 80AB2AC push {r4,r5,lr} ldr r0, _080AB300 movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram ldr r0, _080AB304 ldr r1, _080AB308 bl LZDecompressVram ldr r0, _080AB30C ldr r1, _080AB310 bl LZDecompressVram ldr r0, _080AB314 movs r2, 0x80 lsls r2, 2 movs r1, 0 bl LoadCompressedPalette bl sub_80AB350 movs r4, 0 movs r5, 0xA0 _080AB2DC: ldr r0, _080AB318 adds r0, r5, r0 ldr r1, _080AB31C adds r1, r4, r1 ldrb r1, [r1] adds r1, 0x5 lsls r1, 4 movs r2, 0x20 bl LoadPalette adds r5, 0x20 adds r4, 0x1 cmp r4, 0x3 ble _080AB2DC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AB300: .4byte gUnknown_08D17D6C _080AB304: .4byte gUnknown_08D18818 _080AB308: .4byte 0x06002000 _080AB30C: .4byte gUnknown_08D1725C _080AB310: .4byte 0x0600d000 _080AB314: .4byte gUnknown_08D17144 _080AB318: .4byte 0x02018004 _080AB31C: .4byte 0x02038696 thumb_func_end sub_80AB2AC thumb_func_start sub_80AB320 sub_80AB320: @ 80AB320 push {r4,lr} ldr r4, _080AB340 adds r0, r4, 0 bl SetUpWindowConfig ldr r0, _080AB344 adds r1, r4, 0 bl InitWindowFromConfig ldr r0, _080AB348 ldr r1, _080AB34C bl InitWindowFromConfig pop {r4} pop {r0} bx r0 .align 2, 0 _080AB340: .4byte gWindowConfig_81E6FD8 _080AB344: .4byte 0x03004210 _080AB348: .4byte 0x0202e908 _080AB34C: .4byte gWindowConfig_81E6FF4 thumb_func_end sub_80AB320 thumb_func_start sub_80AB350 sub_80AB350: @ 80AB350 push {r4,lr} ldr r0, _080AB38C bl LoadFontDefaultPalette movs r0, 0 movs r1, 0 movs r2, 0x2 bl FillPalette movs r4, 0xA _080AB364: adds r1, r4, 0 adds r1, 0xF0 ldr r0, _080AB390 movs r2, 0x2 bl LoadPalette adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xD bls _080AB364 ldr r0, _080AB394 movs r1, 0xF3 movs r2, 0x2 bl FillPalette pop {r4} pop {r0} bx r0 .align 2, 0 _080AB38C: .4byte gWindowConfig_81E6FD8 _080AB390: .4byte 0x0202ecaa _080AB394: .4byte 0x00007e3f thumb_func_end sub_80AB350 thumb_func_start sub_80AB398 sub_80AB398: @ 80AB398 push {r4-r6,lr} ldr r4, _080AB468 adds r0, r4, 0 movs r1, 0 movs r2, 0x5C bl memset movs r5, 0 adds r4, 0x2 movs r2, 0xFF _080AB3AC: adds r1, r5, r4 ldrb r0, [r1] orrs r0, r2 strb r0, [r1] adds r5, 0x1 cmp r5, 0x3 ble _080AB3AC ldr r4, _080AB46C movs r5, 0x3 _080AB3BE: adds r0, r4, 0 movs r1, 0 movs r2, 0x1C bl memset adds r4, 0x1C subs r5, 0x1 cmp r5, 0 bge _080AB3BE ldr r4, _080AB470 movs r6, 0x4 negs r6, r6 movs r3, 0xFF adds r2, r4, 0 subs r2, 0x65 movs r5, 0x3 _080AB3DE: ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 strb r0, [r2] ldrb r0, [r2, 0x8] orrs r0, r3 strb r0, [r2, 0x8] ldrb r0, [r2, 0x9] orrs r0, r3 strb r0, [r2, 0x9] adds r2, 0x1C subs r5, 0x1 cmp r5, 0 bge _080AB3DE adds r0, r4, 0 movs r1, 0 movs r2, 0x14 bl memset adds r0, r4, 0 adds r0, 0x14 movs r1, 0 movs r2, 0x44 bl memset adds r0, r4, 0 adds r0, 0x58 movs r1, 0 movs r2, 0x4 bl memset adds r0, r4, 0 adds r0, 0x68 movs r1, 0 movs r2, 0x10 bl memset ldr r0, _080AB474 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080AB43A movs r0, 0 bl sub_80B0F28 _080AB43A: movs r5, 0 movs r6, 0xFF adds r3, r4, 0 subs r3, 0xB8 adds r2, r4, 0 subs r2, 0x57 ldr r4, _080AB478 _080AB448: ldrb r0, [r2] orrs r0, r6 strb r0, [r2] adds r1, r3, r5 adds r0, r5, r4 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1C adds r5, 0x1 cmp r5, 0x3 ble _080AB448 bl sub_80B159C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080AB468: .4byte 0x02019204 _080AB46C: .4byte 0x02019260 _080AB470: .4byte 0x020192d0 _080AB474: .4byte 0x0203869a _080AB478: .4byte 0x02038696 thumb_func_end sub_80AB398 thumb_func_start sub_80AB47C sub_80AB47C: @ 80AB47C push {r4-r7,lr} sub sp, 0x4 ldr r0, _080AB498 ldr r1, _080AB49C adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0x1 beq _080AB554 cmp r0, 0x1 bgt _080AB4A0 cmp r0, 0 beq _080AB4AA b _080AB5AE .align 2, 0 _080AB498: .4byte 0x03001770 _080AB49C: .4byte 0x0000043c _080AB4A0: cmp r0, 0x2 beq _080AB55A cmp r0, 0x3 beq _080AB578 b _080AB5AE _080AB4AA: movs r0, 0 bl SetVBlankCallback bl sub_80AB320 bl sub_80AB1BC bl dp12_8087EA4 bl ResetPaletteFade ldr r0, _080AB538 ldrb r1, [r0, 0x8] movs r2, 0x80 orrs r1, r2 strb r1, [r0, 0x8] movs r2, 0xC0 lsls r2, 19 movs r3, 0xC0 lsls r3, 9 movs r5, 0 ldr r1, _080AB53C movs r4, 0x80 lsls r4, 5 ldr r6, _080AB540 movs r7, 0x85 lsls r7, 24 _080AB4E0: str r5, [sp] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080AB4E0 str r5, [sp] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 orrs r0, r7 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetSpriteData bl ResetTasks bl FreeAllSpritePalettes ldr r1, _080AB544 movs r0, 0x4 strb r0, [r1] ldr r0, _080AB548 movs r1, 0xC0 lsls r1, 9 adds r0, r1 movs r1, 0 strb r1, [r0] bl sub_8040710 bl sub_80AB398 ldr r1, _080AB54C ldr r0, _080AB550 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080AB5AE .align 2, 0 _080AB538: .4byte 0x0202f388 _080AB53C: .4byte 0x040000d4 _080AB540: .4byte 0x85000400 _080AB544: .4byte 0x030028f8 _080AB548: .4byte 0x02000000 _080AB54C: .4byte 0x03001770 _080AB550: .4byte 0x0000043c _080AB554: bl sub_80AB350 b _080AB56C _080AB55A: ldr r5, _080AB574 adds r0, r5, 0 bl sub_80AB70C lsls r0, 24 cmp r0, 0 beq _080AB5AE movs r0, 0 strb r0, [r5] _080AB56C: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _080AB5AE .align 2, 0 _080AB574: .4byte 0x0201925d _080AB578: bl sub_80B2184 ldr r0, _080AB5B8 movs r1, 0 strh r1, [r0] ldr r0, _080AB5BC strh r1, [r0] movs r0, 0x2 bl BeginFastPaletteFade ldr r2, _080AB5C0 ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] ldr r0, _080AB5C4 bl SetVBlankCallback ldr r0, _080AB5C8 movs r1, 0xA bl CreateTask ldr r1, _080AB5CC strb r0, [r1, 0x8] ldr r0, _080AB5D0 bl SetMainCallback2 _080AB5AE: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AB5B8: .4byte 0x030042c0 _080AB5BC: .4byte 0x030041b4 _080AB5C0: .4byte 0x0202f388 _080AB5C4: .4byte sub_80ABAC4 _080AB5C8: .4byte sub_80AB5D4 _080AB5CC: .4byte 0x02019204 _080AB5D0: .4byte sub_80ABAAC thumb_func_end sub_80AB47C thumb_func_start sub_80AB5D4 sub_80AB5D4: @ 80AB5D4 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080AB5F8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080AB5F4 ldr r0, _080AB5FC lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _080AB600 str r0, [r1] _080AB5F4: pop {r0} bx r0 .align 2, 0 _080AB5F8: .4byte 0x0202f388 _080AB5FC: .4byte 0x03004b20 _080AB600: .4byte sub_80AB604 thumb_func_end sub_80AB5D4 thumb_func_start sub_80AB604 sub_80AB604: @ 80AB604 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080AB648 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080AB65C ldr r2, _080AB64C ldrb r1, [r2, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080AB66A ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] bl sub_80AF860 ldr r0, _080AB650 movs r1, 0 bl CreateTask ldr r1, _080AB654 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080AB658 str r1, [r0] b _080AB66A .align 2, 0 _080AB648: .4byte 0x0203869a _080AB64C: .4byte 0x0202f388 _080AB650: .4byte sub_80AB678 _080AB654: .4byte 0x03004b20 _080AB658: .4byte nullsub_89 _080AB65C: ldr r0, _080AB670 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080AB674 str r0, [r1] _080AB66A: pop {r4} pop {r0} bx r0 .align 2, 0 _080AB670: .4byte 0x03004b20 _080AB674: .4byte sub_80AB960 thumb_func_end sub_80AB604 thumb_func_start sub_80AB678 sub_80AB678: @ 80AB678 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080AB68C ldr r2, _080AB690 bl SetTaskFuncWithFollowupFunc pop {r0} bx r0 .align 2, 0 _080AB68C: .4byte sub_80C89DC _080AB690: .4byte sub_80AB694 thumb_func_end sub_80AB678 thumb_func_start sub_80AB694 sub_80AB694: @ 80AB694 lsls r0, 24 lsrs r0, 24 movs r3, 0x1 ldr r2, _080AB6AC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r3, [r1, 0x8] ldr r0, _080AB6B0 str r0, [r1] bx lr .align 2, 0 _080AB6AC: .4byte 0x03004b20 _080AB6B0: .4byte sub_80AB6B4 thumb_func_end sub_80AB694 thumb_func_start sub_80AB6B4 sub_80AB6B4: @ 80AB6B4 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r5, _080AB6F8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r5 ldrh r1, [r0, 0x8] subs r1, 0x1 strh r1, [r0, 0x8] lsls r1, 16 cmp r1, 0 bgt _080AB6F2 bl GetMultiplayerId adds r0, r4, 0 bl DestroyTask ldr r0, _080AB6FC ldrb r1, [r0, 0x8] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 ldr r1, _080AB700 str r1, [r0] ldr r1, _080AB704 ldr r0, _080AB708 ldr r0, [r0] str r0, [r1] _080AB6F2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AB6F8: .4byte 0x03004b20 _080AB6FC: .4byte 0x02019204 _080AB700: .4byte sub_80AB960 _080AB704: .4byte gRngValue _080AB708: .4byte 0x03005d28 thumb_func_end sub_80AB6B4 thumb_func_start sub_80AB70C sub_80AB70C: @ 80AB70C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x44 mov r10, r0 ldrb r0, [r0] cmp r0, 0x6 bls _080AB722 b _080AB93C _080AB722: lsls r0, 2 ldr r1, _080AB72C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080AB72C: .4byte _080AB730 .align 2, 0 _080AB730: .4byte _080AB74C .4byte _080AB7A0 .4byte _080AB7B0 .4byte _080AB800 .4byte _080AB814 .4byte _080AB844 .4byte _080AB8CC _080AB74C: ldr r0, _080AB794 ldrb r1, [r0, 0x8] movs r2, 0x80 orrs r1, r2 strb r1, [r0, 0x8] movs r2, 0xC0 lsls r2, 19 movs r3, 0xC0 lsls r3, 9 add r5, sp, 0x40 movs r6, 0 ldr r1, _080AB798 movs r4, 0x80 lsls r4, 5 mov r8, r5 ldr r7, _080AB79C movs r0, 0x85 lsls r0, 24 mov r9, r0 _080AB772: str r6, [sp, 0x40] mov r0, r8 str r0, [r1] str r2, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080AB772 str r6, [sp, 0x40] str r5, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r9 orrs r0, r2 b _080AB7E6 .align 2, 0 _080AB794: .4byte 0x0202f388 _080AB798: .4byte 0x040000d4 _080AB79C: .4byte 0x85000400 _080AB7A0: ldr r0, _080AB7AC movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram b _080AB946 .align 2, 0 _080AB7AC: .4byte gUnknown_08D17D6C _080AB7B0: ldr r0, _080AB7EC ldr r4, _080AB7F0 adds r1, r4, 0 bl LZDecompressVram ldr r3, _080AB7F4 movs r5, 0x80 lsls r5, 6 ldr r1, _080AB7F8 ldr r6, _080AB7FC movs r2, 0x80 lsls r2, 5 movs r7, 0x84 lsls r7, 24 _080AB7CC: str r4, [r1] str r3, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r4, r2 adds r3, r2 subs r5, r2 cmp r5, r2 bhi _080AB7CC str r4, [r1] str r3, [r1, 0x4] lsrs r0, r5, 2 orrs r0, r7 _080AB7E6: str r0, [r1, 0x8] ldr r0, [r1, 0x8] b _080AB946 .align 2, 0 _080AB7EC: .4byte gUnknown_08D18818 _080AB7F0: .4byte 0x06002000 _080AB7F4: .4byte 0x02015800 _080AB7F8: .4byte 0x040000d4 _080AB7FC: .4byte 0x84000400 _080AB800: ldr r0, _080AB80C ldr r1, _080AB810 bl LZDecompressVram b _080AB946 .align 2, 0 _080AB80C: .4byte gUnknown_08D1725C _080AB810: .4byte 0x0600d000 _080AB814: ldr r0, _080AB830 ldr r4, _080AB834 adds r1, r4, 0 bl LZDecompressVram ldr r1, _080AB838 ldr r0, _080AB83C str r4, [r0] str r1, [r0, 0x4] ldr r1, _080AB840 str r1, [r0, 0x8] ldr r0, [r0, 0x8] b _080AB946 .align 2, 0 _080AB830: .4byte gUnknown_08D17424 _080AB834: .4byte 0x0600e000 _080AB838: .4byte 0x02018a04 _080AB83C: .4byte 0x040000d4 _080AB840: .4byte 0x84000200 _080AB844: ldr r0, _080AB8AC movs r2, 0x80 lsls r2, 2 movs r1, 0 bl LoadCompressedPalette ldr r5, _080AB8B0 ldr r6, _080AB8B4 adds r0, r5, 0 mov r1, sp adds r2, r6, 0 bl CpuSet ldr r0, _080AB8B8 mov r9, r0 ldrb r0, [r0] adds r0, 0x5 lsls r0, 5 ldr r1, _080AB8BC adds r1, r5 mov r8, r1 add r0, r8 add r4, sp, 0x20 adds r1, r4, 0 adds r2, r6, 0 bl CpuSet adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl CpuSet mov r2, r9 ldrb r1, [r2] adds r1, 0x5 lsls r1, 5 add r1, r8 mov r0, sp adds r2, r6, 0 bl CpuSet ldr r1, _080AB8C0 ldr r0, _080AB8C4 mov r2, r8 str r2, [r0] str r1, [r0, 0x4] ldr r1, _080AB8C8 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_80AB350 b _080AB946 .align 2, 0 _080AB8AC: .4byte gUnknown_08D17144 _080AB8B0: .4byte 0x0202ebc8 _080AB8B4: .4byte REG_BG0CNT _080AB8B8: .4byte 0x02038695 _080AB8BC: .4byte 0xffffff00 _080AB8C0: .4byte 0x02018004 _080AB8C4: .4byte 0x040000d4 _080AB8C8: .4byte 0x84000080 _080AB8CC: bl sub_80B1118 bl sub_80AFA5C bl sub_80AEB30 bl sub_80AE8B4 ldr r1, _080AB924 movs r4, 0 strb r0, [r1, 0x12] bl sub_80AFE30 bl sub_80B0034 bl sub_80B00C8 bl sub_80B0324 bl sub_80B0518 ldr r1, _080AB928 strb r4, [r1] movs r0, 0x1 strb r0, [r1, 0x1] movs r3, 0x3 strb r3, [r1, 0x2] movs r2, 0x2 strb r2, [r1, 0x3] ldr r0, _080AB92C strh r4, [r0] ldr r4, _080AB930 strb r2, [r4] ldr r0, _080AB934 strb r3, [r0] bl sub_80AE858 ldr r2, _080AB938 ldrb r1, [r4] adds r1, r2 strb r0, [r1] bl sub_80B292C b _080AB946 .align 2, 0 _080AB924: .4byte 0x02019204 _080AB928: .4byte 0x02024a72 _080AB92C: .4byte 0x020239f8 _080AB930: .4byte 0x02024c07 _080AB934: .4byte 0x02024c08 _080AB938: .4byte 0x02024be0 _080AB93C: movs r0, 0 mov r1, r10 strb r0, [r1] movs r0, 0x1 b _080AB950 _080AB946: mov r2, r10 ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] movs r0, 0 _080AB950: add sp, 0x44 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80AB70C thumb_func_start sub_80AB960 sub_80AB960: @ 80AB960 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r1, _080AB994 ldrb r2, [r1, 0x8] movs r0, 0x7F ands r0, r2 strb r0, [r1, 0x8] ldrb r1, [r1, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080AB990 ldr r0, _080AB998 lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 strh r2, [r1, 0x8] strh r2, [r1, 0xA] ldr r0, _080AB99C str r0, [r1] _080AB990: pop {r0} bx r0 .align 2, 0 _080AB994: .4byte 0x0202f388 _080AB998: .4byte 0x03004b20 _080AB99C: .4byte sub_80AB9A0 thumb_func_end sub_80AB960 thumb_func_start sub_80AB9A0 sub_80AB9A0: @ 80AB9A0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080AB9C4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0x4 bhi _080ABA7C lsls r0, 2 ldr r1, _080AB9C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080AB9C4: .4byte 0x03004b20 _080AB9C8: .4byte _080AB9CC .align 2, 0 _080AB9CC: .4byte _080AB9E0 .4byte _080ABA0A .4byte _080ABA28 .4byte _080ABA44 .4byte _080ABA7C _080AB9E0: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r4, r0, r2 ldrh r0, [r4, 0xA] adds r1, r0, 0x1 strh r1, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C ble _080ABA9C movs r0, 0 strh r0, [r4, 0xA] movs r0, 0x61 movs r1, 0 bl audio_play_and_stuff ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080ABA9C _080ABA0A: ldr r1, _080ABA24 ldrh r0, [r1] adds r0, 0x7 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0xA0 ble _080ABA9C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r2 b _080ABA68 .align 2, 0 _080ABA24: .4byte 0x030041b4 _080ABA28: bl sub_80B2280 ldr r0, _080ABA40 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 _080ABA9C .align 2, 0 _080ABA40: .4byte 0x03004b20 _080ABA44: ldr r3, _080ABA70 ldrb r2, [r3] movs r1, 0x4 negs r1, r1 adds r0, r1, 0 ands r0, r2 strb r0, [r3] ldr r2, _080ABA74 ldrb r0, [r2] ands r1, r0 strb r1, [r2] bl sub_80B1B14 ldr r1, _080ABA78 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 _080ABA68: ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _080ABA9C .align 2, 0 _080ABA70: .4byte REG_BG0CNT _080ABA74: .4byte REG_BG2CNT _080ABA78: .4byte 0x03004b20 _080ABA7C: ldr r0, _080ABAA4 ldrb r1, [r0, 0x6] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _080ABA9C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r2 strh r1, [r0, 0x8] strh r1, [r0, 0xA] ldr r1, _080ABAA8 str r1, [r0] _080ABA9C: pop {r4} pop {r0} bx r0 .align 2, 0 _080ABAA4: .4byte 0x02019204 _080ABAA8: .4byte sub_80ABB70 thumb_func_end sub_80AB9A0 thumb_func_start sub_80ABAAC sub_80ABAAC: @ 80ABAAC push {lr} bl AnimateSprites bl RunTasks bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80ABAAC thumb_func_start sub_80ABAC4 sub_80ABAC4: @ 80ABAC4 push {lr} ldr r1, _080ABB3C ldr r0, _080ABB40 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080ABB44 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080ABB48 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080ABB4C ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080ABB50 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080ABB54 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080ABB58 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080ABB5C ldrh r0, [r0] strh r0, [r1] adds r1, 0x22 ldr r0, _080ABB60 ldrh r0, [r0] strh r0, [r1] adds r1, 0x4 ldr r0, _080ABB64 ldrh r0, [r0] strh r0, [r1] subs r1, 0x2 ldr r0, _080ABB68 ldrh r0, [r0] strh r0, [r1] adds r1, 0x4 ldr r0, _080ABB6C ldrh r0, [r0] strh r0, [r1] bl TransferPlttBuffer bl LoadOam bl ProcessSpriteCopyRequests bl sub_8089668 pop {r0} bx r0 .align 2, 0 _080ABB3C: .4byte REG_BG0HOFS _080ABB40: .4byte 0x030042a4 _080ABB44: .4byte 0x030042a0 _080ABB48: .4byte 0x030042c0 _080ABB4C: .4byte 0x030041b4 _080ABB50: .4byte 0x03004288 _080ABB54: .4byte 0x03004280 _080ABB58: .4byte 0x030041b0 _080ABB5C: .4byte 0x030041b8 _080ABB60: .4byte 0x030042c4 _080ABB64: .4byte 0x03004240 _080ABB68: .4byte 0x03004200 _080ABB6C: .4byte 0x03004244 thumb_func_end sub_80ABAC4 thumb_func_start sub_80ABB70 sub_80ABB70: @ 80ABB70 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _080ABBB0 movs r1, 0 strh r1, [r0] ldr r0, _080ABBB4 strh r1, [r0] bl sub_80B0D7C ldr r1, _080ABBB8 ldr r2, _080ABBBC ldr r0, _080ABBC0 str r1, [r0] str r2, [r0, 0x4] ldr r1, _080ABBC4 str r1, [r0, 0x8] ldr r0, [r0, 0x8] ldr r0, _080ABBC8 ldrb r0, [r0] bl sub_80AF59C lsls r0, 24 cmp r0, 0 bne _080ABBD4 ldr r0, _080ABBCC ldr r1, _080ABBD0 bl StringCopy b _080ABBDC .align 2, 0 _080ABBB0: .4byte 0x030042a0 _080ABBB4: .4byte 0x03004280 _080ABBB8: .4byte 0x0202eac8 _080ABBBC: .4byte 0x02018204 _080ABBC0: .4byte 0x040000d4 _080ABBC4: .4byte 0x84000100 _080ABBC8: .4byte 0x02038695 _080ABBCC: .4byte 0x020238cc _080ABBD0: .4byte gUnknown_083CAF84 _080ABBD4: ldr r0, _080ABC20 ldr r1, _080ABC24 bl StringCopy _080ABBDC: ldr r5, _080ABC20 ldr r0, _080ABC28 ldrb r1, [r0, 0x1] adds r1, 0x1 adds r0, r5, 0 bl sub_80AE020 bl sub_80AF138 ldr r4, _080ABC2C adds r0, r4, 0 adds r1, r5, 0 bl StringExpandPlaceholders ldr r0, _080ABC30 movs r2, 0xC2 lsls r2, 2 movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r3, 0x1 bl sub_8002EB0 ldr r1, _080ABC34 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _080ABC38 str r1, [r0] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080ABC20: .4byte 0x020238cc _080ABC24: .4byte gUnknown_083CAFAE _080ABC28: .4byte 0x02019204 _080ABC2C: .4byte 0x020234cc _080ABC30: .4byte 0x0202e908 _080ABC34: .4byte 0x03004b20 _080ABC38: .4byte sub_80ABC3C thumb_func_end sub_80ABB70 thumb_func_start sub_80ABC3C sub_80ABC3C: @ 80ABC3C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080ABC64 bl sub_80037A0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080ABC5E ldr r0, _080ABC68 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080ABC6C str r0, [r1] _080ABC5E: pop {r4} pop {r0} bx r0 .align 2, 0 _080ABC64: .4byte 0x0202e908 _080ABC68: .4byte 0x03004b20 _080ABC6C: .4byte sub_80ABC70 thumb_func_end sub_80ABC3C thumb_func_start sub_80ABC70 sub_80ABC70: @ 80ABC70 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 ldr r0, _080ABCB0 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080ABC88 cmp r1, 0x2 bne _080ABCCE _080ABC88: movs r0, 0x5 bl audio_play ldr r0, _080ABCB4 ldrb r0, [r0] bl sub_80AF59C lsls r0, 24 cmp r0, 0 bne _080ABCC0 movs r0, 0x1 bl sub_80AFFE0 ldr r0, _080ABCB8 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080ABCBC b _080ABCCC .align 2, 0 _080ABCB0: .4byte 0x03001770 _080ABCB4: .4byte 0x02038695 _080ABCB8: .4byte 0x03004b20 _080ABCBC: .4byte sub_80ABCDC _080ABCC0: ldr r0, _080ABCD4 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _080ABCD8 _080ABCCC: str r0, [r1] _080ABCCE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080ABCD4: .4byte 0x03004b20 _080ABCD8: .4byte sub_80AC0C8 thumb_func_end sub_80ABC70 thumb_func_start sub_80ABCDC sub_80ABCDC: @ 80ABCDC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x28] ldr r0, _080ABD80 movs r1, 0xA0 strh r1, [r0] ldr r0, _080ABD84 strh r1, [r0] ldr r5, _080ABD88 ldr r4, _080ABD8C ldrb r2, [r4] ldrb r3, [r4, 0x1] ldrb r0, [r4, 0x2] str r0, [sp] ldrb r0, [r4, 0x3] str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0 bl FillWindowRect_DefaultPalette movs r6, 0 ldr r0, _080ABD90 mov r8, r0 ldr r7, _080ABD94 mov r9, r5 mov r10, r4 _080ABD1C: lsls r1, r6, 1 mov r3, r8 ldrb r2, [r3] lsls r0, r2, 6 adds r1, r0 ldr r0, _080ABD98 adds r1, r0 ldrh r4, [r1] add r5, sp, 0x8 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r7 ldrh r0, [r0, 0x8] cmp r0, 0 beq _080ABDA0 adds r0, r2, 0 bl sub_80B214C lsls r0, 24 cmp r0, 0 beq _080ABDA0 mov r2, r8 ldrb r1, [r2] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r7 ldrh r0, [r0, 0x8] adds r1, r4, 0 bl AreMovesContestCombo lsls r0, 24 cmp r0, 0 beq _080ABDA0 mov r3, r8 ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r7 ldrb r1, [r0, 0x15] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080ABDA0 add r0, sp, 0x8 ldr r1, _080ABD9C b _080ABDC6 .align 2, 0 _080ABD80: .4byte 0x030042a0 _080ABD84: .4byte 0x03004280 _080ABD88: .4byte 0x03004210 _080ABD8C: .4byte gUnknown_083CA340 _080ABD90: .4byte 0x02038695 _080ABD94: .4byte 0x02019260 _080ABD98: .4byte 0x0203858e _080ABD9C: .4byte gUnknown_083CC3A0 _080ABDA0: cmp r4, 0 beq _080ABDCC mov r1, r8 ldrb r0, [r1] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r7 ldrh r0, [r1, 0x8] cmp r0, r4 bne _080ABDCC ldr r0, _080ABE74 lsls r1, r4, 3 adds r1, r0 ldrb r0, [r1] cmp r0, 0x3 beq _080ABDCC add r0, sp, 0x8 ldr r1, _080ABE78 _080ABDC6: bl StringCopy adds r5, r0, 0 _080ABDCC: movs r0, 0xD adds r1, r4, 0 muls r1, r0 ldr r0, _080ABE7C adds r1, r0 adds r0, r5, 0 bl StringCopy lsls r1, r6, 2 adds r2, r1, r6 lsls r2, 18 movs r3, 0xC2 lsls r3, 18 adds r2, r3 lsrs r2, 16 mov r3, r10 adds r0, r1, r3 ldrb r3, [r0] lsls r3, 3 adds r3, 0x4 lsls r3, 24 lsrs r3, 24 ldr r0, _080ABE80 adds r1, r0 ldrb r0, [r1] lsls r0, 3 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] mov r0, r9 add r1, sp, 0x8 bl sub_8002E4C mov r0, r9 bl sub_8002F44 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 bhi _080ABE20 b _080ABD1C _080ABE20: ldr r1, _080ABE84 ldr r3, _080ABE88 movs r0, 0x48 str r0, [sp] movs r0, 0 movs r2, 0xC bl sub_814A5C0 ldr r4, _080ABE8C movs r0, 0 ldrsb r0, [r4, r0] bl sub_80AC0AC ldr r2, _080ABE90 ldrb r1, [r4] lsls r1, 1 ldr r0, _080ABE94 ldrb r0, [r0] lsls r0, 6 adds r1, r0 adds r2, 0x1E adds r1, r2 ldrh r0, [r1] bl sub_80AEBEC ldr r1, _080ABE98 ldr r2, [sp, 0x28] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 ldr r1, _080ABE9C str r1, [r0] add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080ABE74: .4byte gContestMoves _080ABE78: .4byte gUnknown_083CC3A7 _080ABE7C: .4byte gMoveNames _080ABE80: .4byte gUnknown_083CA340 + 0x1 _080ABE84: .4byte 0x0000ffff _080ABE88: .4byte 0x00002d9f _080ABE8C: .4byte 0x02019204 _080ABE90: .4byte 0x02038570 _080ABE94: .4byte 0x02038695 _080ABE98: .4byte 0x03004b20 _080ABE9C: .4byte sub_80ABEA0 thumb_func_end sub_80ABCDC thumb_func_start sub_80ABEA0 sub_80ABEA0: @ 80ABEA0 push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r7, r0, 24 movs r6, 0 ldr r3, _080ABEF4 ldr r1, _080ABEF8 ldr r0, _080ABEFC ldrb r0, [r0] lsls r0, 6 adds r1, 0x1E adds r1, r0, r1 movs r2, 0x3 _080ABEBA: ldrh r0, [r1] cmp r0, 0 beq _080ABEC6 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _080ABEC6: adds r1, 0x2 subs r2, 0x1 cmp r2, 0 bge _080ABEBA ldrh r0, [r3, 0x2E] movs r5, 0x1 ands r5, r0 cmp r5, 0 beq _080ABF08 bl sub_814A7FC movs r0, 0x5 bl audio_play ldr r0, _080ABF00 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 ldr r0, _080ABF04 str r0, [r1] b _080AC098 .align 2, 0 _080ABEF4: .4byte 0x03001770 _080ABEF8: .4byte 0x02038570 _080ABEFC: .4byte 0x02038695 _080ABF00: .4byte 0x03004b20 _080ABF04: .4byte sub_80AC0C8 _080ABF08: ldrh r0, [r3, 0x30] cmp r0, 0x20 bne _080ABF10 b _080AC098 _080ABF10: cmp r0, 0x20 bgt _080ABF1A cmp r0, 0x2 beq _080ABF26 b _080AC098 _080ABF1A: cmp r0, 0x40 beq _080ABFEC cmp r0, 0x80 bne _080ABF24 b _080AC048 _080ABF24: b _080AC098 _080ABF26: bl sub_814A904 movs r0, 0x5 bl audio_play movs r0, 0 bl sub_80AFFE0 ldr r0, _080ABF64 ldr r1, _080ABF68 ldrb r2, [r1] ldrb r3, [r1, 0x1] ldrb r4, [r1, 0x2] str r4, [sp] ldrb r1, [r1, 0x3] str r1, [sp, 0x4] movs r1, 0 bl FillWindowRect_DefaultPalette ldr r0, _080ABF6C ldrb r0, [r0] bl sub_80AF59C lsls r0, 24 cmp r0, 0 bne _080ABF78 ldr r0, _080ABF70 ldr r1, _080ABF74 bl StringCopy b _080ABF80 .align 2, 0 _080ABF64: .4byte 0x03004210 _080ABF68: .4byte gUnknown_083CA340 _080ABF6C: .4byte 0x02038695 _080ABF70: .4byte 0x020238cc _080ABF74: .4byte gUnknown_083CAF84 _080ABF78: ldr r0, _080ABFC8 ldr r1, _080ABFCC bl StringCopy _080ABF80: ldr r5, _080ABFC8 ldr r0, _080ABFD0 ldrb r1, [r0, 0x1] adds r1, 0x1 adds r0, r5, 0 bl sub_80AE020 bl sub_80AF138 ldr r4, _080ABFD4 adds r0, r4, 0 adds r1, r5, 0 bl StringExpandPlaceholders ldr r0, _080ABFD8 movs r2, 0xC2 lsls r2, 2 movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r3, 0x1 bl sub_8003460 ldr r0, _080ABFDC movs r1, 0 strh r1, [r0] ldr r0, _080ABFE0 strh r1, [r0] ldr r1, _080ABFE4 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, _080ABFE8 str r1, [r0] b _080AC098 .align 2, 0 _080ABFC8: .4byte 0x020238cc _080ABFCC: .4byte gUnknown_083CAFAE _080ABFD0: .4byte 0x02019204 _080ABFD4: .4byte 0x020234cc _080ABFD8: .4byte 0x0202e908 _080ABFDC: .4byte 0x030042a0 _080ABFE0: .4byte 0x03004280 _080ABFE4: .4byte 0x03004b20 _080ABFE8: .4byte sub_80ABC70 _080ABFEC: ldr r4, _080AC000 movs r0, 0 ldrsb r0, [r4, r0] bl nullsub_17 ldrb r0, [r4] cmp r0, 0 bne _080AC004 subs r0, r6, 0x1 b _080AC006 .align 2, 0 _080AC000: .4byte 0x02019204 _080AC004: subs r0, 0x1 _080AC006: strb r0, [r4] ldr r4, _080AC03C movs r0, 0 ldrsb r0, [r4, r0] bl sub_80AC0AC bl sub_80AED58 ldr r2, _080AC040 ldrb r1, [r4] lsls r1, 1 ldr r0, _080AC044 ldrb r0, [r0] lsls r0, 6 adds r1, r0 adds r2, 0x1E adds r1, r2 ldrh r0, [r1] bl sub_80AEBEC cmp r6, 0x1 bls _080AC098 movs r0, 0x5 bl audio_play b _080AC098 .align 2, 0 _080AC03C: .4byte 0x02019204 _080AC040: .4byte 0x02038570 _080AC044: .4byte 0x02038695 _080AC048: ldr r4, _080AC060 movs r0, 0 ldrsb r0, [r4, r0] bl nullsub_17 ldrb r1, [r4] subs r0, r6, 0x1 cmp r1, r0 bne _080AC064 strb r5, [r4] b _080AC068 .align 2, 0 _080AC060: .4byte 0x02019204 _080AC064: adds r0, r1, 0x1 strb r0, [r4] _080AC068: ldr r4, _080AC0A0 movs r0, 0 ldrsb r0, [r4, r0] bl sub_80AC0AC bl sub_80AED58 ldr r2, _080AC0A4 ldrb r1, [r4] lsls r1, 1 ldr r0, _080AC0A8 ldrb r0, [r0] lsls r0, 6 adds r1, r0 adds r2, 0x1E adds r1, r2 ldrh r0, [r1] bl sub_80AEBEC cmp r6, 0x1 bls _080AC098 movs r0, 0x5 bl audio_play _080AC098: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AC0A0: .4byte 0x02019204 _080AC0A4: .4byte 0x02038570 _080AC0A8: .4byte 0x02038695 thumb_func_end sub_80ABEA0 thumb_func_start sub_80AC0AC sub_80AC0AC: @ 80AC0AC push {lr} adds r1, r0, 0 lsls r1, 28 movs r0, 0xB0 lsls r0, 23 adds r1, r0 lsrs r1, 24 movs r0, 0x4 bl sub_814A880 pop {r0} bx r0 thumb_func_end sub_80AC0AC thumb_func_start nullsub_17 nullsub_17: @ 80AC0C4 bx lr thumb_func_end nullsub_17 thumb_func_start sub_80AC0C8 sub_80AC0C8: @ 80AC0C8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080AC120 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080AC13C ldr r4, _080AC124 ldrb r0, [r4] bl sub_80AF15C ldrb r2, [r4] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 ldr r2, _080AC128 adds r1, r2 strh r0, [r1, 0x6] ldr r4, _080AC12C adds r0, r4, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080AC130 adds r1, r4, 0 bl SetTaskFuncWithFollowupFunc ldr r1, _080AC134 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080AC138 str r1, [r0] bl sub_80AF860 movs r0, 0 bl sub_80AFFE0 b _080AC14E .align 2, 0 _080AC120: .4byte 0x0203869a _080AC124: .4byte 0x02038695 _080AC128: .4byte 0x02019260 _080AC12C: .4byte sub_80C8A38 _080AC130: .4byte sub_80AC15C _080AC134: .4byte 0x03004b20 _080AC138: .4byte nullsub_89 _080AC13C: bl sub_80AF1B8 ldr r0, _080AC154 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _080AC158 str r0, [r1] _080AC14E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AC154: .4byte 0x03004b20 _080AC158: .4byte sub_80AC188 thumb_func_end sub_80AC0C8 thumb_func_start sub_80AC15C sub_80AC15C: @ 80AC15C push {lr} lsls r0, 24 lsrs r0, 24 bl DestroyTask ldr r2, _080AC17C ldr r0, _080AC180 ldrb r1, [r0, 0x8] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, _080AC184 str r1, [r0] pop {r0} bx r0 .align 2, 0 _080AC17C: .4byte 0x03004b20 _080AC180: .4byte 0x02019204 _080AC184: .4byte sub_80AC188 thumb_func_end sub_80AC15C thumb_func_start sub_80AC188 sub_80AC188: @ 80AC188 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 bl sub_80AF138 ldr r0, _080AC1E4 movs r1, 0 strh r1, [r0] ldr r0, _080AC1E8 strh r1, [r0] movs r0, 0 bl sub_80AFFE0 ldr r1, _080AC1EC ldr r0, _080AC1F0 movs r2, 0x80 lsls r2, 3 ldr r4, _080AC1F4 str r1, [r4] str r0, [r4, 0x4] lsrs r1, r2, 2 movs r3, 0x84 lsls r3, 24 orrs r1, r3 str r1, [r4, 0x8] ldr r1, [r4, 0x8] ldr r1, _080AC1F8 adds r0, r1 movs r1, 0 bl LoadPalette ldr r1, _080AC1FC lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] strh r1, [r0, 0xA] ldr r1, _080AC200 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AC1E4: .4byte 0x030042a0 _080AC1E8: .4byte 0x03004280 _080AC1EC: .4byte 0x0202eec8 _080AC1F0: .4byte 0x02018604 _080AC1F4: .4byte 0x040000d4 _080AC1F8: .4byte 0xfffffc00 _080AC1FC: .4byte 0x03004b20 _080AC200: .4byte sub_80AC204 thumb_func_end sub_80AC188 thumb_func_start sub_80AC204 sub_80AC204: @ 80AC204 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080AC248 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080AC242 movs r0, 0 strh r0, [r4, 0x8] ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _080AC242 bl sub_80B1BDC movs r0, 0x1 bl sub_80B25E4 ldr r0, _080AC24C str r0, [r4] _080AC242: pop {r4} pop {r0} bx r0 .align 2, 0 _080AC248: .4byte 0x03004b20 _080AC24C: .4byte sub_80AC250 thumb_func_end sub_80AC204 thumb_func_start sub_80AC250 sub_80AC250: @ 80AC250 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080AC278 ldrh r1, [r0, 0x6] movs r0, 0x90 lsls r0, 2 ands r0, r1 cmp r0, 0 bne _080AC272 ldr r0, _080AC27C lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _080AC280 str r0, [r1] _080AC272: pop {r0} bx r0 .align 2, 0 _080AC278: .4byte 0x02019204 _080AC27C: .4byte 0x03004b20 _080AC280: .4byte sub_80AC284 thumb_func_end sub_80AC250 thumb_func_start sub_80AC284 sub_80AC284: @ 80AC284 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080AC2BC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r2, r1, r2 ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080AC2B6 ldr r1, _080AC2C0 movs r0, 0 strb r0, [r1, 0x10] ldr r0, _080AC2C4 ldr r0, [r0] str r0, [r1, 0x18] movs r0, 0 strh r0, [r2, 0x8] ldr r0, _080AC2C8 str r0, [r2] _080AC2B6: pop {r0} bx r0 .align 2, 0 _080AC2BC: .4byte 0x03004b20 _080AC2C0: .4byte 0x02019204 _080AC2C4: .4byte gRngValue _080AC2C8: .4byte sub_80AC2CC thumb_func_end sub_80AC284 thumb_func_start sub_80AC2CC sub_80AC2CC: @ 80AC2CC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r2, _080AC308 ldrb r7, [r2, 0x11] ldr r1, _080AC30C lsls r0, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r3, 0x8 ldrsh r0, [r0, r3] adds r6, r2, 0 mov r12, r1 cmp r0, 0x3B bls _080AC2FC bl _080AD8CA _080AC2FC: lsls r0, 2 ldr r1, _080AC310 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080AC308: .4byte 0x02019204 _080AC30C: .4byte 0x03004b20 _080AC310: .4byte _080AC314 .align 2, 0 _080AC314: .4byte _080AC404 .4byte _080AC4B4 .4byte _080AC4D4 .4byte _080AC534 .4byte _080AC5E8 .4byte _080AC638 .4byte _080AC6F8 .4byte _080AC730 .4byte _080AC77C .4byte _080AC7F4 .4byte _080AD750 .4byte _080AD77C .4byte _080AC98C .4byte _080AC9C0 .4byte _080ACEC0 .4byte _080ACFD4 .4byte _080AD040 .4byte _080AD070 .4byte _080AD168 .4byte _080AD11A .4byte _080AD7B8 .4byte _080AD868 .4byte _080AD88C .4byte _080AC81E .4byte _080AC8CC .4byte _080ACAD8 .4byte _080ACAEE .4byte _080ACBB0 .4byte _080ACBDC .4byte _080ACC44 .4byte _080ACD2A .4byte _080AD7E8 .4byte _080AD840 .4byte _080AD648 .4byte _080AD6D8 .4byte _080AC9EC .4byte _080ACA24 .4byte _080ACA44 .4byte _080ACA84 .4byte _080ACC98 .4byte _080ACD00 .4byte _080AD1A4 .4byte _080AD8CA .4byte _080AD514 .4byte _080AD8CA .4byte _080ACFA8 .4byte _080AD0FA .4byte _080AC96C .4byte _080AC8F8 .4byte _080AC94C .4byte _080ACAAE .4byte _080ACDC8 .4byte _080ACE64 .4byte _080AD316 .4byte _080AD3D0 .4byte _080AD700 .4byte _080AD71C .4byte _080AD53C .4byte _080AD5D0 .4byte _080AD624 _080AC404: bl sub_80B0D7C movs r6, 0 ldr r0, _080AC484 adds r1, r0, 0 adds r1, 0xCC ldrb r0, [r0, 0x10] mov r4, r8 lsls r4, 2 mov r9, r4 ldrb r5, [r1] cmp r0, r5 beq _080AC42C adds r2, r1, 0 adds r1, r0, 0 _080AC422: adds r6, 0x1 adds r0, r6, r2 ldrb r0, [r0] cmp r1, r0 bne _080AC422 _080AC42C: ldr r4, _080AC484 strb r6, [r4, 0x11] ldrb r7, [r4, 0x11] ldr r0, _080AC488 ldrb r1, [r0] movs r5, 0x1 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080AC498 ldrb r0, [r4, 0x7] movs r1, 0x4 orrs r0, r1 strb r0, [r4, 0x7] bl sub_80AE074 lsls r0, 24 cmp r0, 0 beq _080AC458 ldrb r0, [r4, 0x11] bl sub_80B114C _080AC458: ldr r4, _080AC48C adds r0, r4, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080AC490 adds r1, r4, 0 bl SetTaskFuncWithFollowupFunc bl sub_80AF860 ldr r1, _080AC494 mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x8] bl _080AD8CA .align 2, 0 _080AC484: .4byte 0x02019204 _080AC488: .4byte 0x0203869a _080AC48C: .4byte sub_80C8C80 _080AC490: .4byte sub_80AD8DC _080AC494: .4byte 0x03004b20 _080AC498: adds r0, r7, 0 bl sub_80B114C ldr r0, _080AC4B0 mov r1, r9 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x2 strh r0, [r1, 0x8] bl _080AD8CA .align 2, 0 _080AC4B0: .4byte 0x03004b20 _080AC4B4: ldrb r1, [r6, 0x7] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080AC4C2 bl _080AD8CA _080AC4C2: mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r0, 3 add r0, r12 movs r1, 0x2 strh r1, [r0, 0x8] bl _080AD8CA _080AC4D4: lsls r0, r7, 3 subs r0, r7 lsls r0, 2 ldr r1, _080AC508 adds r2, r0, r1 ldrb r1, [r2, 0xC] movs r0, 0x6 ands r0, r1 cmp r0, 0 bne _080AC4F6 ldrb r1, [r2, 0xB] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _080AC50C _080AC4F6: mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 add r0, r12 movs r1, 0x1F strh r1, [r0, 0x8] bl _080AD8CA .align 2, 0 _080AC508: .4byte 0x02019260 _080AC50C: bl sub_80AF138 adds r0, r7, 0 movs r1, 0 bl sub_80B0CDC ldr r0, _080AC530 mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r0 strh r6, [r1, 0x1C] movs r0, 0x3 strh r0, [r1, 0x8] bl _080AD8CA .align 2, 0 _080AC530: .4byte 0x03004b20 _080AC534: mov r4, r8 lsls r4, 2 mov r9, r4 ldr r4, _080AC5C4 ldr r1, _080AC5C8 movs r2, 0 adds r0, r1, 0x3 _080AC542: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _080AC542 movs r6, 0x4 adds r0, r4, 0 movs r1, 0 movs r2, 0x14 bl memset ldr r5, _080AC5CC adds r7, r4, r5 ldrb r0, [r7, 0x11] bl sub_80B28F0 ldr r3, _080AC5D0 ldrb r2, [r7, 0x11] lsls r2, 6 adds r0, r2, r3 ldrh r0, [r0] adds r1, r3, 0 adds r1, 0x3C adds r1, r2, r1 ldr r1, [r1] adds r3, 0x38 adds r2, r3 ldr r2, [r2] bl sub_80AE9FC lsls r0, 24 lsrs r5, r0, 24 ldr r2, _080AC5D4 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r3, r0, r2 movs r1, 0x78 strh r1, [r3, 0x24] adds r2, 0x1C adds r0, r2 ldr r1, _080AC5D8 str r1, [r0] ldr r0, _080AC5DC mov r4, r9 add r4, r8 lsls r4, 3 adds r4, r0 strh r5, [r4, 0xC] ldr r1, _080AC5E0 ldr r0, _080AC5E4 ldrb r0, [r0] adds r0, r1 strb r5, [r0] ldrb r0, [r7, 0x11] bl sub_80B09E4 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_80B0BC4 strh r6, [r4, 0x8] bl _080AD8CA .align 2, 0 _080AC5C4: .4byte 0x02019348 _080AC5C8: .4byte 0x02024e84 _080AC5CC: .4byte 0xfffffebc _080AC5D0: .4byte 0x02038570 _080AC5D4: .4byte 0x02020004 _080AC5D8: .4byte sub_80AD8FC _080AC5DC: .4byte 0x03004b20 _080AC5E0: .4byte 0x02024be0 _080AC5E4: .4byte 0x02024c07 _080AC5E8: mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r0, 3 mov r3, r12 adds r2, r0, r3 ldrb r5, [r2, 0xC] ldr r1, _080AC62C lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r1, 0x1C adds r0, r1 ldr r1, [r0] ldr r0, _080AC630 cmp r1, r0 beq _080AC60E bl _080AD8CA _080AC60E: lsls r0, r7, 2 ldr r1, _080AC634 adds r0, r1 ldrb r1, [r0, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080AC622 bl _080AD8CA _080AC622: movs r0, 0x5 strh r0, [r2, 0x8] bl _080AD8CA .align 2, 0 _080AC62C: .4byte 0x02020004 _080AC630: .4byte SpriteCallbackDummy _080AC634: .4byte 0x02019338 _080AC638: lsls r0, r7, 3 subs r0, r7 lsls r0, 2 ldr r1, _080AC660 adds r5, r0, r1 ldrb r1, [r5, 0xC] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080AC664 mov r4, r8 lsls r0, r4, 2 add r0, r8 lsls r0, 3 add r0, r12 movs r1, 0x21 strh r1, [r0, 0x8] bl _080AD8CA .align 2, 0 _080AC660: .4byte 0x02019260 _080AC664: bl sub_80AF138 ldr r0, _080AC690 lsls r1, r7, 6 ldr r2, _080AC694 adds r1, r2 bl StringCopy ldrh r1, [r5, 0x6] movs r0, 0xB1 lsls r0, 1 cmp r1, r0 bhi _080AC6A0 ldr r0, _080AC698 adds r2, r1, 0 movs r1, 0xD muls r1, r2 ldr r2, _080AC69C adds r1, r2 bl StringCopy b _080AC6B0 .align 2, 0 _080AC690: .4byte 0x020231cc _080AC694: .4byte 0x02038572 _080AC698: .4byte 0x020232cc _080AC69C: .4byte gMoveNames _080AC6A0: ldr r0, _080AC6E0 ldr r2, _080AC6E4 ldrb r1, [r5, 0xA] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl StringCopy _080AC6B0: ldr r4, _080AC6E8 ldr r1, _080AC6EC adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _080AC6F0 movs r2, 0xC2 lsls r2, 2 movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r3, 0x1 bl sub_8002EB0 ldr r1, _080AC6F4 mov r5, r8 lsls r0, r5, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x6 strh r1, [r0, 0x8] bl _080AD8CA .align 2, 0 _080AC6E0: .4byte 0x020232cc _080AC6E4: .4byte gUnknown_083CC330 _080AC6E8: .4byte 0x020234cc _080AC6EC: .4byte gUnknown_083CAFD7 _080AC6F0: .4byte 0x0202e908 _080AC6F4: .4byte 0x03004b20 _080AC6F8: ldr r0, _080AC724 bl sub_80037A0 lsls r0, 24 cmp r0, 0 bne _080AC708 bl _080AD8CA _080AC708: ldr r0, _080AC728 adds r0, 0x5A movs r1, 0 strb r1, [r0] ldr r1, _080AC72C mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x7 strh r1, [r0, 0x8] bl _080AD8CA .align 2, 0 _080AC724: .4byte 0x0202e908 _080AC728: .4byte 0x02019204 _080AC72C: .4byte 0x03004b20 _080AC730: ldrb r1, [r6, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r6, 0 adds r1, 0x5C adds r0, r1 ldrh r0, [r0, 0x6] bl sub_80B2760 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r6, 0x11] bl sub_80B2790 ldrb r0, [r6, 0x11] bl sub_80B28F0 adds r0, r4, 0 bl sub_80B29B4 adds r0, r4, 0 bl move_anim_start_t1 ldr r1, _080AC778 mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x8 strh r1, [r0, 0x8] bl _080AD8CA .align 2, 0 _080AC778: .4byte 0x03004b20 _080AC77C: ldr r0, _080AC7B8 ldr r0, [r0] bl _call_via_r0 ldr r0, _080AC7BC ldrb r4, [r0] cmp r4, 0 beq _080AC790 bl _080AD8CA _080AC790: adds r0, r7, 0 bl unref_sub_80B28CC ldr r1, _080AC7C0 adds r0, r1, 0 adds r0, 0x5A ldrb r0, [r0] cmp r0, 0 beq _080AC7C8 ldr r0, _080AC7C4 mov r5, r8 lsls r1, r5, 2 add r1, r8 lsls r1, 3 adds r1, r0 strh r4, [r1, 0x1C] movs r0, 0x9 strh r0, [r1, 0x8] bl _080AD8CA .align 2, 0 _080AC7B8: .4byte 0x0202f7ac _080AC7BC: .4byte 0x0202f7b1 _080AC7C0: .4byte 0x02019204 _080AC7C4: .4byte 0x03004b20 _080AC7C8: lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r1, 0x5C adds r0, r1 ldrb r1, [r0, 0x15] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _080AC7E2 adds r0, r7, 0 bl sub_80B03A8 _080AC7E2: bl unref_sub_80B20C4 ldr r0, _080AC7F0 mov r2, r8 lsls r1, r2, 2 b _080AC8E2 .align 2, 0 _080AC7F0: .4byte 0x03004b20 _080AC7F4: mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 mov r4, r12 adds r2, r0, r4 ldrh r0, [r2, 0x1C] adds r1, r0, 0x1 strh r1, [r2, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x1E bgt _080AC812 bl _080AD8CA _080AC812: movs r0, 0 strh r0, [r2, 0x1C] movs r0, 0x7 strh r0, [r2, 0x8] bl _080AD8CA _080AC81E: mov r5, r8 lsls r3, r5, 2 adds r0, r3, r5 lsls r0, 3 mov r1, r12 adds r4, r0, r1 movs r0, 0 strh r0, [r4, 0xA] lsls r2, r7, 3 subs r0, r2, r7 lsls r0, 2 ldr r1, _080AC858 adds r6, r0, r1 ldrb r0, [r6, 0x13] mov r9, r3 mov r10, r2 adds r3, r1, 0 cmp r0, 0xFF beq _080AC85C adds r1, r0, 0 adds r0, r7, 0 bl sub_80B146C movs r0, 0xFF strb r0, [r6, 0x13] movs r0, 0x18 strh r0, [r4, 0x8] bl _080AD8CA .align 2, 0 _080AC858: .4byte 0x02019260 _080AC85C: ldrb r0, [r6, 0x14] cmp r0, 0xFF beq _080AC8C4 movs r6, 0 cmp r6, r7 beq _080AC86E ldrb r0, [r3, 0x13] cmp r0, 0xFF bne _080AC886 _080AC86E: adds r6, 0x1 cmp r6, 0x3 bgt _080AC886 cmp r6, r7 beq _080AC86E lsls r0, r6, 3 subs r0, r6 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x13] cmp r0, 0xFF beq _080AC86E _080AC886: cmp r6, 0x4 bne _080AC8B4 mov r2, r10 subs r4, r2, r7 lsls r4, 2 adds r4, r3 ldrb r1, [r4, 0x14] adds r0, r7, 0 bl sub_80B146C movs r0, 0xFF strb r0, [r4, 0x14] ldr r1, _080AC8B0 mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x18 strh r1, [r0, 0x8] bl _080AD8CA .align 2, 0 _080AC8B0: .4byte 0x03004b20 _080AC8B4: mov r0, r9 add r0, r8 lsls r0, 3 add r0, r12 movs r1, 0x30 strh r1, [r0, 0x8] bl _080AD8CA _080AC8C4: movs r0, 0x30 strh r0, [r4, 0x8] bl _080AD8CA _080AC8CC: ldr r0, _080AC8F0 bl sub_80037A0 lsls r0, 24 cmp r0, 0 bne _080AC8DC bl _080AD8CA _080AC8DC: ldr r0, _080AC8F4 mov r3, r8 lsls r1, r3, 2 _080AC8E2: add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x17 strh r0, [r1, 0x8] bl _080AD8CA .align 2, 0 _080AC8F0: .4byte 0x0202e908 _080AC8F4: .4byte 0x03004b20 _080AC8F8: lsls r0, r7, 3 subs r0, r7 lsls r0, 2 ldr r1, _080AC914 adds r0, r1 ldrb r0, [r0, 0x11] movs r3, 0x3 ands r3, r0 cmp r3, 0x1 bne _080AC918 movs r0, 0x5 bl sub_80B1710 b _080AC934 .align 2, 0 _080AC914: .4byte 0x02019260 _080AC918: cmp r3, 0x2 bne _080AC924 movs r0, 0x6 bl sub_80B1710 b _080AC934 _080AC924: cmp r3, 0x3 beq _080AC92E mov r4, r8 lsls r0, r4, 2 b _080AC95E _080AC92E: movs r0, 0x7 bl sub_80B1710 _080AC934: ldr r0, _080AC948 mov r5, r8 lsls r1, r5, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x31 strh r0, [r1, 0x8] bl _080AD8CA .align 2, 0 _080AC948: .4byte 0x03004b20 _080AC94C: ldrb r1, [r6, 0x6] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080AC95A bl _080AD8CA _080AC95A: mov r1, r8 lsls r0, r1, 2 _080AC95E: add r0, r8 lsls r0, 3 add r0, r12 movs r1, 0x2F strh r1, [r0, 0x8] bl _080AD8CA _080AC96C: movs r0, 0x1 bl sub_80B1FD0 ldr r0, _080AC988 mov r2, r8 lsls r1, r2, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0xC strh r0, [r1, 0x8] bl _080AD8CA .align 2, 0 _080AC988: .4byte 0x03004b20 _080AC98C: lsls r0, r7, 3 subs r0, r7 lsls r0, 2 ldr r1, _080AC9B8 adds r0, r1 movs r3, 0x2 ldrsh r1, [r0, r3] movs r0, 0 adds r2, r7, 0 bl sub_80AFBA0 ldr r1, _080AC9BC mov r4, r8 lsls r0, r4, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0xD strh r1, [r0, 0x8] bl _080AD8CA .align 2, 0 _080AC9B8: .4byte 0x02019260 _080AC9BC: .4byte 0x03004b20 _080AC9C0: ldrb r0, [r6, 0x11] lsls r0, 2 movs r5, 0x9A lsls r5, 1 adds r1, r6, r5 adds r0, r1 ldrb r1, [r0, 0x2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080AC9DA bl _080AD8CA _080AC9DA: mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r0, 3 add r0, r12 movs r1, 0x23 strh r1, [r0, 0x8] bl _080AD8CA _080AC9EC: lsls r0, r7, 3 subs r0, r7 lsls r0, 2 ldr r1, _080ACA1C adds r0, r1 ldrb r1, [r0, 0x10] movs r0, 0x30 ands r0, r1 cmp r0, 0x10 bne _080ACA06 movs r0, 0x8 bl sub_80B1710 _080ACA06: ldr r0, _080ACA20 mov r2, r8 lsls r1, r2, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x24 strh r0, [r1, 0x8] bl _080AD8CA .align 2, 0 _080ACA1C: .4byte 0x02019260 _080ACA20: .4byte 0x03004b20 _080ACA24: ldrb r1, [r6, 0x6] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080ACA32 bl _080AD8CA _080ACA32: mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 add r0, r12 movs r1, 0x25 strh r1, [r0, 0x8] bl _080AD8CA _080ACA44: adds r0, r7, 0 movs r1, 0x1 bl sub_80AEE54 lsls r0, 24 cmp r0, 0 beq _080ACA70 ldr r1, _080ACA6C mov r4, r8 lsls r0, r4, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] movs r1, 0x26 strh r1, [r0, 0x8] bl _080AD8CA .align 2, 0 _080ACA6C: .4byte 0x03004b20 _080ACA70: ldr r0, _080ACA80 mov r5, r8 lsls r1, r5, 2 add r1, r8 lsls r1, 3 adds r1, r0 b _080ACAA6 .align 2, 0 _080ACA80: .4byte 0x03004b20 _080ACA84: mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r0, 3 mov r2, r12 adds r1, r0, r2 ldrh r0, [r1, 0x1C] adds r0, 0x1 strh r0, [r1, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 bgt _080ACAA2 bl _080AD8CA _080ACAA2: movs r0, 0 strh r0, [r1, 0x1C] _080ACAA6: movs r0, 0x32 strh r0, [r1, 0x8] bl _080AD8CA _080ACAAE: adds r0, r7, 0 bl sub_80AF038 lsls r0, 24 cmp r0, 0 beq _080ACAC0 movs r0, 0x63 bl audio_play _080ACAC0: ldr r0, _080ACAD4 mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x19 strh r0, [r1, 0x8] bl _080AD8CA .align 2, 0 _080ACAD4: .4byte 0x03004b20 _080ACAD8: mov r4, r8 lsls r0, r4, 2 add r0, r8 lsls r0, 3 add r0, r12 movs r1, 0 strh r1, [r0, 0xA] movs r1, 0x1A strh r1, [r0, 0x8] bl _080AD8CA _080ACAEE: movs r2, 0 movs r4, 0 mov r5, r8 lsls r1, r5, 2 adds r0, r1, r5 lsls r0, 3 add r0, r12 movs r3, 0xA ldrsh r6, [r0, r3] mov r9, r1 cmp r6, 0x3 bgt _080ACB58 ldr r3, _080ACB24 ldr r1, _080ACB28 _080ACB0A: movs r4, 0 movs r2, 0 cmp r4, r7 beq _080ACB2C ldrb r0, [r3] cmp r0, r6 bne _080ACB2C ldrb r0, [r1, 0x13] cmp r0, 0xFF beq _080ACB2C movs r4, 0x1 b _080ACB60 .align 2, 0 _080ACB24: .4byte 0x02038696 _080ACB28: .4byte 0x02019260 _080ACB2C: adds r2, 0x1 cmp r2, 0x3 bgt _080ACB4E cmp r2, r7 beq _080ACB2C adds r0, r2, r3 ldrb r0, [r0] cmp r0, r6 bne _080ACB2C lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x13] cmp r0, 0xFF beq _080ACB2C movs r4, 0x1 _080ACB4E: cmp r4, 0 bne _080ACB60 adds r6, 0x1 cmp r6, 0x3 ble _080ACB0A _080ACB58: lsls r0, r4, 24 asrs r1, r0, 24 cmp r1, 0 beq _080ACB98 _080ACB60: mov r5, r9 add r5, r8 lsls r5, 3 add r5, r12 ldr r0, _080ACB90 adds r0, r2, r0 ldrb r0, [r0] strh r0, [r5, 0xA] lsls r0, r2, 24 lsrs r0, 24 lsls r4, r2, 3 subs r4, r2 lsls r4, 2 ldr r1, _080ACB94 adds r4, r1 ldrb r1, [r4, 0x13] bl sub_80B146C movs r0, 0xFF strb r0, [r4, 0x13] movs r0, 0x1B strh r0, [r5, 0x8] bl _080AD8CA .align 2, 0 _080ACB90: .4byte 0x02038696 _080ACB94: .4byte 0x02019260 _080ACB98: mov r0, r9 add r0, r8 lsls r0, 3 add r0, r12 strh r1, [r0, 0xA] strh r1, [r0, 0x1C] movs r1, 0x33 strh r1, [r0, 0x8] bl sub_80AF120 bl _080AD8CA _080ACBB0: ldr r0, _080ACBD4 bl sub_80037A0 lsls r0, 24 cmp r0, 0 bne _080ACBC0 bl _080AD8CA _080ACBC0: ldr r0, _080ACBD8 mov r4, r8 lsls r1, r4, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x1C strh r0, [r1, 0x8] bl _080AD8CA .align 2, 0 _080ACBD4: .4byte 0x0202e908 _080ACBD8: .4byte 0x03004b20 _080ACBDC: movs r6, 0 mov r5, r8 lsls r0, r5, 2 adds r1, r0, r5 lsls r1, 3 add r1, r12 movs r3, 0xA ldrsh r2, [r1, r3] ldr r1, _080ACC38 mov r9, r0 ldr r3, _080ACC3C adds r5, r1, 0 ldrb r4, [r5] cmp r2, r4 beq _080ACC08 adds r1, r2, 0 adds r2, r5, 0 _080ACBFE: adds r6, 0x1 adds r0, r6, r2 ldrb r0, [r0] cmp r1, r0 bne _080ACBFE _080ACC08: lsls r0, r6, 3 subs r0, r6 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0xE] ldrh r0, [r0, 0x2] adds r0, r1 lsls r0, 16 asrs r0, 16 negs r1, r1 lsls r2, r6, 24 lsrs r2, 24 bl sub_80AFBA0 ldr r1, _080ACC40 mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x1D strh r1, [r0, 0x8] bl _080AD8CA .align 2, 0 _080ACC38: .4byte 0x02038696 _080ACC3C: .4byte 0x02019260 _080ACC40: .4byte 0x03004b20 _080ACC44: movs r6, 0 mov r5, r8 lsls r0, r5, 2 adds r1, r0, r5 lsls r1, 3 add r1, r12 movs r2, 0xA ldrsh r3, [r1, r2] ldr r1, _080ACC90 mov r9, r0 ldr r2, _080ACC94 adds r5, r1, 0 ldrb r4, [r5] cmp r3, r4 beq _080ACC6C _080ACC62: adds r6, 0x1 adds r0, r6, r1 ldrb r0, [r0] cmp r3, r0 bne _080ACC62 _080ACC6C: lsls r0, r6, 2 adds r0, r2 ldrb r1, [r0, 0x2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080ACC7E bl _080AD8CA _080ACC7E: mov r0, r9 add r0, r8 lsls r0, 3 add r0, r12 movs r1, 0x27 strh r1, [r0, 0x8] bl _080AD8CA .align 2, 0 _080ACC90: .4byte 0x02038696 _080ACC94: .4byte 0x02019338 _080ACC98: movs r6, 0 mov r5, r8 lsls r0, r5, 2 adds r1, r0, r5 lsls r1, 3 add r1, r12 movs r3, 0xA ldrsh r2, [r1, r3] ldr r1, _080ACCE8 mov r9, r0 adds r5, r1, 0 ldrb r4, [r5] cmp r2, r4 beq _080ACCC2 adds r1, r2, 0 adds r2, r5, 0 _080ACCB8: adds r6, 0x1 adds r0, r6, r2 ldrb r0, [r0] cmp r1, r0 bne _080ACCB8 _080ACCC2: lsls r0, r6, 24 lsrs r0, 24 movs r1, 0x1 bl sub_80AEE54 lsls r0, 24 cmp r0, 0 beq _080ACCF0 ldr r1, _080ACCEC mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] movs r1, 0x28 strh r1, [r0, 0x8] bl _080AD8CA .align 2, 0 _080ACCE8: .4byte 0x02038696 _080ACCEC: .4byte 0x03004b20 _080ACCF0: ldr r0, _080ACCFC mov r1, r9 add r1, r8 lsls r1, 3 adds r1, r0 b _080ACD22 .align 2, 0 _080ACCFC: .4byte 0x03004b20 _080ACD00: mov r5, r8 lsls r0, r5, 2 add r0, r8 lsls r0, 3 mov r2, r12 adds r1, r0, r2 ldrh r0, [r1, 0x1C] adds r0, 0x1 strh r0, [r1, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 bgt _080ACD1E bl _080AD8CA _080ACD1E: movs r0, 0 strh r0, [r1, 0x1C] _080ACD22: movs r0, 0x1E strh r0, [r1, 0x8] bl _080AD8CA _080ACD2A: movs r6, 0 ldr r2, _080ACD78 ldrb r3, [r2] mov r4, r8 lsls r1, r4, 2 adds r0, r1, r4 lsls r0, 3 mov r5, r12 adds r4, r0, r5 movs r5, 0xA ldrsh r0, [r4, r5] mov r9, r1 adds r5, r2, 0 cmp r3, r0 beq _080ACD5E adds r3, r5, 0 adds r2, r4, 0 _080ACD4C: adds r6, 0x1 cmp r6, 0x3 bgt _080ACD5E adds r0, r6, r3 ldrb r1, [r0] movs r4, 0xA ldrsh r0, [r2, r4] cmp r1, r0 bne _080ACD4C _080ACD5E: lsls r4, r6, 24 lsrs r0, r4, 24 bl sub_80AF038 lsls r0, 24 adds r5, r4, 0 cmp r0, 0 beq _080ACD7C movs r0, 0x63 bl audio_play b _080ACD82 .align 2, 0 _080ACD78: .4byte 0x02038696 _080ACD7C: movs r0, 0x64 bl audio_play _080ACD82: lsls r0, r6, 3 subs r0, r6 lsls r0, 2 ldr r1, _080ACDC0 adds r4, r0, r1 ldrb r1, [r4, 0x15] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080ACDA6 lsrs r0, r5, 24 bl sub_80B03A8 ldrb r1, [r4, 0x15] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r4, 0x15] _080ACDA6: ldr r0, _080ACDC4 mov r1, r9 add r1, r8 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] movs r0, 0x1A strh r0, [r1, 0x8] bl _080AD8CA .align 2, 0 _080ACDC0: .4byte 0x02019260 _080ACDC4: .4byte 0x03004b20 _080ACDC8: mov r5, r8 lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 3 mov r1, r12 adds r3, r0, r1 ldrh r0, [r3, 0x1C] adds r1, r0, 0x1 strh r1, [r3, 0x1C] lsls r0, 16 asrs r0, 16 mov r9, r2 cmp r0, 0x9 bgt _080ACDE8 bl _080AD8CA _080ACDE8: movs r0, 0 strh r0, [r3, 0x1C] lsls r0, r7, 3 subs r0, r7 lsls r0, 2 ldr r1, _080ACE48 adds r2, r0, r1 ldrb r1, [r2, 0xC] movs r0, 0x6 ands r0, r1 cmp r0, 0 bne _080ACE0A ldrb r1, [r2, 0x11] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080ACE36 _080ACE0A: bl sub_80AF138 ldr r0, _080ACE4C lsls r1, r7, 6 ldr r2, _080ACE50 adds r1, r2 bl StringCopy ldr r4, _080ACE54 ldr r1, _080ACE58 adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _080ACE5C movs r2, 0xC2 lsls r2, 2 movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r3, 0x1 bl sub_8002EB0 _080ACE36: ldr r0, _080ACE60 mov r1, r9 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x34 strh r0, [r1, 0x8] bl _080AD8CA .align 2, 0 _080ACE48: .4byte 0x02019260 _080ACE4C: .4byte 0x020231cc _080ACE50: .4byte 0x02038572 _080ACE54: .4byte 0x020234cc _080ACE58: .4byte gUnknown_083CC103 _080ACE5C: .4byte 0x0202e908 _080ACE60: .4byte 0x03004b20 _080ACE64: ldr r0, _080ACE9C bl sub_80037A0 lsls r0, 24 cmp r0, 0 bne _080ACE74 bl _080AD8CA _080ACE74: lsls r0, r7, 3 subs r0, r7 lsls r0, 2 ldr r1, _080ACEA0 adds r0, r1 ldrb r1, [r0, 0x15] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080ACEA8 ldr r0, _080ACEA4 mov r2, r8 lsls r1, r2, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x11 strh r0, [r1, 0x8] bl _080AD8CA .align 2, 0 _080ACE9C: .4byte 0x0202e908 _080ACEA0: .4byte 0x02019260 _080ACEA4: .4byte 0x03004b20 _080ACEA8: ldr r0, _080ACEBC mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0xE strh r0, [r1, 0x8] bl _080AD8CA .align 2, 0 _080ACEBC: .4byte 0x03004b20 _080ACEC0: lsls r0, r7, 3 subs r0, r7 lsls r0, 2 ldr r1, _080ACEE4 adds r0, r1 ldrb r4, [r0, 0x16] lsls r4, 24 lsrs r5, r4, 24 cmp r5, 0 beq _080ACF48 bl sub_80AF138 asrs r0, r4, 24 cmp r0, 0x1 bne _080ACEF0 ldr r0, _080ACEE8 ldr r1, _080ACEEC b _080ACEF8 .align 2, 0 _080ACEE4: .4byte 0x02019260 _080ACEE8: .4byte 0x0202e908 _080ACEEC: .4byte gUnknown_083CBD79 _080ACEF0: cmp r0, 0x2 bne _080ACF10 ldr r0, _080ACF08 ldr r1, _080ACF0C _080ACEF8: movs r2, 0xC2 lsls r2, 2 movs r3, 0xF str r3, [sp] movs r3, 0x1 bl sub_8002EB0 b _080ACF22 .align 2, 0 _080ACF08: .4byte 0x0202e908 _080ACF0C: .4byte gUnknown_083CBD9D _080ACF10: ldr r0, _080ACF3C ldr r1, _080ACF40 movs r2, 0xC2 lsls r2, 2 movs r3, 0xF str r3, [sp] movs r3, 0x1 bl sub_8002EB0 _080ACF22: movs r0, 0x3 bl sub_80B1710 ldr r1, _080ACF44 mov r4, r8 lsls r0, r4, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] b _080ACF88 .align 2, 0 _080ACF3C: .4byte 0x0202e908 _080ACF40: .4byte gUnknown_083CBDC6 _080ACF44: .4byte 0x03004b20 _080ACF48: bl sub_80AF138 ldr r0, _080ACF90 lsls r1, r7, 6 ldr r2, _080ACF94 adds r1, r2 bl StringCopy ldr r4, _080ACF98 ldr r1, _080ACF9C adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _080ACFA0 movs r2, 0xC2 lsls r2, 2 movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r3, 0x1 bl sub_8002EB0 movs r0, 0x2 bl sub_80B1710 ldr r1, _080ACFA4 mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x1C] _080ACF88: movs r1, 0x2D strh r1, [r0, 0x8] bl _080AD8CA .align 2, 0 _080ACF90: .4byte 0x020231cc _080ACF94: .4byte 0x02038572 _080ACF98: .4byte 0x020234cc _080ACF9C: .4byte gUnknown_083CBD52 _080ACFA0: .4byte 0x0202e908 _080ACFA4: .4byte 0x03004b20 _080ACFA8: ldrb r1, [r6, 0x6] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080ACFB6 bl _080AD8CA _080ACFB6: ldrb r0, [r6, 0x11] bl sub_80B09B0 ldr r1, _080ACFD0 mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0xF strh r1, [r0, 0x8] bl _080AD8CA .align 2, 0 _080ACFD0: .4byte 0x03004b20 _080ACFD4: ldr r0, _080AD034 bl sub_80037A0 lsls r0, 24 cmp r0, 0 bne _080ACFE4 bl _080AD8CA _080ACFE4: ldr r1, _080AD038 mov r4, r8 lsls r0, r4, 2 add r0, r8 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x32 bgt _080AD002 bl _080AD8CA _080AD002: lsls r0, r7, 3 subs r0, r7 lsls r0, 2 ldr r1, _080AD03C adds r6, r0, r1 ldrb r1, [r6, 0x15] movs r5, 0x10 adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _080AD02C movs r1, 0x2 ldrsh r0, [r6, r1] ldrb r1, [r6, 0x17] adds r2, r7, 0 bl sub_80AFBA0 ldrh r0, [r6, 0x2] ldrb r2, [r6, 0x17] adds r0, r2 strh r0, [r6, 0x2] _080AD02C: strh r5, [r4, 0x8] bl _080AD8CA .align 2, 0 _080AD034: .4byte 0x0202e908 _080AD038: .4byte 0x03004b20 _080AD03C: .4byte 0x02019260 _080AD040: lsls r0, r7, 2 ldr r1, _080AD06C adds r0, r1 ldrb r1, [r0, 0x2] movs r0, 0x4 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _080AD058 bl _080AD8CA _080AD058: mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 add r0, r12 strh r1, [r0, 0x1C] movs r1, 0x11 strh r1, [r0, 0x8] bl _080AD8CA .align 2, 0 _080AD06C: .4byte 0x02019338 _080AD070: lsls r0, r7, 3 subs r0, r7 lsls r0, 2 ldr r1, _080AD0CC adds r0, r1 ldrb r1, [r0, 0x15] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080AD0E8 bl sub_80AF138 ldr r0, _080AD0D0 lsls r1, r7, 6 ldr r2, _080AD0D4 adds r1, r2 bl StringCopy ldr r4, _080AD0D8 ldr r1, _080AD0DC adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _080AD0E0 movs r2, 0xC2 lsls r2, 2 movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r3, 0x1 bl sub_8002EB0 ldr r0, _080AD0E4 mov r5, r8 lsls r4, r5, 2 add r4, r8 lsls r4, 3 adds r4, r0 movs r0, 0 strh r0, [r4, 0x1C] bl sub_80B1710 movs r0, 0x2E strh r0, [r4, 0x8] bl _080AD8CA .align 2, 0 _080AD0CC: .4byte 0x02019260 _080AD0D0: .4byte 0x020231cc _080AD0D4: .4byte 0x02038572 _080AD0D8: .4byte 0x020234cc _080AD0DC: .4byte gUnknown_083CC075 _080AD0E0: .4byte 0x0202e908 _080AD0E4: .4byte 0x03004b20 _080AD0E8: mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r0, 3 add r0, r12 movs r1, 0x29 strh r1, [r0, 0x8] bl _080AD8CA _080AD0FA: ldrb r1, [r6, 0x6] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080AD108 bl _080AD8CA _080AD108: mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 add r0, r12 movs r1, 0x13 strh r1, [r0, 0x8] bl _080AD8CA _080AD11A: ldr r0, _080AD15C bl sub_80037A0 lsls r0, 24 cmp r0, 0 bne _080AD12A bl _080AD8CA _080AD12A: lsls r4, r7, 3 subs r4, r7 lsls r4, 2 ldr r0, _080AD160 adds r4, r0 movs r3, 0x2 ldrsh r0, [r4, r3] ldrb r1, [r4, 0x18] negs r1, r1 adds r2, r7, 0 bl sub_80AFBA0 ldrb r1, [r4, 0x18] ldrh r0, [r4, 0x2] subs r0, r1 strh r0, [r4, 0x2] ldr r1, _080AD164 mov r4, r8 lsls r0, r4, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x12 strh r1, [r0, 0x8] b _080AD8CA .align 2, 0 _080AD15C: .4byte 0x0202e908 _080AD160: .4byte 0x02019260 _080AD164: .4byte 0x03004b20 _080AD168: bl sub_80B0D7C lsls r0, r7, 2 ldr r1, _080AD19C adds r0, r1 ldrb r1, [r0, 0x2] movs r0, 0x4 ands r0, r1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _080AD182 b _080AD8CA _080AD182: ldr r0, _080AD1A0 mov r5, r8 lsls r4, r5, 2 add r4, r8 lsls r4, 3 adds r4, r0 strh r6, [r4, 0x1C] bl sub_80AF138 movs r0, 0x29 strh r0, [r4, 0x8] b _080AD8CA .align 2, 0 _080AD19C: .4byte 0x02019338 _080AD1A0: .4byte 0x03004b20 _080AD1A4: ldr r2, _080AD1CC ldrb r1, [r2, 0x1] movs r0, 0x1 ands r0, r1 adds r1, r2, 0 cmp r0, 0 beq _080AD1D0 ldr r0, [r1] lsls r0, 20 lsrs r0, 29 cmp r7, r0 beq _080AD1D0 mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r0, 3 add r0, r12 movs r1, 0x39 strh r1, [r0, 0x8] b _080AD8CA .align 2, 0 _080AD1CC: .4byte 0x02019328 _080AD1D0: ldrb r4, [r1] lsls r2, r7, 3 subs r0, r2, r7 lsls r0, 2 subs r1, 0xC8 adds r5, r0, r1 ldrb r1, [r5, 0x11] movs r0, 0x10 ands r0, r1 mov r10, r2 cmp r0, 0 beq _080AD204 movs r4, 0x1 ldr r0, _080AD1FC ldrh r2, [r5, 0x6] movs r1, 0xD muls r1, r2 ldr r2, _080AD200 adds r1, r2 bl StringCopy b _080AD21E .align 2, 0 _080AD1FC: .4byte 0x020233cc _080AD200: .4byte gMoveNames _080AD204: ldr r0, _080AD270 ldr r3, _080AD274 ldr r2, _080AD278 ldrh r1, [r5, 0x6] lsls r1, 3 adds r1, r2 ldrb r1, [r1, 0x1] lsls r1, 29 lsrs r1, 27 adds r1, r3 ldr r1, [r1] bl StringCopy _080AD21E: lsls r0, r4, 24 cmp r0, 0 ble _080AD23A mov r2, r10 subs r0, r2, r7 lsls r0, 2 ldr r1, _080AD27C adds r0, r1 ldrb r1, [r0, 0x15] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080AD23A movs r4, 0 _080AD23A: bl sub_80AF138 ldr r0, _080AD280 lsls r1, r7, 6 ldr r2, _080AD284 adds r1, r2 bl StringCopy ldr r3, _080AD288 ldrb r0, [r3, 0x13] lsls r1, r4, 24 asrs r2, r1, 24 adds r0, r2, r0 strb r0, [r3, 0x13] lsls r0, 24 adds r4, r1, 0 cmp r0, 0 bge _080AD262 movs r0, 0 strb r0, [r3, 0x13] _080AD262: cmp r2, 0 bne _080AD290 ldr r0, _080AD28C mov r3, r8 lsls r1, r3, 2 b _080AD6EC .align 2, 0 _080AD270: .4byte 0x020233cc _080AD274: .4byte gUnknown_083CC2D8 _080AD278: .4byte gContestMoves _080AD27C: .4byte 0x02019260 _080AD280: .4byte 0x020231cc _080AD284: .4byte 0x02038572 _080AD288: .4byte 0x02019204 _080AD28C: .4byte 0x03004b20 _080AD290: cmp r2, 0 bge _080AD2A8 ldr r0, _080AD2A0 ldr r1, _080AD2A4 bl StringExpandPlaceholders b _080AD2D0 .align 2, 0 _080AD2A0: .4byte 0x020234cc _080AD2A4: .4byte gUnknown_083CC0BC _080AD2A8: cmp r2, 0 ble _080AD2C8 movs r0, 0x13 ldrsb r0, [r3, r0] cmp r0, 0x4 bgt _080AD2C8 ldr r0, _080AD2C0 ldr r1, _080AD2C4 bl StringExpandPlaceholders b _080AD2D0 .align 2, 0 _080AD2C0: .4byte 0x020234cc _080AD2C4: .4byte gUnknown_083CC0A0 _080AD2C8: ldr r0, _080AD300 ldr r1, _080AD304 bl StringExpandPlaceholders _080AD2D0: ldr r0, _080AD308 ldr r1, _080AD300 movs r2, 0xC2 lsls r2, 2 movs r3, 0xF str r3, [sp] movs r3, 0x1 bl sub_8002EB0 ldr r1, _080AD30C mov r5, r8 lsls r0, r5, 2 add r0, r8 lsls r0, 3 adds r1, r0, r1 movs r0, 0 strh r0, [r1, 0x1C] strh r0, [r1, 0x1E] cmp r4, 0 bge _080AD310 movs r0, 0x35 strh r0, [r1, 0x8] b _080AD8CA .align 2, 0 _080AD300: .4byte 0x020234cc _080AD304: .4byte gUnknown_083CC0E3 _080AD308: .4byte 0x0202e908 _080AD30C: .4byte 0x03004b20 _080AD310: movs r0, 0x36 strh r0, [r1, 0x8] b _080AD8CA _080AD316: mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r0, 3 mov r2, r12 adds r4, r0, r2 movs r3, 0x1C ldrsh r2, [r4, r3] cmp r2, 0x1 beq _080AD354 cmp r2, 0x1 bgt _080AD334 cmp r2, 0 beq _080AD33E b _080AD8CA _080AD334: cmp r2, 0x2 beq _080AD37C cmp r2, 0x3 beq _080AD3B0 b _080AD8CA _080AD33E: movs r0, 0x1 negs r0, r0 movs r1, 0x1 bl sub_80B1EA8 ldr r0, _080AD350 bl fanfare_play b _080AD3A8 .align 2, 0 _080AD350: .4byte 0x00000187 _080AD354: ldrb r0, [r6, 0x7] ands r2, r0 cmp r2, 0 beq _080AD35E b _080AD8CA _080AD35E: ldr r0, _080AD378 bl sub_80037A0 lsls r0, 24 cmp r0, 0 bne _080AD36C b _080AD8CA _080AD36C: movs r0, 0x1 negs r0, r0 bl sub_80B1CBC b _080AD3A8 .align 2, 0 _080AD378: .4byte 0x0202e908 _080AD37C: ldrb r1, [r6, 0x6] movs r0, 0x20 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080AD38C b _080AD8CA _080AD38C: ldrh r0, [r4, 0x1E] adds r1, r0, 0x1 strh r1, [r4, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1D bgt _080AD39C b _080AD8CA _080AD39C: strh r2, [r4, 0x1E] movs r1, 0x1 negs r1, r1 adds r0, r1, 0 bl sub_80B1EA8 _080AD3A8: ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] b _080AD8CA _080AD3B0: ldr r0, _080AD3CC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080AD3C2 b _080AD8CA _080AD3C2: strh r0, [r4, 0x1C] strh r0, [r4, 0x1E] movs r0, 0x2B strh r0, [r4, 0x8] b _080AD8CA .align 2, 0 _080AD3CC: .4byte 0x0202f388 _080AD3D0: mov r4, r8 lsls r1, r4, 2 adds r0, r1, r4 lsls r0, 3 add r0, r12 movs r5, 0x1C ldrsh r0, [r0, r5] mov r9, r1 cmp r0, 0x4 bls _080AD3E6 b _080AD8CA _080AD3E6: lsls r0, 2 ldr r1, _080AD3F0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080AD3F0: .4byte _080AD3F4 .align 2, 0 _080AD3F4: .4byte _080AD408 .4byte _080AD420 .4byte _080AD43E .4byte _080AD4A0 .4byte _080AD4EC _080AD408: ldr r0, _080AD41C bl sub_80037A0 lsls r0, 24 cmp r0, 0 bne _080AD416 b _080AD8CA _080AD416: movs r0, 0x1 movs r1, 0x1 b _080AD4C8 .align 2, 0 _080AD41C: .4byte 0x0202e908 _080AD420: ldrb r1, [r6, 0x7] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080AD42C b _080AD8CA _080AD42C: bl sub_80B1DDC movs r0, 0xDF bl audio_play movs r0, 0x1 bl sub_80B1CBC b _080AD4CC _080AD43E: ldrb r1, [r6, 0x6] movs r0, 0x20 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080AD44E b _080AD8CA _080AD44E: mov r0, r9 add r0, r8 lsls r0, 3 mov r1, r12 adds r3, r0, r1 ldrh r0, [r3, 0x1E] adds r1, r0, 0x1 strh r1, [r3, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1D bgt _080AD468 b _080AD8CA _080AD468: strh r2, [r3, 0x1E] lsls r4, r7, 3 subs r4, r7 lsls r4, 2 adds r0, r6, 0 adds r0, 0x5C adds r4, r0 movs r2, 0x2 ldrsh r0, [r4, r2] movs r1, 0x92 lsls r1, 1 adds r5, r6, r1 movs r1, 0x2 ldrsb r1, [r5, r1] adds r2, r7, 0 str r3, [sp, 0x4] bl sub_80AFBA0 movs r0, 0x2 ldrsb r0, [r5, r0] ldrh r2, [r4, 0x2] adds r0, r2 strh r0, [r4, 0x2] ldr r3, [sp, 0x4] ldrh r0, [r3, 0x1C] adds r0, 0x1 strh r0, [r3, 0x1C] b _080AD8CA _080AD4A0: lsls r0, r7, 2 ldr r2, _080AD4E0 adds r0, r2 ldrb r1, [r0, 0x2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080AD4B2 b _080AD8CA _080AD4B2: ldr r3, _080AD4E4 adds r0, r2, r3 ldrb r1, [r0, 0x6] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080AD4C2 b _080AD8CA _080AD4C2: movs r1, 0x1 negs r1, r1 movs r0, 0x1 _080AD4C8: bl sub_80B1EA8 _080AD4CC: ldr r0, _080AD4E8 mov r1, r9 add r1, r8 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x1C] adds r0, 0x1 strh r0, [r1, 0x1C] b _080AD8CA .align 2, 0 _080AD4E0: .4byte 0x02019338 _080AD4E4: .4byte 0xfffffecc _080AD4E8: .4byte 0x03004b20 _080AD4EC: ldr r0, _080AD510 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _080AD4FE b _080AD8CA _080AD4FE: mov r0, r9 add r0, r8 lsls r0, 3 add r0, r12 strh r1, [r0, 0x1C] strh r1, [r0, 0x1E] movs r1, 0x2B strh r1, [r0, 0x8] b _080AD8CA .align 2, 0 _080AD510: .4byte 0x0202f388 _080AD514: lsls r0, r7, 2 ldr r1, _080AD534 adds r0, r1 ldrb r1, [r0, 0x2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080AD526 b _080AD8CA _080AD526: bl sub_80AF138 ldr r0, _080AD538 mov r4, r8 lsls r1, r4, 2 b _080AD6EC .align 2, 0 _080AD534: .4byte 0x02019338 _080AD538: .4byte 0x03004b20 _080AD53C: bl sub_80AF138 ldr r0, _080AD5A8 ldr r4, _080AD5AC ldr r1, [r4] lsls r1, 20 lsrs r1, 29 lsls r1, 6 ldr r5, _080AD5B0 adds r1, r5 bl StringCopy ldr r0, _080AD5B4 lsls r1, r7, 6 adds r1, r5 bl StringCopy ldr r0, _080AD5B8 lsls r1, r7, 3 subs r1, r7 lsls r1, 2 subs r4, 0xC8 adds r1, r4 ldrh r2, [r1, 0x6] movs r1, 0xD muls r1, r2 ldr r2, _080AD5BC adds r1, r2 bl StringCopy ldr r4, _080AD5C0 ldr r1, _080AD5C4 adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _080AD5C8 movs r2, 0xC2 lsls r2, 2 movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r3, 0x1 bl sub_8002EB0 ldr r1, _080AD5CC mov r5, r8 lsls r0, r5, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x3A strh r1, [r0, 0x8] b _080AD8CA .align 2, 0 _080AD5A8: .4byte 0x020233cc _080AD5AC: .4byte 0x02019328 _080AD5B0: .4byte 0x02038572 _080AD5B4: .4byte 0x020231cc _080AD5B8: .4byte 0x020232cc _080AD5BC: .4byte gMoveNames _080AD5C0: .4byte 0x020234cc _080AD5C4: .4byte gUnknown_083CC14A _080AD5C8: .4byte 0x0202e908 _080AD5CC: .4byte 0x03004b20 _080AD5D0: ldr r5, _080AD614 adds r0, r5, 0 bl sub_80037A0 lsls r0, 24 cmp r0, 0 bne _080AD5E0 b _080AD8CA _080AD5E0: bl sub_80AF138 ldr r4, _080AD618 ldr r1, _080AD61C adds r0, r4, 0 bl StringExpandPlaceholders movs r2, 0xC2 lsls r2, 2 movs r0, 0xF str r0, [sp] adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8002EB0 ldr r1, _080AD620 mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x3B strh r1, [r0, 0x8] b _080AD8CA .align 2, 0 _080AD614: .4byte 0x0202e908 _080AD618: .4byte 0x020234cc _080AD61C: .4byte gUnknown_083CC16E _080AD620: .4byte 0x03004b20 _080AD624: ldr r0, _080AD640 bl sub_80037A0 lsls r0, 24 cmp r0, 0 bne _080AD632 b _080AD8CA _080AD632: bl sub_80AF138 ldr r0, _080AD644 mov r3, r8 lsls r1, r3, 2 b _080AD6EC .align 2, 0 _080AD640: .4byte 0x0202e908 _080AD644: .4byte 0x03004b20 _080AD648: lsls r0, r7, 3 subs r0, r7 lsls r0, 2 ldr r1, _080AD6B4 adds r4, r0, r1 ldrb r1, [r4, 0x15] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080AD664 movs r0, 0x11 negs r0, r0 ands r0, r1 strb r0, [r4, 0x15] _080AD664: adds r0, r7, 0 bl sub_80B09B0 ldr r0, _080AD6B8 lsls r1, r7, 6 ldr r2, _080AD6BC adds r1, r2 bl StringCopy ldr r0, _080AD6C0 ldrh r2, [r4, 0x6] movs r1, 0xD muls r1, r2 ldr r2, _080AD6C4 adds r1, r2 bl StringCopy ldr r4, _080AD6C8 ldr r1, _080AD6CC adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _080AD6D0 movs r2, 0xC2 lsls r2, 2 movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r3, 0x1 bl sub_8002EB0 ldr r1, _080AD6D4 mov r4, r8 lsls r0, r4, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x22 strh r1, [r0, 0x8] b _080AD8CA .align 2, 0 _080AD6B4: .4byte 0x02019260 _080AD6B8: .4byte 0x020231cc _080AD6BC: .4byte 0x02038572 _080AD6C0: .4byte 0x020232cc _080AD6C4: .4byte gMoveNames _080AD6C8: .4byte 0x020234cc _080AD6CC: .4byte gUnknown_083CBF60 _080AD6D0: .4byte 0x0202e908 _080AD6D4: .4byte 0x03004b20 _080AD6D8: ldr r0, _080AD6F8 bl sub_80037A0 lsls r0, 24 cmp r0, 0 bne _080AD6E6 b _080AD8CA _080AD6E6: ldr r0, _080AD6FC mov r5, r8 lsls r1, r5, 2 _080AD6EC: add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x37 strh r0, [r1, 0x8] b _080AD8CA .align 2, 0 _080AD6F8: .4byte 0x0202e908 _080AD6FC: .4byte 0x03004b20 _080AD700: bl sub_80B1BDC ldr r0, _080AD718 mov r2, r8 lsls r1, r2, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x38 strh r0, [r1, 0x8] b _080AD8CA .align 2, 0 _080AD718: .4byte 0x03004b20 _080AD71C: ldrb r1, [r6, 0x6] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _080AD72C b _080AD8CA _080AD72C: movs r0, 0x13 ldrsb r0, [r6, r0] cmp r0, 0x4 ble _080AD73A strb r1, [r6, 0x13] bl sub_80B1928 _080AD73A: ldr r0, _080AD74C mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0xA strh r0, [r1, 0x8] b _080AD8CA .align 2, 0 _080AD74C: .4byte 0x03004b20 _080AD750: mov r4, r8 lsls r2, r4, 2 add r2, r8 lsls r2, 3 add r2, r12 ldrb r5, [r2, 0xC] ldr r1, _080AD774 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r1, 0x1C adds r0, r1 ldr r1, _080AD778 str r1, [r0] movs r0, 0xB strh r0, [r2, 0x8] b _080AD8CA .align 2, 0 _080AD774: .4byte 0x02020004 _080AD778: .4byte sub_80AD92C _080AD77C: mov r5, r8 lsls r0, r5, 2 add r0, r8 lsls r0, 3 mov r1, r12 adds r4, r0, r1 ldrb r5, [r4, 0xC] ldr r1, _080AD7B4 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r6, r0, r1 adds r0, r6, 0 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 blt _080AD7A2 b _080AD8CA _080AD7A2: adds r0, r6, 0 bl FreeSpriteOamMatrix adds r0, r6, 0 bl DestroySprite movs r0, 0x14 strh r0, [r4, 0x8] b _080AD8CA .align 2, 0 _080AD7B4: .4byte 0x02020004 _080AD7B8: movs r6, 0 mov r2, r8 lsls r2, 2 mov r9, r2 _080AD7C0: lsls r0, r6, 24 lsrs r0, 24 movs r1, 0x1 bl sub_80B0CDC adds r6, 0x1 cmp r6, 0x3 ble _080AD7C0 ldr r1, _080AD7E4 mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] movs r1, 0x15 strh r1, [r0, 0x8] b _080AD8CA .align 2, 0 _080AD7E4: .4byte 0x03004b20 _080AD7E8: bl sub_80AF138 ldr r0, _080AD828 lsls r1, r7, 6 ldr r2, _080AD82C adds r1, r2 bl StringCopy ldr r4, _080AD830 ldr r1, _080AD834 adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _080AD838 movs r2, 0xC2 lsls r2, 2 movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r3, 0x1 bl sub_8002EB0 ldr r1, _080AD83C mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x20 strh r1, [r0, 0x8] b _080AD8CA .align 2, 0 _080AD828: .4byte 0x020231cc _080AD82C: .4byte 0x02038572 _080AD830: .4byte 0x020234cc _080AD834: .4byte gUnknown_083CB00D _080AD838: .4byte 0x0202e908 _080AD83C: .4byte 0x03004b20 _080AD840: ldr r0, _080AD860 bl sub_80037A0 lsls r0, 24 cmp r0, 0 beq _080AD8CA ldr r0, _080AD864 mov r4, r8 lsls r1, r4, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x15 strh r0, [r1, 0x8] b _080AD8CA .align 2, 0 _080AD860: .4byte 0x0202e908 _080AD864: .4byte 0x03004b20 _080AD868: mov r5, r8 lsls r0, r5, 2 add r0, r8 lsls r0, 3 mov r2, r12 adds r1, r0, r2 ldrh r0, [r1, 0x1C] adds r0, 0x1 strh r0, [r1, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x1D ble _080AD8CA movs r0, 0 strh r0, [r1, 0x1C] movs r0, 0x16 strh r0, [r1, 0x8] b _080AD8CA _080AD88C: ldrb r0, [r6, 0x10] adds r0, 0x1 movs r1, 0 strb r0, [r6, 0x10] lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _080AD8B8 mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 add r0, r12 strh r1, [r0, 0x8] strh r1, [r0, 0xA] strh r1, [r0, 0xC] ldr r1, _080AD8B4 str r1, [r0] b _080AD8C4 .align 2, 0 _080AD8B4: .4byte sub_80AD960 _080AD8B8: mov r4, r8 lsls r0, r4, 2 add r0, r8 lsls r0, 3 add r0, r12 strh r1, [r0, 0x8] _080AD8C4: movs r0, 0 bl nullsub_18 _080AD8CA: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80AC2CC thumb_func_start sub_80AD8DC sub_80AD8DC: @ 80AD8DC push {lr} lsls r0, 24 lsrs r0, 24 ldr r3, _080AD8F8 ldrb r2, [r3, 0x7] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r3, 0x7] bl DestroyTask pop {r0} bx r0 .align 2, 0 _080AD8F8: .4byte 0x02019204 thumb_func_end sub_80AD8DC thumb_func_start sub_80AD8FC sub_80AD8FC: @ 80AD8FC push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x24] movs r3, 0x24 ldrsh r2, [r1, r3] cmp r2, 0 beq _080AD910 subs r0, 0x2 strh r0, [r1, 0x24] b _080AD924 _080AD910: ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F bne _080AD924 strh r2, [r1, 0x2E] ldr r0, _080AD928 str r0, [r1, 0x1C] _080AD924: pop {r0} bx r0 .align 2, 0 _080AD928: .4byte SpriteCallbackDummy thumb_func_end sub_80AD8FC thumb_func_start sub_80AD92C sub_80AD92C: @ 80AD92C push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x24] subs r0, 0x6 strh r0, [r2, 0x24] movs r1, 0x20 ldrsh r0, [r2, r1] movs r3, 0x24 ldrsh r1, [r2, r3] adds r0, r1 movs r1, 0x20 negs r1, r1 cmp r0, r1 bge _080AD956 ldr r0, _080AD95C str r0, [r2, 0x1C] adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _080AD956: pop {r0} bx r0 .align 2, 0 _080AD95C: .4byte SpriteCallbackDummy thumb_func_end sub_80AD92C thumb_func_start sub_80AD960 sub_80AD960: @ 80AD960 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080AD984 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r5, r1, r2 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080AD9F2 cmp r0, 0x1 bgt _080AD988 cmp r0, 0 beq _080AD98E b _080ADA10 .align 2, 0 _080AD984: .4byte 0x03004b20 _080AD988: cmp r0, 0x2 beq _080ADA08 b _080ADA10 _080AD98E: ldr r0, _080AD9D8 ldrb r1, [r0] movs r6, 0x1 adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _080AD9E8 ldr r2, _080AD9DC ldrb r0, [r2, 0x7] movs r1, 0x4 orrs r0, r1 strb r0, [r2, 0x7] bl sub_80AE074 lsls r0, 24 cmp r0, 0 beq _080AD9B8 bl sub_80AF2FC bl sub_80AF3C0 _080AD9B8: ldr r4, _080AD9E0 adds r0, r4, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080AD9E4 adds r1, r4, 0 bl SetTaskFuncWithFollowupFunc bl sub_80AF860 strh r6, [r5, 0x8] b _080ADA10 .align 2, 0 _080AD9D8: .4byte 0x0203869a _080AD9DC: .4byte 0x02019204 _080AD9E0: .4byte sub_80C8C80 _080AD9E4: .4byte sub_80AD8DC _080AD9E8: bl sub_80AF2FC bl sub_80AF3C0 b _080AD9FE _080AD9F2: ldr r0, _080ADA04 ldrb r1, [r0, 0x7] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _080ADA10 _080AD9FE: movs r0, 0x2 strh r0, [r5, 0x8] b _080ADA10 .align 2, 0 _080ADA04: .4byte 0x02019204 _080ADA08: movs r0, 0 strh r0, [r5, 0x8] ldr r0, _080ADA18 str r0, [r5] _080ADA10: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080ADA18: .4byte sub_80ADA1C thumb_func_end sub_80AD960 thumb_func_start sub_80ADA1C sub_80ADA1C: @ 80ADA1C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl sub_80B1FD0 ldr r1, _080ADA44 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] strh r1, [r0, 0xA] ldr r1, _080ADA48 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080ADA44: .4byte 0x03004b20 _080ADA48: .4byte sub_80ADA4C thumb_func_end sub_80ADA1C thumb_func_start sub_80ADA4C sub_80ADA4C: @ 80ADA4C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080ADA70 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 movs r0, 0x8 ldrsh r5, [r4, r0] cmp r5, 0x1 beq _080ADA92 cmp r5, 0x1 bgt _080ADA74 cmp r5, 0 beq _080ADA7A b _080ADACE .align 2, 0 _080ADA70: .4byte 0x03004b20 _080ADA74: cmp r5, 0x2 beq _080ADAC0 b _080ADACE _080ADA7A: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080ADACE movs r0, 0x2 bl sub_80B25E4 strh r5, [r4, 0xA] b _080ADAB2 _080ADA92: ldr r0, _080ADABC ldrb r1, [r0, 0x7] movs r0, 0x2 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _080ADACE ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080ADACE strh r1, [r4, 0xA] _080ADAB2: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080ADACE .align 2, 0 _080ADABC: .4byte 0x02019204 _080ADAC0: bl sub_80AFF10 movs r0, 0 strh r0, [r4, 0x8] strh r0, [r4, 0xA] ldr r0, _080ADAD4 str r0, [r4] _080ADACE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080ADAD4: .4byte sub_80ADAD8 thumb_func_end sub_80ADA4C thumb_func_start sub_80ADAD8 sub_80ADAD8: @ 80ADAD8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_80AFF28 lsls r0, 24 cmp r0, 0 beq _080ADAF6 ldr r0, _080ADAFC lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080ADB00 str r0, [r1] _080ADAF6: pop {r4} pop {r0} bx r0 .align 2, 0 _080ADAFC: .4byte 0x03004b20 _080ADB00: .4byte sub_80ADB04 thumb_func_end sub_80ADAD8 thumb_func_start sub_80ADB04 sub_80ADB04: @ 80ADB04 lsls r0, 24 lsrs r0, 24 ldr r2, _080ADB30 ldr r3, _080ADB34 ldr r1, _080ADB38 str r2, [r1] str r3, [r1, 0x4] ldr r2, _080ADB3C str r2, [r1, 0x8] ldr r1, [r1, 0x8] ldr r2, _080ADB40 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0x8] movs r0, 0x2 strh r0, [r1, 0xA] ldr r0, _080ADB44 str r0, [r1] bx lr .align 2, 0 _080ADB30: .4byte 0x02018204 _080ADB34: .4byte 0x0202eac8 _080ADB38: .4byte 0x040000d4 _080ADB3C: .4byte 0x84000100 _080ADB40: .4byte 0x03004b20 _080ADB44: .4byte sub_80ADB48 thumb_func_end sub_80ADB04 thumb_func_start sub_80ADB48 sub_80ADB48: @ 80ADB48 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080ADB80 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080ADB7A movs r0, 0 strh r0, [r1, 0x8] ldrh r0, [r1, 0xA] subs r0, 0x1 strh r0, [r1, 0xA] lsls r0, 16 cmp r0, 0 bne _080ADB7A ldr r0, _080ADB84 str r0, [r1] _080ADB7A: pop {r0} bx r0 .align 2, 0 _080ADB80: .4byte 0x03004b20 _080ADB84: .4byte sub_80ADB88 thumb_func_end sub_80ADB48 thumb_func_start sub_80ADB88 sub_80ADB88: @ 80ADB88 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r6, _080ADBEC ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _080ADBF0 adds r0, r1 ldrb r4, [r0, 0x1A] bl sub_80AF138 ldr r0, _080ADBF4 ldrb r1, [r6] lsls r1, 6 ldr r2, _080ADBF8 adds r1, r2 bl StringCopy ldr r6, _080ADBFC ldr r0, _080ADC00 lsls r4, 2 adds r4, r0 ldr r1, [r4] adds r0, r6, 0 bl StringExpandPlaceholders ldr r0, _080ADC04 movs r2, 0xC2 lsls r2, 2 movs r1, 0xF str r1, [sp] adds r1, r6, 0 movs r3, 0x1 bl sub_8002EB0 ldr r1, _080ADC08 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080ADC0C str r1, [r0] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080ADBEC: .4byte 0x02038695 _080ADBF0: .4byte 0x02019260 _080ADBF4: .4byte 0x020231cc _080ADBF8: .4byte 0x02038572 _080ADBFC: .4byte 0x020234cc _080ADC00: .4byte gUnknown_083CB2F0 _080ADC04: .4byte 0x0202e908 _080ADC08: .4byte 0x03004b20 _080ADC0C: .4byte sub_80ADC10 thumb_func_end sub_80ADB88 thumb_func_start sub_80ADC10 sub_80ADC10: @ 80ADC10 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080ADC40 bl sub_80037A0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080ADC3A ldr r1, _080ADC44 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] ldr r1, _080ADC48 str r1, [r0] bl sub_80B0D7C _080ADC3A: pop {r4} pop {r0} bx r0 .align 2, 0 _080ADC40: .4byte 0x0202e908 _080ADC44: .4byte 0x03004b20 _080ADC48: .4byte sub_80ADC4C thumb_func_end sub_80ADC10 thumb_func_start sub_80ADC4C sub_80ADC4C: @ 80ADC4C push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080ADC7C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x8] adds r1, r0, 0x1 strh r1, [r4, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x1D ble _080ADC76 movs r0, 0 strh r0, [r4, 0x8] bl sub_80AFF10 ldr r0, _080ADC80 str r0, [r4] _080ADC76: pop {r4} pop {r0} bx r0 .align 2, 0 _080ADC7C: .4byte 0x03004b20 _080ADC80: .4byte sub_80ADC84 thumb_func_end sub_80ADC4C thumb_func_start sub_80ADC84 sub_80ADC84: @ 80ADC84 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_80AFF28 lsls r0, 24 cmp r0, 0 beq _080ADCA6 ldr r1, _080ADCAC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] ldr r1, _080ADCB0 str r1, [r0] _080ADCA6: pop {r4} pop {r0} bx r0 .align 2, 0 _080ADCAC: .4byte 0x03004b20 _080ADCB0: .4byte sub_80ADCB4 thumb_func_end sub_80ADC84 thumb_func_start sub_80ADCB4 sub_80ADCB4: @ 80ADCB4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80B2184 ldr r1, _080ADCD4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080ADCD8 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080ADCD4: .4byte 0x03004b20 _080ADCD8: .4byte sub_80B237C thumb_func_end sub_80ADCB4 thumb_func_start sub_80ADCDC sub_80ADCDC: @ 80ADCDC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80B2280 ldr r1, _080ADCFC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080ADD00 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080ADCFC: .4byte 0x03004b20 _080ADD00: .4byte sub_80ADD04 thumb_func_end sub_80ADCDC thumb_func_start sub_80ADD04 sub_80ADD04: @ 80ADD04 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r3, _080ADD40 ldrb r2, [r3] movs r1, 0x4 negs r1, r1 adds r0, r1, 0 ands r0, r2 strb r0, [r3] ldr r2, _080ADD44 ldrb r0, [r2] ands r1, r0 strb r1, [r2] ldr r1, _080ADD48 ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bne _080ADD54 ldr r0, _080ADD4C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080ADD50 b _080ADD64 .align 2, 0 _080ADD40: .4byte REG_BG0CNT _080ADD44: .4byte REG_BG2CNT _080ADD48: .4byte 0x02019204 _080ADD4C: .4byte 0x03004b20 _080ADD50: .4byte sub_80ADDA4 _080ADD54: bl sub_80B1B14 ldr r0, _080ADD6C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080ADD70 _080ADD64: str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080ADD6C: .4byte 0x03004b20 _080ADD70: .4byte sub_80ADD74 thumb_func_end sub_80ADD04 thumb_func_start sub_80ADD74 sub_80ADD74: @ 80ADD74 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080ADD98 ldrb r1, [r0, 0x6] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080ADD94 ldr r0, _080ADD9C lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _080ADDA0 str r0, [r1] _080ADD94: pop {r0} bx r0 .align 2, 0 _080ADD98: .4byte 0x02019204 _080ADD9C: .4byte 0x03004b20 _080ADDA0: .4byte sub_80ABB70 thumb_func_end sub_80ADD74 thumb_func_start sub_80ADDA4 sub_80ADDA4: @ 80ADDA4 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _080ADE24 movs r1, 0 strh r1, [r0] ldr r0, _080ADE28 strh r1, [r0] ldr r3, _080ADE2C ldr r2, _080ADE30 movs r1, 0x3 _080ADDBC: ldrh r0, [r3, 0x4] strh r0, [r2] adds r3, 0x1C adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bge _080ADDBC movs r5, 0 bl sub_80AF668 bl sub_80AF138 ldr r0, _080ADE34 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _080ADE2C adds r0, r1 ldrh r0, [r0, 0x8] bl sub_80BE23C ldr r1, _080ADE38 ldr r0, _080ADE3C ldr r0, [r0] str r0, [r1] ldr r4, _080ADE40 ldr r1, _080ADE44 adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _080ADE48 movs r2, 0xC2 lsls r2, 2 movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r3, 0x1 bl sub_8002EB0 ldr r1, _080ADE4C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 strh r5, [r0, 0xC] ldr r1, _080ADE50 str r1, [r0] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080ADE24: .4byte 0x030042a0 _080ADE28: .4byte 0x03004280 _080ADE2C: .4byte 0x02019260 _080ADE30: .4byte 0x02038680 _080ADE34: .4byte 0x02038695 _080ADE38: .4byte 0x03005d28 _080ADE3C: .4byte gRngValue _080ADE40: .4byte 0x020234cc _080ADE44: .4byte gUnknown_083CB02C _080ADE48: .4byte 0x0202e908 _080ADE4C: .4byte 0x03004b20 _080ADE50: .4byte sub_80ADE54 thumb_func_end sub_80ADDA4 thumb_func_start sub_80ADE54 sub_80ADE54: @ 80ADE54 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080ADE98 bl sub_80037A0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080ADE92 bl sub_80B2184 ldr r1, _080ADE9C movs r0, 0 strh r0, [r1] ldr r1, _080ADEA0 movs r0, 0xA0 strh r0, [r1] movs r0, 0x62 movs r1, 0 bl audio_play_and_stuff ldr r1, _080ADEA4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] ldr r1, _080ADEA8 str r1, [r0] _080ADE92: pop {r4} pop {r0} bx r0 .align 2, 0 _080ADE98: .4byte 0x0202e908 _080ADE9C: .4byte 0x030042c0 _080ADEA0: .4byte 0x030041b4 _080ADEA4: .4byte 0x03004b20 _080ADEA8: .4byte sub_80ADEAC thumb_func_end sub_80ADE54 thumb_func_start sub_80ADEAC sub_80ADEAC: @ 80ADEAC push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r1, _080ADEE0 ldrh r0, [r1] subs r0, 0x7 strh r0, [r1] lsls r0, 16 cmp r0, 0 bge _080ADEC4 movs r0, 0 strh r0, [r1] _080ADEC4: ldrh r2, [r1] cmp r2, 0 bne _080ADEDA ldr r0, _080ADEE4 lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 ldr r0, _080ADEE8 str r0, [r1] strh r2, [r1, 0x8] _080ADEDA: pop {r0} bx r0 .align 2, 0 _080ADEE0: .4byte 0x030041b4 _080ADEE4: .4byte 0x03004b20 _080ADEE8: .4byte sub_80ADEEC thumb_func_end sub_80ADEAC thumb_func_start sub_80ADEEC sub_80ADEEC: @ 80ADEEC push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, _080ADF20 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x8] adds r1, r0, 0x1 strh r1, [r4, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x31 ble _080ADF40 movs r0, 0 strh r0, [r4, 0x8] ldr r0, _080ADF24 ldrb r0, [r0] movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _080ADF2C ldr r0, _080ADF28 b _080ADF3E .align 2, 0 _080ADF20: .4byte 0x03004b20 _080ADF24: .4byte 0x0203869a _080ADF28: .4byte sub_80ADF4C _080ADF2C: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _080ADF48 _080ADF3E: str r0, [r4] _080ADF40: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080ADF48: .4byte sub_80ADFD8 thumb_func_end sub_80ADEEC thumb_func_start sub_80ADF4C sub_80ADF4C: @ 80ADF4C push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _080ADF88 adds r0, r5, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080ADF8C adds r1, r5, 0 bl SetTaskFuncWithFollowupFunc ldr r1, _080ADF90 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080ADF94 str r1, [r0] bl sub_80AF860 movs r0, 0 bl sub_80AFFE0 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080ADF88: .4byte sub_80C8AD0 _080ADF8C: .4byte sub_80ADF98 _080ADF90: .4byte 0x03004b20 _080ADF94: .4byte nullsub_89 thumb_func_end sub_80ADF4C thumb_func_start sub_80ADF98 sub_80ADF98: @ 80ADF98 push {lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 bl DestroyTask movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r2, _080ADFCC ldr r0, _080ADFD0 ldrb r1, [r0, 0x8] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, _080ADFD4 str r1, [r0] add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080ADFCC: .4byte 0x03004b20 _080ADFD0: .4byte 0x02019204 _080ADFD4: .4byte sub_80ADFD8 thumb_func_end sub_80ADF98 thumb_func_start sub_80ADFD8 sub_80ADFD8: @ 80ADFD8 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080AE000 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080ADFFC adds r0, r2, 0 bl DestroyTask ldr r0, _080AE004 ldr r1, _080AE008 str r1, [r0] ldr r0, _080AE00C bl SetMainCallback2 _080ADFFC: pop {r0} bx r0 .align 2, 0 _080AE000: .4byte 0x0202f388 _080AE004: .4byte 0x0300485c _080AE008: .4byte sub_80AE010 _080AE00C: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_80ADFD8 thumb_func_start sub_80AE010 sub_80AE010: @ 80AE010 push {lr} bl script_env_2_disable bl script_env_2_enable_and_set_ctx_running pop {r0} bx r0 thumb_func_end sub_80AE010 thumb_func_start sub_80AE020 sub_80AE020: @ 80AE020 push {r4,lr} adds r4, r0, 0 b _080AE028 _080AE026: adds r4, 0x1 _080AE028: ldrb r0, [r4] cmp r0, 0xFF beq _080AE04C cmp r0, 0xFC bne _080AE026 ldrb r0, [r4, 0x1] cmp r0, 0 bne _080AE026 adds r0, r4, 0 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN movs r1, 0xFF strb r1, [r0] adds r1, r4, 0x2 bl StringAppend _080AE04C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80AE020 thumb_func_start sub_80AE054 sub_80AE054: @ 80AE054 push {lr} ldr r0, _080AE06C ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080AE068 ldr r1, _080AE070 movs r0, 0x3 strb r0, [r1] _080AE068: pop {r0} bx r0 .align 2, 0 _080AE06C: .4byte 0x0203869a _080AE070: .4byte 0x02038695 thumb_func_end sub_80AE054 thumb_func_start sub_80AE074 sub_80AE074: @ 80AE074 push {lr} ldr r0, _080AE088 ldr r1, _080AE08C ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 beq _080AE090 movs r0, 0 b _080AE092 .align 2, 0 _080AE088: .4byte 0x02038695 _080AE08C: .4byte 0x0203869b _080AE090: movs r0, 0x1 _080AE092: pop {r1} bx r1 thumb_func_end sub_80AE074 thumb_func_start sub_80AE098 sub_80AE098: @ 80AE098 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 lsls r0, 24 lsrs r7, r0, 24 ldr r6, _080AE0F0 mov r0, sp adds r1, r6, 0 bl StringCopy mov r0, sp bl SkipExtCtrlCodes ldr r0, _080AE0F4 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080AE0CE mov r0, sp ldrb r2, [r0, 0x5] mov r1, sp movs r0, 0xFF strb r0, [r1, 0x5] mov r0, sp strb r2, [r0, 0x7] _080AE0CE: ldr r5, _080AE0F8 ldrb r0, [r5] lsls r0, 6 ldr r4, _080AE0FC adds r0, r4 mov r1, sp movs r2, 0x8 bl memcpy ldrb r0, [r6, 0x8] cmp r0, 0 bne _080AE100 ldrb r0, [r5] lsls r0, 6 adds r0, r4, r0 movs r1, 0xD8 b _080AE108 .align 2, 0 _080AE0F0: .4byte gSaveBlock2 _080AE0F4: .4byte 0x0203869a _080AE0F8: .4byte 0x02038695 _080AE0FC: .4byte 0x0203857d _080AE100: ldrb r0, [r5] lsls r0, 6 adds r0, r4, r0 movs r1, 0xD9 _080AE108: strb r1, [r0, 0x8] ldr r5, _080AE17C ldr r4, _080AE180 ldrb r0, [r4] lsls r0, 6 adds r1, r5, 0 adds r1, 0x18 adds r0, r1 movs r1, 0 str r1, [r0] ldrb r0, [r4] lsls r0, 6 adds r0, r5 adds r0, 0x2C strb r1, [r0] movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, _080AE184 adds r6, r1, r0 adds r0, r6, 0 movs r1, 0xB bl PokemonGetField ldrb r1, [r4] lsls r1, 6 adds r1, r5 strh r0, [r1] adds r0, r6, 0 movs r1, 0x2 mov r2, sp bl PokemonGetField mov r0, sp bl StringGetEnd10 ldr r0, _080AE188 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080AE19A mov r0, sp bl SkipExtCtrlCodes adds r0, r6, 0 movs r1, 0x3 bl PokemonGetField cmp r0, 0x1 bne _080AE18C mov r1, sp movs r0, 0xFF strb r0, [r1, 0x5] movs r0, 0xFC strb r0, [r1, 0xA] b _080AE19A .align 2, 0 _080AE17C: .4byte 0x02038570 _080AE180: .4byte 0x02038695 _080AE184: .4byte 0x03004360 _080AE188: .4byte 0x0203869a _080AE18C: mov r0, sp ldrb r2, [r0, 0x5] mov r1, sp movs r0, 0xFF strb r0, [r1, 0x5] mov r0, sp strb r2, [r0, 0xA] _080AE19A: ldr r5, _080AE2C4 ldrb r0, [r5] lsls r0, 6 ldr r1, _080AE2C8 mov r8, r1 add r0, r8 mov r1, sp movs r2, 0xB bl memcpy movs r0, 0x64 adds r4, r7, 0 muls r4, r0 ldr r0, _080AE2CC adds r4, r0 adds r0, r4, 0 movs r1, 0x16 bl PokemonGetField mov r6, r8 subs r6, 0x2 ldrb r1, [r5] lsls r1, 6 adds r1, r6 adds r1, 0x26 strb r0, [r1] adds r0, r4, 0 movs r1, 0x17 bl PokemonGetField ldrb r1, [r5] lsls r1, 6 adds r1, r6 adds r1, 0x27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x18 bl PokemonGetField ldrb r1, [r5] lsls r1, 6 adds r1, r6 adds r1, 0x28 strb r0, [r1] adds r0, r4, 0 movs r1, 0x21 bl PokemonGetField ldrb r1, [r5] lsls r1, 6 adds r1, r6 adds r1, 0x29 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2F bl PokemonGetField ldrb r1, [r5] lsls r1, 6 adds r1, r6 adds r1, 0x2A strb r0, [r1] adds r0, r4, 0 movs r1, 0x30 bl PokemonGetField ldrb r1, [r5] lsls r1, 6 adds r1, r6 adds r1, 0x2B strb r0, [r1] adds r0, r4, 0 movs r1, 0xD bl PokemonGetField ldrb r1, [r5] lsls r1, 6 adds r1, r6 strh r0, [r1, 0x1E] adds r0, r4, 0 movs r1, 0xE bl PokemonGetField ldrb r1, [r5] lsls r1, 6 adds r1, r6 strh r0, [r1, 0x20] adds r0, r4, 0 movs r1, 0xF bl PokemonGetField ldrb r1, [r5] lsls r1, 6 adds r1, r6 strh r0, [r1, 0x22] adds r0, r4, 0 movs r1, 0x10 bl PokemonGetField ldrb r1, [r5] lsls r1, 6 adds r1, r6 strh r0, [r1, 0x24] adds r0, r4, 0 movs r1, 0 bl PokemonGetField ldrb r1, [r5] lsls r1, 6 mov r2, r8 adds r2, 0x36 adds r1, r2 str r0, [r1] adds r0, r4, 0 movs r1, 0x1 bl PokemonGetField ldrb r1, [r5] lsls r1, 6 movs r2, 0x3A add r8, r2 add r1, r8 str r0, [r1] adds r0, r4, 0 movs r1, 0xC bl PokemonGetField lsls r0, 16 lsrs r2, r0, 16 mov r8, r2 ldrb r0, [r5] lsls r0, 6 adds r1, r0, r6 adds r0, r1, 0 adds r0, 0x26 ldrb r3, [r0] adds r0, 0x1 ldrb r4, [r0] adds r0, 0x1 ldrb r5, [r0] adds r0, 0x1 ldrb r6, [r0] adds r0, 0x1 ldrb r7, [r0] cmp r2, 0xFE bne _080AE2D0 adds r3, 0x14 b _080AE31E .align 2, 0 _080AE2C4: .4byte 0x02038695 _080AE2C8: .4byte 0x02038572 _080AE2CC: .4byte 0x03004360 _080AE2D0: cmp r2, 0xFF bne _080AE2E0 lsls r0, r4, 16 movs r1, 0xA0 lsls r1, 13 adds r0, r1 lsrs r4, r0, 16 b _080AE31E _080AE2E0: movs r0, 0x80 lsls r0, 1 cmp r2, r0 bne _080AE2F4 lsls r0, r5, 16 movs r2, 0xA0 lsls r2, 13 adds r0, r2 lsrs r5, r0, 16 b _080AE31E _080AE2F4: ldr r0, _080AE308 cmp r2, r0 bne _080AE30C lsls r0, r6, 16 movs r1, 0xA0 lsls r1, 13 adds r0, r1 lsrs r6, r0, 16 b _080AE31E .align 2, 0 _080AE308: .4byte 0x00000101 _080AE30C: movs r0, 0x81 lsls r0, 1 cmp r8, r0 bne _080AE31E lsls r0, r7, 16 movs r2, 0xA0 lsls r2, 13 adds r0, r2 lsrs r7, r0, 16 _080AE31E: cmp r3, 0xFF ble _080AE324 movs r3, 0xFF _080AE324: lsls r0, r4, 16 asrs r0, 16 cmp r0, 0xFF ble _080AE32E movs r4, 0xFF _080AE32E: lsls r0, r5, 16 asrs r0, 16 cmp r0, 0xFF ble _080AE338 movs r5, 0xFF _080AE338: lsls r0, r6, 16 asrs r0, 16 cmp r0, 0xFF ble _080AE342 movs r6, 0xFF _080AE342: lsls r0, r7, 16 asrs r0, 16 cmp r0, 0xFF ble _080AE34C movs r7, 0xFF _080AE34C: ldr r2, _080AE390 ldr r1, _080AE394 ldrb r0, [r1] lsls r0, 6 adds r0, r2 adds r0, 0x26 strb r3, [r0] ldrb r0, [r1] lsls r0, 6 adds r0, r2 adds r0, 0x27 strb r4, [r0] ldrb r0, [r1] lsls r0, 6 adds r0, r2 adds r0, 0x28 strb r5, [r0] ldrb r0, [r1] lsls r0, 6 adds r0, r2 adds r0, 0x29 strb r6, [r0] ldrb r0, [r1] lsls r0, 6 adds r0, r2 adds r0, 0x2A strb r7, [r0] add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AE390: .4byte 0x02038570 _080AE394: .4byte 0x02038695 thumb_func_end sub_80AE098 thumb_func_start sub_80AE398 sub_80AE398: @ 80AE398 push {r4-r7,lr} sub sp, 0x40 lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r7, r1, 24 movs r6, 0 bl sub_80AE054 movs r5, 0 ldr r2, _080AE470 _080AE3AE: ldrb r1, [r2, 0x1C] lsls r0, r1, 30 lsrs r0, 30 cmp r7, r0 bne _080AE3FE cmp r4, 0 bne _080AE3C2 lsls r0, r1, 29 cmp r0, 0 blt _080AE3F2 _080AE3C2: cmp r4, 0x1 bne _080AE3CE ldrb r0, [r2, 0x1C] lsls r0, 28 cmp r0, 0 blt _080AE3F2 _080AE3CE: cmp r4, 0x2 bne _080AE3DA ldrb r0, [r2, 0x1C] lsls r0, 27 cmp r0, 0 blt _080AE3F2 _080AE3DA: cmp r4, 0x3 bne _080AE3E6 ldrb r0, [r2, 0x1C] lsls r0, 26 cmp r0, 0 blt _080AE3F2 _080AE3E6: cmp r4, 0x4 bne _080AE3FE ldrb r0, [r2, 0x1C] lsls r0, 25 cmp r0, 0 bge _080AE3FE _080AE3F2: adds r0, r6, 0 adds r1, r0, 0x1 lsls r1, 24 lsrs r6, r1, 24 add r0, sp strb r5, [r0] _080AE3FE: adds r2, 0x40 adds r5, 0x1 cmp r5, 0x3B ble _080AE3AE mov r0, sp adds r1, r0, r6 movs r0, 0xFF strb r0, [r1] movs r5, 0 ldr r7, _080AE470 _080AE412: bl Random lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 bl __modsi3 lsls r0, 16 lsrs r0, 16 ldr r1, _080AE474 lsls r2, r5, 6 adds r2, r1 mov r1, sp adds r4, r1, r0 ldrb r1, [r4] lsls r1, 6 adds r1, r7 adds r0, r2, 0 movs r2, 0x40 bl memcpy ldrb r0, [r4] adds r2, r5, 0x1 subs r1, r6, 0x1 cmp r0, 0xFF beq _080AE454 adds r3, r4, 0 _080AE448: ldrb r0, [r3, 0x1] strb r0, [r3] adds r3, 0x1 ldrb r0, [r3] cmp r0, 0xFF bne _080AE448 _080AE454: lsls r0, r1, 24 lsrs r6, r0, 24 adds r5, r2, 0 cmp r5, 0x2 ble _080AE412 ldr r0, _080AE478 ldrb r0, [r0] bl sub_80AE098 add sp, 0x40 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AE470: .4byte gUnknown_083C9408 _080AE474: .4byte 0x02038570 _080AE478: .4byte 0x02038694 thumb_func_end sub_80AE398 thumb_func_start sub_80AE47C sub_80AE47C: @ 80AE47C push {r4,lr} adds r4, r0, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 beq _080AE48E movs r0, 0x3 b _080AE50A _080AE48E: adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 bne _080AE49E movs r0, 0x4 b _080AE50A _080AE49E: ldr r0, _080AE4B0 ldrh r0, [r0] cmp r0, 0x4 bhi _080AE4F2 lsls r0, 2 ldr r1, _080AE4B4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080AE4B0: .4byte 0x0203869c _080AE4B4: .4byte _080AE4B8 .align 2, 0 _080AE4B8: .4byte _080AE4CC .4byte _080AE4D2 .4byte _080AE4D8 .4byte _080AE4DE .4byte _080AE4E4 _080AE4CC: adds r0, r4, 0 movs r1, 0x32 b _080AE4E8 _080AE4D2: adds r0, r4, 0 movs r1, 0x33 b _080AE4E8 _080AE4D8: adds r0, r4, 0 movs r1, 0x34 b _080AE4E8 _080AE4DE: adds r0, r4, 0 movs r1, 0x35 b _080AE4E8 _080AE4E4: adds r0, r4, 0 movs r1, 0x36 _080AE4E8: bl PokemonGetField lsls r0, 24 lsrs r1, r0, 24 b _080AE4F6 _080AE4F2: movs r0, 0 b _080AE50A _080AE4F6: ldr r0, _080AE510 adds r2, r1, 0 ldrh r1, [r0] movs r0, 0x2 cmp r2, r1 bhi _080AE50A movs r0, 0 cmp r2, r1 bcc _080AE50A movs r0, 0x1 _080AE50A: pop {r4} pop {r1} bx r1 .align 2, 0 _080AE510: .4byte 0x0203869e thumb_func_end sub_80AE47C thumb_func_start sub_80AE514 sub_80AE514: @ 80AE514 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 movs r5, 0 ldr r7, _080AE588 adds r0, r7, 0x1 mov r9, r0 ldr r6, _080AE58C adds r3, r6, 0x1 mov r8, r3 _080AE52C: ldr r4, _080AE590 adds r4, r5, r4 ldrb r0, [r4] lsls r0, 1 adds r1, r0, r7 ldrb r2, [r1] mov r3, r9 adds r1, r0, r3 ldrb r3, [r1] adds r0, r6 ldrb r0, [r0] adds r0, 0x5 lsls r0, 24 lsrs r0, 24 str r0, [sp] ldrb r0, [r4] lsls r0, 1 add r0, r8 ldrb r0, [r0] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] ldr r0, _080AE594 movs r1, 0 bl FillWindowRect_DefaultPalette adds r0, r5, 0 bl sub_80AE5BC adds r0, r5, 0 bl sub_80AE6CC adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _080AE52C add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AE588: .4byte gUnknown_083CA308 _080AE58C: .4byte gUnknown_083CA310 _080AE590: .4byte 0x02038696 _080AE594: .4byte 0x03004210 thumb_func_end sub_80AE514 thumb_func_start PutWindowTilemap PutWindowTilemap: @ 80AE598 push {r4,r5,lr} adds r5, r1, 0 lsls r4, r2, 24 lsrs r4, 24 ldr r1, _080AE5B8 bl StringCopy strb r4, [r0] adds r0, 0x1 adds r1, r5, 0 bl StringCopy pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080AE5B8: .4byte gUnknown_083CC59C thumb_func_end PutWindowTilemap thumb_func_start sub_80AE5BC sub_80AE5BC: @ 80AE5BC push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r0, r1, 24 movs r2, 0xA0 lsls r2, 20 adds r1, r2 lsrs r1, 24 bl sub_80AE5D4 pop {r0} bx r0 thumb_func_end sub_80AE5BC thumb_func_start sub_80AE5D4 sub_80AE5D4: @ 80AE5D4 push {r4-r7,lr} sub sp, 0x8 adds r2, r1, 0 lsls r0, 24 lsrs r4, r0, 24 lsls r2, 24 lsrs r2, 24 ldr r3, _080AE660 ldr r1, _080AE664 adds r0, r3, 0 bl PutWindowTilemap adds r3, r0, 0 movs r0, 0xFC strb r0, [r3] movs r0, 0x6 strb r0, [r3, 0x1] movs r0, 0x4 strb r0, [r3, 0x2] adds r3, 0x3 movs r0, 0xBA strb r0, [r3] adds r3, 0x1 ldr r0, _080AE668 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080AE67C ldr r1, _080AE66C lsls r0, r4, 3 subs r0, r4 lsls r2, r0, 2 adds r0, r2, r1 ldrh r6, [r0, 0x1A] cmp r6, 0x1 bne _080AE67C adds r1, 0x8 adds r1, r2, r1 adds r0, r3, 0 bl StringCopy ldr r0, _080AE670 ldr r1, _080AE660 ldr r2, _080AE674 adds r2, r4, r2 ldrb r4, [r2] movs r2, 0x16 muls r2, r4 movs r3, 0x94 lsls r3, 2 adds r2, r3 ldr r5, _080AE678 lsls r4, 1 adds r3, r4, r5 ldrb r3, [r3] lsls r3, 27 movs r7, 0xFB lsls r7, 24 adds r3, r7 lsrs r3, 24 adds r5, 0x1 adds r4, r5 ldrb r4, [r4] lsls r4, 3 str r4, [sp] str r6, [sp, 0x4] bl sub_8004D04 b _080AE6B0 .align 2, 0 _080AE660: .4byte 0x020238cc _080AE664: .4byte gEmptyString_81E72B0 _080AE668: .4byte 0x0203869a _080AE66C: .4byte 0x03002970 _080AE670: .4byte 0x03004210 _080AE674: .4byte 0x02038696 _080AE678: .4byte gUnknown_083CA310 _080AE67C: lsls r1, r4, 6 ldr r0, _080AE6B8 adds r1, r0 adds r0, r3, 0 bl StringCopy ldr r0, _080AE6BC ldr r1, _080AE6C0 ldr r2, _080AE6C4 adds r2, r4, r2 ldrb r4, [r2] movs r2, 0x16 muls r2, r4 movs r3, 0x94 lsls r3, 2 adds r2, r3 ldr r5, _080AE6C8 lsls r4, 1 adds r3, r4, r5 ldrb r3, [r3] adds r5, 0x1 adds r4, r5 ldrb r4, [r4] str r4, [sp] bl sub_8003460 _080AE6B0: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AE6B8: .4byte 0x0203857d _080AE6BC: .4byte 0x03004210 _080AE6C0: .4byte 0x020238cc _080AE6C4: .4byte 0x02038696 _080AE6C8: .4byte gUnknown_083CA310 thumb_func_end sub_80AE5D4 thumb_func_start sub_80AE6CC sub_80AE6CC: @ 80AE6CC push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r0, r1, 24 movs r2, 0xA0 lsls r2, 20 adds r1, r2 lsrs r1, 24 bl sub_80AE6E4 pop {r0} bx r0 thumb_func_end sub_80AE6CC thumb_func_start sub_80AE6E4 sub_80AE6E4: @ 80AE6E4 push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 adds r2, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r2, 24 lsrs r2, 24 ldr r3, _080AE75C movs r0, 0xFC strb r0, [r3] movs r0, 0x6 strb r0, [r3, 0x1] movs r0, 0x4 strb r0, [r3, 0x2] adds r3, 0x3 lsls r1, r4, 6 ldr r0, _080AE760 adds r1, r0 adds r0, r3, 0 bl PutWindowTilemap adds r3, r0, 0 movs r0, 0xFF strb r0, [r3] ldr r0, _080AE764 ldr r1, _080AE75C ldr r2, _080AE768 adds r4, r2 ldrb r4, [r4] lsls r2, r4, 2 adds r2, r4 lsls r2, 18 movs r3, 0x80 lsls r3, 18 adds r2, r3 lsrs r2, 16 ldr r5, _080AE76C lsls r4, 1 adds r3, r4, r5 ldrb r3, [r3] lsls r3, 27 movs r6, 0xFD lsls r6, 24 adds r3, r6 lsrs r3, 24 adds r5, 0x1 adds r4, r5 ldrb r4, [r4] lsls r4, 3 str r4, [sp] movs r4, 0x1 str r4, [sp, 0x4] bl sub_8004D04 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080AE75C: .4byte 0x020238cc _080AE760: .4byte 0x02038572 _080AE764: .4byte 0x03004210 _080AE768: .4byte 0x02038696 _080AE76C: .4byte gUnknown_083CA308 thumb_func_end sub_80AE6E4 thumb_func_start sub_80AE770 sub_80AE770: @ 80AE770 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r0, r1, 24 cmp r0, 0x4 bhi _080AE7FC lsls r0, 2 ldr r1, _080AE788 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080AE788: .4byte _080AE78C .align 2, 0 _080AE78C: .4byte _080AE7A0 .4byte _080AE7B8 .4byte _080AE7D0 .4byte _080AE7E0 .4byte _080AE7FC _080AE7A0: ldr r0, _080AE7B4 lsls r2, 6 adds r1, r2, r0 adds r3, r1, 0 adds r3, 0x26 ldrb r5, [r3] adds r3, 0x4 ldrb r4, [r3] adds r1, 0x27 b _080AE80E .align 2, 0 _080AE7B4: .4byte 0x02038570 _080AE7B8: ldr r0, _080AE7CC lsls r2, 6 adds r1, r2, r0 adds r3, r1, 0 adds r3, 0x27 ldrb r5, [r3] subs r3, 0x1 ldrb r4, [r3] adds r1, 0x28 b _080AE80E .align 2, 0 _080AE7CC: .4byte 0x02038570 _080AE7D0: ldr r1, _080AE7DC lsls r2, 6 adds r3, r2, r1 adds r0, r3, 0 adds r0, 0x28 b _080AE7EA .align 2, 0 _080AE7DC: .4byte 0x02038570 _080AE7E0: ldr r1, _080AE7F8 lsls r2, 6 adds r3, r2, r1 adds r0, r3, 0 adds r0, 0x29 _080AE7EA: ldrb r5, [r0] subs r0, 0x1 ldrb r4, [r0] adds r0, 0x2 ldrb r3, [r0] adds r0, r1, 0 b _080AE810 .align 2, 0 _080AE7F8: .4byte 0x02038570 _080AE7FC: ldr r0, _080AE828 lsls r2, 6 adds r1, r2, r0 adds r3, r1, 0 adds r3, 0x2A ldrb r5, [r3] subs r3, 0x1 ldrb r4, [r3] adds r1, 0x26 _080AE80E: ldrb r3, [r1] _080AE810: adds r1, r2, r0 adds r1, 0x2B adds r0, r4, r3 ldrb r1, [r1] adds r0, r1 asrs r0, 1 adds r0, r5, r0 lsls r0, 16 lsrs r0, 16 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080AE828: .4byte 0x02038570 thumb_func_end sub_80AE770 thumb_func_start sub_80AE82C sub_80AE82C: @ 80AE82C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r6, _080AE854 _080AE836: adds r0, r4, 0 adds r1, r5, 0 bl sub_80AE770 lsls r1, r4, 1 adds r1, r6 strh r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080AE836 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080AE854: .4byte 0x02038670 thumb_func_end sub_80AE82C thumb_func_start sub_80AE858 sub_80AE858: @ 80AE858 push {r4,r5,lr} ldr r0, _080AE8A0 bl LoadCompressedObjectPic ldr r0, _080AE8A4 movs r1, 0x88 lsls r1, 1 movs r2, 0x20 bl LoadCompressedPalette ldr r0, _080AE8A8 movs r1, 0x70 movs r2, 0x24 movs r3, 0x1E bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r4, _080AE8AC lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r5, r2, r4 ldrb r3, [r5, 0x5] movs r1, 0xF ands r1, r3 movs r3, 0x10 orrs r1, r3 strb r1, [r5, 0x5] adds r4, 0x1C adds r2, r4 ldr r1, _080AE8B0 str r1, [r2] pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080AE8A0: .4byte gUnknown_083CA4BC _080AE8A4: .4byte gContest2Pal _080AE8A8: .4byte gSpriteTemplate_83CA4A4 _080AE8AC: .4byte 0x02020004 _080AE8B0: .4byte SpriteCallbackDummy thumb_func_end sub_80AE858 thumb_func_start sub_80AE8B4 sub_80AE8B4: @ 80AE8B4 push {lr} ldr r0, _080AE8F8 bl LoadCompressedObjectPic ldr r0, _080AE8FC bl LoadCompressedObjectPalette ldr r0, _080AE900 movs r1, 0x60 movs r2, 0xA movs r3, 0x1D bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _080AE904 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 movs r1, 0x3E adds r1, r2 mov r12, r1 ldrb r1, [r1] movs r3, 0x4 orrs r1, r3 mov r3, r12 strb r1, [r3] ldrh r1, [r2, 0x4] lsls r1, 22 lsrs r1, 22 strh r1, [r2, 0x2E] pop {r1} bx r1 .align 2, 0 _080AE8F8: .4byte gUnknown_083CA4C4 _080AE8FC: .4byte gUnknown_083CA4CC _080AE900: .4byte gUnknown_083CA4D4 _080AE904: .4byte 0x02020004 thumb_func_end sub_80AE8B4 thumb_func_start unref_sub_80AE908 unref_sub_80AE908: @ 80AE908 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x8 ldr r0, _080AE9D4 mov r9, r0 ldr r1, _080AE9D8 mov r8, r1 ldrb r0, [r1] lsls r0, 6 add r0, r9 ldrh r5, [r0] lsls r6, r5, 3 ldr r0, _080AE9DC adds r0, r6, r0 ldr r2, _080AE9E0 mov r10, r2 lsls r2, r5, 2 add r2, r10 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _080AE9E4 ldr r4, [r4, 0x4] str r4, [sp] str r5, [sp, 0x4] bl DecompressPicFromTable_2 ldr r0, _080AE9E8 adds r6, r0 ldr r0, [r6] movs r1, 0x88 lsls r1, 1 movs r2, 0x20 bl LoadCompressedPalette mov r1, r8 ldrb r0, [r1] lsls r0, 6 add r0, r9 ldrh r0, [r0] movs r1, 0x1 bl gpu_pal_obj_decompress_and_apply ldr r0, _080AE9EC mov r2, r8 ldrb r1, [r2] lsls r1, 6 add r1, r9 ldrh r1, [r1] lsls r1, 2 add r1, r10 ldrb r1, [r1] movs r2, 0x8 subs r2, r1 lsls r2, 18 movs r1, 0xA0 lsls r1, 15 adds r2, r1 asrs r2, 16 movs r1, 0x70 movs r3, 0x1E bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _080AE9F0 lsls r3, r4, 4 adds r3, r4 lsls r3, 2 adds r0, r3, r5 ldrb r2, [r0, 0x5] movs r1, 0xF ands r1, r2 movs r2, 0x10 orrs r1, r2 strb r1, [r0, 0x5] adds r1, r5, 0 adds r1, 0x1C adds r1, r3, r1 ldr r2, _080AE9F4 str r2, [r1] adds r5, 0x10 adds r3, r5 ldr r1, _080AE9F8 str r1, [r3] movs r1, 0 bl StartSpriteAffineAnim adds r0, r4, 0 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080AE9D4: .4byte 0x02038570 _080AE9D8: .4byte 0x02038695 _080AE9DC: .4byte gMonFrontPicTable _080AE9E0: .4byte gMonFrontPicCoords _080AE9E4: .4byte gUnknown_081FAF4C _080AE9E8: .4byte gMonPaletteTable _080AE9EC: .4byte 0x02024e8c _080AE9F0: .4byte 0x02020004 _080AE9F4: .4byte SpriteCallbackDummy _080AE9F8: .4byte gSpriteAffineAnimTable_81E7C18 thumb_func_end unref_sub_80AE908 thumb_func_start sub_80AE9FC sub_80AE9FC: @ 80AE9FC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC mov r8, r1 adds r6, r2, 0 lsls r0, 16 lsrs r0, 16 bl sub_80B2778 mov r9, r0 mov r5, r9 lsls r0, r5, 3 ldr r1, _080AEACC adds r0, r1 ldr r1, _080AEAD0 lsls r2, r5, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _080AEAD4 ldr r4, [r4] str r4, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] bl sub_800D334 adds r0, r5, 0 mov r1, r8 adds r2, r6, 0 bl species_and_otid_get_pal movs r1, 0x90 lsls r1, 1 movs r2, 0x20 bl LoadCompressedPalette adds r0, r5, 0 movs r1, 0 bl gpu_pal_obj_decompress_and_apply ldr r4, _080AEAD8 movs r0, 0x2 adds r1, r5, 0 movs r2, 0 bl sub_8077E44 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 movs r1, 0x70 movs r3, 0x1E bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, _080AEADC mov r8, r0 lsls r0, r7, 4 adds r0, r7 lsls r6, r0, 2 mov r0, r8 adds r4, r6, r0 ldrb r1, [r4, 0x5] movs r0, 0xF ands r0, r1 movs r1, 0x20 orrs r0, r1 movs r1, 0xD negs r1, r1 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r4, 0x5] movs r0, 0x2 bl sub_8079E90 adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] mov r0, r8 adds r0, 0x1C adds r0, r6, r0 ldr r1, _080AEAE0 str r1, [r0] ldrb r0, [r4, 0x5] lsrs r0, 4 strh r0, [r4, 0x2E] strh r5, [r4, 0x32] adds r0, r5, 0 bl sub_80AEB1C lsls r0, 24 cmp r0, 0 beq _080AEAE8 mov r0, r8 adds r0, 0x10 adds r0, r6, r0 ldr r1, _080AEAE4 b _080AEAF0 .align 2, 0 _080AEACC: .4byte gMonBackPicTable _080AEAD0: .4byte gMonBackPicCoords _080AEAD4: .4byte gUnknown_081FAF4C _080AEAD8: .4byte 0x02024e8c _080AEADC: .4byte 0x02020004 _080AEAE0: .4byte SpriteCallbackDummy _080AEAE4: .4byte gSpriteAffineAnimTable_81E7C18 _080AEAE8: mov r0, r8 adds r0, 0x10 adds r0, r6, r0 ldr r1, _080AEB14 _080AEAF0: str r1, [r0] lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r1, _080AEB18 adds r0, r1 movs r1, 0 bl StartSpriteAffineAnim adds r0, r7, 0 add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080AEB14: .4byte gSpriteAffineAnimTable_81E7BEC _080AEB18: .4byte 0x02020004 thumb_func_end sub_80AE9FC thumb_func_start sub_80AEB1C sub_80AEB1C: @ 80AEB1C push {lr} lsls r0, 16 lsrs r0, 16 cmp r0, 0xC9 beq _080AEB2A movs r0, 0x1 b _080AEB2C _080AEB2A: movs r0, 0 _080AEB2C: pop {r1} bx r1 thumb_func_end sub_80AEB1C thumb_func_start sub_80AEB30 sub_80AEB30: @ 80AEB30 push {lr} ldr r0, _080AEB44 bl sub_80AEB4C ldr r0, _080AEB48 bl sub_80AEB4C pop {r0} bx r0 .align 2, 0 _080AEB44: .4byte 0x0600c000 _080AEB48: .4byte 0x0600e000 thumb_func_end sub_80AEB30 thumb_func_start sub_80AEB4C sub_80AEB4C: @ 80AEB4C movs r1, 0xA0 lsls r1, 3 adds r2, r0, r1 ldr r1, _080AEB60 str r0, [r1] str r2, [r1, 0x4] ldr r0, _080AEB64 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bx lr .align 2, 0 _080AEB60: .4byte 0x040000d4 _080AEB64: .4byte 0x80000140 thumb_func_end sub_80AEB4C thumb_func_start sub_80AEB68 sub_80AEB68: @ 80AEB68 push {lr} lsls r0, 16 lsls r1, 24 lsrs r3, r1, 24 ldr r2, _080AEB90 ldr r1, _080AEB94 lsrs r0, 13 adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0x8 bhi _080AEBD0 lsls r0, 2 ldr r1, _080AEB98 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080AEB90: .4byte gContestEffects _080AEB94: .4byte gContestMoves _080AEB98: .4byte _080AEB9C .align 2, 0 _080AEB9C: .4byte _080AEBC0 .4byte _080AEBC0 .4byte _080AEBC8 .4byte _080AEBC8 .4byte _080AEBD0 .4byte _080AEBD0 .4byte _080AEBD0 .4byte _080AEBD0 .4byte _080AEBC0 _080AEBC0: ldr r0, _080AEBC4 b _080AEBD2 .align 2, 0 _080AEBC4: .4byte 0x00009082 _080AEBC8: ldr r0, _080AEBCC b _080AEBD2 .align 2, 0 _080AEBCC: .4byte 0x00009088 _080AEBD0: ldr r0, _080AEBE8 _080AEBD2: lsls r1, r3, 12 movs r2, 0x90 lsls r2, 8 adds r1, r2 lsls r0, 16 asrs r0, 16 adds r0, r1 lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .align 2, 0 _080AEBE8: .4byte 0x00009086 thumb_func_end sub_80AEB68 thumb_func_start sub_80AEBEC sub_80AEBEC: @ 80AEBEC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 lsls r0, 16 lsrs r4, r0, 16 ldr r0, _080AEC74 movs r1, 0x10 str r1, [sp] movs r1, 0x22 str r1, [sp, 0x4] movs r1, 0 movs r2, 0xB movs r3, 0x1F bl FillWindowRect_DefaultPalette ldr r1, _080AEC78 lsls r0, r4, 3 adds r0, r1 ldrb r0, [r0, 0x1] lsls r0, 29 lsrs r0, 29 ldr r1, _080AEC7C cmp r0, 0 beq _080AEC34 adds r1, 0x5 cmp r0, 0x1 beq _080AEC34 adds r1, 0x5 cmp r0, 0x2 beq _080AEC34 adds r1, 0x40 cmp r0, 0x3 bne _080AEC34 subs r1, 0x20 _080AEC34: ldr r0, _080AEC74 mov r8, r0 ldr r6, _080AEC78 lsls r5, r4, 3 ldr r7, _080AEC80 ldr r0, _080AEC84 mov r9, r0 ldr r4, _080AEC88 ldr r3, _080AEC8C movs r2, 0x4 _080AEC48: strh r1, [r3] adds r0, r1, 0 adds r0, 0x10 strh r0, [r4] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 adds r4, 0x2 adds r3, 0x2 subs r2, 0x1 cmp r2, 0 bge _080AEC48 adds r0, r5, r6 ldrb r0, [r0] lsls r0, 2 adds r1, r0, r7 ldrb r0, [r1, 0x1] cmp r0, 0xFF bne _080AEC90 movs r0, 0 b _080AEC9C .align 2, 0 _080AEC74: .4byte 0x03004210 _080AEC78: .4byte gContestMoves _080AEC7C: .4byte 0x00004040 _080AEC80: .4byte gContestEffects _080AEC84: .4byte gUnknown_083CADD4 _080AEC88: .4byte 0x0600c816 _080AEC8C: .4byte 0x0600c7d6 _080AEC90: ldrb r0, [r1, 0x1] movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r0, 24 _080AEC9C: cmp r0, 0x8 bls _080AECA2 movs r0, 0x8 _080AECA2: movs r2, 0 ldr r1, _080AECB8 adds r4, r1, 0 adds r1, 0x23 adds r3, r1, 0 ldr r1, _080AECBC _080AECAE: cmp r2, r0 bge _080AECC0 strh r4, [r1] b _080AECC2 .align 2, 0 _080AECB8: .4byte 0x00005012 _080AECBC: .4byte 0x0600c7ea _080AECC0: strh r3, [r1] _080AECC2: adds r1, 0x2 adds r2, 0x1 cmp r2, 0x7 ble _080AECAE adds r0, r5, r6 ldrb r0, [r0] lsls r0, 2 adds r1, r0, r7 ldrb r0, [r1, 0x2] cmp r0, 0xFF bne _080AECDC movs r0, 0 b _080AECE8 _080AECDC: ldrb r0, [r1, 0x2] movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r0, 24 _080AECE8: cmp r0, 0x8 bls _080AECEE movs r0, 0x8 _080AECEE: movs r2, 0 ldr r1, _080AED04 adds r4, r1, 0 adds r1, 0x22 adds r3, r1, 0 ldr r1, _080AED08 _080AECFA: cmp r2, r0 bge _080AED0C strh r4, [r1] b _080AED0E .align 2, 0 _080AED04: .4byte 0x00005014 _080AED08: .4byte 0x0600c82a _080AED0C: strh r3, [r1] _080AED0E: adds r1, 0x2 adds r2, 0x1 cmp r2, 0x7 ble _080AECFA adds r0, r5, r6 ldrb r0, [r0] lsls r0, 2 add r0, r9 ldr r1, [r0] movs r2, 0xD9 lsls r2, 2 movs r0, 0x23 str r0, [sp] mov r0, r8 movs r3, 0xB bl sub_8003460 ldr r1, _080AED50 ldr r2, _080AED54 movs r0, 0x1F str r0, [sp] mov r0, r8 movs r3, 0x10 bl sub_8003460 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AED50: .4byte gUnknown_083CC5A2 _080AED54: .4byte 0x00000362 thumb_func_end sub_80AEBEC thumb_func_start sub_80AED58 sub_80AED58: @ 80AED58 push {lr} sub sp, 0x8 ldr r0, _080AED78 movs r1, 0x1C str r1, [sp] movs r1, 0x28 str r1, [sp, 0x4] movs r1, 0 movs r2, 0xB movs r3, 0x23 bl FillWindowRect_DefaultPalette add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080AED78: .4byte 0x03004210 thumb_func_end sub_80AED58 thumb_func_start sub_80AED7C sub_80AED7C: @ 80AED7C push {r4-r6,lr} lsls r0, 16 lsrs r6, r0, 16 lsls r1, 24 lsrs r4, r1, 24 ldr r0, _080AEDD8 adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 adds r0, 0x2 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 bl sub_80AF59C lsls r0, 24 cmp r0, 0 bne _080AEDEC cmp r6, 0 beq _080AEDEC adds r0, r6, 0 adds r1, r4, 0 bl sub_80AEB68 lsls r0, 16 lsrs r0, 16 lsls r3, r5, 6 ldr r1, _080AEDDC adds r1, r3, r1 strh r0, [r1] ldr r1, _080AEDE0 adds r1, r3, r1 adds r2, r0, 0x1 strh r2, [r1] ldr r1, _080AEDE4 adds r2, r3, r1 adds r1, r0, 0 adds r1, 0x10 strh r1, [r2] ldr r1, _080AEDE8 adds r3, r1 adds r0, 0x11 strh r0, [r3] b _080AEE08 .align 2, 0 _080AEDD8: .4byte 0x02038696 _080AEDDC: .4byte 0x0600c028 _080AEDE0: .4byte 0x0600c02a _080AEDE4: .4byte 0x0600c068 _080AEDE8: .4byte 0x0600c06a _080AEDEC: lsls r1, r5, 6 ldr r0, _080AEE10 adds r0, r1, r0 movs r2, 0 strh r2, [r0] ldr r0, _080AEE14 adds r0, r1, r0 strh r2, [r0] ldr r3, _080AEE18 adds r0, r1, r3 strh r2, [r0] ldr r0, _080AEE1C adds r1, r0 strh r2, [r1] _080AEE08: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080AEE10: .4byte 0x0600c028 _080AEE14: .4byte 0x0600c02a _080AEE18: .4byte 0x0600c068 _080AEE1C: .4byte 0x0600c06a thumb_func_end sub_80AED7C thumb_func_start unref_sub_80AEE20 unref_sub_80AEE20: @ 80AEE20 push {r4,lr} movs r4, 0 _080AEE24: lsls r0, r4, 3 subs r0, r4 lsls r0, 2 ldr r1, _080AEE48 adds r0, r1 ldrh r0, [r0, 0x6] adds r1, r4, 0 bl sub_80AED7C adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080AEE24 pop {r4} pop {r0} bx r0 .align 2, 0 _080AEE48: .4byte 0x02019260 thumb_func_end unref_sub_80AEE20 thumb_func_start sub_80AEE4C sub_80AEE4C: @ 80AEE4C ldr r0, _080AEE50 bx lr .align 2, 0 _080AEE50: .4byte 0x00002034 thumb_func_end sub_80AEE4C thumb_func_start sub_80AEE54 sub_80AEE54: @ 80AEE54 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r1, 24 str r1, [sp] lsls r5, r7, 3 subs r0, r5, r7 lsls r0, 2 ldr r1, _080AEE84 adds r0, r1 ldrb r0, [r0, 0x10] movs r2, 0x30 ands r2, r0 mov r10, r1 cmp r2, 0 bne _080AEE88 movs r0, 0 b _080AEF3C .align 2, 0 _080AEE84: .4byte 0x02019260 _080AEE88: ldr r0, _080AEEB0 adds r0, r7, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 adds r0, 0x2 lsls r0, 24 lsrs r0, 24 mov r9, r0 cmp r2, 0x10 bne _080AEEF0 adds r0, r7, 0 bl sub_80AEE4C lsls r0, 16 lsrs r0, 16 mov r8, r0 movs r4, 0 adds r6, r5, 0 b _080AEEC4 .align 2, 0 _080AEEB0: .4byte 0x02038696 _080AEEB4: mov r1, r9 adds r0, r1, r4 lsls r0, 6 ldr r1, _080AEEE8 adds r0, r1 mov r1, r8 strh r1, [r0] adds r4, 0x1 _080AEEC4: subs r0, r6, r7 lsls r0, 2 ldr r1, _080AEEEC adds r5, r0, r1 movs r0, 0xD ldrsb r0, [r5, r0] movs r1, 0xA bl __divsi3 lsls r0, 24 asrs r0, 24 cmp r0, r4 bgt _080AEEB4 ldr r0, [sp] cmp r0, 0 beq _080AEF3A movs r0, 0x5B b _080AEF2C .align 2, 0 _080AEEE8: .4byte 0x0600c026 _080AEEEC: .4byte 0x02019260 _080AEEF0: movs r1, 0 mov r8, r1 movs r4, 0x3 adds r6, r5, 0 b _080AEF0A _080AEEFA: mov r1, r9 adds r0, r1, r4 lsls r0, 6 ldr r1, _080AEF4C adds r0, r1 mov r1, r8 strh r1, [r0] subs r4, 0x1 _080AEF0A: subs r0, r6, r7 lsls r0, 2 mov r1, r10 adds r5, r0, r1 movs r0, 0xD ldrsb r0, [r5, r0] movs r1, 0xA bl __divsi3 lsls r0, 24 asrs r0, 24 cmp r0, r4 blt _080AEEFA ldr r0, [sp] cmp r0, 0 beq _080AEF3A movs r0, 0x26 _080AEF2C: bl audio_play ldrb r1, [r5, 0x10] movs r0, 0x31 negs r0, r0 ands r0, r1 strb r0, [r5, 0x10] _080AEF3A: movs r0, 0x1 _080AEF3C: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080AEF4C: .4byte 0x0600bfe6 thumb_func_end sub_80AEE54 thumb_func_start sub_80AEF50 sub_80AEF50: @ 80AEF50 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r5, 0 _080AEF5A: ldr r0, _080AEF80 adds r0, r5, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 adds r0, 0x2 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r0, r5, 24 lsrs r0, 24 bl sub_80AEE4C lsls r0, 16 lsrs r6, r0, 16 movs r4, 0 lsls r7, r5, 3 adds r2, r5, 0x1 b _080AEF92 .align 2, 0 _080AEF80: .4byte 0x02038696 _080AEF84: mov r1, r8 adds r0, r1, r4 lsls r0, 6 ldr r3, _080AEFE0 adds r0, r3 strh r6, [r0] adds r4, 0x1 _080AEF92: subs r0, r7, r5 lsls r0, 2 ldr r1, _080AEFE4 adds r0, r1 ldrb r0, [r0, 0xD] lsls r0, 24 asrs r0, 24 movs r1, 0xA str r2, [sp] bl __divsi3 lsls r0, 24 asrs r0, 24 ldr r2, [sp] cmp r4, r0 blt _080AEF84 movs r6, 0 cmp r4, 0x2 bgt _080AEFCE lsls r0, r4, 6 ldr r1, _080AEFE0 adds r0, r1 mov r3, r8 lsls r1, r3, 6 adds r0, r1 _080AEFC4: strh r6, [r0] adds r0, 0x40 adds r4, 0x1 cmp r4, 0x2 ble _080AEFC4 _080AEFCE: adds r5, r2, 0 cmp r5, 0x3 ble _080AEF5A add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AEFE0: .4byte 0x0600c026 _080AEFE4: .4byte 0x02019260 thumb_func_end sub_80AEF50 thumb_func_start sub_80AEFE8 sub_80AEFE8: @ 80AEFE8 push {lr} lsls r1, 24 lsrs r1, 24 movs r0, 0 cmp r1, 0x4 bhi _080AF02A lsls r0, r1, 2 ldr r1, _080AF000 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080AF000: .4byte _080AF004 .align 2, 0 _080AF004: .4byte _080AF018 .4byte _080AF01C .4byte _080AF020 .4byte _080AF024 .4byte _080AF028 _080AF018: movs r0, 0x80 b _080AF02A _080AF01C: movs r0, 0x84 b _080AF02A _080AF020: movs r0, 0x86 b _080AF02A _080AF024: movs r0, 0x88 b _080AF02A _080AF028: movs r0, 0x82 _080AF02A: movs r1, 0x90 lsls r1, 8 adds r0, r1 lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_80AEFE8 thumb_func_start sub_80AF038 sub_80AF038: @ 80AF038 push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 movs r5, 0x1 movs r4, 0 ldr r0, _080AF074 adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 adds r0, 0x2 lsls r0, 24 lsrs r6, r0, 24 lsls r0, r3, 3 subs r0, r3 lsls r0, 2 ldr r1, _080AF078 adds r2, r0, r1 ldr r0, [r2, 0x10] ldr r1, _080AF07C ands r0, r1 cmp r0, 0 bne _080AF06C ldrb r0, [r2, 0xF] cmp r0, 0 beq _080AF080 _080AF06C: adds r0, r3, 0 movs r1, 0 b _080AF0A6 .align 2, 0 _080AF074: .4byte 0x02038696 _080AF078: .4byte 0x02019260 _080AF07C: .4byte 0x00ff0003 _080AF080: ldrb r1, [r2, 0xC] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080AF090 adds r0, r3, 0 movs r1, 0x1 b _080AF0A6 _080AF090: movs r0, 0x6 ands r0, r1 cmp r0, 0 bne _080AF0A2 ldrb r1, [r2, 0xB] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080AF0B0 _080AF0A2: adds r0, r3, 0 movs r1, 0x2 _080AF0A6: bl sub_80AEFE8 lsls r0, 16 lsrs r4, r0, 16 b _080AF0B2 _080AF0B0: movs r5, 0 _080AF0B2: cmp r5, 0 beq _080AF0EC lsls r2, r6, 6 ldr r0, _080AF0DC adds r0, r2, r0 strh r4, [r0] ldr r0, _080AF0E0 adds r0, r2, r0 adds r1, r4, 0x1 strh r1, [r0] ldr r0, _080AF0E4 adds r1, r2, r0 adds r0, r4, 0 adds r0, 0x10 strh r0, [r1] ldr r0, _080AF0E8 adds r2, r0 adds r0, r4, 0 adds r0, 0x11 strh r0, [r2] b _080AF106 .align 2, 0 _080AF0DC: .4byte 0x0600c028 _080AF0E0: .4byte 0x0600c02a _080AF0E4: .4byte 0x0600c068 _080AF0E8: .4byte 0x0600c06a _080AF0EC: lsls r1, r6, 6 ldr r0, _080AF110 adds r0, r1, r0 strh r5, [r0] ldr r0, _080AF114 adds r0, r1, r0 strh r5, [r0] ldr r2, _080AF118 adds r0, r1, r2 strh r5, [r0] ldr r0, _080AF11C adds r1, r0 strh r5, [r1] _080AF106: adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080AF110: .4byte 0x0600c028 _080AF114: .4byte 0x0600c02a _080AF118: .4byte 0x0600c068 _080AF11C: .4byte 0x0600c06a thumb_func_end sub_80AF038 thumb_func_start sub_80AF120 sub_80AF120: @ 80AF120 push {r4,lr} movs r4, 0 _080AF124: lsls r0, r4, 24 lsrs r0, 24 bl sub_80AF038 adds r4, 0x1 cmp r4, 0x3 ble _080AF124 pop {r4} pop {r0} bx r0 thumb_func_end sub_80AF120 thumb_func_start sub_80AF138 sub_80AF138: @ 80AF138 push {lr} sub sp, 0x8 ldr r0, _080AF158 movs r1, 0x11 str r1, [sp] movs r1, 0x12 str r1, [sp, 0x4] movs r1, 0 movs r2, 0x1 movs r3, 0xF bl FillWindowRect_DefaultPalette add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080AF158: .4byte 0x03004210 thumb_func_end sub_80AF138 thumb_func_start sub_80AF15C sub_80AF15C: @ 80AF15C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 adds r0, r4, 0 bl sub_80AF59C lsls r0, 24 cmp r0, 0 beq _080AF174 movs r0, 0 b _080AF1AA _080AF174: ldr r0, _080AF190 ldrb r0, [r0] cmp r4, r0 beq _080AF198 adds r0, r4, 0 bl sub_81288F4 bl sub_8128944 lsls r0, 24 ldr r2, _080AF194 lsrs r0, 23 lsls r1, r4, 6 b _080AF1A2 .align 2, 0 _080AF190: .4byte 0x02038695 _080AF194: .4byte 0x02038570 _080AF198: ldr r2, _080AF1B0 ldr r0, _080AF1B4 ldrb r0, [r0] lsls r0, 1 lsls r1, r5, 6 _080AF1A2: adds r0, r1 adds r2, 0x1E adds r0, r2 ldrh r0, [r0] _080AF1AA: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080AF1B0: .4byte 0x02038570 _080AF1B4: .4byte 0x02019204 thumb_func_end sub_80AF15C thumb_func_start sub_80AF1B8 sub_80AF1B8: @ 80AF1B8 push {r4,lr} movs r4, 0 _080AF1BC: adds r0, r4, 0 bl sub_80AF15C lsls r1, r4, 3 subs r1, r4 lsls r1, 2 ldr r2, _080AF1E0 adds r1, r2 strh r0, [r1, 0x6] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080AF1BC pop {r4} pop {r0} bx r0 .align 2, 0 _080AF1E0: .4byte 0x02019260 thumb_func_end sub_80AF1B8 thumb_func_start sub_80AF1E4 sub_80AF1E4: @ 80AF1E4 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 cmp r1, 0 bne _080AF1FC adds r0, r5, 0 adds r0, 0xA lsls r0, 24 lsrs r3, r0, 24 b _080AF1FE _080AF1FC: movs r3, 0xE _080AF1FE: lsls r0, r5, 3 subs r0, r5 lsls r0, 2 ldr r1, _080AF21C adds r1, r0, r1 ldrh r0, [r1, 0x6] cmp r0, 0 bne _080AF228 ldr r0, _080AF220 ldr r1, _080AF224 adds r2, r3, 0 bl PutWindowTilemap b _080AF23A .align 2, 0 _080AF21C: .4byte 0x02019260 _080AF220: .4byte 0x020238cc _080AF224: .4byte gUnknown_083CC355 _080AF228: ldr r0, _080AF270 ldrh r2, [r1, 0x6] movs r1, 0xD muls r1, r2 ldr r2, _080AF274 adds r1, r2 adds r2, r3, 0 bl PutWindowTilemap _080AF23A: adds r0, r5, 0 bl sub_80AF2A0 ldr r0, _080AF278 ldr r1, _080AF270 lsls r2, r5, 2 adds r2, r5 lsls r2, 18 movs r3, 0xAE lsls r3, 18 adds r2, r3 lsrs r2, 16 ldr r4, _080AF27C lsls r5, 1 adds r3, r5, r4 ldrb r3, [r3] adds r4, 0x1 adds r5, r4 ldrb r4, [r5] str r4, [sp] bl sub_8003460 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AF270: .4byte 0x020238cc _080AF274: .4byte gMoveNames _080AF278: .4byte 0x03004210 _080AF27C: .4byte gUnknown_083CA318 thumb_func_end sub_80AF1E4 thumb_func_start unref_sub_80AF280 unref_sub_80AF280: @ 80AF280 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 _080AF288: adds r0, r4, 0 adds r1, r5, 0 bl sub_80AF1E4 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080AF288 pop {r4,r5} pop {r0} bx r0 thumb_func_end unref_sub_80AF280 thumb_func_start sub_80AF2A0 sub_80AF2A0: @ 80AF2A0 push {r4,lr} sub sp, 0x8 lsls r0, 24 ldr r4, _080AF2D8 ldr r1, _080AF2DC lsrs r0, 23 adds r2, r0, r1 ldrb r2, [r2] adds r1, 0x1 adds r0, r1 ldrb r3, [r0] adds r0, r2, 0x7 lsls r0, 24 lsrs r0, 24 str r0, [sp] adds r0, r3, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0 bl FillWindowRect_DefaultPalette add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080AF2D8: .4byte 0x03004210 _080AF2DC: .4byte gUnknown_083CA318 thumb_func_end sub_80AF2A0 thumb_func_start unref_sub_80AF2E0 unref_sub_80AF2E0: @ 80AF2E0 push {r4,lr} movs r4, 0 _080AF2E4: adds r0, r4, 0 bl sub_80AF2A0 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080AF2E4 pop {r4} pop {r0} bx r0 thumb_func_end unref_sub_80AF2E0 thumb_func_start sub_80AF2FC sub_80AF2FC: @ 80AF2FC push {r4-r7,lr} sub sp, 0x8 movs r4, 0 ldr r2, _080AF398 _080AF304: lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x2] ldrh r3, [r0, 0x4] adds r1, r3 strh r1, [r0, 0x4] lsls r0, r4, 1 add r0, sp strh r1, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080AF304 movs r4, 0 _080AF326: movs r2, 0x3 cmp r2, r4 bls _080AF354 _080AF32C: subs r5, r2, 0x1 lsls r0, r5, 1 mov r7, sp adds r3, r7, r0 lsls r0, r2, 1 adds r2, r7, r0 ldrh r6, [r3] movs r0, 0 ldrsh r1, [r3, r0] movs r7, 0 ldrsh r0, [r2, r7] cmp r1, r0 bge _080AF34C ldrh r0, [r2] strh r6, [r2] strh r0, [r3] _080AF34C: lsls r0, r5, 24 lsrs r2, r0, 24 cmp r2, r4 bhi _080AF32C _080AF354: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _080AF326 movs r4, 0 ldr r0, _080AF398 mov r12, r0 movs r7, 0x4 negs r7, r7 movs r6, 0x3 _080AF36A: movs r2, 0 lsls r0, r4, 3 adds r5, r4, 0x1 subs r0, r4 lsls r0, 2 mov r1, r12 adds r3, r0, r1 movs r4, 0x4 ldrsh r1, [r3, r4] _080AF37C: lsls r0, r2, 1 add r0, sp movs r4, 0 ldrsh r0, [r0, r4] cmp r1, r0 bne _080AF39C ands r2, r6 ldrb r1, [r3, 0xB] adds r0, r7, 0 ands r0, r1 orrs r0, r2 strb r0, [r3, 0xB] b _080AF3A6 .align 2, 0 _080AF398: .4byte 0x02019260 _080AF39C: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _080AF37C _080AF3A6: lsls r0, r5, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080AF36A movs r0, 0x1 bl sub_80B0F28 bl sub_80B159C add sp, 0x8 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80AF2FC thumb_func_start sub_80AF3C0 sub_80AF3C0: @ 80AF3C0 push {lr} ldr r2, _080AF3D0 adds r3, r2, 0 _080AF3C6: ldrh r0, [r2, 0x6] cmp r0, 0 bne _080AF3D4 movs r1, 0x5 b _080AF3F2 .align 2, 0 _080AF3D0: .4byte 0x02019260 _080AF3D4: movs r1, 0x2 ldrsh r0, [r2, r1] movs r1, 0 cmp r0, 0 ble _080AF3F2 movs r1, 0x1 cmp r0, 0x1D ble _080AF3F2 movs r1, 0x2 cmp r0, 0x3B ble _080AF3F2 movs r1, 0x4 cmp r0, 0x4F bgt _080AF3F2 movs r1, 0x3 _080AF3F2: strb r1, [r2, 0x1A] adds r2, 0x1C adds r0, r3, 0 adds r0, 0x54 cmp r2, r0 ble _080AF3C6 pop {r0} bx r0 thumb_func_end sub_80AF3C0 thumb_func_start sub_80AF404 sub_80AF404: @ 80AF404 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 ldr r0, _080AF42C adds r2, r1, r0 ldrb r1, [r2, 0xC] movs r0, 0x6 ands r0, r1 cmp r0, 0 bne _080AF428 ldrb r1, [r2, 0xB] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080AF430 _080AF428: movs r0, 0 b _080AF432 .align 2, 0 _080AF42C: .4byte 0x02019260 _080AF430: movs r0, 0x1 _080AF432: pop {r1} bx r1 thumb_func_end sub_80AF404 thumb_func_start sub_80AF438 sub_80AF438: @ 80AF438 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r5, 0 ldr r0, _080AF594 mov r10, r0 movs r1, 0 mov r12, r1 movs r0, 0x7 negs r0, r0 mov r9, r0 movs r1, 0x2 negs r1, r1 mov r8, r1 _080AF458: lsls r0, r5, 3 subs r0, r5 lsls r0, 2 mov r1, r10 adds r3, r0, r1 movs r0, 0 strh r0, [r3, 0x2] strh r0, [r3] mov r0, r12 strb r0, [r3, 0x12] ldrb r2, [r3, 0xC] movs r0, 0x6 ands r0, r2 cmp r0, 0 beq _080AF48A lsls r0, r2, 29 lsrs r0, 30 subs r0, 0x1 movs r1, 0x3 ands r0, r1 lsls r0, 1 mov r1, r9 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xC] _080AF48A: mov r1, r12 strb r1, [r3, 0xE] ldrb r0, [r3, 0x10] mov r1, r8 ands r1, r0 mov r0, r12 strb r0, [r3, 0xF] movs r0, 0x3 negs r0, r0 ands r1, r0 movs r6, 0x5 negs r6, r6 ands r1, r6 movs r7, 0x9 negs r7, r7 ands r1, r7 ldrb r0, [r3, 0xC] mov r4, r8 ands r4, r0 strb r4, [r3, 0xC] movs r0, 0xFF strb r0, [r3, 0x13] movs r0, 0x1 negs r0, r0 strb r0, [r3, 0x14] subs r0, 0x30 ands r1, r0 strb r1, [r3, 0x10] ldrb r2, [r3, 0x15] lsls r1, r2, 31 lsrs r1, 31 lsls r1, 2 adds r0, r6, 0 ands r0, r2 orrs r0, r1 mov r1, r8 ands r0, r1 strb r0, [r3, 0x15] ldrb r0, [r3, 0x11] movs r2, 0x4 negs r2, r2 ands r2, r0 movs r0, 0x21 negs r0, r0 ands r2, r0 strb r2, [r3, 0x11] movs r0, 0x4 ands r0, r2 cmp r0, 0 beq _080AF500 adds r0, r4, 0 mov r1, r9 ands r0, r1 movs r1, 0x2 orrs r0, r1 strb r0, [r3, 0xC] adds r0, r2, 0 ands r0, r6 strb r0, [r3, 0x11] _080AF500: ldrb r2, [r3, 0x11] movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _080AF518 ldrb r0, [r3, 0xB] movs r1, 0x80 orrs r0, r1 strb r0, [r3, 0xB] adds r0, r7, 0 ands r0, r2 strb r0, [r3, 0x11] _080AF518: ldrb r0, [r3, 0x11] movs r1, 0x11 negs r1, r1 ands r1, r0 strb r1, [r3, 0x11] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _080AF458 movs r5, 0 mov r6, r10 mov r9, r5 adds r7, r6, 0 subs r7, 0x5C movs r0, 0x18 negs r0, r0 adds r0, r6 mov r8, r0 _080AF53E: lsls r4, r5, 3 subs r4, r5 lsls r4, 2 adds r4, r6 ldrh r2, [r4, 0x6] strh r2, [r4, 0x8] lsls r1, r5, 1 ldrb r0, [r7, 0x1] lsls r0, 3 adds r1, r0 adds r0, r6, 0 subs r0, 0x40 adds r0, r1 strh r2, [r0] ldrh r0, [r4, 0x6] bl sub_80B19FC ldrb r1, [r7, 0x1] lsls r1, 2 adds r1, r5, r1 add r1, r8 strb r0, [r1] mov r1, r9 strh r1, [r4, 0x6] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _080AF53E ldr r2, _080AF598 ldrb r1, [r2, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2, 0x1] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AF594: .4byte 0x02019260 _080AF598: .4byte 0x02019328 thumb_func_end sub_80AF438 thumb_func_start sub_80AF59C sub_80AF59C: @ 80AF59C push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 ldr r0, _080AF5C4 adds r2, r1, r0 ldrb r1, [r2, 0xC] movs r0, 0x6 ands r0, r1 cmp r0, 0 bne _080AF5C0 ldrb r1, [r2, 0xB] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080AF5C8 _080AF5C0: movs r0, 0x1 b _080AF5CA .align 2, 0 _080AF5C4: .4byte 0x02019260 _080AF5C8: movs r0, 0 _080AF5CA: pop {r1} bx r1 thumb_func_end sub_80AF59C thumb_func_start unref_sub_80AF5D0 unref_sub_80AF5D0: @ 80AF5D0 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r3, r1, 24 ldr r1, _080AF5E8 ldrb r1, [r1] cmp r0, r1 beq _080AF600 _080AF5E2: movs r0, 0x1 b _080AF626 .align 2, 0 _080AF5E8: .4byte 0x02038695 _080AF5EC: ldrb r0, [r4, 0x6] movs r1, 0x1 b _080AF5F6 _080AF5F2: ldrb r0, [r4, 0x6] movs r1, 0x2 _080AF5F6: orrs r0, r1 strb r0, [r4, 0x6] b _080AF5E2 _080AF5FC: strb r3, [r2] b _080AF5E2 _080AF600: movs r0, 0 ldr r4, _080AF62C adds r5, r4, 0x2 _080AF606: cmp r3, 0x3 beq _080AF5EC cmp r3, 0x4 beq _080AF5F2 adds r2, r0, r5 ldrb r1, [r2] cmp r1, r3 beq _080AF5E2 cmp r1, 0xFF beq _080AF5FC adds r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _080AF606 movs r0, 0 _080AF626: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080AF62C: .4byte 0x02019204 thumb_func_end unref_sub_80AF5D0 thumb_func_start sub_80AF630 sub_80AF630: @ 80AF630 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_80AF688 ldr r1, _080AF65C lsls r4, 1 adds r1, r4, r1 strh r0, [r1] ldr r2, _080AF660 adds r2, r4, r2 ldr r1, _080AF664 adds r4, r1 ldrh r4, [r4] adds r0, r4 strh r0, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _080AF65C: .4byte 0x02038688 _080AF660: .4byte 0x02038678 _080AF664: .4byte 0x02038670 thumb_func_end sub_80AF630 thumb_func_start sub_80AF668 sub_80AF668: @ 80AF668 push {r4,lr} movs r4, 0 _080AF66C: adds r0, r4, 0 bl sub_80AF630 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080AF66C bl sub_80AF6A0 pop {r4} pop {r0} bx r0 thumb_func_end sub_80AF668 thumb_func_start sub_80AF688 sub_80AF688: @ 80AF688 lsls r0, 24 ldr r1, _080AF69C lsrs r0, 23 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] lsls r0, 17 asrs r0, 16 bx lr .align 2, 0 _080AF69C: .4byte 0x02038680 thumb_func_end sub_80AF688 thumb_func_start sub_80AF6A0 sub_80AF6A0: @ 80AF6A0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x70 mov r0, sp movs r1, 0 movs r2, 0x8 bl memset movs r0, 0 mov r9, r0 mov r1, sp adds r1, 0x8 str r1, [sp, 0x64] mov r3, sp adds r3, 0xC str r3, [sp, 0x68] mov r6, sp adds r6, 0x14 str r6, [sp, 0x6C] mov r4, sp _080AF6CE: bl Random strh r0, [r4] movs r2, 0 cmp r2, r9 bge _080AF70C mov r1, sp lsls r0, 16 lsrs r0, 16 ldrh r1, [r1] cmp r0, r1 bne _080AF6F0 subs r4, 0x2 movs r7, 0x1 negs r7, r7 add r9, r7 b _080AF70C _080AF6F0: adds r2, 0x1 cmp r2, r9 bge _080AF70C lsls r0, r2, 1 mov r3, sp adds r1, r3, r0 ldrh r0, [r4] ldrh r1, [r1] cmp r0, r1 bne _080AF6F0 subs r4, 0x2 movs r6, 0x1 negs r6, r6 add r9, r6 _080AF70C: adds r4, 0x2 movs r7, 0x1 add r9, r7 mov r0, r9 cmp r0, 0x3 ble _080AF6CE movs r1, 0 mov r9, r1 mov r4, sp ldr r6, _080AF81C ldr r2, [sp, 0x64] ldr r5, _080AF820 ldr r3, [sp, 0x68] _080AF726: mov r7, r9 lsls r1, r7, 4 movs r7, 0 ldrsh r0, [r6, r7] str r0, [r2] movs r7, 0 ldrsh r0, [r5, r7] str r0, [r3] ldrh r0, [r4] str r0, [r2, 0x8] ldr r0, [sp, 0x6C] adds r1, r0, r1 mov r7, r9 str r7, [r1] adds r4, 0x2 adds r6, 0x2 adds r2, 0x10 adds r5, 0x2 adds r3, 0x10 movs r0, 0x1 add r9, r0 mov r1, r9 cmp r1, 0x3 ble _080AF726 movs r3, 0 mov r9, r3 _080AF75A: movs r4, 0x3 cmp r4, r9 ble _080AF7E4 add r7, sp, 0x48 ldr r6, [sp, 0x68] str r6, [sp, 0x58] ldr r0, [sp, 0x64] adds r0, 0x8 str r0, [sp, 0x5C] ldr r1, [sp, 0x6C] str r1, [sp, 0x60] _080AF770: subs r3, r4, 0x1 mov r10, r3 mov r0, r10 adds r1, r4, 0 ldr r2, [sp, 0x64] bl sub_80AF828 lsls r0, 24 cmp r0, 0 beq _080AF7DE mov r6, r10 lsls r2, r6, 4 ldr r0, [sp, 0x64] adds r3, r0, r2 ldr r0, [r3] str r0, [sp, 0x48] ldr r1, [sp, 0x58] adds r6, r1, r2 ldr r0, [r6] str r0, [r7, 0x4] ldr r0, [sp, 0x5C] adds r0, r2 mov r8, r0 ldr r0, [r0] str r0, [r7, 0x8] ldr r1, [sp, 0x60] adds r2, r1, r2 ldr r0, [r2] str r0, [r7, 0xC] lsls r1, r4, 4 ldr r0, [sp, 0x64] adds r5, r0, r1 ldr r0, [r5] str r0, [r3] ldr r3, [sp, 0x58] adds r4, r3, r1 ldr r0, [r4] str r0, [r6] ldr r6, [sp, 0x5C] adds r3, r6, r1 ldr r0, [r3] mov r6, r8 str r0, [r6] ldr r0, [sp, 0x60] adds r1, r0, r1 ldr r0, [r1] str r0, [r2] ldr r0, [sp, 0x48] str r0, [r5] ldr r0, [r7, 0x4] str r0, [r4] ldr r0, [r7, 0x8] str r0, [r3] ldr r0, [r7, 0xC] str r0, [r1] _080AF7DE: mov r4, r10 cmp r4, r9 bgt _080AF770 _080AF7E4: movs r1, 0x1 add r9, r1 mov r3, r9 cmp r3, 0x2 ble _080AF75A movs r6, 0 mov r9, r6 ldr r2, _080AF824 ldr r1, [sp, 0x6C] _080AF7F6: ldr r0, [r1] adds r0, r2 mov r7, r9 strb r7, [r0] adds r1, 0x10 movs r0, 0x1 add r9, r0 mov r3, r9 cmp r3, 0x3 ble _080AF7F6 add sp, 0x70 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AF81C: .4byte 0x02038678 _080AF820: .4byte 0x02038670 _080AF824: .4byte 0x02038690 thumb_func_end sub_80AF6A0 thumb_func_start sub_80AF828 sub_80AF828: @ 80AF828 push {lr} lsls r0, 4 adds r0, r2 lsls r1, 4 adds r3, r1, r2 ldr r2, [r0] ldr r1, [r3] cmp r2, r1 blt _080AF858 cmp r2, r1 bgt _080AF84A ldr r2, [r0, 0x4] ldr r1, [r3, 0x4] cmp r2, r1 blt _080AF858 cmp r2, r1 ble _080AF84E _080AF84A: movs r2, 0 b _080AF85A _080AF84E: ldr r1, [r0, 0x8] ldr r0, [r3, 0x8] movs r2, 0 cmp r1, r0 bge _080AF85A _080AF858: movs r2, 0x1 _080AF85A: adds r0, r2, 0 pop {r1} bx r1 thumb_func_end sub_80AF828 thumb_func_start sub_80AF860 sub_80AF860: @ 80AF860 push {lr} sub sp, 0x4 ldr r0, _080AF88C movs r1, 0 strh r1, [r0] ldr r0, _080AF890 strh r1, [r0] bl sub_80AF138 ldr r0, _080AF894 ldr r1, _080AF898 movs r2, 0xC2 lsls r2, 2 movs r3, 0xF str r3, [sp] movs r3, 0x1 bl sub_8003460 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080AF88C: .4byte 0x030042a0 _080AF890: .4byte 0x03004280 _080AF894: .4byte 0x0202e908 _080AF898: .4byte gUnknown_083CC361 thumb_func_end sub_80AF860 thumb_func_start unref_sub_80AF89C unref_sub_80AF89C: @ 80AF89C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r4, r0, 0 adds r6, r1, 0 mov r8, r2 lsls r4, 16 lsrs r4, 16 lsls r6, 16 lsrs r6, 16 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r3, 24 lsrs r3, 24 mov r9, r3 lsls r2, r3, 2 ldr r0, _080AF940 adds r2, r0 ldrb r0, [r2, 0x2] movs r1, 0x4 orrs r0, r1 strb r0, [r2, 0x2] ldr r0, _080AF944 movs r1, 0x14 bl CreateTask lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 lsls r4, 16 asrs r4, 16 adds r0, r4, 0 bl sub_80AFB74 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r6, 16 asrs r6, 16 adds r4, r6 lsls r4, 16 asrs r4, 16 adds r0, r4, 0 bl sub_80AFB74 adds r4, r0, 0 subs r4, r5 lsls r4, 24 lsrs r4, 24 mov r0, r9 bl sub_80AFB40 lsls r0, 16 lsrs r0, 16 ldr r2, _080AF948 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r2 strh r5, [r1, 0x8] lsls r4, 24 asrs r4, 24 strh r4, [r1, 0xA] add r0, r8 strh r0, [r1, 0xC] mov r0, r9 strh r0, [r1, 0xE] cmp r6, 0 bge _080AF932 mov r0, r9 bl nullsub_19 _080AF932: adds r0, r7, 0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080AF940: .4byte 0x02019338 _080AF944: .4byte sub_80AF94C _080AF948: .4byte 0x03004b20 thumb_func_end unref_sub_80AF89C thumb_func_start sub_80AF94C sub_80AF94C: @ 80AF94C push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080AF988 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 ldrb r5, [r2, 0xE] ldrh r3, [r2, 0xA] movs r0, 0xA ldrsh r1, [r2, r0] cmp r1, 0 bne _080AF990 adds r0, r5, 0 bl nullsub_19 adds r0, r4, 0 bl DestroyTask lsls r1, r5, 2 ldr r0, _080AF98C adds r1, r0 ldrb r2, [r1, 0x2] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1, 0x2] b _080AFA56 .align 2, 0 _080AF988: .4byte 0x03004b20 _080AF98C: .4byte 0x02019338 _080AF990: ldrh r0, [r2, 0x1C] adds r0, 0x1 strh r0, [r2, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x1D ble _080AFA56 movs r0, 0 strh r0, [r2, 0x1C] cmp r1, 0 bge _080AF9BC ldrh r0, [r2, 0x8] subs r1, r0, 0x1 strh r1, [r2, 0x8] lsls r0, 24 lsrs r6, r0, 24 adds r0, r3, 0x1 strh r0, [r2, 0xA] movs r0, 0x16 bl audio_play b _080AF9D0 _080AF9BC: ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] lsls r0, 24 lsrs r6, r0, 24 subs r0, r3, 0x1 strh r0, [r2, 0xA] movs r0, 0x15 bl audio_play _080AF9D0: ldr r3, _080AFA00 lsls r0, r4, 2 adds r0, r4 lsls r2, r0, 3 adds r0, r2, r3 ldrh r1, [r0, 0xC] ldr r0, _080AFA04 cmp r1, r0 beq _080AFA38 adds r0, r3, r2 adds r0, 0xC lsls r1, r5, 2 adds r1, r5 lsls r1, 5 adds r1, 0x93 adds r1, r6, r1 lsls r1, 1 ldr r2, _080AFA08 adds r1, r2 movs r2, 0x2 bl RequestSpriteCopy b _080AFA56 .align 2, 0 _080AFA00: .4byte 0x03004b20 _080AFA04: .4byte 0x0000ffff _080AFA08: .4byte 0x0600c000 _080AFA0C: adds r0, r2, r3 lsls r1, 1 adds r1, 0xE adds r0, r1 lsls r1, r5, 2 adds r1, r5 lsls r1, 5 adds r1, 0x93 adds r1, r6, r1 lsls r1, 1 ldr r7, _080AFA34 adds r1, r7 movs r2, 0x2 bl RequestSpriteCopy ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080AFA56 .align 2, 0 _080AFA34: .4byte 0x0600c000 _080AFA38: movs r1, 0 adds r3, 0x8 _080AFA3C: adds r0, r1, 0x4 lsls r0, 1 adds r0, r2 adds r4, r0, r3 movs r7, 0 ldrsh r0, [r4, r7] cmp r0, 0 blt _080AFA0C adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x2 bls _080AFA3C _080AFA56: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80AF94C thumb_func_start sub_80AFA5C sub_80AFA5C: @ 80AFA5C push {r4-r7,lr} sub sp, 0x4 movs r3, 0 ldr r0, _080AFAAC mov r12, r0 mov r4, sp movs r6, 0 ldr r2, _080AFAB0 ldr r5, _080AFAB4 _080AFA6E: lsls r1, r3, 2 adds r1, r3 lsls r1, 5 adds r0, r1, 0 adds r0, 0x56 lsls r0, 1 add r0, r12 strh r6, [r4] mov r7, sp str r7, [r2] str r0, [r2, 0x4] str r5, [r2, 0x8] ldr r0, [r2, 0x8] adds r1, 0x76 lsls r1, 1 add r1, r12 strh r6, [r4] str r7, [r2] str r1, [r2, 0x4] str r5, [r2, 0x8] ldr r0, [r2, 0x8] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _080AFA6E add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AFAAC: .4byte 0x0600c000 _080AFAB0: .4byte 0x040000d4 _080AFAB4: .4byte 0x81000008 thumb_func_end sub_80AFA5C thumb_func_start unref_sub_80AFAB8 unref_sub_80AFAB8: @ 80AFAB8 push {r4-r6,lr} sub sp, 0x14 lsls r1, 24 lsrs r4, r1, 24 lsls r0, 16 asrs r0, 16 bl sub_80AFB74 lsls r0, 24 lsrs r5, r0, 24 ldr r2, _080AFAF4 cmp r4, 0 beq _080AFAE0 ldr r2, _080AFAF8 cmp r4, 0x1 beq _080AFAE0 ldr r2, _080AFAFC cmp r4, 0x2 bne _080AFAE0 ldr r2, _080AFB00 _080AFAE0: movs r1, 0 lsls r3, r4, 2 movs r6, 0 _080AFAE6: cmp r1, r5 bcs _080AFB04 lsls r0, r1, 1 add r0, sp strh r2, [r0] b _080AFB0A .align 2, 0 _080AFAF4: .4byte 0x000050a2 _080AFAF8: .4byte 0x000060a2 _080AFAFC: .4byte 0x000080a2 _080AFB00: .4byte 0x000070a2 _080AFB04: lsls r0, r1, 1 add r0, sp strh r6, [r0] _080AFB0A: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x8 bls _080AFAE6 adds r0, r3, r4 lsls r0, 6 ldr r1, _080AFB34 adds r0, r1 ldr r1, _080AFB38 mov r2, sp str r2, [r1] str r0, [r1, 0x4] ldr r0, _080AFB3C str r0, [r1, 0x8] ldr r0, [r1, 0x8] add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080AFB34: .4byte 0x0600c128 _080AFB38: .4byte 0x040000d4 _080AFB3C: .4byte 0x80000009 thumb_func_end unref_sub_80AFAB8 thumb_func_start sub_80AFB40 sub_80AFB40: @ 80AFB40 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080AFB64 cmp r0, 0 beq _080AFB5A ldr r1, _080AFB68 cmp r0, 0x1 beq _080AFB5A ldr r1, _080AFB6C cmp r0, 0x2 bne _080AFB5A ldr r1, _080AFB70 _080AFB5A: adds r0, r1, 0x1 lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .align 2, 0 _080AFB64: .4byte 0x00005011 _080AFB68: .4byte 0x00006011 _080AFB6C: .4byte 0x00008011 _080AFB70: .4byte 0x00007011 thumb_func_end sub_80AFB40 thumb_func_start sub_80AFB74 sub_80AFB74: @ 80AFB74 push {lr} lsls r0, 16 asrs r0, 16 movs r1, 0xA bl __divsi3 lsls r0, 24 lsrs r1, r0, 24 asrs r2, r0, 24 cmp r2, 0x10 ble _080AFB8E movs r1, 0x10 b _080AFB98 _080AFB8E: movs r0, 0x10 negs r0, r0 cmp r2, r0 bge _080AFB98 movs r1, 0xF0 _080AFB98: lsls r0, r1, 24 asrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80AFB74 thumb_func_start sub_80AFBA0 sub_80AFBA0: @ 80AFBA0 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 lsls r1, 16 lsrs r1, 16 mov r8, r1 lsls r2, 24 lsrs r7, r2, 24 lsls r2, r7, 2 ldr r0, _080AFC30 adds r2, r0 ldrb r0, [r2, 0x2] movs r1, 0x4 orrs r0, r1 strb r0, [r2, 0x2] ldr r0, _080AFC34 movs r1, 0x14 bl CreateTask lsls r0, 24 lsrs r6, r0, 24 lsls r5, 16 asrs r5, 16 adds r0, r5, 0 bl sub_80AFB74 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 mov r1, r8 lsls r0, r1, 16 asrs r0, 16 adds r5, r0 lsls r5, 16 asrs r5, 16 adds r0, r5, 0 bl sub_80AFB74 lsls r4, 24 asrs r4, 24 subs r0, r4 lsls r0, 24 lsrs r5, r0, 24 adds r0, r7, 0 bl sub_80AFB40 ldr r2, _080AFC38 lsls r3, r6, 2 adds r0, r3, r6 lsls r0, 3 adds r1, r0, r2 adds r0, r4, 0 cmp r4, 0 bge _080AFC14 negs r0, r4 _080AFC14: strh r0, [r1, 0x8] lsls r0, r5, 24 asrs r0, 24 strh r0, [r1, 0xA] cmp r4, 0 bgt _080AFC28 cmp r4, 0 bne _080AFC3C cmp r0, 0 ble _080AFC3C _080AFC28: movs r0, 0x1 strh r0, [r1, 0xC] b _080AFC4A .align 2, 0 _080AFC30: .4byte 0x02019338 _080AFC34: .4byte sub_80AFC74 _080AFC38: .4byte 0x03004b20 _080AFC3C: ldr r2, _080AFC6C lsls r3, r6, 2 adds r0, r3, r6 lsls r0, 3 adds r0, r2 ldr r1, _080AFC70 strh r1, [r0, 0xC] _080AFC4A: adds r0, r3, r6 lsls r0, 3 adds r0, r2 strh r7, [r0, 0xE] mov r1, r8 lsls r0, r1, 16 cmp r0, 0 bge _080AFC60 adds r0, r7, 0 bl nullsub_19 _080AFC60: adds r0, r6, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080AFC6C: .4byte 0x03004b20 _080AFC70: .4byte 0x0000ffff thumb_func_end sub_80AFBA0 thumb_func_start sub_80AFC74 sub_80AFC74: @ 80AFC74 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, _080AFCD4 lsls r0, 2 add r0, r8 lsls r0, 3 adds r4, r0, r1 ldrb r7, [r4, 0xE] ldrh r3, [r4, 0x8] ldrh r1, [r4, 0xA] ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0xE bgt _080AFCA6 b _080AFE1C _080AFCA6: movs r0, 0 strh r0, [r4, 0x1C] ldrh r2, [r4, 0xA] movs r5, 0xA ldrsh r0, [r4, r5] cmp r0, 0 bne _080AFCDC adds r0, r7, 0 bl nullsub_19 mov r0, r8 bl DestroyTask lsls r1, r7, 2 ldr r0, _080AFCD8 adds r1, r0 ldrb r2, [r1, 0x2] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1, 0x2] b _080AFE1C .align 2, 0 _080AFCD4: .4byte 0x03004b20 _080AFCD8: .4byte 0x02019338 _080AFCDC: cmp r3, 0 bne _080AFD28 lsls r0, r1, 16 mov r9, r0 cmp r0, 0 bge _080AFCFA adds r0, r7, 0 bl sub_80AFB40 adds r0, 0x2 lsls r0, 16 lsrs r6, r0, 16 ldrh r0, [r4, 0xA] adds r0, 0x1 b _080AFD08 _080AFCFA: adds r0, r7, 0 bl sub_80AFB40 lsls r0, 16 lsrs r6, r0, 16 ldrh r0, [r4, 0xA] subs r0, 0x1 _080AFD08: strh r0, [r4, 0xA] ldr r1, _080AFD24 mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x8] adds r2, r1, 0x1 strh r2, [r0, 0x8] lsls r1, 24 lsrs r5, r1, 24 b _080AFD94 .align 2, 0 _080AFD24: .4byte 0x03004b20 _080AFD28: movs r3, 0xC ldrsh r0, [r4, r3] cmp r0, 0 bge _080AFD62 lsls r0, r1, 16 mov r9, r0 cmp r0, 0 bge _080AFD50 ldrh r0, [r4, 0x8] adds r1, r0, 0x1 strh r1, [r4, 0x8] lsls r0, 24 lsrs r5, r0, 24 adds r0, r2, 0x1 strh r0, [r4, 0xA] adds r0, r7, 0 bl sub_80AFB40 adds r0, 0x2 b _080AFD90 _080AFD50: ldrh r0, [r4, 0x8] subs r0, 0x1 strh r0, [r4, 0x8] lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 subs r0, r2, 0x1 strh r0, [r4, 0xA] b _080AFD94 _080AFD62: lsls r0, r1, 16 mov r9, r0 cmp r0, 0 bge _080AFD7C ldrh r0, [r4, 0x8] subs r0, 0x1 strh r0, [r4, 0x8] lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 adds r0, r2, 0x1 strh r0, [r4, 0xA] b _080AFD94 _080AFD7C: ldrh r0, [r4, 0x8] adds r1, r0, 0x1 strh r1, [r4, 0x8] lsls r0, 24 lsrs r5, r0, 24 subs r0, r2, 0x1 strh r0, [r4, 0xA] adds r0, r7, 0 bl sub_80AFB40 _080AFD90: lsls r0, 16 lsrs r6, r0, 16 _080AFD94: mov r10, r5 cmp r5, 0x7 bls _080AFDA2 adds r0, r5, 0 adds r0, 0x18 lsls r0, 24 lsrs r5, r0, 24 _080AFDA2: mov r0, sp strh r6, [r0] ldr r0, _080AFDE8 adds r0, r7, r0 ldrb r0, [r0] lsls r1, r0, 2 adds r1, r0 lsls r1, 5 adds r1, 0x56 adds r1, r5, r1 lsls r1, 1 ldr r0, _080AFDEC adds r1, r0 ldr r2, _080AFDF0 mov r0, sp bl CpuSet mov r2, r9 cmp r2, 0 ble _080AFDFC movs r0, 0x60 bl audio_play ldr r4, _080AFDF4 adds r0, r4, 0 bl m4aMPlayImmInit ldr r1, _080AFDF8 mov r3, r10 lsls r2, r3, 24 asrs r2, 16 adds r0, r4, 0 bl m4aMPlayPitchControl b _080AFE02 .align 2, 0 _080AFDE8: .4byte 0x02038696 _080AFDEC: .4byte 0x0600c000 _080AFDF0: .4byte 0x01000001 _080AFDF4: .4byte 0x030073c0 _080AFDF8: .4byte 0x0000ffff _080AFDFC: movs r0, 0x16 bl audio_play _080AFE02: cmp r5, 0 bne _080AFE1C cmp r6, 0 bne _080AFE1C ldr r0, _080AFE2C mov r5, r8 lsls r1, r5, 2 add r1, r8 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xC] negs r0, r0 strh r0, [r1, 0xC] _080AFE1C: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AFE2C: .4byte 0x03004b20 thumb_func_end sub_80AFC74 thumb_func_start sub_80AFE30 sub_80AFE30: @ 80AFE30 push {r4,r5,lr} ldr r0, _080AFE64 bl LoadSpriteSheet movs r4, 0 ldr r5, _080AFE68 _080AFE3C: ldr r0, _080AFE6C adds r0, r4, r0 ldrb r0, [r0] adds r0, r5 ldrb r2, [r0] ldr r0, _080AFE70 movs r1, 0xB4 movs r3, 0x1 bl CreateSprite lsls r1, r4, 2 ldr r2, _080AFE74 adds r1, r2 strb r0, [r1] adds r4, 0x1 cmp r4, 0x3 ble _080AFE3C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080AFE64: .4byte gUnknown_083CA350 _080AFE68: .4byte gUnknown_083CA338 _080AFE6C: .4byte 0x02038696 _080AFE70: .4byte gSpriteTemplate_83CA3AC _080AFE74: .4byte 0x02019338 thumb_func_end sub_80AFE30 thumb_func_start sub_80AFE78 sub_80AFE78: @ 80AFE78 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r2, r6, 2 ldr r3, _080AFEB0 adds r2, r3 ldrb r0, [r2, 0x2] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x2] ldrb r7, [r2] lsls r0, r6, 3 subs r0, r6 lsls r0, 2 subs r3, 0xD8 adds r0, r3 movs r1, 0x4 ldrsh r0, [r0, r1] movs r1, 0xA bl __divsi3 lsls r0, 17 lsrs r5, r0, 16 asrs r0, 16 cmp r0, 0x38 ble _080AFEB4 movs r5, 0x38 b _080AFEBA .align 2, 0 _080AFEB0: .4byte 0x02019338 _080AFEB4: cmp r0, 0 bge _080AFEBA movs r5, 0 _080AFEBA: ldr r2, _080AFEEC lsls r3, r7, 4 adds r0, r3, r7 lsls r0, 2 adds r4, r0, r2 movs r0, 0x3E adds r0, r4 mov r12, r0 ldrb r1, [r0] movs r0, 0x5 negs r0, r0 ands r0, r1 mov r1, r12 strb r0, [r1] strh r6, [r4, 0x2E] strh r5, [r4, 0x30] lsls r0, r5, 16 asrs r0, 16 movs r5, 0x24 ldrsh r1, [r4, r5] cmp r0, r1 ble _080AFEF0 movs r0, 0x1 b _080AFEF2 .align 2, 0 _080AFEEC: .4byte 0x02020004 _080AFEF0: ldr r0, _080AFF08 _080AFEF2: strh r0, [r4, 0x32] adds r0, r3, r7 lsls r0, 2 adds r1, r2, 0 adds r1, 0x1C adds r0, r1 ldr r1, _080AFF0C str r1, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080AFF08: .4byte 0x0000ffff _080AFF0C: .4byte sub_80AFF60 thumb_func_end sub_80AFE78 thumb_func_start sub_80AFF10 sub_80AFF10: @ 80AFF10 push {r4,lr} movs r4, 0 _080AFF14: lsls r0, r4, 24 lsrs r0, 24 bl sub_80AFE78 adds r4, 0x1 cmp r4, 0x3 ble _080AFF14 pop {r4} pop {r0} bx r0 thumb_func_end sub_80AFF10 thumb_func_start sub_80AFF28 sub_80AFF28: @ 80AFF28 push {r4,lr} movs r3, 0 ldr r2, _080AFF54 ldrb r1, [r2, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080AFF4C movs r4, 0x1 _080AFF3A: adds r2, 0x4 adds r3, 0x1 cmp r3, 0x3 bgt _080AFF4C ldrb r1, [r2, 0x2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _080AFF3A _080AFF4C: cmp r3, 0x4 beq _080AFF58 movs r0, 0 b _080AFF5A .align 2, 0 _080AFF54: .4byte 0x02019338 _080AFF58: movs r0, 0x1 _080AFF5A: pop {r4} pop {r1} bx r1 thumb_func_end sub_80AFF28 thumb_func_start sub_80AFF60 sub_80AFF60: @ 80AFF60 push {r4,lr} adds r3, r0, 0 ldrh r2, [r3, 0x24] movs r0, 0x24 ldrsh r1, [r3, r0] movs r4, 0x30 ldrsh r0, [r3, r4] cmp r1, r0 bne _080AFF94 movs r0, 0x2E ldrsh r1, [r3, r0] lsls r1, 2 ldr r0, _080AFF8C adds r1, r0 ldrb r2, [r1, 0x2] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x2] ldr r0, _080AFF90 str r0, [r3, 0x1C] b _080AFF9A .align 2, 0 _080AFF8C: .4byte 0x02019338 _080AFF90: .4byte SpriteCallbackDummy _080AFF94: ldrh r0, [r3, 0x32] adds r0, r2, r0 strh r0, [r3, 0x24] _080AFF9A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80AFF60 thumb_func_start sub_80AFFA0 sub_80AFFA0: @ 80AFFA0 push {r4-r6,lr} movs r2, 0 ldr r6, _080AFFD0 ldr r5, _080AFFD4 ldr r3, _080AFFD8 ldr r4, _080AFFDC _080AFFAC: ldrb r0, [r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 adds r0, r2, r4 ldrb r0, [r0] adds r0, r5 ldrb r0, [r0] strh r0, [r1, 0x22] adds r3, 0x4 adds r2, 0x1 cmp r2, 0x3 ble _080AFFAC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080AFFD0: .4byte 0x02020004 _080AFFD4: .4byte gUnknown_083CA338 _080AFFD8: .4byte 0x02019338 _080AFFDC: .4byte 0x02038696 thumb_func_end sub_80AFFA0 thumb_func_start sub_80AFFE0 sub_80AFFE0: @ 80AFFE0 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r3, 0 ldr r6, _080B0008 ldr r4, _080B000C ldr r2, _080B0010 _080AFFEE: adds r0, r3, r6 ldrb r0, [r0] cmp r0, 0x1 bls _080B0024 cmp r5, 0 bne _080B0014 ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 movs r0, 0xB4 b _080B0022 .align 2, 0 _080B0008: .4byte 0x02038696 _080B000C: .4byte 0x02020004 _080B0010: .4byte 0x02019338 _080B0014: ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 movs r0, 0x80 lsls r0, 1 _080B0022: strh r0, [r1, 0x20] _080B0024: adds r2, 0x4 adds r3, 0x1 cmp r3, 0x3 ble _080AFFEE pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80AFFE0 thumb_func_start sub_80B0034 sub_80B0034: @ 80B0034 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _080B00A8 bl LoadSpritePalette movs r5, 0 ldr r0, _080B00AC mov r8, r0 ldr r7, _080B00B0 movs r6, 0 _080B004A: lsls r0, r5, 3 ldr r1, _080B00B4 adds r0, r1 bl LoadCompressedObjectPic ldr r0, _080B00B8 adds r0, r6, r0 ldr r1, _080B00BC adds r1, r5, r1 ldrb r1, [r1] add r1, r8 ldrb r2, [r1] movs r1, 0xCC movs r3, 0 bl CreateSprite lsls r4, r5, 2 ldr r1, _080B00C0 adds r4, r1 strb r0, [r4, 0x1] ldrb r1, [r4, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldr r1, _080B00C4 bl SetSubspriteTables ldrb r1, [r4, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r6, 0x18 adds r5, 0x1 cmp r5, 0x3 ble _080B004A pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B00A8: .4byte gUnknown_083CA3E4 _080B00AC: .4byte gUnknown_083CA33C _080B00B0: .4byte 0x02020004 _080B00B4: .4byte gUnknown_083CA3C4 _080B00B8: .4byte gSpriteTemplate_83CA3F4 _080B00BC: .4byte 0x02038696 _080B00C0: .4byte 0x02019338 _080B00C4: .4byte gUnknown_083CA464 thumb_func_end sub_80B0034 thumb_func_start sub_80B00C8 sub_80B00C8: @ 80B00C8 push {lr} ldr r0, _080B0104 bl LoadCompressedObjectPic ldr r0, _080B0108 bl LoadSpritePalette ldr r0, _080B010C movs r1, 0x1E movs r2, 0x2C movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _080B0110 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r2, [r1] movs r3, 0x4 orrs r2, r3 strb r2, [r1] ldr r1, _080B0114 adds r1, 0x58 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _080B0104: .4byte gUnknown_083CA46C _080B0108: .4byte gUnknown_083CA474 _080B010C: .4byte gSpriteTemplate_83CA484 _080B0110: .4byte 0x02020004 _080B0114: .4byte 0x02019204 thumb_func_end sub_80B00C8 thumb_func_start nullsub_18 nullsub_18: @ 80B0118 bx lr thumb_func_end nullsub_18 thumb_func_start unref_sub_80B011C unref_sub_80B011C: @ 80B011C push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _080B0198 bl LoadCompressedObjectPic movs r4, 0 ldr r5, _080B019C _080B012C: lsls r0, r4, 3 adds r0, r5 bl LoadCompressedObjectPalette adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080B012C movs r4, 0 ldr r5, _080B01A0 adds r0, r5, 0x1 mov r8, r0 ldr r7, _080B01A4 ldr r6, _080B01A8 _080B014A: lsls r2, r4, 1 adds r0, r2, r4 lsls r0, 3 ldr r1, _080B01AC adds r0, r1 adds r1, r2, r5 ldrb r1, [r1] add r2, r8 ldrb r2, [r2] movs r3, 0x5 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 movs r2, 0x3E adds r2, r1 mov r12, r2 ldrb r2, [r2] movs r3, 0x4 orrs r2, r3 mov r3, r12 strb r2, [r3] strh r4, [r1, 0x2E] adds r1, r4, r6 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080B014A pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B0198: .4byte gUnknown_083CC3AC _080B019C: .4byte gUnknown_083CC3B4 _080B01A0: .4byte gUnknown_083CA330 _080B01A4: .4byte 0x02020004 _080B01A8: .4byte 0x0201920d _080B01AC: .4byte gSpriteTemplate_83CC454 thumb_func_end unref_sub_80B011C thumb_func_start unref_sub_80B01B0 unref_sub_80B01B0: @ 80B01B0 push {r4,r5,lr} movs r2, 0 ldr r5, _080B01D4 ldr r4, _080B01D8 ldr r3, _080B01DC _080B01BA: adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 str r3, [r0] adds r2, 0x1 cmp r2, 0x3 ble _080B01BA pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B01D4: .4byte 0x0201920d _080B01D8: .4byte 0x02020020 _080B01DC: .4byte ObjectCB_SwitchPocketRotatingBallInit thumb_func_end unref_sub_80B01B0 thumb_func_start unref_sub_80B01E0 unref_sub_80B01E0: @ 80B01E0 push {r4,r5,lr} movs r3, 0 ldr r2, _080B0224 ldr r4, _080B0228 ldrb r1, [r4, 0x9] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _080B022C cmp r1, r0 bne _080B021A adds r5, r4, 0 adds r5, 0x9 adds r4, r1, 0 _080B0202: adds r3, 0x1 cmp r3, 0x3 bgt _080B021A adds r0, r3, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r0, [r0] cmp r0, r4 beq _080B0202 _080B021A: cmp r3, 0x4 beq _080B0230 movs r0, 0 b _080B0232 .align 2, 0 _080B0224: .4byte 0x02020004 _080B0228: .4byte 0x02019204 _080B022C: .4byte SpriteCallbackDummy _080B0230: movs r0, 0x1 _080B0232: pop {r4,r5} pop {r1} bx r1 thumb_func_end unref_sub_80B01E0 thumb_func_start ObjectCB_SwitchPocketRotatingBallInit ObjectCB_SwitchPocketRotatingBallInit: @ 80B0238 push {r4,lr} adds r4, r0, 0 ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x1] adds r0, r4, 0 bl InitSpriteAffineAnim adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080B0268 ldr r0, _080B0264 b _080B0272 .align 2, 0 _080B0264: .4byte sub_80B02A8 _080B0268: adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim ldr r0, _080B027C _080B0272: str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080B027C: .4byte sub_80B0280 thumb_func_end ObjectCB_SwitchPocketRotatingBallInit thumb_func_start sub_80B0280 sub_80B0280: @ 80B0280 push {lr} adds r3, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080B02A0 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080B02A4 str r0, [r3, 0x1C] _080B02A0: pop {r0} bx r0 .align 2, 0 _080B02A4: .4byte sub_80B02A8 thumb_func_end sub_80B0280 thumb_func_start sub_80B02A8 sub_80B02A8: @ 80B02A8 push {r4,lr} adds r4, r0, 0 adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _080B02EC adds r0, r1 ldrb r1, [r0, 0xB] lsls r1, 30 lsrs r1, 30 adds r0, r4, 0 bl StartSpriteAnim adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAffineAnim ldr r0, _080B02F0 str r0, [r4, 0x1C] movs r0, 0x18 bl audio_play pop {r4} pop {r0} bx r0 .align 2, 0 _080B02EC: .4byte 0x02019260 _080B02F0: .4byte sub_80B02F4 thumb_func_end sub_80B02A8 thumb_func_start sub_80B02F4 sub_80B02F4: @ 80B02F4 push {r4,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080B0318 adds r0, r4, 0 bl FreeSpriteOamMatrix ldrb r0, [r4, 0x1] movs r1, 0x4 negs r1, r1 ands r1, r0 strb r1, [r4, 0x1] ldr r0, _080B0320 str r0, [r4, 0x1C] _080B0318: pop {r4} pop {r0} bx r0 .align 2, 0 _080B0320: .4byte SpriteCallbackDummy thumb_func_end sub_80B02F4 thumb_func_start sub_80B0324 sub_80B0324: @ 80B0324 push {r4,lr} ldr r0, _080B035C movs r1, 0x1E bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r1, _080B0360 strb r0, [r1, 0xD] movs r2, 0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r4, _080B0364 movs r3, 0xFF _080B0342: lsls r0, r2, 3 adds r0, r1 adds r0, r4 strh r3, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _080B0342 pop {r4} pop {r0} bx r0 .align 2, 0 _080B035C: .4byte sub_80B0458 _080B0360: .4byte 0x02019204 _080B0364: .4byte 0x03004b28 thumb_func_end sub_80B0324 thumb_func_start sub_80B0368 sub_80B0368: @ 80B0368 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r3, _080B03A0 ldr r5, _080B03A4 ldrb r2, [r5, 0xD] lsls r1, r2, 2 adds r1, r2 adds r1, r0 lsls r1, 3 adds r3, 0x8 adds r1, r3 movs r4, 0 strh r4, [r1] lsls r0, 2 adds r0, 0x1 lsls r0, 1 ldrb r2, [r5, 0xD] lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r0, r1 adds r0, r3 strh r4, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B03A0: .4byte 0x03004b20 _080B03A4: .4byte 0x02019204 thumb_func_end sub_80B0368 thumb_func_start sub_80B03A8 sub_80B03A8: @ 80B03A8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080B03D0 movs r1, 0x1F bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080B03D4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _080B03D0: .4byte sub_80B03D8 _080B03D4: .4byte 0x03004b20 thumb_func_end sub_80B03A8 thumb_func_start sub_80B03D8 sub_80B03D8: @ 80B03D8 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r2, _080B044C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x8] adds r4, r0, 0 ldr r6, _080B0450 ldrb r1, [r6, 0xD] lsls r0, r1, 2 adds r0, r1 adds r0, r4 lsls r0, 3 adds r7, r2, 0 adds r7, 0x8 adds r1, r0, r7 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _080B040C cmp r0, 0xFF bne _080B0444 _080B040C: movs r3, 0 movs r0, 0xFF strh r0, [r1] lsls r1, r4, 2 adds r1, 0x1 lsls r1, 1 ldrb r2, [r6, 0xD] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, r7 strh r3, [r1] adds r0, r6, 0 adds r0, 0x14 adds r0, r4, r0 ldrb r0, [r0] adds r0, 0x5 lsls r0, 4 adds r0, 0x6 ldr r3, _080B0454 movs r1, 0x2 movs r2, 0 bl BlendPalette adds r0, r5, 0 bl DestroyTask _080B0444: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B044C: .4byte 0x03004b20 _080B0450: .4byte 0x02019204 _080B0454: .4byte 0x00004bff thumb_func_end sub_80B03D8 thumb_func_start sub_80B0458 sub_80B0458: @ 80B0458 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 movs r6, 0 lsls r1, r0, 2 adds r1, r0 mov r9, r1 lsls r7, r1, 3 ldr r0, _080B04A8 mov r8, r0 movs r1, 0x8 negs r1, r1 add r1, r8 mov r10, r1 _080B047C: lsls r0, r6, 26 lsrs r3, r0, 24 lsls r0, r3, 1 adds r0, r7 mov r4, r8 adds r2, r0, r4 ldrh r4, [r2] movs r5, 0 ldrsh r0, [r2, r5] cmp r0, 0xFF beq _080B04F6 adds r0, r3, 0x1 lsls r1, r0, 1 adds r1, r7 add r1, r8 movs r5, 0 ldrsh r1, [r1, r5] adds r5, r0, 0 cmp r1, 0 bne _080B04AC adds r0, r4, 0x1 b _080B04AE .align 2, 0 _080B04A8: .4byte 0x03004b28 _080B04AC: subs r0, r4, 0x1 _080B04AE: strh r0, [r2] lsls r1, r3, 1 mov r0, r9 lsls r2, r0, 3 adds r0, r1, r2 mov r3, r10 adds r3, 0x8 adds r0, r3 movs r4, 0 ldrsh r0, [r0, r4] adds r4, r1, 0 cmp r0, 0x10 beq _080B04CC cmp r0, 0 bne _080B04DA _080B04CC: lsls r0, r5, 1 adds r0, r2 adds r0, r3 ldrh r1, [r0] movs r2, 0x1 eors r1, r2 strh r1, [r0] _080B04DA: ldr r0, _080B0510 adds r0, 0x14 adds r0, r6, r0 ldrb r0, [r0] adds r0, 0x5 lsls r0, 4 adds r0, 0x6 adds r1, r4, r7 add r1, r8 ldrb r2, [r1] movs r1, 0x2 ldr r3, _080B0514 bl BlendPalette _080B04F6: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 bls _080B047C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B0510: .4byte 0x02019204 _080B0514: .4byte 0x00004bff thumb_func_end sub_80B0458 thumb_func_start sub_80B0518 sub_80B0518: @ 80B0518 push {r4,lr} ldr r0, _080B0540 movs r1, 0x1E bl CreateTask ldr r1, _080B0544 strb r0, [r1, 0xE] movs r4, 0 _080B0528: adds r0, r4, 0 bl sub_80B0548 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080B0528 pop {r4} pop {r0} bx r0 .align 2, 0 _080B0540: .4byte sub_80B05FC _080B0544: .4byte 0x02019204 thumb_func_end sub_80B0518 thumb_func_start sub_80B0548 sub_80B0548: @ 80B0548 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r3, _080B0580 ldr r4, _080B0584 ldrb r2, [r4, 0xE] lsls r1, r2, 2 adds r1, r2 adds r1, r0 lsls r1, 3 adds r3, 0x8 adds r1, r3 movs r5, 0 movs r2, 0xFF strh r2, [r1] lsls r0, 2 adds r0, 0x1 lsls r0, 1 ldrb r2, [r4, 0xE] lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r0, r1 adds r0, r3 strh r5, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B0580: .4byte 0x03004b20 _080B0584: .4byte 0x02019204 thumb_func_end sub_80B0548 thumb_func_start sub_80B0588 sub_80B0588: @ 80B0588 push {r4,lr} movs r4, 0 _080B058C: adds r0, r4, 0 bl sub_80B05A4 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080B058C pop {r4} pop {r0} bx r0 thumb_func_end sub_80B0588 thumb_func_start sub_80B05A4 sub_80B05A4: @ 80B05A4 push {r4-r6,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_80B0548 adds r0, r4, 0x5 lsls r2, r0, 5 ldr r3, _080B05E8 adds r6, r2, r3 ldr r5, _080B05EC adds r2, r5 ldr r1, _080B05F0 str r6, [r1] str r2, [r1, 0x4] ldr r2, _080B05F4 str r2, [r1, 0x8] ldr r6, [r1, 0x8] lsls r0, 4 adds r4, 0xC adds r0, r4 lsls r0, 1 subs r3, 0x14 adds r3, r0, r3 subs r5, 0x14 adds r0, r5 str r3, [r1] str r0, [r1, 0x4] str r2, [r1, 0x8] ldr r0, [r1, 0x8] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B05E8: .4byte 0x0202eadc _080B05EC: .4byte 0x0202eedc _080B05F0: .4byte 0x040000d4 _080B05F4: .4byte 0x80000001 thumb_func_end sub_80B05A4 thumb_func_start nullsub_19 nullsub_19: @ 80B05F8 bx lr thumb_func_end nullsub_19 thumb_func_start sub_80B05FC sub_80B05FC: @ 80B05FC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 movs r7, 0 lsls r1, r0, 2 adds r1, r0 mov r9, r1 lsls r6, r1, 3 ldr r0, _080B0664 mov r8, r0 ldr r1, _080B0668 mov r10, r1 _080B061C: lsls r0, r7, 26 lsrs r3, r0, 24 lsls r0, r3, 1 adds r0, r6 mov r4, r8 adds r2, r0, r4 movs r5, 0 ldrsh r0, [r2, r5] cmp r0, 0xFF beq _080B06C2 adds r0, r3, 0x2 lsls r0, 1 adds r0, r6 adds r1, r0, r4 ldrh r0, [r1] adds r0, 0x1 movs r4, 0 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080B06C2 strh r4, [r1] adds r0, r3, 0x1 lsls r1, r0, 1 adds r1, r6 add r1, r8 movs r4, 0 ldrsh r1, [r1, r4] adds r4, r0, 0 cmp r1, 0 bne _080B066C ldrh r0, [r2] adds r0, 0x1 b _080B0670 .align 2, 0 _080B0664: .4byte 0x03004b28 _080B0668: .4byte 0x00004bff _080B066C: ldrh r0, [r2] subs r0, 0x1 _080B0670: strh r0, [r2] lsls r1, r3, 1 mov r5, r9 lsls r2, r5, 3 adds r0, r1, r2 ldr r3, _080B06DC adds r3, 0x8 adds r0, r3 movs r5, 0 ldrsh r0, [r0, r5] adds r5, r1, 0 cmp r0, 0x10 beq _080B068E cmp r0, 0 bne _080B069C _080B068E: lsls r0, r4, 1 adds r0, r2 adds r0, r3 ldrh r1, [r0] movs r2, 0x1 eors r1, r2 strh r1, [r0] _080B069C: adds r4, r7, 0x5 lsls r4, 4 adds r0, r4, 0 adds r0, 0xA adds r5, r6 add r5, r8 ldrb r2, [r5] movs r1, 0x1 mov r3, r10 bl BlendPalette adds r4, 0xC adds r4, r7 ldrb r2, [r5] adds r0, r4, 0 movs r1, 0x1 mov r3, r10 bl BlendPalette _080B06C2: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x3 bls _080B061C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B06DC: .4byte 0x03004b20 thumb_func_end sub_80B05FC thumb_func_start unref_sub_80B06E0 unref_sub_80B06E0: @ 80B06E0 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 ldr r0, _080B073C movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r5, r0, 24 movs r3, 0 lsls r0, r5, 2 adds r0, r5 lsls r6, r0, 3 ldr r0, _080B0740 mov r8, r0 ldr r1, _080B0744 mov r12, r1 _080B0704: lsls r4, r3, 2 lsls r0, r3, 26 lsrs r0, 23 adds r0, r6 add r0, r8 adds r2, r7, r3 ldrb r1, [r2] strh r1, [r0] ldrb r0, [r2] cmp r0, 0 beq _080B0726 mov r1, r12 adds r0, r4, r1 ldrb r1, [r0, 0x2] movs r2, 0x2 orrs r1, r2 strb r1, [r0, 0x2] _080B0726: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _080B0704 adds r0, r5, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080B073C: .4byte sub_80B0748 _080B0740: .4byte 0x03004b28 _080B0744: .4byte 0x02019338 thumb_func_end unref_sub_80B06E0 thumb_func_start sub_80B0748 sub_80B0748: @ 80B0748 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] ldr r2, _080B07F4 movs r1, 0x8 adds r1, r2 mov r10, r1 ldr r3, [sp] lsls r3, 2 str r3, [sp, 0x1C] ldr r1, [sp] adds r0, r3, r1 lsls r0, 3 str r0, [sp, 0xC] _080B0774: ldr r0, _080B07F8 ldr r3, [sp, 0x4] adds r0, r3, r0 ldrb r4, [r0] lsls r0, r4, 26 lsrs r1, r0, 24 lsls r0, r1, 1 str r0, [sp, 0x8] ldr r3, [sp] lsls r0, r3, 2 adds r0, r3 lsls r6, r0, 3 ldr r3, [sp, 0x8] adds r0, r3, r6 add r0, r10 mov r9, r0 ldrb r7, [r0] cmp r7, 0 bne _080B079C b _080B0910 _080B079C: adds r3, r1, 0x1 lsls r0, r3, 1 adds r0, r6 add r0, r10 ldrb r0, [r0] mov r8, r0 adds r2, r1, 0x2 lsls r0, r2, 1 adds r0, r6 add r0, r10 ldrb r5, [r0] adds r1, 0x3 lsls r0, r1, 1 adds r0, r6 add r0, r10 ldrb r6, [r0] str r3, [sp, 0x10] str r2, [sp, 0x14] str r1, [sp, 0x18] cmp r7, 0x1 bne _080B0818 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x1 beq _080B07D2 b _080B08EA _080B07D2: movs r6, 0 adds r0, r4, 0x5 lsls r0, 4 adds r0, 0x1 movs r1, 0x3 adds r2, r5, 0 ldr r3, _080B07FC bl BlendPalette cmp r5, 0 bne _080B0800 mov r0, r8 cmp r0, 0x4 bne _080B0800 mov r1, r9 strh r6, [r1] b _080B08EA .align 2, 0 _080B07F4: .4byte 0x03004b20 _080B07F8: .4byte 0x02038696 _080B07FC: .4byte 0x00007fff _080B0800: adds r0, r5, 0x2 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xD bls _080B08EA movs r5, 0 mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 b _080B08EA _080B0818: cmp r7, 0x2 beq _080B0820 cmp r7, 0x4 bne _080B0896 _080B0820: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 bne _080B08EA movs r6, 0 adds r0, r4, 0x5 lsls r0, 4 adds r0, 0x1 ldr r2, _080B0854 lsls r1, r4, 1 adds r1, r2 ldrh r3, [r1] movs r1, 0x3 adds r2, r5, 0 bl BlendPalette cmp r5, 0 bne _080B0858 mov r2, r8 cmp r2, 0x2 bne _080B0858 mov r3, r9 strh r6, [r3] b _080B08EA .align 2, 0 _080B0854: .4byte gUnknown_083CC5A4 _080B0858: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xE bne _080B08EA movs r5, 0 mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r7, 0x4 bne _080B08EA cmp r0, 0x1 bne _080B08EA adds r4, 0x9 lsls r4, 4 adds r0, r4, 0x2 movs r1, 0x1 movs r2, 0x4 movs r3, 0 bl BlendPalette adds r4, 0x5 adds r0, r4, 0 movs r1, 0x1 movs r2, 0x4 movs r3, 0 bl BlendPalette b _080B08EA _080B0896: cmp r7, 0x3 bne _080B08EA adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0xC bne _080B08EA movs r6, 0 adds r0, r4, 0x5 lsls r0, 4 adds r4, r0, 0x1 adds r0, r4, 0 movs r1, 0x3 adds r2, r5, 0 movs r3, 0 bl BlendPalette adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bne _080B08EA ldr r0, _080B0930 lsls r1, r4, 1 adds r0, r1, r0 ldrh r2, [r0] ldr r0, _080B0934 adds r1, r0 ldrh r0, [r1] ldr r1, _080B0938 str r2, [r1] str r0, [r1, 0x4] movs r0, 0x80 lsls r0, 24 orrs r7, r0 str r7, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, [sp, 0x8] ldr r2, [sp, 0xC] adds r0, r1, r2 add r0, r10 strh r6, [r0] _080B08EA: ldr r3, [sp, 0x10] lsls r0, r3, 1 ldr r1, [sp, 0xC] adds r0, r1 add r0, r10 mov r2, r8 strh r2, [r0] ldr r3, [sp, 0x14] lsls r0, r3, 1 adds r0, r1 add r0, r10 strh r5, [r0] ldr r1, [sp, 0x18] lsls r0, r1, 1 ldr r2, [sp, 0xC] adds r0, r2 add r0, r10 strh r6, [r0] ldr r2, _080B093C _080B0910: ldr r0, [sp, 0x4] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] cmp r0, 0x3 bhi _080B0920 b _080B0774 _080B0920: movs r4, 0 ldr r3, [sp, 0x1C] ldr r1, [sp] adds r0, r3, r1 lsls r1, r0, 3 adds r2, 0x8 adds r0, r1, r2 b _080B0950 .align 2, 0 _080B0930: .4byte 0x0202eec8 _080B0934: .4byte 0x0202eac8 _080B0938: .4byte 0x040000d4 _080B093C: .4byte 0x03004b20 _080B0940: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bhi _080B0958 lsls r0, r4, 3 adds r0, r1 adds r0, r2 _080B0950: movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0 beq _080B0940 _080B0958: cmp r4, 0x4 bne _080B0980 movs r4, 0 ldr r3, _080B0990 movs r5, 0x3 negs r5, r5 _080B0964: lsls r1, r4, 2 adds r1, r3 ldrb r2, [r1, 0x2] adds r0, r5, 0 ands r0, r2 strb r0, [r1, 0x2] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080B0964 ldr r0, [sp] bl DestroyTask _080B0980: add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B0990: .4byte 0x02019338 thumb_func_end sub_80B0748 thumb_func_start unref_sub_80B0994 unref_sub_80B0994: @ 80B0994 push {lr} lsls r0, 24 cmp r0, 0 beq _080B09A6 ldr r0, _080B09AC ldrb r1, [r0, 0x6] movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x6] _080B09A6: pop {r0} bx r0 .align 2, 0 _080B09AC: .4byte 0x02019204 thumb_func_end unref_sub_80B0994 thumb_func_start sub_80B09B0 sub_80B09B0: @ 80B09B0 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 ldr r1, _080B09D4 adds r0, r1 ldrb r1, [r0, 0x15] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080B09D8 adds r0, r2, 0 bl sub_80B0368 b _080B09DE .align 2, 0 _080B09D4: .4byte 0x02019260 _080B09D8: adds r0, r2, 0 bl sub_80B03A8 _080B09DE: pop {r0} bx r0 thumb_func_end sub_80B09B0 thumb_func_start sub_80B09E4 sub_80B09E4: @ 80B09E4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r9, r0 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r0, _080B0B2C mov r1, r9 adds r7, r1, r0 ldrb r0, [r7] lsls r5, r0, 2 adds r5, r0 lsls r5, 27 movs r2, 0x80 lsls r2, 22 adds r5, r2 lsrs r5, 24 lsls r4, r1, 3 ldr r0, _080B0B30 adds r0, r4, r0 bl LoadCompressedObjectPic ldr r0, _080B0B34 adds r4, r0 adds r0, r4, 0 bl LoadSpritePalette mov r3, r9 lsls r4, r3, 1 add r4, r9 lsls r4, 3 ldr r0, _080B0B38 adds r4, r0 adds r0, r4, 0 movs r1, 0xB8 adds r2, r5, 0 movs r3, 0x1D bl CreateSprite mov r8, r0 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 adds r0, r4, 0 movs r1, 0xF8 adds r2, r5, 0 movs r3, 0x1D bl CreateSprite adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldr r1, _080B0B3C mov r10, r1 lsls r5, r6, 4 adds r5, r6 lsls r5, 2 add r5, r10 ldrh r2, [r5, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x40 ldr r3, _080B0B40 adds r0, r3, 0 ands r1, r0 ldr r0, _080B0B44 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] ldrb r0, [r7] lsls r3, r0, 2 adds r3, r0 lsls r3, 6 ldr r0, _080B0B48 adds r3, r0 mov r1, r8 lsls r4, r1, 4 add r4, r8 lsls r4, 2 add r4, r10 ldrh r0, [r4, 0x4] lsls r0, 22 lsrs r0, 17 ldr r2, _080B0B4C mov r10, r2 add r0, r10 str r0, [sp] movs r0, 0 movs r1, 0x3 movs r2, 0xC0 lsls r2, 19 bl sub_8040F80 ldrb r0, [r7] lsls r3, r0, 2 adds r3, r0 lsls r3, 6 ldr r7, _080B0B50 adds r3, r7 ldrh r0, [r5, 0x4] lsls r0, 22 lsrs r0, 17 add r0, r10 str r0, [sp] movs r0, 0 movs r1, 0x3 movs r2, 0xC0 lsls r2, 19 bl sub_8040F80 ldrh r0, [r4, 0x4] lsls r0, 22 lsrs r0, 17 movs r1, 0xA0 lsls r1, 3 adds r0, r1 add r0, r10 movs r2, 0 str r2, [sp, 0x8] ldr r1, _080B0B54 add r3, sp, 0x8 mov r12, r3 str r3, [r1] str r0, [r1, 0x4] ldr r3, _080B0B58 str r3, [r1, 0x8] ldr r0, [r1, 0x8] add r0, sp, 0x4 strb r2, [r0] strb r2, [r0] ldrh r0, [r5, 0x4] lsls r0, 22 lsrs r0, 17 movs r7, 0xA0 lsls r7, 3 adds r0, r7 add r0, r10 str r2, [sp, 0x8] mov r2, r12 str r2, [r1] str r0, [r1, 0x4] str r3, [r1, 0x8] ldr r0, [r1, 0x8] strh r6, [r4, 0x2E] mov r3, r8 strh r3, [r5, 0x2E] mov r7, r9 strh r7, [r4, 0x30] mov r0, r9 strh r0, [r5, 0x30] mov r0, r8 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080B0B2C: .4byte 0x02038696 _080B0B30: .4byte gUnknown_083CC4B4 _080B0B34: .4byte gUnknown_083CC4D4 _080B0B38: .4byte gSpriteTemplate_83CC53C _080B0B3C: .4byte 0x02020004 _080B0B40: .4byte 0x000003ff _080B0B44: .4byte 0xfffffc00 _080B0B48: .4byte 0x0600e026 _080B0B4C: .4byte 0x06010000 _080B0B50: .4byte 0x0600e036 _080B0B54: .4byte 0x040000d4 _080B0B58: .4byte 0x850000c0 thumb_func_end sub_80B09E4 thumb_func_start sub_80B0B5C sub_80B0B5C: @ 80B0B5C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080B0B94 lsls r5, r0, 4 adds r5, r0 lsls r5, 2 adds r5, r1 ldrh r0, [r5, 0x2E] lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r4, r1 adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl DestroySprite adds r0, r5, 0 bl DestroySpriteAndFreeResources pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B0B94: .4byte 0x02020004 thumb_func_end sub_80B0B5C thumb_func_start sub_80B0B98 sub_80B0B98: @ 80B0B98 ldr r1, _080B0BAC movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080B0BB0 adds r0, r2, 0 strh r0, [r1] bx lr .align 2, 0 _080B0BAC: .4byte REG_BLDCNT _080B0BB0: .4byte 0x00000907 thumb_func_end sub_80B0B98 thumb_func_start sub_80B0BB4 sub_80B0BB4: @ 80B0BB4 ldr r0, _080B0BC0 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bx lr .align 2, 0 _080B0BC0: .4byte REG_BLDCNT thumb_func_end sub_80B0BB4 thumb_func_start sub_80B0BC4 sub_80B0BC4: @ 80B0BC4 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} adds r4, r0, 0 mov r9, r1 lsls r4, 24 lsrs r4, 24 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 bl sub_80B0B98 ldr r1, _080B0C38 mov r8, r1 lsls r6, r4, 4 adds r6, r4 lsls r6, 2 adds r0, r6, r1 movs r1, 0x30 ldrsh r2, [r0, r1] lsls r2, 2 ldr r1, _080B0C3C adds r2, r1 ldrb r1, [r2, 0x2] movs r3, 0x2 orrs r1, r3 strb r1, [r2, 0x2] ldrh r5, [r0, 0x2E] lsls r5, 24 lsrs r5, 24 movs r1, 0x1 bl StartSpriteAffineAnim lsls r4, r5, 4 adds r4, r5 lsls r4, 2 mov r1, r8 adds r0, r4, r1 movs r1, 0x1 bl StartSpriteAffineAnim movs r0, 0x1C add r8, r0 add r6, r8 ldr r0, _080B0C40 str r0, [r6] add r4, r8 ldr r0, _080B0C44 str r0, [r4] mov r1, r9 cmp r1, 0 bne _080B0C48 movs r0, 0x65 bl audio_play b _080B0C4E .align 2, 0 _080B0C38: .4byte 0x02020004 _080B0C3C: .4byte 0x02019338 _080B0C40: .4byte sub_80B0C5C _080B0C44: .4byte SpriteCallbackDummy _080B0C48: movs r0, 0x2 bl audio_play _080B0C4E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80B0BC4 thumb_func_start sub_80B0C5C sub_80B0C5C: @ 80B0C5C push {lr} mov r12, r0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080B0CA4 mov r0, r12 ldrh r1, [r0, 0x2E] lsls r1, 24 lsrs r1, 24 ldr r2, _080B0CA8 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x3F ldrb r0, [r0] lsls r0, 26 cmp r0, 0 bge _080B0CA4 mov r3, r12 adds r3, 0x3E ldrb r0, [r3] movs r2, 0x4 orrs r0, r2 strb r0, [r3] adds r1, 0x3E ldrb r0, [r1] orrs r0, r2 strb r0, [r1] ldr r0, _080B0CAC mov r1, r12 str r0, [r1, 0x1C] _080B0CA4: pop {r0} bx r0 .align 2, 0 _080B0CA8: .4byte 0x02020004 _080B0CAC: .4byte sub_80B0CB0 thumb_func_end sub_80B0C5C thumb_func_start sub_80B0CB0 sub_80B0CB0: @ 80B0CB0 push {lr} movs r1, 0x30 ldrsh r2, [r0, r1] lsls r2, 2 ldr r1, _080B0CD8 adds r2, r1 ldrb r3, [r2, 0x2] movs r1, 0x3 negs r1, r1 ands r1, r3 strb r1, [r2, 0x2] ldrh r0, [r0, 0x2E] lsls r0, 24 lsrs r0, 24 bl sub_80B0B5C bl sub_80B0BB4 pop {r0} bx r0 .align 2, 0 _080B0CD8: .4byte 0x02019338 thumb_func_end sub_80B0CB0 thumb_func_start sub_80B0CDC sub_80B0CDC: @ 80B0CDC lsls r0, 24 lsrs r0, 22 ldr r1, _080B0CF0 adds r0, r1 ldrb r2, [r0, 0x2] movs r1, 0x3 negs r1, r1 ands r1, r2 strb r1, [r0, 0x2] bx lr .align 2, 0 _080B0CF0: .4byte 0x02019338 thumb_func_end sub_80B0CDC thumb_func_start unref_sub_80B0CF4 unref_sub_80B0CF4: @ 80B0CF4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 ldr r0, _080B0D5C movs r1, 0xC0 lsls r1, 9 adds r0, r1 ldrb r1, [r0] movs r2, 0x1 eors r1, r2 strb r1, [r0] cmp r1, 0 bne _080B0D6C movs r4, 0 ldr r6, _080B0D60 adds r3, r6, 0x1 mov r8, r3 ldr r5, _080B0D64 adds r7, r5, 0x1 _080B0D1C: lsls r1, r4, 1 adds r0, r1, r6 ldrb r2, [r0] mov r3, r8 adds r0, r1, r3 ldrb r3, [r0] adds r0, r1, r5 ldrb r0, [r0] adds r0, 0x5 lsls r0, 24 lsrs r0, 24 str r0, [sp] adds r1, r7 ldrb r0, [r1] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] ldr r0, _080B0D68 movs r1, 0 bl FillWindowRect_DefaultPalette adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080B0D1C bl sub_80AE514 bl sub_80AEB30 b _080B0D70 .align 2, 0 _080B0D5C: .4byte 0x02000000 _080B0D60: .4byte gUnknown_083CA308 _080B0D64: .4byte gUnknown_083CA310 _080B0D68: .4byte 0x03004210 _080B0D6C: bl sub_80B0D7C _080B0D70: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end unref_sub_80B0CF4 thumb_func_start sub_80B0D7C sub_80B0D7C: @ 80B0D7C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 movs r5, 0 ldr r0, _080B0ED0 movs r1, 0xC0 lsls r1, 9 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080B0D98 b _080B0EC2 _080B0D98: movs r4, 0 ldr r7, _080B0ED4 adds r3, r7, 0x1 mov r9, r3 ldr r6, _080B0ED8 adds r0, r6, 0x1 mov r8, r0 _080B0DA6: lsls r1, r4, 1 adds r0, r1, r7 ldrb r2, [r0] mov r3, r9 adds r0, r1, r3 ldrb r3, [r0] adds r0, r1, r6 ldrb r0, [r0] adds r0, 0x5 lsls r0, 24 lsrs r0, 24 str r0, [sp] add r1, r8 ldrb r0, [r1] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] ldr r0, _080B0EDC movs r1, 0 bl FillWindowRect_DefaultPalette adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080B0DA6 movs r4, 0 ldr r6, _080B0ED8 adds r7, r6, 0x1 _080B0DE2: lsls r0, r4, 3 subs r0, r4 lsls r0, 2 ldr r1, _080B0EE0 adds r0, r1 ldrh r2, [r0, 0x4] movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 bge _080B0E08 negs r0, r0 lsls r0, 16 lsrs r2, r0, 16 add r1, sp, 0x8 movs r0, 0xAE strb r0, [r1] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _080B0E08: mov r0, sp adds r0, r5 adds r0, 0x8 lsls r1, r2, 16 asrs r1, 16 movs r2, 0 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r0, _080B0EE4 adds r0, r4, r0 ldrb r0, [r0] movs r1, 0x16 adds r2, r0, 0 muls r2, r1 movs r3, 0x94 lsls r3, 2 adds r2, r3 lsls r0, 1 adds r1, r0, r6 ldrb r3, [r1] adds r0, r7 ldrb r0, [r0] str r0, [sp] ldr r0, _080B0EDC add r1, sp, 0x8 bl sub_8003460 movs r5, 0 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080B0DE2 movs r4, 0 ldr r6, _080B0ED4 adds r7, r6, 0x1 _080B0E52: lsls r0, r4, 3 subs r0, r4 lsls r0, 2 ldr r1, _080B0EE0 adds r0, r1 ldrh r2, [r0, 0x2] movs r1, 0x2 ldrsh r0, [r0, r1] cmp r0, 0 bge _080B0E78 negs r0, r0 lsls r0, 16 lsrs r2, r0, 16 add r1, sp, 0x8 movs r0, 0xAE strb r0, [r1] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _080B0E78: mov r0, sp adds r0, r5 adds r0, 0x8 lsls r1, r2, 16 asrs r1, 16 movs r2, 0 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r0, _080B0EE4 adds r0, r4, r0 ldrb r1, [r0] lsls r2, r1, 2 adds r2, r1 lsls r2, 18 movs r3, 0x80 lsls r3, 18 adds r2, r3 lsrs r2, 16 lsls r1, 1 adds r0, r1, r6 ldrb r3, [r0] adds r1, r7 ldrb r0, [r1] str r0, [sp] ldr r0, _080B0EDC add r1, sp, 0x8 bl sub_8003460 movs r5, 0 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080B0E52 bl sub_80AEB30 _080B0EC2: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B0ED0: .4byte 0x02000000 _080B0ED4: .4byte gUnknown_083CA308 _080B0ED8: .4byte gUnknown_083CA310 _080B0EDC: .4byte 0x03004210 _080B0EE0: .4byte 0x02019260 _080B0EE4: .4byte 0x02038696 thumb_func_end sub_80B0D7C thumb_func_start unref_sub_80B0EE8 unref_sub_80B0EE8: @ 80B0EE8 push {r4-r7,lr} adds r7, r0, 0 movs r4, 0 subs r0, r1, 0x1 cmp r4, r0 bge _080B0F20 adds r6, r0, 0 _080B0EF6: adds r3, r0, 0 adds r5, r4, 0x1 cmp r0, r4 ble _080B0F18 lsls r0, 2 subs r0, 0x4 adds r0, r7 _080B0F04: ldr r1, [r0] ldr r2, [r0, 0x4] cmp r1, r2 ble _080B0F10 str r1, [r0, 0x4] str r2, [r0] _080B0F10: subs r0, 0x4 subs r3, 0x1 cmp r3, r4 bgt _080B0F04 _080B0F18: adds r4, r5, 0 adds r0, r6, 0 cmp r4, r0 blt _080B0EF6 _080B0F20: pop {r4-r7} pop {r0} bx r0 thumb_func_end unref_sub_80B0EE8 thumb_func_start sub_80B0F28 sub_80B0F28: @ 80B0F28 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 mov r8, r0 add r4, sp, 0x4 adds r0, r4, 0 movs r1, 0 movs r2, 0x8 bl memset movs r5, 0 add r4, sp, 0x4 adds r6, r4, 0 movs r7, 0 _080B0F4E: bl Random adds r1, r0, 0 mov r0, sp adds r0, r7 adds r0, 0x4 strh r1, [r0] movs r2, 0 cmp r2, r5 bge _080B0F86 lsls r0, r1, 16 lsrs r0, 16 mov r1, sp ldrh r1, [r1, 0x4] cmp r0, r1 beq _080B0F80 _080B0F6E: adds r2, 0x1 cmp r2, r5 bge _080B0F86 lsls r0, r2, 1 adds r0, r4, r0 ldrh r1, [r6] ldrh r0, [r0] cmp r1, r0 bne _080B0F6E _080B0F80: subs r6, 0x2 subs r7, 0x2 subs r5, 0x1 _080B0F86: adds r6, 0x2 adds r7, 0x2 adds r5, 0x1 cmp r5, 0x3 ble _080B0F4E mov r2, r8 cmp r2, 0 bne _080B1050 movs r5, 0 ldr r3, _080B1008 mov r8, r3 _080B0F9C: mov r6, r8 strb r5, [r6] movs r4, 0 cmp r4, r5 bge _080B1018 ldr r7, _080B100C mov r9, r7 lsls r0, r5, 1 adds r1, r0, 0 add r1, r9 mov r12, r1 mov r2, sp adds r2, 0x4 str r2, [sp, 0xC] add r0, sp adds r0, 0x4 str r0, [sp, 0x10] ldr r3, _080B1008 adds r6, r3, 0 mov r10, r6 _080B0FC4: ldrb r0, [r3] lsls r2, r0, 1 mov r7, r9 adds r0, r2, r7 movs r6, 0 ldrsh r1, [r0, r6] mov r7, r12 movs r6, 0 ldrsh r0, [r7, r6] cmp r1, r0 blt _080B0FEC cmp r1, r0 bne _080B1010 ldr r7, [sp, 0xC] adds r0, r7, r2 ldrh r0, [r0] ldr r1, [sp, 0x10] ldrh r1, [r1] cmp r0, r1 bcs _080B1010 _080B0FEC: adds r2, r5, 0 cmp r5, r4 ble _080B1004 subs r0, r5, 0x1 mov r6, r10 adds r1, r0, r6 _080B0FF8: ldrb r0, [r1] strb r0, [r1, 0x1] subs r1, 0x1 subs r2, 0x1 cmp r2, r4 bgt _080B0FF8 _080B1004: strb r5, [r3] b _080B1018 .align 2, 0 _080B1008: .4byte 0x02038696 _080B100C: .4byte 0x02038670 _080B1010: adds r3, 0x1 adds r4, 0x1 cmp r4, r5 blt _080B0FC4 _080B1018: cmp r4, r5 bne _080B1020 mov r7, r8 strb r5, [r7] _080B1020: movs r0, 0x1 add r8, r0 adds r5, 0x1 cmp r5, 0x3 ble _080B0F9C ldr r4, _080B104C mov r0, sp adds r1, r4, 0 movs r2, 0x4 bl memcpy movs r5, 0 _080B1038: mov r1, sp adds r0, r1, r5 ldrb r0, [r0] adds r0, r4 strb r5, [r0] adds r5, 0x1 cmp r5, 0x3 ble _080B1038 b _080B10FC .align 2, 0 _080B104C: .4byte 0x02038696 _080B1050: mov r0, sp movs r1, 0xFF movs r2, 0x4 bl memset movs r5, 0 ldr r3, _080B1070 movs r6, 0 _080B1060: ldr r0, _080B1074 adds r0, r6, r0 ldrb r0, [r0, 0xB] lsls r0, 30 lsrs r2, r0, 30 mov r7, sp adds r1, r7, r2 b _080B1082 .align 2, 0 _080B1070: .4byte 0x02038696 _080B1074: .4byte 0x02019260 _080B1078: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 mov r0, sp adds r1, r0, r2 _080B1082: ldrb r0, [r1] cmp r0, 0xFF bne _080B1078 strb r5, [r1] strb r2, [r3] adds r3, 0x1 adds r6, 0x1C adds r5, 0x1 cmp r5, 0x3 ble _080B1060 movs r5, 0 _080B1098: movs r4, 0x3 adds r1, r5, 0x1 mov r10, r1 cmp r4, r5 ble _080B10F6 mov r9, r4 ldr r2, _080B110C mov r8, r2 add r3, sp, 0x4 mov r12, r3 _080B10AC: lsls r0, r4, 3 subs r0, r4 lsls r0, 2 ldr r6, _080B1110 adds r1, r0, r6 ldrb r2, [r1, 0xB] ldr r7, _080B1114 adds r0, r7 ldrb r3, [r0, 0xB] mov r1, r9 ands r1, r2 mov r0, r9 ands r0, r3 subs r3, r4, 0x1 cmp r1, r0 bne _080B10F0 mov r0, r8 adds r7, r3, r0 adds r2, r4, r0 ldrb r6, [r7] ldrb r1, [r2] cmp r6, r1 bcs _080B10F0 lsls r0, r3, 1 add r0, r12 lsls r1, r4, 1 add r1, r12 ldrh r0, [r0] ldrh r1, [r1] cmp r0, r1 bcs _080B10F0 ldrb r0, [r2] strb r6, [r2] strb r0, [r7] _080B10F0: adds r4, r3, 0 cmp r4, r5 bgt _080B10AC _080B10F6: mov r5, r10 cmp r5, 0x2 ble _080B1098 _080B10FC: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B110C: .4byte 0x02038696 _080B1110: .4byte 0x02019244 _080B1114: .4byte 0x02019260 thumb_func_end sub_80B0F28 thumb_func_start sub_80B1118 sub_80B1118: @ 80B1118 push {r4,r5,lr} movs r4, 0 movs r5, 0xA0 _080B111E: ldr r0, _080B1144 adds r0, r5, r0 ldr r1, _080B1148 adds r1, r4, r1 ldrb r1, [r1] adds r1, 0x5 lsls r1, 4 movs r2, 0x20 bl LoadPalette adds r5, 0x20 adds r4, 0x1 cmp r4, 0x3 ble _080B111E bl sub_80AE514 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B1144: .4byte 0x02018004 _080B1148: .4byte 0x02038696 thumb_func_end sub_80B1118 thumb_func_start sub_80B114C sub_80B114C: @ 80B114C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 lsls r7, r6, 3 subs r0, r7, r6 lsls r0, 2 ldr r4, _080B11B8 adds r5, r0, r4 movs r0, 0 strh r0, [r5, 0x2] strh r0, [r5] adds r0, r6, 0 bl sub_80AF404 lsls r0, 24 mov r8, r4 cmp r0, 0 bne _080B1176 b _080B13DC _080B1176: ldrh r0, [r5, 0x6] ldr r1, _080B11BC lsls r0, 3 adds r0, r1 ldrb r1, [r0] mov r12, r1 ldrb r0, [r0, 0x1] lsls r0, 29 lsrs r0, 29 strb r0, [r5, 0xA] ldrh r0, [r5, 0x6] ldrh r1, [r5, 0x8] cmp r0, r1 bne _080B11C0 cmp r0, 0 beq _080B11C0 ldrb r0, [r5, 0x15] movs r1, 0x1 orrs r0, r1 strb r0, [r5, 0x15] ldrb r2, [r5, 0xB] lsls r1, r2, 25 lsrs r1, 29 adds r1, 0x1 movs r0, 0x7 ands r1, r0 lsls r1, 4 movs r0, 0x71 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0xB] b _080B11D8 .align 2, 0 _080B11B8: .4byte 0x02019260 _080B11BC: .4byte gContestMoves _080B11C0: lsls r4, r6, 3 subs r1, r4, r6 lsls r1, 2 ldr r3, _080B1264 adds r1, r3 ldrb r2, [r1, 0xB] movs r0, 0x71 negs r0, r0 ands r0, r2 strb r0, [r1, 0xB] adds r7, r4, 0 mov r8, r3 _080B11D8: subs r0, r7, r6 lsls r0, 2 add r0, r8 ldr r2, _080B1268 mov r1, r12 lsls r3, r1, 2 adds r2, r3, r2 ldrb r1, [r2, 0x1] strh r1, [r0] strh r1, [r0, 0x2] mov r0, r8 adds r0, 0x70 ldrb r1, [r2, 0x2] strh r1, [r0, 0x4] strh r1, [r0, 0x6] strb r6, [r0, 0x11] movs r2, 0 adds r4, r3, 0 movs r1, 0 mov r5, r8 adds r5, 0x7D mov r3, r8 _080B1204: strb r1, [r3, 0xE] adds r0, r5, r2 strb r1, [r0] adds r3, 0x1C adds r2, 0x1 cmp r2, 0x3 ble _080B1204 subs r0, r7, r6 lsls r0, 2 ldr r1, _080B1264 adds r5, r0, r1 ldrb r1, [r5, 0x15] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080B123C ldrh r0, [r5, 0x8] ldrh r1, [r5, 0x6] bl AreMovesContestCombo lsls r0, 24 cmp r0, 0 bne _080B123C ldrb r1, [r5, 0x15] movs r0, 0x11 negs r0, r0 ands r0, r1 strb r0, [r5, 0x15] _080B123C: ldr r0, _080B126C adds r0, r4, r0 ldr r0, [r0] bl _call_via_r0 subs r0, r7, r6 lsls r0, 2 ldr r1, _080B1264 adds r2, r0, r1 ldrb r1, [r2, 0x10] movs r0, 0x30 ands r0, r1 cmp r0, 0x10 bne _080B1270 ldrh r1, [r2, 0x2] subs r1, 0xA movs r0, 0xD ldrsb r0, [r2, r0] b _080B128A .align 2, 0 _080B1264: .4byte 0x02019260 _080B1268: .4byte gContestEffects _080B126C: .4byte gContestEffectFuncs _080B1270: ldrb r1, [r2, 0x11] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080B1284 movs r1, 0xD ldrsb r1, [r2, r1] lsls r0, r1, 1 adds r0, r1 b _080B1288 _080B1284: movs r0, 0xD ldrsb r0, [r2, r0] _080B1288: ldrh r1, [r2, 0x2] _080B128A: adds r0, r1 strh r0, [r2, 0x2] subs r0, r7, r6 lsls r0, 2 ldr r1, _080B12E8 adds r4, r0, r1 movs r0, 0 strb r0, [r4, 0x16] ldrb r1, [r4, 0x15] subs r0, 0x41 ands r0, r1 strb r0, [r4, 0x15] adds r0, r6, 0 bl sub_80B214C lsls r0, 24 cmp r0, 0 beq _080B1322 ldrh r0, [r4, 0x8] ldrh r1, [r4, 0x6] bl AreMovesContestCombo lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080B12EC ldrb r1, [r4, 0x15] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080B12EC strb r2, [r4, 0x16] movs r0, 0x40 orrs r1, r0 movs r0, 0x11 negs r0, r0 ands r1, r0 movs r0, 0 ldrsh r2, [r4, r0] ldrb r0, [r4, 0x16] muls r0, r2 strb r0, [r4, 0x17] movs r0, 0x8 orrs r1, r0 strb r1, [r4, 0x15] b _080B1322 .align 2, 0 _080B12E8: .4byte 0x02019260 _080B12EC: ldr r2, _080B1310 subs r0, r7, r6 lsls r0, 2 ldr r1, _080B1314 adds r3, r0, r1 ldrh r0, [r3, 0x6] lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x2] cmp r0, 0 beq _080B1318 ldrb r0, [r3, 0x15] movs r1, 0x10 orrs r0, r1 movs r1, 0x40 orrs r0, r1 b _080B1320 .align 2, 0 _080B1310: .4byte gContestMoves _080B1314: .4byte 0x02019260 _080B1318: ldrb r1, [r3, 0x15] movs r0, 0x11 negs r0, r0 ands r0, r1 _080B1320: strb r0, [r3, 0x15] _080B1322: subs r0, r7, r6 lsls r0, 2 ldr r1, _080B139C mov r8, r1 adds r4, r0, r1 ldrb r1, [r4, 0x15] movs r5, 0x1 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080B1348 ldrb r0, [r4, 0xB] lsls r0, 25 lsrs r0, 29 adds r0, 0x1 lsls r1, r0, 2 adds r1, r0 lsls r1, 1 strb r1, [r4, 0x18] _080B1348: ldrb r1, [r4, 0xC] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080B1362 ldrb r0, [r4, 0x15] movs r1, 0x11 negs r1, r1 ands r1, r0 strb r1, [r4, 0x15] movs r0, 0 strh r0, [r4, 0x2] strh r0, [r4] _080B1362: ldrh r0, [r4, 0x6] bl sub_80B19FC mov r2, r8 adds r2, 0xC8 strb r0, [r2] ldrb r1, [r4, 0x11] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080B137A strb r5, [r2] _080B137A: movs r0, 0 ldrsb r0, [r2, r0] cmp r0, 0 ble _080B13A4 mov r0, r8 subs r0, 0x5C ldrb r0, [r0, 0x13] lsls r0, 24 asrs r0, 24 movs r1, 0 ldrsb r1, [r2, r1] adds r0, r1 cmp r0, 0x4 ble _080B13A0 movs r0, 0x3C b _080B13A6 .align 2, 0 _080B139C: .4byte 0x02019260 _080B13A0: movs r0, 0xA b _080B13A6 _080B13A4: movs r0, 0 _080B13A6: strb r0, [r2, 0x2] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 24 lsrs r0, 24 movs r2, 0 b _080B13CA _080B13BE: subs r0, 0x1 lsls r0, 24 lsrs r0, 24 _080B13C4: adds r2, 0x1 cmp r2, 0x3 bgt _080B13D2 _080B13CA: cmp r2, r6 beq _080B13C4 cmp r0, 0 bne _080B13BE _080B13D2: subs r0, r7, r6 lsls r0, 2 ldr r1, _080B13E8 adds r0, r1 strb r2, [r0, 0x1B] _080B13DC: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B13E8: .4byte 0x02019260 thumb_func_end sub_80B114C thumb_func_start sub_80B13EC sub_80B13EC: @ 80B13EC lsls r0, 24 lsrs r0, 24 lsls r2, r0, 3 subs r2, r0 lsls r2, 2 ldr r0, _080B1400 adds r2, r0 strb r1, [r2, 0x13] bx lr .align 2, 0 _080B1400: .4byte 0x02019260 thumb_func_end sub_80B13EC thumb_func_start sub_80B1404 sub_80B1404: @ 80B1404 lsls r0, 24 lsrs r0, 24 lsls r2, r0, 3 subs r2, r0 lsls r2, 2 ldr r0, _080B1418 adds r2, r0 strb r1, [r2, 0x14] bx lr .align 2, 0 _080B1418: .4byte 0x02019260 thumb_func_end sub_80B1404 thumb_func_start sub_80B141C sub_80B141C: @ 80B141C push {lr} lsls r0, 24 lsrs r0, 24 adds r3, r0, 0 lsls r1, 24 lsrs r1, 24 adds r2, r1, 0 cmp r1, 0x3B bls _080B1436 movs r1, 0x35 bl sub_80B13EC b _080B1466 _080B1436: cmp r1, 0x27 bls _080B1442 movs r1, 0x34 bl sub_80B13EC b _080B1466 _080B1442: cmp r1, 0x1D bls _080B144E movs r1, 0x33 bl sub_80B13EC b _080B1466 _080B144E: cmp r1, 0x13 bls _080B145A movs r1, 0x32 bl sub_80B13EC b _080B1466 _080B145A: cmp r2, 0x9 bls _080B1466 adds r0, r3, 0 movs r1, 0x31 bl sub_80B13EC _080B1466: pop {r0} bx r0 thumb_func_end sub_80B141C thumb_func_start sub_80B146C sub_80B146C: @ 80B146C push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r0, _080B14C8 lsls r1, r4, 6 ldr r2, _080B14CC adds r1, r2 bl StringCopy ldr r0, _080B14D0 lsls r1, r4, 3 subs r1, r4 lsls r1, 2 ldr r4, _080B14D4 adds r1, r4 ldrh r2, [r1, 0x6] movs r1, 0xD muls r1, r2 ldr r2, _080B14D8 adds r1, r2 bl StringCopy ldr r2, _080B14DC adds r0, r4, 0 adds r0, 0x70 ldrb r1, [r0, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x6] lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x1] lsls r1, r0, 29 cmp r1, 0 bne _080B14E8 ldr r0, _080B14E0 ldr r1, _080B14E4 bl StringCopy b _080B1538 .align 2, 0 _080B14C8: .4byte 0x020231cc _080B14CC: .4byte 0x02038572 _080B14D0: .4byte 0x020232cc _080B14D4: .4byte 0x02019260 _080B14D8: .4byte gMoveNames _080B14DC: .4byte gContestMoves _080B14E0: .4byte 0x020233cc _080B14E4: .4byte gUnknown_083CC280 _080B14E8: lsrs r0, r1, 29 cmp r0, 0x1 bne _080B1500 ldr r0, _080B14F8 ldr r1, _080B14FC bl StringCopy b _080B1538 .align 2, 0 _080B14F8: .4byte 0x020233cc _080B14FC: .4byte gUnknown_083CC288 _080B1500: lsrs r0, r1, 29 cmp r0, 0x2 bne _080B1518 ldr r0, _080B1510 ldr r1, _080B1514 bl StringCopy b _080B1538 .align 2, 0 _080B1510: .4byte 0x020233cc _080B1514: .4byte gUnknown_083CC290 _080B1518: lsrs r0, r1, 29 cmp r0, 0x3 bne _080B1530 ldr r0, _080B1528 ldr r1, _080B152C bl StringCopy b _080B1538 .align 2, 0 _080B1528: .4byte 0x020233cc _080B152C: .4byte gUnknown_083CC299 _080B1530: ldr r0, _080B1568 ldr r1, _080B156C bl StringCopy _080B1538: ldr r4, _080B1570 ldr r1, _080B1574 lsls r0, r5, 2 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl StringExpandPlaceholders bl sub_80AF138 ldr r0, _080B1578 movs r2, 0xC2 lsls r2, 2 movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r3, 0x1 bl sub_8002EB0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B1568: .4byte 0x020233cc _080B156C: .4byte gUnknown_083CC2A3 _080B1570: .4byte 0x020234cc _080B1574: .4byte gUnknown_083CC188 _080B1578: .4byte 0x0202e908 thumb_func_end sub_80B146C thumb_func_start sub_80B157C sub_80B157C: @ 80B157C lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 ldr r0, _080B1598 adds r1, r0 ldrb r0, [r1, 0xC] movs r2, 0x1 orrs r0, r2 strb r0, [r1, 0xC] movs r0, 0 strh r0, [r1, 0x6] bx lr .align 2, 0 _080B1598: .4byte 0x02019260 thumb_func_end sub_80B157C thumb_func_start sub_80B159C sub_80B159C: @ 80B159C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 movs r0, 0 mov r12, r0 movs r4, 0 ldr r1, _080B1600 mov r9, r1 add r2, sp, 0x4 mov r6, r9 movs r5, 0 adds r3, r2, 0 _080B15B8: mov r0, sp adds r1, r0, r4 adds r0, r4, r6 ldrb r0, [r0] strb r0, [r1] adds r0, r3, r4 strb r5, [r0] adds r4, 0x1 cmp r4, 0x3 ble _080B15B8 movs r4, 0 ldr r7, _080B1604 adds r5, r2, 0 movs r1, 0x1 mov r8, r1 _080B15D6: movs r2, 0 adds r1, r7, 0 _080B15DA: ldrb r0, [r1, 0x19] cmp r0, r4 beq _080B1608 adds r1, 0x1C adds r2, 0x1 cmp r2, 0x3 ble _080B15DA _080B15E8: cmp r2, 0x4 bne _080B1680 movs r2, 0 ldrb r0, [r5] cmp r0, 0 bne _080B1616 ldrb r0, [r7, 0x19] cmp r0, 0xFF bne _080B1616 mov r12, r2 movs r2, 0x1 b _080B163A .align 2, 0 _080B1600: .4byte 0x02038696 _080B1604: .4byte 0x02019260 _080B1608: mov r1, sp adds r0, r1, r2 strb r4, [r0] adds r0, r5, r2 mov r1, r8 strb r1, [r0] b _080B15E8 _080B1616: adds r2, 0x1 cmp r2, 0x3 bgt _080B1672 adds r0, r5, r2 ldrb r0, [r0] cmp r0, 0 bne _080B1616 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r7 ldrb r0, [r0, 0x19] cmp r0, 0xFF bne _080B1616 lsls r0, r2, 24 lsrs r0, 24 mov r12, r0 adds r2, 0x1 _080B163A: cmp r2, 0x3 bgt _080B1672 ldr r6, _080B16C8 lsls r0, r2, 3 subs r0, r2 lsls r3, r0, 2 _080B1646: adds r0, r5, r2 ldrb r0, [r0] cmp r0, 0 bne _080B166A adds r0, r3, r7 ldrb r0, [r0, 0x19] cmp r0, 0xFF bne _080B166A mov r1, r12 adds r0, r1, r6 adds r1, r2, r6 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _080B166A lsls r0, r2, 24 lsrs r0, 24 mov r12, r0 _080B166A: adds r3, 0x1C adds r2, 0x1 cmp r2, 0x3 ble _080B1646 _080B1672: mov r0, sp add r0, r12 strb r4, [r0] mov r1, r12 adds r0, r5, r1 mov r1, r8 strb r1, [r0] _080B1680: adds r4, 0x1 cmp r4, 0x3 ble _080B15D6 movs r4, 0 ldr r5, _080B16CC adds r3, r5, 0 subs r3, 0x60 movs r6, 0xFF movs r7, 0x3F _080B1692: adds r1, r4, r5 mov r0, sp adds r2, r0, r4 ldrb r0, [r2] strb r0, [r1] ldrb r0, [r3, 0x9] orrs r0, r6 strb r0, [r3, 0x9] ldrb r1, [r3] adds r0, r7, 0 ands r0, r1 strb r0, [r3] mov r0, r9 adds r1, r4, r0 ldrb r0, [r2] strb r0, [r1] adds r3, 0x1C adds r4, 0x1 cmp r4, 0x3 ble _080B1692 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B16C8: .4byte 0x02038696 _080B16CC: .4byte 0x020192d0 thumb_func_end sub_80B159C thumb_func_start sub_80B16D0 sub_80B16D0: @ 80B16D0 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x30] adds r1, r0, 0x1 strh r1, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x54 ble _080B1702 movs r0, 0 strh r0, [r2, 0x30] adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] ldr r0, _080B1708 str r0, [r2, 0x1C] ldr r2, _080B170C ldrb r1, [r2, 0x6] movs r0, 0x11 negs r0, r0 ands r0, r1 strb r0, [r2, 0x6] _080B1702: pop {r0} bx r0 .align 2, 0 _080B1708: .4byte SpriteCallbackDummy _080B170C: .4byte 0x02019204 thumb_func_end sub_80B16D0 thumb_func_start sub_80B1710 sub_80B1710: @ 80B1710 push {r4,r5,lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _080B172C ldrb r5, [r0, 0x12] cmp r1, 0x8 bls _080B1720 b _080B18C0 _080B1720: lsls r0, r1, 2 ldr r1, _080B1730 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080B172C: .4byte 0x02019204 _080B1730: .4byte _080B1734 .align 2, 0 _080B1734: .4byte _080B1758 .4byte _080B1758 .4byte _080B1788 .4byte _080B17BC .4byte _080B17F0 .4byte _080B1824 .4byte _080B1858 .4byte _080B18C0 .4byte _080B188C _080B1758: ldr r0, _080B177C lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x2E] ldr r2, _080B1780 ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, _080B1784 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x20 bl audio_play b _080B18E4 .align 2, 0 _080B177C: .4byte 0x02020004 _080B1780: .4byte 0x000003ff _080B1784: .4byte 0xfffffc00 _080B1788: ldr r0, _080B17B0 lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 adds r1, r0 ldrh r2, [r1, 0x2E] adds r2, 0x4 ldr r3, _080B17B4 adds r0, r3, 0 ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, _080B17B8 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x1F bl audio_play b _080B18E4 .align 2, 0 _080B17B0: .4byte 0x02020004 _080B17B4: .4byte 0x000003ff _080B17B8: .4byte 0xfffffc00 _080B17BC: ldr r0, _080B17E4 lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 adds r1, r0 ldrh r2, [r1, 0x2E] adds r2, 0x8 ldr r3, _080B17E8 adds r0, r3, 0 ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, _080B17EC ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x1F bl audio_play b _080B18E4 .align 2, 0 _080B17E4: .4byte 0x02020004 _080B17E8: .4byte 0x000003ff _080B17EC: .4byte 0xfffffc00 _080B17F0: ldr r0, _080B1818 lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 adds r1, r0 ldrh r2, [r1, 0x2E] adds r2, 0xC ldr r3, _080B181C adds r0, r3, 0 ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, _080B1820 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x2D bl audio_play b _080B18E4 .align 2, 0 _080B1818: .4byte 0x02020004 _080B181C: .4byte 0x000003ff _080B1820: .4byte 0xfffffc00 _080B1824: ldr r0, _080B184C lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 adds r1, r0 ldrh r2, [r1, 0x2E] adds r2, 0xC ldr r3, _080B1850 adds r0, r3, 0 ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, _080B1854 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x2D bl audio_play b _080B18E4 .align 2, 0 _080B184C: .4byte 0x02020004 _080B1850: .4byte 0x000003ff _080B1854: .4byte 0xfffffc00 _080B1858: ldr r0, _080B1880 lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 adds r1, r0 ldrh r2, [r1, 0x2E] adds r2, 0x10 ldr r3, _080B1884 adds r0, r3, 0 ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, _080B1888 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x2D bl audio_play b _080B18E4 .align 2, 0 _080B1880: .4byte 0x02020004 _080B1884: .4byte 0x000003ff _080B1888: .4byte 0xfffffc00 _080B188C: ldr r0, _080B18B4 lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 adds r1, r0 ldrh r2, [r1, 0x2E] adds r2, 0x18 ldr r3, _080B18B8 adds r0, r3, 0 ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, _080B18BC ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0xC3 bl audio_play b _080B18E4 .align 2, 0 _080B18B4: .4byte 0x02020004 _080B18B8: .4byte 0x000003ff _080B18BC: .4byte 0xfffffc00 _080B18C0: ldr r0, _080B1914 lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 adds r1, r0 ldrh r2, [r1, 0x2E] adds r2, 0x14 ldr r3, _080B1918 adds r0, r3, 0 ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, _080B191C ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x2D bl audio_play _080B18E4: adds r2, r4, 0 ldr r4, _080B1914 adds r2, r5 lsls r2, 2 adds r1, r2, r4 movs r0, 0 strh r0, [r1, 0x30] adds r1, 0x3E ldrb r3, [r1] subs r0, 0x5 ands r0, r3 strb r0, [r1] adds r4, 0x1C adds r2, r4 ldr r0, _080B1920 str r0, [r2] ldr r2, _080B1924 ldrb r0, [r2, 0x6] movs r1, 0x10 orrs r0, r1 strb r0, [r2, 0x6] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B1914: .4byte 0x02020004 _080B1918: .4byte 0x000003ff _080B191C: .4byte 0xfffffc00 _080B1920: .4byte sub_80B16D0 _080B1924: .4byte 0x02019204 thumb_func_end sub_80B1710 thumb_func_start sub_80B1928 sub_80B1928: @ 80B1928 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r5, 0 ldr r6, _080B19BC ldr r0, _080B19C0 mov r10, r0 movs r1, 0x58 adds r1, r6 mov r9, r1 ldr r0, _080B19C4 mov r8, r0 ldr r7, _080B19C8 _080B1946: movs r0, 0x13 ldrsb r0, [r6, r0] ldr r4, _080B19CC cmp r5, r0 bge _080B1952 adds r4, 0x40 _080B1952: mov r0, r9 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r10 ldrh r1, [r0, 0x4] lsls r1, 22 lsrs r1, 22 adds r0, r5, 0 adds r0, 0x11 adds r1, r0 lsls r1, 5 add r1, r8 adds r0, r4, 0 adds r2, r7, 0 bl CpuSet adds r0, r4, 0 adds r0, 0x20 mov r1, r9 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r1, r10 ldrh r1, [r1, 0x4] lsls r1, 22 lsrs r1, 22 adds r2, r5, 0 adds r2, 0x19 adds r1, r2 lsls r1, 5 add r1, r8 adds r2, r7, 0 bl CpuSet movs r0, 0x13 ldrsb r0, [r6, r0] cmp r0, 0x4 ble _080B19A8 bl sub_80B1A2C _080B19A8: adds r5, 0x1 cmp r5, 0x4 ble _080B1946 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B19BC: .4byte 0x02019204 _080B19C0: .4byte 0x02020004 _080B19C4: .4byte 0x06010000 _080B19C8: .4byte REG_BG0CNT _080B19CC: .4byte gUnknown_08E6978C thumb_func_end sub_80B1928 thumb_func_start unref_sub_80B19D0 unref_sub_80B19D0: @ 80B19D0 push {lr} sub sp, 0x18 ldr r1, _080B19F4 add r0, sp, 0x4 bl StringCopy ldr r0, _080B19F8 movs r2, 0xAA lsls r2, 2 movs r1, 0 str r1, [sp] add r1, sp, 0x4 movs r3, 0 bl sub_8003460 add sp, 0x18 pop {r0} bx r0 .align 2, 0 _080B19F4: .4byte gUnknown_083CC2EC _080B19F8: .4byte 0x03004210 thumb_func_end unref_sub_80B19D0 thumb_func_start sub_80B19FC sub_80B19FC: @ 80B19FC lsls r0, 16 ldr r3, _080B1A20 ldr r1, _080B1A24 lsrs r0, 13 adds r0, r1 ldrb r1, [r0, 0x1] lsls r1, 29 lsrs r1, 29 ldr r0, _080B1A28 ldrh r2, [r0] lsls r0, r2, 2 adds r0, r2 adds r1, r0 adds r1, r3 movs r0, 0 ldrsb r0, [r1, r0] bx lr .align 2, 0 _080B1A20: .4byte gContestExcitementTable _080B1A24: .4byte gContestMoves _080B1A28: .4byte 0x0203869c thumb_func_end sub_80B19FC thumb_func_start sub_80B1A2C sub_80B1A2C: @ 80B1A2C push {r4,r5,lr} ldr r0, _080B1A60 movs r1, 0xA bl CreateTask adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, _080B1A64 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 movs r0, 0x1 strh r0, [r4, 0xA] ldr r0, _080B1A68 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xC] adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080B1A60: .4byte c3_08130B10 _080B1A64: .4byte 0x03004b20 _080B1A68: .4byte 0x0000abe2 thumb_func_end sub_80B1A2C thumb_func_start c3_08130B10 c3_08130B10: @ 80B1A6C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080B1A9C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r2, r0, r1 ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080B1B06 movs r0, 0 strh r0, [r2, 0x8] movs r3, 0xE ldrsh r0, [r2, r3] cmp r0, 0 bne _080B1AA0 ldrh r0, [r2, 0x10] adds r0, 0x1 b _080B1AA4 .align 2, 0 _080B1A9C: .4byte 0x03004b20 _080B1AA0: ldrh r0, [r2, 0x10] subs r0, 0x1 _080B1AA4: strh r0, [r2, 0x10] lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0xC ldrsh r0, [r4, r1] lsls r0, 4 movs r3, 0x84 lsls r3, 1 adds r6, r3, 0 adds r0, r6 lsls r0, 16 lsrs r0, 16 ldrb r2, [r4, 0x10] ldr r3, _080B1B0C movs r1, 0x1 bl BlendPalette movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0 beq _080B1AD6 cmp r0, 0x10 bne _080B1B06 _080B1AD6: ldrh r0, [r4, 0xE] movs r1, 0x1 eors r0, r1 strh r0, [r4, 0xE] ldr r0, _080B1B10 ldrb r0, [r0, 0x13] lsls r0, 24 asrs r0, 24 cmp r0, 0x4 bgt _080B1B06 movs r3, 0xC ldrsh r0, [r4, r3] lsls r0, 4 adds r0, r6 lsls r0, 16 lsrs r0, 16 movs r1, 0x1 movs r2, 0 movs r3, 0x1F bl BlendPalette adds r0, r5, 0 bl DestroyTask _080B1B06: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B1B0C: .4byte 0x00007fff _080B1B10: .4byte 0x02019204 thumb_func_end c3_08130B10 thumb_func_start sub_80B1B14 sub_80B1B14: @ 80B1B14 push {r4,lr} ldr r0, _080B1B58 movs r1, 0xA bl CreateTask ldr r4, _080B1B5C ldr r3, _080B1B60 adds r2, r3, 0 adds r2, 0x58 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _080B1B64 strh r1, [r0, 0x24] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldrb r0, [r3, 0x6] movs r1, 0x40 orrs r0, r1 strb r0, [r3, 0x6] pop {r4} pop {r0} bx r0 .align 2, 0 _080B1B58: .4byte sub_80B1B68 _080B1B5C: .4byte 0x02020004 _080B1B60: .4byte 0x02019204 _080B1B64: .4byte 0x0000ffba thumb_func_end sub_80B1B14 thumb_func_start sub_80B1B68 sub_80B1B68: @ 80B1B68 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r3, r0, 0 ldr r4, _080B1BD0 adds r0, r4, 0 adds r0, 0x58 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080B1BD4 adds r2, r0, r1 ldr r0, _080B1BD8 lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 movs r5, 0xD0 lsls r5, 3 adds r0, r5, 0 ldrh r5, [r1, 0x1C] adds r0, r5 strh r0, [r1, 0x1C] lsls r0, 16 asrs r0, 24 ldrh r5, [r2, 0x24] adds r0, r5 strh r0, [r2, 0x24] ldrb r0, [r1, 0x1C] strh r0, [r1, 0x1C] movs r1, 0x24 ldrsh r0, [r2, r1] cmp r0, 0 ble _080B1BB2 movs r0, 0 strh r0, [r2, 0x24] _080B1BB2: movs r5, 0x24 ldrsh r0, [r2, r5] cmp r0, 0 bne _080B1BCA ldrb r1, [r4, 0x6] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r4, 0x6] adds r0, r3, 0 bl DestroyTask _080B1BCA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B1BD0: .4byte 0x02019204 _080B1BD4: .4byte 0x02020004 _080B1BD8: .4byte 0x03004b20 thumb_func_end sub_80B1B68 thumb_func_start sub_80B1BDC sub_80B1BDC: @ 80B1BDC push {r4-r6,lr} ldr r6, _080B1C04 ldr r4, _080B1C08 adds r5, r4, 0 adds r5, 0x58 ldrb r0, [r5] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 adds r1, 0x3E ldrb r0, [r1] lsls r0, 29 cmp r0, 0 bge _080B1C0C ldrb r1, [r4, 0x6] movs r0, 0x41 negs r0, r0 ands r0, r1 b _080B1C28 .align 2, 0 _080B1C04: .4byte 0x02020004 _080B1C08: .4byte 0x02019204 _080B1C0C: ldr r0, _080B1C30 movs r1, 0xA bl CreateTask ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0 strh r1, [r0, 0x24] ldrb r0, [r4, 0x6] movs r1, 0x40 orrs r0, r1 _080B1C28: strb r0, [r4, 0x6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B1C30: .4byte sub_80B1C34 thumb_func_end sub_80B1BDC thumb_func_start sub_80B1C34 sub_80B1C34: @ 80B1C34 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 ldr r5, _080B1CAC adds r0, r5, 0 adds r0, 0x58 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080B1CB0 adds r3, r0, r1 ldr r0, _080B1CB4 lsls r2, r4, 2 adds r2, r4 lsls r2, 3 adds r2, r0 movs r1, 0xD0 lsls r1, 3 adds r0, r1, 0 ldrh r1, [r2, 0x1C] adds r0, r1 strh r0, [r2, 0x1C] lsls r0, 16 asrs r0, 24 ldrh r1, [r3, 0x24] subs r1, r0 strh r1, [r3, 0x24] ldrb r0, [r2, 0x1C] strh r0, [r2, 0x1C] movs r2, 0x24 ldrsh r0, [r3, r2] movs r1, 0x46 negs r1, r1 cmp r0, r1 bge _080B1C82 ldr r0, _080B1CB8 strh r0, [r3, 0x24] _080B1C82: movs r2, 0x24 ldrsh r0, [r3, r2] cmp r0, r1 bne _080B1CA6 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrb r1, [r5, 0x6] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r5, 0x6] adds r0, r4, 0 bl DestroyTask _080B1CA6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B1CAC: .4byte 0x02019204 _080B1CB0: .4byte 0x02020004 _080B1CB4: .4byte 0x03004b20 _080B1CB8: .4byte 0x0000ffba thumb_func_end sub_80B1C34 thumb_func_start sub_80B1CBC sub_80B1CBC: @ 80B1CBC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080B1CF0 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080B1CF4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 lsls r4, 24 asrs r4, 24 strh r4, [r1, 0x8] ldr r2, _080B1CF8 ldrb r0, [r2, 0x6] movs r1, 0x20 orrs r0, r1 strb r0, [r2, 0x6] pop {r4} pop {r0} bx r0 .align 2, 0 _080B1CF0: .4byte sub_80B1CFC _080B1CF4: .4byte 0x03004b20 _080B1CF8: .4byte 0x02019204 thumb_func_end sub_80B1CBC thumb_func_start sub_80B1CFC sub_80B1CFC: @ 80B1CFC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080B1D20 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x1C ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080B1D30 cmp r0, 0x1 bgt _080B1D24 cmp r0, 0 beq _080B1D2A b _080B1D78 .align 2, 0 _080B1D20: .4byte 0x03004b20 _080B1D24: cmp r0, 0x2 beq _080B1D50 b _080B1D78 _080B1D2A: bl sub_80B1B14 b _080B1D44 _080B1D30: ldr r0, _080B1D4C ldrb r1, [r0, 0x6] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080B1D78 movs r0, 0x8 ldrsb r0, [r4, r0] bl nullsub_18 _080B1D44: ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] b _080B1D78 .align 2, 0 _080B1D4C: .4byte 0x02019204 _080B1D50: ldrh r0, [r4, 0x1E] adds r1, r0, 0x1 strh r1, [r4, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080B1D78 movs r0, 0 strh r0, [r4, 0x1E] bl sub_80B1928 ldr r2, _080B1D80 ldrb r1, [r2, 0x6] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r2, 0x6] adds r0, r5, 0 bl DestroyTask _080B1D78: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B1D80: .4byte 0x02019204 thumb_func_end sub_80B1CFC thumb_func_start unref_sub_80B1D84 unref_sub_80B1D84: @ 80B1D84 ldr r3, _080B1DB0 ldr r2, _080B1DB4 adds r2, 0x58 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0 strh r1, [r0, 0x24] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] bx lr .align 2, 0 _080B1DB0: .4byte 0x02020004 _080B1DB4: .4byte 0x02019204 thumb_func_end unref_sub_80B1D84 thumb_func_start unref_sub_80B1DB8 unref_sub_80B1DB8: @ 80B1DB8 ldr r2, _080B1DD4 ldr r0, _080B1DD8 adds r0, 0x58 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] bx lr .align 2, 0 _080B1DD4: .4byte 0x02020004 _080B1DD8: .4byte 0x02019204 thumb_func_end unref_sub_80B1DB8 thumb_func_start sub_80B1DDC sub_80B1DDC: @ 80B1DDC push {lr} ldr r0, _080B1DF4 movs r1, 0xF bl CreateTask ldr r2, _080B1DF8 ldrb r0, [r2, 0x6] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x6] pop {r0} bx r0 .align 2, 0 _080B1DF4: .4byte sub_80B1DFC _080B1DF8: .4byte 0x02019204 thumb_func_end sub_80B1DDC thumb_func_start sub_80B1DFC sub_80B1DFC: @ 80B1DFC push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r2, _080B1E3C lsls r4, r5, 2 adds r0, r4, r5 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x1C] adds r1, r0, 0x1 strh r1, [r3, 0x1C] lsls r0, 16 asrs r0, 16 adds r6, r2, 0 cmp r0, 0x6 ble _080B1E8E movs r0, 0 strh r0, [r3, 0x1C] movs r1, 0x1E ldrsh r0, [r3, r1] cmp r0, 0 bne _080B1E50 ldr r1, _080B1E40 ldr r2, _080B1E44 ldr r0, _080B1E48 str r1, [r0] str r2, [r0, 0x4] ldr r1, _080B1E4C str r1, [r0, 0x8] ldr r0, [r0, 0x8] b _080B1E66 .align 2, 0 _080B1E3C: .4byte 0x03004b20 _080B1E40: .4byte 0x02016800 _080B1E44: .4byte 0x06002000 _080B1E48: .4byte 0x040000d4 _080B1E4C: .4byte 0x84000400 _080B1E50: ldr r1, _080B1E94 ldr r2, _080B1E98 ldr r0, _080B1E9C str r1, [r0] str r2, [r0, 0x4] ldr r1, _080B1EA0 str r1, [r0, 0x8] ldr r0, [r0, 0x8] ldrh r0, [r3, 0x20] adds r0, 0x1 strh r0, [r3, 0x20] _080B1E66: adds r0, r4, 0 adds r0, r5 lsls r0, 3 adds r0, r6 ldrh r1, [r0, 0x1E] movs r2, 0x1 eors r1, r2 strh r1, [r0, 0x1E] movs r1, 0x20 ldrsh r0, [r0, r1] cmp r0, 0x9 bne _080B1E8E ldr r2, _080B1EA4 ldrb r1, [r2, 0x6] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x6] adds r0, r5, 0 bl DestroyTask _080B1E8E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B1E94: .4byte 0x02015800 _080B1E98: .4byte 0x06002000 _080B1E9C: .4byte 0x040000d4 _080B1EA0: .4byte 0x84000400 _080B1EA4: .4byte 0x02019204 thumb_func_end sub_80B1DFC thumb_func_start sub_80B1EA8 sub_80B1EA8: @ 80B1EA8 push {r4-r7,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r0, _080B1EE4 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r6, r0, 24 lsls r4, 24 cmp r4, 0 ble _080B1F08 ldr r7, _080B1EE8 lsls r0, r5, 24 adds r4, r0, 0 cmp r4, 0 ble _080B1EF0 movs r5, 0 ldr r2, _080B1EEC movs r1, 0x13 ldrsb r1, [r2, r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 24 lsrs r3, r0, 24 b _080B1F1E .align 2, 0 _080B1EE4: .4byte sub_80B1F4C _080B1EE8: .4byte 0x0000237e _080B1EEC: .4byte 0x02019204 _080B1EF0: ldr r2, _080B1F04 movs r1, 0x13 ldrsb r1, [r2, r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 24 lsrs r5, r0, 24 movs r3, 0 b _080B1F1E .align 2, 0 _080B1F04: .4byte 0x02019204 _080B1F08: movs r7, 0 lsls r0, r5, 24 adds r4, r0, 0 cmp r4, 0 ble _080B1F18 movs r5, 0 movs r3, 0xC b _080B1F1C _080B1F18: movs r5, 0xC movs r3, 0 _080B1F1C: ldr r2, _080B1F44 _080B1F1E: ldr r1, _080B1F48 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 strh r7, [r0, 0x8] strh r5, [r0, 0xA] asrs r1, r4, 24 strh r1, [r0, 0xC] strh r3, [r0, 0xE] ldrb r1, [r2, 0x7] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2, 0x7] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B1F44: .4byte 0x02019204 _080B1F48: .4byte 0x03004b20 thumb_func_end sub_80B1EA8 thumb_func_start sub_80B1F4C sub_80B1F4C: @ 80B1F4C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r2, _080B1F7C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x1C] adds r1, r0, 0x1 strh r1, [r3, 0x1C] lsls r0, 16 cmp r0, 0 blt _080B1FC4 movs r0, 0 strh r0, [r3, 0x1C] movs r1, 0xC ldrsh r0, [r3, r1] cmp r0, 0 ble _080B1F80 ldrh r0, [r3, 0xA] adds r0, 0x1 b _080B1F84 .align 2, 0 _080B1F7C: .4byte 0x03004b20 _080B1F80: ldrh r0, [r3, 0xA] subs r0, 0x1 _080B1F84: strh r0, [r3, 0xA] lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r2 ldrb r2, [r4, 0xA] ldrh r3, [r4, 0x8] movs r0, 0x11 movs r1, 0x1 bl BlendPalette ldrb r2, [r4, 0xA] ldrh r3, [r4, 0x8] movs r0, 0x1A movs r1, 0x1 bl BlendPalette movs r2, 0xA ldrsh r1, [r4, r2] movs r2, 0xE ldrsh r0, [r4, r2] cmp r1, r0 bne _080B1FC4 adds r0, r5, 0 bl DestroyTask ldr r2, _080B1FCC ldrb r1, [r2, 0x7] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2, 0x7] _080B1FC4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B1FCC: .4byte 0x02019204 thumb_func_end sub_80B1F4C thumb_func_start sub_80B1FD0 sub_80B1FD0: @ 80B1FD0 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r5, 0 ldr r0, _080B204C ldr r6, _080B2050 adds r4, r0, 0 adds r4, 0xD8 adds r7, r0, 0 _080B1FE8: ldrb r1, [r7, 0x10] movs r0, 0xC0 ands r0, r1 cmp r0, 0 beq _080B2064 mov r0, r8 cmp r0, 0 beq _080B2064 lsls r0, r5, 24 lsrs r0, 24 bl sub_80B208C ldrb r2, [r4, 0x1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r6 ldrh r1, [r1, 0x4] lsls r1, 22 lsrs r1, 17 ldr r2, _080B2054 adds r1, r2 ldr r2, _080B2058 bl CpuSet ldrb r0, [r4, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldr r2, _080B205C ldr r0, _080B2060 adds r0, r5, r0 ldrb r0, [r0] adds r0, r2 ldrb r0, [r0] strh r0, [r1, 0x22] ldrb r1, [r4, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] movs r3, 0x5 negs r3, r3 adds r2, r3, 0 ands r1, r2 b _080B2076 .align 2, 0 _080B204C: .4byte 0x02019260 _080B2050: .4byte 0x02020004 _080B2054: .4byte 0x060100a0 _080B2058: .4byte REG_BG0HOFS _080B205C: .4byte gUnknown_083CA33C _080B2060: .4byte 0x02038696 _080B2064: ldrb r1, [r4, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 _080B2076: strb r1, [r0] adds r4, 0x4 adds r7, 0x1C adds r5, 0x1 cmp r5, 0x3 ble _080B1FE8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80B1FD0 thumb_func_start sub_80B208C sub_80B208C: @ 80B208C push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 ldr r0, _080B20B0 adds r2, r1, r0 ldrb r1, [r2, 0x10] movs r0, 0xC0 ands r0, r1 cmp r0, 0x40 bne _080B20B8 ldrb r0, [r2, 0x19] lsls r0, 6 ldr r1, _080B20B4 adds r0, r1 b _080B20BA .align 2, 0 _080B20B0: .4byte 0x02019260 _080B20B4: .4byte gUnknown_08E69478 _080B20B8: ldr r0, _080B20C0 _080B20BA: pop {r1} bx r1 .align 2, 0 _080B20C0: .4byte gUnknown_08E69578 thumb_func_end sub_80B208C thumb_func_start unref_sub_80B20C4 unref_sub_80B20C4: @ 80B20C4 push {r4-r7,lr} movs r6, 0 ldr r7, _080B2134 _080B20CA: adds r0, r6, r7 ldrb r0, [r0] cmp r0, 0 beq _080B2126 lsls r0, r6, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl sub_80AF59C lsls r0, 24 cmp r0, 0 bne _080B2126 ldr r0, _080B2138 adds r0, r6, r0 ldrb r0, [r0] lsls r4, r0, 2 adds r4, r0 adds r4, 0x2 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x3 bl sub_80AEFE8 lsls r0, 16 lsrs r0, 16 lsls r4, 6 ldr r2, _080B213C adds r1, r4, r2 strh r0, [r1] ldr r1, _080B2140 adds r2, r4, r1 adds r1, r0, 0x1 strh r1, [r2] ldr r1, _080B2144 adds r2, r4, r1 adds r1, r0, 0 adds r1, 0x10 strh r1, [r2] ldr r2, _080B2148 adds r4, r2 adds r0, 0x11 strh r0, [r4] movs r0, 0x63 bl audio_play _080B2126: adds r6, 0x1 cmp r6, 0x3 ble _080B20CA pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B2134: .4byte 0x020192dd _080B2138: .4byte 0x02038696 _080B213C: .4byte 0x0600c028 _080B2140: .4byte 0x0600c02a _080B2144: .4byte 0x0600c068 _080B2148: .4byte 0x0600c06a thumb_func_end unref_sub_80B20C4 thumb_func_start sub_80B214C sub_80B214C: @ 80B214C push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 ldr r0, _080B2178 adds r2, r1, r0 ldrb r1, [r2, 0x15] movs r3, 0x1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _080B2172 ldrb r1, [r2, 0xC] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080B217C _080B2172: movs r0, 0 b _080B217E .align 2, 0 _080B2178: .4byte 0x02019260 _080B217C: movs r0, 0x1 _080B217E: pop {r1} bx r1 thumb_func_end sub_80B214C thumb_func_start sub_80B2184 sub_80B2184: @ 80B2184 push {r4-r7,lr} sub sp, 0x4 ldr r4, _080B2250 ldrb r1, [r4] movs r0, 0x4 negs r0, r0 ands r0, r1 strb r0, [r4] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 strb r0, [r4, 0x1] ldrb r1, [r4, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r4, 0x1] ldr r0, _080B2254 movs r2, 0xF0 strh r2, [r0] ldr r0, _080B2258 movs r1, 0xA0 strh r1, [r0] ldr r0, _080B225C strh r2, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _080B2260 movs r0, 0 str r0, [sp] ldr r0, _080B2264 mov r2, sp str r2, [r0] str r1, [r0, 0x4] ldr r2, _080B2268 str r2, [r0, 0x8] ldr r0, [r0, 0x8] ldr r0, _080B226C bl LZDecompressVram ldrb r1, [r4] movs r2, 0xD negs r2, r2 adds r0, r2, 0 ands r0, r1 strb r0, [r4] movs r4, 0 ldr r6, _080B2270 adds r7, r2, 0 movs r5, 0x4 ldr r3, _080B2274 _080B21EE: ldrb r0, [r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r2, [r1, 0x5] adds r0, r7, 0 ands r0, r2 orrs r0, r5 strb r0, [r1, 0x5] ldrb r0, [r3, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r2, [r1, 0x5] adds r0, r7, 0 ands r0, r2 orrs r0, r5 strb r0, [r1, 0x5] adds r3, 0x4 adds r4, 0x1 cmp r4, 0x3 ble _080B21EE ldr r3, _080B2278 ldrb r2, [r3] movs r1, 0x4 negs r1, r1 adds r0, r1, 0 ands r0, r2 movs r4, 0x1 orrs r0, r4 strb r0, [r3] ldr r2, _080B227C ldrb r0, [r2] ands r1, r0 orrs r1, r4 strb r1, [r2] adds r2, 0x2 ldrb r1, [r2, 0x1] movs r0, 0x3F ands r0, r1 movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x1] add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B2250: .4byte REG_BG1CNT _080B2254: .4byte 0x030042c0 _080B2258: .4byte 0x030041b4 _080B225C: .4byte REG_BG1HOFS _080B2260: .4byte 0x0600f000 _080B2264: .4byte 0x040000d4 _080B2268: .4byte 0x85000400 _080B226C: .4byte gUnknown_08D17C3C _080B2270: .4byte 0x02020004 _080B2274: .4byte 0x02019338 _080B2278: .4byte REG_BG2CNT _080B227C: .4byte REG_BG0CNT thumb_func_end sub_80B2184 thumb_func_start sub_80B2280 sub_80B2280: @ 80B2280 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r2, _080B2358 movs r3, 0x80 lsls r3, 6 ldr r0, _080B235C mov r12, r0 ldr r0, _080B2360 mov r8, r0 movs r5, 0 ldr r1, _080B2364 movs r4, 0x80 lsls r4, 5 ldr r6, _080B2368 movs r7, 0x85 lsls r7, 24 _080B22A4: str r5, [sp] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080B22A4 str r5, [sp] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 orrs r0, r7 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, _080B236C movs r2, 0 str r2, [sp] ldr r0, _080B2364 mov r3, sp str r3, [r0] str r1, [r0, 0x4] ldr r1, _080B2368 str r1, [r0, 0x8] ldr r0, [r0, 0x8] mov r0, r12 strh r2, [r0] mov r3, r8 strh r2, [r3] ldr r2, _080B2370 ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldrb r1, [r2, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r2, 0x1] ldrb r1, [r2, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r2, 0x1] ldrb r1, [r2] movs r3, 0xD negs r3, r3 adds r0, r3, 0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r2] movs r4, 0 ldr r5, _080B2374 adds r6, r3, 0 ldr r3, _080B2378 _080B231E: ldrb r0, [r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r2, [r1, 0x5] adds r0, r6, 0 ands r0, r2 strb r0, [r1, 0x5] ldrb r0, [r3, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r2, [r1, 0x5] adds r0, r6, 0 ands r0, r2 strb r0, [r1, 0x5] adds r3, 0x4 adds r4, 0x1 cmp r4, 0x3 ble _080B231E add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B2358: .4byte 0x06008000 _080B235C: .4byte 0x030042c0 _080B2360: .4byte 0x030041b4 _080B2364: .4byte 0x040000d4 _080B2368: .4byte 0x85000400 _080B236C: .4byte 0x0600f000 _080B2370: .4byte REG_BG1CNT _080B2374: .4byte 0x02020004 _080B2378: .4byte 0x02019338 thumb_func_end sub_80B2280 thumb_func_start sub_80B237C sub_80B237C: @ 80B237C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080B23AC movs r0, 0 strh r0, [r1] ldr r1, _080B23B0 movs r0, 0xA0 strh r0, [r1] movs r0, 0x62 movs r1, 0 bl audio_play_and_stuff ldr r1, _080B23B4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080B23B8 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080B23AC: .4byte 0x030042c0 _080B23B0: .4byte 0x030041b4 _080B23B4: .4byte 0x03004b20 _080B23B8: .4byte sub_80B23BC thumb_func_end sub_80B237C thumb_func_start sub_80B23BC sub_80B23BC: @ 80B23BC push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r1, _080B23F4 ldrh r0, [r1] subs r0, 0x7 strh r0, [r1] lsls r0, 16 cmp r0, 0 bge _080B23D4 movs r0, 0 strh r0, [r1] _080B23D4: ldrh r2, [r1] cmp r2, 0 bne _080B23EE ldr r0, _080B23F8 lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 strh r2, [r1, 0x8] strh r2, [r1, 0xA] strh r2, [r1, 0xC] ldr r0, _080B23FC str r0, [r1] _080B23EE: pop {r0} bx r0 .align 2, 0 _080B23F4: .4byte 0x030041b4 _080B23F8: .4byte 0x03004b20 _080B23FC: .4byte sub_80B2400 thumb_func_end sub_80B23BC thumb_func_start sub_80B2400 sub_80B2400: @ 80B2400 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080B2424 lsls r3, r4, 2 adds r0, r3, r4 lsls r0, 3 adds r5, r0, r1 movs r0, 0x8 ldrsh r1, [r5, r0] cmp r1, 0x1 beq _080B247C cmp r1, 0x1 bgt _080B2428 cmp r1, 0 beq _080B2432 b _080B24FC .align 2, 0 _080B2424: .4byte 0x03004b20 _080B2428: cmp r1, 0x2 beq _080B24D6 cmp r1, 0x3 beq _080B24EC b _080B24FC _080B2432: movs r2, 0 adds r6, r3, 0 ldr r5, _080B2470 ldr r3, _080B2474 _080B243A: adds r0, r2, r5 adds r1, r2, r3 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x3 ble _080B243A bl sub_80AFA5C bl sub_80B0588 bl sub_80AEF50 bl sub_80B1118 movs r0, 0x1 bl sub_80B1FD0 bl sub_80AFFA0 ldr r0, _080B2478 adds r1, r6, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x8] b _080B24FC .align 2, 0 _080B2470: .4byte 0x02019218 _080B2474: .4byte 0x02038696 _080B2478: .4byte 0x03004b20 _080B247C: ldr r0, _080B24C0 ldrb r0, [r0] ands r1, r0 cmp r1, 0 beq _080B24D0 ldr r2, _080B24C4 ldrb r0, [r2, 0x7] movs r1, 0x4 orrs r0, r1 strb r0, [r2, 0x7] bl sub_80AE074 lsls r0, 24 cmp r0, 0 beq _080B249E bl sub_80AF438 _080B249E: ldr r4, _080B24C8 adds r0, r4, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080B24CC adds r1, r4, 0 bl SetTaskFuncWithFollowupFunc bl sub_80AF860 movs r0, 0x2 strh r0, [r5, 0x8] b _080B24FC .align 2, 0 _080B24C0: .4byte 0x0203869a _080B24C4: .4byte 0x02019204 _080B24C8: .4byte sub_80C8C80 _080B24CC: .4byte sub_80AD8DC _080B24D0: bl sub_80AF438 b _080B24E2 _080B24D6: ldr r0, _080B24E8 ldrb r1, [r0, 0x7] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _080B24FC _080B24E2: movs r0, 0x3 strh r0, [r5, 0x8] b _080B24FC .align 2, 0 _080B24E8: .4byte 0x02019204 _080B24EC: bl sub_80AF120 bl sub_80AEB30 movs r0, 0 strh r0, [r5, 0x8] ldr r0, _080B2504 str r0, [r5] _080B24FC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B2504: .4byte sub_80B253C thumb_func_end sub_80B2400 thumb_func_start sub_80B2508 sub_80B2508: @ 80B2508 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080B2530 ldrh r0, [r1] adds r0, 0x7 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0xA0 ble _080B252C ldr r0, _080B2534 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _080B2538 str r0, [r1] _080B252C: pop {r0} bx r0 .align 2, 0 _080B2530: .4byte 0x030041b4 _080B2534: .4byte 0x03004b20 _080B2538: .4byte sub_80ADCDC thumb_func_end sub_80B2508 thumb_func_start sub_80B253C sub_80B253C: @ 80B253C push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080B255C 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, 0x9 bgt _080B2560 adds r0, r2, 0x1 strh r0, [r1, 0xC] b _080B259C .align 2, 0 _080B255C: .4byte 0x03004b20 _080B2560: ldrh r3, [r1, 0xA] movs r4, 0xA ldrsh r0, [r1, r4] cmp r0, 0 bne _080B257E ldrh r2, [r1, 0x8] movs r4, 0x8 ldrsh r0, [r1, r4] cmp r0, 0x10 bne _080B257A adds r0, r3, 0x1 strh r0, [r1, 0xA] b _080B259C _080B257A: adds r0, r2, 0x1 b _080B259A _080B257E: ldrh r0, [r1, 0x8] movs r3, 0x8 ldrsh r2, [r1, r3] cmp r2, 0 bne _080B2598 strh r2, [r1, 0xA] strh r2, [r1, 0xC] ldr r0, _080B2594 str r0, [r1] b _080B259C .align 2, 0 _080B2594: .4byte sub_80B25A4 _080B2598: subs r0, 0x1 _080B259A: strh r0, [r1, 0x8] _080B259C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80B253C thumb_func_start sub_80B25A4 sub_80B25A4: @ 80B25A4 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080B25C4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r1, [r4, 0xC] movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0x9 bgt _080B25C8 adds r0, r1, 0x1 strh r0, [r4, 0xC] b _080B25D8 .align 2, 0 _080B25C4: .4byte 0x03004b20 _080B25C8: movs r0, 0 strh r0, [r4, 0xC] movs r0, 0x61 movs r1, 0 bl audio_play_and_stuff ldr r0, _080B25E0 str r0, [r4] _080B25D8: pop {r4} pop {r0} bx r0 .align 2, 0 _080B25E0: .4byte sub_80B2508 thumb_func_end sub_80B25A4 thumb_func_start sub_80B25E4 sub_80B25E4: @ 80B25E4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r6, 0 ldr r5, _080B26B4 _080B25F6: bl AllocOamMatrix lsls r1, r6, 2 ldr r2, _080B26B8 mov r8, r2 adds r4, r1, r2 ldrb r1, [r4] lsls r3, r1, 4 adds r3, r1 lsls r3, 2 adds r3, r5 lsls r0, 24 lsrs r0, 24 movs r1, 0x1F ands r0, r1 lsls r0, 1 ldrb r1, [r3, 0x3] movs r7, 0x3F negs r7, r7 adds r2, r7, 0 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x3] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r2, [r0, 0x1] movs r3, 0x4 negs r3, r3 adds r1, r3, 0 ands r2, r1 movs r1, 0x1 orrs r2, r1 strb r2, [r0, 0x1] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r9 bl StartSpriteAffineAnim mov r7, r9 cmp r7, 0x2 bne _080B267A ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl AnimateSprite ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r3, 0x5 negs r3, r3 adds r2, r3, 0 ands r1, r2 strb r1, [r0] _080B267A: adds r6, 0x1 cmp r6, 0x3 ble _080B25F6 ldr r0, _080B26BC movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080B26C0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 mov r7, r9 strh r7, [r1, 0x8] ldr r2, _080B26C4 add r2, r8 ldrb r0, [r2, 0x7] movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0x7] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B26B4: .4byte 0x02020004 _080B26B8: .4byte 0x02019338 _080B26BC: .4byte sub_80B26C8 _080B26C0: .4byte 0x03004b20 _080B26C4: .4byte 0xfffffecc thumb_func_end sub_80B25E4 thumb_func_start sub_80B26C8 sub_80B26C8: @ 80B26C8 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r2, _080B2750 ldr r4, _080B2754 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3F ldrb r0, [r0] lsls r0, 26 cmp r0, 0 bge _080B274A ldr r0, _080B2758 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldrb r0, [r1, 0x8] cmp r0, 0x1 bne _080B2718 adds r5, r2, 0 movs r3, 0x4 adds r2, r4, 0 movs r4, 0x3 _080B26FE: ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r0, [r1] orrs r0, r3 strb r0, [r1] adds r2, 0x4 subs r4, 0x1 cmp r4, 0 bge _080B26FE _080B2718: movs r4, 0 _080B271A: lsls r0, r4, 2 ldr r5, _080B2754 adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080B2750 adds r0, r1 bl FreeSpriteOamMatrix adds r4, 0x1 cmp r4, 0x3 ble _080B271A ldr r0, _080B275C adds r2, r5, r0 ldrb r1, [r2, 0x7] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r2, 0x7] adds r0, r6, 0 bl DestroyTask _080B274A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B2750: .4byte 0x02020004 _080B2754: .4byte 0x02019338 _080B2758: .4byte 0x03004b20 _080B275C: .4byte 0xfffffecc thumb_func_end sub_80B26C8 thumb_func_start sub_80B2760 sub_80B2760: @ 80B2760 push {lr} lsls r0, 16 lsrs r1, r0, 16 movs r0, 0xB1 lsls r0, 1 cmp r1, r0 bls _080B2770 movs r1, 0x1 _080B2770: adds r0, r1, 0 pop {r1} bx r1 thumb_func_end sub_80B2760 thumb_func_start sub_80B2778 sub_80B2778: @ 80B2778 push {lr} lsls r0, 16 lsrs r1, r0, 16 ldr r0, _080B278C cmp r1, r0 bls _080B2786 movs r1, 0 _080B2786: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _080B278C: .4byte 0x0000019b thumb_func_end sub_80B2778 thumb_func_start sub_80B2790 sub_80B2790: @ 80B2790 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 3 subs r0, r6 lsls r0, 2 ldr r4, _080B27F0 adds r0, r4 ldrh r0, [r0, 0x6] bl sub_80B2760 lsls r0, 16 lsrs r5, r0, 16 ldr r1, _080B27F4 lsls r0, r6, 6 adds r0, r1 ldrh r0, [r0] bl sub_80B2778 lsls r0, 16 lsrs r7, r0, 16 adds r4, 0xE8 adds r0, r4, 0 movs r1, 0 movs r2, 0x14 bl memset bl sub_8075624 ldr r1, _080B27F8 movs r2, 0 adds r0, r1, 0x3 _080B27D0: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _080B27D0 cmp r5, 0x90 beq _080B2848 cmp r5, 0x90 bgt _080B2806 cmp r5, 0x4C beq _080B2898 cmp r5, 0x4C bgt _080B27FC cmp r5, 0xD beq _080B2898 b _080B28BE .align 2, 0 _080B27F0: .4byte 0x02019260 _080B27F4: .4byte 0x02038570 _080B27F8: .4byte 0x02024e84 _080B27FC: cmp r5, 0x82 beq _080B2898 cmp r5, 0x8F beq _080B2898 b _080B28BE _080B2806: cmp r5, 0xD8 beq _080B2880 cmp r5, 0xD8 bgt _080B2814 cmp r5, 0xAE beq _080B2822 b _080B28BE _080B2814: cmp r5, 0xDA beq _080B288C movs r0, 0x88 lsls r0, 1 cmp r5, r0 beq _080B2848 b _080B28BE _080B2822: ldr r0, _080B2840 lsls r1, r7, 3 subs r1, r7 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x6] cmp r0, 0x7 beq _080B2838 ldrb r0, [r1, 0x7] cmp r0, 0x7 bne _080B28B8 _080B2838: ldr r1, _080B2844 movs r0, 0 b _080B28BC .align 2, 0 _080B2840: .4byte gBaseStats _080B2844: .4byte 0x0202f7c4 _080B2848: lsls r0, r6, 3 subs r0, r6 lsls r0, 2 ldr r4, _080B2878 adds r0, r4 ldrb r5, [r0, 0x1B] ldr r6, _080B287C lsls r5, 6 adds r0, r5, r6 ldrh r0, [r0] bl sub_80B2778 adds r4, 0xE8 strh r0, [r4, 0x2] adds r6, 0x38 adds r5, r6 ldr r0, [r5] str r0, [r4, 0x10] ldrb r0, [r4, 0x4] movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x4] b _080B28BE .align 2, 0 _080B2878: .4byte 0x02019260 _080B287C: .4byte 0x02038570 _080B2880: ldr r1, _080B2888 movs r0, 0xFF b _080B28BC .align 2, 0 _080B2888: .4byte 0x0202f7be _080B288C: ldr r1, _080B2894 movs r0, 0 b _080B28BC .align 2, 0 _080B2894: .4byte 0x0202f7be _080B2898: ldr r0, _080B28B0 adds r2, r0, 0 adds r2, 0x5A ldrb r1, [r2] cmp r1, 0 bne _080B28B8 movs r0, 0x2 strb r0, [r2] ldr r0, _080B28B4 strb r1, [r0] b _080B28BE .align 2, 0 _080B28B0: .4byte 0x02019204 _080B28B4: .4byte 0x0202f7c4 _080B28B8: ldr r1, _080B28C8 movs r0, 0x1 _080B28BC: strb r0, [r1] _080B28BE: bl sub_80B2968 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B28C8: .4byte 0x0202f7c4 thumb_func_end sub_80B2790 thumb_func_start unref_sub_80B28CC unref_sub_80B28CC: @ 80B28CC push {r4,lr} ldr r4, _080B28EC adds r0, r4, 0 movs r1, 0 movs r2, 0x14 bl memset subs r4, 0xEA ldrb r0, [r4] cmp r0, 0 beq _080B28E6 subs r0, 0x1 strb r0, [r4] _080B28E6: pop {r4} pop {r0} bx r0 .align 2, 0 _080B28EC: .4byte 0x02019348 thumb_func_end unref_sub_80B28CC thumb_func_start sub_80B28F0 sub_80B28F0: @ 80B28F0 push {r4-r6,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r6, _080B2924 strb r4, [r6, 0x5] ldr r5, _080B2928 lsls r4, 6 adds r0, r4, r5 ldrh r0, [r0] bl sub_80B2778 strh r0, [r6] adds r0, r5, 0 adds r0, 0x38 adds r0, r4, r0 ldr r0, [r0] str r0, [r6, 0x8] adds r5, 0x3C adds r4, r5 ldr r0, [r4] str r0, [r6, 0xC] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B2924: .4byte 0x02019348 _080B2928: .4byte 0x02038570 thumb_func_end sub_80B28F0 thumb_func_start sub_80B292C sub_80B292C: @ 80B292C push {lr} ldr r0, _080B2958 bl object_new_hidden_with_callback ldr r1, _080B295C strb r0, [r1, 0x3] ldr r0, _080B2960 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080B2964 adds r0, r1 bl InitSpriteAffineAnim bl sub_80B2968 pop {r0} bx r0 .align 2, 0 _080B2958: .4byte SpriteCallbackDummy _080B295C: .4byte 0x02024be0 _080B2960: .4byte 0x02024c08 _080B2964: .4byte 0x02020004 thumb_func_end sub_80B292C thumb_func_start sub_80B2968 sub_80B2968: @ 80B2968 push {r4,lr} ldr r0, _080B29AC ldrb r0, [r0, 0x3] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _080B29B0 adds r4, r0 movs r0, 0 strh r0, [r4, 0x24] strh r0, [r4, 0x26] movs r0, 0x3 movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] movs r0, 0x3 movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] adds r4, 0x3E ldrb r0, [r4] movs r1, 0x4 orrs r0, r1 strb r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080B29AC: .4byte 0x02024be0 _080B29B0: .4byte 0x02020004 thumb_func_end sub_80B2968 thumb_func_start sub_80B29B4 sub_80B29B4: @ 80B29B4 push {lr} lsls r0, 16 lsrs r0, 16 ldr r2, _080B29D4 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x6] cmp r0, 0x20 bhi _080B2A6C lsls r0, 2 ldr r1, _080B29D8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080B29D4: .4byte gBattleMoves _080B29D8: .4byte _080B29DC .align 2, 0 _080B29DC: .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A60 .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A60 .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C .4byte _080B2A6C _080B2A60: ldr r1, _080B2A68 movs r0, 0x2 b _080B2A70 .align 2, 0 _080B2A68: .4byte 0x02024c08 _080B2A6C: ldr r1, _080B2A78 movs r0, 0x3 _080B2A70: strb r0, [r1] pop {r0} bx r0 .align 2, 0 _080B2A78: .4byte 0x02024c08 thumb_func_end sub_80B29B4 thumb_func_start sub_80B2A7C sub_80B2A7C: @ 80B2A7C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r9, r0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 24 lsrs r7, r0, 24 movs r6, 0 ldr r1, _080B2AC8 ldrb r0, [r1] cmp r0, 0 beq _080B2AB6 _080B2AA8: adds r6, 0x1 cmp r6, 0x2 bgt _080B2AB6 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0 bne _080B2AA8 _080B2AB6: mov r0, r9 cmp r0, 0xFF bne _080B2AD0 ldr r0, _080B2ACC ldrb r0, [r0] cmp r6, r0 beq _080B2AD0 movs r0, 0 b _080B2C38 .align 2, 0 _080B2AC8: .4byte 0x02038690 _080B2ACC: .4byte 0x02038695 _080B2AD0: ldr r0, _080B2AE4 ldrh r0, [r0] cmp r0, 0x4 bhi _080B2B16 lsls r0, 2 ldr r1, _080B2AE8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080B2AE4: .4byte 0x0203869c _080B2AE8: .4byte _080B2AEC .align 2, 0 _080B2AEC: .4byte _080B2B16 .4byte _080B2B00 .4byte _080B2B04 .4byte _080B2B08 .4byte _080B2B0E _080B2B00: adds r0, r7, 0x3 b _080B2B12 _080B2B04: adds r0, r7, 0x6 b _080B2B12 _080B2B08: adds r0, r7, 0 adds r0, 0x9 b _080B2B12 _080B2B0E: adds r0, r7, 0 adds r0, 0xC _080B2B12: lsls r0, 24 lsrs r7, r0, 24 _080B2B16: mov r1, r9 cmp r1, 0xFE beq _080B2BC4 mov r0, r9 movs r1, 0x1 bl sub_80B2C4C adds r4, r0, 0 lsls r4, 24 ldr r2, _080B2B98 lsrs r4, 19 ldr r0, _080B2B9C adds r1, r2, r0 adds r1, r4, r1 ldr r5, _080B2BA0 lsls r6, 6 adds r0, r5, 0 adds r0, 0x38 adds r0, r6, r0 ldr r0, [r0] str r0, [r1] adds r1, r4, r2 mov r8, r1 adds r0, r6, r5 ldrh r1, [r0] ldr r0, _080B2BA4 add r0, r8 strh r1, [r0] movs r0, 0xB8 lsls r0, 6 adds r1, r2, r0 adds r1, r4, r1 adds r0, r5, 0 adds r0, 0x3C adds r0, r6, r0 ldr r0, [r0] str r0, [r1] ldr r1, _080B2BA8 adds r0, r2, r1 adds r0, r4, r0 adds r1, r5, 0x2 adds r1, r6, r1 str r2, [sp] bl StringCopy ldr r2, [sp] ldr r0, _080B2BAC adds r2, r0 adds r4, r2 adds r5, 0xD adds r6, r5 adds r0, r4, 0 adds r1, r6, 0 bl StringCopy mov r1, r9 cmp r1, 0xFF beq _080B2BB8 ldr r0, _080B2BB0 ldrh r1, [r0] ldr r0, _080B2BB4 add r0, r8 strb r1, [r0] b _080B2C36 .align 2, 0 _080B2B98: .4byte 0x02025734 _080B2B9C: .4byte 0x00002dfc _080B2BA0: .4byte 0x02038570 _080B2BA4: .4byte 0x00002e04 _080B2BA8: .4byte 0x00002e07 _080B2BAC: .4byte 0x00002e12 _080B2BB0: .4byte 0x0203869c _080B2BB4: .4byte 0x00002e06 _080B2BB8: ldr r0, _080B2BC0 add r0, r8 strb r7, [r0] b _080B2C36 .align 2, 0 _080B2BC0: .4byte 0x00002e06 _080B2BC4: ldr r5, _080B2C14 ldr r2, _080B2C18 lsls r4, r6, 6 adds r0, r2, 0 adds r0, 0x38 adds r0, r4, r0 ldr r0, [r0] str r0, [r5] adds r0, r2, 0 adds r0, 0x3C adds r0, r4, r0 ldr r0, [r0] str r0, [r5, 0x4] adds r0, r4, r2 ldrh r0, [r0] strh r0, [r5, 0x8] adds r0, r5, 0 adds r0, 0xB adds r1, r2, 0x2 adds r1, r4, r1 str r2, [sp] bl StringCopy ldr r0, _080B2C1C ldrb r1, [r0] movs r0, 0x1 ands r0, r1 ldr r2, [sp] cmp r0, 0 beq _080B2C24 adds r0, r5, 0 adds r0, 0x16 lsls r1, r6, 3 subs r1, r6 lsls r1, 2 ldr r2, _080B2C20 adds r1, r2 bl StringCopy b _080B2C32 .align 2, 0 _080B2C14: .4byte 0x02015de0 _080B2C18: .4byte 0x02038570 _080B2C1C: .4byte 0x0203869a _080B2C20: .4byte 0x03002978 _080B2C24: adds r0, r5, 0 adds r0, 0x16 adds r1, r2, 0 adds r1, 0xD adds r1, r4, r1 bl StringCopy _080B2C32: ldr r0, _080B2C48 strb r7, [r0, 0xA] _080B2C36: movs r0, 0x1 _080B2C38: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080B2C48: .4byte 0x02015de0 thumb_func_end sub_80B2A7C thumb_func_start sub_80B2C4C sub_80B2C4C: @ 80B2C4C push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 lsls r1, 24 lsrs r1, 24 cmp r0, 0x2 beq _080B2C6E cmp r0, 0x2 ble _080B2C66 cmp r0, 0x3 beq _080B2CA0 b _080B2CD4 _080B2C66: cmp r2, 0 blt _080B2CD4 adds r0, r2, 0 b _080B2D16 _080B2C6E: cmp r1, 0 beq _080B2C98 movs r2, 0x4 ldr r0, _080B2C9C adds r4, r0, 0 adds r4, 0x60 adds r3, r0, 0 adds r3, 0x80 _080B2C7E: adds r1, r3, 0 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5,r6} stm r1!, {r5,r6} subs r4, 0x20 subs r3, 0x20 subs r2, 0x1 cmp r2, 0x2 bgt _080B2C7E _080B2C98: movs r0, 0x2 b _080B2D16 .align 2, 0 _080B2C9C: .4byte 0x02028530 _080B2CA0: cmp r1, 0 beq _080B2CCA movs r2, 0x7 ldr r0, _080B2CD0 adds r4, r0, 0 adds r4, 0xC0 adds r3, r0, 0 adds r3, 0xE0 _080B2CB0: adds r1, r3, 0 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5,r7} stm r1!, {r5,r7} subs r4, 0x20 subs r3, 0x20 subs r2, 0x1 cmp r2, 0x5 bgt _080B2CB0 _080B2CCA: movs r0, 0x5 b _080B2D16 .align 2, 0 _080B2CD0: .4byte 0x02028530 _080B2CD4: ldr r0, _080B2CE8 ldrh r0, [r0] cmp r0, 0x4 bhi _080B2D14 lsls r0, 2 ldr r1, _080B2CEC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080B2CE8: .4byte 0x0203869c _080B2CEC: .4byte _080B2CF0 .align 2, 0 _080B2CF0: .4byte _080B2D04 .4byte _080B2D08 .4byte _080B2D0C .4byte _080B2D10 .4byte _080B2D14 _080B2D04: movs r0, 0x8 b _080B2D16 _080B2D08: movs r0, 0x9 b _080B2D16 _080B2D0C: movs r0, 0xA b _080B2D16 _080B2D10: movs r0, 0xB b _080B2D16 _080B2D14: movs r0, 0xC _080B2D16: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80B2C4C thumb_func_start sub_80B2D1C sub_80B2D1C: @ 80B2D1C push {r4-r7,lr} ldr r0, _080B2D48 ldr r4, _080B2D4C ldr r1, _080B2D50 adds r3, r0, r1 movs r2, 0x7 _080B2D28: adds r1, r3, 0 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5,r6} stm r1!, {r5,r6} adds r4, 0x20 adds r3, 0x20 subs r2, 0x1 cmp r2, 0 bge _080B2D28 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B2D48: .4byte 0x02025734 _080B2D4C: .4byte gUnknown_083CC5D0 _080B2D50: .4byte 0x00002dfc thumb_func_end sub_80B2D1C thumb_func_start CreateShopMenu CreateShopMenu: @ 80B2D54 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl script_env_2_enable ldr r1, _080B2D90 movs r0, 0 strb r4, [r1, 0xC] strb r0, [r1, 0x9] cmp r4, 0 bne _080B2D9C movs r0, 0x2 strb r0, [r1, 0xA] movs r0, 0 movs r1, 0 movs r2, 0xA movs r3, 0x7 bl DrawDefaultWindow ldr r3, _080B2D94 ldr r0, _080B2D98 str r0, [sp] movs r0, 0x1 movs r1, 0x1 movs r2, 0x3 bl sub_80728E4 b _080B2DBC .align 2, 0 _080B2D90: .4byte 0x03000708 _080B2D94: .4byte gUnknown_083CC6D0 _080B2D98: .4byte gUnknown_083CC6E8 _080B2D9C: movs r0, 0x1 strb r0, [r1, 0xA] movs r0, 0 movs r1, 0 movs r2, 0xA movs r3, 0x5 bl DrawDefaultWindow ldr r3, _080B2DEC ldr r0, _080B2DF0 str r0, [sp] movs r0, 0x1 movs r1, 0x1 movs r2, 0x2 bl sub_80728E4 _080B2DBC: ldr r0, _080B2DF4 ldrb r3, [r0, 0xA] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 movs r0, 0 str r0, [sp] movs r0, 0x9 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl InitMenu ldr r0, _080B2DF8 movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _080B2DEC: .4byte gUnknown_083CC6D0 _080B2DF0: .4byte gUnknown_083CC6EB _080B2DF4: .4byte 0x03000708 _080B2DF8: .4byte sub_80B2E38 thumb_func_end CreateShopMenu thumb_func_start SetShopMenuCallback SetShopMenuCallback: @ 80B2DFC ldr r1, _080B2E04 str r0, [r1] bx lr .align 2, 0 _080B2E04: .4byte 0x03000708 thumb_func_end SetShopMenuCallback thumb_func_start SetShopItemsForSale SetShopItemsForSale: @ 80B2E08 push {lr} adds r1, r0, 0 movs r2, 0 ldr r3, _080B2E34 str r1, [r3, 0x4] strb r2, [r3, 0x8] ldrh r0, [r1] cmp r0, 0 beq _080B2E30 _080B2E1A: ldrb r0, [r3, 0x8] adds r0, 0x1 strb r0, [r3, 0x8] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] cmp r0, 0 bne _080B2E1A _080B2E30: pop {r0} bx r0 .align 2, 0 _080B2E34: .4byte 0x03000708 thumb_func_end SetShopItemsForSale thumb_func_start sub_80B2E38 sub_80B2E38: @ 80B2E38 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r2, _080B2E60 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080B2E68 ldr r4, _080B2E64 ldrb r0, [r4, 0x9] cmp r0, 0 beq _080B2EF4 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 b _080B2E82 .align 2, 0 _080B2E60: .4byte 0x03001770 _080B2E64: .4byte 0x03000708 _080B2E68: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080B2E90 ldr r4, _080B2E8C ldrb r0, [r4, 0x9] ldrb r1, [r4, 0xA] cmp r0, r1 beq _080B2EF4 movs r0, 0x5 bl audio_play movs r0, 0x1 _080B2E82: bl MoveMenuCursor strb r0, [r4, 0x9] b _080B2EF4 .align 2, 0 _080B2E8C: .4byte 0x03000708 _080B2E90: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080B2EE0 movs r0, 0x5 bl audio_play ldr r3, _080B2EB0 ldrb r0, [r3, 0xC] cmp r0, 0 bne _080B2EBC ldr r1, _080B2EB4 ldr r2, _080B2EB8 b _080B2EC0 .align 2, 0 _080B2EB0: .4byte 0x03000708 _080B2EB4: .4byte gUnknown_083CC6D0 _080B2EB8: .4byte gUnknown_083CC6E8 _080B2EBC: ldr r1, _080B2ED8 ldr r2, _080B2EDC _080B2EC0: ldrb r0, [r3, 0x9] adds r0, r2 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 b _080B2EF4 .align 2, 0 _080B2ED8: .4byte gUnknown_083CC6D0 _080B2EDC: .4byte gUnknown_083CC6EB _080B2EE0: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080B2EF4 movs r0, 0x5 bl audio_play adds r0, r4, 0 bl HandleShopMenuQuit _080B2EF4: pop {r4} pop {r0} bx r0 thumb_func_end sub_80B2E38 thumb_func_start sub_80B2EFC sub_80B2EFC: @ 80B2EFC push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080B2F24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _080B2F28 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] ldr r0, _080B2F2C str r0, [r1] movs r0, 0x1 movs r1, 0 bl fade_screen pop {r0} bx r0 .align 2, 0 _080B2F24: .4byte 0x03004b20 _080B2F28: .4byte BuyMenuDrawGraphics _080B2F2C: .4byte sub_80B2FA0 thumb_func_end sub_80B2EFC thumb_func_start sub_80B2F30 sub_80B2F30: @ 80B2F30 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080B2F58 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _080B2F5C lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] ldr r0, _080B2F60 str r0, [r1] movs r0, 0x1 movs r1, 0 bl fade_screen pop {r0} bx r0 .align 2, 0 _080B2F58: .4byte 0x03004b20 _080B2F5C: .4byte sub_80A6300 _080B2F60: .4byte sub_80B2FA0 thumb_func_end sub_80B2F30 thumb_func_start HandleShopMenuQuit HandleShopMenuQuit: @ 80B2F64 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0xB movs r3, 0x8 bl Reset bl sub_80BE3BC bl script_env_2_disable adds r0, r4, 0 bl DestroyTask ldr r0, _080B2F9C ldr r0, [r0] cmp r0, 0 beq _080B2F96 bl _call_via_r0 _080B2F96: pop {r4} pop {r0} bx r0 .align 2, 0 _080B2F9C: .4byte 0x03000708 thumb_func_end HandleShopMenuQuit thumb_func_start sub_80B2FA0 sub_80B2FA0: @ 80B2FA0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080B2FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080B2FCE ldr r0, _080B2FD8 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] lsls r0, 16 ldrh r1, [r1, 0x1A] orrs r0, r1 bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _080B2FCE: pop {r4} pop {r0} bx r0 .align 2, 0 _080B2FD4: .4byte 0x0202f388 _080B2FD8: .4byte 0x03004b20 thumb_func_end sub_80B2FA0 thumb_func_start ReturnToShopMenuAfterExitingSellMenu ReturnToShopMenuAfterExitingSellMenu: @ 80B2FDC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080B2FF8 ldrb r0, [r0, 0xC] bl CreateShopMenu adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 .align 2, 0 _080B2FF8: .4byte 0x03000708 thumb_func_end ReturnToShopMenuAfterExitingSellMenu thumb_func_start Task_ExitSellMenu Task_ExitSellMenu: @ 80B2FFC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080B3040 ldr r0, _080B3028 ldrb r0, [r0, 0xC] cmp r0, 0x2 bne _080B3034 ldr r1, _080B302C ldr r2, _080B3030 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField b _080B3040 .align 2, 0 _080B3028: .4byte 0x03000708 _080B302C: .4byte gUnknown_0840EE5C _080B3030: .4byte ReturnToShopMenuAfterExitingSellMenu _080B3034: ldr r1, _080B3048 ldr r2, _080B304C adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField _080B3040: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B3048: .4byte gUnknown_0840EE30 _080B304C: .4byte ReturnToShopMenuAfterExitingSellMenu thumb_func_end Task_ExitSellMenu thumb_func_start sub_80B3050 sub_80B3050: @ 80B3050 push {lr} bl pal_fill_black ldr r0, _080B3064 movs r1, 0x8 bl CreateTask pop {r0} bx r0 .align 2, 0 _080B3064: .4byte Task_ExitSellMenu thumb_func_end sub_80B3050 thumb_func_start sub_80B3068 sub_80B3068: @ 80B3068 push {lr} lsls r0, 24 lsrs r0, 24 bl Task_ExitSellMenu pop {r0} bx r0 thumb_func_end sub_80B3068 thumb_func_start unref_sub_80B3078 unref_sub_80B3078: @ 80B3078 lsls r0, 24 lsrs r0, 24 ldr r2, _080B308C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080B3090 str r0, [r1] bx lr .align 2, 0 _080B308C: .4byte 0x03004b20 _080B3090: .4byte Task_ExitSellMenu thumb_func_end unref_sub_80B3078 thumb_func_start sub_80B3094 sub_80B3094: @ 80B3094 push {lr} bl AnimateSprites bl BuildOamBuffer bl RunTasks bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80B3094 thumb_func_start sub_80B30AC sub_80B30AC: @ 80B30AC push {r4,lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer ldr r3, _080B30F0 ldr r1, _080B30F4 ldr r0, _080B30F8 str r3, [r0] str r1, [r0, 0x4] ldr r4, _080B30FC str r4, [r0, 0x8] ldr r1, [r0, 0x8] movs r2, 0x80 lsls r2, 4 adds r1, r3, r2 ldr r2, _080B3100 str r1, [r0] str r2, [r0, 0x4] str r4, [r0, 0x8] ldr r1, [r0, 0x8] movs r1, 0x80 lsls r1, 5 adds r3, r1 ldr r1, _080B3104 str r3, [r0] str r1, [r0, 0x4] str r4, [r0, 0x8] ldr r0, [r0, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _080B30F0: .4byte 0x020219cc _080B30F4: .4byte 0x0600e800 _080B30F8: .4byte 0x040000d4 _080B30FC: .4byte 0x80000400 _080B3100: .4byte 0x0600e000 _080B3104: .4byte 0x0600f000 thumb_func_end sub_80B30AC thumb_func_start BuyMenuDrawGraphics BuyMenuDrawGraphics: @ 80B3108 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x8 bl sub_80F9438 bl remove_some_task ldr r0, _080B3204 movs r5, 0 strh r5, [r0] adds r0, 0x2 strh r5, [r0] adds r0, 0x2 strh r5, [r0] adds r0, 0x2 strh r5, [r0] adds r0, 0x2 strh r5, [r0] adds r0, 0x2 strh r5, [r0] ldr r0, _080B3208 mov r8, r0 ldrb r0, [r0, 0x8] movs r1, 0x80 orrs r0, r1 mov r1, r8 strb r0, [r1, 0x8] movs r1, 0xE0 lsls r1, 19 movs r6, 0 str r6, [sp, 0x4] ldr r0, _080B320C add r2, sp, 0x4 str r2, [r0] str r1, [r0, 0x4] ldr r1, _080B3210 str r1, [r0, 0x8] ldr r0, [r0, 0x8] ldr r0, _080B3214 ldr r1, _080B3218 bl LZDecompressVram ldr r0, _080B321C ldr r1, _080B3220 bl sub_800D238 ldr r0, _080B3224 movs r1, 0xC0 movs r2, 0x20 bl LoadCompressedPalette bl FreeAllSpritePalettes bl ResetPaletteFade bl ResetSpriteData bl ResetTasks ldr r4, _080B3228 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C bl BuyMenuDrawMapGraphics ldr r0, _080B322C strb r6, [r0, 0x9] strb r5, [r0, 0xB] movs r0, 0 movs r1, 0 movs r2, 0x20 movs r3, 0x20 bl Reset ldr r0, _080B3230 movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] movs r1, 0 movs r2, 0 bl sub_80B7C14 movs r0, 0 movs r1, 0x7 bl sub_80B3764 bl sub_80B37EC bl sub_80B3270 ldr r0, _080B3234 movs r1, 0x8 bl CreateTask bl sub_80B3240 movs r0, 0x1 negs r0, r0 str r6, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade mov r2, r8 ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] ldr r0, _080B3238 bl SetVBlankCallback ldr r0, _080B323C bl SetMainCallback2 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B3204: .4byte REG_BG1HOFS _080B3208: .4byte 0x0202f388 _080B320C: .4byte 0x040000d4 _080B3210: .4byte 0x85000100 _080B3214: .4byte gUnknown_08E77804 _080B3218: .4byte 0x06007c00 _080B321C: .4byte gUnknown_08E77928 _080B3220: .4byte 0x02018000 _080B3224: .4byte gMenuMoneyPal _080B3228: .4byte gWindowConfig_81E6DFC _080B322C: .4byte 0x03000708 _080B3230: .4byte 0x02025734 _080B3234: .4byte sub_80B40E8 _080B3238: .4byte sub_80B30AC _080B323C: .4byte sub_80B3094 thumb_func_end BuyMenuDrawGraphics thumb_func_start sub_80B3240 sub_80B3240: @ 80B3240 push {lr} sub sp, 0x4 ldr r1, _080B326C mov r0, sp movs r2, 0x4 bl memcpy mov r0, sp adds r0, 0x2 movs r1, 0xD1 movs r2, 0x2 bl LoadPalette mov r0, sp movs r1, 0xD8 movs r2, 0x2 bl LoadPalette add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080B326C: .4byte gUnknown_083CC710 thumb_func_end sub_80B3240 thumb_func_start sub_80B3270 sub_80B3270: @ 80B3270 push {lr} bl sub_80F944C ldr r0, _080B32A0 ldrb r0, [r0, 0x8] cmp r0, 0x7 bls _080B329A movs r0, 0 movs r1, 0xAC movs r2, 0xC bl sub_80F953C movs r0, 0x1 movs r1, 0xAC movs r2, 0x94 bl sub_80F953C movs r0, 0 movs r1, 0x1 bl sub_80F979C _080B329A: pop {r0} bx r0 .align 2, 0 _080B32A0: .4byte 0x03000708 thumb_func_end sub_80B3270 thumb_func_start sub_80B32A4 sub_80B32A4: @ 80B32A4 push {lr} ldr r0, _080B32B8 ldrb r0, [r0, 0xB] cmp r0, 0 bne _080B32BC movs r0, 0 movs r1, 0x1 bl sub_80F979C b _080B32C4 .align 2, 0 _080B32B8: .4byte 0x03000708 _080B32BC: movs r0, 0 movs r1, 0 bl sub_80F979C _080B32C4: ldr r1, _080B32DC ldrb r0, [r1, 0xB] adds r0, 0x7 ldrb r1, [r1, 0x8] cmp r0, r1 blt _080B32E0 movs r0, 0x1 movs r1, 0x1 bl sub_80F979C b _080B32E8 .align 2, 0 _080B32DC: .4byte 0x03000708 _080B32E0: movs r0, 0x1 movs r1, 0 bl sub_80F979C _080B32E8: pop {r0} bx r0 thumb_func_end sub_80B32A4 thumb_func_start sub_80B32EC sub_80B32EC: @ 80B32EC lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 adds r1, r2 lsls r1, 1 adds r1, r0 ldr r2, _080B3304 adds r0, r2, 0 strh r0, [r1] strh r0, [r1, 0x2] bx lr .align 2, 0 _080B3304: .4byte 0x0000c3e1 thumb_func_end sub_80B32EC thumb_func_start BuyMenuDrawMapMetatileLayer BuyMenuDrawMapMetatileLayer: @ 80B3308 lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 adds r1, r2 lsls r1, 1 adds r1, r0 ldrh r0, [r3] strh r0, [r1] ldrh r0, [r3, 0x2] strh r0, [r1, 0x2] adds r2, r1, 0 adds r2, 0x40 ldrh r0, [r3, 0x4] strh r0, [r2] adds r1, 0x42 ldrh r0, [r3, 0x6] strh r0, [r1] bx lr thumb_func_end BuyMenuDrawMapMetatileLayer thumb_func_start BuyMenuDrawMapMetatile BuyMenuDrawMapMetatile: @ 80B3330 push {r4-r7,lr} adds r7, r2, 0 lsls r3, 24 lsrs r3, 24 adds r2, r3, 0 lsls r0, 17 lsrs r0, 16 lsls r1, 22 movs r4, 0x80 lsls r4, 15 adds r1, r4 lsrs r1, 16 cmp r3, 0x1 beq _080B3364 cmp r3, 0x1 bgt _080B3356 cmp r3, 0 beq _080B335C b _080B33C0 _080B3356: cmp r2, 0x2 beq _080B3398 b _080B33C0 _080B335C: ldr r5, _080B3360 b _080B3366 .align 2, 0 _080B3360: .4byte 0x020221cc _080B3364: ldr r5, _080B3390 _080B3366: lsls r6, r0, 16 asrs r6, 16 lsls r4, r1, 16 asrs r4, 16 adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 adds r3, r7, 0 bl BuyMenuDrawMapMetatileLayer ldr r0, _080B3394 adds r5, r0 adds r3, r7, 0 adds r3, 0x8 adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 bl BuyMenuDrawMapMetatileLayer b _080B33C0 .align 2, 0 _080B3390: .4byte 0x020229cc _080B3394: .4byte 0xfffff800 _080B3398: ldr r5, _080B33C8 lsls r6, r0, 16 asrs r6, 16 lsls r4, r1, 16 asrs r4, 16 adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 adds r3, r7, 0 bl BuyMenuDrawMapMetatileLayer ldr r0, _080B33CC adds r5, r0 adds r3, r7, 0 adds r3, 0x8 adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 bl BuyMenuDrawMapMetatileLayer _080B33C0: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B33C8: .4byte 0x020229cc _080B33CC: .4byte 0xfffff000 thumb_func_end BuyMenuDrawMapMetatile thumb_func_start sub_80B33D0 sub_80B33D0: @ 80B33D0 push {r4-r6,lr} mov r6, r8 push {r6} adds r6, r0, 0 adds r4, r1, 0 mov r8, r2 lsls r4, 22 ldr r5, _080B3418 lsls r6, 17 asrs r6, 16 movs r0, 0x80 lsls r0, 15 adds r4, r0 asrs r4, 16 adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 mov r3, r8 bl BuyMenuDrawMapMetatileLayer ldr r0, _080B341C adds r5, r0 movs r0, 0x8 add r8, r0 adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 mov r3, r8 bl BuyMenuDrawMapMetatileLayer pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B3418: .4byte 0x020229cc _080B341C: .4byte 0xfffff800 thumb_func_end sub_80B33D0 thumb_func_start sub_80B3420 sub_80B3420: @ 80B3420 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer mov r1, sp mov r0, sp ldrh r0, [r0] subs r0, 0x3 strh r0, [r1] ldrh r0, [r4] subs r0, 0x3 strh r0, [r4] movs r1, 0 ldr r0, _080B34A8 mov r10, r0 ldr r2, _080B34AC mov r9, r2 _080B3452: movs r4, 0 lsls r1, 16 mov r8, r1 asrs r7, r1, 16 _080B345A: mov r0, sp movs r3, 0 ldrsh r0, [r0, r3] lsls r4, 16 asrs r6, r4, 16 adds r0, r6 mov r2, sp movs r3, 0x2 ldrsh r1, [r2, r3] adds r1, r7 bl MapGridGetMetatileIdAt lsls r0, 16 lsrs r5, r0, 16 cmp r7, 0x5 beq _080B34D0 cmp r6, 0x6 beq _080B34D0 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] adds r0, r6 mov r2, sp movs r3, 0x2 ldrsh r1, [r2, r3] adds r1, r7 bl MapGridGetMetatileLayerTypeAt lsls r0, 24 lsrs r3, r0, 24 cmp r5, r10 bhi _080B34B0 mov r1, r9 ldr r0, [r1] ldr r0, [r0, 0x10] lsls r1, r5, 4 ldr r2, [r0, 0xC] adds r2, r1 b _080B34C0 .align 2, 0 _080B34A8: .4byte 0x000001ff _080B34AC: .4byte 0x0202e828 _080B34B0: mov r2, r9 ldr r0, [r2] ldr r1, [r0, 0x14] ldr r2, _080B34CC adds r0, r5, r2 lsls r0, 4 ldr r2, [r1, 0xC] adds r2, r0 _080B34C0: adds r0, r6, 0 adds r1, r7, 0 bl BuyMenuDrawMapMetatile b _080B3506 .align 2, 0 _080B34CC: .4byte 0xfffffe00 _080B34D0: cmp r5, r10 bhi _080B34EC asrs r0, r4, 16 mov r3, r9 ldr r1, [r3] ldr r1, [r1, 0x10] lsls r3, r5, 4 ldr r2, [r1, 0xC] adds r2, r3 mov r3, r8 asrs r1, r3, 16 bl sub_80B33D0 b _080B3506 _080B34EC: asrs r0, r4, 16 mov r2, r9 ldr r1, [r2] ldr r2, [r1, 0x14] ldr r3, _080B354C adds r1, r5, r3 lsls r1, 4 ldr r2, [r2, 0xC] adds r2, r1 mov r3, r8 asrs r1, r3, 16 bl sub_80B33D0 _080B3506: cmp r7, 0 bne _080B3520 asrs r1, r4, 16 cmp r1, 0 beq _080B3520 cmp r1, 0x6 beq _080B3520 lsls r1, 17 asrs r1, 16 ldr r0, _080B3550 movs r2, 0x40 bl sub_80B32EC _080B3520: movs r1, 0x80 lsls r1, 9 adds r0, r4, r1 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x6 ble _080B345A adds r0, r1, 0 add r0, r8 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0x5 ble _080B3452 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B354C: .4byte 0xfffffe00 _080B3550: .4byte 0x020219cc thumb_func_end sub_80B3420 thumb_func_start BuyMenuDrawMapGraphics BuyMenuDrawMapGraphics: @ 80B3554 push {lr} bl sub_80F9020 bl sub_80B356C bl sub_80B368C bl sub_80B3420 pop {r0} bx r0 thumb_func_end BuyMenuDrawMapGraphics thumb_func_start sub_80B356C sub_80B356C: @ 80B356C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r0, 0 mov r8, r0 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer bl PlayerGetZCoord lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r5, 0 ldr r2, _080B3674 movs r1, 0x10 _080B3598: lsls r0, r5, 3 adds r0, r2 strh r1, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xF bls _080B3598 movs r5, 0 ldr r7, _080B3678 subs r1, r7, 0x6 mov r9, r1 _080B35B0: movs r4, 0 adds r2, r5, 0x1 mov r10, r2 _080B35B6: mov r1, sp ldr r3, _080B367C adds r0, r3, 0 ldrh r1, [r1] adds r0, r1 adds r0, r4 lsls r0, 16 lsrs r0, 16 ldr r2, _080B3680 adds r1, r2, 0 mov r3, sp ldrh r3, [r3, 0x2] adds r1, r3 adds r1, r5 lsls r1, 16 lsrs r1, 16 ldr r2, [sp, 0x4] bl GetFieldObjectIdByXYZ lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x10 beq _080B3650 mov r0, r8 lsls r3, r0, 3 mov r1, r9 adds r0, r3, r1 movs r6, 0 strh r2, [r0] mov r0, r9 adds r0, 0x2 adds r0, r3, r0 strh r4, [r0] ldr r1, _080B3684 adds r0, r3, r1 strh r5, [r0] ldr r1, _080B3688 lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r2, r0, r1 ldrb r0, [r2, 0x18] lsls r0, 28 lsrs r0, 28 cmp r0, 0x1 bne _080B3616 adds r0, r3, r7 strh r6, [r0] _080B3616: ldrb r0, [r2, 0x18] lsls r0, 28 lsrs r0, 28 cmp r0, 0x2 bne _080B3626 adds r1, r3, r7 movs r0, 0x1 strh r0, [r1] _080B3626: ldrb r0, [r2, 0x18] lsls r0, 28 lsrs r0, 28 cmp r0, 0x3 bne _080B3636 adds r1, r3, r7 movs r0, 0x2 strh r0, [r1] _080B3636: ldrb r0, [r2, 0x18] lsls r0, 28 lsrs r0, 28 cmp r0, 0x4 bne _080B3646 adds r1, r3, r7 movs r0, 0x3 strh r0, [r1] _080B3646: mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 _080B3650: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 bls _080B35B6 mov r2, r10 lsls r0, r2, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _080B35B0 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B3674: .4byte 0x020386a4 _080B3678: .4byte 0x020386aa _080B367C: .4byte 0x0000fffd _080B3680: .4byte 0x0000fffe _080B3684: .4byte 0x020386a8 _080B3688: .4byte 0x030048a0 thumb_func_end sub_80B356C thumb_func_start sub_80B368C sub_80B368C: @ 80B368C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r5, 0 ldr r6, _080B3710 adds r0, r6, 0x6 mov r8, r0 ldr r7, _080B3714 _080B369E: lsls r4, r5, 3 adds r1, r4, r6 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0x10 beq _080B36F8 adds r1, r0, 0 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r7 ldrb r0, [r0, 0x5] adds r1, r6, 0x2 adds r1, r4, r1 ldrh r2, [r1] lsls r2, 4 adds r2, 0x8 lsls r2, 16 asrs r2, 16 adds r1, r6, 0x4 adds r1, r4, r1 ldrh r3, [r1] lsls r3, 20 movs r1, 0x80 lsls r1, 14 adds r3, r1 asrs r3, 16 movs r1, 0x2 str r1, [sp] ldr r1, _080B3718 bl AddPseudoFieldObject lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _080B371C adds r2, r0 mov r1, r8 adds r0, r4, r1 ldrb r1, [r0] adds r0, r2, 0 bl StartSpriteAnim _080B36F8: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xF bls _080B369E add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B3710: .4byte 0x020386a4 _080B3714: .4byte 0x030048a0 _080B3718: .4byte SpriteCallbackDummy _080B371C: .4byte 0x02020004 thumb_func_end sub_80B368C thumb_func_start sub_80B3720 sub_80B3720: @ 80B3720 push {r4-r6,lr} movs r1, 0 ldr r6, _080B3754 ldr r5, _080B3758 ldr r4, _080B375C ldr r0, _080B3760 adds r3, r0, 0 _080B372E: lsls r0, r1, 16 asrs r2, r0, 16 lsls r1, r2, 1 adds r0, r1, r4 ldrh r0, [r0] cmp r0, 0 beq _080B3742 adds r1, r6 adds r0, r3 strh r0, [r1] _080B3742: adds r0, r2, 0x1 lsls r0, 16 lsrs r1, r0, 16 asrs r0, 16 cmp r0, r5 ble _080B372E pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B3754: .4byte 0x020219cc _080B3758: .4byte 0x000003ff _080B375C: .4byte 0x02018000 _080B3760: .4byte 0x0000c3e0 thumb_func_end sub_80B3720 thumb_func_start sub_80B3764 sub_80B3764: @ 80B3764 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 bl sub_80B3720 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl sub_80B39D0 ldr r0, _080B3798 ldrb r0, [r0, 0x9] str r0, [sp] movs r0, 0xF str r0, [sp, 0x4] movs r0, 0 movs r1, 0xE movs r2, 0x2 movs r3, 0x8 bl InitMenu add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B3798: .4byte 0x03000708 thumb_func_end sub_80B3764 thumb_func_start sub_80B379C sub_80B379C: @ 80B379C push {r4-r7,lr} movs r1, 0 ldr r0, _080B37E0 mov r12, r0 ldr r7, _080B37E4 ldr r0, _080B37E8 adds r6, r0, 0 _080B37AA: movs r2, 0 adds r0, r1, 0 adds r0, 0xC adds r5, r1, 0x1 lsls r4, r0, 5 lsls r3, r1, 5 _080B37B6: adds r1, r4, r2 lsls r1, 1 add r1, r12 adds r0, r3, r2 lsls r0, 1 adds r0, r7 ldrh r0, [r0] adds r0, r6, r0 strh r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0xD bls _080B37B6 lsls r0, r5, 16 lsrs r1, r0, 16 cmp r1, 0x7 bls _080B37AA pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B37E0: .4byte 0x020219cc _080B37E4: .4byte 0x02018300 _080B37E8: .4byte 0x0000c3e0 thumb_func_end sub_80B379C thumb_func_start sub_80B37EC sub_80B37EC: @ 80B37EC push {lr} bl sub_80B3A70 pop {r0} bx r0 thumb_func_end sub_80B37EC thumb_func_start sub_80B37F8 sub_80B37F8: @ 80B37F8 push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldr r1, _080B3884 ldrb r0, [r1, 0xB] ldrb r2, [r1, 0x9] adds r0, r2 ldr r1, [r1, 0x4] lsls r0, 1 adds r0, r1 ldrh r0, [r0] bl itemid_get_market_price adds r4, r0, 0 movs r0, 0x1 bl GetPriceReduction lsls r4, 16 lsrs r4, 16 lsls r0, 24 lsrs r0, 24 asrs r4, r0 ldr r0, _080B3888 lsls r5, r6, 2 adds r5, r6 lsls r5, 3 adds r5, r0 movs r1, 0xA ldrsh r0, [r5, r1] muls r0, r4 movs r1, 0x6 movs r2, 0x6 movs r3, 0xB bl sub_80B7A94 ldr r0, _080B388C movs r1, 0xFC strb r1, [r0] movs r1, 0x14 strb r1, [r0, 0x1] movs r1, 0x6 strb r1, [r0, 0x2] adds r0, 0x3 movs r2, 0xA ldrsh r1, [r5, r2] movs r2, 0x1 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, _080B3890 movs r1, 0x1 movs r2, 0xB bl Print ldr r0, _080B3894 movs r1, 0x2 str r1, [sp] ldr r1, _080B3898 str r1, [sp, 0x4] movs r1, 0x1 movs r2, 0xB movs r3, 0xC bl sub_80A3FA0 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B3884: .4byte 0x03000708 _080B3888: .4byte 0x03004b20 _080B388C: .4byte 0x020231cc _080B3890: .4byte gUnknown_0840E6D0 _080B3894: .4byte 0x020219cc _080B3898: .4byte 0x0000c3e1 thumb_func_end sub_80B37F8 thumb_func_start sub_80B389C sub_80B389C: @ 80B389C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 mov r8, r2 lsls r0, 16 lsrs r2, r0, 16 mov r9, r2 lsls r1, 24 lsrs r4, r1, 24 ldr r5, _080B392C mov r0, r8 cmp r0, 0 beq _080B38C8 movs r0, 0xFC strb r0, [r5] movs r0, 0x1 strb r0, [r5, 0x1] movs r0, 0x2 strb r0, [r5, 0x2] adds r5, 0x3 _080B38C8: adds r0, r2, 0 adds r1, r5, 0 bl itemid_copy_name ldr r6, _080B392C lsls r7, r4, 3 movs r0, 0x1 str r0, [sp] adds r0, r6, 0 movs r1, 0x70 adds r2, r7, 0 movs r3, 0x58 bl sub_8072A18 adds r5, r6, 0 mov r0, r8 cmp r0, 0 beq _080B38EE adds r5, r6, 0x3 _080B38EE: mov r0, r9 bl itemid_get_market_price adds r4, r0, 0 movs r0, 0x1 bl GetPriceReduction lsls r4, 16 lsrs r4, 16 lsls r0, 24 lsrs r0, 24 asrs r4, r0 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x4 bl sub_80B79F8 adds r0, r6, 0 movs r1, 0xCA adds r2, r7, 0 movs r3, 0x1 bl sub_80729D8 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B392C: .4byte 0x020231cc thumb_func_end sub_80B389C thumb_func_start sub_80B3930 sub_80B3930: @ 80B3930 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r4, r2, 0 lsls r0, 16 lsrs r3, r0, 16 lsls r1, 24 lsrs r1, 24 mov r9, r1 ldr r2, _080B39A0 cmp r4, 0 beq _080B395A movs r0, 0xFC strb r0, [r2] movs r0, 0x1 strb r0, [r2, 0x1] movs r0, 0x2 strb r0, [r2, 0x2] adds r2, 0x3 _080B395A: lsls r6, r3, 5 ldr r0, _080B39A4 mov r8, r0 adds r1, r6, r0 adds r0, r2, 0 bl StringCopy ldr r5, _080B39A0 mov r0, r9 lsls r7, r0, 3 movs r0, 0x1 str r0, [sp] adds r0, r5, 0 movs r1, 0x70 adds r2, r7, 0 movs r3, 0x58 bl sub_8072A18 adds r2, r5, 0 cmp r4, 0 beq _080B3986 adds r2, r5, 0x3 _080B3986: mov r0, r8 subs r0, 0x1 adds r3, r6, r0 ldrh r1, [r3, 0x14] ldr r0, _080B39A8 cmp r1, r0 bne _080B39AC movs r0, 0x19 mov r1, r9 adds r2, r4, 0 bl sub_80B7B34 b _080B39C2 .align 2, 0 _080B39A0: .4byte 0x020231cc _080B39A4: .4byte gDecorations + 0x1 _080B39A8: .4byte 0x00002710 _080B39AC: ldrh r1, [r3, 0x14] adds r0, r2, 0 movs r2, 0x4 bl sub_80B79F8 adds r0, r5, 0 movs r1, 0xCA adds r2, r7, 0 movs r3, 0x1 bl sub_80729D8 _080B39C2: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80B3930 thumb_func_start sub_80B39D0 sub_80B39D0: @ 80B39D0 push {r4-r6,lr} adds r6, r1, 0 adds r5, r2, 0 b _080B3A1A _080B39D8: ldrb r0, [r1, 0xC] cmp r0, 0 bne _080B39FC ldrb r0, [r1, 0xB] adds r0, r4 ldr r1, [r1, 0x4] lsls r0, 1 adds r0, r1 ldrh r0, [r0] lsls r1, r4, 25 movs r2, 0x80 lsls r2, 18 adds r1, r2 lsrs r1, 24 adds r2, r5, 0 bl sub_80B389C b _080B3A18 _080B39FC: ldrb r0, [r1, 0xB] adds r0, r4 ldr r1, [r1, 0x4] lsls r0, 1 adds r0, r1 ldrh r0, [r0] lsls r1, r4, 25 movs r2, 0x80 lsls r2, 18 adds r1, r2 lsrs r1, 24 adds r2, r5, 0 bl sub_80B3930 _080B3A18: adds r0, r4, 0x1 _080B3A1A: lsls r0, 24 lsrs r4, r0, 24 cmp r4, r6 bgt _080B3A2E ldr r1, _080B3A68 ldrb r0, [r1, 0xB] adds r0, r4 ldrb r2, [r1, 0x8] cmp r0, r2 blt _080B39D8 _080B3A2E: cmp r4, 0x8 beq _080B3A60 ldr r1, _080B3A68 ldrb r0, [r1, 0xB] adds r0, r4 ldrb r1, [r1, 0x8] cmp r0, r1 bne _080B3A60 lsls r3, r4, 1 adds r4, r3, 0x2 lsls r4, 24 lsrs r4, 24 adds r3, 0x3 lsls r3, 24 lsrs r3, 24 movs r0, 0xE adds r1, r4, 0 movs r2, 0x1C bl sub_8071EBC ldr r0, _080B3A6C movs r1, 0xE adds r2, r4, 0 bl Print _080B3A60: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B3A68: .4byte 0x03000708 _080B3A6C: .4byte gUnknown_0840E645 thumb_func_end sub_80B39D0 thumb_func_start sub_80B3A70 sub_80B3A70: @ 80B3A70 push {r4,lr} sub sp, 0x8 ldr r2, _080B3A9C ldrb r1, [r2, 0xB] ldrb r0, [r2, 0x9] adds r0, r1, r0 ldrb r1, [r2, 0x8] cmp r0, r1 beq _080B3ACC ldrb r4, [r2, 0xC] cmp r4, 0 bne _080B3AA0 ldr r1, [r2, 0x4] lsls r0, 1 adds r0, r1 ldrh r0, [r0] bl itemid_get_description movs r1, 0x30 str r1, [sp] str r4, [sp, 0x4] b _080B3ABA .align 2, 0 _080B3A9C: .4byte 0x03000708 _080B3AA0: ldr r1, _080B3AC8 ldr r2, [r2, 0x4] lsls r0, 1 adds r0, r2 ldrh r0, [r0] lsls r0, 5 adds r1, 0x18 adds r0, r1 ldr r0, [r0] movs r1, 0x30 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] _080B3ABA: movs r1, 0x4 movs r2, 0x68 movs r3, 0x68 bl sub_8072AB0 b _080B3AE0 .align 2, 0 _080B3AC8: .4byte gDecorations _080B3ACC: ldr r0, _080B3AE8 movs r1, 0x30 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] movs r1, 0x4 movs r2, 0x68 movs r3, 0x68 bl sub_8072AB0 _080B3AE0: add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080B3AE8: .4byte gUnknown_0840ECA1 thumb_func_end sub_80B3A70 thumb_func_start sub_80B3AEC sub_80B3AEC: @ 80B3AEC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080B3B5C ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080B3B06 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080B3B7A _080B3B06: ldr r4, _080B3B60 ldrb r1, [r4, 0x9] adds r0, r1, 0 movs r2, 0 bl sub_80B39D0 movs r0, 0x5 bl audio_play ldrb r0, [r4, 0xB] ldrb r1, [r4, 0x9] adds r0, r1 ldr r1, [r4, 0x4] lsls r0, 1 adds r0, r1 ldrh r0, [r0] cmp r0, 0x4 bne _080B3B74 ldr r0, _080B3B64 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 movs r2, 0xA ldrsh r0, [r1, r2] cmp r0, 0x9 ble _080B3B74 movs r0, 0xC movs r1, 0x1 bl sub_80A9424 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080B3B74 ldr r1, _080B3B68 ldr r2, _080B3B6C ldr r3, _080B3B70 adds r0, r5, 0 bl DisplayItemMessageOnField b _080B3B7A .align 2, 0 _080B3B5C: .4byte 0x03001770 _080B3B60: .4byte 0x03000708 _080B3B64: .4byte 0x03004b20 _080B3B68: .4byte gUnknown_0840EE7F _080B3B6C: .4byte sub_80B4378 _080B3B70: .4byte 0x0000c3e1 _080B3B74: adds r0, r5, 0 bl sub_80B4378 _080B3B7A: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80B3AEC thumb_func_start sub_80B3B80 sub_80B3B80: @ 80B3B80 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x26 bl sav12_xor_increment ldr r5, _080B3BC0 ldr r0, _080B3BC4 ldr r1, [r0] adds r0, r5, 0 bl sub_80B79E0 movs r0, 0x5F bl audio_play ldr r0, [r5] movs r1, 0 movs r2, 0 bl sub_80B7BEC ldr r1, _080B3BC8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080B3BCC str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B3BC0: .4byte 0x02025bc4 _080B3BC4: .4byte 0x020386a0 _080B3BC8: .4byte 0x03004b20 _080B3BCC: .4byte sub_80B3AEC thumb_func_end sub_80B3B80 thumb_func_start sub_80B3BD0 sub_80B3BD0: @ 80B3BD0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080B3BF0 ldrb r1, [r0, 0x9] adds r0, r1, 0 movs r2, 0 bl sub_80B39D0 adds r0, r4, 0 bl sub_80B4378 pop {r4} pop {r0} bx r0 .align 2, 0 _080B3BF0: .4byte 0x03000708 thumb_func_end sub_80B3BD0 thumb_func_start sub_80B3BF4 sub_80B3BF4: @ 80B3BF4 push {r4,r5,lr} sub sp, 0x8 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x7 movs r1, 0x8 movs r2, 0xD movs r3, 0xD bl Reset ldr r0, _080B3C7C movs r1, 0x4 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] movs r1, 0x8 movs r2, 0x9 movs r3, 0x4 bl sub_80A3FA0 bl sub_80B379C bl sub_80B3420 ldr r0, _080B3C80 movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] ldr r1, _080B3C84 ldr r1, [r1] bl IsEnoughMoney lsls r0, 24 cmp r0, 0 beq _080B3D18 ldr r4, _080B3C88 ldrb r0, [r4, 0xC] cmp r0, 0 bne _080B3CAC ldrb r0, [r4, 0xB] ldrb r1, [r4, 0x9] adds r0, r1 ldr r1, [r4, 0x4] lsls r0, 1 adds r0, r1 ldrh r0, [r0] ldr r2, _080B3C8C lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r2 ldrh r1, [r1, 0xA] bl sub_80A9424 lsls r0, 24 cmp r0, 0 beq _080B3C9C ldr r1, _080B3C90 ldr r2, _080B3C94 ldr r3, _080B3C98 adds r0, r5, 0 bl DisplayItemMessageOnField adds r0, r5, 0 bl sub_80B4470 b _080B3D24 .align 2, 0 _080B3C7C: .4byte 0x020219cc _080B3C80: .4byte 0x02025734 _080B3C84: .4byte 0x020386a0 _080B3C88: .4byte 0x03000708 _080B3C8C: .4byte 0x03004b20 _080B3C90: .4byte gUnknown_0840ED5E _080B3C94: .4byte sub_80B3B80 _080B3C98: .4byte 0x0000c3e1 _080B3C9C: ldr r1, _080B3CA4 ldr r2, _080B3CA8 b _080B3CD8 .align 2, 0 _080B3CA4: .4byte gUnknown_0840EDF1 _080B3CA8: .4byte sub_80B3BD0 _080B3CAC: ldrb r0, [r4, 0xB] ldrb r1, [r4, 0x9] adds r0, r1 ldr r1, [r4, 0x4] lsls r0, 1 adds r0, r1 ldrb r0, [r0] bl IsThereStorageSpaceForDecoration lsls r0, 24 cmp r0, 0 beq _080B3CF0 ldrb r0, [r4, 0xC] cmp r0, 0x1 bne _080B3CD4 ldr r1, _080B3CD0 b _080B3CD6 .align 2, 0 _080B3CD0: .4byte gUnknown_0840ED80 _080B3CD4: ldr r1, _080B3CE4 _080B3CD6: ldr r2, _080B3CE8 _080B3CD8: ldr r3, _080B3CEC adds r0, r5, 0 bl DisplayItemMessageOnField b _080B3D24 .align 2, 0 _080B3CE4: .4byte gUnknown_0840EDA9 _080B3CE8: .4byte sub_80B3B80 _080B3CEC: .4byte 0x0000c3e1 _080B3CF0: ldr r4, _080B3D08 ldr r1, _080B3D0C adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _080B3D10 ldr r3, _080B3D14 adds r0, r5, 0 adds r1, r4, 0 bl DisplayItemMessageOnField b _080B3D24 .align 2, 0 _080B3D08: .4byte 0x020234cc _080B3D0C: .4byte gUnknown_0840EE14 _080B3D10: .4byte sub_80B3BD0 _080B3D14: .4byte 0x0000c3e1 _080B3D18: ldr r1, _080B3D2C ldr r2, _080B3D30 ldr r3, _080B3D34 adds r0, r5, 0 bl DisplayItemMessageOnField _080B3D24: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B3D2C: .4byte gUnknown_0840EDD2 _080B3D30: .4byte sub_80B3BD0 _080B3D34: .4byte 0x0000c3e1 thumb_func_end sub_80B3BF4 thumb_func_start sub_80B3D38 sub_80B3D38: @ 80B3D38 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x7 movs r1, 0x8 movs r2, 0x1 bl sub_8072974 ldr r0, _080B3D70 movs r1, 0x4 str r1, [sp] ldr r1, _080B3D74 str r1, [sp, 0x4] movs r1, 0x8 movs r2, 0x9 movs r3, 0x4 bl sub_80A3FA0 ldr r1, _080B3D78 adds r0, r4, 0 bl sub_80F914C add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080B3D70: .4byte 0x020219cc _080B3D74: .4byte 0x0000c3e1 _080B3D78: .4byte gUnknown_083CC708 thumb_func_end sub_80B3D38 thumb_func_start sub_80B3D7C sub_80B3D7C: @ 80B3D7C push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080B3DC0 ldrb r1, [r0, 0x9] adds r0, r1, 0 movs r2, 0 bl sub_80B39D0 movs r0, 0x7 movs r1, 0x8 movs r2, 0xD movs r3, 0xD bl Reset ldr r0, _080B3DC4 movs r1, 0x4 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] movs r1, 0x8 movs r2, 0x9 movs r3, 0x4 bl sub_80A3FA0 adds r0, r4, 0 bl sub_80B4378 add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080B3DC0: .4byte 0x03000708 _080B3DC4: .4byte 0x020219cc thumb_func_end sub_80B3D7C thumb_func_start sub_80B3DC8 sub_80B3DC8: @ 80B3DC8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r6, r0, 24 adds r4, r6, 0 ldr r7, _080B3EA8 ldrb r1, [r7, 0xD] adds r0, r6, 0 bl sub_80A52C4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080B3DEE adds r0, r6, 0 bl sub_80B37F8 _080B3DEE: ldr r0, _080B3EAC ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080B3ED8 ldr r0, _080B3EB0 mov r8, r0 ldrb r0, [r7, 0xB] ldrb r1, [r7, 0x9] adds r0, r1 ldr r1, [r7, 0x4] lsls r0, 1 adds r0, r1 ldrh r0, [r0] bl itemid_get_market_price adds r4, r0, 0 movs r0, 0x1 bl GetPriceReduction lsls r4, 16 lsrs r4, 16 lsls r0, 24 lsrs r0, 24 asrs r4, r0 ldr r0, _080B3EB4 lsls r5, r6, 2 adds r5, r6 lsls r5, 3 adds r5, r0 movs r1, 0xA ldrsh r0, [r5, r1] muls r0, r4 mov r2, r8 str r0, [r2] movs r0, 0 movs r1, 0xA movs r2, 0xD movs r3, 0xD bl Reset ldr r0, _080B3EB8 movs r1, 0x2 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] movs r1, 0x1 movs r2, 0xB movs r3, 0xC bl sub_80A3FA0 bl sub_80B379C bl sub_80B3420 ldrb r0, [r7, 0xB] ldrb r1, [r7, 0x9] adds r0, r1 ldr r1, [r7, 0x4] lsls r0, 1 adds r0, r1 ldrh r0, [r0] ldr r1, _080B3EBC bl itemid_copy_name ldr r0, _080B3EC0 movs r2, 0xA ldrsh r1, [r5, r2] movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, _080B3EC4 mov r2, r8 ldr r1, [r2] movs r2, 0 movs r3, 0x8 bl ConvertIntToDecimalStringN ldr r4, _080B3EC8 ldr r1, _080B3ECC adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _080B3ED0 ldr r3, _080B3ED4 adds r0, r6, 0 adds r1, r4, 0 bl DisplayItemMessageOnField b _080B3EF0 .align 2, 0 _080B3EA8: .4byte 0x03000708 _080B3EAC: .4byte 0x03001770 _080B3EB0: .4byte 0x020386a0 _080B3EB4: .4byte 0x03004b20 _080B3EB8: .4byte 0x020219cc _080B3EBC: .4byte 0x020231cc _080B3EC0: .4byte 0x020232cc _080B3EC4: .4byte 0x020233cc _080B3EC8: .4byte 0x020234cc _080B3ECC: .4byte gUnknown_0840ECD8 _080B3ED0: .4byte sub_80B3D38 _080B3ED4: .4byte 0x0000c3e1 _080B3ED8: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080B3EF0 ldrb r1, [r7, 0x9] adds r0, r1, 0 movs r2, 0 bl sub_80B39D0 adds r0, r4, 0 bl sub_80B4378 _080B3EF0: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80B3DC8 thumb_func_start sub_80B3EFC sub_80B3EFC: @ 80B3EFC push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080B3F78 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x1 strh r1, [r0, 0xA] movs r0, 0 movs r1, 0xA movs r2, 0xD movs r3, 0xD bl DrawDefaultWindow adds r0, r5, 0 bl sub_80B37F8 ldr r6, _080B3F7C ldrb r0, [r6, 0xB] ldrb r1, [r6, 0x9] adds r0, r1 ldr r1, [r6, 0x4] lsls r0, 1 adds r0, r1 ldrh r0, [r0] bl itemid_get_market_price adds r4, r0, 0 movs r0, 0x1 bl GetPriceReduction ldr r1, _080B3F80 movs r2, 0x92 lsls r2, 3 adds r1, r2 lsls r4, 16 lsrs r4, 16 lsls r0, 24 lsrs r0, 24 asrs r4, r0 ldr r0, [r1] adds r1, r4, 0 bl __udivsi3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x63 bls _080B3F62 movs r0, 0x63 _080B3F62: strb r0, [r6, 0xD] ldr r0, _080B3F78 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _080B3F84 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B3F78: .4byte 0x03004b20 _080B3F7C: .4byte 0x03000708 _080B3F80: .4byte 0x02025734 _080B3F84: .4byte sub_80B3DC8 thumb_func_end sub_80B3EFC thumb_func_start sub_80B3F88 sub_80B3F88: @ 80B3F88 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r0, _080B4020 mov r8, r0 ldr r1, [r0, 0x28] ldr r3, _080B4024 adds r1, r3 adds r2, r1, 0 adds r2, 0x80 ldr r7, [r0, 0x24] mov r10, r7 ldr r0, _080B4028 mov r9, r0 movs r6, 0xD _080B3FAC: adds r3, r2, 0 subs r3, 0x40 str r3, [sp] movs r7, 0x40 negs r7, r7 adds r7, r1 mov r12, r7 adds r3, r2, 0 adds r4, r1, 0 movs r5, 0xE _080B3FC0: ldrh r2, [r4] mov r1, r9 ands r1, r2 mov r7, r8 ldrh r0, [r7, 0x1A] adds r0, 0x1 cmp r1, r0 ble _080B3FD4 adds r0, r2, 0 adds r0, 0x3C _080B3FD4: strh r0, [r3] adds r3, 0x2 adds r4, 0x2 subs r5, 0x1 cmp r5, 0 bge _080B3FC0 ldr r2, [sp] mov r1, r12 subs r6, 0x1 cmp r6, 0 bge _080B3FAC ldr r1, _080B402C add r1, r10 movs r0, 0xF0 lsls r0, 3 adds r2, r1, r0 ldr r3, _080B4030 ldr r5, _080B4034 ldr r4, _080B4038 movs r6, 0xD _080B3FFC: str r1, [r3] str r2, [r3, 0x4] str r5, [r3, 0x8] ldr r0, [r3, 0x8] adds r2, r4 adds r1, r4 subs r6, 0x1 cmp r6, 0 bge _080B3FFC add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B4020: .4byte 0x0202e908 _080B4024: .4byte 0x000003de _080B4028: .4byte 0x000003ff _080B402C: .4byte 0x00003a20 _080B4030: .4byte 0x040000d4 _080B4034: .4byte 0x800000f0 _080B4038: .4byte 0xfffffc40 thumb_func_end sub_80B3F88 thumb_func_start sub_80B403C sub_80B403C: @ 80B403C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r0, _080B40D8 mov r8, r0 ldr r2, [r0, 0x28] adds r1, r2, 0 adds r1, 0x9E adds r2, r1, 0 adds r1, 0x80 ldr r3, [r0, 0x24] mov r10, r3 ldr r7, _080B40DC mov r9, r7 movs r6, 0xD _080B4060: adds r0, r2, 0 adds r0, 0x40 str r0, [sp] movs r3, 0x40 adds r3, r1 mov r12, r3 adds r3, r2, 0 adds r4, r1, 0 movs r5, 0xE _080B4072: ldrh r2, [r4] mov r1, r9 ands r1, r2 mov r7, r8 ldrh r0, [r7, 0x1A] adds r0, 0x1 cmp r1, r0 ble _080B4086 adds r0, r2, 0 subs r0, 0x3C _080B4086: strh r0, [r3] adds r3, 0x2 adds r4, 0x2 subs r5, 0x1 cmp r5, 0 bge _080B4072 ldr r2, [sp] mov r1, r12 subs r6, 0x1 cmp r6, 0 bge _080B4060 movs r1, 0x96 lsls r1, 4 add r1, r10 adds r2, r1, 0 movs r0, 0xF0 lsls r0, 3 adds r1, r0 ldr r3, _080B40E0 ldr r5, _080B40E4 movs r4, 0xF0 lsls r4, 2 movs r6, 0xD _080B40B4: str r1, [r3] str r2, [r3, 0x4] str r5, [r3, 0x8] ldr r0, [r3, 0x8] adds r2, r4 adds r1, r4 subs r6, 0x1 cmp r6, 0 bge _080B40B4 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B40D8: .4byte 0x0202e908 _080B40DC: .4byte 0x000003ff _080B40E0: .4byte 0x040000d4 _080B40E4: .4byte 0x800000f0 thumb_func_end sub_80B403C thumb_func_start sub_80B40E8 sub_80B40E8: @ 80B40E8 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 mov r8, r7 ldr r0, _080B4134 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080B4102 b _080B436C _080B4102: ldr r2, _080B4138 ldrh r0, [r2, 0x30] movs r1, 0xF0 ands r1, r0 cmp r1, 0x40 bne _080B414C ldr r4, _080B413C ldrb r0, [r4, 0x9] cmp r0, 0 bne _080B4140 ldrb r0, [r4, 0xB] cmp r0, 0 bne _080B411E b _080B436C _080B411E: movs r0, 0x5 bl audio_play ldrb r0, [r4, 0xB] subs r0, 0x1 strb r0, [r4, 0xB] bl sub_80B3F88 movs r0, 0 movs r1, 0 b _080B417A .align 2, 0 _080B4134: .4byte 0x0202f388 _080B4138: .4byte 0x03001770 _080B413C: .4byte 0x03000708 _080B4140: movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 b _080B41A0 _080B414C: cmp r1, 0x80 bne _080B41AC ldr r4, _080B418C ldrb r0, [r4, 0x9] cmp r0, 0x7 bne _080B4190 ldrb r0, [r4, 0xB] ldrb r1, [r4, 0x9] adds r0, r1 ldrb r1, [r4, 0x8] cmp r0, r1 bne _080B4166 b _080B436C _080B4166: movs r0, 0x5 bl audio_play ldrb r0, [r4, 0xB] adds r0, 0x1 strb r0, [r4, 0xB] bl sub_80B403C movs r0, 0x7 movs r1, 0x7 _080B417A: movs r2, 0 bl sub_80B39D0 bl sub_80B3A70 bl sub_80B32A4 b _080B436C .align 2, 0 _080B418C: .4byte 0x03000708 _080B4190: ldrb r2, [r4, 0x8] cmp r0, r2 bne _080B4198 b _080B436C _080B4198: movs r0, 0x5 bl audio_play movs r0, 0x1 _080B41A0: bl MoveMenuCursor strb r0, [r4, 0x9] bl sub_80B3A70 b _080B436C _080B41AC: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080B41B8 b _080B4358 _080B41B8: movs r0, 0x5 bl audio_play ldr r6, _080B426C ldrb r0, [r6, 0xB] ldrb r1, [r6, 0x9] adds r0, r1 ldrb r1, [r6, 0x8] cmp r0, r1 bne _080B41CE b _080B4350 _080B41CE: movs r0, 0 bl sub_80F996C movs r0, 0x1 bl sub_80F996C movs r0, 0x1 movs r1, 0x1 bl sub_80F979C ldrb r1, [r6, 0x9] adds r0, r1, 0 movs r2, 0x1 bl sub_80B39D0 bl sub_8072DEC movs r0, 0 movs r1, 0xC movs r2, 0xD movs r3, 0x13 bl Reset ldrb r0, [r6, 0xC] cmp r0, 0 bne _080B428C ldr r5, _080B4270 ldrb r0, [r6, 0xB] ldrb r1, [r6, 0x9] adds r0, r1 ldr r1, [r6, 0x4] lsls r0, 1 adds r0, r1 ldrh r0, [r0] bl itemid_get_market_price adds r4, r0, 0 movs r0, 0x1 bl GetPriceReduction lsls r4, 16 lsrs r4, 16 lsls r0, 24 lsrs r0, 24 asrs r4, r0 str r4, [r5] ldr r0, _080B4274 movs r2, 0x92 lsls r2, 3 adds r0, r2 ldr r0, [r0] adds r1, r4, 0 bl IsEnoughMoney lsls r0, 24 cmp r0, 0 beq _080B42BA ldrb r0, [r6, 0xB] ldrb r1, [r6, 0x9] adds r0, r1 ldr r1, [r6, 0x4] lsls r0, 1 adds r0, r1 ldrh r0, [r0] ldr r1, _080B4278 bl itemid_copy_name ldr r4, _080B427C ldr r1, _080B4280 adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _080B4284 ldr r3, _080B4288 adds r0, r7, 0 adds r1, r4, 0 bl DisplayItemMessageOnField b _080B436C .align 2, 0 _080B426C: .4byte 0x03000708 _080B4270: .4byte 0x020386a0 _080B4274: .4byte 0x02025734 _080B4278: .4byte 0x020231cc _080B427C: .4byte 0x020234cc _080B4280: .4byte gUnknown_0840ECB0 _080B4284: .4byte sub_80B3EFC _080B4288: .4byte 0x0000c3e1 _080B428C: ldr r5, _080B42C8 ldr r4, _080B42CC ldrb r0, [r6, 0xB] ldrb r1, [r6, 0x9] adds r0, r1 ldr r1, [r6, 0x4] lsls r0, 1 adds r0, r1 ldrh r0, [r0] lsls r0, 5 adds r0, r4 ldrh r1, [r0, 0x14] str r1, [r5] ldr r0, _080B42D0 movs r2, 0x92 lsls r2, 3 adds r0, r2 ldr r0, [r0] bl IsEnoughMoney lsls r0, 24 cmp r0, 0 bne _080B42E0 _080B42BA: ldr r1, _080B42D4 ldr r2, _080B42D8 ldr r3, _080B42DC adds r0, r7, 0 bl DisplayItemMessageOnField b _080B436C .align 2, 0 _080B42C8: .4byte 0x020386a0 _080B42CC: .4byte gDecorations _080B42D0: .4byte 0x02025734 _080B42D4: .4byte gUnknown_0840EDD2 _080B42D8: .4byte sub_80B3BD0 _080B42DC: .4byte 0x0000c3e1 _080B42E0: ldr r0, _080B4318 ldrb r1, [r6, 0xB] ldrb r2, [r6, 0x9] adds r1, r2 ldr r2, [r6, 0x4] lsls r1, 1 adds r1, r2 ldrh r1, [r1] lsls r1, 5 adds r2, r4, 0x1 adds r1, r2 bl StringCopy ldr r0, _080B431C ldr r1, [r5] movs r2, 0 movs r3, 0x8 bl ConvertIntToDecimalStringN ldrb r0, [r6, 0xC] cmp r0, 0x1 bne _080B4328 ldr r0, _080B4320 ldr r1, _080B4324 bl StringExpandPlaceholders b _080B4330 .align 2, 0 _080B4318: .4byte 0x020231cc _080B431C: .4byte 0x020232cc _080B4320: .4byte 0x020234cc _080B4324: .4byte gUnknown_0840ED01 _080B4328: ldr r0, _080B4340 ldr r1, _080B4344 bl StringExpandPlaceholders _080B4330: ldr r1, _080B4340 ldr r2, _080B4348 ldr r3, _080B434C mov r0, r8 bl DisplayItemMessageOnField b _080B436C .align 2, 0 _080B4340: .4byte 0x020234cc _080B4344: .4byte gUnknown_0840ED2C _080B4348: .4byte sub_80B3D38 _080B434C: .4byte 0x0000c3e1 _080B4350: adds r0, r7, 0 bl sub_80B43F0 b _080B436C _080B4358: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080B436C movs r0, 0x5 bl audio_play mov r0, r8 bl sub_80B43F0 _080B436C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80B40E8 thumb_func_start sub_80B4378 sub_80B4378: @ 80B4378 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl Reset movs r0, 0 movs r1, 0xA movs r2, 0xD movs r3, 0xD bl Reset ldr r0, _080B43E4 movs r1, 0x2 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] movs r1, 0x1 movs r2, 0xB movs r3, 0xC bl sub_80A3FA0 bl sub_80B3420 movs r0, 0x6 movs r1, 0x7 bl sub_80B3764 bl sub_80B37EC movs r0, 0 bl sub_80F98DC movs r0, 0x1 bl sub_80F98DC bl sub_80B32A4 ldr r1, _080B43E8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080B43EC str r1, [r0] add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080B43E4: .4byte 0x020219cc _080B43E8: .4byte 0x03004b20 _080B43EC: .4byte sub_80B40E8 thumb_func_end sub_80B4378 thumb_func_start sub_80B43F0 sub_80B43F0: @ 80B43F0 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080B4428 ldr r0, _080B442C str r0, [r1] movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _080B4430 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080B4434 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080B4428: .4byte 0x0300485c _080B442C: .4byte sub_80B3050 _080B4430: .4byte 0x03004b20 _080B4434: .4byte Task_ExitBuyMenu thumb_func_end sub_80B43F0 thumb_func_start Task_ExitBuyMenu Task_ExitBuyMenu: @ 80B4438 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080B4468 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080B4462 movs r0, 0 movs r1, 0 bl RemoveMoneyLabelObject bl BuyMenuFreeMemory ldr r0, _080B446C bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _080B4462: pop {r4} pop {r0} bx r0 .align 2, 0 _080B4468: .4byte 0x0202f388 _080B446C: .4byte c2_exit_to_overworld_2_switch thumb_func_end Task_ExitBuyMenu thumb_func_start sub_80B4470 sub_80B4470: @ 80B4470 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r5, r0, 24 movs r2, 0 ldr r0, _080B44C8 mov r12, r0 ldr r6, _080B44CC mov r8, r12 adds r4, r6, 0 ldr r1, _080B44D0 mov r9, r1 lsls r0, r5, 2 adds r0, r5 lsls r7, r0, 3 _080B4492: lsls r0, r2, 2 mov r1, r8 adds r3, r0, r1 ldrb r0, [r4, 0xB] ldrb r1, [r4, 0x9] adds r0, r1 ldr r1, [r4, 0x4] lsls r0, 1 adds r0, r1 ldrh r1, [r3] ldrh r0, [r0] cmp r1, r0 bne _080B44DC ldrh r0, [r3, 0x2] cmp r0, 0 beq _080B44DC adds r2, r0, 0 mov r4, r9 adds r1, r7, r4 movs r4, 0xA ldrsh r0, [r1, r4] adds r0, r2, r0 cmp r0, 0xFF ble _080B44D4 movs r0, 0xFF strh r0, [r3, 0x2] b _080B451E .align 2, 0 _080B44C8: .4byte 0x02038724 _080B44CC: .4byte 0x03000708 _080B44D0: .4byte 0x03004b20 _080B44D4: ldrh r0, [r1, 0xA] adds r0, r2, r0 strh r0, [r3, 0x2] b _080B451E _080B44DC: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x2 bls _080B4492 ldr r3, _080B452C ldrb r0, [r3] cmp r0, 0x2 bhi _080B451E adds r2, r0, 0 lsls r2, 2 add r2, r12 ldrb r0, [r6, 0xB] ldrb r1, [r6, 0x9] adds r0, r1 ldr r1, [r6, 0x4] lsls r0, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r2] ldrb r1, [r3] lsls r1, 2 add r1, r12 ldr r2, _080B4530 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r2 ldrh r0, [r0, 0xA] strh r0, [r1, 0x2] ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] _080B451E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B452C: .4byte 0x02038730 _080B4530: .4byte 0x03004b20 thumb_func_end sub_80B4470 thumb_func_start ClearItemPurchases ClearItemPurchases: @ 80B4534 push {lr} ldr r0, _080B4548 movs r1, 0 strb r1, [r0] ldr r0, _080B454C movs r1, 0x3 bl sub_80A9684 pop {r0} bx r0 .align 2, 0 _080B4548: .4byte 0x02038730 _080B454C: .4byte 0x02038724 thumb_func_end ClearItemPurchases thumb_func_start CreatePokemartMenu CreatePokemartMenu: @ 80B4550 push {r4,lr} adds r4, r0, 0 movs r0, 0 bl CreateShopMenu adds r0, r4, 0 bl SetShopItemsForSale bl ClearItemPurchases ldr r0, _080B4570 bl SetShopMenuCallback pop {r4} pop {r0} bx r0 .align 2, 0 _080B4570: .4byte script_env_2_enable_and_set_ctx_running thumb_func_end CreatePokemartMenu thumb_func_start CreateDecorationShop1Menu CreateDecorationShop1Menu: @ 80B4574 push {r4,lr} adds r4, r0, 0 movs r0, 0x1 bl CreateShopMenu adds r0, r4, 0 bl SetShopItemsForSale ldr r0, _080B4590 bl SetShopMenuCallback pop {r4} pop {r0} bx r0 .align 2, 0 _080B4590: .4byte script_env_2_enable_and_set_ctx_running thumb_func_end CreateDecorationShop1Menu thumb_func_start CreateDecorationShop2Menu CreateDecorationShop2Menu: @ 80B4594 push {r4,lr} adds r4, r0, 0 movs r0, 0x2 bl CreateShopMenu adds r0, r4, 0 bl SetShopItemsForSale ldr r0, _080B45B0 bl SetShopMenuCallback pop {r4} pop {r0} bx r0 .align 2, 0 _080B45B0: .4byte script_env_2_enable_and_set_ctx_running thumb_func_end CreateDecorationShop2Menu thumb_func_start sub_80B45B4 sub_80B45B4: @ 80B45B4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 mov r9, r1 lsls r0, 24 lsrs r0, 24 lsls r2, 16 lsrs r2, 16 mov r10, r2 ldr r2, _080B4648 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrh r0, [r1, 0x10] subs r0, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r1, 0x12] subs r0, 0x1 lsls r0, 16 lsrs r3, r0, 16 ldrh r4, [r1, 0xA] movs r2, 0xC ldrsh r0, [r1, r2] cmp r0, 0 bne _080B4678 movs r2, 0 lsls r5, 16 str r5, [sp, 0xC] lsls r0, r3, 16 lsls r1, r4, 16 asrs r0, 16 str r0, [sp] asrs r1, 16 str r1, [sp, 0x4] lsls r0, r1, 1 mov r1, r9 adds r7, r0, r1 _080B4608: movs r4, 0 lsls r2, 16 mov r8, r2 asrs r0, r2, 16 ldr r2, [sp] adds r6, r2, r0 _080B4614: ldr r0, [sp, 0xC] asrs r1, r0, 16 lsls r4, 16 asrs r0, r4, 16 adds r5, r1, r0 adds r0, r5, 0 adds r1, r6, 0 bl MapGridGetMetatileIdAt movs r2, 0 ldrsh r1, [r7, r2] lsls r0, 16 asrs r0, 16 cmp r1, r0 bne _080B465C ldr r0, [sp, 0x4] cmp r0, 0x2 beq _080B464C ldrh r0, [r7, 0x2] mov r2, r10 orrs r2, r0 adds r0, r5, 0 adds r1, r6, 0 bl MapGridSetMetatileIdAt b _080B465C .align 2, 0 _080B4648: .4byte 0x03004b20 _080B464C: mov r1, r9 ldrh r0, [r1] mov r2, r10 orrs r2, r0 adds r0, r5, 0 adds r1, r6, 0 bl MapGridSetMetatileIdAt _080B465C: movs r2, 0x80 lsls r2, 9 adds r0, r4, r2 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080B4614 adds r0, r2, 0 add r0, r8 lsrs r2, r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080B4608 b _080B4700 _080B4678: movs r2, 0 lsls r5, 16 str r5, [sp, 0xC] lsls r0, r3, 16 lsls r1, r4, 16 asrs r0, 16 str r0, [sp, 0x8] asrs r7, r1, 16 _080B4688: movs r4, 0 lsls r2, 16 mov r8, r2 asrs r0, r2, 16 ldr r1, [sp, 0x8] adds r6, r1, r0 _080B4694: ldr r2, [sp, 0xC] asrs r1, r2, 16 lsls r4, 16 asrs r0, r4, 16 adds r5, r1, r0 adds r0, r5, 0 adds r1, r6, 0 bl MapGridGetMetatileIdAt movs r1, 0x2 subs r1, r7 lsls r1, 1 add r1, r9 movs r2, 0 ldrsh r1, [r1, r2] lsls r0, 16 asrs r0, 16 cmp r1, r0 bne _080B46E6 cmp r7, 0x2 beq _080B46D6 movs r0, 0x1 subs r0, r7 lsls r0, 1 add r0, r9 ldrh r0, [r0] mov r2, r10 orrs r2, r0 adds r0, r5, 0 adds r1, r6, 0 bl MapGridSetMetatileIdAt b _080B46E6 _080B46D6: mov r1, r9 ldrh r0, [r1, 0x4] mov r2, r10 orrs r2, r0 adds r0, r5, 0 adds r1, r6, 0 bl MapGridSetMetatileIdAt _080B46E6: movs r2, 0x80 lsls r2, 9 adds r0, r4, r2 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080B4694 adds r0, r2, 0 add r0, r8 lsrs r2, r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080B4688 _080B4700: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80B45B4 thumb_func_start sub_80B4710 sub_80B4710: @ 80B4710 push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 ldr r1, _080B4738 adds r4, r0, r1 movs r0, 0x1 strh r0, [r4, 0x6] movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x6 bhi _080B47AA lsls r0, 2 ldr r1, _080B473C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080B4738: .4byte 0x03004b28 _080B473C: .4byte _080B4740 .align 2, 0 _080B4740: .4byte _080B475C .4byte _080B4764 .4byte _080B476C .4byte _080B4774 .4byte _080B477C .4byte _080B4790 .4byte _080B47A0 _080B475C: ldr r1, _080B4760 b _080B4792 .align 2, 0 _080B4760: .4byte gUnknown_083CC714 _080B4764: ldr r1, _080B4768 b _080B4792 .align 2, 0 _080B4768: .4byte gUnknown_083CC71A _080B476C: ldr r1, _080B4770 b _080B477E .align 2, 0 _080B4770: .4byte gUnknown_083CC720 _080B4774: ldr r1, _080B4778 b _080B4792 .align 2, 0 _080B4778: .4byte gUnknown_083CC726 _080B477C: ldr r1, _080B478C _080B477E: movs r2, 0xC0 lsls r2, 4 adds r0, r3, 0 bl sub_80B45B4 b _080B47AA .align 2, 0 _080B478C: .4byte gUnknown_083CC72C _080B4790: ldr r1, _080B479C _080B4792: adds r0, r3, 0 movs r2, 0 bl sub_80B45B4 b _080B47AA .align 2, 0 _080B479C: .4byte gUnknown_083CC732 _080B47A0: ldr r1, _080B47D4 adds r0, r3, 0 movs r2, 0 bl sub_80B45B4 _080B47AA: ldrh r0, [r4] adds r0, 0x1 movs r1, 0x7 ands r0, r1 strh r0, [r4] adds r5, r0, 0 cmp r5, 0 bne _080B47CE bl DrawWholeMapView movs r1, 0x2 ldrsh r0, [r4, r1] adds r0, 0x1 movs r1, 0x3 bl __modsi3 strh r0, [r4, 0x2] strh r5, [r4, 0x6] _080B47CE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B47D4: .4byte gUnknown_083CC738 thumb_func_end sub_80B4710 thumb_func_start sub_80B47D8 sub_80B47D8: @ 80B47D8 push {r4-r7,lr} adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 ldr r6, _080B481C adds r0, r6, 0 movs r1, 0 bl CreateTask adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080B4820 adds r7, r0, r1 adds r0, r7, 0 adds r0, 0x8 adds r1, r7, 0 adds r1, 0xA bl PlayerGetDestCoords movs r0, 0 strh r0, [r7] strh r0, [r7, 0x2] strh r5, [r7, 0x4] adds r0, r4, 0 bl _call_via_r6 adds r0, r4, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080B481C: .4byte sub_80B4710 _080B4820: .4byte 0x03004b28 thumb_func_end sub_80B47D8 thumb_func_start sub_80B4824 sub_80B4824: @ 80B4824 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80B47D8 ldr r1, _080B4838 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _080B4838: .4byte 0x02038731 thumb_func_end sub_80B4824 thumb_func_start sub_80B483C sub_80B483C: @ 80B483C push {lr} ldr r0, _080B484C ldrb r0, [r0] bl DestroyTask pop {r0} bx r0 .align 2, 0 _080B484C: .4byte 0x02038731 thumb_func_end sub_80B483C thumb_func_start sub_80B4850 sub_80B4850: @ 80B4850 push {lr} ldr r2, _080B4874 ldr r0, _080B4878 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r1, r0, r2 movs r2, 0xE ldrsh r0, [r1, r2] cmp r0, 0 bne _080B487C movs r2, 0xA ldrsh r0, [r1, r2] cmp r0, 0x2 bne _080B487C movs r0, 0 b _080B487E .align 2, 0 _080B4874: .4byte 0x03004b20 _080B4878: .4byte 0x02038731 _080B487C: movs r0, 0x1 _080B487E: pop {r1} bx r1 thumb_func_end sub_80B4850 thumb_func_start unref_sub_80B4884 unref_sub_80B4884: @ 80B4884 push {lr} sub sp, 0x4 mov r1, sp movs r0, 0 strh r0, [r1] ldr r1, _080B48A0 ldr r2, _080B48A4 mov r0, sp bl CpuSet add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080B48A0: .4byte 0x02028894 _080B48A4: .4byte 0x01000298 thumb_func_end unref_sub_80B4884 thumb_func_start sub_80B48A8 sub_80B48A8: @ 80B48A8 push {r4-r6,lr} adds r5, r0, 0 ldr r3, _080B48E0 movs r2, 0 ldr r6, _080B48E4 ldr r0, _080B48E8 adds r4, r3, r0 _080B48B6: adds r0, r3, r2 adds r1, r5, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, r6 bls _080B48B6 ldr r2, _080B48EC adds r1, r4, r2 ldr r2, _080B48F0 adds r0, r4, r2 str r0, [r1] ldr r0, _080B48F4 adds r1, r4, r0 adds r2, 0x2D adds r0, r4, r2 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B48E0: .4byte 0x02028894 _080B48E4: .4byte 0x0000052f _080B48E8: .4byte 0xffffcea0 _080B48EC: .4byte 0x0000316c _080B48F0: .4byte 0x0000361c _080B48F4: .4byte 0x00003170 thumb_func_end sub_80B48A8 thumb_func_start sub_80B48F8 sub_80B48F8: @ 80B48F8 push {r4-r7,lr} ldr r3, _080B4934 ldr r1, _080B4938 adds r4, r3, r1 ldr r6, [r4] adds r1, 0x4 adds r2, r3, r1 ldr r7, [r2] movs r1, 0 str r1, [r4] str r1, [r2] adds r4, r0, 0 movs r2, 0 ldr r5, _080B493C _080B4914: adds r0, r4, r1 ldrb r0, [r0] adds r2, r0 adds r1, 0x1 cmp r1, r5 bls _080B4914 ldr r1, _080B4938 adds r0, r3, r1 str r6, [r0] adds r1, 0x4 adds r0, r3, r1 str r7, [r0] adds r0, r2, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080B4934: .4byte 0x02025734 _080B4938: .4byte 0x0000316c _080B493C: .4byte 0x0000052b thumb_func_end sub_80B48F8 thumb_func_start sub_80B4940 sub_80B4940: @ 80B4940 push {r4,lr} ldr r4, _080B4970 ldr r1, _080B4974 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 beq _080B4984 ldr r2, _080B4978 adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 beq _080B4984 ldr r1, _080B497C adds r0, r4, r1 bl sub_80B48F8 ldr r2, _080B4980 adds r1, r4, r2 ldr r1, [r1] cmp r0, r1 bne _080B4984 movs r0, 0x1 b _080B4986 .align 2, 0 _080B4970: .4byte 0x02025734 _080B4974: .4byte 0x00003174 _080B4978: .4byte 0x0000316a _080B497C: .4byte 0x00003160 _080B4980: .4byte 0x0000368c _080B4984: movs r0, 0 _080B4986: pop {r4} pop {r1} bx r1 thumb_func_end sub_80B4940 thumb_func_start GetBerryInfo GetBerryInfo: @ 80B498C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2B bne _080B49A8 bl sub_80B4940 cmp r0, 0 beq _080B49A8 ldr r0, _080B49A4 b _080B49BE .align 2, 0 _080B49A4: .4byte 0x02028894 _080B49A8: subs r0, r4, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2A bls _080B49B4 movs r4, 0x1 _080B49B4: lsls r0, r4, 3 subs r0, r4 lsls r0, 2 ldr r1, _080B49C4 adds r0, r1 _080B49BE: pop {r4} pop {r1} bx r1 .align 2, 0 _080B49C4: .4byte gBerries - 0x1C thumb_func_end GetBerryInfo thumb_func_start GetBerryTreeInfo GetBerryTreeInfo: @ 80B49C8 lsls r0, 24 lsrs r0, 21 ldr r1, _080B49D4 adds r0, r1 bx lr .align 2, 0 _080B49D4: .4byte 0x02026d3c thumb_func_end GetBerryTreeInfo thumb_func_start FieldObjectInteractionWaterBerryTree FieldObjectInteractionWaterBerryTree: @ 80B49D8 push {lr} ldr r0, _080B4A00 ldrb r0, [r0] bl FieldObjectGetBerryTreeId lsls r0, 24 lsrs r0, 24 bl GetBerryTreeInfo adds r2, r0, 0 ldrb r0, [r2, 0x1] lsls r0, 25 lsrs r0, 25 cmp r0, 0x2 beq _080B4A14 cmp r0, 0x2 bgt _080B4A04 cmp r0, 0x1 beq _080B4A0E b _080B4A2A .align 2, 0 _080B4A00: .4byte 0x03004ae0 _080B4A04: cmp r0, 0x3 beq _080B4A1A cmp r0, 0x4 beq _080B4A20 b _080B4A2A _080B4A0E: ldrb r0, [r2, 0x5] movs r1, 0x10 b _080B4A24 _080B4A14: ldrb r0, [r2, 0x5] movs r1, 0x20 b _080B4A24 _080B4A1A: ldrb r0, [r2, 0x5] movs r1, 0x40 b _080B4A24 _080B4A20: ldrb r0, [r2, 0x5] movs r1, 0x80 _080B4A24: orrs r0, r1 strb r0, [r2, 0x5] b _080B4A2E _080B4A2A: movs r0, 0 b _080B4A30 _080B4A2E: movs r0, 0x1 _080B4A30: pop {r1} bx r1 thumb_func_end FieldObjectInteractionWaterBerryTree thumb_func_start IsPlayerFacingPlantedBerryTree IsPlayerFacingPlantedBerryTree: @ 80B4A34 push {lr} bl GetFieldObjectScriptPointerForComparison ldr r1, _080B4A5C cmp r0, r1 bne _080B4A64 ldr r0, _080B4A60 ldrb r0, [r0] bl FieldObjectGetBerryTreeId lsls r0, 24 lsrs r0, 24 bl GetStageByBerryTreeId lsls r0, 24 cmp r0, 0 bne _080B4A64 movs r0, 0x1 b _080B4A66 .align 2, 0 _080B4A5C: .4byte BerryTreeScript _080B4A60: .4byte 0x03004ae0 _080B4A64: movs r0, 0 _080B4A66: pop {r1} bx r1 thumb_func_end IsPlayerFacingPlantedBerryTree thumb_func_start WaterBerryTree WaterBerryTree: @ 80B4A6C push {lr} bl GetFieldObjectScriptPointerForComparison ldr r1, _080B4A84 cmp r0, r1 bne _080B4A88 bl FieldObjectInteractionWaterBerryTree lsls r0, 24 lsrs r0, 24 b _080B4A8A .align 2, 0 _080B4A84: .4byte BerryTreeScript _080B4A88: movs r0, 0 _080B4A8A: pop {r1} bx r1 thumb_func_end WaterBerryTree thumb_func_start sub_80B4A90 sub_80B4A90: @ 80B4A90 push {r4,lr} ldr r1, _080B4AB4 ldr r0, _080B4AB8 ldr r3, [r0] ldr r4, [r0, 0x4] movs r2, 0x7F movs r0, 0xD0 lsls r0, 5 adds r1, r0 _080B4AA2: str r3, [r1] str r4, [r1, 0x4] subs r1, 0x8 subs r2, 0x1 cmp r2, 0 bge _080B4AA2 pop {r4} pop {r0} bx r0 .align 2, 0 _080B4AB4: .4byte 0x02025734 _080B4AB8: .4byte gUnknown_083CD780 thumb_func_end sub_80B4A90 thumb_func_start BerryTreeGrow BerryTreeGrow: @ 80B4ABC push {r4,lr} adds r4, r0, 0 ldrb r1, [r4, 0x1] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080B4ACE _080B4ACA: movs r0, 0 b _080B4B5A _080B4ACE: lsls r0, r1, 25 lsrs r0, 25 cmp r0, 0x5 bhi _080B4B58 lsls r0, 2 ldr r1, _080B4AE0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080B4AE0: .4byte _080B4AE4 .align 2, 0 _080B4AE4: .4byte _080B4ACA .4byte _080B4B04 .4byte _080B4B04 .4byte _080B4B04 .4byte _080B4AFC .4byte _080B4B1C _080B4AFC: adds r0, r4, 0 bl CalcBerryYield strb r0, [r4, 0x4] _080B4B04: ldrb r2, [r4, 0x1] lsls r1, r2, 25 lsrs r1, 25 adds r1, 0x1 movs r0, 0x7F ands r1, r0 movs r0, 0x80 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x1] b _080B4B58 _080B4B1C: ldrb r0, [r4, 0x5] movs r1, 0x11 negs r1, r1 ands r1, r0 movs r0, 0x21 negs r0, r0 ands r1, r0 subs r0, 0x20 ands r1, r0 movs r0, 0x7F ands r1, r0 movs r0, 0 strb r0, [r4, 0x4] ldrb r2, [r4, 0x1] subs r0, 0x80 ands r0, r2 movs r2, 0x2 orrs r0, r2 strb r0, [r4, 0x1] adds r1, 0x1 movs r0, 0xF ands r1, r0 strb r1, [r4, 0x5] cmp r1, 0xA bne _080B4B58 ldr r0, _080B4B60 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r4] str r1, [r4, 0x4] _080B4B58: movs r0, 0x1 _080B4B5A: pop {r4} pop {r1} bx r1 .align 2, 0 _080B4B60: .4byte gUnknown_083CD780 thumb_func_end BerryTreeGrow thumb_func_start BerryTreeTimeUpdate BerryTreeTimeUpdate: @ 80B4B64 push {r4-r7,lr} adds r6, r0, 0 movs r2, 0 _080B4B6A: lsls r0, r2, 3 ldr r1, _080B4BAC adds r4, r0, r1 ldrb r0, [r4] adds r7, r2, 0x1 cmp r0, 0 beq _080B4BF8 ldrb r1, [r4, 0x1] movs r0, 0x7F ands r0, r1 cmp r0, 0 beq _080B4BF8 movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080B4BF8 ldrb r0, [r4] bl GetStageDurationByBerryType lsls r0, 16 lsrs r0, 16 lsls r1, r0, 3 adds r1, r0 lsls r1, 3 subs r1, r0 cmp r6, r1 blt _080B4BB4 ldr r0, _080B4BB0 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r4] str r1, [r4, 0x4] b _080B4BF8 .align 2, 0 _080B4BAC: .4byte 0x02026d3c _080B4BB0: .4byte gUnknown_083CD780 _080B4BB4: adds r5, r6, 0 cmp r5, 0 beq _080B4BF8 ldrh r1, [r4, 0x2] cmp r1, r5 ble _080B4BC4 subs r0, r1, r5 b _080B4BF6 _080B4BC4: subs r5, r1 ldrb r0, [r4] bl GetStageDurationByBerryType strh r0, [r4, 0x2] adds r0, r4, 0 bl BerryTreeGrow cmp r0, 0 beq _080B4BF8 ldrb r1, [r4, 0x1] movs r0, 0x7F ands r0, r1 cmp r0, 0x5 bne _080B4BE8 ldrh r0, [r4, 0x2] lsls r0, 2 strh r0, [r4, 0x2] _080B4BE8: cmp r5, 0 beq _080B4BF8 ldrh r0, [r4, 0x2] adds r1, r0, 0 cmp r0, r5 ble _080B4BC4 subs r0, r5 _080B4BF6: strh r0, [r4, 0x2] _080B4BF8: adds r2, r7, 0 cmp r2, 0x7F ble _080B4B6A pop {r4-r7} pop {r0} bx r0 thumb_func_end BerryTreeTimeUpdate thumb_func_start PlantBerryTree PlantBerryTree: @ 80B4C04 push {r4-r7,lr} adds r4, r1, 0 adds r5, r2, 0 lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r3, 24 lsrs r7, r3, 24 bl GetBerryTreeInfo adds r6, r0, 0 ldr r0, _080B4C68 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r6] str r1, [r6, 0x4] strb r4, [r6] adds r0, r4, 0 bl GetStageDurationByBerryType strh r0, [r6, 0x2] movs r1, 0x7F ands r1, r5 ldrb r2, [r6, 0x1] movs r0, 0x80 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r6, 0x1] cmp r5, 0x5 bne _080B4C56 adds r0, r6, 0 bl CalcBerryYield strb r0, [r6, 0x4] ldrh r0, [r6, 0x2] lsls r0, 2 strh r0, [r6, 0x2] _080B4C56: cmp r7, 0 bne _080B4C62 ldrb r0, [r6, 0x1] movs r1, 0x80 orrs r0, r1 strb r0, [r6, 0x1] _080B4C62: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B4C68: .4byte gUnknown_083CD780 thumb_func_end PlantBerryTree thumb_func_start RemoveBerryTree RemoveBerryTree: @ 80B4C6C lsls r0, 24 ldr r1, _080B4C84 lsrs r0, 21 ldr r2, _080B4C88 adds r1, r2 adds r0, r1 ldr r1, _080B4C8C ldr r2, [r1, 0x4] ldr r1, [r1] str r1, [r0] str r2, [r0, 0x4] bx lr .align 2, 0 _080B4C84: .4byte 0x02025734 _080B4C88: .4byte 0x00001608 _080B4C8C: .4byte gUnknown_083CD780 thumb_func_end RemoveBerryTree thumb_func_start GetBerryTypeByBerryTreeId GetBerryTypeByBerryTreeId: @ 80B4C90 lsls r0, 24 ldr r1, _080B4CA0 lsrs r0, 21 adds r0, r1 ldr r1, _080B4CA4 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _080B4CA0: .4byte 0x02025734 _080B4CA4: .4byte 0x00001608 thumb_func_end GetBerryTypeByBerryTreeId thumb_func_start GetStageByBerryTreeId GetStageByBerryTreeId: @ 80B4CA8 lsls r0, 24 ldr r1, _080B4CBC lsrs r0, 21 adds r0, r1 ldr r1, _080B4CC0 adds r0, r1 ldrb r0, [r0] lsls r0, 25 lsrs r0, 25 bx lr .align 2, 0 _080B4CBC: .4byte 0x02025734 _080B4CC0: .4byte 0x00001609 thumb_func_end GetStageByBerryTreeId thumb_func_start ItemIdToBerryType ItemIdToBerryType: @ 80B4CC4 push {lr} lsls r0, 16 lsrs r1, r0, 16 ldr r2, _080B4CE0 adds r0, r2 lsrs r0, 16 cmp r0, 0x2A bhi _080B4CE4 adds r0, r1, 0 adds r0, 0x7C lsls r0, 24 lsrs r0, 24 b _080B4CE6 .align 2, 0 _080B4CE0: .4byte 0xff7b0000 _080B4CE4: movs r0, 0x1 _080B4CE6: pop {r1} bx r1 thumb_func_end ItemIdToBerryType thumb_func_start BerryTypeToItemId BerryTypeToItemId: @ 80B4CEC push {lr} lsls r0, 16 lsrs r1, r0, 16 ldr r2, _080B4D08 adds r0, r2 lsrs r0, 16 cmp r0, 0x2A bhi _080B4D0C adds r0, r1, 0 adds r0, 0x84 lsls r0, 16 lsrs r0, 16 b _080B4D0E .align 2, 0 _080B4D08: .4byte 0xffff0000 _080B4D0C: movs r0, 0x85 _080B4D0E: pop {r1} bx r1 thumb_func_end BerryTypeToItemId thumb_func_start GetBerryNameByBerryType GetBerryNameByBerryType: @ 80B4D14 push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 bl GetBerryInfo adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x6 bl memcpy movs r0, 0xFF strb r0, [r4, 0x6] pop {r4} pop {r0} bx r0 thumb_func_end GetBerryNameByBerryType thumb_func_start ResetBerryTreeSparkleFlag ResetBerryTreeSparkleFlag: @ 80B4D34 push {lr} lsls r0, 24 lsrs r0, 24 bl GetBerryTreeInfo ldrb r2, [r0, 0x1] movs r1, 0x7F ands r1, r2 strb r1, [r0, 0x1] pop {r0} bx r0 thumb_func_end ResetBerryTreeSparkleFlag thumb_func_start BerryTreeGetNumStagesWatered BerryTreeGetNumStagesWatered: @ 80B4D4C push {lr} ldrb r2, [r0, 0x5] movs r0, 0x10 ands r0, r2 lsls r0, 24 lsrs r0, 24 negs r0, r0 lsrs r1, r0, 31 movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _080B4D66 adds r1, 0x1 _080B4D66: movs r0, 0x40 ands r0, r2 cmp r0, 0 beq _080B4D74 adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 _080B4D74: movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _080B4D82 adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 _080B4D82: adds r0, r1, 0 pop {r1} bx r1 thumb_func_end BerryTreeGetNumStagesWatered thumb_func_start GetNumStagesWateredByBerryTreeId GetNumStagesWateredByBerryTreeId: @ 80B4D88 push {lr} lsls r0, 24 lsrs r0, 24 bl GetBerryTreeInfo bl BerryTreeGetNumStagesWatered lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end GetNumStagesWateredByBerryTreeId thumb_func_start CalcBerryYieldInternal CalcBerryYieldInternal: @ 80B4DA0 push {r4-r6,lr} lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r6, r1, 16 lsls r2, 24 lsrs r2, 24 cmp r2, 0 bne _080B4DB6 lsls r0, r6, 24 b _080B4DEA _080B4DB6: subs r1, r0, r6 subs r0, r2, 0x1 adds r5, r1, 0 muls r5, r0 adds r4, r1, 0 muls r4, r2 bl Random lsls r0, 16 lsrs r0, 16 subs r4, r5 adds r4, 0x1 adds r1, r4, 0 bl __umodsi3 adds r5, r0 movs r0, 0x3 ands r0, r5 cmp r0, 0x1 bls _080B4DE4 lsrs r0, r5, 2 adds r0, 0x1 b _080B4DE6 _080B4DE4: lsrs r0, r5, 2 _080B4DE6: adds r0, r6 lsls r0, 24 _080B4DEA: lsrs r0, 24 pop {r4-r6} pop {r1} bx r1 thumb_func_end CalcBerryYieldInternal thumb_func_start CalcBerryYield CalcBerryYield: @ 80B4DF4 push {r4-r6,lr} adds r4, r0, 0 ldrb r0, [r4] bl GetBerryInfo ldrb r6, [r0, 0xB] ldrb r5, [r0, 0xA] adds r0, r4, 0 bl BerryTreeGetNumStagesWatered adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 adds r1, r6, 0 bl CalcBerryYieldInternal lsls r0, 24 lsrs r0, 24 pop {r4-r6} pop {r1} bx r1 thumb_func_end CalcBerryYield thumb_func_start GetBerryCountByBerryTreeId GetBerryCountByBerryTreeId: @ 80B4E20 lsls r0, 24 ldr r1, _080B4E30 lsrs r0, 21 adds r0, r1 ldr r1, _080B4E34 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _080B4E30: .4byte 0x02025734 _080B4E34: .4byte 0x0000160c thumb_func_end GetBerryCountByBerryTreeId thumb_func_start GetStageDurationByBerryType GetStageDurationByBerryType: @ 80B4E38 push {lr} lsls r0, 24 lsrs r0, 24 bl GetBerryInfo ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 18 lsrs r0, 16 pop {r1} bx r1 thumb_func_end GetStageDurationByBerryType thumb_func_start FieldObjectInteractionGetBerryTreeData FieldObjectInteractionGetBerryTreeData: @ 80B4E50 push {r4-r6,lr} ldr r0, _080B4E8C ldrb r0, [r0] bl FieldObjectGetBerryTreeId lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl GetBerryTypeByBerryTreeId lsls r0, 24 lsrs r6, r0, 24 adds r0, r5, 0 bl ResetBerryTreeSparkleFlag ldr r0, _080B4E90 ldrb r0, [r0] ldr r2, _080B4E94 ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl sub_8060234 lsls r0, 24 cmp r0, 0 beq _080B4E9C ldr r1, _080B4E98 movs r0, 0xFF strh r0, [r1] b _080B4EAA .align 2, 0 _080B4E8C: .4byte 0x03004ae0 _080B4E90: .4byte 0x0202e8de _080B4E94: .4byte 0x02025734 _080B4E98: .4byte 0x0202e8cc _080B4E9C: ldr r4, _080B4ED4 adds r0, r5, 0 bl GetStageByBerryTreeId lsls r0, 24 lsrs r0, 24 strh r0, [r4] _080B4EAA: ldr r4, _080B4ED8 adds r0, r5, 0 bl GetNumStagesWateredByBerryTreeId lsls r0, 24 lsrs r0, 24 strh r0, [r4] ldr r4, _080B4EDC adds r0, r5, 0 bl GetBerryCountByBerryTreeId lsls r0, 24 lsrs r0, 24 strh r0, [r4] ldr r1, _080B4EE0 adds r0, r6, 0 bl GetBerryNameByBerryType pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B4ED4: .4byte 0x0202e8cc _080B4ED8: .4byte 0x0202e8ce _080B4EDC: .4byte 0x0202e8d0 _080B4EE0: .4byte 0x020231cc thumb_func_end FieldObjectInteractionGetBerryTreeData thumb_func_start sub_80B4EE4 sub_80B4EE4: @ 80B4EE4 push {lr} ldr r0, _080B4EF0 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _080B4EF0: .4byte sub_80A68CC thumb_func_end sub_80B4EE4 thumb_func_start FieldObjectInteractionPlantBerryTree FieldObjectInteractionPlantBerryTree: @ 80B4EF4 push {r4,lr} ldr r0, _080B4F24 ldrh r0, [r0] bl ItemIdToBerryType adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080B4F28 ldrb r0, [r0] bl FieldObjectGetBerryTreeId lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 movs r2, 0x1 movs r3, 0x1 bl PlantBerryTree bl FieldObjectInteractionGetBerryTreeData pop {r4} pop {r0} bx r0 .align 2, 0 _080B4F24: .4byte 0x0203855e _080B4F28: .4byte 0x03004ae0 thumb_func_end FieldObjectInteractionPlantBerryTree thumb_func_start FieldObjectInteractionPickBerryTree FieldObjectInteractionPickBerryTree: @ 80B4F2C push {r4-r6,lr} ldr r0, _080B4F70 ldrb r0, [r0] bl FieldObjectGetBerryTreeId adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r5, 0 bl GetBerryTypeByBerryTreeId lsls r0, 24 lsrs r0, 24 ldr r6, _080B4F74 bl BerryTypeToItemId adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl GetBerryCountByBerryTreeId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_80A9424 lsls r0, 24 lsrs r0, 24 strh r0, [r6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B4F70: .4byte 0x03004ae0 _080B4F74: .4byte 0x0202e8cc thumb_func_end FieldObjectInteractionPickBerryTree thumb_func_start FieldObjectInteractionRemoveBerryTree FieldObjectInteractionRemoveBerryTree: @ 80B4F78 push {lr} ldr r0, _080B4F9C ldrb r0, [r0] bl FieldObjectGetBerryTreeId lsls r0, 24 lsrs r0, 24 bl RemoveBerryTree ldr r0, _080B4FA0 ldrb r0, [r0] ldr r2, _080B4FA4 ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl sub_8060288 pop {r0} bx r0 .align 2, 0 _080B4F9C: .4byte 0x03004ae0 _080B4FA0: .4byte 0x0202e8de _080B4FA4: .4byte 0x02025734 thumb_func_end FieldObjectInteractionRemoveBerryTree thumb_func_start PlayerHasBerries PlayerHasBerries: @ 80B4FA8 push {lr} movs r0, 0x4 bl IsBagPocketNonEmpty lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end PlayerHasBerries thumb_func_start ResetBerryTreeSparkleFlags ResetBerryTreeSparkleFlags: @ 80B4FB8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetCameraCoords mov r0, sp ldrh r2, [r0] ldrh r1, [r4] adds r1, 0x3 adds r3, r2, 0 adds r3, 0xE lsls r1, 16 movs r5, 0x80 lsls r5, 12 adds r0, r1, r5 lsrs r0, 16 mov r10, r0 mov r5, sp lsls r2, 16 asrs r2, 16 mov r9, r2 ldr r4, _080B5050 lsls r3, 16 asrs r3, 16 mov r8, r3 asrs r7, r1, 16 movs r6, 0xF _080B4FFC: ldrb r0, [r4] lsls r0, 31 cmp r0, 0 beq _080B5038 ldrb r0, [r4, 0x6] cmp r0, 0xC bne _080B5038 ldrh r0, [r4, 0x10] strh r0, [r5] ldrh r0, [r4, 0x12] mov r1, sp strh r0, [r1, 0x2] movs r2, 0 ldrsh r1, [r5, r2] cmp r9, r1 bgt _080B5038 cmp r1, r8 bgt _080B5038 lsls r0, 16 asrs r1, r0, 16 cmp r7, r1 bgt _080B5038 mov r2, r10 lsls r0, r2, 16 asrs r0, 16 cmp r1, r0 bgt _080B5038 ldrb r0, [r4, 0x1D] bl ResetBerryTreeSparkleFlag _080B5038: adds r4, 0x24 subs r6, 0x1 cmp r6, 0 bge _080B4FFC add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B5050: .4byte 0x030048a0 thumb_func_end ResetBerryTreeSparkleFlags thumb_func_start sub_80B5054 sub_80B5054: @ 80B5054 push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r4, r2, 24 lsls r3, 24 lsrs r5, r3, 24 ldr r0, _080B5098 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080B50A4 ldr r1, _080B509C movs r0, 0xFF strh r0, [r1] ldr r1, _080B50A0 lsls r0, r4, 3 adds r0, r1 ldrb r2, [r0, 0x4] ldr r3, [r0] str r5, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r7, 0 adds r1, r6, 0 bl sub_80B5138 movs r0, 0x1 b _080B50A6 .align 2, 0 _080B5098: .4byte sub_80B52B4 _080B509C: .4byte 0x0202e8dc _080B50A0: .4byte gMultichoiceLists _080B50A4: movs r0, 0 _080B50A6: add sp, 0x8 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80B5054 thumb_func_start sub_80B50B0 sub_80B50B0: @ 80B50B0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 ldr r4, [sp, 0x20] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r5, r2, 24 lsls r3, 24 lsrs r6, r3, 24 lsls r4, 24 lsrs r4, 24 ldr r0, _080B5100 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080B510C ldr r1, _080B5104 movs r0, 0xFF strh r0, [r1] ldr r1, _080B5108 lsls r0, r5, 3 adds r0, r1 ldrb r2, [r0, 0x4] ldr r3, [r0] str r6, [sp] str r4, [sp, 0x4] mov r0, r8 adds r1, r7, 0 bl sub_80B5138 movs r0, 0x1 b _080B510E .align 2, 0 _080B5100: .4byte sub_80B52B4 _080B5104: .4byte 0x0202e8dc _080B5108: .4byte gMultichoiceLists _080B510C: movs r0, 0 _080B510E: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80B50B0 thumb_func_start GetStringWidthInTilesForScriptMenu GetStringWidthInTilesForScriptMenu: @ 80B511C push {lr} adds r1, r0, 0 ldr r0, _080B5134 bl GetStringWidthGivenWindowConfig lsls r0, 24 lsrs r0, 24 adds r1, r0, 0x7 lsrs r0, r1, 3 pop {r1} bx r1 .align 2, 0 _080B5134: .4byte gWindowConfig_81E6CE4 thumb_func_end GetStringWidthInTilesForScriptMenu thumb_func_start sub_80B5138 sub_80B5138: @ 80B5138 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 mov r10, r3 ldr r3, [sp, 0x34] ldr r4, [sp, 0x38] lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x8] lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 lsrs r3, 24 str r3, [sp, 0xC] lsls r4, 24 lsrs r4, 24 str r4, [sp, 0x10] mov r1, r10 ldr r0, [r1] bl GetStringWidthInTilesForScriptMenu lsls r0, 16 lsrs r5, r0, 16 movs r4, 0x1 cmp r4, r8 bcs _080B5198 _080B517A: lsls r0, r4, 3 add r0, r10 ldr r0, [r0] bl GetStringWidthInTilesForScriptMenu lsls r0, 16 lsrs r0, 16 cmp r5, r0 bcs _080B518E adds r5, r0, 0 _080B518E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r8 bcc _080B517A _080B5198: lsls r0, r5, 24 lsrs r7, r0, 24 mov r1, r9 adds r0, r7, r1 adds r0, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x1D bls _080B51B8 mov r0, r9 adds r0, 0x1D subs r0, r7 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r7, 0x1D _080B51B8: mov r1, r8 lsls r0, r1, 1 adds r0, 0x1 ldr r1, [sp, 0x8] lsls r4, r1, 24 asrs r4, 24 adds r4, r0 lsls r4, 24 lsrs r4, 24 mov r0, r9 adds r2, r7, 0 adds r3, r4, 0 bl DrawDefaultWindow mov r6, r9 adds r6, 0x1 lsls r6, 24 lsrs r6, 24 ldr r5, [sp, 0x8] adds r5, 0x1 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 adds r1, r5, 0 mov r2, r8 mov r3, r10 bl PrintStringArray ldr r0, [sp, 0x10] str r0, [sp] mov r1, r9 subs r0, r7, r1 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r0, 0 adds r1, r6, 0 adds r2, r5, 0 mov r3, r8 bl InitMenu ldr r0, [sp, 0xC] str r0, [sp] mov r1, r8 str r1, [sp, 0x4] mov r0, r9 ldr r1, [sp, 0x8] adds r2, r7, 0 adds r3, r4, 0 bl sub_80B5230 add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80B5138 thumb_func_start sub_80B5230 sub_80B5230: @ 80B5230 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r0, [sp, 0x1C] mov r8, r0 ldr r0, [sp, 0x20] mov r9, r0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 lsls r3, 24 lsrs r3, 24 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r0, _080B5298 movs r1, 0x50 str r3, [sp] bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080B529C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] strh r5, [r1, 0xA] strh r6, [r1, 0xC] ldr r3, [sp] strh r3, [r1, 0xE] mov r0, r8 strh r0, [r1, 0x10] mov r0, r9 cmp r0, 0x3 bls _080B52A0 movs r0, 0x1 b _080B52A2 .align 2, 0 _080B5298: .4byte sub_80B52B4 _080B529C: .4byte 0x03004b20 _080B52A0: movs r0, 0 _080B52A2: strh r0, [r1, 0x12] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80B5230 thumb_func_start sub_80B52B4 sub_80B52B4: @ 80B52B4 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080B52E0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080B534E ldr r2, _080B52E4 lsls r1, r4, 2 adds r0, r1, r4 lsls r0, 3 adds r0, r2 movs r2, 0x12 ldrsh r0, [r0, r2] adds r5, r1, 0 cmp r0, 0 bne _080B52E8 bl ProcessMenuInputNoWrap b _080B52EC .align 2, 0 _080B52E0: .4byte 0x0202f388 _080B52E4: .4byte 0x03004b20 _080B52E8: bl ProcessMenuInput _080B52EC: lsls r0, 24 lsrs r0, 24 lsls r0, 24 asrs r1, r0, 24 movs r0, 0x2 negs r0, r0 cmp r1, r0 beq _080B534E adds r0, 0x1 cmp r1, r0 bne _080B5328 ldr r0, _080B5320 adds r1, r5, r4 lsls r1, 3 adds r1, r0 movs r2, 0x10 ldrsh r0, [r1, r2] cmp r0, 0 bne _080B534E movs r0, 0x5 bl audio_play ldr r1, _080B5324 movs r0, 0x7F strh r0, [r1] b _080B532C .align 2, 0 _080B5320: .4byte 0x03004b20 _080B5324: .4byte 0x0202e8dc _080B5328: ldr r0, _080B5354 strh r1, [r0] _080B532C: bl sub_8072DEC ldr r0, _080B5358 adds r3, r5, r4 lsls r3, 3 adds r3, r0 ldrb r0, [r3, 0x8] ldrb r1, [r3, 0xA] ldrb r2, [r3, 0xC] ldrb r3, [r3, 0xE] bl Reset adds r0, r4, 0 bl DestroyTask bl script_env_2_enable_and_set_ctx_running _080B534E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B5354: .4byte 0x0202e8dc _080B5358: .4byte 0x03004b20 thumb_func_end sub_80B52B4 thumb_func_start Multichoice Multichoice: @ 80B535C push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r4, r2, 24 lsls r3, 24 lsrs r5, r3, 24 ldr r0, _080B539C bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080B53A8 ldr r1, _080B53A0 movs r0, 0xFF strh r0, [r1] ldr r1, _080B53A4 lsls r0, r4, 3 adds r0, r1 ldrb r2, [r0, 0x4] ldr r3, [r0] str r5, [sp] adds r0, r7, 0 adds r1, r6, 0 bl sub_80B53B4 movs r0, 0x1 b _080B53AA .align 2, 0 _080B539C: .4byte sub_80B52B4 _080B53A0: .4byte 0x0202e8dc _080B53A4: .4byte gMultichoiceLists _080B53A8: movs r0, 0 _080B53AA: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end Multichoice thumb_func_start sub_80B53B4 sub_80B53B4: @ 80B53B4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r7, r3, 0 ldr r3, [sp, 0x28] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r2, 24 lsrs r6, r2, 24 lsls r3, 24 lsrs r3, 24 mov r10, r3 ldr r0, [r7] bl GetStringWidthInTilesForScriptMenu lsls r0, 16 lsrs r4, r0, 16 movs r5, 0x1 cmp r5, r6 bcs _080B5408 _080B53EA: lsls r0, r5, 3 adds r0, r7 ldr r0, [r0] bl GetStringWidthInTilesForScriptMenu lsls r0, 16 lsrs r0, 16 cmp r4, r0 bcs _080B53FE adds r4, r0, 0 _080B53FE: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r6 bcc _080B53EA _080B5408: lsls r4, 24 lsrs r4, 24 add r4, r8 adds r4, 0x2 lsls r4, 24 lsrs r4, 24 lsls r0, r6, 1 adds r0, 0x1 mov r1, r9 lsls r5, r1, 24 asrs r5, 24 adds r5, r0 lsls r5, 24 lsrs r5, 24 mov r0, r8 adds r2, r6, 0 adds r3, r7, 0 bl PrintStringArray movs r0, 0 str r0, [sp] mov r1, r8 subs r0, r4, r1 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r0, 0 mov r2, r9 adds r3, r6, 0 bl InitMenu mov r0, r10 str r0, [sp] str r6, [sp, 0x4] mov r0, r8 mov r1, r9 adds r2, r4, 0 adds r3, r5, 0 bl sub_80B5230 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80B53B4 thumb_func_start yes_no_box yes_no_box: @ 80B546C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r4, r1, 24 ldr r6, _080B54B4 adds r0, r6, 0 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080B54C0 ldr r1, _080B54B8 movs r0, 0xFF strh r0, [r1] adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8072974 adds r0, r6, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080B54BC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r5, [r1, 0x8] strh r4, [r1, 0xA] movs r0, 0x1 b _080B54C2 .align 2, 0 _080B54B4: .4byte task_yes_no_maybe _080B54B8: .4byte 0x0202e8dc _080B54BC: .4byte 0x03004b20 _080B54C0: movs r0, 0 _080B54C2: pop {r4-r6} pop {r1} bx r1 thumb_func_end yes_no_box thumb_func_start unref_sub_80B54C8 unref_sub_80B54C8: @ 80B54C8 push {lr} ldr r0, _080B54D8 ldrh r0, [r0] cmp r0, 0xFF beq _080B54DC movs r0, 0x1 b _080B54DE .align 2, 0 _080B54D8: .4byte 0x0202e8dc _080B54DC: movs r0, 0 _080B54DE: pop {r1} bx r1 thumb_func_end unref_sub_80B54C8 thumb_func_start task_yes_no_maybe task_yes_no_maybe: @ 80B54E4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080B5504 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 ldrh r2, [r1, 0xC] movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0x4 bgt _080B5508 adds r0, r2, 0x1 strh r0, [r1, 0xC] b _080B556A .align 2, 0 _080B5504: .4byte 0x03004b20 _080B5508: bl ProcessMenuInputNoWrap lsls r0, 24 asrs r1, r0, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080B552C cmp r1, r0 bgt _080B5524 subs r0, 0x1 cmp r1, r0 beq _080B556A b _080B5542 _080B5524: cmp r1, 0 beq _080B553C cmp r1, 0x1 bne _080B5542 _080B552C: movs r0, 0x5 bl audio_play ldr r1, _080B5538 movs r0, 0 b _080B5540 .align 2, 0 _080B5538: .4byte 0x0202e8dc _080B553C: ldr r1, _080B5570 movs r0, 0x1 _080B5540: strh r0, [r1] _080B5542: ldr r0, _080B5574 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrb r0, [r1, 0x8] ldrb r1, [r1, 0xA] adds r2, r0, 0x6 lsls r2, 24 lsrs r2, 24 adds r3, r1, 0x5 lsls r3, 24 lsrs r3, 24 bl Reset adds r0, r4, 0 bl DestroyTask bl script_env_2_enable_and_set_ctx_running _080B556A: pop {r4} pop {r0} bx r0 .align 2, 0 _080B5570: .4byte 0x0202e8dc _080B5574: .4byte 0x03004b20 thumb_func_end task_yes_no_maybe thumb_func_start sub_80B5578 sub_80B5578: @ 80B5578 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 ldr r4, [sp, 0x30] lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r2, 24 lsrs r6, r2, 24 lsls r3, 24 lsrs r3, 24 str r3, [sp, 0xC] lsls r4, 24 lsrs r5, r4, 24 movs r7, 0 ldr r0, _080B55B8 mov r10, r0 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080B55BC movs r0, 0 b _080B5670 .align 2, 0 _080B55B8: .4byte sub_80B5684 _080B55BC: ldr r1, _080B5620 movs r0, 0xFF strh r0, [r1] ldr r0, _080B5624 lsls r4, r6, 3 adds r0, r4, r0 ldrb r6, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r5, [sp, 0x4] str r7, [sp, 0x8] mov r0, r9 mov r1, r8 adds r2, r6, 0 movs r3, 0 bl sub_807274C mov r0, r10 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r0, r6, 24 lsrs r1, r0, 24 lsrs r0, 25 cmp r0, r5 bcc _080B55FE movs r0, 0x1 ands r0, r6 cmp r0, 0 beq _080B5606 _080B55FE: cmp r5, 0x1 beq _080B5606 cmp r1, r5 bne _080B5628 _080B5606: ldr r0, _080B5624 adds r0, r4, r0 ldrb r0, [r0, 0x4] adds r1, r5, 0 bl __udivsi3 lsls r0, 24 lsrs r0, 23 adds r0, 0x1 mov r2, r8 lsls r1, r2, 24 b _080B563A .align 2, 0 _080B5620: .4byte 0x0202e8dc _080B5624: .4byte gMultichoiceLists _080B5628: adds r0, r6, 0 adds r1, r5, 0 bl __udivsi3 lsls r0, 24 lsrs r0, 23 adds r0, 0x3 mov r3, r8 lsls r1, r3, 24 _080B563A: asrs r1, 24 adds r1, r0 lsls r1, 24 lsrs r7, r1, 24 adds r0, r5, 0 bl sub_807288C lsls r0, 24 lsrs r0, 24 ldr r2, _080B5680 mov r3, r10 lsls r1, r3, 2 add r1, r10 lsls r1, 3 adds r1, r2 mov r2, r9 strh r2, [r1, 0x8] mov r3, r8 strh r3, [r1, 0xA] add r0, r9 adds r0, 0x2 strh r0, [r1, 0xC] strh r7, [r1, 0xE] mov r0, sp ldrh r0, [r0, 0xC] strh r0, [r1, 0x10] movs r0, 0x1 _080B5670: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080B5680: .4byte 0x03004b20 thumb_func_end sub_80B5578 thumb_func_start sub_80B5684 sub_80B5684: @ 80B5684 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl sub_80727CC lsls r0, 24 asrs r1, r0, 24 movs r0, 0x2 negs r0, r0 cmp r1, r0 beq _080B56F4 adds r0, 0x1 cmp r1, r0 bne _080B56CC ldr r2, _080B56C4 lsls r1, r5, 2 adds r0, r1, r5 lsls r0, 3 adds r0, r2 movs r2, 0x10 ldrsh r0, [r0, r2] adds r4, r1, 0 cmp r0, 0 bne _080B56F4 movs r0, 0x5 bl audio_play ldr r1, _080B56C8 movs r0, 0x7F strh r0, [r1] b _080B56D2 .align 2, 0 _080B56C4: .4byte 0x03004b20 _080B56C8: .4byte 0x0202e8dc _080B56CC: ldr r0, _080B56FC strh r1, [r0] lsls r4, r5, 2 _080B56D2: bl sub_8072DEC ldr r0, _080B5700 adds r3, r4, r5 lsls r3, 3 adds r3, r0 ldrb r0, [r3, 0x8] ldrb r1, [r3, 0xA] ldrb r2, [r3, 0xC] ldrb r3, [r3, 0xE] bl Reset adds r0, r5, 0 bl DestroyTask bl script_env_2_enable_and_set_ctx_running _080B56F4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B56FC: .4byte 0x0202e8dc _080B5700: .4byte 0x03004b20 thumb_func_end sub_80B5684 thumb_func_start sp109_CreatePCMenu sp109_CreatePCMenu: @ 80B5704 push {lr} ldr r0, _080B5724 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080B572C ldr r1, _080B5728 movs r0, 0xFF strh r0, [r1] bl CreatePCMenu movs r0, 0x1 b _080B572E .align 2, 0 _080B5724: .4byte sub_80B52B4 _080B5728: .4byte 0x0202e8dc _080B572C: movs r0, 0 _080B572E: pop {r1} bx r1 thumb_func_end sp109_CreatePCMenu thumb_func_start CreatePCMenu CreatePCMenu: @ 80B5734 push {r4-r7,lr} sub sp, 0x8 ldr r0, _080B5758 bl GetStringWidthInTilesForScriptMenu lsls r0, 16 lsrs r4, r0, 16 ldr r0, _080B575C bl GetStringWidthInTilesForScriptMenu lsls r0, 16 lsrs r0, 16 cmp r4, r0 bls _080B5760 lsls r0, r4, 24 lsrs r5, r0, 24 b _080B5762 .align 2, 0 _080B5758: .4byte gUnknown_0841076D _080B575C: .4byte gUnknown_08410753 _080B5760: movs r5, 0x8 _080B5762: ldr r0, _080B5798 bl FlagGet lsls r0, 24 cmp r0, 0 beq _080B57A4 movs r7, 0x4 adds r4, r5, 0x2 lsls r2, r4, 24 lsrs r2, 24 movs r0, 0 movs r1, 0 movs r3, 0x9 bl DrawDefaultWindow ldr r0, _080B579C movs r1, 0x1 movs r2, 0x5 bl Print ldr r0, _080B57A0 movs r1, 0x1 movs r2, 0x7 bl Print b _080B57C0 .align 2, 0 _080B5798: .4byte 0x00000804 _080B579C: .4byte gUnknown_08410775 _080B57A0: .4byte gUnknown_08410782 _080B57A4: movs r7, 0x3 adds r4, r5, 0x2 lsls r2, r4, 24 lsrs r2, 24 movs r0, 0 movs r1, 0 movs r3, 0x7 bl DrawDefaultWindow ldr r0, _080B57DC movs r1, 0x1 movs r2, 0x5 bl Print _080B57C0: adds r6, r4, 0 ldr r0, _080B57E0 bl FlagGet lsls r0, 24 cmp r0, 0 beq _080B57E8 ldr r0, _080B57E4 movs r1, 0x1 movs r2, 0x1 bl Print b _080B57F2 .align 2, 0 _080B57DC: .4byte gUnknown_08410782 _080B57E0: .4byte 0x0000084b _080B57E4: .4byte gUnknown_08410760 _080B57E8: ldr r0, _080B5830 movs r1, 0x1 movs r2, 0x1 bl Print _080B57F2: ldr r0, _080B5834 movs r1, 0x1 movs r2, 0x3 bl Print movs r4, 0 str r4, [sp] adds r0, r5, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 adds r3, r7, 0 bl InitMenu lsls r2, r6, 24 lsrs r2, 24 lsls r3, r7, 1 adds r3, 0x1 str r4, [sp] str r7, [sp, 0x4] movs r0, 0 movs r1, 0 bl sub_80B5230 add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B5830: .4byte gUnknown_08410753 _080B5834: .4byte gUnknown_0841076D thumb_func_end CreatePCMenu thumb_func_start sub_80B5838 sub_80B5838: @ 80B5838 push {lr} bl sub_8071FFC ldr r0, _080B584C movs r1, 0x2 movs r2, 0xF bl Print pop {r0} bx r0 .align 2, 0 _080B584C: .4byte gUnknown_081A0A01 thumb_func_end sub_80B5838 thumb_func_start task_picbox task_picbox: @ 80B5850 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080B5874 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080B58BE cmp r0, 0x1 bgt _080B5878 cmp r0, 0 beq _080B5894 b _080B58BE .align 2, 0 _080B5874: .4byte 0x03004b20 _080B5878: cmp r0, 0x2 beq _080B5882 cmp r0, 0x3 beq _080B58A0 b _080B58BE _080B5882: movs r0, 0xC ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080B589C adds r0, r1 bl sub_8085C44 _080B5894: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080B58BE .align 2, 0 _080B589C: .4byte 0x02020004 _080B58A0: ldrb r2, [r4, 0xE] adds r0, r2, 0 ldrb r3, [r4, 0x10] adds r1, r3, 0 adds r2, 0x9 lsls r2, 24 lsrs r2, 24 adds r3, 0xA lsls r3, 24 lsrs r3, 24 bl Reset adds r0, r5, 0 bl DestroyTask _080B58BE: pop {r4,r5} pop {r0} bx r0 thumb_func_end task_picbox thumb_func_start sub_80B58C4 sub_80B58C4: @ 80B58C4 push {r4-r7,lr} lsls r0, 16 lsrs r7, r0, 16 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r5, r2, 24 ldr r4, _080B595C adds r0, r4, 0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _080B596C adds r2, r6, 0 adds r2, 0x9 lsls r2, 24 lsrs r2, 24 adds r3, r5, 0 adds r3, 0xA lsls r3, 24 lsrs r3, 24 adds r0, r6, 0 adds r1, r5, 0 bl DrawDefaultWindow adds r0, r4, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r1, _080B5960 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r0, 0 strh r0, [r4, 0x8] strh r7, [r4, 0xA] lsls r1, r6, 19 movs r0, 0xA0 lsls r0, 14 adds r1, r0 asrs r1, 16 lsls r2, r5, 19 adds r2, r0 asrs r2, 16 adds r0, r7, 0 movs r3, 0 bl sub_8085AD4 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xC] strh r6, [r4, 0xE] strh r5, [r4, 0x10] ldr r3, _080B5964 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r0, r3, 0 adds r0, 0x1C adds r0, r1, r0 ldr r2, _080B5968 str r2, [r0] adds r1, r3 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x5] movs r0, 0x1 b _080B596E .align 2, 0 _080B595C: .4byte task_picbox _080B5960: .4byte 0x03004b20 _080B5964: .4byte 0x02020004 _080B5968: .4byte SpriteCallbackDummy _080B596C: movs r0, 0 _080B596E: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80B58C4 thumb_func_start picbox_close picbox_close: @ 80B5974 push {lr} ldr r0, _080B5998 bl FindTaskIdByFunc lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF beq _080B59A4 ldr r0, _080B599C lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] ldr r0, _080B59A0 b _080B59A6 .align 2, 0 _080B5998: .4byte task_picbox _080B599C: .4byte 0x03004b20 _080B59A0: .4byte sub_80B59AC _080B59A4: movs r0, 0 _080B59A6: pop {r1} bx r1 thumb_func_end picbox_close thumb_func_start sub_80B59AC sub_80B59AC: @ 80B59AC push {lr} ldr r0, _080B59C0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _080B59C4 movs r0, 0 b _080B59C6 .align 2, 0 _080B59C0: .4byte task_picbox _080B59C4: movs r0, 0x1 _080B59C6: pop {r1} bx r1 thumb_func_end sub_80B59AC thumb_func_start DoNamingScreen DoNamingScreen: @ 80B59CC push {r4,r5,lr} sub sp, 0x8 ldr r4, [sp, 0x14] ldr r5, [sp, 0x18] lsls r0, 24 lsrs r0, 24 lsls r2, 16 lsrs r2, 16 lsls r3, 16 lsrs r3, 16 str r4, [sp] str r5, [sp, 0x4] bl AddNamingScreenTask ldr r0, _080B59F8 bl SetMainCallback2 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B59F8: .4byte C2_NamingScreen thumb_func_end DoNamingScreen thumb_func_start C2_NamingScreen C2_NamingScreen: @ 80B59FC push {lr} ldr r0, _080B5A14 ldr r1, _080B5A18 adds r0, r1 ldrb r0, [r0] cmp r0, 0x7 bhi _080B5A96 lsls r0, 2 ldr r1, _080B5A1C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080B5A14: .4byte 0x03001770 _080B5A18: .4byte 0x0000043c _080B5A1C: .4byte _080B5A20 .align 2, 0 _080B5A20: .4byte _080B5A40 .4byte _080B5A4A .4byte _080B5A50 .4byte _080B5A56 .4byte _080B5A5C .4byte _080B5A62 .4byte _080B5A68 .4byte _080B5A84 _080B5A40: bl NamingScreen_TurnOffScreen bl NamingScreen_Init b _080B5A6C _080B5A4A: bl NamingScreen_ClearVram b _080B5A6C _080B5A50: bl NamingScreen_ClearOam b _080B5A6C _080B5A56: bl NamingScreen_SetUpVideoRegs b _080B5A6C _080B5A5C: bl sub_80B5DC8 b _080B5A6C _080B5A62: bl NamingScreen_ResetObjects b _080B5A6C _080B5A68: bl sub_80B5DFC _080B5A6C: ldr r1, _080B5A7C ldr r0, _080B5A80 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080B5A96 .align 2, 0 _080B5A7C: .4byte 0x03001770 _080B5A80: .4byte 0x0000043c _080B5A84: bl sub_80B5E20 bl sub_80B5E3C bl sub_80B5C04 ldr r0, _080B5A9C bl SetMainCallback2 _080B5A96: pop {r0} bx r0 .align 2, 0 _080B5A9C: .4byte sub_80B5AA0 thumb_func_end C2_NamingScreen thumb_func_start sub_80B5AA0 sub_80B5AA0: @ 80B5AA0 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80B5AA0 thumb_func_start sub_80B5AB8 sub_80B5AB8: @ 80B5AB8 push {r4,lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer ldr r1, _080B5B00 ldr r4, _080B5B04 ldrh r0, [r4, 0x4] strh r0, [r1] adds r1, 0x4 ldrh r0, [r4, 0x6] strh r0, [r1] ldr r2, _080B5B08 ldrh r1, [r2] ldr r3, _080B5B0C adds r0, r3, 0 ands r0, r1 strh r0, [r2] ldrh r0, [r2] ldrh r1, [r4, 0x8] orrs r0, r1 strh r0, [r2] adds r2, 0x2 ldrh r0, [r2] ands r3, r0 strh r3, [r2] ldrh r0, [r2] ldrh r1, [r4, 0xA] orrs r0, r1 strh r0, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _080B5B00: .4byte REG_BG1VOFS _080B5B04: .4byte 0x02000000 _080B5B08: .4byte REG_BG1CNT _080B5B0C: .4byte 0x0000fffc thumb_func_end sub_80B5AB8 thumb_func_start AddNamingScreenTask AddNamingScreenTask: @ 80B5B10 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r8, r0 mov r9, r1 adds r5, r2, 0 adds r6, r3, 0 ldr r7, [sp, 0x1C] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r5, 16 lsrs r5, 16 lsls r6, 16 lsrs r6, 16 ldr r0, _080B5B74 movs r1, 0xFF bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080B5B78 adds r4, r0 mov r0, r8 strh r0, [r4, 0x8] strh r5, [r4, 0xA] strh r6, [r4, 0xC] lsrs r0, r7, 16 strh r0, [r4, 0xE] strh r7, [r4, 0x10] adds r0, r4, 0 adds r0, 0x12 mov r1, r9 bl StoreWordInTwoHalfwords adds r4, 0x16 adds r0, r4, 0 ldr r1, [sp, 0x20] bl StoreWordInTwoHalfwords pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B5B74: .4byte NamingScreenDummyTask _080B5B78: .4byte 0x03004b20 thumb_func_end AddNamingScreenTask thumb_func_start GetNamingScreenParameters GetNamingScreenParameters: @ 80B5B7C push {r4-r6,lr} ldr r0, _080B5BD8 bl FindTaskIdByFunc adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 ldr r0, _080B5BDC adds r4, r0 ldr r6, _080B5BE0 ldrh r0, [r4, 0x8] strb r0, [r6, 0x1] ldrh r0, [r4, 0xA] strh r0, [r6, 0x3E] ldrh r1, [r4, 0xC] adds r0, r6, 0 adds r0, 0x40 strh r1, [r0] movs r1, 0xE ldrsh r0, [r4, r1] lsls r0, 16 ldrh r1, [r4, 0x10] orrs r0, r1 str r0, [r6, 0x44] adds r0, r4, 0 adds r0, 0x12 adds r1, r6, 0 adds r1, 0x38 bl LoadWordFromTwoHalfwords adds r4, 0x16 adds r1, r6, 0 adds r1, 0x48 adds r0, r4, 0 bl LoadWordFromTwoHalfwords adds r0, r5, 0 bl DestroyTask pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B5BD8: .4byte NamingScreenDummyTask _080B5BDC: .4byte 0x03004b20 _080B5BE0: .4byte 0x02000000 thumb_func_end GetNamingScreenParameters thumb_func_start NamingScreenDummyTask NamingScreenDummyTask: @ 80B5BE4 bx lr thumb_func_end NamingScreenDummyTask thumb_func_start NamingScreen_TurnOffScreen NamingScreen_TurnOffScreen: @ 80B5BE8 push {lr} movs r0, 0 bl SetVBlankCallback movs r0, 0 bl SetHBlankCallback movs r1, 0x80 lsls r1, 19 movs r0, 0 strh r0, [r1] pop {r0} bx r0 thumb_func_end NamingScreen_TurnOffScreen thumb_func_start sub_80B5C04 sub_80B5C04: @ 80B5C04 push {r4,lr} ldr r0, _080B5C3C bl SetVBlankCallback ldr r3, _080B5C40 ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _080B5C44 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _080B5C48 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] movs r1, 0x80 lsls r1, 19 movs r2, 0xFA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080B5C3C: .4byte sub_80B5AB8 _080B5C40: .4byte 0x04000208 _080B5C44: .4byte 0x04000200 _080B5C48: .4byte REG_DISPSTAT thumb_func_end sub_80B5C04 thumb_func_start NamingScreen_ClearVram NamingScreen_ClearVram: @ 80B5C4C push {r4-r7,lr} sub sp, 0x4 movs r2, 0xC0 lsls r2, 19 movs r3, 0x80 lsls r3, 9 mov r4, sp movs r6, 0 ldr r1, _080B5C98 movs r5, 0x80 lsls r5, 5 ldr r7, _080B5C9C movs r0, 0x81 lsls r0, 24 mov r12, r0 _080B5C6A: strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r5 subs r3, r5 cmp r3, r5 bhi _080B5C6A strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B5C98: .4byte 0x040000d4 _080B5C9C: .4byte 0x81000800 thumb_func_end NamingScreen_ClearVram thumb_func_start NamingScreen_ClearOam NamingScreen_ClearOam: @ 80B5CA0 sub sp, 0x4 movs r2, 0xE0 lsls r2, 19 mov r1, sp movs r0, 0 strh r0, [r1] ldr r0, _080B5CBC str r1, [r0] str r2, [r0, 0x4] ldr r1, _080B5CC0 str r1, [r0, 0x8] ldr r0, [r0, 0x8] add sp, 0x4 bx lr .align 2, 0 _080B5CBC: .4byte 0x040000d4 _080B5CC0: .4byte 0x81000200 thumb_func_end NamingScreen_ClearOam thumb_func_start NamingScreen_SetUpVideoRegs NamingScreen_SetUpVideoRegs: @ 80B5CC4 push {r4,r5,lr} ldr r5, _080B5D2C movs r1, 0 strh r1, [r5] ldr r2, _080B5D30 strh r1, [r2] ldr r3, _080B5D34 strh r1, [r3] ldr r4, _080B5D38 strh r1, [r4] ldr r0, _080B5D3C strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] movs r1, 0xF8 lsls r1, 5 adds r0, r1, 0 strh r0, [r5] ldr r1, _080B5D40 adds r0, r1, 0 strh r0, [r2] ldr r2, _080B5D44 adds r0, r2, 0 strh r0, [r3] ldr r1, _080B5D48 adds r0, r1, 0 strh r0, [r4] ldr r1, _080B5D4C movs r2, 0xC8 lsls r2, 3 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080B5D50 adds r0, r2, 0 strh r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B5D2C: .4byte REG_BG0CNT _080B5D30: .4byte REG_BG1CNT _080B5D34: .4byte REG_BG2CNT _080B5D38: .4byte REG_BG3CNT _080B5D3C: .4byte REG_BG0HOFS _080B5D40: .4byte 0x00001c01 _080B5D44: .4byte 0x00001d0a _080B5D48: .4byte 0x00001e03 _080B5D4C: .4byte REG_BLDCNT _080B5D50: .4byte 0x0000080c thumb_func_end NamingScreen_SetUpVideoRegs thumb_func_start NamingScreen_Init NamingScreen_Init: @ 80B5D54 push {r4-r6,lr} bl GetNamingScreenParameters ldr r4, _080B5DBC movs r0, 0 strb r0, [r4] movs r2, 0 strh r0, [r4, 0x4] strh r0, [r4, 0x6] movs r1, 0x1 movs r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x2 strh r0, [r4, 0xA] strb r2, [r4, 0xC] strb r1, [r4, 0xD] ldr r1, _080B5DC0 ldrb r0, [r4, 0x1] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [r4, 0x34] ldrb r1, [r0, 0x4] strb r1, [r4, 0xE] ldrb r1, [r0, 0x1] lsrs r1, 1 movs r0, 0xE subs r0, r1 strh r0, [r4, 0x2] ldr r6, _080B5DC4 ldrh r0, [r6] strh r0, [r4, 0x3C] adds r5, r4, 0 adds r5, 0x11 adds r0, r5, 0 movs r1, 0xFF movs r2, 0x10 bl memset ldr r0, [r4, 0x34] ldrb r0, [r0] cmp r0, 0 beq _080B5DB2 ldr r1, [r4, 0x38] adds r0, r5, 0 bl StringCopy _080B5DB2: movs r0, 0x10 strh r0, [r6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B5DBC: .4byte 0x02000000 _080B5DC0: .4byte gUnknown_083CE398 _080B5DC4: .4byte 0x03001760 thumb_func_end NamingScreen_Init thumb_func_start sub_80B5DC8 sub_80B5DC8: @ 80B5DC8 push {r4,lr} ldr r4, _080B5DE0 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C pop {r4} pop {r0} bx r0 .align 2, 0 _080B5DE0: .4byte gWindowConfig_81E6E88 thumb_func_end sub_80B5DC8 thumb_func_start NamingScreen_ResetObjects NamingScreen_ResetObjects: @ 80B5DE4 push {lr} bl ResetPaletteFade bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks pop {r0} bx r0 thumb_func_end NamingScreen_ResetObjects thumb_func_start sub_80B5DFC sub_80B5DFC: @ 80B5DFC push {lr} bl sub_80B7558 bl sub_80B753C bl sub_80B7680 bl sub_80B75C4 bl sub_80B7794 bl sub_80B78A8 bl sub_80B7960 pop {r0} bx r0 thumb_func_end sub_80B5DFC thumb_func_start sub_80B5E20 sub_80B5E20: @ 80B5E20 push {lr} bl sub_80B6774 bl sub_80B6A80 bl sub_80B6CA8 bl sub_80B6D04 bl sub_80B6E44 pop {r0} bx r0 thumb_func_end sub_80B5E20 thumb_func_start sub_80B5E3C sub_80B5E3C: @ 80B5E3C push {lr} bl sub_80B61D8 bl sub_80B6438 bl sub_80B5E50 pop {r0} bx r0 thumb_func_end sub_80B5E3C thumb_func_start sub_80B5E50 sub_80B5E50: @ 80B5E50 push {r4,lr} ldr r4, _080B5E6C adds r0, r4, 0 movs r1, 0x2 bl CreateTask lsls r0, 24 lsrs r0, 24 bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _080B5E6C: .4byte sub_80B5E70 thumb_func_end sub_80B5E50 thumb_func_start sub_80B5E70 sub_80B5E70: @ 80B5E70 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 ldr r7, _080B5E9C lsls r1, r0, 2 adds r1, r0 lsls r4, r1, 3 ldr r6, _080B5EA0 ldr r5, _080B5EA4 _080B5E82: ldrb r0, [r6] lsls r0, 2 adds r0, r7 ldr r1, [r0] adds r0, r4, r5 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _080B5E82 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B5E9C: .4byte gUnknown_083CE218 _080B5EA0: .4byte 0x02000000 _080B5EA4: .4byte 0x03004b20 thumb_func_end sub_80B5E70 thumb_func_start sub_80B5EA8 sub_80B5EA8: @ 80B5EA8 push {lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _080B5ECC ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0 add sp, 0x4 pop {r1} bx r1 .align 2, 0 _080B5ECC: .4byte 0x02000000 thumb_func_end sub_80B5EA8 thumb_func_start sub_80B5ED0 sub_80B5ED0: @ 80B5ED0 push {lr} ldr r0, _080B5EF8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080B5EF2 movs r0, 0x1 bl sub_80B6210 movs r0, 0x1 bl sub_80B68D8 ldr r1, _080B5EFC ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080B5EF2: movs r0, 0 pop {r1} bx r1 .align 2, 0 _080B5EF8: .4byte 0x0202f388 _080B5EFC: .4byte 0x02000000 thumb_func_end sub_80B5ED0 thumb_func_start sub_80B5F00 sub_80B5F00: @ 80B5F00 push {lr} bl sub_80B60B8 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80B5F00 thumb_func_start sub_80B5F10 sub_80B5F10: @ 80B5F10 push {lr} bl sub_80B6938 lsls r0, 24 cmp r0, 0 beq _080B5F2C movs r0, 0x1 bl sub_80B6210 bl sub_80B6878 ldr r1, _080B5F34 movs r0, 0x2 strb r0, [r1] _080B5F2C: movs r0, 0 pop {r1} bx r1 .align 2, 0 _080B5F34: .4byte 0x02000000 thumb_func_end sub_80B5F10 thumb_func_start sub_80B5F38 sub_80B5F38: @ 80B5F38 push {lr} movs r0, 0 bl sub_80B6210 bl sub_80B6B14 bl sub_80B65F0 movs r0, 0x1 bl sub_80B6888 movs r0, 0 movs r1, 0 movs r2, 0x1 bl sub_80B6460 movs r0, 0x6 bl audio_play ldr r1, _080B5F6C movs r0, 0x5 strb r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _080B5F6C: .4byte 0x02000000 thumb_func_end sub_80B5F38 thumb_func_start sub_80B5F70 sub_80B5F70: @ 80B5F70 push {r4,r5,lr} sub sp, 0x4 bl sub_80B6610 lsls r0, 24 cmp r0, 0 beq _080B5FDC ldr r4, _080B5FE8 movs r0, 0x2 strb r0, [r4] ldrb r0, [r4, 0xE] adds r0, 0x1 strb r0, [r4, 0xE] ldrb r0, [r4, 0xE] movs r1, 0x3 bl __umodsi3 strb r0, [r4, 0xE] bl sub_80B7614 bl sub_80B77F8 movs r0, 0x1 bl sub_80B6210 mov r5, sp adds r5, 0x2 mov r0, sp adds r1, r5, 0 bl sub_80B6858 ldrb r0, [r4, 0xE] cmp r0, 0x2 bne _080B5FC8 mov r0, sp ldrh r0, [r0] subs r0, 0x6 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080B5FC8 mov r1, sp movs r0, 0x5 strh r0, [r1] _080B5FC8: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] bl sub_80B680C movs r0, 0 bl sub_80B6888 _080B5FDC: movs r0, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080B5FE8: .4byte 0x02000000 thumb_func_end sub_80B5F70 thumb_func_start pokemon_store pokemon_store: @ 80B5FEC push {r4,lr} bl sub_80B74B0 movs r0, 0 bl sub_80B6210 movs r0, 0 bl sub_80B68D8 movs r0, 0x3 movs r1, 0 movs r2, 0x1 bl sub_80B6460 ldr r0, _080B6030 ldr r4, _080B6034 ldrh r1, [r4, 0x3C] strh r1, [r0] ldrb r0, [r4, 0x1] cmp r0, 0x2 bne _080B6038 bl calc_player_party_count lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bls _080B6038 bl sub_80B74FC movs r0, 0x7 strb r0, [r4] movs r0, 0 b _080B6040 .align 2, 0 _080B6030: .4byte 0x03001760 _080B6034: .4byte 0x02000000 _080B6038: ldr r1, _080B6048 movs r0, 0x8 strb r0, [r1] movs r0, 0x1 _080B6040: pop {r4} pop {r1} bx r1 .align 2, 0 _080B6048: .4byte 0x02000000 thumb_func_end pokemon_store thumb_func_start sub_80B604C sub_80B604C: @ 80B604C push {lr} bl sub_8072080 lsls r0, 24 cmp r0, 0 beq _080B6060 ldr r1, _080B6068 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080B6060: movs r0, 0 pop {r1} bx r1 .align 2, 0 _080B6068: .4byte 0x02000000 thumb_func_end sub_80B604C thumb_func_start sub_80B606C sub_80B606C: @ 80B606C push {lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _080B6090 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0 add sp, 0x4 pop {r1} bx r1 .align 2, 0 _080B6090: .4byte 0x02000000 thumb_func_end sub_80B606C thumb_func_start sub_80B6094 sub_80B6094: @ 80B6094 push {lr} ldr r0, _080B60B0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080B60AA ldr r0, _080B60B4 ldr r0, [r0, 0x48] bl SetMainCallback2 _080B60AA: movs r0, 0 pop {r1} bx r1 .align 2, 0 _080B60B0: .4byte 0x0202f388 _080B60B4: .4byte 0x02000000 thumb_func_end sub_80B6094 thumb_func_start sub_80B60B8 sub_80B60B8: @ 80B60B8 push {r4,r5,lr} bl sub_80B61EC lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl sub_80B6958 lsls r0, 24 lsrs r0, 24 cmp r4, 0x8 bne _080B60D6 bl sub_80B61C8 b _080B60F2 _080B60D6: cmp r4, 0x6 bne _080B60E0 bl sub_80B6FBC b _080B6100 _080B60E0: cmp r5, 0x7 beq _080B60FC ldr r1, _080B60F8 lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r5, 0 bl _call_via_r1 _080B60F2: lsls r0, 24 lsrs r0, 24 b _080B6102 .align 2, 0 _080B60F8: .4byte gUnknown_083CE240 _080B60FC: bl sub_80B7090 _080B6100: movs r0, 0 _080B6102: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80B60B8 thumb_func_start sub_80B6108 sub_80B6108: @ 80B6108 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x3 movs r1, 0 movs r2, 0 bl sub_80B6460 cmp r4, 0x5 bne _080B613C bl sub_80B7004 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80B6914 cmp r4, 0 beq _080B613C movs r0, 0 bl sub_80B6210 ldr r1, _080B6144 movs r0, 0x3 strb r0, [r1] _080B613C: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080B6144: .4byte 0x02000000 thumb_func_end sub_80B6108 thumb_func_start sub_80B6148 sub_80B6148: @ 80B6148 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0x1 movs r2, 0 bl sub_80B6460 cmp r4, 0x5 beq _080B6162 movs r0, 0 b _080B616A _080B6162: bl sub_80B61C8 lsls r0, 24 lsrs r0, 24 _080B616A: pop {r4} pop {r1} bx r1 thumb_func_end sub_80B6148 thumb_func_start sub_80B6170 sub_80B6170: @ 80B6170 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 movs r1, 0x1 movs r2, 0 bl sub_80B6460 cmp r4, 0x5 bne _080B618A bl sub_80B6FBC _080B618A: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80B6170 thumb_func_start sub_80B6194 sub_80B6194: @ 80B6194 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x2 movs r1, 0x1 movs r2, 0 bl sub_80B6460 cmp r4, 0x5 beq _080B61AE movs r0, 0 b _080B61BC _080B61AE: movs r0, 0x5 bl audio_play ldr r1, _080B61C4 movs r0, 0x6 strb r0, [r1] movs r0, 0x1 _080B61BC: pop {r4} pop {r1} bx r1 .align 2, 0 _080B61C4: .4byte 0x02000000 thumb_func_end sub_80B6194 thumb_func_start sub_80B61C8 sub_80B61C8: @ 80B61C8 ldr r1, _080B61D4 movs r0, 0x4 strb r0, [r1] movs r0, 0x1 bx lr .align 2, 0 _080B61D4: .4byte 0x02000000 thumb_func_end sub_80B61C8 thumb_func_start sub_80B61D8 sub_80B61D8: @ 80B61D8 push {lr} ldr r0, _080B61E8 movs r1, 0x1 bl CreateTask pop {r0} bx r0 .align 2, 0 _080B61E8: .4byte sub_80B623C thumb_func_end sub_80B61D8 thumb_func_start sub_80B61EC sub_80B61EC: @ 80B61EC push {lr} ldr r0, _080B6208 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 ldr r2, _080B620C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0xA] pop {r1} bx r1 .align 2, 0 _080B6208: .4byte sub_80B623C _080B620C: .4byte 0x03004b20 thumb_func_end sub_80B61EC thumb_func_start sub_80B6210 sub_80B6210: @ 80B6210 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080B6234 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 ldr r2, _080B6238 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _080B6234: .4byte sub_80B623C _080B6238: .4byte 0x03004b20 thumb_func_end sub_80B6210 thumb_func_start sub_80B623C sub_80B623C: @ 80B623C push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _080B6264 ldr r2, _080B6268 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _080B6264: .4byte gUnknown_083CE250 _080B6268: .4byte 0x03004b20 thumb_func_end sub_80B623C thumb_func_start sub_80B626C sub_80B626C: @ 80B626C movs r1, 0 strh r1, [r0, 0xA] bx lr thumb_func_end sub_80B626C thumb_func_start sub_80B6274 sub_80B6274: @ 80B6274 push {lr} adds r2, r0, 0 movs r0, 0 strh r0, [r2, 0xA] ldr r0, _080B6290 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080B6294 movs r0, 0x5 strh r0, [r2, 0xA] b _080B62C8 .align 2, 0 _080B6290: .4byte 0x03001770 _080B6294: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080B62A2 movs r0, 0x6 strh r0, [r2, 0xA] b _080B62C8 _080B62A2: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080B62B0 movs r0, 0x8 strh r0, [r2, 0xA] b _080B62C8 _080B62B0: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080B62C2 movs r0, 0x9 strh r0, [r2, 0xA] bl sub_80B6878 b _080B62C8 _080B62C2: adds r0, r2, 0 bl sub_80B62CC _080B62C8: pop {r0} bx r0 thumb_func_end sub_80B6274 thumb_func_start sub_80B62CC sub_80B62CC: @ 80B62CC push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl sub_80B6858 ldr r0, _080B6374 ldrh r2, [r0, 0x30] movs r0, 0x40 ands r0, r2 lsls r0, 16 lsrs r0, 16 negs r0, r0 lsrs r1, r0, 31 movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _080B62F8 movs r1, 0x2 _080B62F8: movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _080B6302 movs r1, 0x3 _080B6302: movs r0, 0x10 ands r0, r2 cmp r0, 0 beq _080B630C movs r1, 0x4 _080B630C: mov r0, sp ldrh r6, [r0] mov r2, sp ldr r0, _080B6378 lsls r1, 1 adds r0, r1, r0 ldrh r3, [r0] adds r0, r6, r3 strh r0, [r2] ldr r0, _080B637C adds r1, r0 ldrh r0, [r1] ldrh r1, [r4] adds r0, r1 strh r0, [r4] mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bge _080B633A mov r1, sp movs r0, 0x8 strh r0, [r1] _080B633A: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x8 ble _080B634A mov r1, sp movs r0, 0 strh r0, [r1] _080B634A: lsls r0, r3, 16 asrs r1, r0, 16 cmp r1, 0 beq _080B63CA ldr r0, _080B6380 ldrb r0, [r0, 0xE] cmp r0, 0x2 bne _080B638A mov r0, sp ldrh r0, [r0] subs r0, 0x6 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080B638A cmp r1, 0 ble _080B6384 mov r1, sp movs r0, 0x8 b _080B6388 .align 2, 0 _080B6374: .4byte 0x03001770 _080B6378: .4byte gUnknown_083CE258 _080B637C: .4byte gUnknown_083CE262 _080B6380: .4byte 0x02000000 _080B6384: mov r1, sp movs r0, 0x5 _080B6388: strh r0, [r1] _080B638A: mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0x8 bne _080B63AC ldrh r0, [r4] strh r0, [r5, 0xC] ldr r1, _080B63A8 movs r2, 0 ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 ldrh r0, [r0] b _080B63C8 .align 2, 0 _080B63A8: .4byte gUnknown_083CE26C _080B63AC: cmp r6, 0x8 bne _080B63CA movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080B63BC ldrh r0, [r5, 0xC] b _080B63C8 _080B63BC: ldr r0, _080B63FC movs r2, 0 ldrsh r1, [r4, r2] lsls r1, 1 adds r1, r0 ldrh r0, [r1] _080B63C8: strh r0, [r4] _080B63CA: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x8 bne _080B6408 movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0 bge _080B63E0 movs r0, 0x2 strh r0, [r4] _080B63E0: movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x2 ble _080B63EC movs r0, 0 strh r0, [r4] _080B63EC: movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0 bne _080B6400 movs r0, 0x1 strh r0, [r5, 0xC] b _080B6420 .align 2, 0 _080B63FC: .4byte gUnknown_083CE274 _080B6400: cmp r0, 0x2 bne _080B6420 strh r0, [r5, 0xC] b _080B6420 _080B6408: movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 bge _080B6414 movs r0, 0x3 strh r0, [r4] _080B6414: movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0x3 ble _080B6420 movs r0, 0 strh r0, [r4] _080B6420: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl sub_80B680C add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80B62CC thumb_func_start sub_80B6438 sub_80B6438: @ 80B6438 push {lr} ldr r0, _080B6458 movs r1, 0x3 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080B645C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0x3 strh r0, [r1, 0x8] pop {r0} bx r0 .align 2, 0 _080B6458: .4byte sub_80B64D4 _080B645C: .4byte 0x03004b20 thumb_func_end sub_80B6438 thumb_func_start sub_80B6460 sub_80B6460: @ 80B6460 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r6, r2, 24 ldr r0, _080B6498 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080B649C adds r4, r1, r0 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r5, r0 bne _080B64A0 cmp r6, 0 bne _080B64A0 strh r7, [r4, 0xA] movs r0, 0x1 strh r0, [r4, 0xC] b _080B64CC .align 2, 0 _080B6498: .4byte sub_80B64D4 _080B649C: .4byte 0x03004b20 _080B64A0: cmp r5, 0x3 bne _080B64B0 movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0 bne _080B64B0 cmp r6, 0 beq _080B64CC _080B64B0: ldrh r1, [r4, 0x8] movs r2, 0x8 ldrsh r0, [r4, r2] cmp r0, 0x3 beq _080B64C2 lsls r0, r1, 24 lsrs r0, 24 bl sub_80B65AC _080B64C2: adds r0, r4, 0 adds r1, r5, 0 adds r2, r7, 0 bl sub_80B65D4 _080B64CC: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80B6460 thumb_func_start sub_80B64D4 sub_80B64D4: @ 80B64D4 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080B6548 adds r4, r1, r0 ldrh r1, [r4, 0x8] movs r2, 0x8 ldrsh r0, [r4, r2] cmp r0, 0x3 beq _080B6540 movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0 beq _080B6540 lsls r0, r1, 24 lsrs r0, 24 bl sub_80B654C lsls r0, 16 lsrs r0, 16 ldrb r3, [r4, 0xE] adds r1, r3, 0 adds r2, r3, 0 bl sub_8085C7C ldrh r1, [r4, 0x12] movs r2, 0x12 ldrsh r0, [r4, r2] cmp r0, 0 beq _080B6520 subs r0, r1, 0x1 strh r0, [r4, 0x12] lsls r0, 16 cmp r0, 0 bne _080B6540 _080B6520: movs r0, 0x2 strh r0, [r4, 0x12] ldrh r1, [r4, 0x10] ldrh r2, [r4, 0xE] adds r0, r1, r2 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 beq _080B653C cmp r0, 0 bne _080B6540 ldrh r0, [r4, 0xA] strh r0, [r4, 0xC] _080B653C: negs r0, r1 strh r0, [r4, 0x10] _080B6540: pop {r4} pop {r0} bx r0 .align 2, 0 _080B6548: .4byte 0x03004b20 thumb_func_end sub_80B64D4 thumb_func_start sub_80B654C sub_80B654C: @ 80B654C push {r4-r6,lr} sub sp, 0x10 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x4 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r1, 0x87 lsls r1, 1 adds r5, r1, 0 adds r0, r5 add r6, sp, 0x8 strh r0, [r6] movs r0, 0x6 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r1, 0x86 lsls r1, 1 adds r0, r1 mov r1, sp adds r1, 0xA strh r0, [r1] movs r0, 0x6 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 adds r0, r5 add r1, sp, 0xC strh r0, [r1] mov r0, sp adds r1, r6, 0 movs r2, 0x6 bl memcpy lsls r4, 1 mov r1, sp adds r0, r1, r4 ldrh r0, [r0] add sp, 0x10 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80B654C thumb_func_start sub_80B65AC sub_80B65AC: @ 80B65AC push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80B654C lsls r0, 16 ldr r2, _080B65CC lsrs r0, 15 adds r2, r0, r2 ldr r1, _080B65D0 adds r0, r1 ldrh r0, [r0] strh r0, [r2] pop {r0} bx r0 .align 2, 0 _080B65CC: .4byte 0x0202eec8 _080B65D0: .4byte 0x0202eac8 thumb_func_end sub_80B65AC thumb_func_start sub_80B65D4 sub_80B65D4: @ 80B65D4 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 movs r3, 0 strh r1, [r0, 0x8] strh r2, [r0, 0xA] movs r2, 0x1 strh r2, [r0, 0xC] movs r1, 0xF strh r1, [r0, 0xE] strh r2, [r0, 0x10] strh r3, [r0, 0x12] bx lr thumb_func_end sub_80B65D4 thumb_func_start sub_80B65F0 sub_80B65F0: @ 80B65F0 push {r4,lr} ldr r4, _080B660C adds r0, r4, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _080B660C: .4byte sub_80B6630 thumb_func_end sub_80B65F0 thumb_func_start sub_80B6610 sub_80B6610: @ 80B6610 push {lr} ldr r0, _080B6624 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _080B6628 movs r0, 0 b _080B662A .align 2, 0 _080B6624: .4byte sub_80B6630 _080B6628: movs r0, 0x1 _080B662A: pop {r1} bx r1 thumb_func_end sub_80B6610 thumb_func_start sub_80B6630 sub_80B6630: @ 80B6630 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _080B6660 ldr r2, _080B6664 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _080B6642: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _080B6642 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B6660: .4byte gUnknown_083CE27C _080B6664: .4byte 0x03004b20 thumb_func_end sub_80B6630 thumb_func_start sub_80B6668 sub_80B6668: @ 80B6668 ldr r2, _080B667C movs r1, 0 strh r1, [r2, 0x4] strh r1, [r2, 0x6] ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] movs r0, 0 bx lr .align 2, 0 _080B667C: .4byte 0x02000000 thumb_func_end sub_80B6668 thumb_func_start sub_80B6680 sub_80B6680: @ 80B6680 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 ldr r0, _080B66E4 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] ldrh r0, [r4, 0xA] adds r0, 0x4 strh r0, [r4, 0xA] movs r1, 0xA ldrsh r0, [r4, r1] movs r1, 0x28 bl sine ldr r5, _080B66E8 ldrb r1, [r5, 0xC] lsls r1, 2 add r1, sp ldr r1, [r1] strh r0, [r1] ldrh r0, [r4, 0xA] adds r0, 0x80 movs r1, 0xFF ands r0, r1 movs r1, 0x28 bl sine ldrb r1, [r5, 0xD] lsls r1, 2 add r1, sp ldr r1, [r1] strh r0, [r1] movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x3F ble _080B66DA ldrb r1, [r5, 0x8] ldrh r0, [r5, 0xA] strh r0, [r5, 0x8] strh r1, [r5, 0xA] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080B66DA: movs r0, 0 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080B66E4: .4byte gUnknown_083CE28C _080B66E8: .4byte 0x02000000 thumb_func_end sub_80B6680 thumb_func_start sub_80B66EC sub_80B66EC: @ 80B66EC push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 ldr r0, _080B6750 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] ldrh r0, [r4, 0xA] adds r0, 0x4 strh r0, [r4, 0xA] movs r1, 0xA ldrsh r0, [r4, r1] movs r1, 0x28 bl sine ldr r5, _080B6754 ldrb r1, [r5, 0xC] lsls r1, 2 add r1, sp ldr r1, [r1] strh r0, [r1] ldrh r0, [r4, 0xA] adds r0, 0x80 movs r1, 0xFF ands r0, r1 movs r1, 0x28 bl sine ldrb r1, [r5, 0xD] lsls r1, 2 add r1, sp ldr r1, [r1] strh r0, [r1] movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x7F ble _080B6746 ldrb r1, [r5, 0xC] ldrb r0, [r5, 0xD] strb r0, [r5, 0xC] strb r1, [r5, 0xD] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080B6746: movs r0, 0 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080B6750: .4byte gUnknown_083CE28C _080B6754: .4byte 0x02000000 thumb_func_end sub_80B66EC thumb_func_start sub_80B6758 sub_80B6758: @ 80B6758 push {lr} ldr r0, _080B6770 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 pop {r1} bx r1 .align 2, 0 _080B6770: .4byte sub_80B6630 thumb_func_end sub_80B6758 thumb_func_start sub_80B6774 sub_80B6774: @ 80B6774 push {r4,r5,lr} ldr r0, _080B67E0 movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite ldr r4, _080B67E4 strb r0, [r4, 0xF] ldr r5, _080B67E8 ldrb r0, [r4, 0xF] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r3, [r1, 0x5] movs r2, 0xD negs r2, r2 adds r0, r2, 0 ands r0, r3 movs r3, 0x4 orrs r0, r3 strb r0, [r1, 0x5] ldrb r1, [r4, 0xF] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x1] ands r2, r1 orrs r2, r3 strb r2, [r0, 0x1] ldrb r1, [r4, 0xF] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x1 strh r1, [r0, 0x3A] ldrb r1, [r4, 0xF] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x2 strh r1, [r0, 0x3A] movs r0, 0 movs r1, 0 bl sub_80B680C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B67E0: .4byte gSpriteTemplate_83CE640 _080B67E4: .4byte 0x02000000 _080B67E8: .4byte 0x02020004 thumb_func_end sub_80B6774 thumb_func_start sub_80B67EC sub_80B67EC: @ 80B67EC ldr r3, _080B6804 lsls r0, 16 asrs r0, 16 ldr r1, _080B6808 ldrb r2, [r1, 0xE] lsls r1, r2, 3 adds r1, r2 adds r0, r1 adds r0, r3 ldrb r0, [r0] bx lr .align 2, 0 _080B6804: .4byte gUnknown_083CE294 _080B6808: .4byte 0x02000000 thumb_func_end sub_80B67EC thumb_func_start sub_80B680C sub_80B680C: @ 80B680C push {r4-r6,lr} adds r5, r1, 0 lsls r0, 16 lsls r5, 16 lsrs r5, 16 ldr r1, _080B6850 ldrb r1, [r1, 0xF] lsls r4, r1, 4 adds r4, r1 lsls r4, 2 ldr r1, _080B6854 adds r4, r1 lsrs r6, r0, 16 asrs r0, 16 bl sub_80B67EC lsls r0, 24 lsrs r0, 21 adds r0, 0x1B strh r0, [r4, 0x20] lsls r0, r5, 16 asrs r0, 12 adds r0, 0x50 strh r0, [r4, 0x22] ldrh r0, [r4, 0x2E] strh r0, [r4, 0x32] ldrh r0, [r4, 0x30] strh r0, [r4, 0x34] strh r6, [r4, 0x2E] strh r5, [r4, 0x30] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B6850: .4byte 0x02000000 _080B6854: .4byte 0x02020004 thumb_func_end sub_80B680C thumb_func_start sub_80B6858 sub_80B6858: @ 80B6858 ldr r2, _080B6870 ldrb r3, [r2, 0xF] lsls r2, r3, 4 adds r2, r3 lsls r2, 2 ldr r3, _080B6874 adds r2, r3 ldrh r3, [r2, 0x2E] strh r3, [r0] ldrh r0, [r2, 0x30] strh r0, [r1] bx lr .align 2, 0 _080B6870: .4byte 0x02000000 _080B6874: .4byte 0x02020004 thumb_func_end sub_80B6858 thumb_func_start sub_80B6878 sub_80B6878: @ 80B6878 push {lr} movs r0, 0x8 movs r1, 0x2 bl sub_80B680C pop {r0} bx r0 thumb_func_end sub_80B6878 thumb_func_start sub_80B6888 sub_80B6888: @ 80B6888 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _080B68CC ldr r4, _080B68D0 ldrb r1, [r4, 0xF] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r5 ldrh r3, [r2, 0x36] ldr r1, _080B68D4 ands r1, r3 strh r1, [r2, 0x36] ldrb r2, [r4, 0xF] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 ldrh r2, [r1, 0x36] orrs r0, r2 strh r0, [r1, 0x36] ldrb r1, [r4, 0xF] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0 bl StartSpriteAnim pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B68CC: .4byte 0x02020004 _080B68D0: .4byte 0x02000000 _080B68D4: .4byte 0xffffff00 thumb_func_end sub_80B6888 thumb_func_start sub_80B68D8 sub_80B68D8: @ 80B68D8 push {r4,r5,lr} lsls r0, 24 ldr r5, _080B690C ldr r4, _080B6910 ldrb r1, [r4, 0xF] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r5 ldrh r3, [r2, 0x36] movs r1, 0xFF ands r1, r3 strh r1, [r2, 0x36] ldrb r2, [r4, 0xF] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 lsrs r0, 16 ldrh r2, [r1, 0x36] orrs r0, r2 strh r0, [r1, 0x36] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B690C: .4byte 0x02020004 _080B6910: .4byte 0x02000000 thumb_func_end sub_80B68D8 thumb_func_start sub_80B6914 sub_80B6914: @ 80B6914 push {lr} ldr r0, _080B6930 ldrb r1, [r0, 0xF] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080B6934 adds r0, r1 movs r1, 0x1 bl StartSpriteAnim pop {r0} bx r0 .align 2, 0 _080B6930: .4byte 0x02000000 _080B6934: .4byte 0x02020004 thumb_func_end sub_80B6914 thumb_func_start sub_80B6938 sub_80B6938: @ 80B6938 ldr r2, _080B6950 ldr r0, _080B6954 ldrb r1, [r0, 0xF] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3F ldrb r0, [r0] lsls r0, 27 lsrs r0, 31 bx lr .align 2, 0 _080B6950: .4byte 0x02020004 _080B6954: .4byte 0x02000000 thumb_func_end sub_80B6938 thumb_func_start sub_80B6958 sub_80B6958: @ 80B6958 push {r4,r5,lr} sub sp, 0x8 ldr r1, _080B6988 mov r0, sp movs r2, 0x3 bl memcpy add r4, sp, 0x4 mov r5, sp adds r5, 0x6 adds r0, r4, 0 adds r1, r5, 0 bl sub_80B6858 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x7 ble _080B698C movs r1, 0 ldrsh r0, [r5, r1] add r0, sp ldrb r0, [r0] b _080B698E .align 2, 0 _080B6988: .4byte gUnknown_083CE2AF _080B698C: movs r0, 0 _080B698E: add sp, 0x8 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80B6958 thumb_func_start sub_80B6998 sub_80B6998: @ 80B6998 push {r4,r5,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080B69B0 adds r0, r4, 0 movs r1, 0 bl StartSpriteAnim _080B69B0: ldrh r1, [r4, 0x36] movs r0, 0xFF ands r0, r1 adds r3, r4, 0 adds r3, 0x3E movs r1, 0x1 ands r0, r1 lsls r0, 2 ldrb r1, [r3] movs r2, 0x5 negs r2, r2 ands r2, r1 orrs r2, r0 strb r2, [r3] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x8 bne _080B69DA movs r0, 0x4 orrs r2, r0 strb r2, [r3] _080B69DA: ldrb r1, [r3] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _080B6A0A movs r2, 0x36 ldrsh r0, [r4, r2] movs r1, 0xFF lsls r1, 8 ands r0, r1 cmp r0, 0 beq _080B6A0A movs r0, 0x2E ldrsh r1, [r4, r0] movs r2, 0x32 ldrsh r0, [r4, r2] cmp r1, r0 bne _080B6A0A movs r0, 0x30 ldrsh r1, [r4, r0] movs r2, 0x34 ldrsh r0, [r4, r2] cmp r1, r0 beq _080B6A16 _080B6A0A: movs r0, 0 strh r0, [r4, 0x38] movs r0, 0x1 strh r0, [r4, 0x3A] movs r0, 0x2 strh r0, [r4, 0x3C] _080B6A16: ldrh r0, [r4, 0x3C] subs r0, 0x1 strh r0, [r4, 0x3C] lsls r0, 16 cmp r0, 0 bne _080B6A3E ldrh r1, [r4, 0x3A] ldrh r2, [r4, 0x38] adds r0, r1, r2 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 beq _080B6A36 cmp r0, 0 bne _080B6A3A _080B6A36: negs r0, r1 strh r0, [r4, 0x3A] _080B6A3A: movs r0, 0x2 strh r0, [r4, 0x3C] _080B6A3E: movs r1, 0x36 ldrsh r0, [r4, r1] movs r1, 0xFF lsls r1, 8 ands r0, r1 cmp r0, 0 beq _080B6A74 ldrh r4, [r4, 0x38] lsls r5, r4, 24 lsrs r5, 24 lsls r4, 16 asrs r4, 17 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 ldr r2, _080B6A7C adds r0, r2 lsrs r0, 16 adds r1, r4, 0 adds r2, r5, 0 adds r3, r5, 0 bl sub_8085C7C _080B6A74: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B6A7C: .4byte 0x01010000 thumb_func_end sub_80B6998 thumb_func_start sub_80B6A80 sub_80B6A80: @ 80B6A80 push {r4,r5,lr} ldr r0, _080B6AF8 movs r1, 0xCC movs r2, 0x50 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _080B6AFC strb r0, [r1, 0x10] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r5, _080B6B00 adds r4, r5 ldr r1, _080B6B04 adds r0, r4, 0 bl SetSubspriteTables ldr r0, _080B6B08 movs r1, 0xCC movs r2, 0x4C movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x3A] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r5 ldr r1, _080B6B0C adds r0, r2, 0 bl SetSubspriteTables ldr r0, _080B6B10 movs r1, 0xCC movs r2, 0x4B movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r3, [r1, 0x5] movs r2, 0xD negs r2, r2 ands r2, r3 movs r3, 0x4 orrs r2, r3 strb r2, [r1, 0x5] strh r0, [r4, 0x3C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B6AF8: .4byte gSpriteTemplate_83CE5C8 _080B6AFC: .4byte 0x02000000 _080B6B00: .4byte 0x02020004 _080B6B04: .4byte gUnknown_083CE558 _080B6B08: .4byte gSpriteTemplate_83CE5F8 _080B6B0C: .4byte gUnknown_083CE560 _080B6B10: .4byte gSpriteTemplate_83CE5E0 thumb_func_end sub_80B6A80 thumb_func_start sub_80B6B14 sub_80B6B14: @ 80B6B14 ldr r2, _080B6B2C ldrb r1, [r2, 0x10] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080B6B30 adds r0, r1 movs r1, 0x2 strh r1, [r0, 0x2E] ldrb r1, [r2, 0xE] strh r1, [r0, 0x30] bx lr .align 2, 0 _080B6B2C: .4byte 0x02000000 _080B6B30: .4byte 0x02020004 thumb_func_end sub_80B6B14 thumb_func_start sub_80B6B34 sub_80B6B34: @ 80B6B34 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080B6B58 _080B6B3A: movs r1, 0x2E ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _080B6B3A pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B6B58: .4byte gUnknown_083CE2B4 thumb_func_end sub_80B6B34 thumb_func_start sub_80B6B5C sub_80B6B5C: @ 80B6B5C push {r4,lr} adds r4, r0, 0 movs r1, 0x3A ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r3, _080B6B90 adds r1, r3 movs r2, 0x3C ldrsh r0, [r4, r2] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 ldr r0, _080B6B94 ldrb r0, [r0, 0xE] bl sub_80B6C48 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080B6B90: .4byte 0x02020004 _080B6B94: .4byte 0x02000000 thumb_func_end sub_80B6B5C thumb_func_start sub_80B6B98 sub_80B6B98: @ 80B6B98 movs r0, 0 bx lr thumb_func_end sub_80B6B98 thumb_func_start sub_80B6B9C sub_80B6B9C: @ 80B6B9C push {r4,r5,lr} adds r3, r0, 0 movs r0, 0x3A ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r2, _080B6C00 adds r4, r0, r2 movs r0, 0x3C ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r5, r0, r2 ldrh r0, [r4, 0x26] adds r0, 0x1 strh r0, [r4, 0x26] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080B6BF8 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] ldr r0, _080B6C04 strh r0, [r4, 0x26] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r3, 0x30] lsls r0, 24 lsrs r0, 24 adds r0, 0x1 movs r1, 0x3 bl __modsi3 lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 adds r2, r5, 0 bl sub_80B6C48 _080B6BF8: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080B6C00: .4byte 0x02020004 _080B6C04: .4byte 0x0000fffc thumb_func_end sub_80B6B9C thumb_func_start sub_80B6C08 sub_80B6C08: @ 80B6C08 push {r4,lr} adds r4, r0, 0 movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080B6C44 adds r2, r0, r1 adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] ldrh r0, [r2, 0x26] adds r0, 0x1 strh r0, [r2, 0x26] lsls r0, 16 cmp r0, 0 blt _080B6C3C movs r0, 0 strh r0, [r2, 0x26] movs r0, 0x1 strh r0, [r4, 0x2E] _080B6C3C: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080B6C44: .4byte 0x02020004 thumb_func_end sub_80B6C08 thumb_func_start sub_80B6C48 sub_80B6C48: @ 80B6C48 push {r4-r6,lr} mov r6, r8 push {r6} adds r5, r0, 0 adds r6, r1, 0 mov r8, r2 lsls r5, 24 lsrs r5, 24 ldr r0, _080B6CA0 lsls r4, r5, 1 adds r0, r4, r0 ldrh r0, [r0] bl IndexOfSpritePaletteTag lsls r0, 4 mov r1, r8 ldrb r2, [r1, 0x5] movs r1, 0xF ands r1, r2 orrs r1, r0 mov r0, r8 strb r1, [r0, 0x5] ldr r0, _080B6CA4 adds r4, r0 ldrh r0, [r4] bl GetSpriteTileStartByTag adds r1, r6, 0 adds r1, 0x40 strh r0, [r1] adds r6, 0x42 movs r1, 0x3F ands r1, r5 ldrb r2, [r6] movs r0, 0x40 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r6] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B6CA0: .4byte gUnknown_083CE2C4 _080B6CA4: .4byte gUnknown_083CE2CA thumb_func_end sub_80B6C48 thumb_func_start sub_80B6CA8 sub_80B6CA8: @ 80B6CA8 push {r4,r5,lr} ldr r0, _080B6CF4 movs r1, 0xCC movs r2, 0x6C movs r3, 0 bl CreateSprite adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _080B6CF8 adds r0, r4 ldr r5, _080B6CFC adds r1, r5, 0 bl SetSubspriteTables ldr r0, _080B6D00 movs r1, 0xCC movs r2, 0x84 movs r3, 0 bl CreateSprite adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r1, r5, 0 bl SetSubspriteTables pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B6CF4: .4byte gSpriteTemplate_83CE610 _080B6CF8: .4byte 0x02020004 _080B6CFC: .4byte gUnknown_083CE578 _080B6D00: .4byte gSpriteTemplate_83CE628 thumb_func_end sub_80B6CA8 thumb_func_start sub_80B6D04 sub_80B6D04: @ 80B6D04 push {r4-r6,lr} ldr r4, _080B6D8C ldrh r1, [r4, 0x2] subs r1, 0x1 lsls r1, 3 adds r1, 0x4 ldr r0, _080B6D90 lsls r1, 16 asrs r1, 16 movs r2, 0x28 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 ldr r3, _080B6D94 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x5] movs r2, 0xC orrs r1, r2 strb r1, [r0, 0x5] ldrh r0, [r4, 0x2] lsls r0, 3 adds r0, 0x4 lsls r0, 16 lsrs r1, r0, 16 movs r5, 0 ldr r0, [r4, 0x34] ldrb r0, [r0, 0x1] cmp r5, r0 bcs _080B6D86 adds r6, r3, 0 _080B6D4A: lsls r4, r1, 16 asrs r4, 16 ldr r0, _080B6D98 adds r1, r4, 0 movs r2, 0x2C movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r1, [r0, 0x5] movs r2, 0xC orrs r1, r2 strb r1, [r0, 0x5] strh r5, [r0, 0x2E] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x8 lsls r4, 16 lsrs r1, r4, 16 ldr r0, _080B6D8C ldr r0, [r0, 0x34] ldrb r0, [r0, 0x1] cmp r5, r0 bcc _080B6D4A _080B6D86: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B6D8C: .4byte 0x02000000 _080B6D90: .4byte gSpriteTemplate_83CE658 _080B6D94: .4byte 0x02020004 _080B6D98: .4byte gSpriteTemplate_83CE670 thumb_func_end sub_80B6D04 thumb_func_start sub_80B6D9C sub_80B6D9C: @ 80B6D9C push {r4,lr} sub sp, 0x8 adds r4, r0, 0 ldr r1, _080B6DE4 mov r0, sp movs r2, 0x8 bl memcpy ldrh r1, [r4, 0x2E] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 beq _080B6DC0 subs r0, r1, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bne _080B6DCE _080B6DC0: movs r0, 0x8 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x30] adds r0, 0x1 movs r1, 0x3 ands r0, r1 strh r0, [r4, 0x30] _080B6DCE: movs r1, 0x30 ldrsh r0, [r4, r1] lsls r0, 1 add r0, sp ldrh r0, [r0] strh r0, [r4, 0x24] add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080B6DE4: .4byte gUnknown_083CE2D0 thumb_func_end sub_80B6D9C thumb_func_start sub_80B6DE8 sub_80B6DE8: @ 80B6DE8 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 ldr r1, _080B6E10 mov r0, sp movs r2, 0x8 bl memcpy bl sub_80B6F44 lsls r0, 24 ldrh r1, [r4, 0x2E] lsls r1, 24 cmp r0, r1 beq _080B6E14 movs r0, 0 strh r0, [r4, 0x26] strh r0, [r4, 0x30] b _080B6E3A .align 2, 0 _080B6E10: .4byte gUnknown_083CE2D8 _080B6E14: movs r1, 0x30 ldrsh r0, [r4, r1] lsls r0, 1 add r0, sp ldrh r0, [r0] strh r0, [r4, 0x26] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080B6E3C ldrh r0, [r4, 0x30] adds r0, 0x1 movs r1, 0x3 ands r0, r1 strh r0, [r4, 0x30] movs r0, 0 _080B6E3A: strh r0, [r4, 0x32] _080B6E3C: add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_80B6DE8 thumb_func_start sub_80B6E44 sub_80B6E44: @ 80B6E44 push {lr} ldr r1, _080B6E5C ldr r0, _080B6E60 ldr r0, [r0, 0x34] ldrb r0, [r0, 0x2] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .align 2, 0 _080B6E5C: .4byte gUnknown_083CE2E0 _080B6E60: .4byte 0x02000000 thumb_func_end sub_80B6E44 thumb_func_start nullsub_40 nullsub_40: @ 80B6E64 bx lr thumb_func_end nullsub_40 thumb_func_start sub_80B6E68 sub_80B6E68: @ 80B6E68 push {lr} sub sp, 0x4 ldr r0, _080B6EB0 ldrh r1, [r0, 0x3E] lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_805983C lsls r0, 24 lsrs r0, 24 ldr r1, _080B6EB4 movs r2, 0 str r2, [sp] movs r2, 0x38 movs r3, 0x18 bl AddPseudoFieldObject adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _080B6EB8 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x5] movs r2, 0xC orrs r1, r2 strb r1, [r0, 0x5] movs r1, 0x4 bl StartSpriteAnim add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080B6EB0: .4byte 0x02000000 _080B6EB4: .4byte SpriteCallbackDummy _080B6EB8: .4byte 0x02020004 thumb_func_end sub_80B6E68 thumb_func_start sub_80B6EBC sub_80B6EBC: @ 80B6EBC push {r4,lr} ldr r0, _080B6EF0 movs r1, 0x34 movs r2, 0x18 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _080B6EF4 adds r4, r0 ldr r1, _080B6EF8 adds r0, r4, 0 bl SetSubspriteTables ldrb r0, [r4, 0x5] movs r1, 0xC orrs r0, r1 strb r0, [r4, 0x5] pop {r4} pop {r0} bx r0 .align 2, 0 _080B6EF0: .4byte gSpriteTemplate_83CE688 _080B6EF4: .4byte 0x02020004 _080B6EF8: .4byte gUnknown_083CE580 thumb_func_end sub_80B6EBC thumb_func_start sub_80B6EFC sub_80B6EFC: @ 80B6EFC push {lr} sub sp, 0x8 bl sub_809D51C ldr r3, _080B6F38 ldrh r0, [r3, 0x3E] ldr r1, _080B6F3C movs r2, 0 str r2, [sp] ldr r2, [r3, 0x44] str r2, [sp, 0x4] movs r2, 0x34 movs r3, 0x18 bl sub_809D2FC lsls r0, 24 lsrs r0, 24 ldr r2, _080B6F40 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x5] movs r2, 0xC orrs r0, r2 strb r0, [r1, 0x5] add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080B6F38: .4byte 0x02000000 _080B6F3C: .4byte SpriteCallbackDummy _080B6F40: .4byte 0x02020004 thumb_func_end sub_80B6EFC thumb_func_start sub_80B6F44 sub_80B6F44: @ 80B6F44 push {r4,lr} movs r2, 0 ldr r1, _080B6F64 ldr r0, [r1, 0x34] ldrb r0, [r0, 0x1] adds r4, r1, 0 cmp r2, r0 bcs _080B6F72 adds r1, 0x11 adds r3, r0, 0 _080B6F58: adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0xFF bne _080B6F68 adds r0, r2, 0 b _080B6F7C .align 2, 0 _080B6F64: .4byte 0x02000000 _080B6F68: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r3 bcc _080B6F58 _080B6F72: ldr r0, [r4, 0x34] ldrb r0, [r0, 0x1] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 _080B6F7C: pop {r4} pop {r1} bx r1 thumb_func_end sub_80B6F44 thumb_func_start sub_80B6F84 sub_80B6F84: @ 80B6F84 push {lr} ldr r2, _080B6FA8 ldr r0, [r2, 0x34] ldrb r0, [r0, 0x1] subs r0, 0x1 lsls r1, r0, 24 cmp r1, 0 ble _080B6FB4 adds r3, r2, 0 adds r3, 0x11 _080B6F98: asrs r2, r1, 24 adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0xFF beq _080B6FAC lsrs r0, r1, 24 b _080B6FB6 .align 2, 0 _080B6FA8: .4byte 0x02000000 _080B6FAC: subs r0, r2, 0x1 lsls r1, r0, 24 cmp r1, 0 bgt _080B6F98 _080B6FB4: movs r0, 0 _080B6FB6: pop {r1} bx r1 thumb_func_end sub_80B6F84 thumb_func_start sub_80B6FBC sub_80B6FBC: @ 80B6FBC push {r4,lr} bl sub_80B6F84 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080B7000 adds r0, 0x11 adds r4, r0 movs r0, 0 strb r0, [r4] bl sub_80B7960 movs r0, 0xFF strb r0, [r4] bl sub_80B6958 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080B6FEA cmp r0, 0x2 bne _080B6FF4 _080B6FEA: movs r0, 0x1 movs r1, 0 movs r2, 0x1 bl sub_80B6460 _080B6FF4: movs r0, 0x17 bl audio_play pop {r4} pop {r0} bx r0 .align 2, 0 _080B7000: .4byte 0x02000000 thumb_func_end sub_80B6FBC thumb_func_start sub_80B7004 sub_80B7004: @ 80B7004 push {r4,r5,lr} sub sp, 0x4 mov r5, sp adds r5, 0x2 mov r0, sp adds r1, r5, 0 bl sub_80B6858 mov r4, sp mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] bl sub_80B67EC lsls r0, 24 lsrs r0, 24 strh r0, [r4] mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] movs r2, 0 ldrsh r1, [r5, r2] bl sub_80B7768 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 movs r4, 0x1 cmp r0, 0xFF bne _080B7046 bl sub_80B7104 b _080B704E _080B7046: cmp r0, 0xFE bne _080B7054 bl sub_80B713C _080B704E: lsls r0, 24 lsrs r4, r0, 24 b _080B705A _080B7054: adds r0, r1, 0 bl sub_80B7174 _080B705A: bl sub_80B7960 movs r0, 0x5 bl audio_play cmp r4, 0 beq _080B7084 bl sub_80B6F84 lsls r0, 24 lsrs r0, 24 ldr r1, _080B7080 ldr r1, [r1, 0x34] ldrb r1, [r1, 0x1] subs r1, 0x1 cmp r0, r1 bne _080B7084 movs r0, 0x1 b _080B7086 .align 2, 0 _080B7080: .4byte 0x02000000 _080B7084: movs r0, 0 _080B7086: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80B7004 thumb_func_start sub_80B7090 sub_80B7090: @ 80B7090 push {r4-r7,lr} bl sub_80B6F84 lsls r0, 24 lsrs r5, r0, 24 adds r7, r5, 0 ldr r0, _080B70C8 adds r0, 0x11 adds r0, r5, r0 ldrb r4, [r0] adds r6, r4, 0 adds r0, r4, 0 bl sub_80B7198 lsls r0, 24 cmp r0, 0 beq _080B70D6 adds r0, r4, 0 bl sub_80B7264 lsls r0, 24 cmp r0, 0 beq _080B70CC adds r0, r4, 0 adds r1, r5, 0 bl sub_80B7370 b _080B70F4 .align 2, 0 _080B70C8: .4byte 0x02000000 _080B70CC: adds r0, r4, 0 adds r1, r5, 0 bl sub_80B73CC b _080B70F4 _080B70D6: adds r0, r4, 0 bl sub_80B71E4 lsls r0, 24 cmp r0, 0 beq _080B70EC adds r0, r4, 0 adds r1, r5, 0 bl sub_80B7474 b _080B70F4 _080B70EC: adds r0, r6, 0 adds r1, r7, 0 bl sub_80B72A4 _080B70F4: bl sub_80B7960 movs r0, 0x5 bl audio_play pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80B7090 thumb_func_start sub_80B7104 sub_80B7104: @ 80B7104 push {r4,r5,lr} bl sub_80B6F84 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080B7128 adds r0, 0x11 adds r0, r5, r0 ldrb r4, [r0] adds r0, r4, 0 bl sub_80B720C lsls r0, 24 cmp r0, 0 bne _080B712C movs r0, 0 b _080B7136 .align 2, 0 _080B7128: .4byte 0x02000000 _080B712C: adds r0, r4, 0 adds r1, r5, 0 bl sub_80B72A4 movs r0, 0x1 _080B7136: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80B7104 thumb_func_start sub_80B713C sub_80B713C: @ 80B713C push {r4,r5,lr} bl sub_80B6F84 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080B7160 adds r0, 0x11 adds r0, r5, r0 ldrb r4, [r0] adds r0, r4, 0 bl sub_80B7264 lsls r0, 24 cmp r0, 0 bne _080B7164 movs r0, 0 b _080B716E .align 2, 0 _080B7160: .4byte 0x02000000 _080B7164: adds r0, r4, 0 adds r1, r5, 0 bl sub_80B7370 movs r0, 0x1 _080B716E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80B713C thumb_func_start sub_80B7174 sub_80B7174: @ 80B7174 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80B6F44 lsls r0, 24 lsrs r0, 24 ldr r1, _080B7194 adds r1, 0x11 adds r0, r1 strb r4, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080B7194: .4byte 0x02000000 thumb_func_end sub_80B7174 thumb_func_start sub_80B7198 sub_80B7198: @ 80B7198 push {lr} lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xC9 lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0x13 bls _080B71DA adds r0, r1, 0 adds r0, 0x79 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B71DA adds r0, r1, 0 adds r0, 0x74 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B71DA adds r0, r1, 0 adds r0, 0x6F lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B71DA adds r0, r1, 0 adds r0, 0x6A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B71DE _080B71DA: movs r0, 0x1 b _080B71E0 _080B71DE: movs r0, 0 _080B71E0: pop {r1} bx r1 thumb_func_end sub_80B7198 thumb_func_start sub_80B71E4 sub_80B71E4: @ 80B71E4 push {lr} lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xB5 lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0x4 bls _080B7202 adds r0, r1, 0 adds r0, 0x65 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B7206 _080B7202: movs r0, 0x1 b _080B7208 _080B7206: movs r0, 0 _080B7208: pop {r1} bx r1 thumb_func_end sub_80B71E4 thumb_func_start sub_80B720C sub_80B720C: @ 80B720C push {lr} lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xFA lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0xE bls _080B725A adds r0, r1, 0 subs r0, 0x1A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B725A adds r0, r1, 0 subs r0, 0x4B lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B725A adds r0, r1, 0 subs r0, 0x56 lsls r0, 24 lsrs r0, 24 cmp r0, 0xE bls _080B725A adds r0, r1, 0 subs r0, 0x6A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B725A adds r0, r1, 0 adds r0, 0x65 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B725E _080B725A: movs r0, 0x1 b _080B7260 _080B725E: movs r0, 0 _080B7260: pop {r1} bx r1 thumb_func_end sub_80B720C thumb_func_start sub_80B7264 sub_80B7264: @ 80B7264 push {lr} lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xE6 lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0x4 bls _080B729A adds r0, r1, 0 subs r0, 0x46 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B729A adds r0, r1, 0 subs r0, 0x6A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B729A adds r0, r1, 0 adds r0, 0x6A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B729E _080B729A: movs r0, 0x1 b _080B72A0 _080B729E: movs r0, 0 _080B72A0: pop {r1} bx r1 thumb_func_end sub_80B7264 thumb_func_start sub_80B72A4 sub_80B72A4: @ 80B72A4 push {lr} lsls r0, 24 lsls r1, 24 lsrs r1, 24 lsrs r2, r0, 24 movs r3, 0xFA lsls r3, 24 adds r0, r3 lsrs r0, 24 cmp r0, 0x4 bhi _080B72C0 adds r0, r2, 0 adds r0, 0x31 b _080B735A _080B72C0: adds r0, r2, 0 subs r0, 0xB lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B72D2 adds r0, r2, 0 adds r0, 0x31 b _080B735A _080B72D2: adds r0, r2, 0 subs r0, 0x10 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B72E4 adds r0, r2, 0 adds r0, 0x31 b _080B735A _080B72E4: adds r0, r2, 0 subs r0, 0x1A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B72F6 adds r0, r2, 0 adds r0, 0x2C b _080B735A _080B72F6: adds r0, r2, 0 subs r0, 0x4B lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B7356 adds r0, r2, 0 subs r0, 0x56 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B7314 adds r0, r2, 0 adds r0, 0x31 b _080B735A _080B7314: adds r0, r2, 0 subs r0, 0x5B lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B7326 adds r0, r2, 0 adds r0, 0x31 b _080B735A _080B7326: adds r0, r2, 0 subs r0, 0x60 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B7338 adds r0, r2, 0 adds r0, 0x31 b _080B735A _080B7338: adds r0, r2, 0 subs r0, 0x6A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B734A adds r0, r2, 0 adds r0, 0x2C b _080B735A _080B734A: adds r0, r2, 0 adds r0, 0x65 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B735E _080B7356: adds r0, r2, 0 adds r0, 0xFB _080B735A: lsls r0, 24 lsrs r2, r0, 24 _080B735E: ldr r0, _080B736C adds r0, 0x11 adds r0, r1, r0 strb r2, [r0] pop {r0} bx r0 .align 2, 0 _080B736C: .4byte 0x02000000 thumb_func_end sub_80B72A4 thumb_func_start sub_80B7370 sub_80B7370: @ 80B7370 push {lr} lsls r0, 24 lsls r1, 24 lsrs r1, 24 lsrs r2, r0, 24 movs r3, 0xE6 lsls r3, 24 adds r0, r3 lsrs r0, 24 cmp r0, 0x4 bhi _080B738C adds r0, r2, 0 adds r0, 0x31 b _080B73B8 _080B738C: adds r0, r2, 0 subs r0, 0x46 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B73B6 adds r0, r2, 0 subs r0, 0x6A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B73AA adds r0, r2, 0 adds r0, 0x31 b _080B73B8 _080B73AA: adds r0, r2, 0 adds r0, 0x6A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B73BC _080B73B6: adds r0, r2, 0x5 _080B73B8: lsls r0, 24 lsrs r2, r0, 24 _080B73BC: ldr r0, _080B73C8 adds r0, 0x11 adds r0, r1, r0 strb r2, [r0] pop {r0} bx r0 .align 2, 0 _080B73C8: .4byte 0x02000000 thumb_func_end sub_80B7370 thumb_func_start sub_80B73CC sub_80B73CC: @ 80B73CC push {lr} lsls r0, 24 lsls r1, 24 lsrs r1, 24 lsrs r2, r0, 24 movs r3, 0xC9 lsls r3, 24 adds r0, r3 lsrs r0, 24 cmp r0, 0x4 bhi _080B73E8 adds r0, r2, 0 adds r0, 0xCF b _080B745E _080B73E8: adds r0, r2, 0 subs r0, 0x3C lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B73FA adds r0, r2, 0 adds r0, 0xCF b _080B745E _080B73FA: adds r0, r2, 0 subs r0, 0x41 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B740C adds r0, r2, 0 adds r0, 0xCF b _080B745E _080B740C: adds r0, r2, 0 subs r0, 0x46 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _080B745A adds r0, r2, 0 adds r0, 0x79 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B742A adds r0, r2, 0 adds r0, 0xCF b _080B745E _080B742A: adds r0, r2, 0 adds r0, 0x74 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B743C adds r0, r2, 0 adds r0, 0xCF b _080B745E _080B743C: adds r0, r2, 0 adds r0, 0x6F lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B744E adds r0, r2, 0 adds r0, 0xCF b _080B745E _080B744E: adds r0, r2, 0 adds r0, 0x6A lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B7462 _080B745A: adds r0, r2, 0 adds r0, 0xD4 _080B745E: lsls r0, 24 lsrs r2, r0, 24 _080B7462: ldr r0, _080B7470 adds r0, 0x11 adds r0, r1, r0 strb r2, [r0] pop {r0} bx r0 .align 2, 0 _080B7470: .4byte 0x02000000 thumb_func_end sub_80B73CC thumb_func_start sub_80B7474 sub_80B7474: @ 80B7474 push {lr} lsls r0, 24 lsls r1, 24 lsrs r1, 24 lsrs r2, r0, 24 movs r3, 0xB5 lsls r3, 24 adds r0, r3 lsrs r0, 24 cmp r0, 0x4 bls _080B7496 adds r0, r2, 0 adds r0, 0x65 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080B749E _080B7496: adds r0, r2, 0 adds r0, 0xCF lsls r0, 24 lsrs r2, r0, 24 _080B749E: ldr r0, _080B74AC adds r0, 0x11 adds r0, r1, r0 strb r2, [r0] pop {r0} bx r0 .align 2, 0 _080B74AC: .4byte 0x02000000 thumb_func_end sub_80B7474 thumb_func_start sub_80B74B0 sub_80B74B0: @ 80B74B0 push {r4,lr} movs r1, 0 ldr r3, _080B74E4 ldr r0, [r3, 0x34] ldrb r0, [r0, 0x1] cmp r1, r0 bcs _080B74F6 adds r2, r3, 0 adds r4, r3, 0 adds r4, 0x11 _080B74C4: adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 beq _080B74E8 cmp r0, 0xFF beq _080B74E8 ldr r0, [r2, 0x38] ldr r1, [r2, 0x34] ldrb r2, [r1, 0x1] adds r2, 0x1 lsls r2, 24 lsrs r2, 24 adds r1, r4, 0 bl StringCopyN b _080B74F6 .align 2, 0 _080B74E4: .4byte 0x02000000 _080B74E8: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 ldr r0, [r3, 0x34] ldrb r0, [r0, 0x1] cmp r1, r0 bcc _080B74C4 _080B74F6: pop {r4} pop {r0} bx r0 thumb_func_end sub_80B74B0 thumb_func_start sub_80B74FC sub_80B74FC: @ 80B74FC push {r4,lr} ldr r0, _080B7528 ldr r1, _080B752C ldr r1, [r1, 0x38] bl StringCopy ldr r4, _080B7530 ldr r1, _080B7534 adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _080B7538 bl sub_8071E2C bl sub_8071FFC adds r0, r4, 0 bl sub_8072044 pop {r4} pop {r0} bx r0 .align 2, 0 _080B7528: .4byte 0x020231cc _080B752C: .4byte 0x02000000 _080B7530: .4byte 0x020234cc _080B7534: .4byte gUnknown_0842C9A4 _080B7538: .4byte gWindowConfig_81E6E88 thumb_func_end sub_80B74FC thumb_func_start sub_80B753C sub_80B753C: @ 80B753C push {lr} ldr r0, _080B7550 bl LoadSpriteSheets ldr r0, _080B7554 bl LoadSpritePalettes pop {r0} bx r0 .align 2, 0 _080B7550: .4byte gUnknown_083CE6A0 _080B7554: .4byte gUnknown_083CE708 thumb_func_end sub_80B753C thumb_func_start sub_80B7558 sub_80B7558: @ 80B7558 push {lr} bl sub_80B7568 bl sub_80B75B0 pop {r0} bx r0 thumb_func_end sub_80B7558 thumb_func_start sub_80B7568 sub_80B7568: @ 80B7568 push {r4,lr} ldr r4, _080B759C ldr r3, _080B75A0 ldrh r0, [r3] lsls r0, 5 movs r1, 0xC0 lsls r1, 19 adds r0, r1 ldr r1, _080B75A4 str r4, [r1] str r0, [r1, 0x4] ldr r2, _080B75A8 str r2, [r1, 0x8] ldr r0, [r1, 0x8] ldrh r0, [r3] lsls r0, 5 ldr r3, _080B75AC adds r0, r3 str r4, [r1] str r0, [r1, 0x4] str r2, [r1, 0x8] ldr r0, [r1, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _080B759C: .4byte gUnknown_08E85998 _080B75A0: .4byte 0x0202e9d4 _080B75A4: .4byte 0x040000d4 _080B75A8: .4byte 0x80000400 _080B75AC: .4byte 0x06008000 thumb_func_end sub_80B7568 thumb_func_start sub_80B75B0 sub_80B75B0: @ 80B75B0 push {lr} ldr r0, _080B75C0 movs r1, 0 movs r2, 0x80 bl LoadPalette pop {r0} bx r0 .align 2, 0 _080B75C0: .4byte gNamingScreenPalettes thumb_func_end sub_80B75B0 thumb_func_start sub_80B75C4 sub_80B75C4: @ 80B75C4 push {r4,r5,lr} sub sp, 0x8 ldr r0, _080B7608 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] ldr r4, _080B760C ldr r5, _080B7610 ldrb r1, [r5, 0xE] lsls r1, 3 adds r1, r4 ldrb r0, [r5, 0xC] lsls r0, 2 add r0, sp ldr r0, [r0] ldr r1, [r1] bl _call_via_r1 ldrb r1, [r5, 0xE] lsls r1, 3 adds r4, 0x4 adds r1, r4 ldrb r0, [r5, 0xD] lsls r0, 2 add r0, sp ldr r0, [r0] ldr r1, [r1] bl _call_via_r1 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B7608: .4byte gUnknown_083CE308 _080B760C: .4byte gUnknown_083CE2F0 _080B7610: .4byte 0x02000000 thumb_func_end sub_80B75C4 thumb_func_start sub_80B7614 sub_80B7614: @ 80B7614 push {lr} sub sp, 0x8 ldr r0, _080B7644 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] ldr r0, _080B7648 ldr r2, _080B764C ldrb r1, [r2, 0xE] lsls r1, 3 adds r0, 0x4 adds r1, r0 ldrb r0, [r2, 0xD] lsls r0, 2 add r0, sp ldr r0, [r0] ldr r1, [r1] bl _call_via_r1 add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080B7644: .4byte gUnknown_083CE308 _080B7648: .4byte gUnknown_083CE2F0 _080B764C: .4byte 0x02000000 thumb_func_end sub_80B7614 thumb_func_start sub_80B7650 sub_80B7650: @ 80B7650 push {lr} ldr r1, _080B765C bl sub_80B7698 pop {r0} bx r0 .align 2, 0 _080B765C: .4byte gUnknown_083CE748 thumb_func_end sub_80B7650 thumb_func_start sub_80B7660 sub_80B7660: @ 80B7660 push {lr} ldr r1, _080B766C bl sub_80B7698 pop {r0} bx r0 .align 2, 0 _080B766C: .4byte gUnknown_083CEBF8 thumb_func_end sub_80B7660 thumb_func_start sub_80B7670 sub_80B7670: @ 80B7670 push {lr} ldr r1, _080B767C bl sub_80B7698 pop {r0} bx r0 .align 2, 0 _080B767C: .4byte gUnknown_083CF0A8 thumb_func_end sub_80B7670 thumb_func_start sub_80B7680 sub_80B7680: @ 80B7680 push {lr} ldr r0, _080B7690 ldr r1, _080B7694 bl sub_80B76E0 pop {r0} bx r0 .align 2, 0 _080B7690: .4byte 0x0600f000 _080B7694: .4byte gUnknown_08E86258 thumb_func_end sub_80B7680 thumb_func_start sub_80B7698 sub_80B7698: @ 80B7698 push {r4-r7,lr} mov r12, r0 adds r3, r1, 0 movs r4, 0 ldr r0, _080B76DC ldrh r6, [r0] _080B76A4: movs r1, 0 lsls r4, 16 asrs r5, r4, 11 _080B76AA: lsls r0, r1, 16 asrs r0, 16 adds r1, r5, r0 lsls r1, 1 add r1, r12 ldrh r7, [r3] adds r2, r6, r7 strh r2, [r1] adds r0, 0x1 lsls r0, 16 adds r3, 0x2 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0x1D ble _080B76AA movs r1, 0x80 lsls r1, 9 adds r0, r4, r1 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080B76A4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B76DC: .4byte 0x0202e9d4 thumb_func_end sub_80B7698 thumb_func_start sub_80B76E0 sub_80B76E0: @ 80B76E0 push {r4-r7,lr} mov r12, r0 adds r3, r1, 0 movs r4, 0 ldr r0, _080B7728 ldrh r6, [r0] _080B76EC: movs r1, 0 lsls r5, r4, 16 asrs r4, r5, 11 _080B76F2: lsls r0, r1, 16 asrs r0, 16 adds r1, r4, r0 lsls r1, 1 add r1, r12 ldrh r7, [r3] adds r2, r6, r7 strh r2, [r1] adds r0, 0x1 lsls r0, 16 adds r3, 0x2 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0x1D ble _080B76F2 adds r3, 0x4 movs r1, 0x80 lsls r1, 9 adds r0, r5, r1 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080B76EC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B7728: .4byte 0x0202e9d4 thumb_func_end sub_80B76E0 thumb_func_start sub_80B772C sub_80B772C: @ 80B772C push {lr} ldr r1, _080B773C ldrb r0, [r1, 0xE] ldrb r1, [r1, 0xC] bl nullsub_20 pop {r0} bx r0 .align 2, 0 _080B773C: .4byte 0x02000000 thumb_func_end sub_80B772C thumb_func_start sub_80B7740 sub_80B7740: @ 80B7740 push {r4,lr} ldr r4, _080B7760 ldrb r0, [r4, 0xE] adds r0, 0x1 movs r1, 0x3 bl __modsi3 lsls r0, 24 lsrs r0, 24 ldrb r1, [r4, 0xD] bl nullsub_20 pop {r4} pop {r0} bx r0 .align 2, 0 _080B7760: .4byte 0x02000000 thumb_func_end sub_80B7740 thumb_func_start nullsub_20 nullsub_20: @ 80B7764 bx lr thumb_func_end nullsub_20 thumb_func_start sub_80B7768 sub_80B7768: @ 80B7768 ldr r3, _080B778C lsls r0, 16 asrs r0, 16 lsls r1, 16 asrs r1, 16 lsls r2, r1, 2 adds r2, r1 lsls r2, 2 adds r0, r2 ldr r1, _080B7790 ldrb r2, [r1, 0xE] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 adds r0, r1 adds r0, r3 ldrb r0, [r0] bx lr .align 2, 0 _080B778C: .4byte gUnknown_083CE3A8 _080B7790: .4byte 0x02000000 thumb_func_end sub_80B7768 thumb_func_start sub_80B7794 sub_80B7794: @ 80B7794 push {r4-r6,lr} ldr r6, _080B77EC ldr r4, _080B77F0 ldrb r0, [r4, 0xC] lsls r0, 2 ldrb r1, [r4, 0xE] lsls r1, 4 adds r0, r1 adds r0, r6 ldr r0, [r0] bl sub_8071E2C ldr r5, _080B77F4 ldrb r0, [r4, 0xE] lsls r0, 3 adds r0, r5 ldr r0, [r0] bl _call_via_r0 ldrb r1, [r4, 0xD] lsls r1, 2 ldrb r0, [r4, 0xE] lsls r0, 4 adds r1, r0 adds r6, 0x8 adds r1, r6 ldr r0, [r1] bl sub_8071E2C ldrb r0, [r4, 0xE] lsls r0, 3 adds r5, 0x4 adds r0, r5 ldr r0, [r0] bl _call_via_r0 bl sub_80B772C bl sub_80B7740 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B77EC: .4byte gUnknown_083CE328 _080B77F0: .4byte 0x02000000 _080B77F4: .4byte gUnknown_083CE310 thumb_func_end sub_80B7794 thumb_func_start sub_80B77F8 sub_80B77F8: @ 80B77F8 push {r4,lr} ldr r2, _080B782C ldr r4, _080B7830 ldrb r1, [r4, 0xD] lsls r1, 2 ldrb r0, [r4, 0xE] lsls r0, 4 adds r1, r0 adds r2, 0x8 adds r1, r2 ldr r0, [r1] bl sub_8071E2C ldr r1, _080B7834 ldrb r0, [r4, 0xE] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r0, [r0] bl _call_via_r0 bl sub_80B7740 pop {r4} pop {r0} bx r0 .align 2, 0 _080B782C: .4byte gUnknown_083CE328 _080B7830: .4byte 0x02000000 _080B7834: .4byte gUnknown_083CE310 thumb_func_end sub_80B77F8 thumb_func_start sub_80B7838 sub_80B7838: @ 80B7838 push {lr} movs r0, 0x1 bl sub_80B785C pop {r0} bx r0 thumb_func_end sub_80B7838 thumb_func_start sub_80B7844 sub_80B7844: @ 80B7844 push {lr} movs r0, 0 bl sub_80B785C pop {r0} bx r0 thumb_func_end sub_80B7844 thumb_func_start sub_80B7850 sub_80B7850: @ 80B7850 push {lr} movs r0, 0x2 bl sub_80B785C pop {r0} bx r0 thumb_func_end sub_80B7850 thumb_func_start sub_80B785C sub_80B785C: @ 80B785C push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 movs r2, 0 movs r5, 0x9 lsls r1, r0, 2 adds r1, r0 lsls r6, r1, 4 _080B786C: lsls r4, r2, 16 asrs r4, 16 lsls r0, r4, 2 adds r0, r4 lsls r0, 2 ldr r1, _080B78A4 adds r0, r1 adds r0, r6, r0 lsls r2, r5, 24 lsrs r2, 24 movs r1, 0x3 bl Print adds r4, 0x1 lsls r4, 16 lsls r0, r5, 16 movs r1, 0x80 lsls r1, 10 adds r0, r1 lsrs r5, r0, 16 lsrs r2, r4, 16 asrs r4, 16 cmp r4, 0x3 ble _080B786C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B78A4: .4byte gUnknown_083CE3A8 thumb_func_end sub_80B785C thumb_func_start sub_80B78A8 sub_80B78A8: @ 80B78A8 push {r4,lr} ldr r0, _080B78E4 bl sub_8071E2C ldr r1, _080B78E8 ldr r4, _080B78EC ldrb r0, [r4, 0x1] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 ldr r1, _080B78F0 ldr r0, [r4, 0x34] ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 ldr r0, [r4, 0x34] ldr r0, [r0, 0x8] movs r1, 0x9 movs r2, 0x2 bl Print pop {r4} pop {r0} bx r0 .align 2, 0 _080B78E4: .4byte gWindowConfig_81E6F4C _080B78E8: .4byte gUnknown_083CE358 _080B78EC: .4byte 0x02000000 _080B78F0: .4byte gUnknown_083CE368 thumb_func_end sub_80B78A8 thumb_func_start nullsub_61 nullsub_61: @ 80B78F4 bx lr thumb_func_end nullsub_61 thumb_func_start sub_80B78F8 sub_80B78F8: @ 80B78F8 push {lr} ldr r0, _080B7914 ldr r1, _080B7918 movs r3, 0x3E ldrsh r2, [r1, r3] movs r1, 0xB muls r1, r2 ldr r2, _080B791C adds r1, r2 bl StringCopy pop {r0} bx r0 .align 2, 0 _080B7914: .4byte 0x020231cc _080B7918: .4byte 0x02000000 _080B791C: .4byte gSpeciesNames thumb_func_end sub_80B78F8 thumb_func_start nullsub_62 nullsub_62: @ 80B7920 bx lr thumb_func_end nullsub_62 thumb_func_start sub_80B7924 sub_80B7924: @ 80B7924 push {lr} sub sp, 0x4 ldr r1, _080B7958 mov r0, sp movs r2, 0x2 bl memcpy ldr r0, _080B795C adds r0, 0x40 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0xFF beq _080B7952 cmp r0, 0xFE bne _080B7948 mov r1, sp movs r0, 0xB6 strb r0, [r1] _080B7948: mov r0, sp movs r1, 0x14 movs r2, 0x4 bl Print _080B7952: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080B7958: .4byte gUnknown_083CE370 _080B795C: .4byte 0x02000000 thumb_func_end sub_80B7924 thumb_func_start sub_80B7960 sub_80B7960: @ 80B7960 push {r4,lr} ldr r0, _080B799C movs r2, 0xFC strb r2, [r0] movs r1, 0x14 strb r1, [r0, 0x1] movs r1, 0x8 strb r1, [r0, 0x2] strb r2, [r0, 0x3] movs r1, 0x11 strb r1, [r0, 0x4] movs r1, 0x1 strb r1, [r0, 0x5] adds r0, 0x6 ldr r4, _080B79A0 adds r1, r4, 0 bl StringCopy ldr r0, _080B79A4 bl sub_8071E2C ldr r0, _080B799C subs r4, 0x11 ldrb r1, [r4, 0x2] movs r2, 0x4 bl Print pop {r4} pop {r0} bx r0 .align 2, 0 _080B799C: .4byte 0x020231cc _080B79A0: .4byte 0x02000011 _080B79A4: .4byte gWindowConfig_81E6F4C thumb_func_end sub_80B7960 thumb_func_start IsEnoughMoney IsEnoughMoney: @ 80B79A8 push {lr} cmp r0, r1 bcs _080B79B2 movs r0, 0 b _080B79B4 _080B79B2: movs r0, 0x1 _080B79B4: pop {r1} bx r1 thumb_func_end IsEnoughMoney thumb_func_start sub_80B79B8 sub_80B79B8: @ 80B79B8 push {lr} adds r2, r0, 0 ldr r0, [r2] adds r1, r0, r1 cmp r0, r1 bls _080B79CC ldr r0, _080B79C8 b _080B79D4 .align 2, 0 _080B79C8: .4byte 0x000f423f _080B79CC: str r1, [r2] ldr r0, _080B79DC cmp r1, r0 bls _080B79D6 _080B79D4: str r0, [r2] _080B79D6: pop {r0} bx r0 .align 2, 0 _080B79DC: .4byte 0x000f423f thumb_func_end sub_80B79B8 thumb_func_start sub_80B79E0 sub_80B79E0: @ 80B79E0 push {lr} adds r2, r0, 0 ldr r0, [r2] cmp r0, r1 bcs _080B79EE movs r0, 0 b _080B79F0 _080B79EE: subs r0, r1 _080B79F0: str r0, [r2] pop {r0} bx r0 thumb_func_end sub_80B79E0 thumb_func_start sub_80B79F8 sub_80B79F8: @ 80B79F8 push {r4,lr} adds r3, r0, 0 lsls r2, 24 lsrs r4, r2, 24 ldr r0, _080B7A0C cmp r1, r0 bls _080B7A10 movs r2, 0x7 b _080B7A46 .align 2, 0 _080B7A0C: .4byte 0x000f423f _080B7A10: ldr r0, _080B7A1C cmp r1, r0 bls _080B7A20 movs r2, 0x6 b _080B7A46 .align 2, 0 _080B7A1C: .4byte 0x0001869f _080B7A20: ldr r0, _080B7A2C cmp r1, r0 bls _080B7A30 movs r2, 0x5 b _080B7A46 .align 2, 0 _080B7A2C: .4byte 0x00002710 _080B7A30: ldr r0, _080B7A90 movs r2, 0x4 cmp r1, r0 bhi _080B7A46 movs r2, 0x3 cmp r1, 0x63 bhi _080B7A46 movs r2, 0x1 cmp r1, 0x9 bls _080B7A46 movs r2, 0x2 _080B7A46: movs r0, 0xFC strb r0, [r3] movs r0, 0x14 strb r0, [r3, 0x1] movs r0, 0x6 strb r0, [r3, 0x2] adds r3, 0x3 movs r0, 0 subs r2, r4, r2 cmp r0, r2 bge _080B7A6C movs r4, 0 _080B7A5E: strb r4, [r3] adds r3, 0x1 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, r2 blt _080B7A5E _080B7A6C: movs r0, 0xB7 strb r0, [r3] adds r3, 0x1 adds r0, r3, 0 bl ConvertIntToDecimalString adds r3, r0, 0 movs r0, 0xFC strb r0, [r3] movs r0, 0x14 strb r0, [r3, 0x1] movs r0, 0 strb r0, [r3, 0x2] movs r0, 0xFF strb r0, [r3, 0x3] pop {r4} pop {r0} bx r0 .align 2, 0 _080B7A90: .4byte 0x000003e7 thumb_func_end sub_80B79F8 thumb_func_start sub_80B7A94 sub_80B7A94: @ 80B7A94 push {r4-r7,lr} sub sp, 0x10 adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r6, r2, 24 lsls r3, 24 lsrs r7, r3, 24 mov r0, sp adds r1, r4, 0 adds r2, r5, 0 bl sub_80B79F8 mov r0, sp bl sub_8072CA4 lsls r0, 24 lsrs r2, r0, 24 adds r0, r5, 0x1 lsls r0, 3 cmp r2, r0 blt _080B7ACE mov r0, sp adds r1, r6, 0 adds r2, r7, 0 bl Print b _080B7AE4 _080B7ACE: adds r1, r6, 0x1 adds r1, r5 lsls r1, 3 subs r1, r2 lsls r1, 24 lsrs r1, 24 lsls r2, r7, 3 mov r0, sp movs r3, 0x1 bl sub_80729D8 _080B7AE4: add sp, 0x10 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80B7A94 thumb_func_start sub_80B7AEC sub_80B7AEC: @ 80B7AEC push {r4-r6,lr} sub sp, 0x20 adds r3, r0, 0 adds r4, r1, 0 adds r5, r2, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 mov r6, sp movs r0, 0xB7 strb r0, [r6] adds r6, 0x1 adds r0, r6, 0 adds r1, r3, 0 bl ConvertIntToDecimalString adds r6, r0, 0 mov r0, sp adds r1, r4, 0 adds r2, r5, 0 bl PrintCoinsString movs r0, 0xFC strb r0, [r6] movs r0, 0x14 strb r0, [r6, 0x1] movs r0, 0 strb r0, [r6, 0x2] movs r0, 0xFF strb r0, [r6, 0x3] add sp, 0x20 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80B7AEC thumb_func_start sub_80B7B34 sub_80B7B34: @ 80B7B34 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 mov r8, r0 adds r5, r1, 0 mov r9, r2 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r5, 24 lsrs r5, 24 mov r1, r9 lsls r1, 8 mov r9, r1 ldr r4, _080B7BD8 adds r0, r1, r4 lsls r6, r5, 4 subs r6, r5 lsls r1, r6, 6 mov r3, r8 adds r3, 0x1 lsls r3, 5 ldr r2, _080B7BDC adds r3, r2 adds r1, r3 movs r2, 0x20 str r3, [sp] bl CpuFastSet adds r4, 0x80 add r9, r4 adds r0, r5, 0x1 lsls r4, r0, 4 subs r4, r0 lsls r1, r4, 6 ldr r3, [sp] adds r1, r3 mov r0, r9 movs r2, 0x20 bl CpuFastSet movs r3, 0 lsls r5, 5 mov r0, r8 adds r7, r5, r0 lsls r6, 1 adds r6, 0x1 add r6, r8 ldr r1, _080B7BE0 adds r5, r1, 0 ldr r0, _080B7BE4 mov r12, r0 ldr r1, _080B7BE8 mov r9, r1 lsls r4, 1 adds r4, 0x1 add r4, r8 _080B7BAA: adds r1, r7, r3 lsls r1, 1 mov r0, r12 adds r2, r1, r0 adds r0, r3, r6 adds r0, r5 strh r0, [r2] add r1, r9 adds r0, r3, r4 adds r0, r5 strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _080B7BAA add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B7BD8: .4byte gUnknown_08EA2A44 _080B7BDC: .4byte 0x06008000 _080B7BE0: .4byte 0xfffff000 _080B7BE4: .4byte 0x0600f800 _080B7BE8: .4byte 0x0600f840 thumb_func_end sub_80B7B34 thumb_func_start sub_80B7BEC sub_80B7BEC: @ 80B7BEC push {r4,lr} adds r4, r1, 0 adds r3, r2, 0 lsls r4, 24 lsls r3, 24 movs r1, 0xC0 lsls r1, 19 adds r4, r1 lsrs r4, 24 movs r1, 0x80 lsls r1, 17 adds r3, r1 lsrs r3, 24 movs r1, 0x6 adds r2, r4, 0 bl sub_80B7A94 pop {r4} pop {r0} bx r0 thumb_func_end sub_80B7BEC thumb_func_start sub_80B7C14 sub_80B7C14: @ 80B7C14 push {r4-r6,lr} mov r6, r8 push {r6} mov r8, r0 adds r4, r1, 0 adds r3, r2, 0 lsls r4, 24 lsls r3, 24 lsrs r6, r4, 24 movs r0, 0xD0 lsls r0, 20 adds r4, r0 lsrs r4, 24 lsrs r5, r3, 24 movs r1, 0xC0 lsls r1, 18 adds r3, r1 lsrs r3, 24 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl DrawDefaultWindow mov r0, r8 adds r1, r6, 0 adds r2, r5, 0 bl sub_80B7BEC ldr r0, _080B7C88 bl LoadCompressedObjectPic ldr r0, _080B7C8C bl LoadCompressedObjectPalette ldr r0, _080B7C90 lsls r6, 19 movs r1, 0x98 lsls r1, 13 adds r6, r1 asrs r6, 16 lsls r5, 19 movs r1, 0xB0 lsls r1, 12 adds r5, r1 asrs r5, 16 adds r1, r6, 0 adds r2, r5, 0 movs r3, 0 bl CreateSprite ldr r1, _080B7C94 strb r0, [r1] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B7C88: .4byte gUnknown_083CF584 _080B7C8C: .4byte gUnknown_083CF58C _080B7C90: .4byte gSpriteTemplate_83CF56C _080B7C94: .4byte 0x02038734 thumb_func_end sub_80B7C14 thumb_func_start RemoveMoneyLabelObject RemoveMoneyLabelObject: @ 80B7C98 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r0, _080B7CDC ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080B7CE0 adds r0, r1 bl DestroySpriteAndFreeResources ldr r0, _080B7CE4 bl FreeSpritePaletteByTag adds r2, r4, 0 adds r2, 0xD lsls r2, 24 lsrs r2, 24 adds r3, r5, 0x3 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 bl Reset pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B7CDC: .4byte 0x02038734 _080B7CE0: .4byte 0x02020004 _080B7CE4: .4byte 0x00002722 thumb_func_end RemoveMoneyLabelObject thumb_func_start sub_80B7CE8 sub_80B7CE8: @ 80B7CE8 push {lr} ldr r0, _080B7D04 movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] ldr r1, _080B7D08 ldrh r1, [r1] bl IsEnoughMoney lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080B7D04: .4byte 0x02025734 _080B7D08: .4byte 0x0202e8ce thumb_func_end sub_80B7CE8 thumb_func_start sub_80B7D0C sub_80B7D0C: @ 80B7D0C push {lr} ldr r0, _080B7D1C ldr r1, _080B7D20 ldrh r1, [r1] bl sub_80B79E0 pop {r0} bx r0 .align 2, 0 _080B7D1C: .4byte 0x02025bc4 _080B7D20: .4byte 0x0202e8ce thumb_func_end sub_80B7D0C thumb_func_start AreMovesContestCombo AreMovesContestCombo: @ 80B7D24 push {r4,lr} sub sp, 0x4 lsls r0, 16 lsls r1, 16 ldr r2, _080B7D78 lsrs r0, 13 adds r0, r2 ldrb r4, [r0, 0x2] mov r3, sp lsrs r1, 13 adds r1, r2 ldrb r0, [r1, 0x3] strb r0, [r3] mov r2, sp ldrb r0, [r1, 0x4] strb r0, [r2, 0x1] ldrb r0, [r1, 0x5] strb r0, [r2, 0x2] mov r0, sp ldrb r1, [r1, 0x6] strb r1, [r0, 0x3] cmp r4, 0 beq _080B7D80 mov r0, sp ldrb r0, [r0] cmp r4, r0 beq _080B7D6E mov r0, sp ldrb r0, [r0, 0x1] cmp r4, r0 beq _080B7D6E mov r0, sp ldrb r0, [r0, 0x2] cmp r4, r0 beq _080B7D6E cmp r4, r1 bne _080B7D80 _080B7D6E: ldr r0, _080B7D7C adds r0, r4, r0 ldrb r0, [r0] b _080B7D82 .align 2, 0 _080B7D78: .4byte gContestMoves _080B7D7C: .4byte gComboStarterLookupTable _080B7D80: movs r0, 0 _080B7D82: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end AreMovesContestCombo thumb_func_start ContestEffect_00 ContestEffect_00: @ 80B7D8C bx lr thumb_func_end ContestEffect_00 thumb_func_start ContestEffect_01 ContestEffect_01: @ 80B7D90 push {lr} ldr r3, _080B7DB8 ldrb r1, [r3, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r3, 0 subs r1, 0x70 adds r0, r1 ldrb r1, [r0, 0x10] movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x10] ldrb r0, [r3, 0x11] movs r1, 0 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B7DB8: .4byte 0x020192d0 thumb_func_end ContestEffect_01 thumb_func_start ContestEffect_02 ContestEffect_02: @ 80B7DBC push {lr} ldr r3, _080B7DE4 ldrb r1, [r3, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r3, 0 subs r1, 0x70 adds r0, r1 ldrb r1, [r0, 0x11] movs r2, 0x8 orrs r1, r2 strb r1, [r0, 0x11] ldrb r0, [r3, 0x11] movs r1, 0x1 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B7DE4: .4byte 0x020192d0 thumb_func_end ContestEffect_02 thumb_func_start ContestEffect_03 ContestEffect_03: @ 80B7DE8 push {r4,lr} ldr r3, _080B7E30 ldrb r1, [r3, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r4, r3, 0 subs r4, 0x70 adds r0, r4 ldrb r1, [r0, 0x10] movs r2, 0x8 orrs r1, r2 strb r1, [r0, 0x10] ldrb r0, [r3, 0x11] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r4 ldrb r2, [r1, 0x15] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x15] ldrb r0, [r3, 0x11] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r4 ldrb r2, [r1, 0xB] movs r0, 0x71 negs r0, r0 ands r0, r2 strb r0, [r1, 0xB] pop {r4} pop {r0} bx r0 .align 2, 0 _080B7E30: .4byte 0x020192d0 thumb_func_end ContestEffect_03 thumb_func_start ContestEffect_04 ContestEffect_04: @ 80B7E34 push {lr} ldr r2, _080B7E58 ldrb r1, [r2, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r2, 0 subs r1, 0x70 adds r0, r1 movs r1, 0x1 strb r1, [r0, 0x12] ldrb r0, [r2, 0x11] movs r1, 0x2 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B7E58: .4byte 0x020192d0 thumb_func_end ContestEffect_04 thumb_func_start ContestEffect_05 ContestEffect_05: @ 80B7E5C push {lr} ldr r3, _080B7E84 ldrb r1, [r3, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r3, 0 subs r1, 0x70 adds r0, r1 ldrb r1, [r0, 0x10] movs r2, 0x2 orrs r1, r2 strb r1, [r0, 0x10] ldrb r0, [r3, 0x11] movs r1, 0x3 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B7E84: .4byte 0x020192d0 thumb_func_end ContestEffect_05 thumb_func_start ContestEffect_06 ContestEffect_06: @ 80B7E88 push {lr} ldr r2, _080B7EAC ldrb r1, [r2, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r2, 0 subs r1, 0x70 adds r0, r1 movs r1, 0x14 strb r1, [r0, 0xF] ldrb r0, [r2, 0x11] movs r1, 0x4 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B7EAC: .4byte 0x020192d0 thumb_func_end ContestEffect_06 thumb_func_start ContestEffect_07 ContestEffect_07: @ 80B7EB0 push {lr} ldr r3, _080B7ED8 ldrb r1, [r3, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r3, 0 subs r1, 0x70 adds r0, r1 ldrb r1, [r0, 0x10] movs r2, 0x1 orrs r1, r2 strb r1, [r0, 0x10] ldrb r0, [r3, 0x11] movs r1, 0x5 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B7ED8: .4byte 0x020192d0 thumb_func_end ContestEffect_07 thumb_func_start ContestEffect_08 ContestEffect_08: @ 80B7EDC push {r4,lr} movs r2, 0 ldr r3, _080B7F38 ldrb r0, [r3, 0x11] adds r1, r0, r3 ldrb r0, [r1] cmp r0, 0 beq _080B7F1A subs r0, 0x1 ldrb r4, [r3] cmp r0, r4 beq _080B7F0A adds r4, r3, 0 adds r3, r1, 0 _080B7EF8: adds r2, 0x1 cmp r2, 0x3 bgt _080B7F0A ldrb r0, [r3] subs r0, 0x1 adds r1, r2, r4 ldrb r1, [r1] cmp r0, r1 bne _080B7EF8 _080B7F0A: ldr r1, _080B7F38 strb r2, [r1, 0x8] movs r0, 0xFF strb r0, [r1, 0x9] bl sub_80B9120 lsls r0, 24 lsrs r2, r0, 24 _080B7F1A: cmp r2, 0 bne _080B7F28 ldr r0, _080B7F38 ldrb r0, [r0, 0x11] movs r1, 0x36 bl sub_80B1404 _080B7F28: ldr r0, _080B7F38 ldrb r0, [r0, 0x11] movs r1, 0x30 bl sub_80B13EC pop {r4} pop {r0} bx r0 .align 2, 0 _080B7F38: .4byte 0x020192d0 thumb_func_end ContestEffect_08 thumb_func_start ContestEffect_09 ContestEffect_09: @ 80B7F3C push {r4-r6,lr} movs r2, 0 ldr r1, _080B7F9C ldrb r0, [r1, 0x11] adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 beq _080B7F7C movs r3, 0 adds r5, r1, 0 adds r6, r5, 0 adds r6, 0x8 _080B7F54: adds r1, r2, r5 ldrb r0, [r4] ldrb r1, [r1] cmp r0, r1 bls _080B7F64 adds r0, r3, r6 strb r2, [r0] adds r3, 0x1 _080B7F64: adds r2, 0x1 cmp r2, 0x3 ble _080B7F54 ldr r0, _080B7F9C adds r0, 0x8 adds r0, r3, r0 movs r1, 0xFF strb r1, [r0] bl sub_80B9120 lsls r0, 24 lsrs r2, r0, 24 _080B7F7C: cmp r2, 0 bne _080B7F8A ldr r0, _080B7F9C ldrb r0, [r0, 0x11] movs r1, 0x36 bl sub_80B1404 _080B7F8A: ldr r0, _080B7F9C ldrb r0, [r0, 0x11] movs r1, 0x30 bl sub_80B13EC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B7F9C: .4byte 0x020192d0 thumb_func_end ContestEffect_09 thumb_func_start ContestEffect_14 ContestEffect_14: @ 80B7FA0 push {lr} bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 24 lsrs r0, 24 movs r1, 0x14 cmp r0, 0x1 bls _080B7FC2 movs r1, 0x3C cmp r0, 0x7 bhi _080B7FC2 movs r1, 0x28 _080B7FC2: ldr r0, _080B7FD0 strh r1, [r0, 0x4] bl ContestEffect_08 pop {r0} bx r0 .align 2, 0 _080B7FD0: .4byte 0x020192d0 thumb_func_end ContestEffect_14 thumb_func_start ContestEffect_15 ContestEffect_15: @ 80B7FD4 push {r4-r7,lr} mov r7, r8 push {r7} movs r7, 0 ldr r0, _080B806C ldrb r6, [r0, 0x11] adds r1, r6, r0 ldrb r1, [r1] mov r8, r0 cmp r1, 0 beq _080B804A movs r5, 0 mov r4, r8 _080B7FEE: adds r0, r6, r4 adds r1, r5, r4 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _080B8044 strb r5, [r4, 0x8] movs r0, 0xFF strb r0, [r4, 0x9] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 24 lsrs r0, 24 movs r1, 0 cmp r0, 0 beq _080B8032 movs r1, 0xA cmp r0, 0x2 bls _080B8032 movs r1, 0x14 cmp r0, 0x4 bls _080B8032 movs r1, 0x1E cmp r0, 0x6 bls _080B8032 movs r1, 0x3C cmp r0, 0x8 bhi _080B8032 movs r1, 0x28 _080B8032: strh r1, [r4, 0x4] bl sub_80B9120 lsls r0, 24 cmp r0, 0 beq _080B8044 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _080B8044: adds r5, 0x1 cmp r5, 0x3 ble _080B7FEE _080B804A: mov r1, r8 ldrb r0, [r1, 0x11] movs r1, 0x30 bl sub_80B13EC cmp r7, 0 bne _080B8062 mov r1, r8 ldrb r0, [r1, 0x11] movs r1, 0x36 bl sub_80B1404 _080B8062: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B806C: .4byte 0x020192d0 thumb_func_end ContestEffect_15 thumb_func_start ContestEffect_16 ContestEffect_16: @ 80B8070 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r0, 0 mov r9, r0 ldr r0, _080B8108 ldrb r7, [r0, 0x11] adds r1, r7, r0 ldrb r1, [r1] mov r10, r0 cmp r1, 0 beq _080B80E0 movs r6, 0 mov r8, r10 mov r5, r10 subs r5, 0x5B _080B8094: mov r1, r8 adds r0, r7, r1 adds r1, r6, r1 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _080B80D8 ldrb r1, [r5] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080B80D8 lsls r0, r6, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80B90C0 lsls r0, 24 cmp r0, 0 beq _080B80D8 ldrb r0, [r5] movs r2, 0x11 negs r2, r2 adds r1, r2, 0 ands r0, r1 movs r1, 0x20 orrs r0, r1 strb r0, [r5] adds r0, r4, 0 movs r1, 0x8 bl sub_80B13EC movs r0, 0x1 mov r9, r0 _080B80D8: adds r5, 0x1C adds r6, 0x1 cmp r6, 0x3 ble _080B8094 _080B80E0: mov r1, r10 ldrb r0, [r1, 0x11] movs r1, 0x7 bl sub_80B13EC mov r2, r9 cmp r2, 0 bne _080B80FA mov r1, r10 ldrb r0, [r1, 0x11] movs r1, 0x36 bl sub_80B1404 _080B80FA: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B8108: .4byte 0x020192d0 thumb_func_end ContestEffect_16 thumb_func_start ContestEffect_17 ContestEffect_17: @ 80B810C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r0, 0 mov r9, r0 ldr r0, _080B8150 ldrb r1, [r0, 0x11] mov r8, r1 adds r1, r0 ldrb r1, [r1] adds r6, r0, 0 cmp r1, 0 beq _080B817C movs r5, 0 adds r4, r6, 0 movs r7, 0 _080B812E: mov r2, r8 adds r0, r2, r4 adds r1, r5, r4 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _080B8172 adds r0, r6, 0 subs r0, 0x70 adds r0, r7, r0 ldrb r1, [r0, 0x15] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080B8154 movs r0, 0x32 b _080B8156 .align 2, 0 _080B8150: .4byte 0x020192d0 _080B8154: movs r0, 0xA _080B8156: strh r0, [r4, 0x4] strb r5, [r4, 0x8] movs r0, 0xFF strb r0, [r4, 0x9] bl sub_80B9120 lsls r0, 24 cmp r0, 0 beq _080B8172 mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _080B8172: adds r7, 0x1C adds r5, 0x1 ldr r6, _080B81A0 cmp r5, 0x3 ble _080B812E _080B817C: ldrb r0, [r6, 0x11] movs r1, 0x30 bl sub_80B13EC mov r0, r9 cmp r0, 0 bne _080B8192 ldrb r0, [r6, 0x11] movs r1, 0x36 bl sub_80B1404 _080B8192: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B81A0: .4byte 0x020192d0 thumb_func_end ContestEffect_17 thumb_func_start ContestEffect_18 ContestEffect_18: @ 80B81A4 push {r4,lr} ldr r4, _080B81D0 ldrb r1, [r4, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r4, 0 subs r1, 0x70 adds r0, r1 ldrb r1, [r0, 0x11] movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x11] bl ContestEffect_09 ldrb r0, [r4, 0x11] movs r1, 0x30 bl sub_80B13EC pop {r4} pop {r0} bx r0 .align 2, 0 _080B81D0: .4byte 0x020192d0 thumb_func_end ContestEffect_18 thumb_func_start ContestEffect_19 ContestEffect_19: @ 80B81D4 push {r4,lr} ldr r4, _080B8208 ldrb r1, [r4, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r4, 0 subs r1, 0x70 adds r0, r1 ldrh r0, [r0, 0x6] ldr r1, _080B820C lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x1] lsls r0, 29 lsrs r0, 29 bl sub_80B9038 ldrb r0, [r4, 0x11] movs r1, 0x30 bl sub_80B13EC pop {r4} pop {r0} bx r0 .align 2, 0 _080B8208: .4byte 0x020192d0 _080B820C: .4byte gContestMoves thumb_func_end ContestEffect_19 thumb_func_start ContestEffect_20 ContestEffect_20: @ 80B8210 push {lr} movs r0, 0 bl sub_80B9038 ldr r0, _080B8228 ldrb r0, [r0, 0x11] movs r1, 0x30 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B8228: .4byte 0x020192d0 thumb_func_end ContestEffect_20 thumb_func_start ContestEffect_21 ContestEffect_21: @ 80B822C push {lr} movs r0, 0x1 bl sub_80B9038 ldr r0, _080B8244 ldrb r0, [r0, 0x11] movs r1, 0x30 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B8244: .4byte 0x020192d0 thumb_func_end ContestEffect_21 thumb_func_start ContestEffect_22 ContestEffect_22: @ 80B8248 push {lr} movs r0, 0x2 bl sub_80B9038 ldr r0, _080B8260 ldrb r0, [r0, 0x11] movs r1, 0x30 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B8260: .4byte 0x020192d0 thumb_func_end ContestEffect_22 thumb_func_start ContestEffect_23 ContestEffect_23: @ 80B8264 push {lr} movs r0, 0x3 bl sub_80B9038 ldr r0, _080B827C ldrb r0, [r0, 0x11] movs r1, 0x30 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B827C: .4byte 0x020192d0 thumb_func_end ContestEffect_23 thumb_func_start ContestEffect_24 ContestEffect_24: @ 80B8280 push {lr} movs r0, 0x4 bl sub_80B9038 ldr r0, _080B8298 ldrb r0, [r0, 0x11] movs r1, 0x30 bl sub_80B13EC pop {r0} bx r0 .align 2, 0 _080B8298: .4byte 0x020192d0 thumb_func_end ContestEffect_24 thumb_func_start ContestEffect_25 ContestEffect_25: @ 80B829C push {r4-r7,lr} movs r4, 0 ldr r0, _080B82E0 ldrb r1, [r0, 0x11] adds r1, r0 ldrb r1, [r1] adds r7, r0, 0 cmp r1, 0x3 beq _080B82F4 movs r5, 0 adds r6, r7, 0 _080B82B2: ldrb r0, [r6, 0x11] adds r0, r6 ldrb r0, [r0] adds r0, 0x1 adds r1, r5, r6 ldrb r1, [r1] cmp r0, r1 bne _080B82EE lsls r0, r5, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80B90C0 lsls r0, 24 cmp r0, 0 beq _080B82E4 adds r0, r4, 0 bl sub_80B157C adds r0, r4, 0 movs r1, 0xA b _080B82E8 .align 2, 0 _080B82E0: .4byte 0x020192d0 _080B82E4: adds r0, r4, 0 movs r1, 0x3C _080B82E8: bl sub_80B13EC movs r4, 0x1 _080B82EE: adds r5, 0x1 cmp r5, 0x3 ble _080B82B2 _080B82F4: ldrb r0, [r7, 0x11] movs r1, 0x9 bl sub_80B13EC cmp r4, 0 bne _080B8308 ldrb r0, [r7, 0x11] movs r1, 0x36 bl sub_80B1404 _080B8308: pop {r4-r7} pop {r0} bx r0 thumb_func_end ContestEffect_25 thumb_func_start ContestEffect_26 ContestEffect_26: @ 80B8310 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C movs r0, 0 mov r9, r0 movs r1, 0 str r1, [sp, 0x18] mov r0, sp movs r1, 0xFF movs r2, 0x5 bl memset movs r6, 0 movs r4, 0 add r2, sp, 0x10 mov r8, r2 add r3, sp, 0x8 mov r10, r3 ldr r5, _080B8384 adds r7, r5, 0 subs r7, 0x70 _080B8340: ldrb r0, [r5, 0x11] adds r0, r5 adds r1, r6, r5 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bcs _080B836E ldrb r1, [r7, 0xC] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080B836E lsls r0, r6, 24 lsrs r0, 24 bl sub_80AF59C lsls r0, 24 cmp r0, 0 bne _080B836E mov r1, sp adds r0, r1, r4 strb r6, [r0] adds r4, 0x1 _080B836E: adds r7, 0x1C adds r6, 0x1 cmp r6, 0x3 ble _080B8340 cmp r4, 0x1 bne _080B8388 movs r0, 0x3C mov r2, r8 strh r0, [r2] b _080B83B6 .align 2, 0 _080B8384: .4byte 0x020192d0 _080B8388: cmp r4, 0x2 bne _080B8396 movs r0, 0x1E mov r3, r8 strh r0, [r3] strh r0, [r3, 0x2] b _080B83B6 _080B8396: cmp r4, 0x3 bne _080B83A6 movs r0, 0x14 mov r7, r8 strh r0, [r7] strh r0, [r7, 0x2] strh r0, [r7, 0x4] b _080B83B6 _080B83A6: mov r1, r8 movs r2, 0 mov r0, r8 adds r0, 0x6 _080B83AE: strh r2, [r0] subs r0, 0x2 cmp r0, r1 bge _080B83AE _080B83B6: movs r6, 0 movs r7, 0 mov r4, r10 _080B83BC: ldr r0, _080B83F0 adds r5, r7, r0 ldrb r1, [r5, 0x15] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080B83FC lsls r0, r6, 24 lsrs r0, 24 bl sub_80B214C lsls r0, 24 cmp r0, 0 beq _080B83FC ldr r1, _080B83F4 ldrh r0, [r5, 0x8] lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x2] ldr r1, _080B83F8 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 1 b _080B83FE .align 2, 0 _080B83F0: .4byte 0x02019260 _080B83F4: .4byte gContestMoves _080B83F8: .4byte gComboStarterLookupTable _080B83FC: movs r0, 0 _080B83FE: strh r0, [r4] ldr r5, _080B8494 adds r0, r7, r5 ldrb r0, [r0, 0xD] lsls r0, 24 asrs r0, 24 movs r1, 0xA bl __divsi3 lsls r0, 24 asrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 1 ldrh r0, [r4] subs r0, r1 strh r0, [r4] adds r7, 0x1C adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _080B83BC mov r2, r8 movs r3, 0 ldrsh r0, [r2, r3] cmp r0, 0 beq _080B84CA movs r6, 0 mov r0, sp ldrb r0, [r0] cmp r0, 0xFF beq _080B84CA adds r5, 0x7D mov r4, sp _080B8442: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 lsls r1, r6, 1 add r1, r8 movs r7, 0 ldrsh r2, [r1, r7] ldrb r3, [r4] lsls r1, r3, 1 add r1, r10 movs r7, 0 ldrsh r1, [r1, r7] adds r2, r1 cmp r0, r2 bge _080B8498 adds r0, r3, 0 bl sub_80B90C0 lsls r0, 24 cmp r0, 0 beq _080B84A2 ldrb r0, [r4] bl sub_80B157C ldrb r0, [r4] movs r1, 0xA bl sub_80B13EC mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 b _080B849C .align 2, 0 _080B8494: .4byte 0x02019260 _080B8498: movs r0, 0x1 str r0, [sp, 0x18] _080B849C: ldr r1, [sp, 0x18] cmp r1, 0 beq _080B84B8 _080B84A2: movs r2, 0 str r2, [sp, 0x18] ldrb r0, [r4] movs r1, 0x3C bl sub_80B13EC mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _080B84B8: ldrb r0, [r4] adds r0, r5 movs r1, 0x1 strb r1, [r0] adds r4, 0x1 adds r6, 0x1 ldrb r0, [r4] cmp r0, 0xFF bne _080B8442 _080B84CA: ldr r4, _080B84F4 ldrb r0, [r4, 0x11] movs r1, 0xB bl sub_80B13EC mov r3, r9 cmp r3, 0 bne _080B84E2 ldrb r0, [r4, 0x11] movs r1, 0x36 bl sub_80B1404 _080B84E2: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B84F4: .4byte 0x020192d0 thumb_func_end ContestEffect_26 thumb_func_start ContestEffect_27 ContestEffect_27: @ 80B84F8 push {r4-r7,lr} mov r7, r8 push {r7} movs r0, 0 mov r8, r0 movs r6, 0 ldr r7, _080B8580 adds r5, r7, 0 subs r5, 0x63 _080B850A: ldrb r0, [r7, 0x11] adds r0, r7 adds r1, r6, r7 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _080B8556 movs r0, 0 ldrsb r0, [r5, r0] cmp r0, 0 ble _080B8556 lsls r0, r6, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80B90C0 lsls r0, 24 cmp r0, 0 beq _080B8556 movs r0, 0 strb r0, [r5] ldrb r1, [r5, 0x3] movs r2, 0x31 negs r2, r2 adds r0, r2, 0 ands r1, r0 movs r0, 0x20 orrs r1, r0 strb r1, [r5, 0x3] adds r0, r4, 0 movs r1, 0xD bl sub_80B13EC mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 _080B8556: adds r5, 0x1C adds r6, 0x1 cmp r6, 0x3 ble _080B850A ldr r4, _080B8580 ldrb r0, [r4, 0x11] movs r1, 0xC bl sub_80B13EC mov r0, r8 cmp r0, 0 bne _080B8576 ldrb r0, [r4, 0x11] movs r1, 0x39 bl sub_80B1404 _080B8576: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B8580: .4byte 0x020192d0 thumb_func_end ContestEffect_27 thumb_func_start ContestEffect_28 ContestEffect_28: @ 80B8584 push {r4-r7,lr} movs r7, 0 movs r5, 0 ldr r4, _080B85B0 movs r6, 0 _080B858E: ldrb r0, [r4, 0x11] adds r0, r4 adds r1, r5, r4 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _080B85CE adds r0, r4, 0 subs r0, 0x70 adds r0, r6, r0 ldrb r0, [r0, 0xD] lsls r0, 24 asrs r0, 24 cmp r0, 0 ble _080B85B4 movs r0, 0x28 b _080B85B6 .align 2, 0 _080B85B0: .4byte 0x020192d0 _080B85B4: movs r0, 0xA _080B85B6: strh r0, [r4, 0x4] strb r5, [r4, 0x8] movs r0, 0xFF strb r0, [r4, 0x9] bl sub_80B9120 lsls r0, 24 cmp r0, 0 beq _080B85CE adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _080B85CE: adds r6, 0x1C adds r5, 0x1 cmp r5, 0x3 ble _080B858E ldr r4, _080B85F4 ldrb r0, [r4, 0x11] movs r1, 0xE bl sub_80B13EC cmp r7, 0 bne _080B85EC ldrb r0, [r4, 0x11] movs r1, 0x39 bl sub_80B1404 _080B85EC: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B85F4: .4byte 0x020192d0 thumb_func_end ContestEffect_28 thumb_func_start ContestEffect_29 ContestEffect_29: @ 80B85F8 push {r4,lr} ldr r0, _080B863C ldr r4, _080B8640 ldrb r2, [r4, 0x11] adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 bne _080B8636 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r0, r4, 0 subs r0, 0x70 adds r1, r0 ldrh r0, [r1, 0x6] ldr r3, _080B8644 ldr r2, _080B8648 lsls r0, 3 adds r0, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x1] lsls r0, 1 ldrh r2, [r1, 0x2] adds r0, r2 strh r0, [r1, 0x2] ldrb r0, [r4, 0x11] movs r1, 0xF bl sub_80B13EC _080B8636: pop {r4} pop {r0} bx r0 .align 2, 0 _080B863C: .4byte 0x02038696 _080B8640: .4byte 0x020192d0 _080B8644: .4byte gContestEffects _080B8648: .4byte gContestMoves thumb_func_end ContestEffect_29 thumb_func_start ContestEffect_30 ContestEffect_30: @ 80B864C push {r4,lr} ldr r0, _080B8690 ldr r4, _080B8694 ldrb r2, [r4, 0x11] adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0x3 bne _080B868A lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r0, r4, 0 subs r0, 0x70 adds r1, r0 ldrh r0, [r1, 0x6] ldr r3, _080B8698 ldr r2, _080B869C lsls r0, 3 adds r0, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x1] lsls r0, 1 ldrh r2, [r1, 0x2] adds r0, r2 strh r0, [r1, 0x2] ldrb r0, [r4, 0x11] movs r1, 0x10 bl sub_80B13EC _080B868A: pop {r4} pop {r0} bx r0 .align 2, 0 _080B8690: .4byte 0x02038696 _080B8694: .4byte 0x020192d0 _080B8698: .4byte gContestEffects _080B869C: .4byte gContestMoves thumb_func_end ContestEffect_30 thumb_func_start ContestEffect_31 ContestEffect_31: @ 80B86A0 push {r4-r7,lr} movs r1, 0 movs r3, 0 ldr r4, _080B86EC ldrb r0, [r4, 0x11] adds r0, r4 ldrb r5, [r0] movs r2, 0 adds r6, r4, 0 subs r6, 0x70 _080B86B4: adds r0, r1, r4 ldrb r0, [r0] cmp r5, r0 bls _080B86C4 adds r0, r2, r6 movs r7, 0x2 ldrsh r0, [r0, r7] adds r3, r0 _080B86C4: adds r2, 0x1C adds r1, 0x1 cmp r1, 0x3 ble _080B86B4 cmp r3, 0 bge _080B86D2 movs r3, 0 _080B86D2: ldr r4, _080B86EC ldrb r2, [r4, 0x11] adds r0, r2, r4 ldrb r0, [r0] cmp r0, 0 beq _080B86E2 cmp r3, 0 bne _080B86F0 _080B86E2: adds r0, r2, 0 movs r1, 0x12 bl sub_80B13EC b _080B8710 .align 2, 0 _080B86EC: .4byte 0x020192d0 _080B86F0: lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r0, r4, 0 subs r0, 0x70 adds r1, r0 lsrs r0, r3, 31 adds r0, r3, r0 asrs r0, 1 ldrh r2, [r1, 0x2] adds r0, r2 strh r0, [r1, 0x2] ldrb r0, [r4, 0x11] movs r1, 0x11 bl sub_80B13EC _080B8710: ldr r4, _080B873C ldrb r1, [r4, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r5, r4, 0 subs r5, 0x70 adds r0, r5 movs r7, 0x2 ldrsh r0, [r0, r7] bl sub_80B9224 ldrb r2, [r4, 0x11] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r5 strh r0, [r1, 0x2] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B873C: .4byte 0x020192d0 thumb_func_end ContestEffect_31 thumb_func_start ContestEffect_32 ContestEffect_32: @ 80B8740 push {r4-r7,lr} movs r6, 0 ldr r0, _080B8794 ldrb r1, [r0, 0x11] adds r3, r1, r0 ldrb r1, [r3] adds r4, r0, 0 cmp r1, 0 beq _080B8788 movs r2, 0 adds r7, r4, 0 adds r0, r1, 0 subs r1, r0, 0x1 movs r3, 0 adds r5, r4, 0 subs r5, 0x70 _080B8760: adds r0, r2, r7 ldrb r0, [r0] cmp r1, r0 bne _080B876C adds r0, r3, r5 ldrh r6, [r0, 0x2] _080B876C: adds r3, 0x1C adds r2, 0x1 cmp r2, 0x3 ble _080B8760 adds r0, r4, 0 ldrb r2, [r0, 0x11] adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 beq _080B8788 lsls r0, r6, 16 asrs r3, r0, 16 cmp r3, 0 bgt _080B8798 _080B8788: ldrb r0, [r4, 0x11] movs r1, 0x14 bl sub_80B13EC b _080B87B2 .align 2, 0 _080B8794: .4byte 0x020192d0 _080B8798: lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r0, r4, 0 subs r0, 0x70 adds r1, r0 ldrh r0, [r1, 0x2] adds r0, r3, r0 strh r0, [r1, 0x2] ldrb r0, [r4, 0x11] movs r1, 0x13 bl sub_80B13EC _080B87B2: pop {r4-r7} pop {r0} bx r0 thumb_func_end ContestEffect_32 thumb_func_start ContestEffect_33 ContestEffect_33: @ 80B87B8 push {lr} ldr r0, _080B87D8 ldrb r2, [r0, 0x11] adds r1, r2, r0 ldrb r3, [r1] mov r12, r0 cmp r3, 0 bne _080B87DC lsls r0, r2, 3 subs r0, r2 lsls r0, 2 mov r1, r12 subs r1, 0x70 adds r0, r1 movs r1, 0xA b _080B87EE .align 2, 0 _080B87D8: .4byte 0x020192d0 _080B87DC: lsls r0, r2, 3 subs r0, r2 lsls r0, 2 mov r1, r12 subs r1, 0x70 adds r0, r1 lsls r1, r3, 2 adds r1, r3 lsls r1, 2 _080B87EE: strh r1, [r0, 0x2] cmp r3, 0 bne _080B8800 mov r1, r12 ldrb r0, [r1, 0x11] movs r1, 0x15 bl sub_80B13EC b _080B882A _080B8800: cmp r3, 0x1 bne _080B8810 mov r1, r12 ldrb r0, [r1, 0x11] movs r1, 0x16 bl sub_80B13EC b _080B882A _080B8810: cmp r3, 0x2 bne _080B8820 mov r1, r12 ldrb r0, [r1, 0x11] movs r1, 0x17 bl sub_80B13EC b _080B882A _080B8820: mov r1, r12 ldrb r0, [r1, 0x11] movs r1, 0x18 bl sub_80B13EC _080B882A: pop {r0} bx r0 thumb_func_end ContestEffect_33 thumb_func_start ContestEffect_34 ContestEffect_34: @ 80B8830 push {r4,lr} bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x2 bhi _080B885C movs r4, 0xA ldr r0, _080B8858 ldrb r0, [r0, 0x11] movs r1, 0x1A bl sub_80B13EC b _080B88B0 .align 2, 0 _080B8858: .4byte 0x020192d0 _080B885C: cmp r0, 0x5 bhi _080B8874 movs r4, 0x14 ldr r0, _080B8870 ldrb r0, [r0, 0x11] movs r1, 0x1B bl sub_80B13EC b _080B88B0 .align 2, 0 _080B8870: .4byte 0x020192d0 _080B8874: cmp r0, 0x7 bhi _080B888C movs r4, 0x28 ldr r0, _080B8888 ldrb r0, [r0, 0x11] movs r1, 0x1C bl sub_80B13EC b _080B88B0 .align 2, 0 _080B8888: .4byte 0x020192d0 _080B888C: cmp r1, 0x8 bhi _080B88A4 movs r4, 0x3C ldr r0, _080B88A0 ldrb r0, [r0, 0x11] movs r1, 0x1D bl sub_80B13EC b _080B88B0 .align 2, 0 _080B88A0: .4byte 0x020192d0 _080B88A4: movs r4, 0x50 ldr r0, _080B88C8 ldrb r0, [r0, 0x11] movs r1, 0x1E bl sub_80B13EC _080B88B0: ldr r0, _080B88C8 ldrb r2, [r0, 0x11] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 subs r0, 0x70 adds r1, r0 strh r4, [r1, 0x2] pop {r4} pop {r0} bx r0 .align 2, 0 _080B88C8: .4byte 0x020192d0 thumb_func_end ContestEffect_34 thumb_func_start ContestEffect_35 ContestEffect_35: @ 80B88CC push {r4-r7,lr} ldr r1, _080B8940 ldrb r0, [r1, 0x11] adds r0, r1 movs r2, 0 ldrsb r2, [r0, r2] subs r0, r2, 0x1 lsls r0, 24 lsrs r4, r0, 24 mov r12, r1 cmp r2, 0 beq _080B8994 ldrb r5, [r1] mov r6, r12 subs r6, 0x70 _080B88EA: movs r2, 0 lsls r0, r4, 24 asrs r1, r0, 24 adds r4, r0, 0 cmp r5, r1 beq _080B8910 ldr r3, _080B8940 _080B88F8: lsls r0, r2, 24 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r2, r0, 24 asrs r0, 24 cmp r0, 0x3 bgt _080B8910 adds r0, r3 ldrb r0, [r0] cmp r0, r1 bne _080B88F8 _080B8910: lsls r2, 24 asrs r1, r2, 24 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r3, r0, r6 ldrb r1, [r3, 0xB] movs r0, 0x80 ands r0, r1 adds r7, r2, 0 cmp r0, 0 bne _080B8932 ldrb r1, [r3, 0xC] movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _080B8944 _080B8932: movs r1, 0xFF lsls r1, 24 adds r0, r4, r1 lsrs r4, r0, 24 cmp r0, 0 blt _080B8994 b _080B88EA .align 2, 0 _080B8940: .4byte 0x020192d0 _080B8944: mov r2, r12 ldrb r1, [r2, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 mov r3, r12 subs r3, 0x70 adds r5, r0, r3 ldrh r0, [r5, 0x6] ldr r4, _080B899C lsls r0, 3 adds r6, r0, r4 ldrb r2, [r6, 0x1] lsls r2, 29 asrs r1, r7, 24 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x6] lsls r0, 3 adds r0, r4 ldrb r0, [r0, 0x1] lsls r0, 29 cmp r2, r0 bne _080B8994 ldr r1, _080B89A0 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x1] lsls r0, 1 ldrh r1, [r5, 0x2] adds r0, r1 strh r0, [r5, 0x2] mov r2, r12 ldrb r0, [r2, 0x11] movs r1, 0x1F bl sub_80B13EC _080B8994: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B899C: .4byte gContestMoves _080B89A0: .4byte gContestEffects thumb_func_end ContestEffect_35 thumb_func_start ContestEffect_36 ContestEffect_36: @ 80B89A4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _080B8A28 ldrb r2, [r0, 0x11] adds r1, r2, r0 ldrb r1, [r1] mov r8, r0 cmp r1, 0 beq _080B8A3C lsls r0, r2, 3 subs r0, r2 lsls r0, 2 mov r1, r8 subs r1, 0x70 adds r0, r1 ldrh r0, [r0, 0x6] mov r9, r0 movs r4, 0 mov r6, r8 ldr r0, _080B8A2C mov r12, r0 movs r7, 0 _080B89D4: ldrb r2, [r6, 0x11] adds r0, r2, r6 ldrb r0, [r0] subs r0, 0x1 adds r1, r4, r6 ldrb r1, [r1] cmp r0, r1 bne _080B8A34 mov r1, r9 lsls r0, r1, 3 mov r1, r12 adds r3, r0, r1 ldrb r1, [r3, 0x1] lsls r1, 29 mov r5, r8 subs r5, 0x70 adds r0, r7, r5 ldrh r0, [r0, 0x6] lsls r0, 3 add r0, r12 ldrb r0, [r0, 0x1] lsls r0, 29 cmp r1, r0 beq _080B8A34 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r5 ldr r2, _080B8A30 ldrb r0, [r3] lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] lsls r0, 1 ldrh r2, [r1, 0x2] adds r0, r2 strh r0, [r1, 0x2] ldrb r0, [r6, 0x11] movs r1, 0x20 bl sub_80B13EC b _080B8A3C .align 2, 0 _080B8A28: .4byte 0x020192d0 _080B8A2C: .4byte gContestMoves _080B8A30: .4byte gContestEffects _080B8A34: adds r7, 0x1C adds r4, 0x1 cmp r4, 0x3 ble _080B89D4 _080B8A3C: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end ContestEffect_36 thumb_func_start ContestEffect_37 ContestEffect_37: @ 80B8A48 push {r4-r7,lr} ldr r1, _080B8A94 ldrb r0, [r1, 0x11] adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080B8AB0 movs r5, 0 adds r4, r1, 0 adds r6, r4, 0 subs r6, 0x70 adds r7, r6, 0 _080B8A60: ldrb r2, [r4, 0x11] adds r0, r2, r4 ldrb r0, [r0] subs r0, 0x1 adds r1, r5, r4 ldrb r1, [r1] cmp r0, r1 bne _080B8AA8 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r2, r0, r7 movs r0, 0x2 ldrsh r1, [r2, r0] movs r3, 0x2 ldrsh r0, [r6, r3] cmp r1, r0 ble _080B8A98 adds r0, r1, 0 lsls r0, 1 strh r0, [r2, 0x2] ldrb r0, [r4, 0x11] movs r1, 0x21 bl sub_80B13EC b _080B8AA8 .align 2, 0 _080B8A94: .4byte 0x020192d0 _080B8A98: cmp r1, r0 bge _080B8AA8 movs r0, 0 strh r0, [r2, 0x2] ldrb r0, [r4, 0x11] movs r1, 0x22 bl sub_80B13EC _080B8AA8: adds r6, 0x1C adds r5, 0x1 cmp r5, 0x3 ble _080B8A60 _080B8AB0: pop {r4-r7} pop {r0} bx r0 thumb_func_end ContestEffect_37 thumb_func_start ContestEffect_38 ContestEffect_38: @ 80B8AB8 push {r4,r5,lr} ldr r4, _080B8AFC ldrb r2, [r4, 0x11] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r5, r4, 0 subs r5, 0x70 adds r1, r0, r5 ldrb r3, [r1, 0xD] movs r0, 0xD ldrsb r0, [r1, r0] cmp r0, 0x1D bgt _080B8B00 adds r0, r3, 0 adds r0, 0xA strb r0, [r1, 0xD] ldrb r1, [r4, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r5 ldrb r2, [r0, 0x10] movs r1, 0x31 negs r1, r1 ands r1, r2 movs r2, 0x10 orrs r1, r2 strb r1, [r0, 0x10] ldrb r0, [r4, 0x11] movs r1, 0x23 bl sub_80B13EC b _080B8B08 .align 2, 0 _080B8AFC: .4byte 0x020192d0 _080B8B00: adds r0, r2, 0 movs r1, 0x3A bl sub_80B13EC _080B8B08: pop {r4,r5} pop {r0} bx r0 thumb_func_end ContestEffect_38 thumb_func_start ContestEffect_39 ContestEffect_39: @ 80B8B10 push {r4,lr} ldr r3, _080B8B48 ldrb r1, [r3, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r4, r3, 0 subs r4, 0x70 adds r0, r4 ldrb r1, [r0, 0x11] movs r2, 0x20 orrs r1, r2 strb r1, [r0, 0x11] ldrb r1, [r3, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0xD] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _080B8B4C adds r0, r1, 0 movs r1, 0x24 bl sub_80B13EC b _080B8B54 .align 2, 0 _080B8B48: .4byte 0x020192d0 _080B8B4C: adds r0, r1, 0 movs r1, 0x3B bl sub_80B13EC _080B8B54: pop {r4} pop {r0} bx r0 thumb_func_end ContestEffect_39 thumb_func_start ContestEffect_40 ContestEffect_40: @ 80B8B5C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r1, _080B8BE4 ldrb r0, [r1, 0x1] cmp r0, 0x4 bne _080B8B6E b _080B8C76 _080B8B6E: movs r6, 0 adds r7, r1, 0 adds r7, 0xCC adds r3, r1, 0 adds r3, 0x5C _080B8B78: lsls r1, r6, 24 asrs r1, 24 mov r0, sp adds r2, r0, r1 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x19] strb r0, [r2] adds r1, 0x1 lsls r1, 24 lsrs r6, r1, 24 asrs r1, 24 cmp r1, 0x3 ble _080B8B78 ldrb r0, [r7, 0x11] mov r2, sp adds r1, r2, r0 movs r0, 0xFF strb r0, [r1] movs r6, 0 mov r12, r7 movs r4, 0x70 negs r4, r4 adds r4, r7 mov r8, r4 _080B8BAE: movs r5, 0 _080B8BB0: lsls r0, r5, 24 asrs r2, r0, 24 mov r0, r12 ldrb r0, [r0, 0x11] cmp r2, r0 beq _080B8BE8 lsls r0, r6, 24 asrs r3, r0, 24 mov r1, sp adds r4, r1, r2 ldrb r0, [r4] cmp r3, r0 bne _080B8BE8 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 add r1, r8 lsls r0, r3, 24 lsrs r0, 24 ldrb r1, [r1, 0x19] cmp r0, r1 bne _080B8BE8 adds r0, r3, 0x1 strb r0, [r4] b _080B8BF8 .align 2, 0 _080B8BE4: .4byte 0x02019204 _080B8BE8: lsls r0, r5, 24 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r5, r0, 24 asrs r0, 24 cmp r0, 0x3 ble _080B8BB0 _080B8BF8: cmp r5, 0x4 beq _080B8C0C lsls r0, r6, 24 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r6, r0, 24 asrs r0, 24 cmp r0, 0x3 ble _080B8BAE _080B8C0C: ldrb r0, [r7, 0x11] mov r4, sp adds r1, r4, r0 movs r0, 0 strb r0, [r1] ldrb r0, [r7, 0x11] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r3, r7, 0 subs r3, 0x70 adds r1, r3 ldrb r2, [r1, 0x10] movs r0, 0x3F ands r0, r2 movs r2, 0x40 orrs r0, r2 strb r0, [r1, 0x10] movs r6, 0 _080B8C32: lsls r1, r6, 24 asrs r1, 24 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r3 mov r4, sp adds r2, r4, r1 ldrb r2, [r2] strb r2, [r0, 0x19] adds r1, 0x1 lsls r1, 24 lsrs r6, r1, 24 asrs r1, 24 cmp r1, 0x3 ble _080B8C32 ldrb r0, [r7, 0x11] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r0, r7, 0 subs r0, 0x70 adds r1, r0 ldrb r2, [r1, 0x11] movs r0, 0x4 negs r0, r0 ands r0, r2 movs r2, 0x1 orrs r0, r2 strb r0, [r1, 0x11] ldrb r0, [r7, 0x11] movs r1, 0x25 bl sub_80B13EC _080B8C76: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end ContestEffect_40 thumb_func_start ContestEffect_41 ContestEffect_41: @ 80B8C84 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 ldr r1, _080B8D14 ldrb r0, [r1, 0x1] cmp r0, 0x4 bne _080B8C98 b _080B8DA6 _080B8C98: movs r6, 0 adds r7, r1, 0 adds r7, 0xCC adds r3, r1, 0 adds r3, 0x5C _080B8CA2: lsls r1, r6, 24 asrs r1, 24 mov r0, sp adds r2, r0, r1 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x19] strb r0, [r2] adds r1, 0x1 lsls r1, 24 lsrs r6, r1, 24 asrs r1, 24 cmp r1, 0x3 ble _080B8CA2 ldrb r0, [r7, 0x11] mov r2, sp adds r1, r2, r0 movs r0, 0xFF strb r0, [r1] movs r6, 0x3 mov r12, r7 movs r4, 0x70 negs r4, r4 adds r4, r7 mov r8, r4 movs r0, 0x1 negs r0, r0 mov r9, r0 _080B8CDE: movs r5, 0 _080B8CE0: lsls r0, r5, 24 asrs r2, r0, 24 mov r1, r12 ldrb r1, [r1, 0x11] cmp r2, r1 beq _080B8D18 lsls r0, r6, 24 asrs r3, r0, 24 mov r0, sp adds r4, r0, r2 ldrb r1, [r4] cmp r3, r1 bne _080B8D18 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 add r1, r8 lsls r0, r3, 24 lsrs r0, 24 ldrb r1, [r1, 0x19] cmp r0, r1 bne _080B8D18 subs r0, r3, 0x1 strb r0, [r4] b _080B8D28 .align 2, 0 _080B8D14: .4byte 0x02019204 _080B8D18: lsls r0, r5, 24 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r5, r0, 24 asrs r0, 24 cmp r0, 0x3 ble _080B8CE0 _080B8D28: cmp r5, 0x4 beq _080B8D3C lsls r0, r6, 24 movs r4, 0xFF lsls r4, 24 adds r0, r4 lsrs r6, r0, 24 asrs r0, 24 cmp r0, r9 bgt _080B8CDE _080B8D3C: ldrb r0, [r7, 0x11] mov r2, sp adds r1, r2, r0 movs r0, 0x3 strb r0, [r1] ldrb r0, [r7, 0x11] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r3, r7, 0 subs r3, 0x70 adds r1, r3 ldrb r2, [r1, 0x10] movs r0, 0x3F ands r0, r2 movs r2, 0x40 orrs r0, r2 strb r0, [r1, 0x10] movs r6, 0 _080B8D62: lsls r1, r6, 24 asrs r1, 24 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r3 mov r4, sp adds r2, r4, r1 ldrb r2, [r2] strb r2, [r0, 0x19] adds r1, 0x1 lsls r1, 24 lsrs r6, r1, 24 asrs r1, 24 cmp r1, 0x3 ble _080B8D62 ldrb r0, [r7, 0x11] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r0, r7, 0 subs r0, 0x70 adds r1, r0 ldrb r2, [r1, 0x11] movs r0, 0x4 negs r0, r0 ands r0, r2 movs r2, 0x2 orrs r0, r2 strb r0, [r1, 0x11] ldrb r0, [r7, 0x11] movs r1, 0x26 bl sub_80B13EC _080B8DA6: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end ContestEffect_41 thumb_func_start ContestEffect_42 ContestEffect_42: @ 80B8DB4 bx lr thumb_func_end ContestEffect_42 thumb_func_start ContestEffect_43 ContestEffect_43: @ 80B8DB8 push {r4-r7,lr} sub sp, 0x8 ldr r1, _080B8E30 ldrb r0, [r1, 0x1] cmp r0, 0x4 beq _080B8EAE movs r6, 0 add r3, sp, 0x4 adds r5, r1, 0 adds r5, 0x5C adds r4, r3, 0 _080B8DCE: lsls r1, r6, 24 asrs r1, 24 mov r0, sp adds r2, r0, r1 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r5 ldrb r0, [r0, 0x19] strb r0, [r2] adds r0, r4, r1 strb r6, [r0] adds r1, 0x1 lsls r1, 24 lsrs r6, r1, 24 asrs r1, 24 cmp r1, 0x3 ble _080B8DCE movs r6, 0 adds r7, r3, 0 _080B8DF6: bl Random lsls r0, 16 lsrs r0, 16 lsls r2, r6, 24 asrs r2, 24 movs r1, 0x4 subs r1, r2 bl __modsi3 lsls r0, 24 lsrs r4, r0, 24 movs r1, 0 _080B8E10: lsls r0, r1, 24 asrs r2, r0, 24 adds r3, r7, r2 ldrb r1, [r3] adds r5, r0, 0 cmp r1, 0xFF beq _080B8E3A cmp r4, 0 bne _080B8E34 mov r1, sp adds r0, r1, r2 strb r6, [r0] movs r0, 0xFF strb r0, [r3] b _080B8E48 .align 2, 0 _080B8E30: .4byte 0x02019204 _080B8E34: subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _080B8E3A: movs r3, 0x80 lsls r3, 17 adds r0, r5, r3 lsrs r1, r0, 24 asrs r0, 24 cmp r0, 0x3 ble _080B8E10 _080B8E48: lsls r0, r6, 24 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r6, r0, 24 asrs r0, 24 cmp r0, 0x3 ble _080B8DF6 movs r6, 0 ldr r4, _080B8EB8 adds r7, r4, 0 subs r7, 0x70 movs r3, 0x3F mov r12, r3 movs r5, 0x80 _080B8E66: lsls r2, r6, 24 asrs r2, 24 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r7 mov r3, sp adds r0, r3, r2 ldrb r0, [r0] strb r0, [r1, 0x19] ldrb r3, [r1, 0x10] mov r0, r12 ands r0, r3 orrs r0, r5 strb r0, [r1, 0x10] adds r2, 0x1 lsls r2, 24 lsrs r6, r2, 24 asrs r2, 24 cmp r2, 0x3 ble _080B8E66 ldrb r1, [r4, 0x11] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r4, 0 subs r1, 0x70 adds r0, r1 ldrb r1, [r0, 0x11] movs r2, 0x3 orrs r1, r2 strb r1, [r0, 0x11] ldrb r0, [r4, 0x11] movs r1, 0x27 bl sub_80B13EC _080B8EAE: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B8EB8: .4byte 0x020192d0 thumb_func_end ContestEffect_43 thumb_func_start ContestEffect_44 ContestEffect_44: @ 80B8EBC push {lr} ldr r3, _080B8EF0 ldr r1, _080B8EF4 ldrb r2, [r1, 0x11] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 subs r1, 0x70 adds r2, r0, r1 ldrh r0, [r2, 0x6] lsls r0, 3 adds r0, r3 ldrb r0, [r0, 0x1] lsls r0, 29 ldr r1, _080B8EF8 lsrs r0, 29 ldrh r1, [r1] cmp r0, r1 beq _080B8EEA ldrb r0, [r2, 0x11] movs r1, 0x10 orrs r0, r1 strb r0, [r2, 0x11] _080B8EEA: pop {r0} bx r0 .align 2, 0 _080B8EF0: .4byte gContestMoves _080B8EF4: .4byte 0x020192d0 _080B8EF8: .4byte 0x0203869c thumb_func_end ContestEffect_44 thumb_func_start ContestEffect_45 ContestEffect_45: @ 80B8EFC push {r4-r7,lr} movs r7, 0 movs r5, 0 ldr r4, _080B8F34 movs r6, 0 _080B8F06: ldrb r0, [r4, 0x11] adds r0, r4 adds r1, r5, r4 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _080B8F52 adds r0, r4, 0 subs r0, 0x70 adds r1, r6, r0 movs r2, 0x2 ldrsh r0, [r1, r2] cmp r0, 0 ble _080B8F38 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r4, 0x4] movs r1, 0x4 ldrsh r0, [r4, r1] bl sub_80B9268 b _080B8F3A .align 2, 0 _080B8F34: .4byte 0x020192d0 _080B8F38: movs r0, 0xA _080B8F3A: strh r0, [r4, 0x4] strb r5, [r4, 0x8] movs r0, 0xFF strb r0, [r4, 0x9] bl sub_80B9120 lsls r0, 24 cmp r0, 0 beq _080B8F52 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _080B8F52: adds r6, 0x1C adds r5, 0x1 cmp r5, 0x3 ble _080B8F06 cmp r7, 0 bne _080B8F68 ldr r0, _080B8F78 ldrb r0, [r0, 0x11] movs r1, 0x36 bl sub_80B1404 _080B8F68: ldr r0, _080B8F78 ldrb r0, [r0, 0x11] movs r1, 0x30 bl sub_80B13EC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B8F78: .4byte 0x020192d0 thumb_func_end ContestEffect_45 thumb_func_start ContestEffect_46 ContestEffect_46: @ 80B8F7C push {r4,lr} ldr r0, _080B8F98 movs r1, 0x13 ldrsb r1, [r0, r1] cmp r1, 0 bne _080B8F9C movs r4, 0xA adds r0, 0xCC ldrb r0, [r0, 0x11] movs r1, 0x1A bl sub_80B13EC b _080B8FDE .align 2, 0 _080B8F98: .4byte 0x02019204 _080B8F9C: cmp r1, 0x1 bne _080B8FAE movs r4, 0x14 adds r0, 0xCC ldrb r0, [r0, 0x11] movs r1, 0x1B bl sub_80B13EC b _080B8FDE _080B8FAE: cmp r1, 0x2 bne _080B8FC0 movs r4, 0x1E adds r0, 0xCC ldrb r0, [r0, 0x11] movs r1, 0x1C bl sub_80B13EC b _080B8FDE _080B8FC0: cmp r1, 0x3 bne _080B8FD2 movs r4, 0x32 adds r0, 0xCC ldrb r0, [r0, 0x11] movs r1, 0x1D bl sub_80B13EC b _080B8FDE _080B8FD2: movs r4, 0x3C adds r0, 0xCC ldrb r0, [r0, 0x11] movs r1, 0x1E bl sub_80B13EC _080B8FDE: ldr r0, _080B8FF4 ldrb r2, [r0, 0x11] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 subs r0, 0x70 adds r1, r0 strh r4, [r1, 0x2] pop {r4} pop {r0} bx r0 .align 2, 0 _080B8FF4: .4byte 0x020192d0 thumb_func_end ContestEffect_46 thumb_func_start ContestEffect_47 ContestEffect_47: @ 80B8FF8 push {lr} ldr r3, _080B9034 ldrb r2, [r3, 0x1] movs r0, 0x1 ands r0, r2 cmp r0, 0 bne _080B902E movs r0, 0x1 orrs r2, r0 movs r0, 0x58 negs r0, r0 adds r0, r3 mov r12, r0 ldrb r1, [r0, 0x11] movs r0, 0x7 ands r0, r1 lsls r0, 1 movs r1, 0xF negs r1, r1 ands r2, r1 orrs r2, r0 strb r2, [r3, 0x1] mov r1, r12 ldrb r0, [r1, 0x11] movs r1, 0x3D bl sub_80B13EC _080B902E: pop {r0} bx r0 .align 2, 0 _080B9034: .4byte 0x02019328 thumb_func_end ContestEffect_47 thumb_func_start sub_80B9038 sub_80B9038: @ 80B9038 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r7, 0 movs r5, 0 ldr r4, _080B907C ldr r0, _080B9080 mov r9, r0 movs r6, 0 _080B9052: ldrb r0, [r4, 0x11] adds r0, r4 adds r1, r5, r4 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _080B909A adds r0, r4, 0 subs r0, 0x70 adds r0, r6, r0 ldrh r0, [r0, 0x6] lsls r0, 3 add r0, r9 ldrb r0, [r0, 0x1] lsls r0, 29 lsrs r0, 29 cmp r8, r0 bne _080B9084 movs r0, 0x28 b _080B9086 .align 2, 0 _080B907C: .4byte 0x020192d0 _080B9080: .4byte gContestMoves _080B9084: movs r0, 0xA _080B9086: strh r0, [r4, 0x4] strb r5, [r4, 0x8] movs r0, 0xFF strb r0, [r4, 0x9] bl sub_80B9120 lsls r0, 24 cmp r0, 0 beq _080B909A adds r7, 0x1 _080B909A: adds r6, 0x1C adds r5, 0x1 cmp r5, 0x3 ble _080B9052 cmp r7, 0 bne _080B90B0 ldr r0, _080B90BC ldrb r0, [r0, 0x11] movs r1, 0x36 bl sub_80B1404 _080B90B0: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B90BC: .4byte 0x020192d0 thumb_func_end sub_80B9038 thumb_func_start sub_80B90C0 sub_80B90C0: @ 80B90C0 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r2, _080B90EC adds r0, r2, 0 adds r0, 0xD adds r0, r3, r0 movs r1, 0x1 strb r1, [r0] lsls r0, r3, 3 subs r0, r3 lsls r0, 2 subs r2, 0x70 adds r2, r0, r2 ldrb r1, [r2, 0x10] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080B90F0 adds r0, r3, 0 movs r1, 0x2D b _080B9116 .align 2, 0 _080B90EC: .4byte 0x020192d0 _080B90F0: ldrb r0, [r2, 0x12] cmp r0, 0 bne _080B910E ldrb r1, [r2, 0xB] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080B911A ldrb r1, [r2, 0xC] movs r0, 0x6 ands r0, r1 cmp r0, 0 bne _080B911A movs r0, 0x1 b _080B911C _080B910E: subs r0, 0x1 strb r0, [r2, 0x12] adds r0, r3, 0 movs r1, 0x2C _080B9116: bl sub_80B13EC _080B911A: movs r0, 0 _080B911C: pop {r1} bx r1 thumb_func_end sub_80B90C0 thumb_func_start sub_80B9120 sub_80B9120: @ 80B9120 push {r4-r7,lr} sub sp, 0xC mov r0, sp movs r1, 0 movs r2, 0x8 bl memset movs r7, 0 ldr r1, _080B918C ldrb r0, [r1, 0x8] cmp r0, 0xFF beq _080B91D8 adds r5, r1, 0 _080B913A: adds r0, r5, 0 adds r0, 0x8 adds r0, r7, r0 ldrb r4, [r0] adds r6, r4, 0 adds r0, r4, 0 str r1, [sp, 0x8] bl sub_80B90C0 lsls r0, 24 ldr r1, [sp, 0x8] cmp r0, 0 beq _080B91C8 ldrh r0, [r1, 0x4] strh r0, [r1, 0x6] lsls r0, r4, 3 subs r0, r4 lsls r0, 2 subs r1, 0x70 adds r2, r0, r1 ldrb r1, [r2, 0x10] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080B9174 movs r1, 0x6 ldrsh r0, [r5, r1] lsls r0, 1 strh r0, [r5, 0x6] _080B9174: ldrb r0, [r2, 0x10] movs r3, 0x1 ands r3, r0 cmp r3, 0 beq _080B9190 movs r0, 0xA strh r0, [r5, 0x6] adds r0, r4, 0 movs r1, 0x2F bl sub_80B13EC b _080B91C8 .align 2, 0 _080B918C: .4byte 0x020192d0 _080B9190: ldrb r1, [r2, 0xF] ldrh r0, [r5, 0x6] subs r0, r1 adds r1, r0, 0 strh r0, [r5, 0x6] lsls r0, 16 cmp r0, 0 bgt _080B91AC strh r3, [r5, 0x6] adds r0, r4, 0 movs r1, 0x2E bl sub_80B13EC b _080B91C8 _080B91AC: lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_80B9200 ldrb r1, [r5, 0x6] adds r0, r6, 0 bl sub_80B141C lsls r0, r6, 1 mov r2, sp adds r1, r2, r0 ldrh r0, [r5, 0x6] strh r0, [r1] _080B91C8: adds r7, 0x1 ldr r1, _080B91E8 adds r0, r1, 0 adds r0, 0x8 adds r0, r7, r0 ldrb r0, [r0] cmp r0, 0xFF bne _080B913A _080B91D8: movs r7, 0 mov r1, sp _080B91DC: movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _080B91EC movs r0, 0x1 b _080B91F6 .align 2, 0 _080B91E8: .4byte 0x020192d0 _080B91EC: adds r1, 0x2 adds r7, 0x1 cmp r7, 0x3 ble _080B91DC movs r0, 0 _080B91F6: add sp, 0xC pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80B9120 thumb_func_start sub_80B9200 sub_80B9200: @ 80B9200 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, r0, 3 subs r2, r0 lsls r2, 2 ldr r0, _080B9220 adds r2, r0 ldrh r0, [r2, 0x2] subs r0, r1 strh r0, [r2, 0x2] ldrb r0, [r2, 0xE] adds r1, r0 strb r1, [r2, 0xE] bx lr .align 2, 0 _080B9220: .4byte 0x02019260 thumb_func_end sub_80B9200 thumb_func_start sub_80B9224 sub_80B9224: @ 80B9224 push {r4,r5,lr} lsls r0, 16 lsrs r5, r0, 16 asrs r4, r0, 16 adds r0, r4, 0 cmp r4, 0 bge _080B9234 negs r0, r4 _080B9234: movs r1, 0xA bl __modsi3 lsls r0, 16 lsrs r0, 16 cmp r4, 0 bge _080B9252 lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 beq _080B925C adds r0, r4, 0 subs r0, 0xA adds r0, r1, r0 b _080B9258 _080B9252: lsls r0, 16 asrs r0, 16 subs r0, r4, r0 _080B9258: lsls r0, 16 lsrs r5, r0, 16 _080B925C: lsls r0, r5, 16 asrs r0, 16 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80B9224 thumb_func_start sub_80B9268 sub_80B9268: @ 80B9268 push {r4,r5,lr} lsls r0, 16 lsrs r5, r0, 16 asrs r4, r0, 16 adds r0, r4, 0 cmp r4, 0 bge _080B9278 negs r0, r4 _080B9278: movs r1, 0xA bl __modsi3 lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 beq _080B9290 adds r0, r4, 0 adds r0, 0xA subs r0, r1 lsls r0, 16 lsrs r5, r0, 16 _080B9290: lsls r0, r5, 16 asrs r0, 16 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80B9268 thumb_func_start sub_80B929C sub_80B929C: @ 80B929C push {lr} ldr r0, _080B92A8 bl sub_8083A84 pop {r0} bx r0 .align 2, 0 _080B92A8: .4byte sub_80B9484 thumb_func_end sub_80B929C thumb_func_start sub_80B92AC sub_80B92AC: @ 80B92AC push {r4-r6,lr} bl sub_80BC300 bl sub_80C045C ldr r6, _080B9364 ldr r0, _080B9368 ldr r1, [r0] movs r2, 0xC8 lsls r2, 4 adds r0, r6, 0 bl memcpy movs r1, 0xC8 lsls r1, 4 adds r0, r6, r1 ldr r1, _080B936C ldr r1, [r1] movs r2, 0xE1 lsls r2, 2 bl memcpy ldr r2, _080B9370 adds r0, r6, r2 ldr r1, _080B9374 ldr r1, [r1] movs r2, 0x40 bl memcpy ldr r1, _080B9378 adds r0, r6, r1 ldr r1, _080B937C ldr r1, [r1] movs r2, 0x40 bl memcpy ldr r2, _080B9380 adds r0, r6, r2 ldr r1, _080B9384 ldr r1, [r1] movs r2, 0x28 bl memcpy ldr r5, _080B9388 ldr r4, _080B938C ldr r0, _080B9390 adds r1, r4, r0 adds r0, r5, 0 movs r2, 0x38 bl memcpy ldr r2, _080B9394 adds r1, r4, r2 adds r0, r5, 0 adds r0, 0x38 movs r2, 0x38 bl memcpy ldr r0, _080B9398 adds r4, r0 adds r0, r4, 0 adds r1, r5, 0 bl sub_8041324 ldr r1, _080B939C adds r0, r6, r1 ldr r1, _080B93A0 ldr r1, [r1] movs r2, 0x78 bl memcpy ldr r2, _080B93A4 adds r0, r6, r2 ldr r1, _080B93A8 ldr r1, [r1] movs r2, 0xA4 bl memcpy bl GetMultiplayerId lsls r0, 24 cmp r0, 0 bne _080B935C bl sub_8126338 ldr r2, _080B93AC adds r1, r6, r2 strh r0, [r1] _080B935C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B9364: .4byte 0x02018000 _080B9368: .4byte gUnknown_083D026C _080B936C: .4byte gUnknown_083D0270 _080B9370: .4byte 0x00001004 _080B9374: .4byte gUnknown_083D0274 _080B9378: .4byte 0x00001044 _080B937C: .4byte gUnknown_083D0278 _080B9380: .4byte 0x00001084 _080B9384: .4byte gUnknown_083D027C _080B9388: .4byte 0x02038738 _080B938C: .4byte 0x02025734 _080B9390: .4byte 0x0000303c _080B9394: .4byte 0x00003074 _080B9398: .4byte 0x00002f9c _080B939C: .4byte 0x000010ac _080B93A0: .4byte gUnknown_083D0280 _080B93A4: .4byte 0x00001124 _080B93A8: .4byte gUnknown_083D0284 _080B93AC: .4byte 0x000011c8 thumb_func_end sub_80B92AC thumb_func_start sub_80B93B0 sub_80B93B0: @ 80B93B0 push {r4-r6,lr} mov r6, r8 push {r6} adds r4, r0, 0 ldr r5, _080B9430 ldr r6, _080B9434 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 bl sub_80BD674 movs r0, 0xC8 lsls r0, 4 adds r0, r5 mov r8, r0 adds r1, r6, 0 adds r2, r4, 0 bl sub_80BFD44 ldr r1, _080B9438 adds r0, r5, r1 adds r1, r6, 0 adds r2, r4, 0 bl sub_80C0514 ldr r1, _080B943C adds r0, r5, r1 adds r1, r6, 0 adds r2, r4, 0 bl sub_80B9B1C ldr r1, _080B9440 adds r0, r5, r1 adds r1, r6, 0 adds r2, r4, 0 bl sub_80FA4E4 ldr r1, _080B9444 adds r0, r5, r1 adds r1, r6, 0 adds r2, r4, 0 mov r3, r8 bl sub_80B9C6C ldr r1, _080B9448 adds r0, r5, r1 adds r1, r6, 0 adds r2, r4, 0 bl sub_80B9B70 ldr r0, _080B944C adds r5, r0 adds r0, r5, 0 adds r1, r4, 0 bl sub_80B9F3C pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B9430: .4byte 0x02008000 _080B9434: .4byte 0x00001230 _080B9438: .4byte 0x00001004 _080B943C: .4byte 0x00001044 _080B9440: .4byte 0x00001084 _080B9444: .4byte 0x000010ac _080B9448: .4byte 0x00001124 _080B944C: .4byte 0x000011c8 thumb_func_end sub_80B93B0 thumb_func_start sub_80B9450 sub_80B9450: @ 80B9450 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080B9480 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x32 bne _080B9478 movs r0, 0xE2 bl audio_play movs r0, 0 strh r0, [r4, 0x8] _080B9478: pop {r4} pop {r0} bx r0 .align 2, 0 _080B9480: .4byte 0x03004b20 thumb_func_end sub_80B9450 thumb_func_start sub_80B9484 sub_80B9484: @ 80B9484 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080B94A8 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x5 bls _080B949E b _080B95E6 _080B949E: lsls r0, 2 ldr r1, _080B94AC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080B94A8: .4byte 0x03004b28 _080B94AC: .4byte _080B94B0 .align 2, 0 _080B94B0: .4byte _080B94C8 .4byte _080B951C .4byte _080B9550 .4byte _080B9570 .4byte _080B95AC .4byte _080B95C0 _080B94C8: ldr r0, _080B950C ldrb r0, [r0] bl sub_8007270 movs r0, 0x80 lsls r0, 7 movs r1, 0x1 bl VarSet ldr r1, _080B9510 movs r0, 0 strb r0, [r1] bl sub_80B92AC bl sub_80C71D8 movs r0, 0x1 strh r0, [r4] ldr r0, _080B9514 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x14] ldr r0, _080B9518 movs r1, 0x51 bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1E] b _080B95E6 .align 2, 0 _080B950C: .4byte 0x0202e8ce _080B9510: .4byte 0x03000718 _080B9514: .4byte sub_80B95F0 _080B9518: .4byte sub_80B9450 _080B951C: ldr r2, _080B9548 movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x4] cmp r0, 0 bne _080B95E6 movs r0, 0x2 strh r0, [r4] ldr r0, _080B954C bl FlagSet bl sub_80C7240 ldrb r0, [r4, 0x1E] bl DestroyTask b _080B95E6 .align 2, 0 _080B9548: .4byte 0x03004b20 _080B954C: .4byte 0x00000834 _080B9550: ldr r0, _080B956C movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x14] movs r0, 0x3 strh r0, [r4] movs r0, 0xE0 bl audio_play b _080B95E6 .align 2, 0 _080B956C: .4byte sub_80BA00C _080B9570: ldr r2, _080B95A4 movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r5, [r0, 0x4] cmp r5, 0 bne _080B95E6 movs r0, 0x4 strh r0, [r4] bl sub_8083664 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x14] bl sub_80720B0 ldr r0, _080B95A8 movs r1, 0x2 movs r2, 0xF bl Print strh r5, [r4, 0x10] b _080B95E6 .align 2, 0 _080B95A4: .4byte 0x03004b20 _080B95A8: .4byte gUnknown_0842C8AC _080B95AC: ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C ble _080B95E6 movs r0, 0x5 strh r0, [r4] b _080B95E6 _080B95C0: ldr r2, _080B95EC movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x4] cmp r0, 0 bne _080B95E6 bl sub_8055588 bl sub_8071EF4 adds r0, r5, 0 bl DestroyTask bl script_env_2_enable_and_set_ctx_running _080B95E6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B95EC: .4byte 0x03004b20 thumb_func_end sub_80B9484 thumb_func_start sub_80B95F0 sub_80B95F0: @ 80B95F0 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r7, _080B961C adds r5, r0, r7 movs r0, 0x8 ldrsh r1, [r5, r0] cmp r1, 0x64 beq _080B9678 cmp r1, 0x64 bgt _080B962E cmp r1, 0x1 bne _080B9612 b _080B9734 _080B9612: cmp r1, 0x1 bgt _080B9620 cmp r1, 0 beq _080B9650 b _080B97D6 .align 2, 0 _080B961C: .4byte 0x03004b20 _080B9620: cmp r1, 0x2 bne _080B9626 b _080B9760 _080B9626: cmp r1, 0x5 bne _080B962C b _080B97C0 _080B962C: b _080B97D6 _080B962E: cmp r1, 0xC9 beq _080B96D0 cmp r1, 0xC9 bgt _080B963C cmp r1, 0x65 beq _080B9690 b _080B97D6 _080B963C: ldr r0, _080B964C cmp r1, r0 beq _080B9706 adds r0, 0x63 cmp r1, r0 beq _080B971C b _080B97D6 .align 2, 0 _080B964C: .4byte 0x0000012d _080B9650: bl sub_80B9A78 bl sub_8071FFC ldr r0, _080B9674 movs r1, 0x2 movs r2, 0xF bl Print movs r0, 0xE1 lsls r0, 3 strh r0, [r5, 0x18] movs r0, 0xC8 lsls r0, 1 strh r0, [r5, 0x8] bl ClearLinkCallback_2 b _080B97D6 .align 2, 0 _080B9674: .4byte gUnknown_0842C89A _080B9678: ldrh r0, [r5, 0x20] adds r0, 0x1 strh r0, [r5, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 bgt _080B9688 b _080B97D6 _080B9688: movs r0, 0 strh r0, [r5, 0x20] movs r0, 0x65 b _080B97D4 _080B9690: bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r4, r0, 24 bl IsLinkMaster lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080B96C2 bl sub_800820C lsls r0, 24 lsrs r0, 24 cmp r4, r0 beq _080B96B2 b _080B97D6 _080B96B2: movs r0, 0x15 bl audio_play movs r1, 0 movs r0, 0xC9 strh r0, [r5, 0x8] strh r1, [r5, 0x20] b _080B97D6 _080B96C2: movs r0, 0x16 bl audio_play ldr r0, _080B96CC b _080B97D4 .align 2, 0 _080B96CC: .4byte 0x0000012d _080B96D0: bl sub_800820C adds r4, r0, 0 bl GetLinkPlayerCount_2 lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080B97D6 ldrh r4, [r5, 0x20] adds r4, 0x1 strh r4, [r5, 0x20] lsls r4, 16 asrs r4, 16 bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 subs r1, r0 lsls r1, 1 cmp r4, r1 ble _080B97D6 bl sub_8007F4C movs r0, 0x1 b _080B97D4 _080B9706: bl sub_800820C adds r4, r0, 0 bl GetLinkPlayerCount_2 lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080B97D6 movs r0, 0x1 b _080B97D4 _080B971C: ldrh r0, [r5, 0x20] adds r0, 0x1 strh r0, [r5, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080B97D6 movs r0, 0x1 strh r0, [r5, 0x8] movs r0, 0 strh r0, [r5, 0x20] b _080B97D6 _080B9734: ldr r0, _080B9758 ldrb r0, [r0] cmp r0, 0 beq _080B97D6 ldr r4, _080B975C bl sub_80B9A58 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN movs r0, 0x5 b _080B97D4 .align 2, 0 _080B9758: .4byte 0x03002fa4 _080B975C: .4byte 0x020231cc _080B9760: bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r0, 24 movs r1, 0 strh r0, [r5, 0x14] strh r1, [r5, 0x8] bl sub_80B9A58 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] ldr r0, _080B97B0 str r0, [r5] ldr r4, _080B97B4 adds r1, r5, 0 adds r1, 0xC adds r0, r4, 0 bl sub_80B9A50 ldr r0, _080B97B8 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x1C] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r0, r1, r7 strh r6, [r0, 0x8] ldr r0, _080B97BC adds r4, r0 adds r1, r7, r1 adds r1, 0x12 adds r0, r4, 0 bl sub_80B9A50 b _080B97D6 .align 2, 0 _080B97B0: .4byte sub_80B97DC _080B97B4: .4byte 0x02018000 _080B97B8: .4byte sub_80B9890 _080B97BC: .4byte 0xffff0000 _080B97C0: ldrh r0, [r5, 0x1C] adds r0, 0x1 strh r0, [r5, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C ble _080B97D6 movs r0, 0 strh r0, [r5, 0x1C] movs r0, 0x2 _080B97D4: strh r0, [r5, 0x8] _080B97D6: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80B95F0 thumb_func_start sub_80B97DC sub_80B97DC: @ 80B97DC push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080B9800 adds r4, r1, r0 movs r2, 0x8 ldrsh r1, [r4, r2] adds r2, r0, 0 cmp r1, 0x4 bhi _080B9884 lsls r0, r1, 2 ldr r1, _080B9804 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080B9800: .4byte 0x03004b20 _080B9804: .4byte _080B9808 .align 2, 0 _080B9808: .4byte _080B981C .4byte _080B9840 .4byte _080B9884 .4byte _080B9852 .4byte _080B986E _080B981C: adds r0, r4, 0 adds r0, 0xC bl sub_80B9A44 adds r1, r0, 0 movs r0, 0x10 ldrsh r2, [r4, r0] movs r0, 0xC8 muls r0, r2 adds r1, r0 ldr r0, _080B983C movs r2, 0xC8 bl memcpy b _080B9860 .align 2, 0 _080B983C: .4byte 0x03002a70 _080B9840: bl GetMultiplayerId lsls r0, 24 cmp r0, 0 bne _080B9860 movs r0, 0x1 bl sub_8007E9C b _080B9860 _080B9852: ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] lsls r0, 16 lsrs r0, 16 cmp r0, 0x18 bne _080B9868 _080B9860: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080B9884 _080B9868: movs r0, 0 strh r0, [r4, 0x8] b _080B9884 _080B986E: movs r1, 0x1C ldrsh r0, [r4, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0x4] cmp r0, 0 bne _080B9884 ldr r0, _080B988C str r0, [r4] _080B9884: pop {r4} pop {r0} bx r0 .align 2, 0 _080B988C: .4byte sub_80B9A1C thumb_func_end sub_80B97DC thumb_func_start sub_80B9890 sub_80B9890: @ 80B9890 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 str r0, [sp] lsls r0, 2 ldr r1, [sp] adds r0, r1 lsls r0, 3 ldr r1, _080B98D0 adds r0, r1 mov r10, r0 bl GetBlockRecievedStatus lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] bl sub_8008198 lsls r0, 24 lsrs r0, 24 ldr r3, [sp, 0x4] cmp r3, r0 bne _080B998A movs r0, 0 b _080B9966 .align 2, 0 _080B98D0: .4byte 0x03004b20 _080B98D4: ldr r1, [sp, 0x4] mov r2, r9 asrs r1, r2 movs r0, 0x1 ands r1, r0 movs r3, 0x1 add r3, r9 mov r8, r3 cmp r1, 0 beq _080B9960 mov r0, r10 adds r0, 0x12 bl sub_80B9A44 mov r1, r8 lsls r4, r1, 1 mov r5, r10 adds r5, 0x8 adds r4, r5, r4 movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0xC8 muls r1, r3 adds r0, r1 ldr r7, _080B9930 mov r1, r9 muls r1, r7 adds r6, r0, r1 mov r0, r9 str r3, [sp, 0xC] bl sub_80B9A68 adds r1, r0, 0 movs r0, 0 ldrsh r2, [r4, r0] adds r0, r2, 0x1 ldr r3, [sp, 0xC] muls r0, r3 cmp r0, r7 bls _080B9934 muls r2, r3 subs r2, r7, r2 adds r0, r6, 0 bl memcpy b _080B993C .align 2, 0 _080B9930: .4byte 0x00001230 _080B9934: adds r0, r6, 0 movs r2, 0xC8 bl memcpy _080B993C: mov r0, r9 bl ResetBlockReceivedFlag mov r2, r8 lsls r1, r2, 1 adds r1, r5, r1 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0x18 bne _080B9960 ldr r0, [sp, 0x8] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x8] _080B9960: mov r3, r8 lsls r0, r3, 24 lsrs r0, 24 _080B9966: mov r9, r0 bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r9, r0 bcc _080B98D4 ldr r2, _080B99B0 mov r0, r10 movs r3, 0x8 ldrsh r1, [r0, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] _080B998A: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 ldr r1, [sp, 0x8] cmp r1, r0 bne _080B999E ldr r0, [sp] bl DestroyTask _080B999E: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B99B0: .4byte 0x03004b20 thumb_func_end sub_80B9890 thumb_func_start sub_80B99B4 sub_80B99B4: @ 80B99B4 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 ldr r2, _080B99E4 adds r0, r2 movs r4, 0x1C ldrsh r1, [r0, r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x4] cmp r0, 0 bne _080B99DC adds r0, r3, 0 bl DestroyTask _080B99DC: pop {r4} pop {r0} bx r0 .align 2, 0 _080B99E4: .4byte 0x03004b20 thumb_func_end sub_80B99B4 thumb_func_start sub_80B99E8 sub_80B99E8: @ 80B99E8 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080B9A10 adds r1, r0 ldr r0, _080B9A14 str r0, [r1] ldr r0, _080B9A18 ldrb r0, [r0] cmp r0, 0x1 bne _080B9A0C movs r2, 0x12 ldrsh r0, [r1, r2] bl sub_80B93B0 _080B9A0C: pop {r0} bx r0 .align 2, 0 _080B9A10: .4byte 0x03004b20 _080B9A14: .4byte sub_80B99B4 _080B9A18: .4byte 0x03000718 thumb_func_end sub_80B99E8 thumb_func_start sub_80B9A1C sub_80B9A1C: @ 80B9A1C lsls r0, 24 lsrs r0, 24 ldr r2, _080B9A38 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080B9A3C str r0, [r1] ldr r1, _080B9A40 movs r0, 0x1 strb r0, [r1] bx lr .align 2, 0 _080B9A38: .4byte 0x03004b20 _080B9A3C: .4byte sub_80B99E8 _080B9A40: .4byte 0x03000718 thumb_func_end sub_80B9A1C thumb_func_start sub_80B9A44 sub_80B9A44: @ 80B9A44 adds r1, r0, 0 ldrh r0, [r1] ldrh r1, [r1, 0x2] lsls r1, 16 orrs r0, r1 bx lr thumb_func_end sub_80B9A44 thumb_func_start sub_80B9A50 sub_80B9A50: @ 80B9A50 strh r0, [r1] lsrs r0, 16 strh r0, [r1, 0x2] bx lr thumb_func_end sub_80B9A50 thumb_func_start sub_80B9A58 sub_80B9A58: @ 80B9A58 push {lr} bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80B9A58 thumb_func_start sub_80B9A68 sub_80B9A68: @ 80B9A68 lsls r0, 24 lsrs r0, 16 ldr r1, _080B9A74 adds r0, r1 bx lr .align 2, 0 _080B9A74: .4byte 0x03002b80 thumb_func_end sub_80B9A68 thumb_func_start sub_80B9A78 sub_80B9A78: @ 80B9A78 ldr r1, _080B9A80 ldr r0, _080B9A84 str r0, [r1] bx lr .align 2, 0 _080B9A80: .4byte 0x03005d2c _080B9A84: .4byte 0x00001230 thumb_func_end sub_80B9A78 thumb_func_start sub_80B9A88 sub_80B9A88: @ 80B9A88 push {r4,lr} adds r4, r0, 0 bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _080B9AC0 cmp r0, 0x3 bhi _080B9AA2 cmp r0, 0x2 beq _080B9AA8 b _080B9B10 _080B9AA2: cmp r0, 0x4 beq _080B9AEC b _080B9B10 _080B9AA8: movs r2, 0 ldr r3, _080B9ABC _080B9AAC: adds r0, r4, r2 adds r1, r2, r3 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x1 bls _080B9AAC b _080B9B10 .align 2, 0 _080B9ABC: .4byte gUnknown_083D0288 _080B9AC0: movs r0, 0 bl GetLinkPlayerTrainerId adds r3, r0, 0 movs r0, 0x1 ands r3, r0 movs r2, 0 ldr r1, _080B9AE8 lsls r0, r3, 1 adds r0, r3 adds r3, r0, r1 _080B9AD6: adds r1, r4, r2 ldrb r0, [r3] strb r0, [r1] adds r3, 0x1 adds r2, 0x1 cmp r2, 0x2 bls _080B9AD6 b _080B9B10 .align 2, 0 _080B9AE8: .4byte gUnknown_083D028A _080B9AEC: movs r0, 0 bl GetLinkPlayerTrainerId movs r1, 0x9 bl __umodsi3 adds r3, r0, 0 movs r2, 0 ldr r1, _080B9B18 lsls r0, r3, 2 adds r3, r0, r1 _080B9B02: adds r1, r4, r2 ldrb r0, [r3] strb r0, [r1] adds r3, 0x1 adds r2, 0x1 cmp r2, 0x3 bls _080B9B02 _080B9B10: pop {r4} pop {r0} bx r0 .align 2, 0 _080B9B18: .4byte gUnknown_083D0290 thumb_func_end sub_80B9A88 thumb_func_start sub_80B9B1C sub_80B9B1C: @ 80B9B1C push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 adds r5, r0, 0 mov r8, r1 lsls r4, r2, 24 lsrs r4, 24 mov r0, sp bl sub_80B9A88 mov r0, r8 muls r0, r4 adds r0, r5, r0 ldr r1, _080B9B6C ldr r6, [r1] adds r1, r6, 0 movs r2, 0x40 bl memcpy mov r1, sp adds r0, r1, r4 ldrb r0, [r0] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r5, r0 adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x40 bl memcpy bl sub_80F7F30 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B9B6C: .4byte gUnknown_083D0278 thumb_func_end sub_80B9B1C thumb_func_start sub_80B9B70 sub_80B9B70: @ 80B9B70 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} adds r6, r0, 0 mov r9, r1 lsls r4, r2, 24 lsrs r4, 24 ldr r0, _080B9BB8 mov r8, r0 bl sub_80B9A88 mov r5, r9 muls r5, r4 adds r5, r6, r5 add r4, r8 ldrb r0, [r4] mov r1, r9 muls r1, r0 adds r0, r1, 0 adds r6, r0 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0xA4 bl memcpy adds r0, r5, 0 bl sub_8134AC0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080B9BB8: .4byte 0x0300071c thumb_func_end sub_80B9B70 thumb_func_start sub_80B9BBC sub_80B9BBC: @ 80B9BBC ldrh r0, [r0, 0x20] lsls r0, 24 lsrs r0, 24 bx lr thumb_func_end sub_80B9BBC thumb_func_start sub_80B9BC4 sub_80B9BC4: @ 80B9BC4 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x38 mov r8, r0 mov r10, r1 mov r9, r2 adds r4, r3, 0 ldr r5, [sp, 0x54] lsls r4, 24 lsls r5, 24 lsrs r5, 24 lsrs r4, 23 add r4, r9 ldrb r0, [r4] mov r6, r10 muls r6, r0 add r6, r8 ldrb r0, [r4, 0x1] lsls r1, r0, 3 subs r1, r0 lsls r1, 3 adds r1, r6, r1 mov r0, sp movs r2, 0x38 bl memcpy lsls r5, 1 add r5, r9 ldrb r0, [r5] mov r1, r10 muls r1, r0 adds r0, r1, 0 add r8, r0 ldrb r1, [r4, 0x1] lsls r0, r1, 3 subs r0, r1 lsls r0, 3 adds r6, r0 ldrb r0, [r5, 0x1] lsls r1, r0, 3 subs r1, r0 lsls r1, 3 add r1, r8 adds r0, r6, 0 movs r2, 0x38 bl memcpy ldrb r1, [r5, 0x1] lsls r0, r1, 3 subs r0, r1 lsls r0, 3 add r8, r0 mov r0, r8 mov r1, sp movs r2, 0x38 bl memcpy add sp, 0x38 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80B9BC4 thumb_func_start sub_80B9C4C sub_80B9C4C: @ 80B9C4C push {lr} adds r3, r0, 0 movs r2, 0 movs r1, 0 _080B9C54: adds r0, r3, r1 ldrb r0, [r0] adds r0, r2, r0 lsls r0, 24 lsrs r2, r0, 24 adds r1, 0x1 cmp r1, 0xFF ble _080B9C54 adds r0, r2, 0 pop {r1} bx r1 thumb_func_end sub_80B9C4C thumb_func_start sub_80B9C6C sub_80B9C6C: @ 80B9C6C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x58 str r0, [sp, 0x2C] str r1, [sp, 0x30] str r3, [sp, 0x38] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x34] bl Random lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x40] ldr r0, _080B9DA8 ldrh r0, [r0, 0x4] bl SeedRng bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r3, 0 add r0, sp, 0x1C mov r9, r0 movs r1, 0x1D add r1, sp mov r10, r1 mov r2, sp adds r2, 0xC str r2, [sp, 0x4C] movs r7, 0xFF add r4, sp, 0x8 movs r2, 0 mov r6, r9 mov r5, r10 _080B9CBC: mov r1, sp adds r1, r3 adds r1, 0x4 ldrb r0, [r1] orrs r0, r7 strb r0, [r1] adds r0, r4, r3 strb r2, [r0] lsls r1, r3, 1 adds r0, r6, r1 strb r2, [r0] adds r1, r5, r1 strb r2, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _080B9CBC movs r4, 0 str r4, [sp, 0x3C] movs r3, 0 mov r1, r8 lsls r0, r1, 16 lsrs r1, r0, 16 str r0, [sp, 0x50] ldr r4, [sp, 0x30] ldr r0, [sp, 0x34] adds r2, r4, 0 muls r2, r0 str r2, [sp, 0x48] ldr r2, [sp, 0x3C] cmp r2, r1 bcs _080B9D46 mov r8, r1 _080B9D00: ldr r4, [sp, 0x30] adds r0, r4, 0 muls r0, r3 ldr r1, [sp, 0x2C] adds r6, r1, r0 ldr r0, [r6, 0x70] cmp r0, 0 beq _080B9D3C movs r7, 0 cmp r7, r0 bcs _080B9D3C adds r4, r6, 0 adds r4, 0x74 mov r2, r9 lsls r1, r3, 1 movs r5, 0x1 _080B9D20: lsls r0, r7, 1 adds r0, r4, r0 ldrh r0, [r0] cmp r0, 0 bne _080B9D30 adds r0, r7, r1 adds r0, r2, r0 strb r5, [r0] _080B9D30: adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 ldr r0, [r6, 0x70] cmp r7, r0 bcc _080B9D20 _080B9D3C: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r8 bcc _080B9D00 _080B9D46: movs r7, 0 movs r3, 0 ldr r2, [sp, 0x50] cmp r2, 0 beq _080B9E3E mov r4, sp adds r4, 0x24 str r4, [sp, 0x44] movs r0, 0x25 add r0, sp mov r8, r0 _080B9D5C: ldr r1, [sp, 0x30] adds r0, r1, 0 muls r0, r3 ldr r2, [sp, 0x2C] adds r6, r2, r0 lsls r1, r3, 1 mov r4, r9 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0x1 beq _080B9D7C mov r2, r10 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080B9D86 _080B9D7C: ldr r0, [sp, 0x3C] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x3C] _080B9D86: mov r4, r9 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080B9DAC mov r2, r10 adds r0, r2, r1 ldrb r2, [r0] cmp r2, 0 bne _080B9DAC _080B9D9A: lsls r1, r7, 1 ldr r4, [sp, 0x44] adds r0, r4, r1 strb r3, [r0] add r1, r8 strb r2, [r1] b _080B9E2C .align 2, 0 _080B9DA8: .4byte 0x03002970 _080B9DAC: mov r2, r9 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 bne _080B9DC0 mov r4, r10 adds r0, r4, r1 ldrb r2, [r0] cmp r2, 0x1 beq _080B9D9A _080B9DC0: mov r2, r9 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080B9E32 mov r4, r10 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080B9E32 lsls r5, r7, 1 ldr r1, [sp, 0x44] adds r0, r1, r5 strb r3, [r0] adds r0, r6, 0 str r3, [sp, 0x54] bl sub_80B9BBC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 adds r0, 0x38 bl sub_80B9BBC lsls r0, 24 lsrs r1, r0, 24 ldr r3, [sp, 0x54] cmp r4, 0 bne _080B9E0A cmp r1, 0 beq _080B9E0E mov r2, r8 adds r1, r2, r5 movs r0, 0x1 strb r0, [r1] b _080B9E2C _080B9E0A: cmp r1, 0 beq _080B9E26 _080B9E0E: str r3, [sp, 0x54] bl Random mov r4, r8 adds r2, r4, r5 lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ands r0, r1 strb r0, [r2] ldr r3, [sp, 0x54] b _080B9E2C _080B9E26: mov r2, r8 adds r0, r2, r5 strb r1, [r0] _080B9E2C: adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 _080B9E32: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 ldr r4, [sp, 0x50] cmp r0, r4 bcc _080B9D5C _080B9E3E: movs r3, 0 ldr r1, [sp, 0x48] lsls r0, r1, 4 subs r0, r1 lsls r0, 3 ldr r2, [sp, 0x2C] adds r6, r2, r0 ldr r1, [sp, 0x4C] _080B9E4E: lsls r0, r3, 2 adds r0, r1, r0 str r6, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _080B9E4E ldr r0, [sp, 0x38] bl sub_80B9C4C lsls r0, 24 lsrs r0, 24 movs r1, 0x3 bl __umodsi3 lsls r0, 24 lsrs r1, r0, 24 ldr r4, [sp, 0x3C] cmp r4, 0x3 beq _080B9E9C cmp r4, 0x3 bgt _080B9E82 cmp r4, 0x2 beq _080B9E8A b _080B9EF0 _080B9E82: ldr r0, [sp, 0x3C] cmp r0, 0x4 beq _080B9EBC b _080B9EF0 _080B9E8A: add r2, sp, 0x24 movs r0, 0x1 str r0, [sp] ldr r0, [sp, 0x2C] ldr r1, [sp, 0x30] movs r3, 0 bl sub_80B9BC4 b _080B9EF0 _080B9E9C: ldr r0, _080B9EB8 lsls r1, 1 adds r2, r1, r0 ldrb r3, [r2] adds r0, 0x1 adds r1, r0 ldrb r0, [r1] add r2, sp, 0x24 str r0, [sp] ldr r0, [sp, 0x2C] ldr r1, [sp, 0x30] bl sub_80B9BC4 b _080B9EF0 .align 2, 0 _080B9EB8: .4byte gUnknown_083D02B4 _080B9EBC: add r6, sp, 0x24 ldr r4, _080B9F2C lsls r5, r1, 2 adds r0, r5, r4 ldrb r3, [r0] adds r0, r4, 0x1 adds r0, r5, r0 ldrb r0, [r0] str r0, [sp] ldr r0, [sp, 0x2C] ldr r1, [sp, 0x30] adds r2, r6, 0 bl sub_80B9BC4 adds r0, r4, 0x2 adds r0, r5, r0 ldrb r3, [r0] adds r4, 0x3 adds r5, r4 ldrb r0, [r5] str r0, [sp] ldr r0, [sp, 0x2C] ldr r1, [sp, 0x30] adds r2, r6, 0 bl sub_80B9BC4 _080B9EF0: ldr r1, [sp, 0x2C] ldr r2, [sp, 0x48] adds r6, r1, r2 ldr r4, _080B9F30 ldr r1, _080B9F34 adds r0, r4, r1 adds r1, r6, 0 movs r2, 0x38 bl memcpy ldr r2, _080B9F38 adds r4, r2 adds r1, r6, 0 adds r1, 0x38 adds r0, r4, 0 movs r2, 0x38 bl memcpy ldr r0, [sp, 0x40] bl SeedRng add sp, 0x58 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B9F2C: .4byte gUnknown_083D02BA _080B9F30: .4byte 0x02025734 _080B9F34: .4byte 0x0000303c _080B9F38: .4byte 0x00003074 thumb_func_end sub_80B9C6C thumb_func_start sub_80B9F3C sub_80B9F3C: @ 80B9F3C push {r4,lr} adds r4, r0, 0 lsls r1, 24 cmp r1, 0 beq _080BA000 ldrh r0, [r4] cmp r0, 0 beq _080BA000 bl sub_80A9670 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bne _080B9FC8 ldrh r0, [r4] movs r1, 0x1 bl sub_80A92D4 lsls r0, 24 cmp r0, 0 bne _080B9FB8 ldrh r0, [r4] movs r1, 0x1 bl sub_80A9718 lsls r0, 24 cmp r0, 0 bne _080B9FB8 ldrh r0, [r4] movs r1, 0x1 bl sub_80A9424 lsls r0, 24 cmp r0, 0 beq _080B9FB8 ldr r0, _080B9FA4 ldrh r1, [r4] bl VarSet ldr r0, _080B9FA8 ldr r1, _080B9FAC bl StringCopy ldrh r1, [r4] ldr r0, _080B9FB0 cmp r1, r0 bne _080BA000 ldr r0, _080B9FB4 bl FlagSet b _080BA000 .align 2, 0 _080B9FA4: .4byte 0x00004001 _080B9FA8: .4byte 0x020231cc _080B9FAC: .4byte 0x03002978 _080B9FB0: .4byte 0x00000113 _080B9FB4: .4byte 0x00000853 _080B9FB8: ldr r0, _080B9FC4 movs r1, 0 bl VarSet b _080BA000 .align 2, 0 _080B9FC4: .4byte 0x00004001 _080B9FC8: ldrh r0, [r4] movs r1, 0x1 bl sub_80A9424 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080B9FF8 ldr r0, _080B9FEC ldrh r1, [r4] bl VarSet ldr r0, _080B9FF0 ldr r1, _080B9FF4 bl StringCopy b _080BA000 .align 2, 0 _080B9FEC: .4byte 0x00004001 _080B9FF0: .4byte 0x020231cc _080B9FF4: .4byte 0x03002978 _080B9FF8: ldr r0, _080BA008 movs r1, 0 bl VarSet _080BA000: pop {r4} pop {r0} bx r0 .align 2, 0 _080BA008: .4byte 0x00004001 thumb_func_end sub_80B9F3C thumb_func_start sub_80BA00C sub_80BA00C: @ 80BA00C push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080BA030 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x5 bhi _080BA09C lsls r0, 2 ldr r1, _080BA034 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080BA030: .4byte 0x03004b20 _080BA034: .4byte _080BA038 .align 2, 0 _080BA038: .4byte _080BA086 .4byte _080BA086 .4byte _080BA050 .4byte _080BA05A .4byte _080BA074 .4byte _080BA08E _080BA050: bl sub_8047A1C bl sub_8125E2C b _080BA086 _080BA05A: bl sub_8125E6C lsls r0, 24 cmp r0, 0 beq _080BA09C bl sub_8047A34 ldrh r0, [r4, 0x8] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0x8] strh r1, [r4, 0xA] b _080BA09C _080BA074: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xA ble _080BA09C bl sub_800832C _080BA086: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080BA09C _080BA08E: ldr r0, _080BA0A4 ldrb r0, [r0] cmp r0, 0 bne _080BA09C adds r0, r2, 0 bl DestroyTask _080BA09C: pop {r4} pop {r0} bx r0 .align 2, 0 _080BA0A4: .4byte 0x03002fa4 thumb_func_end sub_80BA00C thumb_func_start sub_80BA0A8 sub_80BA0A8: @ 80BA0A8 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80BA0A8 thumb_func_start sub_80BA0C0 sub_80BA0C0: @ 80BA0C0 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer ldr r0, _080BA0E8 ldrb r0, [r0] cmp r0, 0 beq _080BA0E2 bl m4aSoundMain bl m4aSoundMain bl m4aSoundMain _080BA0E2: pop {r0} bx r0 .align 2, 0 _080BA0E8: .4byte 0x020387b0 thumb_func_end sub_80BA0C0 thumb_func_start unref_sub_80BA0EC unref_sub_80BA0EC: @ 80BA0EC push {r4-r6,lr} sub sp, 0xC movs r0, 0 bl SetVBlankCallback movs r6, 0x80 lsls r6, 19 movs r5, 0 strh r5, [r6] ldr r0, _080BA20C strh r5, [r0] subs r0, 0x2 strh r5, [r0] subs r0, 0x2 strh r5, [r0] adds r0, 0x10 strh r5, [r0] adds r0, 0x2 strh r5, [r0] subs r0, 0x6 strh r5, [r0] adds r0, 0x2 strh r5, [r0] subs r0, 0x6 strh r5, [r0] adds r0, 0x2 strh r5, [r0] add r0, sp, 0x4 strh r5, [r0] ldr r1, _080BA210 str r0, [r1] movs r0, 0xC0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _080BA214 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r4, 0 str r4, [sp, 0x8] add r0, sp, 0x8 str r0, [r1] movs r0, 0xE0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _080BA218 str r0, [r1, 0x8] ldr r0, [r1, 0x8] add r0, sp, 0x4 strh r4, [r0] str r0, [r1] movs r0, 0xA0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _080BA21C str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetPaletteFade bl ResetTasks bl ResetSpriteData ldr r0, _080BA220 bl SetUpWindowConfig ldr r0, _080BA224 bl sub_8071C4C movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080BA228 strh r4, [r0] adds r0, 0x4 strh r4, [r0] subs r0, 0x2 strh r4, [r0] adds r0, 0x4 strh r4, [r0] ldr r1, _080BA22C ldr r2, _080BA230 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x31 strh r0, [r1] adds r1, 0x6 movs r0, 0xE1 strh r0, [r1] ldr r0, _080BA234 strh r4, [r0] adds r1, 0x4 movs r0, 0x7 strh r0, [r1] ldr r1, _080BA238 movs r2, 0x1 strh r2, [r1] ldrh r0, [r1] orrs r0, r2 strh r0, [r1] ldr r2, _080BA23C ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _080BA240 bl SetVBlankCallback ldr r0, _080BA244 bl SetMainCallback2 ldr r1, _080BA248 adds r0, r1, 0 strh r0, [r6] ldr r0, _080BA24C movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080BA250 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] strh r4, [r1, 0xA] strh r4, [r1, 0xC] strh r4, [r1, 0xE] ldr r0, _080BA254 strb r5, [r0] strh r4, [r1, 0xE] bl m4aSoundInit add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BA20C: .4byte REG_BG2CNT _080BA210: .4byte 0x040000d4 _080BA214: .4byte 0x8100c000 _080BA218: .4byte 0x85000100 _080BA21C: .4byte 0x81000200 _080BA220: .4byte gWindowConfig_81E6C3C _080BA224: .4byte gWindowConfig_81E6CE4 _080BA228: .4byte REG_WIN0H _080BA22C: .4byte REG_WININ _080BA230: .4byte 0x00001111 _080BA234: .4byte REG_BLDALPHA _080BA238: .4byte 0x04000200 _080BA23C: .4byte REG_DISPSTAT _080BA240: .4byte sub_80BA0C0 _080BA244: .4byte sub_80BA0A8 _080BA248: .4byte 0x00007140 _080BA24C: .4byte sub_80BA258 _080BA250: .4byte 0x03004b20 _080BA254: .4byte 0x020387b0 thumb_func_end unref_sub_80BA0EC thumb_func_start sub_80BA258 sub_80BA258: @ 80BA258 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x40 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r1, _080BA354 mov r0, sp movs r2, 0x9 bl memcpy add r7, sp, 0xC ldr r1, _080BA358 adds r0, r7, 0 movs r2, 0x4 bl memcpy add r0, sp, 0x10 mov r8, r0 ldr r1, _080BA35C movs r2, 0x4 bl memcpy add r5, sp, 0x14 ldr r1, _080BA360 adds r0, r5, 0 movs r2, 0xD bl memcpy add r4, sp, 0x24 ldr r1, _080BA364 adds r0, r4, 0 movs r2, 0xC bl memcpy add r6, sp, 0x30 ldr r1, _080BA368 adds r0, r6, 0 movs r2, 0xE bl memcpy ldr r0, _080BA36C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BA344 movs r0, 0x2 movs r1, 0 movs r2, 0x1B movs r3, 0x3 bl DrawDefaultWindow movs r0, 0x2 movs r1, 0x5 movs r2, 0x1B movs r3, 0xA bl DrawDefaultWindow movs r0, 0x2 movs r1, 0xC movs r2, 0x1B movs r3, 0x11 bl DrawDefaultWindow mov r0, sp movs r1, 0x4 movs r2, 0x1 bl Print adds r0, r5, 0 movs r1, 0xE movs r2, 0x1 bl Print adds r0, r7, 0 movs r1, 0x4 movs r2, 0x6 bl Print adds r0, r4, 0 movs r1, 0xE movs r2, 0x6 bl Print mov r0, r8 movs r1, 0x4 movs r2, 0xD bl Print adds r0, r4, 0 movs r1, 0xE movs r2, 0xD bl Print adds r0, r6, 0 movs r1, 0xE movs r2, 0x12 bl Print ldr r1, _080BA370 mov r2, r9 lsls r0, r2, 2 add r0, r9 lsls r0, 3 adds r0, r1 ldr r1, _080BA374 str r1, [r0] ldr r1, _080BA378 ldr r2, _080BA37C adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080BA380 adds r0, r2, 0 strh r0, [r1] _080BA344: add sp, 0x40 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BA354: .4byte gUnknown_083D02C8 _080BA358: .4byte gUnknown_083D02D1 _080BA35C: .4byte gUnknown_083D02D5 _080BA360: .4byte gUnknown_083D02D9 _080BA364: .4byte gUnknown_083D02E6 _080BA368: .4byte gUnknown_083D02F2 _080BA36C: .4byte 0x0202f388 _080BA370: .4byte 0x03004b20 _080BA374: .4byte sub_80BA384 _080BA378: .4byte REG_WIN0H _080BA37C: .4byte 0x000011df _080BA380: .4byte 0x0000011f thumb_func_end sub_80BA258 thumb_func_start sub_80BA384 sub_80BA384: @ 80BA384 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080BA3EC lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldrb r0, [r4, 0x8] bl sub_80BA6B8 ldr r1, _080BA3F0 adds r0, r1, 0 ldrh r2, [r4, 0xA] adds r0, r2 lsls r0, 16 lsrs r0, 16 movs r1, 0x7 movs r2, 0x8 bl sub_80BA700 ldr r1, _080BA3F4 movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0xB movs r2, 0x8 bl sub_80BA79C ldrh r0, [r4, 0xC] movs r1, 0x7 movs r2, 0xF bl sub_80BA700 ldr r1, _080BA3F8 movs r2, 0xC ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0xB movs r2, 0xF bl sub_80BA79C ldr r0, _080BA3FC str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080BA3EC: .4byte 0x03004b20 _080BA3F0: .4byte 0x0000015d _080BA3F4: .4byte gBGMNames _080BA3F8: .4byte gSENames _080BA3FC: .4byte Task_HandleMainMenuInput thumb_func_end sub_80BA384 thumb_func_start sub_80BA400 sub_80BA400: @ 80BA400 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r2, _080BA428 ldrh r1, [r2, 0x2E] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080BA434 ldr r0, _080BA42C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080BA430 str r0, [r1] b _080BA64C .align 2, 0 _080BA428: .4byte 0x03001770 _080BA42C: .4byte 0x03004b20 _080BA430: .4byte sub_80BA800 _080BA434: movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _080BA458 ldr r0, _080BA450 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080BA454 str r0, [r1] b _080BA64C .align 2, 0 _080BA450: .4byte 0x03004b20 _080BA454: .4byte sub_80BAF84 _080BA458: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080BA478 ldr r0, _080BA470 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080BA474 str r0, [r1] b _080BA64C .align 2, 0 _080BA470: .4byte 0x03004b20 _080BA474: .4byte sub_80BB25C _080BA478: movs r6, 0x1 movs r5, 0x1 ands r5, r1 cmp r5, 0 beq _080BA538 ldr r0, _080BA4AC lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r5, r1, r0 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0 beq _080BA4D0 movs r2, 0x10 ldrsh r0, [r5, r2] cmp r0, 0 beq _080BA4BA movs r3, 0xC ldrsh r4, [r5, r3] cmp r4, 0 beq _080BA4B0 ldrh r0, [r5, 0x10] bl m4aSongNumStop b _080BA4C4 .align 2, 0 _080BA4AC: .4byte 0x03004b20 _080BA4B0: ldrh r0, [r5, 0x10] bl m4aSongNumStop strh r4, [r5, 0x10] b _080BA64C _080BA4BA: movs r4, 0xC ldrsh r0, [r5, r4] cmp r0, 0 bne _080BA4C4 b _080BA64C _080BA4C4: ldrh r0, [r5, 0xC] bl m4aSongNumStart ldrh r0, [r5, 0xC] strh r0, [r5, 0x10] b _080BA64C _080BA4D0: ldrh r1, [r5, 0xE] movs r2, 0xE ldrsh r0, [r5, r2] cmp r0, 0 beq _080BA514 movs r3, 0xA ldrsh r4, [r5, r3] cmp r4, 0 beq _080BA500 ldr r0, _080BA4FC adds r4, r0, 0 adds r0, r1, r4 lsls r0, 16 lsrs r0, 16 bl m4aSongNumStop ldrh r1, [r5, 0xA] adds r4, r1 lsls r4, 16 lsrs r4, 16 adds r0, r4, 0 b _080BA528 .align 2, 0 _080BA4FC: .4byte 0x0000015d _080BA500: ldr r2, _080BA510 adds r0, r1, r2 lsls r0, 16 lsrs r0, 16 bl m4aSongNumStop strh r4, [r5, 0xE] b _080BA64C .align 2, 0 _080BA510: .4byte 0x0000015d _080BA514: ldrh r1, [r5, 0xA] movs r3, 0xA ldrsh r0, [r5, r3] cmp r0, 0 bne _080BA520 b _080BA64C _080BA520: ldr r4, _080BA534 adds r0, r1, r4 lsls r0, 16 lsrs r0, 16 _080BA528: bl m4aSongNumStart ldrh r0, [r5, 0xA] strh r0, [r5, 0xE] b _080BA64C .align 2, 0 _080BA534: .4byte 0x0000015d _080BA538: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080BA570 movs r0, 0x5 bl m4aSongNumStart movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _080BA568 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080BA56C str r1, [r0] b _080BA64C .align 2, 0 _080BA568: .4byte 0x03004b20 _080BA56C: .4byte sub_80BA68C _080BA570: ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080BA582 movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080BA59C _080BA582: ldr r0, _080BA598 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] eors r0, r6 strh r0, [r1, 0x8] _080BA592: movs r0, 0x1 b _080BA64E .align 2, 0 _080BA598: .4byte 0x03004b20 _080BA59C: movs r0, 0x10 ands r0, r1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _080BA5EA ldr r0, _080BA5CC lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 beq _080BA5D6 ldrh r2, [r1, 0xC] movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0 ble _080BA5D0 subs r0, r2, 0x1 strh r0, [r1, 0xC] b _080BA592 .align 2, 0 _080BA5CC: .4byte 0x03004b20 _080BA5D0: movs r0, 0xF7 strh r0, [r1, 0xC] b _080BA592 _080BA5D6: ldrh r2, [r1, 0xA] movs r4, 0xA ldrsh r0, [r1, r4] cmp r0, 0 ble _080BA5E4 subs r0, r2, 0x1 b _080BA5E6 _080BA5E4: movs r0, 0x75 _080BA5E6: strh r0, [r1, 0xA] b _080BA592 _080BA5EA: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080BA630 ldr r1, _080BA614 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 movs r0, 0x8 ldrsh r2, [r1, r0] cmp r2, 0 beq _080BA61C ldrh r2, [r1, 0xC] movs r4, 0xC ldrsh r0, [r1, r4] cmp r0, 0xF6 bgt _080BA618 adds r0, r2, 0x1 strh r0, [r1, 0xC] b _080BA592 .align 2, 0 _080BA614: .4byte 0x03004b20 _080BA618: strh r3, [r1, 0xC] b _080BA592 _080BA61C: ldrh r3, [r1, 0xA] movs r4, 0xA ldrsh r0, [r1, r4] cmp r0, 0x74 bgt _080BA62C adds r0, r3, 0x1 strh r0, [r1, 0xA] b _080BA592 _080BA62C: strh r2, [r1, 0xA] b _080BA592 _080BA630: ldrh r1, [r2, 0x2C] movs r0, 0x4 ands r0, r1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _080BA648 ldr r0, _080BA644 strb r6, [r0] b _080BA64C .align 2, 0 _080BA644: .4byte 0x020387b0 _080BA648: ldr r0, _080BA658 strb r1, [r0] _080BA64C: movs r0, 0 _080BA64E: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080BA658: .4byte 0x020387b0 thumb_func_end sub_80BA400 thumb_func_start Task_HandleMainMenuInput Task_HandleMainMenuInput: @ 80BA65C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80BA400 lsls r0, 24 cmp r0, 0 beq _080BA67C ldr r0, _080BA684 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080BA688 str r0, [r1] _080BA67C: pop {r4} pop {r0} bx r0 .align 2, 0 _080BA684: .4byte 0x03004b20 _080BA688: .4byte sub_80BA384 thumb_func_end Task_HandleMainMenuInput thumb_func_start sub_80BA68C sub_80BA68C: @ 80BA68C push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080BA6B0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BA6AA adds r0, r2, 0 bl DestroyTask ldr r0, _080BA6B4 bl SetMainCallback2 _080BA6AA: pop {r0} bx r0 .align 2, 0 _080BA6B0: .4byte 0x0202f388 _080BA6B4: .4byte CB2_InitTitleScreen thumb_func_end sub_80BA68C thumb_func_start sub_80BA6B8 sub_80BA6B8: @ 80BA6B8 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080BA6C6 cmp r0, 0x1 beq _080BA6E0 _080BA6C6: ldr r1, _080BA6D4 ldr r2, _080BA6D8 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080BA6DC b _080BA6EC .align 2, 0 _080BA6D4: .4byte REG_WIN1H _080BA6D8: .4byte 0x000011df _080BA6DC: .4byte 0x00002957 _080BA6E0: ldr r1, _080BA6F4 ldr r2, _080BA6F8 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080BA6FC _080BA6EC: adds r0, r2, 0 strh r0, [r1] pop {r0} bx r0 .align 2, 0 _080BA6F4: .4byte REG_WIN1H _080BA6F8: .4byte 0x000011df _080BA6FC: .4byte 0x0000618f thumb_func_end sub_80BA6B8 thumb_func_start sub_80BA700 sub_80BA700: @ 80BA700 push {r4-r7,lr} sub sp, 0x8 lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 lsrs r6, r1, 16 lsls r2, 16 lsrs r7, r2, 16 movs r1, 0 movs r2, 0 _080BA714: mov r3, sp adds r0, r3, r1 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x2 bls _080BA714 mov r1, sp movs r0, 0xB0 strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] movs r4, 0 adds r0, r5, 0 movs r1, 0x64 bl __udivsi3 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080BA748 mov r1, sp adds r0, 0xA1 strb r0, [r1] movs r4, 0x1 _080BA748: adds r0, r5, 0 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080BA766 cmp r4, 0 beq _080BA76C _080BA766: mov r1, sp adds r0, 0xA1 strb r0, [r1, 0x1] _080BA76C: mov r4, sp adds r0, r5, 0 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r4, 0x2] lsls r1, r6, 24 lsrs r1, 24 lsls r2, r7, 24 lsrs r2, 24 mov r0, sp bl Print add sp, 0x8 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BA700 thumb_func_start sub_80BA79C sub_80BA79C: @ 80BA79C push {r4-r6,lr} sub sp, 0xC adds r4, r0, 0 lsls r1, 16 lsrs r6, r1, 16 lsls r2, 16 lsrs r5, r2, 16 movs r3, 0 movs r1, 0 _080BA7AE: mov r2, sp adds r0, r2, r3 strb r1, [r0] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xA bls _080BA7AE mov r0, sp movs r1, 0xFF strb r1, [r0, 0xA] movs r3, 0 ldrb r0, [r4] lsls r2, r6, 24 lsls r5, 24 cmp r0, 0xFF beq _080BA7EC _080BA7D0: mov r0, sp adds r1, r0, r3 adds r0, r4, r3 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r0, r4, r3 ldrb r0, [r0] cmp r0, 0xFF beq _080BA7EC cmp r3, 0x9 bls _080BA7D0 _080BA7EC: lsrs r1, r2, 24 lsrs r2, r5, 24 mov r0, sp bl Print add sp, 0xC pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80BA79C thumb_func_start sub_80BA800 sub_80BA800: @ 80BA800 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xCC lsls r0, 24 str r0, [sp, 0xB0] lsrs r2, r0, 24 str r2, [sp, 0xAC] ldr r1, _080BA9E8 mov r0, sp movs r2, 0xA bl memcpy mov r0, sp adds r0, 0xC str r0, [sp, 0xB4] ldr r1, _080BA9EC movs r2, 0xB bl memcpy mov r2, sp adds r2, 0x18 str r2, [sp, 0xB8] ldr r1, _080BA9F0 adds r0, r2, 0 movs r2, 0xA bl memcpy mov r0, sp adds r0, 0x24 str r0, [sp, 0xBC] ldr r1, _080BA9F4 movs r2, 0xA bl memcpy mov r2, sp adds r2, 0x30 str r2, [sp, 0xC0] ldr r1, _080BA9F8 adds r0, r2, 0 movs r2, 0xA bl memcpy mov r0, sp adds r0, 0x3C str r0, [sp, 0xC4] ldr r1, _080BA9FC movs r2, 0xA bl memcpy mov r2, sp adds r2, 0x48 str r2, [sp, 0xC8] ldr r1, _080BAA00 adds r0, r2, 0 movs r2, 0xA bl memcpy add r4, sp, 0x54 ldr r1, _080BAA04 adds r0, r4, 0 movs r2, 0xA bl memcpy add r7, sp, 0x60 ldr r1, _080BAA08 adds r0, r7, 0 movs r2, 0xA bl memcpy add r0, sp, 0x6C mov r10, r0 ldr r1, _080BAA0C movs r2, 0xA bl memcpy add r2, sp, 0x78 mov r9, r2 ldr r1, _080BAA10 mov r0, r9 movs r2, 0xA bl memcpy add r0, sp, 0x84 mov r8, r0 ldr r1, _080BAA14 movs r2, 0x9 bl memcpy add r6, sp, 0x90 ldr r1, _080BAA18 adds r0, r6, 0 movs r2, 0x9 bl memcpy add r5, sp, 0x9C ldr r1, _080BAA1C adds r0, r5, 0 movs r2, 0x9 bl memcpy movs r1, 0x80 lsls r1, 19 movs r2, 0xC5 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow mov r0, sp movs r1, 0x13 movs r2, 0x4 bl Print ldr r0, [sp, 0xB4] movs r1, 0x13 movs r2, 0x2 bl Print ldr r0, [sp, 0xB8] movs r1, 0x2 movs r2, 0x1 bl Print ldr r0, [sp, 0xBC] movs r1, 0x2 movs r2, 0x3 bl Print ldr r0, [sp, 0xC0] movs r1, 0x2 movs r2, 0x5 bl Print ldr r0, [sp, 0xC4] movs r1, 0x2 movs r2, 0x7 bl Print ldr r0, [sp, 0xC8] movs r1, 0x2 movs r2, 0x9 bl Print adds r0, r4, 0 movs r1, 0x2 movs r2, 0xB bl Print adds r0, r7, 0 movs r1, 0x2 movs r2, 0xD bl Print mov r0, r10 movs r1, 0x2 movs r2, 0xF bl Print mov r0, r9 movs r1, 0x2 movs r2, 0x11 bl Print mov r0, r8 movs r1, 0x13 movs r2, 0x10 bl Print adds r0, r6, 0 movs r1, 0x13 movs r2, 0xE bl Print adds r0, r5, 0 movs r1, 0x13 movs r2, 0xC bl Print ldr r1, _080BAA20 movs r0, 0xF0 strh r0, [r1] adds r1, 0x4 movs r0, 0xA0 strh r0, [r1] ldr r0, _080BAA24 movs r1, 0 strb r1, [r0] ldr r0, _080BAA28 strb r1, [r0] ldr r0, _080BAA2C strb r1, [r0] ldr r0, _080BAA30 movs r2, 0 str r2, [r0] ldr r0, _080BAA34 strb r2, [r0] ldr r1, _080BAA38 movs r0, 0x1 strb r0, [r1] ldr r0, _080BAA3C str r2, [r0] movs r1, 0x78 str r1, [r0, 0x4] str r2, [r0, 0x8] movs r1, 0xF0 lsls r1, 6 str r1, [r0, 0xC] movs r1, 0xB4 str r1, [r0, 0x10] str r2, [r0, 0x18] str r2, [r0, 0x14] str r2, [r0, 0x1C] movs r1, 0x2 str r1, [r0, 0x20] bl sub_80BAD5C movs r0, 0 movs r1, 0 bl sub_80BAE10 ldr r1, _080BAA40 ldr r2, [sp, 0xAC] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 ldr r1, _080BAA44 str r1, [r0] add sp, 0xCC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BA9E8: .4byte gUnknown_083D0312 _080BA9EC: .4byte gUnknown_083D031C _080BA9F0: .4byte gUnknown_083D0327 _080BA9F4: .4byte gUnknown_083D0331 _080BA9F8: .4byte gUnknown_083D033B _080BA9FC: .4byte gUnknown_083D0345 _080BAA00: .4byte gUnknown_083D034F _080BAA04: .4byte gUnknown_083D0359 _080BAA08: .4byte gUnknown_083D0363 _080BAA0C: .4byte gUnknown_083D036D _080BAA10: .4byte gUnknown_083D0377 _080BAA14: .4byte gUnknown_083D0381 _080BAA18: .4byte gUnknown_083D038A _080BAA1C: .4byte gUnknown_083D0393 _080BAA20: .4byte REG_WIN0H _080BAA24: .4byte 0x020387b3 _080BAA28: .4byte 0x020387b1 _080BAA2C: .4byte 0x020387b2 _080BAA30: .4byte 0x03005d30 _080BAA34: .4byte 0x020387d8 _080BAA38: .4byte 0x020387d9 _080BAA3C: .4byte 0x020387b4 _080BAA40: .4byte 0x03004b20 _080BAA44: .4byte sub_80BAA48 thumb_func_end sub_80BA800 thumb_func_start sub_80BAA48 sub_80BAA48: @ 80BAA48 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080BAA90 ldrh r2, [r1, 0x2E] movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _080BAAA8 movs r1, 0x80 lsls r1, 19 ldr r2, _080BAA94 adds r0, r2, 0 strh r0, [r1] adds r1, 0x40 ldr r2, _080BAA98 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080BAA9C adds r0, r2, 0 strh r0, [r1] movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset ldr r1, _080BAAA0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080BAAA4 str r1, [r0] b _080BACC6 .align 2, 0 _080BAA90: .4byte 0x03001770 _080BAA94: .4byte 0x00007140 _080BAA98: .4byte 0x000011df _080BAA9C: .4byte 0x0000011f _080BAAA0: .4byte 0x03004b20 _080BAAA4: .4byte sub_80BA258 _080BAAA8: ldrh r1, [r1, 0x30] movs r0, 0x40 ands r0, r1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _080BAAD0 ldr r1, _080BAACC ldrb r2, [r1] subs r0, r2, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bge _080BAAEA movs r0, 0x8 strb r0, [r1] b _080BAAEA .align 2, 0 _080BAACC: .4byte 0x020387b3 _080BAAD0: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080BAAF8 ldr r1, _080BAAF4 ldrb r2, [r1] adds r0, r2, 0x1 strb r0, [r1] lsls r0, 24 asrs r0, 24 cmp r0, 0x8 ble _080BAAEA strb r3, [r1] _080BAAEA: ldrb r1, [r1] adds r0, r2, 0 bl sub_80BAE10 b _080BACC6 .align 2, 0 _080BAAF4: .4byte 0x020387b3 _080BAAF8: movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _080BAB14 ldr r0, _080BAB10 ldrb r1, [r0] movs r2, 0x1 eors r1, r2 strb r1, [r0] bl sub_80BAD5C b _080BACC6 .align 2, 0 _080BAB10: .4byte 0x020387d8 _080BAB14: movs r0, 0x4 ands r0, r2 cmp r0, 0 beq _080BAB38 ldr r4, _080BAB34 ldrb r0, [r4] movs r1, 0x1 eors r0, r1 strb r0, [r4] bl sub_80BAD5C ldrb r0, [r4] bl sub_81DF5D8 b _080BACC6 .align 2, 0 _080BAB34: .4byte 0x020387d9 _080BAB38: movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080BAB46 movs r0, 0xA b _080BAB6E _080BAB46: movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _080BAB56 movs r0, 0xA negs r0, r0 b _080BAB6E _080BAB56: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080BAB64 movs r0, 0x1 negs r0, r0 b _080BAB6E _080BAB64: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080BAB78 movs r0, 0x1 _080BAB6E: bl sub_80BACDC bl sub_80BAD5C b _080BACC6 _080BAB78: movs r0, 0x1 ands r0, r2 cmp r0, 0 bne _080BAB82 b _080BACA2 _080BAB82: ldr r4, _080BABE4 ldrb r0, [r4, 0x4] bl sub_81DF50C movs r0, 0x8 ldrsb r0, [r4, r0] bl sub_81DF520 movs r1, 0xC ldrsh r0, [r4, r1] bl sub_81DF538 ldrh r0, [r4, 0x10] bl sub_81DF570 ldr r0, [r4, 0x18] bl sub_81DF588 ldrb r0, [r4, 0x14] bl sub_81DF57C movs r0, 0x1C ldrsb r0, [r4, r0] bl sub_81DF5AC ldr r0, [r4, 0x20] lsls r0, 24 lsrs r0, 24 bl sub_81DF618 ldr r4, [r4] adds r0, r4, 0 cmp r4, 0 bge _080BABC8 adds r0, 0x7F _080BABC8: asrs r2, r0, 7 lsls r0, r2, 7 subs r0, r4, r0 lsls r0, 24 lsrs r1, r0, 24 lsls r0, r2, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BAC1C cmp r0, 0x1 bgt _080BABE8 cmp r0, 0 beq _080BABF2 b _080BACA2 .align 2, 0 _080BABE4: .4byte 0x020387b4 _080BABE8: cmp r0, 0x2 beq _080BAC48 cmp r0, 0x3 beq _080BAC74 b _080BACA2 _080BABF2: ldr r0, _080BAC04 ldrb r0, [r0] cmp r0, 0 beq _080BAC0C lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080BAC08 b _080BAC98 .align 2, 0 _080BAC04: .4byte 0x020387d8 _080BAC08: .4byte gUnknown_084537C0 _080BAC0C: lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080BAC18 b _080BAC98 .align 2, 0 _080BAC18: .4byte gUnknown_08452590 _080BAC1C: ldr r0, _080BAC30 ldrb r0, [r0] cmp r0, 0 beq _080BAC38 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080BAC34 b _080BAC98 .align 2, 0 _080BAC30: .4byte 0x020387d8 _080BAC34: .4byte gUnknown_08453DC0 _080BAC38: lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080BAC44 b _080BAC98 .align 2, 0 _080BAC44: .4byte gUnknown_08452B90 _080BAC48: ldr r0, _080BAC5C ldrb r0, [r0] cmp r0, 0 beq _080BAC64 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080BAC60 b _080BAC98 .align 2, 0 _080BAC5C: .4byte 0x020387d8 _080BAC60: .4byte gUnknown_084543C0 _080BAC64: lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080BAC70 b _080BAC98 .align 2, 0 _080BAC70: .4byte gUnknown_08453190 _080BAC74: ldr r0, _080BAC88 ldrb r0, [r0] cmp r0, 0 beq _080BAC90 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080BAC8C b _080BAC98 .align 2, 0 _080BAC88: .4byte 0x020387d8 _080BAC8C: .4byte gUnknown_084549C0 _080BAC90: lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080BACCC _080BAC98: adds r0, r1 bl sub_81DF43C ldr r1, _080BACD0 str r0, [r1] _080BACA2: ldr r0, _080BACD0 ldr r0, [r0] cmp r0, 0 beq _080BACC6 ldr r5, _080BACD4 bl sub_81DF594 strb r0, [r5] ldr r4, _080BACD8 lsls r0, 24 lsrs r0, 24 ldrb r2, [r4] cmp r0, r2 beq _080BACC2 bl sub_80BAD5C _080BACC2: ldrb r0, [r5] strb r0, [r4] _080BACC6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BACCC: .4byte gUnknown_08453790 _080BACD0: .4byte 0x03005d30 _080BACD4: .4byte 0x020387b1 _080BACD8: .4byte 0x020387b2 thumb_func_end sub_80BAA48 thumb_func_start sub_80BACDC sub_80BACDC: @ 80BACDC push {r4-r6,lr} sub sp, 0x40 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080BAD50 mov r0, sp movs r2, 0x40 bl memcpy ldr r6, _080BAD54 ldr r5, _080BAD58 movs r1, 0 ldrsb r1, [r5, r1] lsls r1, 2 adds r1, r6 lsls r4, 24 asrs r4, 24 ldr r0, [r1] adds r0, r4 str r0, [r1] movs r2, 0 ldrsb r2, [r5, r2] lsls r0, r2, 2 adds r3, r0, r6 lsls r0, r2, 1 adds r0, 0x1 lsls r0, 2 add r0, sp ldr r1, [r3] ldr r0, [r0] cmp r1, r0 ble _080BAD26 lsls r0, r2, 3 add r0, sp ldr r0, [r0] str r0, [r3] _080BAD26: movs r2, 0 ldrsb r2, [r5, r2] lsls r0, r2, 2 adds r3, r0, r6 lsls r0, r2, 3 add r0, sp ldr r1, [r3] ldr r0, [r0] cmp r1, r0 bge _080BAD46 lsls r0, r2, 1 adds r0, 0x1 lsls r0, 2 add r0, sp ldr r0, [r0] str r0, [r3] _080BAD46: add sp, 0x40 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BAD50: .4byte gUnknown_083D039C _080BAD54: .4byte 0x020387b4 _080BAD58: .4byte 0x020387b3 thumb_func_end sub_80BACDC thumb_func_start sub_80BAD5C sub_80BAD5C: @ 80BAD5C push {r4,lr} ldr r4, _080BAE00 ldr r0, [r4] adds r0, 0x1 movs r1, 0xB movs r2, 0x1 movs r3, 0x5 bl sub_80BAE78 ldr r0, [r4, 0x4] movs r1, 0xB movs r2, 0x3 movs r3, 0x5 bl sub_80BAE78 ldr r0, [r4, 0x8] movs r1, 0xB movs r2, 0x5 movs r3, 0x5 bl sub_80BAE78 ldr r0, [r4, 0xC] movs r1, 0xB movs r2, 0x7 movs r3, 0x5 bl sub_80BAE78 ldr r0, [r4, 0x10] movs r1, 0xB movs r2, 0x9 movs r3, 0x5 bl sub_80BAE78 ldr r0, [r4, 0x14] movs r1, 0xB movs r2, 0xB movs r3, 0x5 bl sub_80BAE78 ldr r0, [r4, 0x18] movs r1, 0xB movs r2, 0xD movs r3, 0x5 bl sub_80BAE78 ldr r0, [r4, 0x1C] movs r1, 0xB movs r2, 0xF movs r3, 0x5 bl sub_80BAE78 ldr r0, [r4, 0x20] movs r1, 0xB movs r2, 0x11 movs r3, 0x5 bl sub_80BAE78 ldr r0, _080BAE04 ldrb r0, [r0] movs r1, 0x1B movs r2, 0x10 movs r3, 0x1 bl sub_80BAE78 ldr r0, _080BAE08 ldrb r0, [r0] movs r1, 0x1B movs r2, 0xE movs r3, 0x1 bl sub_80BAE78 ldr r0, _080BAE0C ldrb r0, [r0] movs r1, 0x1B movs r2, 0xC movs r3, 0x1 bl sub_80BAE78 pop {r4} pop {r0} bx r0 .align 2, 0 _080BAE00: .4byte 0x020387b4 _080BAE04: .4byte 0x020387b1 _080BAE08: .4byte 0x020387d8 _080BAE0C: .4byte 0x020387d9 thumb_func_end sub_80BAD5C thumb_func_start sub_80BAE10 sub_80BAE10: @ 80BAE10 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r1, _080BAE6C mov r0, sp movs r2, 0x2 bl memcpy add r0, sp, 0x4 mov r8, r0 ldr r1, _080BAE70 movs r2, 0x2 bl memcpy ldr r6, _080BAE74 lsls r4, 1 adds r0, r4, r6 ldrb r1, [r0] adds r4, 0x1 adds r4, r6 ldrb r2, [r4] mov r0, r8 bl Print lsls r5, 1 adds r0, r5, r6 ldrb r1, [r0] adds r5, 0x1 adds r5, r6 ldrb r2, [r5] mov r0, sp bl Print add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BAE6C: .4byte gUnknown_083D03DC _080BAE70: .4byte gUnknown_083D03DE _080BAE74: .4byte gUnknown_083D0300 thumb_func_end sub_80BAE10 thumb_func_start sub_80BAE78 sub_80BAE78: @ 80BAE78 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C mov r8, r0 lsls r1, 16 lsrs r6, r1, 16 lsls r2, 16 lsrs r2, 16 lsls r3, 24 lsrs r7, r3, 24 mov r1, sp ldr r0, _080BAF80 ldm r0!, {r3-r5} stm r1!, {r3-r5} ldm r0!, {r3-r5} stm r1!, {r3-r5} movs r5, 0 add r0, sp, 0x18 mov r9, r0 cmp r5, r7 bgt _080BAEC0 mov r4, r9 movs r3, 0 _080BAEAC: lsls r0, r5, 24 asrs r0, 24 adds r1, r4, r0 strb r3, [r1] adds r0, 0x1 lsls r0, 24 lsrs r5, r0, 24 asrs r0, 24 cmp r0, r7 ble _080BAEAC _080BAEC0: adds r0, r7, 0x1 add r0, r9 movs r1, 0xFF strb r1, [r0] movs r1, 0 mov r3, r8 cmp r3, 0 bge _080BAED6 negs r3, r3 mov r8, r3 movs r1, 0x1 _080BAED6: movs r4, 0 mov r10, r4 cmp r7, 0x1 bne _080BAEE2 movs r5, 0x1 mov r10, r5 _080BAEE2: subs r0, r7, 0x1 lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 24 lsls r6, 24 str r6, [sp, 0x24] lsls r2, 24 str r2, [sp, 0x28] cmp r0, 0 blt _080BAF62 str r1, [sp, 0x20] _080BAEF8: asrs r6, r0, 24 lsls r0, r6, 2 add r0, sp ldr r1, [r0] mov r0, r8 bl __divsi3 lsls r0, 24 lsrs r2, r0, 24 cmp r0, 0 bne _080BAF1A mov r0, r10 cmp r0, 0 bne _080BAF1A lsls r4, r5, 24 cmp r6, 0 bne _080BAF46 _080BAF1A: lsls r4, r5, 24 ldr r3, [sp, 0x20] cmp r3, 0 beq _080BAF34 mov r5, r10 cmp r5, 0 bne _080BAF34 asrs r0, r4, 24 subs r0, r7, r0 subs r0, 0x1 add r0, r9 movs r1, 0xAE strb r1, [r0] _080BAF34: asrs r1, r4, 24 subs r1, r7, r1 add r1, r9 lsls r0, r2, 24 asrs r0, 24 subs r0, 0x5F strb r0, [r1] movs r0, 0x1 mov r10, r0 _080BAF46: asrs r4, 24 lsls r0, r4, 2 add r0, sp ldr r1, [r0] mov r0, r8 bl __modsi3 mov r8, r0 subs r4, 0x1 lsls r4, 24 lsrs r5, r4, 24 lsls r0, r5, 24 cmp r0, 0 bge _080BAEF8 _080BAF62: ldr r3, [sp, 0x24] lsrs r1, r3, 24 ldr r4, [sp, 0x28] lsrs r2, r4, 24 mov r0, r9 bl Print add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BAF80: .4byte gUnknown_083D03E0 thumb_func_end sub_80BAE78 thumb_func_start sub_80BAF84 sub_80BAF84: @ 80BAF84 push {r4-r6,lr} sub sp, 0x14 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080BB01C mov r0, sp movs r2, 0x3 bl memcpy add r6, sp, 0x4 ldr r1, _080BB020 adds r0, r6, 0 movs r2, 0x4 bl memcpy add r5, sp, 0x8 ldr r1, _080BB024 adds r0, r5, 0 movs r2, 0x9 bl memcpy movs r1, 0x80 lsls r1, 19 movs r2, 0xC5 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow mov r0, sp movs r1, 0x3 movs r2, 0x2 bl Print adds r0, r6, 0 movs r1, 0x3 movs r2, 0x4 bl Print adds r0, r5, 0 movs r1, 0x3 movs r2, 0x8 bl Print ldr r1, _080BB028 movs r0, 0xF0 strh r0, [r1] adds r1, 0x4 movs r0, 0xA0 strh r0, [r1] ldr r1, _080BB02C movs r0, 0x1 str r0, [r1] movs r0, 0 str r0, [r1, 0x8] str r0, [r1, 0x1C] str r0, [r1, 0x18] str r0, [r1, 0x14] bl sub_80BB1D4 ldr r1, _080BB030 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080BB034 str r1, [r0] add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BB01C: .4byte gUnknown_083D03FD _080BB020: .4byte gUnknown_083D0400 _080BB024: .4byte gUnknown_083D0381 _080BB028: .4byte REG_WIN0H _080BB02C: .4byte 0x020387b4 _080BB030: .4byte 0x03004b20 _080BB034: .4byte sub_80BB038 thumb_func_end sub_80BAF84 thumb_func_start sub_80BB038 sub_80BB038: @ 80BB038 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 bl sub_80BB1D4 ldr r2, _080BB058 ldr r0, [r2, 0x18] cmp r0, 0 beq _080BB0A2 ldr r0, [r2, 0x14] cmp r0, 0 beq _080BB05C subs r0, 0x1 str r0, [r2, 0x14] b _080BB0A2 .align 2, 0 _080BB058: .4byte 0x020387b4 _080BB05C: ldr r0, _080BB088 ldr r1, [r2, 0x8] adds r1, r0 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 movs r0, 0x80 negs r0, r0 cmp r1, r0 beq _080BB08C cmp r1, 0x7F bne _080BB0A2 ldr r0, [r2, 0x1C] adds r0, 0x2 str r0, [r2, 0x1C] cmp r0, 0x3E bgt _080BB0A2 lsls r0, 24 asrs r0, 24 bl sub_8075560 b _080BB0A2 .align 2, 0 _080BB088: .4byte gUnknown_083D03F8 _080BB08C: ldr r0, [r2, 0x1C] subs r1, r0, 0x2 str r1, [r2, 0x1C] movs r0, 0x40 negs r0, r0 cmp r1, r0 ble _080BB0A2 lsls r0, r1, 24 asrs r0, 24 bl sub_8075560 _080BB0A2: ldr r1, _080BB0EC ldrh r3, [r1, 0x2E] movs r0, 0x2 ands r0, r3 lsls r0, 16 lsrs r4, r0, 16 adds r7, r1, 0 cmp r4, 0 beq _080BB104 movs r1, 0x80 lsls r1, 19 ldr r2, _080BB0F0 adds r0, r2, 0 strh r0, [r1] adds r1, 0x40 ldr r2, _080BB0F4 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080BB0F8 adds r0, r2, 0 strh r0, [r1] movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset ldr r1, _080BB0FC lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080BB100 str r1, [r0] b _080BB1C8 .align 2, 0 _080BB0EC: .4byte 0x03001770 _080BB0F0: .4byte 0x00007140 _080BB0F4: .4byte 0x000011df _080BB0F8: .4byte 0x0000011f _080BB0FC: .4byte 0x03004b20 _080BB100: .4byte sub_80BA258 _080BB104: movs r6, 0x1 adds r2, r6, 0 ands r2, r3 cmp r2, 0 beq _080BB15E ldr r0, _080BB138 ldr r5, _080BB13C ldr r1, [r5, 0x8] adds r1, r0 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 movs r0, 0x80 negs r0, r0 cmp r1, r0 beq _080BB140 cmp r1, 0x7F bne _080BB154 ldrh r0, [r5] movs r4, 0x40 negs r4, r4 adds r1, r4, 0 bl audio_play_and_stuff str r4, [r5, 0x1C] b _080BB14C .align 2, 0 _080BB138: .4byte gUnknown_083D03F8 _080BB13C: .4byte 0x020387b4 _080BB140: ldrh r0, [r5] movs r1, 0x3F bl audio_play_and_stuff movs r0, 0x3F str r0, [r5, 0x1C] _080BB14C: str r6, [r5, 0x18] movs r0, 0x1E str r0, [r5, 0x14] b _080BB1C8 _080BB154: ldrh r0, [r5] bl audio_play_and_stuff str r4, [r5, 0x18] b _080BB1C8 _080BB15E: movs r0, 0x80 lsls r0, 2 ands r0, r3 cmp r0, 0 beq _080BB176 ldr r1, _080BB1AC ldr r0, [r1, 0x8] adds r0, 0x1 str r0, [r1, 0x8] cmp r0, 0x4 ble _080BB176 str r2, [r1, 0x8] _080BB176: ldrh r1, [r7, 0x2E] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080BB192 ldr r1, _080BB1AC ldr r0, [r1, 0x8] subs r0, 0x1 str r0, [r1, 0x8] cmp r0, 0 bge _080BB192 movs r0, 0x4 str r0, [r1, 0x8] _080BB192: ldrh r1, [r7, 0x30] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080BB1B0 ldr r1, _080BB1AC ldr r0, [r1] adds r0, 0x1 str r0, [r1] cmp r0, 0xF7 ble _080BB1C8 movs r0, 0 b _080BB1C6 .align 2, 0 _080BB1AC: .4byte 0x020387b4 _080BB1B0: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080BB1C8 ldr r1, _080BB1D0 ldr r0, [r1] subs r0, 0x1 str r0, [r1] cmp r0, 0 bge _080BB1C8 movs r0, 0xF7 _080BB1C6: str r0, [r1] _080BB1C8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BB1D0: .4byte 0x020387b4 thumb_func_end sub_80BB038 thumb_func_start sub_80BB1D4 sub_80BB1D4: @ 80BB1D4 push {r4,r5,lr} sub sp, 0x10 ldr r1, _080BB218 mov r0, sp movs r2, 0x5 bl memcpy add r5, sp, 0x8 ldr r1, _080BB21C adds r0, r5, 0 movs r2, 0x5 bl memcpy ldr r4, _080BB220 ldr r0, [r4] movs r1, 0x7 movs r2, 0x2 movs r3, 0x3 bl sub_80BAE78 ldr r1, _080BB224 ldr r0, [r4, 0x8] adds r0, r1 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0x80 negs r0, r0 cmp r1, r0 beq _080BB228 cmp r1, 0x7F bne _080BB234 mov r0, sp b _080BB22A .align 2, 0 _080BB218: .4byte gUnknown_083D0404 _080BB21C: .4byte gUnknown_083D0409 _080BB220: .4byte 0x020387b4 _080BB224: .4byte gUnknown_083D03F8 _080BB228: adds r0, r5, 0 _080BB22A: movs r1, 0x7 movs r2, 0x4 bl Print b _080BB240 _080BB234: adds r0, r1, 0 movs r1, 0x7 movs r2, 0x4 movs r3, 0x3 bl sub_80BAE78 _080BB240: bl mplay_has_finished_maybe lsls r0, 24 lsrs r0, 24 movs r1, 0xC movs r2, 0x8 movs r3, 0x1 bl sub_80BAE78 add sp, 0x10 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80BB1D4 thumb_func_start sub_80BB25C sub_80BB25C: @ 80BB25C push {r4-r6,lr} sub sp, 0x14 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _080BB374 bl SetUpWindowConfig ldr r0, _080BB378 bl sub_8071C4C ldr r1, _080BB37C movs r0, 0x1 strh r0, [r1] bl ResetSpriteData bl FreeAllSpritePalettes ldr r1, _080BB380 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0x80 lsls r1, 6 orrs r0, r1 ldr r1, _080BB384 ands r0, r1 movs r1, 0xE8 lsls r1, 13 orrs r0, r1 ldr r1, _080BB388 ands r0, r1 movs r1, 0xC0 lsls r1, 20 orrs r0, r1 str r0, [sp, 0x4] ldr r1, _080BB38C ldr r0, [sp, 0x8] ands r0, r1 movs r1, 0xF0 lsls r1, 5 orrs r0, r1 ldr r1, _080BB390 ands r0, r1 movs r1, 0x4 orrs r0, r1 str r0, [sp, 0x8] movs r1, 0 ldr r0, _080BB394 strb r1, [r0] add r4, sp, 0xC _080BB2BE: add r0, sp, 0x4 movs r1, 0x3 bl sub_8119E3C lsls r0, 24 cmp r0, 0 beq _080BB2BE ldr r1, _080BB380 ldr r0, [sp, 0xC] ands r0, r1 ldr r1, _080BB384 ands r0, r1 movs r1, 0xF0 lsls r1, 12 orrs r0, r1 ldr r1, _080BB388 ands r0, r1 movs r1, 0xD0 lsls r1, 20 orrs r0, r1 str r0, [sp, 0xC] ldr r1, _080BB390 ldr r0, [r4, 0x4] ands r0, r1 movs r1, 0xC orrs r0, r1 ldr r1, _080BB38C ands r0, r1 movs r1, 0xC0 lsls r1, 4 orrs r0, r1 str r0, [r4, 0x4] movs r1, 0 ldr r0, _080BB394 strb r1, [r0] lsls r5, r6, 2 _080BB306: adds r0, r4, 0 movs r1, 0x2 bl sub_811A3CC lsls r0, 24 cmp r0, 0 beq _080BB306 movs r0, 0 movs r1, 0x10 movs r2, 0x5 movs r3, 0x13 bl DrawDefaultWindow bl sub_80BB494 movs r0, 0x1 negs r0, r0 movs r4, 0 str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080BB398 strh r4, [r0] adds r0, 0x2 strh r4, [r0] ldr r1, _080BB39C ldr r2, _080BB3A0 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080BB3A4 adds r0, r2, 0 strh r0, [r1] subs r1, 0xE adds r2, 0x3D adds r0, r2, 0 strh r0, [r1] ldr r0, _080BB3A8 movs r1, 0x2 bl sub_81DE0D0 ldr r1, _080BB3AC adds r0, r5, r6 lsls r0, 3 adds r0, r1 ldr r1, _080BB3B0 str r1, [r0] add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BB374: .4byte gWindowConfig_81E6C3C _080BB378: .4byte gWindowConfig_81E6CE4 _080BB37C: .4byte 0x03005d34 _080BB380: .4byte 0xffff0000 _080BB384: .4byte 0xff00ffff _080BB388: .4byte 0x00ffffff _080BB38C: .4byte 0xffff00ff _080BB390: .4byte 0xffffff00 _080BB394: .4byte 0x03005e98 _080BB398: .4byte REG_BG2HOFS _080BB39C: .4byte REG_BG2CNT _080BB3A0: .4byte 0x00000f01 _080BB3A4: .4byte 0x00001d03 _080BB3A8: .4byte 0x03007380 _080BB3AC: .4byte 0x03004b20 _080BB3B0: .4byte sub_80BB3B4 thumb_func_end sub_80BB25C thumb_func_start sub_80BB3B4 sub_80BB3B4: @ 80BB3B4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x3 bl sub_8119F88 ldr r4, _080BB478 ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080BB3D4 ldr r0, _080BB47C ldrh r0, [r0] bl sub_811A050 _080BB3D4: ldrh r1, [r4, 0x2E] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080BB3E4 bl sub_8075398 _080BB3E4: ldrh r1, [r4, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080BB408 ldr r1, _080BB47C ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] lsls r0, 16 cmp r0, 0 bne _080BB404 movs r2, 0xC0 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] _080BB404: bl sub_80BB494 _080BB408: ldr r0, _080BB478 ldrh r1, [r0, 0x30] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080BB42E ldr r2, _080BB47C ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] lsls r0, 16 movs r1, 0xC0 lsls r1, 17 cmp r0, r1 bls _080BB42A movs r0, 0x1 strh r0, [r2] _080BB42A: bl sub_80BB494 _080BB42E: ldr r0, _080BB478 ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080BB472 movs r1, 0x80 lsls r1, 19 ldr r2, _080BB480 adds r0, r2, 0 strh r0, [r1] adds r1, 0x40 ldr r2, _080BB484 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080BB488 adds r0, r2, 0 strh r0, [r1] movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset ldr r1, _080BB48C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080BB490 str r1, [r0] bl sub_811A4F8 _080BB472: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BB478: .4byte 0x03001770 _080BB47C: .4byte 0x03005d34 _080BB480: .4byte 0x00007140 _080BB484: .4byte 0x000011df _080BB488: .4byte 0x0000011f _080BB48C: .4byte 0x03004b20 _080BB490: .4byte sub_80BA258 thumb_func_end sub_80BB3B4 thumb_func_start sub_80BB494 sub_80BB494: @ 80BB494 push {lr} ldr r0, _080BB4A8 ldrh r0, [r0] movs r1, 0x1 movs r2, 0x11 movs r3, 0x3 bl sub_80BAE78 pop {r0} bx r0 .align 2, 0 _080BB4A8: .4byte 0x03005d34 thumb_func_end sub_80BB494 thumb_func_start sub_80BB4AC sub_80BB4AC: @ 80BB4AC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r3, r0, 0 movs r0, 0 strb r0, [r3] movs r2, 0 adds r4, r3, 0x2 movs r5, 0xFF _080BB4C4: adds r0, r4, r2 ldrb r1, [r0] orrs r1, r5 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x6 bls _080BB4C4 movs r2, 0 adds r5, r3, 0 adds r5, 0x12 adds r6, r3, 0 adds r6, 0x22 adds r7, r3, 0 adds r7, 0x4C adds r0, r3, 0 adds r0, 0x34 str r0, [sp] adds r1, r3, 0 adds r1, 0x9A str r1, [sp, 0x4] movs r0, 0x7C adds r0, r3 mov r10, r0 movs r1, 0x88 adds r1, r3 mov r9, r1 movs r0, 0x94 adds r0, r3 mov r8, r0 adds r1, r3, 0 adds r1, 0x9 movs r4, 0 _080BB508: adds r0, r1, r2 strb r4, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x3 bls _080BB508 movs r0, 0 movs r1, 0 strh r1, [r3, 0xE] strb r0, [r3, 0x10] strb r0, [r3, 0x11] movs r0, 0 strb r0, [r3, 0x1] movs r2, 0 adds r4, r5, 0 adds r3, r6, 0 _080BB52A: adds r0, r4, r2 strb r1, [r0] adds r0, r3, r2 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0xF bls _080BB52A movs r2, 0 mov r12, r7 movs r5, 0 _080BB542: movs r1, 0 adds r7, r2, 0x1 lsls r4, r2, 2 lsls r6, r2, 1 adds r3, r4, 0 _080BB54C: adds r0, r3, r1 lsls r0, 1 add r0, r12 strh r5, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x3 bls _080BB54C ldr r1, [sp] adds r0, r1, r4 str r5, [r0] ldr r1, [sp, 0x4] adds r0, r1, r2 strb r5, [r0] mov r1, r10 adds r0, r1, r6 strh r5, [r0] mov r1, r9 adds r0, r1, r6 strh r5, [r0] mov r1, r8 adds r0, r1, r2 strb r5, [r0] lsls r0, r7, 16 lsrs r2, r0, 16 cmp r2, 0x5 bls _080BB542 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BB4AC thumb_func_start sub_80BB594 sub_80BB594: @ 80BB594 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 2 adds r0, r1 lsls r0, 5 ldr r1, _080BB5B0 adds r0, r1 bl sub_80BB4AC pop {r0} bx r0 .align 2, 0 _080BB5B0: .4byte 0x0202713c thumb_func_end sub_80BB594 thumb_func_start sub_80BB5B4 sub_80BB5B4: @ 80BB5B4 push {r4,lr} movs r4, 0 _080BB5B8: lsls r0, r4, 24 lsrs r0, 24 bl sub_80BB594 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x13 bls _080BB5B8 pop {r4} pop {r0} bx r0 thumb_func_end sub_80BB5B4 thumb_func_start sub_80BB5D0 sub_80BB5D0: @ 80BB5D0 ldr r0, _080BB5DC ldr r1, _080BB5E0 ldrh r1, [r1] strb r1, [r0] bx lr .align 2, 0 _080BB5DC: .4byte 0x020387dc _080BB5E0: .4byte 0x0202e8cc thumb_func_end sub_80BB5D0 thumb_func_start sub_80BB5E4 sub_80BB5E4: @ 80BB5E4 push {r4,lr} ldr r0, _080BB5F4 movs r1, 0 strh r1, [r0] movs r3, 0 adds r4, r0, 0 b _080BB5FE .align 2, 0 _080BB5F4: .4byte 0x0202e8dc _080BB5F8: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 _080BB5FE: cmp r3, 0x13 bhi _080BB626 ldr r2, _080BB62C ldr r1, _080BB630 lsls r0, r3, 2 adds r0, r3 lsls r0, 5 adds r0, r1 ldr r1, _080BB634 adds r0, r1 ldrb r1, [r2] ldrb r0, [r0] cmp r1, r0 bne _080BB5F8 movs r0, 0x1 strh r0, [r4] ldr r0, _080BB638 adds r1, r3, 0 bl VarSet _080BB626: pop {r4} pop {r0} bx r0 .align 2, 0 _080BB62C: .4byte 0x020387dc _080BB630: .4byte 0x02025734 _080BB634: .4byte 0x00001a08 _080BB638: .4byte 0x00004054 thumb_func_end sub_80BB5E4 thumb_func_start sub_80BB63C sub_80BB63C: @ 80BB63C push {lr} ldr r0, _080BB654 ldr r1, _080BB658 adds r0, r1 ldrb r1, [r0] cmp r1, 0 beq _080BB660 ldr r1, _080BB65C movs r0, 0x1 strh r0, [r1] b _080BB664 .align 2, 0 _080BB654: .4byte 0x02025734 _080BB658: .4byte 0x00001a08 _080BB65C: .4byte 0x0202e8dc _080BB660: ldr r0, _080BB668 strh r1, [r0] _080BB664: pop {r0} bx r0 .align 2, 0 _080BB668: .4byte 0x0202e8dc thumb_func_end sub_80BB63C thumb_func_start sub_80BB66C sub_80BB66C: @ 80BB66C push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt adds r1, r0, 0 ldr r2, _080BB6A4 adds r0, r2, 0 ands r1, r0 adds r0, r1, 0 subs r0, 0x90 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080BB6A8 movs r0, 0x1 b _080BB702 .align 2, 0 _080BB6A4: .4byte 0x00000fff _080BB6A8: adds r0, r1, 0 subs r0, 0x92 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080BB6B8 movs r0, 0x2 b _080BB702 _080BB6B8: adds r0, r1, 0 subs r0, 0x9A lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080BB6C8 movs r0, 0x3 b _080BB702 _080BB6C8: adds r0, r1, 0 subs r0, 0x94 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080BB6D8 movs r0, 0x4 b _080BB702 _080BB6D8: adds r0, r1, 0 subs r0, 0x96 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _080BB6EC cmp r1, 0x9C beq _080BB6EC cmp r1, 0x9D bne _080BB6F0 _080BB6EC: movs r0, 0x5 b _080BB702 _080BB6F0: adds r0, r1, 0 subs r0, 0x98 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _080BB700 movs r0, 0 b _080BB702 _080BB700: movs r0, 0x6 _080BB702: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_80BB66C thumb_func_start sub_80BB70C sub_80BB70C: @ 80BB70C push {r4,lr} ldr r4, _080BB720 bl sub_80BB66C lsls r0, 24 lsrs r0, 24 strh r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080BB720: .4byte 0x0202e8d2 thumb_func_end sub_80BB70C thumb_func_start unref_sub_80BB724 unref_sub_80BB724: @ 80BB724 push {r4-r6,lr} adds r4, r0, 0 lsls r1, 24 movs r2, 0 ldr r6, _080BB748 lsrs r3, r1, 24 ldr r5, _080BB74C _080BB732: lsls r0, r2, 1 adds r0, r4 ldrh r1, [r0] adds r0, r6, 0 ands r0, r1 cmp r0, r3 bne _080BB750 lsls r0, r2, 16 asrs r0, 16 b _080BB75E .align 2, 0 _080BB748: .4byte 0x00000fff _080BB74C: .4byte 0x000001ff _080BB750: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r5 bls _080BB732 movs r0, 0x1 negs r0, r0 _080BB75E: pop {r4-r6} pop {r1} bx r1 thumb_func_end unref_sub_80BB724 thumb_func_start sub_80BB764 sub_80BB764: @ 80BB764 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r9, r0 mov r10, r1 lsls r2, 16 lsrs r2, 16 mov r8, r2 movs r0, 0 mov r12, r0 ldr r1, _080BB7C8 ldr r0, [r1] ldr r3, [r0, 0x4] cmp r12, r3 bge _080BB7EE ldr r0, [r0] str r0, [sp, 0x4] str r3, [sp] _080BB78E: movs r2, 0 mov r1, r12 lsls r7, r1, 16 ldr r0, [sp, 0x4] cmp r2, r0 bge _080BB7DC ldr r0, _080BB7C8 ldr r1, [r0] asrs r0, r7, 16 ldr r4, [r1] adds r6, r0, 0 muls r6, r4 ldr r5, [r1, 0xC] _080BB7A8: lsls r0, r2, 16 asrs r3, r0, 16 adds r0, r6, r3 lsls r0, 1 adds r0, r5 ldrh r1, [r0] ldr r0, _080BB7CC ands r0, r1 cmp r0, r8 bne _080BB7D0 mov r1, r9 strh r2, [r1] mov r1, r12 mov r0, r10 strh r1, [r0] b _080BB7EE .align 2, 0 _080BB7C8: .4byte 0x0202e828 _080BB7CC: .4byte 0x000003ff _080BB7D0: adds r0, r3, 0x1 lsls r0, 16 lsrs r2, r0, 16 asrs r0, 16 cmp r0, r4 blt _080BB7A8 _080BB7DC: movs r1, 0x80 lsls r1, 9 adds r0, r7, r1 lsrs r1, r0, 16 mov r12, r1 asrs r0, 16 ldr r1, [sp] cmp r0, r1 blt _080BB78E _080BB7EE: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BB764 thumb_func_start sub_80BB800 sub_80BB800: @ 80BB800 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileIdAt movs r5, 0 mov r12, r4 lsls r0, 16 asrs r3, r0, 16 ldr r1, _080BB84C mov r8, r1 adds r7, r0, 0 mov r4, sp mov r6, r12 _080BB834: ldr r0, _080BB84C lsls r1, r5, 2 adds r2, r1, r0 ldrh r0, [r2] cmp r0, r3 bne _080BB850 movs r3, 0 ldrsh r0, [r4, r3] movs r5, 0 ldrsh r1, [r6, r5] ldrh r3, [r2, 0x2] b _080BB878 .align 2, 0 _080BB84C: .4byte gUnknown_083D1358 _080BB850: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x6 bls _080BB834 movs r5, 0 mov r4, sp mov r6, r12 _080BB860: lsls r0, r5, 2 mov r1, r8 adds r3, r0, r1 ldrh r1, [r3, 0x2] asrs r0, r7, 16 cmp r1, r0 bne _080BB892 movs r2, 0 ldrsh r0, [r4, r2] movs r5, 0 ldrsh r1, [r6, r5] ldrh r3, [r3] _080BB878: movs r5, 0xC0 lsls r5, 4 adds r2, r5, 0 orrs r2, r3 bl MapGridSetMetatileIdAt movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0 ldrsh r1, [r6, r2] bl CurrentMapDrawMetatileAt b _080BB89C _080BB892: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x6 bls _080BB860 _080BB89C: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BB800 thumb_func_start sub_80BB8A8 sub_80BB8A8: @ 80BB8A8 push {lr} adds r2, r0, 0 movs r1, 0 _080BB8AE: adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0xFF bne _080BB8BA adds r0, r1, 0 b _080BB8C6 _080BB8BA: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x6 bls _080BB8AE movs r0, 0x7 _080BB8C6: pop {r1} bx r1 thumb_func_end sub_80BB8A8 thumb_func_start sub_80BB8CC sub_80BB8CC: @ 80BB8CC push {r4-r6,lr} ldr r2, _080BB948 ldr r0, _080BB94C ldrb r1, [r0] ldr r3, _080BB950 adds r0, r2, r3 strb r1, [r0] movs r3, 0 ldr r0, _080BB954 adds r2, r0 ldr r4, _080BB958 _080BB8E2: adds r1, r3, r2 adds r0, r3, r4 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _080BB8E2 ldr r0, _080BB95C movs r1, 0 bl VarSet ldr r6, _080BB960 adds r0, r6, 0 bl sub_80BB8A8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _080BB964 adds r0, r5, 0 movs r1, 0xFF movs r2, 0x7 bl memset adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 bl StringCopyN ldrb r0, [r6, 0x8] subs r5, 0x1 movs r1, 0x1 ands r1, r0 lsls r1, 4 ldrb r2, [r5] movs r0, 0x11 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5] ldr r0, _080BB968 ldr r1, _080BB96C ldrb r1, [r1, 0x14] bl VarSet pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BB948: .4byte 0x02025734 _080BB94C: .4byte 0x020387dc _080BB950: .4byte 0x00001a08 _080BB954: .4byte 0x00001a11 _080BB958: .4byte 0x02024eae _080BB95C: .4byte 0x00004054 _080BB960: .4byte gSaveBlock2 _080BB964: .4byte 0x0202713e _080BB968: .4byte 0x00004026 _080BB96C: .4byte 0x0202e828 thumb_func_end sub_80BB8CC thumb_func_start sub_80BB970 sub_80BB970: @ 80BB970 push {r4-r7,lr} adds r5, r0, 0 movs r2, 0 b _080BBA06 _080BB978: ldr r0, [r5, 0x10] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r3, r1, r0 ldrb r0, [r3, 0x5] adds r7, r2, 0x1 cmp r0, 0x8 bne _080BBA02 movs r2, 0 ldr r4, _080BB9E0 adds r6, r1, 0 _080BB990: lsls r0, r2, 2 adds r0, r2 lsls r0, 5 adds r0, r4 ldr r1, _080BB9E4 adds r0, r1 ldrb r1, [r0] ldr r0, [r3, 0x8] cmp r1, r0 bne _080BB9F8 ldrh r0, [r3] adds r0, 0x7 ldrh r1, [r3, 0x2] adds r1, 0x7 bl MapGridGetMetatileIdAt movs r3, 0 lsls r0, 16 asrs r4, r0, 16 _080BB9B6: ldr r0, _080BB9E8 lsls r1, r3, 2 adds r2, r1, r0 ldrh r0, [r2] cmp r0, r4 bne _080BB9EC ldr r1, [r5, 0x10] adds r1, r6, r1 ldrh r0, [r1] adds r0, 0x7 ldrh r1, [r1, 0x2] adds r1, 0x7 ldrh r3, [r2, 0x2] movs r4, 0xC0 lsls r4, 4 adds r2, r4, 0 orrs r2, r3 bl MapGridSetMetatileIdAt b _080BBA02 .align 2, 0 _080BB9E0: .4byte 0x02025734 _080BB9E4: .4byte 0x00001a08 _080BB9E8: .4byte gUnknown_083D1358 _080BB9EC: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x6 bls _080BB9B6 b _080BBA02 _080BB9F8: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x13 bls _080BB990 _080BBA02: lsls r0, r7, 16 lsrs r2, r0, 16 _080BBA06: ldrb r0, [r5, 0x3] cmp r2, r0 bcc _080BB978 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BB970 thumb_func_start sub_80BBA14 sub_80BBA14: @ 80BBA14 push {lr} ldr r0, _080BBA40 ldrb r0, [r0] movs r1, 0xA bl __udivsi3 ldr r2, _080BBA44 lsls r0, 26 asrs r0, 24 adds r1, r0, r2 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 adds r0, 0x1 adds r0, r2 movs r2, 0 ldrsb r2, [r0, r2] movs r0, 0x19 bl warp1_set_2 pop {r0} bx r0 .align 2, 0 _080BBA40: .4byte 0x020387dc _080BBA44: .4byte gUnknown_083D1374 thumb_func_end sub_80BBA14 thumb_func_start sub_80BBA48 sub_80BBA48: @ 80BBA48 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080BBA6C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, 0x1 beq _080BBA7C cmp r0, 0x1 bgt _080BBA70 cmp r0, 0 beq _080BBA76 b _080BBAD0 .align 2, 0 _080BBA6C: .4byte 0x03004b20 _080BBA70: cmp r0, 0x2 beq _080BBA94 b _080BBAD0 _080BBA76: movs r0, 0x1 strh r0, [r2, 0x8] b _080BBAD0 _080BBA7C: ldr r0, _080BBA90 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BBAD0 movs r0, 0x2 strh r0, [r2, 0x8] b _080BBAD0 .align 2, 0 _080BBA90: .4byte 0x0202f388 _080BBA94: ldr r0, _080BBAD8 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r2, _080BBADC lsls r1, r0, 2 adds r1, r0 lsls r1, 5 adds r1, r2 ldr r0, _080BBAE0 adds r1, r0 ldrb r0, [r1] cmp r0, 0xFE bhi _080BBAB6 adds r0, 0x1 strb r0, [r1] _080BBAB6: bl sub_80BBA14 bl warp_in ldr r0, _080BBAE4 ldr r1, _080BBAE8 str r1, [r0] ldr r0, _080BBAEC bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _080BBAD0: pop {r4} pop {r0} bx r0 .align 2, 0 _080BBAD8: .4byte 0x00004054 _080BBADC: .4byte 0x02025734 _080BBAE0: .4byte 0x00001a18 _080BBAE4: .4byte 0x0300485c _080BBAE8: .4byte sub_8080990 _080BBAEC: .4byte c2_load_new_map thumb_func_end sub_80BBA48 thumb_func_start sub_80BBAF0 sub_80BBAF0: @ 80BBAF0 push {lr} ldr r0, _080BBB1C movs r1, 0 bl CreateTask movs r0, 0x1 movs r1, 0 bl fade_screen ldr r0, _080BBB20 movs r1, 0x4 ldrsb r1, [r0, r1] movs r2, 0x5 ldrsb r2, [r0, r2] movs r3, 0x1 negs r3, r3 movs r0, 0 bl saved_warp2_set pop {r0} bx r0 .align 2, 0 _080BBB1C: .4byte sub_80BBA48 _080BBB20: .4byte 0x02025734 thumb_func_end sub_80BBAF0 thumb_func_start sub_80BBB24 sub_80BBB24: @ 80BBB24 push {lr} ldr r0, _080BBB40 ldrb r0, [r0, 0x17] cmp r0, 0x9 bne _080BBB48 ldr r0, _080BBB44 bl VarGet lsls r0, 16 cmp r0, 0 bne _080BBB48 movs r0, 0 b _080BBB4A .align 2, 0 _080BBB40: .4byte 0x0202e828 _080BBB44: .4byte 0x00004097 _080BBB48: movs r0, 0x1 _080BBB4A: pop {r1} bx r1 thumb_func_end sub_80BBB24 thumb_func_start sub_80BBB50 sub_80BBB50: @ 80BBB50 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080BBB88 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BBB8C adds r0, r1 movs r1, 0x2 bl FieldObjectTurn bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BBB80 bl script_env_2_enable_and_set_ctx_running adds r0, r4, 0 bl DestroyTask _080BBB80: pop {r4} pop {r0} bx r0 .align 2, 0 _080BBB88: .4byte 0x0202e858 _080BBB8C: .4byte 0x030048a0 thumb_func_end sub_80BBB50 thumb_func_start sub_80BBB90 sub_80BBB90: @ 80BBB90 push {r4,lr} sub sp, 0x4 bl script_env_2_enable bl HideMapNamePopUpWindow mov r4, sp adds r4, 0x2 movs r2, 0x88 lsls r2, 2 mov r0, sp adds r1, r4, 0 bl sub_80BB764 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] adds r0, 0x7 movs r2, 0 ldrsh r1, [r4, r2] adds r1, 0x7 movs r2, 0xE2 lsls r2, 4 bl MapGridSetMetatileIdAt mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] adds r0, 0x7 movs r2, 0 ldrsh r1, [r4, r2] adds r1, 0x7 bl CurrentMapDrawMetatileAt bl pal_fill_black ldr r0, _080BBBE8 movs r1, 0 bl CreateTask add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080BBBE8: .4byte sub_80BBB50 thumb_func_end sub_80BBB90 thumb_func_start sub_80BBBEC sub_80BBBEC: @ 80BBBEC push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _080BBC5C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BBC52 ldr r0, _080BBC60 ldrb r0, [r0] movs r1, 0xA bl __udivsi3 ldr r1, _080BBC64 movs r5, 0x4 ldrsb r5, [r1, r5] ldrb r1, [r1, 0x5] lsls r1, 24 asrs r1, 24 movs r2, 0x1 negs r2, r2 ldr r4, _080BBC68 lsls r0, 26 asrs r0, 24 adds r3, r0, 0x2 adds r3, r4 ldrb r3, [r3] lsls r3, 24 asrs r3, 24 adds r0, 0x3 adds r0, r4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 str r0, [sp] adds r0, r5, 0 bl warp1_set bl warp_in ldr r1, _080BBC6C ldr r0, _080BBC70 str r0, [r1] ldr r0, _080BBC74 bl SetMainCallback2 adds r0, r6, 0 bl DestroyTask _080BBC52: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BBC5C: .4byte 0x0202f388 _080BBC60: .4byte 0x020387dc _080BBC64: .4byte 0x02025734 _080BBC68: .4byte gUnknown_083D1374 _080BBC6C: .4byte 0x0300485c _080BBC70: .4byte sub_80BBB90 _080BBC74: .4byte c2_load_new_map thumb_func_end sub_80BBBEC thumb_func_start sub_80BBC78 sub_80BBC78: @ 80BBC78 push {lr} ldr r0, _080BBCA0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080BBCA4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0x8] movs r0, 0x1 movs r1, 0 bl fade_screen pop {r0} bx r0 .align 2, 0 _080BBCA0: .4byte sub_80BBBEC _080BBCA4: .4byte 0x03004b20 thumb_func_end sub_80BBC78 thumb_func_start CurrentMapIsSecretBase CurrentMapIsSecretBase: @ 80BBCA8 push {lr} ldr r1, _080BBCC0 movs r0, 0x4 ldrsb r0, [r1, r0] cmp r0, 0x19 bne _080BBCC4 ldrb r0, [r1, 0x5] cmp r0, 0x17 bhi _080BBCC4 movs r0, 0x1 b _080BBCC6 .align 2, 0 _080BBCC0: .4byte 0x02025734 _080BBCC4: movs r0, 0 _080BBCC6: pop {r1} bx r1 thumb_func_end CurrentMapIsSecretBase thumb_func_start sub_80BBCCC sub_80BBCCC: @ 80BBCCC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r8, r0 bl CurrentMapIsSecretBase lsls r0, 24 cmp r0, 0 beq _080BBDBC ldr r0, _080BBD70 bl VarGet lsls r0, 16 lsrs r5, r0, 16 movs r1, 0 mov r0, sp strh r1, [r0] ldr r6, _080BBD74 mov r4, sp ldr r0, _080BBD78 adds r7, r6, r0 _080BBCFC: lsls r0, r5, 2 adds r0, r5 lsls r0, 5 ldrh r1, [r4] adds r2, r0, r1 ldr r1, _080BBD7C adds r0, r6, r1 adds r1, r2, r0 ldrb r0, [r1] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x77 bhi _080BBD3A ldr r0, _080BBD80 ldrb r3, [r1] lsls r1, r3, 5 adds r1, r0 ldrb r0, [r1, 0x11] cmp r0, 0x4 beq _080BBD3A adds r0, r2, r7 ldrb r2, [r0] lsrs r0, r2, 4 adds r0, 0x7 movs r1, 0xF ands r1, r2 adds r1, 0x7 adds r2, r3, 0 bl sub_80FF394 _080BBD3A: ldrh r0, [r4] adds r0, 0x1 lsls r0, 16 lsrs r0, 16 strh r0, [r4] cmp r0, 0xF bls _080BBCFC cmp r5, 0 beq _080BBD88 mov r4, sp adds r4, 0x2 movs r2, 0x88 lsls r2, 2 mov r0, sp adds r1, r4, 0 bl sub_80BB764 mov r0, sp ldrh r0, [r0] adds r0, 0x7 ldrh r1, [r4] adds r1, 0x7 ldr r2, _080BBD84 bl MapGridSetMetatileIdAt b _080BBDBC .align 2, 0 _080BBD70: .4byte 0x00004054 _080BBD74: .4byte 0x02025734 _080BBD78: .4byte 0x00001a2a _080BBD7C: .4byte 0x00001a1a _080BBD80: .4byte gDecorations _080BBD84: .4byte 0x00000e21 _080BBD88: mov r0, r8 cmp r0, 0x1 bne _080BBDBC ldr r0, _080BBDC8 bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bne _080BBDBC mov r4, sp adds r4, 0x2 movs r2, 0x88 lsls r2, 2 mov r0, sp adds r1, r4, 0 bl sub_80BB764 mov r0, sp ldrh r0, [r0] adds r0, 0x7 ldrh r1, [r4] adds r1, 0x7 ldr r2, _080BBDCC bl MapGridSetMetatileIdAt _080BBDBC: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BBDC8: .4byte 0x00004089 _080BBDCC: .4byte 0x00000e0a thumb_func_end sub_80BBCCC thumb_func_start sub_80BBDD0 sub_80BBDD0: @ 80BBDD0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 ldr r0, _080BBE00 bl VarGet lsls r0, 16 lsrs r4, r0, 16 bl CurrentMapIsSecretBase lsls r0, 24 cmp r0, 0 bne _080BBE08 ldr r0, _080BBE04 str r0, [sp, 0x4] adds r0, 0xC str r0, [sp, 0x8] movs r1, 0xC str r1, [sp, 0xC] b _080BBE1E .align 2, 0 _080BBE00: .4byte 0x00004054 _080BBE04: .4byte 0x02027dbc _080BBE08: lsls r1, r4, 2 adds r1, r4 lsls r1, 5 ldr r0, _080BBF7C adds r2, r1, r0 str r2, [sp, 0x4] adds r0, 0x10 adds r1, r0 str r1, [sp, 0x8] movs r3, 0x10 str r3, [sp, 0xC] _080BBE1E: movs r6, 0 ldr r4, [sp, 0xC] cmp r6, r4 bcc _080BBE28 b _080BBF6C _080BBE28: ldr r5, _080BBF80 mov r10, r5 _080BBE2C: ldr r1, [sp, 0x4] adds r0, r1, r6 ldrb r1, [r0] mov r9, r0 adds r2, r6, 0x1 str r2, [sp, 0x10] cmp r1, 0 bne _080BBE3E b _080BBF5E _080BBE3E: ldrb r0, [r0] lsls r0, 5 ldr r3, _080BBF84 adds r0, r3 ldrb r0, [r0, 0x11] cmp r0, 0x4 beq _080BBE4E b _080BBF5E _080BBE4E: movs r5, 0 ldr r0, _080BBF88 ldr r2, [r0, 0x4] ldrb r3, [r2] mov r8, r0 cmp r5, r3 bcs _080BBE8E ldr r0, [r2, 0x4] ldrh r1, [r0, 0x14] ldr r4, _080BBF8C ldrh r0, [r4] adds r0, 0xAE adds r7, r4, 0 cmp r1, r0 beq _080BBE8E adds r4, r2, 0 adds r2, r3, 0 _080BBE70: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r2 bcs _080BBE8E ldr r1, [r4, 0x4] lsls r0, r5, 1 adds r0, r5 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x14] ldrh r0, [r7] adds r0, 0xAE cmp r1, r0 bne _080BBE70 _080BBE8E: mov r1, r8 ldr r0, [r1, 0x4] ldrb r0, [r0] cmp r5, r0 beq _080BBF5E ldr r7, _080BBF90 ldr r2, [sp, 0x8] adds r1, r2, r6 ldrb r0, [r1] lsrs r0, 4 strh r0, [r7] ldr r6, _080BBF94 ldrb r1, [r1] movs r0, 0xF ands r0, r1 strh r0, [r6] ldrh r0, [r7] adds r0, 0x7 ldrh r1, [r6] adds r1, 0x7 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80572D8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BBEDA adds r0, r4, 0 bl sub_80572EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BBF5E _080BBEDA: mov r3, r8 ldr r0, [r3, 0x4] ldr r1, [r0, 0x4] lsls r4, r5, 1 adds r4, r5 lsls r4, 3 adds r1, r4, r1 ldr r5, _080BBF98 adds r0, r5, 0 ldrb r1, [r1, 0x1] adds r0, r1 ldr r1, _080BBF9C strh r0, [r1] ldrh r0, [r1] mov r2, r9 ldrb r1, [r2] lsls r1, 5 ldr r3, _080BBFA0 adds r1, r3 ldr r1, [r1] ldrh r1, [r1] bl VarSet mov r5, r8 ldr r0, [r5, 0x4] ldr r0, [r0, 0x4] adds r4, r0 ldrb r0, [r4] ldr r1, _080BBF9C strh r0, [r1] ldr r2, _080BBF8C ldrh r0, [r2] adds r0, 0xAE lsls r0, 16 lsrs r0, 16 bl FlagReset ldr r3, _080BBF9C ldrb r0, [r3] mov r4, r10 ldrb r1, [r4, 0x5] ldrb r2, [r4, 0x4] bl show_sprite ldr r5, _080BBF9C ldrb r0, [r5] ldrb r1, [r4, 0x5] ldrb r2, [r4, 0x4] movs r4, 0 ldrsh r3, [r7, r4] movs r5, 0 ldrsh r4, [r6, r5] str r4, [sp] bl sub_805C0F8 ldr r1, _080BBF9C ldrb r0, [r1] mov r2, r10 ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl sub_805C78C ldr r3, _080BBF8C ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] _080BBF5E: ldr r4, [sp, 0x10] lsls r0, r4, 24 lsrs r6, r0, 24 ldr r5, [sp, 0xC] cmp r6, r5 bcs _080BBF6C b _080BBE2C _080BBF6C: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BBF7C: .4byte 0x0202714e _080BBF80: .4byte 0x02025734 _080BBF84: .4byte gDecorations _080BBF88: .4byte 0x0202e828 _080BBF8C: .4byte 0x0202e8cc _080BBF90: .4byte 0x0202e8d0 _080BBF94: .4byte 0x0202e8d2 _080BBF98: .4byte 0x00003f20 _080BBF9C: .4byte 0x0202e8dc _080BBFA0: .4byte gDecorations + 0x1C thumb_func_end sub_80BBDD0 thumb_func_start sub_80BBFA4 sub_80BBFA4: @ 80BBFA4 push {r4,r5,lr} ldr r0, _080BBFCC bl VarGet ldr r5, _080BBFD0 ldr r4, _080BBFD4 lsls r0, 24 lsrs r0, 24 bl sub_80BCCA4 lsls r0, 24 lsrs r0, 24 adds r0, r4 ldrb r1, [r0] adds r0, r5, 0 bl VarSet pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BBFCC: .4byte 0x00004054 _080BBFD0: .4byte 0x0000401f _080BBFD4: .4byte gUnknown_083D13EC thumb_func_end sub_80BBFA4 thumb_func_start sub_80BBFD8 sub_80BBFD8: @ 80BBFD8 push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 movs r3, 0 ldrb r0, [r4, 0x3] cmp r3, r0 bge _080BC030 ldr r6, _080BC01C _080BBFE8: lsls r3, 16 asrs r1, r3, 16 ldr r2, [r4, 0x10] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r2, r0, r2 ldrb r0, [r2, 0x5] cmp r0, 0x8 bne _080BC020 movs r0, 0 ldrsh r1, [r5, r0] ldrh r0, [r2] adds r0, 0x7 cmp r1, r0 bne _080BC020 movs r0, 0x2 ldrsh r1, [r5, r0] ldrh r0, [r2, 0x2] adds r0, 0x7 cmp r1, r0 bne _080BC020 ldr r0, [r2, 0x8] strb r0, [r6] b _080BC030 .align 2, 0 _080BC01C: .4byte 0x020387dc _080BC020: movs r1, 0x80 lsls r1, 9 adds r0, r3, r1 lsrs r3, r0, 16 asrs r0, 16 ldrb r1, [r4, 0x3] cmp r0, r1 blt _080BBFE8 _080BC030: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80BBFD8 thumb_func_start sub_80BC038 sub_80BC038: @ 80BC038 push {lr} bl sub_80BBFD8 bl sub_80BB5E4 ldr r0, _080BC04C bl script_env_1_execute_new_script pop {r0} bx r0 .align 2, 0 _080BC04C: .4byte gUnknown_081A2E14 thumb_func_end sub_80BC038 thumb_func_start sub_80BC050 sub_80BC050: @ 80BC050 push {lr} bl sub_80BB5D0 bl sub_80BB5E4 ldr r0, _080BC068 ldrh r0, [r0] cmp r0, 0x1 beq _080BC06C movs r0, 0x1 b _080BC06E .align 2, 0 _080BC068: .4byte 0x0202e8dc _080BC06C: movs r0, 0 _080BC06E: pop {r1} bx r1 thumb_func_end sub_80BC050 thumb_func_start sub_80BC074 sub_80BC074: @ 80BC074 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080BC098 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080BC0AC cmp r0, 0x1 bgt _080BC09C cmp r0, 0 beq _080BC0A2 b _080BC0E4 .align 2, 0 _080BC098: .4byte 0x03004b20 _080BC09C: cmp r0, 0x2 beq _080BC0C4 b _080BC0E4 _080BC0A2: bl script_env_2_enable movs r0, 0x1 strh r0, [r4, 0x8] b _080BC0E4 _080BC0AC: ldr r0, _080BC0C0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BC0E4 movs r0, 0x2 strh r0, [r4, 0x8] b _080BC0E4 .align 2, 0 _080BC0C0: .4byte 0x0202f388 _080BC0C4: movs r0, 0x7E bl copy_saved_warp2_bank_and_enter_x_to_warp1 bl warp_in ldr r0, _080BC0EC ldr r1, _080BC0F0 str r1, [r0] ldr r0, _080BC0F4 bl SetMainCallback2 bl script_env_2_disable adds r0, r5, 0 bl DestroyTask _080BC0E4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BC0EC: .4byte 0x0300485c _080BC0F0: .4byte mapldr_default _080BC0F4: .4byte c2_load_new_map thumb_func_end sub_80BC074 thumb_func_start sub_80BC0F8 sub_80BC0F8: @ 80BC0F8 push {lr} ldr r0, _080BC110 movs r1, 0 bl CreateTask movs r0, 0x1 movs r1, 0 bl fade_screen pop {r0} bx r0 .align 2, 0 _080BC110: .4byte sub_80BC074 thumb_func_end sub_80BC0F8 thumb_func_start sub_80BC114 sub_80BC114: @ 80BC114 push {lr} ldr r0, _080BC12C ldr r1, _080BC130 adds r0, r1 ldr r1, _080BC134 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 beq _080BC13C ldr r1, _080BC138 movs r0, 0x1 b _080BC140 .align 2, 0 _080BC12C: .4byte 0x02025734 _080BC130: .4byte 0x00001a08 _080BC134: .4byte 0x020387dc _080BC138: .4byte 0x0202e8dc _080BC13C: ldr r1, _080BC148 movs r0, 0 _080BC140: strh r0, [r1] pop {r0} bx r0 .align 2, 0 _080BC148: .4byte 0x0202e8dc thumb_func_end sub_80BC114 thumb_func_start sub_80BC14C sub_80BC14C: @ 80BC14C push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 movs r2, 0 ldr r5, _080BC174 ldr r4, _080BC178 _080BC158: lsls r0, r2, 16 asrs r1, r0, 16 lsls r0, r1, 2 adds r0, r1 lsls r0, 5 adds r0, r5 adds r0, r4 ldrb r0, [r0] cmp r0, r3 bne _080BC17C lsls r0, r2, 24 lsrs r0, 24 b _080BC18A .align 2, 0 _080BC174: .4byte 0x02025734 _080BC178: .4byte 0x00001a08 _080BC17C: adds r0, r1, 0x1 lsls r0, 16 lsrs r2, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080BC158 movs r0, 0 _080BC18A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80BC14C thumb_func_start sub_80BC190 sub_80BC190: @ 80BC190 push {r4,r5,lr} adds r5, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r4, r1, 2 adds r4, r1 lsls r4, 5 ldr r0, _080BC1C8 adds r4, r0 adds r0, r4, 0 bl sub_80BB8A8 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 adds r1, r4, 0 bl StringCopyN movs r1, 0xFF strb r1, [r0] ldr r1, _080BC1CC adds r0, r5, 0 bl StringAppend pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080BC1C8: .4byte 0x0202713e _080BC1CC: .4byte gUnknown_0840F965 thumb_func_end sub_80BC190 thumb_func_start GetSecretBaseMapName GetSecretBaseMapName: @ 80BC1D0 push {r4-r6,lr} mov r6, r8 push {r6} mov r8, r0 ldr r6, _080BC214 ldr r5, _080BC218 ldr r4, _080BC21C adds r0, r4, 0 bl VarGet lsls r0, 16 lsrs r0, 16 lsls r1, r0, 2 adds r1, r0 lsls r1, 5 adds r1, r5 ldr r0, _080BC220 adds r1, r0 ldrb r0, [r1] strb r0, [r6] adds r0, r4, 0 bl VarGet adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl sub_80BC190 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080BC214: .4byte 0x020387dc _080BC218: .4byte 0x02025734 _080BC21C: .4byte 0x00004054 _080BC220: .4byte 0x00001a08 thumb_func_end GetSecretBaseMapName thumb_func_start sub_80BC224 sub_80BC224: @ 80BC224 push {r4,r5,lr} ldr r0, _080BC25C bl VarGet lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 5 ldr r0, _080BC260 adds r4, r0 ldr r5, _080BC264 adds r0, r4, 0 bl sub_80BB8A8 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 adds r1, r4, 0 bl StringCopyN movs r1, 0xFF strb r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BC25C: .4byte 0x00004054 _080BC260: .4byte 0x0202713e _080BC264: .4byte 0x020231cc thumb_func_end sub_80BC224 thumb_func_start sub_80BC268 sub_80BC268: @ 80BC268 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080BC288 lsls r1, r0, 2 adds r1, r0 lsls r1, 5 adds r1, r2 ldr r0, _080BC28C adds r1, r0 ldrb r0, [r1] lsrs r0, 6 cmp r0, 0 bne _080BC290 movs r0, 0 b _080BC292 .align 2, 0 _080BC288: .4byte 0x02025734 _080BC28C: .4byte 0x00001a09 _080BC290: movs r0, 0x1 _080BC292: pop {r1} bx r1 thumb_func_end sub_80BC268 thumb_func_start sub_80BC298 sub_80BC298: @ 80BC298 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x1A bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x1B bl PokemonGetField adds r4, r0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x1C bl PokemonGetField adds r4, r0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x1D bl PokemonGetField adds r4, r0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x1E bl PokemonGetField adds r4, r0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x1F bl PokemonGetField adds r4, r0 lsls r4, 16 lsrs r4, 16 adds r0, r4, 0 movs r1, 0x6 bl __udivsi3 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80BC298 thumb_func_start sub_80BC300 sub_80BC300: @ 80BC300 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC movs r0, 0 mov r10, r0 movs r6, 0 mov r9, r6 _080BC314: movs r4, 0 lsls r3, r6, 2 lsls r2, r6, 1 ldr r7, _080BC424 adds r1, r6, 0x1 str r1, [sp] adds r1, r3, 0 _080BC322: adds r0, r1, r4 lsls r0, 1 ldr r5, _080BC428 adds r0, r5, r0 mov r5, r9 strh r5, [r0] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3 bls _080BC322 ldr r1, _080BC42C adds r0, r1, r2 strh r5, [r0] ldr r5, _080BC430 adds r0, r5, r2 mov r1, r9 strh r1, [r0] ldr r2, _080BC434 adds r0, r2, r6 mov r5, r9 strb r5, [r0] ldr r1, _080BC438 adds r0, r1, r3 mov r2, r9 str r2, [r0] ldr r3, _080BC43C adds r0, r3, r6 strb r2, [r0] movs r0, 0x64 adds r5, r6, 0 muls r5, r0 adds r4, r5, r7 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _080BC408 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _080BC408 movs r4, 0 mov r0, r10 lsls r0, 2 mov r8, r0 mov r1, r10 lsls r7, r1, 1 adds r1, 0x1 str r1, [sp, 0x4] ldr r2, _080BC424 _080BC38E: adds r1, r4, 0 adds r1, 0xD adds r0, r5, r2 str r2, [sp, 0x8] bl PokemonGetField mov r3, r8 adds r1, r3, r4 lsls r1, 1 ldr r3, _080BC428 adds r1, r3, r1 strh r0, [r1] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldr r2, [sp, 0x8] cmp r4, 0x3 bls _080BC38E movs r0, 0x64 adds r4, r6, 0 muls r4, r0 ldr r0, _080BC424 adds r4, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField ldr r5, _080BC42C adds r1, r5, r7 strh r0, [r1] adds r0, r4, 0 movs r1, 0xC bl PokemonGetField ldr r2, _080BC430 adds r1, r2, r7 strh r0, [r1] adds r0, r4, 0 movs r1, 0x38 bl PokemonGetField ldr r1, _080BC434 add r1, r10 strb r0, [r1] adds r0, r4, 0 movs r1, 0 bl PokemonGetField ldr r1, _080BC438 add r1, r8 str r0, [r1] adds r0, r4, 0 bl sub_80BC298 ldr r1, _080BC43C add r1, r10 strb r0, [r1] ldr r3, [sp, 0x4] lsls r0, r3, 16 lsrs r0, 16 mov r10, r0 _080BC408: ldr r5, [sp] lsls r0, r5, 16 lsrs r6, r0, 16 cmp r6, 0x5 bls _080BC314 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BC424: .4byte 0x03004360 _080BC428: .4byte 0x02027188 _080BC42C: .4byte 0x020271b8 _080BC430: .4byte 0x020271c4 _080BC434: .4byte 0x020271d0 _080BC438: .4byte 0x02027170 _080BC43C: .4byte 0x020271d6 thumb_func_end sub_80BC300 thumb_func_start sub_80BC440 sub_80BC440: @ 80BC440 push {r4,r5,lr} ldr r4, _080BC45C ldr r0, _080BC460 adds r4, r0 ldrh r5, [r4] movs r0, 0 bl sub_80BB594 strh r5, [r4] bl sub_80BC0F8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BC45C: .4byte 0x02025734 _080BC460: .4byte 0x00001a16 thumb_func_end sub_80BC440 thumb_func_start sub_80BC464 sub_80BC464: @ 80BC464 push {lr} movs r0, 0x14 bl sav12_xor_increment bl sub_80BC440 pop {r0} bx r0 thumb_func_end sub_80BC464 thumb_func_start sub_80BC474 sub_80BC474: @ 80BC474 push {r4-r7,lr} ldr r0, _080BC4CC ldr r4, [r0, 0x4] movs r6, 0 ldrb r0, [r4, 0x3] cmp r6, r0 bcs _080BC504 ldr r3, _080BC4D0 _080BC484: ldr r2, [r4, 0x10] lsls r1, r6, 1 adds r0, r1, r6 lsls r0, 2 adds r2, r0, r2 ldrb r0, [r2, 0x5] adds r7, r1, 0 cmp r0, 0x8 bne _080BC4F8 ldrb r1, [r3] ldr r0, [r2, 0x8] cmp r1, r0 bne _080BC4F8 ldrh r0, [r2] adds r0, 0x7 ldrh r1, [r2, 0x2] adds r1, 0x7 bl MapGridGetMetatileIdAt movs r1, 0 ldr r5, _080BC4D4 lsls r0, 16 asrs r2, r0, 16 _080BC4B2: lsls r0, r1, 2 adds r3, r0, r5 ldrh r0, [r3, 0x2] cmp r0, r2 beq _080BC4D8 adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x6 bls _080BC4B2 _080BC4C6: bl DrawWholeMapView b _080BC504 .align 2, 0 _080BC4CC: .4byte 0x0202e828 _080BC4D0: .4byte 0x0202713c _080BC4D4: .4byte gUnknown_083D1358 _080BC4D8: ldr r0, [r4, 0x10] adds r1, r7, r6 lsls r1, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x7 ldrh r1, [r1, 0x2] adds r1, 0x7 ldrh r3, [r3] movs r4, 0xC0 lsls r4, 4 adds r2, r4, 0 orrs r2, r3 bl MapGridSetMetatileIdAt b _080BC4C6 _080BC4F8: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 ldrb r0, [r4, 0x3] cmp r6, r0 bcc _080BC484 _080BC504: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BC474 thumb_func_start sub_80BC50C sub_80BC50C: @ 80BC50C push {r4,r5,lr} bl sub_80BC474 movs r0, 0x14 bl sav12_xor_increment ldr r4, _080BC530 ldr r0, _080BC534 adds r4, r0 ldrh r5, [r4] movs r0, 0 bl sub_80BB594 strh r5, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BC530: .4byte 0x02025734 _080BC534: .4byte 0x00001a16 thumb_func_end sub_80BC50C thumb_func_start sub_80BC538 sub_80BC538: @ 80BC538 push {r4,r5,lr} movs r5, 0 movs r4, 0x1 _080BC53E: lsls r0, r4, 24 lsrs r0, 24 bl sub_80BC268 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BC554 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _080BC554: lsls r0, r4, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080BC53E adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80BC538 thumb_func_start sub_80BC56C sub_80BC56C: @ 80BC56C push {lr} ldr r0, _080BC58C ldrb r0, [r0] bl sub_80BC14C lsls r0, 24 lsrs r0, 24 bl sub_80BC268 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 bne _080BC594 ldr r0, _080BC590 strh r1, [r0] b _080BC5B2 .align 2, 0 _080BC58C: .4byte 0x020387dc _080BC590: .4byte 0x0202e8dc _080BC594: bl sub_80BC538 lsls r0, 24 lsrs r0, 24 cmp r0, 0x9 bls _080BC5AC ldr r1, _080BC5A8 movs r0, 0x2 b _080BC5B0 .align 2, 0 _080BC5A8: .4byte 0x0202e8dc _080BC5AC: ldr r1, _080BC5B8 movs r0, 0 _080BC5B0: strh r0, [r1] _080BC5B2: pop {r0} bx r0 .align 2, 0 _080BC5B8: .4byte 0x0202e8dc thumb_func_end sub_80BC56C thumb_func_start sub_80BC5BC sub_80BC5BC: @ 80BC5BC push {lr} ldr r0, _080BC5F8 ldrb r0, [r0] bl sub_80BC14C ldr r2, _080BC5FC lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 5 adds r1, r2 ldr r0, _080BC600 adds r1, r0 ldrb r3, [r1] lsrs r2, r3, 6 movs r0, 0x1 eors r2, r0 lsls r2, 6 movs r0, 0x3F ands r0, r3 orrs r0, r2 strb r0, [r1] movs r0, 0x86 lsls r0, 1 bl FlagSet pop {r0} bx r0 .align 2, 0 _080BC5F8: .4byte 0x020387dc _080BC5FC: .4byte 0x02025734 _080BC600: .4byte 0x00001a09 thumb_func_end sub_80BC5BC thumb_func_start sub_80BC604 sub_80BC604: @ 80BC604 push {lr} ldr r0, _080BC614 movs r1, 0 bl CreateTask pop {r0} bx r0 .align 2, 0 _080BC614: .4byte sub_80FE264 thumb_func_end sub_80BC604 thumb_func_start sub_80BC618 sub_80BC618: @ 80BC618 push {lr} ldr r0, _080BC628 movs r1, 0 bl CreateTask pop {r0} bx r0 .align 2, 0 _080BC628: .4byte sub_80BC62C thumb_func_end sub_80BC618 thumb_func_start sub_80BC62C sub_80BC62C: @ 80BC62C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl script_env_2_enable bl sub_80F944C bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080BC688 adds r4, r0, r1 bl sub_80BC538 lsls r0, 24 lsrs r0, 24 strh r0, [r4] adds r1, r0, 0 cmp r1, 0 beq _080BC694 cmp r1, 0x7 ble _080BC65E movs r0, 0x7 _080BC65E: strh r0, [r4, 0x6] movs r0, 0 strh r0, [r4, 0x2] strh r0, [r4, 0x4] movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset adds r0, r5, 0 bl sub_80BC7D8 ldr r1, _080BC68C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080BC690 str r1, [r0] b _080BC6A0 .align 2, 0 _080BC688: .4byte 0x03004b28 _080BC68C: .4byte 0x03004b20 _080BC690: .4byte sub_80BC824 _080BC694: ldr r1, _080BC6A8 ldr r2, _080BC6AC adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField _080BC6A0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BC6A8: .4byte gUnknown_0840F9BB _080BC6AC: .4byte sub_80BCC54 thumb_func_end sub_80BC62C thumb_func_start sub_80BC6B0 sub_80BC6B0: @ 80BC6B0 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080BC6D8 adds r1, r0 mov r8, r1 movs r4, 0 movs r6, 0 movs r5, 0x1 movs r2, 0x4 ldrsh r0, [r1, r2] cmp r6, r0 bne _080BC6DC movs r4, 0x1 b _080BC706 .align 2, 0 _080BC6D8: .4byte 0x03004b28 _080BC6DC: adds r0, r5, 0 bl sub_80BC268 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BC6F0 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _080BC6F0: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bhi _080BC706 mov r1, r8 movs r2, 0x4 ldrsh r0, [r1, r2] cmp r4, r0 bne _080BC6DC adds r4, r5, 0 _080BC706: adds r5, r4, 0 cmp r5, 0x13 bhi _080BC75A ldr r7, _080BC7A0 _080BC70E: adds r0, r5, 0 bl sub_80BC268 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BC750 adds r0, r7, 0 adds r1, r5, 0 bl sub_80BC190 lsls r3, r6, 1 adds r4, r3, 0x2 lsls r4, 24 lsrs r4, 24 adds r3, 0x3 lsls r3, 24 lsrs r3, 24 movs r0, 0x12 adds r1, r4, 0 movs r2, 0x1C bl sub_8071EBC adds r0, r7, 0 movs r1, 0x12 adds r2, r4, 0 bl Print adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x8 beq _080BC75A _080BC750: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _080BC70E _080BC75A: cmp r6, 0x7 bhi _080BC7A8 lsls r3, r6, 1 adds r4, r3, 0x2 lsls r4, 24 lsrs r4, 24 adds r3, 0x3 lsls r3, 24 lsrs r3, 24 movs r0, 0x12 adds r1, r4, 0 movs r2, 0x1C bl sub_8071EBC ldr r0, _080BC7A4 movs r1, 0x12 adds r2, r4, 0 bl Print movs r0, 0x1 bl SetBgTilemapBuffer cmp r6, 0x7 beq _080BC7B2 lsls r1, r6, 25 movs r0, 0x80 lsls r0, 19 adds r1, r0 lsrs r1, 24 movs r0, 0x12 movs r2, 0x1C movs r3, 0x12 bl sub_8071EBC b _080BC7B2 .align 2, 0 _080BC7A0: .4byte 0x020231cc _080BC7A4: .4byte gUnknown_0840E640 _080BC7A8: movs r0, 0x1 movs r1, 0xBC movs r2, 0x98 bl sub_80F953C _080BC7B2: mov r1, r8 movs r2, 0x4 ldrsh r0, [r1, r2] cmp r0, 0 bne _080BC7C4 movs r0, 0 bl SetBgTilemapBuffer b _080BC7CE _080BC7C4: movs r0, 0 movs r1, 0xBC movs r2, 0x8 bl sub_80F953C _080BC7CE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BC6B0 thumb_func_start sub_80BC7D8 sub_80BC7D8: @ 80BC7D8 push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 ldr r0, _080BC820 adds r4, r0 movs r0, 0x11 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow ldrb r3, [r4, 0x6] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 ldrb r0, [r4, 0x2] str r0, [sp] movs r0, 0xB str r0, [sp, 0x4] movs r0, 0 movs r1, 0x12 movs r2, 0x2 bl InitMenu adds r0, r5, 0 bl sub_80BC6B0 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BC820: .4byte 0x03004b28 thumb_func_end sub_80BC7D8 thumb_func_start sub_80BC824 sub_80BC824: @ 80BC824 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080BC858 adds r4, r0, r1 ldr r2, _080BC85C ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080BC874 movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 beq _080BC860 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 b _080BC8B6 .align 2, 0 _080BC858: .4byte 0x03004b28 _080BC85C: .4byte 0x03001770 _080BC860: movs r2, 0x4 ldrsh r0, [r4, r2] cmp r0, 0 beq _080BC940 movs r0, 0x5 bl audio_play ldrh r0, [r4, 0x4] subs r0, 0x1 b _080BC8A4 _080BC874: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080BC8C2 movs r0, 0x2 ldrsh r1, [r4, r0] movs r2, 0x6 ldrsh r0, [r4, r2] cmp r1, r0 bne _080BC8AE movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] adds r0, r1 movs r2, 0 ldrsh r1, [r4, r2] cmp r0, r1 beq _080BC940 movs r0, 0x5 bl audio_play ldrh r0, [r4, 0x4] adds r0, 0x1 _080BC8A4: strh r0, [r4, 0x4] adds r0, r5, 0 bl sub_80BC6B0 b _080BC940 _080BC8AE: movs r0, 0x5 bl audio_play movs r0, 0x1 _080BC8B6: bl MoveMenuCursor lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x2] b _080BC940 _080BC8C2: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080BC91C movs r0, 0x5 bl audio_play movs r1, 0x2 ldrsh r0, [r4, r1] movs r2, 0x4 ldrsh r1, [r4, r2] adds r0, r1 movs r2, 0 ldrsh r1, [r4, r2] cmp r0, r1 bne _080BC8FC bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset adds r0, r5, 0 bl sub_80BCC54 b _080BC940 _080BC8FC: bl sub_8072DEC ldrb r0, [r4, 0x4] ldrb r1, [r4, 0x2] adds r0, r1 lsls r0, 24 lsrs r0, 24 bl sub_80BC948 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x8] adds r0, r5, 0 bl sub_80BC980 b _080BC940 _080BC91C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080BC940 movs r0, 0x5 bl audio_play bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset adds r0, r6, 0 bl sub_80BCC54 _080BC940: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80BC824 thumb_func_start sub_80BC948 sub_80BC948: @ 80BC948 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 movs r4, 0x1 _080BC952: adds r0, r4, 0 bl sub_80BC268 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BC96E cmp r6, r5 bne _080BC968 adds r0, r4, 0 b _080BC97A _080BC968: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _080BC96E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x13 bls _080BC952 movs r0, 0 _080BC97A: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80BC948 thumb_func_start sub_80BC980 sub_80BC980: @ 80BC980 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl sub_80F996C movs r0, 0x1 bl sub_80F996C movs r0, 0x1 movs r1, 0 movs r2, 0xC movs r3, 0x5 bl DrawDefaultWindow ldr r3, _080BC9D8 movs r0, 0x2 movs r1, 0x1 movs r2, 0x2 bl PrintStringArray movs r0, 0 str r0, [sp] movs r0, 0xA str r0, [sp, 0x4] movs r0, 0 movs r1, 0x2 movs r2, 0x1 movs r3, 0x2 bl InitMenu ldr r1, _080BC9DC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080BC9E0 str r1, [r0] add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080BC9D8: .4byte gUnknown_083D13D4 _080BC9DC: .4byte 0x03004b20 _080BC9E0: .4byte sub_80BC9E4 thumb_func_end sub_80BC980 thumb_func_start sub_80BC9E4 sub_80BC9E4: @ 80BC9E4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r4, r5, 0 ldr r2, _080BCA14 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080BCA18 bl GetMenuCursorPos lsls r0, 24 cmp r0, 0 beq _080BCA7C movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 bl MoveMenuCursor b _080BCA7C .align 2, 0 _080BCA14: .4byte 0x03001770 _080BCA18: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080BCA3A bl GetMenuCursorPos lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BCA7C movs r0, 0x5 bl audio_play movs r0, 0x1 bl MoveMenuCursor b _080BCA7C _080BCA3A: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080BCA68 movs r0, 0x5 bl audio_play ldr r4, _080BCA64 bl GetMenuCursorPos lsls r0, 24 lsrs r0, 21 adds r4, 0x4 adds r0, r4 ldr r1, [r0] adds r0, r5, 0 bl _call_via_r1 b _080BCA7C .align 2, 0 _080BCA64: .4byte gUnknown_083D13D4 _080BCA68: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080BCA7C movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_80BCBF8 _080BCA7C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80BC9E4 thumb_func_start sub_80BCA84 sub_80BCA84: @ 80BCA84 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 ldr r0, _080BCAD8 adds r4, r0 movs r0, 0 bl SetBgTilemapBuffer movs r0, 0x1 bl SetBgTilemapBuffer bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset ldr r0, _080BCADC ldrb r1, [r4, 0x8] bl sub_80BC190 ldr r4, _080BCAE0 ldr r1, _080BCAE4 adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _080BCAE8 adds r0, r5, 0 adds r1, r4, 0 movs r3, 0 bl DisplayItemMessageOnField pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BCAD8: .4byte 0x03004b28 _080BCADC: .4byte 0x020231cc _080BCAE0: .4byte 0x020234cc _080BCAE4: .4byte gUnknown_0840F96D _080BCAE8: .4byte sub_80BCAEC thumb_func_end sub_80BCA84 thumb_func_start sub_80BCAEC sub_80BCAEC: @ 80BCAEC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1 bl sub_8072974 ldr r1, _080BCB0C adds r0, r4, 0 bl sub_80F914C pop {r4} pop {r0} bx r0 .align 2, 0 _080BCB0C: .4byte gUnknown_083D13E4 thumb_func_end sub_80BCAEC thumb_func_start sub_80BCB10 sub_80BCB10: @ 80BCB10 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 lsls r0, r5, 2 adds r0, r5 lsls r6, r0, 3 ldr r7, _080BCB80 adds r4, r6, r7 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset ldr r2, _080BCB84 movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 5 adds r0, r2 ldr r1, _080BCB88 adds r0, r1 ldrb r2, [r0] movs r1, 0x3F ands r1, r2 strb r1, [r0] ldrh r0, [r4] subs r0, 0x1 strh r0, [r4] ldrh r1, [r4, 0x4] movs r2, 0x4 ldrsh r0, [r4, r2] cmp r0, 0 ble _080BCB5C subs r0, r1, 0x1 strh r0, [r4, 0x4] _080BCB5C: movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x7 bgt _080BCB6A ldrh r0, [r4, 0x6] subs r0, 0x1 strh r0, [r4, 0x6] _080BCB6A: adds r0, r5, 0 bl sub_80BC7D8 adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _080BCB8C str r1, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BCB80: .4byte 0x03004b28 _080BCB84: .4byte 0x02025734 _080BCB88: .4byte 0x00001a09 _080BCB8C: .4byte sub_80BC824 thumb_func_end sub_80BCB10 thumb_func_start sub_80BCB90 sub_80BCB90: @ 80BCB90 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1A movs r3, 0xD bl Reset ldr r1, _080BCBB8 ldr r2, _080BCBBC adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField pop {r4} pop {r0} bx r0 .align 2, 0 _080BCBB8: .4byte gUnknown_0840F998 _080BCBBC: .4byte sub_80BCB10 thumb_func_end sub_80BCB90 thumb_func_start sub_80BCBC0 sub_80BCBC0: @ 80BCBC0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset adds r0, r4, 0 bl sub_80BC7D8 ldr r1, _080BCBF0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080BCBF4 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080BCBF0: .4byte 0x03004b20 _080BCBF4: .4byte sub_80BC824 thumb_func_end sub_80BCBC0 thumb_func_start sub_80BCBF8 sub_80BCBF8: @ 80BCBF8 push {r4,r5,lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r5, _080BCC4C adds r0, r4, r5 ldrb r3, [r0, 0x6] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 ldrb r0, [r0, 0x2] str r0, [sp] movs r0, 0xB str r0, [sp, 0x4] movs r0, 0 movs r1, 0x12 movs r2, 0x2 bl InitMenu movs r0, 0x1 movs r1, 0 movs r2, 0xC movs r3, 0x5 bl Reset movs r0, 0 bl sub_80F98DC movs r0, 0x1 bl sub_80F98DC subs r5, 0x8 adds r4, r5 ldr r0, _080BCC50 str r0, [r4] add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BCC4C: .4byte 0x03004b28 _080BCC50: .4byte sub_80BC824 thumb_func_end sub_80BCBF8 thumb_func_start sub_80BCC54 sub_80BCC54: @ 80BCC54 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080BCC84 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl BuyMenuFreeMemory movs r0, 0 bl SetBgTilemapBuffer movs r0, 0x1 bl SetBgTilemapBuffer cmp r4, 0 bne _080BCC8C ldr r0, _080BCC88 bl script_env_1_execute_new_script b _080BCC92 .align 2, 0 _080BCC84: .4byte 0x00004054 _080BCC88: .4byte gUnknown_0815F399 _080BCC8C: ldr r0, _080BCCA0 bl script_env_1_execute_new_script _080BCC92: adds r0, r5, 0 bl DestroyTask pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BCCA0: .4byte gUnknown_0815F49A thumb_func_end sub_80BCC54 thumb_func_start sub_80BCCA4 sub_80BCCA4: @ 80BCCA4 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080BCCDC lsls r4, r0, 2 adds r4, r0 lsls r4, 5 adds r4, r1 ldr r1, _080BCCE0 adds r0, r4, r1 ldrb r0, [r0] movs r1, 0x5 bl __umodsi3 ldr r1, _080BCCE4 adds r4, r1 ldrb r2, [r4] lsls r2, 27 lsrs r2, 31 lsls r1, r2, 2 adds r1, r2 adds r0, r1 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _080BCCDC: .4byte 0x02025734 _080BCCE0: .4byte 0x00001a11 _080BCCE4: .4byte 0x00001a09 thumb_func_end sub_80BCCA4 thumb_func_start sub_80BCCE8 sub_80BCCE8: @ 80BCCE8 push {lr} ldr r0, _080BCD08 bl VarGet lsls r0, 24 lsrs r0, 24 bl sub_80BCCA4 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0 bne _080BCD10 ldr r0, _080BCD0C b _080BCD72 .align 2, 0 _080BCD08: .4byte 0x00004054 _080BCD0C: .4byte UnknownString_81A1BB2 _080BCD10: cmp r0, 0x1 bne _080BCD1C ldr r0, _080BCD18 b _080BCD72 .align 2, 0 _080BCD18: .4byte UnknownString_81A1F67 _080BCD1C: cmp r0, 0x2 bne _080BCD28 ldr r0, _080BCD24 b _080BCD72 .align 2, 0 _080BCD24: .4byte UnknownString_81A2254 _080BCD28: cmp r0, 0x3 bne _080BCD34 ldr r0, _080BCD30 b _080BCD72 .align 2, 0 _080BCD30: .4byte UnknownString_81A25C3 _080BCD34: cmp r0, 0x4 bne _080BCD40 ldr r0, _080BCD3C b _080BCD72 .align 2, 0 _080BCD3C: .4byte UnknownString_81A2925 _080BCD40: cmp r0, 0x5 bne _080BCD4C ldr r0, _080BCD48 b _080BCD72 .align 2, 0 _080BCD48: .4byte UnknownString_81A1D74 _080BCD4C: cmp r0, 0x6 bne _080BCD58 ldr r0, _080BCD54 b _080BCD72 .align 2, 0 _080BCD54: .4byte UnknownString_81A20C9 _080BCD58: cmp r0, 0x7 bne _080BCD64 ldr r0, _080BCD60 b _080BCD72 .align 2, 0 _080BCD60: .4byte UnknownString_81A2439 _080BCD64: cmp r1, 0x8 beq _080BCD70 ldr r0, _080BCD6C b _080BCD72 .align 2, 0 _080BCD6C: .4byte UnknownString_81A2B2A _080BCD70: ldr r0, _080BCD78 _080BCD72: pop {r1} bx r1 .align 2, 0 _080BCD78: .4byte UnknownString_81A2754 thumb_func_end sub_80BCCE8 thumb_func_start unref_sub_80BCD7C unref_sub_80BCD7C: @ 80BCD7C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 movs r5, 0 ldr r7, _080BCDFC lsls r1, r0, 2 adds r1, r0 lsls r6, r1, 5 ldr r0, _080BCE00 adds r0, r7 mov r10, r0 ldr r1, _080BCE04 adds r1, r7 mov r9, r1 ldr r2, _080BCE08 adds r2, r7 mov r8, r2 ldr r0, _080BCE0C mov r12, r0 _080BCDAA: lsls r4, r5, 2 adds r0, r4, r6 add r0, r10 adds r3, r5, 0x1 str r3, [r0] lsls r0, r5, 3 adds r0, r6 add r0, r9 strh r3, [r0] lsls r1, r5, 1 adds r1, r6 mov r2, r8 adds r0, r1, r2 mov r2, r12 strh r2, [r0] ldr r2, _080BCE10 adds r0, r7, r2 adds r1, r0 strh r3, [r1] adds r2, r5, r6 ldr r1, _080BCE14 adds r0, r7, r1 adds r0, r2, r0 adds r1, r5, 0x5 strb r1, [r0] ldr r1, _080BCE18 adds r0, r7, r1 adds r2, r0 adds r4, r5 strb r4, [r2] lsls r3, 16 lsrs r5, r3, 16 cmp r5, 0 beq _080BCDAA pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BCDFC: .4byte 0x02025734 _080BCE00: .4byte 0x00001a3c _080BCE04: .4byte 0x00001a54 _080BCE08: .4byte 0x00001a84 _080BCE0C: .4byte 0x00000115 _080BCE10: .4byte 0x00001a90 _080BCE14: .4byte 0x00001a9c _080BCE18: .4byte 0x00001aa2 thumb_func_end unref_sub_80BCD7C thumb_func_start sub_80BCE1C sub_80BCE1C: @ 80BCE1C push {r4,lr} ldr r0, _080BCE44 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 movs r0, 0x1 bl sub_810FB10 lsls r0, r4, 2 adds r0, r4 lsls r0, 5 ldr r1, _080BCE48 adds r0, r1 bl create_enemy_party pop {r4} pop {r0} bx r0 .align 2, 0 _080BCE44: .4byte 0x00004054 _080BCE48: .4byte 0x0202713c thumb_func_end sub_80BCE1C thumb_func_start sub_80BCE4C sub_80BCE4C: @ 80BCE4C push {lr} ldr r0, _080BCE80 bl VarGet ldr r2, _080BCE84 lsls r0, 16 lsrs r0, 16 lsls r1, r0, 2 adds r1, r0 lsls r1, 5 adds r1, r2 ldr r0, _080BCE88 ldrb r0, [r0] ldr r2, _080BCE8C adds r1, r2 movs r2, 0x1 ands r2, r0 lsls r2, 5 ldrb r3, [r1] movs r0, 0x21 negs r0, r0 ands r0, r3 orrs r0, r2 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _080BCE80: .4byte 0x00004054 _080BCE84: .4byte 0x02025734 _080BCE88: .4byte 0x0202e8dc _080BCE8C: .4byte 0x00001a09 thumb_func_end sub_80BCE4C thumb_func_start sub_80BCE90 sub_80BCE90: @ 80BCE90 push {r4-r7,lr} ldr r0, _080BCF04 bl VarGet lsls r0, 16 lsrs r5, r0, 16 ldr r0, _080BCF08 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080BCED4 movs r3, 0 ldr r7, _080BCF0C ldr r4, _080BCF10 movs r6, 0x21 negs r6, r6 _080BCEB2: lsls r1, r3, 2 adds r1, r3 lsls r1, 5 adds r1, r7 adds r1, r4 ldrb r2, [r1] adds r0, r6, 0 ands r0, r2 strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x13 bls _080BCEB2 ldr r0, _080BCF08 bl FlagSet _080BCED4: ldr r4, _080BCF14 lsls r0, r5, 24 lsrs r0, 24 bl sub_80BCCA4 lsls r0, 24 lsrs r0, 24 strh r0, [r4] ldr r2, _080BCF18 ldr r1, _080BCF0C lsls r0, r5, 2 adds r0, r5 lsls r0, 5 adds r0, r1 ldr r1, _080BCF10 adds r0, r1 ldrb r0, [r0] lsls r0, 26 lsrs r0, 31 strh r0, [r2] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BCF04: .4byte 0x00004054 _080BCF08: .4byte 0x000008c2 _080BCF0C: .4byte 0x02025734 _080BCF10: .4byte 0x00001a09 _080BCF14: .4byte 0x0202e8cc _080BCF18: .4byte 0x0202e8dc thumb_func_end sub_80BCE90 thumb_func_start sub_80BCF1C sub_80BCF1C: @ 80BCF1C push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080BCF40 adds r4, r1, r0 movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080BCF54 cmp r0, 0x1 bgt _080BCF44 cmp r0, 0 beq _080BCF4A b _080BD02C .align 2, 0 _080BCF40: .4byte 0x03004b28 _080BCF44: cmp r0, 0x2 beq _080BD01C b _080BD02C _080BCF4A: adds r0, r4, 0x4 adds r1, r4, 0x6 bl PlayerGetDestCoords b _080BD028 _080BCF54: mov r5, sp adds r5, 0x2 mov r0, sp adds r1, r5, 0 bl PlayerGetDestCoords mov r0, sp ldrh r2, [r0] movs r3, 0 ldrsh r1, [r0, r3] movs r3, 0x4 ldrsh r0, [r4, r3] cmp r1, r0 bne _080BCF7C movs r0, 0 ldrsh r1, [r5, r0] movs r3, 0x6 ldrsh r0, [r4, r3] cmp r1, r0 beq _080BD02C _080BCF7C: strh r2, [r4, 0x4] ldrh r0, [r5] strh r0, [r4, 0x6] mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_8057350 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BCFA8 bl sub_80C6C90 b _080BD02C _080BCFA8: adds r0, r4, 0 bl sub_8057314 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BCFD8 mov r0, sp movs r3, 0 ldrsh r0, [r0, r3] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileIdAt lsls r0, 16 asrs r0, 16 mov r1, sp movs r3, 0 ldrsh r1, [r1, r3] movs r3, 0 ldrsh r2, [r5, r3] bl sub_80C68A4 b _080BD02C _080BCFD8: adds r0, r4, 0 bl sub_8057328 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BCFF6 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] bl sub_80C6A54 b _080BD02C _080BCFF6: adds r0, r4, 0 bl sub_805733C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BD02C mov r0, sp movs r3, 0 ldrsh r0, [r0, r3] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileIdAt lsls r0, 16 asrs r0, 16 bl sub_80C6C30 b _080BD02C _080BD01C: ldrb r0, [r4, 0x8] bl FieldEffectActiveListContains lsls r0, 24 cmp r0, 0 bne _080BD02C _080BD028: movs r0, 0x1 strh r0, [r4, 0x2] _080BD02C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80BCF1C thumb_func_start sub_80BD034 sub_80BD034: @ 80BD034 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080BD064 lsls r4, r0, 2 adds r4, r0 lsls r4, 5 adds r4, r2 ldr r2, _080BD068 adds r0, r4, r2 movs r2, 0xA0 bl memcpy ldr r0, _080BD06C adds r4, r0 ldrb r1, [r4] movs r0, 0x3F ands r0, r1 movs r1, 0x80 orrs r0, r1 strb r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080BD064: .4byte 0x02025734 _080BD068: .4byte 0x00001a08 _080BD06C: .4byte 0x00001a09 thumb_func_end sub_80BD034 thumb_func_start sub_80BD070 sub_80BD070: @ 80BD070 push {r4,lr} movs r2, 0 adds r4, r0, 0 adds r4, 0x9 adds r3, r1, 0 adds r3, 0x9 _080BD07C: adds r0, r4, r2 adds r1, r3, r2 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 beq _080BD08C movs r0, 0 b _080BD098 _080BD08C: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _080BD07C movs r0, 0x1 _080BD098: pop {r4} pop {r1} bx r1 thumb_func_end sub_80BD070 thumb_func_start sub_80BD0A0 sub_80BD0A0: @ 80BD0A0 push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 movs r3, 0 ldrb r0, [r6, 0x2] cmp r0, 0xFF bne _080BD0B4 ldrb r0, [r5, 0x2] cmp r0, 0xFF beq _080BD0E2 _080BD0B4: adds r2, r6, 0x2 adds r0, r2, r3 adds r4, r5, 0x2 adds r1, r4, r3 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 beq _080BD0C8 movs r0, 0 b _080BD0E4 _080BD0C8: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x6 bhi _080BD0E2 adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0xFF bne _080BD0B4 adds r0, r4, r3 ldrb r0, [r0] cmp r0, 0xFF bne _080BD0B4 _080BD0E2: movs r0, 0x1 _080BD0E4: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80BD0A0 thumb_func_start sub_80BD0EC sub_80BD0EC: @ 80BD0EC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r2, [r4, 0x1] movs r0, 0x10 adds r1, r0, 0 ands r1, r2 ldrb r2, [r5, 0x1] ands r0, r2 cmp r1, r0 bne _080BD122 adds r0, r4, 0 adds r1, r5, 0 bl sub_80BD070 lsls r0, 24 cmp r0, 0 beq _080BD122 adds r0, r4, 0 adds r1, r5, 0 bl sub_80BD0A0 lsls r0, 24 cmp r0, 0 beq _080BD122 movs r0, 0x1 b _080BD124 _080BD122: movs r0, 0 _080BD124: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80BD0EC thumb_func_start sub_80BD12C sub_80BD12C: @ 80BD12C push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 ldr r4, _080BD150 ldr r3, _080BD154 _080BD138: lsls r0, r1, 16 asrs r1, r0, 16 lsls r0, r1, 2 adds r0, r1 lsls r0, 5 adds r0, r4 adds r0, r3 ldrb r0, [r0] cmp r0, r2 bne _080BD158 adds r0, r1, 0 b _080BD168 .align 2, 0 _080BD150: .4byte 0x02025734 _080BD154: .4byte 0x00001a08 _080BD158: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080BD138 movs r0, 0x1 negs r0, r0 _080BD168: pop {r4} pop {r1} bx r1 thumb_func_end sub_80BD12C thumb_func_start sub_80BD170 sub_80BD170: @ 80BD170 push {r4,lr} movs r2, 0x1 ldr r4, _080BD194 ldr r3, _080BD198 _080BD178: lsls r0, r2, 16 asrs r1, r0, 16 lsls r0, r1, 2 adds r0, r1 lsls r0, 5 adds r0, r4 adds r0, r3 ldrb r0, [r0] cmp r0, 0 bne _080BD19C lsls r0, r2, 24 lsrs r0, 24 b _080BD1AA .align 2, 0 _080BD194: .4byte 0x02025734 _080BD198: .4byte 0x00001a08 _080BD19C: adds r0, r1, 0x1 lsls r0, 16 lsrs r2, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080BD178 movs r0, 0 _080BD1AA: pop {r4} pop {r1} bx r1 thumb_func_end sub_80BD170 thumb_func_start sub_80BD1B0 sub_80BD1B0: @ 80BD1B0 push {r4,lr} movs r3, 0x1 ldr r4, _080BD1DC _080BD1B6: lsls r2, r3, 16 asrs r1, r2, 16 lsls r0, r1, 2 adds r0, r1 lsls r0, 5 adds r0, r4 ldr r1, _080BD1E0 adds r0, r1 ldrb r1, [r0] lsrs r0, r1, 6 cmp r0, 0 bne _080BD1E4 lsls r0, r1, 28 cmp r0, 0 bne _080BD1E4 lsls r0, r3, 24 lsrs r0, 24 b _080BD1F4 .align 2, 0 _080BD1DC: .4byte 0x02025734 _080BD1E0: .4byte 0x00001a09 _080BD1E4: movs r1, 0x80 lsls r1, 9 adds r0, r2, r1 lsrs r3, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080BD1B6 movs r0, 0 _080BD1F4: pop {r4} pop {r1} bx r1 thumb_func_end sub_80BD1B0 thumb_func_start sub_80BD1FC sub_80BD1FC: @ 80BD1FC push {r4,r5,lr} adds r5, r0, 0 ldrb r0, [r5] cmp r0, 0 beq _080BD278 ldrb r0, [r5] bl sub_80BD12C lsls r0, 16 lsrs r4, r0, 16 asrs r2, r0, 16 cmp r2, 0 beq _080BD278 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _080BD254 ldr r0, _080BD24C lsls r1, r2, 2 adds r1, r2 lsls r1, 5 adds r1, r0 ldr r0, _080BD250 adds r1, r0 ldrb r1, [r1] lsls r0, r1, 28 lsrs r0, 28 cmp r0, 0x1 beq _080BD278 lsrs r0, r1, 6 cmp r0, 0x2 bne _080BD246 ldrb r1, [r5, 0x1] movs r0, 0xF ands r0, r1 cmp r0, 0x1 bne _080BD278 _080BD246: lsls r4, 24 lsrs r4, 24 b _080BD26C .align 2, 0 _080BD24C: .4byte 0x02025734 _080BD250: .4byte 0x00001a09 _080BD254: bl sub_80BD170 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080BD26C bl sub_80BD1B0 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080BD278 _080BD26C: adds r0, r4, 0 adds r1, r5, 0 bl sub_80BD034 adds r0, r4, 0 b _080BD27A _080BD278: movs r0, 0 _080BD27A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80BD1FC thumb_func_start sub_80BD280 sub_80BD280: @ 80BD280 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xA0 ldr r0, _080BD324 mov r8, r0 movs r2, 0x1 _080BD290: adds r1, r2, 0x1 lsls r0, r1, 24 lsrs r5, r0, 24 mov r9, r1 cmp r5, 0x13 bhi _080BD30C lsls r0, r2, 2 adds r0, r2 lsls r0, 5 mov r1, r8 adds r6, r0, r1 movs r7, 0xC0 _080BD2A8: ldrb r0, [r6, 0x1] adds r3, r7, 0 ands r3, r0 cmp r3, 0 bne _080BD2C6 lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 5 add r0, r8 ldrb r1, [r0, 0x1] adds r0, r7, 0 ands r0, r1 adds r4, r2, 0 cmp r0, 0x40 beq _080BD2DE _080BD2C6: cmp r3, 0x80 bne _080BD302 lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 5 add r0, r8 ldrb r1, [r0, 0x1] adds r0, r7, 0 ands r0, r1 adds r4, r2, 0 cmp r0, 0x80 beq _080BD302 _080BD2DE: mov r0, sp adds r1, r6, 0 movs r2, 0xA0 bl memcpy adds r4, r5 lsls r4, 5 add r4, r8 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0xA0 bl memcpy adds r0, r4, 0 mov r1, sp movs r2, 0xA0 bl memcpy _080BD302: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _080BD2A8 _080BD30C: mov r1, r9 lsls r0, r1, 24 lsrs r2, r0, 24 cmp r2, 0x12 bls _080BD290 add sp, 0xA0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BD324: .4byte 0x0202713c thumb_func_end sub_80BD280 thumb_func_start sub_80BD328 sub_80BD328: @ 80BD328 push {r4-r6,lr} adds r6, r0, 0 lsls r1, 24 lsrs r5, r1, 24 movs r4, 0x1 _080BD332: lsls r0, r4, 2 adds r0, r4 lsls r0, 5 adds r1, r0, r6 ldrb r0, [r1, 0x1] lsrs r0, 6 cmp r0, r5 bne _080BD348 adds r0, r1, 0 bl sub_80BD1FC _080BD348: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x13 bls _080BD332 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80BD328 thumb_func_start sub_80BD358 sub_80BD358: @ 80BD358 push {r4-r6,lr} adds r5, r0, 0 ldrb r0, [r5] cmp r0, 0 beq _080BD372 ldrb r0, [r5, 0x1] lsls r0, 27 ldr r1, _080BD378 lsrs r0, 31 adds r4, r1, 0 ldrb r1, [r4, 0x8] cmp r0, r1 beq _080BD37C _080BD372: movs r0, 0 b _080BD3D4 .align 2, 0 _080BD378: .4byte gSaveBlock2 _080BD37C: movs r2, 0 adds r3, r5, 0 adds r3, 0x9 adds r6, r4, 0 adds r6, 0xA _080BD386: adds r0, r3, r2 adds r1, r2, r6 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bne _080BD372 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _080BD386 movs r2, 0 ldrb r0, [r5, 0x2] cmp r0, 0xFF bne _080BD3AA ldrb r0, [r4] cmp r0, 0xFF beq _080BD3D2 _080BD3AA: adds r3, r5, 0x2 adds r0, r3, r2 adds r1, r2, r4 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bne _080BD372 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x6 bhi _080BD3D2 adds r0, r3, r2 ldrb r0, [r0] cmp r0, 0xFF bne _080BD3AA adds r0, r2, r4 ldrb r0, [r0] cmp r0, 0xFF bne _080BD3AA _080BD3D2: movs r0, 0x1 _080BD3D4: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80BD358 thumb_func_start sub_80BD3DC sub_80BD3DC: @ 80BD3DC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r10, r0 mov r9, r1 mov r8, r2 movs r5, 0 movs r6, 0 _080BD3F0: movs r0, 0x1 ands r0, r5 cmp r0, 0 bne _080BD41A lsls r0, r6, 2 adds r0, r6 lsls r0, 5 mov r1, r10 adds r4, r1, r0 adds r0, r4, 0 bl sub_80BD358 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BD41A adds r0, r4, 0 bl sub_80BB4AC movs r0, 0x1 orrs r5, r0 _080BD41A: movs r7, 0x2 movs r0, 0x2 ands r0, r5 cmp r0, 0 bne _080BD448 lsls r0, r6, 2 adds r0, r6 lsls r0, 5 mov r1, r9 adds r4, r1, r0 adds r0, r4, 0 bl sub_80BD358 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BD448 adds r0, r4, 0 bl sub_80BB4AC orrs r5, r7 lsls r0, r5, 24 lsrs r5, r0, 24 _080BD448: movs r7, 0x4 movs r0, 0x4 ands r0, r5 cmp r0, 0 bne _080BD476 lsls r0, r6, 2 adds r0, r6 lsls r0, 5 mov r1, r8 adds r4, r1, r0 adds r0, r4, 0 bl sub_80BD358 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BD476 adds r0, r4, 0 bl sub_80BB4AC orrs r5, r7 lsls r0, r5, 24 lsrs r5, r0, 24 _080BD476: cmp r5, 0x7 beq _080BD484 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x13 bls _080BD3F0 _080BD484: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BD3DC thumb_func_start sub_80BD494 sub_80BD494: @ 80BD494 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 mov r8, r1 lsls r2, 24 lsrs r7, r2, 24 movs r5, 0 _080BD4A4: lsls r0, r5, 2 adds r0, r5 lsls r0, 5 mov r1, r8 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 beq _080BD4FE adds r0, r6, 0 adds r1, r4, 0 bl sub_80BD0EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BD4FE cmp r7, 0 bne _080BD4D0 adds r0, r4, 0 bl sub_80BB4AC b _080BD508 _080BD4D0: ldrh r0, [r6, 0xE] ldrh r3, [r4, 0xE] cmp r0, r3 bls _080BD4E0 adds r0, r4, 0 bl sub_80BB4AC b _080BD508 _080BD4E0: ldrb r0, [r6, 0x1] lsls r0, 28 lsrs r0, 28 ldrb r1, [r4, 0x1] movs r3, 0x10 negs r3, r3 adds r2, r3, 0 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x1] adds r0, r6, 0 bl sub_80BB4AC movs r0, 0x1 b _080BD50A _080BD4FE: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _080BD4A4 _080BD508: movs r0, 0 _080BD50A: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80BD494 thumb_func_start sub_80BD514 sub_80BD514: @ 80BD514 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r0 adds r7, r1, 0 mov r8, r2 adds r6, r3, 0 movs r5, 0x1 _080BD526: lsls r0, r5, 2 adds r0, r5 lsls r0, 5 mov r1, r9 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 beq _080BD578 ldrb r1, [r4, 0x1] movs r0, 0xC0 ands r0, r1 cmp r0, 0x40 bne _080BD54E movs r2, 0x10 negs r2, r2 adds r0, r2, 0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x1] _080BD54E: adds r0, r4, 0 adds r1, r7, 0 adds r2, r5, 0 bl sub_80BD494 lsls r0, 24 cmp r0, 0 bne _080BD578 adds r0, r4, 0 mov r1, r8 adds r2, r5, 0 bl sub_80BD494 lsls r0, 24 cmp r0, 0 bne _080BD578 adds r0, r4, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_80BD494 _080BD578: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _080BD526 movs r5, 0 _080BD584: lsls r0, r5, 2 adds r0, r5 lsls r0, 5 adds r4, r0, r7 ldrb r0, [r4] cmp r0, 0 beq _080BD5B8 ldrb r0, [r4, 0x1] movs r2, 0x21 negs r2, r2 adds r1, r2, 0 ands r0, r1 strb r0, [r4, 0x1] adds r0, r4, 0 mov r1, r8 adds r2, r5, 0 bl sub_80BD494 lsls r0, 24 cmp r0, 0 bne _080BD5B8 adds r0, r4, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_80BD494 _080BD5B8: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _080BD584 movs r5, 0 movs r0, 0x21 negs r0, r0 adds r7, r0, 0 _080BD5CA: lsls r0, r5, 2 adds r0, r5 lsls r4, r0, 5 mov r2, r8 adds r1, r4, r2 ldrb r0, [r1] cmp r0, 0 beq _080BD5EA ldrb r0, [r1, 0x1] ands r0, r7 strb r0, [r1, 0x1] adds r0, r1, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_80BD494 _080BD5EA: adds r1, r4, r6 ldrb r0, [r1] cmp r0, 0 beq _080BD5F8 ldrb r0, [r1, 0x1] ands r0, r7 strb r0, [r1, 0x1] _080BD5F8: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _080BD5CA pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BD514 thumb_func_start sub_80BD610 sub_80BD610: @ 80BD610 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 bl sub_80BD3DC ldr r0, _080BD670 adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_80BD514 adds r0, r4, 0 bl sub_80BD1FC adds r0, r5, 0 bl sub_80BD1FC adds r0, r6, 0 bl sub_80BD1FC adds r0, r4, 0 movs r1, 0x1 bl sub_80BD328 adds r0, r5, 0 movs r1, 0x1 bl sub_80BD328 adds r0, r6, 0 movs r1, 0x1 bl sub_80BD328 adds r0, r4, 0 movs r1, 0 bl sub_80BD328 adds r0, r5, 0 movs r1, 0 bl sub_80BD328 adds r0, r6, 0 movs r1, 0 bl sub_80BD328 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BD670: .4byte 0x0202713c thumb_func_end sub_80BD610 thumb_func_start sub_80BD674 sub_80BD674: @ 80BD674 push {r4-r7,lr} adds r6, r0, 0 adds r5, r1, 0 lsls r2, 24 lsrs r7, r2, 24 movs r0, 0x60 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080BD68C b _080BD790 _080BD68C: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _080BD69E cmp r0, 0x3 beq _080BD6BA b _080BD6C8 _080BD69E: lsls r4, r5, 1 adds r0, r6, r4 movs r1, 0 adds r2, r5, 0 bl memset adds r4, r5 adds r4, r6, r4 adds r0, r4, 0 movs r1, 0 adds r2, r5, 0 bl memset b _080BD6C8 _080BD6BA: lsls r0, r5, 1 adds r0, r5 adds r0, r6, r0 movs r1, 0 adds r2, r5, 0 bl memset _080BD6C8: cmp r7, 0x1 beq _080BD6F0 cmp r7, 0x1 bgt _080BD6D6 cmp r7, 0 beq _080BD6E0 b _080BD71C _080BD6D6: cmp r7, 0x2 beq _080BD700 cmp r7, 0x3 beq _080BD710 b _080BD71C _080BD6E0: adds r0, r6, r5 lsls r2, r5, 1 adds r1, r6, r2 adds r2, r5 adds r2, r6, r2 bl sub_80BD610 b _080BD71C _080BD6F0: lsls r1, r5, 1 adds r0, r6, r1 adds r1, r5 adds r1, r6, r1 adds r2, r6, 0 bl sub_80BD610 b _080BD71C _080BD700: lsls r0, r5, 1 adds r0, r5 adds r0, r6, r0 adds r2, r6, r5 adds r1, r6, 0 bl sub_80BD610 b _080BD71C _080BD710: adds r1, r6, r5 lsls r2, r5, 1 adds r2, r6, r2 adds r0, r6, 0 bl sub_80BD610 _080BD71C: movs r3, 0x1 ldr r6, _080BD798 movs r5, 0x10 negs r5, r5 ldr r4, _080BD79C _080BD726: lsls r0, r3, 2 adds r0, r3 lsls r0, 5 adds r0, r6 adds r2, r0, r4 ldrb r1, [r2] lsls r0, r1, 28 lsrs r0, 28 cmp r0, 0x1 bne _080BD746 movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 ands r0, r5 strb r0, [r2] _080BD746: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x13 bls _080BD726 bl sub_80BD280 movs r3, 0x1 ldr r4, _080BD798 ldr r6, _080BD79C adds r7, r4, 0 movs r5, 0x3F _080BD75E: lsls r0, r3, 2 adds r0, r3 lsls r0, 5 adds r0, r4 adds r2, r0, r6 ldrb r1, [r2] lsrs r0, r1, 6 cmp r0, 0x2 bne _080BD776 adds r0, r5, 0 ands r0, r1 strb r0, [r2] _080BD776: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x13 bls _080BD75E ldr r0, _080BD7A0 adds r2, r7, r0 ldrh r1, [r2] ldr r0, _080BD7A4 cmp r1, r0 beq _080BD790 adds r0, r1, 0x1 strh r0, [r2] _080BD790: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BD798: .4byte 0x02025734 _080BD79C: .4byte 0x00001a09 _080BD7A0: .4byte 0x00001a16 _080BD7A4: .4byte 0x0000ffff thumb_func_end sub_80BD674 thumb_func_start sub_80BD7A8 sub_80BD7A8: @ 80BD7A8 push {r4-r7,lr} movs r3, 0 ldr r6, _080BD7F0 movs r4, 0 ldr r0, _080BD7F4 adds r5, r6, r0 _080BD7B4: lsls r2, r3, 3 adds r2, r3 lsls r2, 2 adds r1, r2, r6 ldr r7, _080BD7F8 adds r0, r1, r7 strb r4, [r0] ldr r0, _080BD7FC adds r1, r0 strb r4, [r1] movs r1, 0 adds r3, 0x1 _080BD7CC: adds r0, r1, r2 adds r0, r5 strb r4, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x21 bls _080BD7CC lsls r0, r3, 24 lsrs r3, r0, 24 cmp r3, 0x18 bls _080BD7B4 bl sub_80BEBF4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BD7F0: .4byte 0x02025734 _080BD7F4: .4byte 0x0000273a _080BD7F8: .4byte 0x00002738 _080BD7FC: .4byte 0x00002739 thumb_func_end sub_80BD7A8 thumb_func_start special_0x44 special_0x44: @ 80BD800 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r4, 0x5 ldr r1, _080BD874 ldr r2, _080BD878 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _080BD834 adds r2, r1, 0 ldr r1, _080BD87C _080BD81A: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x17 bhi _080BD834 lsls r0, r4, 3 adds r0, r4 lsls r0, 2 adds r0, r2 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080BD81A _080BD834: bl Random lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 bl __modsi3 lsls r0, 24 lsrs r4, r0, 24 mov r8, r4 ldr r7, _080BD874 ldr r0, _080BD87C adds r0, r7 mov r9, r0 _080BD850: lsls r0, r4, 3 adds r0, r4 lsls r6, r0, 2 adds r5, r6, r7 ldr r1, _080BD87C adds r0, r5, r1 ldrb r0, [r0] bl sub_80BFB54 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 beq _080BD884 ldr r2, _080BD880 adds r0, r5, r2 ldrb r0, [r0] b _080BD890 .align 2, 0 _080BD874: .4byte 0x02025734 _080BD878: .4byte 0x000027ec _080BD87C: .4byte 0x00002738 _080BD880: .4byte 0x00002739 _080BD884: mov r0, r9 adds r1, r6, r0 ldrh r0, [r1, 0x16] cmp r0, 0 bne _080BD898 ldrb r0, [r1, 0x1] _080BD890: cmp r0, 0x1 bne _080BD898 adds r0, r4, 0 b _080BD8AC _080BD898: cmp r4, 0 bne _080BD8A0 movs r4, 0x17 b _080BD8A6 _080BD8A0: subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _080BD8A6: cmp r4, r8 bne _080BD850 movs r0, 0xFF _080BD8AC: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end special_0x44 thumb_func_start sub_80BD8B8 sub_80BD8B8: @ 80BD8B8 push {lr} bl special_0x44 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xFF bne _080BD8CA movs r0, 0xFF b _080BD902 _080BD8CA: ldr r2, _080BD8F4 ldr r3, _080BD8F8 adds r0, r2, r3 ldrh r0, [r0] cmp r0, 0 beq _080BD900 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r2, _080BD8FC adds r0, r2 ldrb r0, [r0] cmp r0, 0x29 bne _080BD900 bl sub_80BDA30 lsls r0, 24 lsrs r0, 24 b _080BD902 .align 2, 0 _080BD8F4: .4byte 0x02025734 _080BD8F8: .4byte 0x00002afc _080BD8FC: .4byte 0x00002738 _080BD900: adds r0, r1, 0 _080BD902: pop {r1} bx r1 thumb_func_end sub_80BD8B8 thumb_func_start UpdateTVScreensOnMap UpdateTVScreensOnMap: @ 80BD908 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, _080BD938 bl FlagSet bl CheckForBigMovieOrEmergencyNewsOnTV lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BD92C cmp r0, 0x2 beq _080BD97E ldr r0, _080BD93C ldrh r0, [r0, 0x4] cmp r0, 0xD bne _080BD940 _080BD92C: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x3 bl SetTVMetatilesOnMap b _080BD97E .align 2, 0 _080BD938: .4byte 0x00000831 _080BD93C: .4byte 0x02025734 _080BD940: ldr r0, _080BD984 bl FlagGet lsls r0, 24 cmp r0, 0 beq _080BD97E bl sub_80BD8B8 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _080BD96E bl sub_80BECA0 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _080BD96E bl IsTVShowInSearchOfTrainersAiring lsls r0, 24 cmp r0, 0 beq _080BD97E _080BD96E: ldr r0, _080BD988 bl FlagReset adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x3 bl SetTVMetatilesOnMap _080BD97E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BD984: .4byte 0x00000832 _080BD988: .4byte 0x00000831 thumb_func_end UpdateTVScreensOnMap thumb_func_start SetTVMetatilesOnMap SetTVMetatilesOnMap: @ 80BD98C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r9, r0 mov r10, r1 lsls r2, 16 lsrs r2, 16 movs r5, 0 cmp r5, r10 bge _080BD9E0 movs r1, 0xC0 lsls r1, 4 adds r0, r1, 0 mov r8, r2 mov r1, r8 orrs r1, r0 mov r8, r1 _080BD9B2: movs r4, 0 adds r7, r5, 0x1 cmp r4, r9 bge _080BD9DA mov r0, r8 lsls r6, r0, 16 _080BD9BE: adds r0, r4, 0 adds r1, r5, 0 bl MapGridGetMetatileBehaviorAt cmp r0, 0x86 bne _080BD9D4 adds r0, r4, 0 adds r1, r5, 0 lsrs r2, r6, 16 bl MapGridSetMetatileIdAt _080BD9D4: adds r4, 0x1 cmp r4, r9 blt _080BD9BE _080BD9DA: adds r5, r7, 0 cmp r5, r10 blt _080BD9B2 _080BD9E0: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end SetTVMetatilesOnMap thumb_func_start TurnOffTVScreen TurnOffTVScreen: @ 80BD9F0 push {lr} ldr r1, _080BDA08 ldr r0, [r1] ldr r1, [r1, 0x4] movs r2, 0x2 bl SetTVMetatilesOnMap bl DrawWholeMapView pop {r0} bx r0 .align 2, 0 _080BDA08: .4byte 0x03004870 thumb_func_end TurnOffTVScreen thumb_func_start sub_80BDA0C sub_80BDA0C: @ 80BDA0C ldr r2, _080BDA24 ldr r0, _080BDA28 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _080BDA2C adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _080BDA24: .4byte 0x02025734 _080BDA28: .4byte 0x0202e8cc _080BDA2C: .4byte 0x00002738 thumb_func_end sub_80BDA0C thumb_func_start sub_80BDA30 sub_80BDA30: @ 80BDA30 push {r4,lr} movs r2, 0 ldr r3, _080BDA5C _080BDA36: lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r1, r0, r3 ldr r4, _080BDA60 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 beq _080BDA64 cmp r0, 0x29 beq _080BDA64 adds r4, 0x1 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0x1 bne _080BDA64 adds r0, r2, 0 b _080BDA70 .align 2, 0 _080BDA5C: .4byte 0x02025734 _080BDA60: .4byte 0x00002738 _080BDA64: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x17 bls _080BDA36 movs r0, 0xFF _080BDA70: pop {r4} pop {r1} bx r1 thumb_func_end sub_80BDA30 thumb_func_start special_0x4a special_0x4a: @ 80BDA78 push {lr} ldr r2, _080BDAA4 ldrh r1, [r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BDAA8 adds r0, r1 ldrb r0, [r0] cmp r0, 0x29 bne _080BDAAC movs r3, 0xF1 lsls r3, 2 adds r0, r1, r3 ldrh r0, [r0] cmp r0, 0 beq _080BDAAC bl sub_80BDA30 lsls r0, 24 lsrs r0, 24 b _080BDAAE .align 2, 0 _080BDAA4: .4byte 0x0202e8cc _080BDAA8: .4byte 0x02027e6c _080BDAAC: ldrb r0, [r2] _080BDAAE: pop {r1} bx r1 thumb_func_end special_0x4a thumb_func_start sub_80BDAB4 sub_80BDAB4: @ 80BDAB4 push {r4,lr} ldr r2, _080BDAF8 ldr r1, _080BDAFC adds r0, r2, r1 movs r3, 0 movs r1, 0 strh r1, [r0] ldr r4, _080BDB00 adds r0, r2, r4 strh r1, [r0] adds r4, 0x2 adds r0, r2, r4 strh r1, [r0] ldr r0, _080BDB04 adds r1, r2, r0 ldr r0, _080BDB08 strh r0, [r1] adds r4, 0x6 adds r1, r2, r4 movs r0, 0 strb r0, [r1] ldr r0, _080BDB0C adds r1, r2, r0 movs r0, 0 strb r0, [r1] ldr r1, _080BDB10 adds r0, r2, r1 strb r3, [r0] subs r4, 0x1 adds r2, r4 strb r3, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _080BDAF8: .4byte 0x02025734 _080BDAFC: .4byte 0x00002b10 _080BDB00: .4byte 0x00002b12 _080BDB04: .4byte 0x00002b16 _080BDB08: .4byte 0x0000ffff _080BDB0C: .4byte 0x00002b1b _080BDB10: .4byte 0x00002b18 thumb_func_end sub_80BDAB4 thumb_func_start GabbyAndTyBeforeInterview GabbyAndTyBeforeInterview: @ 80BDB14 push {r4,r5,lr} ldr r2, _080BDB68 ldr r3, _080BDB6C ldrh r1, [r3, 0x6] ldr r4, _080BDB70 adds r0, r2, r4 strh r1, [r0] ldrh r1, [r3, 0x26] adds r4, 0x2 adds r0, r2, r4 strh r1, [r0] ldrh r1, [r3, 0x22] adds r4, 0x2 adds r0, r2, r4 strh r1, [r0] ldr r0, _080BDB74 adds r4, r2, r0 ldrb r1, [r4] adds r0, r1, 0 adds r5, r2, 0 cmp r0, 0xFF beq _080BDB44 adds r0, r1, 0x1 strb r0, [r4] _080BDB44: ldrb r0, [r3, 0x5] lsls r0, 31 ldr r1, _080BDB78 adds r4, r5, r1 lsrs r0, 31 ldrb r1, [r4] movs r2, 0x2 negs r2, r2 ands r2, r1 orrs r2, r0 strb r2, [r4] ldrb r0, [r3] cmp r0, 0 beq _080BDB7C movs r0, 0x2 orrs r2, r0 b _080BDB82 .align 2, 0 _080BDB68: .4byte 0x02025734 _080BDB6C: .4byte 0x030042e0 _080BDB70: .4byte 0x00002b10 _080BDB74: .4byte 0x00002b19 _080BDB78: .4byte 0x00002b1a _080BDB7C: movs r0, 0x3 negs r0, r0 ands r2, r0 _080BDB82: strb r2, [r4] ldrb r0, [r3, 0x3] cmp r0, 0 beq _080BDB9C ldr r4, _080BDB98 adds r0, r5, r4 ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _080BDBAA .align 2, 0 _080BDB98: .4byte 0x00002b1a _080BDB9C: ldr r0, _080BDBDC adds r2, r5, r0 ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _080BDBAA: ldrb r1, [r3, 0x5] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080BDBE0 movs r1, 0 adds r0, r3, 0 adds r0, 0x36 ldrb r0, [r0] cmp r0, 0 bne _080BDBE0 _080BDBC0: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xA bhi _080BDBEC adds r0, r3, 0 adds r0, 0x36 adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0 beq _080BDBC0 ldr r4, _080BDBDC adds r0, r5, r4 b _080BDBE4 .align 2, 0 _080BDBDC: .4byte 0x00002b1a _080BDBE0: ldr r1, _080BDC08 adds r0, r5, r1 _080BDBE4: ldrb r1, [r0] movs r2, 0x8 orrs r1, r2 strb r1, [r0] _080BDBEC: bl TakeTVShowInSearchOfTrainersOffTheAir ldr r0, _080BDC0C ldr r4, _080BDC10 adds r0, r4 ldrh r0, [r0] cmp r0, 0 bne _080BDC02 movs r0, 0x1 bl FlagSet _080BDC02: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BDC08: .4byte 0x00002b1a _080BDC0C: .4byte 0x02025734 _080BDC10: .4byte 0x00002b14 thumb_func_end GabbyAndTyBeforeInterview thumb_func_start sub_80BDC14 sub_80BDC14: @ 80BDC14 push {r4-r6,lr} ldr r4, _080BDC70 ldr r0, _080BDC74 adds r6, r4, r0 ldrb r3, [r6] lsls r1, r3, 31 adds r0, 0x1 adds r5, r4, r0 lsrs r1, 31 ldrb r2, [r5] movs r0, 0x2 negs r0, r0 ands r0, r2 orrs r0, r1 movs r1, 0x2 ands r1, r3 movs r2, 0x3 negs r2, r2 ands r0, r2 orrs r0, r1 movs r1, 0x4 ands r1, r3 subs r2, 0x2 ands r0, r2 orrs r0, r1 movs r1, 0x8 ands r1, r3 subs r2, 0x4 ands r0, r2 orrs r0, r1 strb r0, [r5] movs r0, 0x10 orrs r3, r0 strb r3, [r6] ldr r0, _080BDC78 ldrb r0, [r0, 0x14] ldr r1, _080BDC7C adds r4, r1 strb r0, [r4] movs r0, 0x6 bl sav12_xor_increment pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BDC70: .4byte 0x02025734 _080BDC74: .4byte 0x00002b1a _080BDC78: .4byte 0x0202e828 _080BDC7C: .4byte 0x00002b18 thumb_func_end sub_80BDC14 thumb_func_start TakeTVShowInSearchOfTrainersOffTheAir TakeTVShowInSearchOfTrainersOffTheAir: @ 80BDC80 ldr r0, _080BDC94 ldr r1, _080BDC98 adds r0, r1 ldrb r2, [r0] movs r1, 0x11 negs r1, r1 ands r1, r2 strb r1, [r0] bx lr .align 2, 0 _080BDC94: .4byte 0x02025734 _080BDC98: .4byte 0x00002b1a thumb_func_end TakeTVShowInSearchOfTrainersOffTheAir thumb_func_start GabbyAndTyGetBattleNum GabbyAndTyGetBattleNum: @ 80BDC9C push {lr} ldr r0, _080BDCBC ldr r2, _080BDCC0 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0x5 bls _080BDCB8 ldrb r0, [r1] movs r1, 0x3 bl __umodsi3 adds r0, 0x6 lsls r0, 24 lsrs r0, 24 _080BDCB8: pop {r1} bx r1 .align 2, 0 _080BDCBC: .4byte 0x02025734 _080BDCC0: .4byte 0x00002b19 thumb_func_end GabbyAndTyGetBattleNum thumb_func_start IsTVShowInSearchOfTrainersAiring IsTVShowInSearchOfTrainersAiring: @ 80BDCC4 ldr r0, _080BDCD4 ldr r1, _080BDCD8 adds r0, r1 ldrb r0, [r0] lsls r0, 27 lsrs r0, 31 bx lr .align 2, 0 _080BDCD4: .4byte 0x02025734 _080BDCD8: .4byte 0x00002b1a thumb_func_end IsTVShowInSearchOfTrainersAiring thumb_func_start GabbyAndTyGetLastQuote GabbyAndTyGetLastQuote: @ 80BDCDC push {r4,r5,lr} ldr r0, _080BDD00 ldr r1, _080BDD04 adds r4, r0, r1 ldrh r0, [r4] ldr r5, _080BDD08 cmp r0, r5 beq _080BDD10 ldr r0, _080BDD0C ldrh r1, [r4] bl sub_80EB3FC ldrh r1, [r4] adds r0, r5, 0 orrs r0, r1 strh r0, [r4] movs r0, 0x1 b _080BDD12 .align 2, 0 _080BDD00: .4byte 0x02025734 _080BDD04: .4byte 0x00002b16 _080BDD08: .4byte 0x0000ffff _080BDD0C: .4byte 0x020231cc _080BDD10: movs r0, 0 _080BDD12: pop {r4,r5} pop {r1} bx r1 thumb_func_end GabbyAndTyGetLastQuote thumb_func_start sub_80BDD18 sub_80BDD18: @ 80BDD18 push {lr} ldr r0, _080BDD30 ldr r1, _080BDD34 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080BDD38 movs r0, 0x1 b _080BDD5E .align 2, 0 _080BDD30: .4byte 0x02025734 _080BDD34: .4byte 0x00002b1b _080BDD38: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080BDD44 movs r0, 0x2 b _080BDD5E _080BDD44: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080BDD50 movs r0, 0x3 b _080BDD5E _080BDD50: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080BDD5C movs r0, 0 b _080BDD5E _080BDD5C: movs r0, 0x4 _080BDD5E: pop {r1} bx r1 thumb_func_end sub_80BDD18 thumb_func_start GabbyAndTySetScriptVarsToFieldObjectLocalIds GabbyAndTySetScriptVarsToFieldObjectLocalIds: @ 80BDD64 push {lr} bl GabbyAndTyGetBattleNum lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r0, 0x7 bhi _080BDE3C lsls r0, 2 ldr r1, _080BDD80 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080BDD80: .4byte _080BDD84 .align 2, 0 _080BDD84: .4byte _080BDDA4 .4byte _080BDDB8 .4byte _080BDDCC .4byte _080BDDE0 .4byte _080BDDF4 .4byte _080BDE08 .4byte _080BDE1C .4byte _080BDE30 _080BDDA4: ldr r1, _080BDDB0 movs r0, 0xE strh r0, [r1] ldr r1, _080BDDB4 movs r0, 0xD b _080BDE3A .align 2, 0 _080BDDB0: .4byte 0x0202e8cc _080BDDB4: .4byte 0x0202e8ce _080BDDB8: ldr r1, _080BDDC4 movs r0, 0x5 strh r0, [r1] ldr r1, _080BDDC8 movs r0, 0x6 b _080BDE3A .align 2, 0 _080BDDC4: .4byte 0x0202e8cc _080BDDC8: .4byte 0x0202e8ce _080BDDCC: ldr r1, _080BDDD8 movs r0, 0x12 strh r0, [r1] ldr r1, _080BDDDC movs r0, 0x11 b _080BDE3A .align 2, 0 _080BDDD8: .4byte 0x0202e8cc _080BDDDC: .4byte 0x0202e8ce _080BDDE0: ldr r1, _080BDDEC movs r0, 0x15 strh r0, [r1] ldr r1, _080BDDF0 movs r0, 0x16 b _080BDE3A .align 2, 0 _080BDDEC: .4byte 0x0202e8cc _080BDDF0: .4byte 0x0202e8ce _080BDDF4: ldr r1, _080BDE00 movs r0, 0x8 strh r0, [r1] ldr r1, _080BDE04 movs r0, 0x9 b _080BDE3A .align 2, 0 _080BDE00: .4byte 0x0202e8cc _080BDE04: .4byte 0x0202e8ce _080BDE08: ldr r1, _080BDE14 movs r0, 0x13 strh r0, [r1] ldr r1, _080BDE18 movs r0, 0x14 b _080BDE3A .align 2, 0 _080BDE14: .4byte 0x0202e8cc _080BDE18: .4byte 0x0202e8ce _080BDE1C: ldr r1, _080BDE28 movs r0, 0x17 strh r0, [r1] ldr r1, _080BDE2C movs r0, 0x18 b _080BDE3A .align 2, 0 _080BDE28: .4byte 0x0202e8cc _080BDE2C: .4byte 0x0202e8ce _080BDE30: ldr r1, _080BDE40 movs r0, 0xA strh r0, [r1] ldr r1, _080BDE44 movs r0, 0xB _080BDE3A: strh r0, [r1] _080BDE3C: pop {r0} bx r0 .align 2, 0 _080BDE40: .4byte 0x0202e8cc _080BDE44: .4byte 0x0202e8ce thumb_func_end GabbyAndTySetScriptVarsToFieldObjectLocalIds thumb_func_start sub_80BDE48 sub_80BDE48: @ 80BDE48 push {lr} ldr r0, _080BDE60 ldrh r0, [r0] subs r0, 0x1 cmp r0, 0x6 bhi _080BDEA6 lsls r0, 2 ldr r1, _080BDE64 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080BDE60: .4byte 0x0202e8ce _080BDE64: .4byte _080BDE68 .align 2, 0 _080BDE68: .4byte _080BDE84 .4byte _080BDE8A .4byte _080BDE90 .4byte _080BDE96 .4byte _080BDEA6 .4byte _080BDE9C .4byte _080BDEA2 _080BDE84: bl sub_80BE5FC b _080BDEA6 _080BDE8A: bl sub_80BE65C b _080BDEA6 _080BDE90: bl sub_80BE6A0 b _080BDEA6 _080BDE96: bl nullsub_21 b _080BDEA6 _080BDE9C: bl sub_80BE188 b _080BDEA6 _080BDEA2: bl sub_80BE320 _080BDEA6: pop {r0} bx r0 thumb_func_end sub_80BDE48 thumb_func_start sub_80BDEAC sub_80BDEAC: @ 80BDEAC push {lr} adds r1, r0, 0 movs r2, 0x2 ldrb r0, [r1] cmp r0, 0xFC bne _080BDEC0 ldrb r0, [r1, 0x1] cmp r0, 0x15 bne _080BDEC0 movs r2, 0x1 _080BDEC0: adds r0, r2, 0 pop {r1} bx r1 thumb_func_end sub_80BDEAC thumb_func_start sub_80BDEC8 sub_80BDEC8: @ 80BDEC8 push {r4-r7,lr} mov r7, r8 push {r7} movs r4, 0 bl sub_80BEB20 bl sub_80BE778 ldr r5, _080BDEE8 ldrh r0, [r5, 0x28] cmp r0, 0 bne _080BDEEC bl sub_80BE074 b _080BE012 .align 2, 0 _080BDEE8: .4byte 0x030042e0 _080BDEEC: bl sub_80BE028 ldr r0, _080BDF98 bl sub_80BF77C lsls r0, 24 cmp r0, 0 beq _080BDEFE b _080BE012 _080BDEFE: ldrh r1, [r5, 0x28] movs r0, 0xB muls r0, r1 ldr r1, _080BDF9C adds r0, r1 adds r1, r5, 0 adds r1, 0x2A bl StringCompareWithoutExtCtrlCodes cmp r0, 0 bne _080BDF16 b _080BE012 _080BDF16: ldr r0, _080BDFA0 bl sub_80BF74C ldr r1, _080BDFA4 strb r0, [r1] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BE012 movs r0, 0x15 bl sub_80BF1B4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BE012 movs r2, 0 adds r7, r5, 0 adds r1, r7, 0 adds r1, 0x36 _080BDF42: adds r0, r2, r1 ldrb r0, [r0] adds r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xA bls _080BDF42 cmp r4, 0 bne _080BDF64 ldrb r1, [r7, 0x5] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080BE012 _080BDF64: movs r4, 0 ldr r0, _080BDFA4 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BDFA0 adds r5, r0, r1 movs r0, 0x15 strb r0, [r5] strb r4, [r5, 0x1] ldrb r1, [r7, 0x5] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080BDFAC movs r4, 0x1 movs r0, 0x1 adds r3, r5, 0 adds r3, 0x13 ldr r1, _080BDFA8 mov r8, r1 adds r6, r5, 0x4 b _080BDFDE .align 2, 0 _080BDF98: .4byte 0x0000ffff _080BDF9C: .4byte gSpeciesNames _080BDFA0: .4byte 0x02027e6c _080BDFA4: .4byte 0x03005d38 _080BDFA8: .4byte gSaveBlock2 _080BDFAC: movs r2, 0 ldr r0, _080BE01C mov r12, r0 adds r3, r5, 0 adds r3, 0x13 ldr r1, _080BE020 mov r8, r1 adds r6, r5, 0x4 adds r1, r7, 0 adds r1, 0x36 _080BDFC0: adds r0, r2, r1 ldrb r0, [r0] adds r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xA bls _080BDFC0 cmp r4, 0xFF bls _080BDFDA movs r4, 0xFF _080BDFDA: mov r1, r12 ldrh r0, [r1] _080BDFDE: strb r4, [r5, 0x12] strb r0, [r5, 0xF] adds r0, r3, 0 mov r1, r8 bl StringCopy ldr r4, _080BE024 adds r0, r6, 0 adds r1, r4, 0 bl StringCopy subs r4, 0x2A ldrh r0, [r4, 0x28] strh r0, [r5, 0x10] adds r0, r5, 0 bl sub_80BE138 movs r0, 0x2 strb r0, [r5, 0x2] adds r0, r6, 0 bl sub_80BDEAC strb r0, [r5, 0x3] adds r0, r6, 0 bl SkipExtCtrlCodes _080BE012: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BE01C: .4byte 0x02024c04 _080BE020: .4byte gSaveBlock2 _080BE024: .4byte 0x0300430a thumb_func_end sub_80BDEC8 thumb_func_start sub_80BE028 sub_80BE028: @ 80BE028 push {r4,lr} ldr r4, _080BE064 ldrb r0, [r4] cmp r0, 0x19 beq _080BE048 ldr r1, _080BE068 adds r0, r4, r1 movs r1, 0x18 bl sub_80BF55C movs r0, 0x5 bl sub_8053108 strh r0, [r4, 0x6] movs r0, 0x19 strb r0, [r4] _080BE048: ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] ldr r1, _080BE06C ldrh r0, [r1, 0x28] strh r0, [r4, 0x4] ldrh r0, [r1, 0x6] strh r0, [r4, 0x8] ldr r0, _080BE070 ldrb r0, [r0, 0x14] strb r0, [r4, 0xA] pop {r4} pop {r0} bx r0 .align 2, 0 _080BE064: .4byte 0x020281cc _080BE068: .4byte 0xfffffca0 _080BE06C: .4byte 0x030042e0 _080BE070: .4byte 0x0202e828 thumb_func_end sub_80BE028 thumb_func_start sub_80BE074 sub_80BE074: @ 80BE074 push {r4-r7,lr} ldr r0, _080BE118 bl sub_80BF77C lsls r0, 24 cmp r0, 0 bne _080BE112 movs r1, 0 movs r5, 0 ldr r2, _080BE11C _080BE088: adds r0, r1, r2 ldrb r0, [r0] adds r0, r5, r0 lsls r0, 16 lsrs r5, r0, 16 adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xA bls _080BE088 cmp r5, 0xFF bls _080BE0A2 movs r5, 0xFF _080BE0A2: cmp r5, 0x2 bls _080BE112 ldr r7, _080BE120 ldrb r0, [r7] cmp r0, 0x1 bne _080BE112 ldr r6, _080BE124 adds r0, r6, 0 bl sub_80BF74C ldr r4, _080BE128 strb r0, [r4] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BE112 movs r0, 0x17 bl sub_80BF1B4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BE112 movs r0, 0 ldrsb r0, [r4, r0] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 adds r4, r6 movs r1, 0 movs r0, 0x17 strb r0, [r4] strb r1, [r4, 0x1] ldr r1, _080BE12C ldrh r0, [r1, 0x6] strh r0, [r4, 0xC] ldrh r0, [r1, 0x20] strh r0, [r4, 0xE] strb r5, [r4, 0x10] ldrb r0, [r7] strb r0, [r4, 0x11] ldr r0, _080BE130 ldrb r0, [r0, 0x14] strb r0, [r4, 0x12] adds r0, r4, 0 adds r0, 0x13 ldr r1, _080BE134 bl StringCopy adds r0, r4, 0 bl sub_80BE138 movs r0, 0x2 strb r0, [r4, 0x2] _080BE112: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BE118: .4byte 0x0000ffff _080BE11C: .4byte 0x03004316 _080BE120: .4byte 0x02024d26 _080BE124: .4byte 0x02027e6c _080BE128: .4byte 0x03005d38 _080BE12C: .4byte 0x030042e0 _080BE130: .4byte 0x0202e828 _080BE134: .4byte gSaveBlock2 thumb_func_end sub_80BE074 thumb_func_start sub_80BE138 sub_80BE138: @ 80BE138 push {r4,lr} adds r4, r0, 0 bl sub_80BFB94 strb r0, [r4, 0x1E] lsrs r2, r0, 8 strb r2, [r4, 0x1F] adds r1, r4, 0 adds r1, 0x20 strb r0, [r1] adds r1, 0x1 strb r2, [r1] adds r1, 0x1 strb r0, [r1] adds r0, r4, 0 adds r0, 0x23 strb r2, [r0] pop {r4} pop {r0} bx r0 thumb_func_end sub_80BE138 thumb_func_start sub_80BE160 sub_80BE160: @ 80BE160 push {r4,lr} adds r4, r0, 0 bl sub_80BFB94 adds r1, r4, 0 adds r1, 0x20 strb r0, [r1] lsrs r1, r0, 8 adds r2, r4, 0 adds r2, 0x21 strb r1, [r2] adds r2, 0x1 strb r0, [r2] adds r0, r4, 0 adds r0, 0x23 strb r1, [r0] pop {r4} pop {r0} bx r0 thumb_func_end sub_80BE160 thumb_func_start sub_80BE188 sub_80BE188: @ 80BE188 push {r4-r6,lr} ldr r6, _080BE22C ldrb r1, [r6] cmp r1, 0x6 bne _080BE224 ldr r0, _080BE230 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r2, _080BE234 adds r0, r6, r2 adds r4, r0 strb r1, [r4] movs r0, 0x1 strb r0, [r4, 0x1] ldrh r0, [r6, 0x2] strh r0, [r4, 0x2] adds r0, r4, 0 adds r0, 0x16 ldr r1, _080BE238 bl StringCopy adds r5, r4, 0 adds r5, 0x8 adds r1, r6, 0 adds r1, 0x8 adds r0, r5, 0 bl StringCopy ldrb r0, [r6, 0x13] lsls r0, 29 lsrs r0, 29 ldrb r2, [r4, 0x13] movs r3, 0x8 negs r3, r3 adds r1, r3, 0 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x13] ldrb r2, [r6, 0x13] movs r0, 0x18 ands r0, r2 movs r2, 0x19 negs r2, r2 ands r2, r1 orrs r2, r0 strb r2, [r4, 0x13] ldrh r0, [r6, 0x14] strh r0, [r4, 0x14] ldrb r0, [r6, 0x13] movs r1, 0x60 ands r1, r0 movs r0, 0x61 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x13] ldrb r1, [r6, 0x13] lsls r1, 29 lsrs r1, 29 ands r0, r3 orrs r0, r1 strb r0, [r4, 0x13] adds r0, r4, 0 bl sub_80BE160 movs r0, 0x2 strb r0, [r4, 0x1E] adds r0, r5, 0 bl sub_80BDEAC strb r0, [r4, 0x1F] adds r0, r5, 0 bl SkipExtCtrlCodes _080BE224: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BE22C: .4byte 0x020281cc _080BE230: .4byte 0x03005d38 _080BE234: .4byte 0xfffffca0 _080BE238: .4byte gSaveBlock2 thumb_func_end sub_80BE188 thumb_func_start sub_80BE23C sub_80BE23C: @ 80BE23C push {r4-r6,lr} lsls r0, 16 lsrs r6, r0, 16 ldr r4, _080BE278 bl sub_80BF484 ldr r0, _080BE27C adds r5, r4, r0 adds r0, r5, 0 bl sub_80BF720 ldr r1, _080BE280 strb r0, [r1] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BE270 adds r0, r5, 0 movs r1, 0x18 bl sub_80BF55C strh r6, [r4, 0x14] movs r0, 0x6 strb r0, [r4] _080BE270: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BE278: .4byte 0x020281cc _080BE27C: .4byte 0xfffffca0 _080BE280: .4byte 0x03005d38 thumb_func_end sub_80BE23C thumb_func_start sub_80BE284 sub_80BE284: @ 80BE284 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r7, _080BE304 ldr r1, _080BE308 adds r0, r7, r1 bl sub_80BF720 ldr r1, _080BE30C strb r0, [r1] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BE2FE movs r3, 0x3 adds r1, r4, 0 ands r1, r3 lsls r1, 5 ldrb r2, [r7, 0x13] movs r0, 0x61 negs r0, r0 ands r0, r2 orrs r0, r1 ldr r1, _080BE310 ldrb r2, [r1] movs r1, 0x7 ands r1, r2 movs r2, 0x8 negs r2, r2 ands r0, r2 orrs r0, r1 ldr r1, _080BE314 ldrb r1, [r1] ands r3, r1 lsls r3, 3 movs r1, 0x19 negs r1, r1 ands r0, r1 orrs r0, r3 strb r0, [r7, 0x13] ldr r6, _080BE318 ldrb r0, [r6] movs r5, 0x64 muls r0, r5 ldr r4, _080BE31C adds r0, r4 movs r1, 0xB movs r2, 0 bl PokemonGetField strh r0, [r7, 0x2] ldrb r0, [r6] muls r0, r5 adds r0, r4 adds r2, r7, 0 adds r2, 0x8 movs r1, 0x2 bl PokemonGetField _080BE2FE: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BE304: .4byte 0x020281cc _080BE308: .4byte 0xfffffca0 _080BE30C: .4byte 0x03005d38 _080BE310: .4byte 0x0203869c _080BE314: .4byte 0x0203869e _080BE318: .4byte 0x02038694 _080BE31C: .4byte 0x03004360 thumb_func_end sub_80BE284 thumb_func_start sub_80BE320 sub_80BE320: @ 80BE320 push {r4-r6,lr} ldr r0, _080BE384 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BE388 adds r6, r0, r1 movs r0, 0x7 strb r0, [r6] movs r0, 0x1 strb r0, [r6, 0x1] adds r0, r6, 0x2 ldr r4, _080BE38C adds r1, r4, 0 bl StringCopy adds r0, r6, 0 adds r0, 0xC ldr r2, _080BE390 adds r1, r4, r2 bl StringCopy movs r1, 0x90 lsls r1, 3 adds r0, r4, r1 ldrh r0, [r0] strh r0, [r6, 0xA] ldr r2, _080BE394 adds r0, r4, r2 ldrh r0, [r0] strh r0, [r6, 0x14] movs r0, 0xAF lsls r0, 3 adds r5, r4, r0 ldrb r0, [r5] bl sub_8135D3C strh r0, [r6, 0x16] ldr r1, _080BE398 adds r4, r1 ldrb r0, [r4] strb r0, [r6, 0x1C] ldrb r0, [r5] cmp r0, 0 bne _080BE39C movs r0, 0x32 b _080BE39E .align 2, 0 _080BE384: .4byte 0x03005d38 _080BE388: .4byte 0x02027e6c _080BE38C: .4byte gSaveBlock2 _080BE390: .4byte 0x00000484 _080BE394: .4byte 0x00000482 _080BE398: .4byte 0x00000555 _080BE39C: movs r0, 0x64 _080BE39E: strb r0, [r6, 0x1A] ldr r0, _080BE3B8 ldrh r0, [r0] strb r0, [r6, 0x1B] adds r0, r6, 0 bl sub_80BE160 movs r0, 0x2 strb r0, [r6, 0x1D] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BE3B8: .4byte 0x0202e8cc thumb_func_end sub_80BE320 thumb_func_start sub_80BE3BC sub_80BE3BC: @ 80BE3BC push {r4-r7,lr} ldr r0, _080BE460 bl sub_80BF77C lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080BE458 ldr r6, _080BE464 adds r0, r6, 0 bl sub_80BF74C ldr r5, _080BE468 strb r0, [r5] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BE458 movs r0, 0x16 bl sub_80BF1B4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BE458 bl sub_80BF20C ldr r2, _080BE46C ldrh r0, [r2, 0x2] cmp r0, 0x13 bls _080BE458 movs r1, 0 ldrsb r1, [r5, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r5, r0, r6 movs r0, 0x16 strb r0, [r5] strb r4, [r5, 0x1] ldr r0, _080BE470 ldrb r0, [r0, 0x14] strb r0, [r5, 0x12] movs r4, 0 adds r7, r5, 0x6 mov r12, r2 adds r6, r5, 0 adds r6, 0xC _080BE420: lsls r2, r4, 1 adds r3, r7, r2 lsls r1, r4, 2 add r1, r12 ldrh r0, [r1] strh r0, [r3] adds r2, r6, r2 ldrh r0, [r1, 0x2] strh r0, [r2] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _080BE420 movs r0, 0x1 bl GetPriceReduction strb r0, [r5, 0x2] adds r0, r5, 0 adds r0, 0x13 ldr r1, _080BE474 bl StringCopy adds r0, r5, 0 bl sub_80BE138 movs r0, 0x2 strb r0, [r5, 0x3] _080BE458: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BE460: .4byte 0x00005555 _080BE464: .4byte 0x02027e6c _080BE468: .4byte 0x03005d38 _080BE46C: .4byte 0x02038724 _080BE470: .4byte 0x0202e828 _080BE474: .4byte gSaveBlock2 thumb_func_end sub_80BE3BC thumb_func_start sub_80BE478 sub_80BE478: @ 80BE478 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} bl sub_80BF478 ldr r0, _080BE554 ldrh r0, [r0] cmp r0, 0x1 beq _080BE548 ldr r0, _080BE558 mov r8, r0 ldrh r0, [r0] movs r7, 0x64 muls r0, r7 ldr r6, _080BE55C adds r0, r6 ldr r4, _080BE560 movs r1, 0x2 adds r2, r4, 0 bl PokemonGetField ldr r1, _080BE564 mov r9, r1 mov r0, r9 bl StringLength lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _080BE548 adds r0, r4, 0 bl StringLength lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _080BE548 ldr r0, _080BE568 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080BE56C adds r4, r0 movs r0, 0x5 strb r0, [r4] movs r5, 0x1 strb r5, [r4, 0x1] mov r1, r8 ldrh r0, [r1] muls r0, r7 adds r0, r6 movs r1, 0xB movs r2, 0 bl PokemonGetField strh r0, [r4, 0x2] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 strb r0, [r4, 0x1A] bl Random lsls r0, 16 lsrs r0, 16 ands r0, r5 strb r0, [r4, 0x1B] ldrh r0, [r4, 0x2] bl sub_80BF674 strh r0, [r4, 0x1C] adds r0, r4, 0 adds r0, 0xF mov r1, r9 bl StringCopy mov r1, r8 ldrh r0, [r1] muls r0, r7 adds r0, r6 adds r5, r4, 0x4 movs r1, 0x2 adds r2, r5, 0 bl PokemonGetField adds r0, r4, 0 bl sub_80BE160 movs r0, 0x2 strb r0, [r4, 0x1E] adds r0, r5, 0 bl sub_80BDEAC strb r0, [r4, 0x1F] adds r0, r5, 0 bl SkipExtCtrlCodes _080BE548: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BE554: .4byte 0x0202e8dc _080BE558: .4byte 0x0202e8cc _080BE55C: .4byte 0x03004360 _080BE560: .4byte 0x020231cc _080BE564: .4byte gSaveBlock2 _080BE568: .4byte 0x03005d38 _080BE56C: .4byte 0x02027e6c thumb_func_end sub_80BE478 thumb_func_start StartMassOutbreak StartMassOutbreak: @ 80BE570 push {r4,lr} ldr r0, _080BE5F0 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r2, _080BE5F4 adds r0, r2 ldrh r3, [r0, 0xC] movs r4, 0xF1 lsls r4, 2 adds r1, r2, r4 strh r3, [r1] ldrb r3, [r0, 0x10] adds r4, 0x2 adds r1, r2, r4 strb r3, [r1] ldrb r3, [r0, 0x11] adds r4, 0x1 adds r1, r2, r4 strb r3, [r1] ldrb r3, [r0, 0x14] adds r4, 0x1 adds r1, r2, r4 strb r3, [r1] ldrb r3, [r0, 0x2] adds r4, 0x1 adds r1, r2, r4 strb r3, [r1] ldrh r3, [r0, 0xE] adds r4, 0x1 adds r1, r2, r4 strh r3, [r1] ldrh r3, [r0, 0x4] adds r4, 0x2 adds r1, r2, r4 strh r3, [r1] ldrh r3, [r0, 0x6] adds r4, 0x2 adds r1, r2, r4 strh r3, [r1] ldrh r3, [r0, 0x8] adds r4, 0x2 adds r1, r2, r4 strh r3, [r1] ldrh r3, [r0, 0xA] adds r4, 0x2 adds r1, r2, r4 strh r3, [r1] ldrb r3, [r0, 0x3] adds r4, 0x2 adds r1, r2, r4 strb r3, [r1] ldrb r1, [r0, 0x13] ldr r3, _080BE5F8 adds r0, r2, r3 strb r1, [r0] adds r4, 0x2 adds r2, r4 movs r0, 0x2 strh r0, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _080BE5F0: .4byte 0x0202e8cc _080BE5F4: .4byte 0x02027e6c _080BE5F8: .4byte 0x000003d5 thumb_func_end StartMassOutbreak thumb_func_start sub_80BE5FC sub_80BE5FC: @ 80BE5FC push {r4,lr} ldr r0, _080BE64C ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080BE650 adds r4, r0 movs r0, 0x1 strb r0, [r4] strb r0, [r4, 0x1] adds r0, r4, 0 adds r0, 0x10 ldr r1, _080BE654 bl StringCopy bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _080BE658 adds r0, r1 movs r1, 0xB movs r2, 0 bl PokemonGetField strh r0, [r4, 0x2] adds r0, r4, 0 bl sub_80BE160 movs r0, 0x2 strb r0, [r4, 0x18] pop {r4} pop {r0} bx r0 .align 2, 0 _080BE64C: .4byte 0x03005d38 _080BE650: .4byte 0x02027e6c _080BE654: .4byte gSaveBlock2 _080BE658: .4byte 0x03004360 thumb_func_end sub_80BE5FC thumb_func_start sub_80BE65C sub_80BE65C: @ 80BE65C push {r4-r6,lr} ldr r0, _080BE694 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080BE698 adds r4, r0 movs r6, 0 movs r5, 0x2 strb r5, [r4] movs r0, 0x1 strb r0, [r4, 0x1] adds r0, r4, 0 adds r0, 0x10 ldr r1, _080BE69C bl StringCopy strh r6, [r4, 0x2] adds r0, r4, 0 bl sub_80BE160 strb r5, [r4, 0x18] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BE694: .4byte 0x03005d38 _080BE698: .4byte 0x02027e6c _080BE69C: .4byte gSaveBlock2 thumb_func_end sub_80BE65C thumb_func_start sub_80BE6A0 sub_80BE6A0: @ 80BE6A0 push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, _080BE760 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080BE764 adds r4, r0 movs r0, 0x3 strb r0, [r4] movs r0, 0x1 strb r0, [r4, 0x1] bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 mov r8, r1 mov r1, r8 muls r1, r0 adds r0, r1, 0 ldr r6, _080BE768 adds r0, r6 movs r1, 0x20 movs r2, 0 bl PokemonGetField lsrs r0, 4 movs r1, 0xF ands r0, r1 ldrb r2, [r4, 0x4] movs r1, 0x10 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x4] ldr r0, _080BE76C ldrb r0, [r0] lsls r0, 4 movs r2, 0xF ands r1, r2 orrs r1, r0 strb r1, [r4, 0x4] adds r0, r4, 0x5 ldr r1, _080BE770 bl StringCopy bl sub_810F87C lsls r0, 24 lsrs r0, 24 mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 adds r5, r4, 0 adds r5, 0x10 movs r1, 0x2 adds r2, r5, 0 bl PokemonGetField bl sub_810F87C lsls r0, 24 lsrs r0, 24 mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 movs r1, 0xB movs r2, 0 bl PokemonGetField strh r0, [r4, 0x2] adds r0, r4, 0 bl sub_80BE160 movs r0, 0x2 strb r0, [r4, 0xD] adds r0, r5, 0 bl sub_80BDEAC strb r0, [r4, 0xE] adds r0, r5, 0 bl SkipExtCtrlCodes pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BE760: .4byte 0x03005d38 _080BE764: .4byte 0x02027e6c _080BE768: .4byte 0x03004360 _080BE76C: .4byte 0x0202e8d2 _080BE770: .4byte gSaveBlock2 thumb_func_end sub_80BE6A0 thumb_func_start nullsub_21 nullsub_21: @ 80BE774 bx lr thumb_func_end nullsub_21 thumb_func_start sub_80BE778 sub_80BE778: @ 80BE778 push {r4-r6,lr} ldr r0, _080BE83C bl FlagGet lsls r0, 24 cmp r0, 0 beq _080BE836 movs r1, 0 ldr r3, _080BE840 ldr r2, _080BE844 _080BE78C: lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, r2 ldrb r0, [r0] cmp r0, 0x29 beq _080BE836 adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x17 bls _080BE78C ldr r0, _080BE848 bl sub_80BF77C lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _080BE836 ldr r6, _080BE84C adds r0, r6, 0 bl sub_80BF720 ldr r4, _080BE850 strb r0, [r4] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BE836 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x5 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0 ldrsb r1, [r4, r1] lsls r4, r1, 3 adds r4, r1 lsls r4, 2 adds r4, r6 movs r1, 0x29 strb r1, [r4] movs r3, 0x1 strb r3, [r4, 0x1] ldr r2, _080BE854 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0xA] strb r0, [r4, 0x14] strb r5, [r4, 0x2] strb r5, [r4, 0x3] ldrh r0, [r1] movs r2, 0 strh r0, [r4, 0xC] strh r5, [r4, 0xE] ldrh r0, [r1, 0x2] strh r0, [r4, 0x4] ldrh r0, [r1, 0x4] strh r0, [r4, 0x6] ldrh r0, [r1, 0x6] strh r0, [r4, 0x8] ldrh r0, [r1, 0x8] strh r0, [r4, 0xA] ldrb r0, [r1, 0xB] strb r0, [r4, 0x10] strb r2, [r4, 0x11] strb r2, [r4, 0x12] movs r0, 0x32 strb r0, [r4, 0x13] strb r2, [r4, 0x15] strh r3, [r4, 0x16] adds r0, r4, 0 bl sub_80BE160 movs r0, 0x2 strb r0, [r4, 0x18] _080BE836: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BE83C: .4byte 0x00000804 _080BE840: .4byte 0x02025734 _080BE844: .4byte 0x00002738 _080BE848: .4byte 0x00000147 _080BE84C: .4byte 0x02027e6c _080BE850: .4byte 0x03005d38 _080BE854: .4byte gUnknown_083D13F8 thumb_func_end sub_80BE778 thumb_func_start EndMassOutbreak EndMassOutbreak: @ 80BE858 push {r4,lr} ldr r0, _080BE8B4 ldr r2, _080BE8B8 adds r1, r0, r2 movs r3, 0 movs r2, 0 strh r2, [r1] ldr r4, _080BE8BC adds r1, r0, r4 strb r3, [r1] adds r4, 0x1 adds r1, r0, r4 strb r3, [r1] adds r4, 0x1 adds r1, r0, r4 strb r3, [r1] adds r4, 0x1 adds r1, r0, r4 strb r3, [r1] adds r4, 0x1 adds r1, r0, r4 strh r2, [r1] adds r4, 0x2 adds r1, r0, r4 strh r2, [r1] adds r4, 0x2 adds r1, r0, r4 strh r2, [r1] adds r4, 0x2 adds r1, r0, r4 strh r2, [r1] adds r4, 0x2 adds r1, r0, r4 strh r2, [r1] adds r4, 0x2 adds r1, r0, r4 strb r3, [r1] adds r4, 0x1 adds r1, r0, r4 strb r3, [r1] ldr r1, _080BE8C0 adds r0, r1 strh r2, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080BE8B4: .4byte 0x02025734 _080BE8B8: .4byte 0x00002afc _080BE8BC: .4byte 0x00002afe _080BE8C0: .4byte 0x00002b0e thumb_func_end EndMassOutbreak thumb_func_start sub_80BE8C4 sub_80BE8C4: @ 80BE8C4 push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r4, 0 bl sub_80BE8EC adds r0, r4, 0 bl UpdateMassOutbreakTimeLeft adds r0, r4, 0 bl sub_80BEE84 adds r0, r4, 0 bl sub_80BEA5C pop {r4} pop {r0} bx r0 thumb_func_end sub_80BE8C4 thumb_func_start sub_80BE8EC sub_80BE8EC: @ 80BE8EC push {r4-r7,lr} lsls r0, 16 lsrs r4, r0, 16 ldr r1, _080BE930 ldr r2, _080BE934 adds r0, r1, r2 ldrh r0, [r0] cmp r0, 0 bne _080BE94C movs r3, 0 adds r5, r1, 0 ldr r7, _080BE938 adds r6, r5, r7 _080BE906: lsls r0, r3, 3 adds r0, r3 lsls r2, r0, 2 adds r1, r2, r5 ldr r7, _080BE938 adds r0, r1, r7 ldrb r0, [r0] cmp r0, 0x29 bne _080BE942 adds r7, 0x1 adds r0, r1, r7 ldrb r0, [r0] cmp r0, 0x1 bne _080BE942 adds r1, r2, r6 ldrh r0, [r1, 0x16] cmp r0, r4 bcs _080BE93C movs r0, 0 strh r0, [r1, 0x16] b _080BE94C .align 2, 0 _080BE930: .4byte 0x02025734 _080BE934: .4byte 0x00002afc _080BE938: .4byte 0x00002738 _080BE93C: subs r0, r4 strh r0, [r1, 0x16] b _080BE94C _080BE942: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x17 bls _080BE906 _080BE94C: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BE8EC thumb_func_start UpdateMassOutbreakTimeLeft UpdateMassOutbreakTimeLeft: @ 80BE954 push {lr} lsls r0, 16 lsrs r1, r0, 16 ldr r0, _080BE96C ldr r3, _080BE970 adds r2, r0, r3 ldrh r0, [r2] cmp r0, r1 bhi _080BE974 bl EndMassOutbreak b _080BE978 .align 2, 0 _080BE96C: .4byte 0x02025734 _080BE970: .4byte 0x00002b0e _080BE974: subs r0, r1 strh r0, [r2] _080BE978: pop {r0} bx r0 thumb_func_end UpdateMassOutbreakTimeLeft thumb_func_start sub_80BE97C sub_80BE97C: @ 80BE97C push {r4,lr} lsls r0, 24 cmp r0, 0 beq _080BE9A4 ldr r4, _080BE9A0 ldrh r0, [r4] lsrs r0, 8 cmp r0, 0x4 bls _080BE992 bl sub_80BE9D4 _080BE992: ldrb r0, [r4] strh r0, [r4] cmp r0, 0xFF beq _080BE9C8 adds r0, 0x1 b _080BE9C6 .align 2, 0 _080BE9A0: .4byte 0x020387e2 _080BE9A4: ldr r4, _080BE9D0 ldrb r0, [r4] cmp r0, 0x4 bls _080BE9B0 bl sub_80BE9D4 _080BE9B0: ldrh r0, [r4] movs r1, 0xFF lsls r1, 8 ands r1, r0 strh r1, [r4] lsrs r0, r1, 8 cmp r0, 0xFF beq _080BE9C8 movs r2, 0x80 lsls r2, 1 adds r0, r1, r2 _080BE9C6: strh r0, [r4] _080BE9C8: pop {r4} pop {r0} bx r0 .align 2, 0 _080BE9D0: .4byte 0x020387e2 thumb_func_end sub_80BE97C thumb_func_start sub_80BE9D4 sub_80BE9D4: @ 80BE9D4 push {r4,r5,lr} ldr r5, _080BEA3C adds r0, r5, 0 bl sub_80BF74C ldr r4, _080BEA40 strb r0, [r4] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BEA36 movs r0, 0x18 bl sub_80BF1B4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BEA36 movs r0, 0 ldrsb r0, [r4, r0] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 adds r4, r5 movs r1, 0 movs r0, 0x18 strb r0, [r4] strb r1, [r4, 0x1] ldr r1, _080BEA44 ldrh r0, [r1] strb r0, [r4, 0x2] ldrh r0, [r1] lsrs r0, 8 strb r0, [r4, 0x3] ldr r0, _080BEA48 ldrh r0, [r0] strh r0, [r4, 0x4] adds r0, r4, 0 adds r0, 0x13 ldr r1, _080BEA4C bl StringCopy adds r0, r4, 0 bl sub_80BE138 movs r0, 0x2 strb r0, [r4, 0x6] _080BEA36: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BEA3C: .4byte 0x02027e6c _080BEA40: .4byte 0x03005d38 _080BEA44: .4byte 0x020387e2 _080BEA48: .4byte 0x020387e0 _080BEA4C: .4byte gSaveBlock2 thumb_func_end sub_80BE9D4 thumb_func_start sub_80BEA50 sub_80BEA50: @ 80BEA50 ldr r1, _080BEA58 strh r0, [r1] bx lr .align 2, 0 _080BEA58: .4byte 0x020387e0 thumb_func_end sub_80BEA50 thumb_func_start sub_80BEA5C sub_80BEA5C: @ 80BEA5C push {lr} ldr r1, _080BEA78 ldrb r0, [r1] cmp r0, 0x19 bne _080BEA84 ldrh r0, [r1, 0x2] cmp r0, 0x13 bhi _080BEA80 ldr r2, _080BEA7C adds r0, r1, r2 movs r1, 0x18 bl sub_80BF55C b _080BEA84 .align 2, 0 _080BEA78: .4byte 0x020281cc _080BEA7C: .4byte 0xfffffca0 _080BEA80: bl sub_80BEA88 _080BEA84: pop {r0} bx r0 thumb_func_end sub_80BEA5C thumb_func_start sub_80BEA88 sub_80BEA88: @ 80BEA88 push {r4-r7,lr} ldr r5, _080BEB0C ldr r0, _080BEB10 bl sub_80BF77C lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _080BEB04 ldr r0, _080BEB14 adds r7, r5, r0 adds r0, r7, 0 bl sub_80BF74C ldr r4, _080BEB18 strb r0, [r4] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BEB04 movs r0, 0x19 bl sub_80BF1B4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BEB04 movs r0, 0 ldrsb r0, [r4, r0] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 adds r4, r7 movs r0, 0x19 strb r0, [r4] strb r6, [r4, 0x1] ldrh r0, [r5, 0x2] strh r0, [r4, 0x2] movs r0, 0x5 bl sub_8053108 ldrh r1, [r5, 0x6] subs r0, r1 strh r0, [r4, 0x6] ldrh r0, [r5, 0x4] strh r0, [r4, 0x4] ldrh r0, [r5, 0x8] strh r0, [r4, 0x8] ldrb r0, [r5, 0xA] strb r0, [r4, 0xA] adds r0, r4, 0 adds r0, 0x13 ldr r1, _080BEB1C bl StringCopy adds r0, r4, 0 bl sub_80BE138 movs r0, 0x2 strb r0, [r4, 0xB] _080BEB04: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BEB0C: .4byte 0x020281cc _080BEB10: .4byte 0x0000ffff _080BEB14: .4byte 0xfffffca0 _080BEB18: .4byte 0x03005d38 _080BEB1C: .4byte gSaveBlock2 thumb_func_end sub_80BEA88 thumb_func_start sub_80BEB20 sub_80BEB20: @ 80BEB20 push {r4-r6,lr} ldr r0, _080BEBAC bl FlagGet lsls r0, 24 cmp r0, 0 beq _080BEBA6 ldr r6, _080BEBB0 adds r0, r6, 0 bl sub_80BEBC8 ldr r5, _080BEBB4 strb r0, [r5] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BEBA6 ldr r0, _080BEBB8 bl sub_80BF77C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BEBA6 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 adds r0, 0x1 lsls r0, 16 lsrs r4, r0, 16 lsls r0, r4, 24 lsrs r0, 24 bl sub_80BEE48 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BEBA6 movs r0, 0 ldrsb r0, [r5, r0] lsls r0, 2 ldr r1, _080BEBBC adds r2, r6, r1 adds r0, r6, r0 strb r4, [r0] movs r0, 0 ldrsb r0, [r5, r0] lsls r0, 2 adds r0, r2 ldr r1, _080BEBC0 adds r0, r1 movs r1, 0x4 strh r1, [r0] movs r0, 0 ldrsb r0, [r5, r0] lsls r0, 2 adds r0, r2 ldr r1, _080BEBC4 adds r0, r1 movs r1, 0x1 strb r1, [r0] _080BEBA6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BEBAC: .4byte 0x00000804 _080BEBB0: .4byte 0x020281f0 _080BEBB4: .4byte 0x03005d38 _080BEBB8: .4byte 0x0000028f _080BEBBC: .4byte 0xffffd544 _080BEBC0: .4byte 0x00002abe _080BEBC4: .4byte 0x00002abd thumb_func_end sub_80BEB20 thumb_func_start sub_80BEBC8 sub_80BEBC8: @ 80BEBC8 push {lr} adds r2, r0, 0 movs r1, 0 _080BEBCE: lsls r0, r1, 24 asrs r1, r0, 24 lsls r0, r1, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0 bne _080BEBE0 adds r0, r1, 0 b _080BEBF0 _080BEBE0: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 asrs r0, 24 cmp r0, 0xF ble _080BEBCE movs r0, 0x1 negs r0, r0 _080BEBF0: pop {r1} bx r1 thumb_func_end sub_80BEBC8 thumb_func_start sub_80BEBF4 sub_80BEBF4: @ 80BEBF4 push {r4,lr} movs r4, 0 _080BEBF8: adds r0, r4, 0 bl sub_80BEC10 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _080BEBF8 pop {r4} pop {r0} bx r0 thumb_func_end sub_80BEBF4 thumb_func_start sub_80BEC10 sub_80BEC10: @ 80BEC10 lsls r0, 24 ldr r1, _080BEC30 lsrs r0, 22 adds r0, r1 ldr r2, _080BEC34 adds r1, r0, r2 movs r2, 0 strb r2, [r1] ldr r3, _080BEC38 adds r1, r0, r3 strb r2, [r1] ldr r1, _080BEC3C adds r0, r1 strh r2, [r0] bx lr .align 2, 0 _080BEC30: .4byte 0x02025734 _080BEC34: .4byte 0x00002abc _080BEC38: .4byte 0x00002abd _080BEC3C: .4byte 0x00002abe thumb_func_end sub_80BEC10 thumb_func_start sub_80BEC40 sub_80BEC40: @ 80BEC40 push {r4-r7,lr} movs r1, 0 ldr r6, _080BEC80 _080BEC46: ldr r3, _080BEC80 lsls r2, r1, 2 adds r0, r2, r3 ldr r4, _080BEC84 adds r0, r4 ldrb r0, [r0] adds r5, r1, 0x1 cmp r0, 0 bne _080BEC92 lsls r0, r5, 24 lsrs r1, r0, 24 cmp r1, 0xF bhi _080BEC92 adds r4, r3, r4 adds r3, r2, r4 _080BEC64: lsls r2, r1, 2 adds r0, r2, r6 ldr r7, _080BEC84 adds r0, r7 ldrb r0, [r0] cmp r0, 0 beq _080BEC88 adds r0, r2, r4 ldr r0, [r0] str r0, [r3] adds r0, r1, 0 bl sub_80BEC10 b _080BEC92 .align 2, 0 _080BEC80: .4byte 0x02025734 _080BEC84: .4byte 0x00002abc _080BEC88: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bls _080BEC64 _080BEC92: lsls r0, r5, 24 lsrs r1, r0, 24 cmp r1, 0xE bls _080BEC46 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BEC40 thumb_func_start sub_80BECA0 sub_80BECA0: @ 80BECA0 push {r4,lr} movs r2, 0 ldr r3, _080BECCC _080BECA6: lsls r0, r2, 2 adds r1, r0, r3 ldr r4, _080BECD0 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 beq _080BECD4 adds r4, 0x1 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0x1 bne _080BECD4 adds r4, 0x1 adds r0, r1, r4 ldrh r0, [r0] cmp r0, 0x2 bhi _080BECD4 adds r0, r2, 0 b _080BECE0 .align 2, 0 _080BECCC: .4byte 0x02025734 _080BECD0: .4byte 0x00002abc _080BECD4: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xF bls _080BECA6 movs r0, 0xFF _080BECE0: pop {r4} pop {r1} bx r1 thumb_func_end sub_80BECA0 thumb_func_start sub_80BECE8 sub_80BECE8: @ 80BECE8 push {r4,lr} bl sub_80BECA0 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xFF bne _080BED00 ldr r1, _080BECFC movs r0, 0 b _080BED86 .align 2, 0 _080BECFC: .4byte 0x0202e8dc _080BED00: ldr r0, _080BED2C lsls r1, 2 adds r4, r1, r0 ldr r0, _080BED30 adds r1, r4, r0 ldrh r0, [r1] cmp r0, 0 bne _080BED5C ldr r2, _080BED34 adds r1, r4, r2 movs r0, 0x2 strb r0, [r1] ldr r0, _080BED38 ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 cmp r0, 0x13 bgt _080BED40 ldr r1, _080BED3C subs r2, 0x1 b _080BED44 .align 2, 0 _080BED2C: .4byte 0x02025734 _080BED30: .4byte 0x00002abe _080BED34: .4byte 0x00002abd _080BED38: .4byte 0x03004038 _080BED3C: .4byte gUnknown_083D1444 _080BED40: ldr r1, _080BED54 ldr r2, _080BED58 _080BED44: adds r0, r4, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl box_related_two__2 b _080BED82 .align 2, 0 _080BED54: .4byte gUnknown_083D1454 _080BED58: .4byte 0x00002abc _080BED5C: ldrh r1, [r1] ldr r0, _080BED90 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN ldr r0, _080BED94 adds r1, r4, r0 movs r0, 0 strb r0, [r1] ldr r1, _080BED98 ldr r2, _080BED9C adds r0, r4, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl box_related_two__2 _080BED82: ldr r1, _080BEDA0 movs r0, 0x1 _080BED86: strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080BED90: .4byte 0x020231cc _080BED94: .4byte 0x00002abd _080BED98: .4byte gUnknown_083D1434 _080BED9C: .4byte 0x00002abc _080BEDA0: .4byte 0x0202e8dc thumb_func_end sub_80BECE8 thumb_func_start GetPriceReduction GetPriceReduction: @ 80BEDA4 push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 bne _080BEDB4 b _080BEDF6 _080BEDB0: movs r0, 0x1 b _080BEDF8 _080BEDB4: movs r2, 0 ldr r4, _080BEDE0 _080BEDB8: lsls r0, r2, 2 adds r1, r0, r4 ldr r5, _080BEDE4 adds r0, r1, r5 ldrb r0, [r0] cmp r0, r3 bne _080BEDEC ldr r2, _080BEDE8 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x2 bne _080BEDF6 adds r0, r3, 0 bl IsPriceDiscounted lsls r0, 24 cmp r0, 0 bne _080BEDB0 b _080BEDF6 .align 2, 0 _080BEDE0: .4byte 0x02025734 _080BEDE4: .4byte 0x00002abc _080BEDE8: .4byte 0x00002abd _080BEDEC: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xF bls _080BEDB8 _080BEDF6: movs r0, 0 _080BEDF8: pop {r4,r5} pop {r1} bx r1 thumb_func_end GetPriceReduction thumb_func_start IsPriceDiscounted IsPriceDiscounted: @ 80BEE00 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BEE12 cmp r0, 0x3 beq _080BEE30 _080BEE0E: movs r0, 0x1 b _080BEE3C _080BEE12: ldr r0, _080BEE28 ldrh r1, [r0, 0x4] movs r0, 0x80 lsls r0, 1 cmp r1, r0 bne _080BEE3A ldr r0, _080BEE2C ldrh r0, [r0] cmp r0, 0x1A beq _080BEE0E b _080BEE3A .align 2, 0 _080BEE28: .4byte 0x02025734 _080BEE2C: .4byte 0x0202e8de _080BEE30: ldr r0, _080BEE40 ldrh r1, [r0, 0x4] ldr r0, _080BEE44 cmp r1, r0 beq _080BEE0E _080BEE3A: movs r0, 0 _080BEE3C: pop {r1} bx r1 .align 2, 0 _080BEE40: .4byte 0x02025734 _080BEE44: .4byte 0x0000160d thumb_func_end IsPriceDiscounted thumb_func_start sub_80BEE48 sub_80BEE48: @ 80BEE48 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080BEE56 _080BEE52: movs r0, 0x1 b _080BEE74 _080BEE56: movs r1, 0 ldr r4, _080BEE7C ldr r3, _080BEE80 _080BEE5C: lsls r0, r1, 2 adds r0, r4 adds r0, r3 ldrb r0, [r0] cmp r0, r2 beq _080BEE52 adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bls _080BEE5C movs r0, 0 _080BEE74: pop {r4} pop {r1} bx r1 .align 2, 0 _080BEE7C: .4byte 0x02025734 _080BEE80: .4byte 0x00002abc thumb_func_end sub_80BEE48 thumb_func_start sub_80BEE84 sub_80BEE84: @ 80BEE84 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 lsrs r7, r0, 16 movs r5, 0 ldr r0, _080BEEB8 mov r8, r0 _080BEE94: lsls r0, r5, 2 mov r1, r8 adds r2, r0, r1 ldr r3, _080BEEBC adds r1, r2, r3 ldrb r1, [r1] adds r6, r0, 0 cmp r1, 0 beq _080BEEEC ldr r1, _080BEEC0 adds r0, r2, r1 ldrh r0, [r0] cmp r0, r7 bcs _080BEEC4 adds r0, r5, 0 bl sub_80BEC10 b _080BEEEC .align 2, 0 _080BEEB8: .4byte 0x02025734 _080BEEBC: .4byte 0x00002abc _080BEEC0: .4byte 0x00002abe _080BEEC4: ldr r3, _080BEF04 adds r4, r2, r3 ldrb r0, [r4] cmp r0, 0 bne _080BEEDE ldr r0, _080BEF08 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BEEDE strb r0, [r4] _080BEEDE: mov r0, r8 adds r1, r6, r0 ldr r3, _080BEF0C adds r1, r3 ldrh r0, [r1] subs r0, r7 strh r0, [r1] _080BEEEC: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xF bls _080BEE94 bl sub_80BEC40 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BEF04: .4byte 0x00002abd _080BEF08: .4byte 0x00000804 _080BEF0C: .4byte 0x00002abe thumb_func_end sub_80BEE84 thumb_func_start sub_80BEF10 sub_80BEF10: @ 80BEF10 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 adds r2, r1, 0 cmp r1, 0x1 beq _080BEF50 cmp r1, 0x1 bgt _080BEF2A cmp r1, 0 beq _080BEF34 b _080BEF98 _080BEF2A: cmp r2, 0x2 beq _080BEF6C cmp r2, 0x3 beq _080BEF88 b _080BEF98 _080BEF34: ldr r1, _080BEF48 lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BEF4C ldr r1, [r1, 0x14] bl StringCopy b _080BEF98 .align 2, 0 _080BEF48: .4byte gUnknown_083D1464 _080BEF4C: .4byte gUnknown_083CE048 _080BEF50: ldr r1, _080BEF64 lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BEF68 ldr r1, [r1, 0x18] bl StringCopy b _080BEF98 .align 2, 0 _080BEF64: .4byte gUnknown_083D1464 _080BEF68: .4byte gUnknown_083CE048 _080BEF6C: ldr r1, _080BEF80 lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BEF84 ldr r1, [r1, 0x1C] bl StringCopy b _080BEF98 .align 2, 0 _080BEF80: .4byte gUnknown_083D1464 _080BEF84: .4byte gUnknown_083CE048 _080BEF88: ldr r1, _080BEF9C lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BEFA0 ldr r1, [r1, 0x20] bl StringCopy _080BEF98: pop {r0} bx r0 .align 2, 0 _080BEF9C: .4byte gUnknown_083D1464 _080BEFA0: .4byte gUnknown_083CE048 thumb_func_end sub_80BEF10 thumb_func_start CopyContestCategoryToStringVar CopyContestCategoryToStringVar: @ 80BEFA4 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r0, r1, 24 cmp r0, 0x4 bhi _080BF054 lsls r0, 2 ldr r1, _080BEFBC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080BEFBC: .4byte _080BEFC0 .align 2, 0 _080BEFC0: .4byte _080BEFD4 .4byte _080BEFF0 .4byte _080BF00C .4byte _080BF028 .4byte _080BF044 _080BEFD4: ldr r1, _080BEFE8 lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BEFEC ldr r1, [r1] bl StringCopy b _080BF054 .align 2, 0 _080BEFE8: .4byte gUnknown_083D1464 _080BEFEC: .4byte gUnknown_083CE048 _080BEFF0: ldr r1, _080BF004 lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BF008 ldr r1, [r1, 0x4] bl StringCopy b _080BF054 .align 2, 0 _080BF004: .4byte gUnknown_083D1464 _080BF008: .4byte gUnknown_083CE048 _080BF00C: ldr r1, _080BF020 lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BF024 ldr r1, [r1, 0x8] bl StringCopy b _080BF054 .align 2, 0 _080BF020: .4byte gUnknown_083D1464 _080BF024: .4byte gUnknown_083CE048 _080BF028: ldr r1, _080BF03C lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BF040 ldr r1, [r1, 0xC] bl StringCopy b _080BF054 .align 2, 0 _080BF03C: .4byte gUnknown_083D1464 _080BF040: .4byte gUnknown_083CE048 _080BF044: ldr r1, _080BF058 lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BF05C ldr r1, [r1, 0x10] bl StringCopy _080BF054: pop {r0} bx r0 .align 2, 0 _080BF058: .4byte gUnknown_083D1464 _080BF05C: .4byte gUnknown_083CE048 thumb_func_end CopyContestCategoryToStringVar thumb_func_start SetContestCategoryStringVarForInterview SetContestCategoryStringVarForInterview: @ 80BF060 push {lr} ldr r0, _080BF080 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BF084 adds r0, r1 ldrb r1, [r0, 0x13] lsls r1, 29 lsrs r1, 29 movs r0, 0x1 bl CopyContestCategoryToStringVar pop {r0} bx r0 .align 2, 0 _080BF080: .4byte 0x0202e8cc _080BF084: .4byte 0x02027e6c thumb_func_end SetContestCategoryStringVarForInterview thumb_func_start sub_80BF088 sub_80BF088: @ 80BF088 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 bl sub_80BF0B8 adds r3, r0, 0 ldr r0, _080BF0B4 lsls r4, 2 adds r4, r0 ldr r0, [r4] lsls r3, 24 lsrs r3, 24 adds r1, r5, 0 movs r2, 0 bl ConvertIntToDecimalStringN pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BF0B4: .4byte gUnknown_083D1464 thumb_func_end sub_80BF088 thumb_func_start sub_80BF0B8 sub_80BF0B8: @ 80BF0B8 push {r4,lr} adds r4, r0, 0 movs r1, 0xA bl __divsi3 cmp r0, 0 beq _080BF144 adds r0, r4, 0 movs r1, 0x64 bl __divsi3 cmp r0, 0 bne _080BF0D6 movs r0, 0x2 b _080BF14E _080BF0D6: movs r1, 0xFA lsls r1, 2 adds r0, r4, 0 bl __divsi3 cmp r0, 0 bne _080BF0E8 movs r0, 0x3 b _080BF14E _080BF0E8: ldr r1, _080BF0F8 adds r0, r4, 0 bl __divsi3 cmp r0, 0 bne _080BF0FC movs r0, 0x4 b _080BF14E .align 2, 0 _080BF0F8: .4byte 0x00002710 _080BF0FC: ldr r1, _080BF10C adds r0, r4, 0 bl __divsi3 cmp r0, 0 bne _080BF110 movs r0, 0x5 b _080BF14E .align 2, 0 _080BF10C: .4byte 0x000186a0 _080BF110: ldr r1, _080BF120 adds r0, r4, 0 bl __divsi3 cmp r0, 0 bne _080BF124 movs r0, 0x6 b _080BF14E .align 2, 0 _080BF120: .4byte 0x000f4240 _080BF124: ldr r1, _080BF134 adds r0, r4, 0 bl __divsi3 cmp r0, 0 bne _080BF138 movs r0, 0x7 b _080BF14E .align 2, 0 _080BF134: .4byte 0x00989680 _080BF138: ldr r1, _080BF148 adds r0, r4, 0 bl __divsi3 cmp r0, 0 beq _080BF14C _080BF144: movs r0, 0x1 b _080BF14E .align 2, 0 _080BF148: .4byte 0x05f5e100 _080BF14C: movs r0, 0x8 _080BF14E: pop {r4} pop {r1} bx r1 thumb_func_end sub_80BF0B8 thumb_func_start sub_80BF154 sub_80BF154: @ 80BF154 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r1, 0 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r7, 0 movs r5, 0 _080BF166: lsls r4, r5, 1 adds r0, r6, 0x6 adds r1, r0, r4 ldrh r0, [r1] cmp r0, 0 beq _080BF186 bl itemid_get_market_price lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 adds r1, 0xC adds r1, r4 ldrh r1, [r1] muls r0, r1 adds r7, r0 _080BF186: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _080BF166 ldrb r0, [r6, 0x2] cmp r0, 0x1 bne _080BF1A0 asrs r1, r7, 1 mov r0, r8 bl sub_80BF088 b _080BF1A8 _080BF1A0: mov r0, r8 adds r1, r7, 0 bl sub_80BF088 _080BF1A8: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BF154 thumb_func_start sub_80BF1B4 sub_80BF1B4: @ 80BF1B4 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r7, _080BF1F4 bl sub_80BFB94 adds r5, r0, 0 movs r4, 0x5 _080BF1C4: lsls r0, r4, 3 adds r0, r4 lsls r0, 2 adds r1, r0, r7 ldrb r0, [r1] cmp r0, r6 bne _080BF1F8 movs r3, 0xFF adds r0, r5, 0 ands r0, r3 adds r2, r1, 0 adds r2, 0x22 ldrb r2, [r2] cmp r0, r2 bne _080BF1F8 lsrs r0, r5, 8 ands r0, r3 adds r1, 0x23 ldrb r1, [r1] cmp r0, r1 bne _080BF1F8 movs r0, 0x1 b _080BF204 .align 2, 0 _080BF1F4: .4byte 0x02027e6c _080BF1F8: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x17 bls _080BF1C4 movs r0, 0 _080BF204: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80BF1B4 thumb_func_start sub_80BF20C sub_80BF20C: @ 80BF20C push {r4-r7,lr} movs r2, 0 _080BF210: adds r1, r2, 0x1 lsls r0, r1, 24 lsrs r5, r0, 24 adds r7, r1, 0 cmp r5, 0x2 bhi _080BF248 ldr r6, _080BF258 lsls r0, r2, 2 adds r4, r0, r6 _080BF222: lsls r0, r5, 2 adds r3, r0, r6 ldrh r0, [r4, 0x2] ldrh r1, [r3, 0x2] cmp r0, r1 bcs _080BF23E ldrh r1, [r4] adds r2, r0, 0 ldrh r0, [r3] strh r0, [r4] ldrh r0, [r3, 0x2] strh r0, [r4, 0x2] strh r1, [r3] strh r2, [r3, 0x2] _080BF23E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _080BF222 _080BF248: lsls r0, r7, 24 lsrs r2, r0, 24 cmp r2, 0x1 bls _080BF210 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BF258: .4byte 0x02038724 thumb_func_end sub_80BF20C thumb_func_start sub_80BF25C sub_80BF25C: @ 80BF25C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r1, 0 ldr r3, _080BF28C ldr r0, _080BF290 adds r4, r3, r0 _080BF26A: lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r2, r0, r3 ldr r6, _080BF290 adds r0, r2, r6 ldrb r0, [r0] cmp r0, r5 bne _080BF2AE ldr r3, _080BF294 adds r0, r2, r3 ldrb r2, [r0] cmp r2, 0x1 bne _080BF29C ldr r0, _080BF298 strh r2, [r0] b _080BF2BC .align 2, 0 _080BF28C: .4byte 0x02025734 _080BF290: .4byte 0x00002738 _080BF294: .4byte 0x00002739 _080BF298: .4byte 0x0202e8dc _080BF29C: adds r0, r4, 0 bl sub_80BF55C adds r0, r4, 0 bl sub_80BF588 bl sub_80BF6D8 b _080BF2BC _080BF2AE: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x4 bls _080BF26A bl sub_80BF6D8 _080BF2BC: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80BF25C thumb_func_start sub_80BF2C4 sub_80BF2C4: @ 80BF2C4 push {lr} ldr r1, _080BF2E0 movs r0, 0 strh r0, [r1] ldr r0, _080BF2E4 ldrh r0, [r0] subs r0, 0x1 cmp r0, 0x6 bhi _080BF330 lsls r0, 2 ldr r1, _080BF2E8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080BF2E0: .4byte 0x0202e8dc _080BF2E4: .4byte 0x0202e8ce _080BF2E8: .4byte _080BF2EC .align 2, 0 _080BF2EC: .4byte _080BF308 .4byte _080BF30E .4byte _080BF314 .4byte _080BF31A .4byte _080BF320 .4byte _080BF326 .4byte _080BF32C _080BF308: bl sub_80BF334 b _080BF330 _080BF30E: bl sub_80BF3A4 b _080BF330 _080BF314: bl sub_80BF3DC b _080BF330 _080BF31A: bl sub_80BF46C b _080BF330 _080BF320: bl sub_80BF478 b _080BF330 _080BF326: bl sub_80BF484 b _080BF330 _080BF32C: bl sub_80BF4BC _080BF330: pop {r0} bx r0 thumb_func_end sub_80BF2C4 thumb_func_start sub_80BF334 sub_80BF334: @ 80BF334 push {r4,lr} movs r0, 0x1 bl sub_80BF25C ldr r0, _080BF38C ldrh r0, [r0] cmp r0, 0 bne _080BF384 ldr r4, _080BF390 bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _080BF394 adds r0, r1 movs r1, 0xB movs r2, 0 bl PokemonGetField movs r1, 0xB muls r1, r0 ldr r0, _080BF398 adds r1, r0 adds r0, r4, 0 bl StringCopy ldr r0, _080BF39C movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BF3A0 adds r0, r1 adds r0, 0x4 movs r1, 0x6 bl sub_80EB6FC _080BF384: pop {r4} pop {r0} bx r0 .align 2, 0 _080BF38C: .4byte 0x0202e8dc _080BF390: .4byte 0x020231cc _080BF394: .4byte 0x03004360 _080BF398: .4byte gSpeciesNames _080BF39C: .4byte 0x03005d38 _080BF3A0: .4byte 0x02027e6c thumb_func_end sub_80BF334 thumb_func_start sub_80BF3A4 sub_80BF3A4: @ 80BF3A4 push {lr} movs r0, 0x2 bl sub_80BF25C ldr r0, _080BF3D0 ldrh r0, [r0] cmp r0, 0 bne _080BF3CC ldr r0, _080BF3D4 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BF3D8 adds r0, r1 adds r0, 0x4 movs r1, 0x6 bl sub_80EB6FC _080BF3CC: pop {r0} bx r0 .align 2, 0 _080BF3D0: .4byte 0x0202e8dc _080BF3D4: .4byte 0x03005d38 _080BF3D8: .4byte 0x02027e6c thumb_func_end sub_80BF3A4 thumb_func_start sub_80BF3DC sub_80BF3DC: @ 80BF3DC push {r4-r6,lr} movs r0, 0x3 bl sub_80BF25C ldr r0, _080BF450 ldrh r0, [r0] cmp r0, 0 bne _080BF448 ldr r6, _080BF454 bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r5, 0x64 muls r0, r5 ldr r4, _080BF458 adds r0, r4 movs r1, 0xB movs r2, 0 bl PokemonGetField movs r1, 0xB muls r1, r0 ldr r0, _080BF45C adds r1, r0 adds r0, r6, 0 bl StringCopy bl sub_810F87C lsls r0, 24 lsrs r0, 24 muls r0, r5 adds r0, r4 ldr r4, _080BF460 movs r1, 0x2 adds r2, r4, 0 bl PokemonGetField adds r0, r4, 0 bl StringGetEnd10 ldr r0, _080BF464 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BF468 adds r0, r1 adds r0, 0x1C movs r1, 0x2 bl sub_80EB6FC _080BF448: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BF450: .4byte 0x0202e8dc _080BF454: .4byte 0x020231cc _080BF458: .4byte 0x03004360 _080BF45C: .4byte gSpeciesNames _080BF460: .4byte 0x020232cc _080BF464: .4byte 0x03005d38 _080BF468: .4byte 0x02027e6c thumb_func_end sub_80BF3DC thumb_func_start sub_80BF46C sub_80BF46C: @ 80BF46C ldr r1, _080BF474 movs r0, 0x1 strh r0, [r1] bx lr .align 2, 0 _080BF474: .4byte 0x0202e8dc thumb_func_end sub_80BF46C thumb_func_start sub_80BF478 sub_80BF478: @ 80BF478 push {lr} movs r0, 0x5 bl sub_80BF25C pop {r0} bx r0 thumb_func_end sub_80BF478 thumb_func_start sub_80BF484 sub_80BF484: @ 80BF484 push {lr} movs r0, 0x6 bl sub_80BF25C ldr r0, _080BF4B0 ldrh r0, [r0] cmp r0, 0 bne _080BF4AC ldr r0, _080BF4B4 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BF4B8 adds r0, r1 adds r0, 0x4 movs r1, 0x2 bl sub_80EB6FC _080BF4AC: pop {r0} bx r0 .align 2, 0 _080BF4B0: .4byte 0x0202e8dc _080BF4B4: .4byte 0x03005d38 _080BF4B8: .4byte 0x02027e6c thumb_func_end sub_80BF484 thumb_func_start sub_80BF4BC sub_80BF4BC: @ 80BF4BC push {lr} movs r0, 0x7 bl sub_80BF25C ldr r0, _080BF4E8 ldrh r0, [r0] cmp r0, 0 bne _080BF4E4 ldr r0, _080BF4EC movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BF4F0 adds r0, r1 adds r0, 0x18 movs r1, 0x1 bl sub_80EB6FC _080BF4E4: pop {r0} bx r0 .align 2, 0 _080BF4E8: .4byte 0x0202e8dc _080BF4EC: .4byte 0x03005d38 _080BF4F0: .4byte 0x02027e6c thumb_func_end sub_80BF4BC thumb_func_start sub_80BF4F4 sub_80BF4F4: @ 80BF4F4 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 movs r1, 0x64 adds r4, r0, 0 muls r4, r1 ldr r0, _080BF530 adds r4, r0 ldr r5, _080BF534 adds r0, r4, 0 movs r1, 0x2 adds r2, r5, 0 bl PokemonGetField adds r0, r4, 0 movs r1, 0xB movs r2, 0 bl PokemonGetField movs r1, 0xB muls r0, r1 ldr r1, _080BF538 adds r0, r1 adds r1, r5, 0 bl StringCompareWithoutExtCtrlCodes cmp r0, 0 beq _080BF53C movs r0, 0x1 b _080BF53E .align 2, 0 _080BF530: .4byte 0x03004360 _080BF534: .4byte 0x020231cc _080BF538: .4byte gSpeciesNames _080BF53C: movs r0, 0 _080BF53E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80BF4F4 thumb_func_start sub_80BF544 sub_80BF544: @ 80BF544 push {lr} bl sub_810F87C lsls r0, 24 lsrs r0, 24 bl sub_80BF4F4 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80BF544 thumb_func_start sub_80BF55C sub_80BF55C: @ 80BF55C push {lr} lsls r1, 24 lsrs r1, 24 lsls r2, r1, 3 adds r2, r1 lsls r2, 2 adds r2, r0 movs r0, 0 strb r0, [r2] strb r0, [r2, 0x1] movs r1, 0 adds r2, 0x2 movs r3, 0 _080BF576: adds r0, r2, r1 strb r3, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x21 bls _080BF576 pop {r0} bx r0 thumb_func_end sub_80BF55C thumb_func_start sub_80BF588 sub_80BF588: @ 80BF588 push {r4-r7,lr} adds r4, r0, 0 movs r5, 0 _080BF58E: lsls r0, r5, 3 adds r0, r5 lsls r1, r0, 2 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 bne _080BF5D2 adds r0, r5, 0x1 b _080BF5CA _080BF5A0: lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r3, r0, r4 ldrb r0, [r3] cmp r0, 0 beq _080BF5C8 adds r1, r4 adds r0, r3, 0 ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} adds r0, r4, 0 adds r1, r2, 0 bl sub_80BF55C b _080BF5D2 _080BF5C8: adds r0, r2, 0x1 _080BF5CA: lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x4 bls _080BF5A0 _080BF5D2: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _080BF58E movs r5, 0x5 _080BF5DE: lsls r0, r5, 3 adds r0, r5 lsls r1, r0, 2 adds r0, r1, r4 ldrb r0, [r0] adds r5, 0x1 cmp r0, 0 bne _080BF62A lsls r0, r5, 24 b _080BF624 _080BF5F2: lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r3, r0, r4 ldrb r0, [r3] cmp r0, 0 beq _080BF620 adds r1, r4 adds r0, r3, 0 ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldr r0, _080BF61C adds r1, r2, 0 bl sub_80BF55C b _080BF62A .align 2, 0 _080BF61C: .4byte 0x02027e6c _080BF620: adds r0, r2, 0x1 lsls r0, 24 _080BF624: lsrs r2, r0, 24 cmp r2, 0x17 bls _080BF5F2 _080BF62A: lsls r0, r5, 24 lsrs r5, r0, 24 cmp r5, 0x17 bls _080BF5DE pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BF588 thumb_func_start sub_80BF638 sub_80BF638: @ 80BF638 push {r4,r5,lr} adds r4, r0, 0 adds r0, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r0, 16 lsrs r0, 16 bl sub_80BF674 adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 ldr r0, _080BF66C lsls r4, 2 adds r4, r0 ldr r0, [r4] movs r1, 0xB muls r1, r5 ldr r2, _080BF670 adds r1, r2 bl StringCopy adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080BF66C: .4byte gUnknown_083D1464 _080BF670: .4byte gSpeciesNames thumb_func_end sub_80BF638 thumb_func_start sub_80BF674 sub_80BF674: @ 80BF674 push {r4-r6,lr} lsls r0, 16 lsrs r5, r0, 16 bl Random lsls r0, 16 lsrs r0, 16 ldr r1, _080BF694 bl __umodsi3 adds r0, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r6, r4, 0 b _080BF6B2 .align 2, 0 _080BF694: .4byte 0x0000019b _080BF698: cmp r4, 0x1 bne _080BF6A4 ldr r4, _080BF6A0 b _080BF6AA .align 2, 0 _080BF6A0: .4byte 0x0000019b _080BF6A4: subs r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _080BF6AA: cmp r4, r6 bne _080BF6B2 adds r4, r5, 0 b _080BF6CE _080BF6B2: adds r0, r4, 0 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0 bl sub_8090D90 lsls r0, 24 asrs r0, 24 cmp r0, 0x1 bne _080BF698 cmp r4, r5 beq _080BF698 _080BF6CE: adds r0, r4, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80BF674 thumb_func_start sub_80BF6D8 sub_80BF6D8: @ 80BF6D8 push {lr} ldr r0, _080BF700 bl sub_80BF720 ldr r1, _080BF704 strb r0, [r1] ldr r2, _080BF708 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 strh r1, [r2] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080BF710 ldr r1, _080BF70C movs r0, 0x1 b _080BF714 .align 2, 0 _080BF700: .4byte 0x02027e6c _080BF704: .4byte 0x03005d38 _080BF708: .4byte 0x0202e8d0 _080BF70C: .4byte 0x0202e8dc _080BF710: ldr r1, _080BF71C movs r0, 0 _080BF714: strh r0, [r1] pop {r0} bx r0 .align 2, 0 _080BF71C: .4byte 0x0202e8dc thumb_func_end sub_80BF6D8 thumb_func_start sub_80BF720 sub_80BF720: @ 80BF720 push {lr} adds r2, r0, 0 movs r1, 0 _080BF726: lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0 bne _080BF73A lsls r0, r1, 24 asrs r0, 24 b _080BF748 _080BF73A: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x4 bls _080BF726 movs r0, 0x1 negs r0, r0 _080BF748: pop {r1} bx r1 thumb_func_end sub_80BF720 thumb_func_start sub_80BF74C sub_80BF74C: @ 80BF74C push {lr} adds r2, r0, 0 movs r1, 0x5 _080BF752: lsls r0, r1, 24 asrs r1, r0, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0 bne _080BF768 adds r0, r1, 0 b _080BF778 _080BF768: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 asrs r0, 24 cmp r0, 0x17 ble _080BF752 movs r0, 0x1 negs r0, r0 _080BF778: pop {r1} bx r1 thumb_func_end sub_80BF74C thumb_func_start sub_80BF77C sub_80BF77C: @ 80BF77C push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl Random lsls r0, 16 lsrs r0, 16 cmp r0, r4 bls _080BF794 movs r0, 0x1 b _080BF796 _080BF794: movs r0, 0 _080BF796: pop {r4} pop {r1} bx r1 thumb_func_end sub_80BF77C thumb_func_start sub_80BF79C sub_80BF79C: @ 80BF79C push {r4-r6,lr} adds r4, r0, 0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r2, r0, 24 adds r5, r4, 0x4 ldr r6, _080BF7B8 b _080BF7C2 .align 2, 0 _080BF7B8: .4byte 0x0000ffff _080BF7BC: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 _080BF7C2: cmp r2, 0x6 bne _080BF7C8 movs r2, 0 _080BF7C8: lsls r1, r2, 1 adds r0, r5, r1 ldrh r0, [r0] adds r3, r4, 0x4 cmp r0, r6 beq _080BF7BC ldr r0, _080BF7E4 adds r1, r3, r1 ldrh r1, [r1] bl sub_80EB3FC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BF7E4: .4byte 0x020233cc thumb_func_end sub_80BF79C thumb_func_start sub_80BF7E8 sub_80BF7E8: @ 80BF7E8 push {lr} adds r2, r0, 0 movs r3, 0 movs r1, 0 ldrb r0, [r2, 0x4] cmp r0, 0xFF beq _080BF814 adds r2, 0x4 _080BF7F8: adds r0, r2, r1 ldrb r0, [r0] adds r0, r3, r0 lsls r0, 16 lsrs r3, r0, 16 adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xA bhi _080BF814 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0xFF bne _080BF7F8 _080BF814: movs r0, 0x7 ands r3, r0 adds r0, r3, 0 pop {r1} bx r1 thumb_func_end sub_80BF7E8 thumb_func_start sub_80BF820 sub_80BF820: @ 80BF820 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r4, [sp, 0x1C] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r6, r2, 24 lsls r3, 16 lsrs r3, 16 lsls r4, 16 lsrs r4, 16 movs r2, 0 movs r7, 0xFF _080BF844: mov r1, sp adds r0, r1, r2 ldrb r1, [r0] orrs r1, r7 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _080BF844 cmp r3, 0 bne _080BF8A6 ldr r4, [sp, 0x20] adds r4, 0xF adds r0, r4, 0 bl StringLength lsls r0, 16 lsrs r2, r0, 16 cmp r6, 0 bne _080BF874 mov r0, sp adds r1, r4, r5 b _080BF920 _080BF874: cmp r6, 0x1 bne _080BF880 mov r0, sp subs r1, r2, r5 adds r1, r4, r1 b _080BF920 _080BF880: cmp r6, 0x2 bne _080BF892 mov r1, sp adds r0, r4, r5 ldrb r0, [r0] strb r0, [r1] adds r0, r5, 0x1 adds r0, r4, r0 b _080BF950 _080BF892: mov r1, sp subs r0, r2, 0x2 subs r0, r5 adds r0, r4, r0 ldrb r0, [r0] strb r0, [r1] subs r0, r2, 0x1 subs r0, r5 adds r0, r4, r0 b _080BF950 _080BF8A6: cmp r3, 0x1 bne _080BF8F4 ldr r4, [sp, 0x20] adds r4, 0x4 adds r0, r4, 0 bl StringLength lsls r0, 16 lsrs r2, r0, 16 cmp r6, 0 bne _080BF8C2 mov r0, sp adds r1, r4, r5 b _080BF920 _080BF8C2: cmp r6, 0x1 bne _080BF8CE mov r0, sp subs r1, r2, r5 adds r1, r4, r1 b _080BF920 _080BF8CE: cmp r6, 0x2 bne _080BF8E0 mov r1, sp adds r0, r4, r5 ldrb r0, [r0] strb r0, [r1] adds r0, r5, 0x1 adds r0, r4, r0 b _080BF950 _080BF8E0: mov r1, sp subs r0, r2, 0x2 subs r0, r5 adds r0, r4, r0 ldrb r0, [r0] strb r0, [r1] subs r0, r2, 0x1 subs r0, r5 adds r0, r4, r0 b _080BF950 _080BF8F4: movs r0, 0xB muls r4, r0 ldr r7, _080BF910 adds r0, r4, r7 bl StringLength lsls r0, 16 lsrs r2, r0, 16 cmp r6, 0 bne _080BF914 mov r0, sp adds r1, r5, r4 b _080BF91E .align 2, 0 _080BF910: .4byte gSpeciesNames _080BF914: cmp r6, 0x1 bne _080BF926 mov r0, sp subs r1, r2, r5 adds r1, r4 _080BF91E: adds r1, r7 _080BF920: ldrb r1, [r1] strb r1, [r0] b _080BF954 _080BF926: cmp r6, 0x2 bne _080BF93A mov r1, sp adds r0, r5, r4 adds r0, r7 ldrb r0, [r0] strb r0, [r1] adds r0, r4, 0x1 adds r0, r5, r0 b _080BF94E _080BF93A: mov r1, sp subs r0, r2, 0x2 subs r0, r5 adds r0, r4 adds r0, r7 ldrb r0, [r0] strb r0, [r1] subs r0, r2, 0x1 subs r0, r5 adds r0, r4 _080BF94E: adds r0, r7 _080BF950: ldrb r0, [r0] strb r0, [r1, 0x1] _080BF954: ldr r0, _080BF970 mov r2, r8 lsls r1, r2, 2 adds r1, r0 ldr r0, [r1] mov r1, sp bl StringCopy add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BF970: .4byte gUnknown_083D1464 thumb_func_end sub_80BF820 thumb_func_start sub_80BF974 sub_80BF974: @ 80BF974 push {r4,lr} movs r1, 0 ldr r4, _080BF994 ldr r0, _080BF998 ldrh r2, [r0] ldr r3, _080BF99C _080BF980: lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, r3 ldrb r0, [r0] cmp r0, r2 bne _080BF9A0 movs r0, 0x1 b _080BF9AC .align 2, 0 _080BF994: .4byte 0x02025734 _080BF998: .4byte 0x0202e8cc _080BF99C: .4byte 0x00002738 _080BF9A0: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x4 bls _080BF980 movs r0, 0 _080BF9AC: pop {r4} pop {r1} bx r1 thumb_func_end sub_80BF974 thumb_func_start sub_80BF9B4 sub_80BF9B4: @ 80BF9B4 push {r4,lr} ldr r0, _080BF9E0 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080BF9E4 adds r0, r1 ldr r4, _080BF9E8 movs r1, 0x2 adds r2, r4, 0 bl PokemonGetField ldr r0, _080BF9EC adds r1, r4, 0 bl StringCompareWithoutExtCtrlCodes cmp r0, 0 beq _080BF9F0 bl sub_80BE478 movs r0, 0x1 b _080BF9F2 .align 2, 0 _080BF9E0: .4byte 0x0202e8cc _080BF9E4: .4byte 0x03004360 _080BF9E8: .4byte 0x020231cc _080BF9EC: .4byte 0x020233cc _080BF9F0: movs r0, 0 _080BF9F2: pop {r4} pop {r1} bx r1 thumb_func_end sub_80BF9B4 thumb_func_start sub_80BF9F8 sub_80BF9F8: @ 80BF9F8 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x8 ldr r0, _080BFAA0 mov r9, r0 ldrh r0, [r0] movs r1, 0x64 mov r8, r1 mov r1, r8 muls r1, r0 adds r0, r1, 0 ldr r6, _080BFAA4 adds r0, r6 ldr r2, _080BFAA8 movs r1, 0x2 bl PokemonGetField mov r1, r9 ldrh r0, [r1] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 ldr r1, _080BFAAC mov r10, r1 movs r1, 0x2 mov r2, r10 bl PokemonGetField mov r1, r9 ldrh r0, [r1] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 movs r1, 0xB movs r2, 0 bl PokemonGetField adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 mov r1, r9 ldrh r0, [r1] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 bl pokemon_get_gender adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 mov r1, r9 ldrh r0, [r1] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 movs r1, 0 movs r2, 0 bl PokemonGetField str r0, [sp] ldr r0, _080BFAB0 str r0, [sp, 0x4] movs r0, 0x3 mov r1, r10 adds r2, r5, 0 adds r3, r4, 0 bl DoNamingScreen add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BFAA0: .4byte 0x0202e8cc _080BFAA4: .4byte 0x03004360 _080BFAA8: .4byte 0x020233cc _080BFAAC: .4byte 0x020232cc _080BFAB0: .4byte c2_080CC144 thumb_func_end sub_80BF9F8 thumb_func_start c2_080CC144 c2_080CC144: @ 80BFAB4 push {lr} ldr r0, _080BFAD4 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080BFAD8 adds r0, r1 ldr r2, _080BFADC movs r1, 0x2 bl pokemon_setattr bl c2_exit_to_overworld_1_continue_scripts_restart_music pop {r0} bx r0 .align 2, 0 _080BFAD4: .4byte 0x0202e8cc _080BFAD8: .4byte 0x03004360 _080BFADC: .4byte 0x020232cc thumb_func_end c2_080CC144 thumb_func_start sub_80BFAE0 sub_80BFAE0: @ 80BFAE0 push {r4,lr} ldr r0, _080BFB04 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080BFB08 adds r0, r1 ldr r4, _080BFB0C movs r1, 0x2 adds r2, r4, 0 bl PokemonGetField adds r0, r4, 0 bl StringGetEnd10 pop {r4} pop {r0} bx r0 .align 2, 0 _080BFB04: .4byte 0x0202e8cc _080BFB08: .4byte 0x03004360 _080BFB0C: .4byte 0x020231cc thumb_func_end sub_80BFAE0 thumb_func_start sub_80BFB10 sub_80BFB10: @ 80BFB10 push {r4,lr} bl sub_80BFB94 adds r4, r0, 0 ldr r0, _080BFB38 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080BFB3C adds r0, r1 movs r1, 0x1 movs r2, 0 bl PokemonGetField cmp r4, r0 bne _080BFB44 ldr r1, _080BFB40 movs r0, 0 b _080BFB48 .align 2, 0 _080BFB38: .4byte 0x0202e8cc _080BFB3C: .4byte 0x03004360 _080BFB40: .4byte 0x0202e8dc _080BFB44: ldr r1, _080BFB50 movs r0, 0x1 _080BFB48: strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080BFB50: .4byte 0x0202e8dc thumb_func_end sub_80BFB10 thumb_func_start sub_80BFB54 sub_80BFB54: @ 80BFB54 push {lr} lsls r0, 24 lsrs r1, r0, 24 adds r2, r1, 0 cmp r1, 0 beq _080BFB8A subs r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bhi _080BFB6E movs r0, 0x2 b _080BFB90 _080BFB6E: adds r0, r1, 0 subs r0, 0x15 lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bhi _080BFB7E movs r0, 0x3 b _080BFB90 _080BFB7E: adds r0, r2, 0 subs r0, 0x29 lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bls _080BFB8E _080BFB8A: movs r0, 0 b _080BFB90 _080BFB8E: movs r0, 0x4 _080BFB90: pop {r1} bx r1 thumb_func_end sub_80BFB54 thumb_func_start sub_80BFB94 sub_80BFB94: @ 80BFB94 ldr r2, _080BFBAC ldrb r0, [r2, 0xD] lsls r0, 24 ldrb r1, [r2, 0xC] lsls r1, 16 orrs r0, r1 ldrb r1, [r2, 0xB] lsls r1, 8 orrs r0, r1 ldrb r1, [r2, 0xA] orrs r0, r1 bx lr .align 2, 0 _080BFBAC: .4byte gSaveBlock2 thumb_func_end sub_80BFB94 thumb_func_start CheckForBigMovieOrEmergencyNewsOnTV CheckForBigMovieOrEmergencyNewsOnTV: @ 80BFBB0 push {lr} ldr r1, _080BFBD0 movs r0, 0x4 ldrsb r0, [r1, r0] cmp r0, 0x1 bne _080BFBCC ldr r0, _080BFBD4 ldrb r0, [r0, 0x8] cmp r0, 0 bne _080BFBD8 movs r0, 0x5 ldrsb r0, [r1, r0] cmp r0, 0 beq _080BFBE0 _080BFBCC: movs r0, 0 b _080BFC0A .align 2, 0 _080BFBD0: .4byte 0x02025734 _080BFBD4: .4byte gSaveBlock2 _080BFBD8: movs r0, 0x5 ldrsb r0, [r1, r0] cmp r0, 0x2 bne _080BFBCC _080BFBE0: ldr r0, _080BFC04 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BFBFE movs r0, 0x83 lsls r0, 4 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BFC08 _080BFBFE: movs r0, 0x1 b _080BFC0A .align 2, 0 _080BFC04: .4byte 0x0000085d _080BFC08: movs r0, 0x2 _080BFC0A: pop {r1} bx r1 thumb_func_end CheckForBigMovieOrEmergencyNewsOnTV thumb_func_start GetMomOrDadStringForTVMessage GetMomOrDadStringForTVMessage: @ 80BFC10 push {r4,lr} ldr r1, _080BFC40 movs r0, 0x4 ldrsb r0, [r1, r0] cmp r0, 0x1 bne _080BFC6C ldr r0, _080BFC44 ldrb r0, [r0, 0x8] cmp r0, 0 bne _080BFC54 movs r0, 0x5 ldrsb r0, [r1, r0] cmp r0, 0 bne _080BFC6C ldr r0, _080BFC48 ldr r1, _080BFC4C bl StringCopy ldr r0, _080BFC50 movs r1, 0x1 bl VarSet b _080BFC6C .align 2, 0 _080BFC40: .4byte 0x02025734 _080BFC44: .4byte gSaveBlock2 _080BFC48: .4byte 0x020231cc _080BFC4C: .4byte gUnknown_0840FF36 _080BFC50: .4byte 0x00004003 _080BFC54: movs r0, 0x5 ldrsb r0, [r1, r0] cmp r0, 0x2 bne _080BFC6C ldr r0, _080BFCB4 ldr r1, _080BFCB8 bl StringCopy ldr r0, _080BFCBC movs r1, 0x1 bl VarSet _080BFC6C: ldr r4, _080BFCBC adds r0, r4, 0 bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 beq _080BFCAA adds r0, r4, 0 bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 beq _080BFCC0 adds r0, r4, 0 bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bls _080BFCD4 adds r0, r4, 0 bl VarGet lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _080BFCC0 _080BFCAA: ldr r0, _080BFCB4 ldr r1, _080BFCB8 bl StringCopy b _080BFD10 .align 2, 0 _080BFCB4: .4byte 0x020231cc _080BFCB8: .4byte gUnknown_0840FF36 _080BFCBC: .4byte 0x00004003 _080BFCC0: ldr r0, _080BFCCC ldr r1, _080BFCD0 bl StringCopy b _080BFD10 .align 2, 0 _080BFCCC: .4byte 0x020231cc _080BFCD0: .4byte gUnknown_0840FF32 _080BFCD4: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080BFD00 ldr r0, _080BFCF8 ldr r1, _080BFCFC bl StringCopy adds r0, r4, 0 movs r1, 0x1 bl VarSet b _080BFD10 .align 2, 0 _080BFCF8: .4byte 0x020231cc _080BFCFC: .4byte gUnknown_0840FF36 _080BFD00: ldr r0, _080BFD18 ldr r1, _080BFD1C bl StringCopy adds r0, r4, 0 movs r1, 0x2 bl VarSet _080BFD10: pop {r4} pop {r0} bx r0 .align 2, 0 _080BFD18: .4byte 0x020231cc _080BFD1C: .4byte gUnknown_0840FF32 thumb_func_end GetMomOrDadStringForTVMessage thumb_func_start sub_80BFD20 sub_80BFD20: @ 80BFD20 push {lr} ldr r0, _080BFD3C movs r1, 0 bl VarSet ldr r0, _080BFD40 ldrb r1, [r0, 0x5] ldrb r2, [r0, 0x4] movs r0, 0x5 bl RemoveFieldObjectByLocalIdAndMap pop {r0} bx r0 .align 2, 0 _080BFD3C: .4byte 0x000040bc _080BFD40: .4byte 0x02025734 thumb_func_end sub_80BFD20 thumb_func_start sub_80BFD44 sub_80BFD44: @ 80BFD44 push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 adds r7, r1, 0 lsls r2, 24 lsrs r6, r2, 24 movs r4, 0 _080BFD54: lsls r0, r4, 3 subs r0, r4 lsls r0, 5 adds r0, r4 lsls r0, 2 ldr r5, _080BFD8C adds r0, r5 adds r1, r4, 0 muls r1, r7 add r1, r8 movs r2, 0xE1 lsls r2, 2 bl memcpy adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080BFD54 adds r4, r5, 0 cmp r6, 0x1 beq _080BFDBC cmp r6, 0x1 bgt _080BFD90 cmp r6, 0 beq _080BFD9A b _080BFDFC .align 2, 0 _080BFD8C: .4byte 0x02007000 _080BFD90: cmp r6, 0x2 beq _080BFDCC cmp r6, 0x3 beq _080BFDE8 b _080BFDFC _080BFD9A: ldr r0, _080BFDB4 movs r2, 0xE1 lsls r2, 2 adds r1, r4, r2 movs r3, 0xE1 lsls r3, 3 adds r2, r4, r3 ldr r5, _080BFDB8 adds r3, r4, r5 bl sub_80BFE24 b _080BFDFC .align 2, 0 _080BFDB4: .4byte 0x02027e6c _080BFDB8: .4byte 0x00000a8c _080BFDBC: ldr r1, _080BFDC8 movs r0, 0xE1 lsls r0, 3 adds r2, r4, r0 b _080BFDD4 .align 2, 0 _080BFDC8: .4byte 0x02027e6c _080BFDCC: movs r0, 0xE1 lsls r0, 2 adds r1, r4, r0 ldr r2, _080BFDE0 _080BFDD4: ldr r5, _080BFDE4 adds r3, r4, r5 adds r0, r4, 0 bl sub_80BFE24 b _080BFDFC .align 2, 0 _080BFDE0: .4byte 0x02027e6c _080BFDE4: .4byte 0x00000a8c _080BFDE8: movs r0, 0xE1 lsls r0, 2 adds r1, r5, r0 movs r3, 0xE1 lsls r3, 3 adds r2, r5, r3 ldr r3, _080BFE20 adds r0, r5, 0 bl sub_80BFE24 _080BFDFC: ldr r4, _080BFE20 adds r0, r4, 0 bl sub_80BF588 bl sub_80C04A0 adds r0, r4, 0 bl sub_80BF588 bl sub_80C01D4 bl sub_80C0408 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BFE20: .4byte 0x02027e6c thumb_func_end sub_80BFD44 thumb_func_start sub_80BFE24 sub_80BFE24: @ 80BFE24 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 str r0, [sp, 0x10] str r1, [sp, 0x14] str r2, [sp, 0x18] str r3, [sp, 0x1C] add r0, sp, 0x10 str r0, [sp] add r0, sp, 0x14 str r0, [sp, 0x4] add r0, sp, 0x18 str r0, [sp, 0x8] add r0, sp, 0x1C str r0, [sp, 0xC] bl GetLinkPlayerCount ldr r1, _080BFEA0 strb r0, [r1] _080BFE50: movs r6, 0 ldr r0, _080BFEA0 ldrb r1, [r0] cmp r6, r1 bcs _080BFE50 mov r10, r0 _080BFE5C: cmp r6, 0 bne _080BFE64 ldr r2, _080BFEA4 strb r6, [r2] _080BFE64: lsls r4, r6, 2 mov r3, sp adds r0, r3, r4 ldr r0, [r0] ldr r0, [r0] bl sub_80C019C ldr r1, _080BFEA8 strb r0, [r1] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 adds r7, r4, 0 cmp r0, r1 bne _080BFEAC ldr r1, _080BFEA4 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 mov r2, r10 ldrb r2, [r2] cmp r0, r2 beq _080BFF58 adds r6, 0x1 mov r9, r6 b _080BFF3C .align 2, 0 _080BFEA0: .4byte 0x03000720 _080BFEA4: .4byte 0x020387e4 _080BFEA8: .4byte 0x03000722 _080BFEAC: movs r5, 0 mov r3, r10 ldrb r0, [r3] subs r0, 0x1 adds r2, r6, 0x1 mov r9, r2 cmp r5, r0 bge _080BFF22 ldr r3, _080BFF4C mov r8, r3 _080BFEC0: adds r0, r6, r5 adds r4, r0, 0x1 mov r0, r8 ldrb r1, [r0] adds r0, r4, 0 bl __modsi3 lsls r0, 2 add r0, sp ldr r0, [r0] ldr r0, [r0] bl sub_80BF74C ldr r1, _080BFF50 strb r0, [r1] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BFF12 mov r2, r8 ldrb r1, [r2] adds r0, r4, 0 bl __modsi3 adds r2, r0, 0 lsls r0, r2, 2 add r0, sp ldr r0, [r0] mov r3, sp adds r1, r3, r7 ldr r1, [r1] lsls r2, 24 lsrs r2, 24 bl sub_80BFF68 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BFF22 _080BFF12: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 mov r1, r8 ldrb r0, [r1] subs r0, 0x1 cmp r5, r0 blt _080BFEC0 _080BFF22: mov r2, r10 ldrb r0, [r2] subs r0, 0x1 cmp r5, r0 bne _080BFF3C mov r3, sp adds r0, r3, r7 ldr r0, [r0] ldr r0, [r0] ldr r1, _080BFF54 ldrb r1, [r1] bl sub_80BF55C _080BFF3C: mov r1, r9 lsls r0, r1, 24 lsrs r6, r0, 24 mov r2, r10 ldrb r2, [r2] cmp r6, r2 bcc _080BFE5C b _080BFE50 .align 2, 0 _080BFF4C: .4byte 0x03000720 _080BFF50: .4byte 0x03005d38 _080BFF54: .4byte 0x03000722 _080BFF58: add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BFE24 thumb_func_start sub_80BFF68 sub_80BFF68: @ 80BFF68 push {r4-r7,lr} sub sp, 0x4 lsls r2, 24 lsrs r7, r2, 24 ldr r4, [r0] ldr r6, [r1] movs r5, 0 ldr r2, _080BFFA4 movs r1, 0 ldrsb r1, [r2, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r0, [r0] str r2, [sp] bl sub_80BFB54 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 ldr r2, [sp] cmp r0, 0x3 beq _080BFFD8 cmp r0, 0x3 bgt _080BFFA8 cmp r0, 0x2 beq _080BFFAE b _080C0026 .align 2, 0 _080BFFA4: .4byte 0x03000722 _080BFFA8: cmp r1, 0x4 beq _080C0000 b _080C0026 _080BFFAE: ldr r0, _080BFFD4 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4, r0 ldrb r2, [r2] lsls r2, 24 asrs r2, 24 lsls r1, r2, 3 adds r1, r2 lsls r1, 2 adds r1, r6, r1 adds r2, r7, 0 bl sub_80C004C b _080C0022 .align 2, 0 _080BFFD4: .4byte 0x03005d38 _080BFFD8: ldr r0, _080BFFFC movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4, r0 ldrb r2, [r2] lsls r2, 24 asrs r2, 24 lsls r1, r2, 3 adds r1, r2 lsls r1, 2 adds r1, r6, r1 adds r2, r7, 0 bl sub_80C00B4 b _080C0022 .align 2, 0 _080BFFFC: .4byte 0x03005d38 _080C0000: ldr r0, _080C0030 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4, r0 ldrb r2, [r2] lsls r2, 24 asrs r2, 24 lsls r1, r2, 3 adds r1, r2 lsls r1, 2 adds r1, r6, r1 adds r2, r7, 0 bl sub_80C0134 _080C0022: lsls r0, 24 lsrs r5, r0, 24 _080C0026: cmp r5, 0x1 beq _080C0034 movs r0, 0 b _080C0040 .align 2, 0 _080C0030: .4byte 0x03005d38 _080C0034: ldr r0, _080C0048 ldrb r1, [r0] adds r0, r6, 0 bl sub_80BF55C movs r0, 0x1 _080C0040: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080C0048: .4byte 0x03000722 thumb_func_end sub_80BFF68 thumb_func_start sub_80C004C sub_80C004C: @ 80C004C push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 lsls r0, r2, 24 lsrs r0, 24 bl GetLinkPlayerTrainerId adds r5, r0, 0 movs r2, 0xFF ands r0, r2 adds r1, r4, 0 adds r1, 0x22 ldrb r1, [r1] cmp r0, r1 bne _080C007C lsrs r0, r5, 8 ands r0, r2 adds r1, r4, 0 adds r1, 0x23 ldrb r1, [r1] cmp r0, r1 bne _080C007C movs r0, 0 b _080C00AC _080C007C: adds r1, r4, 0 adds r1, 0x20 ldrb r0, [r1] adds r2, r4, 0 adds r2, 0x22 strb r0, [r2] adds r3, r4, 0 adds r3, 0x21 ldrb r0, [r3] adds r2, 0x1 strb r0, [r2] strb r5, [r1] lsrs r0, r5, 8 strb r0, [r3] adds r1, r6, 0 adds r0, r4, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} movs r0, 0x1 strb r0, [r6, 0x1] _080C00AC: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80C004C thumb_func_start sub_80C00B4 sub_80C00B4: @ 80C00B4 push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 lsls r0, r2, 24 lsrs r0, 24 bl GetLinkPlayerTrainerId adds r2, r0, 0 movs r3, 0xFF ands r0, r3 adds r1, r4, 0 adds r1, 0x20 ldrb r1, [r1] cmp r0, r1 bne _080C00E0 lsrs r0, r2, 8 ands r0, r3 adds r1, r4, 0 adds r1, 0x21 ldrb r1, [r1] cmp r0, r1 beq _080C0100 _080C00E0: movs r3, 0xFF adds r0, r2, 0 ands r0, r3 adds r1, r4, 0 adds r1, 0x22 lsrs r5, r2, 8 ldrb r1, [r1] cmp r0, r1 bne _080C0104 adds r0, r5, 0 ands r0, r3 adds r1, r4, 0 adds r1, 0x23 ldrb r1, [r1] cmp r0, r1 bne _080C0104 _080C0100: movs r0, 0 b _080C012C _080C0104: ldrb r1, [r4, 0x1E] adds r0, r4, 0 adds r0, 0x20 strb r1, [r0] ldrb r0, [r4, 0x1F] adds r1, r4, 0 adds r1, 0x21 strb r0, [r1] strb r2, [r4, 0x1E] strb r5, [r4, 0x1F] adds r1, r6, 0 adds r0, r4, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} movs r0, 0x1 strb r0, [r6, 0x1] _080C012C: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80C00B4 thumb_func_start sub_80C0134 sub_80C0134: @ 80C0134 push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 lsls r0, r2, 24 lsrs r0, 24 bl GetLinkPlayerTrainerId adds r5, r0, 0 movs r2, 0xFF ands r0, r2 adds r1, r4, 0 adds r1, 0x22 ldrb r1, [r1] cmp r0, r1 bne _080C0164 lsrs r0, r5, 8 ands r0, r2 adds r1, r4, 0 adds r1, 0x23 ldrb r1, [r1] cmp r0, r1 bne _080C0164 movs r0, 0 b _080C0196 _080C0164: adds r1, r4, 0 adds r1, 0x20 ldrb r0, [r1] adds r2, r4, 0 adds r2, 0x22 strb r0, [r2] adds r3, r4, 0 adds r3, 0x21 ldrb r0, [r3] adds r2, 0x1 strb r0, [r2] strb r5, [r1] lsrs r0, r5, 8 strb r0, [r3] adds r1, r6, 0 adds r0, r4, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} movs r0, 0x1 strb r0, [r6, 0x1] strh r0, [r6, 0x16] _080C0196: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80C0134 thumb_func_start sub_80C019C sub_80C019C: @ 80C019C push {lr} adds r3, r0, 0 movs r2, 0 _080C01A2: lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r1, r0, r3 ldrb r0, [r1, 0x1] cmp r0, 0 bne _080C01C2 ldrb r0, [r1] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3B bhi _080C01C2 lsls r0, r2, 24 asrs r0, 24 b _080C01D0 _080C01C2: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x17 bls _080C01A2 movs r0, 0x1 negs r0, r0 _080C01D0: pop {r1} bx r1 thumb_func_end sub_80C019C thumb_func_start sub_80C01D4 sub_80C01D4: @ 80C01D4 push {r4-r6,lr} movs r6, 0 _080C01D8: ldr r0, _080C01F8 lsls r2, r6, 3 adds r1, r2, r6 lsls r1, 2 adds r1, r0 ldr r0, _080C01FC adds r1, r0 ldrb r0, [r1] cmp r0, 0x29 bls _080C01EE b _080C038C _080C01EE: lsls r0, 2 ldr r1, _080C0200 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C01F8: .4byte 0x02025734 _080C01FC: .4byte 0x00002738 _080C0200: .4byte _080C0204 .align 2, 0 _080C0204: .4byte _080C0394 .4byte _080C02AC .4byte _080C0394 .4byte _080C02BC .4byte _080C02CC .4byte _080C02DC .4byte _080C02F8 .4byte _080C0308 .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C0324 .4byte _080C0394 .4byte _080C0334 .4byte _080C0350 .4byte _080C0368 .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C038C .4byte _080C0394 _080C02AC: adds r0, r2, r6 lsls r0, 2 ldr r1, _080C02B8 adds r0, r1 ldrh r0, [r0, 0x2] b _080C035A .align 2, 0 _080C02B8: .4byte 0x02027e6c _080C02BC: adds r0, r2, r6 lsls r0, 2 ldr r1, _080C02C8 adds r0, r1 ldrh r0, [r0, 0x2] b _080C035A .align 2, 0 _080C02C8: .4byte 0x02027e6c _080C02CC: adds r0, r2, r6 lsls r0, 2 ldr r1, _080C02D8 adds r0, r1 ldrh r0, [r0, 0x6] b _080C035A .align 2, 0 _080C02D8: .4byte 0x02027e6c _080C02DC: adds r4, r2, r6 lsls r4, 2 ldr r0, _080C02F4 adds r4, r0 ldrh r0, [r4, 0x2] lsls r5, r6, 24 lsrs r5, 24 adds r1, r5, 0 bl sub_80C03C8 ldrh r0, [r4, 0x1C] b _080C037E .align 2, 0 _080C02F4: .4byte 0x02027e6c _080C02F8: adds r0, r2, r6 lsls r0, 2 ldr r1, _080C0304 adds r0, r1 ldrh r0, [r0, 0x2] b _080C035A .align 2, 0 _080C0304: .4byte 0x02027e6c _080C0308: adds r4, r2, r6 lsls r4, 2 ldr r0, _080C0320 adds r4, r0 ldrh r0, [r4, 0xA] lsls r5, r6, 24 lsrs r5, 24 adds r1, r5, 0 bl sub_80C03C8 ldrh r0, [r4, 0x14] b _080C037E .align 2, 0 _080C0320: .4byte 0x02027e6c _080C0324: adds r0, r2, r6 lsls r0, 2 ldr r1, _080C0330 adds r0, r1 ldrh r0, [r0, 0x10] b _080C035A .align 2, 0 _080C0330: .4byte 0x02027e6c _080C0334: adds r4, r2, r6 lsls r4, 2 ldr r0, _080C034C adds r4, r0 ldrh r0, [r4, 0xC] lsls r5, r6, 24 lsrs r5, 24 adds r1, r5, 0 bl sub_80C03C8 ldrh r0, [r4, 0xE] b _080C037E .align 2, 0 _080C034C: .4byte 0x02027e6c _080C0350: adds r0, r2, r6 lsls r0, 2 ldr r1, _080C0364 adds r0, r1 ldrh r0, [r0, 0x4] _080C035A: lsls r1, r6, 24 lsrs r1, 24 bl sub_80C03C8 b _080C0394 .align 2, 0 _080C0364: .4byte 0x02027e6c _080C0368: adds r4, r2, r6 lsls r4, 2 ldr r0, _080C0388 adds r4, r0 ldrh r0, [r4, 0x8] lsls r5, r6, 24 lsrs r5, 24 adds r1, r5, 0 bl sub_80C03C8 ldrh r0, [r4, 0x4] _080C037E: adds r1, r5, 0 bl sub_80C03C8 b _080C0394 .align 2, 0 _080C0388: .4byte 0x02027e6c _080C038C: lsls r0, r6, 24 lsrs r0, 24 bl sub_80C03A8 _080C0394: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x17 bhi _080C03A0 b _080C01D8 _080C03A0: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80C01D4 thumb_func_start sub_80C03A8 sub_80C03A8: @ 80C03A8 lsls r0, 24 lsrs r0, 24 ldr r2, _080C03C0 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r2 ldr r0, _080C03C4 adds r1, r0 movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _080C03C0: .4byte 0x02025734 _080C03C4: .4byte 0x00002739 thumb_func_end sub_80C03A8 thumb_func_start sub_80C03C8 sub_80C03C8: @ 80C03C8 push {r4,lr} lsls r0, 16 lsrs r0, 16 lsls r1, 24 lsrs r4, r1, 24 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0 bl sub_8090D90 lsls r0, 24 asrs r2, r0, 24 cmp r2, 0 bne _080C03F8 ldr r1, _080C0400 lsls r0, r4, 3 adds r0, r4 lsls r0, 2 adds r0, r1 ldr r1, _080C0404 adds r0, r1 strb r2, [r0] _080C03F8: pop {r4} pop {r0} bx r0 .align 2, 0 _080C0400: .4byte 0x02025734 _080C0404: .4byte 0x00002739 thumb_func_end sub_80C03C8 thumb_func_start sub_80C0408 sub_80C0408: @ 80C0408 push {r4-r6,lr} ldr r0, _080C044C bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C0444 movs r2, 0 ldr r6, _080C0450 ldr r4, _080C0454 movs r3, 0 ldr r5, _080C0458 _080C0422: lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r1, r0, r6 adds r0, r1, r5 ldrb r0, [r0] cmp r0, 0x7 beq _080C0436 cmp r0, 0x29 bne _080C043A _080C0436: adds r0, r1, r4 strb r3, [r0] _080C043A: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x17 bls _080C0422 _080C0444: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C044C: .4byte 0x00000804 _080C0450: .4byte 0x02025734 _080C0454: .4byte 0x00002739 _080C0458: .4byte 0x00002738 thumb_func_end sub_80C0408 thumb_func_start sub_80C045C sub_80C045C: @ 80C045C push {r4-r6,lr} movs r5, 0 ldr r6, _080C0494 _080C0462: lsls r0, r5, 3 adds r0, r5 lsls r0, 2 adds r4, r0, r6 ldr r1, _080C0498 adds r0, r4, r1 ldrb r0, [r0] bl sub_80BFB54 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _080C0484 ldr r0, _080C049C adds r1, r4, r0 movs r0, 0 strb r0, [r1] _080C0484: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _080C0462 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C0494: .4byte 0x02025734 _080C0498: .4byte 0x00002738 _080C049C: .4byte 0x00002739 thumb_func_end sub_80C045C thumb_func_start sub_80C04A0 sub_80C04A0: @ 80C04A0 push {r4,r5,lr} movs r3, 0 movs r2, 0x5 ldr r5, _080C0508 ldr r4, _080C050C _080C04AA: lsls r0, r2, 24 asrs r1, r0, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _080C04C8 lsls r0, r3, 24 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r3, r0, 24 _080C04C8: adds r0, r1, 0x1 lsls r0, 24 lsrs r2, r0, 24 asrs r0, 24 cmp r0, 0x17 ble _080C04AA movs r2, 0 lsls r0, r3, 24 asrs r0, 24 movs r1, 0x5 subs r0, r1, r0 cmp r2, r0 bge _080C0502 adds r5, r0, 0 _080C04E4: lsls r1, r2, 24 asrs r4, r1, 24 movs r0, 0xA0 lsls r0, 19 adds r1, r0 lsrs r1, 24 ldr r0, _080C0510 bl sub_80BF55C adds r4, 0x1 lsls r4, 24 lsrs r2, r4, 24 asrs r4, 24 cmp r4, r5 blt _080C04E4 _080C0502: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C0508: .4byte 0x02025734 _080C050C: .4byte 0x00002738 _080C0510: .4byte 0x02027e6c thumb_func_end sub_80C04A0 thumb_func_start sub_80C0514 sub_80C0514: @ 80C0514 push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 adds r7, r1, 0 lsls r2, 24 lsrs r5, r2, 24 movs r4, 0 _080C0524: lsls r0, r4, 6 ldr r6, _080C0550 adds r0, r6 adds r1, r4, 0 muls r1, r7 add r1, r8 movs r2, 0x40 bl memcpy adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080C0524 adds r4, r6, 0 cmp r5, 0x1 beq _080C0578 cmp r5, 0x1 bgt _080C0554 cmp r5, 0 beq _080C055E b _080C05AC .align 2, 0 _080C0550: .4byte 0x02007000 _080C0554: cmp r5, 0x2 beq _080C0584 cmp r5, 0x3 beq _080C059C b _080C05AC _080C055E: ldr r0, _080C0574 adds r1, r4, 0 adds r1, 0x40 adds r2, r4, 0 adds r2, 0x80 adds r3, r4, 0 adds r3, 0xC0 bl sub_80C05C4 b _080C05AC .align 2, 0 _080C0574: .4byte 0x020281f0 _080C0578: ldr r1, _080C0580 adds r2, r4, 0 adds r2, 0x80 b _080C058A .align 2, 0 _080C0580: .4byte 0x020281f0 _080C0584: adds r1, r4, 0 adds r1, 0x40 ldr r2, _080C0598 _080C058A: adds r3, r4, 0 adds r3, 0xC0 adds r0, r4, 0 bl sub_80C05C4 b _080C05AC .align 2, 0 _080C0598: .4byte 0x020281f0 _080C059C: adds r1, r6, 0 adds r1, 0x40 adds r2, r6, 0 adds r2, 0x80 ldr r3, _080C05C0 adds r0, r6, 0 bl sub_80C05C4 _080C05AC: bl sub_80C0750 bl sub_80C0788 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C05C0: .4byte 0x020281f0 thumb_func_end sub_80C0514 thumb_func_start sub_80C05C4 sub_80C05C4: @ 80C05C4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 str r0, [sp, 0x10] str r1, [sp, 0x14] str r2, [sp, 0x18] str r3, [sp, 0x1C] add r0, sp, 0x10 str r0, [sp] add r0, sp, 0x14 str r0, [sp, 0x4] add r0, sp, 0x18 str r0, [sp, 0x8] add r0, sp, 0x1C str r0, [sp, 0xC] bl GetLinkPlayerCount ldr r1, _080C0600 strb r0, [r1] movs r0, 0 mov r10, r0 _080C05F4: movs r7, 0 mov r1, r10 adds r1, 0x1 str r1, [sp, 0x20] b _080C068C .align 2, 0 _080C0600: .4byte 0x03000721 _080C0604: lsls r4, r7, 2 mov r1, sp adds r0, r1, r4 ldr r0, [r0] ldr r0, [r0] mov r1, r10 bl sub_80C0730 ldr r1, _080C06B0 strb r0, [r1] lsls r0, 24 asrs r0, 24 mov r8, r4 adds r1, r7, 0x1 mov r9, r1 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080C0686 movs r5, 0 ldr r1, _080C06B4 ldrb r0, [r1] subs r0, 0x1 cmp r5, r0 bge _080C0686 adds r6, r1, 0 _080C0638: adds r0, r7, r5 adds r4, r0, 0x1 ldrb r1, [r6] adds r0, r4, 0 bl __modsi3 lsls r0, 2 add r0, sp ldr r0, [r0] ldr r0, [r0] bl sub_80BEBC8 ldr r1, _080C06B8 strb r0, [r1] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080C0678 ldrb r1, [r6] adds r0, r4, 0 bl __modsi3 lsls r0, 2 add r0, sp ldr r0, [r0] mov r1, sp add r1, r8 ldr r1, [r1] bl sub_80C06BC _080C0678: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r6] subs r0, 0x1 cmp r5, r0 blt _080C0638 _080C0686: mov r1, r9 lsls r0, r1, 24 lsrs r7, r0, 24 _080C068C: ldr r0, _080C06B4 ldrb r0, [r0] cmp r7, r0 bcc _080C0604 ldr r1, [sp, 0x20] lsls r0, r1, 24 lsrs r0, 24 mov r10, r0 cmp r0, 0xF bls _080C05F4 add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C06B0: .4byte 0x03000722 _080C06B4: .4byte 0x03000721 _080C06B8: .4byte 0x03005d38 thumb_func_end sub_80C05C4 thumb_func_start sub_80C06BC sub_80C06BC: @ 80C06BC push {lr} ldr r0, [r0] ldr r1, [r1] ldr r2, _080C06E0 ldrb r2, [r2] lsls r2, 24 asrs r2, 24 lsls r2, 2 adds r1, r2 ldr r2, _080C06E4 ldrb r2, [r2] lsls r2, 24 asrs r2, 24 bl sub_80C06E8 pop {r0} bx r0 .align 2, 0 _080C06E0: .4byte 0x03000722 _080C06E4: .4byte 0x03005d38 thumb_func_end sub_80C06BC thumb_func_start sub_80C06E8 sub_80C06E8: @ 80C06E8 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r2, 24 lsrs r6, r2, 24 ldrb r3, [r5] adds r0, r3, 0 cmp r0, 0 bne _080C06FE _080C06FA: movs r0, 0 b _080C072A _080C06FE: movs r1, 0 adds r2, r3, 0 adds r3, r0, 0 _080C0704: lsls r0, r1, 2 adds r0, r4 ldrb r0, [r0] cmp r0, r3 beq _080C06FA adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bls _080C0704 lsls r0, r6, 24 asrs r0, 22 adds r0, r4 strb r2, [r0] movs r1, 0x1 strb r1, [r0, 0x1] ldrh r1, [r5, 0x2] strh r1, [r0, 0x2] movs r0, 0x1 _080C072A: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80C06E8 thumb_func_start sub_80C0730 sub_80C0730: @ 80C0730 push {lr} lsls r1, 24 lsrs r2, r1, 24 lsls r1, r2, 2 adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _080C0746 lsls r0, r2, 24 asrs r0, 24 b _080C074A _080C0746: movs r0, 0x1 negs r0, r0 _080C074A: pop {r1} bx r1 thumb_func_end sub_80C0730 thumb_func_start sub_80C0750 sub_80C0750: @ 80C0750 push {r4,r5,lr} movs r4, 0 ldr r5, _080C0780 _080C0756: lsls r0, r4, 2 adds r0, r5 ldr r1, _080C0784 adds r0, r1 ldrb r0, [r0] cmp r0, 0x3 bls _080C076A adds r0, r4, 0 bl sub_80BEC10 _080C076A: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _080C0756 bl sub_80BEC40 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C0780: .4byte 0x02025734 _080C0784: .4byte 0x00002abc thumb_func_end sub_80C0750 thumb_func_start sub_80C0788 sub_80C0788: @ 80C0788 push {r4,lr} ldr r0, _080C07B8 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C07B2 movs r1, 0 ldr r4, _080C07BC ldr r3, _080C07C0 movs r2, 0 _080C07A0: lsls r0, r1, 2 adds r0, r4 adds r0, r3 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bls _080C07A0 _080C07B2: pop {r4} pop {r0} bx r0 .align 2, 0 _080C07B8: .4byte 0x00000804 _080C07BC: .4byte 0x02025734 _080C07C0: .4byte 0x00002abd thumb_func_end sub_80C0788 thumb_func_start sub_80C07C4 sub_80C07C4: @ 80C07C4 push {lr} ldr r2, _080C07F8 ldr r0, _080C07FC ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r1, r0, r2 ldr r2, _080C0800 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _080C07E0 b _080C08F8 _080C07E0: subs r2, 0x1 adds r0, r1, r2 ldrb r0, [r0] subs r0, 0x1 cmp r0, 0x28 bls _080C07EE b _080C08F8 _080C07EE: lsls r0, 2 ldr r1, _080C0804 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C07F8: .4byte 0x02025734 _080C07FC: .4byte 0x0202e8cc _080C0800: .4byte 0x00002739 _080C0804: .4byte _080C0808 .align 2, 0 _080C0808: .4byte _080C08AC .4byte _080C08B2 .4byte _080C08B8 .4byte _080C08BE .4byte _080C08E2 .4byte _080C08CA .4byte _080C08D0 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08D6 .4byte _080C08DC .4byte _080C08E8 .4byte _080C08EE .4byte _080C08F4 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08F8 .4byte _080C08C4 _080C08AC: bl DoTVShowPokemonFanClubLetter b _080C08F8 _080C08B2: bl DoTVShowRecentHappenings b _080C08F8 _080C08B8: bl DoTVShowPokemonFanClubOpinions b _080C08F8 _080C08BE: bl nullsub_22 b _080C08F8 _080C08C4: bl DoTVShowPokemonNewsMassOutbreak b _080C08F8 _080C08CA: bl DoTVShowBravoTrainerPokemonProfile b _080C08F8 _080C08D0: bl sub_80C0B9C b _080C08F8 _080C08D6: bl DoTVShowPokemonTodaySuccessfulCapture b _080C08F8 _080C08DC: bl DoTVShowTodaysSmartShopper b _080C08F8 _080C08E2: bl DoTVShowTheNameRaterShow b _080C08F8 _080C08E8: bl DoTVShowPokemonTodayFailedCapture b _080C08F8 _080C08EE: bl DoTVShowPokemonAngler b _080C08F8 _080C08F4: bl DoTVShowTheWorldOfMasters _080C08F8: pop {r0} bx r0 thumb_func_end sub_80C07C4 thumb_func_start sub_80C08FC sub_80C08FC: @ 80C08FC push {r4,r5,lr} adds r5, r0, 0 lsls r4, r2, 24 lsrs r4, 24 bl StringCopy cmp r4, 0x1 bhi _080C0914 adds r0, r5, 0 movs r1, 0x1 bl ConvertInternationalString _080C0914: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C08FC thumb_func_start DoTVShowBravoTrainerPokemonProfile DoTVShowBravoTrainerPokemonProfile: @ 80C091C push {r4,r5,lr} ldr r0, _080C0948 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C094C adds r4, r0, r1 ldr r1, _080C0950 movs r0, 0 strh r0, [r1] ldr r0, _080C0954 ldrb r5, [r0] cmp r5, 0x8 bls _080C093C b _080C0B7A _080C093C: lsls r0, r5, 2 ldr r1, _080C0958 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C0948: .4byte 0x0202e8cc _080C094C: .4byte 0x02027e6c _080C0950: .4byte 0x0202e8dc _080C0954: .4byte 0x020387e8 _080C0958: .4byte _080C095C .align 2, 0 _080C095C: .4byte _080C0980 .4byte _080C09D8 .4byte _080C0A10 .4byte _080C0A40 .4byte _080C0A74 .4byte _080C0AA8 .4byte _080C0AEC .4byte _080C0B34 .4byte _080C0B64 _080C0980: ldr r0, _080C09C0 adds r1, r4, 0 adds r1, 0x16 ldrb r2, [r4, 0x1E] bl sub_80C08FC ldrb r1, [r4, 0x13] lsls r1, 29 lsrs r1, 29 movs r0, 0x1 bl CopyContestCategoryToStringVar ldrb r1, [r4, 0x13] lsls r1, 27 lsrs r1, 30 movs r0, 0x2 bl sub_80BEF10 ldrh r1, [r4, 0x2] movs r0, 0xB muls r0, r1 ldr r1, _080C09C4 adds r0, r1 adds r1, r4, 0 adds r1, 0x8 bl StringCompareWithoutExtCtrlCodes cmp r0, 0 bne _080C09CC ldr r1, _080C09C8 movs r0, 0x8 b _080C0B78 .align 2, 0 _080C09C0: .4byte 0x020231cc _080C09C4: .4byte gSpeciesNames _080C09C8: .4byte 0x020387e8 _080C09CC: ldr r1, _080C09D4 movs r0, 0x1 b _080C0B78 .align 2, 0 _080C09D4: .4byte 0x020387e8 _080C09D8: ldr r0, _080C0A04 ldrh r2, [r4, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C0A08 adds r1, r2 bl StringCopy ldr r0, _080C0A0C adds r1, r4, 0 adds r1, 0x8 ldrb r2, [r4, 0x1F] bl sub_80C08FC ldrb r1, [r4, 0x13] lsls r1, 29 lsrs r1, 29 movs r0, 0x2 bl CopyContestCategoryToStringVar b _080C0B74 .align 2, 0 _080C0A04: .4byte 0x020231cc _080C0A08: .4byte gSpeciesNames _080C0A0C: .4byte 0x020232cc _080C0A10: ldr r0, _080C0A2C adds r1, r4, 0 adds r1, 0x16 ldrb r2, [r4, 0x1E] bl sub_80C08FC ldrb r1, [r4, 0x13] movs r0, 0x60 ands r0, r1 cmp r0, 0 bne _080C0A34 ldr r1, _080C0A30 movs r0, 0x3 b _080C0B78 .align 2, 0 _080C0A2C: .4byte 0x020231cc _080C0A30: .4byte 0x020387e8 _080C0A34: ldr r1, _080C0A3C movs r0, 0x4 b _080C0B78 .align 2, 0 _080C0A3C: .4byte 0x020387e8 _080C0A40: ldr r0, _080C0A68 adds r1, r4, 0 adds r1, 0x16 ldrb r2, [r4, 0x1E] bl sub_80C08FC ldr r0, _080C0A6C ldrh r1, [r4, 0x4] bl sub_80EB3FC ldrb r1, [r4, 0x13] lsls r1, 25 lsrs r1, 30 adds r1, 0x1 movs r0, 0x2 bl sub_80BF088 ldr r1, _080C0A70 movs r0, 0x5 b _080C0B78 .align 2, 0 _080C0A68: .4byte 0x020231cc _080C0A6C: .4byte 0x020232cc _080C0A70: .4byte 0x020387e8 _080C0A74: ldr r0, _080C0A9C adds r1, r4, 0 adds r1, 0x16 ldrb r2, [r4, 0x1E] bl sub_80C08FC ldr r0, _080C0AA0 ldrh r1, [r4, 0x4] bl sub_80EB3FC ldrb r1, [r4, 0x13] lsls r1, 25 lsrs r1, 30 adds r1, 0x1 movs r0, 0x2 bl sub_80BF088 ldr r1, _080C0AA4 movs r0, 0x5 b _080C0B78 .align 2, 0 _080C0A9C: .4byte 0x020231cc _080C0AA0: .4byte 0x020232cc _080C0AA4: .4byte 0x020387e8 _080C0AA8: ldr r0, _080C0AD4 adds r1, r4, 0 adds r1, 0x16 ldrb r2, [r4, 0x1E] bl sub_80C08FC ldrb r1, [r4, 0x13] lsls r1, 29 lsrs r1, 29 movs r0, 0x1 bl CopyContestCategoryToStringVar ldr r0, _080C0AD8 ldrh r1, [r4, 0x6] bl sub_80EB3FC ldrh r0, [r4, 0x14] cmp r0, 0 beq _080C0AE0 ldr r1, _080C0ADC movs r0, 0x6 b _080C0B78 .align 2, 0 _080C0AD4: .4byte 0x020231cc _080C0AD8: .4byte 0x020233cc _080C0ADC: .4byte 0x020387e8 _080C0AE0: ldr r1, _080C0AE8 movs r0, 0x7 b _080C0B78 .align 2, 0 _080C0AE8: .4byte 0x020387e8 _080C0AEC: ldr r0, _080C0B1C ldrh r2, [r4, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C0B20 adds r1, r2 bl StringCopy ldr r0, _080C0B24 ldrh r2, [r4, 0x14] movs r1, 0xD muls r1, r2 ldr r2, _080C0B28 adds r1, r2 bl StringCopy ldr r0, _080C0B2C ldrh r1, [r4, 0x6] bl sub_80EB3FC ldr r1, _080C0B30 movs r0, 0x7 b _080C0B78 .align 2, 0 _080C0B1C: .4byte 0x020231cc _080C0B20: .4byte gSpeciesNames _080C0B24: .4byte 0x020232cc _080C0B28: .4byte gMoveNames _080C0B2C: .4byte 0x020233cc _080C0B30: .4byte 0x020387e8 _080C0B34: ldr r0, _080C0B58 adds r1, r4, 0 adds r1, 0x16 ldrb r2, [r4, 0x1E] bl sub_80C08FC ldr r0, _080C0B5C ldrh r2, [r4, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C0B60 adds r1, r2 bl StringCopy bl TVShowDone b _080C0B7A .align 2, 0 _080C0B58: .4byte 0x020231cc _080C0B5C: .4byte 0x020232cc _080C0B60: .4byte gSpeciesNames _080C0B64: ldr r0, _080C0B8C ldrh r2, [r4, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C0B90 adds r1, r2 bl StringCopy _080C0B74: ldr r1, _080C0B94 movs r0, 0x2 _080C0B78: strb r0, [r1] _080C0B7A: ldr r0, _080C0B98 lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] bl box_related_two__2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C0B8C: .4byte 0x020231cc _080C0B90: .4byte gSpeciesNames _080C0B94: .4byte 0x020387e8 _080C0B98: .4byte gUnknown_083D1524 thumb_func_end DoTVShowBravoTrainerPokemonProfile thumb_func_start sub_80C0B9C sub_80C0B9C: @ 80C0B9C push {r4,r5,lr} ldr r0, _080C0BC8 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C0BCC adds r4, r0, r1 ldr r1, _080C0BD0 movs r0, 0 strh r0, [r1] ldr r0, _080C0BD4 ldrb r5, [r0] adds r2, r0, 0 cmp r5, 0xE bls _080C0BBE b _080C0DDE _080C0BBE: lsls r0, r5, 2 ldr r1, _080C0BD8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C0BC8: .4byte 0x0202e8cc _080C0BCC: .4byte 0x02027e6c _080C0BD0: .4byte 0x0202e8dc _080C0BD4: .4byte 0x020387e8 _080C0BD8: .4byte _080C0BDC .align 2, 0 _080C0BDC: .4byte _080C0C18 .4byte _080C0C5C .4byte _080C0C8C .4byte _080C0CB0 .4byte _080C0CDC .4byte _080C0D24 .4byte _080C0D30 .4byte _080C0D3C .4byte _080C0D42 .4byte _080C0D42 .4byte _080C0D42 .4byte _080C0D5C .4byte _080C0D88 .4byte _080C0D88 .4byte _080C0DC0 _080C0C18: ldr r0, _080C0C40 adds r1, r4, 0x2 ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r0, _080C0C44 ldrh r2, [r4, 0xA] movs r1, 0xB muls r1, r2 ldr r2, _080C0C48 adds r1, r2 bl StringCopy ldrh r0, [r4, 0x16] cmp r0, 0x6 bls _080C0C50 ldr r1, _080C0C4C movs r0, 0x1 strb r0, [r1] b _080C0DDE .align 2, 0 _080C0C40: .4byte 0x020231cc _080C0C44: .4byte 0x020232cc _080C0C48: .4byte gSpeciesNames _080C0C4C: .4byte 0x020387e8 _080C0C50: ldr r1, _080C0C58 movs r0, 0x2 strb r0, [r1] b _080C0DDE .align 2, 0 _080C0C58: .4byte 0x020387e8 _080C0C5C: ldrb r1, [r4, 0x1A] movs r0, 0 bl sub_80BF088 ldrh r1, [r4, 0x16] movs r0, 0x1 bl sub_80BF088 ldrb r0, [r4, 0x1C] cmp r0, 0x1 bne _080C0C80 ldr r1, _080C0C7C movs r0, 0x3 strb r0, [r1] b _080C0DDE .align 2, 0 _080C0C7C: .4byte 0x020387e8 _080C0C80: ldr r1, _080C0C88 movs r0, 0x4 strb r0, [r1] b _080C0DDE .align 2, 0 _080C0C88: .4byte 0x020387e8 _080C0C8C: ldr r0, _080C0CAC adds r1, r4, 0 adds r1, 0xC ldrb r2, [r4, 0x1D] bl sub_80C08FC ldrh r1, [r4, 0x16] adds r1, 0x1 movs r0, 0x1 bl sub_80BF088 _080C0CA2: ldrb r0, [r4, 0x1B] cmp r0, 0 beq _080C0CFE b _080C0D18 .align 2, 0 _080C0CAC: .4byte 0x020231cc _080C0CB0: ldr r0, _080C0CD0 adds r1, r4, 0 adds r1, 0xC ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r0, _080C0CD4 ldrh r2, [r4, 0x14] movs r1, 0xB muls r1, r2 ldr r2, _080C0CD8 adds r1, r2 bl StringCopy b _080C0CA2 .align 2, 0 _080C0CD0: .4byte 0x020231cc _080C0CD4: .4byte 0x020232cc _080C0CD8: .4byte gSpeciesNames _080C0CDC: ldr r0, _080C0D08 adds r1, r4, 0 adds r1, 0xC ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r0, _080C0D0C ldrh r2, [r4, 0x14] movs r1, 0xB muls r1, r2 ldr r2, _080C0D10 adds r1, r2 bl StringCopy ldrb r0, [r4, 0x1B] cmp r0, 0 bne _080C0D18 _080C0CFE: ldr r1, _080C0D14 movs r0, 0x5 strb r0, [r1] b _080C0DDE .align 2, 0 _080C0D08: .4byte 0x020231cc _080C0D0C: .4byte 0x020232cc _080C0D10: .4byte gSpeciesNames _080C0D14: .4byte 0x020387e8 _080C0D18: ldr r1, _080C0D20 movs r0, 0x6 strb r0, [r1] b _080C0DDE .align 2, 0 _080C0D20: .4byte 0x020387e8 _080C0D24: ldr r0, _080C0D2C adds r1, r4, 0 adds r1, 0xC b _080C0D46 .align 2, 0 _080C0D2C: .4byte 0x020231cc _080C0D30: ldr r0, _080C0D38 adds r1, r4, 0 adds r1, 0xC b _080C0D46 .align 2, 0 _080C0D38: .4byte 0x020231cc _080C0D3C: movs r0, 0xB strb r0, [r2] b _080C0DDE _080C0D42: ldr r0, _080C0D54 adds r1, r4, 0x2 _080C0D46: ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r1, _080C0D58 movs r0, 0xB strb r0, [r1] b _080C0DDE .align 2, 0 _080C0D54: .4byte 0x020231cc _080C0D58: .4byte 0x020387e8 _080C0D5C: ldr r0, _080C0D74 ldrh r1, [r4, 0x18] bl sub_80EB3FC ldrb r0, [r4, 0x1B] cmp r0, 0 bne _080C0D7C ldr r1, _080C0D78 movs r0, 0xC strb r0, [r1] b _080C0DDE .align 2, 0 _080C0D74: .4byte 0x020231cc _080C0D78: .4byte 0x020387e8 _080C0D7C: ldr r1, _080C0D84 movs r0, 0xD strb r0, [r1] b _080C0DDE .align 2, 0 _080C0D84: .4byte 0x020387e8 _080C0D88: ldr r0, _080C0DB0 ldrh r1, [r4, 0x18] bl sub_80EB3FC ldr r0, _080C0DB4 adds r1, r4, 0x2 ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r0, _080C0DB8 adds r1, r4, 0 adds r1, 0xC ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r1, _080C0DBC movs r0, 0xE strb r0, [r1] b _080C0DDE .align 2, 0 _080C0DB0: .4byte 0x020231cc _080C0DB4: .4byte 0x020232cc _080C0DB8: .4byte 0x020233cc _080C0DBC: .4byte 0x020387e8 _080C0DC0: ldr r0, _080C0DF0 adds r1, r4, 0x2 ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r0, _080C0DF4 ldrh r2, [r4, 0xA] movs r1, 0xB muls r1, r2 ldr r2, _080C0DF8 adds r1, r2 bl StringCopy bl TVShowDone _080C0DDE: ldr r0, _080C0DFC lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] bl box_related_two__2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C0DF0: .4byte 0x020231cc _080C0DF4: .4byte 0x020232cc _080C0DF8: .4byte gSpeciesNames _080C0DFC: .4byte gUnknown_083D1548 thumb_func_end sub_80C0B9C thumb_func_start DoTVShowTodaysSmartShopper DoTVShowTodaysSmartShopper: @ 80C0E00 push {r4-r6,lr} ldr r0, _080C0E2C ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C0E30 adds r5, r0, r1 ldr r1, _080C0E34 movs r0, 0 strh r0, [r1] ldr r0, _080C0E38 ldrb r6, [r0] adds r2, r0, 0 cmp r6, 0xC bls _080C0E22 b _080C1014 _080C0E22: lsls r0, r6, 2 ldr r1, _080C0E3C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C0E2C: .4byte 0x0202e8cc _080C0E30: .4byte 0x02027e6c _080C0E34: .4byte 0x0202e8dc _080C0E38: .4byte 0x020387e8 _080C0E3C: .4byte _080C0E40 .align 2, 0 _080C0E40: .4byte _080C0E74 .4byte _080C0EB0 .4byte _080C0EF8 .4byte _080C0F0A .4byte _080C0EF8 .4byte _080C0EF8 .4byte _080C0F34 .4byte _080C0F64 .4byte _080C0F94 .4byte _080C0FA0 .4byte _080C0FAE .4byte _080C0FC0 .4byte _080C1004 _080C0E74: ldr r0, _080C0E98 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x3] bl sub_80C08FC ldr r0, _080C0E9C ldrb r1, [r5, 0x12] movs r2, 0 bl sub_80FBFB4 ldrh r0, [r5, 0xC] cmp r0, 0xFE bls _080C0EA4 ldr r1, _080C0EA0 movs r0, 0xB strb r0, [r1] b _080C1014 .align 2, 0 _080C0E98: .4byte 0x020231cc _080C0E9C: .4byte 0x020232cc _080C0EA0: .4byte 0x020387e8 _080C0EA4: ldr r1, _080C0EAC movs r0, 0x1 strb r0, [r1] b _080C1014 .align 2, 0 _080C0EAC: .4byte 0x020387e8 _080C0EB0: ldr r0, _080C0EEC adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x3] bl sub_80C08FC ldr r4, _080C0EF0 ldrh r0, [r5, 0x6] bl itemid_get_item adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldrh r1, [r5, 0xC] movs r0, 0x2 bl sub_80BF088 ldr r4, _080C0EF4 bl Random ldrb r2, [r4] adds r2, 0x1 lsls r0, 16 lsrs r0, 16 movs r1, 0x3 ands r0, r1 adds r0, r2 strb r0, [r4] b _080C1014 .align 2, 0 _080C0EEC: .4byte 0x020231cc _080C0EF0: .4byte 0x020232cc _080C0EF4: .4byte 0x020387e8 _080C0EF8: ldrh r0, [r5, 0x8] cmp r0, 0 beq _080C0F04 movs r0, 0x6 strb r0, [r2] b _080C1014 _080C0F04: movs r0, 0xA strb r0, [r2] b _080C1014 _080C0F0A: ldrh r1, [r5, 0xC] adds r1, 0x1 movs r0, 0x2 bl sub_80BF088 ldrh r0, [r5, 0x8] cmp r0, 0 beq _080C0F28 ldr r1, _080C0F24 movs r0, 0x6 strb r0, [r1] b _080C1014 .align 2, 0 _080C0F24: .4byte 0x020387e8 _080C0F28: ldr r1, _080C0F30 movs r0, 0xA strb r0, [r1] b _080C1014 .align 2, 0 _080C0F30: .4byte 0x020387e8 _080C0F34: ldr r4, _080C0F5C ldrh r0, [r5, 0x8] bl itemid_get_item adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldrh r1, [r5, 0xE] movs r0, 0x2 bl sub_80BF088 ldrh r0, [r5, 0xA] cmp r0, 0 beq _080C0F7C ldr r1, _080C0F60 movs r0, 0x7 strb r0, [r1] b _080C1014 .align 2, 0 _080C0F5C: .4byte 0x020232cc _080C0F60: .4byte 0x020387e8 _080C0F64: ldr r4, _080C0F8C ldrh r0, [r5, 0xA] bl itemid_get_item adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldrh r1, [r5, 0x10] movs r0, 0x2 bl sub_80BF088 _080C0F7C: ldrb r0, [r5, 0x2] cmp r0, 0x1 beq _080C0FE2 ldr r1, _080C0F90 movs r0, 0x9 strb r0, [r1] b _080C1014 .align 2, 0 _080C0F8C: .4byte 0x020232cc _080C0F90: .4byte 0x020387e8 _080C0F94: ldrh r0, [r5, 0xC] cmp r0, 0xFE bls _080C0FBA movs r0, 0xC strb r0, [r2] b _080C1014 _080C0FA0: movs r0, 0x1 adds r1, r5, 0 bl sub_80BF154 bl TVShowDone b _080C1014 _080C0FAE: ldrb r0, [r5, 0x2] cmp r0, 0x1 bne _080C0FBA movs r0, 0x8 strb r0, [r2] b _080C1014 _080C0FBA: movs r0, 0x9 strb r0, [r2] b _080C1014 _080C0FC0: ldr r0, _080C0FEC adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x3] bl sub_80C08FC ldr r4, _080C0FF0 ldrh r0, [r5, 0x6] bl itemid_get_item adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldrb r0, [r5, 0x2] cmp r0, 0x1 bne _080C0FF8 _080C0FE2: ldr r1, _080C0FF4 movs r0, 0x8 strb r0, [r1] b _080C1014 .align 2, 0 _080C0FEC: .4byte 0x020231cc _080C0FF0: .4byte 0x020232cc _080C0FF4: .4byte 0x020387e8 _080C0FF8: ldr r1, _080C1000 movs r0, 0xC strb r0, [r1] b _080C1014 .align 2, 0 _080C1000: .4byte 0x020387e8 _080C1004: ldr r0, _080C1028 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x3] bl sub_80C08FC bl TVShowDone _080C1014: ldr r0, _080C102C lsls r1, r6, 2 adds r1, r0 ldr r0, [r1] bl box_related_two__2 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C1028: .4byte 0x020231cc _080C102C: .4byte gUnknown_083D14F0 thumb_func_end DoTVShowTodaysSmartShopper thumb_func_start DoTVShowTheNameRaterShow DoTVShowTheNameRaterShow: @ 80C1030 push {r4-r7,lr} sub sp, 0x8 ldr r0, _080C1060 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C1064 adds r6, r0, r1 ldr r1, _080C1068 movs r0, 0 strh r0, [r1] ldr r0, _080C106C ldrb r7, [r0] adds r2, r0, 0 cmp r7, 0x12 bls _080C1054 b _080C138A _080C1054: lsls r0, r7, 2 ldr r1, _080C1070 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C1060: .4byte 0x0202e8cc _080C1064: .4byte 0x02027e6c _080C1068: .4byte 0x0202e8dc _080C106C: .4byte 0x020387e8 _080C1070: .4byte _080C1074 .align 2, 0 _080C1074: .4byte _080C10C0 .4byte _080C1108 .4byte _080C112A .4byte _080C1108 .4byte _080C1108 .4byte _080C1108 .4byte _080C1108 .4byte _080C1108 .4byte _080C1108 .4byte _080C1170 .4byte _080C1170 .4byte _080C1170 .4byte _080C136C .4byte _080C11CC .4byte _080C1228 .4byte _080C127C .4byte _080C12D4 .4byte _080C1314 .4byte _080C1370 _080C10C0: ldr r0, _080C10F4 adds r1, r6, 0 adds r1, 0xF ldrb r2, [r6, 0x1E] bl sub_80C08FC ldr r0, _080C10F8 ldrh r2, [r6, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C10FC adds r1, r2 bl StringCopy ldr r0, _080C1100 adds r1, r6, 0x4 ldrb r2, [r6, 0x1F] bl sub_80C08FC ldr r4, _080C1104 adds r0, r6, 0 bl sub_80BF7E8 adds r0, 0x1 strb r0, [r4] b _080C138A .align 2, 0 _080C10F4: .4byte 0x020231cc _080C10F8: .4byte 0x020232cc _080C10FC: .4byte gSpeciesNames _080C1100: .4byte 0x020233cc _080C1104: .4byte 0x020387e8 _080C1108: ldrb r0, [r6, 0x1A] cmp r0, 0 bne _080C1114 movs r0, 0x9 strb r0, [r2] b _080C138A _080C1114: cmp r0, 0x1 bne _080C111E movs r0, 0xA strb r0, [r2] b _080C138A _080C111E: cmp r0, 0x2 beq _080C1124 b _080C138A _080C1124: movs r0, 0xB strb r0, [r2] b _080C138A _080C112A: ldr r0, _080C1144 adds r1, r6, 0 adds r1, 0xF ldrb r2, [r6, 0x1E] bl sub_80C08FC ldrb r0, [r6, 0x1A] cmp r0, 0 bne _080C114C ldr r1, _080C1148 movs r0, 0x9 strb r0, [r1] b _080C138A .align 2, 0 _080C1144: .4byte 0x020231cc _080C1148: .4byte 0x020387e8 _080C114C: cmp r0, 0x1 bne _080C115C ldr r1, _080C1158 movs r0, 0xA strb r0, [r1] b _080C138A .align 2, 0 _080C1158: .4byte 0x020387e8 _080C115C: cmp r0, 0x2 beq _080C1162 b _080C138A _080C1162: ldr r1, _080C116C movs r0, 0xB strb r0, [r1] b _080C138A .align 2, 0 _080C116C: .4byte 0x020387e8 _080C1170: movs r5, 0 str r5, [sp] str r6, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0 movs r3, 0x1 bl sub_80BF820 ldr r0, _080C11BC ldr r4, _080C11C0 ldrb r2, [r6, 0x1F] adds r1, r4, 0 bl sub_80C08FC str r5, [sp] str r6, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0x1 bl sub_80BF820 ldr r0, _080C11C4 ldrb r2, [r6, 0x1F] adds r1, r4, 0 bl sub_80C08FC adds r1, r6, 0x4 ldrb r2, [r6, 0x1F] adds r0, r4, 0 bl sub_80C08FC ldr r1, _080C11C8 movs r0, 0xC strb r0, [r1] b _080C138A .align 2, 0 _080C11BC: .4byte 0x020233cc _080C11C0: .4byte 0x020231cc _080C11C4: .4byte 0x020232cc _080C11C8: .4byte 0x020387e8 _080C11CC: movs r5, 0 str r5, [sp] str r6, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0x3 movs r3, 0x1 bl sub_80BF820 ldr r0, _080C1218 ldr r4, _080C121C ldrb r2, [r6, 0x1F] adds r1, r4, 0 bl sub_80C08FC str r5, [sp] str r6, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0x2 movs r3, 0 bl sub_80BF820 ldr r0, _080C1220 ldrb r2, [r6, 0x1E] adds r1, r4, 0 bl sub_80C08FC adds r1, r6, 0 adds r1, 0xF ldrb r2, [r6, 0x1E] adds r0, r4, 0 bl sub_80C08FC ldr r1, _080C1224 movs r0, 0xE strb r0, [r1] b _080C138A .align 2, 0 _080C1218: .4byte 0x020233cc _080C121C: .4byte 0x020231cc _080C1220: .4byte 0x020232cc _080C1224: .4byte 0x020387e8 _080C1228: movs r5, 0 str r5, [sp] str r6, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0x3 movs r3, 0 bl sub_80BF820 ldr r0, _080C1270 ldr r4, _080C1274 ldrb r2, [r6, 0x1E] adds r1, r4, 0 bl sub_80C08FC str r5, [sp] str r6, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0x2 movs r3, 0x1 bl sub_80BF820 ldr r0, _080C1278 ldrb r2, [r6, 0x1F] adds r1, r4, 0 bl sub_80C08FC adds r1, r6, 0 adds r1, 0xF ldrb r2, [r6, 0x1E] adds r0, r4, 0 bl sub_80C08FC b _080C1354 .align 2, 0 _080C1270: .4byte 0x020233cc _080C1274: .4byte 0x020231cc _080C1278: .4byte 0x020232cc _080C127C: movs r0, 0 str r0, [sp] str r6, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0x2 movs r3, 0x1 bl sub_80BF820 ldr r0, _080C12C4 ldr r4, _080C12C8 ldrb r2, [r6, 0x1F] adds r1, r4, 0 bl sub_80C08FC ldrh r1, [r6, 0x2] movs r0, 0xB muls r1, r0 ldr r0, _080C12CC adds r1, r0 adds r0, r4, 0 bl StringCopy ldrh r0, [r6, 0x2] str r0, [sp] str r6, [sp, 0x4] movs r0, 0x2 movs r1, 0 movs r2, 0x3 movs r3, 0x2 bl sub_80BF820 ldr r1, _080C12D0 movs r0, 0x10 strb r0, [r1] b _080C138A .align 2, 0 _080C12C4: .4byte 0x020231cc _080C12C8: .4byte 0x020232cc _080C12CC: .4byte gSpeciesNames _080C12D0: .4byte 0x020387e8 _080C12D4: movs r0, 0 str r0, [sp] str r6, [sp, 0x4] movs r1, 0 movs r2, 0x3 movs r3, 0x1 bl sub_80BF820 ldr r0, _080C1308 ldr r1, _080C130C ldrb r2, [r6, 0x1F] bl sub_80C08FC ldrh r0, [r6, 0x2] str r0, [sp] str r6, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0x2 movs r3, 0x2 bl sub_80BF820 ldr r1, _080C1310 movs r0, 0x11 strb r0, [r1] b _080C138A .align 2, 0 _080C1308: .4byte 0x020233cc _080C130C: .4byte 0x020231cc _080C1310: .4byte 0x020387e8 _080C1314: movs r0, 0 str r0, [sp] str r6, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0x2 movs r3, 0x1 bl sub_80BF820 ldr r0, _080C135C ldr r4, _080C1360 ldrb r2, [r6, 0x1F] adds r1, r4, 0 bl sub_80C08FC ldrh r0, [r6, 0x1C] str r0, [sp] str r6, [sp, 0x4] movs r0, 0x2 movs r1, 0 movs r2, 0x3 movs r3, 0x2 bl sub_80BF820 ldrh r1, [r6, 0x1C] movs r0, 0xB muls r1, r0 ldr r0, _080C1364 adds r1, r0 adds r0, r4, 0 bl StringCopy _080C1354: ldr r1, _080C1368 movs r0, 0x12 strb r0, [r1] b _080C138A .align 2, 0 _080C135C: .4byte 0x020231cc _080C1360: .4byte 0x020232cc _080C1364: .4byte gSpeciesNames _080C1368: .4byte 0x020387e8 _080C136C: movs r7, 0x12 strb r7, [r2] _080C1370: ldr r0, _080C13A0 adds r1, r6, 0x4 ldrb r2, [r6, 0x1F] bl sub_80C08FC ldr r0, _080C13A4 adds r1, r6, 0 adds r1, 0xF ldrb r2, [r6, 0x1E] bl sub_80C08FC bl TVShowDone _080C138A: ldr r0, _080C13A8 lsls r1, r7, 2 adds r1, r0 ldr r0, [r1] bl box_related_two__2 add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C13A0: .4byte 0x020231cc _080C13A4: .4byte 0x020232cc _080C13A8: .4byte gUnknown_083D1584 thumb_func_end DoTVShowTheNameRaterShow thumb_func_start DoTVShowPokemonTodaySuccessfulCapture DoTVShowPokemonTodaySuccessfulCapture: @ 80C13AC push {r4-r6,lr} ldr r0, _080C13D8 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C13DC adds r5, r0, r1 ldr r1, _080C13E0 movs r0, 0 strh r0, [r1] ldr r0, _080C13E4 ldrb r6, [r0] adds r2, r0, 0 cmp r6, 0xB bls _080C13CE b _080C15DC _080C13CE: lsls r0, r6, 2 ldr r1, _080C13E8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C13D8: .4byte 0x0202e8cc _080C13DC: .4byte 0x02027e6c _080C13E0: .4byte 0x0202e8dc _080C13E4: .4byte 0x020387e8 _080C13E8: .4byte _080C13EC .align 2, 0 _080C13EC: .4byte _080C141C .4byte _080C1470 .4byte _080C1476 .4byte _080C14B0 .4byte _080C14E8 .4byte _080C14EE .4byte _080C1524 .4byte _080C1578 .4byte _080C1578 .4byte _080C15A8 .4byte _080C15A8 .4byte _080C15D8 _080C141C: ldr r0, _080C1450 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x2] bl sub_80C08FC ldr r0, _080C1454 ldrh r2, [r5, 0x10] movs r1, 0xB muls r1, r2 ldr r2, _080C1458 adds r1, r2 bl StringCopy ldr r0, _080C145C adds r1, r5, 0x4 ldrb r2, [r5, 0x3] bl sub_80C08FC ldrb r0, [r5, 0xF] cmp r0, 0x1 bne _080C1464 ldr r1, _080C1460 movs r0, 0x5 strb r0, [r1] b _080C15DC .align 2, 0 _080C1450: .4byte 0x020231cc _080C1454: .4byte 0x020232cc _080C1458: .4byte gSpeciesNames _080C145C: .4byte 0x020233cc _080C1460: .4byte 0x020387e8 _080C1464: ldr r1, _080C146C movs r0, 0x1 strb r0, [r1] b _080C15DC .align 2, 0 _080C146C: .4byte 0x020387e8 _080C1470: movs r0, 0x2 strb r0, [r2] b _080C15DC _080C1476: ldr r4, _080C149C ldrb r0, [r5, 0xF] bl itemid_get_item adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldrb r1, [r5, 0x12] movs r0, 0x2 bl sub_80BF088 ldrb r0, [r5, 0x12] cmp r0, 0x3 bhi _080C14A4 ldr r1, _080C14A0 movs r0, 0x3 strb r0, [r1] b _080C15DC .align 2, 0 _080C149C: .4byte 0x020232cc _080C14A0: .4byte 0x020387e8 _080C14A4: ldr r1, _080C14AC movs r0, 0x4 strb r0, [r1] b _080C15DC .align 2, 0 _080C14AC: .4byte 0x020387e8 _080C14B0: ldr r0, _080C14D8 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x2] bl sub_80C08FC ldr r0, _080C14DC ldrh r2, [r5, 0x10] movs r1, 0xB muls r1, r2 ldr r2, _080C14E0 adds r1, r2 bl StringCopy ldr r0, _080C14E4 adds r1, r5, 0x4 ldrb r2, [r5, 0x3] bl sub_80C08FC b _080C150A .align 2, 0 _080C14D8: .4byte 0x020231cc _080C14DC: .4byte 0x020232cc _080C14E0: .4byte gSpeciesNames _080C14E4: .4byte 0x020233cc _080C14E8: movs r0, 0x6 strb r0, [r2] b _080C15DC _080C14EE: ldr r0, _080C1514 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x2] bl sub_80C08FC ldr r0, _080C1518 ldrh r2, [r5, 0x10] movs r1, 0xB muls r1, r2 ldr r2, _080C151C adds r1, r2 bl StringCopy _080C150A: ldr r1, _080C1520 movs r0, 0x6 strb r0, [r1] b _080C15DC .align 2, 0 _080C1514: .4byte 0x020231cc _080C1518: .4byte 0x020232cc _080C151C: .4byte gSpeciesNames _080C1520: .4byte 0x020387e8 _080C1524: ldr r0, _080C1564 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x2] bl sub_80C08FC ldr r0, _080C1568 ldrh r2, [r5, 0x10] movs r1, 0xB muls r1, r2 ldr r2, _080C156C adds r1, r2 bl StringCopy ldr r0, _080C1570 adds r1, r5, 0x4 ldrb r2, [r5, 0x3] bl sub_80C08FC ldr r4, _080C1574 bl Random ldrb r2, [r4] adds r2, 0x1 lsls r0, 16 lsrs r0, 16 movs r1, 0x3 ands r0, r1 adds r0, r2 strb r0, [r4] b _080C15DC .align 2, 0 _080C1564: .4byte 0x020231cc _080C1568: .4byte 0x020232cc _080C156C: .4byte gSpeciesNames _080C1570: .4byte 0x020233cc _080C1574: .4byte 0x020387e8 _080C1578: ldr r0, _080C159C ldrh r1, [r5, 0x10] movs r4, 0xB muls r1, r4 ldr r2, _080C15A0 adds r1, r2 bl StringCopy ldr r0, _080C15A4 adds r1, r5, 0x4 ldrb r2, [r5, 0x3] bl sub_80C08FC ldrh r1, [r5, 0x10] movs r0, 0x2 bl sub_80BF638 b _080C15C2 .align 2, 0 _080C159C: .4byte 0x020231cc _080C15A0: .4byte gSpeciesNames _080C15A4: .4byte 0x020232cc _080C15A8: ldr r0, _080C15C8 ldrh r1, [r5, 0x10] movs r4, 0xB muls r1, r4 ldr r2, _080C15CC adds r1, r2 bl StringCopy ldr r0, _080C15D0 adds r1, r5, 0x4 ldrb r2, [r5, 0x3] bl sub_80C08FC _080C15C2: ldr r0, _080C15D4 strb r4, [r0] b _080C15DC .align 2, 0 _080C15C8: .4byte 0x020231cc _080C15CC: .4byte gSpeciesNames _080C15D0: .4byte 0x020232cc _080C15D4: .4byte 0x020387e8 _080C15D8: bl TVShowDone _080C15DC: ldr r0, _080C15F0 lsls r1, r6, 2 adds r1, r0 ldr r0, [r1] bl box_related_two__2 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C15F0: .4byte gUnknown_083D14C0 thumb_func_end DoTVShowPokemonTodaySuccessfulCapture thumb_func_start DoTVShowPokemonTodayFailedCapture DoTVShowPokemonTodayFailedCapture: @ 80C15F4 push {r4,r5,lr} ldr r0, _080C1620 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C1624 adds r4, r0, r1 ldr r1, _080C1628 movs r0, 0 strh r0, [r1] ldr r0, _080C162C ldrb r5, [r0] cmp r5, 0x6 bls _080C1614 b _080C173C _080C1614: lsls r0, r5, 2 ldr r1, _080C1630 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C1620: .4byte 0x0202e8cc _080C1624: .4byte 0x02027e6c _080C1628: .4byte 0x0202e8dc _080C162C: .4byte 0x020387e8 _080C1630: .4byte _080C1634 .align 2, 0 _080C1634: .4byte _080C1650 .4byte _080C1684 .4byte _080C16D8 .4byte _080C16D8 .4byte _080C171C .4byte _080C171C .4byte _080C1738 _080C1650: ldr r0, _080C1674 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0x2] bl sub_80C08FC ldr r0, _080C1678 ldrh r2, [r4, 0xC] movs r1, 0xB muls r1, r2 ldr r2, _080C167C adds r1, r2 bl StringCopy ldr r1, _080C1680 movs r0, 0x1 strb r0, [r1] b _080C173C .align 2, 0 _080C1674: .4byte 0x020231cc _080C1678: .4byte 0x020232cc _080C167C: .4byte gSpeciesNames _080C1680: .4byte 0x020387e8 _080C1684: ldr r0, _080C16B8 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0x2] bl sub_80C08FC ldr r0, _080C16BC ldrb r1, [r4, 0x12] movs r2, 0 bl sub_80FBFB4 ldr r0, _080C16C0 ldrh r2, [r4, 0xE] movs r1, 0xB muls r1, r2 ldr r2, _080C16C4 adds r1, r2 bl StringCopy ldrb r0, [r4, 0x11] cmp r0, 0x1 bne _080C16CC ldr r1, _080C16C8 movs r0, 0x3 strb r0, [r1] b _080C173C .align 2, 0 _080C16B8: .4byte 0x020231cc _080C16BC: .4byte 0x020232cc _080C16C0: .4byte 0x020233cc _080C16C4: .4byte gSpeciesNames _080C16C8: .4byte 0x020387e8 _080C16CC: ldr r1, _080C16D4 movs r0, 0x2 strb r0, [r1] b _080C173C .align 2, 0 _080C16D4: .4byte 0x020387e8 _080C16D8: ldr r0, _080C1708 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0x2] bl sub_80C08FC ldrb r1, [r4, 0x10] movs r0, 0x1 bl sub_80BF088 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 16 cmp r0, 0 bne _080C1710 ldr r1, _080C170C movs r0, 0x5 strb r0, [r1] b _080C173C .align 2, 0 _080C1708: .4byte 0x020231cc _080C170C: .4byte 0x020387e8 _080C1710: ldr r1, _080C1718 movs r0, 0x4 strb r0, [r1] b _080C173C .align 2, 0 _080C1718: .4byte 0x020387e8 _080C171C: ldr r0, _080C1730 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0x2] bl sub_80C08FC ldr r1, _080C1734 movs r0, 0x6 strb r0, [r1] b _080C173C .align 2, 0 _080C1730: .4byte 0x020231cc _080C1734: .4byte 0x020387e8 _080C1738: bl TVShowDone _080C173C: ldr r0, _080C1750 lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] bl box_related_two__2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C1750: .4byte gUnknown_083D15D0 thumb_func_end DoTVShowPokemonTodayFailedCapture thumb_func_start DoTVShowPokemonFanClubLetter DoTVShowPokemonFanClubLetter: @ 80C1754 push {r4-r7,lr} ldr r0, _080C1780 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C1784 adds r5, r0, r1 ldr r1, _080C1788 movs r0, 0 strh r0, [r1] ldr r0, _080C178C ldrb r7, [r0] adds r6, r0, 0 cmp r7, 0x33 bls _080C1776 b _080C1960 _080C1776: lsls r0, r7, 2 ldr r1, _080C1790 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C1780: .4byte 0x0202e8cc _080C1784: .4byte 0x02027e6c _080C1788: .4byte 0x0202e8dc _080C178C: .4byte 0x020387e8 _080C1790: .4byte _080C1794 .align 2, 0 _080C1794: .4byte _080C1864 .4byte _080C1898 .4byte _080C18C4 .4byte _080C18CA .4byte _080C18E2 .4byte _080C18E2 .4byte _080C18E2 .4byte _080C18F4 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1960 .4byte _080C1916 .4byte _080C193C _080C1864: ldr r0, _080C1888 adds r1, r5, 0 adds r1, 0x10 ldrb r2, [r5, 0x18] bl sub_80C08FC ldr r0, _080C188C ldrh r2, [r5, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C1890 adds r1, r2 bl StringCopy ldr r1, _080C1894 movs r0, 0x32 strb r0, [r1] b _080C1960 .align 2, 0 _080C1888: .4byte 0x020231cc _080C188C: .4byte 0x020232cc _080C1890: .4byte gSpeciesNames _080C1894: .4byte 0x020387e8 _080C1898: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 ands r0, r1 adds r2, r0, 0x1 cmp r2, 0x1 bne _080C18B8 ldr r1, _080C18B4 movs r0, 0x2 strb r0, [r1] b _080C1960 .align 2, 0 _080C18B4: .4byte 0x020387e8 _080C18B8: ldr r1, _080C18C0 adds r0, r2, 0x2 strb r0, [r1] b _080C1960 .align 2, 0 _080C18C0: .4byte 0x020387e8 _080C18C4: movs r0, 0x33 strb r0, [r6] b _080C1960 _080C18CA: bl Random ldrb r4, [r6] adds r4, 0x1 lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 adds r0, r4 strb r0, [r6] b _080C1960 _080C18E2: adds r0, r5, 0 bl sub_80BF79C ldr r1, _080C18F0 movs r0, 0x7 strb r0, [r1] b _080C1960 .align 2, 0 _080C18F0: .4byte 0x020387e8 _080C18F4: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x1F bl __umodsi3 adds r0, 0x46 lsls r0, 16 lsrs r2, r0, 16 movs r0, 0x2 adds r1, r2, 0 bl sub_80BF088 bl TVShowDone b _080C1960 _080C1916: ldr r4, _080C1934 adds r1, r5, 0x4 adds r0, r4, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertEasyChatWordsToString adds r0, r4, 0 bl box_related_two__2 ldr r1, _080C1938 movs r0, 0x1 strb r0, [r1] b _080C196C .align 2, 0 _080C1934: .4byte 0x020234cc _080C1938: .4byte 0x020387e8 _080C193C: ldr r4, _080C1958 adds r1, r5, 0x4 adds r0, r4, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertEasyChatWordsToString adds r0, r4, 0 bl box_related_two__2 ldr r1, _080C195C movs r0, 0x3 strb r0, [r1] b _080C196C .align 2, 0 _080C1958: .4byte 0x020234cc _080C195C: .4byte 0x020387e8 _080C1960: ldr r0, _080C1974 lsls r1, r7, 2 adds r1, r0 ldr r0, [r1] bl box_related_two__2 _080C196C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C1974: .4byte gUnknown_083D1470 thumb_func_end DoTVShowPokemonFanClubLetter thumb_func_start DoTVShowRecentHappenings DoTVShowRecentHappenings: @ 80C1978 push {r4-r7,lr} ldr r0, _080C19A4 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C19A8 adds r5, r0, r1 ldr r1, _080C19AC movs r0, 0 strh r0, [r1] ldr r0, _080C19B0 ldrb r6, [r0] adds r7, r0, 0 cmp r6, 0x32 bls _080C199A b _080C1AF0 _080C199A: lsls r0, r6, 2 ldr r1, _080C19B4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C19A4: .4byte 0x0202e8cc _080C19A8: .4byte 0x02027e6c _080C19AC: .4byte 0x0202e8dc _080C19B0: .4byte 0x020387e8 _080C19B4: .4byte _080C19B8 .align 2, 0 _080C19B8: .4byte _080C1A84 .4byte _080C1AA8 .4byte _080C1AC0 .4byte _080C1AC0 .4byte _080C1AC0 .4byte _080C1AC6 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1AF0 .4byte _080C1ACC _080C1A84: ldr r0, _080C1AA0 adds r1, r5, 0 adds r1, 0x10 ldrb r2, [r5, 0x18] bl sub_80C08FC adds r0, r5, 0 bl sub_80BF79C ldr r1, _080C1AA4 movs r0, 0x32 strb r0, [r1] b _080C1AF0 .align 2, 0 _080C1AA0: .4byte 0x020231cc _080C1AA4: .4byte 0x020387e8 _080C1AA8: bl Random ldrb r4, [r7] adds r4, 0x1 lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 adds r0, r4 strb r0, [r7] b _080C1AF0 _080C1AC0: movs r0, 0x5 strb r0, [r7] b _080C1AF0 _080C1AC6: bl TVShowDone b _080C1AF0 _080C1ACC: ldr r4, _080C1AE8 adds r1, r5, 0x4 adds r0, r4, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertEasyChatWordsToString adds r0, r4, 0 bl box_related_two__2 ldr r1, _080C1AEC movs r0, 0x1 strb r0, [r1] b _080C1AFC .align 2, 0 _080C1AE8: .4byte 0x020234cc _080C1AEC: .4byte 0x020387e8 _080C1AF0: ldr r0, _080C1B04 lsls r1, r6, 2 adds r1, r0 ldr r0, [r1] bl box_related_two__2 _080C1AFC: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C1B04: .4byte gUnknown_083D1490 thumb_func_end DoTVShowRecentHappenings thumb_func_start DoTVShowPokemonFanClubOpinions DoTVShowPokemonFanClubOpinions: @ 80C1B08 push {r4-r6,lr} ldr r0, _080C1B30 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C1B34 adds r4, r0, r1 ldr r1, _080C1B38 movs r0, 0 strh r0, [r1] ldr r6, _080C1B3C ldrb r5, [r6] cmp r5, 0x3 bgt _080C1B40 cmp r5, 0x1 bge _080C1B88 cmp r5, 0 beq _080C1B46 b _080C1BD6 .align 2, 0 _080C1B30: .4byte 0x0202e8cc _080C1B34: .4byte 0x02027e6c _080C1B38: .4byte 0x0202e8dc _080C1B3C: .4byte 0x020387e8 _080C1B40: cmp r5, 0x4 beq _080C1BC0 b _080C1BD6 _080C1B46: ldr r0, _080C1B78 adds r1, r4, 0x5 ldrb r2, [r4, 0xD] bl sub_80C08FC ldr r0, _080C1B7C ldrh r2, [r4, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C1B80 adds r1, r2 bl StringCopy ldr r0, _080C1B84 adds r1, r4, 0 adds r1, 0x10 ldrb r2, [r4, 0xE] bl sub_80C08FC ldrb r0, [r4, 0x4] lsrs r0, 4 adds r0, 0x1 strb r0, [r6] b _080C1BD6 .align 2, 0 _080C1B78: .4byte 0x020231cc _080C1B7C: .4byte 0x020232cc _080C1B80: .4byte gSpeciesNames _080C1B84: .4byte 0x020233cc _080C1B88: ldr r0, _080C1BB0 adds r1, r4, 0x5 ldrb r2, [r4, 0xD] bl sub_80C08FC ldr r0, _080C1BB4 ldrh r2, [r4, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C1BB8 adds r1, r2 bl StringCopy ldr r0, _080C1BBC ldrh r1, [r4, 0x1C] bl sub_80EB3FC movs r0, 0x4 strb r0, [r6] b _080C1BD6 .align 2, 0 _080C1BB0: .4byte 0x020231cc _080C1BB4: .4byte 0x020232cc _080C1BB8: .4byte gSpeciesNames _080C1BBC: .4byte 0x020233cc _080C1BC0: ldr r0, _080C1BE8 adds r1, r4, 0x5 ldrb r2, [r4, 0xD] bl sub_80C08FC ldr r0, _080C1BEC ldrh r1, [r4, 0x1E] bl sub_80EB3FC bl TVShowDone _080C1BD6: ldr r0, _080C1BF0 lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] bl box_related_two__2 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C1BE8: .4byte 0x020231cc _080C1BEC: .4byte 0x020233cc _080C1BF0: .4byte gUnknown_083D14A8 thumb_func_end DoTVShowPokemonFanClubOpinions thumb_func_start nullsub_22 nullsub_22: @ 80C1BF4 bx lr thumb_func_end nullsub_22 thumb_func_start DoTVShowPokemonNewsMassOutbreak DoTVShowPokemonNewsMassOutbreak: @ 80C1BF8 push {r4,lr} ldr r0, _080C1C40 ldrh r0, [r0] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080C1C44 adds r4, r0 ldr r0, _080C1C48 ldrb r1, [r4, 0x10] movs r2, 0 bl sub_80FBFB4 ldr r0, _080C1C4C ldrh r2, [r4, 0xC] movs r1, 0xB muls r1, r2 ldr r2, _080C1C50 adds r1, r2 bl StringCopy bl TVShowDone bl StartMassOutbreak ldr r1, _080C1C54 ldr r0, _080C1C58 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl box_related_two__2 pop {r4} pop {r0} bx r0 .align 2, 0 _080C1C40: .4byte 0x0202e8cc _080C1C44: .4byte 0x02027e6c _080C1C48: .4byte 0x020231cc _080C1C4C: .4byte 0x020232cc _080C1C50: .4byte gSpeciesNames _080C1C54: .4byte gUnknown_083D14BC _080C1C58: .4byte 0x020387e8 thumb_func_end DoTVShowPokemonNewsMassOutbreak thumb_func_start DoTVShowInSearchOfTrainers DoTVShowInSearchOfTrainers: @ 80C1C5C push {r4-r7,lr} ldr r0, _080C1C7C movs r1, 0 strh r1, [r0] ldr r0, _080C1C80 ldrb r7, [r0] adds r2, r0, 0 cmp r7, 0x8 bls _080C1C70 b _080C1DF8 _080C1C70: lsls r0, r7, 2 ldr r1, _080C1C84 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C1C7C: .4byte 0x0202e8dc _080C1C80: .4byte 0x020387e8 _080C1C84: .4byte _080C1C88 .align 2, 0 _080C1C88: .4byte _080C1CAC .4byte _080C1CF0 .4byte _080C1CF6 .4byte _080C1D44 .4byte _080C1DB0 .4byte _080C1DB0 .4byte _080C1DB0 .4byte _080C1DB0 .4byte _080C1DB6 _080C1CAC: ldr r0, _080C1CD0 ldr r4, _080C1CD4 ldr r2, _080C1CD8 adds r1, r4, r2 ldrb r1, [r1] movs r2, 0 bl sub_80FBFB4 ldr r0, _080C1CDC adds r4, r0 ldrb r0, [r4] cmp r0, 0x1 bls _080C1CE4 ldr r1, _080C1CE0 movs r0, 0x1 strb r0, [r1] b _080C1DF8 .align 2, 0 _080C1CD0: .4byte 0x020231cc _080C1CD4: .4byte 0x02025734 _080C1CD8: .4byte 0x00002b18 _080C1CDC: .4byte 0x00002b19 _080C1CE0: .4byte 0x020387e8 _080C1CE4: ldr r1, _080C1CEC movs r0, 0x2 strb r0, [r1] b _080C1DF8 .align 2, 0 _080C1CEC: .4byte 0x020387e8 _080C1CF0: movs r0, 0x2 strb r0, [r2] b _080C1DF8 _080C1CF6: ldr r0, _080C1D0C ldr r1, _080C1D10 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080C1D14 movs r0, 0x4 strb r0, [r2] b _080C1DF8 .align 2, 0 _080C1D0C: .4byte 0x02025734 _080C1D10: .4byte 0x00002b1a _080C1D14: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080C1D22 movs r0, 0x5 strb r0, [r2] b _080C1DF8 _080C1D22: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080C1D30 movs r0, 0x6 strb r0, [r2] b _080C1DF8 _080C1D30: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080C1D3E movs r0, 0x7 strb r0, [r2] b _080C1DF8 _080C1D3E: movs r0, 0x3 strb r0, [r2] b _080C1DF8 _080C1D44: ldr r0, _080C1D88 ldr r4, _080C1D8C ldr r2, _080C1D90 adds r1, r4, r2 ldrh r1, [r1] movs r6, 0xB muls r1, r6 ldr r5, _080C1D94 adds r1, r5 bl StringCopy ldr r0, _080C1D98 ldr r2, _080C1D9C adds r1, r4, r2 ldrh r2, [r1] movs r1, 0xD muls r1, r2 ldr r2, _080C1DA0 adds r1, r2 bl StringCopy ldr r0, _080C1DA4 ldr r1, _080C1DA8 adds r4, r1 ldrh r1, [r4] muls r1, r6 adds r1, r5 bl StringCopy ldr r1, _080C1DAC movs r0, 0x8 strb r0, [r1] b _080C1DF8 .align 2, 0 _080C1D88: .4byte 0x020231cc _080C1D8C: .4byte 0x02025734 _080C1D90: .4byte 0x00002b10 _080C1D94: .4byte gSpeciesNames _080C1D98: .4byte 0x020232cc _080C1D9C: .4byte 0x00002b14 _080C1DA0: .4byte gMoveNames _080C1DA4: .4byte 0x020233cc _080C1DA8: .4byte 0x00002b12 _080C1DAC: .4byte 0x020387e8 _080C1DB0: movs r0, 0x8 strb r0, [r2] b _080C1DF8 _080C1DB6: ldr r0, _080C1E0C ldr r4, _080C1E10 ldr r2, _080C1E14 adds r1, r4, r2 ldrh r1, [r1] bl sub_80EB3FC ldr r0, _080C1E18 ldr r2, _080C1E1C adds r1, r4, r2 ldrh r1, [r1] movs r6, 0xB muls r1, r6 ldr r5, _080C1E20 adds r1, r5 bl StringCopy ldr r0, _080C1E24 ldr r1, _080C1E28 adds r4, r1 ldrh r1, [r4] muls r1, r6 adds r1, r5 bl StringCopy ldr r1, _080C1E2C movs r0, 0x1 strh r0, [r1] ldr r1, _080C1E30 movs r0, 0 strb r0, [r1] bl TakeTVShowInSearchOfTrainersOffTheAir _080C1DF8: ldr r0, _080C1E34 lsls r1, r7, 2 adds r1, r0 ldr r0, [r1] bl box_related_two__2 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C1E0C: .4byte 0x020231cc _080C1E10: .4byte 0x02025734 _080C1E14: .4byte 0x00002b16 _080C1E18: .4byte 0x020232cc _080C1E1C: .4byte 0x00002b10 _080C1E20: .4byte gSpeciesNames _080C1E24: .4byte 0x020233cc _080C1E28: .4byte 0x00002b12 _080C1E2C: .4byte 0x0202e8dc _080C1E30: .4byte 0x020387e8 _080C1E34: .4byte gUnknown_083D1600 thumb_func_end DoTVShowInSearchOfTrainers thumb_func_start DoTVShowPokemonAngler DoTVShowPokemonAngler: @ 80C1E38 push {r4,r5,lr} ldr r0, _080C1E5C ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C1E60 adds r4, r0, r1 ldr r0, _080C1E64 movs r1, 0 strh r1, [r0] ldrb r0, [r4, 0x2] ldrb r2, [r4, 0x3] cmp r0, r2 bcs _080C1E6C ldr r0, _080C1E68 strb r1, [r0] b _080C1E74 .align 2, 0 _080C1E5C: .4byte 0x0202e8cc _080C1E60: .4byte 0x02027e6c _080C1E64: .4byte 0x0202e8dc _080C1E68: .4byte 0x020387e8 _080C1E6C: ldr r1, _080C1E80 movs r0, 0x1 strb r0, [r1] adds r0, r1, 0 _080C1E74: ldrb r5, [r0] cmp r5, 0 beq _080C1E84 cmp r5, 0x1 beq _080C1EBC b _080C1EE4 .align 2, 0 _080C1E80: .4byte 0x020387e8 _080C1E84: ldr r0, _080C1EB0 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0x6] bl sub_80C08FC ldr r0, _080C1EB4 ldrh r2, [r4, 0x4] movs r1, 0xB muls r1, r2 ldr r2, _080C1EB8 adds r1, r2 bl StringCopy ldrb r1, [r4, 0x3] movs r0, 0x2 bl sub_80BF088 bl TVShowDone b _080C1EE4 .align 2, 0 _080C1EB0: .4byte 0x020231cc _080C1EB4: .4byte 0x020232cc _080C1EB8: .4byte gSpeciesNames _080C1EBC: ldr r0, _080C1EF8 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0x6] bl sub_80C08FC ldr r0, _080C1EFC ldrh r2, [r4, 0x4] movs r1, 0xB muls r1, r2 ldr r2, _080C1F00 adds r1, r2 bl StringCopy ldrb r1, [r4, 0x2] movs r0, 0x2 bl sub_80BF088 bl TVShowDone _080C1EE4: ldr r0, _080C1F04 lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] bl box_related_two__2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C1EF8: .4byte 0x020231cc _080C1EFC: .4byte 0x020232cc _080C1F00: .4byte gSpeciesNames _080C1F04: .4byte gUnknown_083D15EC thumb_func_end DoTVShowPokemonAngler thumb_func_start DoTVShowTheWorldOfMasters DoTVShowTheWorldOfMasters: @ 80C1F08 push {r4-r6,lr} ldr r0, _080C1F30 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C1F34 adds r4, r0, r1 ldr r1, _080C1F38 movs r0, 0 strh r0, [r1] ldr r6, _080C1F3C ldrb r5, [r6] cmp r5, 0x1 beq _080C1F6C cmp r5, 0x1 bgt _080C1F40 cmp r5, 0 beq _080C1F46 b _080C1FB6 .align 2, 0 _080C1F30: .4byte 0x0202e8cc _080C1F34: .4byte 0x02027e6c _080C1F38: .4byte 0x0202e8dc _080C1F3C: .4byte 0x020387e8 _080C1F40: cmp r5, 0x2 beq _080C1F8C b _080C1FB6 _080C1F46: ldr r0, _080C1F68 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0xB] bl sub_80C08FC ldrh r1, [r4, 0x6] movs r0, 0x1 bl sub_80BF088 ldrh r1, [r4, 0x2] movs r0, 0x2 bl sub_80BF088 movs r0, 0x1 strb r0, [r6] b _080C1FB6 .align 2, 0 _080C1F68: .4byte 0x020231cc _080C1F6C: ldr r0, _080C1F84 ldrh r2, [r4, 0x8] movs r1, 0xB muls r1, r2 ldr r2, _080C1F88 adds r1, r2 bl StringCopy movs r0, 0x2 strb r0, [r6] b _080C1FB6 .align 2, 0 _080C1F84: .4byte 0x020231cc _080C1F88: .4byte gSpeciesNames _080C1F8C: ldr r0, _080C1FC8 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0xB] bl sub_80C08FC ldr r0, _080C1FCC ldrb r1, [r4, 0xA] movs r2, 0 bl sub_80FBFB4 ldr r0, _080C1FD0 ldrh r2, [r4, 0x4] movs r1, 0xB muls r1, r2 ldr r2, _080C1FD4 adds r1, r2 bl StringCopy bl TVShowDone _080C1FB6: ldr r0, _080C1FD8 lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] bl box_related_two__2 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C1FC8: .4byte 0x020231cc _080C1FCC: .4byte 0x020232cc _080C1FD0: .4byte 0x020233cc _080C1FD4: .4byte gSpeciesNames _080C1FD8: .4byte gUnknown_083D15F4 thumb_func_end DoTVShowTheWorldOfMasters thumb_func_start TVShowDone TVShowDone: @ 80C1FDC ldr r1, _080C2000 movs r0, 0x1 strh r0, [r1] ldr r1, _080C2004 movs r0, 0 strb r0, [r1] ldr r2, _080C2008 ldr r0, _080C200C ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _080C2010 adds r0, r1 movs r1, 0 strb r1, [r0] bx lr .align 2, 0 _080C2000: .4byte 0x0202e8dc _080C2004: .4byte 0x020387e8 _080C2008: .4byte 0x02025734 _080C200C: .4byte 0x0202e8cc _080C2010: .4byte 0x00002739 thumb_func_end TVShowDone thumb_func_start sub_80C2014 sub_80C2014: @ 80C2014 ldr r1, _080C201C movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _080C201C: .4byte 0x020387e8 thumb_func_end sub_80C2014 thumb_func_start sub_80C2020 sub_80C2020: @ 80C2020 push {r4,r5,lr} movs r5, 0x80 lsls r5, 19 movs r0, 0x40 strh r0, [r5] ldr r4, _080C20F0 adds r0, r4, 0 bl SetUpWindowConfig ldr r0, _080C20F4 adds r1, r4, 0 bl InitWindowFromConfig ldr r1, _080C20F8 movs r2, 0xF8 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080C20FC adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080C2100 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080C2104 adds r0, r3, 0 strh r0, [r1] ldr r0, _080C2108 movs r2, 0 strh r2, [r0] adds r1, 0x3A ldr r3, _080C210C adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 subs r3, 0x11 adds r0, r3, 0 strh r0, [r1] ldr r0, _080C2110 strh r2, [r0] adds r0, 0x4 strh r2, [r0] subs r0, 0x2 strh r2, [r0] adds r0, 0x4 strh r2, [r0] adds r0, 0xA strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r2, [r0] subs r0, 0x44 strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r2, [r0] ldrh r0, [r5] movs r3, 0xFE lsls r3, 7 adds r1, r3, 0 orrs r0, r1 strh r0, [r5] ldr r0, _080C2114 strh r2, [r0] ldr r0, _080C2118 strh r2, [r0] ldr r0, _080C211C strh r2, [r0] ldr r0, _080C2120 strh r2, [r0] ldr r0, _080C2124 strh r2, [r0] ldr r0, _080C2128 strh r2, [r0] ldr r0, _080C212C strh r2, [r0] ldr r0, _080C2130 strh r2, [r0] ldr r0, _080C2134 strh r2, [r0] ldr r0, _080C2138 strh r2, [r0] ldr r0, _080C213C strh r2, [r0] ldr r0, _080C2140 strh r2, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C20F0: .4byte gWindowConfig_81E6FA0 _080C20F4: .4byte 0x0202e908 _080C20F8: .4byte REG_BG0CNT _080C20FC: .4byte 0x00001803 _080C2100: .4byte 0x00001c03 _080C2104: .4byte 0x00003a03 _080C2108: .4byte REG_MOSAIC _080C210C: .4byte 0x00003f3f _080C2110: .4byte REG_WIN0H _080C2114: .4byte 0x030042a4 _080C2118: .4byte 0x030042a0 _080C211C: .4byte 0x030042c0 _080C2120: .4byte 0x030041b4 _080C2124: .4byte 0x03004288 _080C2128: .4byte 0x03004280 _080C212C: .4byte 0x030041b0 _080C2130: .4byte 0x030041b8 _080C2134: .4byte 0x030042c4 _080C2138: .4byte 0x03004240 _080C213C: .4byte 0x03004200 _080C2140: .4byte 0x03004244 thumb_func_end sub_80C2020 thumb_func_start sub_80C2144 sub_80C2144: @ 80C2144 push {r4-r7,lr} sub sp, 0x4 movs r2, 0xC0 lsls r2, 19 movs r3, 0xC0 lsls r3, 9 ldr r0, _080C220C mov r12, r0 movs r5, 0 ldr r1, _080C2210 movs r4, 0x80 lsls r4, 5 ldr r6, _080C2214 movs r7, 0x85 lsls r7, 24 _080C2162: str r5, [sp] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080C2162 str r5, [sp] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 orrs r0, r7 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r1, 0xC0 lsls r1, 19 mov r0, r12 bl LZDecompressVram ldr r0, _080C2218 ldr r1, _080C221C bl LZDecompressVram ldr r0, _080C2220 ldr r1, _080C2224 bl LZDecompressVram ldr r0, _080C2228 ldr r1, _080C222C bl LZDecompressVram bl sub_80C37E4 ldr r0, _080C2230 movs r2, 0x80 lsls r2, 2 movs r1, 0 bl LoadCompressedPalette ldr r0, _080C2234 bl LoadFontDefaultPalette movs r6, 0 _080C21C0: lsls r5, r6, 24 lsrs r5, 24 adds r0, r5, 0 movs r1, 0x1 bl sub_80C3990 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x1 bl sub_80C39E4 movs r5, 0 lsls r1, r6, 1 adds r2, r6, 0x1 mov r12, r2 lsls r4, 24 asrs r7, r4, 24 adds r1, r6 lsls r1, 6 lsls r4, r0, 24 _080C21EC: ldr r6, _080C2238 cmp r5, r7 bge _080C21F4 adds r6, 0x2 _080C21F4: asrs r2, r4, 24 adds r0, r2, 0 cmp r2, 0 bge _080C21FE negs r0, r2 _080C21FE: cmp r5, r0 bge _080C2240 ldr r3, _080C223C cmp r2, 0 bge _080C2242 adds r3, 0x2 b _080C2242 .align 2, 0 _080C220C: .4byte gUnknown_08D1977C _080C2210: .4byte 0x040000d4 _080C2214: .4byte 0x85000400 _080C2218: .4byte gUnknown_08D1A490 _080C221C: .4byte 0x0600d000 _080C2220: .4byte gUnknown_08D1A364 _080C2224: .4byte 0x0600e000 _080C2228: .4byte gUnknown_08D1A250 _080C222C: .4byte 0x0600f000 _080C2230: .4byte gUnknown_08D1A618 _080C2234: .4byte gWindowConfig_81E6FA0 _080C2238: .4byte 0x000060b2 _080C223C: .4byte 0x000060a4 _080C2240: ldr r3, _080C2264 _080C2242: ldr r2, _080C2268 adds r0, r1, r2 strh r6, [r0] adds r2, 0x40 adds r0, r1, r2 strh r3, [r0] adds r1, 0x2 adds r5, 0x1 cmp r5, 0x9 ble _080C21EC mov r6, r12 cmp r6, 0x3 ble _080C21C0 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C2264: .4byte 0x000060a2 _080C2268: .4byte 0x0600c166 thumb_func_end sub_80C2144 thumb_func_start sub_80C226C sub_80C226C: @ 80C226C push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080C2288 ldrb r0, [r0] cmp r5, r0 bne _080C2294 ldr r0, _080C228C ldr r1, _080C2290 bl StringCopy adds r2, r0, 0 b _080C2296 .align 2, 0 _080C2288: .4byte 0x02038695 _080C228C: .4byte 0x020238cc _080C2290: .4byte gUnknown_083D17DC _080C2294: ldr r2, _080C22E8 _080C2296: movs r4, 0xFC strb r4, [r2] movs r0, 0x6 strb r0, [r2, 0x1] movs r0, 0x4 strb r0, [r2, 0x2] adds r2, 0x3 lsls r6, r5, 6 ldr r7, _080C22EC adds r1, r6, r7 adds r0, r2, 0 bl StringCopy adds r2, r0, 0 strb r4, [r2] movs r0, 0x13 strb r0, [r2, 0x1] movs r0, 0x32 strb r0, [r2, 0x2] adds r2, 0x3 ldr r1, _080C22F0 adds r0, r2, 0 bl StringCopy adds r2, r0, 0 ldr r0, _080C22F4 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C22FC lsls r4, r5, 3 subs r1, r4, r5 lsls r1, 2 ldr r0, _080C22F8 adds r1, r0 adds r0, r2, 0 bl StringCopy b _080C230A .align 2, 0 _080C22E8: .4byte 0x020238cc _080C22EC: .4byte 0x02038572 _080C22F0: .4byte gUnknown_083D17E0 _080C22F4: .4byte 0x0203869a _080C22F8: .4byte 0x03002978 _080C22FC: adds r1, r7, 0 adds r1, 0xB adds r1, r6, r1 adds r0, r2, 0 bl StringCopy lsls r4, r5, 3 _080C230A: ldr r0, _080C2334 ldr r1, _080C2338 adds r2, r4, r5 lsls r2, 18 ldr r3, _080C233C adds r2, r3 lsrs r2, 16 lsls r3, r5, 1 adds r3, r5 adds r3, 0x4 lsls r3, 24 lsrs r3, 24 str r3, [sp] movs r3, 0x7 bl sub_8003460 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C2334: .4byte 0x0202e908 _080C2338: .4byte 0x020238cc _080C233C: .4byte 0x03020000 thumb_func_end sub_80C226C thumb_func_start sub_80C2340 sub_80C2340: @ 80C2340 push {r4,lr} movs r4, 0 _080C2344: lsls r0, r4, 24 lsrs r0, 24 bl sub_80C226C adds r4, 0x1 cmp r4, 0x3 ble _080C2344 pop {r4} pop {r0} bx r0 thumb_func_end sub_80C2340 thumb_func_start sub_80C2358 sub_80C2358: @ 80C2358 push {r4,r5,lr} sub sp, 0x4 ldr r5, _080C240C ldrb r0, [r5, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r5, 0x8] movs r0, 0 bl SetVBlankCallback bl sub_80C2020 bl dp12_8087EA4 bl ResetPaletteFade bl ResetSpriteData bl ResetTasks bl FreeAllSpritePalettes bl sub_80C2144 bl sub_80C310C movs r0, 0 movs r1, 0x1 bl sub_80C30D4 bl sub_80C2340 ldr r4, _080C2410 adds r0, r4, 0 movs r1, 0 movs r2, 0x18 bl memset adds r0, r4, 0 adds r0, 0x18 movs r1, 0 movs r2, 0x50 bl memset bl sub_80C33DC movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldrb r1, [r5, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r5, 0x8] ldr r0, _080C2414 movs r1, 0x5 bl CreateTask strb r0, [r4, 0x2] ldr r0, _080C2418 bl SetMainCallback2 ldr r1, _080C241C movs r0, 0xF0 strh r0, [r1] ldr r1, _080C2420 ldr r2, _080C2424 adds r0, r2, 0 strh r0, [r1] ldr r0, _080C2428 movs r1, 0x14 bl CreateTask bl sub_80C3F00 movs r0, 0xDF lsls r0, 1 bl sub_8075474 ldr r0, _080C242C bl SetVBlankCallback add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C240C: .4byte 0x0202f388 _080C2410: .4byte 0x02018000 _080C2414: .4byte sub_80C24F4 _080C2418: .4byte sub_80C2430 _080C241C: .4byte 0x03004200 _080C2420: .4byte 0x03004244 _080C2424: .4byte 0x000080a0 _080C2428: .4byte sub_80C2F28 _080C242C: .4byte sub_80C2448 thumb_func_end sub_80C2358 thumb_func_start sub_80C2430 sub_80C2430: @ 80C2430 push {lr} bl AnimateSprites bl BuildOamBuffer bl RunTasks bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80C2430 thumb_func_start sub_80C2448 sub_80C2448: @ 80C2448 push {lr} ldr r1, _080C24C0 ldr r0, _080C24C4 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24C8 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24CC ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24D0 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24D4 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24D8 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24DC ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24E0 ldrh r0, [r0] strh r0, [r1] adds r1, 0x22 ldr r0, _080C24E4 ldrh r0, [r0] strh r0, [r1] adds r1, 0x4 ldr r0, _080C24E8 ldrh r0, [r0] strh r0, [r1] subs r1, 0x2 ldr r0, _080C24EC ldrh r0, [r0] strh r0, [r1] adds r1, 0x4 ldr r0, _080C24F0 ldrh r0, [r0] strh r0, [r1] bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_8089668 pop {r0} bx r0 .align 2, 0 _080C24C0: .4byte REG_BG0HOFS _080C24C4: .4byte 0x030042a4 _080C24C8: .4byte 0x030042a0 _080C24CC: .4byte 0x030042c0 _080C24D0: .4byte 0x030041b4 _080C24D4: .4byte 0x03004288 _080C24D8: .4byte 0x03004280 _080C24DC: .4byte 0x030041b0 _080C24E0: .4byte 0x030041b8 _080C24E4: .4byte 0x030042c4 _080C24E8: .4byte 0x03004240 _080C24EC: .4byte 0x03004200 _080C24F0: .4byte 0x03004244 thumb_func_end sub_80C2448 thumb_func_start sub_80C24F4 sub_80C24F4: @ 80C24F4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r2, r4, 0 ldr r0, _080C252C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080C254E ldr r0, _080C2530 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C2540 ldr r0, _080C2534 bl sub_80C3698 ldr r1, _080C2538 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C253C str r1, [r0] b _080C254E .align 2, 0 _080C252C: .4byte 0x0202f388 _080C2530: .4byte 0x0203869a _080C2534: .4byte gUnknown_0842CEAF _080C2538: .4byte 0x03004b20 _080C253C: .4byte sub_80C255C _080C2540: ldr r0, _080C2554 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _080C2558 str r0, [r1] _080C254E: pop {r4} pop {r0} bx r0 .align 2, 0 _080C2554: .4byte 0x03004b20 _080C2558: .4byte sub_80C2600 thumb_func_end sub_80C24F4 thumb_func_start sub_80C255C sub_80C255C: @ 80C255C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080C2594 ldrb r0, [r0] cmp r0, 0 beq _080C258C bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _080C258C ldr r0, _080C2598 movs r1, 0 bl CreateTask ldr r1, _080C259C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C25A0 str r1, [r0] _080C258C: pop {r4} pop {r0} bx r0 .align 2, 0 _080C2594: .4byte 0x03002fa4 _080C2598: .4byte sub_80C25A4 _080C259C: .4byte 0x03004b20 _080C25A0: .4byte TaskDummy thumb_func_end sub_80C255C thumb_func_start sub_80C25A4 sub_80C25A4: @ 80C25A4 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080C25B8 ldr r2, _080C25BC bl SetTaskFuncWithFollowupFunc pop {r0} bx r0 .align 2, 0 _080C25B8: .4byte sub_80C89DC _080C25BC: .4byte sub_80C25C0 thumb_func_end sub_80C25A4 thumb_func_start sub_80C25C0 sub_80C25C0: @ 80C25C0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C25EC adds r0, r4, 0 bl DestroyTask ldr r2, _080C25F4 ldr r0, _080C25F8 ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, _080C25FC str r1, [r0] bl sub_80C3764 _080C25EC: pop {r4} pop {r0} bx r0 .align 2, 0 _080C25F4: .4byte 0x03004b20 _080C25F8: .4byte 0x02018000 _080C25FC: .4byte sub_80C2600 thumb_func_end sub_80C25C0 thumb_func_start sub_80C2600 sub_80C2600: @ 80C2600 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C2644 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r5, r1, r2 ldrh r1, [r5, 0x8] movs r2, 0x8 ldrsh r0, [r5, r2] cmp r0, 0 bne _080C2654 ldr r0, _080C2648 movs r1, 0x14 bl CreateTask ldr r4, _080C264C ldr r0, _080C2650 ldrb r1, [r0] adds r0, r4, 0 bl sub_80C3158 adds r0, r4, 0 bl sub_80C34AC lsls r0, 16 asrs r0, 16 movs r3, 0x88 lsls r3, 3 movs r1, 0x90 movs r2, 0x78 b _080C26A6 .align 2, 0 _080C2644: .4byte 0x03004b20 _080C2648: .4byte sub_80C2F64 _080C264C: .4byte gUnknown_0842CE60 _080C2650: .4byte 0x02018000 _080C2654: cmp r0, 0x1 bne _080C2668 ldr r0, _080C2664 ldrb r0, [r0, 0x4] cmp r0, 0 bne _080C26D4 b _080C267C .align 2, 0 _080C2664: .4byte 0x02018000 _080C2668: cmp r0, 0x2 bne _080C2684 ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x15 bne _080C26D4 movs r0, 0 _080C267C: strh r0, [r5, 0xA] adds r0, r1, 0x1 strh r0, [r5, 0x8] b _080C26D4 _080C2684: cmp r0, 0x3 bne _080C26C0 ldr r4, _080C26B4 ldr r0, _080C26B8 ldrb r1, [r0] adds r0, r4, 0 bl sub_80C3158 adds r0, r4, 0 bl sub_80C34AC lsls r0, 16 asrs r0, 16 ldr r2, _080C26BC movs r3, 0x88 lsls r3, 3 movs r1, 0x90 _080C26A6: bl sub_80C34CC ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _080C26D4 .align 2, 0 _080C26B4: .4byte gUnknown_0842CE78 _080C26B8: .4byte 0x02018000 _080C26BC: .4byte 0x0000ffff _080C26C0: cmp r0, 0x4 bne _080C26D4 ldr r0, _080C26DC ldrb r0, [r0, 0x4] cmp r0, 0x2 bne _080C26D4 movs r0, 0 strh r0, [r5, 0x8] ldr r0, _080C26E0 str r0, [r5] _080C26D4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C26DC: .4byte 0x02018000 _080C26E0: .4byte sub_80C26E4 thumb_func_end sub_80C2600 thumb_func_start sub_80C26E4 sub_80C26E4: @ 80C26E4 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C2708 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080C2744 cmp r0, 0x1 bgt _080C270C cmp r0, 0 beq _080C2712 b _080C2766 .align 2, 0 _080C2708: .4byte 0x03004b20 _080C270C: cmp r0, 0x2 beq _080C2754 b _080C2766 _080C2712: ldr r5, _080C2738 ldrb r0, [r5, 0xA] cmp r0, 0 bne _080C2766 ldrh r1, [r4, 0xC] adds r0, r1, 0x1 strh r0, [r4, 0xC] lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_80C40D4 ldrb r0, [r5, 0x14] cmp r0, 0 bne _080C273C movs r0, 0x2 strh r0, [r4, 0x8] b _080C2766 .align 2, 0 _080C2738: .4byte 0x02018000 _080C273C: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080C2766 _080C2744: ldr r0, _080C2750 ldrb r0, [r0, 0x14] cmp r0, 0 bne _080C2766 strh r0, [r4, 0x8] b _080C2766 .align 2, 0 _080C2750: .4byte 0x02018000 _080C2754: movs r0, 0x88 lsls r0, 3 bl sub_80C3520 movs r0, 0 strh r0, [r4, 0x8] strh r0, [r4, 0xC] ldr r0, _080C276C str r0, [r4] _080C2766: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C276C: .4byte sub_80C2770 thumb_func_end sub_80C26E4 thumb_func_start sub_80C2770 sub_80C2770: @ 80C2770 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 adds r4, r2, 0 ldr r5, _080C27BC ldrb r3, [r5, 0x4] cmp r3, 0 bne _080C27CC ldr r1, _080C27C0 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0, r1 ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x15 bne _080C27DE strh r3, [r1, 0xA] ldr r4, _080C27C4 ldrb r1, [r5] adds r0, r4, 0 bl sub_80C3158 adds r0, r4, 0 bl sub_80C34AC lsls r0, 16 asrs r0, 16 ldr r2, _080C27C8 movs r3, 0x88 lsls r3, 3 movs r1, 0x90 bl sub_80C34CC b _080C27DE .align 2, 0 _080C27BC: .4byte 0x02018000 _080C27C0: .4byte 0x03004b20 _080C27C4: .4byte gUnknown_0842CE91 _080C27C8: .4byte 0x0000ffff _080C27CC: cmp r3, 0x2 bne _080C27DE ldr r0, _080C27E4 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080C27E8 str r0, [r1] _080C27DE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C27E4: .4byte 0x03004b20 _080C27E8: .4byte sub_80C27EC thumb_func_end sub_80C2770 thumb_func_start sub_80C27EC sub_80C27EC: @ 80C27EC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C2810 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080C284C cmp r0, 0x1 bgt _080C2814 cmp r0, 0 beq _080C281A b _080C286C .align 2, 0 _080C2810: .4byte 0x03004b20 _080C2814: cmp r0, 0x2 beq _080C285C b _080C286C _080C281A: ldr r5, _080C2840 ldrb r0, [r5, 0xA] cmp r0, 0 bne _080C286C ldrh r1, [r4, 0xC] adds r0, r1, 0x1 strh r0, [r4, 0xC] lsls r1, 24 lsrs r1, 24 movs r0, 0x1 bl sub_80C40D4 ldrb r0, [r5, 0x14] cmp r0, 0 bne _080C2844 movs r0, 0x2 strh r0, [r4, 0x8] b _080C286C .align 2, 0 _080C2840: .4byte 0x02018000 _080C2844: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080C286C _080C284C: ldr r0, _080C2858 ldrb r0, [r0, 0x14] cmp r0, 0 bne _080C286C strh r0, [r4, 0x8] b _080C286C .align 2, 0 _080C2858: .4byte 0x02018000 _080C285C: movs r0, 0x88 lsls r0, 3 bl sub_80C3520 movs r0, 0 strh r0, [r4, 0x8] ldr r0, _080C2874 str r0, [r4] _080C286C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C2874: .4byte sub_80C2878 thumb_func_end sub_80C27EC thumb_func_start sub_80C2878 sub_80C2878: @ 80C2878 push {r4-r7,lr} sub sp, 0x64 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080C28A0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0x5 bls _080C2896 b _080C2A80 _080C2896: lsls r0, 2 ldr r1, _080C28A4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C28A0: .4byte 0x03004b20 _080C28A4: .4byte _080C28A8 .align 2, 0 _080C28A8: .4byte _080C28C0 .4byte _080C28E0 .4byte _080C28FE .4byte _080C2938 .4byte _080C299C .4byte _080C2A70 _080C28C0: ldr r0, _080C28DC ldrb r0, [r0, 0x4] cmp r0, 0 beq _080C28CA b _080C2A80 _080C28CA: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r2 ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _080C2A80 .align 2, 0 _080C28DC: .4byte 0x02018000 _080C28E0: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r1, r0, r2 ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F beq _080C28F8 b _080C2A80 _080C28F8: movs r0, 0 strh r0, [r1, 0xA] b _080C2A4A _080C28FE: movs r4, 0 lsls r6, r5, 2 ldr r7, _080C292C _080C2904: ldr r0, _080C2930 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r7 ldr r0, _080C2934 adds r0, r4, r0 ldrb r0, [r0] strh r0, [r1, 0x8] strh r4, [r1, 0xA] adds r4, 0x1 cmp r4, 0x3 ble _080C2904 b _080C2A42 .align 2, 0 _080C292C: .4byte 0x03004b20 _080C2930: .4byte sub_80C3A5C _080C2934: .4byte 0x02038690 _080C2938: ldr r0, _080C2990 ldrb r0, [r0, 0x5] cmp r0, 0x4 beq _080C2942 b _080C2A80 _080C2942: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r2 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F beq _080C295A b _080C2A80 _080C295A: movs r0, 0 strh r0, [r4, 0xA] ldr r0, _080C2994 movs r1, 0xA bl CreateTask ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r4, 0 ldr r1, _080C2998 ldrb r0, [r1] cmp r0, 0 beq _080C2984 _080C2976: adds r4, 0x1 cmp r4, 0x3 bgt _080C2984 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _080C2976 _080C2984: lsls r0, r4, 24 lsrs r0, 24 movs r1, 0xE bl sub_80C3E60 b _080C2A80 .align 2, 0 _080C2990: .4byte 0x02018000 _080C2994: .4byte sub_80C3B30 _080C2998: .4byte 0x02038690 _080C299C: lsls r1, r5, 2 adds r0, r1, r5 lsls r0, 3 adds r2, r0, r2 ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 adds r6, r1, 0 cmp r0, 0x15 bne _080C2A80 movs r0, 0 strh r0, [r2, 0xA] movs r4, 0 ldr r2, _080C29F4 ldrb r0, [r2] ldr r1, _080C29F8 ldr r3, _080C29FC cmp r0, 0 beq _080C29D4 _080C29C6: adds r4, 0x1 cmp r4, 0x3 bgt _080C29D4 adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 bne _080C29C6 _080C29D4: ldrb r1, [r1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C2A04 lsls r1, r4, 3 subs r1, r4 lsls r1, 2 ldr r0, _080C2A00 adds r1, r0 adds r0, r3, 0 bl StringCopy lsls r4, 6 b _080C2A10 .align 2, 0 _080C29F4: .4byte 0x02038690 _080C29F8: .4byte 0x0203869a _080C29FC: .4byte 0x020231cc _080C2A00: .4byte 0x03002978 _080C2A04: lsls r4, 6 ldr r1, _080C2A54 adds r1, r4, r1 adds r0, r3, 0 bl StringCopy _080C2A10: ldr r0, _080C2A58 ldr r1, _080C2A5C adds r1, r4, r1 bl StringCopy ldr r1, _080C2A60 mov r0, sp bl StringExpandPlaceholders ldr r0, _080C2A64 ldrb r1, [r0] mov r0, sp bl sub_80C3158 mov r0, sp bl sub_80C34AC lsls r0, 16 asrs r0, 16 ldr r2, _080C2A68 movs r3, 0x88 lsls r3, 3 movs r1, 0x90 bl sub_80C34CC _080C2A42: ldr r0, _080C2A6C adds r1, r6, r5 lsls r1, 3 adds r1, r0 _080C2A4A: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _080C2A80 .align 2, 0 _080C2A54: .4byte 0x0203857d _080C2A58: .4byte 0x020232cc _080C2A5C: .4byte 0x02038572 _080C2A60: .4byte gUnknown_0842CEA2 _080C2A64: .4byte 0x02018000 _080C2A68: .4byte 0x0000ffff _080C2A6C: .4byte 0x03004b20 _080C2A70: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r2 movs r1, 0 strh r1, [r0, 0x8] ldr r1, _080C2A88 str r1, [r0] _080C2A80: add sp, 0x64 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C2A88: .4byte sub_80C2A8C thumb_func_end sub_80C2878 thumb_func_start sub_80C2A8C sub_80C2A8C: @ 80C2A8C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _080C2ABC lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r4, r1, 0 cmp r0, 0x5 bls _080C2AB2 b _080C2D04 _080C2AB2: lsls r0, 2 ldr r1, _080C2AC0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C2ABC: .4byte 0x03004b20 _080C2AC0: .4byte _080C2AC4 .align 2, 0 _080C2AC4: .4byte _080C2ADC .4byte _080C2C04 .4byte _080C2C54 .4byte _080C2C64 .4byte _080C2CA8 .4byte _080C2CE8 _080C2ADC: ldr r1, _080C2BC4 movs r0, 0xF0 strh r0, [r1] ldr r1, _080C2BC8 ldr r3, _080C2BCC adds r0, r3, 0 strh r0, [r1] movs r1, 0 ldr r3, _080C2BD0 ldrb r0, [r3] lsls r4, r7, 2 mov r10, r4 ldr r2, _080C2BD4 ldr r5, _080C2BD8 mov r12, r5 ldr r4, _080C2BDC mov r8, r4 ldr r5, _080C2BE0 mov r9, r5 cmp r0, 0 beq _080C2B14 _080C2B06: adds r1, 0x1 cmp r1, 0x3 bgt _080C2B14 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _080C2B06 _080C2B14: lsls r1, 6 adds r0, r1, r2 ldrh r6, [r0] adds r0, r2, 0 adds r0, 0x38 adds r0, r1, r0 ldr r4, [r0] adds r0, r2, 0 adds r0, 0x3C adds r1, r0 ldr r1, [r1] str r1, [sp, 0xC] lsls r0, r6, 3 add r0, r12 lsls r2, r6, 2 add r2, r8 ldrb r1, [r2] ldrb r2, [r2, 0x1] mov r5, r9 ldr r3, [r5, 0x4] str r3, [sp] str r6, [sp, 0x4] str r4, [sp, 0x8] ldr r3, _080C2BE4 bl sub_800D334 adds r0, r6, 0 ldr r1, [sp, 0xC] adds r2, r4, 0 bl sub_80409C8 adds r4, r0, 0 bl LoadCompressedObjectPalette adds r0, r6, 0 movs r1, 0x1 bl gpu_pal_obj_decompress_and_apply ldr r0, _080C2BE8 ldrh r1, [r4, 0x4] strh r1, [r0, 0x2] movs r1, 0x88 lsls r1, 1 movs r2, 0x50 movs r3, 0xA bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r5, _080C2BEC lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r3, r2, r5 strh r6, [r3, 0x30] ldrb r4, [r3, 0x5] movs r1, 0xD negs r1, r1 ands r1, r4 strb r1, [r3, 0x5] adds r5, 0x1C adds r2, r5 ldr r1, _080C2BF0 str r1, [r2] ldr r2, _080C2BE4 movs r3, 0xC0 lsls r3, 9 adds r1, r2, r3 strb r0, [r1, 0x8] ldr r0, _080C2BF4 bl LoadCompressedObjectPic ldr r0, _080C2BF8 bl LoadCompressedObjectPalette ldr r0, _080C2BFC movs r1, 0xA bl CreateTask ldr r0, _080C2C00 mov r4, r10 adds r1, r4, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _080C2D04 .align 2, 0 _080C2BC4: .4byte 0x030042c4 _080C2BC8: .4byte 0x03004240 _080C2BCC: .4byte 0x00005050 _080C2BD0: .4byte 0x02038690 _080C2BD4: .4byte 0x02038570 _080C2BD8: .4byte gMonFrontPicTable _080C2BDC: .4byte gMonFrontPicCoords _080C2BE0: .4byte gUnknown_081FAF4C _080C2BE4: .4byte 0x02000000 _080C2BE8: .4byte 0x02024e8c _080C2BEC: .4byte 0x02020004 _080C2BF0: .4byte sub_80C3C44 _080C2BF4: .4byte gUnknown_083D17CC _080C2BF8: .4byte gUnknown_083D17D4 _080C2BFC: .4byte sub_80C3D04 _080C2C00: .4byte 0x03004b20 _080C2C04: lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r4, r0, r4 ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080C2D04 movs r0, 0 strh r0, [r4, 0xE] ldrh r0, [r4, 0xC] adds r0, 0x2 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x20 ble _080C2C30 movs r0, 0x20 strh r0, [r4, 0xC] _080C2C30: ldrb r2, [r4, 0xC] ldr r3, _080C2C50 movs r0, 0x50 subs r0, r2 lsls r0, 8 adds r1, r2, 0 adds r1, 0x50 orrs r0, r1 strh r0, [r3] cmp r2, 0x20 bne _080C2D04 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080C2D04 .align 2, 0 _080C2C50: .4byte 0x03004240 _080C2C54: ldr r0, _080C2C60 ldrb r0, [r0, 0x6] cmp r0, 0x1 bne _080C2D04 b _080C2CD0 .align 2, 0 _080C2C60: .4byte 0x02018000 _080C2C64: lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r3, r0, r4 ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x79 bne _080C2D04 movs r0, 0 strh r0, [r3, 0xA] ldr r2, _080C2C9C ldr r0, _080C2CA0 ldrb r1, [r0, 0x8] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _080C2CA4 str r1, [r0] ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] b _080C2D04 .align 2, 0 _080C2C9C: .4byte 0x02020004 _080C2CA0: .4byte 0x02018000 _080C2CA4: .4byte sub_80C3CB8 _080C2CA8: ldr r0, _080C2CE0 ldrb r0, [r0, 0x6] cmp r0, 0x2 bne _080C2D04 ldr r3, _080C2CE4 ldrh r0, [r3] lsrs r2, r0, 8 adds r0, r2, 0x2 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x50 bls _080C2CC2 movs r2, 0x50 _080C2CC2: lsls r1, r2, 8 movs r0, 0xA0 subs r0, r2 orrs r1, r0 strh r1, [r3] cmp r2, 0x50 bne _080C2D04 _080C2CD0: lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r4 ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _080C2D04 .align 2, 0 _080C2CE0: .4byte 0x02018000 _080C2CE4: .4byte 0x03004240 _080C2CE8: ldr r2, _080C2D14 ldrb r0, [r2, 0x6] cmp r0, 0x2 bne _080C2D04 movs r1, 0 movs r0, 0x1 strb r0, [r2, 0x9] lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r4 strh r1, [r0, 0x8] ldr r1, _080C2D18 str r1, [r0] _080C2D04: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C2D14: .4byte 0x02018000 _080C2D18: .4byte sub_80C2D1C thumb_func_end sub_80C2A8C thumb_func_start sub_80C2D1C sub_80C2D1C: @ 80C2D1C push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r0, _080C2D6C ldrh r1, [r0, 0x2E] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _080C2D66 ldr r0, _080C2D70 ldrb r1, [r0] adds r0, r2, 0 ands r0, r1 lsls r6, r7, 2 cmp r0, 0 bne _080C2D5A ldr r5, _080C2D74 movs r4, 0x3 _080C2D42: ldrh r0, [r5] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x2 bl sub_8090D90 adds r5, 0x40 subs r4, 0x1 cmp r4, 0 bge _080C2D42 _080C2D5A: ldr r0, _080C2D78 adds r1, r6, r7 lsls r1, 3 adds r1, r0 ldr r0, _080C2D7C str r0, [r1] _080C2D66: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C2D6C: .4byte 0x03001770 _080C2D70: .4byte 0x0203869a _080C2D74: .4byte 0x02038570 _080C2D78: .4byte 0x03004b20 _080C2D7C: .4byte sub_80C2D80 thumb_func_end sub_80C2D1C thumb_func_start sub_80C2D80 sub_80C2D80: @ 80C2D80 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080C2DAC ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C2DBC ldr r0, _080C2DB0 bl sub_80C3698 bl sub_800832C ldr r1, _080C2DB4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C2DB8 str r1, [r0] b _080C2DCA .align 2, 0 _080C2DAC: .4byte 0x0203869a _080C2DB0: .4byte gUnknown_0842CEAF _080C2DB4: .4byte 0x03004b20 _080C2DB8: .4byte sub_80C2DD8 _080C2DBC: ldr r0, _080C2DD0 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080C2DD4 str r0, [r1] _080C2DCA: pop {r4} pop {r0} bx r0 .align 2, 0 _080C2DD0: .4byte 0x03004b20 _080C2DD4: .4byte sub_80C2E14 thumb_func_end sub_80C2D80 thumb_func_start sub_80C2DD8 sub_80C2DD8: @ 80C2DD8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080C2E04 ldrb r1, [r0] cmp r1, 0 bne _080C2DFC ldr r0, _080C2E08 strb r1, [r0] bl sub_80C3764 ldr r1, _080C2E0C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C2E10 str r1, [r0] _080C2DFC: pop {r4} pop {r0} bx r0 .align 2, 0 _080C2E04: .4byte 0x03002fa4 _080C2E08: .4byte 0x0203869a _080C2E0C: .4byte 0x03004b20 _080C2E10: .4byte sub_80C2E14 thumb_func_end sub_80C2DD8 thumb_func_start sub_80C2E14 sub_80C2E14: @ 80C2E14 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r1, _080C2E80 ldr r0, _080C2E84 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] bl sub_80BE284 movs r0, 0x2 bl sub_810FB10 ldr r0, _080C2E88 ldrb r0, [r0] bl sub_80B2A7C movs r0, 0xFE bl sub_80B2A7C ldr r4, _080C2E8C ldr r0, _080C2E90 adds r1, r4, r0 movs r6, 0 movs r0, 0x1 strb r0, [r1] movs r0, 0xFE movs r1, 0 bl sub_80B2C4C ldr r1, _080C2E94 adds r4, r1 strb r0, [r4] str r6, [sp] movs r0, 0xFF movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginHardwarePaletteFade ldr r1, _080C2E98 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080C2E9C str r1, [r0] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C2E80: .4byte 0x02038690 _080C2E84: .4byte 0x02038695 _080C2E88: .4byte 0x0203869e _080C2E8C: .4byte 0x02000000 _080C2E90: .4byte 0x00015ddf _080C2E94: .4byte 0x00015dde _080C2E98: .4byte 0x03004b20 _080C2E9C: .4byte sub_80C2EA0 thumb_func_end sub_80C2E14 thumb_func_start sub_80C2EA0 sub_80C2EA0: @ 80C2EA0 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 adds r5, r2, 0 ldr r0, _080C2ED8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 bne _080C2F18 ldr r1, _080C2EDC lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 bne _080C2EE8 ldr r0, _080C2EE0 ldrb r0, [r0, 0x3] bl DestroyTask ldr r0, _080C2EE4 b _080C2EEE .align 2, 0 _080C2ED8: .4byte 0x0202f388 _080C2EDC: .4byte 0x03004b20 _080C2EE0: .4byte 0x02018000 _080C2EE4: .4byte 0x0000ffff _080C2EE8: cmp r0, 0x1 bne _080C2F04 ldr r0, _080C2F00 _080C2EEE: movs r1, 0x10 movs r2, 0 bl BlendPalettes ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] b _080C2F18 .align 2, 0 _080C2F00: .4byte 0xffff0000 _080C2F04: ldr r0, _080C2F20 strh r3, [r0] adds r0, 0x4 strh r3, [r0] adds r0, r5, 0 bl DestroyTask ldr r0, _080C2F24 bl SetMainCallback2 _080C2F18: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C2F20: .4byte REG_BLDCNT _080C2F24: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end sub_80C2EA0 thumb_func_start sub_80C2F28 sub_80C2F28: @ 80C2F28 push {r4,r5,lr} ldr r2, _080C2F5C ldrh r3, [r2] adds r0, r3, 0x2 strh r0, [r2] ldr r4, _080C2F60 ldrh r5, [r4] adds r1, r5, 0x1 strh r1, [r4] lsls r0, 16 lsrs r0, 16 cmp r0, 0xFF bls _080C2F48 adds r0, r3, 0 subs r0, 0xFD strh r0, [r2] _080C2F48: lsls r0, r1, 16 lsrs r0, 16 cmp r0, 0xFF bls _080C2F56 adds r0, r5, 0 subs r0, 0xFE strh r0, [r4] _080C2F56: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C2F5C: .4byte 0x030041b0 _080C2F60: .4byte 0x030041b8 thumb_func_end sub_80C2F28 thumb_func_start sub_80C2F64 sub_80C2F64: @ 80C2F64 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080C2F94 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r2, r0, r1 ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _080C2FE6 movs r0, 0 strh r0, [r2, 0x8] movs r3, 0xC ldrsh r0, [r2, r3] cmp r0, 0 bne _080C2F98 ldrh r0, [r2, 0xA] adds r0, 0x1 b _080C2F9C .align 2, 0 _080C2F94: .4byte 0x03004b20 _080C2F98: ldrh r0, [r2, 0xA] subs r0, 0x1 _080C2F9C: strh r0, [r2, 0xA] lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r1, r0, r1 movs r2, 0xA ldrsh r0, [r1, r2] cmp r0, 0x10 bne _080C2FB2 movs r0, 0x1 b _080C2FB6 _080C2FB2: cmp r0, 0 bne _080C2FB8 _080C2FB6: strh r0, [r1, 0xC] _080C2FB8: ldr r0, _080C3000 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 ldrb r2, [r4, 0xA] ldr r3, _080C3004 movs r0, 0x6B movs r1, 0x1 bl BlendPalette ldrb r2, [r4, 0xA] ldr r3, _080C3008 movs r0, 0x68 movs r1, 0x1 bl BlendPalette ldrb r2, [r4, 0xA] ldr r3, _080C300C movs r0, 0x6E movs r1, 0x1 bl BlendPalette _080C2FE6: ldr r1, _080C3000 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r3, 0xA ldrsh r4, [r0, r3] cmp r4, 0 bne _080C3014 ldr r0, _080C3010 strb r4, [r0, 0xA] b _080C301A .align 2, 0 _080C3000: .4byte 0x03004b20 _080C3004: .4byte 0x00002ede _080C3008: .4byte 0x00007fff _080C300C: .4byte 0x000077be _080C3010: .4byte 0x02018000 _080C3014: ldr r1, _080C3020 movs r0, 0x1 strb r0, [r1, 0xA] _080C301A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C3020: .4byte 0x02018000 thumb_func_end sub_80C2F64 thumb_func_start sub_80C3024 sub_80C3024: @ 80C3024 push {r4-r6,lr} ldr r6, [sp, 0x10] lsls r0, 16 lsrs r0, 16 lsls r1, 24 lsrs r4, r1, 24 lsls r2, 24 lsrs r5, r2, 24 lsls r3, 24 cmp r3, 0 beq _080C30B0 adds r1, r6, 0 bl sub_809D4F4 lsls r1, r5, 9 adds r0, r1 adds r0, 0x80 lsls r1, r4, 9 ldr r2, _080C30A0 adds r1, r2 ldr r2, _080C30A4 str r0, [r2] str r1, [r2, 0x4] ldr r0, _080C30A8 str r0, [r2, 0x8] ldr r0, [r2, 0x8] adds r1, r4, 0 adds r1, 0xA lsls r1, 28 lsls r0, r4, 20 movs r2, 0x80 lsls r2, 18 adds r0, r2 orrs r0, r1 lsrs r1, r0, 16 lsls r0, r4, 1 adds r0, r4 lsls r0, 21 movs r2, 0x83 lsls r2, 16 adds r0, r2 lsrs r5, r0, 16 movs r2, 0 ldr r6, _080C30AC _080C307C: lsls r0, r2, 5 adds r4, r2, 0x1 adds r0, r5 movs r3, 0x3 lsls r0, 1 adds r2, r0, r6 _080C3088: strh r1, [r2] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 adds r2, 0x2 subs r3, 0x1 cmp r3, 0 bge _080C3088 adds r2, r4, 0 cmp r2, 0x2 ble _080C307C b _080C30CA .align 2, 0 _080C30A0: .4byte 0x06004000 _080C30A4: .4byte 0x040000d4 _080C30A8: .4byte 0x84000060 _080C30AC: .4byte 0x0600c000 _080C30B0: adds r1, r6, 0 bl sub_809D4F4 lsls r1, r5, 9 adds r0, r1 adds r0, 0x80 lsls r1, r4, 9 ldr r2, _080C30D0 adds r1, r2 movs r2, 0xC0 lsls r2, 1 bl RequestSpriteCopy _080C30CA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C30D0: .4byte 0x06004000 thumb_func_end sub_80C3024 thumb_func_start sub_80C30D4 sub_80C30D4: @ 80C30D4 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r6, r1, 24 movs r5, 0 ldr r4, _080C3108 _080C30E4: ldrh r0, [r4] lsls r1, r5, 24 lsrs r1, 24 ldr r2, [r4, 0x38] str r2, [sp] adds r2, r7, 0 adds r3, r6, 0 bl sub_80C3024 adds r4, 0x40 adds r5, 0x1 cmp r5, 0x3 ble _080C30E4 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C3108: .4byte 0x02038570 thumb_func_end sub_80C30D4 thumb_func_start sub_80C310C sub_80C310C: @ 80C310C push {r4-r6,lr} movs r4, 0 ldr r6, _080C314C movs r5, 0xA0 lsls r5, 16 _080C3116: ldr r1, _080C3150 lsls r0, r4, 6 adds r0, r1 ldrh r0, [r0] movs r1, 0 bl mon_icon_convert_unown_species_id lsls r0, 16 lsrs r0, 16 adds r0, r6 ldrb r0, [r0] lsls r0, 5 ldr r1, _080C3154 adds r0, r1 lsrs r1, r5, 16 movs r2, 0x20 bl LoadPalette movs r0, 0x80 lsls r0, 13 adds r5, r0 adds r4, 0x1 cmp r4, 0x3 ble _080C3116 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C314C: .4byte gMonIconPaletteIndices _080C3150: .4byte 0x02038570 _080C3154: .4byte gMonIconPalettes thumb_func_end sub_80C310C thumb_func_start sub_80C3158 sub_80C3158: @ 80C3158 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C mov r9, r0 lsls r1, 24 lsrs r1, 24 lsls r2, r1, 4 adds r2, r1 lsls r2, 2 ldr r3, _080C32C0 adds r2, r3 mov r1, sp ldrh r0, [r2, 0x4] lsls r0, 22 lsrs r0, 22 strh r0, [r1] mov r4, sp movs r0, 0x2E ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x4] lsls r0, 22 lsrs r0, 22 strh r0, [r4, 0x2] movs r0, 0x30 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x4] lsls r0, 22 lsrs r0, 22 strh r0, [r4, 0x4] movs r0, 0x32 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x4] lsls r0, 22 lsrs r0, 22 strh r0, [r4, 0x6] ldr r1, _080C32C4 mov r8, r1 ldr r7, _080C32C8 ldr r2, _080C32CC ldr r6, _080C32D0 mov r1, sp movs r5, 0 add r3, sp, 0x8 movs r4, 0x3 _080C31CE: ldrh r0, [r1] lsls r0, 5 adds r0, r7 str r5, [sp, 0x8] str r3, [r2] str r0, [r2, 0x4] str r6, [r2, 0x8] ldr r0, [r2, 0x8] adds r1, 0x2 subs r4, 0x1 cmp r4, 0 bge _080C31CE mov r0, r8 mov r1, r9 bl GetStringWidthGivenWindowConfig lsls r0, 24 lsrs r5, r0, 24 ldr r2, _080C32D4 ldr r1, _080C32D8 adds r0, r2, 0 bl StringCopy adds r2, r0, 0 mvns r0, r5 adds r1, r0, 0x1 movs r0, 0x7 ands r1, r0 cmp r1, 0 beq _080C3218 movs r0, 0xFC strb r0, [r2] movs r0, 0x11 strb r0, [r2, 0x1] lsrs r0, r1, 1 strb r0, [r2, 0x2] adds r2, 0x3 _080C3218: adds r6, r5, 0x7 movs r1, 0x8 negs r1, r1 adds r0, r1, 0 ands r6, r0 lsls r6, 24 lsrs r5, r6, 24 adds r0, r2, 0 mov r1, r9 bl StringCopy adds r2, r0, 0 movs r0, 0xFC strb r0, [r2] movs r0, 0x13 strb r0, [r2, 0x1] strb r5, [r2, 0x2] movs r0, 0xFF strb r0, [r2, 0x3] ldr r0, _080C32DC mov r10, r0 ldr r1, _080C32D4 bl sub_80034D4 mov r0, sp ldrh r4, [r0] lsls r4, 5 ldr r1, _080C32C8 adds r7, r4, r1 ldr r0, _080C32E0 mov r9, r0 ldr r1, _080C32E4 mov r8, r1 adds r1, r7, 0 mov r2, r8 bl CpuSet mov r5, r9 adds r5, 0x80 ldr r0, _080C32E8 adds r1, r4, r0 adds r0, r5, 0 mov r2, r8 bl CpuSet ldr r0, _080C32EC adds r1, r4, r0 adds r0, r5, 0 mov r2, r8 bl CpuSet mov r0, r9 adds r0, 0x40 ldr r1, _080C32F0 adds r4, r1 adds r1, r4, 0 mov r2, r8 bl CpuSet lsrs r5, r6, 27 movs r4, 0 cmp r4, r5 bgt _080C3382 mov r6, sp mov r0, r10 adds r0, 0x20 str r0, [sp, 0xC] mov r1, r10 str r1, [sp, 0x10] ldr r0, _080C32F4 str r0, [sp, 0x14] ldr r1, _080C32F8 str r1, [sp, 0x18] ldr r0, _080C32FC mov r10, r0 ldr r1, _080C3300 mov r9, r1 _080C32B2: cmp r4, 0x6 bgt _080C3304 ldrh r0, [r6] lsls r0, 5 mov r1, r9 b _080C3322 .align 2, 0 _080C32C0: .4byte 0x02020004 _080C32C4: .4byte gWindowConfig_81E7278 _080C32C8: .4byte 0x06010000 _080C32CC: .4byte 0x040000d4 _080C32D0: .4byte 0x85000100 _080C32D4: .4byte 0x020238cc _080C32D8: .4byte gUnknown_083D17E2 _080C32DC: .4byte 0x02018068 _080C32E0: .4byte gUnknown_083D1624 _080C32E4: .4byte REG_BG0CNT _080C32E8: .4byte 0x06010100 _080C32EC: .4byte 0x06010200 _080C32F0: .4byte 0x06010300 _080C32F4: .4byte 0x0600fd20 _080C32F8: .4byte 0x0600fe20 _080C32FC: .4byte 0x0600ff20 _080C3300: .4byte 0x06010020 _080C3304: cmp r4, 0xE bgt _080C3310 ldrh r0, [r6, 0x2] lsls r0, 5 mov r1, r10 b _080C3322 _080C3310: cmp r4, 0x16 bgt _080C331C ldrh r0, [r6, 0x4] lsls r0, 5 ldr r1, [sp, 0x18] b _080C3322 _080C331C: ldrh r0, [r6, 0x6] lsls r0, 5 ldr r1, [sp, 0x14] _080C3322: adds r7, r0, r1 cmp r4, r5 beq _080C3382 ldr r0, _080C33D0 adds r1, r7, 0 mov r2, r8 bl CpuSet movs r0, 0xC0 lsls r0, 2 adds r1, r7, r0 ldr r0, _080C33D0 adds r0, 0x20 mov r2, r8 bl CpuSet movs r0, 0x80 lsls r0, 1 adds r1, r7, r0 ldr r0, [sp, 0x10] mov r2, r8 bl CpuSet movs r0, 0x80 lsls r0, 2 adds r1, r7, r0 ldr r0, [sp, 0xC] mov r2, r8 bl CpuSet ldr r1, [sp, 0xC] adds r1, 0x40 str r1, [sp, 0xC] ldr r0, [sp, 0x10] adds r0, 0x40 str r0, [sp, 0x10] ldr r1, [sp, 0x14] adds r1, 0x20 str r1, [sp, 0x14] ldr r0, [sp, 0x18] adds r0, 0x20 str r0, [sp, 0x18] movs r1, 0x20 add r10, r1 add r9, r1 adds r4, 0x1 cmp r4, r5 ble _080C32B2 _080C3382: ldr r4, _080C33D4 ldr r5, _080C33D8 adds r0, r4, 0 adds r1, r7, 0 adds r2, r5, 0 bl CpuSet adds r6, r4, 0 adds r6, 0x80 movs r0, 0x80 lsls r0, 1 adds r1, r7, r0 adds r0, r6, 0 adds r2, r5, 0 bl CpuSet movs r0, 0x80 lsls r0, 2 adds r1, r7, r0 adds r0, r6, 0 adds r2, r5, 0 bl CpuSet adds r4, 0x40 movs r0, 0xC0 lsls r0, 2 adds r1, r7, r0 adds r0, r4, 0 adds r2, r5, 0 bl CpuSet add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C33D0: .4byte gUnknown_083D16E4 _080C33D4: .4byte gUnknown_083D1644 _080C33D8: .4byte REG_BG0CNT thumb_func_end sub_80C3158 thumb_func_start sub_80C33DC sub_80C33DC: @ 80C33DC push {r4-r6,lr} sub sp, 0x20 mov r1, sp ldr r0, _080C3498 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} add r5, sp, 0x18 ldr r6, _080C349C movs r4, 0x7 _080C33F2: adds r0, r6, 0 bl LoadSpriteSheet adds r6, 0x8 subs r4, 0x1 cmp r4, 0 bge _080C33F2 ldr r0, _080C34A0 bl LoadSpritePalette movs r4, 0 mov r6, sp _080C340A: mov r0, sp movs r1, 0x88 lsls r1, 1 movs r2, 0x90 movs r3, 0xA bl CreateSprite adds r1, r5, r4 strb r0, [r1] ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] adds r4, 0x1 cmp r4, 0x7 ble _080C340A ldr r2, _080C34A4 ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r5, 0x1] movs r3, 0 strh r1, [r0, 0x2E] ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r5, 0x2] strh r1, [r0, 0x30] ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r5, 0x3] strh r1, [r0, 0x32] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r5, 0x5] strh r1, [r0, 0x2E] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r5, 0x6] strh r1, [r0, 0x30] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r5, 0x7] strh r1, [r0, 0x32] ldr r1, _080C34A8 ldrb r0, [r5] strb r0, [r1] strb r3, [r1, 0x4] ldrb r0, [r5, 0x4] strb r0, [r1, 0x1] bl sub_80C3764 add sp, 0x20 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C3498: .4byte gSpriteTemplate_83D174C _080C349C: .4byte gUnknown_083D1764 _080C34A0: .4byte gUnknown_083D17A4 _080C34A4: .4byte 0x02020004 _080C34A8: .4byte 0x02018000 thumb_func_end sub_80C33DC thumb_func_start sub_80C34AC sub_80C34AC: @ 80C34AC push {lr} bl StringLength lsls r0, 16 lsrs r0, 16 lsls r1, r0, 1 adds r1, r0 lsls r1, 25 lsrs r1, 25 movs r0, 0x70 subs r0, r1 lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_80C34AC thumb_func_start sub_80C34CC sub_80C34CC: @ 80C34CC push {r4-r6,lr} mov r6, r8 push {r6} ldr r4, _080C3514 mov r8, r4 ldrb r5, [r4] lsls r4, r5, 4 adds r4, r5 lsls r4, 2 ldr r5, _080C3518 adds r4, r5 movs r6, 0 movs r5, 0x88 lsls r5, 1 strh r5, [r4, 0x20] strh r1, [r4, 0x22] strh r6, [r4, 0x24] strh r6, [r4, 0x26] lsls r0, 16 asrs r0, 16 adds r0, 0x20 strh r0, [r4, 0x36] strh r2, [r4, 0x38] strh r3, [r4, 0x3A] strh r6, [r4, 0x3C] ldr r0, _080C351C str r0, [r4, 0x1C] movs r0, 0x1 mov r1, r8 strb r0, [r1, 0x4] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C3514: .4byte 0x02018000 _080C3518: .4byte 0x02020004 _080C351C: .4byte sub_80C3588 thumb_func_end sub_80C34CC thumb_func_start sub_80C3520 sub_80C3520: @ 80C3520 push {r4,r5,lr} ldr r4, _080C3558 ldrb r2, [r4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 ldr r2, _080C355C adds r1, r2 ldrh r2, [r1, 0x24] ldrh r3, [r1, 0x20] adds r2, r3 movs r3, 0 strh r2, [r1, 0x20] ldrh r2, [r1, 0x26] ldrh r5, [r1, 0x22] adds r2, r5 strh r2, [r1, 0x22] strh r3, [r1, 0x26] strh r3, [r1, 0x24] strh r0, [r1, 0x3A] strh r3, [r1, 0x3C] ldr r0, _080C3560 str r0, [r1, 0x1C] movs r0, 0x3 strb r0, [r4, 0x4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C3558: .4byte 0x02018000 _080C355C: .4byte 0x02020004 _080C3560: .4byte sub_80C3630 thumb_func_end sub_80C3520 thumb_func_start sub_80C3564 sub_80C3564: @ 80C3564 movs r3, 0 movs r2, 0 movs r1, 0x88 lsls r1, 1 strh r1, [r0, 0x20] movs r1, 0x90 strh r1, [r0, 0x22] strh r2, [r0, 0x26] strh r2, [r0, 0x24] ldr r1, _080C3580 str r1, [r0, 0x1C] ldr r0, _080C3584 strb r3, [r0, 0x4] bx lr .align 2, 0 _080C3580: .4byte SpriteCallbackDummy _080C3584: .4byte 0x02018000 thumb_func_end sub_80C3564 thumb_func_start sub_80C3588 sub_80C3588: @ 80C3588 push {r4-r7,lr} adds r3, r0, 0 ldrh r2, [r3, 0x3A] ldrh r0, [r3, 0x3C] adds r2, r0 lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r3, 0x20] subs r0, r1 strh r0, [r3, 0x20] movs r1, 0xFF ands r2, r1 strh r2, [r3, 0x3C] lsls r0, 16 asrs r0, 16 ldrh r2, [r3, 0x36] movs r4, 0x36 ldrsh r1, [r3, r4] cmp r0, r1 bge _080C35B2 strh r2, [r3, 0x20] _080C35B2: movs r4, 0 ldr r6, _080C35F4 movs r5, 0x40 adds r2, r3, 0 adds r2, 0x2E _080C35BC: movs r7, 0 ldrsh r0, [r2, r7] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrh r0, [r3, 0x24] ldrh r7, [r3, 0x20] adds r0, r7 adds r0, r5 strh r0, [r1, 0x20] adds r5, 0x40 adds r2, 0x2 adds r4, 0x1 cmp r4, 0x2 ble _080C35BC movs r0, 0x20 ldrsh r1, [r3, r0] movs r2, 0x36 ldrsh r0, [r3, r2] cmp r1, r0 bne _080C35EC ldr r0, _080C35F8 str r0, [r3, 0x1C] _080C35EC: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C35F4: .4byte 0x02020004 _080C35F8: .4byte sub_80C35FC thumb_func_end sub_80C3588 thumb_func_start sub_80C35FC sub_80C35FC: @ 80C35FC push {lr} adds r2, r0, 0 ldr r0, _080C3628 movs r1, 0x2 strb r1, [r0, 0x4] ldrh r3, [r2, 0x38] ldr r1, _080C362C lsrs r0, r1, 16 cmp r3, r0 beq _080C3624 subs r0, r3, 0x1 strh r0, [r2, 0x38] lsls r0, 16 asrs r0, 16 asrs r1, 16 cmp r0, r1 bne _080C3624 ldrh r0, [r2, 0x3A] bl sub_80C3520 _080C3624: pop {r0} bx r0 .align 2, 0 _080C3628: .4byte 0x02018000 _080C362C: .4byte 0xffff0000 thumb_func_end sub_80C35FC thumb_func_start sub_80C3630 sub_80C3630: @ 80C3630 push {r4-r7,lr} adds r3, r0, 0 ldrh r2, [r3, 0x3A] ldrh r0, [r3, 0x3C] adds r2, r0 lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r3, 0x20] subs r0, r1 strh r0, [r3, 0x20] movs r0, 0xFF ands r2, r0 strh r2, [r3, 0x3C] movs r4, 0 ldr r6, _080C3694 movs r5, 0x40 adds r2, r3, 0 adds r2, 0x2E _080C3654: movs r1, 0 ldrsh r0, [r2, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrh r0, [r3, 0x24] ldrh r7, [r3, 0x20] adds r0, r7 adds r0, r5 strh r0, [r1, 0x20] adds r5, 0x40 adds r2, 0x2 adds r4, 0x1 cmp r4, 0x2 ble _080C3654 movs r1, 0x20 ldrsh r0, [r3, r1] movs r2, 0x24 ldrsh r1, [r3, r2] adds r0, r1 movs r1, 0xE0 negs r1, r1 cmp r0, r1 bge _080C368C adds r0, r3, 0 bl sub_80C3564 _080C368C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C3694: .4byte 0x02020004 thumb_func_end sub_80C3630 thumb_func_start sub_80C3698 sub_80C3698: @ 80C3698 push {r4-r7,lr} adds r4, r0, 0 ldr r5, _080C374C ldrb r1, [r5, 0x1] bl sub_80C3158 adds r0, r4, 0 bl sub_80C34AC lsls r0, 16 lsrs r0, 16 ldrb r2, [r5, 0x1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 ldr r3, _080C3750 adds r4, r1, r3 adds r0, 0x20 strh r0, [r4, 0x20] movs r0, 0x50 strh r0, [r4, 0x22] adds r5, r4, 0 adds r5, 0x3E ldrb r1, [r5] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r1 strb r0, [r5] movs r5, 0 adds r6, r3, 0 mov r12, r2 movs r3, 0x40 _080C36DA: lsls r0, r5, 1 adds r2, r4, 0 adds r2, 0x2E adds r2, r0 movs r1, 0 ldrsh r0, [r2, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrh r0, [r4, 0x24] ldrh r7, [r4, 0x20] adds r0, r7 adds r0, r3 strh r0, [r1, 0x20] movs r0, 0 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r1, [r4, 0x22] strh r1, [r0, 0x22] movs r1, 0 ldrsh r0, [r2, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 adds r1, 0x3E ldrb r2, [r1] mov r0, r12 ands r0, r2 strb r0, [r1] adds r3, 0x40 adds r5, 0x1 cmp r5, 0x2 ble _080C36DA ldr r1, _080C3754 movs r0, 0xF0 strh r0, [r1] ldr r2, _080C3758 ldrh r1, [r4, 0x22] adds r0, r1, 0 subs r0, 0x10 lsls r0, 8 adds r1, 0x10 orrs r0, r1 strh r0, [r2] ldr r1, _080C375C ldr r2, _080C3760 adds r0, r2, 0 strh r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C374C: .4byte 0x02018000 _080C3750: .4byte 0x02020004 _080C3754: .4byte 0x030042c4 _080C3758: .4byte 0x03004240 _080C375C: .4byte REG_WININ _080C3760: .4byte 0x00003f3e thumb_func_end sub_80C3698 thumb_func_start sub_80C3764 sub_80C3764: @ 80C3764 push {r4-r7,lr} ldr r0, _080C37C8 ldrb r0, [r0, 0x1] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r3, _080C37CC adds r2, r3 movs r0, 0x3E adds r0, r2 mov r12, r0 ldrb r0, [r0] movs r1, 0x4 orrs r0, r1 mov r1, r12 strb r0, [r1] ldr r7, _080C37D0 ldr r6, _080C37D4 adds r5, r3, 0 movs r4, 0x4 adds r2, 0x2E movs r3, 0x2 _080C3790: movs r1, 0 ldrsh r0, [r2, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r0, [r1] orrs r0, r4 strb r0, [r1] adds r2, 0x2 subs r3, 0x1 cmp r3, 0 bge _080C3790 movs r1, 0 strh r1, [r7] strh r1, [r6] ldr r0, _080C37D8 strh r1, [r0] adds r0, 0x4 strh r1, [r0] ldr r1, _080C37DC ldr r2, _080C37E0 adds r0, r2, 0 strh r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C37C8: .4byte 0x02018000 _080C37CC: .4byte 0x02020004 _080C37D0: .4byte 0x030042c4 _080C37D4: .4byte 0x03004240 _080C37D8: .4byte REG_WIN0H _080C37DC: .4byte REG_WININ _080C37E0: .4byte 0x00003f3f thumb_func_end sub_80C3764 thumb_func_start sub_80C37E4 sub_80C37E4: @ 80C37E4 push {r4-r6,lr} sub sp, 0x10 movs r5, 0x1 movs r4, 0 ldr r0, _080C3808 ldrb r0, [r0] adds r1, r5, 0 ands r1, r0 cmp r1, 0 beq _080C3814 ldr r0, _080C380C ldr r3, _080C3810 movs r1, 0x9 str r1, [sp] movs r2, 0x2 str r2, [sp, 0x4] b _080C386A .align 2, 0 _080C3808: .4byte 0x0203869a _080C380C: .4byte 0x0600e000 _080C3810: .4byte gUnknown_08E964B8 _080C3814: ldr r0, _080C3830 ldrh r2, [r0] cmp r2, 0 bne _080C383C movs r4, 0x1 ldr r0, _080C3834 ldr r3, _080C3838 str r2, [sp] str r2, [sp, 0x4] movs r1, 0x9 str r1, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] b _080C3870 .align 2, 0 _080C3830: .4byte 0x0203869e _080C3834: .4byte 0x0600e000 _080C3838: .4byte gUnknown_08E964B8 _080C383C: cmp r2, 0x1 bne _080C385C ldr r0, _080C3854 ldr r3, _080C3858 movs r1, 0x9 str r1, [sp] str r4, [sp, 0x4] movs r1, 0x8 str r1, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] b _080C3870 .align 2, 0 _080C3854: .4byte 0x0600e000 _080C3858: .4byte gUnknown_08E964B8 _080C385C: cmp r2, 0x2 bne _080C3884 ldr r0, _080C387C ldr r3, _080C3880 movs r1, 0x11 str r1, [sp] str r4, [sp, 0x4] _080C386A: movs r1, 0x8 str r1, [sp, 0x8] str r2, [sp, 0xC] _080C3870: movs r1, 0x5 movs r2, 0x1 bl sub_809D104 b _080C389E .align 2, 0 _080C387C: .4byte 0x0600e000 _080C3880: .4byte gUnknown_08E964B8 _080C3884: movs r4, 0x1 ldr r0, _080C38C0 ldr r3, _080C38C4 str r1, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r1, 0x9 str r1, [sp, 0x8] str r2, [sp, 0xC] movs r1, 0x5 movs r2, 0x1 bl sub_809D104 _080C389E: adds r4, 0xD ldr r0, _080C38C8 ldrh r0, [r0] cmp r0, 0 bne _080C38CC movs r6, 0 ldr r0, _080C38C0 ldr r3, _080C38C4 movs r1, 0x11 str r1, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r1, 0xA str r1, [sp, 0x8] str r2, [sp, 0xC] b _080C392A .align 2, 0 _080C38C0: .4byte 0x0600e000 _080C38C4: .4byte gUnknown_08E964B8 _080C38C8: .4byte 0x0203869c _080C38CC: cmp r0, 0x1 bne _080C38EC movs r6, 0x1 ldr r0, _080C38E4 ldr r3, _080C38E8 movs r1, 0 str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0xB b _080C3924 .align 2, 0 _080C38E4: .4byte 0x0600e000 _080C38E8: .4byte gUnknown_08E964B8 _080C38EC: cmp r0, 0x2 bne _080C3910 movs r6, 0x2 ldr r0, _080C3908 ldr r3, _080C390C movs r1, 0xB str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0xA str r1, [sp, 0x8] str r6, [sp, 0xC] b _080C392A .align 2, 0 _080C3908: .4byte 0x0600e000 _080C390C: .4byte gUnknown_08E964B8 _080C3910: cmp r0, 0x3 bne _080C393C movs r6, 0x3 ldr r0, _080C3934 ldr r3, _080C3938 movs r1, 0x15 str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0xA _080C3924: str r1, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] _080C392A: adds r1, r4, 0 adds r2, r5, 0 bl sub_809D104 b _080C395A .align 2, 0 _080C3934: .4byte 0x0600e000 _080C3938: .4byte gUnknown_08E964B8 _080C393C: movs r6, 0x4 ldr r0, _080C3984 ldr r3, _080C3988 movs r1, 0 str r1, [sp] movs r1, 0x6 str r1, [sp, 0x4] movs r1, 0xA str r1, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] adds r1, r4, 0 adds r2, r5, 0 bl sub_809D104 _080C395A: ldr r5, _080C398C lsls r4, r6, 12 ldr r2, _080C3984 movs r3, 0x7F _080C3962: ldrh r1, [r2] adds r0, r5, 0 ands r0, r1 strh r0, [r2] ldrh r1, [r2] adds r0, r4, 0 orrs r0, r1 strh r0, [r2] adds r2, 0x2 subs r3, 0x1 cmp r3, 0 bge _080C3962 add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C3984: .4byte 0x0600e000 _080C3988: .4byte gUnknown_08E964B8 _080C398C: .4byte 0x00000fff thumb_func_end sub_80C37E4 thumb_func_start sub_80C3990 sub_80C3990: @ 80C3990 push {r4,r5,lr} lsls r0, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r1, _080C39DC lsrs r0, 23 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] lsls r4, r0, 16 adds r0, r4, 0 movs r1, 0x3F bl __udivsi3 adds r1, r0, 0 ldr r0, _080C39E0 ands r0, r1 cmp r0, 0 beq _080C39BC movs r0, 0x80 lsls r0, 9 adds r1, r0 _080C39BC: lsrs r1, 16 cmp r1, 0 bne _080C39C8 cmp r4, 0 beq _080C39C8 movs r1, 0x1 _080C39C8: cmp r5, 0 beq _080C39D2 cmp r1, 0xA bls _080C39D2 movs r1, 0xA _080C39D2: lsls r0, r1, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080C39DC: .4byte 0x02038670 _080C39E0: .4byte 0x0000ffff thumb_func_end sub_80C3990 thumb_func_start sub_80C39E4 sub_80C39E4: @ 80C39E4 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r6, r1, 24 ldr r1, _080C3A44 lsls r0, r5, 1 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] adds r7, r1, 0 cmp r0, 0 bge _080C3A00 negs r0, r0 _080C3A00: lsls r4, r0, 16 adds r0, r4, 0 movs r1, 0x50 bl __udivsi3 adds r2, r0, 0 ldr r0, _080C3A48 ands r0, r2 cmp r0, 0 beq _080C3A1A movs r0, 0x80 lsls r0, 9 adds r2, r0 _080C3A1A: lsrs r2, 16 cmp r2, 0 bne _080C3A26 cmp r4, 0 beq _080C3A26 movs r2, 0x1 _080C3A26: cmp r6, 0 beq _080C3A30 cmp r2, 0xA bls _080C3A30 movs r2, 0xA _080C3A30: lsls r0, r5, 1 adds r0, r7 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bge _080C3A4C negs r0, r2 lsls r0, 24 b _080C3A4E .align 2, 0 _080C3A44: .4byte 0x02038688 _080C3A48: .4byte 0x0000ffff _080C3A4C: lsls r0, r2, 24 _080C3A4E: lsrs r0, 24 lsls r0, 24 asrs r0, 24 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80C39E4 thumb_func_start sub_80C3A5C sub_80C3A5C: @ 80C3A5C push {r4,lr} lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 ldr r1, _080C3A90 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r3, r0, r1 ldrh r2, [r3, 0x1C] movs r1, 0x1C ldrsh r0, [r3, r1] cmp r0, 0 bne _080C3A94 movs r1, 0x8 ldrsh r0, [r3, r1] movs r1, 0x3 subs r1, r0 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 strh r0, [r3, 0x1E] adds r0, r2, 0x1 strh r0, [r3, 0x1C] b _080C3B12 .align 2, 0 _080C3A90: .4byte 0x03004b20 _080C3A94: cmp r0, 0x1 bne _080C3B12 ldrh r0, [r3, 0x1E] subs r0, 0x1 strh r0, [r3, 0x1E] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080C3B12 movs r0, 0x8 ldrsh r2, [r3, r0] lsls r2, 17 ldr r1, _080C3B18 adds r2, r1 lsrs r2, 16 movs r0, 0xA ldrsh r1, [r3, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 6 ldr r1, _080C3B1C adds r0, r1 strh r2, [r0] movs r0, 0xA ldrsh r1, [r3, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 6 ldr r1, _080C3B20 adds r0, r1 adds r1, r2, 0x1 strh r1, [r0] movs r0, 0xA ldrsh r1, [r3, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 6 ldr r1, _080C3B24 adds r0, r1 adds r1, r2, 0 adds r1, 0x10 strh r1, [r0] movs r0, 0xA ldrsh r1, [r3, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 6 ldr r1, _080C3B28 adds r0, r1 adds r2, 0x11 strh r2, [r0] ldr r1, _080C3B2C ldrb r0, [r1, 0x5] adds r0, 0x1 strb r0, [r1, 0x5] adds r0, r4, 0 bl DestroyTask movs r0, 0x18 bl audio_play _080C3B12: pop {r4} pop {r0} bx r0 .align 2, 0 _080C3B18: .4byte 0x50430000 _080C3B1C: .4byte 0x0600e142 _080C3B20: .4byte 0x0600e144 _080C3B24: .4byte 0x0600e182 _080C3B28: .4byte 0x0600e184 _080C3B2C: .4byte 0x02018000 thumb_func_end sub_80C3A5C thumb_func_start sub_80C3B30 sub_80C3B30: @ 80C3B30 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r12, r0 movs r5, 0 ldr r1, _080C3BC0 ldrb r0, [r1] ldr r2, _080C3BC4 mov r10, r2 cmp r0, 0 beq _080C3B5C _080C3B4E: adds r5, 0x1 cmp r5, 0x3 bgt _080C3B5C adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 bne _080C3B4E _080C3B5C: movs r1, 0 lsls r0, r5, 1 mov r2, r12 lsls r2, 2 mov r9, r2 adds r0, r5 lsls r0, 5 mov r8, r0 ldr r7, _080C3BC8 movs r0, 0x90 lsls r0, 8 adds r6, r0, 0 _080C3B74: lsls r0, r1, 5 adds r4, r1, 0x1 add r0, r8 movs r3, 0x1D lsls r0, 1 ldr r1, _080C3BCC adds r2, r0, r1 _080C3B82: ldrh r1, [r2] adds r0, r7, 0 ands r0, r1 orrs r0, r6 strh r0, [r2] adds r2, 0x2 subs r3, 0x1 cmp r3, 0 bge _080C3B82 adds r1, r4, 0 cmp r1, 0x2 ble _080C3B74 mov r0, r9 add r0, r12 lsls r0, 3 add r0, r10 strh r5, [r0, 0x1C] movs r1, 0x1 strh r1, [r0, 0x20] ldr r2, _080C3BD0 str r2, [r0] mov r1, r12 ldr r0, _080C3BD4 strb r1, [r0, 0x3] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C3BC0: .4byte 0x02038690 _080C3BC4: .4byte 0x03004b20 _080C3BC8: .4byte 0x00000fff _080C3BCC: .4byte 0x0600e100 _080C3BD0: .4byte sub_80C3BD8 _080C3BD4: .4byte 0x02018000 thumb_func_end sub_80C3B30 thumb_func_start sub_80C3BD8 sub_80C3BD8: @ 80C3BD8 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C3C24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x1E] adds r0, 0x1 strh r0, [r4, 0x1E] lsls r0, 16 asrs r5, r0, 16 cmp r5, 0x1 bne _080C3C3C movs r0, 0 strh r0, [r4, 0x1E] ldrh r2, [r4, 0x20] lsls r2, 24 lsrs r2, 24 ldr r3, _080C3C28 movs r0, 0x91 movs r1, 0x1 bl BlendPalette movs r1, 0x22 ldrsh r0, [r4, r1] cmp r0, 0 bne _080C3C2C ldrh r0, [r4, 0x20] adds r0, 0x1 strh r0, [r4, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 bne _080C3C3C strh r5, [r4, 0x22] b _080C3C3C .align 2, 0 _080C3C24: .4byte 0x03004b20 _080C3C28: .4byte 0x00006f8d _080C3C2C: ldrh r0, [r4, 0x20] subs r0, 0x1 strh r0, [r4, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0 bne _080C3C3C strh r0, [r4, 0x22] _080C3C3C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C3BD8 thumb_func_start sub_80C3C44 sub_80C3C44: @ 80C3C44 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x2E] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0x9 bgt _080C3C6C adds r0, r1, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _080C3CA8 ldrh r0, [r4, 0x30] movs r1, 0 bl cry_related movs r0, 0 strh r0, [r4, 0x30] b _080C3CA8 _080C3C6C: movs r0, 0xC0 lsls r0, 3 adds r2, r0, 0 ldrh r1, [r4, 0x30] adds r2, r1 lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r4, 0x20] subs r0, r1 strh r0, [r4, 0x20] movs r1, 0xFF ands r2, r1 strh r2, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x77 bgt _080C3C92 movs r0, 0x78 strh r0, [r4, 0x20] _080C3C92: movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x78 bne _080C3CA8 ldr r0, _080C3CB0 str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x30] ldr r1, _080C3CB4 movs r0, 0x1 strb r0, [r1, 0x6] _080C3CA8: pop {r4} pop {r0} bx r0 .align 2, 0 _080C3CB0: .4byte SpriteCallbackDummy _080C3CB4: .4byte 0x02018000 thumb_func_end sub_80C3C44 thumb_func_start sub_80C3CB8 sub_80C3CB8: @ 80C3CB8 push {lr} adds r3, r0, 0 movs r0, 0xC0 lsls r0, 3 adds r2, r0, 0 ldrh r0, [r3, 0x30] adds r2, r0 lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r3, 0x20] subs r0, r1 strh r0, [r3, 0x20] movs r1, 0xFF ands r2, r1 strh r2, [r3, 0x30] lsls r0, 16 asrs r0, 16 movs r1, 0x20 negs r1, r1 cmp r0, r1 bge _080C3CF8 ldr r0, _080C3CFC str r0, [r3, 0x1C] adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r1, _080C3D00 movs r0, 0x2 strb r0, [r1, 0x6] _080C3CF8: pop {r0} bx r0 .align 2, 0 _080C3CFC: .4byte SpriteCallbackDummy _080C3D00: .4byte 0x02018000 thumb_func_end sub_80C3CB8 thumb_func_start sub_80C3D04 sub_80C3D04: @ 80C3D04 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 ldr r1, _080C3DD8 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r1, r0, r1 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _080C3DBE movs r0, 0 strh r0, [r1, 0x8] ldr r0, _080C3DDC mov r8, r0 ldrb r0, [r0, 0x7] cmp r0, 0x27 bhi _080C3DBE ldr r4, _080C3DE0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xF0 bl __umodsi3 adds r1, r0, 0 subs r1, 0x14 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 movs r2, 0x2C movs r3, 0x5 bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl Random ldr r1, _080C3DE4 lsls r5, r4, 4 adds r5, r4 lsls r5, 2 adds r5, r1 lsls r0, 23 lsrs r0, 23 strh r0, [r5, 0x2E] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x18 bl __umodsi3 adds r0, 0x10 strh r0, [r5, 0x30] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xFF ands r0, r1 adds r0, 0x30 strh r0, [r5, 0x32] bl Random ldrh r6, [r5, 0x4] lsls r4, r6, 22 lsrs r4, 22 lsls r0, 16 lsrs r0, 16 movs r1, 0x11 bl __umodsi3 adds r4, r0 ldr r1, _080C3DE8 adds r0, r1, 0 ands r4, r0 ldr r0, _080C3DEC ands r0, r6 orrs r0, r4 strh r0, [r5, 0x4] mov r1, r8 ldrb r0, [r1, 0x7] adds r0, 0x1 strb r0, [r1, 0x7] _080C3DBE: ldr r0, _080C3DDC ldrb r0, [r0, 0x9] cmp r0, 0 beq _080C3DCC adds r0, r7, 0 bl DestroyTask _080C3DCC: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C3DD8: .4byte 0x03004b20 _080C3DDC: .4byte 0x02018000 _080C3DE0: .4byte gSpriteTemplate_83D17B4 _080C3DE4: .4byte 0x02020004 _080C3DE8: .4byte 0x000003ff _080C3DEC: .4byte 0xfffffc00 thumb_func_end sub_80C3D04 thumb_func_start sub_80C3DF0 sub_80C3DF0: @ 80C3DF0 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] ldrh r1, [r4, 0x34] adds r0, r1 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 24 movs r2, 0x30 ldrsh r1, [r4, r2] bl sine strh r0, [r4, 0x24] ldrh r1, [r4, 0x32] ldrh r0, [r4, 0x36] adds r1, r0 lsls r0, r1, 16 asrs r0, 24 ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] movs r0, 0xFF ands r1, r0 strh r1, [r4, 0x36] ldrh r0, [r4, 0x22] adds r0, 0x1 strh r0, [r4, 0x22] ldr r5, _080C3E5C ldrb r0, [r5, 0x9] cmp r0, 0 beq _080C3E3A adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _080C3E3A: movs r1, 0x20 ldrsh r0, [r4, r1] cmp r0, 0xF8 bgt _080C3E4A movs r2, 0x22 ldrsh r0, [r4, r2] cmp r0, 0x74 ble _080C3E56 _080C3E4A: adds r0, r4, 0 bl DestroySprite ldrb r0, [r5, 0x7] subs r0, 0x1 strb r0, [r5, 0x7] _080C3E56: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C3E5C: .4byte 0x02018000 thumb_func_end sub_80C3DF0 thumb_func_start sub_80C3E60 sub_80C3E60: @ 80C3E60 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r0, _080C3E98 movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080C3E9C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] strh r5, [r1, 0xA] ldr r0, _080C3EA0 lsls r4, 6 adds r4, r0 ldrh r0, [r4] strh r0, [r1, 0xC] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C3E98: .4byte sub_80C3EA4 _080C3E9C: .4byte 0x03004b20 _080C3EA0: .4byte 0x02038570 thumb_func_end sub_80C3E60 thumb_func_start sub_80C3EA4 sub_80C3EA4: @ 80C3EA4 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, _080C3EF8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrb r5, [r4, 0x8] ldrh r0, [r4, 0x1C] adds r1, r0, 0x1 strh r1, [r4, 0x1C] lsls r0, 16 asrs r0, 16 movs r2, 0xA ldrsh r1, [r4, r2] cmp r0, r1 bne _080C3EEE movs r0, 0 strh r0, [r4, 0x1C] ldrh r0, [r4, 0xC] ldrb r2, [r4, 0x1E] ldr r1, _080C3EFC lsls r3, r5, 6 adds r1, 0x38 adds r3, r1 ldr r1, [r3] str r1, [sp] adds r1, r5, 0 movs r3, 0 bl sub_80C3024 ldrh r0, [r4, 0x1E] movs r1, 0x1 eors r0, r1 strh r0, [r4, 0x1E] _080C3EEE: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C3EF8: .4byte 0x03004b20 _080C3EFC: .4byte 0x02038570 thumb_func_end sub_80C3EA4 thumb_func_start sub_80C3F00 sub_80C3F00: @ 80C3F00 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _080C4098 ldrh r2, [r0] adds r4, r0, 0 adds r3, r4, 0x2 movs r0, 0x2 mov r8, r0 _080C3F16: lsls r0, r2, 16 asrs r0, 16 movs r5, 0 ldrsh r1, [r3, r5] cmp r0, r1 bge _080C3F24 ldrh r2, [r3] _080C3F24: adds r3, 0x2 movs r0, 0x1 negs r0, r0 add r8, r0 mov r1, r8 cmp r1, 0 bge _080C3F16 lsls r0, r2, 16 mov r9, r0 cmp r0, 0 bge _080C3F62 ldrh r2, [r4] adds r3, r4, 0x2 movs r4, 0x2 mov r8, r4 _080C3F42: lsls r0, r2, 16 asrs r0, 16 movs r5, 0 ldrsh r1, [r3, r5] cmp r0, r1 ble _080C3F50 ldrh r2, [r3] _080C3F50: adds r3, 0x2 movs r0, 0x1 negs r0, r0 add r8, r0 lsls r1, r2, 16 mov r9, r1 mov r4, r8 cmp r4, 0 bge _080C3F42 _080C3F62: movs r5, 0 mov r8, r5 mov r10, r5 _080C3F68: ldr r0, _080C409C mov r1, r8 lsls r7, r1, 1 adds r0, r7, r0 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 5 subs r0, r1 lsls r0, 2 adds r0, r1 lsls r0, 3 mov r4, r9 asrs r6, r4, 16 adds r1, r6, 0 cmp r6, 0 bge _080C3F8A negs r1, r6 _080C3F8A: bl __divsi3 adds r4, r0, 0 movs r1, 0xA bl __modsi3 cmp r0, 0x4 ble _080C3F9C adds r4, 0xA _080C3F9C: ldr r0, _080C40A0 mov r1, r10 adds r5, r1, r0 adds r0, r4, 0 movs r1, 0xA bl __divsi3 str r0, [r5] ldr r0, _080C40A4 adds r7, r0 movs r2, 0 ldrsh r1, [r7, r2] cmp r1, 0 bge _080C3FBA negs r1, r1 _080C3FBA: lsls r0, r1, 5 subs r0, r1 lsls r0, 2 adds r0, r1 lsls r0, 3 adds r1, r6, 0 cmp r1, 0 bge _080C3FCC negs r1, r1 _080C3FCC: bl __divsi3 adds r4, r0, 0 movs r1, 0xA bl __modsi3 cmp r0, 0x4 ble _080C3FDE adds r4, 0xA _080C3FDE: adds r0, r4, 0 movs r1, 0xA bl __divsi3 str r0, [r5, 0x4] movs r4, 0 ldrsh r0, [r7, r4] cmp r0, 0 bge _080C3FF4 movs r0, 0x1 strb r0, [r5, 0x10] _080C3FF4: ldr r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 subs r0, r1 lsls r0, 11 movs r1, 0x64 bl __divsi3 adds r1, r0, 0 movs r4, 0xFF ands r0, r4 cmp r0, 0x7F bls _080C4016 movs r0, 0x80 lsls r0, 1 adds r1, r0 _080C4016: lsrs r0, r1, 8 str r0, [r5, 0x8] ldr r1, [r5, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 subs r0, r1 lsls r0, 11 movs r1, 0x64 bl __divsi3 adds r1, r0, 0 ands r0, r4 cmp r0, 0x7F bls _080C403A movs r2, 0x80 lsls r2, 1 adds r1, r2 _080C403A: lsrs r0, r1, 8 str r0, [r5, 0xC] mov r0, r8 lsls r4, r0, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0x1 bl sub_80C3990 strb r0, [r5, 0x11] adds r0, r4, 0 movs r1, 0x1 bl sub_80C39E4 lsls r0, 24 asrs r0, 24 cmp r0, 0 bge _080C4060 negs r0, r0 _080C4060: strb r0, [r5, 0x12] ldr r0, _080C40A8 add r0, r8 ldrb r0, [r0] cmp r0, 0 beq _080C40B4 ldr r4, [r5, 0x8] ldrh r2, [r5, 0x8] ldr r3, [r5, 0xC] ldrh r1, [r5, 0xC] ldrb r0, [r5, 0x10] cmp r0, 0 beq _080C4080 lsls r0, r1, 16 negs r0, r0 lsrs r1, r0, 16 _080C4080: lsls r0, r2, 16 asrs r2, r0, 16 lsls r0, r1, 16 asrs r1, r0, 16 adds r0, r2, r1 cmp r0, 0x58 bne _080C40B4 cmp r1, 0 ble _080C40AC subs r0, r3, 0x1 str r0, [r5, 0xC] b _080C40B4 .align 2, 0 _080C4098: .4byte 0x02038678 _080C409C: .4byte 0x02038670 _080C40A0: .4byte 0x02018018 _080C40A4: .4byte 0x02038688 _080C40A8: .4byte 0x02038690 _080C40AC: cmp r2, 0 ble _080C40B4 subs r0, r4, 0x1 str r0, [r5, 0x8] _080C40B4: movs r1, 0x14 add r10, r1 movs r2, 0x1 add r8, r2 mov r4, r8 cmp r4, 0x3 bgt _080C40C4 b _080C3F68 _080C40C4: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C3F00 thumb_func_start sub_80C40D4 sub_80C40D4: @ 80C40D4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsls r1, 24 lsrs r7, r1, 24 movs r1, 0 mov r10, r1 movs r2, 0 str r2, [sp] cmp r0, 0 bne _080C4198 mov r8, r2 ldr r0, _080C417C subs r1, 0x18 adds r1, r0 mov r9, r1 adds r4, r0, 0 adds r4, 0x8 movs r6, 0xA0 _080C4102: ldrb r0, [r4, 0x9] cmp r7, r0 bcs _080C416A adds r0, 0x13 adds r0, r6, r0 subs r0, r7 lsls r0, 1 ldr r2, _080C4180 adds r0, r2 ldr r2, _080C4184 adds r1, r2, 0 strh r1, [r0] ldr r0, _080C4188 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r5, r0, 24 ldr r0, [r4] lsls r0, 16 ldrb r1, [r4, 0x9] bl __udivsi3 adds r1, r7, 0x1 adds r3, r0, 0 muls r3, r1 ldr r0, _080C418C ands r0, r3 ldr r1, _080C4190 cmp r0, r1 bls _080C4146 movs r0, 0x80 lsls r0, 9 adds r3, r0 _080C4146: ldr r1, _080C4194 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 mov r1, r8 strh r1, [r0, 0x8] lsrs r1, r3, 16 strh r1, [r0, 0xA] mov r2, r9 ldrb r0, [r2, 0x14] adds r0, 0x1 strb r0, [r2, 0x14] mov r0, r10 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 _080C416A: adds r4, 0x14 adds r6, 0x60 movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x3 ble _080C4102 b _080C4292 .align 2, 0 _080C417C: .4byte 0x02018018 _080C4180: .4byte 0x0600bffe _080C4184: .4byte 0x000060b3 _080C4188: .4byte sub_80C42C0 _080C418C: .4byte 0x0000ffff _080C4190: .4byte 0x00007fff _080C4194: .4byte 0x03004b20 _080C4198: movs r2, 0 mov r8, r2 ldr r0, _080C4220 mov r12, r0 mov r9, r2 movs r1, 0xC0 str r1, [sp, 0x4] _080C41A6: mov r6, r9 add r6, r12 ldrb r1, [r6, 0x12] ldrb r0, [r6, 0x10] ldr r2, _080C4224 cmp r0, 0 beq _080C41B6 adds r2, 0x2 _080C41B6: lsls r0, r1, 24 asrs r0, 24 cmp r7, r0 bge _080C427E adds r0, 0x13 ldr r1, [sp, 0x4] adds r0, r1, r0 subs r0, r7 lsls r0, 1 ldr r1, _080C4228 adds r0, r1 strh r2, [r0] ldr r0, _080C422C movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r5, r0, 24 ldr r0, [r6, 0xC] lsls r0, 16 ldrb r1, [r6, 0x12] bl __udivsi3 adds r1, r7, 0x1 adds r3, r0, 0 muls r3, r1 ldr r0, _080C4230 ands r0, r3 ldr r1, _080C4234 cmp r0, r1 bls _080C41FA movs r2, 0x80 lsls r2, 9 adds r3, r2 _080C41FA: ldr r1, _080C4238 lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 3 adds r4, r0, r1 mov r0, r8 strh r0, [r4, 0x8] ldrb r0, [r6, 0x10] adds r6, r1, 0 cmp r0, 0 beq _080C423C movs r0, 0x1 strh r0, [r4, 0xC] ldr r0, [sp] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp] b _080C4246 .align 2, 0 _080C4220: .4byte 0x02018018 _080C4224: .4byte 0x000060a3 _080C4228: .4byte 0x0600bffe _080C422C: .4byte sub_80C42C0 _080C4230: .4byte 0x0000ffff _080C4234: .4byte 0x00007fff _080C4238: .4byte 0x03004b20 _080C423C: mov r0, r10 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 _080C4246: ldr r0, _080C4264 mov r1, r9 adds r4, r1, r0 ldrb r1, [r4, 0x10] mov r12, r0 cmp r1, 0 beq _080C4268 adds r0, r2, r5 lsls r0, 3 adds r0, r6 lsrs r2, r3, 16 ldr r1, [r4, 0x8] subs r1, r2 b _080C4274 .align 2, 0 _080C4264: .4byte 0x02018018 _080C4268: adds r0, r2, r5 lsls r0, 3 adds r0, r6 lsrs r2, r3, 16 ldr r1, [r4, 0x8] adds r1, r2 _080C4274: strh r1, [r0, 0xA] ldr r1, _080C42BC ldrb r0, [r1, 0x14] adds r0, 0x1 strb r0, [r1, 0x14] _080C427E: movs r2, 0x14 add r9, r2 ldr r0, [sp, 0x4] adds r0, 0x60 str r0, [sp, 0x4] movs r1, 0x1 add r8, r1 mov r2, r8 cmp r2, 0x3 ble _080C41A6 _080C4292: ldr r0, [sp] cmp r0, 0 beq _080C429E movs r0, 0x16 bl audio_play _080C429E: mov r1, r10 cmp r1, 0 beq _080C42AA movs r0, 0x15 bl audio_play _080C42AA: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C42BC: .4byte 0x02018000 thumb_func_end sub_80C40D4 thumb_func_start sub_80C42C0 sub_80C42C0: @ 80C42C0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r12, r0 movs r6, 0 mov r9, r6 ldr r1, _080C4308 lsls r0, 2 add r0, r12 lsls r0, 3 adds r0, r1 ldrb r5, [r0, 0x8] ldrh r7, [r0, 0xA] ldrh r1, [r0, 0xC] mov r8, r1 movs r2, 0xC ldrsh r0, [r0, r2] cmp r0, 0 beq _080C4310 ldr r1, _080C430C lsls r2, r5, 1 adds r0, r1, 0 adds r0, 0xC adds r0, r2, r0 movs r3, 0 ldrsh r0, [r0, r3] mov r10, r1 adds r4, r2, 0 cmp r0, 0 bgt _080C4328 b _080C4326 .align 2, 0 _080C4308: .4byte 0x03004b20 _080C430C: .4byte 0x02018000 _080C4310: ldr r1, _080C4350 lsls r2, r5, 1 adds r0, r1, 0 adds r0, 0xC adds r0, r2, r0 movs r3, 0 ldrsh r0, [r0, r3] mov r10, r1 adds r4, r2, 0 cmp r0, 0x57 ble _080C4328 _080C4326: movs r6, 0x1 _080C4328: mov r0, r10 adds r0, 0xC adds r3, r4, r0 ldrh r2, [r3] movs r0, 0 ldrsh r1, [r3, r0] lsls r0, r7, 16 asrs r0, 16 cmp r1, r0 bne _080C4340 movs r1, 0x1 mov r9, r1 _080C4340: mov r0, r9 cmp r0, 0 bne _080C4362 cmp r6, 0 beq _080C4354 strh r7, [r3] b _080C4362 .align 2, 0 _080C4350: .4byte 0x02018000 _080C4354: mov r1, r8 cmp r1, 0 beq _080C435E subs r0, r2, 0x1 b _080C4360 _080C435E: adds r0, r2, 0x1 _080C4360: strh r0, [r3] _080C4362: cmp r6, 0 bne _080C43C8 mov r2, r9 cmp r2, 0 bne _080C43CE movs r2, 0 ldr r0, _080C4388 adds r6, r4, r0 adds r0, r4, r5 lsls r5, r0, 5 _080C4376: movs r0, 0 ldrsh r3, [r6, r0] adds r0, r2, 0x1 lsls r1, r0, 3 adds r4, r0, 0 cmp r3, r1 blt _080C438C movs r0, 0x8 b _080C43A8 .align 2, 0 _080C4388: .4byte 0x0201800c _080C438C: lsls r0, r2, 3 cmp r3, r0 blt _080C43A6 adds r0, r3, 0 cmp r3, 0 bge _080C439A adds r0, r3, 0x7 _080C439A: asrs r0, 3 lsls r0, 3 subs r0, r3, r0 lsls r0, 24 lsrs r0, 24 b _080C43A8 _080C43A6: movs r0, 0 _080C43A8: cmp r0, 0x3 bhi _080C43B4 ldr r3, _080C43B0 b _080C43B6 .align 2, 0 _080C43B0: .4byte 0x0000504c _080C43B4: ldr r3, _080C43EC _080C43B6: adds r1, r0, r3 adds r0, r5, r2 lsls r0, 1 ldr r2, _080C43F0 adds r0, r2 strh r1, [r0] adds r2, r4, 0 cmp r2, 0xA ble _080C4376 _080C43C8: mov r3, r9 cmp r3, 0 beq _080C43DC _080C43CE: mov r1, r10 ldrb r0, [r1, 0x14] subs r0, 0x1 strb r0, [r1, 0x14] mov r0, r12 bl DestroyTask _080C43DC: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C43EC: .4byte 0x00005057 _080C43F0: .4byte 0x0600e18e thumb_func_end sub_80C42C0 thumb_func_start sub_80C43F4 sub_80C43F4: @ 80C43F4 push {r4,r5,lr} ldr r0, _080C442C ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080C4430 adds r0, r1 bl sub_80AE47C lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 cmp r5, 0 beq _080C4422 ldr r4, _080C4434 ldrb r0, [r4] ldr r1, _080C4438 ldrb r1, [r1] bl sub_80AE398 ldrb r0, [r4] bl sub_80AE82C _080C4422: ldr r0, _080C443C strh r5, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C442C: .4byte 0x02038694 _080C4430: .4byte 0x03004360 _080C4434: .4byte 0x0203869c _080C4438: .4byte 0x0203869e _080C443C: .4byte 0x0202e8dc thumb_func_end sub_80C43F4 thumb_func_start sub_80C4440 sub_80C4440: @ 80C4440 push {r4,lr} movs r4, 0 ldr r0, _080C4464 ldrb r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _080C4468 adds r2, r1, r0 ldr r0, _080C446C ldrh r0, [r0] cmp r0, 0x4 bhi _080C44B2 lsls r0, 2 ldr r1, _080C4470 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C4464: .4byte 0x02038694 _080C4468: .4byte 0x03004360 _080C446C: .4byte 0x0203869c _080C4470: .4byte _080C4474 .align 2, 0 _080C4474: .4byte _080C4488 .4byte _080C448E .4byte _080C4494 .4byte _080C449A .4byte _080C44A0 _080C4488: adds r0, r2, 0 movs r1, 0x32 b _080C44A4 _080C448E: adds r0, r2, 0 movs r1, 0x33 b _080C44A4 _080C4494: adds r0, r2, 0 movs r1, 0x34 b _080C44A4 _080C449A: adds r0, r2, 0 movs r1, 0x35 b _080C44A4 _080C44A0: adds r0, r2, 0 movs r1, 0x36 _080C44A4: bl PokemonGetField ldr r1, _080C44BC ldrh r1, [r1] cmp r0, r1 bls _080C44B2 movs r4, 0x1 _080C44B2: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080C44BC: .4byte 0x0203869e thumb_func_end sub_80C4440 thumb_func_start sub_80C44C0 sub_80C44C0: @ 80C44C0 push {r4-r7,lr} sub sp, 0x4 ldr r1, _080C44E8 ldr r0, _080C44EC ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080C44D4 b _080C465E _080C44D4: ldr r0, _080C44F0 ldrh r0, [r0] cmp r0, 0x4 bls _080C44DE b _080C465E _080C44DE: lsls r0, 2 ldr r1, _080C44F4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C44E8: .4byte 0x02038690 _080C44EC: .4byte 0x02038695 _080C44F0: .4byte 0x0203869c _080C44F4: .4byte _080C44F8 .align 2, 0 _080C44F8: .4byte _080C450C .4byte _080C4554 .4byte _080C4598 .4byte _080C45DC .4byte _080C4624 _080C450C: ldr r6, _080C4548 ldrb r0, [r6] movs r5, 0x64 muls r0, r5 ldr r4, _080C454C adds r0, r4 movs r1, 0x32 bl PokemonGetField lsls r0, 24 lsrs r1, r0, 24 mov r0, sp strb r1, [r0] ldr r0, _080C4550 ldrh r0, [r0] cmp r1, r0 bls _080C4530 b _080C465E _080C4530: adds r0, r1, 0 cmp r0, 0x3 bls _080C4538 b _080C465E _080C4538: adds r1, r0, 0x1 mov r0, sp strb r1, [r0] ldrb r0, [r6] muls r0, r5 adds r0, r4 movs r1, 0x32 b _080C4610 .align 2, 0 _080C4548: .4byte 0x02038694 _080C454C: .4byte 0x03004360 _080C4550: .4byte 0x0203869e _080C4554: mov r4, sp ldr r7, _080C458C ldrb r0, [r7] movs r6, 0x64 muls r0, r6 ldr r5, _080C4590 adds r0, r5 movs r1, 0x33 bl PokemonGetField strb r0, [r4] mov r0, sp ldrb r2, [r0] ldr r0, _080C4594 ldrh r0, [r0] cmp r2, r0 bhi _080C465E cmp r2, 0x3 bhi _080C465E mov r1, sp adds r0, r2, 0x1 strb r0, [r1] ldrb r0, [r7] muls r0, r6 adds r0, r5 movs r1, 0x33 b _080C4610 .align 2, 0 _080C458C: .4byte 0x02038694 _080C4590: .4byte 0x03004360 _080C4594: .4byte 0x0203869e _080C4598: mov r4, sp ldr r7, _080C45D0 ldrb r0, [r7] movs r6, 0x64 muls r0, r6 ldr r5, _080C45D4 adds r0, r5 movs r1, 0x34 bl PokemonGetField strb r0, [r4] mov r0, sp ldrb r2, [r0] ldr r0, _080C45D8 ldrh r0, [r0] cmp r2, r0 bhi _080C465E cmp r2, 0x3 bhi _080C465E mov r1, sp adds r0, r2, 0x1 strb r0, [r1] ldrb r0, [r7] muls r0, r6 adds r0, r5 movs r1, 0x34 b _080C4610 .align 2, 0 _080C45D0: .4byte 0x02038694 _080C45D4: .4byte 0x03004360 _080C45D8: .4byte 0x0203869e _080C45DC: mov r4, sp ldr r7, _080C4618 ldrb r0, [r7] movs r6, 0x64 muls r0, r6 ldr r5, _080C461C adds r0, r5 movs r1, 0x35 bl PokemonGetField strb r0, [r4] mov r0, sp ldrb r2, [r0] ldr r0, _080C4620 ldrh r0, [r0] cmp r2, r0 bhi _080C465E cmp r2, 0x3 bhi _080C465E mov r1, sp adds r0, r2, 0x1 strb r0, [r1] ldrb r0, [r7] muls r0, r6 adds r0, r5 movs r1, 0x35 _080C4610: mov r2, sp bl pokemon_setattr b _080C465E .align 2, 0 _080C4618: .4byte 0x02038694 _080C461C: .4byte 0x03004360 _080C4620: .4byte 0x0203869e _080C4624: mov r4, sp ldr r7, _080C4668 ldrb r0, [r7] movs r6, 0x64 muls r0, r6 ldr r5, _080C466C adds r0, r5 movs r1, 0x36 bl PokemonGetField strb r0, [r4] mov r0, sp ldrb r2, [r0] ldr r0, _080C4670 ldrh r0, [r0] cmp r2, r0 bhi _080C465E cmp r2, 0x3 bhi _080C465E mov r1, sp adds r0, r2, 0x1 strb r0, [r1] ldrb r0, [r7] muls r0, r6 adds r0, r5 movs r1, 0x36 mov r2, sp bl pokemon_setattr _080C465E: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C4668: .4byte 0x02038694 _080C466C: .4byte 0x03004360 _080C4670: .4byte 0x0203869e thumb_func_end sub_80C44C0 thumb_func_start sub_80C4674 sub_80C4674: @ 80C4674 push {r4,lr} adds r4, r0, 0 bl StringCopy ldrb r0, [r4] cmp r0, 0xFC bne _080C4690 ldrb r0, [r4, 0x1] cmp r0, 0x15 bne _080C4690 adds r0, r4, 0 movs r1, 0x1 bl ConvertInternationalString _080C4690: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C4674 thumb_func_start sub_80C4698 sub_80C4698: @ 80C4698 push {r4,r5,lr} adds r5, r0, 0 lsls r1, 24 lsrs r4, r1, 24 lsls r1, r4, 6 ldr r0, _080C46E0 adds r1, r0 adds r0, r5, 0 bl StringCopy ldr r0, _080C46E4 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C46DA ldr r0, _080C46E8 lsls r1, r4, 3 subs r1, r4 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x1A] cmp r0, 0x1 bne _080C46DA adds r0, r5, 0 bl sub_80C86A0 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl ConvertInternationalString _080C46DA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C46E0: .4byte 0x02038572 _080C46E4: .4byte 0x0203869a _080C46E8: .4byte 0x03002970 thumb_func_end sub_80C4698 thumb_func_start sub_80C46EC sub_80C46EC: @ 80C46EC push {lr} ldr r0, _080C4710 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C4720 ldr r0, _080C4714 ldr r1, _080C4718 ldrh r2, [r1] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 ldr r2, _080C471C adds r1, r2 bl sub_80C4674 b _080C4730 .align 2, 0 _080C4710: .4byte 0x0203869a _080C4714: .4byte 0x020231cc _080C4718: .4byte 0x0202e8d0 _080C471C: .4byte 0x03002978 _080C4720: ldr r0, _080C4734 ldr r1, _080C4738 ldrh r1, [r1] lsls r1, 6 ldr r2, _080C473C adds r1, r2 bl sub_80C4674 _080C4730: pop {r0} bx r0 .align 2, 0 _080C4734: .4byte 0x020231cc _080C4738: .4byte 0x0202e8d0 _080C473C: .4byte 0x0203857d thumb_func_end sub_80C46EC thumb_func_start sub_80C4740 sub_80C4740: @ 80C4740 push {lr} ldr r0, _080C4750 ldr r1, _080C4754 ldrb r1, [r1] bl sub_80C4698 pop {r0} bx r0 .align 2, 0 _080C4750: .4byte 0x020233cc _080C4754: .4byte 0x0202e8d0 thumb_func_end sub_80C4740 thumb_func_start sub_80C4758 sub_80C4758: @ 80C4758 push {r4-r6,lr} movs r1, 0 movs r2, 0 ldr r5, _080C4794 ldr r4, _080C4798 ldr r0, _080C479C ldrh r0, [r0] lsls r0, 1 adds r0, r4 movs r6, 0 ldrsh r3, [r0, r6] _080C476E: lsls r0, r1, 1 adds r0, r4 movs r6, 0 ldrsh r0, [r0, r6] cmp r3, r0 bge _080C4780 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 _080C4780: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _080C476E strh r2, [r5] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C4794: .4byte 0x0202e8cc _080C4798: .4byte 0x02038670 _080C479C: .4byte 0x0202e8d0 thumb_func_end sub_80C4758 thumb_func_start sub_80C47A0 sub_80C47A0: @ 80C47A0 ldr r2, _080C47B4 ldr r1, _080C47B8 ldr r0, _080C47BC ldrh r0, [r0] lsls r0, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r2] bx lr .align 2, 0 _080C47B4: .4byte 0x0202e8cc _080C47B8: .4byte 0x02038670 _080C47BC: .4byte 0x0202e8d0 thumb_func_end sub_80C47A0 thumb_func_start sub_80C47C0 sub_80C47C0: @ 80C47C0 push {lr} movs r1, 0 ldr r2, _080C47E8 ldrb r0, [r2] ldr r3, _080C47EC cmp r0, 0 beq _080C47E0 _080C47CE: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bhi _080C47E0 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _080C47CE _080C47E0: strh r1, [r3] pop {r0} bx r0 .align 2, 0 _080C47E8: .4byte 0x02038690 _080C47EC: .4byte 0x0202e8ce thumb_func_end sub_80C47C0 thumb_func_start sub_80C47F0 sub_80C47F0: @ 80C47F0 push {r4,lr} movs r2, 0 ldr r3, _080C4830 ldrb r0, [r3] ldr r1, _080C4834 ldr r4, _080C4838 cmp r0, 0 beq _080C4812 _080C4800: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bhi _080C4812 adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0 bne _080C4800 _080C4812: ldrb r1, [r1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C4840 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 ldr r0, _080C483C adds r1, r0 adds r0, r4, 0 bl sub_80C4674 b _080C484C .align 2, 0 _080C4830: .4byte 0x02038690 _080C4834: .4byte 0x0203869a _080C4838: .4byte 0x020233cc _080C483C: .4byte 0x03002978 _080C4840: lsls r1, r2, 6 ldr r0, _080C4854 adds r1, r0 adds r0, r4, 0 bl sub_80C4674 _080C484C: pop {r4} pop {r0} bx r0 .align 2, 0 _080C4854: .4byte 0x0203857d thumb_func_end sub_80C47F0 thumb_func_start sub_80C4858 sub_80C4858: @ 80C4858 push {lr} movs r1, 0 ldr r2, _080C4884 ldrb r0, [r2] ldr r3, _080C4888 cmp r0, 0 beq _080C4878 _080C4866: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bhi _080C4878 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _080C4866 _080C4878: adds r0, r3, 0 bl sub_80C4698 pop {r0} bx r0 .align 2, 0 _080C4884: .4byte 0x02038690 _080C4888: .4byte 0x020231cc thumb_func_end sub_80C4858 thumb_func_start sub_80C488C sub_80C488C: @ 80C488C push {lr} ldr r0, _080C4898 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _080C4898: .4byte sub_80AB47C thumb_func_end sub_80C488C thumb_func_start sub_80C489C sub_80C489C: @ 80C489C push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080C48C0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080C48BA adds r0, r2, 0 bl DestroyTask ldr r0, _080C48C4 bl SetMainCallback2 _080C48BA: pop {r0} bx r0 .align 2, 0 _080C48C0: .4byte 0x0202f388 _080C48C4: .4byte sub_80C488C thumb_func_end sub_80C489C thumb_func_start sub_80C48C8 sub_80C48C8: @ 80C48C8 push {lr} sub sp, 0x4 bl script_env_2_enable ldr r0, _080C48F0 movs r1, 0xA bl CreateTask movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080C48F0: .4byte sub_80C489C thumb_func_end sub_80C48C8 thumb_func_start sub_80C48F4 sub_80C48F4: @ 80C48F4 ldr r2, _080C4908 ldr r1, _080C490C ldr r0, _080C4910 ldrh r0, [r0] lsls r0, 6 adds r0, r1 ldrh r0, [r0] strh r0, [r2] bx lr .align 2, 0 _080C4908: .4byte 0x0202e8cc _080C490C: .4byte 0x02038570 _080C4910: .4byte 0x0202e8d0 thumb_func_end sub_80C48F4 thumb_func_start sub_80C4914 sub_80C4914: @ 80C4914 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080C4938 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080C4932 adds r0, r2, 0 bl DestroyTask ldr r0, _080C493C bl SetMainCallback2 _080C4932: pop {r0} bx r0 .align 2, 0 _080C4938: .4byte 0x0202f388 _080C493C: .4byte sub_80C2358 thumb_func_end sub_80C4914 thumb_func_start sub_80C4940 sub_80C4940: @ 80C4940 push {lr} sub sp, 0x4 bl script_env_2_enable ldr r0, _080C4968 movs r1, 0xA bl CreateTask movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080C4968: .4byte sub_80C4914 thumb_func_end sub_80C4940 thumb_func_start sub_80C496C sub_80C496C: @ 80C496C ldr r0, _080C4978 ldr r1, _080C497C ldrb r1, [r1] strh r1, [r0] bx lr .align 2, 0 _080C4978: .4byte 0x0202e8cc _080C497C: .4byte 0x02038695 thumb_func_end sub_80C496C thumb_func_start sub_80C4980 sub_80C4980: @ 80C4980 push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 bl script_env_2_enable ldr r6, _080C49B8 adds r0, r6, 0 movs r1, 0 bl CreateTask adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r2, _080C49BC adds r0, r4, 0 adds r1, r6, 0 bl SetTaskFuncWithFollowupFunc ldr r1, _080C49C0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x1A] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C49B8: .4byte sub_80C8604 _080C49BC: .4byte sub_80C49C4 _080C49C0: .4byte 0x03004b20 thumb_func_end sub_80C4980 thumb_func_start sub_80C49C4 sub_80C49C4: @ 80C49C4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080C49E4 ldrb r0, [r0] bl sub_80AE098 ldr r1, _080C49E8 ldr r2, _080C49EC adds r0, r4, 0 bl SetTaskFuncWithFollowupFunc pop {r4} pop {r0} bx r0 .align 2, 0 _080C49E4: .4byte 0x02038694 _080C49E8: .4byte sub_80C8734 _080C49EC: .4byte sub_80C49F0 thumb_func_end sub_80C49C4 thumb_func_start sub_80C49F0 sub_80C49F0: @ 80C49F0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080C4A04 ldr r2, _080C4A08 bl SetTaskFuncWithFollowupFunc pop {r0} bx r0 .align 2, 0 _080C4A04: .4byte sub_80C88AC _080C4A08: .4byte sub_80C4A0C thumb_func_end sub_80C49F0 thumb_func_start sub_80C4A0C sub_80C4A0C: @ 80C4A0C push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080C4A20 ldr r2, _080C4A24 bl SetTaskFuncWithFollowupFunc pop {r0} bx r0 .align 2, 0 _080C4A20: .4byte sub_80C8E1C _080C4A24: .4byte sub_80C4A28 thumb_func_end sub_80C4A0C thumb_func_start sub_80C4A28 sub_80C4A28: @ 80C4A28 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080C4A3C ldr r2, _080C4A40 bl SetTaskFuncWithFollowupFunc pop {r0} bx r0 .align 2, 0 _080C4A3C: .4byte sub_80C8938 _080C4A40: .4byte sub_80C4A44 thumb_func_end sub_80C4A28 thumb_func_start sub_80C4A44 sub_80C4A44: @ 80C4A44 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r5, r0, 24 movs r3, 0 ldr r0, _080C4AA0 mov r8, r0 add r1, sp, 0x4 mov r12, r1 lsls r1, r5, 2 adds r0, r1, r5 lsls r4, r0, 3 ldr r6, _080C4AA4 adds r7, r1, 0 _080C4A64: mov r0, sp adds r2, r0, r3 adds r1, r3, 0x1 lsls r0, r1, 1 adds r0, r4 adds r0, r6 ldrh r0, [r0] strb r0, [r2] lsls r1, 24 lsrs r3, r1, 24 cmp r3, 0x3 bls _080C4A64 movs r3, 0 mov r2, sp _080C4A80: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bhi _080C4A96 mov r0, sp adds r1, r0, r3 ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 beq _080C4A80 _080C4A96: cmp r3, 0x4 bne _080C4AA8 movs r0, 0 b _080C4AAA .align 2, 0 _080C4AA0: .4byte 0x0202e8cc _080C4AA4: .4byte 0x03004b28 _080C4AA8: movs r0, 0x1 _080C4AAA: mov r1, r8 strh r0, [r1] movs r3, 0 mov r4, r12 adds r0, r7, r5 lsls r2, r0, 3 ldr r6, _080C4AF8 _080C4AB8: adds r1, r4, r3 adds r0, r3, 0x5 lsls r0, 1 adds r0, r2 adds r0, r6 ldrh r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _080C4AB8 mov r0, r12 bl sub_80C4B34 ldr r1, _080C4AFC strb r0, [r1] ldr r0, _080C4B00 ldrb r0, [r0] bl sub_80AE82C ldr r1, _080C4B04 ldr r2, _080C4B08 adds r0, r5, 0 bl SetTaskFuncWithFollowupFunc add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C4AF8: .4byte 0x03004b28 _080C4AFC: .4byte 0x0203869b _080C4B00: .4byte 0x0203869c _080C4B04: .4byte sub_80C8EBC _080C4B08: .4byte sub_80C4B0C thumb_func_end sub_80C4A44 thumb_func_start sub_80C4B0C sub_80C4B0C: @ 80C4B0C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl sub_80B0F28 ldr r1, _080C4B2C ldr r2, _080C4B30 adds r0, r4, 0 bl SetTaskFuncWithFollowupFunc pop {r4} pop {r0} bx r0 .align 2, 0 _080C4B2C: .4byte sub_80C8F34 _080C4B30: .4byte sub_80C4B5C thumb_func_end sub_80C4B0C thumb_func_start sub_80C4B34 sub_80C4B34: @ 80C4B34 push {r4,lr} adds r3, r0, 0 movs r4, 0 movs r2, 0x1 _080C4B3C: adds r0, r3, r4 adds r1, r3, r2 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bcs _080C4B4C lsls r0, r2, 24 lsrs r4, r0, 24 _080C4B4C: adds r2, 0x1 cmp r2, 0x3 ble _080C4B3C adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80C4B34 thumb_func_start sub_80C4B5C sub_80C4B5C: @ 80C4B5C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080C4B84 ldrh r0, [r0] cmp r0, 0x1 bne _080C4B90 bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C4B9E ldr r0, _080C4B88 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080C4B8C str r0, [r1] b _080C4B9E .align 2, 0 _080C4B84: .4byte 0x0202e8cc _080C4B88: .4byte 0x03004b20 _080C4B8C: .4byte sub_80C4BA4 _080C4B90: adds r0, r4, 0 bl DestroyTask bl script_env_2_disable bl script_env_2_enable_and_set_ctx_running _080C4B9E: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C4B5C thumb_func_start sub_80C4BA4 sub_80C4BA4: @ 80C4BA4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_800832C ldr r1, _080C4BC4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C4BC8 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080C4BC4: .4byte 0x03004b20 _080C4BC8: .4byte sub_80C4BCC thumb_func_end sub_80C4BA4 thumb_func_start sub_80C4BCC sub_80C4BCC: @ 80C4BCC push {lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _080C4BEC ldrb r0, [r0] cmp r0, 0 bne _080C4BE8 adds r0, r1, 0 bl DestroyTask bl script_env_2_disable bl script_env_2_enable_and_set_ctx_running _080C4BE8: pop {r0} bx r0 .align 2, 0 _080C4BEC: .4byte 0x03002fa4 thumb_func_end sub_80C4BCC thumb_func_start sub_80C4BF0 sub_80C4BF0: @ 80C4BF0 push {r4,lr} ldr r2, _080C4C1C ldr r1, _080C4C20 ldrb r3, [r1, 0x15] movs r4, 0x9B lsls r4, 5 adds r0, r2, r4 strh r3, [r0] adds r0, r1, 0 adds r0, 0x55 ldrb r3, [r0] adds r4, 0x2 adds r0, r2, r4 strh r3, [r0] adds r1, 0x95 ldrb r0, [r1] ldr r1, _080C4C24 adds r2, r1 strh r0, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _080C4C1C: .4byte 0x02025734 _080C4C20: .4byte 0x02038570 _080C4C24: .4byte 0x00001364 thumb_func_end sub_80C4BF0 thumb_func_start sub_80C4C28 sub_80C4C28: @ 80C4C28 push {lr} ldr r0, _080C4C40 ldrb r0, [r0] adds r1, r0, 0 cmp r0, 0x1 beq _080C4C4E cmp r0, 0x1 bgt _080C4C44 cmp r0, 0 beq _080C4C4A b _080C4C56 .align 2, 0 _080C4C40: .4byte 0x0202e8ce _080C4C44: cmp r1, 0x2 beq _080C4C52 b _080C4C56 _080C4C4A: movs r1, 0x3 b _080C4C58 _080C4C4E: movs r1, 0x4 b _080C4C58 _080C4C52: movs r1, 0x5 b _080C4C58 _080C4C56: movs r1, 0x64 _080C4C58: ldr r0, _080C4C60 strh r1, [r0] pop {r0} bx r0 .align 2, 0 _080C4C60: .4byte 0x0202e8cc thumb_func_end sub_80C4C28 thumb_func_start sub_80C4C64 sub_80C4C64: @ 80C4C64 push {lr} bl sub_80C46EC bl sub_80C4740 bl sub_80C48F4 pop {r0} bx r0 thumb_func_end sub_80C4C64 thumb_func_start sub_80C4C78 sub_80C4C78: @ 80C4C78 push {lr} ldr r0, _080C4C8C ldrh r0, [r0] cmp r0, 0x4 bhi _080C4CB8 lsls r0, 2 ldr r1, _080C4C90 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C4C8C: .4byte 0x0203869c _080C4C90: .4byte _080C4C94 .align 2, 0 _080C4C94: .4byte _080C4CA8 .4byte _080C4CAC .4byte _080C4CB0 .4byte _080C4CB4 .4byte _080C4CB8 _080C4CA8: movs r0, 0x8 b _080C4CBA _080C4CAC: movs r0, 0x9 b _080C4CBA _080C4CB0: movs r0, 0xA b _080C4CBA _080C4CB4: movs r0, 0xB b _080C4CBA _080C4CB8: movs r0, 0xC _080C4CBA: ldr r1, _080C4CD0 lsls r0, 5 adds r0, r1 ldr r1, _080C4CD4 adds r0, r1 ldrh r1, [r0] cmp r1, 0 bne _080C4CDC ldr r0, _080C4CD8 strh r1, [r0] b _080C4CE2 .align 2, 0 _080C4CD0: .4byte 0x02025734 _080C4CD4: .4byte 0x00002e04 _080C4CD8: .4byte 0x0202e8cc _080C4CDC: ldr r1, _080C4CE8 movs r0, 0x1 strh r0, [r1] _080C4CE2: pop {r0} bx r0 .align 2, 0 _080C4CE8: .4byte 0x0202e8cc thumb_func_end sub_80C4C78 thumb_func_start sub_80C4CEC sub_80C4CEC: @ 80C4CEC push {lr} movs r0, 0xFF bl sub_80B2A7C pop {r0} bx r0 thumb_func_end sub_80C4CEC thumb_func_start sub_80C4CF8 sub_80C4CF8: @ 80C4CF8 push {lr} ldr r0, _080C4D28 ldr r1, _080C4D2C ldrb r2, [r1] adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 bne _080C4D40 ldr r0, _080C4D30 ldrh r0, [r0] cmp r0, 0x3 bne _080C4D40 ldr r1, _080C4D34 lsls r0, r2, 1 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] ldr r0, _080C4D38 cmp r1, r0 ble _080C4D40 ldr r1, _080C4D3C movs r0, 0x1 b _080C4D44 .align 2, 0 _080C4D28: .4byte 0x02038690 _080C4D2C: .4byte 0x02038695 _080C4D30: .4byte 0x0203869e _080C4D34: .4byte 0x02038678 _080C4D38: .4byte 0x0000031f _080C4D3C: .4byte 0x0202e8cc _080C4D40: ldr r1, _080C4D4C movs r0, 0 _080C4D44: strh r0, [r1] pop {r0} bx r0 .align 2, 0 _080C4D4C: .4byte 0x0202e8cc thumb_func_end sub_80C4CF8 thumb_func_start sub_80C4D50 sub_80C4D50: @ 80C4D50 push {lr} movs r3, 0 ldr r0, _080C4D78 ldr r1, _080C4D7C adds r2, r0, r1 movs r1, 0x4 _080C4D5C: ldrh r0, [r2] cmp r0, 0 beq _080C4D68 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 _080C4D68: adds r2, 0x20 subs r1, 0x1 cmp r1, 0 bge _080C4D5C adds r0, r3, 0 pop {r1} bx r1 .align 2, 0 _080C4D78: .4byte 0x02025734 _080C4D7C: .4byte 0x00002f04 thumb_func_end sub_80C4D50 thumb_func_start sub_80C4D80 sub_80C4D80: @ 80C4D80 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r0, _080C4EA0 mov r12, r0 ldr r1, _080C4EA4 mov r8, r1 ldr r2, _080C4EA8 mov r9, r2 mov r2, r12 mov r1, sp movs r6, 0x3 _080C4D9E: ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 subs r6, 0x1 cmp r6, 0 bge _080C4D9E movs r6, 0 _080C4DAE: movs r1, 0x3 cmp r1, r6 ble _080C4DD8 _080C4DB4: subs r4, r1, 0x1 lsls r0, r4, 1 mov r5, sp adds r3, r5, r0 lsls r0, r1, 1 adds r2, r5, r0 ldrh r5, [r3] movs r7, 0 ldrsh r1, [r3, r7] movs r7, 0 ldrsh r0, [r2, r7] cmp r1, r0 bge _080C4DD2 strh r5, [r2] strh r0, [r3] _080C4DD2: adds r1, r4, 0 cmp r1, r6 bgt _080C4DB4 _080C4DD8: adds r6, 0x1 cmp r6, 0x2 ble _080C4DAE mov r2, r8 ldrh r0, [r2] lsls r0, 1 add r0, sp ldrh r0, [r0] movs r2, 0 movs r7, 0 movs r6, 0 lsls r0, 16 asrs r4, r0, 16 adds r3, r0, 0 mov r1, sp _080C4DF6: movs r5, 0 ldrsh r0, [r1, r5] cmp r0, r4 bne _080C4E12 lsls r0, r2, 24 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r2, r0, 24 mov r5, r8 ldrh r5, [r5] cmp r6, r5 bne _080C4E12 adds r7, r2, 0 _080C4E12: adds r1, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _080C4DF6 movs r6, 0 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] asrs r1, r3, 16 lsls r2, 24 mov r10, r2 cmp r0, r1 beq _080C4E40 adds r2, r1, 0 mov r1, sp _080C4E30: adds r1, 0x2 adds r6, 0x1 cmp r6, 0x3 bgt _080C4E40 movs r4, 0 ldrsh r0, [r1, r4] cmp r0, r2 bne _080C4E30 _080C4E40: lsls r0, r6, 24 lsrs r4, r0, 24 adds r2, r7, 0 movs r6, 0 asrs r5, r3, 16 mov r8, r5 mov r1, r12 movs r5, 0 ldrsh r0, [r1, r5] cmp r8, r0 bne _080C4E60 cmp r7, 0x1 beq _080C4E78 _080C4E5A: subs r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 _080C4E60: adds r6, 0x1 cmp r6, 0x3 bgt _080C4E78 lsls r0, r6, 1 add r0, r12 asrs r1, r3, 16 movs r5, 0 ldrsh r0, [r0, r5] cmp r1, r0 bne _080C4E60 cmp r2, 0x1 bne _080C4E5A _080C4E78: lsls r1, r6, 24 lsrs r1, 24 mov r0, r9 bl sub_80C4698 ldr r0, _080C4EAC ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C4EB8 ldr r0, _080C4EB0 lsls r1, r6, 3 subs r1, r6 lsls r1, 2 ldr r2, _080C4EB4 adds r1, r2 bl sub_80C4674 b _080C4EC4 .align 2, 0 _080C4EA0: .4byte 0x02038670 _080C4EA4: .4byte 0x0202e8d0 _080C4EA8: .4byte 0x020231cc _080C4EAC: .4byte 0x0203869a _080C4EB0: .4byte 0x020232cc _080C4EB4: .4byte 0x03002978 _080C4EB8: ldr r0, _080C4ED8 lsls r1, r6, 6 ldr r2, _080C4EDC adds r1, r2 bl sub_80C4674 _080C4EC4: mov r1, r10 asrs r0, r1, 24 cmp r0, 0x1 beq _080C4ED0 cmp r7, r0 bne _080C4EE4 _080C4ED0: ldr r0, _080C4EE0 strh r4, [r0] b _080C4EEA .align 2, 0 _080C4ED8: .4byte 0x020232cc _080C4EDC: .4byte 0x0203857d _080C4EE0: .4byte 0x0202e8d0 _080C4EE4: ldr r1, _080C4EFC adds r0, r4, 0x4 strh r0, [r1] _080C4EEA: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C4EFC: .4byte 0x0202e8d0 thumb_func_end sub_80C4D80 thumb_func_start sub_80C4F00 sub_80C4F00: @ 80C4F00 push {lr} ldr r0, _080C4F0C bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _080C4F0C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end sub_80C4F00 thumb_func_start sub_80C4F10 sub_80C4F10: @ 80C4F10 push {r4-r6,lr} ldr r6, _080C4F54 ldrb r0, [r6] cmp r0, 0 beq _080C4F40 bl sub_80AAF30 ldr r4, _080C4F58 ldr r0, _080C4F5C adds r1, r4, r0 movs r5, 0 movs r0, 0x1 strb r0, [r1] movs r0, 0xFE movs r1, 0 bl sub_80B2C4C ldr r1, _080C4F60 adds r4, r1 strb r0, [r4] movs r0, 0x3 bl sub_80B2A7C strb r5, [r6] _080C4F40: ldr r0, _080C4F64 bl SetMainCallback2 ldr r1, _080C4F68 ldr r0, _080C4F6C str r0, [r1, 0x8] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C4F54: .4byte 0x0203856c _080C4F58: .4byte 0x02000000 _080C4F5C: .4byte 0x00015ddf _080C4F60: .4byte 0x00015dde _080C4F64: .4byte sub_8106668 _080C4F68: .4byte 0x03001770 _080C4F6C: .4byte sub_80C4F00 thumb_func_end sub_80C4F10 thumb_func_start sub_80C4F70 sub_80C4F70: @ 80C4F70 push {r4,lr} ldr r0, _080C4FA8 ldr r4, _080C4FAC ldrb r1, [r4, 0x15] bl VarSet ldr r0, _080C4FB0 adds r1, r4, 0 adds r1, 0x55 ldrb r1, [r1] bl VarSet ldr r0, _080C4FB4 adds r1, r4, 0 adds r1, 0x95 ldrb r1, [r1] bl VarSet ldr r0, _080C4FB8 adds r1, r4, 0 adds r1, 0xD5 ldrb r1, [r1] bl VarSet pop {r4} pop {r0} bx r0 .align 2, 0 _080C4FA8: .4byte 0x00004010 _080C4FAC: .4byte 0x02038570 _080C4FB0: .4byte 0x00004011 _080C4FB4: .4byte 0x00004012 _080C4FB8: .4byte 0x00004013 thumb_func_end sub_80C4F70 thumb_func_start sub_80C4FBC sub_80C4FBC: @ 80C4FBC push {r4-r6,lr} sub sp, 0x4 ldr r6, _080C501C ldrb r0, [r6] movs r5, 0x64 muls r0, r5 ldr r4, _080C5020 adds r0, r4 movs r1, 0x46 bl PokemonGetField lsls r0, 24 lsrs r0, 24 mov r1, sp strb r0, [r1] cmp r0, 0 bne _080C5038 ldr r0, _080C5024 ldr r1, _080C5028 ldrb r2, [r1] adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 bne _080C5038 ldr r0, _080C502C ldrh r0, [r0] cmp r0, 0x3 bne _080C5038 ldr r1, _080C5030 lsls r0, r2, 1 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] ldr r0, _080C5034 cmp r1, r0 ble _080C5038 movs r1, 0x1 mov r0, sp strb r1, [r0] ldrb r0, [r6] muls r0, r5 adds r0, r4 movs r1, 0x46 mov r2, sp bl pokemon_setattr movs r0, 0x1 b _080C503A .align 2, 0 _080C501C: .4byte 0x02038694 _080C5020: .4byte 0x03004360 _080C5024: .4byte 0x02038690 _080C5028: .4byte 0x02038695 _080C502C: .4byte 0x0203869e _080C5030: .4byte 0x02038678 _080C5034: .4byte 0x0000031f _080C5038: movs r0, 0 _080C503A: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80C4FBC thumb_func_start sub_80C5044 sub_80C5044: @ 80C5044 ldr r0, _080C504C ldrb r0, [r0] bx lr .align 2, 0 _080C504C: .4byte 0x0203856c thumb_func_end sub_80C5044 thumb_func_start sub_80C5050 sub_80C5050: @ 80C5050 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC ldr r4, _080C513C adds r0, r4, 0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _080C512A movs r0, 0xA mov r10, r0 movs r7, 0x3 movs r1, 0x3 movs r2, 0x13 movs r3, 0xD bl DrawDefaultWindow ldr r2, _080C5140 ldr r0, _080C5144 ldrh r1, [r0] lsls r1, 6 adds r0, r1, r2 ldrh r6, [r0] adds r0, r2, 0 adds r0, 0x38 adds r0, r1, r0 ldr r0, [r0] mov r8, r0 adds r2, 0x3C adds r1, r2 ldr r1, [r1] mov r9, r1 adds r0, r4, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r1, _080C5148 lsls r5, r0, 2 adds r5, r0 lsls r5, 3 adds r5, r1 movs r0, 0 strh r0, [r5, 0x8] strh r6, [r5, 0xA] lsls r0, r6, 3 ldr r1, _080C514C adds r0, r1 ldr r1, _080C5150 lsls r2, r6, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] ldr r4, _080C5154 ldr r3, [r4] ldr r4, [r4, 0x4] str r4, [sp] str r6, [sp, 0x4] mov r4, r8 str r4, [sp, 0x8] bl sub_800D334 adds r0, r6, 0 mov r1, r9 mov r2, r8 bl sub_80409C8 adds r4, r0, 0 bl LoadCompressedObjectPalette adds r0, r6, 0 movs r1, 0x1 bl gpu_pal_obj_decompress_and_apply ldr r0, _080C5158 ldrh r1, [r4, 0x4] strh r1, [r0, 0x2] movs r1, 0x78 movs r2, 0x40 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xC] mov r1, r10 strh r1, [r5, 0xE] strh r7, [r5, 0x10] ldr r3, _080C515C lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r0, r3, 0 adds r0, 0x1C adds r0, r1, r0 ldr r2, _080C5160 str r2, [r0] adds r1, r3 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x5] _080C512A: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C513C: .4byte sub_80C5190 _080C5140: .4byte 0x02038570 _080C5144: .4byte 0x0202e8d0 _080C5148: .4byte 0x03004b20 _080C514C: .4byte gMonFrontPicTable _080C5150: .4byte gMonFrontPicCoords _080C5154: .4byte gUnknown_081FAF4C _080C5158: .4byte 0x02024e8c _080C515C: .4byte 0x02020004 _080C5160: .4byte SpriteCallbackDummy thumb_func_end sub_80C5050 thumb_func_start sub_80C5164 sub_80C5164: @ 80C5164 push {lr} ldr r0, _080C5188 bl FindTaskIdByFunc lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF beq _080C5184 ldr r0, _080C518C lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _080C5184: pop {r0} bx r0 .align 2, 0 _080C5188: .4byte sub_80C5190 _080C518C: .4byte 0x03004b20 thumb_func_end sub_80C5164 thumb_func_start sub_80C5190 sub_80C5190: @ 80C5190 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080C51B4 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080C5222 cmp r0, 0x1 bgt _080C51B8 cmp r0, 0 beq _080C51F8 b _080C5222 .align 2, 0 _080C51B4: .4byte 0x03004b20 _080C51B8: cmp r0, 0x2 beq _080C51C2 cmp r0, 0x3 beq _080C5204 b _080C5222 _080C51C2: movs r0, 0xC ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080C5200 adds r5, r0, r1 ldrb r0, [r5, 0x5] lsrs r0, 4 bl GetSpritePaletteTagByPaletteNum lsls r0, 16 lsrs r0, 16 bl FreeSpritePaletteByTag ldrb r0, [r5, 0x1] lsls r0, 30 cmp r0, 0 beq _080C51F2 ldrb r0, [r5, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix _080C51F2: adds r0, r5, 0 bl DestroySprite _080C51F8: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080C5222 .align 2, 0 _080C5200: .4byte 0x02020004 _080C5204: ldrb r2, [r4, 0xE] adds r0, r2, 0 ldrb r3, [r4, 0x10] adds r1, r3, 0 adds r2, 0x9 lsls r2, 24 lsrs r2, 24 adds r3, 0xA lsls r3, 24 lsrs r3, 24 bl Reset adds r0, r5, 0 bl DestroyTask _080C5222: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C5190 thumb_func_start sub_80C5228 sub_80C5228: @ 80C5228 push {r4,lr} ldr r0, _080C5244 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C524C ldr r4, _080C5248 bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 strh r0, [r4] b _080C5252 .align 2, 0 _080C5244: .4byte 0x0203869a _080C5248: .4byte 0x0202e8dc _080C524C: ldr r1, _080C5258 movs r0, 0x4 strh r0, [r1] _080C5252: pop {r4} pop {r0} bx r0 .align 2, 0 _080C5258: .4byte 0x0202e8dc thumb_func_end sub_80C5228 thumb_func_start sub_80C525C sub_80C525C: @ 80C525C push {r4,lr} ldr r0, _080C5280 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C5294 ldr r2, _080C5284 ldr r1, [r2] ldr r0, _080C5288 muls r0, r1 ldr r1, _080C528C adds r0, r1 str r0, [r2] lsrs r0, 16 ldr r4, _080C5290 b _080C529E .align 2, 0 _080C5280: .4byte 0x0203869a _080C5284: .4byte 0x03005d28 _080C5288: .4byte 0x41c64e6d _080C528C: .4byte 0x00006073 _080C5290: .4byte 0x0202e8dc _080C5294: ldr r4, _080C52AC bl Random lsls r0, 16 lsrs r0, 16 _080C529E: ldrh r1, [r4] bl __umodsi3 strh r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080C52AC: .4byte 0x0202e8dc thumb_func_end sub_80C525C thumb_func_start sp000_heal_pokemon sp000_heal_pokemon: @ 80C52B0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r0, 0 mov r8, r0 ldr r0, _080C536C ldrb r0, [r0] cmp r8, r0 bcs _080C535C ldr r1, _080C5370 mov r10, r1 mov r6, sp _080C52CE: movs r0, 0x64 mov r4, r8 muls r4, r0 add r4, r10 adds r0, r4, 0 movs r1, 0x3A bl PokemonGetField lsls r1, r0, 16 strb r0, [r6] lsrs r1, 24 strb r1, [r6, 0x1] adds r0, r4, 0 movs r1, 0x39 mov r2, sp bl pokemon_setattr adds r0, r4, 0 movs r1, 0x15 bl PokemonGetField lsls r0, 24 lsrs r7, r0, 24 movs r5, 0 movs r1, 0x1 add r1, r8 mov r9, r1 _080C5304: adds r1, r5, 0 adds r1, 0xD adds r0, r4, 0 bl PokemonGetField lsls r0, 16 lsrs r0, 16 adds r1, r7, 0 adds r2, r5, 0 bl CalcPPWithPPUps strb r0, [r6] adds r1, r5, 0 adds r1, 0x11 adds r0, r4, 0 mov r2, sp bl pokemon_setattr adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _080C5304 movs r0, 0 strb r0, [r6] strb r0, [r6, 0x1] strb r0, [r6, 0x2] strb r0, [r6, 0x3] movs r1, 0x64 mov r0, r8 muls r0, r1 add r0, r10 movs r1, 0x37 mov r2, sp bl pokemon_setattr mov r1, r9 lsls r0, r1, 24 lsrs r0, 24 mov r8, r0 ldr r0, _080C536C ldrb r0, [r0] cmp r8, r0 bcc _080C52CE _080C535C: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C536C: .4byte 0x03004350 _080C5370: .4byte 0x03004360 thumb_func_end sp000_heal_pokemon thumb_func_start sub_80C5374 sub_80C5374: @ 80C5374 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x78 adds r5, r0, 0 adds r3, r1, 0 adds r4, r2, 0 lsls r5, 16 lsrs r5, 16 lsls r3, 24 lsrs r3, 24 lsls r4, 16 lsrs r0, r4, 16 mov r8, r0 add r6, sp, 0x14 movs r0, 0 str r0, [sp] str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] adds r0, r6, 0 adds r1, r5, 0 adds r2, r3, 0 movs r3, 0x20 bl create_pokemon_set_level add r0, sp, 0x10 mov r1, r8 strb r1, [r0] lsrs r4, 24 strb r4, [r0, 0x1] adds r0, r6, 0 movs r1, 0xC add r2, sp, 0x10 bl pokemon_setattr adds r0, r6, 0 bl pokemon_catch lsls r0, 24 lsrs r4, r0, 24 adds r0, r5, 0 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r5, r0, 16 cmp r4, 0x1 bgt _080C53E8 cmp r4, 0 blt _080C53E8 adds r0, r5, 0 movs r1, 0x2 bl sub_8090D90 adds r0, r5, 0 movs r1, 0x3 bl sub_8090D90 _080C53E8: adds r0, r4, 0 add sp, 0x78 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80C5374 thumb_func_start sub_80C53F8 sub_80C53F8: @ 80C53F8 push {lr} sub sp, 0x68 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 mov r0, sp movs r2, 0x1 bl sub_8042044 add r2, sp, 0x64 movs r0, 0x1 strb r0, [r2] mov r0, sp movs r1, 0x2D bl pokemon_setattr mov r0, sp bl pokemon_catch lsls r0, 24 lsrs r0, 24 add sp, 0x68 pop {r1} bx r1 thumb_func_end sub_80C53F8 thumb_func_start sub_80C5428 sub_80C5428: @ 80C5428 push {lr} bl sub_803DAA0 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 beq _080C5444 cmp r1, 0x1 bgt _080C5440 cmp r1, 0 beq _080C5444 b _080C5448 _080C5440: cmp r1, 0x2 bne _080C5448 _080C5444: ldr r0, _080C544C strh r1, [r0] _080C5448: pop {r0} bx r0 .align 2, 0 _080C544C: .4byte 0x0202e8dc thumb_func_end sub_80C5428 thumb_func_start sub_80C5450 sub_80C5450: @ 80C5450 push {r4-r7,lr} lsls r0, 16 lsrs r6, r0, 16 movs r5, 0 movs r7, 0xCE lsls r7, 1 _080C545C: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _080C548C adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _080C5490 cmp r0, r7 beq _080C5490 adds r0, r4, 0 movs r1, 0xC bl PokemonGetField cmp r0, r6 bne _080C5490 movs r0, 0x1 b _080C5498 .align 2, 0 _080C548C: .4byte 0x03004360 _080C5490: adds r5, 0x1 cmp r5, 0x5 ble _080C545C movs r0, 0 _080C5498: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80C5450 thumb_func_start sub_80C54A0 sub_80C54A0: @ 80C54A0 push {r4,lr} movs r0, 0xAF bl sub_80C5450 lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 cmp r4, 0x1 bne _080C54C2 movs r0, 0xAF bl ItemIdToBerryType lsls r0, 24 lsrs r0, 24 ldr r1, _080C54CC bl GetBerryNameByBerryType _080C54C2: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080C54CC: .4byte 0x020231cc thumb_func_end sub_80C54A0 thumb_func_start sub_80C54D0 sub_80C54D0: @ 80C54D0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 lsls r7, r2, 16 lsrs r6, r7, 16 bl zero_enemy_party_data ldr r0, _080C552C mov r8, r0 movs r0, 0 str r0, [sp] str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] mov r0, r8 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x20 bl create_pokemon_set_level cmp r6, 0 beq _080C551E add r0, sp, 0x10 strb r6, [r0] adds r1, r0, 0 lsrs r0, r7, 24 strb r0, [r1, 0x1] mov r0, r8 movs r1, 0xC add r2, sp, 0x10 bl pokemon_setattr _080C551E: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C552C: .4byte 0x030045c0 thumb_func_end sub_80C54D0 thumb_func_start sub_80C5530 sub_80C5530: @ 80C5530 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 16 lsrs r4, r1, 16 lsls r2, 24 lsrs r2, 24 cmp r3, 0x6 bls _080C554C ldr r0, _080C5560 ldrb r0, [r0] subs r0, 0x1 lsls r0, 24 lsrs r3, r0, 24 _080C554C: movs r0, 0x64 muls r0, r3 ldr r1, _080C5564 adds r0, r1 adds r1, r4, 0 bl sub_803B6A4 pop {r4} pop {r0} bx r0 .align 2, 0 _080C5560: .4byte 0x03004350 _080C5564: .4byte 0x03004360 thumb_func_end sub_80C5530 thumb_func_start sub_80C5568 sub_80C5568: @ 80C5568 push {lr} ldr r1, _080C5578 ldr r0, _080C557C str r0, [r1, 0x8] bl sub_8121E10 pop {r0} bx r0 .align 2, 0 _080C5578: .4byte 0x03001770 _080C557C: .4byte sub_80C5580 thumb_func_end sub_80C5568 thumb_func_start sub_80C5580 sub_80C5580: @ 80C5580 push {lr} ldr r0, _080C5590 ldrb r1, [r0] cmp r1, 0 bne _080C5598 ldr r0, _080C5594 strh r1, [r0] b _080C559E .align 2, 0 _080C5590: .4byte 0x02039270 _080C5594: .4byte 0x0202e8dc _080C5598: ldr r1, _080C55A8 movs r0, 0x1 strh r0, [r1] _080C559E: ldr r0, _080C55AC bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _080C55A8: .4byte 0x0202e8dc _080C55AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end sub_80C5580 thumb_func_start sub_80C55B0 sub_80C55B0: @ 80C55B0 push {lr} ldr r1, _080C55C0 ldr r0, _080C55C4 str r0, [r1, 0x8] bl sub_8121E34 pop {r0} bx r0 .align 2, 0 _080C55C0: .4byte 0x03001770 _080C55C4: .4byte sub_80C55C8 thumb_func_end sub_80C55B0 thumb_func_start sub_80C55C8 sub_80C55C8: @ 80C55C8 push {r4,lr} ldr r0, _080C55DC ldrb r4, [r0] cmp r4, 0 bne _080C55E4 bl copy_player_party_from_sav1 ldr r0, _080C55E0 strh r4, [r0] b _080C55EE .align 2, 0 _080C55DC: .4byte 0x02039270 _080C55E0: .4byte 0x0202e8dc _080C55E4: bl sub_80C5604 ldr r1, _080C55FC movs r0, 0x1 strh r0, [r1] _080C55EE: ldr r0, _080C5600 bl SetMainCallback2 pop {r4} pop {r0} bx r0 .align 2, 0 _080C55FC: .4byte 0x0202e8dc _080C5600: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end sub_80C55C8 thumb_func_start sub_80C5604 sub_80C5604: @ 80C5604 push {r4-r7,lr} sub sp, 0x134 add r0, sp, 0x12C movs r1, 0 str r1, [r0] ldr r2, _080C5674 mov r1, sp bl CpuSet movs r5, 0 movs r7, 0x64 ldr r6, _080C5678 mov r4, sp _080C561E: ldr r0, _080C567C adds r1, r5, r0 ldrb r0, [r1] cmp r0, 0 beq _080C5638 subs r0, 0x1 adds r1, r0, 0 muls r1, r7 adds r1, r6 adds r0, r4, 0 movs r2, 0x64 bl memcpy _080C5638: adds r4, 0x64 adds r5, 0x1 cmp r5, 0x2 ble _080C561E add r0, sp, 0x130 movs r1, 0 str r1, [r0] ldr r4, _080C5678 ldr r2, _080C5680 adds r1, r4, 0 bl CpuSet mov r5, sp add r6, sp, 0xC8 _080C5654: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x64 bl memcpy adds r5, 0x64 adds r4, 0x64 cmp r5, r6 ble _080C5654 bl calc_player_party_count add sp, 0x134 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C5674: .4byte 0x0500004b _080C5678: .4byte 0x03004360 _080C567C: .4byte 0x02039270 _080C5680: .4byte 0x05000096 thumb_func_end sub_80C5604 thumb_func_start sub_80C5684 sub_80C5684: @ 80C5684 push {lr} movs r1, 0x41 bl PokemonGetField lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _080C569C movs r0, 0xCE lsls r0, 1 cmp r1, r0 bne _080C56A0 _080C569C: movs r0, 0 b _080C56A2 _080C56A0: movs r0, 0x1 _080C56A2: pop {r1} bx r1 thumb_func_end sub_80C5684 thumb_func_start sub_80C56A8 sub_80C56A8: @ 80C56A8 push {r4,r5,lr} ldr r4, _080C56C8 movs r5, 0 _080C56AE: adds r0, r4, 0 bl sub_80C5684 cmp r0, 0 beq _080C56CC adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _080C56CC movs r0, 0 b _080C56D6 .align 2, 0 _080C56C8: .4byte 0x03004360 _080C56CC: adds r5, 0x1 adds r4, 0x64 cmp r5, 0x5 ble _080C56AE movs r0, 0x1 _080C56D6: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80C56A8 thumb_func_start sub_80C56DC sub_80C56DC: @ 80C56DC push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 movs r1, 0x64 adds r4, r0, 0 muls r4, r1 ldr r0, _080C5720 adds r4, r0 movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r1, 0x7 bl sub_803FCD4 adds r0, r4, 0 movs r1, 0x37 mov r2, sp bl pokemon_setattr ldr r5, _080C5724 adds r0, r4, 0 movs r1, 0x2 adds r2, r5, 0 bl PokemonGetField adds r0, r5, 0 bl StringGetEnd10 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C5720: .4byte 0x03004360 _080C5724: .4byte 0x020231cc thumb_func_end sub_80C56DC thumb_func_start sub_80C5728 sub_80C5728: @ 80C5728 push {r4,lr} lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r1, r0 ldr r0, _080C5764 adds r4, r1, r0 adds r0, r4, 0 bl sub_80C5684 cmp r0, 0 beq _080C5768 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 bne _080C5768 adds r0, r4, 0 movs r1, 0x37 bl PokemonGetField bl pokemon_ailments_get_primary lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C5768 movs r0, 0x1 b _080C576A .align 2, 0 _080C5764: .4byte 0x03004360 _080C5768: movs r0, 0 _080C576A: pop {r4} pop {r1} bx r1 thumb_func_end sub_80C5728 thumb_func_start sub_80C5770 sub_80C5770: @ 80C5770 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080C5794 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080C57CA cmp r0, 0x1 bgt _080C5798 cmp r0, 0 beq _080C579E b _080C581A .align 2, 0 _080C5794: .4byte 0x03004b28 _080C5798: cmp r0, 0x2 beq _080C57DC b _080C581A _080C579E: ldrh r1, [r4, 0x2] movs r2, 0x2 ldrsh r0, [r4, r2] cmp r0, 0x5 bgt _080C57C4 _080C57A8: lsls r0, r1, 24 lsrs r0, 24 bl sub_80C5728 cmp r0, 0 bne _080C57F4 ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] adds r1, r0, 0 lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _080C57A8 _080C57C4: movs r0, 0x2 strh r0, [r4] b _080C581A _080C57CA: bl sub_8064C84 lsls r0, 24 cmp r0, 0 beq _080C581A ldrh r0, [r4] subs r0, 0x1 strh r0, [r4] b _080C581A _080C57DC: bl sub_80C56A8 adds r1, r0, 0 cmp r1, 0 beq _080C580C ldr r1, _080C57F0 movs r0, 0x1 strh r0, [r1] b _080C5810 .align 2, 0 _080C57F0: .4byte 0x0202e8dc _080C57F4: ldrb r0, [r4, 0x2] bl sub_80C56DC ldr r0, _080C5808 bl box_related_two__2 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080C581A .align 2, 0 _080C5808: .4byte UnknownString_81A1132 _080C580C: ldr r0, _080C5820 strh r1, [r0] _080C5810: bl script_env_2_enable_and_set_ctx_running adds r0, r5, 0 bl DestroyTask _080C581A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C5820: .4byte 0x0202e8dc thumb_func_end sub_80C5770 thumb_func_start sub_80C5824 sub_80C5824: @ 80C5824 push {lr} ldr r0, _080C5838 movs r1, 0x50 bl CreateTask bl sub_80655F0 pop {r0} bx r0 .align 2, 0 _080C5838: .4byte sub_80C5770 thumb_func_end sub_80C5824 thumb_func_start overworld_poison overworld_poison: @ 80C583C push {r4-r7,lr} sub sp, 0x4 ldr r4, _080C58A8 movs r7, 0 movs r6, 0 movs r5, 0x5 _080C5848: adds r0, r4, 0 movs r1, 0x5 bl PokemonGetField cmp r0, 0 beq _080C588C adds r0, r4, 0 movs r1, 0x37 bl PokemonGetField bl pokemon_ailments_get_primary lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C588C adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField str r0, [sp] cmp r0, 0 beq _080C587E subs r0, 0x1 str r0, [sp] cmp r0, 0 bne _080C5880 _080C587E: adds r6, 0x1 _080C5880: adds r0, r4, 0 movs r1, 0x39 mov r2, sp bl pokemon_setattr adds r7, 0x1 _080C588C: adds r4, 0x64 subs r5, 0x1 cmp r5, 0 bge _080C5848 cmp r6, 0 bne _080C589C cmp r7, 0 beq _080C58A0 _080C589C: bl overworld_posion_effect _080C58A0: cmp r6, 0 beq _080C58AC movs r0, 0x2 b _080C58B6 .align 2, 0 _080C58A8: .4byte 0x03004360 _080C58AC: cmp r7, 0 bne _080C58B4 movs r0, 0 b _080C58B6 _080C58B4: movs r0, 0x1 _080C58B6: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end overworld_poison thumb_func_start sub_80C58C0 sub_80C58C0: @ 80C58C0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r5, r0, 0 movs r1, 0 bl PokemonGetField lsls r0, 16 str r0, [sp, 0x4] lsrs r0, 16 str r0, [sp] adds r0, r5, 0 movs r1, 0x27 bl PokemonGetField adds r7, r0, 0 movs r6, 0xF ands r7, r6 adds r0, r5, 0 movs r1, 0x28 bl PokemonGetField mov r8, r0 mov r1, r8 ands r1, r6 mov r8, r1 adds r0, r5, 0 movs r1, 0x29 bl PokemonGetField mov r9, r0 mov r3, r9 ands r3, r6 mov r9, r3 adds r0, r5, 0 movs r1, 0x2A bl PokemonGetField mov r10, r0 ands r0, r6 mov r10, r0 adds r0, r5, 0 movs r1, 0x2B bl PokemonGetField adds r4, r0, 0 ands r4, r6 adds r0, r5, 0 movs r1, 0x2C bl PokemonGetField adds r2, r0, 0 ands r2, r6 mov r1, r8 mov r3, r9 eors r1, r3 mov r8, r1 mov r0, r8 muls r0, r7 movs r1, 0xFF ldr r3, [sp] ands r3, r1 eors r0, r3 eors r4, r2 mov r1, r10 muls r1, r4 ldr r3, [sp, 0x4] lsrs r2, r3, 24 eors r1, r2 lsls r0, 8 adds r0, r1 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80C58C0 thumb_func_start sub_80C5964 sub_80C5964: @ 80C5964 push {lr} lsls r0, 16 lsrs r2, r0, 16 movs r1, 0x1 ldr r3, _080C5980 _080C596E: lsls r0, r1, 3 adds r0, r3 ldrh r0, [r0, 0x4] cmp r2, r0 bcs _080C5984 subs r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 b _080C5990 .align 2, 0 _080C5980: .4byte gUnknown_083D180C _080C5984: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xE bls _080C596E adds r0, r1, 0 _080C5990: pop {r1} bx r1 thumb_func_end sub_80C5964 thumb_func_start sub_80C5994 sub_80C5994: @ 80C5994 push {r4-r7,lr} sub sp, 0x8 adds r6, r1, 0 lsls r0, 16 lsrs r0, 16 lsls r6, 16 lsrs r6, 16 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0 bl sub_8090D54 lsls r0, 16 lsrs r7, r0, 16 adds r0, r6, 0 bl sub_80C5964 lsls r0, 24 ldr r1, _080C5A04 lsrs r0, 21 adds r0, r1 ldrh r1, [r0] str r1, [sp] movs r2, 0 str r2, [sp, 0x4] ldrb r2, [r0, 0x2] movs r3, 0 ldrh r4, [r0, 0x4] movs r5, 0 adds r0, r6, 0 movs r1, 0 subs r0, r4 sbcs r1, r5 bl __udivdi3 ldr r2, [sp] ldr r3, [sp, 0x4] adds r2, r0 adcs r3, r1 str r2, [sp] str r3, [sp, 0x4] adds r0, r7, 0 movs r1, 0 bl __muldi3 movs r2, 0xA movs r3, 0 bl __udivdi3 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080C5A04: .4byte gUnknown_083D180C thumb_func_end sub_80C5994 thumb_func_start sub_80C5A08 sub_80C5A08: @ 80C5A08 push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 adds r5, r1, 0 ldr r1, _080C5A78 mov r0, sp movs r2, 0x2 bl memcpy lsls r4, r5, 2 adds r4, r5 lsls r4, 1 adds r0, r4, 0 bl __floatsidf cmp r4, 0 bge _080C5A32 ldr r2, _080C5A7C ldr r3, _080C5A80 bl __adddf3 _080C5A32: ldr r2, _080C5A84 ldr r3, _080C5A88 bl __divdf3 bl __fixunsdfsi adds r5, r0, 0 movs r1, 0xA bl __udivsi3 adds r1, r0, 0 adds r0, r6, 0 movs r2, 0 movs r3, 0x8 bl ConvertIntToDecimalStringN adds r6, r0, 0 mov r1, sp bl StringAppend adds r6, r0, 0 adds r0, r5, 0 movs r1, 0xA bl __umodsi3 adds r1, r0, 0 adds r0, r6, 0 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C5A78: .4byte gUnknown_083D188C _080C5A7C: .4byte 0x41f00000 _080C5A80: .4byte 0x00000000 _080C5A84: .4byte 0x40396666 _080C5A88: .4byte 0x66666666 thumb_func_end sub_80C5A08 thumb_func_start sub_80C5A8C sub_80C5A8C: @ 80C5A8C push {r4-r7,lr} sub sp, 0x4 adds r7, r1, 0 lsls r0, 16 lsrs r6, r0, 16 ldr r1, _080C5AA4 ldrh r0, [r1] cmp r0, 0xFF bne _080C5AA8 movs r0, 0 b _080C5B12 .align 2, 0 _080C5AA4: .4byte 0x0202e8dc _080C5AA8: ldrh r1, [r1] movs r0, 0x64 muls r1, r0 ldr r0, _080C5AD0 adds r5, r1, r0 adds r0, r5, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0x1 beq _080C5ACA adds r0, r5, 0 movs r1, 0xB bl PokemonGetField cmp r0, r6 beq _080C5AD4 _080C5ACA: movs r0, 0x1 b _080C5B12 .align 2, 0 _080C5AD0: .4byte 0x03004360 _080C5AD4: mov r4, sp adds r0, r5, 0 bl sub_80C58C0 strh r0, [r4] mov r0, sp ldrh r1, [r0] adds r0, r6, 0 bl sub_80C5994 adds r5, r0, 0 ldrh r1, [r7] adds r0, r6, 0 bl sub_80C5994 adds r4, r0, 0 ldr r0, _080C5B0C adds r1, r5, 0 bl sub_80C5A08 cmp r5, r4 bls _080C5B10 mov r0, sp ldrh r0, [r0] strh r0, [r7] movs r0, 0x3 b _080C5B12 .align 2, 0 _080C5B0C: .4byte 0x020232cc _080C5B10: movs r0, 0x2 _080C5B12: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80C5A8C thumb_func_start sub_80C5B1C sub_80C5B1C: @ 80C5B1C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 lsrs r4, 16 ldrh r1, [r5] adds r0, r4, 0 bl sub_80C5994 adds r1, r0, 0 ldr r0, _080C5B58 bl sub_80C5A08 ldr r0, _080C5B5C movs r1, 0xB muls r1, r4 ldr r2, _080C5B60 adds r1, r2 bl StringCopy ldrh r1, [r5] movs r0, 0x81 lsls r0, 8 cmp r1, r0 bne _080C5B6C ldr r0, _080C5B64 ldr r1, _080C5B68 bl StringCopy b _080C5B74 .align 2, 0 _080C5B58: .4byte 0x020233cc _080C5B5C: .4byte 0x020231cc _080C5B60: .4byte gSpeciesNames _080C5B64: .4byte 0x020232cc _080C5B68: .4byte gUnknown_0842C9E1 _080C5B6C: ldr r0, _080C5B7C ldr r1, _080C5B80 bl StringCopy _080C5B74: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C5B7C: .4byte 0x020232cc _080C5B80: .4byte gSaveBlock2 thumb_func_end sub_80C5B1C thumb_func_start sub_80C5B84 sub_80C5B84: @ 80C5B84 push {lr} ldr r0, _080C5B94 movs r1, 0x81 lsls r1, 8 bl VarSet pop {r0} bx r0 .align 2, 0 _080C5B94: .4byte 0x00004047 thumb_func_end sub_80C5B84 thumb_func_start sub_80C5B98 sub_80C5B98: @ 80C5B98 push {lr} ldr r0, _080C5BB0 bl GetVarPointer adds r1, r0, 0 movs r0, 0x99 lsls r0, 1 bl sub_80C5B1C pop {r0} bx r0 .align 2, 0 _080C5BB0: .4byte 0x00004047 thumb_func_end sub_80C5B98 thumb_func_start sub_80C5BB4 sub_80C5BB4: @ 80C5BB4 push {r4,lr} ldr r0, _080C5BD4 bl GetVarPointer adds r1, r0, 0 ldr r4, _080C5BD8 movs r0, 0x99 lsls r0, 1 bl sub_80C5A8C lsls r0, 24 lsrs r0, 24 strh r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080C5BD4: .4byte 0x00004047 _080C5BD8: .4byte 0x0202e8dc thumb_func_end sub_80C5BB4 thumb_func_start sub_80C5BDC sub_80C5BDC: @ 80C5BDC push {lr} ldr r0, _080C5BEC movs r1, 0x81 lsls r1, 8 bl VarSet pop {r0} bx r0 .align 2, 0 _080C5BEC: .4byte 0x0000404f thumb_func_end sub_80C5BDC thumb_func_start sub_80C5BF0 sub_80C5BF0: @ 80C5BF0 push {lr} ldr r0, _080C5C04 bl GetVarPointer adds r1, r0, 0 ldr r0, _080C5C08 bl sub_80C5B1C pop {r0} bx r0 .align 2, 0 _080C5C04: .4byte 0x0000404f _080C5C08: .4byte 0x00000143 thumb_func_end sub_80C5BF0 thumb_func_start sub_80C5C0C sub_80C5C0C: @ 80C5C0C push {r4,lr} ldr r0, _080C5C2C bl GetVarPointer adds r1, r0, 0 ldr r4, _080C5C30 ldr r0, _080C5C34 bl sub_80C5A8C lsls r0, 24 lsrs r0, 24 strh r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080C5C2C: .4byte 0x0000404f _080C5C30: .4byte 0x0202e8dc _080C5C34: .4byte 0x00000143 thumb_func_end sub_80C5C0C thumb_func_start sub_80C5C38 sub_80C5C38: @ 80C5C38 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r5, r1, 24 movs r7, 0 add r4, sp, 0x8 movs r0, 0x1 strb r0, [r4] ldr r1, _080C5CC0 mov r0, sp movs r2, 0x7 bl memcpy mov r8, r4 cmp r6, 0xA bhi _080C5CB2 cmp r5, 0x40 bhi _080C5CB2 ldr r0, _080C5CC4 ldr r1, _080C5CC8 adds r0, r1 adds r0, r6, r0 strb r5, [r0] movs r5, 0 _080C5C70: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _080C5CCC adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _080C5CA2 adds r0, r4, 0 movs r1, 0x6 bl PokemonGetField cmp r0, 0 bne _080C5CA2 mov r1, sp adds r0, r1, r6 ldrb r1, [r0] adds r0, r4, 0 mov r2, r8 bl pokemon_setattr movs r7, 0x1 _080C5CA2: adds r5, 0x1 cmp r5, 0x5 ble _080C5C70 cmp r7, 0 beq _080C5CB2 ldr r0, _080C5CD0 bl FlagSet _080C5CB2: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C5CC0: .4byte gUnknown_083D188E _080C5CC4: .4byte 0x02025734 _080C5CC8: .4byte 0x00003110 _080C5CCC: .4byte 0x03004360 _080C5CD0: .4byte 0x0000083b thumb_func_end sub_80C5C38 thumb_func_start sub_80C5CD4 sub_80C5CD4: @ 80C5CD4 push {r4-r7,lr} sub sp, 0x28 adds r7, r0, 0 ldr r0, _080C5D64 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x18] str r1, [sp, 0x1C] ldr r0, _080C5D68 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x20] str r1, [sp, 0x24] mov r1, sp ldr r0, _080C5D6C ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldrh r3, [r7] lsls r2, r3, 16 add r0, sp, 0x18 ldrh r1, [r0, 0x4] orrs r1, r2 str r1, [r0, 0x4] mov r1, sp movs r6, 0 strh r3, [r1] ldrh r2, [r7, 0x2] ldr r5, _080C5D70 add r4, sp, 0x20 ldr r1, [r4, 0x4] ands r1, r5 orrs r1, r2 str r1, [r4, 0x4] mov r1, sp strh r2, [r1, 0x2] bl LoadSpriteSheet adds r0, r4, 0 bl LoadSpritePalette movs r0, 0x1 strh r0, [r7, 0xC] strh r6, [r7, 0xA] strh r6, [r7, 0x8] ldrh r0, [r7, 0x2] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 movs r1, 0x80 lsls r1, 9 lsls r1, r0 bics r5, r1 str r5, [r7, 0x10] ldrh r0, [r7, 0x4] cmp r0, 0 bne _080C5D4E movs r0, 0x10 strh r0, [r7, 0x4] _080C5D4E: ldrh r0, [r7, 0x6] cmp r0, 0 bne _080C5D58 movs r0, 0x14 strh r0, [r7, 0x6] _080C5D58: ldr r0, _080C5D74 str r7, [r0] movs r4, 0 ldr r5, _080C5D78 b _080C5D94 .align 2, 0 _080C5D64: .4byte gUnknown_083D1898 _080C5D68: .4byte gUnknown_083D18A0 _080C5D6C: .4byte gSpriteTemplate_83D18A8 _080C5D70: .4byte 0xffff0000 _080C5D74: .4byte 0x020387ec _080C5D78: .4byte 0x02020004 _080C5D7C: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r7, 0x4] cmp r4, 0x3 bhi _080C5D8C negs r1, r1 _080C5D8C: strh r1, [r0, 0x2E] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _080C5D94: cmp r4, 0x7 bhi _080C5DB2 lsls r1, r4, 5 adds r1, 0x8 lsls r1, 16 asrs r1, 16 mov r0, sp movs r2, 0x50 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 bne _080C5D7C _080C5DB2: ldr r1, _080C5DC8 movs r0, 0xBF strh r0, [r1] adds r1, 0x4 movs r0, 0x10 strh r0, [r1] add sp, 0x28 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C5DC8: .4byte REG_BLDCNT thumb_func_end sub_80C5CD4 thumb_func_start sub_80C5DCC sub_80C5DCC: @ 80C5DCC push {r4,lr} ldr r4, _080C5E10 ldr r1, [r4] ldrh r0, [r1, 0x8] cmp r0, 0 bne _080C5DF0 ldr r0, [r1, 0x10] ldr r2, _080C5E14 movs r1, 0x10 bl BlendPalettes ldr r0, _080C5E18 bl sub_80C61B0 ldr r1, [r4] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _080C5DF0: ldr r1, [r4] ldrh r0, [r1, 0xA] cmp r0, 0x7 bls _080C5E0A ldrh r0, [r1, 0x6] ldrh r2, [r1, 0xC] adds r0, r2 movs r2, 0 strh r0, [r1, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x4F bgt _080C5E1C _080C5E0A: movs r0, 0 b _080C5E2E .align 2, 0 _080C5E10: .4byte 0x020387ec _080C5E14: .4byte 0x0000ffff _080C5E18: .4byte sub_80C603C _080C5E1C: movs r0, 0x50 strh r0, [r1, 0xC] ldr r0, _080C5E34 strh r2, [r0] adds r0, 0x4 strh r2, [r0] bl ClearGpuRegBits movs r0, 0x1 _080C5E2E: pop {r4} pop {r1} bx r1 .align 2, 0 _080C5E34: .4byte REG_BLDCNT thumb_func_end sub_80C5DCC thumb_func_start sub_80C5E38 sub_80C5E38: @ 80C5E38 push {r4-r7,lr} sub sp, 0x28 adds r7, r0, 0 ldr r0, _080C5EC8 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x18] str r1, [sp, 0x1C] ldr r0, _080C5ECC ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x20] str r1, [sp, 0x24] mov r1, sp ldr r0, _080C5ED0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldrh r3, [r7] lsls r2, r3, 16 add r0, sp, 0x18 ldrh r1, [r0, 0x4] orrs r1, r2 str r1, [r0, 0x4] mov r1, sp movs r6, 0 strh r3, [r1] ldrh r2, [r7, 0x2] ldr r5, _080C5ED4 add r4, sp, 0x20 ldr r1, [r4, 0x4] ands r1, r5 orrs r1, r2 str r1, [r4, 0x4] mov r1, sp strh r2, [r1, 0x2] bl LoadSpriteSheet adds r0, r4, 0 bl LoadSpritePalette movs r0, 0x50 strh r0, [r7, 0xC] strh r6, [r7, 0x8] strh r6, [r7, 0xA] ldrh r0, [r7, 0x2] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 movs r1, 0x80 lsls r1, 9 lsls r1, r0 bics r5, r1 str r5, [r7, 0x10] ldrh r0, [r7, 0x4] cmp r0, 0 bne _080C5EB2 movs r0, 0x10 strh r0, [r7, 0x4] _080C5EB2: ldrh r0, [r7, 0x6] cmp r0, 0 bne _080C5EBC movs r0, 0x14 strh r0, [r7, 0x6] _080C5EBC: ldr r0, _080C5ED8 str r7, [r0] movs r5, 0 ldr r6, _080C5EDC b _080C5F4A .align 2, 0 _080C5EC8: .4byte gUnknown_083D1898 _080C5ECC: .4byte gUnknown_083D18A0 _080C5ED0: .4byte gSpriteTemplate_83D18C0 _080C5ED4: .4byte 0xffff0000 _080C5ED8: .4byte 0x020387ec _080C5EDC: .4byte 0x02020004 _080C5EE0: lsls r2, r3, 4 adds r1, r2, r3 lsls r1, 2 adds r1, r6 ldrh r0, [r7, 0x4] strh r0, [r1, 0x2E] movs r0, 0x1 strh r0, [r1, 0x30] ldr r1, _080C5EF4 b _080C5F2A .align 2, 0 _080C5EF4: .4byte 0x02020004 _080C5EF8: lsls r1, r5, 21 movs r0, 0x80 lsls r0, 16 adds r1, r0 asrs r1, 16 mov r0, sp movs r2, 0x50 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 beq _080C5F6E lsls r2, r3, 4 adds r1, r2, r3 lsls r1, 2 adds r1, r6 ldrh r0, [r7, 0x4] negs r0, r0 strh r0, [r1, 0x2E] ldr r0, _080C5F88 strh r0, [r1, 0x30] ldr r1, _080C5F8C lsls r4, r5, 5 _080C5F2A: adds r0, r2, r3 lsls r0, 2 adds r0, r1 adds r1, r4, 0 adds r1, 0x8 movs r2, 0 strh r1, [r0, 0x32] strh r2, [r0, 0x36] adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _080C5F4A: cmp r5, 0x7 bhi _080C5F6E cmp r5, 0x3 bhi _080C5EF8 lsls r4, r5, 5 adds r1, r4, 0 subs r1, 0x70 lsls r1, 16 asrs r1, 16 mov r0, sp movs r2, 0x50 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 bne _080C5EE0 _080C5F6E: ldr r1, _080C5F90 movs r0, 0xFF strh r0, [r1] adds r1, 0x4 movs r0, 0x10 strh r0, [r1] ldr r0, _080C5F94 bl sub_80C61B0 add sp, 0x28 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C5F88: .4byte 0x0000ffff _080C5F8C: .4byte 0x02020004 _080C5F90: .4byte REG_BLDCNT _080C5F94: .4byte sub_80C6078 thumb_func_end sub_80C5E38 thumb_func_start sub_80C5F98 sub_80C5F98: @ 80C5F98 push {r4,lr} ldr r4, _080C5FB0 ldr r2, [r4] ldrh r0, [r2, 0x8] cmp r0, 0x1 beq _080C5FEC cmp r0, 0x1 bgt _080C5FB4 cmp r0, 0 beq _080C5FBA b _080C602C .align 2, 0 _080C5FB0: .4byte 0x020387ec _080C5FB4: cmp r0, 0x2 beq _080C6008 b _080C602C _080C5FBA: ldrh r0, [r2, 0xC] ldrh r1, [r2, 0x6] subs r0, r1 strh r0, [r2, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bgt _080C6034 ldr r0, [r2, 0x10] ldr r2, _080C5FE4 movs r1, 0x10 bl BlendPalettes ldr r0, _080C5FE8 bl SetHBlankCallback ldr r1, [r4] movs r0, 0x1 strh r0, [r1, 0xC] b _080C6000 .align 2, 0 _080C5FE4: .4byte 0x0000ffff _080C5FE8: .4byte sub_80C603C _080C5FEC: ldrh r0, [r2, 0xA] cmp r0, 0x8 bne _080C6034 movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes ldr r1, [r4] _080C6000: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _080C6034 _080C6008: ldr r0, _080C6030 movs r1, 0 strh r1, [r0] adds r0, 0x4 strh r1, [r0] ldrh r0, [r2] bl FreeSpriteTilesByTag ldr r0, [r4] ldrh r0, [r0, 0x2] bl FreeSpritePaletteByTag bl ClearGpuRegBits ldr r1, [r4] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _080C602C: movs r0, 0x1 b _080C6036 .align 2, 0 _080C6030: .4byte REG_BLDCNT _080C6034: movs r0, 0 _080C6036: pop {r4} pop {r1} bx r1 thumb_func_end sub_80C5F98 thumb_func_start sub_80C603C sub_80C603C: @ 80C603C push {lr} sub sp, 0x4 mov r2, sp ldr r0, _080C6060 ldrh r1, [r0] movs r3, 0xFF adds r0, r3, 0 ands r0, r1 strh r0, [r2] mov r0, sp ldrh r0, [r0] cmp r0, 0x50 bne _080C6068 ldr r1, _080C6064 movs r0, 0x8F strh r0, [r1] b _080C606C .align 2, 0 _080C6060: .4byte REG_VCOUNT _080C6064: .4byte REG_BLDCNT _080C6068: ldr r0, _080C6074 strh r3, [r0] _080C606C: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080C6074: .4byte REG_BLDCNT thumb_func_end sub_80C603C thumb_func_start sub_80C6078 sub_80C6078: @ 80C6078 push {lr} sub sp, 0x4 mov r2, sp ldr r0, _080C60B0 ldrh r1, [r0] movs r0, 0xFF ands r0, r1 strh r0, [r2] mov r0, sp ldrh r1, [r0] ldr r0, _080C60B4 ldr r0, [r0] movs r3, 0xC ldrsh r2, [r0, r3] movs r0, 0x50 subs r0, r2 cmp r1, r0 ble _080C60BC mov r0, sp ldrh r1, [r0] adds r0, r2, 0 adds r0, 0x50 cmp r1, r0 bge _080C60BC ldr r1, _080C60B8 movs r0, 0 b _080C60C0 .align 2, 0 _080C60B0: .4byte REG_VCOUNT _080C60B4: .4byte 0x020387ec _080C60B8: .4byte REG_BLDY _080C60BC: ldr r1, _080C60C8 movs r0, 0x10 _080C60C0: strh r0, [r1] add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080C60C8: .4byte REG_BLDY thumb_func_end sub_80C6078 thumb_func_start sub_80C60CC sub_80C60CC: @ 80C60CC push {r4,lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x20] adds r0, r1 strh r0, [r2, 0x20] adds r0, 0x8 lsls r0, 16 movs r1, 0x80 lsls r1, 17 cmp r0, r1 bls _080C611C adds r0, r2, 0 bl DestroySprite ldr r4, _080C6124 ldr r1, [r4] ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] lsls r0, 16 lsrs r0, 16 cmp r0, 0x8 bne _080C611C ldrh r0, [r1] bl FreeSpriteTilesByTag ldr r0, [r4] ldrh r0, [r0, 0x2] bl FreeSpritePaletteByTag ldr r0, [r4] ldr r0, [r0, 0x10] ldr r2, _080C6128 movs r1, 0 bl BlendPalettes ldr r0, _080C612C bl SetHBlankCallback _080C611C: pop {r4} pop {r0} bx r0 .align 2, 0 _080C6124: .4byte 0x020387ec _080C6128: .4byte 0x0000ffff _080C612C: .4byte sub_80C6078 thumb_func_end sub_80C60CC thumb_func_start sub_80C6130 sub_80C6130: @ 80C6130 push {r4,r5,lr} adds r2, r0, 0 movs r1, 0x36 ldrsh r0, [r2, r1] cmp r0, 0 bne _080C61AA ldr r1, _080C6184 ldr r0, [r1] movs r3, 0xC ldrsh r4, [r0, r3] adds r5, r1, 0 cmp r4, 0x1 bne _080C61AA ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x20] adds r0, r1 strh r0, [r2, 0x20] adds r0, 0xF lsls r0, 16 movs r1, 0x87 lsls r1, 17 cmp r0, r1 bhi _080C616C adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] _080C616C: movs r3, 0x30 ldrsh r0, [r2, r3] cmp r0, 0 ble _080C6188 movs r0, 0x20 ldrsh r1, [r2, r0] movs r3, 0x32 ldrsh r0, [r2, r3] cmp r1, r0 blt _080C6196 b _080C6194 .align 2, 0 _080C6184: .4byte 0x020387ec _080C6188: movs r0, 0x20 ldrsh r1, [r2, r0] movs r3, 0x32 ldrsh r0, [r2, r3] cmp r1, r0 bgt _080C6196 _080C6194: strh r4, [r2, 0x36] _080C6196: movs r1, 0x36 ldrsh r0, [r2, r1] cmp r0, 0 beq _080C61AA ldr r0, [r5] ldrh r1, [r0, 0xA] adds r1, 0x1 strh r1, [r0, 0xA] ldrh r0, [r2, 0x32] strh r0, [r2, 0x20] _080C61AA: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C6130 thumb_func_start sub_80C61B0 sub_80C61B0: @ 80C61B0 push {r4-r6,lr} ldr r2, _080C61F0 ldrh r1, [r2] movs r5, 0x2 orrs r1, r5 strh r1, [r2] ldr r3, _080C61F4 ldrh r1, [r3] movs r2, 0x10 orrs r1, r2 strh r1, [r3] ldr r4, _080C61F8 ldrh r2, [r4] movs r6, 0 strh r6, [r4] ldr r3, _080C61FC ldrh r1, [r3] orrs r1, r5 strh r1, [r3] strh r2, [r4] ldr r2, _080C6200 ldrh r1, [r2, 0x1C] orrs r1, r5 ldrh r3, [r2, 0x1C] orrs r1, r6 strh r1, [r2, 0x1C] bl SetHBlankCallback pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C61F0: .4byte 0x03007ff8 _080C61F4: .4byte REG_DISPSTAT _080C61F8: .4byte 0x04000208 _080C61FC: .4byte 0x04000200 _080C6200: .4byte 0x03001770 thumb_func_end sub_80C61B0 thumb_func_start ClearGpuRegBits ClearGpuRegBits: @ 80C6204 push {r4,r5,lr} ldr r3, _080C6248 ldrh r1, [r3] ldr r2, _080C624C adds r0, r2, 0 ands r0, r1 strh r0, [r3] ldr r3, _080C6250 ldrh r1, [r3] ldr r0, _080C6254 ands r0, r1 strh r0, [r3] ldr r4, _080C6258 ldrh r3, [r4] movs r0, 0 strh r0, [r4] ldr r5, _080C625C ldrh r1, [r5] adds r0, r2, 0 ands r0, r1 strh r0, [r5] strh r3, [r4] ldr r0, _080C6260 ldrh r1, [r0, 0x1C] ands r2, r1 ldrh r1, [r0, 0x1C] strh r2, [r0, 0x1C] movs r0, 0 bl SetHBlankCallback pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C6248: .4byte 0x03007ff8 _080C624C: .4byte 0x0000fffd _080C6250: .4byte REG_DISPSTAT _080C6254: .4byte 0x0000ffef _080C6258: .4byte 0x04000208 _080C625C: .4byte 0x04000200 _080C6260: .4byte 0x03001770 thumb_func_end ClearGpuRegBits thumb_func_start sub_80C6264 sub_80C6264: @ 80C6264 push {lr} ldr r0, _080C6278 ldr r1, _080C627C ldr r1, [r1, 0x4] bl sub_80BBFD8 bl sub_80BB5E4 pop {r0} bx r0 .align 2, 0 _080C6278: .4byte 0x0203923c _080C627C: .4byte 0x0202e828 thumb_func_end sub_80C6264 thumb_func_start sub_80C6280 sub_80C6280: @ 80C6280 push {lr} ldr r1, _080C6294 ldr r0, [r1, 0x4] cmp r0, 0x2 beq _080C62AA cmp r0, 0x2 bgt _080C6298 cmp r0, 0x1 beq _080C62A2 b _080C62BE .align 2, 0 _080C6294: .4byte 0x0202ff84 _080C6298: cmp r0, 0x3 beq _080C62AE cmp r0, 0x4 beq _080C62B8 b _080C62BE _080C62A2: movs r0, 0x8 str r0, [r1, 0x14] movs r0, 0x28 b _080C62BC _080C62AA: movs r0, 0x8 b _080C62BA _080C62AE: movs r0, 0x8 negs r0, r0 str r0, [r1, 0x14] movs r0, 0x18 b _080C62BC _080C62B8: movs r0, 0x18 _080C62BA: str r0, [r1, 0x14] _080C62BC: str r0, [r1, 0x18] _080C62BE: pop {r0} bx r0 thumb_func_end sub_80C6280 thumb_func_start sub_80C62C4 sub_80C62C4: @ 80C62C4 push {r4,lr} bl sub_80BB63C ldr r0, _080C6318 ldrh r0, [r0] cmp r0, 0x1 beq _080C636E bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _080C636E ldr r4, _080C631C adds r1, r4, 0x2 adds r0, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80571EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C6330 bl sub_80C6264 ldr r1, _080C6320 ldr r0, _080C6324 str r0, [r1] ldr r1, _080C6328 ldr r0, _080C632C b _080C6380 .align 2, 0 _080C6318: .4byte 0x0202e8dc _080C631C: .4byte 0x0203923c _080C6320: .4byte 0x0300485c _080C6324: .4byte sub_808AB90 _080C6328: .4byte 0x03005ce4 _080C632C: .4byte sub_80C639C _080C6330: adds r0, r4, 0 bl sub_805720C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C6360 bl sub_80C6264 ldr r1, _080C6350 ldr r0, _080C6354 str r0, [r1] ldr r1, _080C6358 ldr r0, _080C635C b _080C6380 .align 2, 0 _080C6350: .4byte 0x0300485c _080C6354: .4byte sub_808AB90 _080C6358: .4byte 0x03005ce4 _080C635C: .4byte sub_80C64A8 _080C6360: adds r0, r4, 0 bl is_tile_x98 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C6372 _080C636E: movs r0, 0 b _080C6384 _080C6372: bl sub_80C6264 ldr r1, _080C638C ldr r0, _080C6390 str r0, [r1] ldr r1, _080C6394 ldr r0, _080C6398 _080C6380: str r0, [r1] movs r0, 0x1 _080C6384: pop {r4} pop {r1} bx r1 .align 2, 0 _080C638C: .4byte 0x0300485c _080C6390: .4byte sub_808AB90 _080C6394: .4byte 0x03005ce4 _080C6398: .4byte sub_80C660C thumb_func_end sub_80C62C4 thumb_func_start sub_80C639C sub_80C639C: @ 80C639C push {lr} ldr r1, _080C63B0 ldr r0, _080C63B4 ldrb r0, [r0] str r0, [r1] ldr r0, _080C63B8 bl script_env_1_execute_new_script pop {r0} bx r0 .align 2, 0 _080C63B0: .4byte 0x0202ff84 _080C63B4: .4byte 0x03005ce0 _080C63B8: .4byte gUnknown_081A2CE6 thumb_func_end sub_80C639C thumb_func_start sub_80C63BC sub_80C63BC: @ 80C63BC push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _080C63E0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _080C63E4 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0 pop {r1} bx r1 .align 2, 0 _080C63E0: .4byte 0x03004b20 _080C63E4: .4byte sub_80C63E8 thumb_func_end sub_80C63BC thumb_func_start sub_80C63E8 sub_80C63E8: @ 80C63E8 push {lr} movs r0, 0xB bl FieldEffectActiveListRemove movs r0, 0x37 bl FieldEffectStart pop {r0} bx r0 thumb_func_end sub_80C63E8 thumb_func_start sub_80C63FC sub_80C63FC: @ 80C63FC push {r4,lr} bl sub_80C6280 ldr r0, _080C643C ldr r3, _080C6440 ldr r1, _080C6444 ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 23 ldr r4, _080C6448 ldr r3, [r4, 0x14] adds r1, r3 lsls r1, 16 asrs r1, 16 ldrb r2, [r2] ldr r3, [r4, 0x18] adds r2, r3 lsls r2, 16 asrs r2, 16 movs r3, 0x94 bl CreateSprite movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080C643C: .4byte gSpriteTemplate_83D2614 _080C6440: .4byte 0x02020004 _080C6444: .4byte 0x0202e858 _080C6448: .4byte 0x0202ff84 thumb_func_end sub_80C63FC thumb_func_start sub_80C644C sub_80C644C: @ 80C644C push {r4,lr} adds r4, r0, 0 movs r0, 0x83 bl audio_play movs r0, 0 strh r0, [r4, 0x2E] ldr r0, _080C6464 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080C6464: .4byte sub_80C6468 thumb_func_end sub_80C644C thumb_func_start sub_80C6468 sub_80C6468: @ 80C6468 push {lr} adds r1, r0, 0 ldrh r2, [r1, 0x2E] movs r3, 0x2E ldrsh r0, [r1, r3] cmp r0, 0x27 bgt _080C6488 adds r0, r2, 0x1 strh r0, [r1, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 bne _080C6490 bl sub_80BB800 b _080C6490 _080C6488: movs r0, 0 strh r0, [r1, 0x2E] ldr r0, _080C6494 str r0, [r1, 0x1C] _080C6490: pop {r0} bx r0 .align 2, 0 _080C6494: .4byte sub_80C6498 thumb_func_end sub_80C6468 thumb_func_start sub_80C6498 sub_80C6498: @ 80C6498 push {lr} movs r1, 0x37 bl FieldEffectStop bl script_env_2_enable_and_set_ctx_running pop {r0} bx r0 thumb_func_end sub_80C6498 thumb_func_start sub_80C64A8 sub_80C64A8: @ 80C64A8 push {lr} ldr r1, _080C64BC ldr r0, _080C64C0 ldrb r0, [r0] str r0, [r1] ldr r0, _080C64C4 bl script_env_1_execute_new_script pop {r0} bx r0 .align 2, 0 _080C64BC: .4byte 0x0202ff84 _080C64C0: .4byte 0x03005ce0 _080C64C4: .4byte gUnknown_081A2D3E thumb_func_end sub_80C64A8 thumb_func_start sub_80C64C8 sub_80C64C8: @ 80C64C8 push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _080C64EC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _080C64F0 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0 pop {r1} bx r1 .align 2, 0 _080C64EC: .4byte 0x03004b20 _080C64F0: .4byte sub_80C64F4 thumb_func_end sub_80C64C8 thumb_func_start sub_80C64F4 sub_80C64F4: @ 80C64F4 push {lr} movs r0, 0x1A bl FieldEffectActiveListRemove movs r0, 0x38 bl FieldEffectStart pop {r0} bx r0 thumb_func_end sub_80C64F4 thumb_func_start sub_80C6508 sub_80C6508: @ 80C6508 push {r4,lr} ldr r1, _080C6580 movs r2, 0 ldrsh r0, [r1, r2] movs r2, 0x2 ldrsh r1, [r1, r2] bl MapGridGetMetatileBehaviorAt adds r2, r0, 0 ldr r1, _080C6584 adds r0, r1, 0 ands r2, r0 cmp r2, 0x96 bne _080C652A ldr r1, _080C6588 movs r0, 0 str r0, [r1, 0x1C] _080C652A: cmp r2, 0x9C bne _080C6534 ldr r1, _080C6588 movs r0, 0x2 str r0, [r1, 0x1C] _080C6534: bl sub_80C6280 ldr r0, _080C658C ldr r3, _080C6590 ldr r1, _080C6594 ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 23 ldr r4, _080C6588 ldr r3, [r4, 0x14] adds r1, r3 lsls r1, 16 asrs r1, 16 ldrb r2, [r2] ldr r3, [r4, 0x18] adds r2, r3 lsls r2, 16 asrs r2, 16 movs r3, 0x94 bl CreateSprite ldr r0, [r4, 0x1C] cmp r0, 0x1 beq _080C6572 cmp r0, 0x3 bne _080C6576 _080C6572: bl sub_80BB800 _080C6576: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080C6580: .4byte 0x0203923c _080C6584: .4byte 0x00000fff _080C6588: .4byte 0x0202ff84 _080C658C: .4byte gSpriteTemplate_83D262C _080C6590: .4byte 0x02020004 _080C6594: .4byte 0x0202e858 thumb_func_end sub_80C6508 thumb_func_start sub_80C6598 sub_80C6598: @ 80C6598 push {r4,lr} adds r4, r0, 0 movs r0, 0x9B bl audio_play ldr r0, _080C65BC ldr r1, [r0, 0x1C] adds r2, r4, 0 adds r2, 0x2A movs r0, 0 strb r1, [r2] strh r0, [r4, 0x2E] ldr r0, _080C65C0 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080C65BC: .4byte 0x0202ff84 _080C65C0: .4byte sub_80C65C4 thumb_func_end sub_80C6598 thumb_func_start sub_80C65C4 sub_80C65C4: @ 80C65C4 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x27 ble _080C65EE ldr r0, _080C65F4 ldr r0, [r0, 0x1C] cmp r0, 0 beq _080C65E2 cmp r0, 0x2 bne _080C65E6 _080C65E2: bl sub_80BB800 _080C65E6: movs r0, 0 strh r0, [r4, 0x2E] ldr r0, _080C65F8 str r0, [r4, 0x1C] _080C65EE: pop {r4} pop {r0} bx r0 .align 2, 0 _080C65F4: .4byte 0x0202ff84 _080C65F8: .4byte sub_80C65FC thumb_func_end sub_80C65C4 thumb_func_start sub_80C65FC sub_80C65FC: @ 80C65FC push {lr} movs r1, 0x38 bl FieldEffectStop bl script_env_2_enable_and_set_ctx_running pop {r0} bx r0 thumb_func_end sub_80C65FC thumb_func_start sub_80C660C sub_80C660C: @ 80C660C push {lr} ldr r1, _080C6620 ldr r0, _080C6624 ldrb r0, [r0] str r0, [r1] ldr r0, _080C6628 bl script_env_1_execute_new_script pop {r0} bx r0 .align 2, 0 _080C6620: .4byte 0x0202ff84 _080C6624: .4byte 0x03005ce0 _080C6628: .4byte gUnknown_081A2D96 thumb_func_end sub_80C660C thumb_func_start sub_80C662C sub_80C662C: @ 80C662C push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _080C6650 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _080C6654 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0 pop {r1} bx r1 .align 2, 0 _080C6650: .4byte 0x03004b20 _080C6654: .4byte sub_80C6658 thumb_func_end sub_80C662C thumb_func_start sub_80C6658 sub_80C6658: @ 80C6658 push {lr} movs r0, 0x1B bl FieldEffectActiveListRemove movs r0, 0x39 bl FieldEffectStart pop {r0} bx r0 thumb_func_end sub_80C6658 thumb_func_start sub_80C666C sub_80C666C: @ 80C666C push {r4,lr} bl sub_80C6280 ldr r0, _080C66AC ldr r3, _080C66B0 ldr r1, _080C66B4 ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 23 ldr r4, _080C66B8 ldr r3, [r4, 0x14] adds r1, r3 lsls r1, 16 asrs r1, 16 ldrb r2, [r2] ldr r3, [r4, 0x18] adds r2, r3 lsls r2, 16 asrs r2, 16 movs r3, 0x94 bl CreateSprite movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080C66AC: .4byte gSpriteTemplate_83D2644 _080C66B0: .4byte 0x02020004 _080C66B4: .4byte 0x0202e858 _080C66B8: .4byte 0x0202ff84 thumb_func_end sub_80C666C thumb_func_start sub_80C66BC sub_80C66BC: @ 80C66BC push {r4,lr} adds r4, r0, 0 movs r0, 0xA9 bl audio_play movs r0, 0 strh r0, [r4, 0x2E] ldr r0, _080C66D4 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080C66D4: .4byte sub_80C66D8 thumb_func_end sub_80C66BC thumb_func_start sub_80C66D8 sub_80C66D8: @ 80C66D8 push {lr} adds r1, r0, 0 ldrh r2, [r1, 0x2E] movs r3, 0x2E ldrsh r0, [r1, r3] cmp r0, 0x27 bgt _080C66F8 adds r0, r2, 0x1 strh r0, [r1, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 bne _080C6700 bl sub_80BB800 b _080C6700 _080C66F8: movs r0, 0 strh r0, [r1, 0x2E] ldr r0, _080C6704 str r0, [r1, 0x1C] _080C6700: pop {r0} bx r0 .align 2, 0 _080C6704: .4byte sub_80C6708 thumb_func_end sub_80C66D8 thumb_func_start sub_80C6708 sub_80C6708: @ 80C6708 push {lr} movs r1, 0x39 bl FieldEffectStop bl script_env_2_enable_and_set_ctx_running pop {r0} bx r0 thumb_func_end sub_80C6708 thumb_func_start sub_80C6718 sub_80C6718: @ 80C6718 push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer ldr r0, _080C6758 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080C675C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 mov r0, sp ldrh r0, [r0] movs r2, 0 strh r0, [r1, 0x8] ldrh r0, [r4] strh r0, [r1, 0xA] strh r2, [r1, 0xC] movs r0, 0 add sp, 0x4 pop {r4} pop {r1} bx r1 .align 2, 0 _080C6758: .4byte sub_80C6760 _080C675C: .4byte 0x03004b20 thumb_func_end sub_80C6718 thumb_func_start sub_80C6760 sub_80C6760: @ 80C6760 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080C6788 adds r4, r0, r1 ldrh r0, [r4, 0x4] subs r0, 0x4 lsls r0, 16 asrs r0, 16 cmp r0, 0x10 bhi _080C682E lsls r0, 2 ldr r1, _080C678C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C6788: .4byte 0x03004b28 _080C678C: .4byte _080C6790 .align 2, 0 _080C6790: .4byte _080C67D4 .4byte _080C682E .4byte _080C682E .4byte _080C682E .4byte _080C67E2 .4byte _080C682E .4byte _080C682E .4byte _080C682E .4byte _080C67D4 .4byte _080C682E .4byte _080C682E .4byte _080C682E .4byte _080C67E2 .4byte _080C682E .4byte _080C682E .4byte _080C682E .4byte _080C6800 _080C67D4: movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] movs r2, 0x89 lsls r2, 2 b _080C67EE _080C67E2: movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] movs r2, 0x88 lsls r2, 2 _080C67EE: bl MapGridSetMetatileIdAt movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt b _080C682E _080C6800: movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] movs r2, 0x89 lsls r2, 2 bl MapGridSetMetatileIdAt movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt movs r0, 0x3D bl FieldEffectActiveListRemove bl script_env_2_enable_and_set_ctx_running adds r0, r5, 0 bl DestroyTask b _080C6834 _080C682E: ldrh r0, [r4, 0x4] adds r0, 0x1 strh r0, [r4, 0x4] _080C6834: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C6760 thumb_func_start sub_80C683C sub_80C683C: @ 80C683C push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer movs r0, 0x3 bl audio_play ldr r0, _080C6874 bl VarGet lsls r0, 16 cmp r0, 0 bne _080C6878 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] movs r2, 0xE2 lsls r2, 4 bl MapGridSetMetatileIdAt b _080C6888 .align 2, 0 _080C6874: .4byte 0x00004054 _080C6878: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] ldr r2, _080C68A0 bl MapGridSetMetatileIdAt _080C6888: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080C68A0: .4byte 0x00000e21 thumb_func_end sub_80C683C thumb_func_start sub_80C68A4 sub_80C68A4: @ 80C68A4 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 lsls r6, 16 lsrs r6, 16 ldr r0, _080C68E4 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080C68E8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r4, [r1, 0x8] strh r5, [r1, 0xA] strh r6, [r1, 0xC] strh r0, [r1, 0xE] movs r0, 0x1 strh r0, [r1, 0x10] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C68E4: .4byte sub_80C68EC _080C68E8: .4byte 0x03004b20 thumb_func_end sub_80C68A4 thumb_func_start sub_80C68EC sub_80C68EC: @ 80C68EC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080C690C adds r4, r0, r1 ldrh r1, [r4, 0x6] movs r2, 0x6 ldrsh r0, [r4, r2] cmp r0, 0x6 bne _080C6910 movs r0, 0 b _080C6912 .align 2, 0 _080C690C: .4byte 0x03004b28 _080C6910: adds r0, r1, 0x1 _080C6912: strh r0, [r4, 0x6] movs r3, 0x6 ldrsh r0, [r4, r3] cmp r0, 0 bne _080C6964 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x2 bne _080C692C movs r2, 0 ldrsh r0, [r4, r2] bl sub_80C696C _080C692C: movs r3, 0x2 ldrsh r0, [r4, r3] movs r2, 0x4 ldrsh r1, [r4, r2] ldrh r2, [r4, 0x8] ldrh r3, [r4] adds r2, r3 lsls r2, 16 lsrs r2, 16 bl MapGridSetMetatileIdAt movs r1, 0x2 ldrsh r0, [r4, r1] movs r2, 0x4 ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt ldrh r1, [r4, 0x8] movs r3, 0x8 ldrsh r0, [r4, r3] cmp r0, 0x3 bne _080C6960 adds r0, r5, 0 bl DestroyTask b _080C6964 _080C6960: adds r0, r1, 0x1 strh r0, [r4, 0x8] _080C6964: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C68EC thumb_func_start sub_80C696C sub_80C696C: @ 80C696C push {lr} lsls r0, 16 asrs r1, r0, 16 movs r0, 0xCE lsls r0, 2 cmp r1, r0 beq _080C6998 cmp r1, r0 bgt _080C6988 movs r0, 0x8A lsls r0, 2 cmp r1, r0 beq _080C69B0 b _080C69B6 _080C6988: movs r0, 0xCF lsls r0, 2 cmp r1, r0 beq _080C69A0 adds r0, 0x4 cmp r1, r0 beq _080C69A8 b _080C69B6 _080C6998: movs r0, 0x4A bl audio_play b _080C69B6 _080C69A0: movs r0, 0x4B bl audio_play b _080C69B6 _080C69A8: movs r0, 0x4C bl audio_play b _080C69B6 _080C69B0: movs r0, 0x4E bl audio_play _080C69B6: pop {r0} bx r0 thumb_func_end sub_80C696C thumb_func_start sub_80C69BC sub_80C69BC: @ 80C69BC movs r0, 0 bx lr thumb_func_end sub_80C69BC thumb_func_start sub_80C69C0 sub_80C69C0: @ 80C69C0 movs r0, 0 bx lr thumb_func_end sub_80C69C0 thumb_func_start sub_80C69C4 sub_80C69C4: @ 80C69C4 push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 lsls r5, 16 lsrs r5, 16 lsls r4, 16 lsrs r4, 16 movs r0, 0x4D bl audio_play lsls r5, 16 asrs r5, 16 lsls r4, 16 asrs r4, 16 ldr r2, _080C6A0C adds r0, r5, 0 adds r1, r4, 0 bl MapGridSetMetatileIdAt subs r6, r4, 0x1 ldr r2, _080C6A10 adds r0, r5, 0 adds r1, r6, 0 bl MapGridSetMetatileIdAt adds r0, r5, 0 adds r1, r4, 0 bl CurrentMapDrawMetatileAt adds r0, r5, 0 adds r1, r6, 0 bl CurrentMapDrawMetatileAt pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C6A0C: .4byte 0x00000276 _080C6A10: .4byte 0x0000026e thumb_func_end sub_80C69C4 thumb_func_start sub_80C6A14 sub_80C6A14: @ 80C6A14 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080C6A44 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 ldrh r2, [r1, 0x8] movs r3, 0x8 ldrsh r0, [r1, r3] cmp r0, 0x7 bne _080C6A48 movs r2, 0xA ldrsh r0, [r1, r2] movs r3, 0xC ldrsh r1, [r1, r3] bl sub_80C69C4 adds r0, r4, 0 bl DestroyTask b _080C6A4C .align 2, 0 _080C6A44: .4byte 0x03004b20 _080C6A48: adds r0, r2, 0x1 strh r0, [r1, 0x8] _080C6A4C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C6A14 thumb_func_start sub_80C6A54 sub_80C6A54: @ 80C6A54 push {r4-r7,lr} lsls r0, 16 lsrs r5, r0, 16 adds r7, r5, 0 lsls r1, 16 lsrs r4, r1, 16 adds r6, r4, 0 bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C6A7C lsls r0, r5, 16 asrs r0, 16 lsls r1, r4, 16 asrs r1, 16 bl sub_80C69C4 b _080C6A9E _080C6A7C: cmp r0, 0x2 bne _080C6A9E ldr r0, _080C6AA4 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080C6AA8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0x8] strh r7, [r1, 0xA] strh r6, [r1, 0xC] _080C6A9E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C6AA4: .4byte sub_80C6A14 _080C6AA8: .4byte 0x03004b20 thumb_func_end sub_80C6A54 thumb_func_start sub_80C6AAC sub_80C6AAC: @ 80C6AAC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080C6AE4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 ldrh r2, [r1, 0xA] movs r3, 0xA ldrsh r0, [r1, r3] cmp r0, 0x7 beq _080C6AC8 b _080C6C26 _080C6AC8: ldr r2, _080C6AE8 adds r0, r2, 0 ldrh r1, [r1, 0x8] adds r0, r1 lsls r0, 16 asrs r0, 16 cmp r0, 0x3B bls _080C6ADA b _080C6C1E _080C6ADA: lsls r0, 2 ldr r1, _080C6AEC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C6AE4: .4byte 0x03004b20 _080C6AE8: .4byte 0xfffffd88 _080C6AEC: .4byte _080C6AF0 .align 2, 0 _080C6AF0: .4byte _080C6BE0 .4byte _080C6BE8 .4byte _080C6BF0 .4byte _080C6BF8 .4byte _080C6C00 .4byte _080C6C08 .4byte _080C6C10 .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C1E .4byte _080C6C18 _080C6BE0: movs r0, 0x3E bl audio_play b _080C6C1E _080C6BE8: movs r0, 0x3F bl audio_play b _080C6C1E _080C6BF0: movs r0, 0x40 bl audio_play b _080C6C1E _080C6BF8: movs r0, 0x41 bl audio_play b _080C6C1E _080C6C00: movs r0, 0x42 bl audio_play b _080C6C1E _080C6C08: movs r0, 0x43 bl audio_play b _080C6C1E _080C6C10: movs r0, 0x44 bl audio_play b _080C6C1E _080C6C18: movs r0, 0x45 bl audio_play _080C6C1E: adds r0, r4, 0 bl DestroyTask b _080C6C2A _080C6C26: adds r0, r2, 0x1 strh r0, [r1, 0xA] _080C6C2A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C6AAC thumb_func_start sub_80C6C30 sub_80C6C30: @ 80C6C30 push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _080C6C5C movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080C6C60 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r4, [r1, 0x8] strh r0, [r1, 0xA] pop {r4} pop {r0} bx r0 .align 2, 0 _080C6C5C: .4byte sub_80C6AAC _080C6C60: .4byte 0x03004b20 thumb_func_end sub_80C6C30 thumb_func_start sub_80C6C64 sub_80C6C64: @ 80C6C64 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 bne _080C6C7C movs r0, 0xC3 bl audio_play _080C6C7C: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1F ble _080C6C8A adds r0, r4, 0 bl DestroySprite _080C6C8A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C6C64 thumb_func_start sub_80C6C90 sub_80C6C90: @ 80C6C90 push {r4,lr} sub sp, 0x4 ldr r3, _080C6D28 ldr r2, _080C6D2C ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x10] mov r0, sp strh r1, [r0] ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x12] mov r4, sp adds r4, 0x2 strh r0, [r4] mov r0, sp adds r1, r4, 0 movs r2, 0x8 movs r3, 0x4 bl sub_8060470 ldr r0, _080C6D30 ldr r0, [r0, 0x58] mov r1, sp movs r2, 0 ldrsh r1, [r1, r2] movs r3, 0 ldrsh r2, [r4, r3] movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _080C6D1E ldr r3, _080C6D34 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r4, r2, r3 movs r0, 0x3E adds r0, r4 mov r12, r0 ldrb r0, [r0] movs r1, 0x2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrb r1, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 movs r1, 0xF ands r0, r1 movs r1, 0x50 orrs r0, r1 strb r0, [r4, 0x5] adds r3, 0x1C adds r2, r3 ldr r0, _080C6D38 str r0, [r2] movs r0, 0 strh r0, [r4, 0x2E] _080C6D1E: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080C6D28: .4byte 0x030048a0 _080C6D2C: .4byte 0x0202e858 _080C6D30: .4byte gFieldEffectObjectTemplatePointers _080C6D34: .4byte 0x02020004 _080C6D38: .4byte sub_80C6C64 thumb_func_end sub_80C6C90 thumb_func_start sub_80C6D3C sub_80C6D3C: @ 80C6D3C push {r4,lr} sub sp, 0x4 bl script_env_2_enable mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer ldr r1, _080C6D78 mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] str r0, [r1, 0x14] movs r3, 0 ldrsh r0, [r4, r3] str r0, [r1, 0x18] bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _080C6DBC cmp r0, 0x2 bgt _080C6D7C cmp r0, 0x1 beq _080C6D86 b _080C6E4C .align 2, 0 _080C6D78: .4byte 0x0202ff84 _080C6D7C: cmp r0, 0x3 beq _080C6DEC cmp r0, 0x4 beq _080C6E24 b _080C6E4C _080C6D86: ldr r0, _080C6DB0 ldr r3, _080C6DB4 ldr r1, _080C6DB8 ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 7 movs r3, 0x80 lsls r3, 12 adds r1, r3 asrs r1, 16 ldrb r2, [r2] adds r2, 0x20 movs r3, 0 bl CreateSprite b _080C6E4C .align 2, 0 _080C6DB0: .4byte gSpriteTemplate_83D26A0 _080C6DB4: .4byte 0x02020004 _080C6DB8: .4byte 0x0202e858 _080C6DBC: ldr r0, _080C6DE0 ldr r3, _080C6DE4 ldr r1, _080C6DE8 ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 7 movs r3, 0x80 lsls r3, 12 adds r1, r3 asrs r1, 16 ldrb r2, [r2] b _080C6E0C .align 2, 0 _080C6DE0: .4byte gSpriteTemplate_83D26A0 _080C6DE4: .4byte 0x02020004 _080C6DE8: .4byte 0x0202e858 _080C6DEC: ldr r0, _080C6E14 ldr r3, _080C6E18 ldr r1, _080C6E1C ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 7 ldr r3, _080C6E20 adds r1, r3 asrs r1, 16 ldrb r2, [r2] adds r2, 0x10 _080C6E0C: movs r3, 0x94 bl CreateSprite b _080C6E4C .align 2, 0 _080C6E14: .4byte gSpriteTemplate_83D26A0 _080C6E18: .4byte 0x02020004 _080C6E1C: .4byte 0x0202e858 _080C6E20: .4byte 0xfff80000 _080C6E24: ldr r0, _080C6E58 ldr r3, _080C6E5C ldr r1, _080C6E60 ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 7 movs r3, 0xC0 lsls r3, 13 adds r1, r3 asrs r1, 16 ldrb r2, [r2] adds r2, 0x10 movs r3, 0x94 bl CreateSprite _080C6E4C: movs r0, 0 add sp, 0x4 pop {r4} pop {r1} bx r1 .align 2, 0 _080C6E58: .4byte gSpriteTemplate_83D26A0 _080C6E5C: .4byte 0x02020004 _080C6E60: .4byte 0x0202e858 thumb_func_end sub_80C6D3C thumb_func_start door_restore_tilemap door_restore_tilemap: @ 80C6E64 push {r4,r5,lr} adds r5, r0, 0 movs r0, 0x83 bl audio_play ldr r4, _080C6E90 ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] subs r1, 0x1 bl MapGridGetMetatileIdAt ldr r1, _080C6E94 cmp r0, r1 bne _080C6E9C ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] subs r1, 0x1 ldr r2, _080C6E98 bl MapGridSetMetatileIdAt b _080C6EAA .align 2, 0 _080C6E90: .4byte 0x0202ff84 _080C6E94: .4byte 0x00000286 _080C6E98: .4byte 0x00000e02 _080C6E9C: ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] subs r1, 0x1 movs r2, 0xA1 lsls r2, 2 bl MapGridSetMetatileIdAt _080C6EAA: ldr r4, _080C6ED8 ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] ldr r2, _080C6EDC bl MapGridSetMetatileIdAt ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] subs r1, 0x1 bl CurrentMapDrawMetatileAt ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] bl CurrentMapDrawMetatileAt movs r0, 0 strh r0, [r5, 0x2E] ldr r0, _080C6EE0 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C6ED8: .4byte 0x0202ff84 _080C6EDC: .4byte 0x0000020a _080C6EE0: .4byte sub_80C6EE4 thumb_func_end door_restore_tilemap thumb_func_start sub_80C6EE4 sub_80C6EE4: @ 80C6EE4 push {r4,r5,lr} adds r5, r0, 0 ldrh r1, [r5, 0x2E] movs r2, 0x2E ldrsh r0, [r5, r2] cmp r0, 0x11 bgt _080C6EF8 adds r0, r1, 0x1 strh r0, [r5, 0x2E] b _080C6F14 _080C6EF8: ldr r4, _080C6F1C ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] ldr r2, _080C6F20 bl MapGridSetMetatileIdAt ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] bl CurrentMapDrawMetatileAt movs r0, 0 strh r0, [r5, 0x2E] ldr r0, _080C6F24 str r0, [r5, 0x1C] _080C6F14: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C6F1C: .4byte 0x0202ff84 _080C6F20: .4byte 0x00000e8c _080C6F24: .4byte sub_80C6F28 thumb_func_end sub_80C6EE4 thumb_func_start sub_80C6F28 sub_80C6F28: @ 80C6F28 push {lr} movs r1, 0x34 bl FieldEffectStop bl script_env_2_enable_and_set_ctx_running pop {r0} bx r0 thumb_func_end sub_80C6F28 thumb_func_start sub_80C6F38 sub_80C6F38: @ 80C6F38 push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileIdAt adds r1, r0, 0 ldr r0, _080C6F70 cmp r1, r0 beq _080C6FE8 cmp r1, r0 bgt _080C6F74 subs r0, 0x17 cmp r1, r0 beq _080C6FB0 adds r0, 0x16 cmp r1, r0 beq _080C6FDC b _080C6FFA .align 2, 0 _080C6F70: .4byte 0x000002f5 _080C6F74: ldr r0, _080C6F9C cmp r1, r0 beq _080C6FF4 adds r0, 0x40 cmp r1, r0 bne _080C6FFA ldr r0, _080C6FA0 movs r1, 0x64 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, _080C6FA4 ldr r1, _080C6FA8 bl StringCopy ldr r1, _080C6FAC movs r0, 0 b _080C6FF8 .align 2, 0 _080C6F9C: .4byte 0x000002f6 _080C6FA0: .4byte 0x020231cc _080C6FA4: .4byte 0x020232cc _080C6FA8: .4byte gUnknown_0840FAB2 _080C6FAC: .4byte 0x0202e8dc _080C6FB0: ldr r0, _080C6FCC movs r1, 0x32 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, _080C6FD0 ldr r1, _080C6FD4 bl StringCopy ldr r1, _080C6FD8 movs r0, 0 b _080C6FF8 .align 2, 0 _080C6FCC: .4byte 0x020231cc _080C6FD0: .4byte 0x020232cc _080C6FD4: .4byte gUnknown_0840FAB7 _080C6FD8: .4byte 0x0202e8dc _080C6FDC: ldr r1, _080C6FE4 movs r0, 0x1 b _080C6FF8 .align 2, 0 _080C6FE4: .4byte 0x0202e8dc _080C6FE8: ldr r1, _080C6FF0 movs r0, 0x2 b _080C6FF8 .align 2, 0 _080C6FF0: .4byte 0x0202e8dc _080C6FF4: ldr r1, _080C7004 movs r0, 0x3 _080C6FF8: strh r0, [r1] _080C6FFA: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080C7004: .4byte 0x0202e8dc thumb_func_end sub_80C6F38 thumb_func_start task50_overworld_posion_effect task50_overworld_posion_effect: @ 80C7008 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080C702C adds r1, r0, r1 movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0x1 beq _080C7046 cmp r0, 0x1 bgt _080C7030 cmp r0, 0 beq _080C7036 b _080C7062 .align 2, 0 _080C702C: .4byte 0x03004b28 _080C7030: cmp r0, 0x2 beq _080C705A b _080C7062 _080C7036: ldrh r0, [r1, 0x2] adds r0, 0x2 strh r0, [r1, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080C7062 b _080C7052 _080C7046: ldrh r0, [r1, 0x2] subs r0, 0x2 strh r0, [r1, 0x2] lsls r0, 16 cmp r0, 0 bne _080C7062 _080C7052: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080C7062 _080C705A: adds r0, r2, 0 bl DestroyTask b _080C706C _080C7062: ldr r2, _080C7070 ldrh r1, [r1, 0x2] lsls r0, r1, 4 orrs r0, r1 strh r0, [r2] _080C706C: pop {r0} bx r0 .align 2, 0 _080C7070: .4byte REG_MOSAIC thumb_func_end task50_overworld_posion_effect thumb_func_start overworld_posion_effect overworld_posion_effect: @ 80C7074 push {lr} movs r0, 0x4F bl audio_play ldr r0, _080C7088 movs r1, 0x50 bl CreateTask pop {r0} bx r0 .align 2, 0 _080C7088: .4byte task50_overworld_posion_effect thumb_func_end overworld_posion_effect thumb_func_start c3_80A0DD8_is_running c3_80A0DD8_is_running: @ 80C708C push {lr} ldr r0, _080C709C bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080C709C: .4byte task50_overworld_posion_effect thumb_func_end c3_80A0DD8_is_running thumb_func_start sub_80C70A0 sub_80C70A0: @ 80C70A0 lsls r0, 24 lsrs r0, 24 ldr r2, _080C70B4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080C70B8 str r0, [r1] bx lr .align 2, 0 _080C70B4: .4byte 0x03004b20 _080C70B8: .4byte sub_80C70BC thumb_func_end sub_80C70A0 thumb_func_start sub_80C70BC sub_80C70BC: @ 80C70BC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080C7120 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C7124 adds r4, r0, r1 adds r0, r4, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 beq _080C70E8 adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _080C711A _080C70E8: bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 bl sub_8059D08 bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 bl GetStepInPlaceDelay16AnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim ldr r1, _080C7128 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080C712C str r1, [r0] _080C711A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C7120: .4byte 0x0202e858 _080C7124: .4byte 0x030048a0 _080C7128: .4byte 0x03004b20 _080C712C: .4byte sub_80C7130 thumb_func_end sub_80C70BC thumb_func_start sub_80C7130 sub_80C7130: @ 80C7130 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080C7184 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C7188 adds r5, r0, r1 adds r0, r5, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _080C7194 ldr r1, _080C718C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 ldrh r0, [r2, 0xA] adds r1, r0, 0x1 strh r1, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 bgt _080C7190 bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 bl GetStepInPlaceDelay16AnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl FieldObjectSetSpecialAnim b _080C7194 .align 2, 0 _080C7184: .4byte 0x0202e858 _080C7188: .4byte 0x030048a0 _080C718C: .4byte 0x03004b20 _080C7190: ldr r0, _080C719C str r0, [r2] _080C7194: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C719C: .4byte sub_80C71A0 thumb_func_end sub_80C7130 thumb_func_start sub_80C71A0 sub_80C71A0: @ 80C71A0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80597D0 lsls r0, 24 lsrs r0, 24 bl SetPlayerAvatarTransitionFlags adds r0, r4, 0 bl DestroyTask bl script_env_2_enable_and_set_ctx_running pop {r4} pop {r0} bx r0 thumb_func_end sub_80C71A0 thumb_func_start sub_80C71C4 sub_80C71C4: @ 80C71C4 push {lr} ldr r0, _080C71D4 movs r1, 0x50 bl CreateTask pop {r0} bx r0 .align 2, 0 _080C71D4: .4byte sub_80C70A0 thumb_func_end sub_80C71C4 thumb_func_start sub_80C71D8 sub_80C71D8: @ 80C71D8 push {r4,r5,lr} ldr r0, _080C722C bl LoadSpritePalette ldr r0, _080C7230 movs r1, 0 movs r2, 0 movs r3, 0x52 bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x40 beq _080C7238 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 ldr r1, _080C7234 adds r4, r0, r1 adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 movs r0, 0x10 movs r1, 0xD bl sub_8060388 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] ldrh r0, [r4, 0x20] adds r0, 0x10 strh r0, [r4, 0x20] ldrh r0, [r4, 0x22] adds r0, 0x2 strh r0, [r4, 0x22] adds r0, r5, 0 b _080C723A .align 2, 0 _080C722C: .4byte gUnknown_083D2878 _080C7230: .4byte gSpriteTemplate_83D2894 _080C7234: .4byte 0x02020004 _080C7238: movs r0, 0x40 _080C723A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80C71D8 thumb_func_start sub_80C7240 sub_80C7240: @ 80C7240 push {r4-r7,lr} ldr r4, _080C7274 adds r7, r4, 0 movs r6, 0 movs r5, 0x3F _080C724A: adds r0, r7, 0 adds r0, 0x14 adds r0, r6, r0 ldr r1, [r0] ldr r0, _080C7278 cmp r1, r0 bne _080C7264 adds r0, r4, 0 bl FreeSpritePalette adds r0, r4, 0 bl DestroySprite _080C7264: adds r4, 0x44 adds r6, 0x44 subs r5, 0x1 cmp r5, 0 bge _080C724A pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C7274: .4byte 0x02020004 _080C7278: .4byte gSpriteTemplate_83D2894 thumb_func_end sub_80C7240 thumb_func_start sub_80C727C sub_80C727C: @ 80C727C push {r4,lr} adds r4, r0, 0 movs r1, 0x78 bl __modsi3 cmp r0, 0 bne _080C7290 movs r0, 0x1 negs r0, r0 b _080C72A2 _080C7290: adds r0, r4, 0 movs r1, 0xA bl __modsi3 cmp r0, 0x4 ble _080C72A0 movs r0, 0 b _080C72A2 _080C72A0: movs r0, 0x1 _080C72A2: pop {r4} pop {r1} bx r1 thumb_func_end sub_80C727C thumb_func_start sub_80C72A8 sub_80C72A8: @ 80C72A8 push {lr} adds r0, 0x78 movs r1, 0xB4 bl __modsi3 cmp r0, 0 beq _080C72BA movs r0, 0 b _080C72BE _080C72BA: movs r0, 0x1 negs r0, r0 _080C72BE: pop {r1} bx r1 thumb_func_end sub_80C72A8 thumb_func_start sub_80C72C4 sub_80C72C4: @ 80C72C4 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080C7364 adds r5, r1, r0 movs r1, 0 ldrsh r0, [r5, r1] adds r0, 0x1E bl sub_80C72A8 ldr r4, _080C7368 ldrb r1, [r4, 0x5] ldrb r2, [r4, 0x4] lsls r0, 18 movs r3, 0xC0 lsls r3, 10 orrs r0, r3 asrs r0, 16 str r0, [sp] movs r0, 0x1 movs r3, 0x3 bl sub_805BD90 movs r3, 0 ldrsh r0, [r5, r3] bl sub_80C72A8 ldrb r1, [r4, 0x5] ldrb r2, [r4, 0x4] lsls r0, 17 ldr r3, _080C736C adds r0, r3 asrs r0, 16 str r0, [sp] movs r0, 0x2 movs r3, 0 bl sub_805BD90 movs r1, 0 ldrsh r0, [r5, r1] bl sub_80C72A8 ldrb r1, [r4, 0x5] ldrb r2, [r4, 0x4] movs r4, 0 movs r3, 0x3 negs r3, r3 lsls r0, 18 asrs r0, 16 str r0, [sp] movs r0, 0x3 bl sub_805BD90 ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] lsls r0, 16 ldr r1, _080C7370 cmp r0, r1 bne _080C7346 strh r4, [r5] _080C7346: movs r3, 0 ldrsh r0, [r5, r3] bl sub_80C727C adds r1, r0, 0 lsls r1, 16 asrs r1, 16 movs r0, 0 bl SetCameraPanning add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C7364: .4byte 0x03004b28 _080C7368: .4byte 0x02025734 _080C736C: .4byte 0xfffd0000 _080C7370: .4byte 0x75300000 thumb_func_end sub_80C72C4 thumb_func_start sub_80C7374 sub_80C7374: @ 80C7374 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r3, r0, 3 ldr r4, _080C73B4 adds r7, r3, r4 ldrh r1, [r7] adds r1, 0x1 strh r1, [r7] ldrh r0, [r7, 0x4] adds r0, 0x1 strh r0, [r7, 0x4] lsls r1, 16 asrs r1, 16 cmp r1, 0x5 ble _080C73A4 movs r0, 0 strh r0, [r7] ldrh r0, [r7, 0x2] adds r0, 0x1 strh r0, [r7, 0x2] _080C73A4: ldrh r0, [r7, 0x2] cmp r0, 0x13 bne _080C73B8 adds r0, r2, 0 bl DestroyTask b _080C746A .align 2, 0 _080C73B4: .4byte 0x03004b28 _080C73B8: ldr r2, _080C7474 movs r1, 0x2 ldrsh r0, [r7, r1] adds r0, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x2 bne _080C73D4 adds r0, r4, 0 subs r0, 0x8 adds r0, r3, r0 ldr r1, _080C7478 str r1, [r0] _080C73D4: movs r4, 0x2 ldrsh r0, [r7, r4] adds r0, r2 movs r5, 0 ldrsb r5, [r0, r5] lsls r5, 16 lsrs r5, 16 movs r1, 0x4 ldrsh r0, [r7, r1] bl sub_80C727C adds r1, r0, 0 lsls r5, 16 asrs r5, 16 lsls r1, 16 asrs r1, 16 adds r0, r5, 0 bl SetCameraPanning movs r4, 0x4 ldrsh r0, [r7, r4] adds r0, 0x1E bl sub_80C72A8 ldr r6, _080C747C ldrb r1, [r6, 0x5] ldrb r2, [r6, 0x4] movs r3, 0x3 subs r3, r5 lsls r3, 16 asrs r3, 16 lsls r0, 18 movs r4, 0xC0 lsls r4, 10 orrs r0, r4 asrs r0, 16 str r0, [sp] movs r0, 0x1 bl sub_805BD90 movs r1, 0x4 ldrsh r0, [r7, r1] bl sub_80C72A8 ldrb r1, [r6, 0x5] ldrb r2, [r6, 0x4] negs r3, r5 lsls r3, 16 asrs r3, 16 lsls r0, 17 ldr r4, _080C7480 adds r0, r4 asrs r0, 16 str r0, [sp] movs r0, 0x2 bl sub_805BD90 movs r1, 0x4 ldrsh r0, [r7, r1] bl sub_80C72A8 ldrb r1, [r6, 0x5] ldrb r2, [r6, 0x4] movs r4, 0x3 negs r4, r4 adds r3, r4, 0 subs r3, r5 lsls r3, 16 asrs r3, 16 lsls r0, 18 asrs r0, 16 str r0, [sp] movs r0, 0x3 bl sub_805BD90 _080C746A: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C7474: .4byte gUnknown_083D294C _080C7478: .4byte sub_80C7484 _080C747C: .4byte 0x02025734 _080C7480: .4byte 0xfffd0000 thumb_func_end sub_80C7374 thumb_func_start sub_80C7484 sub_80C7484: @ 80C7484 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 adds r3, r0, 0 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 ldr r1, _080C74C4 adds r2, r0, r1 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _080C74B4 movs r0, 0 strh r0, [r2] ldrh r0, [r2, 0x2] adds r0, 0x1 strh r0, [r2, 0x2] _080C74B4: ldrh r0, [r2, 0x2] cmp r0, 0x13 bne _080C74C8 adds r0, r3, 0 bl DestroyTask b _080C7516 .align 2, 0 _080C74C4: .4byte 0x03004b28 _080C74C8: ldr r1, _080C7524 movs r3, 0x2 ldrsh r0, [r2, r3] adds r0, r1 movs r1, 0 mov r8, r1 movs r6, 0 ldrsb r6, [r0, r6] adds r0, r6, 0 bl SetCameraPanning ldr r5, _080C7528 ldrb r1, [r5, 0x5] ldrb r2, [r5, 0x4] movs r3, 0x3 subs r3, r6 movs r0, 0x3 str r0, [sp] movs r0, 0x1 bl sub_805BD90 ldrb r1, [r5, 0x5] ldrb r2, [r5, 0x4] negs r3, r6 mov r4, r8 subs r4, 0x3 str r4, [sp] movs r0, 0x2 bl sub_805BD90 ldrb r1, [r5, 0x5] ldrb r2, [r5, 0x4] subs r4, r6 mov r3, r8 str r3, [sp] movs r0, 0x3 adds r3, r4, 0 bl sub_805BD90 _080C7516: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C7524: .4byte gUnknown_083D294C _080C7528: .4byte 0x02025734 thumb_func_end sub_80C7484 thumb_func_start sub_80C752C sub_80C752C: @ 80C752C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080C7550 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x5 bls _080C7546 b _080C7698 _080C7546: lsls r0, 2 ldr r1, _080C7554 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C7550: .4byte 0x03004b28 _080C7554: .4byte _080C7558 .align 2, 0 _080C7558: .4byte _080C7570 .4byte _080C75A8 .4byte _080C75C4 .4byte _080C7610 .4byte _080C7634 .4byte _080C7652 _080C7570: ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x5A beq _080C7580 b _080C7698 _080C7580: movs r0, 0 bl SetCameraPanningCallback movs r0, 0 strh r0, [r4, 0x2] ldr r0, _080C75A4 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x4] movs r0, 0x1 strh r0, [r4] movs r0, 0x31 bl audio_play b _080C7698 .align 2, 0 _080C75A4: .4byte sub_80C72C4 _080C75A8: ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x96 bne _080C7698 bl pal_fill_black movs r0, 0 strh r0, [r4, 0x2] movs r0, 0x2 strh r0, [r4] b _080C7698 _080C75C4: ldrh r0, [r4, 0x2] adds r3, r0, 0x1 strh r3, [r4, 0x2] ldr r0, _080C7608 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080C7698 lsls r1, r3, 16 movs r0, 0x96 lsls r0, 17 cmp r1, r0 ble _080C7698 strh r2, [r4, 0x2] ldrb r0, [r4, 0x4] bl DestroyTask ldr r0, _080C760C movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x6] movs r0, 0x3 strh r0, [r4] movs r0, 0x32 bl audio_play b _080C7698 .align 2, 0 _080C7608: .4byte 0x0202f388 _080C760C: .4byte sub_80C7374 _080C7610: ldr r2, _080C7630 movs r0, 0x6 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r5, [r0, 0x4] cmp r5, 0 bne _080C7698 bl InstallCameraPanAheadCallback strh r5, [r4, 0x2] movs r0, 0x4 strh r0, [r4] b _080C7698 .align 2, 0 _080C7630: .4byte 0x03004b20 _080C7634: ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x5A bne _080C7698 movs r0, 0x33 bl audio_play movs r0, 0 strh r0, [r4, 0x2] movs r0, 0x5 strh r0, [r4] b _080C7698 _080C7652: ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x78 bne _080C7698 movs r2, 0x82 lsls r2, 2 movs r0, 0xB movs r1, 0x8 bl MapGridSetMetatileIdAt movs r2, 0x84 lsls r2, 2 movs r0, 0xB movs r1, 0x9 bl MapGridSetMetatileIdAt movs r2, 0x86 lsls r2, 2 movs r0, 0xB movs r1, 0xA bl MapGridSetMetatileIdAt bl DrawWholeMapView movs r0, 0x34 bl audio_play adds r0, r5, 0 bl DestroyTask bl script_env_2_disable _080C7698: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C752C thumb_func_start sub_80C76A0 sub_80C76A0: @ 80C76A0 push {lr} sub sp, 0x4 ldr r2, _080C76E8 movs r0, 0xB movs r1, 0x8 bl MapGridSetMetatileIdAt ldr r2, _080C76EC movs r0, 0xB movs r1, 0x9 bl MapGridSetMetatileIdAt ldr r2, _080C76F0 movs r0, 0xB movs r1, 0xA bl MapGridSetMetatileIdAt bl DrawWholeMapView bl script_env_2_enable movs r0, 0 str r0, [sp] ldr r1, _080C76F4 ldr r2, _080C76F8 mov r0, sp bl CpuFastSet ldr r0, _080C76FC movs r1, 0xA bl CreateTask add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080C76E8: .4byte 0x0000020d _080C76EC: .4byte 0x00000215 _080C76F0: .4byte 0x0000021d _080C76F4: .4byte 0x0202eec8 _080C76F8: .4byte 0x01000100 _080C76FC: .4byte sub_80C752C thumb_func_end sub_80C76A0 thumb_func_start sub_80C7700 sub_80C7700: @ 80C7700 push {r4-r6,lr} sub sp, 0x4 ldr r0, _080C774C bl FuncIsActiveTask lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _080C7744 ldr r4, _080C7750 ldrb r1, [r4, 0x5] ldrb r2, [r4, 0x4] movs r0, 0x3 str r0, [sp] movs r0, 0x1 movs r3, 0x3 bl sub_805BD90 ldrb r1, [r4, 0x5] ldrb r2, [r4, 0x4] movs r5, 0x3 negs r5, r5 str r5, [sp] movs r0, 0x2 movs r3, 0 bl sub_805BD90 ldrb r1, [r4, 0x5] ldrb r2, [r4, 0x4] str r6, [sp] movs r0, 0x3 adds r3, r5, 0 bl sub_805BD90 _080C7744: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C774C: .4byte sub_80C752C _080C7750: .4byte 0x02025734 thumb_func_end sub_80C7700 thumb_func_start sub_80C7754 sub_80C7754: @ 80C7754 push {r4-r6,lr} sub sp, 0xC mov r4, sp adds r4, 0x5 mov r5, sp adds r5, 0x6 add r6, sp, 0x8 add r0, sp, 0x4 adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_810D9EC lsls r0, 24 cmp r0, 0 bne _080C7796 add r0, sp, 0x4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 movs r1, 0 ldrsb r1, [r4, r1] movs r2, 0x1 negs r2, r2 movs r3, 0 ldrsb r3, [r5, r3] movs r4, 0 ldrsb r4, [r6, r4] str r4, [sp] bl warp1_set movs r0, 0x1 b _080C7798 _080C7796: movs r0, 0 _080C7798: add sp, 0xC pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80C7754 thumb_func_start sub_80C77A0 sub_80C77A0: @ 80C77A0 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080C77CC adds r4, r0, r1 ldr r0, _080C77D0 bl GetVarPointer adds r6, r0, 0 ldr r7, _080C77D4 movs r0, 0 ldrsh r2, [r4, r0] cmp r2, 0x1 beq _080C77FC cmp r2, 0x1 bgt _080C77D8 cmp r2, 0 beq _080C77E2 b _080C7896 .align 2, 0 _080C77CC: .4byte 0x03004b28 _080C77D0: .4byte 0x000040b4 _080C77D4: .4byte 0x02025738 _080C77D8: cmp r2, 0x2 beq _080C783E cmp r2, 0x3 beq _080C7878 b _080C7896 _080C77E2: ldr r0, _080C77F8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080C7896 strh r2, [r4, 0x2] movs r0, 0x2 strh r0, [r4] b _080C7896 .align 2, 0 _080C77F8: .4byte 0x0202f388 _080C77FC: ldr r0, _080C7830 ldrh r1, [r0, 0x2E] adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _080C780A strh r2, [r4, 0x2] _080C780A: ldrb r1, [r7, 0x1] ldrb r2, [r7] movs r0, 0xFF bl sub_80A212C lsls r0, 24 cmp r0, 0 beq _080C7896 movs r0, 0x1 bl sub_810D9B0 cmp r0, 0x1 bne _080C783A ldrh r0, [r6] cmp r0, 0x2 bne _080C7834 movs r0, 0x9 b _080C7836 .align 2, 0 _080C7830: .4byte 0x03001770 _080C7834: movs r0, 0xA _080C7836: strh r0, [r6] b _080C7846 _080C783A: movs r0, 0x2 strh r0, [r4] _080C783E: movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 beq _080C784C _080C7846: movs r0, 0x3 strh r0, [r4] b _080C7896 _080C784C: ldrh r0, [r6] cmp r0, 0x2 bne _080C7860 ldrb r1, [r7, 0x1] ldrb r2, [r7] ldr r3, _080C785C b _080C7866 .align 2, 0 _080C785C: .4byte gUnknown_083D295F _080C7860: ldrb r1, [r7, 0x1] ldrb r2, [r7] ldr r3, _080C7874 _080C7866: movs r0, 0xFF bl exec_movement movs r0, 0x1 strh r0, [r4] b _080C7896 .align 2, 0 _080C7874: .4byte gUnknown_083D2961 _080C7878: ldr r0, _080C789C bl FlagReset movs r0, 0x80 lsls r0, 7 bl FlagReset movs r0, 0 bl copy_saved_warp2_bank_and_enter_x_to_warp1 bl sp13E_warp_to_last_warp adds r0, r5, 0 bl DestroyTask _080C7896: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C789C: .4byte 0x00004001 thumb_func_end sub_80C77A0 thumb_func_start sub_80C78A0 sub_80C78A0: @ 80C78A0 push {r4,lr} sub sp, 0x4 ldr r1, _080C78F4 movs r0, 0 str r0, [sp] movs r0, 0x8C movs r2, 0x70 movs r3, 0x50 bl AddPseudoFieldObject lsls r0, 24 lsrs r0, 24 ldr r2, _080C78F8 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r4, r1, r2 adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, _080C78FC bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bne _080C7900 movs r0, 0x4 bl FieldObjectDirectionToImageAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim b _080C7912 .align 2, 0 _080C78F4: .4byte SpriteCallbackDummy _080C78F8: .4byte 0x02020004 _080C78FC: .4byte 0x000040b4 _080C7900: movs r0, 0x3 bl FieldObjectDirectionToImageAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim _080C7912: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_80C78A0 thumb_func_start sub_80C791C sub_80C791C: @ 80C791C push {lr} bl sub_80C78A0 ldr r2, _080C794C ldr r0, _080C7950 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1] movs r2, 0x20 orrs r1, r2 strb r1, [r0, 0x1] bl pal_fill_black ldr r0, _080C7954 movs r1, 0x50 bl CreateTask bl script_env_2_enable pop {r0} bx r0 .align 2, 0 _080C794C: .4byte 0x030048a0 _080C7950: .4byte 0x0202e858 _080C7954: .4byte sub_80C77A0 thumb_func_end sub_80C791C thumb_func_start sub_80C7958 sub_80C7958: @ 80C7958 push {lr} ldr r0, _080C7990 bl FlagSet ldr r0, _080C7994 bl FlagSet movs r0, 0x80 lsls r0, 7 bl FlagSet ldr r0, _080C7998 movs r1, 0x4 ldrsb r1, [r0, r1] movs r2, 0x5 ldrsb r2, [r0, r2] movs r3, 0x1 negs r3, r3 movs r0, 0 bl saved_warp2_set bl sub_80C7754 bl sub_8080F9C pop {r0} bx r0 .align 2, 0 _080C7990: .4byte 0x0000082d _080C7994: .4byte 0x00004001 _080C7998: .4byte 0x02025734 thumb_func_end sub_80C7958 thumb_func_start GetCurrentMapRotatingGatePuzzleType GetCurrentMapRotatingGatePuzzleType: @ 80C799C push {lr} ldr r0, _080C79B0 ldrh r1, [r0, 0x4] movs r0, 0x86 lsls r0, 1 cmp r1, r0 bne _080C79B4 movs r0, 0x1 b _080C79C6 .align 2, 0 _080C79B0: .4byte 0x02025734 _080C79B4: ldr r0, _080C79C0 cmp r1, r0 beq _080C79C4 movs r0, 0 b _080C79C6 .align 2, 0 _080C79C0: .4byte 0x0000081d _080C79C4: movs r0, 0x2 _080C79C6: pop {r1} bx r1 thumb_func_end GetCurrentMapRotatingGatePuzzleType thumb_func_start sub_80C79CC sub_80C79CC: @ 80C79CC push {r4-r6,lr} movs r0, 0x80 lsls r0, 7 bl GetVarPointer adds r5, r0, 0 movs r3, 0 ldr r4, _080C7A00 ldrb r0, [r4] cmp r3, r0 bge _080C79F8 ldr r6, _080C7A04 _080C79E4: adds r2, r5, r3 ldr r1, [r6] lsls r0, r3, 3 adds r0, r1 ldrb r0, [r0, 0x5] strb r0, [r2] adds r3, 0x1 ldrb r0, [r4] cmp r3, r0 blt _080C79E4 _080C79F8: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C7A00: .4byte 0x02038804 _080C7A04: .4byte 0x02038800 thumb_func_end sub_80C79CC thumb_func_start sub_80C7A08 sub_80C7A08: @ 80C7A08 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x80 lsls r0, 7 bl GetVarPointer adds r0, r4 ldrb r0, [r0] pop {r4} pop {r1} bx r1 thumb_func_end sub_80C7A08 thumb_func_start sub_80C7A24 sub_80C7A24: @ 80C7A24 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 movs r0, 0x80 lsls r0, 7 bl GetVarPointer adds r0, r4 strb r5, [r0] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C7A24 thumb_func_start sub_80C7A44 sub_80C7A44: @ 80C7A44 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl sub_80C7A08 lsls r0, 24 lsrs r1, r0, 24 cmp r4, 0x1 bne _080C7A68 cmp r1, 0 beq _080C7A64 subs r0, r1, 0x1 lsls r0, 24 b _080C7A72 _080C7A64: movs r1, 0x3 b _080C7A74 _080C7A68: adds r1, 0x1 lsls r1, 24 movs r0, 0xC0 lsls r0, 18 ands r0, r1 _080C7A72: lsrs r1, r0, 24 _080C7A74: adds r0, r5, 0 bl sub_80C7A24 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C7A44 thumb_func_start sub_80C7A80 sub_80C7A80: @ 80C7A80 push {lr} bl GetCurrentMapRotatingGatePuzzleType cmp r0, 0x1 beq _080C7A94 cmp r0, 0x1 ble _080C7AC8 cmp r0, 0x2 beq _080C7AAC b _080C7AC8 _080C7A94: ldr r1, _080C7AA0 ldr r0, _080C7AA4 str r0, [r1] ldr r1, _080C7AA8 movs r0, 0x7 b _080C7AB6 .align 2, 0 _080C7AA0: .4byte 0x02038800 _080C7AA4: .4byte gUnknown_083D2964 _080C7AA8: .4byte 0x02038804 _080C7AAC: ldr r1, _080C7ACC ldr r0, _080C7AD0 str r0, [r1] ldr r1, _080C7AD4 movs r0, 0xE _080C7AB6: strb r0, [r1] movs r1, 0 ldr r3, _080C7AD8 movs r2, 0x40 _080C7ABE: adds r0, r1, r3 strb r2, [r0] adds r1, 0x1 cmp r1, 0xD bls _080C7ABE _080C7AC8: pop {r0} bx r0 .align 2, 0 _080C7ACC: .4byte 0x02038800 _080C7AD0: .4byte gUnknown_083D299C _080C7AD4: .4byte 0x02038804 _080C7AD8: .4byte 0x020387f0 thumb_func_end sub_80C7A80 thumb_func_start sub_80C7ADC sub_80C7ADC: @ 80C7ADC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 16 lsrs r0, 16 str r0, [sp] lsls r1, 16 lsrs r1, 16 mov r10, r1 ldr r2, _080C7B9C ldrh r1, [r2] subs r0, r1, 0x2 lsls r0, 16 lsrs r3, r0, 16 adds r1, 0x11 lsls r1, 16 lsrs r1, 16 mov r9, r1 ldrh r1, [r2, 0x2] subs r0, r1, 0x2 lsls r0, 16 lsrs r2, r0, 16 adds r1, 0xE lsls r1, 16 lsrs r1, 16 mov r8, r1 movs r5, 0 ldr r0, _080C7BA0 ldrb r0, [r0] cmp r5, r0 bcs _080C7B8C lsls r0, r2, 16 asrs r7, r0, 16 lsls r0, r3, 16 asrs r6, r0, 16 _080C7B28: ldr r0, _080C7BA4 ldr r0, [r0] lsls r1, r5, 3 adds r1, r0 ldrh r0, [r1] adds r0, 0x7 lsls r0, 16 lsrs r2, r0, 16 ldrh r0, [r1, 0x2] adds r0, 0x7 lsls r0, 16 asrs r1, r0, 16 cmp r7, r1 bgt _080C7B7E mov r3, r8 lsls r0, r3, 16 asrs r0, 16 cmp r0, r1 blt _080C7B7E lsls r0, r2, 16 asrs r1, r0, 16 cmp r6, r1 bgt _080C7B7E mov r2, r9 lsls r0, r2, 16 asrs r0, 16 cmp r0, r1 blt _080C7B7E ldr r0, _080C7BA8 adds r4, r5, r0 ldrb r0, [r4] cmp r0, 0x40 bne _080C7B7E ldr r3, [sp] lsls r1, r3, 16 mov r0, r10 lsls r2, r0, 16 adds r0, r5, 0 asrs r1, 16 asrs r2, 16 bl sub_80C7BAC strb r0, [r4] _080C7B7E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080C7BA0 ldrb r0, [r0] cmp r5, r0 bcc _080C7B28 _080C7B8C: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C7B9C: .4byte 0x02025734 _080C7BA0: .4byte 0x02038804 _080C7BA4: .4byte 0x02038800 _080C7BA8: .4byte 0x020387f0 thumb_func_end sub_80C7ADC thumb_func_start sub_80C7BAC sub_80C7BAC: @ 80C7BAC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x18 lsls r0, 24 lsrs r6, r0, 24 lsls r1, 16 lsrs r7, r1, 16 lsls r2, 16 lsrs r2, 16 mov r8, r2 ldr r0, _080C7BDC lsls r1, r6, 3 ldr r0, [r0] adds r4, r0, r1 ldrb r0, [r4, 0x4] cmp r0, 0 beq _080C7BD4 cmp r0, 0x4 bne _080C7BE4 _080C7BD4: mov r1, sp ldr r0, _080C7BE0 b _080C7BE8 .align 2, 0 _080C7BDC: .4byte 0x02038800 _080C7BE0: .4byte gSpriteTemplate_83D60A4 _080C7BE4: mov r1, sp ldr r0, _080C7C7C _080C7BE8: ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} mov r2, sp ldrb r0, [r4, 0x4] movs r3, 0x98 lsls r3, 5 adds r1, r3, 0 adds r0, r1 strh r0, [r2] mov r0, sp movs r1, 0 movs r2, 0 movs r3, 0x94 bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x40 beq _080C7C84 ldrh r0, [r4] adds r0, 0x7 ldrh r1, [r4, 0x2] adds r1, 0x7 lsls r4, r5, 4 adds r4, r5 lsls r4, 2 ldr r2, _080C7C80 adds r4, r2 strh r6, [r4, 0x2E] movs r2, 0x3E adds r2, r4 mov r12, r2 ldrb r2, [r2] movs r3, 0x2 orrs r2, r3 mov r3, r12 strb r2, [r3] lsls r0, 16 asrs r0, 16 lsls r2, r7, 16 asrs r2, 16 adds r0, r2 lsls r0, 16 asrs r0, 16 lsls r1, 16 asrs r1, 16 mov r3, r8 lsls r2, r3, 16 asrs r2, 16 adds r1, r2 lsls r1, 16 asrs r1, 16 adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 bl sub_8060388 adds r0, r4, 0 bl sub_80C7D14 adds r0, r6, 0 bl sub_80C7A08 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAffineAnim adds r0, r5, 0 b _080C7C86 .align 2, 0 _080C7C7C: .4byte gSpriteTemplate_83D608C _080C7C80: .4byte 0x02020004 _080C7C84: movs r0, 0x40 _080C7C86: add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80C7BAC thumb_func_start sub_80C7C94 sub_80C7C94: @ 80C7C94 push {r4-r7,lr} adds r6, r0, 0 ldrh r0, [r6, 0x30] lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r6, 0x32] lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 adds r0, r6, 0 bl sub_80C7D14 cmp r5, 0x1 bne _080C7CDA adds r0, r4, 0x4 lsls r0, 24 lsrs r4, r0, 24 bl sub_80E6034 lsls r0, 16 asrs r0, 16 cmp r0, 0x1 beq _080C7CCA adds r0, r4, 0 adds r0, 0x8 lsls r0, 24 lsrs r4, r0, 24 _080C7CCA: movs r0, 0x30 bl audio_play adds r0, r6, 0 adds r1, r4, 0 bl StartSpriteAffineAnim b _080C7D08 _080C7CDA: cmp r5, 0x2 bne _080C7D08 adds r0, r7, 0 adds r0, 0x8 lsls r0, 24 lsrs r4, r0, 24 bl sub_80E6034 lsls r0, 16 asrs r0, 16 cmp r0, 0x1 beq _080C7CFA adds r0, r4, 0 adds r0, 0x8 lsls r0, 24 lsrs r4, r0, 24 _080C7CFA: movs r0, 0x30 bl audio_play adds r0, r6, 0 adds r1, r4, 0 bl StartSpriteAffineAnim _080C7D08: movs r0, 0 strh r0, [r6, 0x30] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C7C94 thumb_func_start sub_80C7D14 sub_80C7D14: @ 80C7D14 push {r4-r6,lr} mov r12, r0 mov r4, r12 adds r4, 0x3E ldrb r0, [r4] movs r5, 0x5 negs r5, r5 ands r5, r0 strb r5, [r4] mov r0, r12 ldrh r1, [r0, 0x24] ldrh r2, [r0, 0x20] adds r1, r2 adds r0, 0x28 movs r2, 0 ldrsb r2, [r0, r2] ldr r0, _080C7DA8 adds r2, r1 ldrh r0, [r0] adds r2, r0 lsls r2, 16 mov r3, r12 ldrh r1, [r3, 0x26] ldrh r0, [r3, 0x22] adds r1, r0 mov r0, r12 adds r0, 0x29 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldr r3, _080C7DAC adds r0, r1 ldrh r3, [r3] adds r0, r3 lsls r0, 16 movs r3, 0x80 lsls r3, 15 adds r1, r2, r3 lsrs r1, 16 lsrs r6, r0, 16 adds r0, r3 lsrs r3, r0, 16 asrs r2, 16 cmp r2, 0xFF bgt _080C7D7A lsls r0, r1, 16 asrs r0, 16 movs r1, 0x10 negs r1, r1 cmp r0, r1 bge _080C7D82 _080C7D7A: movs r1, 0x4 adds r0, r5, 0 orrs r0, r1 strb r0, [r4] _080C7D82: lsls r0, r6, 16 asrs r0, 16 cmp r0, 0xAF bgt _080C7D96 lsls r0, r3, 16 asrs r0, 16 movs r1, 0x10 negs r1, r1 cmp r0, r1 bge _080C7DA2 _080C7D96: mov r0, r12 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080C7DA2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C7DA8: .4byte 0x030024d0 _080C7DAC: .4byte 0x030027e0 thumb_func_end sub_80C7D14 thumb_func_start LoadRotatingGatePics LoadRotatingGatePics: @ 80C7DB0 push {lr} ldr r0, _080C7DBC bl LoadSpriteSheets pop {r0} bx r0 .align 2, 0 _080C7DBC: .4byte gRotatingGatesGraphicsTable thumb_func_end LoadRotatingGatePics thumb_func_start sub_80C7DC0 sub_80C7DC0: @ 80C7DC0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r2, _080C7DF4 ldrh r1, [r2] subs r0, r1, 0x2 lsls r0, 16 lsrs r0, 16 mov r10, r0 adds r1, 0x11 lsls r1, 16 lsrs r1, 16 mov r9, r1 ldrh r1, [r2, 0x2] subs r0, r1, 0x2 lsls r0, 16 lsrs r0, 16 mov r8, r0 adds r1, 0xE lsls r1, 16 lsrs r7, r1, 16 movs r6, 0 b _080C7E66 .align 2, 0 _080C7DF4: .4byte 0x02025734 _080C7DF8: ldr r0, _080C7E7C ldr r0, [r0] lsls r1, r6, 3 adds r1, r0 ldrh r0, [r1] adds r0, 0x7 lsls r0, 16 lsrs r2, r0, 16 ldrh r0, [r1, 0x2] adds r0, 0x7 lsls r0, 16 lsrs r3, r0, 16 ldr r0, _080C7E80 adds r0, r6, r0 ldrb r0, [r0] cmp r0, 0x40 beq _080C7E64 lsls r0, r2, 16 mov r2, r10 lsls r1, r2, 16 asrs r2, r0, 16 cmp r0, r1 blt _080C7E44 mov r1, r9 lsls r0, r1, 16 asrs r0, 16 cmp r2, r0 bgt _080C7E44 lsls r0, r3, 16 mov r2, r8 lsls r1, r2, 16 asrs r2, r0, 16 cmp r0, r1 blt _080C7E44 lsls r0, r7, 16 asrs r0, 16 cmp r2, r0 ble _080C7E64 _080C7E44: ldr r0, _080C7E80 adds r5, r6, r0 ldrb r0, [r5] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _080C7E84 adds r4, r0 adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl DestroySprite movs r0, 0x40 strb r0, [r5] _080C7E64: adds r6, 0x1 _080C7E66: ldr r0, _080C7E88 ldrb r0, [r0] cmp r6, r0 blt _080C7DF8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C7E7C: .4byte 0x02038800 _080C7E80: .4byte 0x020387f0 _080C7E84: .4byte 0x02020004 _080C7E88: .4byte 0x02038804 thumb_func_end sub_80C7DC0 thumb_func_start sub_80C7E8C sub_80C7E8C: @ 80C7E8C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r4, r0, 24 cmp r1, 0x1 bne _080C7EAC ldr r0, _080C7EA8 mov r10, r0 b _080C7EB8 .align 2, 0 _080C7EA8: .4byte gUnknown_083D611C _080C7EAC: cmp r1, 0x2 beq _080C7EB4 _080C7EB0: movs r0, 0 b _080C7F48 _080C7EB4: ldr r1, _080C7F58 mov r10, r1 _080C7EB8: adds r0, r4, 0 bl sub_80C7A08 lsls r0, 24 lsrs r0, 24 str r0, [sp] ldr r0, _080C7F5C ldr r1, [r0] lsls r0, r4, 3 adds r0, r1 ldrb r2, [r0, 0x4] ldrh r1, [r0] adds r1, 0x7 ldrh r0, [r0, 0x2] adds r0, 0x7 movs r3, 0 lsls r2, 3 str r2, [sp, 0x4] lsls r1, 16 asrs r1, 16 mov r9, r1 lsls r0, 16 asrs r0, 16 mov r8, r0 _080C7EE8: movs r6, 0 ldr r2, [sp] adds r7, r2, r3 lsls r0, r3, 1 adds r5, r7, 0 ldr r1, [sp, 0x4] adds r0, r1 ldr r2, _080C7F60 adds r4, r0, r2 _080C7EFA: adds r0, r5, 0 cmp r5, 0 bge _080C7F02 adds r0, r7, 0x3 _080C7F02: asrs r0, 2 lsls r0, 2 subs r0, r5, r0 lsls r0, 1 adds r0, r6 lsls r0, 24 lsrs r1, r0, 24 ldrb r0, [r4] cmp r0, 0 beq _080C7F38 lsls r1, 2 add r1, r10 movs r0, 0 ldrsb r0, [r1, r0] add r0, r9 ldrb r1, [r1, 0x1] lsls r1, 24 asrs r1, 24 add r1, r8 str r3, [sp, 0x8] bl MapGridIsImpassableAt lsls r0, 24 lsrs r0, 24 ldr r3, [sp, 0x8] cmp r0, 0x1 beq _080C7EB0 _080C7F38: adds r4, 0x1 adds r6, 0x1 cmp r6, 0x1 ble _080C7EFA adds r3, 0x1 cmp r3, 0x3 ble _080C7EE8 movs r0, 0x1 _080C7F48: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080C7F58: .4byte gUnknown_083D60FC _080C7F5C: .4byte 0x02038800 _080C7F60: .4byte gUnknown_083D613C thumb_func_end sub_80C7E8C thumb_func_start sub_80C7F64 sub_80C7F64: @ 80C7F64 push {r4-r6,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 lsls r4, 24 lsrs r5, r4, 24 lsrs r4, 25 movs r0, 0x1 ands r5, r0 adds r0, r6, 0 bl sub_80C7A08 subs r4, r0 adds r1, r4, 0x4 adds r0, r1, 0 cmp r1, 0 bge _080C7F8A adds r0, r4, 0x7 _080C7F8A: asrs r0, 2 lsls r0, 2 subs r0, r1, r0 ldr r1, _080C7FB0 ldr r2, [r1] lsls r1, r6, 3 adds r1, r2 ldrb r1, [r1, 0x4] ldr r2, _080C7FB4 lsls r0, 24 asrs r0, 23 adds r0, r5 lsls r1, 3 adds r0, r1 adds r0, r2 ldrb r0, [r0] pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080C7FB0: .4byte 0x02038800 _080C7FB4: .4byte gUnknown_083D613C thumb_func_end sub_80C7F64 thumb_func_start sub_80C7FB8 sub_80C7FB8: @ 80C7FB8 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, _080C7FE4 adds r2, r3, r0 ldrb r0, [r2] cmp r0, 0x40 beq _080C7FDC lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _080C7FE8 adds r4, r0 strh r1, [r4, 0x30] adds r0, r3, 0 bl sub_80C7A08 strh r0, [r4, 0x32] _080C7FDC: pop {r4} pop {r0} bx r0 .align 2, 0 _080C7FE4: .4byte 0x020387f0 _080C7FE8: .4byte 0x02020004 thumb_func_end sub_80C7FB8 thumb_func_start sub_80C7FEC sub_80C7FEC: @ 80C7FEC push {lr} lsls r0, 24 lsrs r0, 24 adds r3, r0, 0 lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 cmp r0, 0x2 bne _080C8008 ldr r3, _080C8004 b _080C802A .align 2, 0 _080C8004: .4byte gUnknown_083D60BC _080C8008: cmp r0, 0x1 bne _080C8014 ldr r3, _080C8010 b _080C802A .align 2, 0 _080C8010: .4byte gUnknown_083D60CC _080C8014: cmp r0, 0x3 bne _080C8020 ldr r3, _080C801C b _080C802A .align 2, 0 _080C801C: .4byte gUnknown_083D60DC _080C8020: cmp r3, 0x4 beq _080C8028 movs r0, 0xFF b _080C8038 _080C8028: ldr r3, _080C803C _080C802A: lsls r0, r2, 16 lsls r1, 16 asrs r1, 16 asrs r0, 14 adds r0, r1 adds r0, r3, r0 ldrb r0, [r0] _080C8038: pop {r1} bx r1 .align 2, 0 _080C803C: .4byte gUnknown_083D60EC thumb_func_end sub_80C7FEC thumb_func_start sub_80C8040 sub_80C8040: @ 80C8040 push {lr} bl GetCurrentMapRotatingGatePuzzleType cmp r0, 0 beq _080C8052 bl sub_80C7A80 bl sub_80C79CC _080C8052: pop {r0} bx r0 thumb_func_end sub_80C8040 thumb_func_start RotatingGatePuzzleCameraUpdate RotatingGatePuzzleCameraUpdate: @ 80C8058 push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 16 lsrs r5, r1, 16 bl GetCurrentMapRotatingGatePuzzleType cmp r0, 0 beq _080C807A lsls r0, r4, 16 asrs r0, 16 lsls r1, r5, 16 asrs r1, 16 bl sub_80C7ADC bl sub_80C7DC0 _080C807A: pop {r4,r5} pop {r0} bx r0 thumb_func_end RotatingGatePuzzleCameraUpdate thumb_func_start sub_80C8080 sub_80C8080: @ 80C8080 push {lr} bl GetCurrentMapRotatingGatePuzzleType cmp r0, 0 beq _080C809A bl LoadRotatingGatePics bl sub_80C7A80 movs r0, 0 movs r1, 0 bl sub_80C7ADC _080C809A: pop {r0} bx r0 thumb_func_end sub_80C8080 thumb_func_start CheckForRotatingGatePuzzleCollision CheckForRotatingGatePuzzleCollision: @ 80C80A0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r1, 16 lsrs r4, r1, 16 lsls r2, 16 lsrs r2, 16 mov r8, r2 bl GetCurrentMapRotatingGatePuzzleType cmp r0, 0 bne _080C80D4 b _080C8172 _080C80C2: adds r0, r4, 0 adds r1, r5, 0 bl sub_80C7FB8 adds r0, r4, 0 adds r1, r5, 0 bl sub_80C7A44 b _080C8172 _080C80D4: movs r6, 0 ldr r0, _080C8160 ldrb r0, [r0] cmp r6, r0 bge _080C8172 lsls r0, r4, 16 asrs r7, r0, 16 _080C80E2: ldr r0, _080C8164 ldr r1, [r0] lsls r0, r6, 3 adds r0, r1 ldrh r1, [r0] adds r1, 0x7 ldrh r0, [r0, 0x2] adds r0, 0x7 lsls r0, 16 lsrs r2, r0, 16 lsls r1, 16 asrs r4, r1, 16 subs r0, r4, 0x2 cmp r0, r7 bgt _080C8168 adds r0, r4, 0x1 cmp r7, r0 bgt _080C8168 lsls r0, r2, 16 asrs r3, r0, 16 subs r1, r3, 0x2 mov r2, r8 lsls r0, r2, 16 asrs r2, r0, 16 cmp r1, r2 bgt _080C8168 adds r0, r3, 0x1 cmp r2, r0 bgt _080C8168 subs r1, r7, r4 adds r1, 0x2 subs r2, r3 adds r2, 0x2 lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 mov r0, r9 bl sub_80C7FEC lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _080C8168 lsrs r5, r0, 4 movs r1, 0xF ands r1, r0 lsls r0, r6, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80C7F64 cmp r0, 0 beq _080C8168 adds r0, r4, 0 adds r1, r5, 0 bl sub_80C7E8C cmp r0, 0 bne _080C80C2 movs r0, 0x1 b _080C8174 .align 2, 0 _080C8160: .4byte 0x02038804 _080C8164: .4byte 0x02038800 _080C8168: adds r6, 0x1 ldr r0, _080C8180 ldrb r0, [r0] cmp r6, r0 blt _080C80E2 _080C8172: movs r0, 0 _080C8174: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080C8180: .4byte 0x02038804 thumb_func_end CheckForRotatingGatePuzzleCollision thumb_func_start GetSafariZoneFlag GetSafariZoneFlag: @ 80C8184 push {lr} ldr r0, _080C8194 bl FlagGet lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080C8194: .4byte 0x0000082c thumb_func_end GetSafariZoneFlag thumb_func_start SetSafariZoneFlag SetSafariZoneFlag: @ 80C8198 push {lr} ldr r0, _080C81A4 bl FlagSet pop {r0} bx r0 .align 2, 0 _080C81A4: .4byte 0x0000082c thumb_func_end SetSafariZoneFlag thumb_func_start ResetSafariZoneFlag ResetSafariZoneFlag: @ 80C81A8 push {lr} ldr r0, _080C81B4 bl FlagReset pop {r0} bx r0 .align 2, 0 _080C81B4: .4byte 0x0000082c thumb_func_end ResetSafariZoneFlag thumb_func_start sub_80C81B8 sub_80C81B8: @ 80C81B8 push {lr} movs r0, 0x11 bl sav12_xor_increment bl SetSafariZoneFlag bl sub_80C82D8 ldr r1, _080C81DC movs r0, 0x1E strb r0, [r1] ldr r1, _080C81E0 movs r2, 0xFA lsls r2, 1 adds r0, r2, 0 strh r0, [r1] pop {r0} bx r0 .align 2, 0 _080C81DC: .4byte 0x02038808 _080C81E0: .4byte 0x0203880a thumb_func_end sub_80C81B8 thumb_func_start sub_80C81E4 sub_80C81E4: @ 80C81E4 push {lr} bl ResetSafariZoneFlag bl sub_80C82D8 ldr r1, _080C8200 movs r0, 0 strb r0, [r1] ldr r1, _080C8204 movs r0, 0 strh r0, [r1] pop {r0} bx r0 .align 2, 0 _080C8200: .4byte 0x02038808 _080C8204: .4byte 0x0203880a thumb_func_end sub_80C81E4 thumb_func_start safari_step safari_step: @ 80C8208 push {lr} bl GetSafariZoneFlag cmp r0, 0 beq _080C8224 bl sub_80C8508 ldr r1, _080C8228 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] lsls r0, 16 cmp r0, 0 beq _080C822C _080C8224: movs r0, 0 b _080C8234 .align 2, 0 _080C8228: .4byte 0x0203880a _080C822C: ldr r0, _080C8238 bl script_env_1_execute_new_script movs r0, 0x1 _080C8234: pop {r1} bx r1 .align 2, 0 _080C8238: .4byte gUnknown_081C3448 thumb_func_end safari_step thumb_func_start sub_80C823C sub_80C823C: @ 80C823C push {lr} ldr r0, _080C8248 bl script_env_1_execute_new_script pop {r0} bx r0 .align 2, 0 _080C8248: .4byte gUnknown_081C342D thumb_func_end sub_80C823C thumb_func_start sub_80C824C sub_80C824C: @ 80C824C push {lr} ldr r0, _080C8260 ldrb r0, [r0] cmp r0, 0 beq _080C8268 ldr r0, _080C8264 bl SetMainCallback2 b _080C82B0 .align 2, 0 _080C8260: .4byte 0x02038808 _080C8264: .4byte c2_exit_to_overworld_2_switch _080C8268: ldr r0, _080C8288 ldrb r0, [r0] cmp r0, 0x8 bne _080C829C ldr r0, _080C828C bl script_env_2_execute_new_script bl warp_in ldr r1, _080C8290 ldr r0, _080C8294 str r0, [r1] ldr r0, _080C8298 bl SetMainCallback2 b _080C82B0 .align 2, 0 _080C8288: .4byte 0x02024d26 _080C828C: .4byte gUnknown_081C340A _080C8290: .4byte 0x0300485c _080C8294: .4byte sub_8080E44 _080C8298: .4byte c2_load_new_map _080C829C: cmp r0, 0x7 bne _080C82B0 ldr r0, _080C82B4 bl script_env_1_execute_new_script bl sub_80655F0 ldr r0, _080C82B8 bl SetMainCallback2 _080C82B0: pop {r0} bx r0 .align 2, 0 _080C82B4: .4byte gUnknown_081C3459 _080C82B8: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end sub_80C824C thumb_func_start sub_80C82BC sub_80C82BC: @ 80C82BC push {lr} lsls r0, 24 lsrs r0, 20 ldr r1, _080C82D4 adds r0, r1 movs r1, 0 movs r2, 0x10 bl memset pop {r0} bx r0 .align 2, 0 _080C82D4: .4byte 0x0203880c thumb_func_end sub_80C82BC thumb_func_start sub_80C82D8 sub_80C82D8: @ 80C82D8 push {lr} ldr r0, _080C82E8 movs r1, 0 movs r2, 0xA0 bl memset pop {r0} bx r0 .align 2, 0 _080C82E8: .4byte 0x0203880c thumb_func_end sub_80C82D8 thumb_func_start sub_80C82EC sub_80C82EC: @ 80C82EC push {r4-r6,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer movs r3, 0 adds r5, r4, 0 ldr r4, _080C8344 _080C8302: ldr r1, _080C8348 lsls r0, r3, 4 adds r2, r0, r1 movs r1, 0x5 ldrsb r1, [r4, r1] movs r0, 0x4 ldrsb r0, [r2, r0] cmp r1, r0 bne _080C8358 mov r0, sp movs r6, 0 ldrsh r1, [r2, r6] movs r6, 0 ldrsh r0, [r0, r6] cmp r1, r0 bne _080C8358 movs r0, 0x2 ldrsh r1, [r2, r0] movs r6, 0 ldrsh r0, [r5, r6] cmp r1, r0 bne _080C8358 ldr r0, _080C834C strh r3, [r0] ldr r1, _080C8350 ldrb r0, [r2, 0x8] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, _080C8354 bl StringCopy b _080C836A .align 2, 0 _080C8344: .4byte 0x02025734 _080C8348: .4byte 0x0203880c _080C834C: .4byte 0x0202e8dc _080C8350: .4byte gUnknown_083F7EB8 _080C8354: .4byte 0x020231cc _080C8358: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x9 bls _080C8302 ldr r1, _080C8374 ldr r2, _080C8378 adds r0, r2, 0 strh r0, [r1] _080C836A: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C8374: .4byte 0x0202e8dc _080C8378: .4byte 0x0000ffff thumb_func_end sub_80C82EC thumb_func_start sub_80C837C sub_80C837C: @ 80C837C push {r4-r7,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords movs r5, 0 adds r6, r4, 0 ldr r0, _080C83E8 movs r7, 0x5 ldrsb r7, [r0, r7] mov r4, sp ldr r0, _080C83EC mov r12, r0 _080C839C: lsls r0, r5, 4 mov r1, r12 adds r2, r0, r1 movs r0, 0x4 ldrsb r0, [r2, r0] cmp r7, r0 bne _080C83F4 ldrh r0, [r4] ldrh r1, [r2] subs r0, r1 strh r0, [r4] adds r3, r6, 0 ldrh r0, [r3] ldrh r1, [r2, 0x2] subs r0, r1 strh r0, [r3] movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0 bge _080C83C8 negs r0, r0 strh r0, [r4] _080C83C8: movs r2, 0 ldrsh r0, [r3, r2] cmp r0, 0 bge _080C83D4 negs r0, r0 strh r0, [r3] _080C83D4: movs r2, 0 ldrsh r0, [r4, r2] movs r2, 0 ldrsh r1, [r6, r2] adds r0, r1 cmp r0, 0x5 bgt _080C83F4 ldr r0, _080C83F0 strh r5, [r0] b _080C8406 .align 2, 0 _080C83E8: .4byte 0x02025734 _080C83EC: .4byte 0x0203880c _080C83F0: .4byte 0x0202e8dc _080C83F4: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x9 bls _080C839C ldr r1, _080C8410 ldr r2, _080C8414 adds r0, r2, 0 strh r0, [r1] _080C8406: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C8410: .4byte 0x0202e8dc _080C8414: .4byte 0x0000ffff thumb_func_end sub_80C837C thumb_func_start unref_sub_80C8418 unref_sub_80C8418: @ 80C8418 push {lr} bl sub_80C82EC ldr r2, _080C8434 ldrh r1, [r2] ldr r0, _080C8438 cmp r1, r0 beq _080C8440 adds r0, r1, 0 lsls r0, 4 ldr r1, _080C843C adds r0, r1 b _080C8442 .align 2, 0 _080C8434: .4byte 0x0202e8dc _080C8438: .4byte 0x0000ffff _080C843C: .4byte 0x02038814 _080C8440: movs r0, 0 _080C8442: pop {r1} bx r1 thumb_func_end unref_sub_80C8418 thumb_func_start sub_80C8448 sub_80C8448: @ 80C8448 push {lr} bl sub_80C837C ldr r2, _080C8464 ldrh r1, [r2] ldr r0, _080C8468 cmp r1, r0 beq _080C8470 adds r0, r1, 0 lsls r0, 4 ldr r1, _080C846C adds r0, r1 b _080C8472 .align 2, 0 _080C8464: .4byte 0x0202e8dc _080C8468: .4byte 0x0000ffff _080C846C: .4byte 0x02038814 _080C8470: movs r0, 0 _080C8472: pop {r1} bx r1 thumb_func_end sub_80C8448 thumb_func_start sub_80C8478 sub_80C8478: @ 80C8478 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 movs r2, 0 ldr r3, _080C84E8 mov r6, sp adds r6, 0x2 ldr r7, _080C84EC movs r1, 0x8 adds r1, r3 mov r9, r1 movs r4, 0xFF lsls r4, 3 adds r1, r7, r4 lsrs r0, 21 adds r0, r1 mov r8, r0 _080C84A0: lsls r5, r2, 4 adds r4, r5, r3 movs r0, 0x4 ldrsb r0, [r4, r0] cmp r0, 0 bne _080C84F0 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 bne _080C84F0 movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 bne _080C84F0 mov r0, sp adds r1, r6, 0 bl GetXYCoordsOneStepInFrontOfPlayer ldrb r0, [r7, 0x5] strb r0, [r4, 0x4] mov r3, r9 adds r2, r5, r3 mov r3, r8 ldr r0, [r3] ldr r1, [r3, 0x4] str r0, [r2] str r1, [r2, 0x4] movs r0, 0x64 strb r0, [r4, 0x5] mov r0, sp ldrh r0, [r0] strh r0, [r4] ldrh r0, [r6] strh r0, [r4, 0x2] b _080C84FA .align 2, 0 _080C84E8: .4byte 0x0203880c _080C84EC: .4byte 0x02025734 _080C84F0: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x9 bls _080C84A0 _080C84FA: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C8478 thumb_func_start sub_80C8508 sub_80C8508: @ 80C8508 push {r4,r5,lr} movs r4, 0 ldr r5, _080C8538 _080C850E: lsls r0, r4, 4 adds r1, r0, r5 ldrb r0, [r1, 0x5] cmp r0, 0 beq _080C8528 subs r0, 0x1 strb r0, [r1, 0x5] lsls r0, 24 cmp r0, 0 bne _080C8528 adds r0, r4, 0 bl sub_80C82BC _080C8528: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _080C850E pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C8538: .4byte 0x0203880c thumb_func_end sub_80C8508 thumb_func_start unref_sub_80C853C unref_sub_80C853C: @ 80C853C push {lr} bl sub_80C82EC ldr r3, _080C8564 ldrh r1, [r3] ldr r0, _080C8568 cmp r1, r0 beq _080C8574 ldr r0, _080C856C ldr r2, _080C8570 lsls r1, 4 adds r1, r2 ldrb r1, [r1, 0x5] movs r2, 0x2 movs r3, 0x3 bl ConvertIntToDecimalStringN movs r0, 0x1 b _080C8576 .align 2, 0 _080C8564: .4byte 0x0202e8dc _080C8568: .4byte 0x0000ffff _080C856C: .4byte 0x020232cc _080C8570: .4byte 0x0203880c _080C8574: movs r0, 0 _080C8576: pop {r1} bx r1 thumb_func_end unref_sub_80C853C thumb_func_start sub_80C857C sub_80C857C: @ 80C857C push {r4,r5,lr} adds r2, r0, 0 lsls r4, r1, 16 lsrs r4, 16 ldr r5, _080C85A8 adds r0, r5, 0 adds r1, r2, 0 adds r2, r4, 0 bl memcpy bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 adds r1, r5, 0 adds r2, r4, 0 bl SendBlock pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C85A8: .4byte 0x0201e000 thumb_func_end sub_80C857C thumb_func_start sub_80C85AC sub_80C85AC: @ 80C85AC push {r4,lr} lsls r0, 24 lsrs r0, 24 movs r1, 0x80 lsls r1, 17 lsls r1, r0 lsrs r4, r1, 24 bl GetBlockRecievedStatus adds r1, r4, 0 ands r1, r0 cmp r1, 0 beq _080C85D0 adds r0, r4, 0 bl ResetBlockReceivedFlag movs r0, 0x1 b _080C85D2 _080C85D0: movs r0, 0 _080C85D2: pop {r4} pop {r1} bx r1 thumb_func_end sub_80C85AC thumb_func_start sub_80C85D8 sub_80C85D8: @ 80C85D8 push {r4,lr} movs r4, 0 _080C85DC: bl GetBlockRecievedStatus lsls r0, 24 lsrs r0, 24 asrs r0, r4 movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _080C85F2 movs r0, 0 b _080C85FE _080C85F2: adds r4, 0x1 cmp r4, 0x3 ble _080C85DC bl ResetBlockReceivedFlags movs r0, 0x1 _080C85FE: pop {r4} pop {r1} bx r1 thumb_func_end sub_80C85D8 thumb_func_start sub_80C8604 sub_80C8604: @ 80C8604 push {r4-r6,lr} lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 ldr r5, _080C8638 ldr r6, _080C863C ldr r4, _080C8640 movs r3, 0xFF _080C8614: lsls r0, r1, 8 adds r0, r4 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _080C8614 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r5 movs r1, 0 strh r1, [r0, 0x8] str r6, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C8638: .4byte 0x03004b20 _080C863C: .4byte sub_80C8644 _080C8640: .4byte 0x03002b80 thumb_func_end sub_80C8604 thumb_func_start sub_80C8644 sub_80C8644: @ 80C8644 lsls r0, 24 lsrs r0, 24 ldr r2, _080C8658 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080C865C str r0, [r1] bx lr .align 2, 0 _080C8658: .4byte 0x03004b20 _080C865C: .4byte sub_80C8660 thumb_func_end sub_80C8644 thumb_func_start sub_80C8660 sub_80C8660: @ 80C8660 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080C8694 ldrb r0, [r0] cmp r0, 0 beq _080C868E bl GetMultiplayerId ldr r1, _080C8698 strb r0, [r1] bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _080C868E ldr r1, _080C869C movs r0, 0x1 strb r0, [r1] adds r0, r4, 0 bl SwitchTaskToFollowupFunc _080C868E: pop {r4} pop {r0} bx r0 .align 2, 0 _080C8694: .4byte 0x03002fa4 _080C8698: .4byte 0x02038695 _080C869C: .4byte 0x0203869a thumb_func_end sub_80C8660 thumb_func_start sub_80C86A0 sub_80C86A0: @ 80C86A0 push {r4,r5,lr} adds r4, r0, 0 movs r5, 0x2 ldrb r0, [r4] cmp r0, 0xFC bne _080C86B6 ldrb r0, [r4, 0x1] cmp r0, 0x15 bne _080C86B6 movs r0, 0x2 b _080C872C _080C86B6: adds r0, r4, 0 bl StringLength lsls r0, 16 lsrs r0, 16 cmp r0, 0x5 bhi _080C872A ldrb r0, [r4] cmp r0, 0xFF beq _080C872A _080C86CA: ldrb r1, [r4] adds r0, r1, 0 adds r0, 0x45 lsls r0, 24 lsrs r0, 24 cmp r0, 0x33 bls _080C871E adds r0, r1, 0 adds r0, 0x5F lsls r0, 24 lsrs r0, 24 cmp r0, 0x9 bls _080C871E adds r0, r1, 0 cmp r0, 0 beq _080C871E cmp r0, 0xAD beq _080C871E cmp r0, 0xB8 beq _080C871E cmp r0, 0xAB beq _080C871E cmp r0, 0xAC beq _080C871E cmp r0, 0xB5 beq _080C871E cmp r0, 0xB6 beq _080C871E cmp r0, 0xBA beq _080C871E cmp r0, 0xAE beq _080C871E cmp r0, 0xB0 beq _080C871E cmp r0, 0xB1 beq _080C871E cmp r0, 0xB2 beq _080C871E cmp r0, 0xB3 beq _080C871E cmp r0, 0xB1 bne _080C8728 _080C871E: adds r4, 0x1 ldrb r0, [r4] cmp r0, 0xFF bne _080C86CA b _080C872A _080C8728: movs r5, 0x1 _080C872A: adds r0, r5, 0 _080C872C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80C86A0 thumb_func_start sub_80C8734 sub_80C8734: @ 80C8734 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r1, _080C8768 lsls r5, r0, 2 adds r0, r5, r0 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _080C876C cmp r0, 0x1 beq _080C87D0 movs r0, 0 strh r0, [r4, 0x8] mov r0, r9 bl SwitchTaskToFollowupFunc b _080C8896 .align 2, 0 _080C8768: .4byte 0x03004b20 _080C876C: bl GetMultiplayerId lsls r0, 24 cmp r0, 0 bne _080C87A8 bl sub_8007ECC lsls r0, 24 cmp r0, 0 bne _080C8782 b _080C8896 _080C8782: ldr r0, _080C879C ldr r1, _080C87A0 ldrb r1, [r1] lsls r1, 6 ldr r2, _080C87A4 adds r1, r2 movs r2, 0x40 bl memcpy movs r0, 0x2 bl sub_8007E9C b _080C87BA .align 2, 0 _080C879C: .4byte 0x03002a70 _080C87A0: .4byte 0x02038695 _080C87A4: .4byte 0x02038570 _080C87A8: ldr r0, _080C87C4 ldr r1, _080C87C8 ldrb r1, [r1] lsls r1, 6 ldr r2, _080C87CC adds r1, r2 movs r2, 0x40 bl memcpy _080C87BA: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080C8896 .align 2, 0 _080C87C4: .4byte 0x03002a70 _080C87C8: .4byte 0x02038695 _080C87CC: .4byte 0x02038570 _080C87D0: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8896 movs r7, 0 str r5, [sp] ldr r0, _080C8818 ldr r6, _080C881C movs r5, 0 mov r10, r0 movs r2, 0xFF mov r8, r2 _080C87EA: lsls r1, r7, 8 ldr r0, _080C8820 adds r1, r0 mov r0, r10 movs r2, 0x40 bl memcpy ldr r0, _080C8824 adds r4, r5, r0 ldrh r0, [r6, 0x1A] cmp r0, 0x1 bne _080C8828 adds r0, r4, 0 bl sub_80C86A0 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl ConvertInternationalString b _080C883E .align 2, 0 _080C8818: .4byte 0x02038570 _080C881C: .4byte 0x03002970 _080C8820: .4byte 0x03002b80 _080C8824: .4byte 0x02038572 _080C8828: ldrb r0, [r4, 0xA] cmp r0, 0xFC bne _080C8838 adds r0, r4, 0 movs r1, 0x1 bl ConvertInternationalString b _080C883E _080C8838: strb r0, [r4, 0x5] mov r1, r8 strb r1, [r4, 0xA] _080C883E: ldr r0, _080C886C adds r4, r5, r0 ldrh r0, [r6, 0x1A] cmp r0, 0x1 bne _080C8870 mov r2, r8 strb r2, [r4, 0x7] ldrb r0, [r4, 0x4] strb r0, [r4, 0x6] ldrb r0, [r4, 0x3] strb r0, [r4, 0x5] ldrb r0, [r4, 0x2] strb r0, [r4, 0x4] ldrb r0, [r4, 0x1] strb r0, [r4, 0x3] ldrb r0, [r4] strb r0, [r4, 0x2] movs r0, 0x15 strb r0, [r4, 0x1] movs r0, 0xFC strb r0, [r4] b _080C8878 .align 2, 0 _080C886C: .4byte 0x0203857d _080C8870: ldrb r0, [r4, 0x7] strb r0, [r4, 0x5] mov r0, r8 strb r0, [r4, 0x7] _080C8878: adds r6, 0x1C adds r5, 0x40 movs r1, 0x40 add r10, r1 adds r7, 0x1 cmp r7, 0x3 ble _080C87EA ldr r0, _080C88A8 ldr r1, [sp] add r1, r9 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _080C8896: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C88A8: .4byte 0x03004b20 thumb_func_end sub_80C8734 thumb_func_start sub_80C88AC sub_80C88AC: @ 80C88AC push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080C88D4 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0 beq _080C88D8 cmp r0, 0x1 beq _080C88FC movs r0, 0 strh r0, [r5, 0x8] adds r0, r2, 0 bl SwitchTaskToFollowupFunc b _080C8924 .align 2, 0 _080C88D4: .4byte 0x03004b20 _080C88D8: bl GetMultiplayerId lsls r0, 24 cmp r0, 0 bne _080C891E bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8924 ldr r0, _080C88F8 movs r1, 0x4 bl sub_80C857C b _080C891E .align 2, 0 _080C88F8: .4byte gRngValue _080C88FC: movs r0, 0 bl sub_80C85AC lsls r0, 24 cmp r0, 0 beq _080C8924 ldr r0, _080C892C ldr r4, _080C8930 adds r1, r4, 0 movs r2, 0x4 bl memcpy ldr r0, _080C8934 adds r1, r4, 0 movs r2, 0x4 bl memcpy _080C891E: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] _080C8924: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C892C: .4byte gRngValue _080C8930: .4byte 0x03002b80 _080C8934: .4byte 0x03005d28 thumb_func_end sub_80C88AC thumb_func_start sub_80C8938 sub_80C8938: @ 80C8938 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080C8968 mov r8, r0 lsls r6, r5, 2 adds r0, r6, r5 lsls r7, r0, 3 mov r1, r8 adds r4, r7, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _080C896C cmp r0, 0x1 beq _080C8998 movs r0, 0 strh r0, [r4, 0x8] adds r0, r5, 0 bl SwitchTaskToFollowupFunc b _080C89CE .align 2, 0 _080C8968: .4byte 0x03004b20 _080C896C: ldr r1, _080C8994 ldrh r0, [r4, 0x1A] strb r0, [r1] bl GetMultiplayerId lsls r0, 24 cmp r0, 0 bne _080C898C bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C89CE movs r0, 0x2 bl sub_8007E9C _080C898C: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080C89CE .align 2, 0 _080C8994: .4byte 0x03002a70 _080C8998: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C89CE movs r3, 0 mov r12, r8 adds r1, r6, 0 ldr r4, _080C89D8 mov r0, r12 adds r0, 0xA adds r2, r7, r0 movs r6, 0x80 lsls r6, 1 _080C89B4: ldrh r0, [r4] strh r0, [r2] adds r4, r6 adds r2, 0x2 adds r3, 0x1 cmp r3, 0x3 ble _080C89B4 adds r1, r5 lsls r1, 3 add r1, r12 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _080C89CE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C89D8: .4byte 0x03002b80 thumb_func_end sub_80C8938 thumb_func_start sub_80C89DC sub_80C89DC: @ 80C89DC push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080C8A04 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _080C8A08 cmp r0, 0x1 beq _080C8A20 movs r0, 0 strh r0, [r4, 0x8] adds r0, r2, 0 bl SwitchTaskToFollowupFunc b _080C8A30 .align 2, 0 _080C8A04: .4byte 0x03004b20 _080C8A08: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8A30 ldr r0, _080C8A1C movs r1, 0x1 bl sub_80C857C b _080C8A2A .align 2, 0 _080C8A1C: .4byte 0x02038695 _080C8A20: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8A30 _080C8A2A: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080C8A30: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C89DC thumb_func_start sub_80C8A38 sub_80C8A38: @ 80C8A38 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r7, _080C8A60 lsls r6, r5, 2 adds r0, r6, r5 lsls r0, 3 adds r4, r0, r7 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _080C8A64 cmp r0, 0x1 beq _080C8A94 movs r0, 0 strh r0, [r4, 0x8] adds r0, r5, 0 bl SwitchTaskToFollowupFunc b _080C8AC2 .align 2, 0 _080C8A60: .4byte 0x03004b20 _080C8A64: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8AC2 ldr r0, _080C8A8C ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _080C8A90 adds r0, r1 movs r1, 0x2 bl sub_80C857C ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080C8AC2 .align 2, 0 _080C8A8C: .4byte 0x02038695 _080C8A90: .4byte 0x02019266 _080C8A94: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8AC2 ldr r1, _080C8AC8 ldr r3, _080C8ACC movs r4, 0x80 lsls r4, 1 movs r2, 0x3 _080C8AA8: ldrh r0, [r1] strh r0, [r3] adds r1, r4 adds r3, 0x1C subs r2, 0x1 cmp r2, 0 bge _080C8AA8 adds r1, r6, r5 lsls r1, 3 adds r1, r7 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _080C8AC2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C8AC8: .4byte 0x03002b80 _080C8ACC: .4byte 0x02019266 thumb_func_end sub_80C8A38 thumb_func_start sub_80C8AD0 sub_80C8AD0: @ 80C8AD0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080C8AF8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 movs r3, 0x8 ldrsh r0, [r2, r3] adds r3, r1, 0 cmp r0, 0xB bls _080C8AEC b _080C8C70 _080C8AEC: lsls r0, 2 ldr r1, _080C8AFC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C8AF8: .4byte 0x03004b20 _080C8AFC: .4byte _080C8B00 .align 2, 0 _080C8B00: .4byte _080C8B30 .4byte _080C8B4C .4byte _080C8B74 .4byte _080C8B98 .4byte _080C8BB0 .4byte _080C8B74 .4byte _080C8BD8 .4byte _080C8BF0 .4byte _080C8B74 .4byte _080C8C18 .4byte _080C8C30 .4byte _080C8B74 _080C8B30: bl sub_8007ECC lsls r0, 24 cmp r0, 0 bne _080C8B3C b _080C8C7A _080C8B3C: ldr r0, _080C8B48 movs r1, 0x8 bl sub_80C857C b _080C8C4C .align 2, 0 _080C8B48: .4byte 0x02038678 _080C8B4C: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 bne _080C8B58 b _080C8C7A _080C8B58: ldr r0, _080C8B68 ldr r1, _080C8B6C ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8B70 adds r1, r2 movs r2, 0x8 b _080C8C48 .align 2, 0 _080C8B68: .4byte 0x02038678 _080C8B6C: .4byte 0x0203869b _080C8B70: .4byte 0x03002b80 _080C8B74: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r3 ldrh r0, [r2, 0xA] adds r1, r0, 0x1 strh r1, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bgt _080C8B8C b _080C8C7A _080C8B8C: movs r0, 0 strh r0, [r2, 0xA] ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] b _080C8C7A _080C8B98: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8C7A ldr r0, _080C8BAC movs r1, 0x8 bl sub_80C857C b _080C8C4C .align 2, 0 _080C8BAC: .4byte 0x02038680 _080C8BB0: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8C7A ldr r0, _080C8BCC ldr r1, _080C8BD0 ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8BD4 adds r1, r2 movs r2, 0x8 b _080C8C48 .align 2, 0 _080C8BCC: .4byte 0x02038680 _080C8BD0: .4byte 0x0203869b _080C8BD4: .4byte 0x03002b80 _080C8BD8: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8C7A ldr r0, _080C8BEC movs r1, 0x8 bl sub_80C857C b _080C8C4C .align 2, 0 _080C8BEC: .4byte 0x02038688 _080C8BF0: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8C7A ldr r0, _080C8C0C ldr r1, _080C8C10 ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8C14 adds r1, r2 movs r2, 0x8 b _080C8C48 .align 2, 0 _080C8C0C: .4byte 0x02038688 _080C8C10: .4byte 0x0203869b _080C8C14: .4byte 0x03002b80 _080C8C18: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8C7A ldr r0, _080C8C2C movs r1, 0x4 bl sub_80C857C b _080C8C4C .align 2, 0 _080C8C2C: .4byte 0x02038690 _080C8C30: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8C7A ldr r0, _080C8C60 ldr r1, _080C8C64 ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8C68 adds r1, r2 movs r2, 0x4 _080C8C48: bl memcpy _080C8C4C: ldr r1, _080C8C6C 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 _080C8C7A .align 2, 0 _080C8C60: .4byte 0x02038690 _080C8C64: .4byte 0x0203869b _080C8C68: .4byte 0x03002b80 _080C8C6C: .4byte 0x03004b20 _080C8C70: movs r0, 0 strh r0, [r2, 0x8] adds r0, r4, 0 bl SwitchTaskToFollowupFunc _080C8C7A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C8AD0 thumb_func_start sub_80C8C80 sub_80C8C80: @ 80C8C80 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080C8CA8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 movs r3, 0x8 ldrsh r0, [r2, r3] adds r3, r1, 0 cmp r0, 0xB bls _080C8C9C b _080C8E0C _080C8C9C: lsls r0, 2 ldr r1, _080C8CAC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C8CA8: .4byte 0x03004b20 _080C8CAC: .4byte _080C8CB0 .align 2, 0 _080C8CB0: .4byte _080C8CE0 .4byte _080C8CFC .4byte _080C8D24 .4byte _080C8D46 .4byte _080C8D60 .4byte _080C8D24 .4byte _080C8D88 .4byte _080C8DA0 .4byte _080C8D24 .4byte _080C8DB4 .4byte _080C8DCC .4byte _080C8D24 _080C8CE0: bl sub_8007ECC lsls r0, 24 cmp r0, 0 bne _080C8CEC b _080C8E16 _080C8CEC: ldr r0, _080C8CF8 movs r1, 0x70 bl sub_80C857C b _080C8DE8 .align 2, 0 _080C8CF8: .4byte 0x02019260 _080C8CFC: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 bne _080C8D08 b _080C8E16 _080C8D08: ldr r0, _080C8D18 ldr r1, _080C8D1C ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8D20 adds r1, r2 movs r2, 0x70 b _080C8DE4 .align 2, 0 _080C8D18: .4byte 0x02019260 _080C8D1C: .4byte 0x0203869b _080C8D20: .4byte 0x03002b80 _080C8D24: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r3 ldrh r0, [r2, 0xA] adds r1, r0, 0x1 strh r1, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xA ble _080C8E16 movs r0, 0 strh r0, [r2, 0xA] ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] b _080C8E16 _080C8D46: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8E16 ldr r0, _080C8D5C movs r1, 0x14 bl sub_80C857C b _080C8DE8 .align 2, 0 _080C8D5C: .4byte 0x020192d0 _080C8D60: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8E16 ldr r0, _080C8D7C ldr r1, _080C8D80 ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8D84 adds r1, r2 movs r2, 0x14 b _080C8DE4 .align 2, 0 _080C8D7C: .4byte 0x020192d0 _080C8D80: .4byte 0x0203869b _080C8D84: .4byte 0x03002b80 _080C8D88: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8E16 ldr r0, _080C8D9C movs r1, 0x4 bl sub_80C857C b _080C8DE8 .align 2, 0 _080C8D9C: .4byte 0x02019328 _080C8DA0: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8E16 ldr r0, _080C8DB0 b _080C8DD8 .align 2, 0 _080C8DB0: .4byte 0x02019328 _080C8DB4: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8E16 ldr r0, _080C8DC8 movs r1, 0x4 bl sub_80C857C b _080C8DE8 .align 2, 0 _080C8DC8: .4byte 0x02038696 _080C8DCC: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8E16 ldr r0, _080C8DFC _080C8DD8: ldr r1, _080C8E00 ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8E04 adds r1, r2 movs r2, 0x4 _080C8DE4: bl memcpy _080C8DE8: ldr r1, _080C8E08 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 _080C8E16 .align 2, 0 _080C8DFC: .4byte 0x02038696 _080C8E00: .4byte 0x0203869b _080C8E04: .4byte 0x03002b80 _080C8E08: .4byte 0x03004b20 _080C8E0C: movs r0, 0 strh r0, [r2, 0x8] adds r0, r4, 0 bl SwitchTaskToFollowupFunc _080C8E16: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C8C80 thumb_func_start sub_80C8E1C sub_80C8E1C: @ 80C8E1C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080C8E4C mov r8, r0 lsls r6, r5, 2 adds r0, r6, r5 lsls r7, r0, 3 mov r1, r8 adds r4, r7, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _080C8E50 cmp r0, 0x1 beq _080C8E7C movs r0, 0 strh r0, [r4, 0x8] adds r0, r5, 0 bl SwitchTaskToFollowupFunc b _080C8EAE .align 2, 0 _080C8E4C: .4byte 0x03004b20 _080C8E50: ldr r1, _080C8E78 movs r0, 0x64 strb r0, [r1] bl GetMultiplayerId lsls r0, 24 cmp r0, 0 bne _080C8E70 bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8EAE movs r0, 0x2 bl sub_8007E9C _080C8E70: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080C8EAE .align 2, 0 _080C8E78: .4byte 0x03002a70 _080C8E7C: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8EAE ldr r1, _080C8EB8 mov r0, r8 adds r0, 0x12 adds r2, r7, r0 movs r4, 0x80 lsls r4, 1 movs r3, 0x3 _080C8E94: ldrh r0, [r1] strh r0, [r2] adds r1, r4 adds r2, 0x2 subs r3, 0x1 cmp r3, 0 bge _080C8E94 adds r1, r6, r5 lsls r1, 3 add r1, r8 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _080C8EAE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C8EB8: .4byte 0x03002b80 thumb_func_end sub_80C8E1C thumb_func_start sub_80C8EBC sub_80C8EBC: @ 80C8EBC push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080C8EE4 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _080C8EE8 cmp r0, 0x1 beq _080C8F00 movs r0, 0 strh r0, [r4, 0x8] adds r0, r2, 0 bl SwitchTaskToFollowupFunc b _080C8F22 .align 2, 0 _080C8EE4: .4byte 0x03004b20 _080C8EE8: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8F22 ldr r0, _080C8EFC movs r1, 0x8 bl sub_80C857C b _080C8F1C .align 2, 0 _080C8EFC: .4byte 0x02038670 _080C8F00: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8F22 ldr r0, _080C8F28 ldr r1, _080C8F2C ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8F30 adds r1, r2 movs r2, 0x8 bl memcpy _080C8F1C: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080C8F22: pop {r4} pop {r0} bx r0 .align 2, 0 _080C8F28: .4byte 0x02038670 _080C8F2C: .4byte 0x0203869b _080C8F30: .4byte 0x03002b80 thumb_func_end sub_80C8EBC thumb_func_start sub_80C8F34 sub_80C8F34: @ 80C8F34 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080C8F5C lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _080C8F60 cmp r0, 0x1 beq _080C8F78 movs r0, 0 strh r0, [r4, 0x8] adds r0, r2, 0 bl SwitchTaskToFollowupFunc b _080C8F9A .align 2, 0 _080C8F5C: .4byte 0x03004b20 _080C8F60: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8F9A ldr r0, _080C8F74 movs r1, 0x4 bl sub_80C857C b _080C8F94 .align 2, 0 _080C8F74: .4byte 0x02038696 _080C8F78: bl sub_80C85D8 lsls r0, 24 cmp r0, 0 beq _080C8F9A ldr r0, _080C8FA0 ldr r1, _080C8FA4 ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8FA8 adds r1, r2 movs r2, 0x4 bl memcpy _080C8F94: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080C8F9A: pop {r4} pop {r0} bx r0 .align 2, 0 _080C8FA0: .4byte 0x02038696 _080C8FA4: .4byte 0x0203869b _080C8FA8: .4byte 0x03002b80 thumb_func_end sub_80C8F34 thumb_func_start sub_80C8FAC sub_80C8FAC: @ 80C8FAC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080C8FD0 ldrh r0, [r1] cmp r0, 0xAF bne _080C8FD8 ldr r1, _080C8FD4 lsls r2, r4, 2 adds r0, r2, r4 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x26] subs r0, 0x1 lsls r0, 24 lsrs r3, r0, 24 b _080C8FE6 .align 2, 0 _080C8FD0: .4byte 0x0203855e _080C8FD4: .4byte 0x03004b20 _080C8FD8: ldrh r0, [r1] bl itemid_get_type subs r0, 0x1 lsls r0, 24 lsrs r3, r0, 24 lsls r2, r4, 2 _080C8FE6: ldr r0, _080C9008 adds r1, r2, r4 lsls r1, 3 adds r1, r0 ldr r2, _080C900C lsls r0, r3, 2 adds r0, r2 ldr r2, [r0] lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] ldr r0, _080C9010 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080C9008: .4byte 0x03004b20 _080C900C: .4byte gUnknown_083D61E4 _080C9010: .4byte sub_80A5B00 thumb_func_end sub_80C8FAC thumb_func_start unknown_ItemMenu_Confirm unknown_ItemMenu_Confirm: @ 80C9014 push {lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 bl sub_80C8FAC movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 thumb_func_end unknown_ItemMenu_Confirm thumb_func_start sub_80C9038 sub_80C9038: @ 80C9038 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80C8FAC movs r0, 0x1 movs r1, 0 bl fade_screen pop {r0} bx r0 thumb_func_end sub_80C9038 thumb_func_start SetUpItemUseOnFieldCallback SetUpItemUseOnFieldCallback: @ 80C9050 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080C9078 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0x1 beq _080C9084 ldr r1, _080C907C ldr r0, _080C9080 str r0, [r1] adds r0, r2, 0 bl unknown_ItemMenu_Confirm b _080C908E .align 2, 0 _080C9078: .4byte 0x03004b20 _080C907C: .4byte 0x0300485c _080C9080: .4byte sub_80A5CC4 _080C9084: ldr r0, _080C9094 ldr r1, [r0] adds r0, r2, 0 bl _call_via_r1 _080C908E: pop {r0} bx r0 .align 2, 0 _080C9094: .4byte 0x03005d00 thumb_func_end SetUpItemUseOnFieldCallback thumb_func_start sub_80C9098 sub_80C9098: @ 80C9098 push {r4-r6,lr} adds r4, r1, 0 adds r1, r2, 0 lsls r0, 24 lsrs r6, r0, 24 lsls r4, 24 lsrs r4, 24 ldr r5, _080C90CC adds r0, r5, 0 bl StringExpandPlaceholders cmp r4, 0 bne _080C90D4 movs r0, 0 movs r1, 0xD movs r2, 0xD movs r3, 0x14 bl Reset ldr r2, _080C90D0 adds r0, r6, 0 adds r1, r5, 0 movs r3, 0x1 bl DisplayItemMessageOnField b _080C90E0 .align 2, 0 _080C90CC: .4byte 0x020234cc _080C90D0: .4byte sub_80A5C48 _080C90D4: ldr r2, _080C90E8 adds r0, r6, 0 adds r1, r5, 0 movs r3, 0 bl DisplayItemMessageOnField _080C90E0: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C90E8: .4byte sub_80A5C9C thumb_func_end sub_80C9098 thumb_func_start DisplayDadsAdviceCannotUseItemMessage DisplayDadsAdviceCannotUseItemMessage: @ 80C90EC push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 ldr r2, _080C9100 bl sub_80C9098 pop {r0} bx r0 .align 2, 0 _080C9100: .4byte gUnknown_0840E8EA thumb_func_end DisplayDadsAdviceCannotUseItemMessage thumb_func_start sub_80C9104 sub_80C9104: @ 80C9104 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 ldr r2, _080C9118 bl sub_80C9098 pop {r0} bx r0 .align 2, 0 _080C9118: .4byte gUnknown_0840E929 thumb_func_end sub_80C9104 thumb_func_start CheckIfItemIsTMHMOrEvolutionStone CheckIfItemIsTMHMOrEvolutionStone: @ 80C911C push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl itemid_get_overworld_function ldr r1, _080C9134 cmp r0, r1 bne _080C9138 movs r0, 0x1 b _080C914E .align 2, 0 _080C9134: .4byte ItemUseOutOfBattle_TMHM _080C9138: adds r0, r4, 0 bl itemid_get_overworld_function ldr r1, _080C9148 cmp r0, r1 beq _080C914C movs r0, 0 b _080C914E .align 2, 0 _080C9148: .4byte ItemUseOutOfBattle_EvolutionStone _080C914C: movs r0, 0x2 _080C914E: pop {r4} pop {r1} bx r1 thumb_func_end CheckIfItemIsTMHMOrEvolutionStone thumb_func_start sub_80C9154 sub_80C9154: @ 80C9154 push {r4,lr} sub sp, 0x24 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080C9188 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080C9180 mov r1, sp ldr r0, _080C918C ldrh r0, [r0] strh r0, [r1, 0x20] ldr r1, _080C9190 mov r0, sp movs r2, 0 bl sub_80F890C adds r0, r4, 0 bl DestroyTask _080C9180: add sp, 0x24 pop {r4} pop {r0} bx r0 .align 2, 0 _080C9188: .4byte 0x0202f388 _080C918C: .4byte 0x0203855e _080C9190: .4byte sub_80A5D04 thumb_func_end sub_80C9154 thumb_func_start ItemUseOutOfBattle_Mail ItemUseOutOfBattle_Mail: @ 80C9194 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, _080C91C4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C91C8 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080C91C4: .4byte 0x03004b20 _080C91C8: .4byte sub_80C9154 thumb_func_end ItemUseOutOfBattle_Mail thumb_func_start ItemUseOutOfBattle_Bike ItemUseOutOfBattle_Bike: @ 80C91CC push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080C924C bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C9238 adds r0, r4, 0 bl MetatileBehavior_IsVerticalRail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C9238 adds r0, r4, 0 bl MetatileBehavior_IsHorizontalRail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C9238 adds r0, r4, 0 bl MetatileBehavior_IsIsolatedVerticalRail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C9238 adds r0, r4, 0 bl MetatileBehavior_IsIsolatedHorizontalRail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C9254 _080C9238: ldr r0, _080C9250 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrb r1, [r1, 0xC] adds r0, r5, 0 bl sub_80C9104 b _080C928E .align 2, 0 _080C924C: .4byte 0x0000082b _080C9250: .4byte 0x03004b20 _080C9254: bl sub_8053C44 cmp r0, 0x1 bne _080C927C bl sub_80E5EF4 lsls r0, 24 cmp r0, 0 bne _080C927C ldr r1, _080C9274 ldr r0, _080C9278 str r0, [r1] adds r0, r5, 0 bl SetUpItemUseOnFieldCallback b _080C928E .align 2, 0 _080C9274: .4byte 0x03005d00 _080C9278: .4byte ItemUseOnFieldCB_Bike _080C927C: ldr r0, _080C9298 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrb r1, [r1, 0xC] adds r0, r5, 0 bl DisplayDadsAdviceCannotUseItemMessage _080C928E: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C9298: .4byte 0x03004b20 thumb_func_end ItemUseOutOfBattle_Bike thumb_func_start ItemUseOnFieldCB_Bike ItemUseOnFieldCB_Bike: @ 80C929C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, _080C92E0 ldrh r0, [r4] bl itemid_get_x28 lsls r0, 24 cmp r0, 0 bne _080C92B6 movs r0, 0x2 bl GetOnOffBike _080C92B6: ldrh r0, [r4] bl itemid_get_x28 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C92CA movs r0, 0x4 bl GetOnOffBike _080C92CA: bl sub_8064E2C bl script_env_2_disable adds r0, r5, 0 bl DestroyTask pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C92E0: .4byte 0x0203855e thumb_func_end ItemUseOnFieldCB_Bike thumb_func_start CanFish CanFish: @ 80C92E4 push {r4-r6,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 16 lsrs r6, r0, 16 lsls r0, r6, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl MetatileBehavior_IsWaterfall lsls r0, 24 cmp r0, 0 bne _080C936C movs r0, 0x10 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 bne _080C936C movs r0, 0x8 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 bne _080C933C bl IsPlayerFacingSurfableFishableWater lsls r0, 24 cmp r0, 0 beq _080C936C _080C9338: movs r0, 0x1 b _080C936E _080C933C: adds r0, r5, 0 bl MetatileBehavior_IsSurfableWaterOrUnderwater lsls r0, 24 cmp r0, 0 beq _080C935C mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridIsImpassableAt lsls r0, 24 cmp r0, 0 beq _080C9338 _080C935C: lsls r0, r6, 24 lsrs r0, 24 bl sub_8057434 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C9338 _080C936C: movs r0, 0 _080C936E: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end CanFish thumb_func_start ItemUseOutOfBattle_Rod ItemUseOutOfBattle_Rod: @ 80C9378 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl CanFish cmp r0, 0x1 bne _080C939C ldr r1, _080C9394 ldr r0, _080C9398 str r0, [r1] adds r0, r4, 0 bl SetUpItemUseOnFieldCallback b _080C93AE .align 2, 0 _080C9394: .4byte 0x03005d00 _080C9398: .4byte ItemUseOnFieldCB_Rod _080C939C: ldr r0, _080C93B4 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrb r1, [r1, 0xC] adds r0, r4, 0 bl DisplayDadsAdviceCannotUseItemMessage _080C93AE: pop {r4} pop {r0} bx r0 .align 2, 0 _080C93B4: .4byte 0x03004b20 thumb_func_end ItemUseOutOfBattle_Rod thumb_func_start ItemUseOnFieldCB_Rod ItemUseOnFieldCB_Rod: @ 80C93B8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080C93DC ldrh r0, [r0] bl itemid_get_x28 lsls r0, 24 lsrs r0, 24 bl StartFishing adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 .align 2, 0 _080C93DC: .4byte 0x0203855e thumb_func_end ItemUseOnFieldCB_Rod thumb_func_start ItemUseOutOfBattle_Itemfinder ItemUseOutOfBattle_Itemfinder: @ 80C93E0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x27 bl sav12_xor_increment ldr r1, _080C9400 ldr r0, _080C9404 str r0, [r1] adds r0, r4, 0 bl SetUpItemUseOnFieldCallback pop {r4} pop {r0} bx r0 .align 2, 0 _080C9400: .4byte 0x03005d00 _080C9404: .4byte ItemUseOnFieldCB_Itemfinder thumb_func_end ItemUseOutOfBattle_Itemfinder thumb_func_start ItemUseOnFieldCB_Itemfinder ItemUseOnFieldCB_Itemfinder: @ 80C9408 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080C9430 ldr r0, [r0, 0x4] adds r1, r4, 0 bl ItemfinderCheckForHiddenItems lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C943C ldr r0, _080C9434 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080C9438 str r0, [r1] b _080C9448 .align 2, 0 _080C9430: .4byte 0x0202e828 _080C9434: .4byte 0x03004b20 _080C9438: .4byte sub_80C9458 _080C943C: ldr r1, _080C9450 ldr r2, _080C9454 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField _080C9448: pop {r4} pop {r0} bx r0 .align 2, 0 _080C9450: .4byte gUnknown_0840E9C8 _080C9454: .4byte sub_80C9520 thumb_func_end ItemUseOnFieldCB_Itemfinder thumb_func_start sub_80C9458 sub_80C9458: @ 80C9458 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 lsls r6, r5, 2 adds r0, r6, r5 lsls r7, r0, 3 ldr r0, _080C94AC mov r8, r0 adds r4, r7, r0 movs r1, 0x6 ldrsh r0, [r4, r1] cmp r0, 0 bne _080C950C movs r2, 0x8 ldrsh r0, [r4, r2] cmp r0, 0x4 bne _080C9500 movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_80C9908 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080C94B8 ldr r1, _080C94B0 subs r0, 0x1 adds r0, r1 ldrb r0, [r0] bl sub_80C997C mov r0, r8 subs r0, 0x8 adds r0, r7, r0 ldr r1, _080C94B4 str r1, [r0] b _080C9516 .align 2, 0 _080C94AC: .4byte 0x03004b28 _080C94B0: .4byte gUnknown_083D61F0 _080C94B4: .4byte sub_80C99EC _080C94B8: bl player_get_direction_lower_nybble lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 adds r3, r6, 0 ldr r7, _080C94F4 movs r6, 0x3 _080C94C8: adds r0, r1, r7 adds r1, 0x1 ldrb r0, [r0] cmp r2, r0 bne _080C94D8 adds r0, r1, 0 ands r0, r6 strh r0, [r4, 0xA] _080C94D8: lsls r0, r1, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _080C94C8 ldr r1, _080C94F8 adds r0, r3, r5 lsls r0, 3 adds r0, r1 ldr r1, _080C94FC str r1, [r0] movs r0, 0 strh r0, [r4, 0x6] strh r0, [r4, 0x4] b _080C9516 .align 2, 0 _080C94F4: .4byte gUnknown_083D61F0 _080C94F8: .4byte 0x03004b20 _080C94FC: .4byte sub_80C9A38 _080C9500: movs r0, 0x48 bl audio_play ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080C950C: ldrh r0, [r4, 0x6] adds r0, 0x1 movs r1, 0x1F ands r0, r1 strh r0, [r4, 0x6] _080C9516: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C9458 thumb_func_start sub_80C9520 sub_80C9520: @ 80C9520 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl Reset bl sub_8064E2C bl script_env_2_disable adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 thumb_func_end sub_80C9520 thumb_func_start ItemfinderCheckForHiddenItems ItemfinderCheckForHiddenItems: @ 80C9548 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r5, r0, 0 lsls r1, 24 lsrs r6, r1, 24 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords ldr r1, _080C9618 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] movs r3, 0 mov r9, r4 ldrb r0, [r5, 0x3] cmp r3, r0 bge _080C95FC subs r1, 0x5 mov r8, r1 _080C9580: lsls r3, 16 asrs r1, r3, 16 ldr r2, [r5, 0x10] lsls r0, r1, 1 adds r0, r1 lsls r4, r0, 2 adds r1, r4, r2 ldrb r0, [r1, 0x5] adds r7, r3, 0 cmp r0, 0x7 bne _080C95EC movs r2, 0x96 lsls r2, 2 adds r0, r2, 0 ldrh r1, [r1, 0xA] adds r0, r1 lsls r0, 16 lsrs r0, 16 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080C95EC ldr r1, [r5, 0x10] adds r1, r4, r1 ldrh r2, [r1] adds r2, 0x7 mov r0, sp ldrh r0, [r0] subs r2, r0 ldrh r0, [r1, 0x2] adds r0, 0x7 mov r3, r9 ldrh r1, [r3] subs r0, r1 lsls r0, 16 lsrs r0, 16 lsls r2, 16 asrs r1, r2, 16 movs r3, 0xE0 lsls r3, 11 adds r2, r3 lsrs r2, 16 cmp r2, 0xE bhi _080C95EC lsls r0, 16 asrs r2, r0, 16 cmp r2, r8 blt _080C95EC cmp r2, 0x5 bgt _080C95EC adds r0, r6, 0 bl sub_80C9838 _080C95EC: movs r1, 0x80 lsls r1, 9 adds r0, r7, r1 lsrs r3, r0, 16 asrs r0, 16 ldrb r2, [r5, 0x3] cmp r0, r2 blt _080C9580 _080C95FC: adds r0, r6, 0 bl sub_80C9720 ldr r0, _080C9618 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0x1 beq _080C961C movs r0, 0 b _080C961E .align 2, 0 _080C9618: .4byte 0x03004b20 _080C961C: movs r0, 0x1 _080C961E: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end ItemfinderCheckForHiddenItems thumb_func_start sub_80C962C sub_80C962C: @ 80C962C push {r4-r6,lr} lsls r1, 16 lsrs r3, r1, 16 lsls r2, 16 lsrs r4, r2, 16 ldrb r2, [r0, 0x3] ldr r5, [r0, 0x10] movs r1, 0 cmp r1, r2 bge _080C9680 lsls r0, r3, 16 asrs r6, r0, 16 lsls r0, r4, 16 asrs r4, r0, 16 adds r3, r5, 0 _080C964A: ldrb r0, [r3, 0x5] cmp r0, 0x7 bne _080C9678 ldrh r0, [r3] cmp r6, r0 bne _080C9678 ldrh r0, [r3, 0x2] cmp r4, r0 bne _080C9678 movs r1, 0x96 lsls r1, 2 adds r0, r1, 0 ldrh r3, [r3, 0xA] adds r0, r3 lsls r0, 16 lsrs r0, 16 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080C9680 movs r0, 0x1 b _080C9682 _080C9678: adds r3, 0xC adds r1, 0x1 cmp r1, r2 blt _080C964A _080C9680: movs r0, 0 _080C9682: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80C962C thumb_func_start sub_80C9688 sub_80C9688: @ 80C9688 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 bl mapconnection_get_mapheader adds r3, r0, 0 ldrb r0, [r4] cmp r0, 0x2 beq _080C96B0 cmp r0, 0x2 bgt _080C96A6 cmp r0, 0x1 beq _080C96C4 b _080C9704 _080C96A6: cmp r0, 0x3 beq _080C96DC cmp r0, 0x4 beq _080C96E6 b _080C9704 _080C96B0: ldr r0, [r4, 0x4] adds r0, 0x7 subs r0, r5, r0 lsls r0, 16 lsrs r1, r0, 16 ldr r0, [r3] ldr r0, [r0, 0x4] subs r0, 0x7 adds r0, r6 b _080C96FA _080C96C4: ldr r0, [r4, 0x4] adds r0, 0x7 subs r0, r5, r0 lsls r0, 16 lsrs r1, r0, 16 ldr r0, _080C96D8 ldr r0, [r0] ldr r0, [r0, 0x4] b _080C96F6 .align 2, 0 _080C96D8: .4byte 0x0202e828 _080C96DC: ldr r0, [r3] ldr r0, [r0] subs r0, 0x7 adds r0, r5 b _080C96F0 _080C96E6: ldr r0, _080C9700 ldr r0, [r0] ldr r0, [r0] adds r0, 0x7 subs r0, r5, r0 _080C96F0: lsls r0, 16 lsrs r1, r0, 16 ldr r0, [r4, 0x4] _080C96F6: adds r0, 0x7 subs r0, r6, r0 _080C96FA: lsls r0, 16 lsrs r2, r0, 16 b _080C9708 .align 2, 0 _080C9700: .4byte 0x0202e828 _080C9704: movs r0, 0 b _080C971A _080C9708: ldr r0, [r3, 0x4] lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 bl sub_80C962C lsls r0, 24 lsrs r0, 24 _080C971A: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80C9688 thumb_func_start sub_80C9720 sub_80C9720: @ 80C9720 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] ldr r0, _080C9834 ldr r1, [r0] ldr r0, [r1] adds r0, 0x7 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x8] ldr r0, [r1, 0x4] adds r0, 0x7 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0xC] mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords mov r0, sp ldrh r0, [r0] subs r0, 0x7 lsls r0, 16 lsrs r3, r0, 16 asrs r0, 16 mov r1, sp movs r2, 0 ldrsh r1, [r1, r2] adds r1, 0x7 cmp r0, r1 bgt _080C9824 _080C976E: mov r5, sp ldrh r0, [r5, 0x2] subs r0, 0x5 lsls r0, 16 lsrs r4, r0, 16 lsls r2, r4, 16 asrs r1, r2, 16 movs r6, 0x2 ldrsh r0, [r5, r6] adds r0, 0x5 lsls r3, 16 mov r8, r3 cmp r1, r0 bgt _080C980E movs r0, 0x7 str r0, [sp, 0x10] mov r1, r8 asrs r1, 16 mov r9, r1 mov r10, r0 _080C9796: ldr r3, [sp, 0x10] cmp r3, r9 bgt _080C97B8 ldr r5, [sp, 0x8] lsls r0, r5, 16 asrs r0, 16 cmp r9, r0 bge _080C97B8 asrs r1, r2, 16 cmp r10, r1 bgt _080C97B8 ldr r6, [sp, 0xC] lsls r0, r6, 16 asrs r0, 16 lsls r7, r4, 16 cmp r1, r0 blt _080C97F6 _080C97B8: mov r0, r8 asrs r5, r0, 16 lsls r4, 16 asrs r6, r4, 16 adds r0, r5, 0 adds r1, r6, 0 bl sub_8056BA0 adds r7, r4, 0 cmp r0, 0 beq _080C97F6 adds r1, r5, 0 adds r2, r6, 0 bl sub_80C9688 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C97F6 mov r0, sp ldrh r1, [r0] subs r1, r5, r1 lsls r1, 16 asrs r1, 16 ldrh r2, [r0, 0x2] subs r2, r6, r2 lsls r2, 16 asrs r2, 16 ldr r0, [sp, 0x4] bl sub_80C9838 _080C97F6: movs r1, 0x80 lsls r1, 9 adds r0, r7, r1 lsrs r4, r0, 16 lsls r2, r4, 16 asrs r1, r2, 16 mov r3, sp movs r5, 0x2 ldrsh r0, [r3, r5] adds r0, 0x5 cmp r1, r0 ble _080C9796 _080C980E: movs r1, 0x80 lsls r1, 9 add r1, r8 lsrs r3, r1, 16 asrs r1, 16 mov r0, sp movs r6, 0 ldrsh r0, [r0, r6] adds r0, 0x7 cmp r1, r0 ble _080C976E _080C9824: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C9834: .4byte 0x0202e828 thumb_func_end sub_80C9720 thumb_func_start sub_80C9838 sub_80C9838: @ 80C9838 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r7, r1, 16 lsls r2, 16 lsrs r2, 16 mov r12, r2 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080C986C adds r3, r1, r0 movs r1, 0x4 ldrsh r0, [r3, r1] cmp r0, 0 bne _080C9870 strh r7, [r3] mov r0, r12 strh r0, [r3, 0x2] movs r0, 0x1 strh r0, [r3, 0x4] b _080C98FA .align 2, 0 _080C986C: .4byte 0x03004b28 _080C9870: movs r1, 0 ldrsh r0, [r3, r1] cmp r0, 0 bge _080C9880 negs r0, r0 lsls r0, 16 lsrs r4, r0, 16 b _080C9882 _080C9880: ldrh r4, [r3] _080C9882: movs r1, 0x2 ldrsh r0, [r3, r1] ldrh r1, [r3, 0x2] mov r9, r1 cmp r0, 0 bge _080C9896 negs r0, r0 lsls r0, 16 lsrs r2, r0, 16 b _080C9898 _080C9896: ldrh r2, [r3, 0x2] _080C9898: lsls r1, r7, 16 asrs r0, r1, 16 cmp r0, 0 bge _080C98A8 negs r0, r0 lsls r0, 16 lsrs r6, r0, 16 b _080C98AA _080C98A8: lsrs r6, r1, 16 _080C98AA: mov r1, r12 lsls r0, r1, 16 asrs r1, r0, 16 mov r8, r0 cmp r1, 0 bge _080C98BC negs r0, r1 lsls r0, 16 b _080C98BE _080C98BC: mov r0, r8 _080C98BE: lsrs r5, r0, 16 lsls r0, r4, 16 asrs r0, 16 lsls r1, r2, 16 asrs r2, r1, 16 adds r4, r0, r2 lsls r0, r6, 16 asrs r0, 16 lsls r1, r5, 16 asrs r1, 16 adds r0, r1 cmp r4, r0 ble _080C98E0 strh r7, [r3] mov r1, r12 strh r1, [r3, 0x2] b _080C98FA _080C98E0: cmp r4, r0 bne _080C98FA cmp r2, r1 bgt _080C98F4 cmp r2, r1 bne _080C98FA mov r1, r9 lsls r0, r1, 16 cmp r0, r8 bge _080C98FA _080C98F4: strh r7, [r3] mov r0, r12 strh r0, [r3, 0x2] _080C98FA: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C9838 thumb_func_start sub_80C9908 sub_80C9908: @ 80C9908 push {r4,r5,lr} lsls r0, 16 lsls r1, 16 lsrs r1, 16 lsrs r2, r0, 16 cmp r0, 0 bne _080C991A cmp r1, 0 beq _080C9974 _080C991A: lsls r0, r2, 16 asrs r2, r0, 16 adds r5, r0, 0 cmp r2, 0 bge _080C992C negs r0, r2 lsls r0, 16 lsrs r4, r0, 16 b _080C992E _080C992C: lsrs r4, r5, 16 _080C992E: lsls r0, r1, 16 asrs r2, r0, 16 adds r1, r0, 0 cmp r2, 0 bge _080C9940 negs r0, r2 lsls r0, 16 lsrs r3, r0, 16 b _080C9942 _080C9940: lsrs r3, r1, 16 _080C9942: lsls r0, r4, 16 asrs r2, r0, 16 lsls r0, r3, 16 asrs r0, 16 cmp r2, r0 ble _080C995A cmp r5, 0 bge _080C9956 movs r0, 0x4 b _080C9976 _080C9956: movs r0, 0x2 b _080C9976 _080C995A: cmp r2, r0 bge _080C9964 cmp r1, 0 blt _080C996C b _080C9970 _080C9964: cmp r2, r0 bne _080C9974 cmp r1, 0 bge _080C9970 _080C996C: movs r0, 0x1 b _080C9976 _080C9970: movs r0, 0x3 b _080C9976 _080C9974: movs r0, 0 _080C9976: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80C9908 thumb_func_start sub_80C997C sub_80C997C: @ 80C997C push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r4, _080C99E8 adds r0, r4 bl FieldObjectClearAnimIfSpecialAnimFinished movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 bl FieldObjectClearAnim movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 bl npc_sync_anim_pause_bits adds r0, r5, 0 bl PlayerTurnInPlace pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C99E8: .4byte 0x030048a0 thumb_func_end sub_80C997C thumb_func_start sub_80C99EC sub_80C99EC: @ 80C99EC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C9A2C adds r0, r1 bl FieldObjectCheckIfSpecialAnimFinishedOrInactive lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C9A24 ldr r1, _080C9A30 ldr r2, _080C9A34 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField _080C9A24: pop {r4} pop {r0} bx r0 .align 2, 0 _080C9A2C: .4byte 0x030048a0 _080C9A30: .4byte gUnknown_0840E94E _080C9A34: .4byte sub_80C9520 thumb_func_end sub_80C99EC thumb_func_start sub_80C9A38 sub_80C9A38: @ 80C9A38 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, _080C9AB4 adds r4, r0, r1 movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C9AB8 adds r0, r1 bl FieldObjectCheckIfSpecialAnimFinishedOrInactive lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C9A78 movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 bne _080C9AAE _080C9A78: ldr r1, _080C9ABC movs r2, 0xA ldrsh r0, [r4, r2] adds r0, r1 ldrb r0, [r0] bl sub_80C997C movs r0, 0x1 strh r0, [r4, 0x4] ldrh r0, [r4, 0xA] adds r0, 0x1 movs r1, 0x3 ands r0, r1 strh r0, [r4, 0xA] ldrh r0, [r4, 0x6] adds r0, 0x1 strh r0, [r4, 0x6] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080C9AAE ldr r1, _080C9AC0 ldr r2, _080C9AC4 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField _080C9AAE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C9AB4: .4byte 0x03004b28 _080C9AB8: .4byte 0x030048a0 _080C9ABC: .4byte gUnknown_083D61F0 _080C9AC0: .4byte gUnknown_0840E992 _080C9AC4: .4byte sub_80C9520 thumb_func_end sub_80C9A38 thumb_func_start ItemUseOutOfBattle_PokeblockCase ItemUseOutOfBattle_PokeblockCase: @ 80C9AC8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C9AF4 ldr r0, _080C9AF0 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrb r1, [r1, 0xC] adds r0, r4, 0 bl DisplayDadsAdviceCannotUseItemMessage b _080C9B2A .align 2, 0 _080C9AF0: .4byte 0x03004b20 _080C9AF4: ldr r0, _080C9B14 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r2, 0xC ldrsh r0, [r1, r2] cmp r0, 0x1 beq _080C9B18 movs r0, 0 bl sub_810BA7C adds r0, r4, 0 bl unknown_ItemMenu_Confirm b _080C9B2A .align 2, 0 _080C9B14: .4byte 0x03004b20 _080C9B18: ldr r1, _080C9B30 ldr r0, _080C9B34 str r0, [r1] movs r0, 0x1 bl sub_810BA7C adds r0, r5, 0 bl sub_80C9038 _080C9B2A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C9B30: .4byte 0x0300485c _080C9B34: .4byte sub_8080E28 thumb_func_end ItemUseOutOfBattle_PokeblockCase thumb_func_start ItemUseOutOfBattle_CoinCase ItemUseOutOfBattle_CoinCase: @ 80C9B38 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, _080C9B8C bl GetCoins adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 movs r2, 0 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r4, _080C9B90 ldr r1, _080C9B94 adds r0, r4, 0 bl StringExpandPlaceholders ldr r1, _080C9B98 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0 bne _080C9BA0 movs r0, 0 movs r1, 0xD movs r2, 0xD movs r3, 0x14 bl Reset ldr r2, _080C9B9C adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField b _080C9BAC .align 2, 0 _080C9B8C: .4byte 0x020231cc _080C9B90: .4byte 0x020234cc _080C9B94: .4byte gUnknown_0840E9F5 _080C9B98: .4byte 0x03004b20 _080C9B9C: .4byte sub_80A5C48 _080C9BA0: ldr r2, _080C9BB4 adds r0, r5, 0 adds r1, r4, 0 movs r3, 0 bl DisplayItemMessageOnField _080C9BAC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C9BB4: .4byte sub_80A5C9C thumb_func_end ItemUseOutOfBattle_CoinCase thumb_func_start sub_80C9BB8 sub_80C9BB8: @ 80C9BB8 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080C9BD4 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C9BD0 adds r0, r2, 0 bl sub_80A5C48 _080C9BD0: pop {r0} bx r0 .align 2, 0 _080C9BD4: .4byte 0x03001770 thumb_func_end sub_80C9BB8 thumb_func_start sub_80C9BD8 sub_80C9BD8: @ 80C9BD8 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080C9BF4 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C9BF0 adds r0, r2, 0 bl sub_80A5C9C _080C9BF0: pop {r0} bx r0 .align 2, 0 _080C9BF4: .4byte 0x03001770 thumb_func_end sub_80C9BD8 thumb_func_start unref_sub_80C9BF8 unref_sub_80C9BF8: @ 80C9BF8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080C9C3C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0 bne _080C9C4C movs r0, 0 movs r1, 0xD movs r2, 0xD movs r3, 0x14 bl Reset ldr r4, _080C9C40 ldr r0, _080C9C44 ldrh r0, [r0] bl itemid_get_x28 lsls r0, 24 lsrs r0, 22 adds r0, r4 ldr r1, [r0] ldr r2, _080C9C48 adds r0, r5, 0 movs r3, 0x1 bl DisplayItemMessageOnField b _080C9C68 .align 2, 0 _080C9C3C: .4byte 0x03004b20 _080C9C40: .4byte gUnknown_083D61DC _080C9C44: .4byte 0x0203855e _080C9C48: .4byte sub_80C9BB8 _080C9C4C: ldr r4, _080C9C70 ldr r0, _080C9C74 ldrh r0, [r0] bl itemid_get_x28 lsls r0, 24 lsrs r0, 22 adds r0, r4 ldr r1, [r0] ldr r2, _080C9C78 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField _080C9C68: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C9C70: .4byte gUnknown_083D61DC _080C9C74: .4byte 0x0203855e _080C9C78: .4byte sub_80C9BD8 thumb_func_end unref_sub_80C9BF8 thumb_func_start sub_80C9C7C sub_80C9C7C: @ 80C9C7C push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 bl IsPlayerFacingPlantedBerryTree lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C9CE4 ldr r1, _080C9CC8 ldr r0, _080C9CCC str r0, [r1] ldr r1, _080C9CD0 ldr r0, _080C9CD4 str r0, [r1] ldr r1, _080C9CD8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r2, _080C9CDC lsrs r1, r2, 16 movs r3, 0 strh r1, [r0, 0x18] strh r2, [r0, 0x1A] ldr r1, _080C9CE0 str r1, [r0] movs r0, 0x1 negs r0, r0 str r3, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _080C9CF4 .align 2, 0 _080C9CC8: .4byte 0x03005d00 _080C9CCC: .4byte sub_80C9D00 _080C9CD0: .4byte 0x0300485c _080C9CD4: .4byte sub_80A5CC4 _080C9CD8: .4byte 0x03004b20 _080C9CDC: .4byte c2_exit_to_overworld_2_switch _080C9CE0: .4byte sub_80A5B00 _080C9CE4: ldr r0, _080C9CFC ldrh r0, [r0] bl itemid_get_overworld_function adds r1, r0, 0 adds r0, r4, 0 bl _call_via_r1 _080C9CF4: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080C9CFC: .4byte 0x0203855e thumb_func_end sub_80C9C7C thumb_func_start sub_80C9D00 sub_80C9D00: @ 80C9D00 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080C9D28 ldrh r0, [r0] movs r1, 0x1 bl sub_80A9538 bl script_env_2_enable ldr r0, _080C9D2C bl script_env_1_execute_new_script adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 .align 2, 0 _080C9D28: .4byte 0x0203855e _080C9D2C: .4byte gUnknown_081A1654 thumb_func_end sub_80C9D00 thumb_func_start ItemUseOutOfBattle_WailmerPail ItemUseOutOfBattle_WailmerPail: @ 80C9D30 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl WaterBerryTree lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C9D58 ldr r1, _080C9D50 ldr r0, _080C9D54 str r0, [r1] adds r0, r4, 0 bl SetUpItemUseOnFieldCallback b _080C9D6A .align 2, 0 _080C9D50: .4byte 0x03005d00 _080C9D54: .4byte sub_80C9D74 _080C9D58: ldr r0, _080C9D70 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrb r1, [r1, 0xC] adds r0, r4, 0 bl DisplayDadsAdviceCannotUseItemMessage _080C9D6A: pop {r4} pop {r0} bx r0 .align 2, 0 _080C9D70: .4byte 0x03004b20 thumb_func_end ItemUseOutOfBattle_WailmerPail thumb_func_start sub_80C9D74 sub_80C9D74: @ 80C9D74 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl script_env_2_enable ldr r0, _080C9D94 bl script_env_1_execute_new_script adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 .align 2, 0 _080C9D94: .4byte gUnknown_081A168F thumb_func_end sub_80C9D74 thumb_func_start sub_80C9D98 sub_80C9D98: @ 80C9D98 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C9DAC movs r1, 0 strb r1, [r2] bl unknown_ItemMenu_Confirm pop {r0} bx r0 .align 2, 0 _080C9DAC: .4byte 0x02038561 thumb_func_end sub_80C9D98 thumb_func_start ItemUseOutOfBattle_Medicine ItemUseOutOfBattle_Medicine: @ 80C9DB0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C9DC4 ldr r1, _080C9DC8 str r1, [r2] bl sub_80C9D98 pop {r0} bx r0 .align 2, 0 _080C9DC4: .4byte 0x03004ae4 _080C9DC8: .4byte sub_806FE2C thumb_func_end ItemUseOutOfBattle_Medicine thumb_func_start ItemUseOutOfBattle_SacredAsh ItemUseOutOfBattle_SacredAsh: @ 80C9DCC push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080C9DDC movs r0, 0 strb r0, [r1] movs r5, 0 b _080C9DE6 .align 2, 0 _080C9DDC: .4byte 0x03005ce0 _080C9DE0: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _080C9DE6: cmp r5, 0x5 bhi _080C9E10 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _080C9E28 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _080C9DE0 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 bne _080C9DE0 ldr r0, _080C9E2C strb r5, [r0] _080C9E10: ldr r1, _080C9E30 ldr r0, _080C9E34 str r0, [r1] ldr r1, _080C9E38 movs r0, 0x4 strb r0, [r1] adds r0, r6, 0 bl unknown_ItemMenu_Confirm pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C9E28: .4byte 0x03004360 _080C9E2C: .4byte 0x03005ce0 _080C9E30: .4byte 0x03004ae4 _080C9E34: .4byte sub_8070048 _080C9E38: .4byte 0x02038561 thumb_func_end ItemUseOutOfBattle_SacredAsh thumb_func_start ItemUseOutOfBattle_PPRecovery ItemUseOutOfBattle_PPRecovery: @ 80C9E3C push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C9E50 ldr r1, _080C9E54 str r1, [r2] bl sub_80C9D98 pop {r0} bx r0 .align 2, 0 _080C9E50: .4byte 0x03004ae4 _080C9E54: .4byte dp05_ether thumb_func_end ItemUseOutOfBattle_PPRecovery thumb_func_start ItemUseOutOfBattle_PPUp ItemUseOutOfBattle_PPUp: @ 80C9E58 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C9E6C ldr r1, _080C9E70 str r1, [r2] bl sub_80C9D98 pop {r0} bx r0 .align 2, 0 _080C9E6C: .4byte 0x03004ae4 _080C9E70: .4byte dp05_pp_up thumb_func_end ItemUseOutOfBattle_PPUp thumb_func_start ItemUseOutOfBattle_RareCandy ItemUseOutOfBattle_RareCandy: @ 80C9E74 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C9E88 ldr r1, _080C9E8C str r1, [r2] bl sub_80C9D98 pop {r0} bx r0 .align 2, 0 _080C9E88: .4byte 0x03004ae4 _080C9E8C: .4byte sub_8070680 thumb_func_end ItemUseOutOfBattle_RareCandy thumb_func_start ItemUseOutOfBattle_TMHM ItemUseOutOfBattle_TMHM: @ 80C9E90 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 movs r1, 0xD movs r2, 0xD movs r3, 0x14 bl Reset ldr r0, _080C9EBC ldrh r1, [r0] movs r0, 0xA9 lsls r0, 1 cmp r1, r0 bls _080C9EC8 ldr r1, _080C9EC0 ldr r2, _080C9EC4 adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField b _080C9ED4 .align 2, 0 _080C9EBC: .4byte 0x0203855e _080C9EC0: .4byte gUnknown_0840EA16 _080C9EC4: .4byte sub_80C9EE4 _080C9EC8: ldr r1, _080C9EDC ldr r2, _080C9EE0 adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField _080C9ED4: pop {r4} pop {r0} bx r0 .align 2, 0 _080C9EDC: .4byte gUnknown_0840EA06 _080C9EE0: .4byte sub_80C9EE4 thumb_func_end ItemUseOutOfBattle_TMHM thumb_func_start sub_80C9EE4 sub_80C9EE4: @ 80C9EE4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x2 bl audio_play ldr r1, _080C9F08 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C9F0C str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080C9F08: .4byte 0x03004b20 _080C9F0C: .4byte sub_80C9F10 thumb_func_end sub_80C9EE4 thumb_func_start sub_80C9F10 sub_80C9F10: @ 80C9F10 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080C9F64 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080C9F2A movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080C9F5C _080C9F2A: ldr r4, _080C9F68 ldr r0, _080C9F6C ldrh r0, [r0] bl ItemIdToBattleMoveId lsls r0, 16 lsrs r0, 16 movs r1, 0xD muls r1, r0 ldr r0, _080C9F70 adds r1, r0 adds r0, r4, 0 bl StringCopy ldr r4, _080C9F74 ldr r1, _080C9F78 adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _080C9F7C adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField _080C9F5C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C9F64: .4byte 0x03001770 _080C9F68: .4byte 0x020231cc _080C9F6C: .4byte 0x0203855e _080C9F70: .4byte gMoveNames _080C9F74: .4byte 0x020234cc _080C9F78: .4byte gUnknown_0840EA27 _080C9F7C: .4byte sub_80C9F80 thumb_func_end sub_80C9F10 thumb_func_start sub_80C9F80 sub_80C9F80: @ 80C9F80 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x7 movs r1, 0x7 movs r2, 0x1 bl sub_8072974 ldr r0, _080C9FB8 movs r1, 0x4 str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] movs r1, 0x8 movs r2, 0x8 movs r3, 0x5 bl sub_80A3FA0 ldr r1, _080C9FBC adds r0, r4, 0 bl sub_80F914C add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080C9FB8: .4byte 0x020219cc _080C9FBC: .4byte gUnknown_083D61F4 thumb_func_end sub_80C9F80 thumb_func_start sub_80C9FC0 sub_80C9FC0: @ 80C9FC0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C9FD4 ldr r1, _080C9FD8 str r1, [r2] bl sub_80C9D98 pop {r0} bx r0 .align 2, 0 _080C9FD4: .4byte 0x03004ae4 _080C9FD8: .4byte sub_806F06C thumb_func_end sub_80C9FC0 thumb_func_start sub_80C9FDC sub_80C9FDC: @ 80C9FDC push {r4,lr} ldr r4, _080CA004 ldrh r0, [r4] movs r1, 0x1 bl sub_80A9538 bl sub_80A3E0C ldrh r0, [r4] ldr r1, _080CA008 bl itemid_copy_name ldr r0, _080CA00C ldr r1, _080CA010 bl StringExpandPlaceholders pop {r4} pop {r0} bx r0 .align 2, 0 _080CA004: .4byte 0x0203855e _080CA008: .4byte 0x020232cc _080CA00C: .4byte 0x020234cc _080CA010: .4byte gUnknown_0840EA4F thumb_func_end sub_80C9FDC thumb_func_start ItemUseOutOfBattle_Repel ItemUseOutOfBattle_Repel: @ 80CA014 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r5, _080CA050 adds r0, r5, 0 bl VarGet lsls r0, 16 cmp r0, 0 bne _080CA060 ldr r0, _080CA054 ldrh r0, [r0] bl itemid_get_quality adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl VarSet bl sub_80C9FDC ldr r1, _080CA058 ldr r2, _080CA05C adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField b _080CA06C .align 2, 0 _080CA050: .4byte 0x00004021 _080CA054: .4byte 0x0203855e _080CA058: .4byte 0x020234cc _080CA05C: .4byte sub_80A5C48 _080CA060: ldr r1, _080CA074 ldr r2, _080CA078 adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField _080CA06C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CA074: .4byte gUnknown_0840EA61 _080CA078: .4byte sub_80A5C48 thumb_func_end ItemUseOutOfBattle_Repel thumb_func_start sub_80CA07C sub_80CA07C: @ 80CA07C push {lr} bl sub_80A3E0C ldr r0, _080CA090 ldrh r0, [r0] ldr r1, _080CA094 bl itemid_copy_name pop {r0} bx r0 .align 2, 0 _080CA090: .4byte 0x0203855e _080CA094: .4byte 0x020232cc thumb_func_end sub_80CA07C thumb_func_start sub_80CA098 sub_80CA098: @ 80CA098 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080CA0D0 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x26] adds r0, 0x1 strh r0, [r1, 0x26] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080CA0C8 movs r0, 0x75 bl audio_play ldr r1, _080CA0D4 ldr r2, _080CA0D8 adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField _080CA0C8: pop {r4} pop {r0} bx r0 .align 2, 0 _080CA0D0: .4byte 0x03004b20 _080CA0D4: .4byte 0x020234cc _080CA0D8: .4byte sub_80A5C48 thumb_func_end sub_80CA098 thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute ItemUseOutOfBattle_BlackWhiteFlute: @ 80CA0DC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 ldr r0, _080CA10C ldrh r0, [r0] cmp r0, 0x2B bne _080CA124 ldr r0, _080CA110 bl FlagSet ldr r0, _080CA114 bl FlagReset bl sub_80CA07C ldr r0, _080CA118 ldr r1, _080CA11C bl StringExpandPlaceholders ldr r1, _080CA120 lsls r0, r4, 2 adds r0, r4 b _080CA146 .align 2, 0 _080CA10C: .4byte 0x0203855e _080CA110: .4byte 0x0000084d _080CA114: .4byte 0x0000084e _080CA118: .4byte 0x020234cc _080CA11C: .4byte gUnknown_0840EA95 _080CA120: .4byte 0x03004b20 _080CA124: cmp r0, 0x2A bne _080CA152 ldr r0, _080CA158 bl FlagSet ldr r0, _080CA15C bl FlagReset bl sub_80CA07C ldr r0, _080CA160 ldr r1, _080CA164 bl StringExpandPlaceholders ldr r1, _080CA168 lsls r0, r5, 2 adds r0, r5 _080CA146: lsls r0, 3 adds r0, r1 ldr r1, _080CA16C str r1, [r0] movs r1, 0 strh r1, [r0, 0x26] _080CA152: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CA158: .4byte 0x0000084e _080CA15C: .4byte 0x0000084d _080CA160: .4byte 0x020234cc _080CA164: .4byte gUnknown_0840EAC3 _080CA168: .4byte 0x03004b20 _080CA16C: .4byte sub_80CA098 thumb_func_end ItemUseOutOfBattle_BlackWhiteFlute thumb_func_start task08_080A1C44 task08_080A1C44: @ 80CA170 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl player_avatar_init_params_reset bl sub_80878A8 adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 thumb_func_end task08_080A1C44 thumb_func_start sub_80CA18C sub_80CA18C: @ 80CA18C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8053014 bl sub_80C9FDC ldr r1, _080CA1BC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] ldr r1, _080CA1C0 ldr r2, _080CA1C4 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField pop {r4} pop {r0} bx r0 .align 2, 0 _080CA1BC: .4byte 0x03004b20 _080CA1C0: .4byte 0x020234cc _080CA1C4: .4byte task08_080A1C44 thumb_func_end sub_80CA18C thumb_func_start sub_80CA1C8 sub_80CA1C8: @ 80CA1C8 push {lr} ldr r0, _080CA1D8 ldrb r0, [r0, 0x17] cmp r0, 0x4 beq _080CA1DC movs r0, 0 b _080CA1DE .align 2, 0 _080CA1D8: .4byte 0x0202e828 _080CA1DC: movs r0, 0x1 _080CA1DE: pop {r1} bx r1 thumb_func_end sub_80CA1C8 thumb_func_start ItemUseOutOfBattle_EscapeRope ItemUseOutOfBattle_EscapeRope: @ 80CA1E4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_80CA1C8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080CA20C ldr r1, _080CA204 ldr r0, _080CA208 str r0, [r1] adds r0, r4, 0 bl SetUpItemUseOnFieldCallback b _080CA21E .align 2, 0 _080CA204: .4byte 0x03005d00 _080CA208: .4byte sub_80CA18C _080CA20C: ldr r0, _080CA224 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrb r1, [r1, 0xC] adds r0, r4, 0 bl DisplayDadsAdviceCannotUseItemMessage _080CA21E: pop {r4} pop {r0} bx r0 .align 2, 0 _080CA224: .4byte 0x03004b20 thumb_func_end ItemUseOutOfBattle_EscapeRope thumb_func_start ItemUseOutOfBattle_EvolutionStone ItemUseOutOfBattle_EvolutionStone: @ 80CA228 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080CA23C ldr r1, _080CA240 str r1, [r2] bl sub_80C9D98 pop {r0} bx r0 .align 2, 0 _080CA23C: .4byte 0x03004ae4 _080CA240: .4byte sub_8070DBC thumb_func_end ItemUseOutOfBattle_EvolutionStone thumb_func_start ItemUseInBattle_PokeBall ItemUseInBattle_PokeBall: @ 80CA244 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_803DD20 lsls r0, 24 cmp r0, 0 bne _080CA26C ldr r0, _080CA268 ldrh r0, [r0] movs r1, 0x1 bl sub_80A9538 adds r0, r4, 0 bl sub_80A7094 b _080CA284 .align 2, 0 _080CA268: .4byte 0x0203855e _080CA26C: movs r0, 0 movs r1, 0xD movs r2, 0xD movs r3, 0x14 bl Reset ldr r1, _080CA28C ldr r2, _080CA290 adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField _080CA284: pop {r4} pop {r0} bx r0 .align 2, 0 _080CA28C: .4byte gUnknown_0840EAF4 _080CA290: .4byte sub_80A5C48 thumb_func_end ItemUseInBattle_PokeBall thumb_func_start sub_80CA294 sub_80CA294: @ 80CA294 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080CA2B8 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080CA2AE movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080CA2B4 _080CA2AE: adds r0, r2, 0 bl sub_80A7094 _080CA2B4: pop {r0} bx r0 .align 2, 0 _080CA2B8: .4byte 0x03001770 thumb_func_end sub_80CA294 thumb_func_start sub_80CA2BC sub_80CA2BC: @ 80CA2BC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080CA304 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x26] adds r0, 0x1 strh r0, [r1, 0x26] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080CA2FC movs r0, 0x1 bl audio_play ldr r4, _080CA308 ldrh r0, [r4] movs r1, 0x1 bl sub_80A9538 ldrh r0, [r4] bl sub_803F378 adds r1, r0, 0 ldr r2, _080CA30C adds r0, r5, 0 movs r3, 0x1 bl DisplayItemMessageOnField _080CA2FC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CA304: .4byte 0x03004b20 _080CA308: .4byte 0x0203855e _080CA30C: .4byte sub_80CA294 thumb_func_end sub_80CA2BC thumb_func_start ItemUseInBattle_StatIncrease ItemUseInBattle_StatIncrease: @ 80CA310 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080CA35C ldr r0, _080CA360 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r4, [r0] movs r0, 0 movs r1, 0xD movs r2, 0xD movs r3, 0x14 bl Reset movs r0, 0x64 muls r0, r4 ldr r1, _080CA364 adds r0, r1 ldr r1, _080CA368 ldrh r1, [r1] lsls r4, 24 lsrs r4, 24 adds r2, r4, 0 movs r3, 0 bl ExecuteTableBasedItemEffect_ lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080CA374 ldr r1, _080CA36C ldr r2, _080CA370 adds r0, r5, 0 movs r3, 0x1 bl DisplayItemMessageOnField b _080CA384 .align 2, 0 _080CA35C: .4byte 0x02024a6a _080CA360: .4byte 0x02024e6c _080CA364: .4byte 0x03004360 _080CA368: .4byte 0x0203855e _080CA36C: .4byte gUnknown_0840EF85 _080CA370: .4byte sub_80A5C48 _080CA374: ldr r0, _080CA38C lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _080CA390 str r0, [r1] strh r2, [r1, 0x26] _080CA384: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CA38C: .4byte 0x03004b20 _080CA390: .4byte sub_80CA2BC thumb_func_end ItemUseInBattle_StatIncrease thumb_func_start sub_80CA394 sub_80CA394: @ 80CA394 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080CA3BC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080CA3B4 bl sub_8094E4C bl gpu_pal_allocator_reset__manage_upper_four adds r0, r4, 0 bl DestroyTask _080CA3B4: pop {r4} pop {r0} bx r0 .align 2, 0 _080CA3BC: .4byte 0x0202f388 thumb_func_end sub_80CA394 thumb_func_start sub_80CA3C0 sub_80CA3C0: @ 80CA3C0 push {lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, _080CA3EC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080CA3F0 str r0, [r1] movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080CA3EC: .4byte 0x03004b20 _080CA3F0: .4byte sub_80CA394 thumb_func_end sub_80CA3C0 thumb_func_start ItemUseInBattle_Medicine ItemUseInBattle_Medicine: @ 80CA3F4 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080CA408 ldr r1, _080CA40C str r1, [r2] bl sub_80CA3C0 pop {r0} bx r0 .align 2, 0 _080CA408: .4byte 0x03004ae4 _080CA40C: .4byte sub_806FE2C thumb_func_end ItemUseInBattle_Medicine thumb_func_start unref_sub_80CA410 unref_sub_80CA410: @ 80CA410 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080CA424 ldr r1, _080CA428 str r1, [r2] bl sub_80CA3C0 pop {r0} bx r0 .align 2, 0 _080CA424: .4byte 0x03004ae4 _080CA428: .4byte sub_8070048 thumb_func_end unref_sub_80CA410 thumb_func_start ItemUseInBattle_PPRecovery ItemUseInBattle_PPRecovery: @ 80CA42C push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080CA440 ldr r1, _080CA444 str r1, [r2] bl sub_80CA3C0 pop {r0} bx r0 .align 2, 0 _080CA440: .4byte 0x03004ae4 _080CA444: .4byte dp05_ether thumb_func_end ItemUseInBattle_PPRecovery thumb_func_start unref_sub_80CA448 unref_sub_80CA448: @ 80CA448 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0 movs r1, 0xD movs r2, 0xD movs r3, 0x14 bl Reset ldr r4, _080CA494 ldrh r1, [r4] movs r0, 0 movs r2, 0 bl ExecuteTableBasedItemEffect__ lsls r0, 24 cmp r0, 0 bne _080CA4AC ldrh r0, [r4] movs r1, 0x1 bl sub_80A9538 ldr r0, _080CA498 ldr r1, _080CA49C bl GetMonNickname ldr r4, _080CA4A0 ldr r1, _080CA4A4 adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _080CA4A8 adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField b _080CA4B8 .align 2, 0 _080CA494: .4byte 0x0203855e _080CA498: .4byte 0x03004360 _080CA49C: .4byte 0x020231cc _080CA4A0: .4byte 0x020234cc _080CA4A4: .4byte gUnknown_0840F5D7 _080CA4A8: .4byte sub_80A7094 _080CA4AC: ldr r1, _080CA4C0 ldr r2, _080CA4C4 adds r0, r5, 0 movs r3, 0x1 bl DisplayItemMessageOnField _080CA4B8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CA4C0: .4byte gUnknown_0840EF85 _080CA4C4: .4byte sub_80A5C48 thumb_func_end unref_sub_80CA448 thumb_func_start ItemUseInBattle_Escape ItemUseInBattle_Escape: @ 80CA4C8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 movs r1, 0xD movs r2, 0xD movs r3, 0x14 bl Reset ldr r0, _080CA4F8 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _080CA504 bl sub_80C9FDC ldr r1, _080CA4FC ldr r2, _080CA500 adds r0, r4, 0 movs r3, 0x1 bl DisplayItemMessageOnField b _080CA516 .align 2, 0 _080CA4F8: .4byte 0x020239f8 _080CA4FC: .4byte 0x020234cc _080CA500: .4byte sub_80A7094 _080CA504: ldr r0, _080CA51C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrb r1, [r1, 0xC] adds r0, r4, 0 bl DisplayDadsAdviceCannotUseItemMessage _080CA516: pop {r4} pop {r0} bx r0 .align 2, 0 _080CA51C: .4byte 0x03004b20 thumb_func_end ItemUseInBattle_Escape thumb_func_start ItemUseOutOfBattle_EnigmaBerry ItemUseOutOfBattle_EnigmaBerry: @ 80CA520 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080CA544 ldrh r0, [r0] bl sub_8070E48 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r0, 0x14 bls _080CA53A b _080CA62C _080CA53A: lsls r0, 2 ldr r1, _080CA548 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080CA544: .4byte 0x0203855e _080CA548: .4byte _080CA54C .align 2, 0 _080CA54C: .4byte _080CA5D8 .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA62C .4byte _080CA62C .4byte _080CA5BC .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA5A0 .4byte _080CA62C .4byte _080CA5F4 .4byte _080CA5F4 .4byte _080CA610 _080CA5A0: ldr r0, _080CA5B8 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x26] adds r0, r4, 0 bl ItemUseOutOfBattle_Medicine b _080CA640 .align 2, 0 _080CA5B8: .4byte 0x03004b20 _080CA5BC: ldr r0, _080CA5D4 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x26] adds r0, r4, 0 bl ItemUseOutOfBattle_SacredAsh b _080CA640 .align 2, 0 _080CA5D4: .4byte 0x03004b20 _080CA5D8: ldr r0, _080CA5F0 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x26] adds r0, r4, 0 bl ItemUseOutOfBattle_RareCandy b _080CA640 .align 2, 0 _080CA5F0: .4byte 0x03004b20 _080CA5F4: ldr r0, _080CA60C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x26] adds r0, r4, 0 bl ItemUseOutOfBattle_PPUp b _080CA640 .align 2, 0 _080CA60C: .4byte 0x03004b20 _080CA610: ldr r0, _080CA628 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x26] adds r0, r4, 0 bl ItemUseOutOfBattle_PPRecovery b _080CA640 .align 2, 0 _080CA628: .4byte 0x03004b20 _080CA62C: ldr r0, _080CA648 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0x4 strh r0, [r1, 0x26] adds r0, r4, 0 bl ItemUseOutOfBattle_CannotUse _080CA640: pop {r4} pop {r0} bx r0 .align 2, 0 _080CA648: .4byte 0x03004b20 thumb_func_end ItemUseOutOfBattle_EnigmaBerry thumb_func_start ItemUseInBattle_EnigmaBerry ItemUseInBattle_EnigmaBerry: @ 80CA64C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080CA66C ldrh r0, [r0] bl sub_8070E48 lsls r0, 24 lsrs r0, 24 cmp r0, 0x15 bhi _080CA6E4 lsls r0, 2 ldr r1, _080CA670 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080CA66C: .4byte 0x0203855e _080CA670: .4byte _080CA674 .align 2, 0 _080CA674: .4byte _080CA6CC .4byte _080CA6E4 .4byte _080CA6D4 .4byte _080CA6D4 .4byte _080CA6D4 .4byte _080CA6D4 .4byte _080CA6D4 .4byte _080CA6D4 .4byte _080CA6D4 .4byte _080CA6D4 .4byte _080CA6E4 .4byte _080CA6D4 .4byte _080CA6E4 .4byte _080CA6E4 .4byte _080CA6E4 .4byte _080CA6E4 .4byte _080CA6E4 .4byte _080CA6E4 .4byte _080CA6E4 .4byte _080CA6E4 .4byte _080CA6E4 .4byte _080CA6DC _080CA6CC: adds r0, r4, 0 bl ItemUseInBattle_StatIncrease b _080CA6EA _080CA6D4: adds r0, r4, 0 bl ItemUseInBattle_Medicine b _080CA6EA _080CA6DC: adds r0, r4, 0 bl ItemUseInBattle_PPRecovery b _080CA6EA _080CA6E4: adds r0, r4, 0 bl ItemUseOutOfBattle_CannotUse _080CA6EA: pop {r4} pop {r0} bx r0 thumb_func_end ItemUseInBattle_EnigmaBerry thumb_func_start ItemUseOutOfBattle_CannotUse ItemUseOutOfBattle_CannotUse: @ 80CA6F0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080CA70C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r1, [r1, 0xC] bl DisplayDadsAdviceCannotUseItemMessage pop {r0} bx r0 .align 2, 0 _080CA70C: .4byte 0x03004b20 thumb_func_end ItemUseOutOfBattle_CannotUse thumb_func_start sub_80CA710 sub_80CA710: @ 80CA710 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080CA744 ldrh r0, [r5] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r5, 0x6] strh r0, [r4, 0x30] ldr r0, _080CA748 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CA74C ldrh r0, [r5, 0x8] negs r0, r0 b _080CA74E .align 2, 0 _080CA744: .4byte 0x03004b00 _080CA748: .4byte 0x0202f7c8 _080CA74C: ldrh r0, [r5, 0x8] _080CA74E: strh r0, [r4, 0x34] ldr r0, _080CA760 ldrh r0, [r0, 0xA] strh r0, [r4, 0x36] ldr r0, _080CA764 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CA760: .4byte 0x03004b00 _080CA764: .4byte sub_80CA768 thumb_func_end sub_80CA710 thumb_func_start sub_80CA768 sub_80CA768: @ 80CA768 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x2E] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 ble _080CA7A4 subs r0, r1, 0x1 strh r0, [r4, 0x2E] ldrh r1, [r4, 0x32] lsls r0, r1, 16 asrs r0, 24 strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r1, r0 strh r1, [r4, 0x32] movs r1, 0x38 ldrsh r0, [r4, r1] movs r2, 0x34 ldrsh r1, [r4, r2] bl sine strh r0, [r4, 0x24] ldrh r0, [r4, 0x36] ldrh r1, [r4, 0x38] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] b _080CA7AA _080CA7A4: adds r0, r4, 0 bl move_anim_8072740 _080CA7AA: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CA768 thumb_func_start sub_80CA7B0 sub_80CA7B0: @ 80CA7B0 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080CA7F0 ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldr r5, _080CA7F4 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] ldr r0, _080CA7F8 str r0, [r4, 0x1C] ldr r1, _080CA7FC adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CA7F0: .4byte 0x03004b00 _080CA7F4: .4byte 0x0202f7c8 _080CA7F8: .4byte sub_8078B34 _080CA7FC: .4byte move_anim_8074EE0 thumb_func_end sub_80CA7B0 thumb_func_start sub_80CA800 sub_80CA800: @ 80CA800 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r5, _080CA848 ldrb r1, [r5, 0x6] adds r0, r4, 0 bl StartSpriteAnim ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] ldr r5, _080CA84C ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] ldr r0, _080CA850 str r0, [r4, 0x1C] ldr r1, _080CA854 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CA848: .4byte 0x03004b00 _080CA84C: .4byte 0x0202f7c9 _080CA850: .4byte sub_8078B34 _080CA854: .4byte move_anim_8072740 thumb_func_end sub_80CA800 thumb_func_start sub_80CA858 sub_80CA858: @ 80CA858 push {r4-r6,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r6, _080CA8A8 ldrh r0, [r6, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] ldr r5, _080CA8AC ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] adds r0, r4, 0 bl obj_translate_based_on_private_1_2_3_4 ldrh r0, [r6, 0x6] strh r0, [r4, 0x38] ldr r1, _080CA8B0 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CA8A8: .4byte 0x03004b00 _080CA8AC: .4byte 0x0202f7c9 _080CA8B0: .4byte sub_80CA8B4 thumb_func_end sub_80CA858 thumb_func_start sub_80CA8B4 sub_80CA8B4: @ 80CA8B4 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080CA8CA adds r0, r4, 0 bl DestroySprite b _080CA91E _080CA8CA: movs r1, 0x38 ldrsh r0, [r4, r1] cmp r0, 0x7F ble _080CA8E4 ldr r0, _080CA8E0 ldrb r0, [r0] bl sub_8079E90 adds r0, 0x1 b _080CA8EE .align 2, 0 _080CA8E0: .4byte 0x0202f7c9 _080CA8E4: ldr r0, _080CA924 ldrb r0, [r0] bl sub_8079E90 adds r0, 0x6 _080CA8EE: adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0x5 bl sine ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0xE bl cosine ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x38] adds r0, 0xF movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] _080CA91E: pop {r4} pop {r0} bx r0 .align 2, 0 _080CA924: .4byte 0x0202f7c9 thumb_func_end sub_80CA8B4 thumb_func_start sub_80CA928 sub_80CA928: @ 80CA928 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 ldr r1, _080CA998 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r5, r0, r1 ldrh r0, [r5, 0x8] subs r0, 0x1 movs r2, 0 strh r0, [r5, 0x8] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080CA982 ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] movs r0, 0x6 strh r0, [r5, 0x8] ldr r1, _080CA99C movs r0, 0xF strh r0, [r1] strh r2, [r1, 0x2] movs r0, 0x50 strh r0, [r1, 0x4] strh r2, [r1, 0x6] ldr r4, _080CA9A0 ldr r0, _080CA9A4 ldrb r0, [r0] bl sub_8079E90 adds r3, r0, 0 adds r3, 0x1 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 movs r1, 0 movs r2, 0 bl CreateSpriteAndAnimate _080CA982: movs r1, 0xA ldrsh r0, [r5, r1] cmp r0, 0xF bne _080CA990 adds r0, r6, 0 bl move_anim_task_del _080CA990: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CA998: .4byte 0x03004b20 _080CA99C: .4byte 0x03004b00 _080CA9A0: .4byte gSpriteTemplate_83D631C _080CA9A4: .4byte 0x0202f7c9 thumb_func_end sub_80CA928 thumb_func_start sub_80CA9A8 sub_80CA9A8: @ 80CA9A8 push {r4-r6,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 ldr r6, _080CA9EC ldrh r0, [r6, 0x6] strh r0, [r4, 0x2E] ldr r5, _080CA9F0 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] ldrh r0, [r6, 0x4] strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC ldr r0, _080CA9F4 str r0, [r4, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CA9EC: .4byte 0x03004b00 _080CA9F0: .4byte 0x0202f7c8 _080CA9F4: .4byte sub_80CA9F8 thumb_func_end sub_80CA9A8 thumb_func_start sub_80CA9F8 sub_80CA9F8: @ 80CA9F8 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080CAA0C adds r0, r4, 0 bl move_anim_8072740 _080CAA0C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CA9F8 thumb_func_start sub_80CAA14 sub_80CAA14: @ 80CAA14 push {r4,r5,lr} adds r5, r0, 0 bl Random adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 movs r0, 0x7 ands r1, r0 adds r0, r5, 0 bl StartSpriteAnim ldr r4, _080CAA5C ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CAA60 ldrh r0, [r5, 0x20] subs r0, 0x14 b _080CAA64 .align 2, 0 _080CAA5C: .4byte 0x0202f7c8 _080CAA60: ldrh r0, [r5, 0x20] adds r0, 0x14 _080CAA64: strh r0, [r5, 0x20] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x1F ands r0, r1 adds r0, 0x40 strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] ldr r4, _080CAAC4 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] adds r0, r5, 0 bl sub_8078D60 bl Random movs r1, 0xFF ands r1, r0 strh r1, [r5, 0x38] adds r0, r5, 0 adds r0, 0x43 ldrb r0, [r0] strh r0, [r5, 0x3A] ldr r1, _080CAAC8 str r1, [r5, 0x1C] adds r0, r5, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CAAC4: .4byte 0x0202f7c9 _080CAAC8: .4byte sub_80CAACC thumb_func_end sub_80CAA14 thumb_func_start sub_80CAACC sub_80CAACC: @ 80CAACC push {r4,lr} adds r4, r0, 0 bl sub_8078CE8 lsls r0, 24 cmp r0, 0 beq _080CAAE2 adds r0, r4, 0 bl move_anim_8072740 b _080CAB12 _080CAAE2: movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0xC bl cosine ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] movs r1, 0x38 ldrsh r0, [r4, r1] cmp r0, 0x7E bgt _080CAAFE ldrh r0, [r4, 0x3A] b _080CAB02 _080CAAFE: ldrh r0, [r4, 0x3A] adds r0, 0x1 _080CAB02: adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] ldrh r0, [r4, 0x38] adds r0, 0x18 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] _080CAB12: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CAACC thumb_func_start sub_80CAB18 sub_80CAB18: @ 80CAB18 push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080CAB78 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CAB38 ldr r1, _080CAB7C ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080CAB38: ldr r4, _080CAB7C ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] ldr r5, _080CAB80 ldrb r0, [r5] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] adds r0, r1 strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] adds r0, r1 strh r0, [r6, 0x36] ldrh r0, [r4, 0xA] strh r0, [r6, 0x38] adds r0, r6, 0 bl sub_80786EC ldr r0, _080CAB84 str r0, [r6, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CAB78: .4byte 0x0202f7c8 _080CAB7C: .4byte 0x03004b00 _080CAB80: .4byte 0x0202f7c9 _080CAB84: .4byte sub_80CAB88 thumb_func_end sub_80CAB18 thumb_func_start sub_80CAB88 sub_80CAB88: @ 80CAB88 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080CABB2 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] movs r0, 0xA strh r0, [r4, 0x2E] ldr r0, _080CABB8 str r0, [r4, 0x1C] ldr r1, _080CABBC adds r0, r4, 0 bl oamt_set_x3A_32 _080CABB2: pop {r4} pop {r0} bx r0 .align 2, 0 _080CABB8: .4byte sub_80782D8 _080CABBC: .4byte sub_80CABC0 thumb_func_end sub_80CAB88 thumb_func_start sub_80CABC0 sub_80CABC0: @ 80CABC0 push {r4,lr} adds r4, r0, 0 adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim movs r0, 0x3C strh r0, [r4, 0x2E] ldr r0, _080CABF0 str r0, [r4, 0x1C] ldr r1, _080CABF4 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080CABF0: .4byte sub_80782D8 _080CABF4: .4byte move_anim_8072740 thumb_func_end sub_80CABC0 thumb_func_start sub_80CABF8 sub_80CABF8: @ 80CABF8 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 ldr r5, _080CAC3C ldrb r1, [r5, 0x8] adds r0, r4, 0 bl StartSpriteAnim movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x1 bne _080CAC22 ldrb r0, [r4, 0x1] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4, 0x1] _080CAC22: ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r5, 0x4] strh r0, [r4, 0x30] ldr r1, _080CAC40 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CAC3C: .4byte 0x03004b00 _080CAC40: .4byte sub_80CAC44 thumb_func_end sub_80CABF8 thumb_func_start sub_80CAC44 sub_80CAC44: @ 80CAC44 push {r4,lr} adds r4, r0, 0 movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x20 bl sine strh r0, [r4, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x3 negs r1, r1 bl cosine ldrh r1, [r4, 0x32] adds r1, 0x18 strh r1, [r4, 0x32] lsls r1, 16 asrs r1, 24 adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] subs r0, 0x40 lsls r0, 16 lsrs r0, 16 cmp r0, 0x7F bhi _080CAC98 ldr r0, _080CAC94 ldrb r0, [r0] bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 b _080CACBC .align 2, 0 _080CAC94: .4byte 0x0202f7c9 _080CAC98: ldr r0, _080CACE8 ldrb r0, [r0] bl sub_8079ED4 adds r0, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _080CACAC movs r2, 0x3 _080CACAC: movs r0, 0x3 ands r2, r0 lsls r2, 2 ldrb r1, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 orrs r0, r2 _080CACBC: strb r0, [r4, 0x5] ldrh r0, [r4, 0x30] adds r0, 0x2 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080CACE0 adds r0, r4, 0 bl move_anim_8072740 _080CACE0: pop {r4} pop {r0} bx r0 .align 2, 0 _080CACE8: .4byte 0x0202f7c9 thumb_func_end sub_80CAC44 thumb_func_start sub_80CACEC sub_80CACEC: @ 80CACEC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080CAD06 bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _080CAD0E _080CAD06: adds r0, r4, 0 bl move_anim_task_del b _080CAD4A _080CAD0E: ldr r0, _080CAD2C ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080CAD34 ldr r0, _080CAD30 ldrb r1, [r0] movs r2, 0x3 orrs r1, r2 strb r1, [r0] b _080CAD44 .align 2, 0 _080CAD2C: .4byte 0x0202f7c9 _080CAD30: .4byte REG_BG2CNT _080CAD34: ldr r2, _080CAD50 ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] _080CAD44: adds r0, r4, 0 bl move_anim_task_del _080CAD4A: pop {r4} pop {r0} bx r0 .align 2, 0 _080CAD50: .4byte REG_BG1CNT thumb_func_end sub_80CACEC thumb_func_start sub_80CAD54 sub_80CAD54: @ 80CAD54 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0 bl sub_80787B0 ldr r5, _080CAD9C ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] ldr r0, _080CADA0 ldrb r0, [r0] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x4] adds r0, r5 strh r0, [r4, 0x36] adds r0, r4, 0 bl obj_translate_based_on_private_1_2_3_4 movs r0, 0x40 strh r0, [r4, 0x38] ldr r1, _080CADA4 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CAD9C: .4byte 0x03004b00 _080CADA0: .4byte 0x0202f7c8 _080CADA4: .4byte sub_80CADA8 thumb_func_end sub_80CAD54 thumb_func_start sub_80CADA8 sub_80CADA8: @ 80CADA8 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 bne _080CAE14 movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0x20 bl sine ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0x5 negs r1, r1 bl cosine ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x38] subs r0, 0x40 lsls r0, 16 lsrs r0, 16 cmp r0, 0x7F bhi _080CADF4 ldr r0, _080CADF0 ldrb r0, [r0] bl sub_8079E90 subs r0, 0x1 b _080CADFE .align 2, 0 _080CADF0: .4byte 0x0202f7c8 _080CADF4: ldr r0, _080CAE10 ldrb r0, [r0] bl sub_8079E90 adds r0, 0x1 _080CADFE: adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] ldrh r0, [r4, 0x38] adds r0, 0x5 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] b _080CAE1A .align 2, 0 _080CAE10: .4byte 0x0202f7c8 _080CAE14: adds r0, r4, 0 bl move_anim_8072740 _080CAE1A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CADA8 thumb_func_start sub_80CAE20 sub_80CAE20: @ 80CAE20 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r5, _080CAE68 ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] ldr r0, _080CAE6C ldrb r0, [r0] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x4] adds r0, r5 strh r0, [r4, 0x36] adds r0, r4, 0 bl obj_translate_based_on_private_1_2_3_4 movs r0, 0x40 strh r0, [r4, 0x38] ldr r1, _080CAE70 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CAE68: .4byte 0x03004b00 _080CAE6C: .4byte 0x0202f7c8 _080CAE70: .4byte sub_80CAE74 thumb_func_end sub_80CAE20 thumb_func_start sub_80CAE74 sub_80CAE74: @ 80CAE74 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 bne _080CAECC movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0x8 bl sine ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] ldrh r1, [r4, 0x38] adds r0, r1, 0 subs r0, 0x3B lsls r0, 16 lsrs r0, 16 cmp r0, 0x4 bls _080CAEAC adds r0, r1, 0 subs r0, 0xBB lsls r0, 16 lsrs r0, 16 cmp r0, 0x4 bhi _080CAEC0 _080CAEAC: ldrb r2, [r4, 0x3] lsls r1, r2, 26 lsrs r1, 27 movs r0, 0x8 eors r1, r0 lsls r1, 1 subs r0, 0x47 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x3] _080CAEC0: ldrh r0, [r4, 0x38] adds r0, 0x5 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] b _080CAED2 _080CAECC: adds r0, r4, 0 bl move_anim_8072740 _080CAED2: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CAE74 thumb_func_start sub_80CAED8 sub_80CAED8: @ 80CAED8 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080CAF14 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] ldr r1, _080CAF18 ldrh r0, [r1] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x2] strh r0, [r4, 0x30] ldrh r0, [r1, 0x4] strh r0, [r4, 0x32] ldr r0, _080CAF1C str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CAF14: .4byte 0x0202f7c8 _080CAF18: .4byte 0x03004b00 _080CAF1C: .4byte sub_80CAF20 thumb_func_end sub_80CAED8 thumb_func_start sub_80CAF20 sub_80CAF20: @ 80CAF20 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x32] movs r2, 0x32 ldrsh r3, [r1, r2] cmp r3, 0 bne _080CAF54 ldrh r0, [r1, 0x30] movs r2, 0x1 ands r2, r0 cmp r2, 0 beq _080CAF42 movs r0, 0x80 strh r0, [r1, 0x2E] strh r3, [r1, 0x30] strh r3, [r1, 0x32] b _080CAF48 _080CAF42: strh r2, [r1, 0x2E] strh r2, [r1, 0x30] strh r2, [r1, 0x32] _080CAF48: ldr r0, _080CAF50 str r0, [r1, 0x1C] b _080CAF68 .align 2, 0 _080CAF50: .4byte sub_80CAF6C _080CAF54: subs r0, 0x1 strh r0, [r1, 0x32] ldrh r0, [r1, 0x2E] ldrh r2, [r1, 0x20] adds r0, r2 strh r0, [r1, 0x20] ldrh r0, [r1, 0x30] ldrh r2, [r1, 0x22] adds r0, r2 strh r0, [r1, 0x22] _080CAF68: pop {r0} bx r0 thumb_func_end sub_80CAF20 thumb_func_start sub_80CAF6C sub_80CAF6C: @ 80CAF6C push {r4,lr} adds r4, r0, 0 ldr r0, _080CAF8C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CAF90 movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x19 bl sine negs r0, r0 b _080CAF9A .align 2, 0 _080CAF8C: .4byte 0x0202f7c8 _080CAF90: movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x19 bl sine _080CAF9A: strh r0, [r4, 0x24] ldrh r0, [r4, 0x2E] adds r0, 0x2 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _080CAFBA ldrh r0, [r4, 0x26] adds r0, 0x1 strh r0, [r4, 0x26] _080CAFBA: movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x50 ble _080CAFC8 adds r0, r4, 0 bl move_anim_8072740 _080CAFC8: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CAF6C thumb_func_start sub_80CAFD0 sub_80CAFD0: @ 80CAFD0 push {r4-r6,lr} adds r5, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080CB024 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CAFF0 ldr r1, _080CB028 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080CAFF0: ldr r6, _080CB028 ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] movs r1, 0xC ldrsh r0, [r6, r1] cmp r0, 0 bne _080CB030 ldr r4, _080CB02C ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x4] adds r0, r1 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] adds r0, r6 b _080CB050 .align 2, 0 _080CB024: .4byte 0x0202f7c8 _080CB028: .4byte 0x03004b00 _080CB02C: .4byte 0x0202f7c9 _080CB030: ldr r0, _080CB07C ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 adds r3, r5, 0 adds r3, 0x36 movs r1, 0x1 bl sub_807A3FC ldrh r0, [r6, 0x4] ldrh r1, [r5, 0x32] adds r0, r1 strh r0, [r5, 0x32] ldrh r0, [r6, 0x6] ldrh r1, [r5, 0x36] adds r0, r1 _080CB050: strh r0, [r5, 0x36] ldr r0, _080CB080 ldrh r0, [r0, 0xA] strh r0, [r5, 0x38] adds r0, r5, 0 bl sub_80786EC ldr r0, _080CB084 ldrb r0, [r0] bl battle_side_get_owner adds r4, r0, 0 ldr r0, _080CB07C ldrb r0, [r0] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080CB088 movs r0, 0x1 b _080CB08A .align 2, 0 _080CB07C: .4byte 0x0202f7c9 _080CB080: .4byte 0x03004b00 _080CB084: .4byte 0x0202f7c8 _080CB088: movs r0, 0 _080CB08A: strh r0, [r5, 0x2E] ldr r0, _080CB098 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CB098: .4byte sub_80CB09C thumb_func_end sub_80CAFD0 thumb_func_start sub_80CB09C sub_80CB09C: @ 80CB09C push {r4-r7,lr} adds r6, r0, 0 movs r7, 0 ldrh r5, [r6, 0x2E] ldrh r4, [r6, 0x3C] movs r0, 0x1 strh r0, [r6, 0x2E] adds r0, r6, 0 bl sub_8078718 ldrh r0, [r6, 0x3C] strh r5, [r6, 0x2E] lsls r4, 16 asrs r4, 16 cmp r4, 0xC8 ble _080CB0CE lsls r0, 16 asrs r0, 16 cmp r0, 0x37 bgt _080CB0CE ldrh r0, [r6, 0x6] cmp r0, 0 bne _080CB0D4 adds r0, 0x1 strh r0, [r6, 0x6] _080CB0CE: ldrh r0, [r6, 0x6] cmp r0, 0 beq _080CB106 _080CB0D4: movs r1, 0x2E ldrsh r0, [r6, r1] cmp r0, 0 beq _080CB106 adds r3, r6, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrh r0, [r6, 0x6] adds r0, 0x1 strh r0, [r6, 0x6] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1E bne _080CB106 movs r7, 0x1 _080CB106: movs r2, 0x20 ldrsh r0, [r6, r2] movs r2, 0x24 ldrsh r1, [r6, r2] adds r0, r1 adds r0, 0x10 movs r1, 0x88 lsls r1, 1 cmp r0, r1 bhi _080CB130 movs r0, 0x22 ldrsh r1, [r6, r0] movs r2, 0x26 ldrsh r0, [r6, r2] adds r1, r0 cmp r1, 0xA0 bgt _080CB130 movs r0, 0x10 negs r0, r0 cmp r1, r0 bge _080CB132 _080CB130: movs r7, 0x1 _080CB132: cmp r7, 0 beq _080CB13C adds r0, r6, 0 bl move_anim_8072740 _080CB13C: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80CB09C thumb_func_start sub_80CB144 sub_80CB144: @ 80CB144 push {r4,lr} adds r4, r0, 0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080CB170 bl battle_type_is_double lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080CB170 ldr r0, _080CB198 ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 movs r1, 0x1 bl sub_807A3FC _080CB170: ldrh r0, [r4, 0x22] adds r0, 0x20 strh r0, [r4, 0x22] ldr r1, _080CB19C ldrh r0, [r1] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x2] strh r0, [r4, 0x30] ldrh r0, [r1, 0x4] strh r0, [r4, 0x32] ldrh r0, [r1, 0x6] strh r0, [r4, 0x34] ldrh r0, [r1, 0x8] strh r0, [r4, 0x36] ldr r0, _080CB1A0 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CB198: .4byte 0x0202f7c9 _080CB19C: .4byte 0x03004b00 _080CB1A0: .4byte sub_80CB1A4 thumb_func_end sub_80CB144 thumb_func_start sub_80CB1A4 sub_80CB1A4: @ 80CB1A4 push {r4,r5,lr} adds r4, r0, 0 ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0xFF bne _080CB1BA ldrh r0, [r4, 0x22] subs r0, 0x2 strh r0, [r4, 0x22] b _080CB1C8 _080CB1BA: cmp r0, 0 ble _080CB1C8 ldrh r0, [r4, 0x22] subs r0, 0x2 strh r0, [r4, 0x22] subs r0, r1, 0x2 strh r0, [r4, 0x30] _080CB1C8: ldrh r3, [r4, 0x32] ldrh r5, [r4, 0x38] adds r2, r3, r5 strh r2, [r4, 0x38] movs r0, 0x2E ldrsh r1, [r4, r0] movs r5, 0x36 ldrsh r0, [r4, r5] cmp r1, r0 bge _080CB1E0 adds r0, r2, r3 strh r0, [r4, 0x38] _080CB1E0: ldrh r1, [r4, 0x38] movs r0, 0xFF ands r0, r1 strh r0, [r4, 0x38] movs r1, 0x38 ldrsh r0, [r4, r1] movs r2, 0x34 ldrsh r1, [r4, r2] bl cosine strh r0, [r4, 0x24] movs r5, 0x38 ldrsh r0, [r4, r5] movs r1, 0x5 bl sine strh r0, [r4, 0x26] movs r1, 0x38 ldrsh r0, [r4, r1] cmp r0, 0x7F bgt _080CB220 ldr r0, _080CB21C ldrb r0, [r0] bl sub_8079ED4 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 b _080CB22E .align 2, 0 _080CB21C: .4byte 0x0202f7c9 _080CB220: ldr r0, _080CB258 ldrb r0, [r0] bl sub_8079ED4 lsls r0, 24 lsrs r0, 24 adds r0, 0x1 _080CB22E: movs r1, 0x3 ands r0, r1 lsls r0, 2 ldrb r2, [r4, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x5] ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bne _080CB252 adds r0, r4, 0 bl move_anim_8072740 _080CB252: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CB258: .4byte 0x0202f7c9 thumb_func_end sub_80CB1A4 thumb_func_start sub_80CB25C sub_80CB25C: @ 80CB25C push {r4,r5,lr} adds r5, r0, 0 movs r1, 0 bl sub_8078764 adds r2, r5, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r4, _080CB290 ldrb r1, [r4, 0x4] adds r0, r5, 0 bl StartSpriteAffineAnim ldrh r0, [r4, 0x4] strh r0, [r5, 0x3A] ldrh r0, [r4, 0x6] strh r0, [r5, 0x3C] ldr r0, _080CB294 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CB290: .4byte 0x03004b00 _080CB294: .4byte sub_80CB298 thumb_func_end sub_80CB25C thumb_func_start sub_80CB298 sub_80CB298: @ 80CB298 push {r4,lr} adds r4, r0, 0 ldr r0, _080CB2C8 ldrh r1, [r0, 0xE] ldr r0, _080CB2CC cmp r1, r0 bne _080CB2C2 adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] movs r0, 0x1 bl obj_id_for_side_relative_to_move movs r0, 0x80 lsls r0, 1 strh r0, [r4, 0x2E] ldr r0, _080CB2D0 str r0, [r4, 0x1C] _080CB2C2: pop {r4} pop {r0} bx r0 .align 2, 0 _080CB2C8: .4byte 0x03004b00 _080CB2CC: .4byte 0x0000ffff _080CB2D0: .4byte sub_80CB2D4 thumb_func_end sub_80CB298 thumb_func_start sub_80CB2D4 sub_80CB2D4: @ 80CB2D4 push {r4,lr} adds r4, r0, 0 movs r0, 0x1 bl obj_id_for_side_relative_to_move movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 bne _080CB2EC ldrh r0, [r4, 0x2E] adds r0, 0xB b _080CB2F0 _080CB2EC: ldrh r0, [r4, 0x2E] subs r0, 0xB _080CB2F0: strh r0, [r4, 0x2E] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bne _080CB30C movs r0, 0 strh r0, [r4, 0x30] ldrh r0, [r4, 0x32] movs r1, 0x1 eors r0, r1 strh r0, [r4, 0x32] _080CB30C: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080CB33A ldrh r0, [r4, 0x3C] subs r0, 0x1 strh r0, [r4, 0x3C] lsls r0, 16 cmp r0, 0 ble _080CB334 ldrh r1, [r4, 0x3A] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAffineAnim b _080CB33A _080CB334: adds r0, r4, 0 bl move_anim_8072740 _080CB33A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CB2D4 thumb_func_start sub_80CB340 sub_80CB340: @ 80CB340 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x1 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080CB36C lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _080CB370 adds r0, r4, 0 bl move_anim_task_del b _080CB396 .align 2, 0 _080CB36C: .4byte 0x02020004 _080CB370: adds r0, r2, 0 movs r1, 0x1 bl sub_8078E70 ldr r1, _080CB39C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r2, _080CB3A0 ldrh r1, [r2] strh r1, [r0, 0x8] ldrh r1, [r2, 0x2] strh r1, [r0, 0xA] movs r1, 0x80 lsls r1, 1 strh r1, [r0, 0x1E] ldr r1, _080CB3A4 str r1, [r0] _080CB396: pop {r4} pop {r0} bx r0 .align 2, 0 _080CB39C: .4byte 0x03004b20 _080CB3A0: .4byte 0x03004b00 _080CB3A4: .4byte sub_80CB3A8 thumb_func_end sub_80CB340 thumb_func_start sub_80CB3A8 sub_80CB3A8: @ 80CB3A8 push {r4-r6,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 ldr r1, _080CB428 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r4, r0, r1 ldrh r1, [r4, 0x8] ldrh r0, [r4, 0x1C] adds r1, r0 strh r1, [r4, 0x1C] ldr r2, _080CB42C lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r5, r0, r2 lsls r1, 16 asrs r1, 24 strh r1, [r5, 0x24] ldr r0, _080CB430 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CB3F2 ldrh r0, [r5, 0x24] negs r0, r0 strh r0, [r5, 0x24] _080CB3F2: ldrh r0, [r4, 0x1E] adds r0, 0x10 strh r0, [r4, 0x1E] movs r0, 0x1E ldrsh r2, [r4, r0] adds r0, r6, 0 adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale adds r0, r6, 0 bl sub_8079A64 ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0 bne _080CB420 strh r0, [r4, 0x8] ldr r0, _080CB434 str r0, [r4] _080CB420: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CB428: .4byte 0x03004b20 _080CB42C: .4byte 0x02020004 _080CB430: .4byte 0x0202f7c9 _080CB434: .4byte sub_80CB438 thumb_func_end sub_80CB3A8 thumb_func_start sub_80CB438 sub_80CB438: @ 80CB438 push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, _080CB484 ldrh r1, [r0, 0xE] ldr r0, _080CB488 cmp r1, r0 bne _080CB494 ldr r0, _080CB48C lsls r2, r3, 2 adds r1, r2, r3 lsls r1, 3 adds r6, r1, r0 movs r1, 0x8 ldrsh r5, [r6, r1] adds r4, r0, 0 cmp r5, 0 bne _080CB4A8 movs r0, 0x1 bl obj_id_for_side_relative_to_move adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_8078F40 ldr r1, _080CB490 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 strh r5, [r0, 0x24] strh r5, [r0, 0x26] ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] b _080CB4C2 .align 2, 0 _080CB484: .4byte 0x03004b00 _080CB488: .4byte 0x0000ffff _080CB48C: .4byte 0x03004b20 _080CB490: .4byte 0x02020004 _080CB494: ldr r1, _080CB4C8 lsls r2, r3, 2 adds r0, r2, r3 lsls r0, 3 adds r0, r1 movs r4, 0x8 ldrsh r0, [r0, r4] adds r4, r1, 0 cmp r0, 0 beq _080CB4C2 _080CB4A8: adds r1, r2, r3 lsls r1, 3 adds r1, r4 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _080CB4C2 adds r0, r3, 0 bl move_anim_task_del _080CB4C2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CB4C8: .4byte 0x03004b20 thumb_func_end sub_80CB438 thumb_func_start sub_80CB4CC sub_80CB4CC: @ 80CB4CC push {r4-r6,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 beq _080CB4DE cmp r0, 0x1 beq _080CB538 b _080CB58A _080CB4DE: ldr r6, _080CB530 ldrb r0, [r6] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CB4F6 ldr r1, _080CB534 movs r2, 0 ldrsh r0, [r1, r2] negs r0, r0 strh r0, [r1] _080CB4F6: ldrb r0, [r6] movs r1, 0 bl sub_8077ABC lsls r0, 24 ldr r4, _080CB534 lsrs r0, 24 ldrh r1, [r4] adds r0, r1 strh r0, [r5, 0x20] ldrb r0, [r6] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] adds r0, r4 strh r0, [r5, 0x22] adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _080CB58A .align 2, 0 _080CB530: .4byte 0x0202f7c9 _080CB534: .4byte 0x03004b00 _080CB538: adds r2, r5, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r0, r5, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080CB58A adds r0, r5, 0 movs r1, 0x1 bl ChangeSpriteAffineAnim movs r0, 0x19 strh r0, [r5, 0x2E] ldr r4, _080CB590 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] ldr r0, _080CB594 str r0, [r5, 0x1C] ldr r1, _080CB598 adds r0, r5, 0 bl oamt_set_x3A_32 _080CB58A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CB590: .4byte 0x0202f7c8 _080CB594: .4byte sub_8078CC0 _080CB598: .4byte move_anim_8072740 thumb_func_end sub_80CB4CC thumb_func_start sub_80CB59C sub_80CB59C: @ 80CB59C push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 bne _080CB608 ldr r4, _080CB614 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r4, _080CB618 ldrh r0, [r4] strh r0, [r5, 0x24] ldrh r0, [r4, 0x2] strh r0, [r5, 0x26] ldrb r0, [r4, 0x4] adds r0, 0x1E adds r1, r5, 0 adds r1, 0x43 strb r0, [r1] ldrb r1, [r4, 0x6] adds r0, r5, 0 bl StartSpriteAnim ldrh r0, [r4, 0x8] strh r0, [r5, 0x32] ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] movs r2, 0x22 ldrsh r0, [r5, r2] movs r2, 0x26 ldrsh r1, [r5, r2] adds r0, r1 cmp r0, 0x78 ble _080CB608 ldrh r0, [r5, 0x22] adds r1, r0, 0 subs r1, 0x78 ldrh r2, [r5, 0x26] adds r0, r2 adds r1, r0 strh r1, [r5, 0x22] _080CB608: ldr r0, _080CB61C str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CB614: .4byte 0x0202f7c8 _080CB618: .4byte 0x03004b00 _080CB61C: .4byte sub_80CB710 thumb_func_end sub_80CB59C thumb_func_start sub_80CB620 sub_80CB620: @ 80CB620 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x4 mov r9, r0 ldr r4, _080CB6FC ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC mov r8, r0 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r6, _080CB700 ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r6] movs r1, 0x3 bl sub_8077ABC adds r2, r0, 0 lsls r2, 24 subs r4, r5 lsls r4, 16 lsrs r2, 24 mov r1, r8 subs r2, r1 lsls r2, 16 lsrs r2, 16 lsrs r3, r4, 16 mov r10, r3 asrs r4, 16 ldr r6, _080CB704 movs r1, 0 ldrsh r0, [r6, r1] muls r0, r4 movs r1, 0x64 str r2, [sp] bl __divsi3 adds r5, r0 mov r3, r9 strh r5, [r3, 0x20] ldr r2, [sp] lsls r0, r2, 16 asrs r0, 16 movs r3, 0 ldrsh r1, [r6, r3] muls r0, r1 movs r1, 0x64 bl __divsi3 add r8, r0 mov r1, r8 mov r0, r9 strh r1, [r0, 0x22] ldrh r0, [r6, 0x2] mov r3, r9 strh r0, [r3, 0x24] ldrh r0, [r6, 0x4] strh r0, [r3, 0x26] ldrb r0, [r6, 0x6] adds r0, 0x1E mov r1, r9 adds r1, 0x43 strb r0, [r1] ldrb r1, [r6, 0x8] mov r0, r9 bl StartSpriteAnim ldrh r0, [r6, 0xA] mov r1, r9 strh r0, [r1, 0x32] ldr r0, _080CB708 str r0, [r1, 0x1C] ldr r1, _080CB70C mov r3, r9 ldrh r0, [r3, 0x20] strh r0, [r1] ldrh r0, [r3, 0x22] strh r0, [r1, 0x2] mov r0, r10 strh r0, [r1, 0x4] ldr r2, [sp] strh r2, [r1, 0x6] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CB6FC: .4byte 0x0202f7c8 _080CB700: .4byte 0x0202f7c9 _080CB704: .4byte 0x03004b00 _080CB708: .4byte sub_80CB710 _080CB70C: .4byte 0x03000728 thumb_func_end sub_80CB620 thumb_func_start sub_80CB710 sub_80CB710: @ 80CB710 push {lr} adds r3, r0, 0 ldrh r1, [r3, 0x2E] adds r1, 0x1 strh r1, [r3, 0x2E] lsls r1, 16 asrs r1, 16 movs r2, 0x32 ldrsh r0, [r3, r2] subs r0, 0xA cmp r1, r0 ble _080CB750 movs r0, 0x2E ldrsh r1, [r3, r0] lsrs r0, r1, 31 adds r0, r1, r0 asrs r0, 1 lsls r0, 1 subs r1, r0 movs r2, 0x3E adds r2, r3 mov r12, r2 movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r2] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] _080CB750: movs r2, 0x2E ldrsh r1, [r3, r2] movs r2, 0x32 ldrsh r0, [r3, r2] cmp r1, r0 ble _080CB762 adds r0, r3, 0 bl move_anim_8072740 _080CB762: pop {r0} bx r0 thumb_func_end sub_80CB710 thumb_func_start sub_80CB768 sub_80CB768: @ 80CB768 push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x2E ldrsh r0, [r6, r1] cmp r0, 0 bne _080CB7A8 ldr r5, _080CB7E4 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r4, _080CB7E8 lsrs r0, 24 ldrh r2, [r4] adds r0, r2 strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 strh r0, [r6, 0x22] ldrh r0, [r4, 0x4] strh r0, [r6, 0x30] ldrh r0, [r4, 0x6] strh r0, [r6, 0x32] ldrh r0, [r4, 0x8] strh r0, [r6, 0x34] _080CB7A8: ldrh r0, [r6, 0x2E] adds r0, 0x1 strh r0, [r6, 0x2E] ldrh r1, [r6, 0x30] muls r0, r1 strh r0, [r6, 0x24] movs r2, 0x2E ldrsh r1, [r6, r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 movs r1, 0xFF ands r0, r1 movs r2, 0x32 ldrsh r1, [r6, r2] bl sine strh r0, [r6, 0x26] movs r0, 0x2E ldrsh r1, [r6, r0] movs r2, 0x34 ldrsh r0, [r6, r2] cmp r1, r0 ble _080CB7DE adds r0, r6, 0 bl move_anim_8072740 _080CB7DE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CB7E4: .4byte 0x0202f7c8 _080CB7E8: .4byte 0x03004b00 thumb_func_end sub_80CB768 thumb_func_start sub_80CB7EC sub_80CB7EC: @ 80CB7EC push {r4,r5,lr} movs r2, 0x20 ldrsh r4, [r0, r2] lsls r4, 8 movs r3, 0x22 ldrsh r2, [r0, r3] orrs r4, r2 movs r5, 0x3A ldrsh r2, [r0, r5] lsls r2, 8 movs r5, 0x3C ldrsh r3, [r0, r5] orrs r2, r3 lsls r1, 8 strh r4, [r0, 0x38] strh r2, [r0, 0x3A] strh r1, [r0, 0x3C] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80CB7EC thumb_func_start sub_80CB814 sub_80CB814: @ 80CB814 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r8, r0 ldrh r0, [r0, 0x38] lsrs r1, r0, 8 mov r10, r1 lsls r0, 24 lsrs r0, 24 mov r9, r0 mov r1, r8 ldrh r0, [r1, 0x3A] lsrs r2, r0, 8 lsls r0, 24 lsrs r4, r0, 24 ldrh r1, [r1, 0x3C] lsls r0, r1, 16 asrs r0, 24 lsls r0, 16 lsrs r6, r0, 16 movs r3, 0xFF ands r3, r1 cmp r2, 0 bne _080CB84E movs r2, 0x20 negs r2, r2 b _080CB856 _080CB84E: cmp r2, 0xFF bne _080CB856 movs r2, 0x88 lsls r2, 1 _080CB856: mov r0, r9 subs r4, r0 lsls r4, 16 lsrs r4, 16 mov r1, r10 subs r0, r2, r1 lsls r5, r3, 16 asrs r5, 16 muls r0, r5 lsls r1, r6, 16 asrs r7, r1, 16 adds r1, r7, 0 bl __divsi3 adds r6, r0, 0 lsls r4, 16 asrs r4, 16 adds r0, r4, 0 muls r0, r5 adds r1, r7, 0 bl __divsi3 add r6, r10 mov r1, r8 strh r6, [r1, 0x20] add r0, r9 strh r0, [r1, 0x22] adds r5, 0x1 lsls r5, 16 lsrs r3, r5, 16 asrs r5, 16 cmp r5, r7 beq _080CB8A8 lsls r1, r7, 8 lsls r0, r3, 16 asrs r0, 16 orrs r0, r1 mov r1, r8 strh r0, [r1, 0x3C] movs r0, 0 b _080CB8AA _080CB8A8: movs r0, 0x1 _080CB8AA: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80CB814 thumb_func_start sub_80CB8B8 sub_80CB8B8: @ 80CB8B8 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0xA bne _080CB8CC adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim _080CB8CC: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x32 ble _080CB8E0 adds r0, r4, 0 bl move_anim_8072740 _080CB8E0: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CB8B8 thumb_func_start sub_80CB8E8 sub_80CB8E8: @ 80CB8E8 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x34 ldrsh r0, [r4, r1] lsls r0, 7 movs r2, 0x36 ldrsh r1, [r4, r2] bl __divsi3 ldrh r1, [r4, 0x2E] adds r1, r0 movs r5, 0 strh r1, [r4, 0x2E] lsls r1, 16 asrs r1, 16 cmp r1, 0x7F ble _080CB912 ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] strh r5, [r4, 0x2E] _080CB912: ldrh r0, [r4, 0x2E] adds r0, 0x80 lsls r0, 16 asrs r0, 16 movs r1, 0x30 ldrsh r2, [r4, r1] lsls r2, 3 movs r1, 0x1E subs r1, r2 lsls r1, 16 asrs r1, 16 bl sine strh r0, [r4, 0x26] adds r0, r4, 0 bl sub_80CB814 lsls r0, 24 cmp r0, 0 beq _080CB942 strh r5, [r4, 0x26] strh r5, [r4, 0x2E] ldr r0, _080CB948 str r0, [r4, 0x1C] _080CB942: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CB948: .4byte sub_80CB8B8 thumb_func_end sub_80CB8E8 thumb_func_start sub_80CB94C sub_80CB94C: @ 80CB94C push {r4-r6,lr} adds r5, r0, 0 movs r1, 0 bl sub_80787B0 ldr r4, _080CB994 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080CB998 ldrb r1, [r0] movs r0, 0x2 eors r0, r1 ldrb r4, [r4] cmp r0, r4 bne _080CB99C strh r6, [r5, 0x3A] adds r0, r2, 0 adds r0, 0xA strh r0, [r5, 0x3C] adds r0, r5, 0 movs r1, 0x3C bl sub_80CB7EC movs r0, 0x1 b _080CB9AE .align 2, 0 _080CB994: .4byte 0x0202f7c9 _080CB998: .4byte 0x0202f7c8 _080CB99C: strh r6, [r5, 0x3A] adds r0, r2, 0 adds r0, 0xA strh r0, [r5, 0x3C] adds r0, r5, 0 movs r1, 0x3C bl sub_80CB7EC movs r0, 0x3 _080CB9AE: strh r0, [r5, 0x34] movs r0, 0x3C strh r0, [r5, 0x36] ldr r0, _080CB9C0 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CB9C0: .4byte sub_80CB8E8 thumb_func_end sub_80CB94C thumb_func_start sub_80CB9C4 sub_80CB9C4: @ 80CB9C4 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x34 ldrsh r0, [r4, r1] lsls r0, 7 movs r2, 0x36 ldrsh r1, [r4, r2] bl __divsi3 ldrh r1, [r4, 0x2E] adds r1, r0 movs r5, 0 strh r1, [r4, 0x2E] lsls r1, 16 asrs r1, 16 cmp r1, 0x7F ble _080CB9EE ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] strh r5, [r4, 0x2E] _080CB9EE: ldrh r0, [r4, 0x2E] adds r0, 0x80 lsls r0, 16 asrs r0, 16 movs r1, 0x30 ldrsh r2, [r4, r1] lsls r2, 3 movs r1, 0x1E subs r1, r2 lsls r1, 16 asrs r1, 16 bl sine strh r0, [r4, 0x26] adds r0, r4, 0 bl sub_80CB814 lsls r0, 24 cmp r0, 0 beq _080CBA20 strh r5, [r4, 0x26] strh r5, [r4, 0x2E] adds r0, r4, 0 bl move_anim_8072740 _080CBA20: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80CB9C4 thumb_func_start sub_80CBA28 sub_80CBA28: @ 80CBA28 push {r4-r6,lr} adds r5, r0, 0 ldr r4, _080CBA64 ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080CBA6C strh r0, [r5, 0x3A] adds r0, r6, 0 adds r0, 0xA strh r0, [r5, 0x3C] adds r0, r5, 0 movs r1, 0x28 bl sub_80CB7EC movs r0, 0x3 strh r0, [r5, 0x34] movs r0, 0x3C strh r0, [r5, 0x36] ldr r0, _080CBA68 b _080CBA96 .align 2, 0 _080CBA64: .4byte 0x0202f7c9 _080CBA68: .4byte sub_80CB8E8 _080CBA6C: movs r0, 0xFF strh r0, [r5, 0x3A] adds r0, r6, 0 adds r0, 0xA strh r0, [r5, 0x3C] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080CBA84 movs r0, 0 strh r0, [r5, 0x3A] _080CBA84: adds r0, r5, 0 movs r1, 0x28 bl sub_80CB7EC movs r0, 0x3 strh r0, [r5, 0x34] movs r0, 0x3C strh r0, [r5, 0x36] ldr r0, _080CBAA0 _080CBA96: str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CBAA0: .4byte sub_80CB9C4 thumb_func_end sub_80CBA28 thumb_func_start sub_80CBAA4 sub_80CBAA4: @ 80CBAA4 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080CBABE adds r0, r4, 0 movs r1, 0 bl sub_8078764 ldr r0, _080CBAE4 ldrh r0, [r0, 0x4] strh r0, [r4, 0x30] _080CBABE: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] ldrh r1, [r4, 0x30] muls r0, r1 strh r0, [r4, 0x26] adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080CBADE adds r0, r4, 0 bl move_anim_8072740 _080CBADE: pop {r4} pop {r0} bx r0 .align 2, 0 _080CBAE4: .4byte 0x03004b00 thumb_func_end sub_80CBAA4 thumb_func_start sub_80CBAE8 sub_80CBAE8: @ 80CBAE8 push {r4-r6,lr} adds r5, r0, 0 movs r1, 0 bl sub_8078764 ldr r4, _080CBB30 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080CBB34 ldrb r1, [r0] movs r0, 0x2 eors r0, r1 ldrb r4, [r4] cmp r0, r4 bne _080CBB38 strh r6, [r5, 0x3A] adds r0, r2, 0 adds r0, 0xA strh r0, [r5, 0x3C] adds r0, r5, 0 movs r1, 0x3C bl sub_80CB7EC movs r0, 0x1 b _080CBB4A .align 2, 0 _080CBB30: .4byte 0x0202f7c8 _080CBB34: .4byte 0x0202f7c9 _080CBB38: strh r6, [r5, 0x3A] adds r0, r2, 0 adds r0, 0xA strh r0, [r5, 0x3C] adds r0, r5, 0 movs r1, 0x3C bl sub_80CB7EC movs r0, 0x3 _080CBB4A: strh r0, [r5, 0x34] movs r0, 0x3C strh r0, [r5, 0x36] ldr r0, _080CBB5C str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CBB5C: .4byte sub_80CBB60 thumb_func_end sub_80CBAE8 thumb_func_start sub_80CBB60 sub_80CBB60: @ 80CBB60 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x34 ldrsh r0, [r4, r1] lsls r0, 7 movs r2, 0x36 ldrsh r1, [r4, r2] bl __divsi3 ldrh r1, [r4, 0x2E] adds r1, r0 movs r5, 0 strh r1, [r4, 0x2E] lsls r1, 16 asrs r1, 16 cmp r1, 0x7F ble _080CBB8A ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] strh r5, [r4, 0x2E] _080CBB8A: ldrh r0, [r4, 0x2E] adds r0, 0x80 lsls r0, 16 asrs r0, 16 movs r1, 0x30 ldrsh r2, [r4, r1] lsls r2, 3 movs r1, 0x1E subs r1, r2 lsls r1, 16 asrs r1, 16 bl sine strh r0, [r4, 0x26] lsls r0, 16 cmp r0, 0 bne _080CBBBE movs r0, 0x3F bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x7D bl audio_play_and_stuff _080CBBBE: adds r0, r4, 0 bl sub_80CB814 lsls r0, 24 cmp r0, 0 beq _080CBBE6 strh r5, [r4, 0x26] strh r5, [r4, 0x2E] ldr r0, _080CBBEC str r0, [r4, 0x1C] movs r0, 0x40 negs r0, r0 bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x7D bl audio_play_and_stuff _080CBBE6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CBBEC: .4byte sub_80CB8B8 thumb_func_end sub_80CBB60 thumb_func_start sub_80CBBF0 sub_80CBBF0: @ 80CBBF0 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080CBC84 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080CBC18 ldr r0, _080CBC14 ldrh r1, [r0, 0x2] strh r1, [r4, 0x30] movs r1, 0x78 strh r1, [r4, 0x20] adds r5, r0, 0 b _080CBC3A .align 2, 0 _080CBC14: .4byte 0x03004b00 _080CBC18: ldr r0, _080CBC74 movs r1, 0x2 ldrsh r3, [r0, r1] adds r1, r3, 0 subs r1, 0x20 adds r2, r1, 0 adds r5, r0, 0 cmp r1, 0 bge _080CBC2E adds r2, r3, 0 adds r2, 0xDF _080CBC2E: asrs r0, r2, 8 lsls r0, 8 subs r0, r1, r0 strh r0, [r4, 0x30] movs r0, 0x46 strh r0, [r4, 0x20] _080CBC3A: ldrh r0, [r5] strh r0, [r4, 0x22] strh r0, [r4, 0x32] movs r0, 0x14 strh r0, [r4, 0x36] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x3C bl cosine strh r0, [r4, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x14 bl sine strh r0, [r4, 0x26] ldr r0, _080CBC78 str r0, [r4, 0x1C] ldrh r0, [r4, 0x30] subs r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0xBE bhi _080CBC7C adds r1, r4, 0 adds r1, 0x43 movs r0, 0x1F b _080CBC82 .align 2, 0 _080CBC74: .4byte 0x03004b00 _080CBC78: .4byte sub_80CBC8C _080CBC7C: adds r1, r4, 0 adds r1, 0x43 movs r0, 0x1D _080CBC82: strb r0, [r1] _080CBC84: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80CBBF0 thumb_func_start sub_80CBC8C sub_80CBC8C: @ 80CBC8C push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 beq _080CBC9E cmp r0, 0x1 beq _080CBCCE b _080CBCEE _080CBC9E: ldrh r5, [r4, 0x32] movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0x4E ble _080CBCB6 movs r0, 0x1 strh r0, [r4, 0x34] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim b _080CBCEE _080CBCB6: movs r1, 0x36 ldrsh r0, [r4, r1] movs r1, 0xA bl __divsi3 adds r0, r5, r0 strh r0, [r4, 0x32] ldrh r1, [r4, 0x36] adds r1, 0x3 strh r1, [r4, 0x36] strh r0, [r4, 0x22] b _080CBCEE _080CBCCE: movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 beq _080CBCEE adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080CBCEE movs r0, 0 strh r0, [r4, 0x2E] strh r0, [r4, 0x32] ldr r0, _080CBCF4 str r0, [r4, 0x1C] _080CBCEE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CBCF4: .4byte sub_80CBCF8 thumb_func_end sub_80CBC8C thumb_func_start sub_80CBCF8 sub_80CBCF8: @ 80CBCF8 push {r4-r6,lr} adds r4, r0, 0 ldr r5, _080CBD3C movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 1 adds r3, r0, r1 adds r0, r5, 0x1 adds r0, r3, r0 ldrh r2, [r4, 0x32] movs r6, 0x32 ldrsh r1, [r4, r6] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 bne _080CBD44 adds r0, r5, 0x2 adds r0, r3, r0 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x7F bne _080CBD30 movs r0, 0 strh r0, [r4, 0x2E] ldr r0, _080CBD40 str r0, [r4, 0x1C] _080CBD30: movs r0, 0 strh r0, [r4, 0x32] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080CBDAA .align 2, 0 _080CBD3C: .4byte gUnknown_083D680C _080CBD40: .4byte sub_80CBDB0 _080CBD44: adds r0, r2, 0x1 strh r0, [r4, 0x32] movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 1 adds r0, r1 adds r1, r0, r5 movs r2, 0 ldrsb r2, [r1, r2] adds r1, r5, 0x2 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 muls r0, r2 ldrh r1, [r4, 0x30] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080CBD92 ldrh r0, [r4, 0x30] subs r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0xBE bhi _080CBD8A adds r1, r4, 0 adds r1, 0x43 movs r0, 0x1F b _080CBD90 _080CBD8A: adds r1, r4, 0 adds r1, 0x43 movs r0, 0x1D _080CBD90: strb r0, [r1] _080CBD92: movs r6, 0x30 ldrsh r0, [r4, r6] movs r1, 0x3C bl cosine strh r0, [r4, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x14 bl sine strh r0, [r4, 0x26] _080CBDAA: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80CBCF8 thumb_func_start sub_80CBDB0 sub_80CBDB0: @ 80CBDB0 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x14 ble _080CBDC2 adds r0, r4, 0 bl move_anim_8072740 _080CBDC2: movs r0, 0x2E ldrsh r1, [r4, r0] lsrs r0, r1, 31 adds r0, r1, r0 asrs r0, 1 lsls r0, 1 subs r1, r0 adds r3, r4, 0 adds r3, 0x3E movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] pop {r4} pop {r0} bx r0 thumb_func_end sub_80CBDB0 thumb_func_start sub_80CBDF4 sub_80CBDF4: @ 80CBDF4 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _080CBF48 adds r5, r0, r1 ldr r4, _080CBF4C ldrb r0, [r4] bl sub_8079E90 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 strh r0, [r5, 0x10] ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x14] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x16] ldrb r0, [r4] movs r1, 0x1 bl sub_807A100 strh r0, [r5, 0x1C] ldrb r0, [r4] movs r1, 0 bl sub_807A100 strh r0, [r5, 0x1E] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 movs r2, 0x1 negs r2, r2 adds r1, r2, 0 cmp r0, 0x1 bne _080CBE5C movs r1, 0x1 _080CBE5C: strh r1, [r5, 0x12] movs r3, 0x12 ldrsh r0, [r5, r3] lsls r0, 6 movs r1, 0x38 subs r1, r0 strh r1, [r5, 0x1A] ldrh r0, [r5, 0x16] subs r0, r1 ldrh r1, [r5, 0x14] adds r0, r1 strh r0, [r5, 0x18] ldr r0, _080CBF50 movs r2, 0x18 ldrsh r1, [r5, r2] movs r3, 0x1A ldrsh r2, [r5, r3] ldrb r3, [r5, 0x10] bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xC] cmp r0, 0x40 bne _080CBE94 adds r0, r6, 0 bl move_anim_task_del _080CBE94: ldr r4, _080CBF54 movs r0, 0xC ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xA strh r1, [r0, 0x2E] movs r2, 0xC ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r5, 0x18] strh r1, [r0, 0x30] movs r3, 0xC ldrsh r0, [r5, r3] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r4 movs r1, 0x1C ldrsh r0, [r5, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r0, 0xA movs r3, 0x12 ldrsh r1, [r5, r3] muls r1, r0 ldrh r0, [r5, 0x14] subs r0, r1 strh r0, [r2, 0x32] movs r0, 0xC ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r5, 0x1A] strh r1, [r0, 0x34] movs r1, 0xC ldrsh r0, [r5, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 movs r2, 0x1E ldrsh r0, [r5, r2] lsrs r2, r0, 31 adds r0, r2 asrs r0, 1 adds r0, 0xA movs r3, 0x12 ldrsh r2, [r5, r3] muls r0, r2 ldrh r2, [r5, 0x16] adds r0, r2 strh r0, [r1, 0x36] movs r3, 0xC ldrsh r1, [r5, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl sub_80CC338 movs r1, 0xC ldrsh r2, [r5, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 strh r0, [r1, 0x38] movs r2, 0xC ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl sub_80786EC ldr r0, _080CBF58 str r0, [r5] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CBF48: .4byte 0x03004b20 _080CBF4C: .4byte 0x0202f7c9 _080CBF50: .4byte gSpriteTemplate_83D6884 _080CBF54: .4byte 0x02020004 _080CBF58: .4byte sub_80CBF5C thumb_func_end sub_80CBDF4 thumb_func_start sub_80CBF5C sub_80CBF5C: @ 80CBF5C push {r4-r6,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080CBFA0 adds r6, r0, r1 movs r0, 0xC ldrsh r1, [r6, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080CBFA4 adds r4, r0, r1 movs r1, 0x8 ldrsh r5, [r6, r1] cmp r5, 0x7 bne _080CBF84 b _080CC1B4 _080CBF84: cmp r5, 0x7 bgt _080CBFD2 cmp r5, 0x3 bne _080CBF8E b _080CC0A6 _080CBF8E: cmp r5, 0x3 bgt _080CBFA8 cmp r5, 0x1 beq _080CC038 cmp r5, 0x1 bgt _080CC088 cmp r5, 0 beq _080CC01A b _080CC330 .align 2, 0 _080CBFA0: .4byte 0x03004b20 _080CBFA4: .4byte 0x02020004 _080CBFA8: cmp r5, 0x5 bne _080CBFAE b _080CC11C _080CBFAE: cmp r5, 0x5 ble _080CBFB4 b _080CC196 _080CBFB4: adds r0, r6, 0 adds r1, r2, 0 bl sub_80CC358 adds r0, r4, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 bne _080CBFCA b _080CC330 _080CBFCA: movs r0, 0x5 strh r0, [r6, 0x26] movs r0, 0xFF b _080CC32E _080CBFD2: cmp r5, 0xB bne _080CBFD8 b _080CC298 _080CBFD8: cmp r5, 0xB bgt _080CC006 cmp r5, 0x9 bne _080CBFE2 b _080CC206 _080CBFE2: cmp r5, 0x9 ble _080CBFE8 b _080CC27C _080CBFE8: adds r0, r6, 0 adds r1, r2, 0 bl sub_80CC358 adds r0, r4, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 bne _080CBFFE b _080CC330 _080CBFFE: movs r0, 0x9 strh r0, [r6, 0x26] movs r0, 0xFF b _080CC32E _080CC006: cmp r5, 0xD bne _080CC00C b _080CC30A _080CC00C: cmp r5, 0xD bge _080CC012 b _080CC2EA _080CC012: cmp r5, 0xFF bne _080CC018 b _080CC31A _080CC018: b _080CC330 _080CC01A: adds r0, r6, 0 adds r1, r2, 0 bl sub_80CC358 adds r0, r4, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 bne _080CC030 b _080CC330 _080CC030: movs r0, 0x1 strh r0, [r6, 0x26] movs r0, 0xFF b _080CC32E _080CC038: ldrh r2, [r4, 0x24] ldrh r3, [r4, 0x20] adds r2, r3 movs r0, 0 strh r2, [r4, 0x20] ldrh r1, [r4, 0x26] ldrh r3, [r4, 0x22] adds r1, r3 strh r1, [r4, 0x22] strh r0, [r4, 0x24] strh r0, [r4, 0x26] movs r0, 0xA strh r0, [r4, 0x2E] strh r2, [r4, 0x30] ldrh r0, [r6, 0x14] strh r0, [r4, 0x32] strh r1, [r4, 0x34] ldrh r0, [r6, 0x16] strh r0, [r4, 0x36] adds r0, r4, 0 bl sub_80CC338 strh r0, [r4, 0x38] ldrh r0, [r6, 0x10] adds r0, 0x2 strh r0, [r6, 0x10] strh r5, [r6, 0xE] adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] ldrb r1, [r6, 0xE] adds r0, r4, 0 bl StartSpriteAnim adds r0, r4, 0 bl sub_80786EC ldrh r0, [r6, 0x8] adds r0, 0x1 b _080CC32E _080CC088: adds r0, r6, 0 adds r1, r2, 0 bl sub_80CC358 adds r0, r4, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 bne _080CC09E b _080CC330 _080CC09E: movs r0, 0x3 strh r0, [r6, 0x26] movs r0, 0xFF b _080CC32E _080CC0A6: ldrh r1, [r4, 0x24] ldrh r0, [r4, 0x20] adds r1, r0 movs r0, 0 strh r1, [r4, 0x20] ldrh r2, [r4, 0x26] ldrh r3, [r4, 0x22] adds r2, r3 strh r2, [r4, 0x22] strh r0, [r4, 0x24] strh r0, [r4, 0x26] movs r0, 0xA strh r0, [r4, 0x2E] strh r1, [r4, 0x30] movs r1, 0x1C ldrsh r0, [r6, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r0, 0xA movs r3, 0x12 ldrsh r1, [r6, r3] muls r1, r0 ldrh r0, [r6, 0x14] subs r0, r1 strh r0, [r4, 0x32] strh r2, [r4, 0x34] movs r1, 0x1E ldrsh r0, [r6, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r0, 0xA movs r2, 0x12 ldrsh r1, [r6, r2] muls r1, r0 ldrh r0, [r6, 0x16] subs r0, r1 strh r0, [r4, 0x36] adds r0, r4, 0 bl sub_80CC338 strh r0, [r4, 0x38] movs r0, 0x2 strh r0, [r6, 0xE] ldrh r0, [r6, 0x10] adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] ldrb r1, [r6, 0xE] adds r0, r4, 0 bl StartSpriteAnim adds r0, r4, 0 bl sub_80786EC ldrh r0, [r6, 0x8] adds r0, 0x1 b _080CC32E _080CC11C: ldrh r1, [r4, 0x24] ldrh r3, [r4, 0x20] adds r1, r3 movs r0, 0 strh r1, [r4, 0x20] ldrh r2, [r4, 0x26] ldrh r3, [r4, 0x22] adds r2, r3 strh r2, [r4, 0x22] strh r0, [r4, 0x24] strh r0, [r4, 0x26] movs r0, 0xA strh r0, [r4, 0x2E] strh r1, [r4, 0x30] movs r1, 0x1C ldrsh r0, [r6, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r0, 0xA movs r3, 0x12 ldrsh r1, [r6, r3] muls r0, r1 ldrh r1, [r6, 0x14] adds r0, r1 strh r0, [r4, 0x32] strh r2, [r4, 0x34] movs r2, 0x1E ldrsh r0, [r6, r2] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r0, 0xA movs r3, 0x12 ldrsh r1, [r6, r3] muls r0, r1 ldrh r1, [r6, 0x16] adds r0, r1 strh r0, [r4, 0x36] adds r0, r4, 0 bl sub_80CC338 strh r0, [r4, 0x38] ldrh r1, [r6, 0x10] subs r1, 0x2 strh r1, [r6, 0x10] movs r0, 0x3 strh r0, [r6, 0xE] adds r0, r4, 0 adds r0, 0x43 strb r1, [r0] ldrb r1, [r6, 0xE] adds r0, r4, 0 bl StartSpriteAnim adds r0, r4, 0 bl sub_80786EC ldrh r0, [r6, 0x8] adds r0, 0x1 b _080CC32E _080CC196: adds r0, r6, 0 adds r1, r2, 0 bl sub_80CC358 adds r0, r4, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 bne _080CC1AC b _080CC330 _080CC1AC: movs r0, 0x7 strh r0, [r6, 0x26] movs r0, 0xFF b _080CC32E _080CC1B4: ldrh r2, [r4, 0x24] ldrh r3, [r4, 0x20] adds r2, r3 movs r0, 0 strh r2, [r4, 0x20] ldrh r1, [r4, 0x26] ldrh r3, [r4, 0x22] adds r1, r3 strh r1, [r4, 0x22] strh r0, [r4, 0x24] strh r0, [r4, 0x26] movs r0, 0xA strh r0, [r4, 0x2E] strh r2, [r4, 0x30] ldrh r0, [r6, 0x14] strh r0, [r4, 0x32] strh r1, [r4, 0x34] ldrh r0, [r6, 0x16] strh r0, [r4, 0x36] adds r0, r4, 0 bl sub_80CC338 strh r0, [r4, 0x38] ldrh r1, [r6, 0x10] adds r1, 0x2 strh r1, [r6, 0x10] movs r0, 0x4 strh r0, [r6, 0xE] adds r0, r4, 0 adds r0, 0x43 strb r1, [r0] ldrb r1, [r6, 0xE] adds r0, r4, 0 bl StartSpriteAnim adds r0, r4, 0 bl sub_80786EC ldrh r0, [r6, 0x8] adds r0, 0x1 b _080CC32E _080CC206: ldrh r1, [r4, 0x24] ldrh r0, [r4, 0x20] adds r1, r0 movs r0, 0 strh r1, [r4, 0x20] ldrh r2, [r4, 0x26] ldrh r3, [r4, 0x22] adds r2, r3 strh r2, [r4, 0x22] strh r0, [r4, 0x24] strh r0, [r4, 0x26] movs r0, 0xA strh r0, [r4, 0x2E] strh r1, [r4, 0x30] movs r1, 0x1C ldrsh r0, [r6, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r0, 0xA movs r3, 0x12 ldrsh r1, [r6, r3] muls r1, r0 ldrh r0, [r6, 0x14] subs r0, r1 strh r0, [r4, 0x32] strh r2, [r4, 0x34] movs r1, 0x1E ldrsh r0, [r6, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r0, 0xA movs r2, 0x12 ldrsh r1, [r6, r2] muls r0, r1 ldrh r3, [r6, 0x16] adds r0, r3 strh r0, [r4, 0x36] adds r0, r4, 0 bl sub_80CC338 strh r0, [r4, 0x38] movs r0, 0x5 strh r0, [r6, 0xE] ldrh r0, [r6, 0x10] adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] ldrb r1, [r6, 0xE] adds r0, r4, 0 bl StartSpriteAnim adds r0, r4, 0 bl sub_80786EC ldrh r0, [r6, 0x8] adds r0, 0x1 b _080CC32E _080CC27C: adds r0, r6, 0 adds r1, r2, 0 bl sub_80CC358 adds r0, r4, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080CC330 movs r0, 0xB strh r0, [r6, 0x26] movs r0, 0xFF b _080CC32E _080CC298: ldrh r2, [r4, 0x24] ldrh r0, [r4, 0x20] adds r2, r0 movs r0, 0 strh r2, [r4, 0x20] ldrh r1, [r4, 0x26] ldrh r3, [r4, 0x22] adds r1, r3 strh r1, [r4, 0x22] strh r0, [r4, 0x24] strh r0, [r4, 0x26] movs r0, 0xA strh r0, [r4, 0x2E] strh r2, [r4, 0x30] ldrh r0, [r6, 0x18] strh r0, [r4, 0x32] strh r1, [r4, 0x34] ldrh r0, [r6, 0x1A] strh r0, [r4, 0x36] adds r0, r4, 0 bl sub_80CC338 strh r0, [r4, 0x38] ldrh r1, [r6, 0x10] subs r1, 0x2 strh r1, [r6, 0x10] movs r0, 0x6 strh r0, [r6, 0xE] adds r0, r4, 0 adds r0, 0x43 strb r1, [r0] ldrb r1, [r6, 0xE] adds r0, r4, 0 bl StartSpriteAnim adds r0, r4, 0 bl sub_80786EC ldrh r0, [r6, 0x8] adds r0, 0x1 b _080CC32E _080CC2EA: adds r0, r6, 0 adds r1, r2, 0 bl sub_80CC358 adds r0, r4, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080CC330 adds r0, r4, 0 bl DestroySprite ldrh r0, [r6, 0x8] adds r0, 0x1 b _080CC32E _080CC30A: movs r1, 0x20 ldrsh r0, [r6, r1] cmp r0, 0 bne _080CC330 adds r0, r2, 0 bl move_anim_task_del b _080CC330 _080CC31A: ldrh r0, [r6, 0xA] adds r0, 0x1 strh r0, [r6, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _080CC330 movs r0, 0 strh r0, [r6, 0xA] ldrh r0, [r6, 0x26] _080CC32E: strh r0, [r6, 0x8] _080CC330: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80CBF5C thumb_func_start sub_80CC338 sub_80CC338: @ 80CC338 push {lr} movs r2, 0x8 movs r3, 0x36 ldrsh r1, [r0, r3] movs r3, 0x22 ldrsh r0, [r0, r3] cmp r1, r0 bge _080CC34E negs r0, r2 lsls r0, 16 lsrs r2, r0, 16 _080CC34E: lsls r0, r2, 16 asrs r0, 16 pop {r1} bx r1 thumb_func_end sub_80CC338 thumb_func_start sub_80CC358 sub_80CC358: @ 80CC358 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 lsls r1, 24 lsrs r7, r1, 24 ldrh r0, [r6, 0x24] adds r0, 0x1 strh r0, [r6, 0x24] lsls r0, 16 cmp r0, 0 ble _080CC3EE movs r0, 0 strh r0, [r6, 0x24] ldr r0, _080CC3F8 mov r8, r0 movs r2, 0xC ldrsh r1, [r6, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 ldrh r1, [r0, 0x24] ldrh r2, [r0, 0x20] adds r1, r2 ldrh r2, [r0, 0x26] ldrh r0, [r0, 0x22] adds r2, r0 ldr r0, _080CC3FC lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 ldrb r3, [r6, 0x10] bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _080CC3EE lsls r5, r0, 4 adds r5, r0 lsls r5, 2 mov r0, r8 adds r4, r5, r0 strh r7, [r4, 0x3A] movs r0, 0xC strh r0, [r4, 0x3C] ldr r0, _080CC400 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] ldrh r2, [r6, 0x22] movs r0, 0x1 ands r0, r2 strh r0, [r4, 0x2E] ldrh r0, [r1, 0x22] adds r0, 0x1 strh r0, [r1, 0x22] ldrb r1, [r6, 0xE] adds r0, r4, 0 bl StartSpriteAnim ldrh r0, [r6, 0x10] adds r4, 0x43 strb r0, [r4] mov r0, r8 adds r0, 0x1C adds r5, r0 ldr r0, _080CC404 str r0, [r5] _080CC3EE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CC3F8: .4byte 0x02020004 _080CC3FC: .4byte gSpriteTemplate_83D6884 _080CC400: .4byte 0x03004b20 _080CC404: .4byte sub_80CC408 thumb_func_end sub_80CC358 thumb_func_start sub_80CC408 sub_80CC408: @ 80CC408 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080CC46A movs r0, 0 strh r0, [r4, 0x2E] adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080CC46A ldr r3, _080CC470 movs r0, 0x3C ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl DestroySprite _080CC46A: pop {r4} pop {r0} bx r0 .align 2, 0 _080CC470: .4byte 0x03004b20 thumb_func_end sub_80CC408 thumb_func_start sub_80CC474 sub_80CC474: @ 80CC474 push {r4-r7,lr} adds r4, r0, 0 ldr r0, _080CC488 movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0 bne _080CC490 ldr r0, _080CC48C b _080CC492 .align 2, 0 _080CC488: .4byte 0x03004b00 _080CC48C: .4byte 0x0202f7c8 _080CC490: ldr r0, _080CC4B0 _080CC492: ldrb r6, [r0] adds r0, r6, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CC4BC movs r0, 0 strh r0, [r4, 0x36] ldr r1, _080CC4B4 ldrh r0, [r1, 0x6] strh r0, [r4, 0x32] ldr r0, _080CC4B8 b _080CC4CC .align 2, 0 _080CC4B0: .4byte 0x0202f7c9 _080CC4B4: .4byte 0x03004b00 _080CC4B8: .4byte 0x0000fff0 _080CC4BC: movs r0, 0x1 strh r0, [r4, 0x36] ldr r1, _080CC4F0 ldrh r0, [r1, 0x6] negs r0, r0 strh r0, [r4, 0x32] movs r0, 0x80 lsls r0, 1 _080CC4CC: strh r0, [r4, 0x20] adds r7, r1, 0 adds r5, r7, 0 ldrh r0, [r5, 0x2] strh r0, [r4, 0x30] ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r5, 0x8] strh r0, [r4, 0x34] movs r1, 0xA ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080CC502 cmp r0, 0x1 bgt _080CC4F4 cmp r0, 0 beq _080CC4FE b _080CC56C .align 2, 0 _080CC4F0: .4byte 0x03004b00 _080CC4F4: cmp r0, 0x2 beq _080CC508 cmp r0, 0x3 beq _080CC534 b _080CC56C _080CC4FE: ldrh r0, [r5] b _080CC518 _080CC502: ldrh r0, [r5] strh r0, [r4, 0x22] b _080CC54E _080CC508: adds r0, r6, 0 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r5, [r5] adds r0, r5 _080CC518: strh r0, [r4, 0x22] adds r0, r6, 0 bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] b _080CC56C _080CC534: ldr r0, _080CC578 ldrb r0, [r0] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r7, [r7] adds r0, r7 strh r0, [r4, 0x22] movs r0, 0x1 bl obj_id_for_side_relative_to_move _080CC54E: adds r0, r6, 0 bl sub_8079ED4 lsls r0, 24 lsrs r0, 24 adds r0, 0x1 movs r1, 0x3 ands r0, r1 lsls r0, 2 ldrb r2, [r4, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x5] _080CC56C: ldr r0, _080CC57C str r0, [r4, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CC578: .4byte 0x0202f7c9 _080CC57C: .4byte sub_80CC580 thumb_func_end sub_80CC474 thumb_func_start sub_80CC580 sub_80CC580: @ 80CC580 push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x3C ldrsh r3, [r4, r0] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] movs r1, 0x30 ldrsh r2, [r4, r1] ldr r1, _080CC5D4 movs r5, 0x2E ldrsh r0, [r4, r5] lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] muls r0, r2 asrs r0, 8 strh r0, [r4, 0x26] movs r2, 0x32 ldrsh r0, [r4, r2] muls r0, r3 strh r0, [r4, 0x24] movs r5, 0x34 ldrsh r0, [r4, r5] muls r0, r3 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] movs r1, 0x36 ldrsh r0, [r4, r1] cmp r0, 0 bne _080CC5D8 movs r2, 0x24 ldrsh r0, [r4, r2] movs r5, 0x20 ldrsh r1, [r4, r5] adds r0, r1 cmp r0, 0xF7 ble _080CC5F0 b _080CC5EA .align 2, 0 _080CC5D4: .4byte gSineTable _080CC5D8: movs r1, 0x24 ldrsh r0, [r4, r1] movs r2, 0x20 ldrsh r1, [r4, r2] adds r0, r1 movs r1, 0x10 negs r1, r1 cmp r0, r1 bgt _080CC5F0 _080CC5EA: adds r0, r4, 0 bl move_anim_8074EE0 _080CC5F0: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80CC580 thumb_func_start sub_80CC5F8 sub_80CC5F8: @ 80CC5F8 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _080CC618 adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0 beq _080CC61C cmp r0, 0x1 beq _080CC650 b _080CC6AA .align 2, 0 _080CC618: .4byte 0x03004b20 _080CC61C: ldr r0, _080CC648 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r2, 0x80 lsls r2, 1 adds r4, r2, 0 adds r0, r4 strh r0, [r5, 0x18] ldr r0, _080CC64C bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 adds r0, r4 strh r0, [r5, 0x20] ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _080CC6AA .align 2, 0 _080CC648: .4byte 0x0000274f _080CC64C: .4byte 0x000027b0 _080CC650: ldrh r0, [r5, 0x1A] adds r0, 0x1 movs r7, 0 strh r0, [r5, 0x1A] lsls r0, 16 cmp r0, 0 blt _080CC6AA strh r7, [r5, 0x1A] ldrh r0, [r5, 0x18] ldrb r2, [r5, 0x1C] ldr r4, _080CC6C4 movs r3, 0x1E ldrsh r1, [r5, r3] lsls r1, 1 adds r1, r4 ldrh r3, [r1] movs r1, 0x10 bl BlendPalette ldrh r0, [r5, 0x20] ldrb r2, [r5, 0x1C] movs r3, 0x1E ldrsh r1, [r5, r3] lsls r1, 1 adds r1, r4 ldrh r3, [r1] movs r1, 0x10 bl BlendPalette ldrh r0, [r5, 0x1C] adds r0, 0x1 strh r0, [r5, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x11 bne _080CC6AA strh r7, [r5, 0x1C] ldrh r0, [r5, 0x1E] adds r0, 0x1 strh r0, [r5, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 bne _080CC6AA strh r7, [r5, 0x1E] _080CC6AA: ldr r0, _080CC6C8 movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080CC6BE adds r0, r6, 0 bl move_anim_task_del _080CC6BE: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CC6C4: .4byte gUnknown_083D6984 _080CC6C8: .4byte 0x03004b00 thumb_func_end sub_80CC5F8 thumb_func_start sub_80CC6CC sub_80CC6CC: @ 80CC6CC push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 ldr r1, _080CC6E4 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _080CC6E8 adds r0, r6, 0 bl move_anim_8072740 b _080CC7C2 .align 2, 0 _080CC6E4: .4byte 0x03004b00 _080CC6E8: movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 bne _080CC6F8 ldr r4, _080CC6F4 b _080CC6FA .align 2, 0 _080CC6F4: .4byte 0x0202f7c8 _080CC6F8: ldr r4, _080CC734 _080CC6FA: ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080CC738 ldrh r1, [r0, 0x8] strh r1, [r6, 0x2E] movs r3, 0x2 ldrsh r1, [r0, r3] adds r7, r0, 0 cmp r1, 0 bne _080CC73C ldrh r0, [r7, 0x4] adds r0, r5 strh r0, [r6, 0x20] ldrh r0, [r7, 0x6] adds r0, r2 strh r0, [r6, 0x22] strh r5, [r6, 0x38] strh r2, [r6, 0x3A] b _080CC74C .align 2, 0 _080CC734: .4byte 0x0202f7c9 _080CC738: .4byte 0x03004b00 _080CC73C: strh r5, [r6, 0x20] strh r2, [r6, 0x22] ldrh r0, [r7, 0x4] adds r0, r5 strh r0, [r6, 0x38] ldrh r0, [r7, 0x6] adds r0, r2 strh r0, [r6, 0x3A] _080CC74C: ldrh r4, [r6, 0x20] lsls r0, r4, 4 strh r0, [r6, 0x30] ldrh r5, [r6, 0x22] lsls r0, r5, 4 strh r0, [r6, 0x32] movs r1, 0x38 ldrsh r0, [r6, r1] movs r2, 0x20 ldrsh r1, [r6, r2] subs r0, r1 lsls r0, 4 movs r3, 0x8 ldrsh r1, [r7, r3] bl __divsi3 strh r0, [r6, 0x34] movs r1, 0x3A ldrsh r0, [r6, r1] movs r2, 0x22 ldrsh r1, [r6, r2] subs r0, r1 lsls r0, 4 movs r3, 0x8 ldrsh r1, [r7, r3] bl __divsi3 strh r0, [r6, 0x36] ldrh r0, [r6, 0x38] subs r0, r4 lsls r0, 16 asrs r0, 16 ldrh r1, [r6, 0x3A] subs r1, r5 lsls r1, 16 asrs r1, 16 bl sub_80790F0 lsls r0, 16 lsrs r4, r0, 16 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080CC7AE ldr r1, _080CC7CC adds r0, r4, r1 lsls r0, 16 lsrs r4, r0, 16 _080CC7AE: movs r3, 0x80 lsls r3, 1 str r4, [sp] adds r0, r6, 0 movs r1, 0 adds r2, r3, 0 bl sub_8078FDC ldr r0, _080CC7D0 str r0, [r6, 0x1C] _080CC7C2: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CC7CC: .4byte 0xffff8000 _080CC7D0: .4byte sub_80CC7D4 thumb_func_end sub_80CC6CC thumb_func_start sub_80CC7D4 sub_80CC7D4: @ 80CC7D4 push {r4,lr} adds r2, r0, 0 ldrh r3, [r2, 0x2E] movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 beq _080CC804 ldrh r0, [r2, 0x34] ldrh r4, [r2, 0x30] adds r0, r4 strh r0, [r2, 0x30] ldrh r1, [r2, 0x36] ldrh r4, [r2, 0x32] adds r1, r4 strh r1, [r2, 0x32] lsls r0, 16 asrs r0, 20 strh r0, [r2, 0x20] lsls r1, 16 asrs r1, 20 strh r1, [r2, 0x22] subs r0, r3, 0x1 strh r0, [r2, 0x2E] b _080CC80A _080CC804: adds r0, r2, 0 bl move_anim_8074EE0 _080CC80A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CC7D4 thumb_func_start sub_80CC810 sub_80CC810: @ 80CC810 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080CC826 adds r0, r2, 0 bl move_anim_8072740 _080CC826: pop {r0} bx r0 thumb_func_end sub_80CC810 thumb_func_start sub_80CC82C sub_80CC82C: @ 80CC82C push {r4,lr} adds r4, r0, 0 ldr r0, _080CC84C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CC854 ldr r2, _080CC850 ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 strh r0, [r4, 0x20] ldrh r0, [r2, 0x2] b _080CC860 .align 2, 0 _080CC84C: .4byte 0x0202f7c8 _080CC850: .4byte 0x03004b00 _080CC854: ldr r0, _080CC878 ldrh r1, [r0] ldrh r2, [r4, 0x20] adds r1, r2 strh r1, [r4, 0x20] ldrh r0, [r0, 0x2] _080CC860: ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldr r0, _080CC87C str r0, [r4, 0x1C] ldr r1, _080CC880 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080CC878: .4byte 0x03004b00 _080CC87C: .4byte sub_8078600 _080CC880: .4byte move_anim_8072740 thumb_func_end sub_80CC82C thumb_func_start sub_80CC884 sub_80CC884: @ 80CC884 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080CC8BC ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CC89E adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnim _080CC89E: ldr r0, _080CC8C0 str r0, [r5, 0x1C] ldr r4, _080CC8C4 movs r0, 0 ldrsh r1, [r4, r0] adds r0, r5, 0 bl sub_807867C ldrh r0, [r4, 0x2] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x22] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CC8BC: .4byte 0x0202f7c8 _080CC8C0: .4byte sub_80CC810 _080CC8C4: .4byte 0x03004b00 thumb_func_end sub_80CC884 thumb_func_start sub_80CC8C8 sub_80CC8C8: @ 80CC8C8 push {r4,lr} adds r4, r0, 0 ldr r1, _080CC908 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r4, 0x30] ldrh r0, [r1, 0x8] strh r0, [r4, 0x34] ldrh r0, [r1, 0xA] strh r0, [r4, 0x38] ldrb r1, [r1, 0xC] adds r0, r4, 0 bl StartSpriteAffineAnim ldr r1, _080CC90C adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CC910 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CC908: .4byte 0x03004b00 _080CC90C: .4byte move_anim_8074EE0 _080CC910: .4byte sub_8078504 thumb_func_end sub_80CC8C8 thumb_func_start sub_80CC914 sub_80CC914: @ 80CC914 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080CC964 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CC948 ldrh r0, [r5, 0x22] adds r0, 0x8 strh r0, [r5, 0x22] _080CC948: ldr r0, _080CC968 str r0, [r5, 0x1C] ldr r0, _080CC96C movs r2, 0x4 ldrsh r1, [r0, r2] adds r3, r0, 0 cmp r1, 0 bne _080CC970 ldrh r0, [r3] ldrh r1, [r5, 0x20] adds r0, r1 strh r0, [r5, 0x20] b _080CC984 .align 2, 0 _080CC964: .4byte 0x0202f7c9 _080CC968: .4byte sub_80CCB00 _080CC96C: .4byte 0x03004b00 _080CC970: ldrh r0, [r5, 0x20] ldrh r1, [r3] subs r0, r1 strh r0, [r5, 0x20] adds r2, r5, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] _080CC984: ldrh r0, [r3, 0x2] ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] ldr r1, _080CC9B8 adds r0, r1, 0 ldrh r2, [r5, 0x30] adds r1, r0, r2 strh r1, [r5, 0x30] movs r2, 0x80 lsls r2, 3 adds r0, r2, 0 ldrh r2, [r5, 0x32] adds r0, r2 strh r0, [r5, 0x32] ldrh r0, [r3, 0x4] strh r0, [r5, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080CC9B2 negs r0, r1 strh r0, [r5, 0x30] _080CC9B2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CC9B8: .4byte 0xfffffc00 thumb_func_end sub_80CC914 thumb_func_start sub_80CC9BC sub_80CC9BC: @ 80CC9BC push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 ldr r0, _080CC9D8 movs r1, 0x6 ldrsh r0, [r0, r1] cmp r0, 0x1 beq _080CC9DC cmp r0, 0x1 ble _080CCA58 cmp r0, 0x2 beq _080CC9FC b _080CCA58 .align 2, 0 _080CC9D8: .4byte 0x03004b00 _080CC9DC: ldr r5, _080CC9F8 ldrb r0, [r5] movs r4, 0x2 eors r0, r4 movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r5] eors r4, r0 adds r0, r4, 0 b _080CCA68 .align 2, 0 _080CC9F8: .4byte 0x0202f7c9 _080CC9FC: ldr r5, _080CCA54 ldrb r0, [r5] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r5] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r5] movs r2, 0x2 mov r8, r2 mov r1, r8 eors r0, r1 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080CCA72 ldrb r0, [r5] mov r2, r8 eors r0, r2 movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r7 lsrs r7, r0, 1 ldrb r0, [r5] mov r1, r8 eors r0, r1 movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r4 lsrs r4, r0, 1 b _080CCA72 .align 2, 0 _080CCA54: .4byte 0x0202f7c9 _080CCA58: ldr r4, _080CCAA4 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r4] _080CCA68: movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r4, r0, 24 _080CCA72: strh r7, [r6, 0x20] strh r4, [r6, 0x22] ldr r0, _080CCAA4 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CCA8A ldrh r0, [r6, 0x22] adds r0, 0x8 strh r0, [r6, 0x22] _080CCA8A: ldr r0, _080CCAA8 str r0, [r6, 0x1C] ldr r0, _080CCAAC movs r2, 0x4 ldrsh r1, [r0, r2] adds r3, r0, 0 cmp r1, 0 bne _080CCAB0 ldrh r0, [r3] ldrh r1, [r6, 0x20] adds r0, r1 strh r0, [r6, 0x20] b _080CCAC4 .align 2, 0 _080CCAA4: .4byte 0x0202f7c9 _080CCAA8: .4byte sub_80CCB00 _080CCAAC: .4byte 0x03004b00 _080CCAB0: ldrh r0, [r6, 0x20] ldrh r1, [r3] subs r0, r1 strh r0, [r6, 0x20] adds r2, r6, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] _080CCAC4: ldrh r0, [r3, 0x2] ldrh r2, [r6, 0x22] adds r0, r2 strh r0, [r6, 0x22] ldr r1, _080CCAFC adds r0, r1, 0 ldrh r2, [r6, 0x30] adds r1, r0, r2 strh r1, [r6, 0x30] movs r2, 0x80 lsls r2, 3 adds r0, r2, 0 ldrh r2, [r6, 0x32] adds r0, r2 strh r0, [r6, 0x32] ldrh r0, [r3, 0x4] strh r0, [r6, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080CCAF2 negs r0, r1 strh r0, [r6, 0x30] _080CCAF2: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CCAFC: .4byte 0xfffffc00 thumb_func_end sub_80CC9BC thumb_func_start sub_80CCB00 sub_80CCB00: @ 80CCB00 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x30] ldrh r2, [r4, 0x34] adds r0, r1, r2 strh r0, [r4, 0x34] ldrh r0, [r4, 0x32] ldrh r2, [r4, 0x36] adds r0, r2 strh r0, [r4, 0x36] movs r2, 0x38 ldrsh r0, [r4, r2] cmp r0, 0 bne _080CCB22 adds r0, r1, 0 adds r0, 0x18 b _080CCB26 _080CCB22: adds r0, r1, 0 subs r0, 0x18 _080CCB26: strh r0, [r4, 0x30] ldrh r0, [r4, 0x32] subs r0, 0x18 strh r0, [r4, 0x32] ldrh r0, [r4, 0x34] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] ldrh r0, [r4, 0x36] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x26] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 bne _080CCB5C ldr r1, _080CCB64 adds r0, r4, 0 bl oamt_set_x3A_32 movs r0, 0x3 strh r0, [r4, 0x2E] ldr r0, _080CCB68 str r0, [r4, 0x1C] _080CCB5C: pop {r4} pop {r0} bx r0 .align 2, 0 _080CCB64: .4byte move_anim_8072740 _080CCB68: .4byte sub_80782D8 thumb_func_end sub_80CCB00 thumb_func_start unref_sub_80CCB6C unref_sub_80CCB6C: @ 80CCB6C push {r4,r5,lr} adds r5, r0, 0 ldrh r1, [r5, 0x32] movs r2, 0x32 ldrsh r0, [r5, r2] cmp r0, 0x1 ble _080CCC10 ldrh r1, [r5, 0x34] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080CCBC8 adds r3, r5, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r1 strb r0, [r3] ldr r4, _080CCBC4 movs r0, 0x2E ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r3, [r0] adds r1, r2, 0 ands r1, r3 strb r1, [r0] movs r0, 0x30 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] b _080CCBFE .align 2, 0 _080CCBC4: .4byte 0x02020004 _080CCBC8: adds r1, r5, 0 adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] ldr r3, _080CCC0C movs r0, 0x2E ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] movs r0, 0x30 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] _080CCBFE: movs r0, 0 strh r0, [r5, 0x32] ldrh r0, [r5, 0x34] adds r0, 0x1 strh r0, [r5, 0x34] b _080CCC14 .align 2, 0 _080CCC0C: .4byte 0x02020004 _080CCC10: adds r0, r1, 0x1 strh r0, [r5, 0x32] _080CCC14: movs r1, 0x34 ldrsh r0, [r5, r1] cmp r0, 0xA bne _080CCC44 movs r2, 0x2E ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _080CCC4C adds r0, r4 bl DestroySprite movs r0, 0x30 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite adds r0, r5, 0 bl move_anim_8072740 _080CCC44: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CCC4C: .4byte 0x02020004 thumb_func_end unref_sub_80CCB6C thumb_func_start sub_80CCC50 sub_80CCC50: @ 80CCC50 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080CCC70 ldrh r0, [r4, 0x4] strh r0, [r5, 0x2E] ldr r0, _080CCC74 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CCC78 ldrh r0, [r5, 0x20] ldrh r1, [r4] subs r0, r1 b _080CCC7E .align 2, 0 _080CCC70: .4byte 0x03004b00 _080CCC74: .4byte 0x0202f7c8 _080CCC78: ldrh r0, [r4] ldrh r1, [r5, 0x20] adds r0, r1 _080CCC7E: strh r0, [r5, 0x20] ldr r4, _080CCCAC ldrb r1, [r4, 0xA] adds r0, r5, 0 bl StartSpriteAnim ldrh r0, [r4, 0x6] negs r0, r0 strh r0, [r5, 0x30] ldrh r0, [r4, 0x2] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x22] ldrh r0, [r4, 0x8] strh r0, [r5, 0x34] ldr r1, _080CCCB0 str r1, [r5, 0x1C] adds r0, r5, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CCCAC: .4byte 0x03004b00 _080CCCB0: .4byte sub_80CCCB4 thumb_func_end sub_80CCC50 thumb_func_start sub_80CCCB4 sub_80CCCB4: @ 80CCCB4 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x64 bl cosine strh r0, [r4, 0x24] movs r2, 0x2E ldrsh r0, [r4, r2] movs r1, 0x14 bl sine strh r0, [r4, 0x26] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x7F bgt _080CCCE0 adds r1, r4, 0 adds r1, 0x43 movs r0, 0 b _080CCCE6 _080CCCE0: adds r1, r4, 0 adds r1, 0x43 movs r0, 0xE _080CCCE6: strb r0, [r1] ldrh r0, [r4, 0x30] ldrh r2, [r4, 0x2E] adds r0, r2 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x38] adds r0, 0x82 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 24 ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 movs r2, 0x34 ldrsh r1, [r4, r2] cmp r0, r1 bne _080CCD1C adds r0, r4, 0 bl move_anim_8072740 _080CCD1C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CCCB4 thumb_func_start sub_80CCD24 sub_80CCD24: @ 80CCD24 push {r4-r6,lr} adds r5, r0, 0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080CCD3A ldr r1, _080CCD98 ldrh r0, [r1, 0x2] adds r0, 0x8 strh r0, [r1, 0x2] _080CCD3A: ldr r6, _080CCD9C ldrb r0, [r6] movs r1, 0 bl sub_8077EE4 lsls r0, 24 ldr r4, _080CCD98 lsrs r0, 24 ldrh r1, [r4] adds r0, r1 strh r0, [r5, 0x20] ldrb r0, [r6] movs r1, 0x1 bl sub_8077EE4 lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] adds r0, r4 strh r0, [r5, 0x22] ldrb r0, [r6] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CCD78 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080CCDA0 _080CCD78: ldrb r0, [r6] bl sub_8079ED4 lsls r0, 24 lsrs r0, 24 adds r0, 0x1 movs r1, 0x3 ands r0, r1 lsls r0, 2 ldrb r2, [r5, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r5, 0x5] b _080CCDB8 .align 2, 0 _080CCD98: .4byte 0x03004b00 _080CCD9C: .4byte 0x0202f7c8 _080CCDA0: ldrb r0, [r6] bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r5, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] _080CCDB8: ldr r0, _080CCDF8 ldrh r0, [r0, 0x4] strh r0, [r5, 0x2E] ldr r0, _080CCDFC bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r3, 0x80 lsls r3, 1 adds r0, r3 strh r0, [r5, 0x32] movs r2, 0x10 movs r0, 0x10 strh r0, [r5, 0x3C] ldr r1, _080CCE00 movs r3, 0xFD lsls r3, 6 adds r0, r3, 0 strh r0, [r1] ldr r3, _080CCE04 ldrh r1, [r5, 0x3C] lsls r0, r1, 8 subs r2, r1 orrs r0, r2 strh r0, [r3] ldr r0, _080CCE08 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CCDF8: .4byte 0x03004b00 _080CCDFC: .4byte 0x00002828 _080CCE00: .4byte REG_BLDCNT _080CCE04: .4byte REG_BLDALPHA _080CCE08: .4byte sub_80CCE0C thumb_func_end sub_80CCD24 thumb_func_start sub_80CCE0C sub_80CCE0C: @ 80CCE0C push {r4-r6,lr} adds r4, r0, 0 ldrh r0, [r4, 0x38] adds r0, 0x60 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 24 negs r0, r0 strh r0, [r4, 0x24] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080CCE6A movs r0, 0 strh r0, [r4, 0x30] ldr r1, _080CCEB0 movs r2, 0x32 ldrsh r0, [r4, r2] adds r0, 0x1 lsls r0, 1 adds r0, r1 ldrh r5, [r0] movs r2, 0 adds r6, r1, 0 adds r3, r6, 0 _080CCE44: movs r1, 0x32 ldrsh r0, [r4, r1] adds r2, 0x1 adds r0, r2 lsls r1, r0, 1 adds r1, r3 adds r0, 0x1 lsls r0, 1 adds r0, r3 ldrh r0, [r0] strh r0, [r1] cmp r2, 0x5 ble _080CCE44 movs r2, 0x32 ldrsh r0, [r4, r2] adds r0, 0x7 lsls r0, 1 adds r0, r6 strh r5, [r0] _080CCE6A: ldrh r2, [r4, 0x3C] movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0x6 ble _080CCE9E movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 ble _080CCEB8 ldrh r0, [r4, 0x3A] adds r0, 0x1 strh r0, [r4, 0x3A] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080CCE9E movs r0, 0 strh r0, [r4, 0x3A] subs r2, 0x1 strh r2, [r4, 0x3C] ldr r3, _080CCEB4 lsls r1, r2, 8 movs r0, 0x10 subs r0, r2 orrs r1, r0 strh r1, [r3] _080CCE9E: ldrh r1, [r4, 0x2E] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 ble _080CCEB8 subs r0, r1, 0x1 strh r0, [r4, 0x2E] b _080CCEF4 .align 2, 0 _080CCEB0: .4byte 0x0202eec8 _080CCEB4: .4byte REG_BLDALPHA _080CCEB8: ldrh r0, [r4, 0x3A] adds r0, 0x1 strh r0, [r4, 0x3A] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080CCEF4 movs r0, 0 strh r0, [r4, 0x3A] ldrh r1, [r4, 0x3C] adds r1, 0x1 strh r1, [r4, 0x3C] ldr r3, _080CCEFC lsls r2, r1, 8 movs r0, 0x10 subs r0, r1 orrs r2, r0 strh r2, [r3] movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0x10 bne _080CCEF4 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080CCF00 str r0, [r4, 0x1C] _080CCEF4: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CCEFC: .4byte REG_BLDALPHA _080CCF00: .4byte sub_807861C thumb_func_end sub_80CCE0C thumb_func_start sub_80CCF04 sub_80CCF04: @ 80CCF04 push {r4-r6,lr} adds r4, r0, 0 ldr r6, _080CCF5C ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0x20] ldrb r0, [r6] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldr r1, _080CCF60 adds r0, r1 strh r0, [r4, 0x22] strh r5, [r4, 0x2E] strh r5, [r4, 0x30] strh r5, [r4, 0x32] strh r5, [r4, 0x34] strh r5, [r4, 0x36] strh r5, [r4, 0x3A] movs r0, 0x10 strh r0, [r4, 0x3C] ldr r1, _080CCF64 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r2, _080CCF68 ldrh r0, [r4, 0x3C] lsls r0, 8 ldrh r1, [r4, 0x3A] orrs r0, r1 strh r0, [r2] ldr r0, _080CCF6C str r0, [r4, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CCF5C: .4byte 0x0202f7c9 _080CCF60: .4byte 0x0000ffe8 _080CCF64: .4byte REG_BLDCNT _080CCF68: .4byte REG_BLDALPHA _080CCF6C: .4byte sub_80CCF70 thumb_func_end sub_80CCF04 thumb_func_start sub_80CCF70 sub_80CCF70: @ 80CCF70 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x4 bls _080CCF7E b _080CD0C0 _080CCF7E: lsls r0, 2 ldr r1, _080CCF88 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080CCF88: .4byte _080CCF8C .align 2, 0 _080CCF8C: .4byte _080CCFA0 .4byte _080CD004 .4byte _080CD020 .4byte _080CD09C .4byte _080CD0B0 _080CCFA0: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 cmp r0, 0 bgt _080CCFAE b _080CD0C0 _080CCFAE: movs r0, 0 strh r0, [r4, 0x32] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080CCFD0 ldrh r1, [r4, 0x3A] movs r2, 0x3A ldrsh r0, [r4, r2] cmp r0, 0xF bgt _080CCFDE adds r0, r1, 0x1 strh r0, [r4, 0x3A] b _080CCFDE _080CCFD0: ldrh r1, [r4, 0x3C] movs r2, 0x3C ldrsh r0, [r4, r2] cmp r0, 0 ble _080CCFDE subs r0, r1, 0x1 strh r0, [r4, 0x3C] _080CCFDE: ldr r2, _080CD000 ldrh r0, [r4, 0x3C] lsls r0, 8 ldrh r1, [r4, 0x3A] orrs r0, r1 strh r0, [r2] movs r1, 0x3A ldrsh r0, [r4, r1] cmp r0, 0x10 bne _080CD0C0 movs r2, 0x3C ldrsh r0, [r4, r2] cmp r0, 0 bne _080CD0C0 strh r0, [r4, 0x30] b _080CD0A8 .align 2, 0 _080CD000: .4byte REG_BLDALPHA _080CD004: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080CD0C0 movs r0, 0 strh r0, [r4, 0x30] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim b _080CD0A8 _080CD020: adds r0, r4, 0 movs r1, 0x10 movs r2, 0x4 bl sub_80CD0CC ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080CD042 movs r0, 0 strh r0, [r4, 0x30] ldrh r0, [r4, 0x22] adds r0, 0x1 strh r0, [r4, 0x22] _080CD042: ldrh r0, [r4, 0x32] adds r1, r0, 0x1 strh r1, [r4, 0x32] lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x1D ble _080CD0C0 movs r0, 0x1 ands r1, r0 cmp r1, 0 beq _080CD068 ldrh r1, [r4, 0x3A] movs r2, 0x3A ldrsh r0, [r4, r2] cmp r0, 0 ble _080CD076 subs r0, r1, 0x1 strh r0, [r4, 0x3A] b _080CD076 _080CD068: ldrh r1, [r4, 0x3C] movs r2, 0x3C ldrsh r0, [r4, r2] cmp r0, 0xF bgt _080CD076 adds r0, r1, 0x1 strh r0, [r4, 0x3C] _080CD076: ldr r0, _080CD098 ldrh r1, [r4, 0x3C] lsls r1, 8 ldrh r2, [r4, 0x3A] orrs r1, r2 strh r1, [r0] movs r0, 0x3A ldrsh r1, [r4, r0] cmp r1, 0 bne _080CD0C0 movs r2, 0x3C ldrsh r0, [r4, r2] cmp r0, 0x10 bne _080CD0C0 strh r1, [r4, 0x30] strh r1, [r4, 0x32] b _080CD0A8 .align 2, 0 _080CD098: .4byte REG_BLDALPHA _080CD09C: adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _080CD0A8: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080CD0C0 _080CD0B0: ldr r0, _080CD0C8 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, r4, 0 bl move_anim_8072740 _080CD0C0: pop {r4} pop {r0} bx r0 .align 2, 0 _080CD0C8: .4byte REG_BLDCNT thumb_func_end sub_80CCF70 thumb_func_start sub_80CD0CC sub_80CD0CC: @ 80CD0CC push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0xB bgt _080CD0DE ldrh r0, [r4, 0x36] adds r0, 0x2 strh r0, [r4, 0x36] _080CD0DE: ldrh r5, [r4, 0x34] adds r0, r5, 0 subs r0, 0x12 lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 cmp r0, 0x17 bhi _080CD0F4 ldrh r0, [r4, 0x36] subs r0, 0x2 strh r0, [r4, 0x36] _080CD0F4: lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x2F ble _080CD102 ldrh r0, [r4, 0x36] adds r0, 0x2 strh r0, [r4, 0x36] _080CD102: movs r1, 0x36 ldrsh r0, [r4, r1] movs r1, 0x9 bl __divsi3 strh r0, [r4, 0x24] movs r1, 0x36 ldrsh r0, [r4, r1] movs r1, 0xE bl __divsi3 strh r0, [r4, 0x26] lsls r0, 16 cmp r0, 0 bge _080CD128 movs r1, 0x26 ldrsh r0, [r4, r1] negs r0, r0 strh r0, [r4, 0x26] _080CD128: adds r0, r5, 0x1 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x3B ble _080CD138 movs r0, 0 strh r0, [r4, 0x34] _080CD138: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80CD0CC thumb_func_start sub_80CD140 sub_80CD140: @ 80CD140 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080CD184 movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0 bne _080CD154 adds r0, r4, 0 bl sub_8078650 _080CD154: movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 bl sub_807867C ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldrh r0, [r5, 0xA] strh r0, [r4, 0x2E] ldrh r0, [r5, 0x6] strh r0, [r4, 0x30] ldrh r0, [r5, 0x8] strh r0, [r4, 0x32] ldr r1, _080CD188 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CD18C str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CD184: .4byte 0x03004b00 _080CD188: .4byte move_anim_8072740 _080CD18C: .4byte sub_8078394 thumb_func_end sub_80CD140 thumb_func_start sub_80CD190 sub_80CD190: @ 80CD190 push {r4-r6,lr} adds r5, r0, 0 ldr r0, _080CD1A4 movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 bne _080CD1AC ldr r0, _080CD1A8 b _080CD1AE .align 2, 0 _080CD1A4: .4byte 0x03004b00 _080CD1A8: .4byte 0x0202f7c8 _080CD1AC: ldr r0, _080CD1F0 _080CD1AE: ldrb r6, [r0] bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080CD1F8 movs r1, 0x2 adds r0, r6, 0 eors r0, r1 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080CD1F8 ldr r4, _080CD1F4 ldrb r1, [r4, 0xC] adds r2, r5, 0 adds r2, 0x20 adds r3, r5, 0 adds r3, 0x22 adds r0, r6, 0 bl sub_807A3FC movs r2, 0 ldrsh r1, [r4, r2] adds r0, r5, 0 bl sub_807867C ldrh r0, [r4, 0x2] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x22] b _080CD248 .align 2, 0 _080CD1F0: .4byte 0x0202f7c9 _080CD1F4: .4byte 0x03004b00 _080CD1F8: ldr r4, _080CD218 movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0 bne _080CD21C adds r0, r6, 0 movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] adds r0, r6, 0 movs r1, 0x1 b _080CD22E .align 2, 0 _080CD218: .4byte 0x03004b00 _080CD21C: adds r0, r6, 0 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] adds r0, r6, 0 movs r1, 0x3 _080CD22E: bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] adds r0, r4 strh r0, [r5, 0x22] ldr r0, _080CD268 movs r2, 0 ldrsh r1, [r0, r2] adds r0, r5, 0 bl sub_807867C _080CD248: ldr r1, _080CD268 ldrh r0, [r1, 0xA] strh r0, [r5, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r5, 0x30] ldrh r0, [r1, 0x8] strh r0, [r5, 0x32] ldr r1, _080CD26C adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080CD270 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CD268: .4byte 0x03004b00 _080CD26C: .4byte move_anim_8072740 _080CD270: .4byte sub_8078394 thumb_func_end sub_80CD190 thumb_func_start sub_80CD274 sub_80CD274: @ 80CD274 push {r4,lr} adds r4, r0, 0 bl sub_8078650 ldr r0, _080CD2A0 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CD2A8 ldr r0, _080CD2A4 ldrh r1, [r0] ldrh r2, [r4, 0x20] adds r1, r2 strh r1, [r4, 0x20] ldrh r0, [r0, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] b _080CD2C2 .align 2, 0 _080CD2A0: .4byte 0x0202f7c8 _080CD2A4: .4byte 0x03004b00 _080CD2A8: ldr r2, _080CD2CC ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 strh r0, [r4, 0x20] ldrh r0, [r2, 0x2] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim _080CD2C2: ldr r0, _080CD2D0 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CD2CC: .4byte 0x03004b00 _080CD2D0: .4byte sub_80CD2D4 thumb_func_end sub_80CD274 thumb_func_start sub_80CD2D4 sub_80CD2D4: @ 80CD2D4 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1E ble _080CD30C movs r0, 0x2E ldrsh r1, [r4, r0] movs r0, 0x1E subs r0, r1 movs r1, 0x3 bl __divsi3 strh r0, [r4, 0x26] movs r1, 0x30 ldrsh r0, [r4, r1] lsls r0, 18 asrs r0, 16 movs r1, 0x3 bl sine strh r0, [r4, 0x24] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] _080CD30C: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080CD320 adds r0, r4, 0 bl move_anim_8072740 _080CD320: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CD2D4 thumb_func_start sub_80CD328 sub_80CD328: @ 80CD328 push {r4,lr} adds r4, r0, 0 bl sub_8078650 ldr r0, _080CD358 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CD360 ldr r1, _080CD35C ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] movs r0, 0x1 strh r0, [r4, 0x34] b _080CD37E .align 2, 0 _080CD358: .4byte 0x0202f7c8 _080CD35C: .4byte 0x03004b00 _080CD360: ldr r2, _080CD388 ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 strh r0, [r4, 0x20] ldrh r0, [r2, 0x2] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] ldr r0, _080CD38C strh r0, [r4, 0x34] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim _080CD37E: ldr r0, _080CD390 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CD388: .4byte 0x03004b00 _080CD38C: .4byte 0x0000ffff _080CD390: .4byte sub_80CD394 thumb_func_end sub_80CD328 thumb_func_start sub_80CD394 sub_80CD394: @ 80CD394 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x28 bl __divsi3 negs r0, r0 strh r0, [r4, 0x26] movs r2, 0x36 ldrsh r0, [r4, r2] movs r1, 0xA bl __divsi3 strh r0, [r4, 0x24] movs r1, 0x34 ldrsh r0, [r4, r1] lsls r0, 1 ldrh r2, [r4, 0x36] adds r0, r2 strh r0, [r4, 0x36] ldrh r0, [r4, 0x30] ldrh r2, [r4, 0x2E] adds r1, r0, r2 strh r1, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C ble _080CD3D8 adds r0, r4, 0 bl move_anim_8074EE0 _080CD3D8: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CD394 thumb_func_start sub_80CD3E0 sub_80CD3E0: @ 80CD3E0 push {lr} ldrh r1, [r0, 0x20] subs r1, 0x20 strh r1, [r0, 0x20] ldrh r1, [r0, 0x22] subs r1, 0x20 strh r1, [r0, 0x22] movs r1, 0x14 strh r1, [r0, 0x2E] ldr r1, _080CD400 str r1, [r0, 0x1C] ldr r1, _080CD404 bl oamt_set_x3A_32 pop {r0} bx r0 .align 2, 0 _080CD400: .4byte sub_80782D8 _080CD404: .4byte sub_80CD408 thumb_func_end sub_80CD3E0 thumb_func_start sub_80CD408 sub_80CD408: @ 80CD408 push {r4-r6,lr} adds r5, r0, 0 ldrh r6, [r5, 0x38] movs r1, 0x1 adds r0, r1, 0 ands r0, r6 cmp r0, 0 beq _080CD41E cmp r0, 0x1 beq _080CD438 b _080CD49E _080CD41E: strh r1, [r5, 0x2E] ldr r0, _080CD430 str r0, [r5, 0x1C] ldr r1, _080CD434 adds r0, r5, 0 bl oamt_set_x3A_32 b _080CD49E .align 2, 0 _080CD430: .4byte sub_80782D8 _080CD434: .4byte sub_80CD408 _080CD438: ldrh r3, [r5, 0x24] ldrh r0, [r5, 0x20] adds r3, r0 movs r0, 0 strh r3, [r5, 0x20] ldrh r4, [r5, 0x26] ldrh r1, [r5, 0x22] adds r4, r1 strh r4, [r5, 0x22] strh r0, [r5, 0x26] strh r0, [r5, 0x24] movs r0, 0x8 strh r0, [r5, 0x2E] ldr r2, _080CD4AC lsls r0, r6, 16 asrs r0, 24 lsls r0, 1 adds r1, r0, r2 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 adds r3, r1 strh r3, [r5, 0x32] adds r2, 0x1 adds r0, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r4, r0 strh r4, [r5, 0x36] ldr r0, _080CD4B0 str r0, [r5, 0x1C] ldr r1, _080CD4B4 adds r0, r5, 0 bl oamt_set_x3A_32 movs r1, 0x80 lsls r1, 1 adds r0, r1, 0 ldrh r1, [r5, 0x38] adds r0, r1 strh r0, [r5, 0x38] movs r0, 0x3F bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xD2 bl audio_play_and_stuff _080CD49E: ldrh r0, [r5, 0x38] movs r1, 0x1 eors r0, r1 strh r0, [r5, 0x38] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CD4AC: .4byte gUnknown_083D6DDC _080CD4B0: .4byte sub_8078B34 _080CD4B4: .4byte sub_80CD4B8 thumb_func_end sub_80CD408 thumb_func_start sub_80CD4B8 sub_80CD4B8: @ 80CD4B8 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x38] lsls r0, 16 asrs r0, 24 cmp r0, 0x4 bne _080CD4E0 movs r0, 0xA strh r0, [r2, 0x2E] ldr r0, _080CD4D8 str r0, [r2, 0x1C] ldr r1, _080CD4DC adds r0, r2, 0 bl oamt_set_x3A_32 b _080CD4E4 .align 2, 0 _080CD4D8: .4byte sub_80782D8 _080CD4DC: .4byte sub_80CD4EC _080CD4E0: ldr r0, _080CD4E8 str r0, [r2, 0x1C] _080CD4E4: pop {r0} bx r0 .align 2, 0 _080CD4E8: .4byte sub_80CD408 thumb_func_end sub_80CD4B8 thumb_func_start sub_80CD4EC sub_80CD4EC: @ 80CD4EC push {r4-r7,lr} adds r5, r0, 0 ldrh r1, [r5, 0x6] cmp r1, 0 bne _080CD514 movs r0, 0x3 strh r0, [r5, 0x2E] strh r1, [r5, 0x30] strh r1, [r5, 0x32] ldr r0, _080CD50C str r0, [r5, 0x1C] ldr r1, _080CD510 adds r0, r5, 0 bl oamt_set_x3A_32 b _080CD594 .align 2, 0 _080CD50C: .4byte sub_80782D8 _080CD510: .4byte sub_80CD5A8 _080CD514: ldrh r0, [r5, 0x6] cmp r0, 0x2 beq _080CD534 cmp r0, 0x2 bgt _080CD524 cmp r0, 0x1 beq _080CD52A b _080CD548 _080CD524: cmp r0, 0x3 beq _080CD53C b _080CD548 _080CD52A: ldr r6, _080CD530 adds r7, r6, 0 b _080CD54C .align 2, 0 _080CD530: .4byte 0x0000fff8 _080CD534: ldr r7, _080CD538 b _080CD54A .align 2, 0 _080CD538: .4byte 0x0000fff8 _080CD53C: movs r7, 0x8 ldr r6, _080CD544 b _080CD54C .align 2, 0 _080CD544: .4byte 0x0000fff8 _080CD548: movs r7, 0x8 _080CD54A: movs r6, 0x8 _080CD54C: ldrh r0, [r5, 0x24] ldrh r1, [r5, 0x20] adds r0, r1 movs r1, 0 strh r0, [r5, 0x20] ldrh r0, [r5, 0x26] ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] strh r1, [r5, 0x26] strh r1, [r5, 0x24] movs r0, 0x6 strh r0, [r5, 0x2E] ldr r4, _080CD59C ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r7 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r6 strh r0, [r5, 0x36] ldr r0, _080CD5A0 str r0, [r5, 0x1C] ldr r1, _080CD5A4 adds r0, r5, 0 bl oamt_set_x3A_32 _080CD594: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CD59C: .4byte 0x0202f7c9 _080CD5A0: .4byte sub_8078B34 _080CD5A4: .4byte sub_80CD654 thumb_func_end sub_80CD4EC thumb_func_start sub_80CD5A8 sub_80CD5A8: @ 80CD5A8 push {r4,lr} sub sp, 0xC adds r4, r0, 0 movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 bne _080CD5C8 ldrh r0, [r4, 0x30] adds r0, 0x3 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _080CD5D8 movs r0, 0x10 b _080CD5D6 _080CD5C8: ldrh r0, [r4, 0x30] subs r0, 0x3 strh r0, [r4, 0x30] lsls r0, 16 cmp r0, 0 bge _080CD5D8 movs r0, 0 _080CD5D6: strh r0, [r4, 0x30] _080CD5D8: movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 movs r2, 0x1 movs r3, 0x1 bl sub_80791A8 ldrh r1, [r4, 0x30] lsls r1, 24 lsrs r1, 24 ldr r2, _080CD634 bl BlendPalettes movs r3, 0x30 ldrsh r0, [r4, r3] cmp r0, 0x10 bne _080CD640 ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] ldrb r1, [r4, 0x5] lsrs r1, 4 lsls r0, r1, 5 ldr r2, _080CD638 adds r0, r2 lsls r1, 4 ldr r3, _080CD63C adds r2, r3, 0 orrs r1, r2 movs r2, 0x4 bl LoadPalette movs r0, 0x3F bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xC0 bl audio_play_and_stuff b _080CD648 .align 2, 0 _080CD634: .4byte 0x00007fff _080CD638: .4byte 0x0202ecd8 _080CD63C: .4byte 0x00000101 _080CD640: cmp r0, 0 bne _080CD648 ldr r0, _080CD650 str r0, [r4, 0x1C] _080CD648: add sp, 0xC pop {r4} pop {r0} bx r0 .align 2, 0 _080CD650: .4byte sub_80CD654 thumb_func_end sub_80CD5A8 thumb_func_start sub_80CD654 sub_80CD654: @ 80CD654 push {lr} adds r2, r0, 0 ldr r0, _080CD670 ldrh r1, [r0, 0xE] ldr r0, _080CD674 cmp r1, r0 bne _080CD66C movs r0, 0 strh r0, [r2, 0x30] strh r0, [r2, 0x2E] ldr r0, _080CD678 str r0, [r2, 0x1C] _080CD66C: pop {r0} bx r0 .align 2, 0 _080CD670: .4byte 0x03004b00 _080CD674: .4byte 0x0000ffff _080CD678: .4byte sub_80CD67C thumb_func_end sub_80CD654 thumb_func_start sub_80CD67C sub_80CD67C: @ 80CD67C push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x3 bl __modsi3 lsls r0, 16 cmp r0, 0 bne _080CD6B0 ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080CD6B0: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x8 bne _080CD6C4 adds r0, r4, 0 bl move_anim_8072740 _080CD6C4: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CD67C thumb_func_start sub_80CD6CC sub_80CD6CC: @ 80CD6CC push {r4,lr} adds r3, r0, 0 ldr r0, _080CD6EC ldrh r0, [r0] strh r0, [r3, 0x6] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080CD6F0 ldrh r0, [r3, 0x20] subs r0, 0x18 strh r0, [r3, 0x20] ldrh r0, [r3, 0x22] subs r0, 0x18 strh r0, [r3, 0x22] b _080CD742 .align 2, 0 _080CD6EC: .4byte 0x03004b00 _080CD6F0: cmp r0, 0x2 bne _080CD70C ldrh r0, [r3, 0x20] subs r0, 0x18 strh r0, [r3, 0x20] ldrh r0, [r3, 0x22] adds r0, 0x18 strh r0, [r3, 0x22] ldrb r1, [r3, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x20 b _080CD73E _080CD70C: cmp r0, 0x3 bne _080CD728 ldrh r0, [r3, 0x20] adds r0, 0x18 strh r0, [r3, 0x20] ldrh r0, [r3, 0x22] subs r0, 0x18 strh r0, [r3, 0x22] ldrb r1, [r3, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x10 b _080CD73E _080CD728: ldrh r0, [r3, 0x20] adds r0, 0x18 strh r0, [r3, 0x20] ldrh r0, [r3, 0x22] adds r0, 0x18 strh r0, [r3, 0x22] ldrb r1, [r3, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x30 _080CD73E: orrs r0, r1 strb r0, [r3, 0x3] _080CD742: ldrh r2, [r3, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x10 ldr r4, _080CD768 adds r0, r4, 0 ands r1, r0 ldr r0, _080CD76C ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] ldr r1, _080CD770 str r1, [r3, 0x1C] adds r0, r3, 0 bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080CD768: .4byte 0x000003ff _080CD76C: .4byte 0xfffffc00 _080CD770: .4byte sub_80CD3E0 thumb_func_end sub_80CD6CC thumb_func_start sub_80CD774 sub_80CD774: @ 80CD774 push {lr} adds r3, r0, 0 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] movs r0, 0 strh r0, [r3, 0x2E] ldr r0, _080CD79C movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 beq _080CD7B0 cmp r0, 0x1 bgt _080CD7A0 cmp r0, 0 beq _080CD7A6 b _080CD7C0 .align 2, 0 _080CD79C: .4byte 0x03004b00 _080CD7A0: cmp r0, 0x2 beq _080CD7B8 b _080CD7C0 _080CD7A6: ldr r0, _080CD7AC b _080CD7C2 .align 2, 0 _080CD7AC: .4byte sub_80CD7CC _080CD7B0: ldr r0, _080CD7B4 b _080CD7C2 .align 2, 0 _080CD7B4: .4byte sub_80CD8A8 _080CD7B8: ldr r0, _080CD7BC b _080CD7C2 .align 2, 0 _080CD7BC: .4byte sub_80CD8F8 _080CD7C0: ldr r0, _080CD7C8 _080CD7C2: str r0, [r3, 0x1C] pop {r0} bx r0 .align 2, 0 _080CD7C8: .4byte sub_80CD9B8 thumb_func_end sub_80CD774 thumb_func_start sub_80CD7CC sub_80CD7CC: @ 80CD7CC push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x6 strh r0, [r4, 0x2E] ldr r5, _080CD80C ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 movs r2, 0x2 negs r2, r2 adds r1, r2, 0 cmp r0, 0 beq _080CD7EA movs r1, 0x2 _080CD7EA: strh r1, [r4, 0x30] movs r0, 0 strh r0, [r4, 0x32] ldr r1, _080CD810 ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] strh r0, [r4, 0x34] ldr r1, _080CD814 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CD818 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CD80C: .4byte 0x0202f7c8 _080CD810: .4byte 0x02024be0 _080CD814: .4byte sub_80CD81C _080CD818: .4byte sub_8078458 thumb_func_end sub_80CD7CC thumb_func_start sub_80CD81C sub_80CD81C: @ 80CD81C push {r4-r6,lr} adds r5, r0, 0 movs r0, 0x2E ldrsh r6, [r5, r0] cmp r6, 0 bne _080CD858 ldr r1, _080CD898 ldr r4, _080CD89C ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] strh r0, [r5, 0x34] movs r1, 0 bl sub_8078E70 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3A] ldr r2, _080CD8A0 adds r1, r2, 0 cmp r0, 0 beq _080CD854 movs r0, 0xC0 lsls r0, 2 adds r1, r0, 0 _080CD854: strh r1, [r5, 0x36] strh r6, [r5, 0x38] _080CD858: ldrh r0, [r5, 0x36] ldrh r1, [r5, 0x38] adds r0, r1 strh r0, [r5, 0x38] ldrh r0, [r5, 0x34] lsls r0, 24 lsrs r0, 24 movs r2, 0x80 lsls r2, 1 ldrh r3, [r5, 0x38] adds r1, r2, 0 bl obj_id_set_rotscale ldrh r0, [r5, 0x34] lsls r0, 24 lsrs r0, 24 bl sub_8078F9C ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080CD892 movs r0, 0 strh r0, [r5, 0x2E] ldr r0, _080CD8A4 str r0, [r5, 0x1C] _080CD892: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CD898: .4byte 0x02024be0 _080CD89C: .4byte 0x0202f7c8 _080CD8A0: .4byte 0xfffffd00 _080CD8A4: .4byte sub_80CD9B8 thumb_func_end sub_80CD81C thumb_func_start sub_80CD8A8 sub_80CD8A8: @ 80CD8A8 push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x4 strh r0, [r4, 0x2E] ldr r5, _080CD8E8 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 movs r1, 0x3 cmp r0, 0 beq _080CD8C6 movs r0, 0x3 negs r0, r0 adds r1, r0, 0 _080CD8C6: strh r1, [r4, 0x30] movs r0, 0 strh r0, [r4, 0x32] ldr r1, _080CD8EC ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] strh r0, [r4, 0x34] ldr r1, _080CD8F0 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CD8F4 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CD8E8: .4byte 0x0202f7c8 _080CD8EC: .4byte 0x02024be0 _080CD8F0: .4byte sub_80CD9B8 _080CD8F4: .4byte sub_8078458 thumb_func_end sub_80CD8A8 thumb_func_start sub_80CD8F8 sub_80CD8F8: @ 80CD8F8 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080CD912 movs r0, 0 strh r0, [r1, 0x2E] ldr r0, _080CD918 str r0, [r1, 0x1C] _080CD912: pop {r0} bx r0 .align 2, 0 _080CD918: .4byte sub_80CD91C thumb_func_end sub_80CD8F8 thumb_func_start sub_80CD91C sub_80CD91C: @ 80CD91C push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 bne _080CD96C ldr r1, _080CD958 ldr r4, _080CD95C ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] strh r0, [r5, 0x34] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3A] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CD960 movs r0, 0xFC lsls r0, 8 strh r0, [r5, 0x36] movs r0, 0xC0 lsls r0, 4 b _080CD96A .align 2, 0 _080CD958: .4byte 0x02024be0 _080CD95C: .4byte 0x0202f7c8 _080CD960: movs r0, 0x80 lsls r0, 3 strh r0, [r5, 0x36] movs r0, 0xF4 lsls r0, 8 _080CD96A: strh r0, [r5, 0x38] _080CD96C: ldrh r0, [r5, 0x36] ldrh r1, [r5, 0x38] adds r0, r1 strh r0, [r5, 0x38] ldrh r0, [r5, 0x34] lsls r0, 24 lsrs r0, 24 movs r2, 0x80 lsls r2, 1 ldrh r3, [r5, 0x38] adds r1, r2, 0 bl obj_id_set_rotscale ldrh r0, [r5, 0x34] lsls r0, 24 lsrs r0, 24 bl sub_8078F9C ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080CD9AC ldrh r0, [r5, 0x34] lsls r0, 24 lsrs r0, 24 bl sub_8078F40 ldr r0, _080CD9B4 str r0, [r5, 0x1C] _080CD9AC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CD9B4: .4byte sub_80CD9B8 thumb_func_end sub_80CD91C thumb_func_start sub_80CD9B8 sub_80CD9B8: @ 80CD9B8 push {lr} bl move_anim_8072740 pop {r0} bx r0 thumb_func_end sub_80CD9B8 thumb_func_start sub_80CD9C4 sub_80CD9C4: @ 80CD9C4 movs r1, 0 strh r1, [r0, 0x2E] ldr r1, _080CD9D0 str r1, [r0, 0x1C] bx lr .align 2, 0 _080CD9D0: .4byte sub_80CD9D4 thumb_func_end sub_80CD9C4 thumb_func_start sub_80CD9D4 sub_80CD9D4: @ 80CD9D4 push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x2E ldrsh r5, [r4, r0] cmp r5, 0x1 beq _080CDA2E cmp r5, 0x1 bgt _080CD9EA cmp r5, 0 beq _080CD9F0 b _080CDAC2 _080CD9EA: cmp r5, 0x2 beq _080CDA80 b _080CDAC2 _080CD9F0: strh r5, [r4, 0x30] ldr r1, _080CDA74 ldr r2, _080CDA78 ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] strh r0, [r4, 0x32] ldrb r0, [r2] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x34] ldr r2, _080CDA7C adds r1, r2, 0 cmp r0, 0 beq _080CDA18 movs r0, 0x80 lsls r0, 2 adds r1, r0, 0 _080CDA18: strh r1, [r4, 0x36] strh r5, [r4, 0x38] ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_8078E70 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] _080CDA2E: ldrh r0, [r4, 0x36] ldrh r1, [r4, 0x38] adds r0, r1 strh r0, [r4, 0x38] ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 movs r2, 0x80 lsls r2, 1 ldrh r3, [r4, 0x38] adds r1, r2, 0 bl obj_id_set_rotscale ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 bl sub_8078F9C ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080CDAC2 movs r0, 0 strh r0, [r4, 0x30] movs r2, 0x36 ldrsh r0, [r4, r2] negs r0, r0 strh r0, [r4, 0x36] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080CDAC2 .align 2, 0 _080CDA74: .4byte 0x02024be0 _080CDA78: .4byte 0x0202f7c8 _080CDA7C: .4byte 0xfffffe00 _080CDA80: ldrh r0, [r4, 0x36] ldrh r1, [r4, 0x38] adds r0, r1 strh r0, [r4, 0x38] ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 movs r2, 0x80 lsls r2, 1 ldrh r3, [r4, 0x38] adds r1, r2, 0 bl obj_id_set_rotscale ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 bl sub_8078F9C ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080CDAC2 ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 bl sub_8078F40 adds r0, r4, 0 bl move_anim_8072740 _080CDAC2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80CD9D4 thumb_func_start sub_80CDAC8 sub_80CDAC8: @ 80CDAC8 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080CDB0C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r5, r0, r1 ldr r1, _080CDB10 ldr r2, _080CDB14 ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] movs r4, 0 strh r0, [r5, 0x8] ldrb r0, [r2] bl battle_side_get_owner lsls r0, 24 lsrs r2, r0, 24 strh r2, [r5, 0xA] strh r4, [r5, 0xC] ldr r0, _080CDB18 movs r3, 0 ldrsh r1, [r0, r3] cmp r1, 0 beq _080CDB1C cmp r1, 0x1 beq _080CDB38 adds r0, r6, 0 bl move_anim_task_del b _080CDB56 .align 2, 0 _080CDB0C: .4byte 0x03004b20 _080CDB10: .4byte 0x02024be0 _080CDB14: .4byte 0x0202f7c8 _080CDB18: .4byte 0x03004b00 _080CDB1C: strh r1, [r5, 0xC] movs r0, 0x8 strh r0, [r5, 0xE] strh r1, [r5, 0x10] movs r0, 0x3 strh r0, [r5, 0x12] cmp r2, 0 bne _080CDB30 negs r0, r0 strh r0, [r5, 0x12] _080CDB30: ldr r0, _080CDB34 b _080CDB54 .align 2, 0 _080CDB34: .4byte sub_80CDB60 _080CDB38: movs r0, 0x8 strh r0, [r5, 0xE] movs r0, 0xC0 lsls r0, 3 strh r0, [r5, 0x10] movs r1, 0xC0 strh r1, [r5, 0x12] cmp r2, 0 bne _080CDB52 negs r0, r0 strh r0, [r5, 0x10] negs r0, r1 strh r0, [r5, 0x12] _080CDB52: ldr r0, _080CDB5C _080CDB54: str r0, [r5] _080CDB56: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CDB5C: .4byte sub_80CDD20 thumb_func_end sub_80CDAC8 thumb_func_start sub_80CDB60 sub_80CDB60: @ 80CDB60 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080CDB84 adds r4, r0, r1 movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0x4 bls _080CDB7A b _080CDD1A _080CDB7A: lsls r0, 2 ldr r1, _080CDB88 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080CDB84: .4byte 0x03004b20 _080CDB88: .4byte _080CDB8C .align 2, 0 _080CDB8C: .4byte _080CDBA0 .4byte _080CDBD2 .4byte _080CDC2C .4byte _080CDCA4 .4byte _080CDCE8 _080CDBA0: movs r2, 0xE ldrsh r1, [r4, r2] cmp r1, 0 beq _080CDBB0 ldrh r2, [r4, 0x12] ldrh r3, [r4, 0x10] adds r2, r3 b _080CDCF6 _080CDBB0: movs r0, 0x8 strh r0, [r4, 0xE] strh r1, [r4, 0x10] movs r1, 0xA ldrsh r0, [r4, r1] movs r1, 0xC0 cmp r0, 0 bne _080CDBC6 movs r2, 0xC0 negs r2, r2 adds r1, r2, 0 _080CDBC6: strh r1, [r4, 0x12] ldrb r0, [r4, 0x8] movs r1, 0 bl sub_8078E70 b _080CDCDC _080CDBD2: movs r3, 0xE ldrsh r0, [r4, r3] cmp r0, 0 beq _080CDBF8 ldrh r0, [r4, 0x12] ldrh r1, [r4, 0x10] adds r0, r1 strh r0, [r4, 0x10] ldrb r0, [r4, 0x8] movs r2, 0x80 lsls r2, 1 ldrh r3, [r4, 0x10] adds r1, r2, 0 bl obj_id_set_rotscale ldrb r0, [r4, 0x8] bl sub_8078F9C b _080CDD08 _080CDBF8: movs r0, 0x8 strh r0, [r4, 0xE] ldr r2, _080CDC28 movs r3, 0x8 ldrsh r1, [r4, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x24] strh r0, [r4, 0x10] movs r1, 0xA ldrsh r0, [r4, r1] movs r2, 0x2 negs r2, r2 adds r1, r2, 0 cmp r0, 0 bne _080CDC1E movs r1, 0x2 _080CDC1E: strh r1, [r4, 0x12] movs r0, 0x1 strh r0, [r4, 0x14] b _080CDCDC .align 2, 0 _080CDC28: .4byte 0x02020004 _080CDC2C: ldrh r2, [r4, 0xE] movs r3, 0xE ldrsh r0, [r4, r3] cmp r0, 0 beq _080CDC88 ldrh r1, [r4, 0x14] movs r3, 0x14 ldrsh r0, [r4, r3] cmp r0, 0 beq _080CDC46 subs r0, r1, 0x1 strh r0, [r4, 0x14] b _080CDD1A _080CDC46: movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _080CDC68 ldr r2, _080CDC64 movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r4, 0x12] ldrh r2, [r4, 0x10] adds r1, r2 b _080CDC7C .align 2, 0 _080CDC64: .4byte 0x02020004 _080CDC68: ldr r2, _080CDC84 movs r3, 0x8 ldrsh r1, [r4, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r4, 0x10] ldrh r2, [r4, 0x12] subs r1, r2 _080CDC7C: strh r1, [r0, 0x24] movs r0, 0x1 strh r0, [r4, 0x14] b _080CDD08 .align 2, 0 _080CDC84: .4byte 0x02020004 _080CDC88: ldr r2, _080CDCA0 movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r4, 0x10] strh r1, [r0, 0x24] movs r0, 0xC strh r0, [r4, 0xE] b _080CDCDC .align 2, 0 _080CDCA0: .4byte 0x02020004 _080CDCA4: ldrh r1, [r4, 0xE] movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0 beq _080CDCB4 subs r0, r1, 0x1 strh r0, [r4, 0xE] b _080CDD1A _080CDCB4: movs r0, 0x3 strh r0, [r4, 0xE] ldr r2, _080CDCE4 movs r3, 0x8 ldrsh r1, [r4, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x24] strh r0, [r4, 0x10] movs r1, 0xA ldrsh r0, [r4, r1] movs r2, 0x8 negs r2, r2 adds r1, r2, 0 cmp r0, 0 bne _080CDCDA movs r1, 0x8 _080CDCDA: strh r1, [r4, 0x12] _080CDCDC: ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] b _080CDD1A .align 2, 0 _080CDCE4: .4byte 0x02020004 _080CDCE8: movs r3, 0xE ldrsh r0, [r4, r3] cmp r0, 0 beq _080CDD14 ldrh r2, [r4, 0x12] ldrh r0, [r4, 0x10] adds r2, r0 _080CDCF6: strh r2, [r4, 0x10] ldr r3, _080CDD10 movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r2, [r0, 0x24] _080CDD08: ldrh r0, [r4, 0xE] subs r0, 0x1 strh r0, [r4, 0xE] b _080CDD1A .align 2, 0 _080CDD10: .4byte 0x02020004 _080CDD14: adds r0, r2, 0 bl move_anim_task_del _080CDD1A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CDB60 thumb_func_start sub_80CDD20 sub_80CDD20: @ 80CDD20 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080CDD5C adds r4, r0, r1 movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0 beq _080CDD60 ldrh r0, [r4, 0x10] ldrh r1, [r4, 0x12] subs r0, r1 strh r0, [r4, 0x10] ldrb r0, [r4, 0x8] movs r2, 0x80 lsls r2, 1 ldrh r3, [r4, 0x10] adds r1, r2, 0 bl obj_id_set_rotscale ldrb r0, [r4, 0x8] bl sub_8078F9C ldrh r0, [r4, 0xE] subs r0, 0x1 strh r0, [r4, 0xE] b _080CDD6C .align 2, 0 _080CDD5C: .4byte 0x03004b20 _080CDD60: ldrb r0, [r4, 0x8] bl sub_8078F40 adds r0, r5, 0 bl move_anim_task_del _080CDD6C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80CDD20 thumb_func_start sub_80CDD74 sub_80CDD74: @ 80CDD74 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _080CDD88 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _080CDD90 ldr r4, _080CDD8C b _080CDD92 .align 2, 0 _080CDD88: .4byte 0x03004b00 _080CDD8C: .4byte 0x0202f7c8 _080CDD90: ldr r4, _080CDDD0 _080CDD92: ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x2] adds r0, r1 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x4] adds r0, r6 strh r0, [r5, 0x22] movs r0, 0 strh r0, [r5, 0x2E] strh r0, [r5, 0x30] ldr r1, _080CDDD4 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080CDDD8 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CDDD0: .4byte 0x0202f7c9 _080CDDD4: .4byte sub_80CDEC0 _080CDDD8: .4byte sub_8078600 thumb_func_end sub_80CDD74 thumb_func_start sub_80CDDDC sub_80CDDDC: @ 80CDDDC push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080CDE14 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldr r1, _080CDE18 adds r0, r1 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] ldr r1, _080CDE1C adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CDE20 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CDE14: .4byte 0x0202f7c9 _080CDE18: .4byte 0x0000ffd0 _080CDE1C: .4byte sub_80CDE78 _080CDE20: .4byte sub_8078600 thumb_func_end sub_80CDDDC thumb_func_start sub_80CDE24 sub_80CDE24: @ 80CDE24 push {r4-r6,lr} adds r4, r0, 0 ldr r5, _080CDE68 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldr r1, _080CDE6C ldr r2, _080CDE70 adds r0, r2 ldrh r1, [r1] adds r0, r1 movs r6, 0 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim strh r6, [r4, 0x2E] strh r6, [r4, 0x30] ldr r0, _080CDE74 str r0, [r4, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CDE68: .4byte 0x0202f7c9 _080CDE6C: .4byte 0x03004b00 _080CDE70: .4byte 0x0000ffd0 _080CDE74: .4byte sub_80CDEC0 thumb_func_end sub_80CDE24 thumb_func_start sub_80CDE78 sub_80CDE78: @ 80CDE78 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080CDEA2 movs r0, 0xC strh r0, [r4, 0x2E] movs r0, 0x8 strh r0, [r4, 0x30] movs r0, 0 strh r0, [r4, 0x32] ldr r1, _080CDEA8 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CDEAC str r0, [r4, 0x1C] _080CDEA2: pop {r4} pop {r0} bx r0 .align 2, 0 _080CDEA8: .4byte sub_80CDEB0 _080CDEAC: .4byte sub_8078364 thumb_func_end sub_80CDE78 thumb_func_start sub_80CDEB0 sub_80CDEB0: @ 80CDEB0 movs r1, 0 strh r1, [r0, 0x2E] strh r1, [r0, 0x30] ldr r1, _080CDEBC str r1, [r0, 0x1C] bx lr .align 2, 0 _080CDEBC: .4byte sub_80CDEC0 thumb_func_end sub_80CDEB0 thumb_func_start sub_80CDEC0 sub_80CDEC0: @ 80CDEC0 push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080CDF08 movs r0, 0 strh r0, [r3, 0x2E] movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsrs r1, r2, 2 movs r0, 0x1 eors r1, r0 ands r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080CDF08 adds r0, r3, 0 bl move_anim_8072740 _080CDF08: pop {r0} bx r0 thumb_func_end sub_80CDEC0 thumb_func_start sub_80CDF0C sub_80CDF0C: @ 80CDF0C push {r4-r6,lr} adds r5, r0, 0 ldr r6, _080CDF20 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _080CDF28 ldr r4, _080CDF24 b _080CDF2A .align 2, 0 _080CDF20: .4byte 0x03004b00 _080CDF24: .4byte 0x0202f7c8 _080CDF28: ldr r4, _080CDF64 _080CDF2A: ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x2] adds r0, r1 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x4] adds r0, r6 strh r0, [r5, 0x22] movs r0, 0 strh r0, [r5, 0x2E] ldr r0, _080CDF68 ldrh r0, [r0, 0x6] strh r0, [r5, 0x30] ldr r0, _080CDF6C str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CDF64: .4byte 0x0202f7c9 _080CDF68: .4byte 0x03004b00 _080CDF6C: .4byte sub_80CDF70 thumb_func_end sub_80CDF0C thumb_func_start sub_80CDF70 sub_80CDF70: @ 80CDF70 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 movs r3, 0x30 ldrsh r1, [r2, r3] cmp r0, r1 ble _080CDF90 movs r0, 0 strh r0, [r2, 0x2E] ldrh r0, [r2, 0x22] subs r0, 0x1 strh r0, [r2, 0x22] _080CDF90: ldrh r0, [r2, 0x22] ldrh r1, [r2, 0x2E] subs r0, r1 strh r0, [r2, 0x22] adds r0, r2, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080CDFAC adds r0, r2, 0 bl move_anim_8072740 _080CDFAC: pop {r0} bx r0 thumb_func_end sub_80CDF70 thumb_func_start sub_80CDFB0 sub_80CDFB0: @ 80CDFB0 push {r4-r6,lr} adds r4, r0, 0 ldr r6, _080CDFF8 ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0x20] ldrb r0, [r6] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 subs r0, 0xC strh r0, [r4, 0x22] strh r5, [r4, 0x2E] movs r0, 0x2 strh r0, [r4, 0x30] strh r5, [r4, 0x32] strh r5, [r4, 0x34] strh r5, [r4, 0x36] subs r0, 0x42 bl sub_8076F98 lsls r0, 24 asrs r0, 24 strh r0, [r4, 0x38] ldr r0, _080CDFFC str r0, [r4, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CDFF8: .4byte 0x0202f7c8 _080CDFFC: .4byte sub_80CE000 thumb_func_end sub_80CDFB0 thumb_func_start sub_80CE000 sub_80CE000: @ 80CE000 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 movs r2, 0x30 ldrsh r1, [r4, r2] cmp r0, r1 blt _080CE06C adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsrs r1, r2, 2 movs r0, 0x1 eors r1, r0 ands r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] movs r1, 0x4 ands r0, r1 cmp r0, 0 bne _080CE052 ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _080CE052 ldrh r1, [r4, 0x38] lsls r1, 24 asrs r1, 24 movs r0, 0xC2 bl audio_play_and_stuff _080CE052: movs r1, 0 strh r1, [r4, 0x2E] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080CE06C strh r1, [r4, 0x32] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] _080CE06C: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080CE096 movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x10 ble _080CE096 adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080CE096 adds r0, r4, 0 bl move_anim_8072740 _080CE096: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CE000 thumb_func_start sub_80CE09C sub_80CE09C: @ 80CE09C push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x2E ldrsh r0, [r6, r1] cmp r0, 0 bne _080CE0E6 ldr r4, _080CE0FC ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 ldr r5, _080CE100 lsrs r0, 24 ldrh r1, [r5] adds r0, r1 strh r0, [r6, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x2] adds r0, r5 strh r0, [r6, 0x22] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080CE0E0 ldrh r0, [r6, 0x22] adds r0, 0xA strh r0, [r6, 0x22] _080CE0E0: ldrh r0, [r6, 0x2E] adds r0, 0x1 strh r0, [r6, 0x2E] _080CE0E6: ldr r0, _080CE100 ldrh r1, [r0, 0xE] ldr r0, _080CE104 cmp r1, r0 bne _080CE0F6 adds r0, r6, 0 bl move_anim_8072740 _080CE0F6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CE0FC: .4byte 0x0202f7c8 _080CE100: .4byte 0x03004b00 _080CE104: .4byte 0x0000ffff thumb_func_end sub_80CE09C thumb_func_start sub_80CE108 sub_80CE108: @ 80CE108 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080CE128 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080CE134 ldr r1, _080CE12C ldr r0, _080CE130 strh r0, [r1, 0xE] b _080CE16C .align 2, 0 _080CE128: .4byte 0x03004b20 _080CE12C: .4byte 0x03004b00 _080CE130: .4byte 0x0000ffff _080CE134: cmp r0, 0x2 bne _080CE140 adds r0, r2, 0 bl move_anim_task_del b _080CE172 _080CE140: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080CE172 movs r0, 0 strh r0, [r4, 0x8] ldrh r1, [r4, 0xA] adds r1, 0x1 strh r1, [r4, 0xA] ldr r3, _080CE178 lsls r2, r1, 8 movs r0, 0x10 subs r0, r1 orrs r2, r0 strh r2, [r3] movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x10 bne _080CE172 _080CE16C: ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] _080CE172: pop {r4} pop {r0} bx r0 .align 2, 0 _080CE178: .4byte REG_BLDALPHA thumb_func_end sub_80CE108 thumb_func_start sub_80CE17C sub_80CE17C: @ 80CE17C push {r4,lr} adds r4, r0, 0 movs r1, 0 bl sub_8078764 adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] ldr r0, _080CE1A4 ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldr r0, _080CE1A8 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CE1A4: .4byte 0x03004b00 _080CE1A8: .4byte sub_80CE1AC thumb_func_end sub_80CE17C thumb_func_start sub_80CE1AC sub_80CE1AC: @ 80CE1AC push {r4,r5,lr} adds r5, r0, 0 ldrh r1, [r5, 0x2E] movs r2, 0x2E ldrsh r0, [r5, r2] cmp r0, 0 beq _080CE1C0 subs r0, r1, 0x1 strh r0, [r5, 0x2E] b _080CE1FC _080CE1C0: adds r2, r5, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] movs r0, 0x1E strh r0, [r5, 0x2E] ldr r4, _080CE204 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] ldr r0, _080CE208 str r0, [r5, 0x1C] ldr r1, _080CE20C adds r0, r5, 0 bl oamt_set_x3A_32 _080CE1FC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CE204: .4byte 0x0202f7c8 _080CE208: .4byte sub_8078B34 _080CE20C: .4byte move_anim_8072740 thumb_func_end sub_80CE1AC thumb_func_start sub_80CE210 sub_80CE210: @ 80CE210 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080CE258 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r3, r0, r1 ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080CE252 movs r0, 0 strh r0, [r3, 0x8] ldrh r1, [r3, 0xA] adds r1, 0x1 strh r1, [r3, 0xA] ldr r2, _080CE25C movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r1, 0xA ldrsh r0, [r3, r1] cmp r0, 0x10 bne _080CE252 adds r0, r4, 0 bl move_anim_task_del _080CE252: pop {r4} pop {r0} bx r0 .align 2, 0 _080CE258: .4byte 0x03004b20 _080CE25C: .4byte REG_BLDALPHA thumb_func_end sub_80CE210 thumb_func_start unref_sub_80CE260 unref_sub_80CE260: @ 80CE260 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 movs r4, 0 ldr r0, _080CE2C8 ldrb r0, [r0] cmp r4, r0 bcs _080CE2BC ldr r6, _080CE2CC ldr r5, _080CE2D0 _080CE274: movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0x1 bne _080CE290 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CE290 adds r0, r4, r5 ldrb r0, [r0] bl sub_8043DB0 _080CE290: movs r1, 0x2 ldrsh r0, [r6, r1] cmp r0, 0x1 bne _080CE2AE adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080CE2AE adds r0, r4, r5 ldrb r0, [r0] bl sub_8043DB0 _080CE2AE: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080CE2C8 ldrb r0, [r0] cmp r4, r0 bcc _080CE274 _080CE2BC: adds r0, r7, 0 bl move_anim_task_del pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CE2C8: .4byte 0x02024a68 _080CE2CC: .4byte 0x03004b00 _080CE2D0: .4byte 0x03004340 thumb_func_end unref_sub_80CE260 thumb_func_start unref_sub_80CE2D4 unref_sub_80CE2D4: @ 80CE2D4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 b _080CE2EE _080CE2DE: ldr r0, _080CE304 adds r0, r4, r0 ldrb r0, [r0] bl sub_8043DFC adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _080CE2EE: ldr r0, _080CE308 ldrb r0, [r0] cmp r4, r0 bcc _080CE2DE adds r0, r5, 0 bl move_anim_task_del pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CE304: .4byte 0x03004340 _080CE308: .4byte 0x02024a68 thumb_func_end unref_sub_80CE2D4 thumb_func_start sub_80CE30C sub_80CE30C: @ 80CE30C push {r4,lr} adds r4, r0, 0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080CE322 movs r0, 0x30 strh r0, [r4, 0x20] movs r0, 0x28 b _080CE32A _080CE322: ldr r0, _080CE34C ldrh r1, [r0] strh r1, [r4, 0x20] ldrh r0, [r0, 0x2] _080CE32A: strh r0, [r4, 0x22] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x3] movs r1, 0xC0 orrs r0, r1 strb r0, [r4, 0x3] movs r0, 0 strh r0, [r4, 0x2E] ldr r0, _080CE350 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CE34C: .4byte 0x03004b00 _080CE350: .4byte sub_80CE354 thumb_func_end sub_80CE30C thumb_func_start sub_80CE354 sub_80CE354: @ 80CE354 push {lr} adds r1, r0, 0 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0 beq _080CE366 adds r0, r1, 0 bl move_anim_8072740 _080CE366: pop {r0} bx r0 thumb_func_end sub_80CE354 thumb_func_start sub_80CE36C sub_80CE36C: @ 80CE36C push {r4,lr} adds r4, r0, 0 ldr r0, _080CE3A4 ldrb r0, [r0] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r2, _080CE3A8 lsrs r0, 24 ldrh r1, [r2] adds r0, r1 movs r1, 0 strh r0, [r4, 0x20] ldrh r0, [r2, 0x2] strh r0, [r4, 0x22] strh r1, [r4, 0x2E] strh r1, [r4, 0x30] strh r1, [r4, 0x32] strh r1, [r4, 0x34] movs r0, 0x1 strh r0, [r4, 0x36] ldr r0, _080CE3AC str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CE3A4: .4byte 0x0202f7c8 _080CE3A8: .4byte 0x03004b00 _080CE3AC: .4byte sub_80CE3B0 thumb_func_end sub_80CE36C thumb_func_start sub_80CE3B0 sub_80CE3B0: @ 80CE3B0 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x30] adds r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080CE3DA movs r0, 0 strh r0, [r1, 0x30] ldrh r2, [r1, 0x32] movs r3, 0x32 ldrsh r0, [r1, r3] cmp r0, 0x77 bgt _080CE3DA ldrh r0, [r1, 0x22] adds r0, 0x1 strh r0, [r1, 0x22] adds r0, r2, 0x1 strh r0, [r1, 0x32] _080CE3DA: movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0 beq _080CE3E8 adds r0, r1, 0 bl move_anim_8072740 _080CE3E8: pop {r0} bx r0 thumb_func_end sub_80CE3B0 thumb_func_start sub_80CE3EC sub_80CE3EC: @ 80CE3EC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r7, r0, 24 movs r4, 0 str r4, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80791A8 mov r8, r0 ldr r0, _080CE4BC mov r1, r8 ands r1, r0 mov r8, r1 ldr r0, _080CE4C0 mov r9, r0 lsls r5, r7, 2 adds r5, r7 lsls r5, 3 adds r6, r5, r0 strh r4, [r6, 0x8] strh r4, [r6, 0xA] strh r4, [r6, 0xC] strh r1, [r6, 0xE] strh r4, [r6, 0x10] strh r4, [r6, 0x12] strh r4, [r6, 0x14] movs r0, 0xD strh r0, [r6, 0x16] movs r0, 0xE strh r0, [r6, 0x18] movs r0, 0xF strh r0, [r6, 0x1A] movs r0, 0x1 movs r1, 0x1 movs r2, 0x1 movs r3, 0x1 bl sub_80792C0 mov r10, r0 mov r1, r8 orrs r1, r0 mov r8, r1 movs r0, 0x8 add r9, r0 add r5, r9 adds r0, r5, 0 adds r0, 0x1C adds r5, 0x1E adds r1, r5, 0 mov r2, r8 bl sub_8079BF4 ldr r0, _080CE4C4 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 movs r4, 0x80 lsls r4, 9 adds r1, r4, 0 lsls r1, r0 mov r0, r10 orrs r0, r1 mov r10, r0 ldr r0, _080CE4C8 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 lsls r4, r0 mov r1, r10 orrs r4, r1 ldr r0, _080CE4CC str r0, [sp] adds r0, r4, 0 movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _080CE4D0 str r1, [r6] adds r0, r7, 0 bl _call_via_r1 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CE4BC: .4byte 0x0000ffff _080CE4C0: .4byte 0x03004b20 _080CE4C4: .4byte 0x000027d2 _080CE4C8: .4byte 0x000027d3 _080CE4CC: .4byte 0x00007fbb _080CE4D0: .4byte sub_80CE4D4 thumb_func_end sub_80CE3EC thumb_func_start sub_80CE4D4 sub_80CE4D4: @ 80CE4D4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080CE4FC adds r4, r0, r1 movs r0, 0x8 ldrsh r1, [r4, r0] cmp r1, 0x1 beq _080CE5C0 cmp r1, 0x1 bgt _080CE500 cmp r1, 0 beq _080CE50E b _080CE65E .align 2, 0 _080CE4FC: .4byte 0x03004b20 _080CE500: cmp r1, 0x2 bne _080CE506 b _080CE618 _080CE506: cmp r1, 0x3 bne _080CE50C b _080CE64C _080CE50C: b _080CE65E _080CE50E: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 cmp r0, 0 bgt _080CE51C b _080CE65E _080CE51C: strh r1, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0xF bgt _080CE568 ldrh r0, [r4, 0x16] ldrh r1, [r4, 0x10] adds r0, r1 strh r0, [r4, 0x10] ldrh r2, [r4, 0x18] ldrh r3, [r4, 0x12] adds r2, r3 strh r2, [r4, 0x12] ldrh r1, [r4, 0x1A] ldrh r5, [r4, 0x14] adds r1, r5 strh r1, [r4, 0x14] lsls r0, 16 asrs r0, 19 lsls r0, 16 lsrs r0, 16 lsls r2, 16 asrs r2, 19 lsls r2, 16 lsls r1, 16 asrs r1, 19 lsls r1, 16 lsrs r2, 11 orrs r0, r2 lsrs r1, 6 orrs r0, r1 lsls r0, 16 lsrs r0, 16 mov r12, r0 b _080CE572 _080CE568: ldr r7, _080CE5B8 mov r12, r7 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080CE572: movs r2, 0x1 movs r3, 0 movs r1, 0 _080CE578: movs r5, 0xE ldrsh r0, [r4, r5] ands r0, r2 lsls r5, r2, 17 adds r6, r3, 0 adds r6, 0x10 adds r1, 0x1 mov r8, r1 cmp r0, 0 beq _080CE5A4 movs r1, 0x1 ldr r2, _080CE5BC _080CE590: adds r0, r3, r1 lsls r0, 1 adds r0, r2 mov r7, r12 strh r7, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0xF bls _080CE590 _080CE5A4: lsrs r2, r5, 16 lsls r0, r6, 16 lsrs r3, r0, 16 mov r1, r8 lsls r0, r1, 16 lsrs r1, r0, 16 cmp r1, 0xF bls _080CE578 b _080CE65E .align 2, 0 _080CE5B8: .4byte 0x00007fbb _080CE5BC: .4byte 0x0202eec8 _080CE5C0: ldr r0, _080CE608 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080CE65E movs r2, 0 ldr r3, _080CE60C movs r5, 0x14 adds r5, r3 mov r12, r5 ldr r7, _080CE610 mov r8, r7 ldr r6, _080CE614 movs r5, 0x1 _080CE5DE: lsls r0, r2, 4 adds r0, r2 lsls r1, r0, 2 mov r7, r12 adds r0, r1, r7 ldr r0, [r0] cmp r0, r8 beq _080CE5F2 cmp r0, r6 bne _080CE5F6 _080CE5F2: adds r0, r1, r3 strh r5, [r0, 0x2E] _080CE5F6: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3F bls _080CE5DE movs r0, 0 strh r0, [r4, 0xA] b _080CE640 .align 2, 0 _080CE608: .4byte 0x0202f388 _080CE60C: .4byte 0x02020004 _080CE610: .4byte gBattleAnimSpriteTemplate_83D6FC8 _080CE614: .4byte gBattleAnimSpriteTemplate_83D6FF8 _080CE618: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1E ble _080CE65E movs r1, 0x24 ldrsh r0, [r4, r1] movs r2, 0x26 ldrsh r1, [r4, r2] bl sub_8079BFC ldr r1, _080CE648 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade _080CE640: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080CE65E .align 2, 0 _080CE648: .4byte 0x00007fbb _080CE64C: ldr r0, _080CE66C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080CE65E adds r0, r2, 0 bl move_anim_task_del _080CE65E: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CE66C: .4byte 0x0202f388 thumb_func_end sub_80CE4D4 thumb_func_start sub_80CE670 sub_80CE670: @ 80CE670 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _080CE6F4 movs r1, 0x4 ldrsh r0, [r6, r1] cmp r0, 0x1 bgt _080CE682 movs r0, 0x2 strh r0, [r6, 0x4] _080CE682: movs r1, 0x4 ldrsh r0, [r6, r1] cmp r0, 0x7F ble _080CE68E movs r0, 0x7F strh r0, [r6, 0x4] _080CE68E: movs r0, 0 strh r0, [r5, 0x2E] ldrh r0, [r6, 0x4] strh r0, [r5, 0x30] ldr r4, _080CE6F8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r6] adds r0, r1 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x2] adds r0, r6 strh r0, [r5, 0x22] ldrh r1, [r5, 0x20] strh r1, [r5, 0x3A] strh r0, [r5, 0x3C] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080CE700 ldrb r1, [r5, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x10 orrs r0, r1 strb r0, [r5, 0x3] ldrh r0, [r5, 0x20] adds r0, 0x28 strh r0, [r5, 0x20] ldrh r4, [r5, 0x22] adds r4, 0x14 strh r4, [r5, 0x22] lsls r0, 7 strh r0, [r5, 0x32] movs r0, 0x30 ldrsh r1, [r5, r0] ldr r0, _080CE6FC b _080CE726 .align 2, 0 _080CE6F4: .4byte 0x03004b00 _080CE6F8: .4byte 0x0202f7c9 _080CE6FC: .4byte 0xffffec00 _080CE700: ldr r0, _080CE740 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CE748 ldrh r0, [r5, 0x20] subs r0, 0x28 strh r0, [r5, 0x20] ldrh r4, [r5, 0x22] adds r4, 0x14 strh r4, [r5, 0x22] lsls r0, 7 strh r0, [r5, 0x32] movs r0, 0x30 ldrsh r1, [r5, r0] movs r0, 0xA0 lsls r0, 5 _080CE726: bl __divsi3 strh r0, [r5, 0x34] lsls r4, 7 strh r4, [r5, 0x36] movs r0, 0x30 ldrsh r1, [r5, r0] ldr r0, _080CE744 bl __divsi3 strh r0, [r5, 0x38] b _080CE784 .align 2, 0 _080CE740: .4byte 0x0202f7c8 _080CE744: .4byte 0xfffff600 _080CE748: ldrh r0, [r5, 0x20] adds r0, 0x28 strh r0, [r5, 0x20] ldrh r4, [r5, 0x22] subs r4, 0x14 strh r4, [r5, 0x22] lsls r0, 7 strh r0, [r5, 0x32] movs r0, 0x30 ldrsh r1, [r5, r0] ldr r0, _080CE790 bl __divsi3 strh r0, [r5, 0x34] lsls r4, 7 strh r4, [r5, 0x36] movs r0, 0x30 ldrsh r1, [r5, r0] movs r0, 0xA0 lsls r0, 4 bl __divsi3 strh r0, [r5, 0x38] ldrb r1, [r5, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x30 orrs r0, r1 strb r0, [r5, 0x3] _080CE784: ldr r0, _080CE794 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CE790: .4byte 0xffffec00 _080CE794: .4byte sub_80CE798 thumb_func_end sub_80CE670 thumb_func_start sub_80CE798 sub_80CE798: @ 80CE798 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x34] ldrh r1, [r2, 0x32] adds r0, r1 strh r0, [r2, 0x32] ldrh r1, [r2, 0x38] ldrh r3, [r2, 0x36] adds r1, r3 strh r1, [r2, 0x36] lsls r0, 16 asrs r0, 23 strh r0, [r2, 0x20] lsls r1, 16 asrs r1, 23 strh r1, [r2, 0x22] ldrh r0, [r2, 0x30] subs r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080CE7CE ldrh r0, [r2, 0x3A] strh r0, [r2, 0x20] ldrh r0, [r2, 0x3C] strh r0, [r2, 0x22] _080CE7CE: movs r1, 0x30 ldrsh r0, [r2, r1] cmp r0, 0 bne _080CE7DC adds r0, r2, 0 bl move_anim_8072740 _080CE7DC: pop {r0} bx r0 thumb_func_end sub_80CE798 thumb_func_start sub_80CE7E0 sub_80CE7E0: @ 80CE7E0 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, _080CE870 adds r6, r0, r1 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x8] ldr r0, _080CE874 bl AllocSpritePalette lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0xA] movs r1, 0xA ldrsh r0, [r6, r1] lsls r0, 20 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r3, r0, 16 ldr r2, _080CE878 movs r0, 0x8 ldrsh r1, [r6, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x5] lsrs r0, 4 adds r0, 0x10 lsls r4, r0, 4 movs r5, 0x1 ldr r2, _080CE87C _080CE838: adds r1, r3, r5 lsls r1, 1 adds r1, r2 adds r0, r4, r5 lsls r0, 1 adds r0, r2 ldrh r0, [r0] strh r0, [r1] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0xF bls _080CE838 adds r0, r3, 0 movs r1, 0x10 movs r2, 0xB movs r3, 0 bl BlendPalette movs r0, 0 strh r0, [r6, 0xE] movs r5, 0 ldr r7, _080CE878 movs r1, 0x1C adds r1, r7 mov r9, r1 b _080CE8B4 .align 2, 0 _080CE870: .4byte 0x03004b20 _080CE874: .4byte 0x00002771 _080CE878: .4byte 0x02020004 _080CE87C: .4byte 0x0202eac8 _080CE880: lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r4, r2, r7 ldrb r1, [r6, 0xA] lsls r1, 4 ldrb r3, [r4, 0x5] movs r0, 0xF ands r0, r3 orrs r0, r1 strb r0, [r4, 0x5] movs r0, 0 strh r0, [r4, 0x2E] lsls r0, r5, 7 strh r0, [r4, 0x30] mov r0, r8 strh r0, [r4, 0x32] add r2, r9 ldr r0, _080CE8E4 str r0, [r2] ldrh r0, [r6, 0xE] adds r0, 0x1 strh r0, [r6, 0xE] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _080CE8B4: cmp r5, 0x1 bhi _080CE8C6 movs r0, 0 bl duplicate_obj_of_side_rel2move_in_transparent_mode lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _080CE880 _080CE8C6: ldr r0, _080CE8E8 str r0, [r6] ldr r0, _080CE8EC ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080CE8F4 movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _080CE8F0 b _080CE8FC .align 2, 0 _080CE8E4: .4byte sub_80CE974 _080CE8E8: .4byte sub_80CE910 _080CE8EC: .4byte 0x0202f7c8 _080CE8F0: .4byte 0x0000fdff _080CE8F4: movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _080CE90C _080CE8FC: ands r0, r1 strh r0, [r2] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CE90C: .4byte 0x0000fbff thumb_func_end sub_80CE7E0 thumb_func_start sub_80CE910 sub_80CE910: @ 80CE910 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080CE944 adds r0, r1 movs r1, 0xE ldrsh r0, [r0, r1] cmp r0, 0 bne _080CE968 ldr r0, _080CE948 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080CE94C movs r0, 0x80 lsls r0, 19 ldrh r1, [r0] movs r3, 0x80 lsls r3, 2 b _080CE956 .align 2, 0 _080CE944: .4byte 0x03004b20 _080CE948: .4byte 0x0202f7c8 _080CE94C: movs r0, 0x80 lsls r0, 19 ldrh r1, [r0] movs r3, 0x80 lsls r3, 3 _080CE956: adds r2, r3, 0 orrs r1, r2 strh r1, [r0] ldr r0, _080CE970 bl FreeSpritePaletteByTag adds r0, r4, 0 bl move_anim_task_del _080CE968: pop {r4} pop {r0} bx r0 .align 2, 0 _080CE970: .4byte 0x00002771 thumb_func_end sub_80CE910 thumb_func_start sub_80CE974 sub_80CE974: @ 80CE974 push {r4,r5,lr} adds r5, r0, 0 ldrh r0, [r5, 0x34] adds r0, 0x1 strh r0, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080CE990 movs r0, 0 strh r0, [r5, 0x34] ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] _080CE990: movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0x40 ble _080CE9B8 ldr r2, _080CE9B4 movs r0, 0x32 ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r1, [r0, 0xE] subs r1, 0x1 strh r1, [r0, 0xE] adds r0, r5, 0 bl obj_delete_but_dont_free_vram b _080CE9FA .align 2, 0 _080CE9B4: .4byte 0x03004b20 _080CE9B8: ldr r4, _080CEA00 movs r1, 0x2E ldrsh r0, [r5, r1] lsls r0, 1 adds r0, r4 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0x6 bl __divsi3 strh r0, [r5, 0x36] movs r1, 0x2E ldrsh r0, [r5, r1] lsls r0, 1 adds r0, r4 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0xD bl __divsi3 strh r0, [r5, 0x38] ldrh r1, [r5, 0x30] adds r1, r0 movs r0, 0xFF ands r1, r0 strh r1, [r5, 0x30] movs r1, 0x30 ldrsh r0, [r5, r1] movs r2, 0x36 ldrsh r1, [r5, r2] bl sine strh r0, [r5, 0x24] _080CE9FA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CEA00: .4byte gSineTable thumb_func_end sub_80CE974 thumb_func_start sub_80CEA04 sub_80CEA04: @ 80CEA04 push {r4,lr} adds r4, r0, 0 ldr r1, _080CEA18 bl oamt_set_x3A_32 ldr r0, _080CEA1C str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CEA18: .4byte move_anim_8072740 _080CEA1C: .4byte sub_8078600 thumb_func_end sub_80CEA04 thumb_func_start sub_80CEA20 sub_80CEA20: @ 80CEA20 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r4, _080CEAD0 ldrh r0, [r4] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xFF beq _080CEA64 lsls r0, r3, 20 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r3, r0, 16 movs r2, 0x1 ldr r5, _080CEAD4 _080CEA4C: adds r1, r3, r2 lsls r1, 1 adds r1, r5 lsls r0, r2, 1 adds r0, r4 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x5 bls _080CEA4C _080CEA64: movs r4, 0x1 ldr r0, _080CEAD0 mov r8, r0 _080CEA6A: lsls r0, r4, 1 adds r0, r4 lsls r5, r0, 2 mov r1, r8 adds r0, r5, r1 ldrh r0, [r0] bl AllocSpritePalette lsls r0, 24 lsrs r3, r0, 24 adds r4, 0x1 mov r12, r4 cmp r3, 0xFF beq _080CEAB2 lsls r0, r3, 20 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r3, r0, 16 movs r2, 0x1 ldr r7, _080CEAD4 ldr r6, _080CEAD0 adds r4, r5, 0 _080CEA98: adds r1, r3, r2 lsls r1, 1 adds r1, r7 lsls r0, r2, 1 adds r0, r4 adds r0, r6 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x5 bls _080CEA98 _080CEAB2: mov r1, r12 lsls r0, r1, 16 lsrs r4, r0, 16 cmp r4, 0x3 bls _080CEA6A mov r0, r9 bl move_anim_task_del pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CEAD0: .4byte gUnknown_083D712C _080CEAD4: .4byte 0x0202eec8 thumb_func_end sub_80CEA20 thumb_func_start sub_80CEAD8 sub_80CEAD8: @ 80CEAD8 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0x1 ldr r6, _080CEB08 _080CEAE2: lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r0, r6 ldrh r0, [r0] bl FreeSpritePaletteByTag adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3 bls _080CEAE2 adds r0, r5, 0 bl move_anim_task_del pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CEB08: .4byte gUnknown_083D712C thumb_func_end sub_80CEAD8 thumb_func_start sub_80CEB0C sub_80CEB0C: @ 80CEB0C push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 bl sub_8078650 ldr r4, _080CEB64 ldrb r1, [r4] adds r0, r5, 0 bl StartSpriteAnim ldr r2, _080CEB68 movs r0, 0x2 ldrsh r1, [r4, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _080CEB48 lsls r2, r0, 4 ldrb r1, [r5, 0x5] movs r0, 0xF ands r0, r1 orrs r0, r2 strb r0, [r5, 0x5] _080CEB48: ldrh r0, [r4, 0x2] movs r1, 0 strh r0, [r5, 0x30] strh r1, [r5, 0x32] ldrh r0, [r4, 0x4] strh r0, [r5, 0x34] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080CEB6C movs r6, 0x30 movs r3, 0x28 b _080CEB86 .align 2, 0 _080CEB64: .4byte 0x03004b00 _080CEB68: .4byte gUnknown_083D712C _080CEB6C: ldr r4, _080CEBBC ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r3, r0, 24 _080CEB86: ldrh r0, [r5, 0x20] lsls r1, r0, 4 strh r1, [r5, 0x36] ldrh r1, [r5, 0x22] lsls r2, r1, 4 strh r2, [r5, 0x38] subs r0, r6, r0 lsls r0, 16 asrs r0, 16 subs r1, r3, r1 lsls r1, 16 asrs r1, 16 adds r2, r5, 0 adds r2, 0x3A adds r3, r5, 0 adds r3, 0x3C movs r4, 0x28 str r4, [sp] bl sub_80CEBC4 ldr r0, _080CEBC0 str r0, [r5, 0x1C] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CEBBC: .4byte 0x0202f7c9 _080CEBC0: .4byte sub_80CEC1C thumb_func_end sub_80CEB0C thumb_func_start sub_80CEBC4 sub_80CEBC4: @ 80CEBC4 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r2, 0 mov r8, r3 ldr r2, [sp, 0x18] lsls r1, 16 lsrs r6, r1, 16 lsls r2, 24 lsrs r1, r2, 24 lsls r0, 16 asrs r2, r0, 16 cmp r2, 0 bge _080CEBE6 lsls r0, r1, 24 negs r0, r0 lsrs r1, r0, 24 _080CEBE6: lsls r5, r2, 8 lsls r1, 24 asrs r1, 24 adds r0, r5, 0 bl __divsi3 adds r4, r0, 0 cmp r4, 0 bne _080CEBFA movs r4, 0x1 _080CEBFA: adds r0, r5, 0 adds r1, r4, 0 bl __divsi3 strh r0, [r7] lsls r0, r6, 16 asrs r0, 8 adds r1, r4, 0 bl __divsi3 mov r1, r8 strh r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80CEBC4 thumb_func_start sub_80CEC1C sub_80CEC1C: @ 80CEC1C push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 movs r5, 0 strh r0, [r4, 0x2E] movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r1, r0, r1 adds r0, r1, 0 cmp r1, 0 bge _080CEC38 adds r0, 0xFF _080CEC38: asrs r0, 8 lsls r0, 8 subs r0, r1, r0 ldrh r1, [r4, 0x3A] ldrh r2, [r4, 0x36] adds r1, r2 strh r1, [r4, 0x36] ldrh r2, [r4, 0x3C] ldrh r3, [r4, 0x38] adds r2, r3 strh r2, [r4, 0x38] lsls r1, 16 asrs r1, 20 strh r1, [r4, 0x20] lsls r2, 16 asrs r2, 20 strh r2, [r4, 0x22] lsls r0, 16 asrs r0, 16 movs r1, 0xF bl sine strh r0, [r4, 0x26] ldrh r2, [r4, 0x22] ldrh r0, [r4, 0x20] adds r0, 0x10 lsls r0, 16 movs r1, 0x88 lsls r1, 17 cmp r0, r1 bhi _080CEC86 lsls r0, r2, 16 asrs r1, r0, 16 movs r0, 0x10 negs r0, r0 cmp r1, r0 blt _080CEC86 cmp r1, 0x80 ble _080CEC8E _080CEC86: adds r0, r4, 0 bl move_anim_8074EE0 b _080CECDE _080CEC8E: movs r0, 0x34 ldrsh r1, [r4, r0] cmp r1, 0 beq _080CECDE ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, r1 ble _080CECDE strh r5, [r4, 0x32] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080CECB6 strh r5, [r4, 0x30] _080CECB6: ldr r2, _080CECE4 movs r3, 0x30 ldrsh r1, [r4, r3] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _080CECDE lsls r2, r0, 4 ldrb r1, [r4, 0x5] movs r0, 0xF ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] _080CECDE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CECE4: .4byte gUnknown_083D712C thumb_func_end sub_80CEC1C thumb_func_start sub_80CECE8 sub_80CECE8: @ 80CECE8 push {r4-r7,lr} adds r6, r0, 0 ldr r7, _080CED6C ldrb r0, [r7] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080CED06 ldr r1, _080CED70 movs r2, 0x2 ldrsh r0, [r1, r2] negs r0, r0 strh r0, [r1, 0x2] _080CED06: ldrb r0, [r7] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r4, _080CED70 lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 movs r5, 0 strh r0, [r6, 0x20] ldrb r0, [r7] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r2, [r4, 0x4] adds r0, r2 strh r0, [r6, 0x22] ldrb r1, [r4] adds r0, r6, 0 bl StartSpriteAnim strh r5, [r6, 0x32] strh r5, [r6, 0x34] ldrh r0, [r6, 0x20] lsls r0, 4 strh r0, [r6, 0x36] ldrh r0, [r6, 0x22] lsls r0, 4 strh r0, [r6, 0x38] movs r1, 0x2 ldrsh r0, [r4, r1] lsls r0, 4 movs r1, 0x5 bl __divsi3 strh r0, [r6, 0x3A] movs r2, 0x4 ldrsh r0, [r4, r2] lsls r0, 7 movs r1, 0x5 bl __divsi3 strh r0, [r6, 0x3C] ldr r0, _080CED74 str r0, [r6, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CED6C: .4byte 0x0202f7c8 _080CED70: .4byte 0x03004b00 _080CED74: .4byte sub_80CED78 thumb_func_end sub_80CECE8 thumb_func_start sub_80CED78 sub_80CED78: @ 80CED78 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x3A] ldrh r1, [r4, 0x36] adds r0, r1 strh r0, [r4, 0x36] ldrh r1, [r4, 0x3C] ldrh r2, [r4, 0x38] adds r1, r2 strh r1, [r4, 0x38] lsls r0, 16 asrs r0, 20 strh r0, [r4, 0x20] lsls r1, 16 asrs r1, 20 strh r1, [r4, 0x22] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x5 ble _080CEDD6 movs r2, 0x34 ldrsh r0, [r4, r2] cmp r0, 0 bne _080CEDD6 ldrh r0, [r4, 0x32] adds r0, 0x10 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x32] movs r1, 0x32 ldrsh r0, [r4, r1] movs r1, 0x12 bl cosine strh r0, [r4, 0x24] movs r2, 0x32 ldrsh r0, [r4, r2] movs r1, 0x12 bl sine strh r0, [r4, 0x26] movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 bne _080CEDD6 movs r0, 0x1 strh r0, [r4, 0x34] _080CEDD6: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x30 bne _080CEDEA adds r0, r4, 0 bl move_anim_8074EE0 _080CEDEA: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CED78 thumb_func_start sub_80CEDF0 sub_80CEDF0: @ 80CEDF0 push {r4-r6,lr} adds r5, r0, 0 ldr r0, _080CEE10 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 bne _080CEE14 ldrb r0, [r5, 0x3] movs r1, 0x3F negs r1, r1 ands r1, r0 movs r0, 0x10 orrs r1, r0 strb r1, [r5, 0x3] movs r6, 0x10 b _080CEE16 .align 2, 0 _080CEE10: .4byte 0x03004b00 _080CEE14: ldr r6, _080CEE50 _080CEE16: ldr r4, _080CEE54 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r6 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x8 strh r0, [r5, 0x22] movs r0, 0x8 strh r0, [r5, 0x2E] ldr r0, _080CEE58 str r0, [r5, 0x1C] ldr r1, _080CEE5C adds r0, r5, 0 bl oamt_set_x3A_32 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CEE50: .4byte 0x0000fff0 _080CEE54: .4byte 0x0202f7c8 _080CEE58: .4byte sub_80782D8 _080CEE5C: .4byte move_anim_8072740 thumb_func_end sub_80CEDF0 thumb_func_start sub_80CEE60 sub_80CEE60: @ 80CEE60 push {r4,r5,lr} adds r4, r0, 0 bl sub_8078650 ldrh r0, [r4, 0x22] adds r0, 0x8 strh r0, [r4, 0x22] ldr r5, _080CEED8 ldrb r1, [r5, 0x2] adds r0, r4, 0 bl StartSpriteAnim ldr r2, _080CEEDC movs r0, 0x4 ldrsh r1, [r5, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _080CEEA0 lsls r2, r0, 4 ldrb r1, [r4, 0x5] movs r0, 0xF ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] _080CEEA0: movs r1, 0 ldrsh r0, [r5, r1] movs r2, 0x20 cmp r0, 0 bne _080CEEAC ldr r2, _080CEEE0 _080CEEAC: movs r0, 0x28 strh r0, [r4, 0x2E] ldrh r1, [r4, 0x20] strh r1, [r4, 0x30] lsls r0, r2, 16 asrs r0, 16 adds r0, r1 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] subs r0, 0x28 strh r0, [r4, 0x36] adds r0, r4, 0 bl obj_translate_based_on_private_1_2_3_4 ldrh r0, [r5, 0x6] strh r0, [r4, 0x38] ldr r0, _080CEEE4 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CEED8: .4byte 0x03004b00 _080CEEDC: .4byte gUnknown_083D712C _080CEEE0: .4byte 0x0000ffe0 _080CEEE4: .4byte sub_80CEEE8 thumb_func_end sub_80CEE60 thumb_func_start sub_80CEEE8 sub_80CEEE8: @ 80CEEE8 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 bne _080CEF38 movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0x8 bl sine lsls r0, 16 lsrs r1, r0, 16 ldrh r2, [r4, 0x24] movs r3, 0x24 ldrsh r0, [r4, r3] cmp r0, 0 bge _080CEF14 lsls r0, r1, 16 negs r0, r0 lsrs r1, r0, 16 _080CEF14: lsls r0, r1, 16 asrs r0, 16 adds r0, r2 strh r0, [r4, 0x24] movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0x4 bl sine ldrh r3, [r4, 0x26] adds r0, r3 strh r0, [r4, 0x26] ldrh r0, [r4, 0x38] adds r0, 0x8 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] b _080CEF3E _080CEF38: adds r0, r4, 0 bl move_anim_8072740 _080CEF3E: pop {r4} pop {r0} bx r0 thumb_func_end sub_80CEEE8 thumb_func_start sub_80CEF44 sub_80CEF44: @ 80CEF44 push {r4-r6,lr} adds r6, r1, 0 lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CEF64 adds r0, r5, 0 movs r1, 0x5 bl sub_807A100 adds r0, 0x8 b _080CEF6E _080CEF64: adds r0, r5, 0 movs r1, 0x4 bl sub_807A100 subs r0, 0x8 _080CEF6E: strh r0, [r6, 0x20] adds r0, r5, 0 movs r1, 0x3 bl sub_8077ABC adds r4, r0, 0 adds r0, r5, 0 movs r1, 0 bl sub_807A100 lsls r4, 24 lsrs r4, 24 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _080CEF90 adds r0, 0x3 _080CEF90: asrs r0, 2 subs r0, r4, r0 strh r0, [r6, 0x22] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80CEF44 thumb_func_start sub_80CEF9C sub_80CEF9C: @ 80CEF9C push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080CEFB0 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080CEFB8 ldr r0, _080CEFB4 b _080CEFBA .align 2, 0 _080CEFB0: .4byte 0x03004b00 _080CEFB4: .4byte 0x0202f7c8 _080CEFB8: ldr r0, _080CEFF8 _080CEFBA: ldrb r4, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80CEF44 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r1, 31 ldr r0, _080CEFFC ldrh r0, [r0, 0x2] strh r0, [r5, 0x2E] adds r0, r1, 0x2 strh r0, [r5, 0x30] adds r0, r5, 0 bl StartSpriteAnim ldr r1, _080CF000 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080CF004 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CEFF8: .4byte 0x0202f7c9 _080CEFFC: .4byte 0x03004b00 _080CF000: .4byte sub_80CF008 _080CF004: .4byte sub_8078600 thumb_func_end sub_80CEF9C thumb_func_start sub_80CF008 sub_80CF008: @ 80CF008 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bne _080CF030 ldr r1, _080CF038 adds r0, r4, 0 bl oamt_set_x3A_32 ldrh r1, [r4, 0x30] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim ldr r0, _080CF03C str r0, [r4, 0x1C] _080CF030: pop {r4} pop {r0} bx r0 .align 2, 0 _080CF038: .4byte move_anim_8072740 _080CF03C: .4byte sub_8078600 thumb_func_end sub_80CF008 thumb_func_start sub_80CF040 sub_80CF040: @ 80CF040 push {r4,lr} adds r4, r0, 0 ldr r0, _080CF054 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080CF05C ldr r0, _080CF058 b _080CF05E .align 2, 0 _080CF054: .4byte 0x03004b00 _080CF058: .4byte 0x0202f7c8 _080CF05C: ldr r0, _080CF07C _080CF05E: ldrb r0, [r0] adds r1, r4, 0 bl sub_80CEF44 movs r0, 0 strh r0, [r4, 0x2E] ldr r1, _080CF080 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CF084 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CF07C: .4byte 0x0202f7c9 _080CF080: .4byte sub_80CF088 _080CF084: .4byte sub_80785E4 thumb_func_end sub_80CF040 thumb_func_start sub_80CF088 sub_80CF088: @ 80CF088 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _080CF0AE adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim ldr r1, _080CF0B4 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CF0B8 str r0, [r4, 0x1C] _080CF0AE: pop {r4} pop {r0} bx r0 .align 2, 0 _080CF0B4: .4byte move_anim_8074EE0 _080CF0B8: .4byte sub_80785E4 thumb_func_end sub_80CF088 thumb_func_start sub_80CF0BC sub_80CF0BC: @ 80CF0BC push {r4-r6,lr} adds r4, r0, 0 ldr r0, _080CF0D0 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080CF0D8 ldr r0, _080CF0D4 b _080CF0DA .align 2, 0 _080CF0D0: .4byte 0x03004b00 _080CF0D4: .4byte 0x0202f7c8 _080CF0D8: ldr r0, _080CF12C _080CF0DA: ldrb r5, [r0] adds r0, r5, 0 movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 movs r6, 0 strh r0, [r4, 0x20] adds r0, r5, 0 movs r1, 0x2 bl sub_807A100 strh r0, [r4, 0x22] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 bgt _080CF102 movs r0, 0xA strh r0, [r4, 0x22] _080CF102: movs r0, 0x1 strh r0, [r4, 0x2E] strh r6, [r4, 0x30] adds r1, r4, 0 adds r1, 0x43 ldrb r0, [r1] strh r0, [r4, 0x32] ldrb r0, [r1] adds r0, 0x4 strh r0, [r4, 0x34] strh r6, [r4, 0x36] ldr r1, _080CF130 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CF134 str r0, [r4, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CF12C: .4byte 0x0202f7c9 _080CF130: .4byte sub_80CF138 _080CF134: .4byte sub_80785E4 thumb_func_end sub_80CF0BC thumb_func_start sub_80CF138 sub_80CF138: @ 80CF138 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x36] adds r0, 0x1 strh r0, [r1, 0x36] lsls r0, 16 asrs r0, 16 cmp r0, 0xC ble _080CF14E ldr r0, _080CF154 str r0, [r1, 0x1C] _080CF14E: pop {r0} bx r0 .align 2, 0 _080CF154: .4byte sub_80CF158 thumb_func_end sub_80CF138 thumb_func_start sub_80CF158 sub_80CF158: @ 80CF158 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x30] adds r1, r0, 0x4 strh r1, [r2, 0x30] lsls r0, r1, 16 asrs r0, 16 cmp r0, 0xFE ble _080CF18A ldrh r0, [r2, 0x2E] subs r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0 bne _080CF184 strh r0, [r2, 0x24] ldr r0, _080CF180 str r0, [r2, 0x1C] b _080CF1C0 .align 2, 0 _080CF180: .4byte sub_80CF088 _080CF184: movs r0, 0xFF ands r1, r0 strh r1, [r2, 0x30] _080CF18A: movs r1, 0x30 ldrsh r0, [r2, r1] cmp r0, 0x4F ble _080CF19A ldrh r0, [r2, 0x34] adds r1, r2, 0 adds r1, 0x43 strb r0, [r1] _080CF19A: movs r3, 0x30 ldrsh r0, [r2, r3] cmp r0, 0x9F ble _080CF1AA ldrh r0, [r2, 0x32] adds r1, r2, 0 adds r1, 0x43 strb r0, [r1] _080CF1AA: ldr r1, _080CF1C4 movs r3, 0x30 ldrsh r0, [r2, r3] lsls r0, 1 adds r0, r1 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 asrs r1, r0, 1 adds r0, r1 strh r0, [r2, 0x24] _080CF1C0: pop {r0} bx r0 .align 2, 0 _080CF1C4: .4byte gSineTable thumb_func_end sub_80CF158 thumb_func_start sub_80CF1C8 sub_80CF1C8: @ 80CF1C8 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080CF1DC movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080CF1E4 ldr r0, _080CF1E0 b _080CF1E6 .align 2, 0 _080CF1DC: .4byte 0x03004b00 _080CF1E0: .4byte 0x0202f7c8 _080CF1E4: ldr r0, _080CF208 _080CF1E6: ldrb r4, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80CEF44 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CF20C adds r0, r5, 0 movs r1, 0 bl StartSpriteAnim movs r0, 0x2 b _080CF216 .align 2, 0 _080CF208: .4byte 0x0202f7c9 _080CF20C: adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnim movs r0, 0x3 _080CF216: strh r0, [r5, 0x2E] ldr r0, _080CF224 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CF224: .4byte sub_80CF228 thumb_func_end sub_80CF1C8 thumb_func_start sub_80CF228 sub_80CF228: @ 80CF228 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0xA ble _080CF256 movs r0, 0 strh r0, [r4, 0x30] ldrh r1, [r4, 0x2E] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim ldr r1, _080CF25C adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CF260 str r0, [r4, 0x1C] _080CF256: pop {r4} pop {r0} bx r0 .align 2, 0 _080CF25C: .4byte sub_80CF264 _080CF260: .4byte sub_8078600 thumb_func_end sub_80CF228 thumb_func_start sub_80CF264 sub_80CF264: @ 80CF264 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x30] adds r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _080CF27C adds r0, r1, 0 bl move_anim_8072740 _080CF27C: pop {r0} bx r0 thumb_func_end sub_80CF264 thumb_func_start sub_80CF280 sub_80CF280: @ 80CF280 push {r4,r5,lr} adds r4, r0, 0 bl sub_8078650 ldr r5, _080CF2C4 movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 bl sub_807867C ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldrh r0, [r5, 0x4] strh r0, [r4, 0x30] ldrh r0, [r5, 0x8] strh r0, [r4, 0x32] ldrh r0, [r5, 0xA] strh r0, [r4, 0x34] ldrh r0, [r5, 0x6] strh r0, [r4, 0x36] ldr r1, _080CF2C8 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r1, _080CF2CC str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CF2C4: .4byte 0x03004b00 _080CF2C8: .4byte move_anim_8074EE0 _080CF2CC: .4byte sub_8078278 thumb_func_end sub_80CF280 thumb_func_start sub_80CF2D0 sub_80CF2D0: @ 80CF2D0 push {r4,lr} adds r4, r0, 0 ldr r0, _080CF2E4 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080CF2EC ldr r0, _080CF2E8 b _080CF2EE .align 2, 0 _080CF2E4: .4byte 0x03004b00 _080CF2E8: .4byte 0x0202f7c8 _080CF2EC: ldr r0, _080CF308 _080CF2EE: ldrb r0, [r0] adds r1, r4, 0 bl sub_80CEF44 movs r0, 0 strh r0, [r4, 0x2E] strh r0, [r4, 0x30] ldr r0, _080CF30C str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CF308: .4byte 0x0202f7c9 _080CF30C: .4byte sub_80CF310 thumb_func_end sub_80CF2D0 thumb_func_start sub_80CF310 sub_80CF310: @ 80CF310 push {lr} adds r1, r0, 0 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0x1 beq _080CF342 cmp r0, 0x1 bgt _080CF326 cmp r0, 0 beq _080CF32C b _080CF370 _080CF326: cmp r0, 0x2 beq _080CF35C b _080CF370 _080CF32C: ldrh r0, [r1, 0x26] subs r0, 0x3 strh r0, [r1, 0x26] ldrh r0, [r1, 0x30] adds r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bne _080CF370 b _080CF354 _080CF342: ldrh r0, [r1, 0x26] adds r0, 0x3 strh r0, [r1, 0x26] ldrh r0, [r1, 0x30] subs r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 cmp r0, 0 bne _080CF370 _080CF354: ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] b _080CF370 _080CF35C: ldrh r0, [r1, 0x30] adds r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x40 bne _080CF370 adds r0, r1, 0 bl move_anim_8072740 _080CF370: pop {r0} bx r0 thumb_func_end sub_80CF310 thumb_func_start sub_80CF374 sub_80CF374: @ 80CF374 push {r4,lr} adds r4, r0, 0 ldr r3, _080CF3C0 movs r0, 0x32 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r4, 0x30] ldrh r2, [r0, 0x24] adds r1, r2 strh r1, [r0, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] negs r0, r0 strh r0, [r4, 0x30] movs r0, 0x2E ldrsh r2, [r4, r0] cmp r2, 0 bne _080CF3B2 movs r0, 0x32 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r2, [r0, 0x24] adds r0, r4, 0 bl move_anim_8074EE0 _080CF3B2: ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] pop {r4} pop {r0} bx r0 .align 2, 0 _080CF3C0: .4byte 0x02020004 thumb_func_end sub_80CF374 thumb_func_start sub_80CF3C4 sub_80CF3C4: @ 80CF3C4 push {r4-r6,lr} adds r5, r0, 0 ldr r4, _080CF40C ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r1, _080CF410 ldr r0, _080CF414 ldrb r0, [r0] adds r0, r1 ldrb r6, [r0] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CF41C ldr r0, _080CF418 ldrh r1, [r5, 0x20] ldrh r2, [r0] subs r1, r2 strh r1, [r5, 0x20] adds r1, r0, 0 b _080CF426 .align 2, 0 _080CF40C: .4byte 0x0202f7c8 _080CF410: .4byte 0x02024be0 _080CF414: .4byte 0x0202f7c9 _080CF418: .4byte 0x03004b00 _080CF41C: ldr r1, _080CF450 ldrh r0, [r1] ldrh r2, [r5, 0x20] adds r0, r2 strh r0, [r5, 0x20] _080CF426: ldrh r0, [r1, 0x2] ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] ldrh r0, [r1, 0x4] strh r0, [r5, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r5, 0x30] strh r6, [r5, 0x32] ldr r0, _080CF454 str r0, [r5, 0x1C] adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080CF450: .4byte 0x03004b00 _080CF454: .4byte sub_80CF374 thumb_func_end sub_80CF3C4 thumb_func_start sub_80CF458 sub_80CF458: @ 80CF458 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r1, _080CF484 ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r4, 0x30] ldrh r0, [r1, 0x8] strh r0, [r4, 0x38] ldr r0, _080CF488 str r0, [r4, 0x1C] ldr r1, _080CF48C adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080CF484: .4byte 0x03004b00 _080CF488: .4byte sub_80782D8 _080CF48C: .4byte sub_80CF490 thumb_func_end sub_80CF458 thumb_func_start sub_80CF490 sub_80CF490: @ 80CF490 push {lr} ldrh r1, [r0, 0x30] strh r1, [r0, 0x2E] ldrh r1, [r0, 0x20] strh r1, [r0, 0x32] ldrh r1, [r0, 0x22] adds r1, 0xF strh r1, [r0, 0x36] ldr r1, _080CF4B0 str r1, [r0, 0x1C] ldr r1, _080CF4B4 bl oamt_set_x3A_32 pop {r0} bx r0 .align 2, 0 _080CF4B0: .4byte sub_8078B34 _080CF4B4: .4byte sub_80CF4B8 thumb_func_end sub_80CF490 thumb_func_start sub_80CF4B8 sub_80CF4B8: @ 80CF4B8 push {lr} adds r1, r0, 0 ldrh r2, [r1, 0x38] movs r3, 0x38 ldrsh r0, [r1, r3] cmp r0, 0 bne _080CF4CE adds r0, r1, 0 bl move_anim_8072740 b _080CF4D2 _080CF4CE: subs r0, r2, 0x1 strh r0, [r1, 0x38] _080CF4D2: pop {r0} bx r0 thumb_func_end sub_80CF4B8 thumb_func_start sub_80CF4D8 sub_80CF4D8: @ 80CF4D8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080CF504 ldr r0, _080CF508 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8078E70 ldr r1, _080CF50C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080CF510 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080CF504: .4byte 0x02024be0 _080CF508: .4byte 0x0202f7c8 _080CF50C: .4byte 0x03004b20 _080CF510: .4byte sub_80CF514 thumb_func_end sub_80CF4D8 thumb_func_start sub_80CF514 sub_80CF514: @ 80CF514 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080CF544 ldr r0, _080CF548 ldrb r0, [r0] adds r1, r0, r1 ldrb r4, [r1] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CF550 ldr r1, _080CF54C lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x8] negs r0, r0 lsls r0, 16 lsrs r3, r0, 16 adds r6, r2, 0 b _080CF55E .align 2, 0 _080CF544: .4byte 0x02024be0 _080CF548: .4byte 0x0202f7c8 _080CF54C: .4byte 0x03004b20 _080CF550: ldr r2, _080CF590 lsls r1, r5, 2 adds r0, r1, r5 lsls r0, 3 adds r0, r2 ldrh r3, [r0, 0x8] adds r6, r1, 0 _080CF55E: movs r2, 0x80 lsls r2, 1 adds r0, r4, 0 adds r1, r2, 0 bl obj_id_set_rotscale ldr r1, _080CF590 adds r0, r6, r5 lsls r0, 3 adds r1, r0, r1 movs r2, 0xA ldrsh r0, [r1, r2] cmp r0, 0 bne _080CF598 ldrh r0, [r1, 0x8] adds r0, 0xB0 strh r0, [r1, 0x8] ldr r1, _080CF594 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 ldrh r1, [r0, 0x26] adds r1, 0x1 b _080CF5C2 .align 2, 0 _080CF590: .4byte 0x03004b20 _080CF594: .4byte 0x02020004 _080CF598: cmp r0, 0x1 bne _080CF5AE ldrh r0, [r1, 0xE] adds r0, 0x1 strh r0, [r1, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x1E bne _080CF608 movs r0, 0x2 b _080CF606 _080CF5AE: ldrh r0, [r1, 0x8] subs r0, 0xB0 strh r0, [r1, 0x8] ldr r1, _080CF5FC lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 ldrh r1, [r0, 0x26] subs r1, 0x1 _080CF5C2: strh r1, [r0, 0x26] adds r0, r4, 0 bl sub_8078F9C ldr r0, _080CF600 adds r1, r6, r5 lsls r1, 3 adds r1, r0 movs r3, 0x8 ldrsh r2, [r1, r3] movs r0, 0xF2 lsls r0, 4 cmp r2, r0 beq _080CF5E2 cmp r2, 0 bne _080CF608 _080CF5E2: ldrh r2, [r1, 0xA] movs r3, 0xA ldrsh r0, [r1, r3] cmp r0, 0x2 bne _080CF604 adds r0, r4, 0 bl sub_8078F40 adds r0, r5, 0 bl move_anim_task_del b _080CF608 .align 2, 0 _080CF5FC: .4byte 0x02020004 _080CF600: .4byte 0x03004b20 _080CF604: adds r0, r2, 0x1 _080CF606: strh r0, [r1, 0xA] _080CF608: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80CF514 thumb_func_start sub_80CF610 sub_80CF610: @ 80CF610 push {r4,r5,lr} adds r4, r0, 0 bl sub_8078650 ldr r5, _080CF658 movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 bl sub_807867C ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldr r0, _080CF65C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CF660 adds r2, r4, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x1 orrs r1, r0 strb r1, [r2] movs r3, 0x4 ldrsh r0, [r5, r3] cmp r0, 0 beq _080CF674 movs r0, 0x2 orrs r1, r0 strb r1, [r2] b _080CF674 .align 2, 0 _080CF658: .4byte 0x03004b00 _080CF65C: .4byte 0x0202f7c8 _080CF660: movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0 beq _080CF674 adds r2, r4, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] _080CF674: ldr r0, _080CF688 str r0, [r4, 0x1C] ldr r1, _080CF68C adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080CF688: .4byte sub_8078600 _080CF68C: .4byte move_anim_8072740 thumb_func_end sub_80CF610 thumb_func_start sub_80CF690 sub_80CF690: @ 80CF690 push {r4,lr} adds r4, r0, 0 movs r1, 0 bl sub_80787B0 ldr r0, _080CF6AC str r0, [r4, 0x1C] ldr r1, _080CF6B0 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080CF6AC: .4byte sub_80785E4 _080CF6B0: .4byte sub_80CF6B4 thumb_func_end sub_80CF690 thumb_func_start sub_80CF6B4 sub_80CF6B4: @ 80CF6B4 push {lr} movs r1, 0x6 strh r1, [r0, 0x2E] ldrh r1, [r0, 0x20] strh r1, [r0, 0x32] ldrh r1, [r0, 0x22] subs r1, 0x20 strh r1, [r0, 0x36] ldr r1, _080CF6D4 str r1, [r0, 0x1C] ldr r1, _080CF6D8 bl oamt_set_x3A_32 pop {r0} bx r0 .align 2, 0 _080CF6D4: .4byte sub_8078B34 _080CF6D8: .4byte move_anim_8072740 thumb_func_end sub_80CF6B4 thumb_func_start sub_80CF6DC sub_80CF6DC: @ 80CF6DC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r5, r0, 0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080CF700 ldr r1, _080CF6FC ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] b _080CF722 .align 2, 0 _080CF6FC: .4byte 0x03004b00 _080CF700: ldr r0, _080CF7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CF722 ldr r1, _080CF7CC ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] ldrh r0, [r1, 0x6] negs r0, r0 strh r0, [r1, 0x6] _080CF722: adds r0, r5, 0 movs r1, 0x1 bl sub_80787B0 ldr r4, _080CF7D0 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r6, _080CF7CC lsrs r0, 24 ldrh r1, [r6, 0x4] adds r0, r1 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r2, [r6, 0x6] adds r0, r2 lsls r0, 16 lsrs r0, 16 adds r7, r0, 0 ldrh r1, [r5, 0x20] mov r2, r8 lsls r0, r2, 16 asrs r0, 16 subs r0, r1 lsls r0, 16 asrs r0, 16 ldrh r2, [r5, 0x22] lsls r1, r7, 16 asrs r1, 16 subs r1, r2 lsls r1, 16 asrs r1, 16 bl sub_80790F0 lsls r0, 16 movs r1, 0xF0 lsls r1, 24 adds r0, r1 lsrs r4, r0, 16 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080CF794 ldr r2, _080CF7D4 adds r0, r4, r2 lsls r0, 16 lsrs r4, r0, 16 _080CF794: movs r3, 0x80 lsls r3, 1 str r4, [sp] adds r0, r5, 0 movs r1, 0 adds r2, r3, 0 bl sub_8078FDC ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] mov r0, r8 strh r0, [r5, 0x32] strh r7, [r5, 0x36] ldr r0, _080CF7D8 str r0, [r5, 0x1C] ldr r1, _080CF7DC adds r0, r5, 0 bl oamt_set_x3A_32 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CF7C8: .4byte 0x0202f7c8 _080CF7CC: .4byte 0x03004b00 _080CF7D0: .4byte 0x0202f7c9 _080CF7D4: .4byte 0xffffa000 _080CF7D8: .4byte sub_8078B34 _080CF7DC: .4byte move_anim_8072740 thumb_func_end sub_80CF6DC thumb_func_start sub_80CF7E0 sub_80CF7E0: @ 80CF7E0 push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x2E] subs r1, r0, 0x1 strh r1, [r3, 0x2E] lsls r0, 16 cmp r0, 0 bgt _080CF80A ldr r2, _080CF810 movs r0, 0x3C ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r1, [r0, 0xA] subs r1, 0x1 strh r1, [r0, 0xA] adds r0, r3, 0 bl DestroySprite _080CF80A: pop {r0} bx r0 .align 2, 0 _080CF810: .4byte 0x03004b20 thumb_func_end sub_80CF7E0 thumb_func_start sub_80CF814 sub_80CF814: @ 80CF814 push {r4,lr} adds r2, r0, 0 movs r0, 0x3C ldrsh r1, [r2, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _080CF844 adds r4, r0, r1 movs r3, 0x2E ldrsh r1, [r2, r3] movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 ble _080CF848 ldrh r0, [r2, 0x34] ldrh r1, [r2, 0x38] adds r0, r1 strh r0, [r2, 0x38] ldrh r0, [r2, 0x36] ldrh r3, [r2, 0x3A] adds r0, r3 b _080CF856 .align 2, 0 _080CF844: .4byte 0x03004b20 _080CF848: ldrh r0, [r2, 0x38] ldrh r1, [r2, 0x34] subs r0, r1 strh r0, [r2, 0x38] ldrh r0, [r2, 0x3A] ldrh r1, [r2, 0x36] subs r0, r1 _080CF856: strh r0, [r2, 0x3A] ldrh r0, [r2, 0x38] ldrh r1, [r2, 0x30] adds r3, r0, r1 strh r3, [r2, 0x30] ldrh r0, [r2, 0x3A] ldrh r1, [r2, 0x32] adds r0, r1 strh r0, [r2, 0x32] ldrh r1, [r4, 0x16] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080CF87A lsls r0, r3, 16 lsrs r0, 24 negs r0, r0 b _080CF87E _080CF87A: lsls r0, r3, 16 lsrs r0, 24 _080CF87E: strh r0, [r2, 0x24] ldrh r1, [r4, 0x18] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080CF892 ldrh r0, [r2, 0x32] lsrs r0, 8 negs r0, r0 b _080CF896 _080CF892: ldrh r0, [r2, 0x32] lsrs r0, 8 _080CF896: strh r0, [r2, 0x26] ldrh r0, [r2, 0x2E] subs r1, r0, 0x1 strh r1, [r2, 0x2E] lsls r0, 16 cmp r0, 0 bgt _080CF8AC movs r0, 0x1E strh r0, [r2, 0x2E] ldr r0, _080CF8B4 str r0, [r2, 0x1C] _080CF8AC: pop {r4} pop {r0} bx r0 .align 2, 0 _080CF8B4: .4byte sub_80CF7E0 thumb_func_end sub_80CF814 thumb_func_start sub_80CF8B8 sub_80CF8B8: @ 80CF8B8 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 movs r0, 0x3C ldrsh r1, [r7, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _080CF8FC adds r6, r0, r1 ldrh r2, [r6, 0x16] movs r1, 0x2 negs r1, r1 adds r0, r1, 0 ands r0, r2 ldrh r3, [r7, 0x30] adds r2, r0, r3 strh r2, [r7, 0x30] ldrh r0, [r6, 0x18] ands r1, r0 ldrh r0, [r7, 0x32] adds r1, r0 strh r1, [r7, 0x32] ldrh r1, [r6, 0x16] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080CF900 lsls r0, r2, 16 lsrs r0, 24 negs r0, r0 b _080CF904 .align 2, 0 _080CF8FC: .4byte 0x03004b20 _080CF900: lsls r0, r2, 16 lsrs r0, 24 _080CF904: strh r0, [r7, 0x24] ldrh r1, [r6, 0x18] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080CF918 ldrh r0, [r7, 0x32] lsrs r0, 8 negs r0, r0 b _080CF91C _080CF918: ldrh r0, [r7, 0x32] lsrs r0, 8 _080CF91C: strh r0, [r7, 0x26] ldrh r0, [r7, 0x2E] subs r1, r0, 0x1 strh r1, [r7, 0x2E] lsls r0, 16 cmp r0, 0 bgt _080CF9E8 movs r4, 0 movs r0, 0x8 strh r0, [r7, 0x2E] movs r0, 0x4 strh r0, [r6, 0x12] movs r0, 0x80 lsls r0, 5 bl sub_81174E0 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r7, 0x24] ldrh r1, [r7, 0x20] adds r2, r0, r1 strh r2, [r7, 0x20] ldrh r0, [r7, 0x26] ldrh r3, [r7, 0x22] adds r0, r3 strh r0, [r7, 0x22] strh r4, [r7, 0x26] strh r4, [r7, 0x24] ldrh r3, [r6, 0x1E] movs r0, 0x1E ldrsh r1, [r6, r0] lsls r0, r2, 16 asrs r0, 16 cmp r1, r0 blt _080CF966 subs r0, r3, r2 b _080CF968 _080CF966: subs r0, r2, r3 _080CF968: lsls r0, 24 lsrs r4, r0, 16 ldrh r3, [r6, 0x20] movs r0, 0x20 ldrsh r1, [r6, r0] ldrh r2, [r7, 0x22] movs r6, 0x22 ldrsh r0, [r7, r6] cmp r1, r0 blt _080CF980 subs r0, r3, r2 b _080CF982 _080CF980: subs r0, r2, r3 _080CF982: lsls r0, 24 lsrs r0, 16 mov r8, r0 movs r0, 0 strh r0, [r7, 0x32] strh r0, [r7, 0x30] strh r0, [r7, 0x3A] strh r0, [r7, 0x38] lsls r0, r4, 16 asrs r0, 16 lsls r5, 16 asrs r5, 16 adds r1, r5, 0 bl sub_81174C4 adds r4, r0, 0 lsls r4, 16 asrs r4, 16 movs r6, 0xE0 lsls r6, 1 adds r0, r6, 0 bl sub_81174E0 adds r1, r0, 0 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_81174C4 strh r0, [r7, 0x34] mov r1, r8 lsls r0, r1, 16 asrs r0, 16 adds r1, r5, 0 bl sub_81174C4 adds r4, r0, 0 lsls r4, 16 asrs r4, 16 adds r0, r6, 0 bl sub_81174E0 adds r1, r0, 0 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_81174C4 strh r0, [r7, 0x36] ldr r0, _080CF9F4 str r0, [r7, 0x1C] _080CF9E8: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CF9F4: .4byte sub_80CF814 thumb_func_end sub_80CF8B8 thumb_func_start sub_80CF9F8 sub_80CF9F8: @ 80CF9F8 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080CFA1C lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r1, 0xA ldrsh r0, [r0, r1] cmp r0, 0 bne _080CFA16 adds r0, r2, 0 bl move_anim_task_del _080CFA16: pop {r0} bx r0 .align 2, 0 _080CFA1C: .4byte 0x03004b20 thumb_func_end sub_80CF9F8 thumb_func_start sub_80CFA20 sub_80CFA20: @ 80CFA20 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r1, _080CFA74 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r5, r0, r1 ldrh r0, [r5, 0x8] subs r1, r0, 0x1 strh r1, [r5, 0x8] lsls r0, 16 cmp r0, 0 bgt _080CFAF4 ldr r0, _080CFA78 movs r2, 0x1A ldrsh r1, [r5, r2] movs r3, 0x1C ldrsh r2, [r5, r3] ldrb r3, [r5, 0xC] ldrb r4, [r5, 0xA] subs r3, r4 lsls r3, 24 lsrs r3, 24 bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r12, r0 lsls r0, 4 add r0, r12 lsls r0, 2 ldr r1, _080CFA7C adds r6, r0, r1 movs r1, 0x10 ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080CFA80 cmp r0, 0x2 beq _080CFA96 b _080CFAA4 .align 2, 0 _080CFA74: .4byte 0x03004b20 _080CFA78: .4byte gSpriteTemplate_83D74BC _080CFA7C: .4byte 0x02020004 _080CFA80: ldrb r2, [r6, 0x3] lsls r1, r2, 26 lsrs r1, 27 movs r0, 0x18 orrs r1, r0 lsls r1, 1 subs r0, 0x57 ands r0, r2 orrs r0, r1 strb r0, [r6, 0x3] b _080CFAA4 _080CFA96: ldrb r0, [r6, 0x3] movs r1, 0x3F negs r1, r1 ands r1, r0 movs r0, 0x10 orrs r1, r0 strb r1, [r6, 0x3] _080CFAA4: ldr r3, _080CFAFC lsls r2, r7, 2 adds r2, r7 lsls r2, 3 adds r4, r2, r3 ldrh r0, [r4, 0x12] ldrh r1, [r4, 0x14] subs r0, r1 strh r0, [r6, 0x2E] strh r7, [r6, 0x3C] movs r1, 0xA ldrsh r0, [r4, r1] adds r0, 0xD lsls r0, 1 adds r0, r2 adds r3, 0x8 adds r0, r3 mov r2, r12 strh r2, [r0] ldrh r0, [r4, 0xE] strh r0, [r4, 0x8] ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] movs r0, 0x3F negs r0, r0 bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x9A bl audio_play_and_stuff movs r3, 0xA ldrsh r0, [r4, r3] cmp r0, 0x2 ble _080CFAF4 ldr r0, _080CFB00 str r0, [r4] _080CFAF4: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CFAFC: .4byte 0x03004b20 _080CFB00: .4byte sub_80CF9F8 thumb_func_end sub_80CFA20 thumb_func_start sub_80CFB04 sub_80CFB04: @ 80CFB04 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 movs r0, 0 mov r9, r0 movs r5, 0 mov r0, sp mov r1, r9 strh r1, [r0] mov r4, sp adds r4, 0x2 strh r1, [r4] bl sub_8076BE0 lsls r0, 24 mov r10, r4 cmp r0, 0 beq _080CFB70 ldr r1, _080CFB60 lsls r2, r7, 2 adds r0, r2, r7 lsls r0, 3 adds r0, r1 movs r1, 0x2 strh r1, [r0, 0x10] ldr r3, _080CFB64 ldrh r0, [r3] negs r0, r0 strh r0, [r3] ldrh r1, [r3, 0x4] movs r0, 0x1 ands r0, r1 mov r8, r2 cmp r0, 0 beq _080CFB68 movs r0, 0x2 negs r0, r0 ands r0, r1 strh r0, [r3, 0x4] b _080CFBCA .align 2, 0 _080CFB60: .4byte 0x03004b20 _080CFB64: .4byte 0x03004b00 _080CFB68: movs r0, 0x1 orrs r0, r1 strh r0, [r3, 0x4] b _080CFBCA _080CFB70: ldr r1, _080CFBB4 ldr r0, _080CFBB8 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] movs r3, 0x1 adds r0, r3, 0 ands r0, r1 lsls r2, r7, 2 mov r8, r2 cmp r0, 0 bne _080CFBCA ldr r1, _080CFBBC adds r0, r2, r7 lsls r0, 3 adds r0, r1 strh r3, [r0, 0x10] ldr r2, _080CFBC0 ldrh r0, [r2] negs r0, r0 strh r0, [r2] ldrh r0, [r2, 0x2] negs r0, r0 strh r0, [r2, 0x2] ldrh r1, [r2, 0x4] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080CFBC4 movs r0, 0x2 negs r0, r0 ands r0, r1 b _080CFBC8 .align 2, 0 _080CFBB4: .4byte 0x02024a72 _080CFBB8: .4byte 0x0202f7c9 _080CFBBC: .4byte 0x03004b20 _080CFBC0: .4byte 0x03004b00 _080CFBC4: movs r0, 0x1 orrs r0, r1 _080CFBC8: strh r0, [r2, 0x4] _080CFBCA: ldr r5, _080CFC24 ldrb r0, [r5] movs r1, 0 bl sub_8077ABC ldr r1, _080CFC28 mov r3, r8 adds r4, r3, r7 lsls r4, 3 adds r4, r1 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1A] adds r6, r0, 0 ldrb r0, [r5] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] mov r9, r0 ldr r0, _080CFC2C ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080CFC34 ldr r4, _080CFC30 ldrb r1, [r4] movs r0, 0x2 eors r0, r1 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080CFC34 ldrb r0, [r4] movs r1, 0 mov r2, sp mov r3, r10 bl sub_807A3FC b _080CFC56 .align 2, 0 _080CFC24: .4byte 0x0202f7c8 _080CFC28: .4byte 0x03004b20 _080CFC2C: .4byte 0x020239f8 _080CFC30: .4byte 0x0202f7c9 _080CFC34: mov r5, sp ldr r4, _080CFC90 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 mov r1, r10 strh r0, [r1] _080CFC56: mov r4, sp ldr r0, _080CFC94 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 mov r2, sp ldr r3, _080CFC98 ldrh r0, [r3] ldrh r2, [r2] adds r0, r2 strh r0, [r1, 0x1E] strh r0, [r4] ldrh r0, [r3, 0x2] mov r3, r10 ldrh r3, [r3] adds r0, r3 strh r0, [r1, 0x20] mov r1, r10 strh r0, [r1] mov r0, sp ldrh r2, [r0] movs r3, 0 ldrsh r0, [r0, r3] adds r1, r6, 0 cmp r0, r1 blt _080CFC9C subs r0, r2, r1 b _080CFC9E .align 2, 0 _080CFC90: .4byte 0x0202f7c9 _080CFC94: .4byte 0x03004b20 _080CFC98: .4byte 0x03004b00 _080CFC9C: subs r0, r1, r2 _080CFC9E: lsls r0, 16 lsrs r0, 16 lsls r4, r0, 16 asrs r4, 16 ldr r5, _080CFD14 ldrh r1, [r5, 0x4] movs r0, 0x2 negs r0, r0 ands r0, r1 lsls r0, 16 asrs r0, 16 bl sub_81174E0 adds r1, r0, 0 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_81174C4 ldr r2, _080CFD18 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r6, r1, r2 strh r0, [r6, 0x12] movs r1, 0x12 ldrsh r0, [r6, r1] movs r1, 0x80 bl sub_81174C4 strh r0, [r6, 0x14] ldrh r0, [r5, 0x4] strh r0, [r6, 0x16] mov r2, r10 ldrh r1, [r2] movs r3, 0 ldrsh r0, [r2, r3] mov r4, r9 cmp r0, r4 blt _080CFD1C subs r4, r1, r4 lsls r4, 16 asrs r4, 16 movs r1, 0x12 ldrsh r0, [r6, r1] bl sub_81174E0 adds r1, r0, 0 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_81174C4 movs r1, 0x2 negs r1, r1 ands r1, r0 strh r1, [r6, 0x18] b _080CFD3C .align 2, 0 _080CFD14: .4byte 0x03004b00 _080CFD18: .4byte 0x03004b20 _080CFD1C: subs r4, r1 lsls r4, 16 asrs r4, 16 movs r2, 0x12 ldrsh r0, [r6, r2] bl sub_81174E0 adds r1, r0, 0 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_81174C4 movs r1, 0x1 orrs r0, r1 strh r0, [r6, 0x18] _080CFD3C: ldr r1, _080CFD7C mov r3, r8 adds r0, r3, r7 lsls r0, 3 adds r5, r0, r1 ldr r4, _080CFD80 ldrh r0, [r4, 0x6] strh r0, [r5, 0xE] ldrh r1, [r4, 0x8] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080CFD8C movs r0, 0x80 eors r0, r1 strh r0, [r4, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x3F ble _080CFDB4 ldr r0, _080CFD84 ldrb r0, [r0] bl sub_8079E90 lsls r0, 24 lsrs r0, 24 ldr r2, _080CFD88 adds r1, r2, 0 ldrh r4, [r4, 0x8] adds r1, r4 adds r0, r1 b _080CFDC4 .align 2, 0 _080CFD7C: .4byte 0x03004b20 _080CFD80: .4byte 0x03004b00 _080CFD84: .4byte 0x0202f7c9 _080CFD88: .4byte 0x0000ffc0 _080CFD8C: lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x3F ble _080CFDB4 ldr r0, _080CFDAC ldrb r0, [r0] bl sub_8079E90 lsls r0, 24 lsrs r0, 24 ldr r3, _080CFDB0 adds r1, r3, 0 ldrh r4, [r4, 0x8] adds r1, r4 adds r0, r1 b _080CFDC4 .align 2, 0 _080CFDAC: .4byte 0x0202f7c9 _080CFDB0: .4byte 0x0000ffc0 _080CFDB4: ldr r0, _080CFDF0 ldrb r0, [r0] bl sub_8079E90 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x8] subs r0, r1 _080CFDC4: strh r0, [r5, 0xC] ldr r0, _080CFDF4 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0x2 bgt _080CFDDC movs r0, 0x3 strh r0, [r1, 0xC] _080CFDDC: ldr r0, _080CFDF8 str r0, [r1] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CFDF0: .4byte 0x0202f7c9 _080CFDF4: .4byte 0x03004b20 _080CFDF8: .4byte sub_80CFA20 thumb_func_end sub_80CFB04 thumb_func_start sub_80CFDFC sub_80CFDFC: @ 80CFDFC push {r4,lr} adds r4, r0, 0 movs r1, 0 bl sub_80787B0 ldr r0, _080CFE24 ldrh r0, [r0, 0x2] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r1, 0x80 lsls r1, 1 adds r0, r1 strh r0, [r4, 0x2E] ldr r0, _080CFE28 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080CFE24: .4byte gSpriteTemplate_83D75AC _080CFE28: .4byte sub_80CFE2C thumb_func_end sub_80CFDFC thumb_func_start sub_80CFE2C sub_80CFE2C: @ 80CFE2C push {r4-r7,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _080CFE90 movs r0, 0 strh r0, [r4, 0x30] ldrh r5, [r4, 0x2E] ldr r1, _080CFE98 adds r0, r5, 0 adds r0, 0x8 lsls r0, 1 adds r0, r1 ldrh r7, [r0] adds r6, r1, 0 adds r1, r5, 0 adds r1, 0x9 lsls r0, r5, 1 adds r0, r6 adds r2, r0, 0 adds r2, 0x10 movs r3, 0x7 lsls r1, 1 adds r1, r6 _080CFE64: ldrh r0, [r1] strh r0, [r2] adds r1, 0x2 adds r2, 0x2 subs r3, 0x1 cmp r3, 0 bge _080CFE64 adds r0, r5, 0 adds r0, 0xF lsls r0, 1 adds r0, r6 strh r7, [r0] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x18 bne _080CFE90 adds r0, r4, 0 bl move_anim_8072740 _080CFE90: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CFE98: .4byte 0x0202eec8 thumb_func_end sub_80CFE2C thumb_func_start sub_80CFE9C sub_80CFE9C: @ 80CFE9C push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r4, _080CFF3C ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 ldr r4, _080CFF40 lsrs r0, 24 ldrh r1, [r4, 0x6] adds r0, r1 lsls r0, 16 lsrs r7, r0, 16 ldr r0, _080CFF44 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CFEE0 ldrh r0, [r4, 0x4] negs r0, r0 strh r0, [r4, 0x4] _080CFEE0: lsls r0, r6, 16 asrs r0, 16 ldrh r1, [r4, 0x4] adds r0, r1 lsls r0, 16 ldrh r1, [r5, 0x20] lsrs r6, r0, 16 asrs r0, 16 subs r0, r1 lsls r0, 16 asrs r0, 16 ldrh r2, [r5, 0x22] lsls r1, r7, 16 asrs r1, 16 subs r1, r2 lsls r1, 16 asrs r1, 16 bl sub_80790F0 lsls r0, 16 movs r1, 0xC0 lsls r1, 24 adds r0, r1 lsrs r0, 16 movs r3, 0x80 lsls r3, 1 str r0, [sp] adds r0, r5, 0 movs r1, 0 adds r2, r3, 0 bl sub_8078FDC ldrh r0, [r4, 0x8] strh r0, [r5, 0x2E] strh r6, [r5, 0x32] strh r7, [r5, 0x36] ldr r0, _080CFF48 str r0, [r5, 0x1C] ldr r1, _080CFF4C adds r0, r5, 0 bl oamt_set_x3A_32 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080CFF3C: .4byte 0x0202f7c9 _080CFF40: .4byte 0x03004b00 _080CFF44: .4byte 0x0202f7c8 _080CFF48: .4byte sub_8078C00 _080CFF4C: .4byte move_anim_8072740 thumb_func_end sub_80CFE9C thumb_func_start sub_80CFF50 sub_80CFF50: @ 80CFF50 ldr r1, _080CFF60 strh r1, [r0, 0x32] ldrh r1, [r0, 0x22] adds r1, 0x8 strh r1, [r0, 0x22] ldr r1, _080CFF64 str r1, [r0, 0x1C] bx lr .align 2, 0 _080CFF60: .4byte 0x0000fff0 _080CFF64: .4byte sub_80CFF68 thumb_func_end sub_80CFF50 thumb_func_start sub_80CFF68 sub_80CFF68: @ 80CFF68 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x80 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] ldr r0, _080CFFD4 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CFF8C ldrh r0, [r4, 0x24] negs r0, r0 strh r0, [r4, 0x24] _080CFF8C: movs r1, 0x30 ldrsh r0, [r4, r1] movs r2, 0x32 ldrsh r1, [r4, r2] bl sine strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r0, 0x5 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x7E ble _080CFFCC movs r0, 0 strh r0, [r4, 0x30] movs r1, 0x32 ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r4, 0x32] ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _080CFFCC adds r0, r4, 0 bl move_anim_8072740 _080CFFCC: pop {r4} pop {r0} bx r0 .align 2, 0 _080CFFD4: .4byte 0x0202f7c8 thumb_func_end sub_80CFF68 thumb_func_start sub_80CFFD8 sub_80CFFD8: @ 80CFFD8 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 movs r0, 0x14 strh r0, [r4, 0x2E] ldr r5, _080D0024 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] ldr r0, _080D0028 str r0, [r4, 0x1C] adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r1, _080D002C adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D0024: .4byte 0x0202f7c9 _080D0028: .4byte sub_8078B34 _080D002C: .4byte sub_80D0030 thumb_func_end sub_80CFFD8 thumb_func_start sub_80D0030 sub_80D0030: @ 80D0030 push {r4,lr} adds r4, r0, 0 movs r0, 0x3F bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xA6 bl audio_play_and_stuff ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 movs r1, 0 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] strh r1, [r4, 0x26] strh r1, [r4, 0x24] movs r2, 0 movs r1, 0x7 adds r0, r4, 0 adds r0, 0x3C _080D0064: strh r2, [r0] subs r0, 0x2 subs r1, 0x1 cmp r1, 0 bge _080D0064 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x7 ands r0, r1 ldr r2, _080D00AC adds r1, r2, 0 subs r1, r0 strh r1, [r4, 0x3A] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA0 bl __umodsi3 adds r0, 0xA0 strh r0, [r4, 0x3C] ldr r0, _080D00B0 str r0, [r4, 0x1C] adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _080D00AC: .4byte 0x0000fff4 _080D00B0: .4byte sub_80D00B4 thumb_func_end sub_80D0030 thumb_func_start sub_80D00B4 sub_80D00B4: @ 80D00B4 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x3C] ldrh r2, [r4, 0x2E] adds r0, r1, r2 strh r0, [r4, 0x2E] lsls r0, 16 asrs r2, r0, 24 strh r2, [r4, 0x24] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D00D2 negs r0, r2 strh r0, [r4, 0x24] _080D00D2: movs r1, 0x30 ldrsh r0, [r4, r1] movs r2, 0x3A ldrsh r1, [r4, r2] bl sine strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r0, 0x8 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x7E ble _080D0112 movs r0, 0 strh r0, [r4, 0x30] movs r1, 0x32 ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r4, 0x32] ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080D0112 adds r0, r4, 0 bl move_anim_8072740 _080D0112: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D00B4 thumb_func_start sub_80D0118 sub_80D0118: @ 80D0118 push {r4,lr} adds r4, r0, 0 movs r1, 0 bl sub_80787B0 ldr r0, _080D0168 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D0136 ldrh r0, [r4, 0x22] adds r0, 0x10 strh r0, [r4, 0x22] _080D0136: ldr r1, _080D016C ldrh r0, [r1, 0x8] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x4] strh r0, [r4, 0x30] ldrh r0, [r1, 0xA] strh r0, [r4, 0x32] ldrh r0, [r1, 0xC] strh r0, [r4, 0x34] ldrh r0, [r1, 0x6] strh r0, [r4, 0x36] ldr r0, _080D0170 str r0, [r4, 0x1C] ldr r1, _080D0174 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080D0168: .4byte 0x0202f7c8 _080D016C: .4byte 0x03004b00 _080D0170: .4byte sub_8078114 _080D0174: .4byte move_anim_8072740 thumb_func_end sub_80D0118 thumb_func_start sub_80D0178 sub_80D0178: @ 80D0178 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 movs r7, 0x20 ldr r4, _080D01F4 movs r0, 0x10 mov r8, r0 ldr r6, _080D01F8 ldr r0, _080D01FC movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _080D01A4 adds r7, r4, 0 movs r4, 0x20 mov r8, r6 movs r6, 0x10 adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnim _080D01A4: lsls r0, r7, 16 asrs r0, 16 ldrh r1, [r5, 0x20] adds r0, r1 strh r0, [r5, 0x20] lsls r0, r4, 16 asrs r0, 16 ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x22] movs r0, 0x6 strh r0, [r5, 0x2E] ldr r4, _080D0200 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 add r0, r8 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r6 strh r0, [r5, 0x36] ldr r0, _080D0204 str r0, [r5, 0x1C] ldr r1, _080D0208 adds r0, r5, 0 bl oamt_set_x3A_32 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D01F4: .4byte 0x0000ffe0 _080D01F8: .4byte 0x0000fff0 _080D01FC: .4byte 0x03004b00 _080D0200: .4byte 0x0202f7c9 _080D0204: .4byte sub_8078B34 _080D0208: .4byte sub_80D020C thumb_func_end sub_80D0178 thumb_func_start sub_80D020C sub_80D020C: @ 80D020C push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D0222 adds r0, r2, 0 bl move_anim_8072740 _080D0222: pop {r0} bx r0 thumb_func_end sub_80D020C thumb_func_start sub_80D0228 sub_80D0228: @ 80D0228 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 movs r0, 0x20 mov r8, r0 ldr r4, _080D02BC movs r2, 0x10 mov r9, r2 ldr r6, _080D02C0 ldr r7, _080D02C4 ldrh r1, [r7] movs r2, 0 ldrsh r0, [r7, r2] cmp r0, 0 beq _080D025C mov r8, r4 movs r4, 0x20 mov r9, r6 movs r6, 0x10 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnim _080D025C: mov r0, r8 lsls r1, r0, 16 asrs r1, 16 ldrh r2, [r5, 0x20] adds r1, r2 strh r1, [r5, 0x20] lsls r0, r4, 16 asrs r0, 16 ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] movs r0, 0x6 strh r0, [r5, 0x2E] strh r1, [r5, 0x30] ldr r4, _080D02C8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 add r0, r9 strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r6 strh r0, [r5, 0x36] adds r0, r5, 0 bl obj_translate_based_on_private_1_2_3_4 ldrh r0, [r7] strh r0, [r5, 0x38] ldrh r0, [r5, 0x2E] strh r0, [r5, 0x3A] ldr r0, _080D02CC str r0, [r5, 0x1C] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D02BC: .4byte 0x0000ffe0 _080D02C0: .4byte 0x0000fff0 _080D02C4: .4byte 0x03004b00 _080D02C8: .4byte 0x0202f7c9 _080D02CC: .4byte sub_80D02D0 thumb_func_end sub_80D0228 thumb_func_start sub_80D02D0 sub_80D02D0: @ 80D02D0 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080D0334 adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D0334 adds r0, r4, 0 movs r1, 0 bl SeekSpriteAnim adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 movs r2, 0 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] movs r0, 0x2 strh r0, [r4, 0x24] ldr r0, _080D033C strh r0, [r4, 0x26] ldrh r0, [r4, 0x3A] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x30] movs r1, 0x1 eors r0, r1 strh r0, [r4, 0x30] ldrh r0, [r4, 0x32] eors r0, r1 strh r0, [r4, 0x32] strh r2, [r4, 0x36] strh r2, [r4, 0x34] ldr r0, _080D0340 str r0, [r4, 0x1C] _080D0334: pop {r4} pop {r0} bx r0 .align 2, 0 _080D033C: .4byte 0x0000fffe _080D0340: .4byte sub_80D0344 thumb_func_end sub_80D02D0 thumb_func_start sub_80D0344 sub_80D0344: @ 80D0344 push {r4,lr} adds r4, r0, 0 movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 beq _080D035C ldrh r0, [r4, 0x24] negs r0, r0 strh r0, [r4, 0x24] ldrh r0, [r4, 0x26] negs r0, r0 strh r0, [r4, 0x26] _080D035C: ldrh r0, [r4, 0x34] movs r1, 0x1 eors r0, r1 movs r1, 0 strh r0, [r4, 0x34] ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 16 cmp r0, 0x33 bne _080D039E strh r1, [r4, 0x26] strh r1, [r4, 0x24] strh r1, [r4, 0x36] strh r1, [r4, 0x34] adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] ldrh r0, [r4, 0x38] movs r1, 0x1 eors r1, r0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim ldr r0, _080D03A4 str r0, [r4, 0x1C] _080D039E: pop {r4} pop {r0} bx r0 .align 2, 0 _080D03A4: .4byte sub_80D03A8 thumb_func_end sub_80D0344 thumb_func_start sub_80D03A8 sub_80D03A8: @ 80D03A8 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080D03BC adds r0, r4, 0 bl move_anim_8072740 _080D03BC: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D03A8 thumb_func_start sub_80D03C4 sub_80D03C4: @ 80D03C4 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0x1 bl obj_id_for_side_relative_to_move adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0x1 bl sub_8078E70 adds r0, r4, 0 movs r1, 0xD0 movs r2, 0xD0 movs r3, 0 bl obj_id_set_rotscale ldr r1, _080D041C lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x5] lsrs r0, 4 adds r0, 0x10 movs r1, 0 bl sub_8079108 ldr r1, _080D0420 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x50 strh r1, [r0, 0x8] ldr r1, _080D0424 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D041C: .4byte 0x02020004 _080D0420: .4byte 0x03004b20 _080D0424: .4byte sub_80D0428 thumb_func_end sub_80D03C4 thumb_func_start sub_80D0428 sub_80D0428: @ 80D0428 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080D0480 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x8] subs r1, 0x1 strh r1, [r0, 0x8] lsls r1, 16 asrs r1, 16 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080D0478 movs r0, 0x1 bl obj_id_for_side_relative_to_move adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_8078F40 ldr r1, _080D0484 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x5] lsrs r0, 4 adds r0, 0x10 movs r1, 0x1 bl sub_8079108 adds r0, r5, 0 bl move_anim_task_del _080D0478: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D0480: .4byte 0x03004b20 _080D0484: .4byte 0x02020004 thumb_func_end sub_80D0428 thumb_func_start sub_80D0488 sub_80D0488: @ 80D0488 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080D04D4 adds r4, r0 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0x8] movs r1, 0 bl sub_8078E70 strh r5, [r4, 0xA] strh r5, [r4, 0xC] strh r5, [r4, 0xE] movs r0, 0x80 lsls r0, 1 strh r0, [r4, 0x10] strh r5, [r4, 0x12] strh r5, [r4, 0x14] ldr r0, _080D04D8 ldrb r0, [r0] bl sub_8079E90 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x16] ldr r0, _080D04DC str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D04D4: .4byte 0x03004b20 _080D04D8: .4byte 0x0202f7c8 _080D04DC: .4byte sub_80D04E0 thumb_func_end sub_80D0488 thumb_func_start sub_80D04E0 sub_80D04E0: @ 80D04E0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080D0504 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x5 bls _080D04FA b _080D060A _080D04FA: lsls r0, 2 ldr r1, _080D0508 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080D0504: .4byte 0x03004b20 _080D0508: .4byte _080D050C .align 2, 0 _080D050C: .4byte _080D0524 .4byte _080D056C .4byte _080D05A2 .4byte _080D05A8 .4byte _080D05B8 .4byte _080D05EC _080D0524: movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0 beq _080D0534 cmp r0, 0x3 beq _080D0534 cmp r0, 0x6 bne _080D053C _080D0534: adds r0, r4, 0 adds r1, r5, 0 bl sub_80D0614 _080D053C: ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x10] adds r0, 0x28 strh r0, [r4, 0x10] ldrb r0, [r4, 0x8] movs r1, 0x10 ldrsh r2, [r4, r1] adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale ldrb r0, [r4, 0x8] bl sub_8079A64 movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0x20 bne _080D060A ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] b _080D05E4 _080D056C: movs r1, 0x14 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D060A movs r2, 0x12 ldrsh r1, [r4, r2] cmp r1, 0x3 bne _080D0582 strh r0, [r4, 0xC] strh r1, [r4, 0xA] b _080D060A _080D0582: strh r0, [r4, 0xC] strh r0, [r4, 0xE] movs r2, 0x80 lsls r2, 1 strh r2, [r4, 0x10] ldrb r0, [r4, 0x8] adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale ldrb r0, [r4, 0x8] bl sub_8079A64 movs r0, 0x2 strh r0, [r4, 0xA] b _080D060A _080D05A2: movs r0, 0 strh r0, [r4, 0xA] b _080D060A _080D05A8: ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x20 ble _080D060A b _080D05E0 _080D05B8: ldrh r0, [r4, 0xC] adds r0, 0x2 strh r0, [r4, 0xC] ldrh r0, [r4, 0x10] subs r0, 0x50 strh r0, [r4, 0x10] ldrb r0, [r4, 0x8] movs r1, 0x10 ldrsh r2, [r4, r1] adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale ldrb r0, [r4, 0x8] bl sub_8079A64 movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0x20 bne _080D060A _080D05E0: movs r0, 0 strh r0, [r4, 0xC] _080D05E4: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] b _080D060A _080D05EC: ldrb r0, [r4, 0x8] bl sub_8078F40 ldr r2, _080D0610 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strh r1, [r0, 0x26] adds r0, r5, 0 bl move_anim_task_del _080D060A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D0610: .4byte 0x02020004 thumb_func_end sub_80D04E0 thumb_func_start sub_80D0614 sub_80D0614: @ 80D0614 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 lsls r1, 24 lsrs r1, 24 mov r9, r1 movs r0, 0 bl duplicate_obj_of_side_rel2move_in_transparent_mode lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r0, 16 asrs r4, r0, 16 cmp r4, 0 blt _080D06EE bl AllocOamMatrix lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0xFF bne _080D0658 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, _080D0654 adds r0, r1 bl obj_delete_but_dont_free_vram b _080D06EE .align 2, 0 _080D0654: .4byte 0x02020004 _080D0658: ldr r5, _080D06FC lsls r3, r4, 4 adds r3, r4 lsls r3, 2 adds r4, r3, r5 ldrb r1, [r4, 0x1] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] movs r0, 0x1F ands r6, r0 lsls r2, r6, 1 ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x3] ldrb r0, [r7, 0x16] ldrb r1, [r7, 0xE] subs r0, r1 adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] ldrh r0, [r7, 0xE] adds r0, 0x1 strh r0, [r7, 0xE] ldrh r0, [r7, 0x14] adds r0, 0x1 strh r0, [r7, 0x14] movs r0, 0x10 strh r0, [r4, 0x2E] mov r0, r9 strh r0, [r4, 0x30] movs r0, 0x6 strh r0, [r4, 0x32] adds r5, 0x1C adds r3, r5 ldr r0, _080D0700 str r0, [r3] mov r1, r8 lsls r0, r1, 24 lsrs r0, 24 movs r1, 0x10 ldrsh r2, [r7, r1] adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale ldrb r0, [r4, 0x1] movs r3, 0x4 negs r3, r3 ands r3, r0 movs r0, 0x1 orrs r3, r0 strb r3, [r4, 0x1] lsrs r1, r3, 6 ldrb r2, [r4, 0x3] lsrs r2, 6 lsls r3, 30 lsrs r3, 30 adds r0, r4, 0 bl CalcCenterToCornerVec _080D06EE: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D06FC: .4byte 0x02020004 _080D0700: .4byte sub_80D0704 thumb_func_end sub_80D0614 thumb_func_start sub_80D0704 sub_80D0704: @ 80D0704 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bne _080D0742 ldr r3, _080D0748 movs r0, 0x32 ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x30 ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl obj_delete_but_dont_free_vram _080D0742: pop {r4} pop {r0} bx r0 .align 2, 0 _080D0748: .4byte 0x03004b20 thumb_func_end sub_80D0704 thumb_func_start sub_80D074C sub_80D074C: @ 80D074C push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080D0770 adds r4, r0, r1 ldr r5, _080D0774 movs r1, 0x2 ldrsh r0, [r5, r1] cmp r0, 0 bne _080D0778 adds r0, r2, 0 bl move_anim_task_del b _080D079E .align 2, 0 _080D0770: .4byte 0x03004b20 _080D0774: .4byte 0x03004b00 _080D0778: ldrb r0, [r5] bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r2, 0 strh r1, [r4, 0x8] strh r2, [r4, 0xA] ldrh r0, [r5, 0x2] strh r0, [r4, 0xC] strh r2, [r4, 0xE] strh r2, [r4, 0x10] ldr r2, _080D07A4 adds r0, r4, 0 bl sub_80798F4 ldr r0, _080D07A8 str r0, [r4] _080D079E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D07A4: .4byte gUnknown_083D76F4 _080D07A8: .4byte sub_80D07AC thumb_func_end sub_80D074C thumb_func_start sub_80D07AC sub_80D07AC: @ 80D07AC push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _080D07D0 adds r4, r0, r1 movs r0, 0xA ldrsh r5, [r4, r0] cmp r5, 0x1 beq _080D0814 cmp r5, 0x1 bgt _080D07D4 cmp r5, 0 beq _080D07DE b _080D08BC .align 2, 0 _080D07D0: .4byte 0x03004b20 _080D07D4: cmp r5, 0x2 beq _080D0848 cmp r5, 0x3 beq _080D0878 b _080D08BC _080D07DE: adds r0, r4, 0 bl sub_807992C ldrh r2, [r4, 0x10] adds r2, 0x3 strh r2, [r4, 0x10] ldr r3, _080D0810 movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x26] adds r1, r2 strh r1, [r0, 0x26] ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080D08BC strh r5, [r4, 0xE] b _080D0870 .align 2, 0 _080D0810: .4byte 0x02020004 _080D0814: adds r0, r4, 0 bl sub_807992C ldr r2, _080D0844 movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r4, 0x10] ldrh r2, [r0, 0x26] adds r1, r2 strh r1, [r0, 0x26] ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080D08BC movs r0, 0 strh r0, [r4, 0xE] b _080D0870 .align 2, 0 _080D0844: .4byte 0x02020004 _080D0848: movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0 beq _080D0870 ldr r2, _080D086C movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] subs r1, 0x2 strh r1, [r0, 0x26] ldrh r0, [r4, 0x10] subs r0, 0x2 strh r0, [r4, 0x10] b _080D08BC .align 2, 0 _080D086C: .4byte 0x02020004 _080D0870: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] b _080D08BC _080D0878: adds r0, r4, 0 bl sub_807992C lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _080D08BC ldrh r0, [r4, 0xC] subs r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 cmp r0, 0 bne _080D08B0 ldr r2, _080D08AC movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r5, [r0, 0x26] adds r0, r6, 0 bl move_anim_task_del b _080D08BC .align 2, 0 _080D08AC: .4byte 0x02020004 _080D08B0: ldrb r1, [r4, 0x8] ldr r2, _080D08C4 adds r0, r4, 0 bl sub_80798F4 strh r5, [r4, 0xA] _080D08BC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D08C4: .4byte gUnknown_083D76F4 thumb_func_end sub_80D07AC thumb_func_start sub_80D08C8 sub_80D08C8: @ 80D08C8 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080D08F8 adds r4, r0 movs r0, 0 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _080D08FC adds r0, r4, 0 bl sub_80798F4 ldr r0, _080D0900 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080D08F8: .4byte 0x03004b20 _080D08FC: .4byte gUnknown_083D7714 _080D0900: .4byte sub_80D0904 thumb_func_end sub_80D08C8 thumb_func_start sub_80D0904 sub_80D0904: @ 80D0904 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080D092C adds r0, r1 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _080D0924 adds r0, r4, 0 bl move_anim_task_del _080D0924: pop {r4} pop {r0} bx r0 .align 2, 0 _080D092C: .4byte 0x03004b20 thumb_func_end sub_80D0904 thumb_func_start sub_80D0930 sub_80D0930: @ 80D0930 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080D0960 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D0964 adds r0, r4, 0 movs r1, 0 bl StartSpriteAnim ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x20 strh r0, [r4, 0x20] movs r0, 0x40 b _080D097E .align 2, 0 _080D0960: .4byte 0x0202f7c8 _080D0964: adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 subs r0, 0x20 strh r0, [r4, 0x20] ldr r0, _080D09B0 _080D097E: strh r0, [r4, 0x30] ldr r0, _080D09B4 ldrb r0, [r0] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 movs r1, 0 strh r0, [r4, 0x22] movs r0, 0x34 strh r0, [r4, 0x2E] strh r1, [r4, 0x32] strh r1, [r4, 0x34] strh r1, [r4, 0x36] ldr r1, _080D09B8 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080D09BC str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D09B0: .4byte 0x0000ffc0 _080D09B4: .4byte 0x0202f7c8 _080D09B8: .4byte move_anim_8072740 _080D09BC: .4byte sub_8078394 thumb_func_end sub_80D0930 thumb_func_start sub_80D09C0 sub_80D09C0: @ 80D09C0 push {r4-r6,lr} adds r6, r0, 0 ldr r0, _080D09D4 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D09DC ldr r0, _080D09D8 b _080D09DE .align 2, 0 _080D09D4: .4byte 0x03004b00 _080D09D8: .4byte 0x0202f7c8 _080D09DC: ldr r0, _080D0A3C _080D09DE: ldrb r5, [r0] adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080D09F8 ldr r1, _080D0A40 movs r2, 0x2 ldrsh r0, [r1, r2] negs r0, r0 strh r0, [r1, 0x2] _080D09F8: adds r0, r5, 0 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r4, _080D0A40 lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 strh r0, [r6, 0x20] adds r0, r5, 0 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x4] adds r0, r4 strh r0, [r6, 0x22] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 bgt _080D0A2A movs r0, 0x8 strh r0, [r6, 0x22] _080D0A2A: ldr r1, _080D0A44 adds r0, r6, 0 bl oamt_set_x3A_32 ldr r0, _080D0A48 str r0, [r6, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D0A3C: .4byte 0x0202f7c9 _080D0A40: .4byte 0x03004b00 _080D0A44: .4byte move_anim_8074EE0 _080D0A48: .4byte sub_80785E4 thumb_func_end sub_80D09C0 thumb_func_start sub_80D0A4C sub_80D0A4C: @ 80D0A4C push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080D0A80 adds r4, r0 movs r0, 0 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0 strh r1, [r4, 0x8] strh r0, [r4, 0xA] ldr r2, _080D0A84 adds r0, r4, 0 bl sub_80798F4 ldr r0, _080D0A88 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080D0A80: .4byte 0x03004b20 _080D0A84: .4byte gUnknown_083D77B0 _080D0A88: .4byte sub_80D0A8C thumb_func_end sub_80D0A4C thumb_func_start sub_80D0A8C sub_80D0A8C: @ 80D0A8C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080D0AB4 adds r0, r1 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _080D0AAC adds r0, r4, 0 bl move_anim_task_del _080D0AAC: pop {r4} pop {r0} bx r0 .align 2, 0 _080D0AB4: .4byte 0x03004b20 thumb_func_end sub_80D0A8C thumb_func_start sub_80D0AB8 sub_80D0AB8: @ 80D0AB8 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080D0B2C adds r4, r1, r0 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 movs r2, 0 strh r0, [r4, 0x8] strh r2, [r4, 0xA] movs r0, 0x4 strh r0, [r4, 0xC] movs r0, 0x7 strh r0, [r4, 0xE] movs r0, 0x3 strh r0, [r4, 0x10] ldr r3, _080D0B30 movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x20] strh r0, [r4, 0x12] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x22] strh r0, [r4, 0x14] strh r2, [r4, 0x16] strh r2, [r4, 0x18] movs r0, 0x2 strh r0, [r4, 0x1A] ldr r0, _080D0B34 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080D0B22 movs r1, 0xC ldrsh r0, [r4, r1] negs r0, r0 strh r0, [r4, 0xC] _080D0B22: ldr r0, _080D0B38 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080D0B2C: .4byte 0x03004b20 _080D0B30: .4byte 0x02020004 _080D0B34: .4byte 0x0202f7c8 _080D0B38: .4byte sub_80D0B3C thumb_func_end sub_80D0AB8 thumb_func_start sub_80D0B3C sub_80D0B3C: @ 80D0B3C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080D0B84 adds r3, r0, r1 ldrh r0, [r3, 0x16] adds r0, 0x1 strh r0, [r3, 0x16] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080D0BA2 movs r0, 0 strh r0, [r3, 0x16] ldrh r0, [r3, 0x18] adds r0, 0x1 strh r0, [r3, 0x18] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D0B8C ldr r2, _080D0B88 movs r0, 0x8 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r3, 0x1A] ldrh r2, [r0, 0x22] adds r1, r2 b _080D0BA0 .align 2, 0 _080D0B84: .4byte 0x03004b20 _080D0B88: .4byte 0x02020004 _080D0B8C: ldr r2, _080D0BB4 movs r5, 0x8 ldrsh r1, [r3, r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] ldrh r2, [r3, 0x1A] subs r1, r2 _080D0BA0: strh r1, [r0, 0x22] _080D0BA2: movs r1, 0xA ldrsh r0, [r3, r1] cmp r0, 0x1 beq _080D0BF0 cmp r0, 0x1 bgt _080D0BB8 cmp r0, 0 beq _080D0BBE b _080D0C80 .align 2, 0 _080D0BB4: .4byte 0x02020004 _080D0BB8: cmp r0, 0x2 beq _080D0C20 b _080D0C80 _080D0BBE: ldr r2, _080D0BEC movs r5, 0x8 ldrsh r1, [r3, r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r3, 0xC] ldrh r2, [r0, 0x20] adds r1, r2 strh r1, [r0, 0x20] ldrh r0, [r3, 0xE] subs r0, 0x1 strh r0, [r3, 0xE] lsls r0, 16 cmp r0, 0 bne _080D0C80 movs r0, 0xE strh r0, [r3, 0xE] movs r0, 0x1 strh r0, [r3, 0xA] b _080D0C80 .align 2, 0 _080D0BEC: .4byte 0x02020004 _080D0BF0: ldr r2, _080D0C1C movs r5, 0x8 ldrsh r1, [r3, r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x20] ldrh r2, [r3, 0xC] subs r1, r2 strh r1, [r0, 0x20] ldrh r0, [r3, 0xE] subs r0, 0x1 strh r0, [r3, 0xE] lsls r0, 16 cmp r0, 0 bne _080D0C80 movs r0, 0x7 strh r0, [r3, 0xE] movs r0, 0x2 strh r0, [r3, 0xA] b _080D0C80 .align 2, 0 _080D0C1C: .4byte 0x02020004 _080D0C20: ldr r2, _080D0C58 movs r0, 0x8 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r3, 0xC] ldrh r5, [r0, 0x20] adds r1, r5 strh r1, [r0, 0x20] ldrh r0, [r3, 0xE] subs r0, 0x1 strh r0, [r3, 0xE] lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 bne _080D0C80 ldrh r0, [r3, 0x10] subs r0, 0x1 strh r0, [r3, 0x10] lsls r0, 16 cmp r0, 0 beq _080D0C5C movs r0, 0x7 strh r0, [r3, 0xE] strh r1, [r3, 0xA] b _080D0C80 .align 2, 0 _080D0C58: .4byte 0x02020004 _080D0C5C: ldrh r1, [r3, 0x18] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D0C7A movs r0, 0x8 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] ldrh r2, [r3, 0x1A] subs r1, r2 strh r1, [r0, 0x22] _080D0C7A: adds r0, r4, 0 bl move_anim_task_del _080D0C80: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80D0B3C thumb_func_start sub_80D0C88 sub_80D0C88: @ 80D0C88 push {r4-r6,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080D0CD8 adds r5, r1, r0 ldr r4, _080D0CDC ldrb r0, [r4] bl sub_8077FC0 lsls r0, 24 lsrs r0, 24 adds r0, 0x20 movs r1, 0 strh r0, [r5, 0x8] movs r0, 0x4 strh r0, [r5, 0xA] strh r1, [r5, 0xC] strh r1, [r5, 0xE] strh r1, [r5, 0x10] strh r1, [r5, 0x12] ldrb r0, [r4] bl sub_807A100 strh r0, [r5, 0x26] ldrb r0, [r4] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080D0CE8 ldr r0, _080D0CE0 ldrh r0, [r0] strh r0, [r5, 0x14] ldr r0, _080D0CE4 b _080D0CF0 .align 2, 0 _080D0CD8: .4byte 0x03004b20 _080D0CDC: .4byte 0x0202f7c9 _080D0CE0: .4byte 0x030042c0 _080D0CE4: .4byte REG_BG1HOFS _080D0CE8: ldr r0, _080D0D54 ldrh r0, [r0] strh r0, [r5, 0x14] ldr r0, _080D0D58 _080D0CF0: str r0, [sp] ldrh r0, [r5, 0x8] adds r1, r0, 0 subs r1, 0x40 lsls r2, r1, 16 lsls r0, 16 cmp r2, r0 bgt _080D0D2E ldr r4, _080D0D5C movs r0, 0xF0 lsls r0, 3 adds r6, r4, r0 _080D0D08: asrs r3, r2, 16 cmp r3, 0 blt _080D0D20 lsls r1, r3, 1 adds r2, r1, r4 ldrh r0, [r5, 0x14] adds r0, 0xF0 strh r0, [r2] adds r1, r6 ldrh r0, [r5, 0x14] adds r0, 0xF0 strh r0, [r1] _080D0D20: adds r0, r3, 0x1 lsls r2, r0, 16 asrs r1, r2, 16 movs r3, 0x8 ldrsh r0, [r5, r3] cmp r1, r0 ble _080D0D08 _080D0D2E: ldr r0, _080D0D60 str r0, [sp, 0x4] mov r1, sp movs r2, 0 movs r0, 0x1 strb r0, [r1, 0x8] mov r0, sp strb r2, [r0, 0x9] ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl sub_80895F8 ldr r0, _080D0D64 str r0, [r5] add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D0D54: .4byte 0x03004288 _080D0D58: .4byte REG_BG2HOFS _080D0D5C: .4byte 0x03004de0 _080D0D60: .4byte 0xa2600001 _080D0D64: .4byte sub_80D0D68 thumb_func_end sub_80D0C88 thumb_func_start sub_80D0D68 sub_80D0D68: @ 80D0D68 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080D0D88 adds r3, r0, r1 movs r1, 0x10 ldrsh r0, [r3, r1] cmp r0, 0 beq _080D0D8C cmp r0, 0x1 beq _080D0DA2 b _080D0E22 .align 2, 0 _080D0D88: .4byte 0x03004b20 _080D0D8C: ldrh r0, [r3, 0x12] adds r0, 0x1 strh r0, [r3, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080D0E22 ldrh r0, [r3, 0x10] adds r0, 0x1 strh r0, [r3, 0x10] b _080D0E22 _080D0DA2: ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080D0E22 movs r0, 0 strh r0, [r3, 0xA] ldrh r1, [r3, 0xE] movs r0, 0x3 ands r0, r1 strh r0, [r3, 0xC] ldrh r0, [r3, 0x8] subs r0, r1 strh r0, [r3, 0x12] movs r2, 0xC ldrsh r1, [r3, r2] cmp r1, 0x1 beq _080D0DD8 cmp r1, 0x1 ble _080D0DE0 cmp r1, 0x2 beq _080D0DDC cmp r1, 0x3 beq _080D0DDC b _080D0DE0 _080D0DD8: subs r0, 0x2 b _080D0DDE _080D0DDC: adds r0, 0x1 _080D0DDE: strh r0, [r3, 0x12] _080D0DE0: movs r1, 0x12 ldrsh r0, [r3, r1] cmp r0, 0 blt _080D0E04 ldr r2, _080D0E28 lsls r0, 1 adds r0, r2 ldrh r1, [r3, 0x14] strh r1, [r0] movs r1, 0x12 ldrsh r0, [r3, r1] lsls r0, 1 movs r1, 0xF0 lsls r1, 3 adds r2, r1 adds r0, r2 ldrh r1, [r3, 0x14] strh r1, [r0] _080D0E04: ldrh r0, [r3, 0xE] adds r0, 0x1 strh r0, [r3, 0xE] lsls r0, 16 asrs r0, 16 movs r2, 0x26 ldrsh r1, [r3, r2] cmp r0, r1 blt _080D0E22 ldr r1, _080D0E2C movs r0, 0x3 strb r0, [r1, 0x15] adds r0, r4, 0 bl move_anim_task_del _080D0E22: pop {r4} pop {r0} bx r0 .align 2, 0 _080D0E28: .4byte 0x03004de0 _080D0E2C: .4byte 0x03004dc0 thumb_func_end sub_80D0D68 thumb_func_start sub_80D0E30 sub_80D0E30: @ 80D0E30 push {r4-r6,lr} adds r4, r0, 0 ldr r6, _080D0E84 ldrb r0, [r6] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 subs r0, 0x10 movs r5, 0 strh r0, [r4, 0x20] ldrb r0, [r6] bl sub_8077FC0 lsls r0, 24 lsrs r0, 24 adds r0, 0x10 strh r0, [r4, 0x22] strh r5, [r4, 0x2E] strh r5, [r4, 0x30] strh r5, [r4, 0x32] movs r0, 0x10 strh r0, [r4, 0x34] strh r5, [r4, 0x36] ldrb r0, [r6] movs r1, 0 bl sub_807A100 adds r0, 0x2 strh r0, [r4, 0x38] movs r0, 0x3F bl sub_8076F98 lsls r0, 24 asrs r0, 24 strh r0, [r4, 0x3A] ldr r0, _080D0E88 str r0, [r4, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D0E84: .4byte 0x0202f7c9 _080D0E88: .4byte sub_80D0E8C thumb_func_end sub_80D0E30 thumb_func_start sub_80D0E8C sub_80D0E8C: @ 80D0E8C push {r4,lr} adds r4, r0, 0 movs r0, 0x2E ldrsh r1, [r4, r0] cmp r1, 0x1 beq _080D0EF0 cmp r1, 0x1 bgt _080D0EA2 cmp r1, 0 beq _080D0EA8 b _080D0FD0 _080D0EA2: cmp r1, 0x2 beq _080D0F82 b _080D0FD0 _080D0EA8: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D0ED2 strh r1, [r4, 0x32] adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsrs r1, r2, 2 movs r0, 0x1 eors r1, r0 ands r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080D0ED2: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _080D0FD0 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r2] b _080D0F7A _080D0EF0: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080D0F36 ldrh r2, [r4, 0x32] movs r3, 0x32 ldrsh r1, [r4, r3] movs r3, 0x38 ldrsh r0, [r4, r3] cmp r1, r0 bge _080D0F36 movs r0, 0 strh r0, [r4, 0x30] ldrh r0, [r4, 0x22] subs r0, 0x1 strh r0, [r4, 0x22] adds r0, r2, 0x1 strh r0, [r4, 0x32] movs r1, 0x32 ldrsh r0, [r4, r1] movs r1, 0xA bl __modsi3 lsls r0, 16 cmp r0, 0 bne _080D0F36 ldrh r1, [r4, 0x3A] lsls r1, 24 asrs r1, 24 movs r0, 0xCD bl audio_play_and_stuff _080D0F36: ldrh r0, [r4, 0x34] ldrh r2, [r4, 0x36] adds r1, r0, r2 strh r1, [r4, 0x36] lsls r0, r1, 16 asrs r2, r0, 16 cmp r2, 0x1F ble _080D0F4A movs r0, 0x40 b _080D0F58 _080D0F4A: movs r0, 0x20 negs r0, r0 cmp r2, r0 bgt _080D0F64 movs r2, 0x40 negs r2, r2 adds r0, r2, 0 _080D0F58: subs r0, r1 strh r0, [r4, 0x36] movs r3, 0x34 ldrsh r0, [r4, r3] negs r0, r0 strh r0, [r4, 0x34] _080D0F64: ldrh r0, [r4, 0x36] movs r2, 0 strh r0, [r4, 0x24] movs r0, 0x38 ldrsh r1, [r4, r0] movs r3, 0x32 ldrsh r0, [r4, r3] cmp r1, r0 bne _080D0FD0 strh r2, [r4, 0x30] strh r2, [r4, 0x32] _080D0F7A: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080D0FD0 _080D0F82: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D0FAE movs r0, 0 strh r0, [r4, 0x32] adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsrs r1, r2, 2 movs r0, 0x1 eors r1, r0 ands r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080D0FAE: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _080D0FD0 adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r0, r4, 0 bl move_anim_8072740 _080D0FD0: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D0E8C thumb_func_start sub_80D0FD8 sub_80D0FD8: @ 80D0FD8 push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 movs r5, 0 mov r0, sp strh r5, [r0] mov r1, sp adds r1, 0x2 strh r5, [r1] ldr r0, _080D0FFC movs r3, 0x4 ldrsh r2, [r0, r3] adds r7, r1, 0 adds r1, r0, 0 cmp r2, 0 bne _080D1004 ldr r0, _080D1000 b _080D1006 .align 2, 0 _080D0FFC: .4byte 0x03004b00 _080D1000: .4byte 0x0202f7c8 _080D1004: ldr r0, _080D1040 _080D1006: ldrb r5, [r0] ldrb r1, [r1, 0x6] movs r0, 0x1 adds r4, r0, 0 eors r4, r1 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080D107E movs r1, 0x2 adds r0, r5, 0 eors r0, r1 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080D107E adds r0, r5, 0 adds r1, r4, 0 mov r2, sp adds r3, r7, 0 bl sub_807A3FC cmp r4, 0 bne _080D1044 adds r0, r5, 0 movs r1, 0 b _080D1048 .align 2, 0 _080D1040: .4byte 0x0202f7c9 _080D1044: adds r0, r5, 0 movs r1, 0x2 _080D1048: bl sub_8077ABC lsls r0, 24 lsrs r4, r0, 24 adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D1074 ldr r2, _080D1070 mov r0, sp ldrh r1, [r0] subs r1, r4 ldrh r0, [r2] subs r1, r0 subs r0, r1 strh r0, [r2] b _080D107E .align 2, 0 _080D1070: .4byte 0x03004b00 _080D1074: ldr r1, _080D1090 mov r0, sp ldrh r0, [r0] subs r0, r4 strh r0, [r1] _080D107E: ldr r1, _080D1094 str r1, [r6, 0x1C] adds r0, r6, 0 bl _call_via_r1 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D1090: .4byte 0x03004b00 _080D1094: .4byte sub_80793C4 thumb_func_end sub_80D0FD8 thumb_func_start sub_80D1098 sub_80D1098: @ 80D1098 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080D10B2 adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl move_anim_8072740 _080D10B2: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D1098 thumb_func_start sub_80D10B8 sub_80D10B8: @ 80D10B8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r5, r0, 0 movs r6, 0 mov r0, sp strh r6, [r0] mov r1, sp adds r1, 0x2 strh r6, [r1] ldr r0, _080D10E4 movs r2, 0xA ldrsh r0, [r0, r2] cmp r0, 0 bne _080D10F0 ldr r0, _080D10E8 ldrb r7, [r0] ldr r0, _080D10EC b _080D10F6 .align 2, 0 _080D10E4: .4byte 0x03004b00 _080D10E8: .4byte 0x0202f7c8 _080D10EC: .4byte 0x0202f7c9 _080D10F0: ldr r0, _080D1110 ldrb r7, [r0] ldr r0, _080D1114 _080D10F6: ldrb r0, [r0] mov r8, r0 ldr r0, _080D1118 movs r3, 0xC ldrsh r0, [r0, r3] cmp r0, 0 bne _080D111C movs r0, 0 mov r10, r0 movs r1, 0x1 str r1, [sp, 0x4] b _080D1124 .align 2, 0 _080D1110: .4byte 0x0202f7c9 _080D1114: .4byte 0x0202f7c8 _080D1118: .4byte 0x03004b00 _080D111C: movs r2, 0x2 mov r10, r2 movs r3, 0x3 str r3, [sp, 0x4] _080D1124: adds r0, r7, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D1180 adds r0, r7, 0 mov r1, r10 bl sub_8077ABC lsls r0, 24 ldr r1, _080D1164 lsrs r0, 24 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 mov r9, r0 movs r0, 0x2 mov r4, r8 eors r4, r0 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080D1170 ldr r2, _080D1168 ldr r0, _080D116C adds r0, r4, r0 b _080D120A .align 2, 0 _080D1164: .4byte 0x03004b00 _080D1168: .4byte 0x02020004 _080D116C: .4byte 0x02024be0 _080D1170: ldr r2, _080D1178 ldr r0, _080D117C add r0, r8 b _080D120A .align 2, 0 _080D1178: .4byte 0x02020004 _080D117C: .4byte 0x02024be0 _080D1180: adds r0, r7, 0 mov r1, r10 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldr r1, _080D11EC ldrh r1, [r1] subs r0, r1 lsls r0, 16 lsrs r0, 16 mov r9, r0 ldr r0, _080D11F0 ldr r1, _080D11F4 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D1204 adds r4, r7, 0 movs r0, 0x2 eors r4, r0 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080D1204 ldr r3, _080D11F8 ldr r2, _080D11FC adds r0, r7, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r6, r0, r3 adds r2, r4, r2 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, r0, r3 movs r3, 0x20 ldrsh r1, [r6, r3] movs r3, 0x20 ldrsh r0, [r2, r3] cmp r1, r0 bge _080D1200 adds r0, r2, 0 adds r0, 0x43 ldrb r0, [r0] adds r0, 0x1 b _080D121A .align 2, 0 _080D11EC: .4byte 0x03004b00 _080D11F0: .4byte 0x03001770 _080D11F4: .4byte 0x0000043d _080D11F8: .4byte 0x02020004 _080D11FC: .4byte 0x02024be0 _080D1200: adds r0, r6, 0 b _080D1214 _080D1204: ldr r2, _080D1268 ldr r0, _080D126C adds r0, r7, r0 _080D120A: ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 _080D1214: adds r0, 0x43 ldrb r0, [r0] subs r0, 0x1 _080D121A: adds r1, r5, 0 adds r1, 0x43 strb r0, [r1] adds r0, r7, 0 ldr r1, [sp, 0x4] bl sub_8077ABC lsls r0, 24 ldr r4, _080D1270 lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _080D1274 ldr r2, _080D1278 adds r0, r2 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D127C mov r0, r8 movs r1, 0x2 eors r0, r1 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080D127C ldrb r1, [r4, 0xC] mov r0, r8 mov r2, sp mov r3, sp adds r3, 0x2 bl sub_807A3FC b _080D129C .align 2, 0 _080D1268: .4byte 0x02020004 _080D126C: .4byte 0x02024be0 _080D1270: .4byte 0x03004b00 _080D1274: .4byte 0x03001770 _080D1278: .4byte 0x0000043d _080D127C: mov r4, sp mov r0, r8 mov r1, r10 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4] mov r0, r8 ldr r1, [sp, 0x4] bl sub_8077ABC lsls r0, 24 lsrs r0, 24 mov r3, sp strh r0, [r3, 0x2] _080D129C: mov r0, r8 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D12C0 mov r3, sp mov r2, sp ldr r1, _080D12BC ldrh r0, [r1, 0x6] ldrh r2, [r2] adds r0, r2 strh r0, [r3] adds r2, r1, 0 b _080D12CE .align 2, 0 _080D12BC: .4byte 0x03004b00 _080D12C0: mov r3, sp mov r0, sp ldr r2, _080D1310 ldrh r0, [r0] ldrh r1, [r2, 0x6] subs r0, r1 strh r0, [r3] _080D12CE: ldrh r1, [r2, 0x8] mov r0, sp ldrh r0, [r0, 0x2] adds r1, r0 mov r3, sp strh r1, [r3, 0x2] mov r0, r9 strh r0, [r5, 0x30] strh r0, [r5, 0x20] strh r6, [r5, 0x34] strh r6, [r5, 0x22] mov r0, sp ldrh r0, [r0] strh r0, [r5, 0x32] strh r1, [r5, 0x36] ldrh r0, [r2] strh r0, [r5, 0x2E] adds r0, r5, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r1, _080D1314 str r1, [r5, 0x1C] adds r0, r5, 0 bl _call_via_r1 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D1310: .4byte 0x03004b00 _080D1314: .4byte sub_80D1098 thumb_func_end sub_80D10B8 thumb_func_start sub_80D1318 sub_80D1318: @ 80D1318 push {r4,lr} adds r4, r0, 0 ldr r0, _080D1358 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _080D133E lsls r0, 20 ldr r1, _080D135C adds r0, r1 lsrs r0, 16 ldr r1, _080D1360 ldrb r2, [r1, 0xA] ldrh r3, [r1, 0x8] movs r1, 0xF bl BlendPalette _080D133E: adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim ldr r1, _080D1364 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080D1358: .4byte 0x000027db _080D135C: .4byte 0x01010000 _080D1360: .4byte 0x03004b00 _080D1364: .4byte sub_80793C4 thumb_func_end sub_80D1318 thumb_func_start sub_80D1368 sub_80D1368: @ 80D1368 push {r4,lr} adds r4, r0, 0 movs r1, 0 bl sub_80787B0 ldr r0, _080D139C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 movs r1, 0xA0 cmp r0, 0 beq _080D1384 ldr r1, _080D13A0 _080D1384: movs r0, 0xE0 lsls r0, 2 strh r0, [r4, 0x2E] strh r1, [r4, 0x30] ldr r0, _080D13A4 ldrh r0, [r0, 0x4] strh r0, [r4, 0x3C] ldr r0, _080D13A8 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D139C: .4byte 0x0202f7c8 _080D13A0: .4byte 0x0000ff60 _080D13A4: .4byte 0x03004b00 _080D13A8: .4byte sub_80D13AC thumb_func_end sub_80D1368 thumb_func_start sub_80D13AC sub_80D13AC: @ 80D13AC push {r4,r5,lr} adds r4, r0, 0 ldrh r2, [r4, 0x2E] lsls r0, r2, 16 asrs r0, 24 ldrh r1, [r4, 0x26] subs r1, r0 movs r5, 0 strh r1, [r4, 0x26] ldrh r0, [r4, 0x30] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] subs r2, 0x20 strh r2, [r4, 0x2E] ldr r0, _080D1418 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 movs r1, 0xA0 cmp r0, 0 beq _080D13DC ldr r1, _080D141C _080D13DC: lsls r0, r1, 16 asrs r0, 16 ldrh r1, [r4, 0x30] adds r0, r1 strh r0, [r4, 0x30] ldrh r1, [r4, 0x26] movs r2, 0x26 ldrsh r0, [r4, r2] cmp r0, 0 ble _080D1410 ldrh r2, [r4, 0x22] adds r0, r1, r2 strh r0, [r4, 0x22] ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] strh r5, [r4, 0x26] strh r5, [r4, 0x24] strh r5, [r4, 0x2E] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim ldr r0, _080D1420 str r0, [r4, 0x1C] _080D1410: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D1418: .4byte 0x0202f7c8 _080D141C: .4byte 0x0000ff60 _080D1420: .4byte sub_80D1424 thumb_func_end sub_80D13AC thumb_func_start sub_80D1424 sub_80D1424: @ 80D1424 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r1, r0, 0x1 strh r1, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080D1442 adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAffineAnim ldr r0, _080D1448 str r0, [r4, 0x1C] _080D1442: pop {r4} pop {r0} bx r0 .align 2, 0 _080D1448: .4byte sub_80D144C thumb_func_end sub_80D1424 thumb_func_start sub_80D144C sub_80D144C: @ 80D144C push {r4,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080D14B2 adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim movs r0, 0 strh r0, [r4, 0x2E] movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0 bne _080D1498 ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x10 ldr r3, _080D148C adds r0, r3, 0 ands r1, r0 ldr r0, _080D1490 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] ldr r0, _080D1494 b _080D14B0 .align 2, 0 _080D148C: .4byte 0x000003ff _080D1490: .4byte 0xfffffc00 _080D1494: .4byte sub_80D14C4 _080D1498: ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x20 ldr r3, _080D14B8 adds r0, r3, 0 ands r1, r0 ldr r0, _080D14BC ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] ldr r0, _080D14C0 _080D14B0: str r0, [r4, 0x1C] _080D14B2: pop {r4} pop {r0} bx r0 .align 2, 0 _080D14B8: .4byte 0x000003ff _080D14BC: .4byte 0xfffffc00 _080D14C0: .4byte sub_80D154C thumb_func_end sub_80D144C thumb_func_start sub_80D14C4 sub_80D14C4: @ 80D14C4 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x26] subs r0, 0x2 strh r0, [r2, 0x26] ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 bne _080D14F8 movs r0, 0x10 strh r0, [r2, 0x2E] movs r0, 0 strh r0, [r2, 0x30] ldr r1, _080D14FC movs r3, 0xFD lsls r3, 6 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x2E] strh r0, [r1] ldr r0, _080D1500 str r0, [r2, 0x1C] _080D14F8: pop {r0} bx r0 .align 2, 0 _080D14FC: .4byte REG_BLDCNT _080D1500: .4byte sub_80D1504 thumb_func_end sub_80D14C4 thumb_func_start sub_80D1504 sub_80D1504: @ 80D1504 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] adds r1, r0, 0x1 strh r1, [r4, 0x30] lsls r0, 16 asrs r0, 16 movs r1, 0x3 bl __modsi3 lsls r0, 16 cmp r0, 0 bne _080D153C ldrh r1, [r4, 0x2E] subs r1, 0x1 strh r1, [r4, 0x2E] ldr r2, _080D1544 movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080D153C ldr r0, _080D1548 str r0, [r4, 0x1C] _080D153C: pop {r4} pop {r0} bx r0 .align 2, 0 _080D1544: .4byte REG_BLDALPHA _080D1548: .4byte sub_80D154C thumb_func_end sub_80D1504 thumb_func_start sub_80D154C sub_80D154C: @ 80D154C push {lr} adds r3, r0, 0 ldr r0, _080D1574 ldrh r1, [r0, 0xE] ldr r0, _080D1578 cmp r1, r0 bne _080D1584 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] movs r1, 0x3C ldrsh r0, [r3, r1] cmp r0, 0 bne _080D1580 ldr r0, _080D157C b _080D1582 .align 2, 0 _080D1574: .4byte 0x03004b00 _080D1578: .4byte 0x0000ffff _080D157C: .4byte sub_80D158C _080D1580: ldr r0, _080D1588 _080D1582: str r0, [r3, 0x1C] _080D1584: pop {r0} bx r0 .align 2, 0 _080D1588: .4byte move_anim_8072740 thumb_func_end sub_80D154C thumb_func_start sub_80D158C sub_80D158C: @ 80D158C push {lr} ldr r1, _080D15A0 movs r2, 0 strh r2, [r1] adds r1, 0x2 strh r2, [r1] bl move_anim_8072740 pop {r0} bx r0 .align 2, 0 _080D15A0: .4byte REG_BLDCNT thumb_func_end sub_80D158C thumb_func_start sub_80D15A4 sub_80D15A4: @ 80D15A4 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080D15D4 adds r4, r0 movs r0, 0 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 strh r1, [r4, 0x8] ldr r2, _080D15D8 adds r0, r4, 0 bl sub_80798F4 ldr r0, _080D15DC str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080D15D4: .4byte 0x03004b20 _080D15D8: .4byte gUnknown_083D79BC _080D15DC: .4byte sub_80D15E0 thumb_func_end sub_80D15A4 thumb_func_start sub_80D15E0 sub_80D15E0: @ 80D15E0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080D1630 adds r4, r0, r1 adds r0, r4, 0 bl sub_807992C lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 bne _080D162A ldr r2, _080D1634 movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r3, [r0, 0x26] movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r0, r5, 0 bl move_anim_task_del _080D162A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D1630: .4byte 0x03004b20 _080D1634: .4byte 0x02020004 thumb_func_end sub_80D15E0 thumb_func_start sub_80D1638 sub_80D1638: @ 80D1638 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080D166C adds r4, r1, r0 movs r0, 0 strh r0, [r4, 0x8] strh r0, [r4, 0xA] strh r0, [r4, 0xC] strh r0, [r4, 0xE] movs r0, 0x3 strh r0, [r4, 0x20] ldr r0, _080D1670 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D1678 ldr r0, _080D1674 strh r0, [r4, 0x22] movs r0, 0x8 b _080D167E .align 2, 0 _080D166C: .4byte 0x03004b20 _080D1670: .4byte 0x0202f7c9 _080D1674: .4byte 0x0000ffff _080D1678: movs r0, 0x1 strh r0, [r4, 0x22] ldr r0, _080D1698 _080D167E: strh r0, [r4, 0x24] movs r0, 0x1 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] ldr r0, _080D169C str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080D1698: .4byte 0x0000fff8 _080D169C: .4byte sub_80D16A0 thumb_func_end sub_80D1638 thumb_func_start sub_80D16A0 sub_80D16A0: @ 80D16A0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080D16C4 adds r3, r0, r1 movs r0, 0x8 ldrsh r4, [r3, r0] cmp r4, 0x1 beq _080D16F4 cmp r4, 0x1 bgt _080D16C8 cmp r4, 0 beq _080D16D2 b _080D17BA .align 2, 0 _080D16C4: .4byte 0x03004b20 _080D16C8: cmp r4, 0x2 beq _080D1770 cmp r4, 0x3 beq _080D178A b _080D17BA _080D16D2: ldr r2, _080D16F0 movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r3, 0x24] ldrh r2, [r0, 0x24] adds r1, r2 strh r1, [r0, 0x24] strh r4, [r3, 0xA] strh r4, [r3, 0xC] strh r4, [r3, 0xE] b _080D1782 .align 2, 0 _080D16F0: .4byte 0x02020004 _080D16F4: ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D17BA movs r0, 0 strh r0, [r3, 0xA] ldrh r0, [r3, 0xC] adds r0, 0x1 strh r0, [r3, 0xC] ands r0, r4 lsls r0, 16 cmp r0, 0 beq _080D172C ldr r2, _080D1728 movs r4, 0x26 ldrsh r1, [r3, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x24] adds r1, 0x6 b _080D173E .align 2, 0 _080D1728: .4byte 0x02020004 _080D172C: ldr r2, _080D176C movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x24] subs r1, 0x6 _080D173E: strh r1, [r0, 0x24] ldrh r0, [r3, 0xE] adds r0, 0x1 strh r0, [r3, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _080D17BA ldrh r1, [r3, 0xC] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D1782 movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r0, [r1, 0x24] subs r0, 0x6 strh r0, [r1, 0x24] b _080D1782 .align 2, 0 _080D176C: .4byte 0x02020004 _080D1770: ldrh r0, [r3, 0x20] subs r0, 0x1 strh r0, [r3, 0x20] lsls r0, 16 cmp r0, 0 beq _080D1782 movs r0, 0 strh r0, [r3, 0x8] b _080D17BA _080D1782: ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] b _080D17BA _080D178A: ldr r2, _080D17C0 movs r4, 0x26 ldrsh r1, [r3, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r3, 0x22] ldrh r4, [r0, 0x24] adds r1, r4 strh r1, [r0, 0x24] movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x24 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D17BA adds r0, r5, 0 bl move_anim_task_del _080D17BA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D17C0: .4byte 0x02020004 thumb_func_end sub_80D16A0 thumb_func_start sub_80D17C4 sub_80D17C4: @ 80D17C4 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080D1800 adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] strh r0, [r4, 0xA] strh r0, [r4, 0xC] strh r0, [r4, 0xE] movs r0, 0x1 strh r0, [r4, 0x10] movs r0, 0xE strh r0, [r4, 0x22] movs r0, 0x2 strh r0, [r4, 0x24] movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] ldr r0, _080D1804 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080D1800: .4byte 0x03004b20 _080D1804: .4byte sub_80D1808 thumb_func_end sub_80D17C4 thumb_func_start sub_80D1808 sub_80D1808: @ 80D1808 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080D185C adds r4, r0, r1 movs r0, 0x8 ldrsh r2, [r4, r0] cmp r2, 0 bne _080D18CE ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 movs r3, 0x10 ldrsh r1, [r4, r3] cmp r0, r1 ble _080D18CE strh r2, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D1864 ldr r3, _080D1860 movs r6, 0x26 ldrsh r1, [r4, r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 b _080D187A .align 2, 0 _080D185C: .4byte 0x03004b20 _080D1860: .4byte 0x02020004 _080D1864: ldr r3, _080D18AC movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 _080D187A: strb r1, [r0] ldrh r0, [r4, 0xE] adds r0, 0x1 movs r2, 0 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 movs r6, 0x22 ldrsh r1, [r4, r6] cmp r0, r1 blt _080D18CE ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] lsls r0, 16 asrs r0, 16 movs r6, 0x24 ldrsh r1, [r4, r6] cmp r0, r1 bge _080D18B0 strh r2, [r4, 0xA] strh r2, [r4, 0xC] strh r2, [r4, 0xE] b _080D18CE .align 2, 0 _080D18AC: .4byte 0x02020004 _080D18B0: movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] adds r0, r5, 0 bl move_anim_task_del _080D18CE: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80D1808 thumb_func_start sub_80D18D4 sub_80D18D4: @ 80D18D4 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080D1924 adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] movs r1, 0x4 strh r1, [r4, 0xA] strh r0, [r4, 0xC] strh r0, [r4, 0xE] strh r0, [r4, 0x10] strh r0, [r4, 0x12] strh r0, [r4, 0x14] strh r0, [r4, 0x16] strh r0, [r4, 0x18] strh r0, [r4, 0x22] ldr r5, _080D1928 ldrb r0, [r5] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x24] ldrb r0, [r5] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] ldr r0, _080D192C str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D1924: .4byte 0x03004b20 _080D1928: .4byte 0x0202f7c8 _080D192C: .4byte sub_80D1930 thumb_func_end sub_80D18D4 thumb_func_start sub_80D1930 sub_80D1930: @ 80D1930 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _080D1954 adds r4, r0, r1 movs r0, 0x18 ldrsh r2, [r4, r0] cmp r2, 0x1 beq _080D199C cmp r2, 0x1 bgt _080D1958 cmp r2, 0 beq _080D195E b _080D19B8 .align 2, 0 _080D1954: .4byte 0x03004b20 _080D1958: cmp r2, 0x2 beq _080D19B4 b _080D19B8 _080D195E: ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D19B8 strh r2, [r4, 0x10] ldrh r0, [r4, 0x12] adds r0, 0x1 movs r1, 0x1 ands r0, r1 strh r0, [r4, 0x12] ldrh r0, [r4, 0x14] adds r0, 0x1 strh r0, [r4, 0x14] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080D19B8 movs r1, 0x16 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D1996 strh r2, [r4, 0x14] movs r0, 0x1 strh r0, [r4, 0x18] b _080D19B8 _080D1996: movs r0, 0x2 strh r0, [r4, 0x18] b _080D19B8 _080D199C: movs r1, 0 strh r1, [r4, 0x12] ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080D19B8 strh r2, [r4, 0x16] strh r1, [r4, 0x18] b _080D19B8 _080D19B4: movs r0, 0x1 strh r0, [r4, 0x12] _080D19B8: movs r2, 0x8 ldrsh r5, [r4, r2] cmp r5, 0 beq _080D19C6 cmp r5, 0x1 beq _080D1A5C b _080D1A6A _080D19C6: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _080D1A6A strh r5, [r4, 0xA] ldr r0, _080D1A50 movs r3, 0x24 ldrsh r1, [r4, r3] movs r3, 0x26 ldrsh r2, [r4, r3] movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080D1A6A ldr r0, _080D1A54 lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r0 strh r6, [r1, 0x2E] movs r0, 0xD strh r0, [r1, 0x30] ldr r2, _080D1A58 movs r3, 0xC ldrsh r0, [r4, r3] lsls r0, 1 adds r0, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 strh r0, [r1, 0x24] movs r3, 0xC ldrsh r0, [r4, r3] lsls r0, 1 adds r2, 0x1 adds r0, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 strh r0, [r1, 0x26] ldrh r0, [r4, 0x22] adds r0, 0x1 strh r0, [r4, 0x22] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080D1A6A strh r5, [r4, 0xC] ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _080D1A6A ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080D1A6A .align 2, 0 _080D1A50: .4byte gSpriteTemplate_83D79E8 _080D1A54: .4byte 0x02020004 _080D1A58: .4byte gUnknown_083D7A00 _080D1A5C: movs r1, 0x22 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D1A6A adds r0, r6, 0 bl move_anim_task_del _080D1A6A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80D1930 thumb_func_start sub_80D1A70 sub_80D1A70: @ 80D1A70 push {r4,lr} adds r3, r0, 0 ldr r4, _080D1AD8 movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 movs r1, 0x3E adds r1, r3 mov r12, r1 movs r2, 0x1 ldrb r1, [r0, 0x12] ands r1, r2 lsls r1, 2 mov r0, r12 ldrb r2, [r0] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] adds r0, r3, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D1AD2 movs r0, 0x30 ldrsh r1, [r3, r0] lsls r1, 1 movs r0, 0x2E ldrsh r2, [r3, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r0, r4, 0 adds r0, 0x8 adds r1, r0 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r3, 0 bl DestroySprite _080D1AD2: pop {r4} pop {r0} bx r0 .align 2, 0 _080D1AD8: .4byte 0x03004b20 thumb_func_end sub_80D1A70 thumb_func_start sub_80D1ADC sub_80D1ADC: @ 80D1ADC push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _080D1B34 bl IndexOfSpritePaletteTag mov r1, sp strb r0, [r1] movs r5, 0x1 ldr r0, _080D1B38 adds r4, r0, 0 _080D1AF4: subs r0, r4, r5 lsls r0, 16 lsrs r0, 16 bl AllocSpritePalette mov r2, sp adds r1, r2, r5 strb r0, [r1] adds r5, 0x1 cmp r5, 0x4 ble _080D1AF4 ldr r4, _080D1B3C bl sub_8076BE0 lsls r0, 24 ldr r1, _080D1B40 cmp r0, 0 beq _080D1B1C ldr r0, _080D1B44 adds r1, r0 _080D1B1C: adds r0, r4, 0 bl sub_800D238 movs r5, 0 _080D1B24: lsls r4, r5, 5 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D1B4C ldr r0, _080D1B48 b _080D1B4E .align 2, 0 _080D1B34: .4byte 0x000027de _080D1B38: .4byte 0x00002710 _080D1B3C: .4byte gUnknown_08D229BC _080D1B40: .4byte 0x02018000 _080D1B44: .4byte 0xffffc800 _080D1B48: .4byte 0x02014800 _080D1B4C: ldr r0, _080D1B7C _080D1B4E: adds r2, r4, r0 mov r1, sp adds r0, r1, r5 ldrb r1, [r0] lsls r1, 20 movs r0, 0x80 lsls r0, 17 adds r1, r0 lsrs r1, 16 adds r0, r2, 0 movs r2, 0x20 bl LoadPalette adds r5, 0x1 cmp r5, 0x4 ble _080D1B24 adds r0, r6, 0 bl move_anim_task_del add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D1B7C: .4byte 0x02018000 thumb_func_end sub_80D1ADC thumb_func_start sub_80D1B80 sub_80D1B80: @ 80D1B80 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r5, _080D1BA4 movs r4, 0x4 _080D1B8A: ldrh r0, [r5] bl FreeSpritePaletteByTag adds r5, 0x2 subs r4, 0x1 cmp r4, 0 bge _080D1B8A adds r0, r6, 0 bl move_anim_task_del pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D1BA4: .4byte gUnknown_083D7A5C thumb_func_end sub_80D1B80 thumb_func_start sub_80D1BA8 sub_80D1BA8: @ 80D1BA8 push {r4,r5,lr} adds r5, r0, 0 lsls r1, 24 lsls r2, 24 lsrs r3, r2, 24 movs r0, 0x1 ands r3, r0 negs r0, r3 orrs r0, r3 asrs r0, 31 movs r3, 0x20 ands r0, r3 ldrh r4, [r5, 0x4] lsls r3, r4, 22 lsrs r3, 22 lsrs r1, 22 adds r0, r1 adds r3, r0 ldr r1, _080D1BFC adds r0, r1, 0 ands r3, r0 ldr r0, _080D1C00 ands r0, r4 orrs r0, r3 strh r0, [r5, 0x4] ldr r0, _080D1C04 lsrs r2, 25 lsls r2, 1 adds r2, r0 ldrh r0, [r2] bl IndexOfSpritePaletteTag lsls r0, 4 ldrb r2, [r5, 0x5] movs r1, 0xF ands r1, r2 orrs r1, r0 strb r1, [r5, 0x5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D1BFC: .4byte 0x000003ff _080D1C00: .4byte 0xfffffc00 _080D1C04: .4byte gUnknown_083D7A5C thumb_func_end sub_80D1BA8 thumb_func_start sub_80D1C08 sub_80D1C08: @ 80D1C08 push {r4-r6,lr} adds r5, r0, 0 movs r1, 0 bl sub_80787B0 ldr r6, _080D1C70 ldrb r0, [r6] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D1C28 ldr r1, _080D1C74 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080D1C28: ldr r4, _080D1C74 ldrh r0, [r4, 0x8] strh r0, [r5, 0x2E] ldrb r0, [r6] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] adds r0, r1 strh r0, [r5, 0x32] ldrb r0, [r6] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] adds r0, r1 strh r0, [r5, 0x36] ldr r0, _080D1C78 str r0, [r5, 0x1C] ldr r1, _080D1C7C adds r0, r5, 0 bl oamt_set_x3A_32 ldrb r1, [r4, 0xA] ldrb r2, [r4, 0xC] adds r0, r5, 0 bl sub_80D1BA8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D1C70: .4byte 0x0202f7c8 _080D1C74: .4byte 0x03004b00 _080D1C78: .4byte sub_8078B34 _080D1C7C: .4byte move_anim_8072740 thumb_func_end sub_80D1C08 thumb_func_start sub_80D1C80 sub_80D1C80: @ 80D1C80 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080D1C9A adds r0, r4, 0 movs r1, 0 bl sub_80787B0 _080D1C9A: movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x8 bl sine strh r0, [r4, 0x24] ldrh r2, [r4, 0x32] lsls r0, r2, 16 asrs r0, 24 strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r0, 0x7 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] subs r2, 0x80 strh r2, [r4, 0x32] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x3C bne _080D1CCA adds r0, r4, 0 bl move_anim_8072740 _080D1CCA: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D1C80 thumb_func_start sub_80D1CD0 sub_80D1CD0: @ 80D1CD0 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8076BE0 lsls r0, 24 movs r2, 0xF0 cmp r0, 0 beq _080D1CE4 movs r2, 0x98 _080D1CE4: movs r3, 0 ldr r0, _080D1D2C strh r2, [r0] ldr r0, _080D1D30 movs r1, 0xA0 strh r1, [r0] ldr r0, _080D1D34 strh r2, [r0] adds r0, 0x4 strh r1, [r0] ldr r1, _080D1D38 ldr r5, _080D1D3C adds r0, r5, 0 strh r0, [r1] adds r1, 0x2 adds r5, 0x20 adds r0, r5, 0 strh r0, [r1] adds r1, 0x6 movs r0, 0xC8 strh r0, [r1] adds r1, 0x4 movs r0, 0x10 strh r0, [r1] ldr r1, _080D1D40 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r3, [r0, 0x8] strh r2, [r0, 0xA] ldr r1, _080D1D44 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D1D2C: .4byte 0x030042c4 _080D1D30: .4byte 0x03004240 _080D1D34: .4byte REG_WIN0H _080D1D38: .4byte REG_WININ _080D1D3C: .4byte 0x00003f1f _080D1D40: .4byte 0x03004b20 _080D1D44: .4byte sub_80D1D48 thumb_func_end sub_80D1CD0 thumb_func_start sub_80D1D48 sub_80D1D48: @ 80D1D48 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080D1D7C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r3, r1, r2 ldrh r0, [r3, 0x8] adds r4, r0, 0 adds r4, 0xD strh r4, [r3, 0x8] ldrh r0, [r3, 0xA] adds r2, r0, 0 subs r2, 0xD strh r2, [r3, 0xA] lsls r1, r4, 16 lsls r0, r2, 16 cmp r1, r0 blt _080D1D88 ldr r0, _080D1D80 movs r1, 0 strh r1, [r0] ldr r0, _080D1D84 str r0, [r3] b _080D1D90 .align 2, 0 _080D1D7C: .4byte 0x03004b20 _080D1D80: .4byte 0x030042c4 _080D1D84: .4byte sub_80D1D9C _080D1D88: ldr r1, _080D1D98 lsls r0, r4, 8 orrs r2, r0 strh r2, [r1] _080D1D90: pop {r4} pop {r0} bx r0 .align 2, 0 _080D1D98: .4byte 0x030042c4 thumb_func_end sub_80D1D48 thumb_func_start sub_80D1D9C sub_80D1D9C: @ 80D1D9C push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 ldr r5, _080D1DEC lsls r0, r2, 2 adds r0, r2 lsls r3, r0, 3 adds r1, r3, r5 ldrh r0, [r1, 0x1C] adds r0, 0x1 movs r4, 0 strh r0, [r1, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _080D1DF8 movs r0, 0x88 strh r0, [r1, 0x1E] adds r0, r5, r3 adds r0, 0x1E ldr r1, _080D1DF0 movs r2, 0x2 bl RequestSpriteCopy str r4, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80791A8 ldr r2, _080D1DF4 movs r1, 0x10 bl BlendPalettes b _080D1E1E .align 2, 0 _080D1DEC: .4byte 0x03004b20 _080D1DF0: .4byte REG_BLDCNT _080D1DF4: .4byte 0x00007fff _080D1DF8: cmp r0, 0x4 ble _080D1E1E ldr r0, _080D1E28 strh r4, [r0] ldr r0, _080D1E2C strh r4, [r0] ldr r0, _080D1E30 ldr r3, _080D1E34 adds r1, r3, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x6 strh r4, [r0] adds r0, 0x4 strh r4, [r0] adds r0, r2, 0 bl move_anim_task_del _080D1E1E: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D1E28: .4byte 0x030042c4 _080D1E2C: .4byte 0x03004240 _080D1E30: .4byte REG_WININ _080D1E34: .4byte 0x00003f3f thumb_func_end sub_80D1D9C thumb_func_start sub_80D1E38 sub_80D1E38: @ 80D1E38 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 movs r0, 0x1 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080D1E88 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r5, r0, r1 ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080D1E94 movs r0, 0x1 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _080D1E8C adds r0, r5, 0 bl sub_80798F4 ldr r1, _080D1E90 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 movs r1, 0x4 strh r1, [r0, 0x24] b _080D1EBC .align 2, 0 _080D1E88: .4byte 0x03004b20 _080D1E8C: .4byte gUnknown_083D7A98 _080D1E90: .4byte 0x02020004 _080D1E94: ldr r1, _080D1EC4 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r4, r0, r1 ldrh r0, [r4, 0x24] negs r0, r0 strh r0, [r4, 0x24] adds r0, r5, 0 bl sub_807992C lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080D1EBC strh r0, [r4, 0x24] strh r0, [r4, 0x26] adds r0, r6, 0 bl move_anim_task_del _080D1EBC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D1EC4: .4byte 0x02020004 thumb_func_end sub_80D1E38 thumb_func_start sub_80D1EC8 sub_80D1EC8: @ 80D1EC8 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080D1F18 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r5, r0, r1 ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080D1F24 movs r0, 0 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _080D1F1C adds r0, r5, 0 bl sub_80798F4 ldr r1, _080D1F20 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 movs r1, 0x4 strh r1, [r0, 0x24] b _080D1F4C .align 2, 0 _080D1F18: .4byte 0x03004b20 _080D1F1C: .4byte gUnknown_083D7A98 _080D1F20: .4byte 0x02020004 _080D1F24: ldr r1, _080D1F54 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r4, r0, r1 ldrh r0, [r4, 0x24] negs r0, r0 strh r0, [r4, 0x24] adds r0, r5, 0 bl sub_807992C lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080D1F4C strh r0, [r4, 0x24] strh r0, [r4, 0x26] adds r0, r6, 0 bl move_anim_task_del _080D1F4C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D1F54: .4byte 0x02020004 thumb_func_end sub_80D1EC8 thumb_func_start sub_80D1F58 sub_80D1F58: @ 80D1F58 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 movs r0, 0x5F strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] ldr r5, _080D1F9C ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] adds r0, r4, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r0, _080D1FA0 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D1F9C: .4byte 0x0202f7c9 _080D1FA0: .4byte sub_80D1FA4 thumb_func_end sub_80D1F58 thumb_func_start sub_80D1FA4 sub_80D1FA4: @ 80D1FA4 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 bne _080D1FCE movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0xE bl sine ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x38] adds r0, 0x4 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] b _080D1FD4 _080D1FCE: adds r0, r4, 0 bl move_anim_8072740 _080D1FD4: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D1FA4 thumb_func_start sub_80D1FDC sub_80D1FDC: @ 80D1FDC push {r4,lr} adds r4, r0, 0 ldrh r2, [r4, 0x2E] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080D2000 ldr r1, _080D1FFC ldrh r0, [r1] strh r0, [r4, 0x30] ldrh r0, [r1, 0x2] strh r0, [r4, 0x32] adds r0, r2, 0x1 strh r0, [r4, 0x2E] b _080D205C .align 2, 0 _080D1FFC: .4byte 0x03004b00 _080D2000: ldrh r0, [r4, 0x30] ldrh r2, [r4, 0x36] adds r0, r2 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] movs r1, 0x34 ldrsh r0, [r4, r1] movs r2, 0x32 ldrsh r1, [r4, r2] bl sine strh r0, [r4, 0x26] ldrh r0, [r4, 0x34] adds r0, 0x3 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x34] cmp r0, 0x64 ble _080D204E movs r0, 0x34 ldrsh r1, [r4, r0] lsrs r0, r1, 31 adds r0, r1, r0 asrs r0, 1 lsls r0, 1 subs r1, r0 adds r3, r4, 0 adds r3, 0x3E movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080D204E: movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0x78 ble _080D205C adds r0, r4, 0 bl move_anim_8072740 _080D205C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D1FDC thumb_func_start sub_80D2064 sub_80D2064: @ 80D2064 push {lr} ldr r2, _080D2088 ldrh r1, [r2] strh r1, [r0, 0x20] movs r1, 0xA0 strh r1, [r0, 0x22] ldrh r1, [r2, 0x4] strh r1, [r0, 0x2E] ldrh r1, [r2, 0x2] strh r1, [r0, 0x30] ldr r1, _080D208C str r1, [r0, 0x1C] ldr r1, _080D2090 bl oamt_set_x3A_32 pop {r0} bx r0 .align 2, 0 _080D2088: .4byte 0x03004b00 _080D208C: .4byte sub_80782D8 _080D2090: .4byte sub_80D2094 thumb_func_end sub_80D2064 thumb_func_start sub_80D2094 sub_80D2094: @ 80D2094 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] lsls r0, 16 lsrs r0, 24 negs r0, r0 strh r0, [r4, 0x26] movs r1, 0x34 ldrsh r0, [r4, r1] movs r1, 0x4 bl sine strh r0, [r4, 0x24] ldrh r0, [r4, 0x34] adds r0, 0x3 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x34] ldrh r0, [r4, 0x26] ldrh r1, [r4, 0x22] adds r0, r1 lsls r0, 16 asrs r5, r0, 16 cmp r5, 0x48 bgt _080D20FA movs r0, 0x34 ldrsh r1, [r4, r0] lsrs r0, r1, 31 adds r0, r1, r0 asrs r0, 1 lsls r0, 1 subs r1, r0 adds r3, r4, 0 adds r3, 0x3E movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] cmp r5, 0x40 bgt _080D20FA adds r0, r4, 0 bl move_anim_8072740 _080D20FA: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80D2094 thumb_func_start sub_80D2100 sub_80D2100: @ 80D2100 push {r4,r5,lr} sub sp, 0x10 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080D21BC ldr r2, _080D21C0 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r4, _080D21C4 ldrb r0, [r4] movs r1, 0x3 orrs r0, r1 strb r0, [r4] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D2144 ldrb r0, [r4] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4] _080D2144: ldr r0, _080D21C8 movs r1, 0 strh r1, [r0] ldr r0, _080D21CC strh r1, [r0] ldr r0, _080D21D0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] mov r0, sp bl sub_8078914 ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r2, _080D21D4 add r0, sp, 0xC str r0, [r2] str r1, [r2, 0x4] ldr r0, _080D21D8 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _080D21DC bl LZDecompressVram ldr r0, _080D21E0 ldr r1, [sp] bl LZDecompressVram ldr r0, _080D21E4 mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D21A4 mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_80763FC _080D21A4: ldr r0, _080D21E8 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _080D21EC str r0, [r1] add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D21BC: .4byte REG_BLDCNT _080D21C0: .4byte 0x00003f42 _080D21C4: .4byte REG_BG1CNT _080D21C8: .4byte 0x030042c0 _080D21CC: .4byte 0x030041b4 _080D21D0: .4byte REG_BG1HOFS _080D21D4: .4byte 0x040000d4 _080D21D8: .4byte 0x85000400 _080D21DC: .4byte gUnknown_08D24124 _080D21E0: .4byte gUnknown_08D2368C _080D21E4: .4byte gUnknown_08D240FC _080D21E8: .4byte 0x03004b20 _080D21EC: .4byte sub_80D21F0 thumb_func_end sub_80D2100 thumb_func_start sub_80D21F0 sub_80D21F0: @ 80D21F0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080D2220 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0x20 ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0x4 bls _080D2216 b _080D238C _080D2216: lsls r0, 2 ldr r1, _080D2224 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080D2220: .4byte 0x03004b20 _080D2224: .4byte _080D2228 .align 2, 0 _080D2228: .4byte _080D223C .4byte _080D2284 .4byte _080D22A6 .4byte _080D22E8 .4byte _080D236C _080D223C: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x1C] adds r0, 0x1 movs r4, 0 strh r0, [r3, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 beq _080D2256 b _080D238C _080D2256: strh r4, [r3, 0x1C] ldrh r1, [r3, 0x1E] adds r1, 0x1 strh r1, [r3, 0x1E] ldr r2, _080D2280 movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r1, 0x1E ldrsh r0, [r3, r1] cmp r0, 0x10 beq _080D2274 b _080D238C _080D2274: ldrh r0, [r3, 0x20] adds r0, 0x1 strh r0, [r3, 0x20] strh r4, [r3, 0x1E] b _080D238C .align 2, 0 _080D2280: .4byte REG_BLDALPHA _080D2284: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r1, r0, r2 ldrh r0, [r1, 0x1E] adds r0, 0x1 strh r0, [r1, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x8D bne _080D238C movs r0, 0x10 strh r0, [r1, 0x1E] ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] b _080D238C _080D22A6: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x1C] adds r0, 0x1 strh r0, [r3, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080D238C movs r0, 0 strh r0, [r3, 0x1C] ldrh r1, [r3, 0x1E] subs r1, 0x1 strh r1, [r3, 0x1E] ldr r2, _080D22E4 movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r2, 0x1E ldrsh r1, [r3, r2] cmp r1, 0 bne _080D238C ldrh r0, [r3, 0x20] adds r0, 0x1 strh r0, [r3, 0x20] strh r1, [r3, 0x1E] b _080D238C .align 2, 0 _080D22E4: .4byte REG_BLDALPHA _080D22E8: mov r0, sp bl sub_8078914 ldr r2, [sp] movs r3, 0x80 lsls r3, 6 lsls r0, r5, 2 mov r10, r0 add r6, sp, 0xC movs r7, 0 ldr r1, _080D239C movs r4, 0x80 lsls r4, 5 mov r8, r6 ldr r0, _080D23A0 mov r12, r0 movs r0, 0x85 lsls r0, 24 mov r9, r0 _080D230E: str r7, [sp, 0xC] mov r0, r8 str r0, [r1] str r2, [r1, 0x4] mov r0, r12 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080D230E str r7, [sp, 0xC] str r6, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r9 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r0, _080D239C str r6, [r0] str r1, [r0, 0x4] ldr r1, _080D23A4 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D235C ldr r2, _080D23A8 ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080D235C: ldr r0, _080D23AC mov r2, r10 adds r1, r2, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] _080D236C: ldr r0, _080D23B0 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r2, _080D23A8 ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] adds r0, r5, 0 bl move_anim_task_del _080D238C: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D239C: .4byte 0x040000d4 _080D23A0: .4byte 0x85000400 _080D23A4: .4byte 0x85000200 _080D23A8: .4byte REG_BG1CNT _080D23AC: .4byte 0x03004b20 _080D23B0: .4byte REG_BLDCNT thumb_func_end sub_80D21F0 thumb_func_start sub_80D23B4 sub_80D23B4: @ 80D23B4 push {r4,r5,lr} sub sp, 0x10 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080D2438 ldr r2, _080D243C adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r4, _080D2440 ldrb r1, [r4] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D23FE ldrb r0, [r4] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4] _080D23FE: ldr r0, _080D2444 movs r1, 0 strh r1, [r0] ldr r0, _080D2448 strh r1, [r0] ldr r0, _080D244C strh r1, [r0] adds r0, 0x2 strh r1, [r0] mov r0, sp bl sub_8078914 ldr r2, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r1, _080D2450 add r0, sp, 0xC str r0, [r1] str r2, [r1, 0x4] ldr r0, _080D2454 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D245C ldr r0, _080D2458 b _080D246E .align 2, 0 _080D2438: .4byte REG_BLDCNT _080D243C: .4byte 0x00003f42 _080D2440: .4byte REG_BG1CNT _080D2444: .4byte 0x030042c0 _080D2448: .4byte 0x030041b4 _080D244C: .4byte REG_BG1HOFS _080D2450: .4byte 0x040000d4 _080D2454: .4byte 0x85000400 _080D2458: .4byte gUnknown_08E6E4C8 _080D245C: ldr r0, _080D2478 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080D2480 ldr r0, _080D247C _080D246E: ldr r1, [sp, 0x4] bl LZDecompressVram b _080D2488 .align 2, 0 _080D2478: .4byte 0x0202f7c9 _080D247C: .4byte gUnknown_08E6E100 _080D2480: ldr r0, _080D24CC ldr r1, [sp, 0x4] bl LZDecompressVram _080D2488: ldr r0, _080D24D0 ldr r1, [sp] bl LZDecompressVram ldr r0, _080D24D4 mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D24B6 mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_80763FC _080D24B6: ldr r0, _080D24D8 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _080D24DC str r0, [r1] add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D24CC: .4byte gUnknown_08E6E2E4 _080D24D0: .4byte gUnknown_08D24DA4 _080D24D4: .4byte gUnknown_08D24D7C _080D24D8: .4byte 0x03004b20 _080D24DC: .4byte sub_80D24E0 thumb_func_end sub_80D23B4 thumb_func_start sub_80D24E0 sub_80D24E0: @ 80D24E0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080D2510 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0x20 ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0x4 bls _080D2506 b _080D267C _080D2506: lsls r0, 2 ldr r1, _080D2514 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080D2510: .4byte 0x03004b20 _080D2514: .4byte _080D2518 .align 2, 0 _080D2518: .4byte _080D252C .4byte _080D2574 .4byte _080D2596 .4byte _080D25D8 .4byte _080D265C _080D252C: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x1C] adds r0, 0x1 movs r4, 0 strh r0, [r3, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 beq _080D2546 b _080D267C _080D2546: strh r4, [r3, 0x1C] ldrh r1, [r3, 0x1E] adds r1, 0x1 strh r1, [r3, 0x1E] ldr r2, _080D2570 movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r1, 0x1E ldrsh r0, [r3, r1] cmp r0, 0xE beq _080D2564 b _080D267C _080D2564: ldrh r0, [r3, 0x20] adds r0, 0x1 strh r0, [r3, 0x20] strh r4, [r3, 0x1E] b _080D267C .align 2, 0 _080D2570: .4byte REG_BLDALPHA _080D2574: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r1, r0, r2 ldrh r0, [r1, 0x1E] adds r0, 0x1 strh r0, [r1, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x15 bne _080D267C movs r0, 0xE strh r0, [r1, 0x1E] ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] b _080D267C _080D2596: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x1C] adds r0, 0x1 strh r0, [r3, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _080D267C movs r0, 0 strh r0, [r3, 0x1C] ldrh r1, [r3, 0x1E] subs r1, 0x1 strh r1, [r3, 0x1E] ldr r2, _080D25D4 movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r2, 0x1E ldrsh r1, [r3, r2] cmp r1, 0 bne _080D267C ldrh r0, [r3, 0x20] adds r0, 0x1 strh r0, [r3, 0x20] strh r1, [r3, 0x1E] b _080D267C .align 2, 0 _080D25D4: .4byte REG_BLDALPHA _080D25D8: mov r0, sp bl sub_8078914 ldr r2, [sp] movs r3, 0x80 lsls r3, 6 lsls r0, r5, 2 mov r10, r0 add r6, sp, 0xC movs r7, 0 ldr r1, _080D268C movs r4, 0x80 lsls r4, 5 mov r8, r6 ldr r0, _080D2690 mov r12, r0 movs r0, 0x85 lsls r0, 24 mov r9, r0 _080D25FE: str r7, [sp, 0xC] mov r0, r8 str r0, [r1] str r2, [r1, 0x4] mov r0, r12 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080D25FE str r7, [sp, 0xC] str r6, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r9 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r0, _080D268C str r6, [r0] str r1, [r0, 0x4] ldr r1, _080D2694 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D264C ldr r2, _080D2698 ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080D264C: ldr r0, _080D269C mov r2, r10 adds r1, r2, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] _080D265C: ldr r0, _080D26A0 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r2, _080D2698 ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] adds r0, r5, 0 bl move_anim_task_del _080D267C: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D268C: .4byte 0x040000d4 _080D2690: .4byte 0x85000400 _080D2694: .4byte 0x85000200 _080D2698: .4byte REG_BG1CNT _080D269C: .4byte 0x03004b20 _080D26A0: .4byte REG_BLDCNT thumb_func_end sub_80D24E0 thumb_func_start sub_80D26A4 sub_80D26A4: @ 80D26A4 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080D26F8 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r1, _080D26FC ldrh r0, [r1] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x2] strh r0, [r4, 0x30] ldrb r0, [r5] bl sub_8079E90 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x3C] ldr r1, _080D2700 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D26F8: .4byte 0x0202f7c8 _080D26FC: .4byte 0x03004b00 _080D2700: .4byte sub_80D2704 thumb_func_end sub_80D26A4 thumb_func_start sub_80D2704 sub_80D2704: @ 80D2704 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] subs r0, 0x40 lsls r0, 16 lsrs r0, 16 cmp r0, 0x7F bhi _080D271A ldrh r0, [r4, 0x3C] adds r0, 0x1 b _080D271E _080D271A: ldrh r0, [r4, 0x3C] subs r0, 0x1 _080D271E: adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] movs r1, 0x30 ldrsh r0, [r4, r1] ldrh r1, [r4, 0x32] lsls r1, 16 asrs r1, 24 bl sine strh r0, [r4, 0x24] movs r2, 0x30 ldrsh r0, [r4, r2] ldrh r1, [r4, 0x34] lsls r1, 16 asrs r1, 24 bl cosine strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r0, 0x9 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] movs r3, 0x38 ldrsh r2, [r4, r3] cmp r2, 0 beq _080D2790 cmp r2, 0x1 bne _080D27C0 ldr r1, _080D2788 adds r0, r1, 0 ldrh r2, [r4, 0x32] adds r0, r2 strh r0, [r4, 0x32] ldr r3, _080D278C adds r0, r3, 0 ldrh r1, [r4, 0x34] adds r0, r1 strh r0, [r4, 0x34] ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 16 movs r2, 0x2E ldrsh r1, [r4, r2] cmp r0, r1 bne _080D27C0 movs r0, 0x2 strh r0, [r4, 0x38] b _080D27D0 .align 2, 0 _080D2788: .4byte 0xfffffc00 _080D278C: .4byte 0xffffff00 _080D2790: movs r3, 0x80 lsls r3, 3 adds r0, r3, 0 ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] movs r3, 0x80 lsls r3, 1 adds r0, r3, 0 ldrh r1, [r4, 0x34] adds r0, r1 strh r0, [r4, 0x34] ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 16 movs r3, 0x2E ldrsh r1, [r4, r3] cmp r0, r1 bne _080D27C0 strh r2, [r4, 0x36] movs r0, 0x1 strh r0, [r4, 0x38] _080D27C0: ldr r0, _080D27D8 ldrh r1, [r0, 0xE] ldr r0, _080D27DC cmp r1, r0 bne _080D27D0 adds r0, r4, 0 bl move_anim_8072740 _080D27D0: pop {r4} pop {r0} bx r0 .align 2, 0 _080D27D8: .4byte 0x03004b00 _080D27DC: .4byte 0x0000ffff thumb_func_end sub_80D2704 thumb_func_start sub_80D27E0 sub_80D27E0: @ 80D27E0 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080D2828 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r4, _080D282C movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0xA bl sine strh r0, [r5, 0x2E] movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x7 bl cosine strh r0, [r5, 0x30] ldr r0, _080D2830 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D2828: .4byte 0x0202f7c8 _080D282C: .4byte 0x03004b00 _080D2830: .4byte sub_80D2834 thumb_func_end sub_80D27E0 thumb_func_start sub_80D2834 sub_80D2834: @ 80D2834 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x24] ldrh r0, [r2, 0x30] ldrh r3, [r2, 0x26] adds r0, r3 strh r0, [r2, 0x26] movs r1, 0x20 ldrsh r0, [r2, r1] movs r3, 0x24 ldrsh r1, [r2, r3] adds r0, r1 adds r0, 0x10 movs r1, 0x88 lsls r1, 1 cmp r0, r1 bhi _080D2872 movs r0, 0x22 ldrsh r1, [r2, r0] movs r3, 0x26 ldrsh r0, [r2, r3] adds r1, r0 cmp r1, 0xA0 bgt _080D2872 movs r0, 0x10 negs r0, r0 cmp r1, r0 bge _080D2878 _080D2872: adds r0, r2, 0 bl move_anim_8072740 _080D2878: pop {r0} bx r0 thumb_func_end sub_80D2834 thumb_func_start sub_80D287C sub_80D287C: @ 80D287C push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x24] ldrh r0, [r2, 0x30] ldrh r3, [r2, 0x26] adds r0, r3 strh r0, [r2, 0x26] ldrh r0, [r2, 0x34] adds r1, r0, 0x1 strh r1, [r2, 0x34] lsls r0, 16 asrs r0, 16 movs r3, 0x32 ldrsh r1, [r2, r3] cmp r0, r1 blt _080D28A8 adds r0, r2, 0 bl move_anim_8072740 _080D28A8: pop {r0} bx r0 thumb_func_end sub_80D287C thumb_func_start sub_80D28AC sub_80D28AC: @ 80D28AC push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080D28F8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r4, _080D28FC movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0xA bl sine strh r0, [r5, 0x2E] movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x7 bl cosine strh r0, [r5, 0x30] ldrh r0, [r4, 0x2] strh r0, [r5, 0x32] ldr r0, _080D2900 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D28F8: .4byte 0x0202f7c8 _080D28FC: .4byte 0x03004b00 _080D2900: .4byte sub_80D287C thumb_func_end sub_80D28AC thumb_func_start sub_80D2904 sub_80D2904: @ 80D2904 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D291A adds r0, r2, 0 bl move_anim_8072740 _080D291A: pop {r0} bx r0 thumb_func_end sub_80D2904 thumb_func_start sub_80D2920 sub_80D2920: @ 80D2920 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080D2934 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D2934: .4byte sub_80D2904 thumb_func_end sub_80D2920 thumb_func_start sub_80D2938 sub_80D2938: @ 80D2938 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080D2956 ldr r0, _080D29C8 ldrh r1, [r0] ldrh r2, [r4, 0x20] adds r1, r2 strh r1, [r4, 0x20] ldrh r0, [r0, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] _080D2956: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] movs r2, 0x2E ldrsh r1, [r4, r2] lsls r0, r1, 2 adds r0, r1 lsls r5, r0, 1 movs r0, 0xFF ands r5, r0 adds r0, r5, 0 movs r1, 0x50 bl sine lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x4F bgt _080D299A adds r0, r5, 0 movs r1, 0x50 bl cosine movs r2, 0x2E ldrsh r1, [r4, r2] lsrs r2, r1, 31 adds r1, r2 asrs r1, 1 lsls r0, 16 asrs r0, 24 adds r1, r0 strh r1, [r4, 0x26] _080D299A: movs r0, 0x2E ldrsh r2, [r4, r0] cmp r2, 0x5A ble _080D29B8 ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] movs r0, 0x32 ldrsh r1, [r4, r0] lsrs r0, r1, 31 adds r1, r0 asrs r1, 1 ldrh r0, [r4, 0x24] subs r0, r1 strh r0, [r4, 0x24] _080D29B8: cmp r2, 0x64 ble _080D29C2 adds r0, r4, 0 bl move_anim_8072740 _080D29C2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D29C8: .4byte 0x03004b00 thumb_func_end sub_80D2938 thumb_func_start sub_80D29CC sub_80D29CC: @ 80D29CC push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] movs r1, 0x34 ldrsh r0, [r4, r1] movs r1, 0x5 bl sine strh r0, [r4, 0x24] movs r1, 0x38 ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x34] adds r0, 0x3 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x34] movs r1, 0x38 ldrsh r0, [r4, r1] cmp r0, 0x14 ble _080D2A22 adds r1, r0, 0 lsrs r0, r1, 31 adds r0, r1, r0 asrs r0, 1 lsls r0, 1 subs r1, r0 adds r3, r4, 0 adds r3, 0x3E movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080D2A22: movs r1, 0x38 ldrsh r0, [r4, r1] cmp r0, 0x1E ble _080D2A30 adds r0, r4, 0 bl move_anim_8072740 _080D2A30: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D29CC thumb_func_start sub_80D2A38 sub_80D2A38: @ 80D2A38 push {r4,r5,lr} adds r4, r0, 0 ldrh r2, [r4, 0x2E] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080D2A5C ldr r1, _080D2A58 ldrh r0, [r1] strh r0, [r4, 0x30] ldrh r0, [r1, 0x2] strh r0, [r4, 0x32] adds r0, r2, 0x1 strh r0, [r4, 0x2E] b _080D2AB0 .align 2, 0 _080D2A58: .4byte 0x03004b00 _080D2A5C: ldrh r0, [r4, 0x30] ldrh r2, [r4, 0x36] adds r0, r2 movs r5, 0 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] movs r1, 0x34 ldrsh r0, [r4, r1] movs r2, 0x32 ldrsh r1, [r4, r2] bl sine adds r2, r0, 0 strh r2, [r4, 0x26] ldrh r0, [r4, 0x34] adds r0, 0x3 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x34] cmp r0, 0x46 ble _080D2AB0 ldr r0, _080D2AB8 str r0, [r4, 0x1C] ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r1, [r4, 0x22] adds r0, r2, r1 strh r0, [r4, 0x22] strh r5, [r4, 0x24] strh r5, [r4, 0x26] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xB4 bl __umodsi3 strh r0, [r4, 0x34] _080D2AB0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D2AB8: .4byte sub_80D29CC thumb_func_end sub_80D2A38 thumb_func_start sub_80D2ABC sub_80D2ABC: @ 80D2ABC push {r4,lr} adds r4, r0, 0 movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D2AF6 ldr r1, _080D2BB8 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0 bl StartSpriteAnim ldr r0, _080D2BBC ldrb r0, [r0] bl sub_8079E90 subs r0, 0x1 adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] movs r0, 0x1 strh r0, [r4, 0x32] _080D2AF6: ldrh r0, [r4, 0x32] ldrh r2, [r4, 0x2E] adds r0, r2 strh r0, [r4, 0x2E] movs r1, 0x2E ldrsh r0, [r4, r1] lsls r1, r0, 2 adds r0, r1, 0 cmp r1, 0 bge _080D2B0C adds r0, 0xFF _080D2B0C: asrs r0, 8 lsls r0, 8 subs r0, r1, r0 strh r0, [r4, 0x30] lsls r0, 16 cmp r0, 0 bge _080D2B1E movs r0, 0 strh r0, [r4, 0x30] _080D2B1E: movs r0, 0x30 ldrsh r2, [r4, r0] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bge _080D2B2C adds r0, 0x3 _080D2B2C: asrs r0, 2 movs r1, 0x1E subs r1, r0 adds r0, r2, 0 bl cosine strh r0, [r4, 0x24] movs r0, 0x30 ldrsh r2, [r4, r0] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bge _080D2B48 adds r0, 0x7 _080D2B48: asrs r0, 3 movs r1, 0xA subs r1, r0 adds r0, r2, 0 bl sine strh r0, [r4, 0x26] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0x80 ble _080D2B6C ldrh r1, [r4, 0x32] movs r2, 0x32 ldrsh r0, [r4, r2] cmp r0, 0 ble _080D2B6C ldr r0, _080D2BC0 strh r0, [r4, 0x32] _080D2B6C: movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D2B80 movs r2, 0x32 ldrsh r0, [r4, r2] cmp r0, 0 bge _080D2B80 movs r0, 0x1 strh r0, [r4, 0x32] _080D2B80: ldrh r0, [r4, 0x34] adds r1, r0, 0x1 strh r1, [r4, 0x34] subs r0, 0x9 lsls r0, 16 lsrs r0, 16 cmp r0, 0x46 bls _080D2BC4 movs r0, 0x2E ldrsh r1, [r4, r0] lsrs r0, r1, 31 adds r0, r1, r0 asrs r0, 1 lsls r0, 1 subs r1, r0 adds r3, r4, 0 adds r3, 0x3E movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] b _080D2BD2 .align 2, 0 _080D2BB8: .4byte 0x03004b00 _080D2BBC: .4byte 0x0202f7c9 _080D2BC0: .4byte 0x0000ffff _080D2BC4: adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _080D2BD2: movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0x5A ble _080D2BE0 adds r0, r4, 0 bl move_anim_8072740 _080D2BE0: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D2ABC thumb_func_start sub_80D2BE8 sub_80D2BE8: @ 80D2BE8 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080D2C1C ldr r1, _080D2C18 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] ldrb r1, [r1, 0x4] adds r0, r4, 0 bl StartSpriteAnim ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080D2C30 .align 2, 0 _080D2C18: .4byte 0x03004b00 _080D2C1C: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D2C30 adds r0, r4, 0 bl move_anim_8072740 _080D2C30: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D2BE8 thumb_func_start sub_80D2C38 sub_80D2C38: @ 80D2C38 push {r4,r5,lr} adds r5, r0, 0 ldr r1, _080D2C50 movs r2, 0x4 ldrsh r0, [r1, r2] cmp r0, 0 bne _080D2C54 adds r0, r5, 0 bl move_anim_8072740 b _080D2CB8 .align 2, 0 _080D2C50: .4byte 0x03004b00 _080D2C54: movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 bne _080D2C64 ldr r4, _080D2C60 b _080D2C66 .align 2, 0 _080D2C60: .4byte 0x0202f7c8 _080D2C64: ldr r4, _080D2C94 _080D2C66: ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r0, _080D2C98 movs r2, 0x2 ldrsh r1, [r0, r2] adds r2, r0, 0 cmp r1, 0 bne _080D2C9C ldrh r0, [r5, 0x20] adds r0, 0x20 b _080D2CA0 .align 2, 0 _080D2C94: .4byte 0x0202f7c9 _080D2C98: .4byte 0x03004b00 _080D2C9C: ldrh r0, [r5, 0x20] subs r0, 0x20 _080D2CA0: strh r0, [r5, 0x20] ldrh r0, [r2, 0x4] strh r0, [r5, 0x2E] ldrh r1, [r2, 0x2] strh r1, [r5, 0x30] lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnim ldr r0, _080D2CC0 str r0, [r5, 0x1C] _080D2CB8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D2CC0: .4byte sub_80D2CC4 thumb_func_end sub_80D2C38 thumb_func_start sub_80D2CC4 sub_80D2CC4: @ 80D2CC4 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D2CF4 ldrh r0, [r2, 0x2E] subs r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 cmp r0, 0 beq _080D2CEE ldrh r1, [r2, 0x30] lsls r1, 24 lsrs r1, 24 adds r0, r2, 0 bl StartSpriteAnim b _080D2CF4 _080D2CEE: adds r0, r2, 0 bl move_anim_8072740 _080D2CF4: pop {r0} bx r0 thumb_func_end sub_80D2CC4 thumb_func_start sub_80D2CF8 sub_80D2CF8: @ 80D2CF8 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, _080D2D2C ldrb r0, [r0] bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 ldr r0, _080D2D30 adds r4, r0 ldr r2, _080D2D34 adds r0, r4, 0 bl sub_80798F4 ldr r0, _080D2D38 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D2D2C: .4byte 0x03004b00 _080D2D30: .4byte 0x03004b20 _080D2D34: .4byte gUnknown_083D7CA8 _080D2D38: .4byte sub_80D2D3C thumb_func_end sub_80D2CF8 thumb_func_start sub_80D2D3C sub_80D2D3C: @ 80D2D3C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080D2D64 adds r0, r1 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _080D2D5C adds r0, r4, 0 bl move_anim_task_del _080D2D5C: pop {r4} pop {r0} bx r0 .align 2, 0 _080D2D64: .4byte 0x03004b20 thumb_func_end sub_80D2D3C thumb_func_start sub_80D2D68 sub_80D2D68: @ 80D2D68 push {r4-r7,lr} adds r5, r0, 0 ldr r0, _080D2D7C movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D2D84 ldr r0, _080D2D80 b _080D2D86 .align 2, 0 _080D2D7C: .4byte 0x03004b00 _080D2D80: .4byte 0x0202f7c8 _080D2D84: ldr r0, _080D2E1C _080D2D86: ldrb r6, [r0] adds r0, r6, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080D2DA0 ldr r1, _080D2E20 movs r2, 0x2 ldrsh r0, [r1, r2] negs r0, r0 strh r0, [r1, 0x2] _080D2DA0: adds r0, r6, 0 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r7, _080D2E20 lsrs r0, 24 ldrh r3, [r7, 0x2] adds r0, r3 movs r4, 0 strh r0, [r5, 0x20] adds r0, r6, 0 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r7, 0x4] adds r0, r1 strh r0, [r5, 0x22] strh r4, [r5, 0x2E] ldrh r1, [r5, 0x20] lsls r1, 3 strh r1, [r5, 0x30] lsls r0, 3 strh r0, [r5, 0x32] movs r2, 0x2 ldrsh r0, [r7, r2] lsls r0, 3 cmp r0, 0 bge _080D2DE0 adds r0, 0x7 _080D2DE0: asrs r0, 3 strh r0, [r5, 0x34] movs r3, 0x4 ldrsh r0, [r7, r3] lsls r0, 3 cmp r0, 0 bge _080D2DF0 adds r0, 0x7 _080D2DF0: asrs r0, 3 strh r0, [r5, 0x36] ldrh r2, [r5, 0x4] lsls r1, r2, 22 lsrs r1, 22 movs r3, 0x6 ldrsh r0, [r7, r3] lsls r0, 4 adds r1, r0 ldr r3, _080D2E24 adds r0, r3, 0 ands r1, r0 ldr r0, _080D2E28 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] ldr r0, _080D2E2C str r0, [r5, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D2E1C: .4byte 0x0202f7c9 _080D2E20: .4byte 0x03004b00 _080D2E24: .4byte 0x000003ff _080D2E28: .4byte 0xfffffc00 _080D2E2C: .4byte sub_80D2E30 thumb_func_end sub_80D2D68 thumb_func_start sub_80D2E30 sub_80D2E30: @ 80D2E30 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x34] ldrh r1, [r2, 0x30] adds r0, r1 strh r0, [r2, 0x30] ldrh r1, [r2, 0x36] ldrh r3, [r2, 0x32] adds r1, r3 strh r1, [r2, 0x32] lsls r0, 16 asrs r0, 19 strh r0, [r2, 0x20] lsls r1, 16 asrs r1, 19 strh r1, [r2, 0x22] ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _080D2E64 adds r0, r2, 0 bl move_anim_8072740 _080D2E64: pop {r0} bx r0 thumb_func_end sub_80D2E30 thumb_func_start sub_80D2E68 sub_80D2E68: @ 80D2E68 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080D2E8A ldr r0, _080D2EC4 ldrh r1, [r0] movs r0, 0x78 subs r0, r1 strh r0, [r4, 0x30] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _080D2E8A: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 movs r2, 0x30 ldrsh r1, [r4, r2] cmp r0, r1 bne _080D2EA8 ldrb r0, [r4, 0x5] lsrs r0, 4 adds r0, 0x10 movs r1, 0 bl sub_8079108 _080D2EA8: movs r0, 0x2E ldrsh r1, [r4, r0] movs r2, 0x30 ldrsh r0, [r4, r2] adds r0, 0x50 cmp r1, r0 bne _080D2EBC adds r0, r4, 0 bl move_anim_8072740 _080D2EBC: pop {r4} pop {r0} bx r0 .align 2, 0 _080D2EC4: .4byte 0x03004b00 thumb_func_end sub_80D2E68 thumb_func_start sub_80D2EC8 sub_80D2EC8: @ 80D2EC8 push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x2E ldrsh r0, [r6, r1] cmp r0, 0 bne _080D2EF6 movs r5, 0x78 strh r5, [r6, 0x20] ldr r4, _080D2F78 movs r2, 0 ldrsh r0, [r4, r2] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 subs r0, 0xF strh r0, [r6, 0x22] ldrb r1, [r4, 0x2] adds r0, r6, 0 bl StartSpriteAnim strh r5, [r6, 0x38] ldrh r0, [r4, 0x4] strh r0, [r6, 0x34] _080D2EF6: ldrh r0, [r6, 0x2E] adds r0, 0x1 movs r5, 0 strh r0, [r6, 0x2E] movs r1, 0x2E ldrsh r0, [r6, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r6, 0x30] movs r2, 0x2E ldrsh r0, [r6, r2] lsls r4, r0, 1 adds r4, r0 ldrh r0, [r6, 0x34] adds r4, r0 movs r2, 0xFF ldrh r0, [r6, 0x3A] adds r0, 0xA movs r1, 0xFF ands r0, r1 strh r0, [r6, 0x3A] ands r4, r2 adds r0, r4, 0 movs r1, 0x64 bl cosine strh r0, [r6, 0x24] adds r0, r4, 0 movs r1, 0xA bl sine adds r4, r0, 0 movs r1, 0x3A ldrsh r0, [r6, r1] movs r1, 0x4 bl cosine ldrh r2, [r6, 0x30] adds r4, r2 adds r0, r4 strh r0, [r6, 0x26] movs r0, 0x2E ldrsh r1, [r6, r0] movs r2, 0x38 ldrsh r0, [r6, r2] cmp r1, r0 ble _080D2F72 ldr r0, _080D2F7C str r0, [r6, 0x1C] strh r5, [r6, 0x2E] adds r0, r6, 0 bl oamt_add_pos2_onto_pos1 movs r0, 0x5 strh r0, [r6, 0x32] strh r5, [r6, 0x36] strh r5, [r6, 0x34] adds r0, r6, 0 movs r1, 0x1 bl StartSpriteAffineAnim _080D2F72: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D2F78: .4byte 0x03004b00 _080D2F7C: .4byte sub_80D2F80 thumb_func_end sub_80D2EC8 thumb_func_start sub_80D2F80 sub_80D2F80: @ 80D2F80 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xA ble _080D2F9A movs r0, 0 strh r0, [r1, 0x2E] ldr r0, _080D2FA0 str r0, [r1, 0x1C] _080D2F9A: pop {r0} bx r0 .align 2, 0 _080D2FA0: .4byte sub_80D2FA4 thumb_func_end sub_80D2F80 thumb_func_start sub_80D2FA4 sub_80D2FA4: @ 80D2FA4 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x32] ldrh r2, [r4, 0x34] adds r0, r1, r2 strh r0, [r4, 0x34] strh r0, [r4, 0x26] adds r1, 0x1 strh r1, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x30 ble _080D2FCE lsls r0, r1, 16 cmp r0, 0 ble _080D2FCE ldrh r0, [r4, 0x36] subs r1, r0, 0x5 strh r1, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x36] _080D2FCE: movs r1, 0x36 ldrsh r0, [r4, r1] cmp r0, 0x3 ble _080D3000 movs r2, 0x32 ldrsh r1, [r4, r2] lsrs r0, r1, 31 adds r0, r1, r0 asrs r0, 1 lsls r0, 1 subs r1, r0 adds r3, r4, 0 adds r3, 0x3E movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] adds r0, r4, 0 bl move_anim_8072740 _080D3000: movs r1, 0x36 ldrsh r0, [r4, r1] cmp r0, 0x4 bne _080D300E adds r0, r4, 0 bl move_anim_8072740 _080D300E: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D2FA4 thumb_func_start sub_80D3014 sub_80D3014: @ 80D3014 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080D3058 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D3060 ldr r4, _080D305C ldrb r1, [r4] movs r0, 0x2 eors r0, r1 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080D3060 ldrb r0, [r4] adds r2, r5, 0 adds r2, 0x20 adds r3, r5, 0 adds r3, 0x22 movs r1, 0 bl sub_807A3FC ldrh r0, [r5, 0x22] adds r0, 0x28 strh r0, [r5, 0x22] adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAffineAnim b _080D3080 .align 2, 0 _080D3058: .4byte 0x020239f8 _080D305C: .4byte 0x0202f7c8 _080D3060: ldr r4, _080D30A0 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x28 strh r0, [r5, 0x22] _080D3080: movs r0, 0xD strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] subs r0, 0x48 strh r0, [r5, 0x36] ldr r0, _080D30A4 str r0, [r5, 0x1C] ldr r1, _080D30A8 adds r0, r5, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D30A0: .4byte 0x0202f7c8 _080D30A4: .4byte sub_8078B34 _080D30A8: .4byte move_anim_8072740 thumb_func_end sub_80D3014 thumb_func_start sub_80D30AC sub_80D30AC: @ 80D30AC push {lr} lsls r0, 24 lsrs r0, 24 ldr r3, _080D30C8 ldr r1, _080D30CC ldr r1, [r1] ldrb r2, [r1, 0x10] movs r1, 0x1 ands r1, r2 strh r1, [r3, 0xE] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _080D30C8: .4byte 0x03004b00 _080D30CC: .4byte 0x0202f7b4 thumb_func_end sub_80D30AC thumb_func_start update_fury_cutter_counter_copy update_fury_cutter_counter_copy: @ 80D30D0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080D30E8 ldr r1, _080D30EC ldr r1, [r1] ldrb r1, [r1, 0x10] strh r1, [r2, 0xE] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _080D30E8: .4byte 0x03004b00 _080D30EC: .4byte 0x0202f7b4 thumb_func_end update_fury_cutter_counter_copy thumb_func_start sub_80D30F0 sub_80D30F0: @ 80D30F0 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 ldr r1, _080D3178 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0 bne _080D3118 ldr r1, _080D317C ldrh r0, [r1] strh r0, [r5, 0xA] ldrh r0, [r1, 0x2] strh r0, [r5, 0xC] ldrh r0, [r1, 0x4] strh r0, [r5, 0xE] _080D3118: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r2, 0x8 ldrsh r0, [r5, r2] movs r2, 0xC ldrsh r1, [r5, r2] bl __modsi3 cmp r0, 0x1 bne _080D3160 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xF0 bl __umodsi3 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x50 bl __umodsi3 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 ldr r0, _080D3180 adds r1, r4, 0 movs r3, 0x4 bl CreateSprite _080D3160: movs r0, 0x8 ldrsh r1, [r5, r0] movs r2, 0xE ldrsh r0, [r5, r2] cmp r1, r0 bne _080D3172 adds r0, r6, 0 bl move_anim_task_del _080D3172: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D3178: .4byte 0x03004b20 _080D317C: .4byte 0x03004b00 _080D3180: .4byte gSpriteTemplate_83D9130 thumb_func_end sub_80D30F0 thumb_func_start sub_80D3184 sub_80D3184: @ 80D3184 ldr r1, _080D318C str r1, [r0, 0x1C] bx lr .align 2, 0 _080D318C: .4byte sub_80D3190 thumb_func_end sub_80D3184 thumb_func_start sub_80D3190 sub_80D3190: @ 80D3190 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xD bgt _080D31AE ldrh r0, [r2, 0x24] adds r0, 0x1 strh r0, [r2, 0x24] ldrh r0, [r2, 0x26] adds r0, 0x4 strh r0, [r2, 0x26] _080D31AE: adds r0, r2, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D31C2 adds r0, r2, 0 bl DestroySprite _080D31C2: pop {r0} bx r0 thumb_func_end sub_80D3190 thumb_func_start sub_80D31C8 sub_80D31C8: @ 80D31C8 push {r4-r6,lr} adds r6, r0, 0 ldr r5, _080D31F0 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D31F8 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldr r4, _080D31F4 ldrh r1, [r4] subs r0, r1 b _080D320A .align 2, 0 _080D31F0: .4byte 0x0202f7c8 _080D31F4: .4byte 0x03004b00 _080D31F8: ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r4, _080D32D0 lsrs r0, 24 ldrh r1, [r4] adds r0, r1 _080D320A: strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] adds r0, r4 strh r0, [r6, 0x22] adds r2, r6, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] ldr r0, _080D32D4 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D3240 ldr r1, _080D32D0 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080D3240: ldr r5, _080D32D0 ldrh r0, [r5, 0xC] strh r0, [r6, 0x2E] ldrh r0, [r6, 0x20] strh r0, [r6, 0x30] ldr r4, _080D32D8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x32] ldrh r0, [r6, 0x22] strh r0, [r6, 0x34] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x36] adds r0, r6, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r0, _080D32DC bl object_new_hidden_with_callback adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 strh r4, [r6, 0x38] ldrb r0, [r5, 0x8] movs r2, 0x4 ldrsh r1, [r5, r2] bl sine ldrh r1, [r6, 0x20] subs r1, r0 strh r1, [r6, 0x20] ldrb r0, [r5, 0x8] movs r2, 0x6 ldrsh r1, [r5, r2] bl cosine ldrh r1, [r6, 0x22] subs r1, r0 strh r1, [r6, 0x22] ldr r0, _080D32E0 lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r1, r0 ldrh r0, [r5, 0x4] strh r0, [r1, 0x2E] ldrh r0, [r5, 0x6] strh r0, [r1, 0x30] ldrh r0, [r5, 0xA] strh r0, [r1, 0x32] ldrb r0, [r5, 0x8] lsls r0, 8 strh r0, [r1, 0x34] ldrh r0, [r5, 0xC] strh r0, [r1, 0x36] ldr r1, _080D32E4 str r1, [r6, 0x1C] adds r0, r6, 0 bl _call_via_r1 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D32D0: .4byte 0x03004b00 _080D32D4: .4byte 0x0202f7c8 _080D32D8: .4byte 0x0202f7c9 _080D32DC: .4byte SpriteCallbackDummy _080D32E0: .4byte 0x02020004 _080D32E4: .4byte sub_80D32E8 thumb_func_end sub_80D31C8 thumb_func_start sub_80D32E8 sub_80D32E8: @ 80D32E8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r5, r0, 0 ldrh r1, [r5, 0x38] lsls r1, 24 lsrs r1, 24 ldr r2, _080D3350 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r7, r0, r2 ldrh r4, [r7, 0x36] lsls r4, 24 lsrs r4, 24 ldrh r0, [r7, 0x34] mov r8, r0 movs r0, 0x1 strh r0, [r5, 0x2E] adds r0, r5, 0 bl sub_8078B5C mov r1, r8 lsrs r6, r1, 8 movs r0, 0x2E ldrsh r1, [r7, r0] adds r0, r6, 0 bl sine ldrh r1, [r5, 0x24] adds r0, r1 strh r0, [r5, 0x24] movs r0, 0x30 ldrsh r1, [r7, r0] adds r0, r6, 0 bl cosine ldrh r1, [r5, 0x26] adds r0, r1 strh r0, [r5, 0x26] ldrh r0, [r7, 0x32] mov r1, r8 adds r1, r0 strh r1, [r7, 0x34] subs r4, 0x1 lsls r4, 24 lsrs r4, 24 cmp r4, 0 beq _080D3354 strh r4, [r7, 0x36] b _080D335E .align 2, 0 _080D3350: .4byte 0x02020004 _080D3354: ldr r0, _080D336C str r0, [r5, 0x1C] adds r0, r7, 0 bl DestroySprite _080D335E: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D336C: .4byte sub_80D3370 thumb_func_end sub_80D32E8 thumb_func_start sub_80D3370 sub_80D3370: @ 80D3370 push {lr} adds r3, r0, 0 adds r3, 0x2C ldrb r2, [r3] movs r1, 0x41 negs r1, r1 ands r1, r2 strb r1, [r3] ldr r1, _080D3390 str r1, [r0, 0x1C] ldr r1, _080D3394 bl oamt_set_x3A_32 pop {r0} bx r0 .align 2, 0 _080D3390: .4byte sub_8078600 _080D3394: .4byte sub_80D3398 thumb_func_end sub_80D3370 thumb_func_start sub_80D3398 sub_80D3398: @ 80D3398 push {lr} movs r1, 0xA strh r1, [r0, 0x2E] ldr r1, _080D33AC str r1, [r0, 0x1C] ldr r1, _080D33B0 bl oamt_set_x3A_32 pop {r0} bx r0 .align 2, 0 _080D33AC: .4byte sub_80782D8 _080D33B0: .4byte move_anim_8074EE0 thumb_func_end sub_80D3398 thumb_func_start sub_80D33B4 sub_80D33B4: @ 80D33B4 push {r4-r7,lr} adds r5, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080D33DC ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D33E4 ldr r1, _080D33E0 ldrh r0, [r1, 0x4] negs r0, r0 lsls r0, 16 lsrs r6, r0, 16 adds r7, r1, 0 b _080D33EA .align 2, 0 _080D33DC: .4byte 0x0202f7c8 _080D33E0: .4byte 0x03004b00 _080D33E4: ldr r0, _080D3440 ldrh r6, [r0, 0x4] adds r7, r0, 0 _080D33EA: ldrh r0, [r7, 0x8] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] ldr r4, _080D3444 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r6 strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r7, [r7, 0x6] adds r0, r7 strh r0, [r5, 0x36] adds r0, r5, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r0, _080D3448 str r0, [r5, 0x1C] adds r2, r5, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r1, [r5, 0x1C] adds r0, r5, 0 bl _call_via_r1 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D3440: .4byte 0x03004b00 _080D3444: .4byte 0x0202f7c9 _080D3448: .4byte sub_80D344C thumb_func_end sub_80D33B4 thumb_func_start sub_80D344C sub_80D344C: @ 80D344C push {r4,lr} adds r4, r0, 0 ldr r0, _080D3488 ldrh r1, [r0, 0xE] ldr r0, _080D348C cmp r1, r0 bne _080D346E adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] _080D346E: adds r0, r4, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080D3480 adds r0, r4, 0 bl move_anim_8072740 _080D3480: pop {r4} pop {r0} bx r0 .align 2, 0 _080D3488: .4byte 0x03004b00 _080D348C: .4byte 0x0000ffff thumb_func_end sub_80D344C thumb_func_start sub_80D3490 sub_80D3490: @ 80D3490 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080D34C4 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldr r0, _080D34C8 ldrh r0, [r0] strh r0, [r4, 0x8] ldr r0, _080D34CC bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r1, 0x80 lsls r1, 1 adds r0, r1 strh r0, [r4, 0xC] ldr r0, _080D34D0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080D34C4: .4byte 0x03004b20 _080D34C8: .4byte 0x03004b00 _080D34CC: .4byte 0x0000279c _080D34D0: .4byte sub_80D34D4 thumb_func_end sub_80D3490 thumb_func_start sub_80D34D4 sub_80D34D4: @ 80D34D4 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080D354C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 ldrh r0, [r2, 0x1C] adds r0, 0x1 strh r0, [r2, 0x1C] lsls r0, 16 asrs r0, 16 mov r12, r1 cmp r0, 0x3 bne _080D3526 movs r0, 0 strh r0, [r2, 0x1C] ldrh r0, [r2, 0xC] adds r0, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldr r1, _080D3550 lsls r0, r5, 1 adds r0, r1 ldrh r6, [r0] adds r7, r1, 0 adds r3, r0, 0x2 movs r1, 0x6 adds r2, r0, 0 _080D3510: ldrh r0, [r3] strh r0, [r2] adds r3, 0x2 adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bge _080D3510 adds r0, r5, 0x7 lsls r0, 1 adds r0, r7 strh r6, [r0] _080D3526: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 add r0, r12 ldrh r1, [r0, 0x1E] adds r1, 0x1 strh r1, [r0, 0x1E] lsls r1, 16 asrs r1, 16 movs r2, 0x8 ldrsh r0, [r0, r2] cmp r1, r0 bne _080D3546 adds r0, r4, 0 bl move_anim_task_del _080D3546: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D354C: .4byte 0x03004b20 _080D3550: .4byte 0x0202eec8 thumb_func_end sub_80D34D4 thumb_func_start sub_80D3554 sub_80D3554: @ 80D3554 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x1 bl sub_80787B0 movs r0, 0x1E strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] ldr r4, _080D35BC ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] adds r0, r5, 0 bl obj_translate_based_on_private_1_2_3_4 movs r0, 0x2E ldrsh r1, [r5, r0] movs r0, 0xD2 lsls r0, 8 bl __divsi3 strh r0, [r5, 0x38] ldr r0, _080D35C0 ldrh r2, [r0, 0x6] strh r2, [r5, 0x3C] ldrh r1, [r0, 0xE] movs r3, 0xE ldrsh r0, [r0, r3] cmp r0, 0x7F ble _080D35C4 adds r0, r1, 0 subs r0, 0x7F lsls r0, 8 strh r0, [r5, 0x3A] negs r0, r2 strh r0, [r5, 0x3C] b _080D35C8 .align 2, 0 _080D35BC: .4byte 0x0202f7c9 _080D35C0: .4byte 0x03004b00 _080D35C4: lsls r0, r1, 8 strh r0, [r5, 0x3A] _080D35C8: ldr r1, _080D35D8 str r1, [r5, 0x1C] adds r0, r5, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D35D8: .4byte sub_80D35DC thumb_func_end sub_80D3554 thumb_func_start sub_80D35DC sub_80D35DC: @ 80D35DC push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080D35F0 adds r0, r4, 0 bl move_anim_8072740 _080D35F0: ldrh r0, [r4, 0x3A] lsls r0, 16 asrs r0, 24 movs r2, 0x3C ldrsh r1, [r4, r2] bl sine ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] movs r2, 0x3A ldrsh r0, [r4, r2] movs r2, 0x38 ldrsh r1, [r4, r2] adds r0, r1 asrs r0, 8 cmp r0, 0x7F ble _080D3620 movs r0, 0 strh r0, [r4, 0x3A] ldrh r0, [r4, 0x3C] negs r0, r0 strh r0, [r4, 0x3C] b _080D3628 _080D3620: ldrh r0, [r4, 0x38] ldrh r1, [r4, 0x3A] adds r0, r1 strh r0, [r4, 0x3A] _080D3628: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D35DC thumb_func_start sub_80D3630 sub_80D3630: @ 80D3630 lsls r0, 24 lsrs r0, 24 ldr r2, _080D3650 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r3, _080D3654 ldrh r0, [r3] movs r2, 0 strh r0, [r1, 0x8] strh r2, [r3, 0xE] ldr r0, _080D3658 str r0, [r1] bx lr .align 2, 0 _080D3650: .4byte 0x03004b20 _080D3654: .4byte 0x03004b00 _080D3658: .4byte sub_80D365C thumb_func_end sub_80D3630 thumb_func_start sub_80D365C sub_80D365C: @ 80D365C push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r2, _080D3690 ldrh r0, [r2, 0xE] adds r0, 0x3 movs r1, 0xFF ands r0, r1 strh r0, [r2, 0xE] ldr r1, _080D3694 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x8] subs r1, 0x1 strh r1, [r0, 0x8] lsls r1, 16 cmp r1, 0 bne _080D368A adds r0, r3, 0 bl move_anim_task_del _080D368A: pop {r0} bx r0 .align 2, 0 _080D3690: .4byte 0x03004b00 _080D3694: .4byte 0x03004b20 thumb_func_end sub_80D365C thumb_func_start sub_80D3698 sub_80D3698: @ 80D3698 push {r4-r7,lr} adds r4, r0, 0 ldr r7, _080D36E4 ldrb r0, [r7] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r7] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] ldr r6, _080D36E8 strh r6, [r4, 0x26] ldrb r0, [r7] bl sub_8079E90 lsls r0, 24 lsrs r5, r0, 24 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D36F2 ldrb r0, [r7] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D36EC movs r0, 0xA strh r0, [r4, 0x24] b _080D36F4 .align 2, 0 _080D36E4: .4byte 0x0202f7c8 _080D36E8: .4byte 0x0000fff6 _080D36EC: strh r6, [r4, 0x24] subs r0, r5, 0x2 b _080D36F6 _080D36F2: strh r6, [r4, 0x24] _080D36F4: adds r0, r5, 0x2 _080D36F6: adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] ldr r0, _080D3708 str r0, [r4, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D3708: .4byte sub_80D370C thumb_func_end sub_80D3698 thumb_func_start sub_80D370C sub_80D370C: @ 80D370C push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080D3722 adds r0, r2, 0 bl move_anim_8072740 _080D3722: pop {r0} bx r0 thumb_func_end sub_80D370C thumb_func_start sub_80D3728 sub_80D3728: @ 80D3728 push {r4-r7,lr} adds r6, r0, 0 ldr r5, _080D37E8 ldrb r0, [r5] bl battle_side_get_owner adds r4, r0, 0 ldr r0, _080D37EC ldrb r0, [r0] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080D3772 ldr r4, _080D37F0 movs r1, 0 ldrsh r0, [r4, r1] negs r0, r0 strh r0, [r4] ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 cmp r0, 0 beq _080D376A ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080D3772 _080D376A: movs r1, 0 ldrsh r0, [r4, r1] negs r0, r0 strh r0, [r4] _080D3772: ldr r5, _080D37F0 movs r1, 0xA ldrsh r0, [r5, r1] movs r1, 0xFF lsls r1, 8 ands r0, r1 movs r1, 0 cmp r0, 0 bne _080D3786 movs r1, 0x1 _080D3786: ldrb r0, [r5, 0xA] movs r7, 0x1 cmp r0, 0 bne _080D3790 movs r7, 0x3 _080D3790: adds r0, r6, 0 bl sub_80787B0 ldr r0, _080D37E8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D37AA ldrh r0, [r5, 0x4] negs r0, r0 strh r0, [r5, 0x4] _080D37AA: ldrh r0, [r5, 0x8] strh r0, [r6, 0x2E] ldr r4, _080D37EC ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x4] adds r0, r1 strh r0, [r6, 0x32] ldrb r0, [r4] adds r1, r7, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x6] adds r0, r5 strh r0, [r6, 0x36] ldr r0, _080D37F4 str r0, [r6, 0x1C] ldr r1, _080D37F8 adds r0, r6, 0 bl oamt_set_x3A_32 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D37E8: .4byte 0x0202f7c8 _080D37EC: .4byte 0x0202f7c9 _080D37F0: .4byte 0x03004b00 _080D37F4: .4byte sub_8078B34 _080D37F8: .4byte move_anim_8072740 thumb_func_end sub_80D3728 thumb_func_start sub_80D37FC sub_80D37FC: @ 80D37FC push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 ldr r0, _080D382C ldrh r1, [r0, 0x8] strh r1, [r4, 0x2E] ldrh r0, [r0, 0x4] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] adds r1, r0 strh r1, [r4, 0x36] ldr r0, _080D3830 str r0, [r4, 0x1C] ldr r1, _080D3834 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080D382C: .4byte 0x03004b00 _080D3830: .4byte sub_8078B34 _080D3834: .4byte move_anim_8072740 thumb_func_end sub_80D37FC thumb_func_start sub_80D3838 sub_80D3838: @ 80D3838 push {r4,lr} adds r4, r0, 0 ldr r0, _080D3850 movs r1, 0x6 ldrsh r0, [r0, r1] cmp r0, 0 beq _080D3854 adds r0, r4, 0 movs r1, 0x1 bl sub_8078764 b _080D385C .align 2, 0 _080D3850: .4byte 0x03004b00 _080D3854: adds r0, r4, 0 movs r1, 0x1 bl sub_80787B0 _080D385C: ldr r0, _080D386C ldrh r0, [r0, 0x4] strh r0, [r4, 0x3C] ldr r0, _080D3870 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D386C: .4byte 0x03004b00 _080D3870: .4byte sub_80D3874 thumb_func_end sub_80D3838 thumb_func_start sub_80D3874 sub_80D3874: @ 80D3874 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0xB movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x4 bl sine strh r0, [r4, 0x24] ldrh r0, [r4, 0x30] adds r0, 0x30 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 24 negs r0, r0 strh r0, [r4, 0x26] ldrh r0, [r4, 0x3C] subs r0, 0x1 strh r0, [r4, 0x3C] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080D38B4 adds r0, r4, 0 bl move_anim_8072740 _080D38B4: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D3874 thumb_func_start sub_80D38BC sub_80D38BC: @ 80D38BC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r1, _080D398C ldr r2, _080D3990 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r3, 0x80 lsls r3, 5 adds r0, r3, 0 strh r0, [r1] ldr r2, _080D3994 ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldrb r1, [r2, 0x1] movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 strb r0, [r2, 0x1] mov r0, sp bl sub_8078914 ldr r2, [sp] movs r3, 0x80 lsls r3, 6 add r6, sp, 0x10 add r0, sp, 0xC mov r12, r0 movs r5, 0 ldr r1, _080D3998 movs r4, 0x80 lsls r4, 5 mov r8, r6 ldr r7, _080D399C movs r0, 0x85 lsls r0, 24 mov r9, r0 _080D3920: str r5, [sp, 0x10] mov r0, r8 str r0, [r1] str r2, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080D3920 str r5, [sp, 0x10] str r6, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r9 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0 mov r3, r12 strb r0, [r3] strb r0, [r3] ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0x10] ldr r0, _080D3998 str r6, [r0] str r1, [r0, 0x4] ldr r1, _080D399C str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D39B8 ldr r2, _080D3994 ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080D39A0 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080D39A8 ldr r0, _080D39A4 b _080D39AA .align 2, 0 _080D398C: .4byte REG_BLDCNT _080D3990: .4byte 0x00003f42 _080D3994: .4byte REG_BG1CNT _080D3998: .4byte 0x040000d4 _080D399C: .4byte 0x85000400 _080D39A0: .4byte 0x0202f7c8 _080D39A4: .4byte gUnknown_08E70968 _080D39A8: ldr r0, _080D39B4 _080D39AA: ldr r1, [sp, 0x4] bl LZDecompressVram b _080D39CE .align 2, 0 _080D39B4: .4byte gUnknown_08E70C38 _080D39B8: ldr r0, _080D39F0 ldr r1, [sp, 0x4] bl LZDecompressVram mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0x1 bl sub_80763FC _080D39CE: ldr r0, _080D39F4 ldr r1, [sp] bl LZDecompressVram ldr r0, _080D39F8 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D3A00 ldr r0, _080D39FC mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette b _080D3A0E .align 2, 0 _080D39F0: .4byte gUnknown_08E70F0C _080D39F4: .4byte gUnknown_08E6F620 _080D39F8: .4byte 0x03004b00 _080D39FC: .4byte gUnknown_08E70940 _080D3A00: ldr r0, _080D3A78 mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette _080D3A0E: ldr r0, _080D3A7C ldr r4, _080D3A80 mov r2, r10 lsls r5, r2, 2 adds r1, r5, r2 lsls r1, 3 adds r6, r1, r4 ldrb r1, [r6, 0x7] adds r1, 0x1 lsls r1, 24 lsrs r1, 24 bl CreateTask lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r3, 0 mov r9, r3 mov r0, r8 strh r0, [r6, 0x26] mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r0, 3 adds r7, r0, r4 mov r2, r9 strh r2, [r7, 0x8] movs r0, 0x80 lsls r0, 5 strh r0, [r7, 0xA] strh r0, [r7, 0xC] bl sub_8076BE0 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080D3A94 ldr r3, _080D3A84 adds r0, r3, 0 ldr r1, _080D3A88 strh r0, [r1] ldr r2, _080D3A8C adds r0, r2, 0 ldr r3, _080D3A90 strh r0, [r3] movs r0, 0x2 strh r0, [r6, 0x8] movs r0, 0x1 strh r0, [r6, 0xA] mov r0, r9 strh r0, [r7, 0xE] b _080D3AEE .align 2, 0 _080D3A78: .4byte gUnknown_08E6A704 _080D3A7C: .4byte sub_80D3D68 _080D3A80: .4byte 0x03004b20 _080D3A84: .4byte 0x0000ffb0 _080D3A88: .4byte 0x030042c0 _080D3A8C: .4byte 0x0000ffd0 _080D3A90: .4byte 0x030041b4 _080D3A94: ldr r0, _080D3AC4 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 bne _080D3AD8 ldr r2, _080D3AC8 adds r0, r2, 0 ldr r3, _080D3ACC strh r0, [r3] movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 ldr r3, _080D3AD0 strh r0, [r3] movs r0, 0x2 strh r0, [r6, 0x8] ldr r0, _080D3AD4 strh r0, [r6, 0xA] strh r1, [r7, 0xE] b _080D3AEE .align 2, 0 _080D3AC4: .4byte 0x0202f7c8 _080D3AC8: .4byte 0x0000ff20 _080D3ACC: .4byte 0x030042c0 _080D3AD0: .4byte 0x030041b4 _080D3AD4: .4byte 0x0000ffff _080D3AD8: ldr r0, _080D3B1C strh r4, [r0] ldr r1, _080D3B20 adds r0, r1, 0 ldr r2, _080D3B24 strh r0, [r2] ldr r0, _080D3B28 strh r0, [r6, 0x8] movs r0, 0x1 strh r0, [r6, 0xA] strh r4, [r7, 0xE] _080D3AEE: ldr r1, _080D3B2C ldr r3, _080D3B1C ldrh r0, [r3] strh r0, [r1] adds r1, 0x2 ldr r2, _080D3B24 ldrh r0, [r2] strh r0, [r1] ldr r1, _080D3B30 mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 adds r2, r0, r1 movs r3, 0xE ldrsh r0, [r2, r3] cmp r0, 0 bne _080D3B34 movs r0, 0x30 strh r0, [r2, 0x10] movs r0, 0x70 b _080D3B38 .align 2, 0 _080D3B1C: .4byte 0x030042c0 _080D3B20: .4byte 0x0000ffd0 _080D3B24: .4byte 0x030041b4 _080D3B28: .4byte 0x0000fffe _080D3B2C: .4byte REG_BG1HOFS _080D3B30: .4byte 0x03004b20 _080D3B34: movs r0, 0 strh r0, [r2, 0x10] _080D3B38: strh r0, [r2, 0x12] mov r2, r10 adds r0, r5, r2 lsls r0, 3 adds r0, r1 movs r1, 0x1 strh r1, [r0, 0x14] ldr r1, _080D3B5C str r1, [r0] add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D3B5C: .4byte sub_80D3B60 thumb_func_end sub_80D38BC thumb_func_start sub_80D3B60 sub_80D3B60: @ 80D3B60 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 lsls r0, 24 lsrs r7, r0, 24 ldr r0, _080D3D44 lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 ldrh r0, [r4, 0x8] ldr r1, _080D3D48 ldrh r1, [r1] adds r0, r1 ldr r2, _080D3D48 strh r0, [r2] ldrh r0, [r4, 0xA] ldr r3, _080D3D4C ldrh r3, [r3] adds r0, r3 ldr r1, _080D3D4C strh r0, [r1] add r5, sp, 0x4 adds r0, r5, 0 bl sub_8078914 ldrh r0, [r4, 0xA] ldrh r2, [r4, 0xC] adds r0, r2 strh r0, [r4, 0xC] ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 asrs r0, 16 mov r10, r5 cmp r0, 0x4 bne _080D3C02 ldr r1, _080D3D50 ldrb r0, [r5, 0x8] lsls r0, 4 adds r0, 0x7 lsls r0, 1 adds r0, r1 ldrh r6, [r0] movs r2, 0x6 adds r5, r1, 0 adds r3, r5, 0 mov r4, r10 _080D3BC8: ldrb r0, [r4, 0x8] lsls r0, 4 adds r1, r2, 0x1 adds r0, r1 lsls r1, r0, 1 adds r1, r3 subs r0, 0x1 lsls r0, 1 adds r0, r3 ldrh r0, [r0] strh r0, [r1] subs r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080D3BC8 mov r3, r10 ldrb r0, [r3, 0x8] lsls r0, 4 adds r0, 0x1 lsls r0, 1 adds r0, r5 strh r6, [r0] ldr r1, _080D3D44 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x12] _080D3C02: ldr r1, _080D3D44 lsls r2, r7, 2 adds r0, r2, r7 lsls r0, 3 adds r3, r0, r1 ldrh r0, [r3, 0x14] adds r0, 0x1 strh r0, [r3, 0x14] lsls r0, 16 asrs r0, 16 adds r4, r1, 0 str r2, [sp, 0x14] cmp r0, 0x1 ble _080D3C70 movs r0, 0 strh r0, [r3, 0x14] ldrh r0, [r3, 0xE] adds r2, r0, 0x1 strh r2, [r3, 0xE] lsls r0, r2, 16 asrs r0, 16 cmp r0, 0xD bgt _080D3C4C movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 movs r0, 0x10 subs r0, r2 lsls r0, 8 orrs r2, r0 strh r2, [r1, 0xA] ldrh r0, [r3, 0x10] adds r0, 0x1 strh r0, [r3, 0x10] _080D3C4C: movs r2, 0xE ldrsh r0, [r3, r2] cmp r0, 0x36 ble _080D3C70 ldrh r2, [r3, 0x10] subs r2, 0x1 strh r2, [r3, 0x10] movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 movs r0, 0x10 subs r0, r2 lsls r0, 8 orrs r2, r0 strh r2, [r1, 0xA] _080D3C70: ldr r2, [sp, 0x14] adds r0, r2, r7 lsls r0, 3 adds r0, r4 movs r3, 0x26 ldrsh r1, [r0, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 ldrh r1, [r0, 0xA] movs r0, 0x1F ands r0, r1 cmp r0, 0 bne _080D3D32 ldr r2, [sp, 0x4] movs r3, 0x80 lsls r3, 6 add r6, sp, 0x10 movs r5, 0 ldr r1, _080D3D54 movs r4, 0x80 lsls r4, 5 mov r8, r6 ldr r0, _080D3D58 mov r12, r0 movs r0, 0x85 lsls r0, 24 mov r9, r0 _080D3CAA: str r5, [sp, 0x10] mov r0, r8 str r0, [r1] str r2, [r1, 0x4] mov r0, r12 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080D3CAA str r5, [sp, 0x10] str r6, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r9 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] mov r0, sp movs r1, 0 strb r1, [r0] strb r1, [r0] mov r3, r10 ldr r1, [r3, 0x4] movs r4, 0 str r4, [sp, 0x10] ldr r0, _080D3D54 str r6, [r0] str r1, [r0, 0x4] ldr r1, _080D3D58 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D3D02 ldr r2, _080D3D5C ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080D3D02: ldr r0, _080D3D48 strh r4, [r0] ldr r1, _080D3D4C strh r4, [r1] ldr r0, _080D3D60 strh r4, [r0] adds r0, 0x2 strh r4, [r0] ldr r2, _080D3D44 ldr r3, [sp, 0x14] adds r0, r3, r7 lsls r0, 3 adds r0, r2 movs r3, 0x26 ldrsh r1, [r0, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, _080D3D64 strh r1, [r0, 0x26] adds r0, r7, 0 bl move_anim_task_del _080D3D32: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D3D44: .4byte 0x03004b20 _080D3D48: .4byte 0x030042c0 _080D3D4C: .4byte 0x030041b4 _080D3D50: .4byte 0x0202eec8 _080D3D54: .4byte 0x040000d4 _080D3D58: .4byte 0x85000400 _080D3D5C: .4byte REG_BG1CNT _080D3D60: .4byte REG_BLDCNT _080D3D64: .4byte 0x0000ffff thumb_func_end sub_80D3B60 thumb_func_start sub_80D3D68 sub_80D3D68: @ 80D3D68 push {r4-r7,lr} sub sp, 0xC lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, _080D3D90 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080D3D84 b _080D3EBC _080D3D84: cmp r0, 0x1 bgt _080D3D94 cmp r0, 0 beq _080D3D9C b _080D4032 .align 2, 0 _080D3D90: .4byte 0x03004b20 _080D3D94: cmp r0, 0x2 bne _080D3D9A b _080D3F88 _080D3D9A: b _080D4032 _080D3D9C: movs r3, 0 movs r2, 0x10 ldrsh r0, [r4, r2] ldr r1, _080D3E6C mov r12, r1 cmp r3, r0 bge _080D3DDA mov r7, r12 movs r5, 0xF0 lsls r5, 3 add r5, r12 ldr r6, _080D3E70 _080D3DB4: lsls r2, r3, 16 asrs r2, 16 lsls r1, r2, 1 adds r3, r1, r7 adds r1, r5 ldrh r0, [r4, 0xC] strh r0, [r1] ldrh r1, [r4, 0xC] adds r0, r6, 0 ands r0, r1 strh r0, [r3] adds r2, 0x1 lsls r2, 16 lsrs r3, r2, 16 asrs r2, 16 movs r1, 0x10 ldrsh r0, [r4, r1] cmp r2, r0 blt _080D3DB4 _080D3DDA: ldrh r3, [r4, 0x10] lsls r2, r3, 16 asrs r1, r2, 16 movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 bge _080D3E14 ldr r5, _080D3E6C movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 ldr r7, _080D3E70 _080D3DF2: asrs r2, 16 lsls r1, r2, 1 adds r3, r1, r5 adds r1, r6 ldrh r0, [r4, 0xA] strh r0, [r1] ldrh r1, [r4, 0xA] adds r0, r7, 0 ands r0, r1 strh r0, [r3] adds r2, 0x1 lsls r2, 16 asrs r1, r2, 16 movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 blt _080D3DF2 _080D3E14: ldrh r3, [r4, 0x12] lsls r2, r3, 16 asrs r0, r2, 16 cmp r0, 0x9F bgt _080D3E4A ldr r5, _080D3E6C movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 ldr r7, _080D3E70 _080D3E28: asrs r2, 16 lsls r1, r2, 1 adds r3, r1, r5 adds r1, r6 ldrh r0, [r4, 0xC] strh r0, [r1] ldrh r1, [r4, 0xC] adds r0, r7, 0 ands r0, r1 strh r0, [r3] adds r2, 0x1 lsls r2, 16 lsrs r3, r2, 16 lsls r2, r3, 16 asrs r0, r2, 16 cmp r0, 0x9F ble _080D3E28 _080D3E4A: movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D3E74 lsls r0, r3, 16 asrs r0, 15 mov r3, r12 adds r2, r0, r3 movs r1, 0xF0 lsls r1, 3 add r1, r12 adds r0, r1 ldrh r1, [r4, 0xA] strh r1, [r0] ldrh r0, [r4, 0xA] b _080D3E8A .align 2, 0 _080D3E6C: .4byte 0x03004de0 _080D3E70: .4byte 0x0000ffff _080D3E74: lsls r0, r3, 16 asrs r0, 15 mov r1, r12 adds r2, r0, r1 movs r1, 0xF0 lsls r1, 3 add r1, r12 adds r0, r1 ldrh r1, [r4, 0xC] strh r1, [r0] ldrh r0, [r4, 0xC] _080D3E8A: strh r0, [r2] ldr r0, _080D3EB4 str r0, [sp] ldr r0, _080D3EB8 str r0, [sp, 0x4] mov r1, sp movs r2, 0 movs r0, 0x1 strb r0, [r1, 0x8] mov r0, sp strb r2, [r0, 0x9] ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl sub_80895F8 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080D4032 .align 2, 0 _080D3EB4: .4byte REG_BLDALPHA _080D3EB8: .4byte 0xa2600001 _080D3EBC: movs r2, 0xE ldrsh r1, [r4, r2] cmp r1, 0 bne _080D3ED4 ldrh r0, [r4, 0x10] subs r0, 0x1 strh r0, [r4, 0x10] lsls r0, 16 cmp r0, 0 bgt _080D3EE8 strh r1, [r4, 0x10] b _080D3EE2 _080D3ED4: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x6F ble _080D3EE8 _080D3EE2: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080D3EE8: movs r3, 0 movs r1, 0x10 ldrsh r0, [r4, r1] cmp r3, r0 bge _080D3F1C ldr r6, _080D3F80 ldr r5, _080D3F84 _080D3EF6: lsls r1, r3, 16 asrs r1, 16 lsls r3, r1, 1 ldrb r2, [r5, 0x14] lsls r0, r2, 4 subs r0, r2 lsls r0, 7 adds r3, r0 adds r3, r6 ldrh r0, [r4, 0xC] strh r0, [r3] adds r1, 0x1 lsls r1, 16 lsrs r3, r1, 16 asrs r1, 16 movs r2, 0x10 ldrsh r0, [r4, r2] cmp r1, r0 blt _080D3EF6 _080D3F1C: ldrh r3, [r4, 0x10] lsls r2, r3, 16 asrs r1, r2, 16 movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 bge _080D3F50 ldr r6, _080D3F80 ldr r5, _080D3F84 _080D3F2E: asrs r3, r2, 16 lsls r2, r3, 1 ldrb r1, [r5, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 adds r2, r6 ldrh r0, [r4, 0xA] strh r0, [r2] adds r3, 0x1 lsls r2, r3, 16 asrs r1, r2, 16 movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 blt _080D3F2E _080D3F50: ldrh r3, [r4, 0x12] lsls r1, r3, 16 asrs r0, r1, 16 cmp r0, 0x9F bgt _080D4032 ldr r6, _080D3F80 ldr r5, _080D3F84 _080D3F5E: asrs r3, r1, 16 lsls r2, r3, 1 ldrb r1, [r5, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 adds r2, r6 ldrh r0, [r4, 0xC] strh r0, [r2] adds r3, 0x1 lsls r1, r3, 16 asrs r0, r1, 16 cmp r0, 0x9F ble _080D3F5E b _080D4032 .align 2, 0 _080D3F80: .4byte 0x03004de0 _080D3F84: .4byte 0x03004dc0 _080D3F88: movs r3, 0 movs r1, 0x10 ldrsh r0, [r4, r1] cmp r3, r0 bge _080D3FBC ldr r6, _080D403C ldr r5, _080D4040 _080D3F96: lsls r1, r3, 16 asrs r1, 16 lsls r3, r1, 1 ldrb r2, [r5, 0x14] lsls r0, r2, 4 subs r0, r2 lsls r0, 7 adds r3, r0 adds r3, r6 ldrh r0, [r4, 0xC] strh r0, [r3] adds r1, 0x1 lsls r1, 16 lsrs r3, r1, 16 asrs r1, 16 movs r2, 0x10 ldrsh r0, [r4, r2] cmp r1, r0 blt _080D3F96 _080D3FBC: ldrh r3, [r4, 0x10] lsls r2, r3, 16 asrs r1, r2, 16 movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 bge _080D3FF0 ldr r6, _080D403C ldr r5, _080D4040 _080D3FCE: asrs r3, r2, 16 lsls r2, r3, 1 ldrb r1, [r5, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 adds r2, r6 ldrh r0, [r4, 0xA] strh r0, [r2] adds r3, 0x1 lsls r2, r3, 16 asrs r1, r2, 16 movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 blt _080D3FCE _080D3FF0: ldrh r3, [r4, 0x12] lsls r1, r3, 16 asrs r0, r1, 16 cmp r0, 0x9F bgt _080D401C ldr r6, _080D403C ldr r5, _080D4040 _080D3FFE: asrs r3, r1, 16 lsls r2, r3, 1 ldrb r1, [r5, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 adds r2, r6 ldrh r0, [r4, 0xC] strh r0, [r2] adds r3, 0x1 lsls r1, r3, 16 asrs r0, r1, 16 cmp r0, 0x9F ble _080D3FFE _080D401C: movs r0, 0x26 ldrsh r1, [r4, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080D4032 bl remove_some_task adds r0, r7, 0 bl DestroyTask _080D4032: add sp, 0xC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D403C: .4byte 0x03004de0 _080D4040: .4byte 0x03004dc0 thumb_func_end sub_80D3D68 thumb_func_start sub_80D4044 sub_80D4044: @ 80D4044 push {r4-r6,lr} adds r4, r0, 0 ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x8 ldr r3, _080D4098 adds r0, r3, 0 ands r1, r0 ldr r0, _080D409C ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] adds r0, r4, 0 movs r1, 0x1 bl sub_8078764 bl Random movs r5, 0xFF ands r5, r0 movs r0, 0x80 lsls r0, 1 adds r6, r0, 0 orrs r5, r6 bl Random ldr r1, _080D40A0 ands r1, r0 adds r0, r1, 0 cmp r0, 0xFF ble _080D408A subs r0, r6, r0 lsls r0, 16 lsrs r1, r0, 16 _080D408A: strh r5, [r4, 0x30] strh r1, [r4, 0x32] ldr r0, _080D40A4 str r0, [r4, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D4098: .4byte 0x000003ff _080D409C: .4byte 0xfffffc00 _080D40A0: .4byte 0x000001ff _080D40A4: .4byte sub_80D40A8 thumb_func_end sub_80D4044 thumb_func_start sub_80D40A8 sub_80D40A8: @ 80D40A8 push {r4,lr} adds r2, r0, 0 ldrh r0, [r2, 0x30] ldrh r1, [r2, 0x34] adds r3, r0, r1 strh r3, [r2, 0x34] ldrh r1, [r2, 0x32] ldrh r4, [r2, 0x36] adds r1, r4 strh r1, [r2, 0x36] movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _080D40CC lsls r0, r3, 16 asrs r0, 24 negs r0, r0 b _080D40D0 _080D40CC: lsls r0, r3, 16 asrs r0, 24 _080D40D0: strh r0, [r2, 0x24] ldrh r0, [r2, 0x36] lsls r0, 16 asrs r0, 24 strh r0, [r2, 0x26] ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x15 bne _080D40EE adds r0, r2, 0 bl move_anim_8072740 _080D40EE: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D40A8 thumb_func_start sub_80D40F4 sub_80D40F4: @ 80D40F4 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080D4144 adds r4, r0 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] ldr r2, _080D4148 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x22] strh r0, [r4, 0x12] bl sub_80D4394 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xA] ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_8078E70 ldr r0, _080D414C str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080D4144: .4byte 0x03004b20 _080D4148: .4byte 0x02020004 _080D414C: .4byte sub_80D4150 thumb_func_end sub_80D40F4 thumb_func_start sub_80D4150 sub_80D4150: @ 80D4150 push {r4-r6,lr} sub sp, 0xC lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080D4178 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x7 bls _080D416C b _080D438A _080D416C: lsls r0, 2 ldr r1, _080D417C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080D4178: .4byte 0x03004b20 _080D417C: .4byte _080D4180 .align 2, 0 _080D4180: .4byte _080D41A0 .4byte _080D41C6 .4byte _080D4258 .4byte _080D428E .4byte _080D42A2 .4byte _080D42B0 .4byte _080D4330 .4byte _080D437C _080D41A0: ldrh r1, [r4, 0x26] lsls r1, 24 lsrs r1, 24 movs r3, 0x80 lsls r3, 1 movs r0, 0xE0 str r0, [sp] movs r0, 0x80 lsls r0, 2 str r0, [sp, 0x4] movs r0, 0x20 str r0, [sp, 0x8] adds r0, r4, 0 adds r2, r3, 0 bl sub_8079C08 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080D41C6: ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D4222 movs r0, 0 strh r0, [r4, 0xE] ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D4210 ldr r2, _080D420C movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x3 strh r1, [r0, 0x24] movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] adds r1, 0x1 strh r1, [r0, 0x22] b _080D4222 .align 2, 0 _080D420C: .4byte 0x02020004 _080D4210: ldr r2, _080D4250 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _080D4254 strh r1, [r0, 0x24] _080D4222: adds r0, r4, 0 bl sub_8079C74 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _080D4232 b _080D438A _080D4232: ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8079A64 ldr r2, _080D4250 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r5, [r0, 0x24] strh r5, [r4, 0xE] b _080D436C .align 2, 0 _080D4250: .4byte 0x02020004 _080D4254: .4byte 0x0000fffd _080D4258: ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bgt _080D4268 b _080D438A _080D4268: ldrh r1, [r4, 0x26] lsls r1, 24 lsrs r1, 24 movs r3, 0x80 lsls r3, 2 movs r0, 0xC0 lsls r0, 1 str r0, [sp] movs r0, 0xE0 str r0, [sp, 0x4] movs r0, 0x8 str r0, [sp, 0x8] adds r0, r4, 0 movs r2, 0xE0 bl sub_8079C08 movs r0, 0 strh r0, [r4, 0xE] b _080D436E _080D428E: adds r0, r4, 0 bl sub_8079C74 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080D438A strh r0, [r4, 0xE] strh r0, [r4, 0x10] b _080D436E _080D42A2: adds r0, r4, 0 adds r1, r2, 0 bl sub_80D4418 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080D42B0: ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D438A movs r0, 0 strh r0, [r4, 0xE] ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D42E8 ldr r2, _080D42E4 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] adds r1, 0x2 b _080D42FA .align 2, 0 _080D42E4: .4byte 0x02020004 _080D42E8: ldr r2, _080D432C movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] subs r1, 0x2 _080D42FA: strh r1, [r0, 0x26] movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0xA bne _080D438A ldrh r1, [r4, 0x26] lsls r1, 24 lsrs r1, 24 movs r2, 0xC0 lsls r2, 1 movs r0, 0x80 lsls r0, 1 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x8 str r0, [sp, 0x8] adds r0, r4, 0 movs r3, 0xE0 bl sub_8079C08 movs r0, 0 strh r0, [r4, 0xE] strh r0, [r4, 0x10] b _080D436E .align 2, 0 _080D432C: .4byte 0x02020004 _080D4330: ldr r6, _080D4378 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r1, [r0, 0x22] subs r1, 0x1 strh r1, [r0, 0x22] adds r0, r4, 0 bl sub_8079C74 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _080D438A ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8078F40 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r1, [r4, 0x12] strh r1, [r0, 0x22] _080D436C: strh r5, [r4, 0x10] _080D436E: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080D438A .align 2, 0 _080D4378: .4byte 0x02020004 _080D437C: movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0 bne _080D438A adds r0, r2, 0 bl move_anim_task_del _080D438A: add sp, 0xC pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80D4150 thumb_func_start sub_80D4394 sub_80D4394: @ 80D4394 push {r4,r5,lr} ldr r4, _080D43B8 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D43C8 ldr r1, _080D43BC ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _080D43C0 b _080D43D8 .align 2, 0 _080D43B8: .4byte 0x0202f7c8 _080D43BC: .4byte 0x02024a6a _080D43C0: .4byte 0x03004360 _080D43C4: adds r0, r2, 0 b _080D440A _080D43C8: ldr r1, _080D4410 ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _080D4414 _080D43D8: adds r5, r1, r0 adds r0, r5, 0 movs r1, 0x3A bl PokemonGetField adds r4, r0, 0 lsls r4, 16 adds r0, r5, 0 movs r1, 0x39 bl PokemonGetField lsls r0, 16 lsrs r3, r0, 16 lsrs r4, 18 movs r2, 0 _080D43F6: adds r1, r2, 0x1 adds r0, r4, 0 muls r0, r1 cmp r3, r0 blt _080D43C4 lsls r0, r1, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _080D43F6 movs r0, 0x3 _080D440A: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080D4410: .4byte 0x02024a6a _080D4414: .4byte 0x030045c0 thumb_func_end sub_80D4394 thumb_func_start sub_80D4418 sub_80D4418: @ 80D4418 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 adds r7, r0, 0 lsls r1, 24 lsrs r1, 24 str r1, [sp] ldr r4, _080D4520 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 mov r8, r0 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 movs r5, 0xAC ldrb r0, [r4] bl sub_8079E90 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x8] ldrh r1, [r7, 0xA] movs r0, 0x4 subs r0, r1 lsls r0, 16 lsrs r1, r0, 16 cmp r0, 0 bgt _080D4468 movs r1, 0x1 _080D4468: movs r0, 0 str r0, [sp, 0x4] lsls r0, r1, 16 mov r10, r8 mov r9, r6 mov r1, r10 lsls r1, 4 str r1, [sp, 0xC] mov r1, r9 lsls r1, 4 str r1, [sp, 0x10] asrs r0, 16 mov r8, r0 _080D4482: ldr r0, _080D4524 mov r1, r10 mov r2, r9 ldr r3, [sp, 0x8] bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 lsls r6, r5, 16 cmp r2, 0x40 beq _080D44EA ldr r1, _080D4528 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r5, r0, r1 mov r0, sp ldrh r0, [r0, 0x4] strh r0, [r5, 0x30] mov r1, sp ldrh r1, [r1, 0xC] strh r1, [r5, 0x32] mov r0, sp ldrh r0, [r0, 0x10] strh r0, [r5, 0x34] asrs r4, r6, 16 adds r0, r4, 0 movs r1, 0x40 bl cosine strh r0, [r5, 0x36] adds r0, r4, 0 movs r1, 0x40 bl sine strh r0, [r5, 0x38] mov r1, sp ldrh r1, [r1] strh r1, [r5, 0x3A] movs r0, 0x2 strh r0, [r5, 0x3C] ldrh r1, [r7, 0xC] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D44E4 adds r0, r5, 0 bl sub_80D452C _080D44E4: ldrh r0, [r7, 0xC] adds r0, 0x1 strh r0, [r7, 0xC] _080D44EA: mov r1, r8 lsls r0, r1, 1 asrs r1, r6, 16 adds r1, r0 lsls r1, 16 movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r5, r0, 16 ldr r1, [sp, 0x4] lsls r0, r1, 16 asrs r0, 16 add r0, r8 lsls r0, 16 lsrs r1, r0, 16 str r1, [sp, 0x4] asrs r0, 16 cmp r0, 0x13 ble _080D4482 add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D4520: .4byte 0x0202f7c8 _080D4524: .4byte gSpriteTemplate_83D9378 _080D4528: .4byte 0x02020004 thumb_func_end sub_80D4418 thumb_func_start sub_80D452C sub_80D452C: @ 80D452C push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _080D453E cmp r0, 0x1 beq _080D4574 b _080D45CE _080D453E: movs r2, 0x30 ldrsh r0, [r4, r2] movs r1, 0x6 bl __modsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 1 adds r1, r0 ldrh r0, [r4, 0x36] adds r1, r0 strh r1, [r4, 0x36] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x3 bl __modsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 1 adds r1, r0 ldrh r2, [r4, 0x38] adds r1, r2 strh r1, [r4, 0x38] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] _080D4574: ldrh r0, [r4, 0x36] ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] ldrh r1, [r4, 0x38] ldrh r2, [r4, 0x34] adds r1, r2 strh r1, [r4, 0x34] lsls r0, 16 asrs r0, 20 strh r0, [r4, 0x20] lsls r1, 16 asrs r2, r1, 20 strh r2, [r4, 0x22] adds r0, 0x8 lsls r0, 16 movs r1, 0x80 lsls r1, 17 cmp r0, r1 bhi _080D45AA adds r1, r2, 0 movs r0, 0x8 negs r0, r0 cmp r1, r0 blt _080D45AA cmp r1, 0x78 ble _080D45CE _080D45AA: ldr r3, _080D45D4 movs r0, 0x3C ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl DestroySprite _080D45CE: pop {r4} pop {r0} bx r0 .align 2, 0 _080D45D4: .4byte 0x03004b20 thumb_func_end sub_80D452C thumb_func_start sub_80D45D8 sub_80D45D8: @ 80D45D8 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080D4608 adds r4, r1, r0 bl sub_80D4394 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xA] ldr r0, _080D460C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D4610 movs r0, 0x88 strh r0, [r4, 0x10] movs r0, 0x28 b _080D4616 .align 2, 0 _080D4608: .4byte 0x03004b20 _080D460C: .4byte 0x0202f7c8 _080D4610: movs r0, 0x10 strh r0, [r4, 0x10] movs r0, 0x50 _080D4616: strh r0, [r4, 0x14] movs r0, 0x62 strh r0, [r4, 0x12] ldrh r0, [r4, 0x10] adds r0, 0x31 strh r0, [r4, 0x16] movs r0, 0xA ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 adds r0, 0x5 strh r0, [r4, 0x20] ldr r0, _080D4638 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080D4638: .4byte sub_80D463C thumb_func_end sub_80D45D8 thumb_func_start sub_80D463C sub_80D463C: @ 80D463C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r7, _080D4660 adds r4, r0, r7 movs r0, 0x8 ldrsh r2, [r4, r0] cmp r2, 0 beq _080D4664 cmp r2, 0x1 beq _080D4714 b _080D4722 .align 2, 0 _080D4660: .4byte 0x03004b20 _080D4664: ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080D467A strh r2, [r4, 0xC] adds r0, r4, 0 bl sub_80D472C _080D467A: movs r1, 0x1C ldrsh r0, [r4, r1] cmp r0, 0 beq _080D46F4 movs r2, 0x22 ldrsh r0, [r4, r2] cmp r0, 0 bne _080D46F4 ldr r5, _080D4708 movs r1, 0x1 mov r8, r1 mov r2, r8 strh r2, [r5] strh r0, [r5, 0x2] movs r0, 0xC strh r0, [r5, 0x4] ldr r6, _080D470C adds r0, r6, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF beq _080D46C4 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r7 ldr r1, [r0] adds r0, r2, 0 bl _call_via_r1 ldr r1, _080D4710 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080D46C4: movs r0, 0x3 strh r0, [r5] adds r0, r6, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF beq _080D46F0 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r7 ldr r1, [r0] adds r0, r2, 0 bl _call_via_r1 ldr r1, _080D4710 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080D46F0: mov r0, r8 strh r0, [r4, 0x22] _080D46F4: movs r2, 0x1E ldrsh r1, [r4, r2] movs r2, 0x20 ldrsh r0, [r4, r2] cmp r1, r0 blt _080D4722 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080D4722 .align 2, 0 _080D4708: .4byte 0x03004b00 _080D470C: .4byte sub_80E1864 _080D4710: .4byte 0x0202f7b2 _080D4714: movs r2, 0x1A ldrsh r0, [r4, r2] cmp r0, 0 bne _080D4722 adds r0, r1, 0 bl move_anim_task_del _080D4722: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80D463C thumb_func_start sub_80D472C sub_80D472C: @ 80D472C push {r4-r6,lr} adds r4, r0, 0 lsls r1, 24 lsrs r6, r1, 24 ldr r1, _080D47B8 movs r2, 0x18 ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] adds r0, 0x3 asrs r0, 4 ldrh r2, [r4, 0x14] adds r0, r2 lsls r0, 16 lsrs r5, r0, 16 ldr r0, _080D47BC movs r2, 0x16 ldrsh r1, [r4, r2] movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080D4786 ldr r3, _080D47C0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r1, r0, r1 ldr r2, _080D47C4 str r2, [r1] adds r0, r3 strh r5, [r0, 0x38] strh r6, [r0, 0x3A] movs r1, 0x9 strh r1, [r0, 0x3C] ldrh r0, [r4, 0x1A] adds r0, 0x1 strh r0, [r4, 0x1A] _080D4786: ldrh r0, [r4, 0x1E] adds r0, 0x1 strh r0, [r4, 0x1E] ldrh r0, [r4, 0x18] adds r0, 0x27 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x18] movs r0, 0x16 ldrsh r1, [r4, r0] ldr r0, _080D47C8 muls r0, r1 ldr r1, _080D47CC adds r0, r1 movs r2, 0x12 ldrsh r1, [r4, r2] bl __modsi3 ldrh r1, [r4, 0x10] adds r1, r0 strh r1, [r4, 0x16] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D47B8: .4byte gSineTable _080D47BC: .4byte gSpriteTemplate_83D9378 _080D47C0: .4byte 0x02020004 _080D47C4: .4byte sub_80D47D0 _080D47C8: .4byte 0x41c64e6d _080D47CC: .4byte 0x00003039 thumb_func_end sub_80D472C thumb_func_start sub_80D47D0 sub_80D47D0: @ 80D47D0 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 bne _080D4866 ldrh r0, [r5, 0x22] adds r0, 0x8 strh r0, [r5, 0x22] lsls r0, 16 asrs r0, 16 movs r2, 0x38 ldrsh r1, [r5, r2] cmp r0, r1 blt _080D4866 ldr r2, _080D486C movs r3, 0x3A ldrsh r1, [r5, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0x1 strh r1, [r0, 0x1C] ldr r0, _080D4870 movs r2, 0x20 ldrsh r1, [r5, r2] movs r3, 0x22 ldrsh r2, [r5, r3] movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x30] cmp r0, 0x40 beq _080D4860 movs r0, 0x30 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _080D4874 adds r0, r4 movs r1, 0x3 bl StartSpriteAffineAnim movs r2, 0x30 ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r5, 0x3A] strh r1, [r0, 0x3A] movs r3, 0x30 ldrsh r1, [r5, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r5, 0x3C] strh r1, [r0, 0x3C] movs r0, 0x30 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _080D4878 str r1, [r0] _080D4860: adds r0, r5, 0 bl DestroySprite _080D4866: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D486C: .4byte 0x03004b20 _080D4870: .4byte gBattleAnimSpriteTemplate_83DB4D8 _080D4874: .4byte 0x02020004 _080D4878: .4byte sub_80D487C thumb_func_end sub_80D47D0 thumb_func_start sub_80D487C sub_80D487C: @ 80D487C push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D48E8 movs r0, 0 strh r0, [r4, 0x30] adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0xC bne _080D48E8 ldr r3, _080D48F0 movs r0, 0x3C ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl DestroySprite _080D48E8: pop {r4} pop {r0} bx r0 .align 2, 0 _080D48F0: .4byte 0x03004b20 thumb_func_end sub_80D487C thumb_func_start sub_80D48F4 sub_80D48F4: @ 80D48F4 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080D4978 adds r5, r1, r0 ldr r4, _080D497C ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 movs r6, 0 strh r0, [r5, 0xE] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x10] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 movs r2, 0x1 negs r2, r2 adds r1, r2, 0 cmp r0, 0 bne _080D4938 movs r1, 0x1 _080D4938: strh r1, [r5, 0x16] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D494C movs r1, 0x16 ldrsh r0, [r5, r1] negs r0, r0 strh r0, [r5, 0x16] _080D494C: movs r2, 0x16 ldrsh r0, [r5, r2] lsls r0, 3 ldrh r1, [r5, 0xE] adds r0, r1 strh r0, [r5, 0x12] movs r2, 0x16 ldrsh r1, [r5, r2] lsls r1, 3 ldrh r0, [r5, 0x10] subs r0, r1 strh r0, [r5, 0x14] ldr r0, _080D4980 strh r0, [r5, 0x1A] strh r6, [r5, 0xA] strh r6, [r5, 0x8] ldr r0, _080D4984 str r0, [r5] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D4978: .4byte 0x03004b20 _080D497C: .4byte 0x0202f7c8 _080D4980: .4byte 0x0000ffe0 _080D4984: .4byte sub_80D4988 thumb_func_end sub_80D48F4 thumb_func_start sub_80D4988 sub_80D4988: @ 80D4988 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080D49AC adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x6 bls _080D49A2 b _080D4AC2 _080D49A2: lsls r0, 2 ldr r1, _080D49B0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080D49AC: .4byte 0x03004b20 _080D49B0: .4byte _080D49B4 .align 2, 0 _080D49B4: .4byte _080D49D0 .4byte _080D49E0 .4byte _080D49FA .4byte _080D4A3C .4byte _080D4A5E .4byte _080D4A8C .4byte _080D4AB2 _080D49D0: adds r0, r4, 0 bl sub_80D4AD0 movs r1, 0x1C ldrsh r0, [r4, r1] cmp r0, 0 beq _080D4AC8 b _080D4ABA _080D49E0: adds r0, r4, 0 bl sub_80D4AD0 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _080D4AC8 movs r0, 0 strh r0, [r4, 0xA] b _080D4ABA _080D49FA: adds r0, r4, 0 bl sub_80D4AD0 movs r1, 0x16 ldrsh r0, [r4, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 1 ldrh r0, [r4, 0x12] adds r1, r0 movs r2, 0 strh r1, [r4, 0x12] adds r1, 0x10 lsls r1, 16 movs r0, 0x88 lsls r0, 17 cmp r1, r0 bls _080D4AC8 ldrh r0, [r4, 0x20] adds r0, 0x1 strh r0, [r4, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080D4A38 movs r0, 0x1 strh r0, [r4, 0x22] movs r0, 0x6 strh r0, [r4, 0x8] strh r2, [r4, 0xA] b _080D4AC8 _080D4A38: strh r2, [r4, 0xA] b _080D4ABA _080D4A3C: adds r0, r4, 0 bl sub_80D4AD0 movs r0, 0x16 ldrsh r1, [r4, r0] lsls r1, 1 ldrh r0, [r4, 0x14] subs r0, r1 strh r0, [r4, 0x14] ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080D4AC8 b _080D4ABA _080D4A5E: adds r0, r4, 0 bl sub_80D4AD0 movs r1, 0x16 ldrsh r0, [r4, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 1 ldrh r0, [r4, 0x12] subs r0, r1 strh r0, [r4, 0x12] adds r0, 0x10 lsls r0, 16 movs r1, 0x88 lsls r1, 17 cmp r0, r1 bls _080D4AC8 ldrh r0, [r4, 0x20] adds r0, 0x1 strh r0, [r4, 0x20] movs r0, 0 strh r0, [r4, 0xA] b _080D4ABA _080D4A8C: adds r0, r4, 0 bl sub_80D4AD0 movs r0, 0x16 ldrsh r1, [r4, r0] lsls r1, 1 ldrh r0, [r4, 0x14] subs r0, r1 strh r0, [r4, 0x14] ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080D4AC8 movs r0, 0x2 strh r0, [r4, 0x8] b _080D4AC8 _080D4AB2: movs r1, 0x18 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D4AC8 _080D4ABA: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080D4AC8 _080D4AC2: adds r0, r2, 0 bl move_anim_task_del _080D4AC8: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D4988 thumb_func_start sub_80D4AD0 sub_80D4AD0: @ 80D4AD0 push {r4-r6,lr} adds r6, r0, 0 ldrh r0, [r6, 0xC] adds r0, 0x1 strh r0, [r6, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D4B2A movs r0, 0 strh r0, [r6, 0xC] ldr r0, _080D4B30 movs r2, 0xE ldrsh r1, [r6, r2] movs r3, 0x10 ldrsh r2, [r6, r3] movs r3, 0xA bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _080D4B2A ldr r5, _080D4B34 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r0, r4, r5 movs r1, 0x10 strh r1, [r0, 0x2E] ldrh r1, [r6, 0x12] strh r1, [r0, 0x32] ldrh r1, [r6, 0x14] strh r1, [r0, 0x36] ldrh r1, [r6, 0x1A] strh r1, [r0, 0x38] bl sub_80786EC adds r5, 0x1C adds r4, r5 ldr r0, _080D4B38 str r0, [r4] ldrh r0, [r6, 0x18] adds r0, 0x1 strh r0, [r6, 0x18] _080D4B2A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D4B30: .4byte gSpriteTemplate_83D9378 _080D4B34: .4byte 0x02020004 _080D4B38: .4byte sub_80D4B3C thumb_func_end sub_80D4AD0 thumb_func_start sub_80D4B3C sub_80D4B3C: @ 80D4B3C push {r4-r6,lr} adds r6, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080D4B96 ldrh r0, [r6, 0x24] ldrh r1, [r6, 0x20] adds r0, r1 strh r0, [r6, 0x20] ldrh r0, [r6, 0x26] ldrh r1, [r6, 0x22] adds r0, r1 strh r0, [r6, 0x22] movs r0, 0x6 strh r0, [r6, 0x2E] bl Random movs r4, 0x1F adds r1, r4, 0 ands r1, r0 ldr r5, _080D4B9C adds r1, r5 ldrh r0, [r6, 0x20] adds r1, r0 strh r1, [r6, 0x32] bl Random ands r4, r0 adds r4, r5 ldrh r1, [r6, 0x22] adds r4, r1 strh r4, [r6, 0x36] bl Random movs r1, 0x7 ands r1, r0 mvns r1, r1 strh r1, [r6, 0x38] adds r0, r6, 0 bl sub_80786EC ldr r0, _080D4BA0 str r0, [r6, 0x1C] _080D4B96: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D4B9C: .4byte 0x0000fff0 _080D4BA0: .4byte sub_80D4BA4 thumb_func_end sub_80D4B3C thumb_func_start sub_80D4BA4 sub_80D4BA4: @ 80D4BA4 push {r4-r6,lr} adds r5, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080D4BE0 movs r4, 0 ldr r6, _080D4BE8 _080D4BB6: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r6 ldr r1, [r2] ldr r0, _080D4BEC cmp r1, r0 bne _080D4BD6 movs r0, 0x1 strh r0, [r2, 0x1C] ldrh r0, [r2, 0x18] subs r0, 0x1 strh r0, [r2, 0x18] adds r0, r5, 0 bl DestroySprite _080D4BD6: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xF bls _080D4BB6 _080D4BE0: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D4BE8: .4byte 0x03004b20 _080D4BEC: .4byte sub_80D4988 thumb_func_end sub_80D4BA4 thumb_func_start sub_80D4BF0 sub_80D4BF0: @ 80D4BF0 ldr r2, _080D4C10 ldrh r1, [r2] strh r1, [r0, 0x20] ldrh r1, [r2, 0x2] strh r1, [r0, 0x22] ldrh r1, [r2, 0x4] strh r1, [r0, 0x2E] ldrh r1, [r2, 0x6] strh r1, [r0, 0x30] ldrh r1, [r2, 0x8] strh r1, [r0, 0x32] ldrh r1, [r2, 0xA] strh r1, [r0, 0x34] ldr r1, _080D4C14 str r1, [r0, 0x1C] bx lr .align 2, 0 _080D4C10: .4byte 0x03004b00 _080D4C14: .4byte sub_80D4C18 thumb_func_end sub_80D4BF0 thumb_func_start sub_80D4C18 sub_80D4C18: @ 80D4C18 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x36] ldrh r1, [r4, 0x2E] subs r0, r1 strh r0, [r4, 0x36] movs r1, 0x36 ldrsh r0, [r4, r1] movs r1, 0xA bl __divsi3 strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] ldrh r2, [r4, 0x38] adds r0, r2 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] movs r1, 0x38 ldrsh r0, [r4, r1] movs r2, 0x32 ldrsh r1, [r4, r2] bl sine strh r0, [r4, 0x24] ldrh r0, [r4, 0x34] subs r0, 0x1 strh r0, [r4, 0x34] lsls r0, 16 cmp r0, 0 bne _080D4C5C adds r0, r4, 0 bl move_anim_8072740 _080D4C5C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D4C18 thumb_func_start sub_80D4C64 sub_80D4C64: @ 80D4C64 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x34] adds r0, r1 strh r0, [r4, 0x34] ldrh r1, [r4, 0x32] ldrh r2, [r4, 0x36] adds r1, r2 strh r1, [r4, 0x36] lsls r0, 16 asrs r0, 23 strh r0, [r4, 0x24] lsls r1, 16 asrs r1, 23 strh r1, [r4, 0x26] ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bne _080D4C9C adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl DestroySprite _080D4C9C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D4C64 thumb_func_start sub_80D4CA4 sub_80D4CA4: @ 80D4CA4 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r5, _080D4CE0 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x30] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldr r1, _080D4CE4 ldrh r0, [r1, 0x4] strh r0, [r4, 0x34] ldrh r0, [r1, 0x6] strh r0, [r4, 0x36] ldr r0, _080D4CE8 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D4CE0: .4byte 0x0202f7c9 _080D4CE4: .4byte 0x03004b00 _080D4CE8: .4byte sub_80D4CEC thumb_func_end sub_80D4CA4 thumb_func_start sub_80D4CEC sub_80D4CEC: @ 80D4CEC push {r4-r6,lr} adds r4, r0, 0 movs r0, 0x30 ldrsh r1, [r4, r0] movs r2, 0x20 ldrsh r0, [r4, r2] subs r6, r1, r0 movs r0, 0x32 ldrsh r1, [r4, r0] movs r2, 0x22 ldrsh r0, [r4, r2] subs r5, r1, r0 movs r1, 0x2E ldrsh r0, [r4, r1] muls r0, r6 movs r2, 0x34 ldrsh r1, [r4, r2] bl __divsi3 strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] muls r0, r5 movs r2, 0x34 ldrsh r1, [r4, r2] bl __divsi3 strh r0, [r4, 0x26] ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 movs r2, 0x36 ldrsh r1, [r4, r2] cmp r0, r1 bne _080D4D44 movs r0, 0 strh r0, [r4, 0x38] adds r0, r4, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_80D4D64 _080D4D44: movs r0, 0x34 ldrsh r1, [r4, r0] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r1, r0 bne _080D4D56 adds r0, r4, 0 bl move_anim_8072740 _080D4D56: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80D4CEC thumb_func_start sub_80D4D64 sub_80D4D64: @ 80D4D64 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 adds r4, r1, 0 adds r5, r2, 0 movs r2, 0x2E ldrsh r1, [r0, r2] lsrs r2, r1, 31 adds r1, r2 lsls r1, 15 lsrs r1, 16 str r1, [sp] ldrh r1, [r0, 0x24] ldrh r3, [r0, 0x20] adds r1, r3 lsls r1, 16 lsrs r1, 16 mov r8, r1 ldrh r1, [r0, 0x26] ldrh r0, [r0, 0x22] adds r1, r0 lsls r1, 16 lsrs r1, 16 mov r10, r1 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 adds r0, r5, r0 subs r0, 0x5 lsls r0, 16 lsrs r0, 16 mov r9, r0 bl Random negs r4, r4 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 adds r4, r0 subs r4, 0x5 lsls r4, 16 lsrs r7, r4, 16 movs r6, 0 mov r0, r8 lsls r0, 16 mov r8, r0 mov r1, r10 lsls r1, 16 str r1, [sp, 0xC] ldr r2, [sp] lsls r2, 16 str r2, [sp, 0x10] asrs r1, 16 lsls r0, r7, 16 asrs r5, r0, 16 str r0, [sp, 0x14] negs r3, r5 str r3, [sp, 0x4] asrs r0, r2, 16 adds r1, r0 lsls r1, 16 mov r10, r1 _080D4DF2: ldr r0, _080D4E34 mov r2, r8 asrs r1, r2, 16 mov r3, r10 asrs r2, r3, 16 movs r3, 0x82 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080D4E38 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r4, r0, r1 movs r0, 0x14 strh r0, [r4, 0x2E] mov r0, r9 strh r0, [r4, 0x30] ldr r0, _080D4E3C ldrb r0, [r0] bl sub_8079E90 subs r0, 0x1 adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] cmp r5, 0 bge _080D4E40 mov r1, sp ldrh r1, [r1, 0x4] strh r1, [r4, 0x32] b _080D4E42 .align 2, 0 _080D4E34: .4byte gSpriteTemplate_83D9420 _080D4E38: .4byte 0x02020004 _080D4E3C: .4byte 0x0202f7c8 _080D4E40: strh r7, [r4, 0x32] _080D4E42: lsls r0, r6, 16 movs r2, 0x80 lsls r2, 9 adds r0, r2 lsrs r6, r0, 16 cmp r0, 0 ble _080D4DF2 movs r6, 0 ldr r3, [sp, 0xC] asrs r1, r3, 16 ldr r0, [sp, 0x14] asrs r5, r0, 16 negs r2, r5 str r2, [sp, 0x8] ldr r3, [sp, 0x10] asrs r0, r3, 16 subs r1, r0 lsls r1, 16 mov r10, r1 _080D4E68: ldr r0, _080D4EAC mov r2, r8 asrs r1, r2, 16 mov r3, r10 asrs r2, r3, 16 movs r3, 0x82 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080D4EB0 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r4, r0, r1 movs r0, 0x14 strh r0, [r4, 0x2E] mov r0, r9 strh r0, [r4, 0x30] ldr r0, _080D4EB4 ldrb r0, [r0] bl sub_8079E90 subs r0, 0x1 adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] cmp r5, 0 ble _080D4EB8 mov r1, sp ldrh r1, [r1, 0x8] strh r1, [r4, 0x32] b _080D4EBA .align 2, 0 _080D4EAC: .4byte gSpriteTemplate_83D9420 _080D4EB0: .4byte 0x02020004 _080D4EB4: .4byte 0x0202f7c8 _080D4EB8: strh r7, [r4, 0x32] _080D4EBA: lsls r0, r6, 16 movs r2, 0x80 lsls r2, 9 adds r0, r2 lsrs r6, r0, 16 cmp r0, 0 ble _080D4E68 add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80D4D64 thumb_func_start sub_80D4ED8 sub_80D4ED8: @ 80D4ED8 push {r4,lr} adds r4, r0, 0 ldr r0, _080D4F0C ldrh r0, [r0] strh r0, [r4, 0x2E] movs r0, 0x3C strh r0, [r4, 0x30] movs r0, 0x9 strh r0, [r4, 0x32] movs r0, 0x1E strh r0, [r4, 0x34] movs r0, 0xFE lsls r0, 8 strh r0, [r4, 0x36] ldr r1, _080D4F10 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r1, _080D4F14 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080D4F0C: .4byte 0x03004b00 _080D4F10: .4byte move_anim_8072740 _080D4F14: .4byte sub_8078174 thumb_func_end sub_80D4ED8 thumb_func_start sub_80D4F18 sub_80D4F18: @ 80D4F18 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080D4F50 movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 bl sub_807867C ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldrh r0, [r5, 0x8] strh r0, [r4, 0x2E] ldrh r0, [r5, 0x4] strh r0, [r4, 0x30] ldrh r0, [r5, 0x6] strh r0, [r4, 0x32] ldr r0, _080D4F54 str r0, [r4, 0x1C] ldr r1, _080D4F58 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D4F50: .4byte 0x03004b00 _080D4F54: .4byte sub_8078394 _080D4F58: .4byte move_anim_8072740 thumb_func_end sub_80D4F18 thumb_func_start sub_80D4F5C sub_80D4F5C: @ 80D4F5C push {r4,lr} adds r4, r0, 0 bl sub_8078650 ldr r0, _080D4F90 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D4F98 ldr r2, _080D4F94 ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 strh r0, [r4, 0x20] ldrh r0, [r2, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldrh r0, [r2, 0x8] negs r0, r0 strh r0, [r4, 0x32] adds r1, r2, 0 b _080D4FAE .align 2, 0 _080D4F90: .4byte 0x0202f7c8 _080D4F94: .4byte 0x03004b00 _080D4F98: ldr r1, _080D4FC4 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] ldrh r0, [r1, 0x8] strh r0, [r4, 0x32] _080D4FAE: ldrh r0, [r1, 0x4] strh r0, [r4, 0x30] ldrh r0, [r1, 0x6] strh r0, [r4, 0x36] ldrh r0, [r1, 0xA] strh r0, [r4, 0x34] ldr r0, _080D4FC8 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D4FC4: .4byte 0x03004b00 _080D4FC8: .4byte sub_80D5038 thumb_func_end sub_80D4F5C thumb_func_start sub_80D4FCC sub_80D4FCC: @ 80D4FCC push {r4,lr} adds r4, r0, 0 ldr r0, _080D4FF8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D5000 ldr r2, _080D4FFC ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 strh r0, [r4, 0x20] ldrh r0, [r2, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldrh r0, [r2, 0x8] strh r0, [r4, 0x32] adds r1, r2, 0 b _080D5018 .align 2, 0 _080D4FF8: .4byte 0x0202f7c8 _080D4FFC: .4byte 0x03004b00 _080D5000: ldr r1, _080D5030 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] ldrh r0, [r1, 0x8] negs r0, r0 strh r0, [r4, 0x32] _080D5018: ldrh r0, [r1, 0x4] strh r0, [r4, 0x30] ldrh r0, [r1, 0x6] strh r0, [r4, 0x36] ldrh r0, [r1, 0xA] strh r0, [r4, 0x34] ldr r0, _080D5034 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D5030: .4byte 0x03004b00 _080D5034: .4byte sub_80D5038 thumb_func_end sub_80D4FCC thumb_func_start sub_80D5038 sub_80D5038: @ 80D5038 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 movs r3, 0x36 ldrsh r1, [r2, r3] cmp r0, r1 bge _080D505E ldrh r0, [r2, 0x32] ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x24] ldrh r0, [r2, 0x34] ldrh r3, [r2, 0x26] adds r0, r3 strh r0, [r2, 0x26] _080D505E: movs r0, 0x2E ldrsh r1, [r2, r0] movs r3, 0x30 ldrsh r0, [r2, r3] cmp r1, r0 bne _080D5070 adds r0, r2, 0 bl move_anim_8074EE0 _080D5070: pop {r0} bx r0 thumb_func_end sub_80D5038 thumb_func_start sub_80D5074 sub_80D5074: @ 80D5074 push {r4,lr} adds r4, r0, 0 bl sub_8078650 ldr r0, _080D5098 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D50A0 ldr r0, _080D509C ldrh r1, [r4, 0x20] ldrh r2, [r0] subs r1, r2 strh r1, [r4, 0x20] b _080D50B2 .align 2, 0 _080D5098: .4byte 0x0202f7c8 _080D509C: .4byte 0x03004b00 _080D50A0: ldr r0, _080D50E0 ldrh r1, [r0] ldrh r2, [r4, 0x20] adds r1, r2 strh r1, [r4, 0x20] adds r2, r4, 0 adds r2, 0x43 movs r1, 0x8 strb r1, [r2] _080D50B2: adds r2, r0, 0 ldrh r0, [r2, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 movs r1, 0 strh r0, [r4, 0x22] ldrh r0, [r2, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r2, 0x6] strh r0, [r4, 0x30] ldrh r0, [r2, 0x8] strh r0, [r4, 0x32] ldrh r0, [r2, 0xA] strh r0, [r4, 0x34] ldrh r0, [r2, 0xC] strh r0, [r4, 0x36] strh r1, [r4, 0x38] ldr r0, _080D50E4 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D50E0: .4byte 0x03004b00 _080D50E4: .4byte sub_80D50E8 thumb_func_end sub_80D5074 thumb_func_start sub_80D50E8 sub_80D50E8: @ 80D50E8 push {r4,lr} adds r4, r0, 0 movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 beq _080D5170 movs r2, 0x38 ldrsh r1, [r4, r2] ldr r0, _080D5154 cmp r1, r0 ble _080D5106 adds r1, r4, 0 adds r1, 0x43 movs r0, 0x1 strb r0, [r1] _080D5106: movs r1, 0x2E ldrsh r0, [r4, r1] ldrh r1, [r4, 0x38] lsls r1, 16 asrs r1, 24 ldrh r2, [r4, 0x30] adds r1, r2 lsls r1, 16 asrs r1, 16 bl sine strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] ldrh r1, [r4, 0x38] lsls r1, 16 asrs r1, 24 ldrh r2, [r4, 0x30] adds r1, r2 lsls r1, 16 asrs r1, 16 bl cosine strh r0, [r4, 0x26] ldrh r0, [r4, 0x32] ldrh r2, [r4, 0x2E] adds r1, r0, r2 strh r1, [r4, 0x2E] ldrh r0, [r4, 0x36] ldrh r2, [r4, 0x38] adds r0, r2 strh r0, [r4, 0x38] lsls r0, r1, 16 asrs r0, 16 cmp r0, 0xFF ble _080D515C ldr r2, _080D5158 b _080D5164 .align 2, 0 _080D5154: .4byte 0x00002710 _080D5158: .4byte 0xffffff00 _080D515C: cmp r0, 0 bge _080D5168 movs r2, 0x80 lsls r2, 1 _080D5164: adds r0, r1, r2 strh r0, [r4, 0x2E] _080D5168: ldrh r0, [r4, 0x34] subs r0, 0x1 strh r0, [r4, 0x34] b _080D5176 _080D5170: adds r0, r4, 0 bl move_anim_8074EE0 _080D5176: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D50E8 thumb_func_start sub_80D517C sub_80D517C: @ 80D517C push {lr} movs r1, 0 strh r1, [r0, 0x20] strh r1, [r0, 0x22] movs r1, 0x3C strh r1, [r0, 0x2E] movs r1, 0x8C strh r1, [r0, 0x32] movs r1, 0x50 strh r1, [r0, 0x36] ldr r1, _080D51A0 str r1, [r0, 0x1C] ldr r1, _080D51A4 bl oamt_set_x3A_32 pop {r0} bx r0 .align 2, 0 _080D51A0: .4byte sub_8078B34 _080D51A4: .4byte move_anim_8072740 thumb_func_end sub_80D517C thumb_func_start sub_80D51A8 sub_80D51A8: @ 80D51A8 push {r4-r6,lr} adds r6, r0, 0 ldr r5, _080D5200 ldrb r0, [r5] bl battle_side_get_owner adds r4, r0, 0 ldr r0, _080D5204 ldrb r0, [r0] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080D51EE movs r0, 0x2 bl battle_get_side_with_given_state ldrb r1, [r5] lsls r0, 24 lsrs r0, 24 cmp r1, r0 beq _080D51E6 movs r0, 0x3 bl battle_get_side_with_given_state ldrb r1, [r5] lsls r0, 24 lsrs r0, 24 cmp r1, r0 bne _080D51EE _080D51E6: ldr r1, _080D5208 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080D51EE: ldr r1, _080D520C str r1, [r6, 0x1C] adds r0, r6, 0 bl _call_via_r1 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D5200: .4byte 0x0202f7c8 _080D5204: .4byte 0x0202f7c9 _080D5208: .4byte 0x03004b00 _080D520C: .4byte sub_8079534 thumb_func_end sub_80D51A8 thumb_func_start sub_80D5210 sub_80D5210: @ 80D5210 ldr r2, _080D5224 ldrh r1, [r2] negs r1, r1 strh r1, [r2] ldrh r1, [r2, 0x4] negs r1, r1 strh r1, [r2, 0x4] ldr r1, _080D5228 str r1, [r0, 0x1C] bx lr .align 2, 0 _080D5224: .4byte 0x03004b00 _080D5228: .4byte sub_8079534 thumb_func_end sub_80D5210 thumb_func_start sub_80D522C sub_80D522C: @ 80D522C push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080D524C ldrh r0, [r0, 0x4] movs r1, 0 strh r0, [r4, 0x3C] strh r1, [r4, 0x2E] ldr r0, _080D5250 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D524C: .4byte 0x03004b00 _080D5250: .4byte sub_80D5254 thumb_func_end sub_80D522C thumb_func_start sub_80D5254 sub_80D5254: @ 80D5254 push {r4,r5,lr} adds r5, r0, 0 bl sub_80D5348 ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x12 bne _080D529E movs r0, 0x19 strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] ldr r4, _080D52A4 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] adds r0, r5, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r0, _080D52A8 str r0, [r5, 0x1C] _080D529E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D52A4: .4byte 0x0202f7c9 _080D52A8: .4byte sub_80D52AC thumb_func_end sub_80D5254 thumb_func_start sub_80D52AC sub_80D52AC: @ 80D52AC push {r4-r6,lr} adds r6, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080D52F4 movs r4, 0 strh r4, [r6, 0x2E] ldr r5, _080D52EC ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x22] strh r4, [r6, 0x26] strh r4, [r6, 0x24] ldr r1, _080D52F0 str r1, [r6, 0x1C] adds r0, r6, 0 bl _call_via_r1 b _080D531E .align 2, 0 _080D52EC: .4byte 0x0202f7c9 _080D52F0: .4byte sub_80D5324 _080D52F4: movs r1, 0x3C ldrsh r0, [r6, r1] movs r1, 0x1C bl sine ldrh r1, [r6, 0x24] adds r0, r1 strh r0, [r6, 0x24] movs r1, 0x3C ldrsh r0, [r6, r1] movs r1, 0x1C bl cosine ldrh r1, [r6, 0x26] adds r0, r1 strh r0, [r6, 0x26] ldrh r0, [r6, 0x3C] adds r0, 0x14 movs r1, 0xFF ands r0, r1 strh r0, [r6, 0x3C] _080D531E: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80D52AC thumb_func_start sub_80D5324 sub_80D5324: @ 80D5324 push {r4,lr} adds r4, r0, 0 bl sub_80D5348 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F bne _080D5340 adds r0, r4, 0 bl move_anim_8072740 _080D5340: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D5324 thumb_func_start sub_80D5348 sub_80D5348: @ 80D5348 push {r4,lr} adds r4, r0, 0 movs r1, 0x3C ldrsh r0, [r4, r1] movs r1, 0x1C bl sine strh r0, [r4, 0x24] movs r1, 0x3C ldrsh r0, [r4, r1] movs r1, 0x1C bl cosine strh r0, [r4, 0x26] ldrh r0, [r4, 0x3C] adds r0, 0x14 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x3C] pop {r4} pop {r0} bx r0 thumb_func_end sub_80D5348 thumb_func_start sub_80D5374 sub_80D5374: @ 80D5374 push {r4,lr} adds r4, r0, 0 ldr r1, _080D53A8 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r4, 0x30] ldrh r0, [r1, 0x8] strh r0, [r4, 0x32] ldr r1, _080D53AC adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080D53B0 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D53A8: .4byte 0x03004b00 _080D53AC: .4byte move_anim_8072740 _080D53B0: .4byte sub_8078364 thumb_func_end sub_80D5374 thumb_func_start sub_80D53B4 sub_80D53B4: @ 80D53B4 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r1, _080D53E8 ldrh r0, [r1, 0x4] strh r0, [r4, 0x30] ldrh r0, [r1, 0x6] strh r0, [r4, 0x2E] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080D53EC str r0, [r4, 0x1C] ldr r1, _080D53F0 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080D53E8: .4byte 0x03004b00 _080D53EC: .4byte sub_80782D8 _080D53F0: .4byte sub_80D53F4 thumb_func_end sub_80D53B4 thumb_func_start sub_80D53F4 sub_80D53F4: @ 80D53F4 push {lr} adds r3, r0, 0 adds r3, 0x3E ldrb r2, [r3] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r3] ldrh r1, [r0, 0x30] movs r2, 0 strh r1, [r0, 0x2E] strh r2, [r0, 0x30] ldr r1, _080D5418 str r1, [r0, 0x1C] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _080D5418: .4byte sub_80D541C thumb_func_end sub_80D53F4 thumb_func_start sub_80D541C sub_80D541C: @ 80D541C push {r4,lr} adds r4, r0, 0 movs r1, 0x30 ldrsh r0, [r4, r1] ldrh r1, [r4, 0x32] lsls r1, 16 asrs r1, 24 bl sine strh r0, [r4, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] ldrh r1, [r4, 0x32] lsls r1, 16 asrs r1, 24 bl cosine strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r0, 0xA movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] ldrh r0, [r4, 0x32] adds r0, 0xD0 strh r0, [r4, 0x32] ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080D5468 adds r0, r4, 0 bl move_anim_8072740 _080D5468: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D541C thumb_func_start sub_80D5470 sub_80D5470: @ 80D5470 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080D54D0 adds r4, r0 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0x26] strh r5, [r4, 0x8] strh r5, [r4, 0xA] strh r5, [r4, 0xC] strh r5, [r4, 0xE] ldr r2, _080D54D4 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x22] strh r0, [r4, 0x10] ldr r0, _080D54D8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x12] strh r5, [r4, 0x14] ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_8078E70 ldr r0, _080D54DC str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D54D0: .4byte 0x03004b20 _080D54D4: .4byte 0x02020004 _080D54D8: .4byte 0x0202f7c8 _080D54DC: .4byte sub_80D54E0 thumb_func_end sub_80D5470 thumb_func_start sub_80D54E0 sub_80D54E0: @ 80D54E0 push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080D5508 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x6 bls _080D54FC b _080D57BA _080D54FC: lsls r0, 2 ldr r1, _080D550C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080D5508: .4byte 0x03004b20 _080D550C: .4byte _080D5510 .align 2, 0 _080D5510: .4byte _080D552C .4byte _080D5552 .4byte _080D5604 .4byte _080D5664 .4byte _080D5682 .4byte _080D5758 .4byte _080D57AC _080D552C: ldrh r1, [r4, 0x26] lsls r1, 24 lsrs r1, 24 movs r3, 0x80 lsls r3, 1 movs r0, 0xE0 str r0, [sp] movs r0, 0x80 lsls r0, 2 str r0, [sp, 0x4] movs r0, 0x20 str r0, [sp, 0x8] adds r0, r4, 0 adds r2, r3, 0 bl sub_8079C08 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080D5552: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D559A movs r0, 0 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D5588 ldr r2, _080D5584 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x3 b _080D5598 .align 2, 0 _080D5584: .4byte 0x02020004 _080D5588: ldr r2, _080D55FC movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _080D5600 _080D5598: strh r1, [r0, 0x24] _080D559A: movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 beq _080D55C8 ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _080D55C8 movs r0, 0 strh r0, [r4, 0xE] ldr r2, _080D55FC movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] adds r1, 0x1 strh r1, [r0, 0x22] _080D55C8: adds r0, r4, 0 bl sub_8079C74 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _080D55D8 b _080D57BA _080D55D8: ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8079A64 ldr r2, _080D55FC movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r5, [r0, 0x24] strh r5, [r4, 0xA] strh r5, [r4, 0xC] strh r5, [r4, 0xE] b _080D57A0 .align 2, 0 _080D55FC: .4byte 0x02020004 _080D5600: .4byte 0x0000fffd _080D5604: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bgt _080D5614 b _080D57BA _080D5614: movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 beq _080D563E ldrh r1, [r4, 0x26] lsls r1, 24 lsrs r1, 24 movs r3, 0x80 lsls r3, 2 movs r0, 0xC0 lsls r0, 1 str r0, [sp] movs r0, 0xF0 str r0, [sp, 0x4] movs r0, 0x6 str r0, [sp, 0x8] adds r0, r4, 0 movs r2, 0xE0 bl sub_8079C08 b _080D565E _080D563E: ldrh r1, [r4, 0x26] lsls r1, 24 lsrs r1, 24 movs r3, 0x80 lsls r3, 2 movs r0, 0xC0 lsls r0, 1 str r0, [sp] movs r0, 0xC0 str r0, [sp, 0x4] movs r0, 0x6 str r0, [sp, 0x8] adds r0, r4, 0 movs r2, 0xE0 bl sub_8079C08 _080D565E: movs r0, 0 strh r0, [r4, 0xA] b _080D57A0 _080D5664: adds r0, r4, 0 bl sub_8079C74 lsls r0, 24 cmp r0, 0 beq _080D5672 b _080D57BA _080D5672: ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 adds r1, r5, 0 movs r2, 0x6 bl sub_80D57C4 b _080D57A0 _080D5682: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D56D0 movs r0, 0 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D56BC ldr r2, _080D56B8 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] adds r1, 0x3 b _080D56CE .align 2, 0 _080D56B8: .4byte 0x02020004 _080D56BC: ldr r2, _080D5708 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] subs r1, 0x3 _080D56CE: strh r1, [r0, 0x26] _080D56D0: ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x18 ble _080D57BA movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 beq _080D570C ldrh r1, [r4, 0x26] lsls r1, 24 lsrs r1, 24 movs r2, 0xC0 lsls r2, 1 movs r0, 0x80 lsls r0, 1 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x8 str r0, [sp, 0x8] adds r0, r4, 0 movs r3, 0xF0 bl sub_8079C08 b _080D572A .align 2, 0 _080D5708: .4byte 0x02020004 _080D570C: ldrh r1, [r4, 0x26] lsls r1, 24 lsrs r1, 24 movs r2, 0xC0 lsls r2, 1 movs r0, 0x80 lsls r0, 1 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x8 str r0, [sp, 0x8] adds r0, r4, 0 movs r3, 0xC0 bl sub_8079C08 _080D572A: ldrh r1, [r4, 0xC] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D5748 ldr r2, _080D5754 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] subs r1, 0x3 strh r1, [r0, 0x26] _080D5748: movs r0, 0 strh r0, [r4, 0xA] strh r0, [r4, 0xC] strh r0, [r4, 0xE] b _080D57A0 .align 2, 0 _080D5754: .4byte 0x02020004 _080D5758: movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 beq _080D5774 ldr r2, _080D57A8 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] subs r1, 0x1 strh r1, [r0, 0x22] _080D5774: adds r0, r4, 0 bl sub_8079C74 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _080D57BA ldr r2, _080D57A8 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r4, 0x10] strh r1, [r0, 0x22] ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8078F40 strh r5, [r4, 0xC] _080D57A0: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080D57BA .align 2, 0 _080D57A8: .4byte 0x02020004 _080D57AC: movs r1, 0x14 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D57BA adds r0, r5, 0 bl move_anim_task_del _080D57BA: add sp, 0xC pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80D54E0 thumb_func_start sub_80D57C4 sub_80D57C4: @ 80D57C4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r2, 24 mov r8, r2 adds r0, r4, 0 bl sub_80D5940 lsls r0, 16 lsrs r0, 16 mov r9, r0 ldr r1, _080D5814 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 ldrh r4, [r0, 0x20] ldr r0, _080D5818 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D581C adds r0, r4, 0 subs r0, 0xC lsls r0, 16 lsrs r4, r0, 16 movs r0, 0x1 b _080D5826 .align 2, 0 _080D5814: .4byte 0x02020004 _080D5818: .4byte 0x0202f7c8 _080D581C: adds r0, r4, 0 adds r0, 0x10 lsls r0, 16 lsrs r4, r0, 16 movs r0, 0xFF _080D5826: movs r6, 0 movs r5, 0 lsls r4, 16 str r4, [sp, 0x8] mov r1, r9 lsls r1, 16 str r1, [sp, 0x4] ldr r2, _080D58E0 mov r9, r2 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r3, r8 lsls r3, 1 mov r10, r3 _080D5844: ldr r0, _080D58E4 ldr r2, [sp, 0x8] asrs r1, r2, 16 ldr r3, [sp, 0x4] asrs r2, r3, 16 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080D58C6 ldr r1, _080D58E8 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r4, r0, r1 ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 lsls r0, r5, 2 adds r0, 0x40 adds r1, r0 ldr r3, _080D58EC adds r0, r3, 0 ands r1, r0 ldr r3, _080D58F0 adds r0, r3, 0 ands r2, r0 orrs r2, r1 strh r2, [r4, 0x4] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x4 bls _080D588E movs r5, 0 _080D588E: lsls r2, r6, 2 mov r1, r9 adds r0, r2, r1 ldrh r0, [r0] ldr r3, [sp] adds r1, r0, 0 muls r1, r3 lsls r1, 16 asrs r1, 16 ldr r0, _080D58F4 adds r2, r0 movs r3, 0 ldrsh r2, [r2, r3] adds r0, r4, 0 bl sub_80D5994 strh r7, [r4, 0x3A] mov r0, r8 strh r0, [r4, 0x3C] lsls r0, r7, 2 adds r0, r7 lsls r0, 3 add r0, r10 ldr r1, _080D58F8 adds r0, r1 ldrh r1, [r0] adds r1, 0x1 strh r1, [r0] _080D58C6: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x6 bls _080D5844 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D58E0: .4byte gUnknown_083D96DC _080D58E4: .4byte gSpriteTemplate_83D96C4 _080D58E8: .4byte 0x02020004 _080D58EC: .4byte 0x000003ff _080D58F0: .4byte 0xfffffc00 _080D58F4: .4byte gUnknown_083D96DE _080D58F8: .4byte 0x03004b28 thumb_func_end sub_80D57C4 thumb_func_start sub_80D58FC sub_80D58FC: @ 80D58FC push {r4,lr} adds r4, r0, 0 bl sub_80D59B0 adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080D5936 ldr r3, _080D593C movs r0, 0x3C ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl DestroySprite _080D5936: pop {r4} pop {r0} bx r0 .align 2, 0 _080D593C: .4byte 0x03004b20 thumb_func_end sub_80D58FC thumb_func_start sub_80D5940 sub_80D5940: @ 80D5940 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080D5978 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r2, [r1, 0x26] ldrh r0, [r1, 0x22] adds r2, r0 adds r1, 0x29 movs r0, 0 ldrsb r0, [r1, r0] adds r0, r2 lsls r0, 16 lsrs r4, r0, 16 ldr r0, _080D597C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D5980 lsls r0, r4, 16 movs r1, 0x94 lsls r1, 15 b _080D5986 .align 2, 0 _080D5978: .4byte 0x02020004 _080D597C: .4byte 0x0202f7c8 _080D5980: lsls r0, r4, 16 movs r1, 0xB0 lsls r1, 14 _080D5986: adds r0, r1 lsrs r4, r0, 16 adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80D5940 thumb_func_start sub_80D5994 sub_80D5994: @ 80D5994 movs r3, 0 strh r3, [r0, 0x2E] strh r3, [r0, 0x30] ldrh r3, [r0, 0x20] lsls r3, 3 strh r3, [r0, 0x32] ldrh r3, [r0, 0x22] lsls r3, 3 strh r3, [r0, 0x34] lsls r1, 3 strh r1, [r0, 0x36] lsls r2, 3 strh r2, [r0, 0x38] bx lr thumb_func_end sub_80D5994 thumb_func_start sub_80D59B0 sub_80D59B0: @ 80D59B0 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080D59DA movs r0, 0 strh r0, [r2, 0x2E] ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] ldrh r0, [r2, 0x30] adds r1, r0, 0 muls r1, r0 adds r0, r1, 0 ldrh r3, [r2, 0x34] adds r0, r3 strh r0, [r2, 0x34] _080D59DA: ldrh r0, [r2, 0x36] ldrh r1, [r2, 0x32] adds r0, r1 strh r0, [r2, 0x32] lsls r0, 16 asrs r0, 19 strh r0, [r2, 0x20] ldrh r1, [r2, 0x38] ldrh r3, [r2, 0x34] adds r1, r3 strh r1, [r2, 0x34] lsls r1, 16 asrs r3, r1, 19 strh r3, [r2, 0x22] adds r0, 0x8 lsls r0, 16 movs r1, 0x80 lsls r1, 17 cmp r0, r1 bhi _080D5A10 adds r1, r3, 0 movs r0, 0x8 negs r0, r0 cmp r1, r0 blt _080D5A10 cmp r1, 0x78 ble _080D5A1C _080D5A10: adds r0, r2, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080D5A1C: pop {r0} bx r0 thumb_func_end sub_80D59B0 thumb_func_start sub_80D5A20 sub_80D5A20: @ 80D5A20 push {r4,r5,lr} ldr r3, _080D5A64 ldrh r1, [r3] movs r2, 0 strh r1, [r0, 0x20] ldrh r1, [r3, 0x2] strh r1, [r0, 0x22] strh r2, [r0, 0x2E] strh r2, [r0, 0x30] strh r2, [r0, 0x32] ldrh r1, [r3, 0x4] strh r1, [r0, 0x3A] ldrh r1, [r3, 0x6] strh r1, [r0, 0x3C] ldrh r4, [r0, 0x4] lsls r2, r4, 22 lsrs r2, 22 movs r5, 0x8 ldrsh r1, [r3, r5] lsls r1, 4 adds r2, r1 ldr r3, _080D5A68 adds r1, r3, 0 ands r2, r1 ldr r1, _080D5A6C ands r1, r4 orrs r1, r2 strh r1, [r0, 0x4] ldr r1, _080D5A70 str r1, [r0, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D5A64: .4byte 0x03004b00 _080D5A68: .4byte 0x000003ff _080D5A6C: .4byte 0xfffffc00 _080D5A70: .4byte sub_80D5A74 thumb_func_end sub_80D5A20 thumb_func_start sub_80D5A74 sub_80D5A74: @ 80D5A74 push {r4,lr} adds r2, r0, 0 movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0x1 beq _080D5AA6 cmp r0, 0x1 bgt _080D5A8A cmp r0, 0 beq _080D5A90 b _080D5B04 _080D5A8A: cmp r0, 0x2 beq _080D5AC4 b _080D5B04 _080D5A90: ldrh r1, [r2, 0x3A] movs r3, 0x3A ldrsh r0, [r2, r3] cmp r0, 0 beq _080D5AA0 subs r0, r1, 0x1 strh r0, [r2, 0x3A] b _080D5B04 _080D5AA0: ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] _080D5AA6: ldrh r0, [r2, 0x22] adds r0, 0x8 strh r0, [r2, 0x22] lsls r0, 16 asrs r0, 16 ldrh r3, [r2, 0x3C] movs r4, 0x3C ldrsh r1, [r2, r4] cmp r0, r1 blt _080D5B04 strh r3, [r2, 0x22] ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] b _080D5B04 _080D5AC4: ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D5AF0 movs r0, 0 strh r0, [r2, 0x30] ldrh r0, [r2, 0x32] adds r0, 0x1 strh r0, [r2, 0x32] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D5AEC ldr r0, _080D5AE8 b _080D5AEE .align 2, 0 _080D5AE8: .4byte 0x0000fffd _080D5AEC: movs r0, 0x3 _080D5AEE: strh r0, [r2, 0x26] _080D5AF0: ldrh r0, [r2, 0x34] adds r0, 0x1 strh r0, [r2, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _080D5B04 adds r0, r2, 0 bl move_anim_8072740 _080D5B04: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D5A74 thumb_func_start sub_80D5B0C sub_80D5B0C: @ 80D5B0C push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080D5B80 cmp r0, 0x1 bgt _080D5B22 cmp r0, 0 beq _080D5B28 b _080D5C4E _080D5B22: cmp r0, 0x2 beq _080D5BDE b _080D5C4E _080D5B28: adds r0, r5, 0 movs r1, 0 bl sub_80787B0 ldr r4, _080D5B50 ldrb r1, [r4, 0x4] adds r0, r5, 0 bl StartSpriteAnim ldrh r0, [r4, 0x4] strh r0, [r5, 0x3C] ldr r0, _080D5B54 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D5B58 movs r0, 0x4 b _080D5B5A .align 2, 0 _080D5B50: .4byte 0x03004b00 _080D5B54: .4byte 0x0202f7c8 _080D5B58: ldr r0, _080D5B78 _080D5B5A: strh r0, [r5, 0x36] ldr r0, _080D5B7C ldrb r0, [r0] bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r5, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] b _080D5BD6 .align 2, 0 _080D5B78: .4byte 0x0000fffc _080D5B7C: .4byte 0x0202f7c9 _080D5B80: ldrh r0, [r5, 0x30] adds r0, 0xC0 strh r0, [r5, 0x30] ldr r0, _080D5BA0 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D5BA4 ldrh r0, [r5, 0x30] lsls r0, 16 asrs r0, 24 negs r0, r0 b _080D5BAA .align 2, 0 _080D5BA0: .4byte 0x0202f7c8 _080D5BA4: ldrh r0, [r5, 0x30] lsls r0, 16 asrs r0, 24 _080D5BAA: strh r0, [r5, 0x26] movs r2, 0x32 ldrsh r0, [r5, r2] movs r2, 0x36 ldrsh r1, [r5, r2] bl sine strh r0, [r5, 0x24] ldrh r0, [r5, 0x32] adds r0, 0x4 movs r1, 0xFF ands r0, r1 strh r0, [r5, 0x32] ldrh r0, [r5, 0x34] adds r0, 0x1 strh r0, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080D5C4E movs r0, 0 strh r0, [r5, 0x34] _080D5BD6: ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _080D5C4E _080D5BDE: movs r1, 0x32 ldrsh r0, [r5, r1] movs r2, 0x36 ldrsh r1, [r5, r2] bl sine adds r2, r0, 0 movs r3, 0 strh r2, [r5, 0x24] ldrh r0, [r5, 0x32] adds r0, 0x4 movs r1, 0xFF ands r0, r1 strh r0, [r5, 0x32] ldrh r0, [r5, 0x34] adds r0, 0x1 strh r0, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F bne _080D5C4E ldrh r0, [r5, 0x20] adds r1, r2, r0 strh r1, [r5, 0x20] ldrh r0, [r5, 0x26] ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] strh r3, [r5, 0x26] strh r3, [r5, 0x24] movs r0, 0x80 lsls r0, 1 strh r0, [r5, 0x2E] strh r1, [r5, 0x30] ldr r4, _080D5C54 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] adds r0, r5, 0 bl sub_8078BD4 ldr r0, _080D5C58 str r0, [r5, 0x1C] _080D5C4E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D5C54: .4byte 0x0202f7c9 _080D5C58: .4byte sub_80D5C5C thumb_func_end sub_80D5B0C thumb_func_start sub_80D5C5C sub_80D5C5C: @ 80D5C5C push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 bne _080D5CB4 movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0x10 bl sine ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] ldrh r2, [r4, 0x38] adds r0, r2, 0x4 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] ldrh r0, [r4, 0x38] lsls r2, 16 asrs r2, 16 cmp r2, 0 beq _080D5C92 cmp r2, 0xC4 ble _080D5CBA _080D5C92: lsls r0, 16 cmp r0, 0 ble _080D5CBA movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0 bne _080D5CBA ldr r0, _080D5CB0 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0x90 bl audio_play_and_stuff b _080D5CBA .align 2, 0 _080D5CB0: .4byte 0x0202f7d2 _080D5CB4: adds r0, r4, 0 bl move_anim_8072740 _080D5CBA: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D5C5C thumb_func_start sub_80D5CC0 sub_80D5CC0: @ 80D5CC0 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x2E] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 bne _080D5CD8 ldr r0, _080D5D4C ldrh r0, [r0] strh r0, [r4, 0x30] adds r0, r1, 0x1 strh r0, [r4, 0x2E] _080D5CD8: movs r0, 0xC0 lsls r0, 1 adds r1, r0, 0 ldrh r2, [r4, 0x34] adds r1, r2 strh r1, [r4, 0x34] ldrh r0, [r4, 0x36] adds r0, 0xA0 strh r0, [r4, 0x36] movs r2, 0x30 ldrsh r0, [r4, r2] lsls r1, 16 asrs r1, 24 bl sine strh r0, [r4, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] ldrh r1, [r4, 0x36] lsls r1, 16 asrs r1, 24 bl cosine strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r2, r0, 0x7 movs r0, 0xFF ands r2, r0 strh r2, [r4, 0x30] ldr r0, _080D5D50 ldr r1, _080D5D54 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D5D84 adds r0, r2, 0 subs r0, 0x40 lsls r0, 16 lsrs r0, 16 cmp r0, 0x83 bls _080D5D5C ldr r0, _080D5D58 ldrb r0, [r0] bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] b _080D5DA0 .align 2, 0 _080D5D4C: .4byte 0x03004b00 _080D5D50: .4byte 0x03001770 _080D5D54: .4byte 0x0000043d _080D5D58: .4byte 0x0202f7c9 _080D5D5C: ldr r0, _080D5D80 ldrb r0, [r0] bl sub_8079ED4 lsls r0, 24 lsrs r0, 24 adds r0, 0x1 movs r1, 0x3 ands r0, r1 lsls r0, 2 ldrb r2, [r4, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x5] b _080D5DA0 .align 2, 0 _080D5D80: .4byte 0x0202f7c9 _080D5D84: adds r0, r2, 0 subs r0, 0x40 lsls r0, 16 lsrs r0, 16 cmp r0, 0x83 bls _080D5D98 adds r1, r4, 0 adds r1, 0x43 movs r0, 0x1D b _080D5D9E _080D5D98: adds r1, r4, 0 adds r1, 0x43 movs r0, 0x1F _080D5D9E: strb r0, [r1] _080D5DA0: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080D5DC8 adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080D5DC8: movs r2, 0x32 ldrsh r0, [r4, r2] cmp r0, 0x1E bne _080D5DD6 adds r0, r4, 0 bl move_anim_8072740 _080D5DD6: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D5CC0 thumb_func_start sub_80D5DDC sub_80D5DDC: @ 80D5DDC push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080D5E3C adds r4, r1, r0 ldr r0, _080D5E40 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 movs r2, 0x1 negs r2, r2 adds r1, r2, 0 cmp r0, 0 bne _080D5E02 movs r1, 0x1 _080D5E02: strh r1, [r4, 0x20] ldr r0, _080D5E44 ldrb r1, [r0] movs r0, 0x2 eors r0, r1 bl b_side_obj__get_some_boolean lsls r0, 24 lsrs r0, 24 adds r0, 0x1 strh r0, [r4, 0x22] movs r0, 0x1 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x24] movs r0, 0x3 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] ldr r0, _080D5E48 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080D5E3C: .4byte 0x03004b20 _080D5E40: .4byte 0x0202f7c8 _080D5E44: .4byte 0x0202f7c9 _080D5E48: .4byte sub_80D5E4C thumb_func_end sub_80D5DDC thumb_func_start sub_80D5E4C sub_80D5E4C: @ 80D5E4C push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080D5E70 adds r2, r0, r1 movs r0, 0x8 ldrsh r3, [r2, r0] cmp r3, 0x1 beq _080D5F14 cmp r3, 0x1 bgt _080D5E74 cmp r3, 0 beq _080D5E82 b _080D6074 .align 2, 0 _080D5E70: .4byte 0x03004b20 _080D5E74: cmp r3, 0x2 bne _080D5E7A b _080D5F9C _080D5E7A: cmp r3, 0x3 bne _080D5E80 b _080D6030 _080D5E80: b _080D6074 _080D5E82: movs r1, 0x20 ldrsh r0, [r2, r1] lsls r0, 1 ldrh r5, [r2, 0x1C] adds r0, r5 strh r0, [r2, 0x1C] ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D5EB4 strh r3, [r2, 0xA] ldrh r0, [r2, 0xC] adds r0, 0x1 strh r0, [r2, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D5EB0 movs r0, 0x2 b _080D5EB2 _080D5EB0: ldr r0, _080D5F0C _080D5EB2: strh r0, [r2, 0x1E] _080D5EB4: movs r1, 0 strh r1, [r2, 0xE] movs r7, 0x22 ldrsh r0, [r2, r7] cmp r1, r0 bge _080D5EF6 ldr r4, _080D5F10 adds r3, r2, 0 adds r3, 0x8 _080D5EC6: movs r1, 0xE ldrsh r0, [r2, r1] adds r0, 0xE lsls r0, 1 adds r0, r3, r0 movs r5, 0 ldrsh r0, [r0, r5] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r2, 0x1E] ldrh r7, [r2, 0x1C] adds r0, r7 strh r0, [r1, 0x24] ldrh r0, [r2, 0xE] adds r0, 0x1 strh r0, [r2, 0xE] lsls r0, 16 asrs r0, 16 movs r5, 0x22 ldrsh r1, [r2, r5] cmp r0, r1 blt _080D5EC6 _080D5EF6: ldrh r0, [r2, 0x1A] adds r0, 0x1 strh r0, [r2, 0x1A] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 beq _080D5F06 b _080D6074 _080D5F06: movs r0, 0 strh r0, [r2, 0x1A] b _080D6020 .align 2, 0 _080D5F0C: .4byte 0x0000fffe _080D5F10: .4byte 0x02020004 _080D5F14: ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _080D5F3C movs r0, 0 strh r0, [r2, 0xA] ldrh r0, [r2, 0xC] adds r0, 0x1 strh r0, [r2, 0xC] ands r0, r3 lsls r0, 16 cmp r0, 0 beq _080D5F38 movs r0, 0x2 b _080D5F3A _080D5F38: ldr r0, _080D5F94 _080D5F3A: strh r0, [r2, 0x1E] _080D5F3C: movs r1, 0 strh r1, [r2, 0xE] movs r7, 0x22 ldrsh r0, [r2, r7] cmp r1, r0 bge _080D5F7E ldr r4, _080D5F98 adds r3, r2, 0 adds r3, 0x8 _080D5F4E: movs r1, 0xE ldrsh r0, [r2, r1] adds r0, 0xE lsls r0, 1 adds r0, r3, r0 movs r5, 0 ldrsh r0, [r0, r5] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r2, 0x1E] ldrh r7, [r2, 0x1C] adds r0, r7 strh r0, [r1, 0x24] ldrh r0, [r2, 0xE] adds r0, 0x1 strh r0, [r2, 0xE] lsls r0, 16 asrs r0, 16 movs r5, 0x22 ldrsh r1, [r2, r5] cmp r0, r1 blt _080D5F4E _080D5F7E: ldrh r0, [r2, 0x1A] adds r0, 0x1 strh r0, [r2, 0x1A] lsls r0, 16 asrs r0, 16 cmp r0, 0x60 bne _080D6074 movs r0, 0 strh r0, [r2, 0x1A] b _080D6020 .align 2, 0 _080D5F94: .4byte 0x0000fffe _080D5F98: .4byte 0x02020004 _080D5F9C: movs r7, 0x20 ldrsh r1, [r2, r7] lsls r1, 1 ldrh r0, [r2, 0x1C] subs r0, r1 strh r0, [r2, 0x1C] ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D5FD0 movs r0, 0 strh r0, [r2, 0xA] ldrh r0, [r2, 0xC] adds r0, 0x1 strh r0, [r2, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D5FCC strh r3, [r2, 0x1E] b _080D5FD0 _080D5FCC: ldr r0, _080D6028 strh r0, [r2, 0x1E] _080D5FD0: movs r1, 0 strh r1, [r2, 0xE] movs r3, 0x22 ldrsh r0, [r2, r3] cmp r1, r0 bge _080D6012 ldr r4, _080D602C adds r3, r2, 0 adds r3, 0x8 _080D5FE2: movs r5, 0xE ldrsh r0, [r2, r5] adds r0, 0xE lsls r0, 1 adds r0, r3, r0 movs r7, 0 ldrsh r0, [r0, r7] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r2, 0x1E] ldrh r5, [r2, 0x1C] adds r0, r5 strh r0, [r1, 0x24] ldrh r0, [r2, 0xE] adds r0, 0x1 strh r0, [r2, 0xE] lsls r0, 16 asrs r0, 16 movs r7, 0x22 ldrsh r1, [r2, r7] cmp r0, r1 blt _080D5FE2 _080D6012: ldrh r0, [r2, 0x1A] adds r0, 0x1 strh r0, [r2, 0x1A] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 bne _080D6074 _080D6020: ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] b _080D6074 .align 2, 0 _080D6028: .4byte 0x0000fffe _080D602C: .4byte 0x02020004 _080D6030: movs r1, 0 strh r1, [r2, 0xE] movs r3, 0x22 ldrsh r0, [r2, r3] cmp r1, r0 bge _080D606E ldr r6, _080D607C adds r3, r2, 0 adds r3, 0x8 movs r5, 0 _080D6044: movs r7, 0xE ldrsh r0, [r2, r7] adds r0, 0xE lsls r0, 1 adds r0, r3, r0 movs r7, 0 ldrsh r1, [r0, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r5, [r0, 0x24] ldrh r0, [r2, 0xE] adds r0, 0x1 strh r0, [r2, 0xE] lsls r0, 16 asrs r0, 16 movs r7, 0x22 ldrsh r1, [r2, r7] cmp r0, r1 blt _080D6044 _080D606E: adds r0, r4, 0 bl move_anim_task_del _080D6074: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D607C: .4byte 0x02020004 thumb_func_end sub_80D5E4C thumb_func_start sub_80D6080 sub_80D6080: @ 80D6080 push {r4,lr} sub sp, 0xC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 mov r0, sp bl sub_8078914 mov r0, sp ldrb r0, [r0, 0x8] lsls r0, 4 ldr r1, _080D60B0 ldrb r2, [r1] ldrh r3, [r1, 0x2] movs r1, 0x10 bl BlendPalette adds r0, r4, 0 bl move_anim_task_del add sp, 0xC pop {r4} pop {r0} bx r0 .align 2, 0 _080D60B0: .4byte 0x03004b00 thumb_func_end sub_80D6080 thumb_func_start sub_80D60B4 sub_80D60B4: @ 80D60B4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r7, r0, 24 ldr r1, _080D610C lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r2, r0, r1 movs r3, 0x8 ldrsh r0, [r2, r3] mov r9, r1 ldr r4, _080D6110 mov r8, r4 cmp r0, 0 bne _080D60EA ldrh r0, [r4] strh r0, [r2, 0xA] ldrh r0, [r4, 0x2] strh r0, [r2, 0xC] ldrh r0, [r4, 0x4] strh r0, [r2, 0xE] ldrh r0, [r4, 0x6] strh r0, [r2, 0x10] _080D60EA: ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] ldr r1, _080D6114 ldr r0, _080D6118 ldrb r0, [r0] adds r0, r1 ldrb r6, [r0] movs r5, 0x10 ldrsh r0, [r2, r5] cmp r0, 0 bne _080D6120 ldr r4, _080D611C movs r1, 0x8 ldrsh r0, [r2, r1] b _080D6126 .align 2, 0 _080D610C: .4byte 0x03004b20 _080D6110: .4byte 0x03004b00 _080D6114: .4byte 0x02024be0 _080D6118: .4byte 0x0202f7c9 _080D611C: .4byte gUnknown_083D9794 _080D6120: ldr r4, _080D616C movs r3, 0x8 ldrsh r0, [r2, r3] _080D6126: movs r1, 0xA bl __modsi3 lsls r0, 16 asrs r0, 16 adds r0, r4 ldrb r5, [r0] lsls r0, r7, 2 adds r1, r0, r7 lsls r1, 3 add r1, r9 movs r4, 0xE ldrsh r1, [r1, r4] mov r12, r0 cmp r1, 0x1 bne _080D6174 ldr r2, _080D6170 lsls r3, r6, 4 adds r0, r3, r6 lsls r0, 2 adds r0, r2 mov r10, r0 mov r0, r8 movs r4, 0x2 ldrsh r1, [r0, r4] lsls r0, r5, 24 asrs r0, 24 muls r0, r1 cmp r0, 0 bge _080D6164 negs r0, r0 _080D6164: mov r5, r10 strh r0, [r5, 0x26] b _080D618E .align 2, 0 _080D616C: .4byte gUnknown_083D97A4 _080D6170: .4byte 0x02020004 _080D6174: ldr r3, _080D61C4 lsls r4, r6, 4 adds r2, r4, r6 lsls r2, 2 adds r2, r3 lsls r0, r5, 24 asrs r0, 24 mov r5, r8 ldrh r1, [r5, 0x2] muls r0, r1 strh r0, [r2, 0x24] adds r2, r3, 0 adds r3, r4, 0 _080D618E: mov r1, r12 adds r0, r1, r7 lsls r0, 3 add r0, r9 movs r4, 0x8 ldrsh r1, [r0, r4] movs r5, 0xA ldrsh r0, [r0, r5] cmp r1, r0 bne _080D61B4 adds r0, r3, r6 lsls r0, 2 adds r0, r2 movs r1, 0 strh r1, [r0, 0x24] strh r1, [r0, 0x26] adds r0, r7, 0 bl move_anim_task_del _080D61B4: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D61C4: .4byte 0x02020004 thumb_func_end sub_80D60B4 thumb_func_start sub_80D61C8 sub_80D61C8: @ 80D61C8 push {r4,lr} adds r4, r0, 0 ldr r0, _080D61E8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D61F0 ldr r0, _080D61EC ldrh r1, [r4, 0x20] ldrh r2, [r0] subs r1, r2 strh r1, [r4, 0x20] b _080D61FC .align 2, 0 _080D61E8: .4byte 0x0202f7c8 _080D61EC: .4byte 0x03004b00 _080D61F0: ldr r1, _080D6210 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] adds r0, r1, 0 _080D61FC: ldrh r0, [r0, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldr r0, _080D6214 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D6210: .4byte 0x03004b00 _080D6214: .4byte sub_80D6218 thumb_func_end sub_80D61C8 thumb_func_start sub_80D6218 sub_80D6218: @ 80D6218 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D622E adds r0, r2, 0 bl move_anim_8072740 _080D622E: pop {r0} bx r0 thumb_func_end sub_80D6218 thumb_func_start sub_80D6234 sub_80D6234: @ 80D6234 push {r4,lr} adds r4, r0, 0 ldr r0, _080D6254 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D625C ldr r0, _080D6258 ldrh r1, [r4, 0x20] ldrh r0, [r0] subs r1, r0 strh r1, [r4, 0x20] b _080D6266 .align 2, 0 _080D6254: .4byte 0x0202f7c8 _080D6258: .4byte 0x03004b00 _080D625C: ldr r0, _080D6270 ldrh r0, [r0] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] _080D6266: ldr r0, _080D6274 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D6270: .4byte 0x03004b00 _080D6274: .4byte sub_80D6278 thumb_func_end sub_80D6234 thumb_func_start sub_80D6278 sub_80D6278: @ 80D6278 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080D628E adds r0, r2, 0 bl move_anim_8074EE0 _080D628E: pop {r0} bx r0 thumb_func_end sub_80D6278 thumb_func_start sub_80D6294 sub_80D6294: @ 80D6294 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080D62D8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r0, _080D62DC ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D62E4 ldr r2, _080D62E0 ldrh r0, [r5, 0x20] ldrh r1, [r2] subs r0, r1 strh r0, [r5, 0x20] ldrh r0, [r5, 0x22] ldrh r1, [r2, 0x2] subs r0, r1 strh r0, [r5, 0x22] b _080D62F8 .align 2, 0 _080D62D8: .4byte 0x0202f7c9 _080D62DC: .4byte 0x0202f7c8 _080D62E0: .4byte 0x03004b00 _080D62E4: ldr r0, _080D631C ldrh r1, [r0] ldrh r2, [r5, 0x20] adds r1, r2 strh r1, [r5, 0x20] ldrh r1, [r0, 0x2] ldrh r2, [r5, 0x22] adds r1, r2 strh r1, [r5, 0x22] adds r2, r0, 0 _080D62F8: movs r0, 0 strh r0, [r5, 0x2E] ldrh r0, [r2, 0x4] strh r0, [r5, 0x30] ldrh r0, [r2, 0x6] strh r0, [r5, 0x32] ldrh r0, [r2, 0x8] strh r0, [r5, 0x34] ldr r1, _080D6320 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080D6324 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D631C: .4byte 0x03004b00 _080D6320: .4byte move_anim_8074EE0 _080D6324: .4byte sub_8078114 thumb_func_end sub_80D6294 thumb_func_start sub_80D6328 sub_80D6328: @ 80D6328 push {r4-r7,lr} adds r5, r0, 0 ldr r0, _080D6340 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0x1 beq _080D63A0 cmp r0, 0x1 bgt _080D6344 cmp r0, 0 beq _080D634E b _080D63A0 .align 2, 0 _080D6340: .4byte 0x03004b00 _080D6344: cmp r0, 0x2 beq _080D6358 cmp r0, 0x3 beq _080D637C b _080D63A0 _080D634E: ldr r0, _080D6354 b _080D63A2 .align 2, 0 _080D6354: .4byte 0x0202f7c8 _080D6358: ldr r4, _080D6370 ldrb r0, [r4] movs r6, 0x2 eors r0, r6 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 bne _080D6374 ldrb r4, [r4] b _080D63A4 .align 2, 0 _080D6370: .4byte 0x0202f7c8 _080D6374: ldrb r0, [r4] adds r4, r6, 0 eors r4, r0 b _080D63A4 _080D637C: ldr r0, _080D6398 ldrb r0, [r0] movs r4, 0x2 eors r0, r4 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080D63A0 ldr r0, _080D639C ldrb r0, [r0] eors r4, r0 b _080D63A4 .align 2, 0 _080D6398: .4byte 0x0202f7c8 _080D639C: .4byte 0x0202f7c9 _080D63A0: ldr r0, _080D63C4 _080D63A2: ldrb r4, [r0] _080D63A4: ldr r0, _080D63C8 movs r2, 0xA ldrsh r0, [r0, r2] cmp r0, 0 bne _080D63CC adds r0, r4, 0 movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] adds r0, r4, 0 movs r1, 0x1 b _080D63DE .align 2, 0 _080D63C4: .4byte 0x0202f7c9 _080D63C8: .4byte 0x03004b00 _080D63CC: adds r0, r4, 0 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] adds r0, r4, 0 movs r1, 0x3 _080D63DE: bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r7, _080D647C ldr r6, _080D6480 movs r1, 0 ldrsh r0, [r6, r1] lsls r0, 1 adds r0, r7 movs r2, 0 ldrsh r1, [r0, r2] movs r2, 0x2 ldrsh r0, [r6, r2] muls r0, r1 asrs r0, 8 strh r0, [r5, 0x24] movs r1, 0 ldrsh r0, [r6, r1] adds r0, 0x40 lsls r0, 1 adds r0, r7 movs r2, 0 ldrsh r1, [r0, r2] movs r2, 0x2 ldrsh r0, [r6, r2] muls r0, r1 asrs r0, 8 strh r0, [r5, 0x26] ldrh r1, [r6, 0xC] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D6442 adds r0, r4, 0 bl sub_8079ED4 lsls r0, 24 lsrs r0, 24 adds r0, 0x1 movs r1, 0x3 ands r0, r1 lsls r0, 2 ldrb r2, [r5, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r5, 0x5] _080D6442: ldrb r2, [r5, 0x3] lsls r2, 26 lsrs r2, 27 movs r0, 0x4 ldrsh r1, [r6, r0] lsls r0, r1, 1 adds r0, r7 ldrh r0, [r0] ldr r3, _080D6484 lsls r2, 3 adds r2, r3 adds r1, 0x40 lsls r1, 1 adds r1, r7 ldrh r1, [r1] strh r1, [r2, 0x6] strh r1, [r2] strh r0, [r2, 0x2] lsls r0, 16 asrs r0, 16 negs r0, r0 strh r0, [r2, 0x4] ldrh r0, [r6, 0x6] strh r0, [r5, 0x2E] ldr r0, _080D6488 str r0, [r5, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D647C: .4byte gSineTable _080D6480: .4byte 0x03004b00 _080D6484: .4byte 0x030027f0 _080D6488: .4byte sub_80DA48C thumb_func_end sub_80D6328 thumb_func_start sub_80D648C sub_80D648C: @ 80D648C push {r4-r6,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r5, _080D6500 ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] ldr r6, _080D6504 ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] ldrb r0, [r6] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] adds r0, r4, 0 bl obj_translate_based_on_private_1_2_3_4 ldrh r0, [r5, 0x4] strh r0, [r4, 0x38] ldrh r0, [r5, 0xA] strh r0, [r4, 0x3A] ldrh r0, [r5, 0x8] strh r0, [r4, 0x3C] ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 movs r3, 0xC ldrsh r0, [r5, r3] lsls r0, 2 adds r1, r0 ldr r3, _080D6508 adds r0, r3, 0 ands r1, r0 ldr r0, _080D650C ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] ldr r1, _080D6510 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D6500: .4byte 0x03004b00 _080D6504: .4byte 0x0202f7c9 _080D6508: .4byte 0x000003ff _080D650C: .4byte 0xfffffc00 _080D6510: .4byte sub_80D6514 thumb_func_end sub_80D648C thumb_func_start sub_80D6514 sub_80D6514: @ 80D6514 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 bne _080D657E movs r1, 0x3C ldrsh r0, [r4, r1] movs r2, 0x38 ldrsh r1, [r4, r2] bl sine ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] movs r2, 0x3C ldrsh r0, [r4, r2] movs r2, 0x38 ldrsh r1, [r4, r2] bl cosine ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x3A] ldrh r2, [r4, 0x3C] adds r0, r2 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x3C] movs r1, 0x3C ldrsh r0, [r4, r1] movs r1, 0x3 bl __modsi3 lsls r0, 16 cmp r0, 0 bne _080D6584 adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] b _080D6584 _080D657E: adds r0, r4, 0 bl move_anim_8072740 _080D6584: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D6514 thumb_func_start sub_80D658C sub_80D658C: @ 80D658C push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x38] subs r0, 0x1 strh r0, [r3, 0x38] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080D65C4 movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrh r0, [r3, 0x36] strh r0, [r3, 0x38] _080D65C4: ldrh r0, [r3, 0x34] subs r1, r0, 0x1 strh r1, [r3, 0x34] lsls r0, 16 cmp r0, 0 bgt _080D65D6 adds r0, r3, 0 bl move_anim_8072740 _080D65D6: pop {r0} bx r0 thumb_func_end sub_80D658C thumb_func_start sub_80D65DC sub_80D65DC: @ 80D65DC push {r4-r6,lr} adds r6, r0, 0 ldr r0, _080D6644 ldr r1, _080D6648 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D65FE ldr r0, _080D664C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D6606 _080D65FE: ldr r1, _080D6650 ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] _080D6606: ldr r5, _080D664C ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r4, _080D6650 lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] adds r0, r1 strh r0, [r6, 0x22] ldrh r0, [r4] strh r0, [r6, 0x34] ldrh r0, [r4, 0x6] strh r0, [r6, 0x36] strh r0, [r6, 0x38] ldr r0, _080D6654 str r0, [r6, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D6644: .4byte 0x03001770 _080D6648: .4byte 0x0000043d _080D664C: .4byte 0x0202f7c9 _080D6650: .4byte 0x03004b00 _080D6654: .4byte sub_80D658C thumb_func_end sub_80D65DC thumb_func_start sub_80D6658 sub_80D6658: @ 80D6658 push {r4-r6,lr} adds r5, r0, 0 ldr r1, _080D6674 ldrh r0, [r1, 0x6] strh r0, [r5, 0x2E] movs r2, 0xE ldrsh r0, [r1, r2] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _080D667C ldr r0, _080D6678 b _080D667E .align 2, 0 _080D6674: .4byte 0x03004b00 _080D6678: .4byte 0x0202f7c9 _080D667C: ldr r0, _080D670C _080D667E: ldrb r6, [r0] ldr r0, _080D6710 ldr r3, _080D6714 adds r0, r3 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D669C adds r0, r6, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D66A4 _080D669C: ldr r1, _080D6718 ldrh r0, [r1] negs r0, r0 strh r0, [r1] _080D66A4: adds r0, r6, 0 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r4, _080D6718 lsrs r0, 24 ldrh r1, [r4] adds r0, r1 strh r0, [r5, 0x20] adds r0, r6, 0 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r2, [r4, 0x2] adds r0, r2 strh r0, [r5, 0x22] ldrh r1, [r4, 0xE] ldr r0, _080D671C ands r0, r1 strh r0, [r5, 0x36] ldrh r0, [r4, 0x4] strh r0, [r5, 0x38] ldrh r0, [r4, 0xA] strh r0, [r5, 0x3A] ldrh r0, [r4, 0x8] strh r0, [r5, 0x3C] ldrh r2, [r5, 0x4] lsls r1, r2, 22 lsrs r1, 22 movs r3, 0xC ldrsh r0, [r4, r3] lsls r0, 2 adds r1, r0 ldr r3, _080D6720 adds r0, r3, 0 ands r1, r0 ldr r0, _080D6724 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] ldr r1, _080D6728 str r1, [r5, 0x1C] adds r0, r5, 0 bl _call_via_r1 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D670C: .4byte 0x0202f7c8 _080D6710: .4byte 0x03001770 _080D6714: .4byte 0x0000043d _080D6718: .4byte 0x03004b00 _080D671C: .4byte 0x00007fff _080D6720: .4byte 0x000003ff _080D6724: .4byte 0xfffffc00 _080D6728: .4byte sub_80D672C thumb_func_end sub_80D6658 thumb_func_start sub_80D672C sub_80D672C: @ 80D672C push {r4,lr} adds r4, r0, 0 movs r1, 0x3C ldrsh r0, [r4, r1] movs r2, 0x38 ldrsh r1, [r4, r2] bl sine strh r0, [r4, 0x24] movs r1, 0x3C ldrsh r0, [r4, r1] movs r2, 0x38 ldrsh r1, [r4, r2] bl cosine strh r0, [r4, 0x26] ldrh r0, [r4, 0x3A] ldrh r1, [r4, 0x3C] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x3C] movs r2, 0x3C ldrsh r0, [r4, r2] movs r2, 0x36 ldrsh r1, [r4, r2] bl __modsi3 cmp r0, 0 bne _080D6782 adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080D6782: ldrh r0, [r4, 0x2E] subs r1, r0, 0x1 strh r1, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bgt _080D6794 adds r0, r4, 0 bl move_anim_8072740 _080D6794: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D672C thumb_func_start sub_80D679C sub_80D679C: @ 80D679C push {r4,r5,lr} adds r4, r0, 0 movs r1, 0 bl sub_8078764 ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 ldr r3, _080D67D8 movs r5, 0x6 ldrsh r0, [r3, r5] lsls r0, 2 adds r1, r0 ldr r5, _080D67DC adds r0, r5, 0 ands r1, r0 ldr r0, _080D67E0 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] movs r1, 0x6 ldrsh r0, [r3, r1] cmp r0, 0x1 bne _080D67E4 ldrb r0, [r4, 0x3] movs r1, 0x3F negs r1, r1 ands r1, r0 movs r0, 0x10 b _080D67F2 .align 2, 0 _080D67D8: .4byte 0x03004b00 _080D67DC: .4byte 0x000003ff _080D67E0: .4byte 0xfffffc00 _080D67E4: cmp r0, 0x2 bne _080D67F6 ldrb r0, [r4, 0x3] movs r1, 0x3F negs r1, r1 ands r1, r0 movs r0, 0x20 _080D67F2: orrs r1, r0 strb r1, [r4, 0x3] _080D67F6: ldr r0, _080D6810 ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldr r0, _080D6814 str r0, [r4, 0x1C] ldr r1, _080D6818 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D6810: .4byte 0x03004b00 _080D6814: .4byte sub_80782D8 _080D6818: .4byte move_anim_8072740 thumb_func_end sub_80D679C thumb_func_start sub_80D681C sub_80D681C: @ 80D681C push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r6, _080D6864 ldrb r0, [r6] movs r1, 0 bl sub_8077ABC ldr r1, _080D6868 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r1 lsls r0, 24 ldr r5, _080D686C lsrs r0, 24 ldrh r1, [r5] adds r0, r1 strh r0, [r4, 0x8] ldrb r0, [r6] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2] adds r0, r1 strh r0, [r4, 0xA] ldrh r0, [r5, 0x4] strh r0, [r4, 0xC] ldr r0, _080D6870 str r0, [r4] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D6864: .4byte 0x0202f7c9 _080D6868: .4byte 0x03004b20 _080D686C: .4byte 0x03004b00 _080D6870: .4byte sub_80D6874 thumb_func_end sub_80D681C thumb_func_start sub_80D6874 sub_80D6874: @ 80D6874 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r5, 0 movs r7, 0 ldr r1, _080D68B4 lsls r0, 2 add r0, r9 lsls r0, 3 adds r0, r1 ldrb r2, [r0, 0xC] str r2, [sp] ldrh r4, [r0, 0x8] ldrh r6, [r0, 0xA] movs r3, 0xC ldrsh r0, [r0, r3] mov r10, r1 cmp r0, 0 bne _080D68B8 movs r0, 0 mov r8, r0 movs r2, 0x1 movs r1, 0x10 mov r12, r1 b _080D68C2 .align 2, 0 _080D68B4: .4byte 0x03004b20 _080D68B8: movs r2, 0x10 mov r12, r2 movs r3, 0x8 mov r8, r3 movs r2, 0x4 _080D68C2: mov r0, r9 lsls r1, r0, 2 adds r0, r1, r0 lsls r0, 3 add r0, r10 movs r3, 0x1C ldrsh r0, [r0, r3] mov r10, r1 cmp r0, 0xA bhi _080D69B8 lsls r0, 2 ldr r1, _080D68E0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080D68E0: .4byte _080D68E4 .align 2, 0 _080D68E4: .4byte _080D6910 .4byte _080D69B8 .4byte _080D6924 .4byte _080D69B8 .4byte _080D6944 .4byte _080D69B8 .4byte _080D695A .4byte _080D69B8 .4byte _080D697C .4byte _080D69B8 .4byte _080D69B0 _080D6910: ldr r0, _080D6920 lsls r1, r4, 16 asrs r1, 16 lsls r2, r6, 16 asrs r2, 16 mov r4, r12 lsls r3, r4, 16 b _080D6992 .align 2, 0 _080D6920: .4byte gSpriteTemplate_83D9938 _080D6924: mov r0, r12 lsls r3, r0, 17 mov r1, r8 adds r0, r1, r2 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r0, _080D6940 lsls r1, r4, 16 asrs r1, 16 lsls r2, r6, 16 asrs r2, 16 b _080D6992 .align 2, 0 _080D6940: .4byte gSpriteTemplate_83D9938 _080D6944: mov r3, r12 lsls r0, r3, 16 asrs r0, 16 lsls r3, r0, 1 adds r3, r0 lsls r0, r2, 1 add r0, r8 lsls r0, 16 lsrs r0, 16 mov r8, r0 b _080D6986 _080D695A: mov r0, r12 lsls r3, r0, 18 lsls r0, r2, 1 adds r0, r2 add r0, r8 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r0, _080D6978 lsls r1, r4, 16 asrs r1, 16 lsls r2, r6, 16 asrs r2, 16 b _080D6992 .align 2, 0 _080D6978: .4byte gSpriteTemplate_83D9938 _080D697C: mov r1, r12 lsls r0, r1, 16 asrs r0, 16 lsls r3, r0, 2 adds r3, r0 _080D6986: ldr r0, _080D69AC lsls r1, r4, 16 asrs r1, 16 lsls r2, r6, 16 asrs r2, 16 lsls r3, 16 _080D6992: asrs r3, 16 adds r2, r3 lsls r2, 16 asrs r2, 16 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 b _080D69B8 .align 2, 0 _080D69AC: .4byte gSpriteTemplate_83D9938 _080D69B0: mov r0, r9 bl move_anim_task_del b _080D69FC _080D69B8: cmp r7, 0 beq _080D69EC ldr r4, _080D6A0C lsls r3, r5, 4 adds r3, r5 lsls r3, 2 adds r0, r3, r4 ldrh r5, [r0, 0x4] lsls r2, r5, 22 lsrs r2, 22 add r2, r8 ldr r6, _080D6A10 adds r1, r6, 0 ands r2, r1 ldr r1, _080D6A14 ands r1, r5 orrs r1, r2 strh r1, [r0, 0x4] mov r1, sp ldrh r1, [r1] strh r1, [r0, 0x2E] adds r4, 0x1C adds r3, r4 ldr r1, [r3] bl _call_via_r1 _080D69EC: ldr r0, _080D6A18 mov r1, r10 add r1, r9 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x1C] adds r0, 0x1 strh r0, [r1, 0x1C] _080D69FC: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D6A0C: .4byte 0x02020004 _080D6A10: .4byte 0x000003ff _080D6A14: .4byte 0xfffffc00 _080D6A18: .4byte 0x03004b20 thumb_func_end sub_80D6874 thumb_func_start sub_80D6A1C sub_80D6A1C: @ 80D6A1C push {lr} adds r3, r0, 0 movs r1, 0x2E ldrsh r0, [r3, r1] cmp r0, 0 bne _080D6A3E ldrb r1, [r3, 0x1] movs r2, 0x3F adds r0, r2, 0 ands r0, r1 movs r1, 0x80 orrs r0, r1 strb r0, [r3, 0x1] ldrb r0, [r3, 0x3] ands r2, r0 strb r2, [r3, 0x3] b _080D6A52 _080D6A3E: ldrb r2, [r3, 0x1] movs r1, 0x3F adds r0, r1, 0 ands r0, r2 strb r0, [r3, 0x1] ldrb r0, [r3, 0x3] ands r1, r0 movs r0, 0x40 orrs r1, r0 strb r1, [r3, 0x3] _080D6A52: ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0xF bne _080D6A66 adds r0, r3, 0 bl DestroySprite _080D6A66: pop {r0} bx r0 thumb_func_end sub_80D6A1C thumb_func_start sub_80D6A6C sub_80D6A6C: @ 80D6A6C push {r4-r7,lr} adds r4, r0, 0 ldr r0, _080D6AD4 ldrh r1, [r0] ldrh r2, [r4, 0x20] adds r1, r2 strh r1, [r4, 0x20] ldrh r0, [r0, 0x2] ldrh r3, [r4, 0x22] adds r0, r3 strh r0, [r4, 0x22] ldr r0, _080D6AD8 adds r1, 0x20 lsls r1, 16 asrs r1, 16 movs r7, 0x22 ldrsh r2, [r4, r7] adds r3, r4, 0 adds r3, 0x43 ldrb r3, [r3] bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r3, _080D6ADC lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r6, r2, r3 ldrh r5, [r6, 0x4] lsls r1, r5, 22 lsrs r1, 22 adds r1, 0x8 ldr r7, _080D6AE0 adds r0, r7, 0 ands r1, r0 ldr r0, _080D6AE4 ands r0, r5 orrs r0, r1 strh r0, [r6, 0x4] ldr r1, _080D6AE8 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] adds r3, 0x1C adds r2, r3 ldr r0, _080D6AEC str r0, [r2] str r0, [r4, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D6AD4: .4byte 0x03004b00 _080D6AD8: .4byte gBattleAnimSpriteTemplate_83D9950 _080D6ADC: .4byte 0x02020004 _080D6AE0: .4byte 0x000003ff _080D6AE4: .4byte 0xfffffc00 _080D6AE8: .4byte 0x0202f7b2 _080D6AEC: .4byte sub_80D6AF0 thumb_func_end sub_80D6A6C thumb_func_start sub_80D6AF0 sub_80D6AF0: @ 80D6AF0 push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _080D6B24 movs r0, 0 strh r0, [r3, 0x2E] movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] _080D6B24: ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x33 bne _080D6B38 adds r0, r3, 0 bl move_anim_8072740 _080D6B38: pop {r0} bx r0 thumb_func_end sub_80D6AF0 thumb_func_start sub_80D6B3C sub_80D6B3C: @ 80D6B3C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080D6B5C adds r5, r1, r0 ldr r0, _080D6B60 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D6B68 ldr r4, _080D6B64 b _080D6B6A .align 2, 0 _080D6B5C: .4byte 0x03004b20 _080D6B60: .4byte 0x03004b00 _080D6B64: .4byte 0x0202f7c8 _080D6B68: ldr r4, _080D6BAC _080D6B6A: ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x24] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x26] ldr r2, _080D6BB0 ldrh r0, [r2, 0x2] movs r1, 0 strh r0, [r5, 0x14] strh r1, [r5, 0x16] strh r1, [r5, 0x18] strh r1, [r5, 0x1A] strh r1, [r5, 0x1C] ldrh r0, [r2, 0x6] strh r0, [r5, 0x1E] strh r1, [r5, 0x20] ldrh r0, [r2, 0x4] strh r0, [r5, 0x22] ldr r0, _080D6BB4 str r0, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D6BAC: .4byte 0x0202f7c9 _080D6BB0: .4byte 0x03004b00 _080D6BB4: .4byte sub_80D6BB8 thumb_func_end sub_80D6B3C thumb_func_start sub_80D6BB8 sub_80D6BB8: @ 80D6BB8 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 adds r2, r6, 0 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _080D6CA0 adds r5, r0, r1 movs r1, 0x14 ldrsh r0, [r5, r1] cmp r0, 0 beq _080D6CB8 ldrh r0, [r5, 0x20] adds r0, 0x1 movs r7, 0 strh r0, [r5, 0x20] lsls r0, 16 asrs r0, 16 movs r2, 0x22 ldrsh r1, [r5, r2] cmp r0, r1 ble _080D6CC6 strh r7, [r5, 0x20] ldr r0, _080D6CA4 movs r3, 0x24 ldrsh r1, [r5, r3] movs r3, 0x26 ldrsh r2, [r5, r3] movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _080D6CC6 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _080D6CA8 adds r4, r0 ldr r1, _080D6CAC movs r2, 0x1A ldrsh r0, [r5, r2] lsls r0, 1 adds r0, r1 movs r3, 0 ldrsb r3, [r0, r3] ldrh r0, [r4, 0x20] adds r3, r0 strh r3, [r4, 0x20] movs r2, 0x1A ldrsh r0, [r5, r2] lsls r0, 1 adds r1, 0x1 adds r0, r1 movs r2, 0 ldrsb r2, [r0, r2] ldrh r0, [r4, 0x22] adds r2, r0 strh r2, [r4, 0x22] movs r1, 0x18 ldrsh r0, [r5, r1] lsls r1, r0, 2 adds r1, r0 movs r0, 0x28 subs r0, r1 strh r0, [r4, 0x2E] strh r3, [r4, 0x30] ldrh r0, [r5, 0x24] strh r0, [r4, 0x32] strh r2, [r4, 0x34] ldrh r0, [r5, 0x26] strh r0, [r4, 0x36] strh r6, [r4, 0x38] adds r0, r4, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r1, _080D6CB0 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080D6CB4 str r0, [r4, 0x1C] ldrh r0, [r5, 0x1A] adds r0, 0x1 strh r0, [r5, 0x1A] lsls r0, 16 asrs r0, 16 cmp r0, 0xF ble _080D6C70 strh r7, [r5, 0x1A] _080D6C70: ldrh r0, [r5, 0x1C] adds r0, 0x1 strh r0, [r5, 0x1C] lsls r0, 16 asrs r0, 16 movs r2, 0x1E ldrsh r1, [r5, r2] cmp r0, r1 blt _080D6C92 strh r7, [r5, 0x1C] ldrh r1, [r5, 0x18] movs r3, 0x18 ldrsh r0, [r5, r3] cmp r0, 0x5 bgt _080D6C92 adds r0, r1, 0x1 strh r0, [r5, 0x18] _080D6C92: ldrh r0, [r5, 0x16] adds r0, 0x1 strh r0, [r5, 0x16] ldrh r0, [r5, 0x14] subs r0, 0x1 strh r0, [r5, 0x14] b _080D6CC6 .align 2, 0 _080D6CA0: .4byte 0x03004b20 _080D6CA4: .4byte gSpriteTemplate_83D99B8 _080D6CA8: .4byte 0x02020004 _080D6CAC: .4byte gUnknown_083D9968 _080D6CB0: .4byte sub_80D6D00 _080D6CB4: .4byte sub_8078600 _080D6CB8: movs r1, 0x16 ldrsh r0, [r5, r1] cmp r0, 0 bne _080D6CC6 adds r0, r2, 0 bl move_anim_task_del _080D6CC6: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80D6BB8 thumb_func_start sub_80D6CCC sub_80D6CCC: @ 80D6CCC push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080D6CF4 ldr r2, _080D6CFC movs r0, 0x38 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r1, [r0, 0x16] subs r1, 0x1 strh r1, [r0, 0x16] adds r0, r4, 0 bl DestroySprite _080D6CF4: pop {r4} pop {r0} bx r0 .align 2, 0 _080D6CFC: .4byte 0x03004b20 thumb_func_end sub_80D6CCC thumb_func_start sub_80D6D00 sub_80D6D00: @ 80D6D00 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl StartSpriteAnim ldr r0, _080D6D14 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D6D14: .4byte sub_80D6CCC thumb_func_end sub_80D6D00 thumb_func_start sub_80D6D18 sub_80D6D18: @ 80D6D18 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080D6D2C movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D6D34 ldr r4, _080D6D30 b _080D6D36 .align 2, 0 _080D6D2C: .4byte 0x03004b00 _080D6D30: .4byte 0x0202f7c8 _080D6D34: ldr r4, _080D6D64 _080D6D36: ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r1, _080D6D68 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080D6D6C str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D6D64: .4byte 0x0202f7c9 _080D6D68: .4byte move_anim_8074EE0 _080D6D6C: .4byte sub_80785E4 thumb_func_end sub_80D6D18 thumb_func_start sub_80D6D70 sub_80D6D70: @ 80D6D70 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080D6D84 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D6D8C ldr r4, _080D6D88 b _080D6D8E .align 2, 0 _080D6D84: .4byte 0x03004b00 _080D6D88: .4byte 0x0202f7c8 _080D6D8C: ldr r4, _080D6DC8 _080D6D8E: ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r1, _080D6DCC ldrh r0, [r1, 0x2] strh r0, [r5, 0x24] ldrh r0, [r1, 0x4] strh r0, [r5, 0x26] ldr r1, _080D6DD0 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080D6DD4 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D6DC8: .4byte 0x0202f7c9 _080D6DCC: .4byte 0x03004b00 _080D6DD0: .4byte move_anim_8072740 _080D6DD4: .4byte sub_8078600 thumb_func_end sub_80D6D70 thumb_func_start sub_80D6DD8 sub_80D6DD8: @ 80D6DD8 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x1 bl StartSpriteAffineAnim ldr r4, _080D6E30 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3A] movs r0, 0x10 strh r0, [r5, 0x3C] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080D6E26 movs r1, 0x3C ldrsh r0, [r5, r1] negs r0, r0 strh r0, [r5, 0x3C] _080D6E26: ldr r0, _080D6E34 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D6E30: .4byte 0x0202f7c8 _080D6E34: .4byte sub_80D6E38 thumb_func_end sub_80D6DD8 thumb_func_start sub_80D6E38 sub_80D6E38: @ 80D6E38 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _080D6E4A cmp r0, 0x1 beq _080D6E60 b _080D6E90 _080D6E4A: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x28 ble _080D6E90 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080D6E90 _080D6E60: ldrh r2, [r4, 0x3C] ldrh r1, [r4, 0x20] adds r0, r2, r1 strh r0, [r4, 0x20] ldr r3, _080D6E98 movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x24] adds r2, r1 strh r2, [r0, 0x24] ldrh r0, [r4, 0x20] adds r0, 0x50 lsls r0, 16 movs r1, 0xC8 lsls r1, 17 cmp r0, r1 bls _080D6E90 adds r0, r4, 0 bl move_anim_8074EE0 _080D6E90: pop {r4} pop {r0} bx r0 .align 2, 0 _080D6E98: .4byte 0x02020004 thumb_func_end sub_80D6E38 thumb_func_start sub_80D6E9C sub_80D6E9C: @ 80D6E9C push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 ldr r1, _080D6EC0 adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080D6F30 cmp r0, 0x1 bgt _080D6EC4 cmp r0, 0 beq _080D6ED0 b _080D7000 .align 2, 0 _080D6EC0: .4byte 0x03004b20 _080D6EC4: cmp r0, 0x2 beq _080D6F8C cmp r0, 0x3 bne _080D6ECE b _080D6FE0 _080D6ECE: b _080D7000 _080D6ED0: movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 movs r6, 0 strh r0, [r5, 0x26] ldr r4, _080D6F04 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x24] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D6F0C ldr r0, _080D6F08 strh r0, [r5, 0x24] movs r0, 0x2 b _080D6F12 .align 2, 0 _080D6F04: .4byte 0x0202f7c8 _080D6F08: .4byte 0x0000ffe0 _080D6F0C: movs r0, 0x20 strh r0, [r5, 0x24] ldr r0, _080D6F28 _080D6F12: strh r0, [r5, 0x22] ldr r2, _080D6F2C movs r0, 0x26 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r5, 0x24] strh r1, [r0, 0x24] b _080D6FD2 .align 2, 0 _080D6F28: .4byte 0x0000fffe _080D6F2C: .4byte 0x02020004 _080D6F30: ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D7000 movs r0, 0 strh r0, [r5, 0xA] ldr r4, _080D6F88 movs r1, 0x26 ldrsh r0, [r5, r1] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r4 adds r2, 0x3E ldrb r3, [r2] lsls r0, r3, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] ldrh r1, [r5, 0x24] movs r2, 0x24 ldrsh r0, [r5, r2] cmp r0, 0 beq _080D6FD2 ldrh r2, [r5, 0x22] adds r2, r1, r2 strh r2, [r5, 0x24] movs r0, 0x26 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r2, [r0, 0x24] b _080D7000 .align 2, 0 _080D6F88: .4byte 0x02020004 _080D6F8C: ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D7000 movs r0, 0 strh r0, [r5, 0xA] ldr r1, _080D6FDC movs r2, 0x26 ldrsh r0, [r5, r2] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 adds r2, 0x3E ldrb r3, [r2] lsls r0, r3, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] ldrh r0, [r5, 0xC] adds r0, 0x1 strh r0, [r5, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 bne _080D7000 _080D6FD2: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _080D7000 .align 2, 0 _080D6FDC: .4byte 0x02020004 _080D6FE0: ldr r2, _080D7008 movs r0, 0x26 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] adds r0, r3, 0 bl move_anim_task_del _080D7000: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D7008: .4byte 0x02020004 thumb_func_end sub_80D6E9C thumb_func_start sub_80D700C sub_80D700C: @ 80D700C push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080D7030 adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x1 bne _080D7026 b _080D714C _080D7026: cmp r0, 0x1 bgt _080D7034 cmp r0, 0 beq _080D703C b _080D718E .align 2, 0 _080D7030: .4byte 0x03004b20 _080D7034: cmp r0, 0x2 bne _080D703A b _080D7180 _080D703A: b _080D718E _080D703C: ldr r4, _080D707C ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 movs r2, 0x1 negs r2, r2 adds r1, r2, 0 cmp r0, 0 bne _080D7052 movs r1, 0x1 _080D7052: movs r6, 0 strh r1, [r5, 0xA] ldr r0, _080D7080 movs r1, 0 ldrsh r2, [r0, r1] adds r3, r0, 0 cmp r2, 0 beq _080D7088 cmp r2, 0x4 beq _080D70B0 ldrh r1, [r3] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D70E8 movs r0, 0x80 lsls r0, 1 strh r0, [r5, 0xE] ldr r0, _080D7084 b _080D70F0 .align 2, 0 _080D707C: .4byte 0x0202f7c8 _080D7080: .4byte 0x03004b00 _080D7084: .4byte 0x0000fff0 _080D7088: ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xE] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] movs r2, 0xA ldrsh r0, [r5, r2] lsls r0, 7 adds r0, 0x78 strh r0, [r5, 0x10] b _080D7126 _080D70B0: movs r0, 0xA ldrsh r1, [r5, r0] lsls r1, 7 movs r0, 0x78 subs r0, r1 strh r0, [r5, 0xE] ldr r4, _080D70E4 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 movs r2, 0xA ldrsh r1, [r5, r2] lsls r1, 5 subs r0, r1 strh r0, [r5, 0x10] b _080D7126 .align 2, 0 _080D70E4: .4byte 0x0202f7c9 _080D70E8: ldr r0, _080D710C strh r0, [r5, 0xE] movs r0, 0x80 lsls r0, 1 _080D70F0: strh r0, [r5, 0x10] movs r1, 0xA ldrsh r0, [r5, r1] cmp r0, 0x1 bne _080D7110 movs r2, 0 ldrsh r0, [r3, r2] lsls r1, r0, 2 adds r1, r0 lsls r1, 1 movs r0, 0x50 subs r0, r1 strh r0, [r5, 0x12] b _080D7126 .align 2, 0 _080D710C: .4byte 0x0000fff0 _080D7110: movs r0, 0 ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 1 adds r0, 0x28 strh r0, [r5, 0x12] ldrh r1, [r5, 0xE] ldrh r0, [r5, 0x10] strh r0, [r5, 0xE] strh r1, [r5, 0x10] _080D7126: movs r2, 0xE ldrsh r1, [r5, r2] movs r2, 0x10 ldrsh r0, [r5, r2] cmp r1, r0 bge _080D713C movs r1, 0 movs r0, 0x1 strh r0, [r5, 0xA] strh r1, [r5, 0x14] b _080D7178 _080D713C: ldr r0, _080D7148 strh r0, [r5, 0xA] movs r0, 0x3 strh r0, [r5, 0x14] b _080D7178 .align 2, 0 _080D7148: .4byte 0x0000ffff _080D714C: ldrh r0, [r5, 0xC] adds r0, 0x1 strh r0, [r5, 0xC] lsls r0, 16 cmp r0, 0 ble _080D718E movs r0, 0 strh r0, [r5, 0xC] adds r0, r5, 0 adds r1, r4, 0 bl sub_80D7194 lsls r0, 24 cmp r0, 0 bne _080D7178 adds r0, r5, 0 adds r1, r4, 0 bl sub_80D7194 lsls r0, 24 cmp r0, 0 beq _080D718E _080D7178: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _080D718E _080D7180: movs r1, 0x16 ldrsh r0, [r5, r1] cmp r0, 0 bne _080D718E adds r0, r4, 0 bl move_anim_task_del _080D718E: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80D700C thumb_func_start sub_80D7194 sub_80D7194: @ 80D7194 push {r4,r5,lr} adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 ldr r0, _080D7220 movs r2, 0xE ldrsh r1, [r4, r2] movs r3, 0x12 ldrsh r2, [r4, r3] movs r3, 0x23 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080D71CA ldr r1, _080D7224 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 strh r5, [r0, 0x3A] movs r1, 0x7 strh r1, [r0, 0x3C] ldrh r0, [r4, 0x16] adds r0, 0x1 strh r0, [r4, 0x16] _080D71CA: ldrh r1, [r4, 0xA] ldrh r5, [r4, 0x14] adds r0, r1, r5 strh r0, [r4, 0x14] lsls r0, 16 cmp r0, 0 bge _080D71DC movs r0, 0x3 strh r0, [r4, 0x14] _080D71DC: movs r2, 0x14 ldrsh r0, [r4, r2] cmp r0, 0x3 ble _080D71E8 movs r0, 0 strh r0, [r4, 0x14] _080D71E8: movs r3, 0xA ldrsh r0, [r4, r3] lsls r0, 4 ldrh r5, [r4, 0xE] adds r2, r0, r5 strh r2, [r4, 0xE] lsls r0, r1, 16 asrs r3, r0, 16 cmp r3, 0x1 bne _080D7208 lsls r0, r2, 16 asrs r0, 16 movs r5, 0x10 ldrsh r1, [r4, r5] cmp r0, r1 bge _080D721C _080D7208: movs r0, 0x1 negs r0, r0 cmp r3, r0 bne _080D7228 lsls r0, r2, 16 asrs r0, 16 movs r2, 0x10 ldrsh r1, [r4, r2] cmp r0, r1 bgt _080D7228 _080D721C: movs r0, 0x1 b _080D722A .align 2, 0 _080D7220: .4byte gSpriteTemplate_83D9B10 _080D7224: .4byte 0x02020004 _080D7228: movs r0, 0 _080D722A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80D7194 thumb_func_start sub_80D7230 sub_80D7230: @ 80D7230 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xC ble _080D7270 ldr r3, _080D7278 movs r0, 0x3C ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl DestroySprite _080D7270: pop {r4} pop {r0} bx r0 .align 2, 0 _080D7278: .4byte 0x03004b20 thumb_func_end sub_80D7230 thumb_func_start sub_80D727C sub_80D727C: @ 80D727C push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 beq _080D728E cmp r0, 0x1 beq _080D72C0 b _080D72D4 _080D728E: ldr r4, _080D72BC ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] adds r0, r5, 0 movs r1, 0x2 bl StartSpriteAffineAnim ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _080D72D4 .align 2, 0 _080D72BC: .4byte 0x0202f7c8 _080D72C0: adds r0, r5, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080D72D4 adds r0, r5, 0 bl move_anim_8074EE0 _080D72D4: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80D727C thumb_func_start sub_80D72DC sub_80D72DC: @ 80D72DC push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080D7300 adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x4 bls _080D72F6 b _080D7468 _080D72F6: lsls r0, 2 ldr r1, _080D7304 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080D7300: .4byte 0x03004b20 _080D7304: .4byte _080D7308 .align 2, 0 _080D7308: .4byte _080D731C .4byte _080D73AC .4byte _080D73E8 .4byte _080D7444 .4byte _080D7454 _080D731C: ldr r4, _080D73A0 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x14] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x16] movs r0, 0x4 strh r0, [r5, 0x18] ldr r0, _080D73A4 ldrb r0, [r0] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x1C] movs r2, 0x1C ldrsh r0, [r5, r2] movs r2, 0x14 ldrsh r1, [r5, r2] subs r0, r1 movs r1, 0x5 bl __divsi3 strh r0, [r5, 0x1A] movs r0, 0x7 strh r0, [r5, 0x10] ldr r0, _080D73A8 strh r0, [r5, 0x12] movs r0, 0xC strh r0, [r5, 0x1E] subs r0, 0x4C bl sub_8076F98 lsls r0, 24 asrs r0, 24 strh r0, [r5, 0x20] movs r0, 0x3F bl sub_8076F98 lsls r0, 24 asrs r0, 24 strh r0, [r5, 0x22] ldrh r0, [r5, 0x20] strh r0, [r5, 0x24] movs r1, 0x22 ldrsh r0, [r5, r1] movs r2, 0x20 ldrsh r1, [r5, r2] subs r0, r1 movs r1, 0x3 bl __divsi3 strh r0, [r5, 0x26] ldrh r0, [r5, 0x8] adds r0, 0x1 b _080D7466 .align 2, 0 _080D73A0: .4byte 0x0202f7c8 _080D73A4: .4byte 0x0202f7c9 _080D73A8: .4byte 0x0000ffff _080D73AC: ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 cmp r0, 0 ble _080D73DC movs r0, 0 strh r0, [r5, 0xA] adds r0, r5, 0 adds r1, r2, 0 bl sub_80D7470 lsls r0, 24 cmp r0, 0 beq _080D73DC movs r1, 0xC ldrsh r0, [r5, r1] cmp r0, 0x5 bne _080D73D6 movs r0, 0x3 b _080D73DA _080D73D6: ldrh r0, [r5, 0x8] adds r0, 0x1 _080D73DA: strh r0, [r5, 0x8] _080D73DC: ldrh r1, [r5, 0x1E] movs r2, 0x1E ldrsh r0, [r5, r2] cmp r0, 0 beq _080D7468 b _080D745E _080D73E8: ldrh r1, [r5, 0x1E] movs r2, 0x1E ldrsh r0, [r5, r2] cmp r0, 0 beq _080D73F6 subs r0, r1, 0x1 strh r0, [r5, 0x1E] _080D73F6: ldrh r0, [r5, 0xA] adds r0, 0x1 movs r3, 0 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _080D7468 strh r3, [r5, 0xA] ldrh r1, [r5, 0xC] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _080D7422 movs r0, 0x4 strh r0, [r5, 0x16] movs r0, 0x44 strh r0, [r5, 0x18] strh r3, [r5, 0x10] strh r2, [r5, 0x12] b _080D7432 _080D7422: movs r0, 0x44 strh r0, [r5, 0x16] movs r0, 0x4 strh r0, [r5, 0x18] movs r0, 0x7 strh r0, [r5, 0x10] ldr r0, _080D7440 strh r0, [r5, 0x12] _080D7432: movs r1, 0x1E ldrsh r0, [r5, r1] cmp r0, 0 beq _080D7464 movs r0, 0x4 b _080D7466 .align 2, 0 _080D7440: .4byte 0x0000ffff _080D7444: movs r1, 0xE ldrsh r0, [r5, r1] cmp r0, 0 bne _080D7468 adds r0, r2, 0 bl move_anim_task_del b _080D7468 _080D7454: ldrh r1, [r5, 0x1E] movs r2, 0x1E ldrsh r0, [r5, r2] cmp r0, 0 beq _080D7464 _080D745E: subs r0, r1, 0x1 strh r0, [r5, 0x1E] b _080D7468 _080D7464: movs r0, 0x1 _080D7466: strh r0, [r5, 0x8] _080D7468: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80D72DC thumb_func_start sub_80D7470 sub_80D7470: @ 80D7470 push {r4-r6,lr} adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 ldr r0, _080D7538 movs r2, 0x14 ldrsh r1, [r4, r2] movs r3, 0x16 ldrsh r2, [r4, r3] movs r3, 0x23 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080D74DC ldr r1, _080D753C lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r3, r0, r1 ldrh r2, [r3, 0x4] lsls r1, r2, 22 lsrs r1, 22 ldrh r6, [r4, 0x10] adds r1, r6 ldr r6, _080D7540 adds r0, r6, 0 ands r1, r0 ldr r0, _080D7544 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] ldrh r0, [r4, 0x12] ldrh r1, [r4, 0x10] adds r0, r1 strh r0, [r4, 0x10] lsls r0, 16 cmp r0, 0 bge _080D74C4 movs r0, 0x7 strh r0, [r4, 0x10] _080D74C4: movs r2, 0x10 ldrsh r0, [r4, r2] cmp r0, 0x7 ble _080D74D0 movs r0, 0 strh r0, [r4, 0x10] _080D74D0: strh r5, [r3, 0x3A] movs r0, 0x3 strh r0, [r3, 0x3C] ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] _080D74DC: movs r3, 0x10 ldrsh r0, [r4, r3] cmp r0, 0 bne _080D74FE movs r5, 0x12 ldrsh r0, [r4, r5] cmp r0, 0 ble _080D74FE ldrh r1, [r4, 0x26] ldrh r6, [r4, 0x24] adds r1, r6 strh r1, [r4, 0x24] lsls r1, 24 asrs r1, 24 movs r0, 0x76 bl audio_play_and_stuff _080D74FE: movs r0, 0x12 ldrsh r3, [r4, r0] ldrh r2, [r4, 0x16] cmp r3, 0 bge _080D7514 lsls r0, r2, 16 asrs r0, 16 movs r5, 0x18 ldrsh r1, [r4, r5] cmp r0, r1 ble _080D7524 _080D7514: cmp r3, 0 ble _080D7548 lsls r0, r2, 16 asrs r0, 16 movs r6, 0x18 ldrsh r1, [r4, r6] cmp r0, r1 blt _080D7548 _080D7524: ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x1A] ldrh r1, [r4, 0x14] adds r0, r1 strh r0, [r4, 0x14] movs r0, 0x1 b _080D7554 .align 2, 0 _080D7538: .4byte gSpriteTemplate_83D9B40 _080D753C: .4byte 0x02020004 _080D7540: .4byte 0x000003ff _080D7544: .4byte 0xfffffc00 _080D7548: movs r3, 0x12 ldrsh r0, [r4, r3] lsls r0, 3 adds r0, r2, r0 strh r0, [r4, 0x16] movs r0, 0 _080D7554: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80D7470 thumb_func_start sub_80D755C sub_80D755C: @ 80D755C push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xC ble _080D7592 ldr r3, _080D7598 movs r0, 0x3C ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl DestroySprite _080D7592: pop {r4} pop {r0} bx r0 .align 2, 0 _080D7598: .4byte 0x03004b20 thumb_func_end sub_80D755C thumb_func_start sub_80D759C sub_80D759C: @ 80D759C push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080D75C0 adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080D7618 cmp r0, 0x1 bgt _080D75C4 cmp r0, 0 beq _080D75CA b _080D764E .align 2, 0 _080D75C0: .4byte 0x03004b20 _080D75C4: cmp r0, 0x2 beq _080D7640 b _080D764E _080D75CA: ldr r0, _080D7614 ldrb r0, [r0] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x20 strh r0, [r5, 0x26] strh r0, [r5, 0x24] cmp r0, 0x10 ble _080D75F4 adds r2, r0, 0 _080D75E4: adds r1, r2, 0 subs r1, 0x20 adds r2, r1, 0 lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x10 bgt _080D75E4 strh r1, [r5, 0x24] _080D75F4: ldr r4, _080D7614 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] bl sub_8079E90 lsls r0, 24 lsrs r0, 24 subs r0, 0x2 strh r0, [r5, 0x20] b _080D7638 .align 2, 0 _080D7614: .4byte 0x0202f7c9 _080D7618: ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D764E movs r0, 0 strh r0, [r5, 0xA] adds r0, r5, 0 adds r1, r2, 0 bl sub_80D7654 lsls r0, 24 cmp r0, 0 beq _080D764E _080D7638: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _080D764E _080D7640: movs r1, 0x1C ldrsh r0, [r5, r1] cmp r0, 0 bne _080D764E adds r0, r2, 0 bl move_anim_task_del _080D764E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80D759C thumb_func_start sub_80D7654 sub_80D7654: @ 80D7654 push {r4,r5,lr} adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 ldr r0, _080D76B0 movs r2, 0x22 ldrsh r1, [r4, r2] movs r3, 0x24 ldrsh r2, [r4, r3] ldrh r3, [r4, 0x20] lsls r3, 24 lsrs r3, 24 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080D7698 ldr r3, _080D76B4 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r1, r0, r1 ldr r2, _080D76B8 str r2, [r1] adds r0, r3 strh r5, [r0, 0x3A] movs r1, 0xA strh r1, [r0, 0x3C] ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] _080D7698: ldrh r2, [r4, 0x24] movs r0, 0x24 ldrsh r1, [r4, r0] movs r3, 0x26 ldrsh r0, [r4, r3] cmp r1, r0 bge _080D76BC adds r0, r2, 0 adds r0, 0x20 strh r0, [r4, 0x24] movs r0, 0 b _080D76BE .align 2, 0 _080D76B0: .4byte gBattleAnimSpriteTemplate_83D97D0 _080D76B4: .4byte 0x02020004 _080D76B8: .4byte sub_80D76C4 _080D76BC: movs r0, 0x1 _080D76BE: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80D7654 thumb_func_start sub_80D76C4 sub_80D76C4: @ 80D76C4 push {r4,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D76F8 ldr r3, _080D7700 movs r0, 0x3C ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl DestroySprite _080D76F8: pop {r4} pop {r0} bx r0 .align 2, 0 _080D7700: .4byte 0x03004b20 thumb_func_end sub_80D76C4 thumb_func_start sub_80D7704 sub_80D7704: @ 80D7704 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r5, r0, 0 ldrh r2, [r5, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x7 ldr r3, _080D780C adds r0, r3, 0 ands r1, r0 ldr r0, _080D7810 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] ldr r4, _080D7814 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 mov r9, r0 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r4, _080D7818 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r3, r0, 24 ldrb r0, [r4] movs r1, 0x3 str r3, [sp] bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080D781C ldrh r0, [r1, 0x8] strh r0, [r5, 0x2E] ldrh r0, [r1] ldr r3, [sp] adds r0, r3 strh r0, [r5, 0x30] ldrh r0, [r1, 0x4] mov r4, r9 adds r0, r4, r0 strh r0, [r5, 0x32] ldrh r0, [r1, 0x2] adds r0, r6 strh r0, [r5, 0x34] ldrh r0, [r1, 0x6] mov r7, r8 adds r0, r7, r0 strh r0, [r5, 0x36] adds r0, r5, 0 bl sub_8078314 adds r4, 0x20 movs r0, 0x98 lsls r0, 1 mov r12, r0 ldr r3, [sp] cmp r4, r12 bhi _080D77DE adds r0, r7, 0 adds r0, 0x20 ldrh r1, [r5, 0x30] ldrh r2, [r5, 0x32] cmp r0, 0xE0 bhi _080D77DE adds r4, r1, 0 mov r10, r12 _080D77AA: mov r7, r9 lsls r1, r7, 16 asrs r1, 16 adds r1, r4 lsls r1, 16 mov r7, r8 lsls r0, r7, 16 asrs r0, 16 adds r0, r2 lsls r0, 16 lsrs r0, 16 mov r8, r0 lsrs r0, r1, 16 mov r9, r0 movs r7, 0x80 lsls r7, 14 adds r1, r7 lsrs r1, 16 cmp r1, r10 bhi _080D77DE mov r1, r8 lsls r0, r1, 16 adds r0, r7 lsrs r0, 16 cmp r0, 0xE0 bls _080D77AA _080D77DE: ldrh r0, [r5, 0x30] negs r7, r0 strh r7, [r5, 0x30] ldrh r0, [r5, 0x32] negs r4, r0 strh r4, [r5, 0x32] lsls r0, r3, 16 movs r1, 0x80 lsls r1, 14 adds r0, r1 lsrs r0, 16 movs r2, 0x98 lsls r2, 1 mov r12, r2 ldr r1, _080D781C mov r10, r1 cmp r0, r12 bhi _080D784A lsls r1, r6, 16 movs r2, 0x80 lsls r2, 14 adds r0, r1, r2 b _080D7842 .align 2, 0 _080D780C: .4byte 0x000003ff _080D7810: .4byte 0xfffffc00 _080D7814: .4byte 0x0202f7c9 _080D7818: .4byte 0x0202f7c8 _080D781C: .4byte 0x03004b00 _080D7820: lsls r1, r3, 16 asrs r1, 16 adds r1, r7 lsls r1, 16 asrs r0, r2, 16 adds r0, r4 lsls r0, 16 lsrs r6, r0, 16 lsrs r3, r1, 16 movs r0, 0x80 lsls r0, 14 adds r1, r0 lsrs r1, 16 cmp r1, r12 bhi _080D784A lsls r1, r6, 16 adds r0, r1, r0 _080D7842: lsrs r0, 16 adds r2, r1, 0 cmp r0, 0xE0 bls _080D7820 _080D784A: strh r3, [r5, 0x20] strh r6, [r5, 0x22] mov r1, r10 ldrh r0, [r1, 0x8] strh r0, [r5, 0x2E] strh r3, [r5, 0x30] mov r2, r9 strh r2, [r5, 0x32] strh r6, [r5, 0x34] mov r3, r8 strh r3, [r5, 0x36] adds r0, r5, 0 bl sub_8078314 mov r7, r10 ldrh r0, [r7, 0xA] strh r0, [r5, 0x34] ldrh r0, [r7, 0xC] strh r0, [r5, 0x36] ldr r0, _080D7884 str r0, [r5, 0x1C] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D7884: .4byte sub_80D7888 thumb_func_end sub_80D7704 thumb_func_start sub_80D7888 sub_80D7888: @ 80D7888 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _080D78E0 ldrh r1, [r4, 0x30] ldrh r2, [r4, 0x38] adds r1, r2 strh r1, [r4, 0x38] ldrh r0, [r4, 0x32] ldrh r2, [r4, 0x3A] adds r0, r2 strh r0, [r4, 0x3A] strh r1, [r4, 0x24] strh r0, [r4, 0x26] movs r1, 0x3C ldrsh r0, [r4, r1] movs r2, 0x34 ldrsh r1, [r4, r2] bl sine ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] movs r2, 0x3C ldrsh r0, [r4, r2] movs r2, 0x34 ldrsh r1, [r4, r2] bl sine ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x36] ldrh r2, [r4, 0x3C] adds r0, r2 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x3C] ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] b _080D78E6 _080D78E0: adds r0, r4, 0 bl move_anim_8072740 _080D78E6: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D7888 thumb_func_start sub_80D78EC sub_80D78EC: @ 80D78EC push {r4,lr} adds r4, r0, 0 ldr r0, _080D7920 ldrh r0, [r0] strh r0, [r4, 0x2E] movs r0, 0x3C strh r0, [r4, 0x30] movs r0, 0x9 strh r0, [r4, 0x32] movs r0, 0x1E strh r0, [r4, 0x34] movs r0, 0xFE lsls r0, 8 strh r0, [r4, 0x36] ldr r1, _080D7924 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r1, _080D7928 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080D7920: .4byte 0x03004b00 _080D7924: .4byte move_anim_8072740 _080D7928: .4byte sub_8078174 thumb_func_end sub_80D78EC thumb_func_start sub_80D792C sub_80D792C: @ 80D792C push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080D7960 ldrb r0, [r0] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldr r0, _080D7964 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D796C ldr r0, _080D7968 ldrh r1, [r4, 0x32] ldrh r0, [r0, 0x4] subs r1, r0 strh r1, [r4, 0x32] b _080D7976 .align 2, 0 _080D7960: .4byte 0x0202f7c9 _080D7964: .4byte 0x0202f7c8 _080D7968: .4byte 0x03004b00 _080D796C: ldr r0, _080D79A4 ldrh r0, [r0, 0x4] ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] _080D7976: ldr r0, _080D79A8 ldrb r0, [r0] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 ldr r1, _080D79A4 lsrs r0, 24 ldrh r2, [r1, 0x6] adds r0, r2 strh r0, [r4, 0x36] ldrh r0, [r1, 0x8] strh r0, [r4, 0x2E] ldr r1, _080D79AC adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080D79B0 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D79A4: .4byte 0x03004b00 _080D79A8: .4byte 0x0202f7c9 _080D79AC: .4byte move_anim_8072740 _080D79B0: .4byte sub_8078B34 thumb_func_end sub_80D792C thumb_func_start sub_80D79B4 sub_80D79B4: @ 80D79B4 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080D79CC movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0 bne _080D79D0 adds r0, r4, 0 movs r1, 0x1 bl sub_8078764 b _080D7A06 .align 2, 0 _080D79CC: .4byte 0x03004b00 _080D79D0: ldr r0, _080D7A18 ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 movs r1, 0x1 bl sub_807A3FC ldr r0, _080D7A1C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D79F6 ldrh r0, [r5] negs r0, r0 strh r0, [r5] _080D79F6: ldrh r0, [r5] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] _080D7A06: ldr r1, _080D7A20 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080D7A24 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D7A18: .4byte 0x0202f7c9 _080D7A1C: .4byte 0x0202f7c8 _080D7A20: .4byte sub_80D7A28 _080D7A24: .4byte sub_80785E4 thumb_func_end sub_80D79B4 thumb_func_start sub_80D7A28 sub_80D7A28: @ 80D7A28 push {lr} adds r3, r0, 0 movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 bne _080D7A5E adds r0, r3, 0 bl move_anim_8074EE0 _080D7A5E: pop {r0} bx r0 thumb_func_end sub_80D7A28 thumb_func_start sub_80D7A64 sub_80D7A64: @ 80D7A64 push {r4-r7,lr} sub sp, 0x10 adds r5, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r6, _080D7AAC ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] movs r1, 0xA ldrsh r0, [r6, r1] cmp r0, 0 bne _080D7AB4 ldr r4, _080D7AB0 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] adds r0, r6 strh r0, [r5, 0x36] b _080D7AC6 .align 2, 0 _080D7AAC: .4byte 0x03004b00 _080D7AB0: .4byte 0x0202f7c9 _080D7AB4: ldr r0, _080D7AE0 ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 adds r3, r5, 0 adds r3, 0x36 movs r1, 0x1 bl sub_807A3FC _080D7AC6: ldr r0, _080D7AE4 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D7AEC ldr r0, _080D7AE8 ldrh r1, [r5, 0x32] ldrh r0, [r0, 0x4] subs r1, r0 strh r1, [r5, 0x32] b _080D7AF6 .align 2, 0 _080D7AE0: .4byte 0x0202f7c9 _080D7AE4: .4byte 0x0202f7c8 _080D7AE8: .4byte 0x03004b00 _080D7AEC: ldr r0, _080D7B94 ldrh r0, [r0, 0x4] ldrh r2, [r5, 0x32] adds r0, r2 strh r0, [r5, 0x32] _080D7AF6: adds r7, r5, 0 adds r7, 0x2E adds r2, r7, 0 mov r1, sp movs r4, 0x7 _080D7B00: ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 subs r4, 0x1 cmp r4, 0 bge _080D7B00 adds r0, r5, 0 bl sub_8078D60 ldrh r0, [r5, 0x30] movs r1, 0x1 eors r0, r1 strh r0, [r5, 0x30] ldrh r0, [r5, 0x32] eors r0, r1 strh r0, [r5, 0x32] _080D7B22: movs r0, 0x1 strh r0, [r5, 0x2E] adds r0, r5, 0 bl sub_8078CE8 movs r0, 0x20 ldrsh r1, [r5, r0] movs r2, 0x24 ldrsh r0, [r5, r2] adds r1, r0 adds r1, 0x10 movs r0, 0x88 lsls r0, 1 cmp r1, r0 bhi _080D7B56 movs r0, 0x22 ldrsh r1, [r5, r0] movs r2, 0x26 ldrsh r0, [r5, r2] adds r1, r0 cmp r1, 0xA0 bgt _080D7B56 movs r0, 0x10 negs r0, r0 cmp r1, r0 bge _080D7B22 _080D7B56: ldrh r0, [r5, 0x24] ldrh r1, [r5, 0x20] adds r0, r1 movs r1, 0 strh r0, [r5, 0x20] ldrh r0, [r5, 0x26] ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] strh r1, [r5, 0x26] strh r1, [r5, 0x24] ldr r6, _080D7B98 ldr r1, _080D7B9C mov r3, sp adds r2, r7, 0 movs r4, 0x7 _080D7B76: ldrh r0, [r3] strh r0, [r2] adds r3, 0x2 adds r2, 0x2 subs r4, 0x1 cmp r4, 0 bge _080D7B76 str r6, [r5, 0x1C] adds r0, r5, 0 bl oamt_set_x3A_32 add sp, 0x10 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D7B94: .4byte 0x03004b00 _080D7B98: .4byte sub_8078D8C _080D7B9C: .4byte sub_80D7BA0 thumb_func_end sub_80D7A64 thumb_func_start sub_80D7BA0 sub_80D7BA0: @ 80D7BA0 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 movs r5, 0 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] strh r5, [r4, 0x26] strh r5, [r4, 0x24] movs r0, 0x80 strh r0, [r4, 0x2E] ldr r0, _080D7BFC ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 ldr r1, _080D7C00 cmp r0, 0 beq _080D7BD0 movs r1, 0x14 _080D7BD0: movs r2, 0x2E ldrsh r0, [r4, r2] lsls r1, 16 asrs r1, 16 bl sine strh r0, [r4, 0x34] movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0xF bl cosine strh r0, [r4, 0x36] strh r5, [r4, 0x38] ldr r1, _080D7C04 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D7BFC: .4byte 0x0202f7c8 _080D7C00: .4byte 0x0000ffec _080D7C04: .4byte sub_80D7C08 thumb_func_end sub_80D7BA0 thumb_func_start sub_80D7C08 sub_80D7C08: @ 80D7C08 push {r4,lr} adds r4, r0, 0 ldr r0, _080D7C5C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 ldr r1, _080D7C60 cmp r0, 0 beq _080D7C1E movs r1, 0x14 _080D7C1E: movs r2, 0x38 ldrsh r0, [r4, r2] cmp r0, 0x1F bgt _080D7C64 movs r2, 0x2E ldrsh r0, [r4, r2] lsls r1, 16 asrs r1, 16 bl sine ldrh r1, [r4, 0x34] subs r0, r1 strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0xF bl cosine ldrh r1, [r4, 0x36] subs r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x2E] adds r0, 0x10 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] b _080D7C82 .align 2, 0 _080D7C5C: .4byte 0x0202f7c8 _080D7C60: .4byte 0x0000ffec _080D7C64: ldrh r0, [r4, 0x24] ldrh r2, [r4, 0x20] adds r0, r2 movs r1, 0 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] strh r1, [r4, 0x26] strh r1, [r4, 0x24] strh r1, [r4, 0x36] strh r1, [r4, 0x34] ldr r0, _080D7C88 str r0, [r4, 0x1C] _080D7C82: pop {r4} pop {r0} bx r0 .align 2, 0 _080D7C88: .4byte sub_80D7C8C thumb_func_end sub_80D7C08 thumb_func_start sub_80D7C8C sub_80D7C8C: @ 80D7C8C push {r4,lr} adds r4, r0, 0 movs r0, 0x1 strh r0, [r4, 0x2E] adds r0, r4, 0 bl sub_8078CE8 movs r1, 0x20 ldrsh r0, [r4, r1] movs r2, 0x24 ldrsh r1, [r4, r2] adds r0, r1 adds r0, 0x10 movs r1, 0x88 lsls r1, 1 cmp r0, r1 bhi _080D7CC8 movs r1, 0x22 ldrsh r0, [r4, r1] movs r2, 0x26 ldrsh r1, [r4, r2] adds r1, r0, r1 movs r0, 0x80 lsls r0, 1 cmp r1, r0 bgt _080D7CC8 movs r0, 0x10 negs r0, r0 cmp r1, r0 bge _080D7CCE _080D7CC8: adds r0, r4, 0 bl move_anim_8072740 _080D7CCE: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D7C8C thumb_func_start sub_80D7CD4 sub_80D7CD4: @ 80D7CD4 push {r4-r7,lr} sub sp, 0x10 adds r5, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r1, _080D7D18 ldrh r0, [r1, 0x8] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] movs r2, 0xE ldrsh r0, [r1, r2] cmp r0, 0 bne _080D7D20 ldr r4, _080D7D1C ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] b _080D7D32 .align 2, 0 _080D7D18: .4byte 0x03004b00 _080D7D1C: .4byte 0x0202f7c9 _080D7D20: ldr r0, _080D7D50 ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 adds r3, r5, 0 adds r3, 0x36 movs r1, 0x1 bl sub_807A3FC _080D7D32: ldr r0, _080D7D54 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D7D5C ldr r0, _080D7D58 ldrh r1, [r5, 0x32] ldrh r2, [r0, 0x4] subs r1, r2 strh r1, [r5, 0x32] adds r1, r0, 0 b _080D7D66 .align 2, 0 _080D7D50: .4byte 0x0202f7c9 _080D7D54: .4byte 0x0202f7c8 _080D7D58: .4byte 0x03004b00 _080D7D5C: ldr r1, _080D7E10 ldrh r0, [r1, 0x4] ldrh r2, [r5, 0x32] adds r0, r2 strh r0, [r5, 0x32] _080D7D66: ldrh r0, [r1, 0x6] ldrh r1, [r5, 0x36] adds r0, r1 strh r0, [r5, 0x36] adds r0, r5, 0 bl sub_8078D60 adds r7, r5, 0 adds r7, 0x2E adds r2, r7, 0 mov r1, sp movs r4, 0x7 _080D7D7E: ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 subs r4, 0x1 cmp r4, 0 bge _080D7D7E ldrh r0, [r5, 0x30] movs r1, 0x1 eors r0, r1 strh r0, [r5, 0x30] ldrh r0, [r5, 0x32] eors r0, r1 strh r0, [r5, 0x32] _080D7D9A: movs r0, 0x1 strh r0, [r5, 0x2E] adds r0, r5, 0 bl sub_8078CE8 movs r2, 0x20 ldrsh r1, [r5, r2] movs r2, 0x24 ldrsh r0, [r5, r2] adds r1, r0 adds r1, 0x10 movs r0, 0x88 lsls r0, 1 cmp r1, r0 bhi _080D7DCE movs r0, 0x22 ldrsh r1, [r5, r0] movs r2, 0x26 ldrsh r0, [r5, r2] adds r1, r0 cmp r1, 0xA0 bgt _080D7DCE movs r0, 0x10 negs r0, r0 cmp r1, r0 bge _080D7D9A _080D7DCE: ldrh r0, [r5, 0x24] ldrh r1, [r5, 0x20] adds r0, r1 movs r1, 0 strh r0, [r5, 0x20] ldrh r0, [r5, 0x26] ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] strh r1, [r5, 0x26] strh r1, [r5, 0x24] ldr r1, _080D7E10 ldr r6, _080D7E14 mov r3, sp adds r2, r7, 0 movs r4, 0x7 _080D7DEE: ldrh r0, [r3] strh r0, [r2] adds r3, 0x2 adds r2, 0x2 subs r4, 0x1 cmp r4, 0 bge _080D7DEE ldrh r0, [r1, 0xA] strh r0, [r5, 0x38] ldrh r0, [r1, 0xC] strh r0, [r5, 0x3A] str r6, [r5, 0x1C] add sp, 0x10 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D7E10: .4byte 0x03004b00 _080D7E14: .4byte sub_80D7E18 thumb_func_end sub_80D7CD4 thumb_func_start sub_80D7E18 sub_80D7E18: @ 80D7E18 push {r4,lr} adds r4, r0, 0 bl sub_8078CE8 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080D7E2C movs r0, 0x1 strh r0, [r4, 0x2E] _080D7E2C: movs r2, 0x3C ldrsh r0, [r4, r2] movs r2, 0x38 ldrsh r1, [r4, r2] bl sine ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x3A] ldrh r2, [r4, 0x3C] adds r0, r2 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x3C] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080D7E82 movs r2, 0x20 ldrsh r0, [r4, r2] movs r2, 0x24 ldrsh r1, [r4, r2] adds r0, r1 adds r0, 0x10 movs r1, 0x88 lsls r1, 1 cmp r0, r1 bhi _080D7E7C movs r0, 0x22 ldrsh r1, [r4, r0] movs r2, 0x26 ldrsh r0, [r4, r2] adds r1, r0 cmp r1, 0xA0 bgt _080D7E7C movs r0, 0x10 negs r0, r0 cmp r1, r0 bge _080D7E82 _080D7E7C: adds r0, r4, 0 bl move_anim_8072740 _080D7E82: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D7E18 thumb_func_start sub_80D7E88 sub_80D7E88: @ 80D7E88 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080D7EF4 ldr r5, _080D7EA8 movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0 bne _080D7EAC adds r0, r4, 0 movs r1, 0 bl sub_8078764 b _080D7EE2 .align 2, 0 _080D7EA8: .4byte 0x03004b00 _080D7EAC: ldr r0, _080D7EEC ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 movs r1, 0 bl sub_807A3FC ldr r0, _080D7EF0 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D7ED2 ldrh r0, [r5] negs r0, r0 strh r0, [r5] _080D7ED2: ldrh r0, [r5] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] _080D7EE2: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080D7F08 .align 2, 0 _080D7EEC: .4byte 0x0202f7c9 _080D7EF0: .4byte 0x0202f7c8 _080D7EF4: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D7F08 adds r0, r4, 0 bl move_anim_8072740 _080D7F08: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80D7E88 thumb_func_start sub_80D7F10 sub_80D7F10: @ 80D7F10 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _080D7F30 movs r1, 0x8 ldrsh r0, [r6, r1] cmp r0, 0 bne _080D7F80 movs r1, 0xA ldrsh r0, [r6, r1] cmp r0, 0 bne _080D7F34 adds r0, r5, 0 movs r1, 0 bl sub_80787B0 b _080D7F72 .align 2, 0 _080D7F30: .4byte 0x03004b00 _080D7F34: ldr r4, _080D7F5C ldrb r0, [r4] adds r2, r5, 0 adds r2, 0x20 adds r3, r5, 0 adds r3, 0x22 movs r1, 0 bl sub_807A3FC ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D7F60 ldrh r0, [r5, 0x20] ldrh r1, [r6] subs r0, r1 b _080D7F66 .align 2, 0 _080D7F5C: .4byte 0x0202f7c8 _080D7F60: ldrh r0, [r6] ldrh r1, [r5, 0x20] adds r0, r1 _080D7F66: strh r0, [r5, 0x20] ldr r0, _080D7F78 ldrh r0, [r0, 0x2] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x22] _080D7F72: ldr r0, _080D7F7C b _080D7FD0 .align 2, 0 _080D7F78: .4byte 0x03004b00 _080D7F7C: .4byte 0x0202f7c8 _080D7F80: movs r1, 0xA ldrsh r0, [r6, r1] cmp r0, 0 bne _080D7F92 adds r0, r5, 0 movs r1, 0 bl sub_8078764 b _080D7FCE _080D7F92: ldr r4, _080D7FB8 ldrb r0, [r4] adds r2, r5, 0 adds r2, 0x20 adds r3, r5, 0 adds r3, 0x22 movs r1, 0 bl sub_807A3FC ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D7FBC ldrh r0, [r5, 0x20] ldrh r1, [r6] subs r0, r1 b _080D7FC2 .align 2, 0 _080D7FB8: .4byte 0x0202f7c9 _080D7FBC: ldrh r0, [r6] ldrh r1, [r5, 0x20] adds r0, r1 _080D7FC2: strh r0, [r5, 0x20] ldr r0, _080D7FEC ldrh r0, [r0, 0x2] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x22] _080D7FCE: ldr r0, _080D7FF0 _080D7FD0: ldrb r0, [r0] strh r0, [r5, 0x3C] ldr r0, _080D7FEC movs r1, 0xA ldrsh r0, [r0, r1] cmp r0, 0 beq _080D7FE8 bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _080D7FF4 _080D7FE8: movs r0, 0x20 b _080D7FF6 .align 2, 0 _080D7FEC: .4byte 0x03004b00 _080D7FF0: .4byte 0x0202f7c9 _080D7FF4: movs r0, 0x40 _080D7FF6: strh r0, [r5, 0x3A] ldr r0, _080D803C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D800C ldrh r0, [r5, 0x22] adds r0, 0x8 strh r0, [r5, 0x22] _080D800C: ldr r1, _080D8040 ldrh r0, [r1, 0x6] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] ldrh r1, [r1, 0x4] adds r0, r1 strh r0, [r5, 0x36] adds r0, r5, 0 bl obj_translate_based_on_private_1_2_3_4 movs r0, 0x40 strh r0, [r5, 0x38] ldr r1, _080D8044 str r1, [r5, 0x1C] adds r0, r5, 0 bl _call_via_r1 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D803C: .4byte 0x0202f7c9 _080D8040: .4byte 0x03004b00 _080D8044: .4byte sub_80D8048 thumb_func_end sub_80D7F10 thumb_func_start sub_80D8048 sub_80D8048: @ 80D8048 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 bne _080D80D2 movs r1, 0x38 ldrsh r0, [r4, r1] movs r2, 0x3A ldrsh r1, [r4, r2] bl sine ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] movs r2, 0x38 ldrsh r0, [r4, r2] movs r1, 0x6 negs r1, r1 bl cosine ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x38] subs r0, 0x40 lsls r0, 16 lsrs r0, 16 cmp r0, 0x7F bhi _080D80A4 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] b _080D80C6 _080D80A4: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 bl sub_8079ED4 lsls r0, 24 lsrs r0, 24 adds r0, 0x1 movs r1, 0x3 ands r0, r1 lsls r0, 2 ldrb r2, [r4, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x5] _080D80C6: ldrh r0, [r4, 0x38] adds r0, 0x3 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] b _080D80D8 _080D80D2: adds r0, r4, 0 bl move_anim_8072740 _080D80D8: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D8048 thumb_func_start sub_80D80E0 sub_80D80E0: @ 80D80E0 push {r4,r5,lr} sub sp, 0x10 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080D81A8 ldr r2, _080D81AC adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r4, _080D81B0 ldrb r1, [r4] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D812A ldrb r0, [r4] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4] _080D812A: ldr r0, _080D81B4 movs r1, 0 strh r1, [r0] ldr r0, _080D81B8 strh r1, [r0] ldr r0, _080D81BC strh r1, [r0] adds r0, 0x2 strh r1, [r0] mov r0, sp bl sub_8078914 ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r0, _080D81C0 add r2, sp, 0xC str r2, [r0] str r1, [r0, 0x4] ldr r2, _080D81C4 str r2, [r0, 0x8] ldr r2, [r0, 0x8] ldr r2, _080D81C8 ldr r3, [sp] str r2, [r0] str r3, [r0, 0x4] ldr r2, _080D81CC str r2, [r0, 0x8] ldr r0, [r0, 0x8] ldr r0, _080D81D0 bl LZDecompressVram ldr r0, _080D81D4 mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadPalette bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D8190 mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_80763FC _080D8190: ldr r0, _080D81D8 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _080D81DC str r0, [r1] add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D81A8: .4byte REG_BLDCNT _080D81AC: .4byte 0x00003f42 _080D81B0: .4byte REG_BG1CNT _080D81B4: .4byte 0x030042c0 _080D81B8: .4byte 0x030041b4 _080D81BC: .4byte REG_BG1HOFS _080D81C0: .4byte 0x040000d4 _080D81C4: .4byte 0x85000400 _080D81C8: .4byte gWeatherFog1Tiles _080D81CC: .4byte 0x80000400 _080D81D0: .4byte gUnknown_08E6DE48 _080D81D4: .4byte gUnknown_083970E8 _080D81D8: .4byte 0x03004b20 _080D81DC: .4byte sub_80D81E0 thumb_func_end sub_80D80E0 thumb_func_start sub_80D81E0 sub_80D81E0: @ 80D81E0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r6, r0, 24 ldr r2, _080D8220 ldr r1, _080D8224 adds r0, r1, 0 ldrh r4, [r2] adds r0, r4 strh r0, [r2] ldr r1, _080D8228 ldr r3, _080D822C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r3 movs r4, 0x20 ldrsh r0, [r0, r4] adds r4, r1, 0 cmp r0, 0x4 bls _080D8214 b _080D83B0 _080D8214: lsls r0, 2 ldr r1, _080D8230 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080D8220: .4byte 0x030042c0 _080D8224: .4byte 0x0000ffff _080D8228: .4byte 0x030041b4 _080D822C: .4byte 0x03004b20 _080D8230: .4byte _080D8234 .align 2, 0 _080D8234: .4byte _080D8248 .4byte _080D82A0 .4byte _080D82C2 .4byte _080D8304 .4byte _080D838C _080D8248: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r3, r0, r3 ldrh r0, [r3, 0x1C] adds r0, 0x1 movs r4, 0 strh r0, [r3, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 beq _080D8262 b _080D83B0 _080D8262: strh r4, [r3, 0x1C] ldrh r0, [r3, 0x1A] adds r0, 0x1 strh r0, [r3, 0x1A] ldr r1, _080D8298 movs r2, 0x1A ldrsh r0, [r3, r2] adds r0, r1 ldrb r1, [r0] strh r1, [r3, 0x1E] ldr r2, _080D829C movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r1, 0x1E ldrsh r0, [r3, r1] cmp r0, 0x9 beq _080D828C b _080D83B0 _080D828C: ldrh r0, [r3, 0x20] adds r0, 0x1 strh r0, [r3, 0x20] strh r4, [r3, 0x1E] b _080D83B0 .align 2, 0 _080D8298: .4byte gUnknown_083D9D6C _080D829C: .4byte REG_BLDALPHA _080D82A0: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r3, r0, r3 ldrh r0, [r3, 0x1E] adds r0, 0x1 strh r0, [r3, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x51 bne _080D83B0 movs r0, 0x9 strh r0, [r3, 0x1E] ldrh r0, [r3, 0x20] adds r0, 0x1 strh r0, [r3, 0x20] b _080D83B0 _080D82C2: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r3, r0, r3 ldrh r0, [r3, 0x1C] adds r0, 0x1 strh r0, [r3, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080D83B0 movs r0, 0 strh r0, [r3, 0x1C] ldrh r1, [r3, 0x1E] subs r1, 0x1 strh r1, [r3, 0x1E] ldr r2, _080D8300 movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r2, 0x1E ldrsh r1, [r3, r2] cmp r1, 0 bne _080D83B0 ldrh r0, [r3, 0x20] adds r0, 0x1 strh r0, [r3, 0x20] strh r1, [r3, 0x1E] b _080D83B0 .align 2, 0 _080D8300: .4byte REG_BLDALPHA _080D8304: mov r0, sp bl sub_8078914 ldr r2, [sp] movs r3, 0x80 lsls r3, 6 lsls r4, r6, 2 mov r10, r4 add r5, sp, 0xC movs r7, 0 ldr r1, _080D83C0 movs r4, 0x80 lsls r4, 5 mov r8, r5 ldr r0, _080D83C4 mov r12, r0 movs r0, 0x85 lsls r0, 24 mov r9, r0 _080D832A: str r7, [sp, 0xC] mov r0, r8 str r0, [r1] str r2, [r1, 0x4] mov r0, r12 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080D832A str r7, [sp, 0xC] str r5, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r9 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r0, _080D83C0 str r5, [r0] str r1, [r0, 0x4] ldr r1, _080D83C8 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D8378 ldr r2, _080D83CC ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080D8378: ldr r0, _080D83D0 mov r4, r10 adds r1, r4, r6 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] ldr r2, _080D83D4 ldr r4, _080D83D8 _080D838C: movs r1, 0 strh r1, [r2] strh r1, [r4] ldr r0, _080D83DC strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r2, _080D83CC ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] adds r0, r6, 0 bl move_anim_task_del _080D83B0: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D83C0: .4byte 0x040000d4 _080D83C4: .4byte 0x85000400 _080D83C8: .4byte 0x85000200 _080D83CC: .4byte REG_BG1CNT _080D83D0: .4byte 0x03004b20 _080D83D4: .4byte 0x030042c0 _080D83D8: .4byte 0x030041b4 _080D83DC: .4byte REG_BLDCNT thumb_func_end sub_80D81E0 thumb_func_start sub_80D83E0 sub_80D83E0: @ 80D83E0 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080D840C ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] ldr r0, _080D8410 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D840C: .4byte 0x0202f7c8 _080D8410: .4byte sub_807941C thumb_func_end sub_80D83E0 thumb_func_start sub_80D8414 sub_80D8414: @ 80D8414 push {r4,r5,lr} sub sp, 0x10 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080D84E0 ldr r2, _080D84E4 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r4, _080D84E8 ldrb r1, [r4] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D845E ldrb r0, [r4] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4] _080D845E: ldr r0, _080D84EC movs r1, 0 strh r1, [r0] ldr r0, _080D84F0 strh r1, [r0] ldr r0, _080D84F4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] mov r0, sp bl sub_8078914 ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r0, _080D84F8 add r2, sp, 0xC str r2, [r0] str r1, [r0, 0x4] ldr r2, _080D84FC str r2, [r0, 0x8] ldr r2, [r0, 0x8] ldr r2, _080D8500 ldr r3, [sp] str r2, [r0] str r3, [r0, 0x4] ldr r2, _080D8504 str r2, [r0, 0x8] ldr r0, [r0, 0x8] ldr r0, _080D8508 bl LZDecompressVram ldr r0, _080D850C mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadPalette bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D84C4 mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_80763FC _080D84C4: ldr r1, _080D8510 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080D8514 strh r1, [r0, 0x26] ldr r1, _080D8518 str r1, [r0] add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D84E0: .4byte REG_BLDCNT _080D84E4: .4byte 0x00003f42 _080D84E8: .4byte REG_BG1CNT _080D84EC: .4byte 0x030042c0 _080D84F0: .4byte 0x030041b4 _080D84F4: .4byte REG_BG1HOFS _080D84F8: .4byte 0x040000d4 _080D84FC: .4byte 0x85000400 _080D8500: .4byte gWeatherFog1Tiles _080D8504: .4byte 0x80000400 _080D8508: .4byte gUnknown_08E6DE48 _080D850C: .4byte gUnknown_083970E8 _080D8510: .4byte 0x03004b20 _080D8514: .4byte 0x0000ffff _080D8518: .4byte sub_80D851C thumb_func_end sub_80D8414 thumb_func_start sub_80D851C sub_80D851C: @ 80D851C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r6, r0, 24 ldr r3, _080D8558 ldr r4, _080D855C lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r4 ldrh r0, [r1, 0x26] ldrh r2, [r3] adds r0, r2 strh r0, [r3] ldr r2, _080D8560 movs r5, 0x20 ldrsh r0, [r1, r5] cmp r0, 0x4 bls _080D854C b _080D86D0 _080D854C: lsls r0, 2 ldr r1, _080D8564 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080D8558: .4byte 0x030042c0 _080D855C: .4byte 0x03004b20 _080D8560: .4byte 0x030041b4 _080D8564: .4byte _080D8568 .align 2, 0 _080D8568: .4byte _080D857C .4byte _080D85C0 .4byte _080D85E2 .4byte _080D8624 .4byte _080D86AC _080D857C: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r4 ldrh r0, [r4, 0x1A] adds r0, 0x1 strh r0, [r4, 0x1A] ldr r1, _080D85B8 movs r2, 0x1A ldrsh r0, [r4, r2] adds r0, r1 ldrb r1, [r0] strh r1, [r4, 0x1E] ldr r2, _080D85BC movs r0, 0x11 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r5, 0x1E ldrsh r0, [r4, r5] cmp r0, 0x5 beq _080D85AC b _080D86D0 _080D85AC: ldrh r0, [r4, 0x20] adds r0, 0x1 strh r0, [r4, 0x20] movs r0, 0 strh r0, [r4, 0x1E] b _080D86D0 .align 2, 0 _080D85B8: .4byte gUnknown_083D9D98 _080D85BC: .4byte REG_BLDALPHA _080D85C0: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r1, r0, r4 ldrh r0, [r1, 0x1E] adds r0, 0x1 strh r0, [r1, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x51 bne _080D86D0 movs r0, 0x5 strh r0, [r1, 0x1E] ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] b _080D86D0 _080D85E2: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r4 ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080D86D0 movs r0, 0 strh r0, [r4, 0x1C] ldrh r1, [r4, 0x1E] subs r1, 0x1 strh r1, [r4, 0x1E] ldr r2, _080D8620 movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r0, 0x1E ldrsh r1, [r4, r0] cmp r1, 0 bne _080D86D0 ldrh r0, [r4, 0x20] adds r0, 0x1 strh r0, [r4, 0x20] strh r1, [r4, 0x1E] b _080D86D0 .align 2, 0 _080D8620: .4byte REG_BLDALPHA _080D8624: mov r0, sp bl sub_8078914 ldr r2, [sp] movs r3, 0x80 lsls r3, 6 lsls r1, r6, 2 mov r10, r1 add r5, sp, 0xC movs r7, 0 ldr r1, _080D86E0 movs r4, 0x80 lsls r4, 5 mov r8, r5 ldr r0, _080D86E4 mov r12, r0 movs r0, 0x85 lsls r0, 24 mov r9, r0 _080D864A: str r7, [sp, 0xC] mov r0, r8 str r0, [r1] str r2, [r1, 0x4] mov r0, r12 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080D864A str r7, [sp, 0xC] str r5, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r9 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r0, _080D86E0 str r5, [r0] str r1, [r0, 0x4] ldr r1, _080D86E8 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D8698 ldr r2, _080D86EC ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080D8698: ldr r0, _080D86F0 mov r5, r10 adds r1, r5, r6 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] ldr r3, _080D86F4 ldr r2, _080D86F8 _080D86AC: movs r1, 0 strh r1, [r3] strh r1, [r2] ldr r0, _080D86FC strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r2, _080D86EC ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] adds r0, r6, 0 bl move_anim_task_del _080D86D0: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D86E0: .4byte 0x040000d4 _080D86E4: .4byte 0x85000400 _080D86E8: .4byte 0x85000200 _080D86EC: .4byte REG_BG1CNT _080D86F0: .4byte 0x03004b20 _080D86F4: .4byte 0x030042c0 _080D86F8: .4byte 0x030041b4 _080D86FC: .4byte REG_BLDCNT thumb_func_end sub_80D851C thumb_func_start sub_80D8700 sub_80D8700: @ 80D8700 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 ldr r6, _080D87E8 ldrh r0, [r6] strh r0, [r5, 0x2E] ldr r0, _080D87EC mov r8, r0 ldrb r0, [r0] movs r1, 0x2 bl sub_8077ABC adds r4, r0, 0 ldr r7, _080D87F0 ldrb r0, [r7] movs r1, 0x2 bl sub_8077ABC lsls r4, 24 lsls r0, 24 cmp r4, r0 bcs _080D8734 movs r0, 0x80 lsls r0, 8 strh r0, [r5, 0x3C] _080D8734: ldr r3, _080D87F4 ldrb r0, [r7] adds r0, r3 ldrb r1, [r0] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _080D8794 ldrh r0, [r6, 0x2] negs r0, r0 strh r0, [r6, 0x2] ldrh r0, [r6, 0x6] negs r0, r0 strh r0, [r6, 0x6] movs r1, 0x3C ldrsh r0, [r5, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _080D8790 mov r1, r8 ldrb r0, [r1] adds r0, r3 ldrb r1, [r0] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _080D8790 movs r0, 0x1 bl obj_id_for_side_relative_to_move ldr r2, _080D87F8 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x43 ldrb r0, [r1] adds r0, 0x1 adds r1, r5, 0 adds r1, 0x43 strb r0, [r1] _080D8790: movs r0, 0x1 strh r0, [r5, 0x3A] _080D8794: ldr r4, _080D87EC ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r6, _080D87E8 movs r1, 0xE ldrsh r0, [r6, r1] cmp r0, 0 beq _080D87FC ldrh r0, [r6, 0x2] ldrh r1, [r5, 0x20] adds r0, r1 strh r0, [r5, 0x30] ldr r4, _080D87F0 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x6] adds r0, r1 strh r0, [r5, 0x32] ldrh r0, [r6, 0x4] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 b _080D8824 .align 2, 0 _080D87E8: .4byte 0x03004b00 _080D87EC: .4byte 0x0202f7c8 _080D87F0: .4byte 0x0202f7c9 _080D87F4: .4byte 0x02024a72 _080D87F8: .4byte 0x02020004 _080D87FC: ldrh r0, [r6, 0x2] ldrh r1, [r5, 0x20] adds r0, r1 strh r0, [r5, 0x30] ldr r4, _080D886C ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x6] adds r0, r1 strh r0, [r5, 0x32] ldrh r0, [r6, 0x4] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x1 _080D8824: bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x8] adds r0, r6 strh r0, [r5, 0x36] ldrb r0, [r4] bl sub_8079ED4 lsls r0, 24 lsrs r0, 16 ldrh r1, [r5, 0x3C] orrs r0, r1 strh r0, [r5, 0x3C] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D8858 movs r0, 0x1 strh r0, [r5, 0x3A] adds r1, r5, 0 adds r1, 0x43 movs r0, 0x80 strb r0, [r1] _080D8858: adds r0, r5, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r0, _080D8870 str r0, [r5, 0x1C] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D886C: .4byte 0x0202f7c9 _080D8870: .4byte sub_80D8874 thumb_func_end sub_80D8700 thumb_func_start sub_80D8874 sub_80D8874: @ 80D8874 push {r4-r6,lr} adds r4, r0, 0 ldrh r0, [r4, 0x3C] movs r5, 0xFF movs r1, 0xFF ands r1, r0 cmp r1, 0x1 beq _080D8968 cmp r1, 0x1 bgt _080D888E cmp r1, 0 beq _080D8896 b _080D8AD0 _080D888E: cmp r1, 0x2 bne _080D8894 b _080D8A94 _080D8894: b _080D8AD0 _080D8896: adds r0, r4, 0 bl sub_8078B5C ldr r1, _080D88C0 movs r2, 0x38 ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] asrs r0, 4 ldrh r2, [r4, 0x24] adds r0, r2 strh r0, [r4, 0x24] movs r1, 0x3A ldrsh r0, [r4, r1] cmp r0, 0 beq _080D88C4 ldrh r0, [r4, 0x38] subs r0, 0x8 b _080D88C8 .align 2, 0 _080D88C0: .4byte gSineTable _080D88C4: ldrh r0, [r4, 0x38] adds r0, 0x8 _080D88C8: ands r0, r5 strh r0, [r4, 0x38] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 ble _080D88D6 b _080D8AD0 _080D88D6: movs r5, 0x50 strh r5, [r4, 0x2E] ldr r6, _080D8928 ldrb r0, [r6] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] strh r0, [r4, 0x30] strh r0, [r4, 0x32] ldrh r0, [r4, 0x26] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] strh r0, [r4, 0x34] adds r0, 0x1D strh r0, [r4, 0x36] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] ldr r0, _080D892C ldr r2, _080D8930 adds r0, r2 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D8938 ldr r1, _080D8934 ldrb r0, [r6] adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D8938 movs r0, 0xCC strh r0, [r4, 0x38] b _080D893A .align 2, 0 _080D8928: .4byte 0x0202f7c9 _080D892C: .4byte 0x03001770 _080D8930: .4byte 0x0000043d _080D8934: .4byte 0x02024a72 _080D8938: strh r5, [r4, 0x38] _080D893A: movs r0, 0 strh r0, [r4, 0x26] ldr r1, _080D8964 movs r2, 0x38 ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] asrs r0, 3 strh r0, [r4, 0x24] ldrh r0, [r4, 0x38] adds r0, 0x2 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] adds r0, r4, 0 bl obj_translate_based_on_private_1_2_3_4 b _080D8AD0 .align 2, 0 _080D8964: .4byte gSineTable _080D8968: adds r0, r4, 0 bl sub_8078B5C ldr r1, _080D89C8 movs r2, 0x38 ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] asrs r0, 3 ldrh r2, [r4, 0x24] adds r0, r2 strh r0, [r4, 0x24] movs r2, 0x38 ldrsh r0, [r4, r2] adds r0, 0x40 lsls r0, 1 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 1 adds r0, r1 negs r0, r0 asrs r0, 8 ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldr r0, _080D89CC ldr r2, _080D89D0 adds r0, r2 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D89F2 ldrh r1, [r4, 0x38] adds r0, r1, 0 subs r0, 0x40 lsls r0, 16 lsrs r0, 16 adds r3, r1, 0 cmp r0, 0x7F bhi _080D89D4 ldrh r1, [r4, 0x3C] lsls r1, 16 asrs r1, 24 b _080D89DC .align 2, 0 _080D89C8: .4byte gSineTable _080D89CC: .4byte 0x03001770 _080D89D0: .4byte 0x0000043d _080D89D4: ldrh r1, [r4, 0x3C] lsls r1, 16 asrs r1, 24 adds r1, 0x1 _080D89DC: movs r0, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] adds r0, r3, 0x4 b _080D8A12 _080D89F2: ldrh r0, [r4, 0x38] subs r0, 0x40 lsls r0, 16 lsrs r0, 16 cmp r0, 0x7F bhi _080D8A06 adds r1, r4, 0 adds r1, 0x43 movs r0, 0x80 b _080D8A0C _080D8A06: adds r1, r4, 0 adds r1, 0x43 movs r0, 0x8C _080D8A0C: strb r0, [r1] ldrh r0, [r4, 0x38] subs r0, 0x4 _080D8A12: movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bgt _080D8AD0 movs r2, 0 movs r0, 0xC0 lsls r0, 2 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] strh r0, [r4, 0x30] ldrh r0, [r4, 0x26] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] strh r0, [r4, 0x34] adds r0, 0x4 strh r0, [r4, 0x36] ldr r0, _080D8A68 ldr r1, _080D8A6C adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D8A78 ldr r1, _080D8A70 ldr r0, _080D8A74 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D8A78 movs r0, 0x80 lsls r0, 1 b _080D8A7A .align 2, 0 _080D8A68: .4byte 0x03001770 _080D8A6C: .4byte 0x0000043d _080D8A70: .4byte 0x02024a72 _080D8A74: .4byte 0x0202f7c9 _080D8A78: ldr r0, _080D8A90 _080D8A7A: strh r0, [r4, 0x32] ldrh r0, [r4, 0x3C] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0x3C] strh r1, [r4, 0x26] strh r1, [r4, 0x24] adds r0, r4, 0 bl sub_8078BD4 b _080D8AD0 .align 2, 0 _080D8A90: .4byte 0x0000fff0 _080D8A94: adds r0, r4, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080D8AD0 ldrb r0, [r4, 0x1] lsls r0, 30 lsrs r0, 30 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D8AC2 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 strb r0, [r4, 0x1] _080D8AC2: adds r0, r4, 0 bl DestroySprite ldr r1, _080D8AD8 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] _080D8AD0: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D8AD8: .4byte 0x0202f7b2 thumb_func_end sub_80D8874 thumb_func_start sub_80D8ADC sub_80D8ADC: @ 80D8ADC lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080D8AF0 adds r1, r0 ldr r0, _080D8AF4 str r0, [r1] bx lr .align 2, 0 _080D8AF0: .4byte 0x03004b20 _080D8AF4: .4byte sub_80D8AF8 thumb_func_end sub_80D8ADC thumb_func_start sub_80D8AF8 sub_80D8AF8: @ 80D8AF8 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080D8B1C adds r4, r0, r1 movs r0, 0x8 ldrsh r5, [r4, r0] cmp r5, 0x1 beq _080D8B3C cmp r5, 0x1 bgt _080D8B20 cmp r5, 0 beq _080D8B26 b _080D8BA0 .align 2, 0 _080D8B1C: .4byte 0x03004b20 _080D8B20: cmp r5, 0x2 beq _080D8B92 b _080D8BA0 _080D8B26: ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080D8BA0 strh r5, [r4, 0x10] strh r5, [r4, 0x12] strh r5, [r4, 0xC] b _080D8B78 _080D8B3C: ldrh r1, [r4, 0x12] movs r3, 0x12 ldrsh r0, [r4, r3] cmp r0, 0 bne _080D8B8C ldrb r0, [r4, 0xE] ldrb r1, [r4, 0xC] movs r3, 0x1 bl sub_80D8BA8 lsls r0, 24 cmp r0, 0 beq _080D8B5C ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] _080D8B5C: ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _080D8B88 ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _080D8B80 _080D8B78: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080D8BA0 _080D8B80: ldrh r0, [r4, 0x8] subs r0, 0x1 strh r0, [r4, 0x8] b _080D8BA0 _080D8B88: strh r5, [r4, 0x12] b _080D8BA0 _080D8B8C: subs r0, r1, 0x1 strh r0, [r4, 0x12] b _080D8BA0 _080D8B92: movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 bne _080D8BA0 adds r0, r2, 0 bl move_anim_task_del _080D8BA0: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80D8AF8 thumb_func_start sub_80D8BA8 sub_80D8BA8: @ 80D8BA8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r2, 24 lsrs r2, 24 str r2, [sp] lsls r3, 24 lsrs r3, 24 mov r10, r3 movs r1, 0 str r1, [sp, 0x4] ldr r1, _080D8C20 lsrs r0, 22 adds r4, r0, r1 ldrb r0, [r4, 0x3] lsls r0, 24 asrs r0, 28 mov r8, r0 cmp r0, 0x2 beq _080D8C94 ldrh r0, [r4, 0x2] lsls r0, 20 lsrs r0, 24 bl battle_get_side_with_given_state lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080D8C94 movs r0, 0x1 str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r7, r0, 24 adds r0, r5, 0 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 mov r1, r8 cmp r1, 0 beq _080D8C24 cmp r1, 0x1 beq _080D8C5A b _080D8CA6 .align 2, 0 _080D8C20: .4byte gUnknown_083D9DC4 _080D8C24: adds r0, r5, 0 movs r1, 0x1 bl sub_807A100 lsls r0, 16 asrs r0, 16 movs r1, 0x6 bl __divsi3 lsls r1, r7, 16 asrs r1, 16 subs r1, r0 lsls r1, 16 lsrs r7, r1, 16 adds r0, r5, 0 movs r1, 0 bl sub_807A100 lsls r0, 16 asrs r0, 16 movs r1, 0x6 bl __divsi3 lsls r1, r6, 16 asrs r1, 16 subs r1, r0 b _080D8C8E _080D8C5A: adds r0, r5, 0 movs r1, 0x1 bl sub_807A100 lsls r0, 16 asrs r0, 16 movs r1, 0x6 bl __divsi3 lsls r1, r7, 16 asrs r1, 16 adds r1, r0 lsls r1, 16 lsrs r7, r1, 16 adds r0, r5, 0 movs r1, 0 bl sub_807A100 lsls r0, 16 asrs r0, 16 movs r1, 0x6 bl __divsi3 lsls r1, r6, 16 asrs r1, 16 adds r1, r0 _080D8C8E: lsls r1, 16 lsrs r6, r1, 16 b _080D8CA6 _080D8C94: ldrh r0, [r4] lsls r0, 22 asrs r0, 6 lsrs r7, r0, 16 ldr r0, [r4] lsls r0, 12 asrs r0, 22 lsls r0, 16 lsrs r6, r0, 16 _080D8CA6: lsls r0, r6, 16 asrs r0, 16 adds r0, 0x8 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 lsls r1, r7, 16 asrs r1, 16 subs r1, r0 ldr r0, _080D8D00 lsls r1, 16 asrs r1, 16 movs r2, 0x8 negs r2, r2 movs r3, 0x12 bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x40 beq _080D8D08 lsls r4, r5, 4 adds r4, r5 lsls r4, 2 ldr r0, _080D8D04 adds r4, r0 adds r0, r4, 0 mov r1, r9 bl StartSpriteAffineAnim mov r0, sp ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] strh r7, [r4, 0x34] strh r6, [r4, 0x36] mov r1, r9 strh r1, [r4, 0x38] mov r0, sp ldrh r0, [r0] strh r0, [r4, 0x3A] mov r1, r10 strh r1, [r4, 0x3C] movs r0, 0x1 b _080D8D0A .align 2, 0 _080D8D00: .4byte gSpriteTemplate_83D9E3C _080D8D04: .4byte 0x02020004 _080D8D08: movs r0, 0 _080D8D0A: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80D8BA8 thumb_func_start sub_80D8D1C sub_80D8D1C: @ 80D8D1C push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x20] adds r0, 0x4 strh r0, [r4, 0x20] ldrh r1, [r4, 0x22] adds r2, r1, 0 adds r2, 0x8 strh r2, [r4, 0x22] lsls r0, 16 asrs r0, 16 movs r3, 0x34 ldrsh r1, [r4, r3] cmp r0, r1 bge _080D8D46 lsls r0, r2, 16 asrs r0, 16 movs r2, 0x36 ldrsh r1, [r4, r2] cmp r0, r1 blt _080D8DF6 _080D8D46: movs r3, 0x2E ldrsh r0, [r4, r3] cmp r0, 0x1 bne _080D8DC8 movs r1, 0x38 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D8DC8 ldr r0, _080D8DBC movs r2, 0x34 ldrsh r1, [r4, r2] movs r3, 0x36 ldrsh r2, [r4, r3] adds r3, r4, 0 adds r3, 0x43 ldrb r3, [r3] bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x2E] cmp r0, 0x40 beq _080D8DAA ldr r2, _080D8DC0 movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r2, 0 adds r1, 0x1C adds r0, r1 ldr r1, _080D8DC4 str r1, [r0] movs r3, 0x2E ldrsh r1, [r4, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r4, 0x3A] strh r1, [r0, 0x3A] movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r4, 0x3C] strh r1, [r0, 0x3C] _080D8DAA: ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl DestroySprite b _080D8DF6 .align 2, 0 _080D8DBC: .4byte gBattleAnimSpriteTemplate_83D9C78 _080D8DC0: .4byte 0x02020004 _080D8DC4: .4byte sub_80D8E00 _080D8DC8: ldr r3, _080D8DFC movs r2, 0x3C ldrsh r1, [r4, r2] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl DestroySprite _080D8DF6: pop {r4} pop {r0} bx r0 .align 2, 0 _080D8DFC: .4byte 0x03004b20 thumb_func_end sub_80D8D1C thumb_func_start sub_80D8E00 sub_80D8E00: @ 80D8E00 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 bne _080D8E40 ldr r3, _080D8E48 movs r0, 0x3C ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl DestroySprite _080D8E40: pop {r4} pop {r0} bx r0 .align 2, 0 _080D8E48: .4byte 0x03004b20 thumb_func_end sub_80D8E00 thumb_func_start unc_080B06FC unc_080B06FC: @ 80D8E4C push {r4-r6,lr} adds r5, r0, 0 ldr r0, _080D8ECC ldr r0, [r0] ldrb r1, [r0, 0x11] lsrs r0, r1, 4 lsls r1, 28 lsrs r1, 28 subs r0, r1 subs r0, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x4 bls _080D8E6A movs r1, 0x4 _080D8E6A: adds r0, r5, 0 bl StartSpriteAffineAnim adds r0, r5, 0 movs r1, 0x1 bl sub_80787B0 ldr r6, _080D8ED0 ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] ldr r0, _080D8ED4 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D8E92 ldrh r0, [r6, 0x4] negs r0, r0 strh r0, [r6, 0x4] _080D8E92: ldr r4, _080D8ED8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x4] adds r0, r1 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x6] adds r0, r1 strh r0, [r5, 0x36] ldrh r0, [r6, 0xA] strh r0, [r5, 0x38] adds r0, r5, 0 bl sub_80786EC ldr r0, _080D8EDC str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D8ECC: .4byte 0x0202f7b4 _080D8ED0: .4byte 0x03004b00 _080D8ED4: .4byte 0x0202f7c8 _080D8ED8: .4byte 0x0202f7c9 _080D8EDC: .4byte sub_80D8EE0 thumb_func_end unc_080B06FC thumb_func_start sub_80D8EE0 sub_80D8EE0: @ 80D8EE0 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080D8F02 adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim ldr r0, _080D8F08 str r0, [r4, 0x1C] ldr r1, _080D8F0C adds r0, r4, 0 bl oamt_set_x3A_32 _080D8F02: pop {r4} pop {r0} bx r0 .align 2, 0 _080D8F08: .4byte sub_8078600 _080D8F0C: .4byte move_anim_8072740 thumb_func_end sub_80D8EE0 thumb_func_start sub_80D8F10 sub_80D8F10: @ 80D8F10 push {r4-r6,lr} adds r4, r0, 0 ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x8 ldr r3, _080D8F64 adds r0, r3, 0 ands r1, r0 ldr r0, _080D8F68 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] adds r0, r4, 0 movs r1, 0x1 bl sub_8078764 bl Random movs r5, 0xFF ands r5, r0 movs r0, 0x80 lsls r0, 1 adds r6, r0, 0 orrs r5, r6 bl Random ldr r1, _080D8F6C ands r1, r0 adds r0, r1, 0 cmp r0, 0xFF ble _080D8F56 subs r0, r6, r0 lsls r0, 16 lsrs r1, r0, 16 _080D8F56: strh r5, [r4, 0x30] strh r1, [r4, 0x32] ldr r0, _080D8F70 str r0, [r4, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D8F64: .4byte 0x000003ff _080D8F68: .4byte 0xfffffc00 _080D8F6C: .4byte 0x000001ff _080D8F70: .4byte sub_80D8F74 thumb_func_end sub_80D8F10 thumb_func_start sub_80D8F74 sub_80D8F74: @ 80D8F74 push {r4,lr} adds r2, r0, 0 ldrh r0, [r2, 0x30] ldrh r1, [r2, 0x34] adds r3, r0, r1 strh r3, [r2, 0x34] ldrh r1, [r2, 0x32] ldrh r4, [r2, 0x36] adds r1, r4 strh r1, [r2, 0x36] movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _080D8F98 lsls r0, r3, 16 asrs r0, 24 negs r0, r0 b _080D8F9C _080D8F98: lsls r0, r3, 16 asrs r0, 24 _080D8F9C: strh r0, [r2, 0x24] ldrh r0, [r2, 0x36] lsls r0, 16 asrs r0, 24 strh r0, [r2, 0x26] ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x15 bne _080D8FBA adds r0, r2, 0 bl move_anim_8072740 _080D8FBA: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D8F74 thumb_func_start sub_80D8FC0 sub_80D8FC0: @ 80D8FC0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080D8FE8 ldrb r3, [r1] lsls r3, 1 adds r3, r1 ldr r1, _080D8FEC ldr r1, [r1] ldrb r1, [r1, 0x11] lsrs r2, r1, 4 lsls r1, 28 lsrs r1, 28 subs r2, r1 subs r2, 0x1 strh r2, [r3] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _080D8FE8: .4byte 0x03004b00 _080D8FEC: .4byte 0x0202f7b4 thumb_func_end sub_80D8FC0 thumb_func_start unc_080B08A0 unc_080B08A0: @ 80D8FF0 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080D9020 movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 bl sub_807867C ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] movs r0, 0xF strh r0, [r4, 0x2E] ldr r0, _080D9024 str r0, [r4, 0x1C] ldr r1, _080D9028 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9020: .4byte 0x03004b00 _080D9024: .4byte sub_80782D8 _080D9028: .4byte move_anim_8072740 thumb_func_end unc_080B08A0 thumb_func_start sub_80D902C sub_80D902C: @ 80D902C push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080D9070 movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080D9054 ldr r0, _080D9074 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D9054 ldrh r0, [r4, 0x2] negs r0, r0 strh r0, [r4, 0x2] ldrh r0, [r4, 0x6] negs r0, r0 strh r0, [r4, 0x6] _080D9054: ldr r4, _080D9070 ldrb r1, [r4, 0xC] adds r0, r5, 0 bl StartSpriteAnim movs r0, 0 strh r0, [r4, 0xC] adds r0, r5, 0 bl sub_8079534 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9070: .4byte 0x03004b00 _080D9074: .4byte 0x0202f7c8 thumb_func_end sub_80D902C thumb_func_start sub_80D9078 sub_80D9078: @ 80D9078 push {r4,lr} adds r4, r0, 0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D9094 ldr r0, _080D90A0 ldrh r1, [r0, 0x2] negs r1, r1 strh r1, [r0, 0x2] ldrh r1, [r0, 0x6] negs r1, r1 strh r1, [r0, 0x6] _080D9094: adds r0, r4, 0 bl sub_80D902C pop {r4} pop {r0} bx r0 .align 2, 0 _080D90A0: .4byte 0x03004b00 thumb_func_end sub_80D9078 thumb_func_start sub_80D90A4 sub_80D90A4: @ 80D90A4 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080D90C4 ldrb r1, [r4, 0x8] bl StartSpriteAnim movs r1, 0x6 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D90C8 adds r0, r5, 0 movs r1, 0x1 bl sub_80787B0 b _080D90D0 .align 2, 0 _080D90C4: .4byte 0x03004b00 _080D90C8: adds r0, r5, 0 movs r1, 0x1 bl sub_8078764 _080D90D0: ldr r0, _080D90E8 ldrh r0, [r0, 0x4] strh r0, [r5, 0x2E] ldr r0, _080D90EC str r0, [r5, 0x1C] ldr r1, _080D90F0 adds r0, r5, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D90E8: .4byte 0x03004b00 _080D90EC: .4byte sub_80782D8 _080D90F0: .4byte move_anim_8072740 thumb_func_end sub_80D90A4 thumb_func_start sub_80D90F4 sub_80D90F4: @ 80D90F4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 ldr r0, _080D9110 movs r2, 0 ldrsh r1, [r0, r2] mov r9, r0 cmp r1, 0 bne _080D9118 ldr r0, _080D9114 b _080D911A .align 2, 0 _080D9110: .4byte 0x03004b00 _080D9114: .4byte 0x0202f7c8 _080D9118: ldr r0, _080D9260 _080D911A: ldrb r0, [r0] mov r8, r0 mov r4, r9 movs r3, 0x4 ldrsh r0, [r4, r3] cmp r0, 0 bge _080D9138 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x5 bl __umodsi3 strh r0, [r4, 0x4] _080D9138: ldrb r1, [r4, 0x4] adds r0, r5, 0 bl StartSpriteAnim mov r0, r8 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] mov r0, r8 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] mov r0, r8 movs r1, 0x1 bl sub_807A100 lsls r0, 16 asrs r1, r0, 16 lsrs r0, 31 adds r1, r0 lsls r1, 15 lsrs r6, r1, 16 mov r0, r8 movs r1, 0 bl sub_807A100 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _080D9182 adds r0, 0x3 _080D9182: lsls r4, r0, 14 lsrs r4, 16 bl Random lsls r0, 16 lsrs r0, 16 lsls r1, r6, 16 asrs r1, 16 bl __modsi3 lsls r0, 16 lsrs r6, r0, 16 bl Random lsls r0, 16 lsrs r0, 16 lsls r4, 16 asrs r4, 16 adds r1, r4, 0 bl __modsi3 lsls r0, 16 lsrs r4, r0, 16 bl Random movs r7, 0x1 adds r1, r7, 0 ands r1, r0 cmp r1, 0 beq _080D91C4 lsls r0, r6, 16 negs r0, r0 lsrs r6, r0, 16 _080D91C4: bl Random adds r1, r7, 0 ands r1, r0 cmp r1, 0 beq _080D91D6 lsls r0, r4, 16 negs r0, r0 lsrs r4, r0, 16 _080D91D6: ldr r0, _080D9264 add r0, r8 ldrb r1, [r0] adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _080D91EC lsls r0, r4, 16 ldr r1, _080D9268 adds r0, r1 lsrs r4, r0, 16 _080D91EC: lsls r0, r6, 16 asrs r0, 16 ldrh r2, [r5, 0x20] adds r0, r2 strh r0, [r5, 0x20] lsls r0, r4, 16 asrs r0, 16 ldrh r3, [r5, 0x22] adds r0, r3 strh r0, [r5, 0x22] mov r1, r9 ldrh r0, [r1, 0x2] strh r0, [r5, 0x2E] ldr r0, _080D926C movs r2, 0x20 ldrsh r1, [r5, r2] movs r3, 0x22 ldrsh r2, [r5, r3] adds r3, r5, 0 adds r3, 0x43 ldrb r3, [r3] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3C] cmp r0, 0x40 beq _080D9250 movs r0, 0x3C ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _080D9270 adds r0, r4 movs r1, 0 bl StartSpriteAffineAnim movs r2, 0x3C ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _080D9274 str r1, [r0] _080D9250: ldr r0, _080D9278 str r0, [r5, 0x1C] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D9260: .4byte 0x0202f7c9 _080D9264: .4byte 0x02024a72 _080D9268: .4byte 0xfff00000 _080D926C: .4byte gBattleAnimSpriteTemplate_83DB4A8 _080D9270: .4byte 0x02020004 _080D9274: .4byte SpriteCallbackDummy _080D9278: .4byte sub_80D927C thumb_func_end sub_80D90F4 thumb_func_start sub_80D927C sub_80D927C: @ 80D927C push {r4,r5,lr} adds r5, r0, 0 ldrh r1, [r5, 0x2E] movs r2, 0x2E ldrsh r0, [r5, r2] cmp r0, 0 bne _080D92C4 movs r1, 0x3C ldrsh r0, [r5, r1] cmp r0, 0x40 beq _080D92B8 ldr r4, _080D92C0 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix movs r0, 0x3C ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite _080D92B8: adds r0, r5, 0 bl move_anim_8072740 b _080D92C8 .align 2, 0 _080D92C0: .4byte 0x02020004 _080D92C4: subs r0, r1, 0x1 strh r0, [r5, 0x2E] _080D92C8: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80D927C thumb_func_start sub_80D92D0 sub_80D92D0: @ 80D92D0 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 movs r0, 0x1E strh r0, [r4, 0x2E] ldr r0, _080D92F0 movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D92F4 ldrh r0, [r4, 0x20] subs r0, 0x14 strh r0, [r4, 0x32] b _080D9306 .align 2, 0 _080D92F0: .4byte 0x03004b00 _080D92F4: ldrh r0, [r4, 0x20] adds r0, 0x14 strh r0, [r4, 0x32] adds r2, r4, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] _080D9306: ldrh r0, [r4, 0x22] subs r0, 0x14 strh r0, [r4, 0x36] ldr r0, _080D9320 str r0, [r4, 0x1C] ldr r1, _080D9324 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080D9320: .4byte sub_8078B34 _080D9324: .4byte sub_80D9328 thumb_func_end sub_80D92D0 thumb_func_start sub_80D9328 sub_80D9328: @ 80D9328 push {r4-r6,lr} adds r5, r0, 0 ldrh r0, [r5, 0x38] adds r0, 0x1 movs r6, 0 strh r0, [r5, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0xB bne _080D9368 ldrh r2, [r5, 0x20] ldrh r4, [r5, 0x24] subs r0, r2, r4 strh r0, [r5, 0x32] ldrh r1, [r5, 0x22] ldrh r3, [r5, 0x26] subs r0, r1, r3 strh r0, [r5, 0x36] movs r0, 0x8 strh r0, [r5, 0x2E] adds r2, r4 strh r2, [r5, 0x20] adds r1, r3 strh r1, [r5, 0x22] strh r6, [r5, 0x26] strh r6, [r5, 0x24] ldr r0, _080D9370 str r0, [r5, 0x1C] ldr r1, _080D9374 adds r0, r5, 0 bl oamt_set_x3A_32 _080D9368: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D9370: .4byte sub_8078B34 _080D9374: .4byte move_anim_8072740 thumb_func_end sub_80D9328 thumb_func_start sub_80D9378 sub_80D9378: @ 80D9378 push {r4-r6,lr} adds r6, r0, 0 ldr r0, _080D93F4 ldrb r1, [r0] movs r0, 0x2 ldr r2, _080D93F8 eors r0, r1 ldrb r1, [r2] cmp r0, r1 bne _080D93A4 ldrb r0, [r2] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080D93A4 ldr r1, _080D93FC movs r2, 0 ldrsh r0, [r1, r2] negs r0, r0 strh r0, [r1] _080D93A4: adds r0, r6, 0 movs r1, 0x1 bl sub_8078764 ldr r0, _080D93F4 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D93C2 ldr r1, _080D93FC ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080D93C2: ldr r4, _080D93FC ldrh r0, [r4, 0x6] movs r5, 0 strh r0, [r6, 0x2E] ldrh r0, [r6, 0x20] strh r0, [r6, 0x30] ldrh r1, [r4, 0x4] adds r0, r1 strh r0, [r6, 0x32] ldrh r0, [r6, 0x22] strh r0, [r6, 0x34] strh r0, [r6, 0x36] adds r0, r6, 0 bl obj_translate_based_on_private_1_2_3_4 ldrh r0, [r4, 0xA] strh r0, [r6, 0x38] ldrh r0, [r4, 0x8] strh r0, [r6, 0x3A] strh r5, [r6, 0x3C] ldr r0, _080D9400 str r0, [r6, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D93F4: .4byte 0x0202f7c8 _080D93F8: .4byte 0x0202f7c9 _080D93FC: .4byte 0x03004b00 _080D9400: .4byte sub_80D9404 thumb_func_end sub_80D9378 thumb_func_start sub_80D9404 sub_80D9404: @ 80D9404 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 bne _080D9430 ldrh r0, [r4, 0x3C] lsls r0, 16 asrs r0, 24 movs r2, 0x38 ldrsh r1, [r4, r2] bl sine ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x3A] ldrh r2, [r4, 0x3C] adds r0, r2 strh r0, [r4, 0x3C] b _080D9436 _080D9430: adds r0, r4, 0 bl move_anim_8072740 _080D9436: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D9404 thumb_func_start sub_80D943C sub_80D943C: @ 80D943C push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 ldr r5, _080D9468 ldrb r1, [r5, 0x4] adds r0, r4, 0 bl StartSpriteAnim ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldr r0, _080D946C str r0, [r4, 0x1C] ldr r1, _080D9470 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9468: .4byte 0x03004b00 _080D946C: .4byte sub_80782D8 _080D9470: .4byte sub_80D9474 thumb_func_end sub_80D943C thumb_func_start sub_80D9474 sub_80D9474: @ 80D9474 push {r4,lr} adds r4, r0, 0 movs r1, 0 bl StartSpriteAffineAnim adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] movs r0, 0x14 strh r0, [r4, 0x2E] ldr r0, _080D94A0 str r0, [r4, 0x1C] ldr r1, _080D94A4 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080D94A0: .4byte sub_80782D8 _080D94A4: .4byte move_anim_8072740 thumb_func_end sub_80D9474 thumb_func_start sub_80D94A8 sub_80D94A8: @ 80D94A8 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 ldr r0, _080D94C4 ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldr r0, _080D94C8 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080D94C4: .4byte 0x03004b00 _080D94C8: .4byte sub_80D94CC thumb_func_end sub_80D94A8 thumb_func_start sub_80D94CC sub_80D94CC: @ 80D94CC push {r4,r5,lr} adds r5, r0, 0 ldrh r0, [r5, 0x2E] subs r0, 0x1 strh r0, [r5, 0x2E] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080D9510 movs r0, 0x6 strh r0, [r5, 0x2E] ldr r4, _080D9518 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] ldr r0, _080D951C str r0, [r5, 0x1C] ldr r1, _080D9520 adds r0, r5, 0 bl oamt_set_x3A_32 _080D9510: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9518: .4byte 0x0202f7c9 _080D951C: .4byte sub_8078B34 _080D9520: .4byte sub_80D9524 thumb_func_end sub_80D94CC thumb_func_start sub_80D9524 sub_80D9524: @ 80D9524 push {lr} movs r1, 0xF strh r1, [r0, 0x2E] ldr r1, _080D9538 str r1, [r0, 0x1C] ldr r1, _080D953C bl oamt_set_x3A_32 pop {r0} bx r0 .align 2, 0 _080D9538: .4byte sub_80782D8 _080D953C: .4byte move_anim_8072740 thumb_func_end sub_80D9524 thumb_func_start sub_80D9540 sub_80D9540: @ 80D9540 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080D956C adds r0, r4, 0 movs r1, 0x1 bl sub_8078764 ldr r1, _080D9568 ldrh r0, [r1, 0x4] strh r0, [r4, 0x30] ldrh r0, [r1, 0x6] strh r0, [r4, 0x32] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080D95C8 .align 2, 0 _080D9568: .4byte 0x03004b00 _080D956C: ldrh r0, [r4, 0x30] ldrh r2, [r4, 0x36] adds r0, r2 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] movs r1, 0x34 ldrsh r0, [r4, r1] movs r2, 0x32 ldrsh r1, [r4, r2] bl sine strh r0, [r4, 0x26] ldrh r0, [r4, 0x34] adds r0, 0x3 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x34] cmp r0, 0x64 ble _080D95BA movs r0, 0x34 ldrsh r1, [r4, r0] lsrs r0, r1, 31 adds r0, r1, r0 asrs r0, 1 lsls r0, 1 subs r1, r0 adds r3, r4, 0 adds r3, 0x3E movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080D95BA: movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0x78 ble _080D95C8 adds r0, r4, 0 bl move_anim_8072740 _080D95C8: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D9540 thumb_func_start sub_80D95D0 sub_80D95D0: @ 80D95D0 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080D95E4 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D95EC ldr r4, _080D95E8 b _080D95EE .align 2, 0 _080D95E4: .4byte 0x03004b00 _080D95E8: .4byte 0x0202f7c8 _080D95EC: ldr r4, _080D9634 _080D95EE: ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r1, _080D9638 ldrh r0, [r1, 0x2] ldrh r2, [r5, 0x20] adds r0, r2 movs r2, 0 strh r0, [r5, 0x20] ldrh r0, [r1, 0x4] ldrh r3, [r5, 0x22] adds r0, r3 strh r0, [r5, 0x22] strh r2, [r5, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r5, 0x30] ldrh r0, [r1, 0x8] strh r0, [r5, 0x32] strh r2, [r5, 0x34] ldr r0, _080D963C str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9634: .4byte 0x0202f7c9 _080D9638: .4byte 0x03004b00 _080D963C: .4byte sub_80D9640 thumb_func_end sub_80D95D0 thumb_func_start sub_80D9640 sub_80D9640: @ 80D9640 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] cmp r2, 0 beq _080D9652 cmp r2, 0x1 beq _080D9676 b _080D96B0 _080D9652: ldrh r0, [r1, 0x30] subs r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 cmp r0, 0 bne _080D96B0 movs r2, 0x32 ldrsh r0, [r1, r2] cmp r0, 0 bne _080D966E adds r0, r1, 0 bl move_anim_8072740 b _080D96B0 _080D966E: ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] b _080D96B0 _080D9676: ldrh r0, [r1, 0x30] adds r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080D969E movs r0, 0 strh r0, [r1, 0x30] ldrh r0, [r1, 0x34] adds r0, 0x1 strh r0, [r1, 0x34] ands r0, r2 lsls r0, 16 cmp r0, 0 beq _080D969A movs r0, 0x2 b _080D969C _080D969A: ldr r0, _080D96B4 _080D969C: strh r0, [r1, 0x24] _080D969E: ldrh r0, [r1, 0x32] subs r0, 0x1 strh r0, [r1, 0x32] lsls r0, 16 cmp r0, 0 bne _080D96B0 adds r0, r1, 0 bl move_anim_8072740 _080D96B0: pop {r0} bx r0 .align 2, 0 _080D96B4: .4byte 0x0000fffe thumb_func_end sub_80D9640 thumb_func_start sub_80D96B8 sub_80D96B8: @ 80D96B8 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _080D96DC movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _080D96E4 ldr r4, _080D96E0 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r2, [r6, 0x4] adds r0, r2 b _080D96F6 .align 2, 0 _080D96DC: .4byte 0x03004b00 _080D96E0: .4byte 0x0202f7c8 _080D96E4: ldr r4, _080D9740 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x4] adds r0, r1 _080D96F6: strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] adds r0, r6 strh r0, [r5, 0x22] ldrh r2, [r5, 0x4] lsls r1, r2, 22 lsrs r1, 22 ldr r3, _080D9744 movs r4, 0x2 ldrsh r0, [r3, r4] lsls r0, 4 adds r1, r0 ldr r4, _080D9748 adds r0, r4, 0 ands r1, r0 ldr r0, _080D974C ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] movs r1, 0 movs r0, 0 strh r0, [r5, 0x2E] movs r2, 0x2 ldrsh r0, [r3, r2] cmp r0, 0x1 beq _080D9764 cmp r0, 0x1 bgt _080D9750 cmp r0, 0 beq _080D975A b _080D978A .align 2, 0 _080D9740: .4byte 0x0202f7c9 _080D9744: .4byte 0x03004b00 _080D9748: .4byte 0x000003ff _080D974C: .4byte 0xfffffc00 _080D9750: cmp r0, 0x2 beq _080D9774 cmp r0, 0x3 beq _080D9784 b _080D978A _080D975A: ldr r0, _080D9760 b _080D9784 .align 2, 0 _080D9760: .4byte 0x0000fffd _080D9764: movs r0, 0x3 strh r0, [r5, 0x3A] ldr r0, _080D9770 strh r0, [r5, 0x3C] b _080D9792 .align 2, 0 _080D9770: .4byte 0x0000fffd _080D9774: ldr r0, _080D9780 strh r0, [r5, 0x3A] movs r0, 0x3 strh r0, [r5, 0x3C] b _080D9792 .align 2, 0 _080D9780: .4byte 0x0000fffd _080D9784: strh r0, [r5, 0x3A] strh r0, [r5, 0x3C] b _080D9792 _080D978A: adds r0, r5, 0 bl move_anim_8072740 b _080D9796 _080D9792: ldr r0, _080D979C str r0, [r5, 0x1C] _080D9796: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D979C: .4byte sub_80D97A0 thumb_func_end sub_80D96B8 thumb_func_start sub_80D97A0 sub_80D97A0: @ 80D97A0 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x3A] ldrh r2, [r1, 0x20] adds r0, r2 strh r0, [r1, 0x20] ldrh r0, [r1, 0x3C] ldrh r2, [r1, 0x22] adds r0, r2 strh r0, [r1, 0x22] ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x28 ble _080D97C8 adds r0, r1, 0 bl move_anim_8072740 _080D97C8: pop {r0} bx r0 thumb_func_end sub_80D97A0 thumb_func_start sub_80D97CC sub_80D97CC: @ 80D97CC push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080D9818 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D9828 ldr r4, _080D981C ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r0, _080D9820 ldrb r0, [r0] bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r5, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] ldr r0, _080D9824 b _080D9844 .align 2, 0 _080D9818: .4byte 0x03004b00 _080D981C: .4byte 0x02024c07 _080D9820: .4byte 0x0202f7c8 _080D9824: .4byte 0x0202f7c9 _080D9828: ldr r0, _080D9860 ldrb r0, [r0] bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r5, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] ldr r0, _080D9864 _080D9844: ldrb r0, [r0] strh r0, [r5, 0x3C] movs r0, 0 strh r0, [r5, 0x2E] movs r0, 0xC strh r0, [r5, 0x30] movs r0, 0x8 strh r0, [r5, 0x32] ldr r0, _080D9868 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9860: .4byte 0x0202f7c9 _080D9864: .4byte 0x0202f7c8 _080D9868: .4byte sub_80D986C thumb_func_end sub_80D97CC thumb_func_start sub_80D986C sub_80D986C: @ 80D986C push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xB4 bne _080D98C6 ldr r1, _080D98CC movs r0, 0 strh r0, [r1] movs r0, 0x10 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] adds r0, r4, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r1, _080D98D0 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080D98D4 str r0, [r4, 0x1C] _080D98C6: pop {r4} pop {r0} bx r0 .align 2, 0 _080D98CC: .4byte REG_BLDCNT _080D98D0: .4byte move_anim_8074EE0 _080D98D4: .4byte sub_8078BB8 thumb_func_end sub_80D986C thumb_func_start sub_80D98D8 sub_80D98D8: @ 80D98D8 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080D9924 ldrh r0, [r4] strh r0, [r5, 0x20] movs r2, 0x78 strh r2, [r5, 0x22] ldrh r0, [r4, 0x6] strh r0, [r5, 0x2E] adds r0, r5, 0 adds r0, 0x36 adds r1, r5, 0 adds r1, 0x38 lsls r2, 8 bl sub_8079BF4 ldrh r0, [r4, 0x2] strh r0, [r5, 0x3A] ldrh r2, [r5, 0x4] lsls r1, r2, 22 lsrs r1, 22 movs r3, 0x4 ldrsh r0, [r4, r3] lsls r0, 2 adds r1, r0 ldr r3, _080D9928 adds r0, r3, 0 ands r1, r0 ldr r0, _080D992C ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] ldr r0, _080D9930 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9924: .4byte 0x03004b00 _080D9928: .4byte 0x000003ff _080D992C: .4byte 0xfffffc00 _080D9930: .4byte sub_80D9934 thumb_func_end sub_80D98D8 thumb_func_start sub_80D9934 sub_80D9934: @ 80D9934 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 movs r1, 0x2E ldrsh r0, [r7, r1] cmp r0, 0 beq _080D9986 movs r2, 0x36 ldrsh r0, [r7, r2] movs r2, 0x38 ldrsh r1, [r7, r2] bl sub_8079BFC adds r4, r0, 0 movs r1, 0x3A ldrsh r0, [r7, r1] subs r4, r0 adds r0, r7, 0 adds r0, 0x36 adds r1, r7, 0 adds r1, 0x38 adds r2, r4, 0 bl sub_8079BF4 asrs r4, 8 strh r4, [r7, 0x22] lsls r4, 16 asrs r4, 16 movs r0, 0x8 negs r0, r0 cmp r4, r0 bge _080D997E adds r0, r7, 0 bl move_anim_8072740 b _080D99DC _080D997E: ldrh r0, [r7, 0x2E] subs r0, 0x1 strh r0, [r7, 0x2E] b _080D99DC _080D9986: ldr r4, _080D99E8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r2, _080D99EC mov r8, r2 ldrb r0, [r2] movs r1, 0x2 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 mov r1, r8 ldrb r0, [r1] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 subs r4, r6 strh r4, [r7, 0x2E] lsrs r0, 24 subs r0, r5 strh r0, [r7, 0x30] ldrh r0, [r7, 0x20] lsls r0, 4 strh r0, [r7, 0x32] ldrh r0, [r7, 0x22] lsls r0, 4 strh r0, [r7, 0x34] ldr r0, _080D99F0 str r0, [r7, 0x1C] _080D99DC: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D99E8: .4byte 0x0202f7c8 _080D99EC: .4byte 0x0202f7c9 _080D99F0: .4byte sub_80D99F4 thumb_func_end sub_80D9934 thumb_func_start sub_80D99F4 sub_80D99F4: @ 80D99F4 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x32] adds r0, r1 strh r0, [r2, 0x32] ldrh r1, [r2, 0x30] ldrh r3, [r2, 0x34] adds r1, r3 strh r1, [r2, 0x34] lsls r0, 16 asrs r0, 20 strh r0, [r2, 0x20] lsls r1, 16 asrs r3, r1, 20 strh r3, [r2, 0x22] adds r0, 0x8 lsls r0, 16 movs r1, 0x80 lsls r1, 17 cmp r0, r1 bhi _080D9A2E adds r1, r3, 0 movs r0, 0x8 negs r0, r0 cmp r1, r0 blt _080D9A2E cmp r1, 0x78 ble _080D9A34 _080D9A2E: adds r0, r2, 0 bl move_anim_8072740 _080D9A34: pop {r0} bx r0 thumb_func_end sub_80D99F4 thumb_func_start sub_80D9A38 sub_80D9A38: @ 80D9A38 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080D9A6C movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D9A7C ldr r4, _080D9A70 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r0, _080D9A74 ldrb r4, [r0] ldr r0, _080D9A78 b _080D9A82 .align 2, 0 _080D9A6C: .4byte 0x03004b00 _080D9A70: .4byte 0x02024c07 _080D9A74: .4byte 0x0202f7c9 _080D9A78: .4byte 0x0202f7c8 _080D9A7C: ldr r0, _080D9AB4 ldrb r4, [r0] ldr r0, _080D9AB8 _080D9A82: ldrb r0, [r0] bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r5, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D9ABC ldrb r2, [r5, 0x3] lsls r1, r2, 26 lsrs r1, 27 movs r0, 0x8 orrs r1, r0 lsls r1, 1 subs r0, 0x47 b _080D9AD6 .align 2, 0 _080D9AB4: .4byte 0x0202f7c8 _080D9AB8: .4byte 0x0202f7c9 _080D9ABC: adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D9ADC ldrb r2, [r5, 0x3] lsls r1, r2, 26 lsrs r1, 27 movs r0, 0x18 orrs r1, r0 lsls r1, 1 subs r0, 0x57 _080D9AD6: ands r0, r2 orrs r0, r1 strb r0, [r5, 0x3] _080D9ADC: movs r0, 0x10 strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] adds r0, r4, 0 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] adds r0, r4, 0 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] adds r0, r5, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r1, _080D9B1C adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080D9B20 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9B1C: .4byte move_anim_8072740 _080D9B20: .4byte sub_8078BB8 thumb_func_end sub_80D9A38 thumb_func_start sub_80D9B24 sub_80D9B24: @ 80D9B24 push {r4,lr} adds r4, r0, 0 movs r0, 0x2E ldrsh r1, [r4, r0] movs r2, 0x36 ldrsh r0, [r4, r2] cmp r1, r0 bne _080D9B3A adds r0, r4, 0 bl move_anim_8072740 _080D9B3A: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] pop {r4} pop {r0} bx r0 thumb_func_end sub_80D9B24 thumb_func_start sub_80D9B48 sub_80D9B48: @ 80D9B48 push {r4-r6,lr} adds r5, r0, 0 ldr r4, _080D9BC4 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r1, _080D9BC8 ldrh r0, [r1, 0x6] strh r0, [r5, 0x30] ldrh r0, [r1] strh r0, [r5, 0x32] ldrh r0, [r1, 0x2] strh r0, [r5, 0x34] ldrh r0, [r1, 0x4] strh r0, [r5, 0x36] ldr r0, _080D9BCC ldrb r6, [r0] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D9B92 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _080D9B92: movs r0, 0x1 ands r6, r0 cmp r6, 0 beq _080D9BA6 ldrh r0, [r5, 0x32] negs r0, r0 strh r0, [r5, 0x32] ldrh r0, [r5, 0x30] adds r0, 0x1 strh r0, [r5, 0x30] _080D9BA6: ldrh r1, [r5, 0x30] lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnim ldrh r0, [r5, 0x32] strh r0, [r5, 0x24] ldrh r0, [r5, 0x34] strh r0, [r5, 0x26] ldr r0, _080D9BD0 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D9BC4: .4byte 0x0202f7c9 _080D9BC8: .4byte 0x03004b00 _080D9BCC: .4byte 0x0202f7c4 _080D9BD0: .4byte sub_80D9B24 thumb_func_end sub_80D9B48 thumb_func_start sub_80D9BD4 sub_80D9BD4: @ 80D9BD4 push {r4,lr} adds r4, r0, 0 ldr r0, _080D9BEC movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D9BF0 adds r0, r4, 0 movs r1, 0 bl sub_80787B0 b _080D9BF8 .align 2, 0 _080D9BEC: .4byte 0x03004b00 _080D9BF0: adds r0, r4, 0 movs r1, 0 bl sub_8078764 _080D9BF8: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D9C0C adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim b _080D9C22 _080D9C0C: ldr r0, _080D9C34 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D9C22 adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim _080D9C22: ldr r0, _080D9C38 str r0, [r4, 0x1C] ldr r1, _080D9C3C adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080D9C34: .4byte 0x0202f7c8 _080D9C38: .4byte sub_8078600 _080D9C3C: .4byte move_anim_8072740 thumb_func_end sub_80D9BD4 thumb_func_start sub_80D9C40 sub_80D9C40: @ 80D9C40 push {r4,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080D9C7A ldrh r0, [r4, 0x30] adds r0, 0x28 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x2 bl sine strh r0, [r4, 0x24] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x28 ble _080D9C7A adds r0, r4, 0 bl move_anim_8072740 _080D9C7A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D9C40 thumb_func_start sub_80D9C80 sub_80D9C80: @ 80D9C80 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _080D9CB0 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080D9CB8 cmp r0, 0x1 bgt _080D9CD2 cmp r0, 0 bne _080D9CD2 movs r0, 0 bl sub_80789D4 ldr r0, _080D9CB4 ldrh r0, [r0] strh r0, [r4, 0x18] b _080D9CCA .align 2, 0 _080D9CB0: .4byte 0x03004b20 _080D9CB4: .4byte 0x03004b00 _080D9CB8: ldrh r0, [r4, 0x18] subs r0, 0x1 strh r0, [r4, 0x18] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080D9CDE _080D9CCA: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080D9CDE _080D9CD2: movs r2, 0xA0 lsls r2, 3 adds r0, r2, 0 ldrh r1, [r4, 0x1A] adds r0, r1 strh r0, [r4, 0x1A] _080D9CDE: movs r2, 0xB0 lsls r2, 4 adds r0, r2, 0 ldrh r1, [r4, 0x1C] adds r0, r1 strh r0, [r4, 0x1C] ldr r0, _080D9D0C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D9D14 ldr r1, _080D9D10 ldrh r0, [r4, 0x1A] lsls r0, 16 asrs r0, 24 ldrh r2, [r1] adds r0, r2 strh r0, [r1] adds r7, r1, 0 b _080D9D24 .align 2, 0 _080D9D0C: .4byte 0x0202f7c9 _080D9D10: .4byte 0x030041b0 _080D9D14: ldr r2, _080D9D64 ldrh r1, [r4, 0x1A] lsls r1, 16 asrs r1, 24 ldrh r0, [r2] subs r0, r1 strh r0, [r2] adds r7, r2, 0 _080D9D24: ldr r3, _080D9D68 ldrh r2, [r4, 0x1C] lsls r0, r2, 16 asrs r0, 24 ldrh r1, [r3] adds r0, r1 strh r0, [r3] movs r0, 0xFF ldrb r1, [r4, 0x1A] movs r5, 0 strh r1, [r4, 0x1A] ands r0, r2 strh r0, [r4, 0x1C] ldr r0, _080D9D6C movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080D9D5C strh r5, [r7] strh r5, [r3] movs r0, 0x1 bl sub_80789D4 adds r0, r6, 0 bl move_anim_task_del _080D9D5C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080D9D64: .4byte 0x030041b0 _080D9D68: .4byte 0x030041b8 _080D9D6C: .4byte 0x03004b00 thumb_func_end sub_80D9C80 thumb_func_start sub_80D9D70 sub_80D9D70: @ 80D9D70 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080D9DC4 movs r1, 0x6 ldrsh r0, [r4, r1] cmp r0, 0 bne _080D9D86 adds r0, r5, 0 movs r1, 0x2 bl StartSpriteAnim _080D9D86: adds r0, r5, 0 movs r1, 0x1 bl sub_80787B0 ldrh r0, [r4, 0x4] strh r0, [r5, 0x2E] ldr r4, _080D9DC8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] ldr r0, _080D9DCC strh r0, [r5, 0x38] adds r0, r5, 0 bl sub_80786EC ldr r0, _080D9DD0 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9DC4: .4byte 0x03004b00 _080D9DC8: .4byte 0x0202f7c9 _080D9DCC: .4byte 0x0000ffe2 _080D9DD0: .4byte sub_80D9DD4 thumb_func_end sub_80D9D70 thumb_func_start sub_80D9DD4 sub_80D9DD4: @ 80D9DD4 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080D9DE8 adds r0, r4, 0 bl move_anim_8072740 _080D9DE8: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D9DD4 thumb_func_start sub_80D9DF0 sub_80D9DF0: @ 80D9DF0 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 ldr r5, _080D9E64 movs r1, 0x6 ldrsh r0, [r5, r1] cmp r0, 0 bne _080D9E08 adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim _080D9E08: adds r0, r4, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080D9E68 ldrb r0, [r0] mov r6, sp adds r6, 0x2 movs r1, 0x1 mov r2, sp adds r3, r6, 0 bl sub_807A3FC ldr r0, _080D9E6C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D9E36 ldrh r0, [r5, 0x8] negs r0, r0 strh r0, [r5, 0x8] _080D9E36: ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] mov r1, sp ldrh r0, [r5, 0x8] ldrh r1, [r1] adds r0, r1 strh r0, [r4, 0x32] ldrh r0, [r5, 0xA] ldrh r6, [r6] adds r0, r6 strh r0, [r4, 0x36] ldr r0, _080D9E70 strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC ldr r0, _080D9E74 str r0, [r4, 0x1C] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080D9E64: .4byte 0x03004b00 _080D9E68: .4byte 0x0202f7c9 _080D9E6C: .4byte 0x0202f7c8 _080D9E70: .4byte 0x0000ffe2 _080D9E74: .4byte sub_80D9E78 thumb_func_end sub_80D9DF0 thumb_func_start sub_80D9E78 sub_80D9E78: @ 80D9E78 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080D9E8C adds r0, r4, 0 bl move_anim_8072740 _080D9E8C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D9E78 thumb_func_start sub_80D9E94 sub_80D9E94: @ 80D9E94 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080D9EE0 ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] ldrh r1, [r5] adds r0, r1 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] ldrh r1, [r5, 0x2] adds r0, r1 strh r0, [r4, 0x36] adds r0, r4, 0 bl sub_8078A5C movs r1, 0x30 ldrsh r0, [r4, r1] movs r2, 0x4 ldrsh r1, [r5, r2] bl __divsi3 strh r0, [r4, 0x38] movs r1, 0x32 ldrsh r0, [r4, r1] movs r2, 0x4 ldrsh r1, [r5, r2] bl __divsi3 strh r0, [r4, 0x3A] ldr r0, _080D9EE4 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9EE0: .4byte 0x03004b00 _080D9EE4: .4byte sub_80D9EE8 thumb_func_end sub_80D9E94 thumb_func_start sub_80D9EE8 sub_80D9EE8: @ 80D9EE8 push {r4,lr} adds r4, r0, 0 bl sub_8078394 ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x38] subs r0, r1 strh r0, [r4, 0x30] ldrh r0, [r4, 0x32] ldrh r1, [r4, 0x3A] subs r0, r1 strh r0, [r4, 0x32] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080D9F0E adds r0, r4, 0 bl move_anim_8072740 _080D9F0E: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D9EE8 thumb_func_start sub_80D9F14 sub_80D9F14: @ 80D9F14 push {r4,lr} adds r4, r0, 0 ldr r0, _080D9F74 ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 movs r1, 0x1 bl sub_807A3FC ldr r0, _080D9F78 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D9F40 ldr r1, _080D9F7C ldrh r0, [r1] negs r0, r0 strh r0, [r1] _080D9F40: ldr r0, _080D9F7C ldrh r2, [r0] ldrh r1, [r4, 0x20] adds r2, r1 strh r2, [r4, 0x20] ldrh r1, [r0, 0x2] ldrh r3, [r4, 0x22] adds r1, r3 strh r1, [r4, 0x22] ldrh r3, [r0, 0x8] strh r3, [r4, 0x2E] ldrh r0, [r0, 0x4] adds r2, r0 strh r2, [r4, 0x32] adds r1, r3 strh r1, [r4, 0x36] ldr r0, _080D9F80 str r0, [r4, 0x1C] ldr r1, _080D9F84 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080D9F74: .4byte 0x0202f7c9 _080D9F78: .4byte 0x0202f7c8 _080D9F7C: .4byte 0x03004b00 _080D9F80: .4byte sub_8078B34 _080D9F84: .4byte move_anim_8072740 thumb_func_end sub_80D9F14 thumb_func_start sub_80D9F88 sub_80D9F88: @ 80D9F88 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080D9FA0 movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0 bne _080D9FA4 adds r0, r4, 0 movs r1, 0x1 bl sub_8078764 b _080D9FDA .align 2, 0 _080D9FA0: .4byte 0x03004b00 _080D9FA4: ldr r0, _080D9FE4 ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 movs r1, 0x1 bl sub_807A3FC ldr r0, _080D9FE8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D9FCA ldrh r0, [r5] negs r0, r0 strh r0, [r5] _080D9FCA: ldrh r0, [r5] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] _080D9FDA: ldr r0, _080D9FEC str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D9FE4: .4byte 0x0202f7c9 _080D9FE8: .4byte 0x0202f7c8 _080D9FEC: .4byte sub_80D9FF0 thumb_func_end sub_80D9F88 thumb_func_start sub_80D9FF0 sub_80D9FF0: @ 80D9FF0 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0xB movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x4 bl sine strh r0, [r4, 0x24] ldrh r0, [r4, 0x30] adds r0, 0x30 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 24 negs r0, r0 strh r0, [r4, 0x26] adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080DA02C adds r0, r4, 0 bl move_anim_8072740 _080DA02C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80D9FF0 thumb_func_start sub_80DA034 sub_80DA034: @ 80DA034 push {r4,lr} adds r4, r0, 0 movs r1, 0 bl sub_8078764 ldrh r0, [r4, 0x22] adds r0, 0x14 strh r0, [r4, 0x22] movs r0, 0xBF strh r0, [r4, 0x30] ldr r1, _080DA058 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080DA058: .4byte sub_80DA05C thumb_func_end sub_80DA034 thumb_func_start sub_80DA05C sub_80DA05C: @ 80DA05C push {r4,lr} adds r4, r0, 0 movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x20 bl sine strh r0, [r4, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x8 bl cosine strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r0, 0x5 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x47 bne _080DA096 adds r0, r4, 0 bl move_anim_8072740 _080DA096: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DA05C thumb_func_start sub_80DA09C sub_80DA09C: @ 80DA09C push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080DA0CC lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldr r1, _080DA0D0 ldrh r0, [r1, 0x2] strh r0, [r4, 0x8] ldrh r0, [r1] strh r0, [r4, 0xA] ldr r0, _080DA0D4 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xC] ldr r0, _080DA0D8 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080DA0CC: .4byte 0x03004b20 _080DA0D0: .4byte 0x03004b00 _080DA0D4: .4byte 0x00002719 _080DA0D8: .4byte sub_80DA0DC thumb_func_end sub_80DA09C thumb_func_start sub_80DA0DC sub_80DA0DC: @ 80DA0DC push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r2, _080DA15C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x1C] adds r1, r0, 0x1 strh r1, [r3, 0x1C] lsls r0, 16 asrs r0, 16 movs r4, 0xA ldrsh r1, [r3, r4] adds r7, r2, 0 cmp r0, r1 bne _080DA13A movs r0, 0 strh r0, [r3, 0x1C] ldrb r0, [r3, 0xC] ldr r2, _080DA160 lsls r0, 4 movs r3, 0x84 lsls r3, 1 adds r1, r0, r3 lsls r1, 1 adds r1, r2 ldrh r6, [r1] movs r4, 0x7 mov r12, r0 ldr r0, _080DA164 add r0, r12 lsls r0, 1 adds r3, r0, r2 _080DA122: ldrh r0, [r3] strh r0, [r1] subs r3, 0x2 subs r1, 0x2 subs r4, 0x1 cmp r4, 0 bgt _080DA122 ldr r0, _080DA168 add r0, r12 lsls r0, 1 adds r0, r2 strh r6, [r0] _080DA13A: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r7 ldrh r1, [r0, 0x8] subs r1, 0x1 strh r1, [r0, 0x8] lsls r1, 16 cmp r1, 0 bne _080DA154 adds r0, r5, 0 bl move_anim_task_del _080DA154: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DA15C: .4byte 0x03004b20 _080DA160: .4byte 0x0202eec8 _080DA164: .4byte 0x00000107 _080DA168: .4byte 0x00000101 thumb_func_end sub_80DA0DC thumb_func_start sub_80DA16C sub_80DA16C: @ 80DA16C push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080DA1D8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DA18C ldr r1, _080DA1DC ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080DA18C: ldr r4, _080DA1DC ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] ldrh r0, [r6, 0x20] strh r0, [r6, 0x30] ldr r5, _080DA1E0 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] adds r0, r1 strh r0, [r6, 0x32] ldrh r0, [r6, 0x22] strh r0, [r6, 0x34] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] adds r0, r4 strh r0, [r6, 0x36] adds r0, r6, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r0, _080DA1E4 str r0, [r6, 0x1C] ldr r1, _080DA1E8 adds r0, r6, 0 bl oamt_set_x3A_32 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DA1D8: .4byte 0x0202f7c8 _080DA1DC: .4byte 0x03004b00 _080DA1E0: .4byte 0x0202f7c9 _080DA1E4: .4byte sub_80785E4 _080DA1E8: .4byte sub_80DA1EC thumb_func_end sub_80DA16C thumb_func_start sub_80DA1EC sub_80DA1EC: @ 80DA1EC push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080DA200 adds r0, r4, 0 bl move_anim_8072740 _080DA200: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DA1EC thumb_func_start sub_80DA208 sub_80DA208: @ 80DA208 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080DA2A4 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DA234 ldr r1, _080DA2A8 ldrh r0, [r1] negs r0, r0 strh r0, [r1] ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] ldrh r0, [r1, 0x6] negs r0, r0 strh r0, [r1, 0x6] _080DA234: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DA24C ldr r0, _080DA2A8 ldrh r1, [r0, 0x2] negs r1, r1 strh r1, [r0, 0x2] ldrh r1, [r0, 0x6] negs r1, r1 strh r1, [r0, 0x6] _080DA24C: ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 ldr r2, _080DA2A8 ldrh r1, [r2] ldrh r3, [r5, 0x20] adds r1, r3 strh r1, [r5, 0x20] lsrs r0, 24 ldrh r1, [r2, 0x2] adds r0, r1 strh r0, [r5, 0x22] ldrh r0, [r2, 0x8] strh r0, [r5, 0x2E] movs r3, 0xC ldrsh r0, [r2, r3] cmp r0, 0 bne _080DA2B0 ldr r4, _080DA2AC ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] b _080DA2C2 .align 2, 0 _080DA2A4: .4byte 0x0202f7c8 _080DA2A8: .4byte 0x03004b00 _080DA2AC: .4byte 0x0202f7c9 _080DA2B0: ldr r0, _080DA2F0 ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 adds r3, r5, 0 adds r3, 0x36 movs r1, 0x1 bl sub_807A3FC _080DA2C2: ldr r4, _080DA2F4 ldrh r0, [r4, 0x4] ldrh r1, [r5, 0x32] adds r0, r1 strh r0, [r5, 0x32] ldrh r0, [r4, 0x6] ldrh r3, [r5, 0x36] adds r0, r3 strh r0, [r5, 0x36] ldr r0, _080DA2F8 str r0, [r5, 0x1C] ldr r1, _080DA2FC adds r0, r5, 0 bl oamt_set_x3A_32 ldrb r1, [r4, 0xA] adds r0, r5, 0 bl SeekSpriteAnim pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DA2F0: .4byte 0x0202f7c9 _080DA2F4: .4byte 0x03004b00 _080DA2F8: .4byte sub_8078B34 _080DA2FC: .4byte move_anim_8072740 thumb_func_end sub_80DA208 thumb_func_start sub_80DA300 sub_80DA300: @ 80DA300 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r1, _080DA33C ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r4, 0x30] ldr r0, _080DA340 str r0, [r4, 0x1C] movs r0, 0 bl obj_id_for_side_relative_to_move ldr r2, _080DA344 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080DA33C: .4byte 0x03004b00 _080DA340: .4byte sub_80DA348 _080DA344: .4byte 0x02020004 thumb_func_end sub_80DA300 thumb_func_start sub_80DA348 sub_80DA348: @ 80DA348 push {lr} adds r2, r0, 0 ldrh r1, [r2, 0x2E] movs r3, 0x2E ldrsh r0, [r2, r3] cmp r0, 0 ble _080DA35C subs r0, r1, 0x1 strh r0, [r2, 0x2E] b _080DA36E _080DA35C: ldrh r0, [r2, 0x30] ldrh r1, [r2, 0x32] adds r0, r1 strh r0, [r2, 0x32] lsls r0, 16 asrs r0, 24 ldrh r1, [r2, 0x26] subs r1, r0 strh r1, [r2, 0x26] _080DA36E: movs r3, 0x22 ldrsh r0, [r2, r3] movs r3, 0x26 ldrsh r1, [r2, r3] adds r0, r1 movs r1, 0x20 negs r1, r1 cmp r0, r1 bge _080DA386 adds r0, r2, 0 bl move_anim_8072740 _080DA386: pop {r0} bx r0 thumb_func_end sub_80DA348 thumb_func_start sub_80DA38C sub_80DA38C: @ 80DA38C push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080DA3B4 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DA3BC movs r0, 0x88 lsls r0, 1 strh r0, [r5, 0x20] ldr r0, _080DA3B8 strh r0, [r5, 0x22] adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAffineAnim b _080DA3C2 .align 2, 0 _080DA3B4: .4byte 0x0202f7c8 _080DA3B8: .4byte 0x0000ffe0 _080DA3BC: ldr r0, _080DA400 strh r0, [r5, 0x20] strh r0, [r5, 0x22] _080DA3C2: ldr r0, _080DA404 ldrh r0, [r0] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] ldr r4, _080DA408 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] adds r0, r5, 0 bl obj_translate_based_on_private_1_2_3_4 ldr r0, _080DA40C str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DA400: .4byte 0x0000ffe0 _080DA404: .4byte 0x03004b00 _080DA408: .4byte 0x0202f7c9 _080DA40C: .4byte sub_80DA410 thumb_func_end sub_80DA38C thumb_func_start sub_80DA410 sub_80DA410: @ 80DA410 push {r4,lr} adds r4, r0, 0 movs r0, 0x1 strh r0, [r4, 0x2E] adds r0, r4, 0 bl sub_8078B5C ldrh r1, [r4, 0x34] lsrs r0, r1, 8 cmp r0, 0xC8 bls _080DA438 ldrh r0, [r4, 0x24] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] movs r0, 0 strh r0, [r4, 0x24] movs r0, 0xFF ands r0, r1 strh r0, [r4, 0x34] _080DA438: movs r1, 0x20 ldrsh r0, [r4, r1] movs r2, 0x24 ldrsh r1, [r4, r2] adds r0, r1 adds r0, 0x20 movs r1, 0x98 lsls r1, 1 cmp r0, r1 bhi _080DA45A movs r1, 0x22 ldrsh r0, [r4, r1] movs r2, 0x26 ldrsh r1, [r4, r2] adds r0, r1 cmp r0, 0xA0 ble _080DA480 _080DA45A: movs r0, 0 bl obj_id_for_side_relative_to_move ldr r2, _080DA488 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] adds r0, r4, 0 bl move_anim_8072740 _080DA480: pop {r4} pop {r0} bx r0 .align 2, 0 _080DA488: .4byte 0x02020004 thumb_func_end sub_80DA410 thumb_func_start sub_80DA48C sub_80DA48C: @ 80DA48C push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] subs r1, r0, 0x1 strh r1, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bgt _080DA4CC ldrb r0, [r4, 0x1] lsls r0, 30 lsrs r0, 30 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080DA4BE ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 strb r0, [r4, 0x1] _080DA4BE: adds r0, r4, 0 bl DestroySprite ldr r1, _080DA4D4 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] _080DA4CC: pop {r4} pop {r0} bx r0 .align 2, 0 _080DA4D4: .4byte 0x0202f7b2 thumb_func_end sub_80DA48C thumb_func_start sub_80DA4D8 sub_80DA4D8: @ 80DA4D8 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 adds r5, r7, 0 adds r5, 0x2E ldr r0, _080DA4F8 ldrh r1, [r0, 0xE] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080DA500 ldr r0, _080DA4FC b _080DA502 .align 2, 0 _080DA4F8: .4byte 0x03004b00 _080DA4FC: .4byte 0x0202f7c8 _080DA500: ldr r0, _080DA5B0 _080DA502: ldrb r6, [r0] adds r0, r6, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DA518 ldr r1, _080DA5B4 ldrh r0, [r1] negs r0, r0 strh r0, [r1] _080DA518: adds r0, r6, 0 movs r1, 0 bl sub_8077ABC lsls r0, 24 ldr r4, _080DA5B4 lsrs r0, 24 ldrh r1, [r4] adds r0, r1 strh r0, [r7, 0x20] adds r0, r6, 0 movs r1, 0x1 bl sub_8077ABC lsls r0, 24 ldrh r1, [r4, 0x2] lsrs r0, 24 adds r1, r0, r1 strh r1, [r7, 0x22] lsls r1, 8 strh r1, [r5, 0x8] ldrh r1, [r4, 0xC] adds r0, r1 lsls r0, 1 ldrh r2, [r5, 0xE] movs r1, 0x1 ands r1, r2 orrs r1, r0 strh r1, [r5, 0xE] ldrb r0, [r5] movs r2, 0x4 mov r8, r2 mov r1, r8 orrs r0, r1 strb r0, [r5] ldrh r0, [r4, 0x4] ldrb r1, [r4, 0x4] strh r1, [r5, 0x2] lsls r0, 16 lsrs r0, 24 strh r0, [r5, 0xA] ldrh r0, [r4, 0x6] strh r0, [r5, 0x4] ldrh r0, [r4, 0x8] strh r0, [r5, 0x6] ldrh r0, [r4, 0xA] strh r0, [r5, 0xC] subs r1, 0x40 lsls r1, 16 lsrs r1, 16 cmp r1, 0x7F bhi _080DA618 ldr r0, _080DA5B8 ldr r2, _080DA5BC adds r0, r2 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080DA5C0 adds r0, r6, 0 bl sub_8079ED4 lsls r0, 24 lsrs r0, 24 adds r0, 0x1 movs r1, 0x3 ands r0, r1 lsls r0, 2 ldrb r2, [r7, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r7, 0x5] b _080DA5D8 .align 2, 0 _080DA5B0: .4byte 0x0202f7c9 _080DA5B4: .4byte 0x03004b00 _080DA5B8: .4byte 0x03001770 _080DA5BC: .4byte 0x0000043d _080DA5C0: adds r0, r6, 0 bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r7, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r7, 0x5] _080DA5D8: ldrb r1, [r5, 0xE] movs r4, 0x2 negs r4, r4 adds r0, r4, 0 ands r0, r1 strb r0, [r5, 0xE] movs r1, 0x4 ldrsh r0, [r5, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 bne _080DA678 adds r3, r7, 0 adds r3, 0x3F ldrb r2, [r3] lsls r0, r2, 31 lsrs r0, 31 movs r1, 0x1 eors r1, r0 adds r0, r4, 0 ands r0, r2 orrs r0, r1 strb r0, [r3] lsls r0, 31 lsrs r0, 31 adds r1, r7, 0 adds r1, 0x2A strb r0, [r1] ldrb r0, [r3] movs r1, 0x4 b _080DA66E _080DA618: adds r0, r6, 0 bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r7, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r7, 0x5] ldrb r0, [r5, 0xE] movs r4, 0x1 orrs r0, r4 strb r0, [r5, 0xE] movs r2, 0x4 ldrsh r0, [r5, r2] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _080DA678 adds r3, r7, 0 adds r3, 0x3F ldrb r2, [r3] lsls r1, r2, 31 lsrs r1, 31 movs r0, 0x1 eors r1, r0 ands r1, r4 movs r0, 0x2 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] lsls r0, 31 lsrs r0, 31 adds r1, r7, 0 adds r1, 0x2A strb r0, [r1] ldrb r0, [r3] mov r1, r8 _080DA66E: orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r3] _080DA678: ldrh r1, [r5, 0x2] lsrs r1, 6 lsls r1, 4 ldrb r2, [r5] movs r0, 0xF ands r0, r2 orrs r0, r1 strb r0, [r5] ldr r3, _080DA6E4 ldrh r0, [r5, 0x2] lsls r0, 1 adds r0, r3 movs r2, 0 ldrsh r1, [r0, r2] ldrb r0, [r5, 0xC] muls r0, r1 asrs r0, 8 strh r0, [r7, 0x24] ldrb r2, [r7, 0x3] lsls r2, 26 lsrs r2, 27 movs r1, 0x24 ldrsh r0, [r7, r1] negs r0, r0 asrs r0, 1 ldrb r5, [r5, 0xA] adds r0, r5 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r3 ldrh r4, [r1] ldr r1, _080DA6E8 lsls r2, 3 adds r2, r1 adds r0, 0x40 lsls r0, 1 adds r0, r3 ldrh r0, [r0] strh r0, [r2, 0x6] strh r0, [r2] strh r4, [r2, 0x2] lsls r0, r4, 16 asrs r0, 16 negs r0, r0 strh r0, [r2, 0x4] ldr r0, _080DA6EC str r0, [r7, 0x1C] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DA6E4: .4byte gSineTable _080DA6E8: .4byte 0x030027f0 _080DA6EC: .4byte sub_80DA6F0 thumb_func_end sub_80DA4D8 thumb_func_start sub_80DA6F0 sub_80DA6F0: @ 80DA6F0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 movs r6, 0 movs r0, 0x2E adds r0, r5 mov r12, r0 ldrb r2, [r0] movs r7, 0x1 movs r1, 0x1 mov r9, r1 mov r0, r9 ands r0, r2 cmp r0, 0 beq _080DA730 mov r3, r12 ldrb r0, [r3, 0x1] adds r1, r0, 0 adds r1, 0xFF strb r1, [r3, 0x1] lsls r0, 24 cmp r0, 0 beq _080DA724 b _080DAD1A _080DA724: movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r3] strb r6, [r3, 0x1] b _080DAD1A _080DA730: mov r4, r12 ldrh r0, [r4, 0x2] lsrs r4, r0, 6 mov r8, r0 cmp r4, 0x1 bne _080DA73E b _080DA896 _080DA73E: cmp r4, 0x1 bgt _080DA748 cmp r4, 0 beq _080DA756 b _080DAC52 _080DA748: cmp r4, 0x2 bne _080DA74E b _080DA9C8 _080DA74E: cmp r4, 0x3 bne _080DA754 b _080DAB0E _080DA754: b _080DAC52 _080DA756: lsls r1, r2, 24 lsrs r0, r1, 28 cmp r0, 0x1 bne _080DA76C movs r0, 0x8 orrs r0, r2 orrs r0, r7 mov r1, r12 strb r0, [r1] strb r6, [r1, 0x1] b _080DA88A _080DA76C: lsrs r0, r1, 28 cmp r0, 0x3 bne _080DA790 lsls r0, r2, 30 lsrs r0, 31 movs r1, 0x1 eors r0, r1 ands r0, r7 lsls r0, 1 movs r1, 0x3 negs r1, r1 ands r1, r2 orrs r1, r0 orrs r1, r7 mov r2, r12 strb r1, [r2] strb r6, [r2, 0x1] b _080DA88A _080DA790: movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _080DA88A adds r3, r5, 0 adds r3, 0x3F ldrb r2, [r3] lsls r1, r2, 31 lsrs r1, 31 movs r4, 0x1 eors r1, r4 ands r1, r7 movs r6, 0x2 negs r6, r6 adds r0, r6, 0 ands r0, r2 orrs r0, r1 strb r0, [r3] lsls r0, 31 lsrs r0, 31 adds r1, r5, 0 adds r1, 0x2A strb r0, [r1] ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r3] mov r3, r12 ldrb r1, [r3] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080DA87A ldr r0, _080DA80C ldr r1, _080DA810 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080DA82E ldrb r1, [r3, 0xE] mov r0, r9 ands r0, r1 cmp r0, 0 bne _080DA814 ldrb r2, [r5, 0x5] lsls r1, r2, 28 lsrs r1, 30 subs r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] b _080DA868 .align 2, 0 _080DA80C: .4byte 0x03001770 _080DA810: .4byte 0x0000043d _080DA814: ldrb r2, [r5, 0x5] lsls r1, r2, 28 lsrs r1, 30 adds r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] b _080DA866 _080DA82E: mov r0, r12 ldrb r1, [r0, 0xE] mov r0, r9 ands r0, r1 cmp r0, 0 bne _080DA85C adds r1, r5, 0 adds r1, 0x43 ldrb r0, [r1] subs r0, 0xC strb r0, [r1] mov r1, r12 ldrb r2, [r1, 0xE] lsls r0, r2, 31 lsrs r0, 31 eors r0, r4 ands r0, r7 adds r1, r6, 0 ands r1, r2 orrs r1, r0 mov r2, r12 strb r1, [r2, 0xE] b _080DA87A _080DA85C: adds r1, r5, 0 adds r1, 0x43 ldrb r0, [r1] adds r0, 0xC strb r0, [r1] _080DA866: mov r3, r12 _080DA868: ldrb r2, [r3, 0xE] lsls r0, r2, 31 lsrs r0, 31 eors r0, r4 ands r0, r7 adds r1, r6, 0 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xE] _080DA87A: mov r4, r12 ldrb r1, [r4] movs r0, 0x9 negs r0, r0 ands r0, r1 strb r0, [r4] ldrh r0, [r4, 0x2] mov r8, r0 _080DA88A: mov r2, r12 ldrb r1, [r2] movs r0, 0xF ands r0, r1 strb r0, [r2] b _080DAC52 _080DA896: lsls r1, r2, 24 lsrs r0, r1, 28 cmp r0, 0 bne _080DA8AC movs r0, 0x8 orrs r0, r2 orrs r0, r7 mov r3, r12 strb r0, [r3] strb r6, [r3, 0x1] b _080DA9BC _080DA8AC: lsrs r0, r1, 28 cmp r0, 0x2 bne _080DA8BE adds r0, r2, 0 orrs r0, r7 mov r4, r12 strb r0, [r4] strb r6, [r4, 0x1] b _080DA9BC _080DA8BE: movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _080DA9BC adds r3, r5, 0 adds r3, 0x3F ldrb r2, [r3] lsls r1, r2, 31 lsrs r1, 31 movs r4, 0x1 eors r1, r4 ands r1, r7 movs r6, 0x2 negs r6, r6 adds r0, r6, 0 ands r0, r2 orrs r0, r1 strb r0, [r3] lsls r0, 31 lsrs r0, 31 adds r1, r5, 0 adds r1, 0x2A strb r0, [r1] ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r3] mov r0, r12 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080DA9AC ldr r0, _080DA940 ldr r1, _080DA944 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080DA962 mov r2, r12 ldrb r1, [r2, 0xE] mov r0, r9 ands r0, r1 cmp r0, 0 bne _080DA948 ldrb r2, [r5, 0x5] lsls r1, r2, 28 lsrs r1, 30 subs r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] mov r3, r12 b _080DA978 .align 2, 0 _080DA940: .4byte 0x03001770 _080DA944: .4byte 0x0000043d _080DA948: ldrb r2, [r5, 0x5] lsls r1, r2, 28 lsrs r1, 30 adds r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] b _080DA996 _080DA962: mov r3, r12 ldrb r1, [r3, 0xE] mov r0, r9 ands r0, r1 cmp r0, 0 bne _080DA98C adds r1, r5, 0 adds r1, 0x43 ldrb r0, [r1] subs r0, 0xC strb r0, [r1] _080DA978: ldrb r2, [r3, 0xE] lsls r0, r2, 31 lsrs r0, 31 eors r0, r4 ands r0, r7 adds r1, r6, 0 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xE] b _080DA9AC _080DA98C: adds r1, r5, 0 adds r1, 0x43 ldrb r0, [r1] adds r0, 0xC strb r0, [r1] _080DA996: mov r0, r12 ldrb r2, [r0, 0xE] lsls r0, r2, 31 lsrs r0, 31 eors r0, r4 ands r0, r7 adds r1, r6, 0 ands r1, r2 orrs r1, r0 mov r2, r12 strb r1, [r2, 0xE] _080DA9AC: mov r3, r12 ldrb r1, [r3] movs r0, 0x9 negs r0, r0 ands r0, r1 strb r0, [r3] ldrh r4, [r3, 0x2] mov r8, r4 _080DA9BC: mov r1, r12 ldrb r0, [r1] movs r1, 0xF ands r1, r0 movs r0, 0x10 b _080DAC4C _080DA9C8: lsls r1, r2, 24 lsrs r0, r1, 28 cmp r0, 0x3 bne _080DA9DE movs r0, 0x8 orrs r0, r2 orrs r0, r7 mov r3, r12 strb r0, [r3] strb r6, [r3, 0x1] b _080DAAFE _080DA9DE: lsrs r0, r1, 28 cmp r0, 0x1 bne _080DA9F0 adds r0, r2, 0 orrs r0, r7 mov r4, r12 strb r0, [r4] strb r6, [r4, 0x1] b _080DAAFE _080DA9F0: movs r0, 0x8 ands r0, r2 cmp r0, 0 bne _080DA9FA b _080DAAFE _080DA9FA: adds r3, r5, 0 adds r3, 0x3F ldrb r2, [r3] lsls r1, r2, 31 lsrs r1, 31 movs r6, 0x1 eors r1, r6 ands r1, r7 movs r0, 0x2 negs r0, r0 mov r8, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] lsls r0, 31 lsrs r0, 31 adds r1, r5, 0 adds r1, 0x2A strb r0, [r1] ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r3] mov r2, r12 ldrb r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080DAAEC ldr r0, _080DAA6C ldr r3, _080DAA70 adds r0, r3 ldrb r0, [r0] ands r4, r0 cmp r4, 0 beq _080DAAA4 ldrb r1, [r2, 0xE] mov r0, r9 ands r0, r1 cmp r0, 0 bne _080DAA74 ldrb r2, [r5, 0x5] lsls r1, r2, 28 lsrs r1, 30 subs r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] b _080DAAD8 .align 2, 0 _080DAA6C: .4byte 0x03001770 _080DAA70: .4byte 0x0000043d _080DAA74: ldrb r2, [r5, 0x5] lsls r1, r2, 28 lsrs r1, 30 adds r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] mov r0, r12 ldrb r2, [r0, 0xE] lsls r0, r2, 31 lsrs r0, 31 eors r0, r6 ands r0, r7 mov r1, r8 ands r1, r2 orrs r1, r0 mov r2, r12 strb r1, [r2, 0xE] b _080DAAEC _080DAAA4: mov r3, r12 ldrb r1, [r3, 0xE] mov r0, r9 ands r0, r1 cmp r0, 0 bne _080DAACE adds r1, r5, 0 adds r1, 0x43 ldrb r0, [r1] subs r0, 0xC strb r0, [r1] ldrb r2, [r3, 0xE] lsls r0, r2, 31 lsrs r0, 31 eors r0, r6 ands r0, r7 mov r1, r8 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xE] b _080DAAEC _080DAACE: adds r1, r5, 0 adds r1, 0x43 ldrb r0, [r1] adds r0, 0xC strb r0, [r1] _080DAAD8: mov r4, r12 ldrb r2, [r4, 0xE] lsls r0, r2, 31 lsrs r0, 31 eors r0, r6 ands r0, r7 mov r1, r8 ands r1, r2 orrs r1, r0 strb r1, [r4, 0xE] _080DAAEC: mov r0, r12 ldrb r1, [r0] movs r0, 0x9 negs r0, r0 ands r0, r1 mov r1, r12 strb r0, [r1] ldrh r2, [r1, 0x2] mov r8, r2 _080DAAFE: mov r3, r12 ldrb r0, [r3] movs r1, 0xF ands r1, r0 movs r0, 0x20 orrs r1, r0 strb r1, [r3] b _080DAC52 _080DAB0E: lsls r1, r2, 24 lsrs r0, r1, 28 cmp r0, 0x2 bne _080DAB20 movs r0, 0x8 orrs r0, r2 mov r4, r12 strb r0, [r4] b _080DAC42 _080DAB20: lsrs r0, r1, 28 cmp r0, 0 bne _080DAB44 lsls r0, r2, 30 lsrs r0, 31 movs r1, 0x1 eors r0, r1 ands r0, r7 lsls r0, 1 movs r1, 0x3 negs r1, r1 ands r1, r2 orrs r1, r0 orrs r1, r7 mov r0, r12 strb r1, [r0] strb r6, [r0, 0x1] b _080DAC42 _080DAB44: movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _080DAC42 adds r3, r5, 0 adds r3, 0x3F ldrb r2, [r3] lsls r1, r2, 31 lsrs r1, 31 movs r4, 0x1 eors r1, r4 ands r1, r7 movs r6, 0x2 negs r6, r6 adds r0, r6, 0 ands r0, r2 orrs r0, r1 strb r0, [r3] lsls r0, 31 lsrs r0, 31 adds r1, r5, 0 adds r1, 0x2A strb r0, [r1] ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r3] mov r2, r12 ldrb r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080DAC32 ldr r0, _080DABC4 ldr r3, _080DABC8 adds r0, r3 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080DABE6 ldrb r1, [r2, 0xE] mov r0, r9 ands r0, r1 cmp r0, 0 bne _080DABCC ldrb r2, [r5, 0x5] lsls r1, r2, 28 lsrs r1, 30 subs r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] mov r0, r12 ldrb r2, [r0, 0xE] b _080DAC00 .align 2, 0 _080DABC4: .4byte 0x03001770 _080DABC8: .4byte 0x0000043d _080DABCC: ldrb r2, [r5, 0x5] lsls r1, r2, 28 lsrs r1, 30 adds r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] b _080DAC1E _080DABE6: mov r0, r12 ldrb r1, [r0, 0xE] mov r0, r9 ands r0, r1 cmp r0, 0 bne _080DAC14 adds r1, r5, 0 adds r1, 0x43 ldrb r0, [r1] subs r0, 0xC strb r0, [r1] mov r1, r12 ldrb r2, [r1, 0xE] _080DAC00: lsls r0, r2, 31 lsrs r0, 31 eors r0, r4 ands r0, r7 adds r1, r6, 0 ands r1, r2 orrs r1, r0 mov r2, r12 strb r1, [r2, 0xE] b _080DAC32 _080DAC14: adds r1, r5, 0 adds r1, 0x43 ldrb r0, [r1] adds r0, 0xC strb r0, [r1] _080DAC1E: mov r3, r12 ldrb r2, [r3, 0xE] lsls r0, r2, 31 lsrs r0, 31 eors r0, r4 ands r0, r7 adds r1, r6, 0 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xE] _080DAC32: mov r4, r12 ldrb r1, [r4] movs r0, 0x9 negs r0, r0 ands r0, r1 strb r0, [r4] ldrh r0, [r4, 0x2] mov r8, r0 _080DAC42: mov r1, r12 ldrb r0, [r1] movs r1, 0xF ands r1, r0 movs r0, 0x30 _080DAC4C: orrs r1, r0 mov r2, r12 strb r1, [r2] _080DAC52: mov r3, r12 ldrb r1, [r3] lsls r1, 30 lsrs r1, 31 mov r0, r12 adds r0, 0xC adds r0, r1 ldrb r1, [r0] ldr r3, _080DACE0 mov r4, r8 lsls r0, r4, 1 adds r0, r3 movs r2, 0 ldrsh r0, [r0, r2] muls r0, r1 asrs r0, 8 strh r0, [r5, 0x24] ldrb r2, [r5, 0x3] lsls r2, 26 lsrs r2, 27 movs r4, 0x24 ldrsh r0, [r5, r4] negs r0, r0 asrs r0, 1 mov r1, r12 ldrb r1, [r1, 0xA] adds r0, r1 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r3 ldrh r6, [r1] ldr r1, _080DACE4 lsls r2, 3 adds r2, r1 adds r0, 0x40 lsls r0, 1 adds r0, r3 ldrh r0, [r0] strh r0, [r2, 0x6] strh r0, [r2] strh r6, [r2, 0x2] lsls r0, r6, 16 asrs r0, 16 negs r0, r0 strh r0, [r2, 0x4] mov r2, r12 ldrh r0, [r2, 0x6] ldrh r3, [r2, 0x8] adds r0, r3 strh r0, [r2, 0x8] lsls r0, 16 lsrs r0, 24 strh r0, [r5, 0x22] movs r4, 0x4 ldrsh r0, [r2, r4] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _080DACE8 ldrh r0, [r2, 0x4] subs r1, 0x1 ands r1, r0 ldrh r0, [r2, 0x2] subs r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r2, 0x2] b _080DACFE .align 2, 0 _080DACE0: .4byte gSineTable _080DACE4: .4byte 0x030027f0 _080DACE8: mov r1, r12 ldrh r0, [r1, 0x4] ldr r1, _080DAD28 ands r1, r0 mov r2, r12 ldrh r2, [r2, 0x2] adds r1, r2 movs r0, 0xFF ands r1, r0 mov r3, r12 strh r1, [r3, 0x2] _080DACFE: movs r4, 0x22 ldrsh r1, [r5, r4] movs r2, 0x26 ldrsh r0, [r5, r2] adds r1, r0 mov r3, r12 ldrh r0, [r3, 0xE] lsrs r0, 1 cmp r1, r0 blt _080DAD1A movs r0, 0 strh r0, [r5, 0x2E] ldr r0, _080DAD2C str r0, [r5, 0x1C] _080DAD1A: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DAD28: .4byte 0x00007fff _080DAD2C: .4byte sub_80DA48C thumb_func_end sub_80DA6F0 thumb_func_start sub_80DAD30 sub_80DAD30: @ 80DAD30 push {r4,r5,lr} adds r4, r0, 0 ldr r0, _080DAD78 ldrb r0, [r0] bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] ldr r5, _080DAD7C ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] ldr r0, _080DAD80 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DAD78: .4byte 0x0202f7c9 _080DAD7C: .4byte 0x0202f7c8 _080DAD80: .4byte sub_807941C thumb_func_end sub_80DAD30 thumb_func_start sub_80DAD84 sub_80DAD84: @ 80DAD84 push {r4-r7,lr} adds r4, r0, 0 ldr r5, _080DADCC ldrh r0, [r5] strh r0, [r4, 0x30] ldrh r0, [r5, 0x2] strh r0, [r4, 0x32] ldrh r0, [r5, 0x4] strh r0, [r4, 0x34] ldr r0, _080DADD0 ldr r1, _080DADD4 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080DAE44 ldr r0, _080DADD8 ldr r1, _080DADDC ldrb r2, [r1] adds r0, r2, r0 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080DADE0 adds r0, r2, 0 movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x6] adds r0, r5 b _080DADEE .align 2, 0 _080DADCC: .4byte 0x03004b00 _080DADD0: .4byte 0x03001770 _080DADD4: .4byte 0x0000043d _080DADD8: .4byte 0x02024a72 _080DADDC: .4byte 0x0202f7c9 _080DADE0: adds r0, r2, 0 movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x28 _080DADEE: strh r0, [r4, 0x3C] ldr r0, _080DAE1C movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0 beq _080DAE24 ldr r0, _080DAE20 ldrb r0, [r0] bl sub_8079ED4 lsls r0, 24 lsrs r0, 24 adds r0, 0x1 movs r1, 0x3 ands r0, r1 lsls r0, 2 ldrb r2, [r4, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x5] b _080DAE58 .align 2, 0 _080DAE1C: .4byte 0x03004b00 _080DAE20: .4byte 0x0202f7c9 _080DAE24: ldr r0, _080DAE40 ldrb r0, [r0] bl sub_8079ED4 movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] b _080DAE58 .align 2, 0 _080DAE40: .4byte 0x0202f7c9 _080DAE44: ldr r0, _080DAEFC ldrb r0, [r0] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x6] adds r0, r5 strh r0, [r4, 0x3C] _080DAE58: ldr r5, _080DAF00 ldrh r3, [r4, 0x30] movs r1, 0xFF ands r1, r3 lsls r0, r1, 1 adds r0, r5 ldrh r0, [r0] movs r2, 0 strh r0, [r4, 0x36] adds r1, 0x40 lsls r1, 1 adds r1, r5 ldrh r0, [r1] negs r0, r0 strh r0, [r4, 0x38] strh r2, [r4, 0x3A] strh r2, [r4, 0x26] strh r2, [r4, 0x24] ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r6, r0, 27 lsls r3, 16 lsrs r3, 24 strh r3, [r4, 0x30] bl Random lsls r0, 16 asrs r7, r0, 16 movs r0, 0x80 lsls r0, 8 ands r0, r7 cmp r0, 0 beq _080DAEA2 ldrh r1, [r4, 0x30] movs r0, 0xFF subs r0, r1 strh r0, [r4, 0x30] _080DAEA2: movs r0, 0x30 ldrsh r1, [r4, r0] lsls r0, r1, 1 adds r0, r5 ldrh r0, [r0] ldr r3, _080DAF04 lsls r2, r6, 3 adds r2, r3 adds r1, 0x40 lsls r1, 1 adds r1, r5 ldrh r1, [r1] strh r1, [r2, 0x6] strh r1, [r2] strh r0, [r2, 0x2] lsls r0, 16 asrs r0, 16 negs r0, r0 strh r0, [r2, 0x4] adds r3, r4, 0 adds r3, 0x3F ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r3] movs r0, 0x1 ands r0, r7 cmp r0, 0 beq _080DAEF2 adds r2, r4, 0 adds r2, 0x2A movs r1, 0x1 movs r0, 0x1 strb r0, [r2] ldrb r0, [r3] orrs r0, r1 strb r0, [r3] _080DAEF2: ldr r0, _080DAF08 str r0, [r4, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DAEFC: .4byte 0x0202f7c9 _080DAF00: .4byte gSineTable _080DAF04: .4byte 0x030027f0 _080DAF08: .4byte sub_80DAF0C thumb_func_end sub_80DAD84 thumb_func_start sub_80DAF0C sub_80DAF0C: @ 80DAF0C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 adds r4, r0, 0 adds r5, r4, 0 adds r5, 0x2E ldrh r0, [r4, 0x2E] adds r0, 0x1 movs r1, 0 mov r8, r1 movs r7, 0 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _080DAFF0 movs r2, 0x36 ldrsh r1, [r4, r2] movs r2, 0x3A ldrsh r0, [r4, r2] muls r0, r1 asrs r6, r0, 8 strh r6, [r4, 0x24] movs r0, 0x38 ldrsh r1, [r4, r0] movs r2, 0x3A ldrsh r0, [r4, r2] muls r0, r1 asrs r3, r0, 8 strh r3, [r4, 0x26] ldrh r2, [r4, 0x34] movs r1, 0xFF adds r0, r1, 0 ands r0, r2 ldrh r2, [r4, 0x3A] adds r0, r2 strh r0, [r4, 0x3A] ldrh r2, [r4, 0x32] lsls r0, 16 asrs r0, 16 ands r1, r2 cmp r0, r1 blt _080DAFF0 ldrh r0, [r4, 0x20] adds r0, r6 strh r0, [r4, 0x20] ldrh r0, [r4, 0x22] adds r0, r3 strh r0, [r4, 0x22] strh r7, [r4, 0x24] strh r7, [r4, 0x26] mov r0, sp adds r1, r5, 0 movs r2, 0x10 bl memcpy adds r0, r5, 0 movs r1, 0 movs r2, 0x10 bl memset ldrh r0, [r4, 0x22] lsls r0, 8 strh r0, [r5, 0x8] mov r0, sp ldrh r0, [r0, 0x6] lsrs r1, r0, 8 strh r1, [r5, 0x6] strh r7, [r5, 0x2] mov r0, sp ldrh r0, [r0, 0x2] strh r0, [r5, 0xA] adds r0, r4, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 beq _080DAFC0 movs r0, 0x8 ands r1, r0 cmp r1, 0 beq _080DAFB8 ldr r0, _080DAFB4 b _080DAFCE .align 2, 0 _080DAFB4: .4byte 0x00008001 _080DAFB8: ldr r0, _080DAFBC b _080DAFCE .align 2, 0 _080DAFBC: .4byte 0x00008002 _080DAFC0: movs r0, 0x8 ands r1, r0 cmp r1, 0 beq _080DAFCC movs r0, 0x1 b _080DAFCE _080DAFCC: movs r0, 0x2 _080DAFCE: strh r0, [r5, 0x4] mov r0, sp ldrh r0, [r0, 0x4] lsrs r0, 8 strb r0, [r5, 0xC] subs r0, 0x2 strb r0, [r5, 0xD] mov r0, sp ldrh r1, [r0, 0xE] lsls r1, 1 ldrh r2, [r5, 0xE] movs r0, 0x1 ands r0, r2 orrs r0, r1 strh r0, [r5, 0xE] ldr r0, _080DAFFC str r0, [r4, 0x1C] _080DAFF0: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DAFFC: .4byte sub_80DA6F0 thumb_func_end sub_80DAF0C thumb_func_start sub_80DB000 sub_80DB000: @ 80DB000 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080DB018 movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DB01C adds r0, r5, 0 movs r1, 0 bl sub_80787B0 b _080DB024 .align 2, 0 _080DB018: .4byte 0x03004b00 _080DB01C: adds r0, r5, 0 movs r1, 0 bl sub_8078764 _080DB024: ldr r4, _080DB08C movs r2, 0x4 ldrsh r0, [r4, r2] cmp r0, 0 bne _080DB03C ldr r0, _080DB090 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DB052 _080DB03C: movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080DB058 ldr r0, _080DB094 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DB058 _080DB052: ldrh r0, [r5, 0x20] adds r0, 0x8 strh r0, [r5, 0x20] _080DB058: ldr r4, _080DB08C ldrb r1, [r4, 0x8] adds r0, r5, 0 bl SeekSpriteAnim ldrh r0, [r5, 0x20] subs r0, 0x20 strh r0, [r5, 0x20] ldr r0, _080DB098 strh r0, [r5, 0x30] ldrh r1, [r4, 0x8] movs r0, 0xC adds r2, r0, 0 muls r2, r1 adds r0, r2, 0 ldrh r2, [r5, 0x24] adds r0, r2 strh r0, [r5, 0x24] strh r1, [r5, 0x2E] ldrh r0, [r4, 0x6] strh r0, [r5, 0x3C] ldr r0, _080DB09C str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DB08C: .4byte 0x03004b00 _080DB090: .4byte 0x0202f7c8 _080DB094: .4byte 0x0202f7c9 _080DB098: .4byte 0x00000ccc _080DB09C: .4byte sub_80DB0A0 thumb_func_end sub_80DB000 thumb_func_start sub_80DB0A0 sub_80DB0A0: @ 80DB0A0 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] lsls r0, 16 asrs r0, 24 ldrh r1, [r4, 0x24] adds r0, r1 movs r1, 0 strh r0, [r4, 0x24] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bne _080DB0CA strh r1, [r4, 0x2E] strh r1, [r4, 0x24] adds r0, r4, 0 bl StartSpriteAnim _080DB0CA: ldrh r0, [r4, 0x3C] subs r0, 0x1 strh r0, [r4, 0x3C] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080DB0E2 adds r0, r4, 0 bl move_anim_8072740 _080DB0E2: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DB0A0 thumb_func_start sub_80DB0E8 sub_80DB0E8: @ 80DB0E8 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 ldr r1, _080DB180 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r7, r0, r1 ldrh r0, [r7, 0x8] movs r1, 0x1F ands r0, r1 cmp r0, 0 bne _080DB162 ldr r1, _080DB184 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r1, 0x8 ldrsh r0, [r7, r1] movs r5, 0xD negs r5, r5 adds r1, r5, 0 bl sine ldr r4, _080DB188 strh r0, [r4] movs r1, 0x8 ldrsh r0, [r7, r1] adds r1, r5, 0 bl cosine strh r0, [r4, 0x2] movs r0, 0x1 strh r0, [r4, 0x4] movs r0, 0x3 strh r0, [r4, 0x6] ldr r0, _080DB18C mov r8, r0 ldr r5, _080DB190 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 mov r0, r8 adds r1, r4, 0 movs r3, 0x3 bl CreateSpriteAndAnimate _080DB162: ldrh r0, [r7, 0x8] adds r0, 0x8 strh r0, [r7, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0xFF ble _080DB176 adds r0, r6, 0 bl move_anim_task_del _080DB176: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DB180: .4byte 0x03004b20 _080DB184: .4byte 0x0202f7b2 _080DB188: .4byte 0x03004b00 _080DB18C: .4byte gBattleAnimSpriteTemplate_83DB538 _080DB190: .4byte 0x0202f7c9 thumb_func_end sub_80DB0E8 thumb_func_start sub_80DB194 sub_80DB194: @ 80DB194 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _080DB1A6 cmp r0, 0x1 beq _080DB1D8 b _080DB1EC _080DB1A6: adds r0, r4, 0 movs r1, 0x1 bl sub_80787B0 movs r0, 0 bl obj_id_for_side_relative_to_move ldr r2, _080DB1D4 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080DB1EC .align 2, 0 _080DB1D4: .4byte 0x02020004 _080DB1D8: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080DB1EC adds r0, r4, 0 bl move_anim_8072740 _080DB1EC: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DB194 thumb_func_start sub_80DB1F4 sub_80DB1F4: @ 80DB1F4 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080DB22C cmp r0, 0x1 bgt _080DB20A cmp r0, 0 beq _080DB210 b _080DB27E _080DB20A: cmp r0, 0x2 beq _080DB240 b _080DB27E _080DB210: ldr r0, _080DB228 ldrb r0, [r0] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] negs r0, r0 subs r0, 0x20 strh r0, [r4, 0x26] b _080DB238 .align 2, 0 _080DB228: .4byte 0x0202f7c9 _080DB22C: ldrh r0, [r4, 0x26] adds r0, 0xA strh r0, [r4, 0x26] lsls r0, 16 cmp r0, 0 blt _080DB27E _080DB238: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080DB27E _080DB240: ldrh r0, [r4, 0x26] subs r0, 0xA strh r0, [r4, 0x26] movs r2, 0x22 ldrsh r0, [r4, r2] movs r2, 0x26 ldrsh r1, [r4, r2] adds r0, r1 movs r1, 0x20 negs r1, r1 cmp r0, r1 bge _080DB27E movs r0, 0 bl obj_id_for_side_relative_to_move ldr r2, _080DB284 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] adds r0, r4, 0 bl move_anim_8072740 _080DB27E: pop {r4} pop {r0} bx r0 .align 2, 0 _080DB284: .4byte 0x02020004 thumb_func_end sub_80DB1F4 thumb_func_start sub_80DB288 sub_80DB288: @ 80DB288 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r1, _080DB2C4 ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r4, 0x30] ldr r0, _080DB2C8 str r0, [r4, 0x1C] movs r0, 0 bl obj_id_for_side_relative_to_move ldr r2, _080DB2CC lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080DB2C4: .4byte 0x03004b00 _080DB2C8: .4byte sub_80DB2D0 _080DB2CC: .4byte 0x02020004 thumb_func_end sub_80DB288 thumb_func_start sub_80DB2D0 sub_80DB2D0: @ 80DB2D0 push {lr} adds r2, r0, 0 ldrh r1, [r2, 0x2E] movs r3, 0x2E ldrsh r0, [r2, r3] cmp r0, 0 ble _080DB2E4 subs r0, r1, 0x1 strh r0, [r2, 0x2E] b _080DB328 _080DB2E4: movs r1, 0x22 ldrsh r0, [r2, r1] movs r3, 0x26 ldrsh r1, [r2, r3] adds r0, r1 movs r1, 0x20 negs r1, r1 cmp r0, r1 ble _080DB30A ldrh r0, [r2, 0x30] ldrh r1, [r2, 0x32] adds r0, r1 strh r0, [r2, 0x32] lsls r0, 16 asrs r0, 24 ldrh r1, [r2, 0x26] subs r1, r0 strh r1, [r2, 0x26] b _080DB328 _080DB30A: adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] ldrh r0, [r2, 0x34] adds r1, r0, 0x1 strh r1, [r2, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080DB328 ldr r0, _080DB32C str r0, [r2, 0x1C] _080DB328: pop {r0} bx r0 .align 2, 0 _080DB32C: .4byte sub_80DB330 thumb_func_end sub_80DB2D0 thumb_func_start sub_80DB330 sub_80DB330: @ 80DB330 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x32] lsls r0, 16 asrs r0, 24 ldrh r1, [r2, 0x26] adds r0, r1 strh r0, [r2, 0x26] movs r3, 0x22 ldrsh r0, [r2, r3] movs r3, 0x26 ldrsh r1, [r2, r3] adds r0, r1 movs r1, 0x20 negs r1, r1 cmp r0, r1 ble _080DB360 adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] _080DB360: movs r1, 0x26 ldrsh r0, [r2, r1] cmp r0, 0 ble _080DB36E adds r0, r2, 0 bl move_anim_8072740 _080DB36E: pop {r0} bx r0 thumb_func_end sub_80DB330 thumb_func_start sub_80DB374 sub_80DB374: @ 80DB374 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 beq _080DB388 cmp r0, 0x1 beq _080DB3E0 b _080DB44C _080DB388: ldr r0, _080DB398 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bne _080DB3A0 ldr r4, _080DB39C b _080DB3A2 .align 2, 0 _080DB398: .4byte 0x03004b00 _080DB39C: .4byte 0x0202f7c8 _080DB3A0: ldr r4, _080DB3DC _080DB3A2: ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] movs r0, 0 movs r3, 0x80 lsls r3, 2 strh r3, [r5, 0x30] movs r2, 0x80 lsls r2, 1 str r0, [sp] adds r0, r5, 0 movs r1, 0 bl sub_8078FDC ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _080DB44C .align 2, 0 _080DB3DC: .4byte 0x0202f7c9 _080DB3E0: movs r1, 0x32 ldrsh r0, [r5, r1] cmp r0, 0xB bgt _080DB3EE ldrh r0, [r5, 0x30] subs r0, 0x28 b _080DB3F2 _080DB3EE: ldrh r0, [r5, 0x30] adds r0, 0x28 _080DB3F2: strh r0, [r5, 0x30] ldrh r0, [r5, 0x32] adds r0, 0x1 movs r1, 0 strh r0, [r5, 0x32] movs r2, 0x80 lsls r2, 1 movs r0, 0x30 ldrsh r3, [r5, r0] str r1, [sp] adds r0, r5, 0 bl sub_8078FDC ldrb r1, [r5, 0x3] lsls r1, 26 lsrs r1, 27 movs r0, 0xF4 lsls r0, 6 ldr r2, _080DB454 lsls r1, 3 adds r1, r2 movs r2, 0x6 ldrsh r1, [r1, r2] bl __divsi3 adds r1, r0, 0x1 cmp r1, 0x80 ble _080DB42C movs r1, 0x80 _080DB42C: movs r0, 0x40 subs r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r1, r0, 1 strh r1, [r5, 0x26] movs r1, 0x32 ldrsh r0, [r5, r1] cmp r0, 0x18 bne _080DB44C adds r0, r5, 0 bl sub_8079098 adds r0, r5, 0 bl move_anim_8072740 _080DB44C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DB454: .4byte 0x030027f0 thumb_func_end sub_80DB374 thumb_func_start sub_80DB458 sub_80DB458: @ 80DB458 push {r4,r5,lr} adds r5, r0, 0 bl Random ldr r4, _080DB47C ands r4, r0 bl Random movs r1, 0x7F ands r1, r0 movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _080DB480 movs r2, 0xB8 lsls r2, 2 adds r0, r4, r2 b _080DB488 .align 2, 0 _080DB47C: .4byte 0x000001ff _080DB480: movs r2, 0xB8 lsls r2, 2 adds r0, r2, 0 subs r0, r4 _080DB488: strh r0, [r5, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080DB49C movs r2, 0xE0 lsls r2, 2 adds r0, r2, 0 adds r0, r1, r0 b _080DB4A4 _080DB49C: movs r2, 0xE0 lsls r2, 2 adds r0, r2, 0 subs r0, r1 _080DB4A4: strh r0, [r5, 0x30] ldr r2, _080DB4CC ldrh r0, [r2] strh r0, [r5, 0x32] lsls r0, 16 cmp r0, 0 beq _080DB4C0 ldrb r0, [r5, 0x3] movs r1, 0x3F negs r1, r1 ands r1, r0 movs r0, 0x10 orrs r1, r0 strb r1, [r5, 0x3] _080DB4C0: movs r1, 0x2 ldrsh r0, [r2, r1] cmp r0, 0 bne _080DB4D4 ldr r4, _080DB4D0 b _080DB4D6 .align 2, 0 _080DB4CC: .4byte 0x03004b00 _080DB4D0: .4byte 0x0202f7c8 _080DB4D4: ldr r4, _080DB500 _080DB4D6: ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x20 strh r0, [r5, 0x22] ldr r0, _080DB504 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DB500: .4byte 0x0202f7c9 _080DB504: .4byte sub_80DB508 thumb_func_end sub_80DB458 thumb_func_start sub_80DB508 sub_80DB508: @ 80DB508 push {r4,lr} adds r4, r0, 0 movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 bne _080DB520 ldrh r3, [r4, 0x2E] lsls r0, r3, 16 asrs r0, 24 ldrh r1, [r4, 0x24] adds r0, r1 b _080DB52A _080DB520: ldrh r3, [r4, 0x2E] lsls r1, r3, 16 asrs r1, 24 ldrh r0, [r4, 0x24] subs r0, r1 _080DB52A: strh r0, [r4, 0x24] ldrh r2, [r4, 0x30] lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r4, 0x26] subs r0, r1 strh r0, [r4, 0x26] strh r3, [r4, 0x2E] adds r0, r2, 0 subs r0, 0x20 strh r0, [r4, 0x30] lsls r0, r3, 16 cmp r0, 0 bge _080DB54A movs r0, 0 strh r0, [r4, 0x2E] _080DB54A: ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F bne _080DB55E adds r0, r4, 0 bl move_anim_8072740 _080DB55E: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DB508 thumb_func_start sub_80DB564 sub_80DB564: @ 80DB564 movs r1, 0 strh r1, [r0, 0x3A] movs r1, 0x40 strh r1, [r0, 0x3C] ldr r1, sub_80DB574 str r1, [r0, 0x1C] bx lr thumb_func_end sub_80DB564 thumb_func_start sub_80DB574 sub_80DB574: @ 80DB574 push {r0,r3-r6,lr} lsrs r5, r1, 32 push {lr} adds r3, r0, 0 movs r0, 0x2E ldrsh r1, [r3, r0] cmp r1, 0 beq _080DB58A cmp r1, 0x1 beq _080DB5D8 b _080DB5DE _080DB58A: ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080DB5DE strh r1, [r3, 0x30] movs r1, 0x3E adds r1, r3 mov r12, r1 ldrb r2, [r1] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrh r0, [r3, 0x32] adds r0, 0x1 strh r0, [r3, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _080DB5DE ldrb r1, [r1] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080DB5DE ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] b _080DB5DE _080DB5D8: adds r0, r3, 0 bl move_anim_8072740 _080DB5DE: pop {r0} bx r0 thumb_func_end sub_80DB574 thumb_func_start sub_80DB5E4 sub_80DB5E4: @ 80DB5E4 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 mov r8, r0 ldrh r4, [r0, 0x20] ldrh r5, [r0, 0x22] ldr r6, _080DB698 ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 mov r1, r8 strh r0, [r1, 0x20] ldrb r0, [r6] movs r1, 0x3 bl sub_8077ABC adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 mov r2, r8 strh r6, [r2, 0x22] ldrh r0, [r2, 0x20] mov r9, r0 mov r1, r9 lsls r0, r1, 4 strh r0, [r2, 0x36] lsls r0, r6, 4 strh r0, [r2, 0x38] lsls r4, 16 asrs r4, 16 movs r1, 0x20 ldrsh r0, [r2, r1] subs r0, r4, r0 lsls r0, 4 movs r1, 0xC bl __divsi3 mov r2, r8 strh r0, [r2, 0x3A] lsls r5, 16 asrs r5, 16 movs r1, 0x22 ldrsh r0, [r2, r1] subs r0, r5, r0 lsls r0, 4 movs r1, 0xC bl __divsi3 mov r2, r8 strh r0, [r2, 0x3C] mov r0, r9 subs r4, r0 lsls r4, 16 asrs r4, 16 subs r5, r6 lsls r5, 16 asrs r5, 16 adds r0, r4, 0 adds r1, r5, 0 bl sub_80790F0 lsls r0, 16 movs r1, 0xC0 lsls r1, 24 adds r0, r1 lsrs r0, 16 movs r3, 0x80 lsls r3, 1 str r0, [sp] mov r0, r8 movs r1, 0x1 adds r2, r3, 0 bl sub_8078FDC ldr r0, _080DB69C mov r2, r8 str r0, [r2, 0x1C] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DB698: .4byte 0x0202f7c8 _080DB69C: .4byte sub_80DB6A0 thumb_func_end sub_80DB5E4 thumb_func_start sub_80DB6A0 sub_80DB6A0: @ 80DB6A0 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x3A] ldrh r1, [r2, 0x36] adds r0, r1 strh r0, [r2, 0x36] ldrh r1, [r2, 0x3C] ldrh r3, [r2, 0x38] adds r1, r3 strh r1, [r2, 0x38] lsls r0, 16 asrs r0, 20 strh r0, [r2, 0x20] lsls r1, 16 asrs r3, r1, 20 strh r3, [r2, 0x22] adds r0, 0x2D lsls r0, 16 movs r1, 0xA5 lsls r1, 17 cmp r0, r1 bhi _080DB6DA adds r1, r3, 0 cmp r1, 0x9D bgt _080DB6DA movs r0, 0x2D negs r0, r0 cmp r1, r0 bge _080DB6E0 _080DB6DA: adds r0, r2, 0 bl move_anim_8074EE0 _080DB6E0: pop {r0} bx r0 thumb_func_end sub_80DB6A0 thumb_func_start unref_sub_80DB6E4 unref_sub_80DB6E4: @ 80DB6E4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080DB714 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DB71C movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 ldr r2, _080DB718 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 b _080DB73A .align 2, 0 _080DB714: .4byte 0x03004b00 _080DB718: .4byte 0x02020004 _080DB71C: movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 ldr r2, _080DB748 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 _080DB73A: strb r0, [r1] adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _080DB748: .4byte 0x02020004 thumb_func_end unref_sub_80DB6E4 thumb_func_start sub_80DB74C sub_80DB74C: @ 80DB74C push {r4-r7,lr} adds r6, r0, 0 ldr r0, _080DB804 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DB768 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DB77E _080DB768: ldrb r1, [r6, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r6, 0x5] adds r1, r6, 0 adds r1, 0x43 movs r0, 0xC8 strb r0, [r1] _080DB77E: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080DB7DA movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 adds r0, r4, 0 bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 movs r1, 0x1 eors r0, r1 negs r1, r0 orrs r1, r0 lsrs r5, r1, 31 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080DB7BC adds r0, r4, 0 adds r1, r5, 0 bl sub_8076034 _080DB7BC: movs r0, 0x2 adds r4, r0, 0 eors r4, r7 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080DB7DA movs r0, 0x1 eors r5, r0 adds r0, r4, 0 adds r1, r5, 0 bl sub_8076034 _080DB7DA: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080DB810 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080DB810 ldr r0, _080DB804 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DB808 movs r0, 0x48 strh r0, [r6, 0x20] movs r0, 0x50 b _080DB84A .align 2, 0 _080DB804: .4byte 0x0202f7c8 _080DB808: movs r0, 0xB0 strh r0, [r6, 0x20] movs r0, 0x28 b _080DB84A _080DB810: ldr r5, _080DB880 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DB826 ldr r1, _080DB884 ldrh r0, [r1] negs r0, r0 strh r0, [r1] _080DB826: ldrb r0, [r5] movs r1, 0 bl sub_8077ABC lsls r0, 24 ldr r4, _080DB884 lsrs r0, 24 ldrh r1, [r4] adds r0, r1 strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] adds r0, r4 _080DB84A: strh r0, [r6, 0x22] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DB85C ldrh r0, [r6, 0x22] adds r0, 0x9 strh r0, [r6, 0x22] _080DB85C: ldr r0, _080DB884 ldrh r0, [r0, 0x4] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r1, 0x80 lsls r1, 1 adds r0, r1 strh r0, [r6, 0x2E] ldr r1, _080DB888 str r1, [r6, 0x1C] adds r0, r6, 0 bl _call_via_r1 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DB880: .4byte 0x0202f7c8 _080DB884: .4byte 0x03004b00 _080DB888: .4byte sub_80DB88C thumb_func_end sub_80DB74C thumb_func_start sub_80DB88C sub_80DB88C: @ 80DB88C push {lr} adds r3, r0, 0 ldr r2, _080DB8B0 ldrh r1, [r3, 0x34] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r0, r1 strh r0, [r2] ldrh r1, [r3, 0x34] movs r2, 0x34 ldrsh r0, [r3, r2] cmp r0, 0xD bne _080DB8B8 ldr r0, _080DB8B4 str r0, [r3, 0x1C] b _080DB8BC .align 2, 0 _080DB8B0: .4byte REG_BLDALPHA _080DB8B4: .4byte sub_80DB8C0 _080DB8B8: adds r0, r1, 0x1 strh r0, [r3, 0x34] _080DB8BC: pop {r0} bx r0 thumb_func_end sub_80DB88C thumb_func_start sub_80DB8C0 sub_80DB8C0: @ 80DB8C0 push {r4-r7,lr} adds r3, r0, 0 ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _080DB91E movs r0, 0 strh r0, [r3, 0x30] ldrh r4, [r3, 0x2E] ldr r1, _080DB924 adds r0, r4, 0 adds r0, 0x8 lsls r0, 1 adds r0, r1 ldrh r7, [r0] movs r5, 0x8 adds r6, r1, 0 adds r1, r4, 0x7 lsls r0, r4, 1 adds r0, r6 adds r2, r0, 0 adds r2, 0x10 lsls r1, 1 adds r1, r6 _080DB8F6: ldrh r0, [r1] strh r0, [r2] subs r1, 0x2 subs r2, 0x2 subs r5, 0x1 cmp r5, 0 bgt _080DB8F6 adds r0, r4, 0x1 lsls r0, 1 adds r0, r6 strh r7, [r0] ldrh r0, [r3, 0x32] adds r0, 0x1 strh r0, [r3, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 bne _080DB91E ldr r0, _080DB928 str r0, [r3, 0x1C] _080DB91E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DB924: .4byte 0x0202eec8 _080DB928: .4byte sub_80DB92C thumb_func_end sub_80DB8C0 thumb_func_start sub_80DB92C sub_80DB92C: @ 80DB92C push {r4-r6,lr} adds r5, r0, 0 ldr r2, _080DB9D4 ldrh r1, [r5, 0x34] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r0, r1 strh r0, [r2] ldrh r0, [r5, 0x34] subs r0, 0x1 strh r0, [r5, 0x34] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080DB9CC bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080DB9BC movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080DB98E ldr r2, _080DB9D8 ldr r0, _080DB9DC adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] _080DB98E: movs r0, 0x2 adds r4, r0, 0 eors r4, r6 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080DB9BC ldr r2, _080DB9D8 ldr r0, _080DB9DC adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] _080DB9BC: adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080DB9E0 str r0, [r5, 0x1C] _080DB9CC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DB9D4: .4byte REG_BLDALPHA _080DB9D8: .4byte 0x02020004 _080DB9DC: .4byte 0x02024be0 _080DB9E0: .4byte sub_80DB9E4 thumb_func_end sub_80DB92C thumb_func_start sub_80DB9E4 sub_80DB9E4: @ 80DB9E4 push {r4-r6,lr} adds r6, r0, 0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080DBA3C movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 movs r1, 0x1 eors r0, r1 negs r1, r0 orrs r1, r0 lsrs r5, r1, 31 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080DBA22 adds r0, r5, 0 bl sub_8076464 _080DBA22: movs r0, 0x2 eors r4, r0 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080DBA3C movs r0, 0x1 eors r5, r0 adds r0, r5, 0 bl sub_8076464 _080DBA3C: ldr r0, _080DBA48 str r0, [r6, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DBA48: .4byte move_anim_8072740 thumb_func_end sub_80DB9E4 thumb_func_start sub_80DBA4C sub_80DBA4C: @ 80DBA4C push {r4-r6,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080DBAD8 ldr r5, _080DBA98 movs r1, 0x6 ldrsh r0, [r5, r1] movs r6, 0 cmp r0, 0 bne _080DBA66 movs r6, 0x1 _080DBA66: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080DBAAE bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080DBAAE ldr r0, _080DBA9C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DBAA0 ldrh r0, [r5] movs r1, 0x48 subs r1, r0 strh r1, [r4, 0x20] ldrh r0, [r5, 0x2] adds r0, 0x50 strh r0, [r4, 0x22] b _080DBAD0 .align 2, 0 _080DBA98: .4byte 0x03004b00 _080DBA9C: .4byte 0x0202f7c8 _080DBAA0: ldrh r0, [r5] adds r0, 0xB0 strh r0, [r4, 0x20] ldrh r0, [r5, 0x2] adds r0, 0x28 strh r0, [r4, 0x22] b _080DBAD0 _080DBAAE: ldr r0, _080DBAC4 movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DBAC8 adds r0, r4, 0 adds r1, r6, 0 bl sub_80787B0 b _080DBAD0 .align 2, 0 _080DBAC4: .4byte 0x03004b00 _080DBAC8: adds r0, r4, 0 adds r1, r6, 0 bl sub_8078764 _080DBAD0: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080DBAEC _080DBAD8: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x30 ands r0, r1 cmp r0, 0 beq _080DBAEC adds r0, r4, 0 bl move_anim_8074EE0 _080DBAEC: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80DBA4C thumb_func_start sub_80DBAF4 sub_80DBAF4: @ 80DBAF4 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080DBB3C ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DBB44 adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnim ldrh r0, [r5, 0x20] subs r0, 0x28 strh r0, [r5, 0x20] ldrh r0, [r5, 0x22] adds r0, 0xA strh r0, [r5, 0x22] ldr r0, _080DBB40 b _080DBB52 .align 2, 0 _080DBB3C: .4byte 0x0202f7c8 _080DBB40: .4byte 0x0000ffff _080DBB44: ldrh r0, [r5, 0x20] adds r0, 0x28 strh r0, [r5, 0x20] ldrh r0, [r5, 0x22] subs r0, 0xA strh r0, [r5, 0x22] movs r0, 0x1 _080DBB52: strh r0, [r5, 0x30] ldr r1, _080DBB68 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080DBB6C str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DBB68: .4byte move_anim_8072740 _080DBB6C: .4byte sub_8078600 thumb_func_end sub_80DBAF4 thumb_func_start sub_80DBB70 sub_80DBB70: @ 80DBB70 push {r4-r7,lr} adds r5, r0, 0 ldr r6, _080DBBF4 ldrb r0, [r6] movs r1, 0x1 bl sub_807A100 lsls r0, 16 asrs r1, r0, 16 lsrs r0, 31 adds r1, r0 lsls r1, 15 lsrs r4, r1, 16 ldrb r0, [r6] movs r1, 0 bl sub_807A100 lsls r0, 16 asrs r1, r0, 16 lsrs r0, 31 adds r1, r0 asrs r1, 1 negs r1, r1 lsls r1, 16 lsrs r7, r1, 16 ldrb r0, [r6] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080DBBB6 lsls r0, r4, 16 negs r0, r0 lsrs r4, r0, 16 _080DBBB6: ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r4 strh r0, [r5, 0x20] ldrb r0, [r6] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r7 strh r0, [r5, 0x22] lsls r0, 16 asrs r0, 16 cmp r0, 0xF bgt _080DBBE2 movs r0, 0x10 strh r0, [r5, 0x22] _080DBBE2: ldr r1, _080DBBF8 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080DBBFC str r0, [r5, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DBBF4: .4byte 0x0202f7c8 _080DBBF8: .4byte sub_80DBC00 _080DBBFC: .4byte sub_8078600 thumb_func_end sub_80DBB70 thumb_func_start sub_80DBC00 sub_80DBC00: @ 80DBC00 push {r4,lr} adds r4, r0, 0 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, _080DBC2C str r0, [r4, 0x10] movs r0, 0 strh r0, [r4, 0x2E] adds r0, r4, 0 bl InitSpriteAffineAnim ldr r0, _080DBC30 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080DBC2C: .4byte gUnknown_083DA888 _080DBC30: .4byte sub_80DBC34 thumb_func_end sub_80DBC00 thumb_func_start sub_80DBC34 sub_80DBC34: @ 80DBC34 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _080DBC46 cmp r0, 0x1 beq _080DBC74 b _080DBC8C _080DBC46: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080DBC8C ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 strb r0, [r4, 0x1] movs r0, 0x12 strh r0, [r4, 0x30] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080DBC8C _080DBC74: ldrh r0, [r4, 0x30] subs r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080DBC8C adds r0, r4, 0 bl move_anim_8072740 _080DBC8C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DBC34 thumb_func_start sub_80DBC94 sub_80DBC94: @ 80DBC94 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080DBCC4 adds r4, r0 movs r0, 0 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 strh r1, [r4, 0x8] ldr r2, _080DBCC8 adds r0, r4, 0 bl sub_80798F4 ldr r0, _080DBCCC str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080DBCC4: .4byte 0x03004b20 _080DBCC8: .4byte gUnknown_083DA8A4 _080DBCCC: .4byte sub_80DBCD0 thumb_func_end sub_80DBC94 thumb_func_start sub_80DBCD0 sub_80DBCD0: @ 80DBCD0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080DBCF8 adds r0, r1 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _080DBCF0 adds r0, r4, 0 bl move_anim_task_del _080DBCF0: pop {r4} pop {r0} bx r0 .align 2, 0 _080DBCF8: .4byte 0x03004b20 thumb_func_end sub_80DBCD0 thumb_func_start sub_80DBCFC sub_80DBCFC: @ 80DBCFC push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080DBD48 adds r4, r1, r0 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 movs r1, 0 strh r0, [r4, 0x8] strh r1, [r4, 0xA] strh r1, [r4, 0xC] ldr r0, _080DBD4C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 movs r1, 0x8 cmp r0, 0 beq _080DBD30 movs r1, 0x4 _080DBD30: strh r1, [r4, 0xE] ldrb r1, [r4, 0x8] ldr r2, _080DBD50 adds r0, r4, 0 bl sub_80798F4 ldr r0, _080DBD54 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080DBD48: .4byte 0x03004b20 _080DBD4C: .4byte 0x0202f7c8 _080DBD50: .4byte gUnknown_083DA8C4 _080DBD54: .4byte sub_80DBD58 thumb_func_end sub_80DBCFC thumb_func_start sub_80DBD58 sub_80DBD58: @ 80DBD58 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080DBD78 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 beq _080DBD7C cmp r0, 0x1 beq _080DBD98 b _080DBDF6 .align 2, 0 _080DBD78: .4byte 0x03004b20 _080DBD7C: adds r0, r4, 0 bl sub_807992C ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080DBDF6 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] b _080DBDF6 _080DBD98: movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0 beq _080DBDC0 ldr r2, _080DBDBC movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] subs r1, 0x8 strh r1, [r0, 0x26] ldrh r0, [r4, 0xE] subs r0, 0x1 strh r0, [r4, 0xE] b _080DBDF6 .align 2, 0 _080DBDBC: .4byte 0x02020004 _080DBDC0: ldr r3, _080DBDFC movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x88 lsls r1, 1 strh r1, [r0, 0x20] ldrb r0, [r4, 0x8] bl sub_8078F40 adds r0, r5, 0 bl move_anim_task_del _080DBDF6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DBDFC: .4byte 0x02020004 thumb_func_end sub_80DBD58 thumb_func_start sub_80DBE00 sub_80DBE00: @ 80DBE00 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080DBE84 adds r5, r1, r0 movs r0, 0 movs r7, 0x10 strh r7, [r5, 0xE] strh r0, [r5, 0x10] ldr r4, _080DBE88 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x24] ldrb r0, [r4] movs r1, 0x1 bl sub_807A100 lsls r0, 16 asrs r0, 16 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r6, r0, 16 ldrb r0, [r4] movs r1, 0 bl sub_807A100 lsls r0, 16 asrs r0, 16 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r0, 16 adds r1, r0, 0 cmp r0, r6 bcs _080DBE6A adds r1, r6, 0 _080DBE6A: strh r1, [r5, 0x20] ldr r1, _080DBE8C movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r0, _080DBE90 strh r7, [r0] ldr r0, _080DBE94 str r0, [r5] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DBE84: .4byte 0x03004b20 _080DBE88: .4byte 0x0202f7c8 _080DBE8C: .4byte REG_BLDCNT _080DBE90: .4byte REG_BLDALPHA _080DBE94: .4byte sub_80DBE98 thumb_func_end sub_80DBE00 thumb_func_start sub_80DBE98 sub_80DBE98: @ 80DBE98 push {r4-r6,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080DBEBC adds r4, r0, r1 movs r0, 0x8 ldrsh r1, [r4, r0] cmp r1, 0x1 beq _080DBF98 cmp r1, 0x1 bgt _080DBEC0 cmp r1, 0 beq _080DBECE b _080DC014 .align 2, 0 _080DBEBC: .4byte 0x03004b20 _080DBEC0: cmp r1, 0x2 bne _080DBEC6 b _080DBFF4 _080DBEC6: cmp r1, 0x3 bne _080DBECC b _080DC004 _080DBECC: b _080DC014 _080DBECE: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 bgt _080DBEDE b _080DC014 _080DBEDE: strh r1, [r4, 0xA] ldr r0, _080DBF1C movs r2, 0x22 ldrsh r1, [r4, r2] movs r3, 0x24 ldrsh r2, [r4, r3] movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 movs r0, 0xC ldrsh r1, [r4, r0] adds r1, 0x8 lsls r1, 1 adds r0, r4, 0 adds r0, 0x8 adds r0, r1 strh r2, [r0] cmp r2, 0x40 beq _080DBF82 movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080DBF3C cmp r0, 0x1 bgt _080DBF20 cmp r0, 0 beq _080DBF2A b _080DBF82 .align 2, 0 _080DBF1C: .4byte gSpriteTemplate_83DA8DC _080DBF20: cmp r0, 0x2 beq _080DBF54 cmp r0, 0x3 beq _080DBF6C b _080DBF82 _080DBF2A: ldr r0, _080DBF38 lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r0 ldrh r0, [r4, 0x20] b _080DBF7A .align 2, 0 _080DBF38: .4byte 0x02020004 _080DBF3C: ldr r0, _080DBF50 lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r0 ldrh r0, [r4, 0x20] negs r0, r0 strh r0, [r1, 0x24] ldrh r0, [r4, 0x20] b _080DBF80 .align 2, 0 _080DBF50: .4byte 0x02020004 _080DBF54: ldr r1, _080DBF68 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 ldrh r1, [r4, 0x20] strh r1, [r0, 0x24] ldrh r1, [r4, 0x20] strh r1, [r0, 0x26] b _080DBF82 .align 2, 0 _080DBF68: .4byte 0x02020004 _080DBF6C: ldr r0, _080DBF94 lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r0 ldrh r0, [r4, 0x20] negs r0, r0 _080DBF7A: strh r0, [r1, 0x24] ldrh r0, [r4, 0x20] negs r0, r0 _080DBF80: strh r0, [r1, 0x26] _080DBF82: ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _080DC014 b _080DBFF4 .align 2, 0 _080DBF94: .4byte 0x02020004 _080DBF98: ldrh r0, [r4, 0xA] ands r1, r0 cmp r1, 0 beq _080DBFA8 ldrh r0, [r4, 0xE] subs r0, 0x1 strh r0, [r4, 0xE] b _080DBFAE _080DBFA8: ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] _080DBFAE: ldr r2, _080DBFFC ldrh r0, [r4, 0x10] lsls r0, 8 ldrh r1, [r4, 0xE] orrs r0, r1 strh r0, [r2] ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x20 bne _080DC014 movs r5, 0x8 adds r6, r4, 0 adds r6, 0x8 _080DBFCE: lsls r0, r5, 1 adds r1, r6, r0 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0x40 beq _080DBFEA adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080DC000 adds r0, r1 bl DestroySprite _080DBFEA: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0xC bls _080DBFCE _080DBFF4: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080DC014 .align 2, 0 _080DBFFC: .4byte REG_BLDALPHA _080DC000: .4byte 0x02020004 _080DC004: ldr r0, _080DC01C movs r1, 0 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, r2, 0 bl move_anim_task_del _080DC014: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DC01C: .4byte REG_BLDALPHA thumb_func_end sub_80DBE98 thumb_func_start sub_80DC020 sub_80DC020: @ 80DC020 push {r4,lr} adds r4, r0, 0 movs r0, 0x30 ldrsh r1, [r4, r0] movs r2, 0x2E ldrsh r0, [r4, r2] subs r0, 0xA cmp r1, r0 ble _080DC04A ldrh r0, [r4, 0x30] movs r1, 0x1 ands r1, r0 adds r3, r4, 0 adds r3, 0x3E lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080DC04A: movs r0, 0x30 ldrsh r1, [r4, r0] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r1, r0 bne _080DC05C adds r0, r4, 0 bl move_anim_8072740 _080DC05C: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] pop {r4} pop {r0} bx r0 thumb_func_end sub_80DC020 thumb_func_start sub_80DC068 sub_80DC068: @ 80DC068 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _080DC0A4 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _080DC094 ldr r4, _080DC0A8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] _080DC094: ldrh r0, [r6, 0x2] strh r0, [r5, 0x2E] ldr r0, _080DC0AC str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DC0A4: .4byte 0x03004b00 _080DC0A8: .4byte 0x0202f7c8 _080DC0AC: .4byte sub_80DC020 thumb_func_end sub_80DC068 thumb_func_start sub_80DC0B0 sub_80DC0B0: @ 80DC0B0 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080DC10C adds r5, r1, r0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DC154 ldr r0, _080DC110 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 bne _080DC120 ldr r0, _080DC114 strh r0, [r5, 0x1C] ldr r4, _080DC118 ldrb r0, [r4] movs r1, 0x5 bl sub_807A100 subs r0, 0x8 strh r0, [r5, 0x1E] ldrb r0, [r4] movs r1, 0x2 bl sub_807A100 adds r0, 0x8 strh r0, [r5, 0x20] ldr r4, _080DC11C ldrb r0, [r4] movs r1, 0x5 bl sub_807A100 subs r0, 0x8 strh r0, [r5, 0x22] ldrb r0, [r4] movs r1, 0x2 bl sub_807A100 adds r0, 0x8 b _080DC1DE .align 2, 0 _080DC10C: .4byte 0x03004b20 _080DC110: .4byte 0x03004b00 _080DC114: .4byte 0x0000fff6 _080DC118: .4byte 0x0202f7c9 _080DC11C: .4byte 0x0202f7c8 _080DC120: movs r0, 0xA strh r0, [r5, 0x1C] ldr r4, _080DC14C ldrb r0, [r4] movs r1, 0x4 bl sub_807A100 adds r0, 0x8 strh r0, [r5, 0x1E] ldrb r0, [r4] movs r1, 0x3 bl sub_807A100 subs r0, 0x8 strh r0, [r5, 0x20] ldr r4, _080DC150 ldrb r0, [r4] movs r1, 0x4 bl sub_807A100 adds r0, 0x8 b _080DC1D2 .align 2, 0 _080DC14C: .4byte 0x0202f7c8 _080DC150: .4byte 0x0202f7c9 _080DC154: ldr r0, _080DC198 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 bne _080DC1A8 ldr r0, _080DC19C strh r0, [r5, 0x1C] ldr r4, _080DC1A0 ldrb r0, [r4] movs r1, 0x4 bl sub_807A100 adds r0, 0x8 strh r0, [r5, 0x1E] ldrb r0, [r4] movs r1, 0x2 bl sub_807A100 adds r0, 0x8 strh r0, [r5, 0x20] ldr r4, _080DC1A4 ldrb r0, [r4] movs r1, 0x4 bl sub_807A100 adds r0, 0x8 strh r0, [r5, 0x22] ldrb r0, [r4] movs r1, 0x2 bl sub_807A100 adds r0, 0x8 b _080DC1DE .align 2, 0 _080DC198: .4byte 0x03004b00 _080DC19C: .4byte 0x0000fff6 _080DC1A0: .4byte 0x0202f7c9 _080DC1A4: .4byte 0x0202f7c8 _080DC1A8: movs r0, 0xA strh r0, [r5, 0x1C] ldr r4, _080DC1F0 ldrb r0, [r4] movs r1, 0x5 bl sub_807A100 subs r0, 0x8 strh r0, [r5, 0x1E] ldrb r0, [r4] movs r1, 0x3 bl sub_807A100 subs r0, 0x8 strh r0, [r5, 0x20] ldr r4, _080DC1F4 ldrb r0, [r4] movs r1, 0x5 bl sub_807A100 subs r0, 0x8 _080DC1D2: strh r0, [r5, 0x22] ldrb r0, [r4] movs r1, 0x3 bl sub_807A100 subs r0, 0x8 _080DC1DE: strh r0, [r5, 0x24] movs r0, 0x6 strh r0, [r5, 0xA] ldr r0, _080DC1F8 str r0, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DC1F0: .4byte 0x0202f7c8 _080DC1F4: .4byte 0x0202f7c9 _080DC1F8: .4byte sub_80DC1FC thumb_func_end sub_80DC0B0 thumb_func_start sub_80DC1FC sub_80DC1FC: @ 80DC1FC push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080DC21C adds r5, r0, r1 movs r0, 0x8 ldrsh r1, [r5, r0] cmp r1, 0 beq _080DC220 cmp r1, 0x1 beq _080DC294 b _080DC2A8 .align 2, 0 _080DC21C: .4byte 0x03004b20 _080DC220: ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 ble _080DC2A8 strh r1, [r5, 0xA] ldr r0, _080DC28C movs r2, 0x1E ldrsh r1, [r5, r2] movs r3, 0x20 ldrsh r2, [r5, r3] movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080DC274 ldr r0, _080DC290 lsls r4, r1, 4 adds r4, r1 lsls r4, 2 adds r4, r0 movs r0, 0x10 strh r0, [r4, 0x2E] ldrh r0, [r5, 0x22] strh r0, [r4, 0x32] ldrh r0, [r5, 0x24] strh r0, [r4, 0x36] ldrh r0, [r5, 0x1C] strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC ldrb r0, [r5, 0xC] movs r1, 0x3 ands r1, r0 adds r0, r4, 0 bl StartSpriteAffineAnim _080DC274: ldrh r0, [r5, 0xC] adds r0, 0x1 strh r0, [r5, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0xC bne _080DC2A8 ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _080DC2A8 .align 2, 0 _080DC28C: .4byte gSpriteTemplate_83DA9AC _080DC290: .4byte 0x02020004 _080DC294: ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x11 ble _080DC2A8 adds r0, r2, 0 bl move_anim_task_del _080DC2A8: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80DC1FC thumb_func_start sub_80DC2B0 sub_80DC2B0: @ 80DC2B0 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080DC2CE ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl DestroySprite _080DC2CE: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DC2B0 thumb_func_start sub_80DC2D4 sub_80DC2D4: @ 80DC2D4 push {r4-r6,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080DC30C adds r4, r1, r0 ldr r0, _080DC310 ldrb r0, [r0] bl sub_8077FC0 lsls r0, 24 lsrs r1, r0, 24 adds r0, r1, 0 subs r0, 0x20 strh r0, [r4, 0x24] ldr r0, _080DC314 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0x1 beq _080DC32A cmp r0, 0x1 bgt _080DC318 cmp r0, 0 beq _080DC31E b _080DC346 .align 2, 0 _080DC30C: .4byte 0x03004b20 _080DC310: .4byte 0x0202f7c9 _080DC314: .4byte 0x03004b00 _080DC318: cmp r0, 0x2 beq _080DC336 b _080DC346 _080DC31E: movs r0, 0x2 strh r0, [r4, 0x1E] movs r0, 0x5 strh r0, [r4, 0x20] movs r0, 0x40 b _080DC33E _080DC32A: movs r0, 0x2 strh r0, [r4, 0x1E] movs r0, 0x5 strh r0, [r4, 0x20] movs r0, 0xC0 b _080DC33E _080DC336: movs r0, 0x4 strh r0, [r4, 0x1E] strh r0, [r4, 0x20] movs r0, 0 _080DC33E: strh r0, [r4, 0x22] adds r0, r1, 0 adds r0, 0x20 strh r0, [r4, 0x26] _080DC346: movs r1, 0x24 ldrsh r0, [r4, r1] cmp r0, 0 bge _080DC352 movs r0, 0 strh r0, [r4, 0x24] _080DC352: ldr r0, _080DC36C ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080DC378 ldr r0, _080DC370 ldrh r0, [r0] strh r0, [r4, 0x1C] ldr r0, _080DC374 b _080DC380 .align 2, 0 _080DC36C: .4byte 0x0202f7c9 _080DC370: .4byte 0x030042c0 _080DC374: .4byte REG_BG1HOFS _080DC378: ldr r0, _080DC3E0 ldrh r0, [r0] strh r0, [r4, 0x1C] ldr r0, _080DC3E4 _080DC380: str r0, [sp] ldrh r1, [r4, 0x24] lsls r3, r1, 16 asrs r1, r3, 16 movs r2, 0x24 ldrsh r0, [r4, r2] adds r0, 0x40 cmp r1, r0 bgt _080DC3BA ldr r5, _080DC3E8 movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 _080DC39A: asrs r3, 16 lsls r1, r3, 1 adds r2, r1, r5 ldrh r0, [r4, 0x1C] strh r0, [r2] adds r1, r6 ldrh r0, [r4, 0x1C] strh r0, [r1] adds r3, 0x1 lsls r3, 16 asrs r1, r3, 16 movs r2, 0x24 ldrsh r0, [r4, r2] adds r0, 0x40 cmp r1, r0 ble _080DC39A _080DC3BA: ldr r0, _080DC3EC str r0, [sp, 0x4] mov r1, sp movs r2, 0 movs r0, 0x1 strb r0, [r1, 0x8] mov r0, sp strb r2, [r0, 0x9] ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl sub_80895F8 ldr r0, _080DC3F0 str r0, [r4] add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DC3E0: .4byte 0x03004288 _080DC3E4: .4byte REG_BG2HOFS _080DC3E8: .4byte 0x03004de0 _080DC3EC: .4byte 0xa2600001 _080DC3F0: .4byte sub_80DC3F4 thumb_func_end sub_80DC2D4 thumb_func_start sub_80DC3F4 sub_80DC3F4: @ 80DC3F4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080DC41C adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080DC4CE cmp r0, 0x1 bgt _080DC420 cmp r0, 0 beq _080DC426 b _080DC4E6 .align 2, 0 _080DC41C: .4byte 0x03004b20 _080DC420: cmp r0, 0x2 beq _080DC4E0 b _080DC4E6 _080DC426: ldrh r3, [r5, 0x22] ldrh r4, [r5, 0x24] movs r2, 0x24 ldrsh r1, [r5, r2] movs r2, 0x26 ldrsh r0, [r5, r2] cmp r1, r0 bgt _080DC4BE ldr r0, _080DC470 mov r9, r0 movs r7, 0x3 ldr r1, _080DC474 mov r12, r1 movs r2, 0xF0 lsls r2, 3 add r2, r12 mov r8, r2 _080DC448: lsls r2, r3, 16 asrs r0, r2, 15 add r0, r9 movs r3, 0 ldrsh r0, [r0, r3] movs r3, 0x20 ldrsh r1, [r5, r3] asrs r0, r1 lsls r0, 16 lsrs r1, r0, 16 asrs r3, r0, 16 adds r6, r2, 0 cmp r3, 0 ble _080DC478 ldrh r1, [r5, 0xA] adds r0, r7, 0 ands r0, r1 adds r0, r3, r0 b _080DC484 .align 2, 0 _080DC470: .4byte gSineTable _080DC474: .4byte 0x03004de0 _080DC478: cmp r3, 0 bge _080DC488 ldrh r1, [r5, 0xA] adds r0, r7, 0 ands r0, r1 subs r0, r3, r0 _080DC484: lsls r0, 16 lsrs r1, r0, 16 _080DC488: lsls r2, r4, 16 asrs r2, 16 lsls r3, r2, 1 mov r0, r12 adds r4, r3, r0 ldrh r0, [r5, 0x1C] lsls r1, 16 asrs r1, 16 adds r0, r1, r0 strh r0, [r4] add r3, r8 ldrh r0, [r5, 0x1C] adds r1, r0 strh r1, [r3] asrs r0, r6, 16 ldrh r1, [r5, 0x1E] adds r0, r1 lsls r0, 16 lsrs r3, r0, 16 adds r2, 0x1 lsls r2, 16 lsrs r4, r2, 16 asrs r2, 16 movs r1, 0x26 ldrsh r0, [r5, r1] cmp r2, r0 ble _080DC448 _080DC4BE: ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x17 ble _080DC4E6 b _080DC4D4 _080DC4CE: ldr r1, _080DC4DC movs r0, 0x3 strb r0, [r1, 0x15] _080DC4D4: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _080DC4E6 .align 2, 0 _080DC4DC: .4byte 0x03004dc0 _080DC4E0: adds r0, r2, 0 bl move_anim_task_del _080DC4E6: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80DC3F4 thumb_func_start sub_80DC4F4 sub_80DC4F4: @ 80DC4F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r4, r0, 24 mov r8, r4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080DC528 adds r7, r0, r1 bl AllocOamMatrix lsls r0, 24 lsrs r5, r0, 24 mov r10, r5 adds r6, r5, 0 cmp r6, 0xFF bne _080DC52C adds r0, r4, 0 bl move_anim_task_del b _080DC5D6 .align 2, 0 _080DC528: .4byte 0x03004b20 _080DC52C: ldr r1, _080DC550 ldrb r0, [r1] bl duplicate_obj_of_side_rel2move_in_transparent_mode lsls r0, 16 lsrs r1, r0, 16 mov r9, r1 asrs r0, 16 cmp r0, 0 bge _080DC554 adds r0, r5, 0 bl FreeOamMatrix mov r0, r8 bl move_anim_task_del b _080DC5D6 .align 2, 0 _080DC550: .4byte 0x03004b00 _080DC554: ldr r2, _080DC5E4 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r0, r2, 0 adds r0, 0x1C adds r0, r4, r0 ldr r1, _080DC5E8 str r1, [r0] adds r4, r2 ldrb r0, [r4, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] movs r0, 0x1F ands r6, r0 lsls r2, r6, 1 ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x3] adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] adds r1, r4, 0 adds r1, 0x43 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] mov r1, r9 lsls r0, r1, 24 lsrs r0, 24 movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale ldrb r3, [r4, 0x1] lsrs r1, r3, 6 ldrb r2, [r4, 0x3] lsrs r2, 6 lsls r3, 30 lsrs r3, 30 adds r0, r4, 0 bl CalcCenterToCornerVec ldr r1, _080DC5EC ldrb r0, [r1] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x22] mov r0, r10 strh r0, [r7, 0x24] mov r1, r9 strh r1, [r7, 0x26] ldr r0, _080DC5F0 str r0, [r7] _080DC5D6: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DC5E4: .4byte 0x02020004 _080DC5E8: .4byte SpriteCallbackDummy _080DC5EC: .4byte 0x03004b00 _080DC5F0: .4byte sub_80DC5F4 thumb_func_end sub_80DC4F4 thumb_func_start sub_80DC5F4 sub_80DC5F4: @ 80DC5F4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080DC618 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080DC678 cmp r0, 0x1 bgt _080DC61C cmp r0, 0 beq _080DC626 b _080DC6F8 .align 2, 0 _080DC618: .4byte 0x03004b20 _080DC61C: cmp r0, 0x2 beq _080DC6C8 cmp r0, 0x3 beq _080DC6E8 b _080DC6F8 _080DC626: ldrh r0, [r4, 0xA] adds r0, 0x4 strh r0, [r4, 0xA] ldr r1, _080DC674 movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 ldrh r1, [r0] lsls r1, 16 asrs r1, 17 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 subs r0, r1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 movs r1, 0xC ldrsh r2, [r4, r1] adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x22] lsls r1, 24 lsrs r1, 24 bl sub_8079AB8 movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0x30 bne _080DC6F8 b _080DC6DA .align 2, 0 _080DC674: .4byte gSineTable _080DC678: ldrh r0, [r4, 0xA] subs r0, 0x4 strh r0, [r4, 0xA] ldr r1, _080DC6C4 movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 ldrh r1, [r0] lsls r1, 16 asrs r1, 17 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 subs r0, r1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 movs r1, 0xC ldrsh r2, [r4, r1] adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x22] lsls r1, 24 lsrs r1, 24 bl sub_8079AB8 movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0 bne _080DC6F8 b _080DC6DA .align 2, 0 _080DC6C4: .4byte gSineTable _080DC6C8: movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080DC6E4 adds r0, r1 bl obj_delete_but_dont_free_vram _080DC6DA: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080DC6F8 .align 2, 0 _080DC6E4: .4byte 0x02020004 _080DC6E8: ldrh r0, [r4, 0x24] lsls r0, 24 lsrs r0, 24 bl FreeOamMatrix adds r0, r5, 0 bl move_anim_task_del _080DC6F8: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80DC5F4 thumb_func_start sub_80DC700 sub_80DC700: @ 80DC700 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080DC778 cmp r0, 0x1 bgt _080DC716 cmp r0, 0 beq _080DC720 b _080DC818 _080DC716: cmp r0, 0x2 beq _080DC7AA cmp r0, 0x3 beq _080DC808 b _080DC818 _080DC720: ldr r4, _080DC76C ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DC74E ldrh r0, [r5, 0x22] adds r0, 0xC strh r0, [r5, 0x22] _080DC74E: movs r0, 0x8 strh r0, [r5, 0x30] ldr r1, _080DC770 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r2, _080DC774 ldrh r1, [r5, 0x30] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r0, r1 strh r0, [r2] b _080DC7A2 .align 2, 0 _080DC76C: .4byte 0x0202f7c8 _080DC770: .4byte REG_BLDCNT _080DC774: .4byte REG_BLDALPHA _080DC778: adds r0, r5, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080DC818 movs r0, 0x40 negs r0, r0 bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xCB bl audio_play_and_stuff adds r0, r5, 0 movs r1, 0x1 bl ChangeSpriteAffineAnim _080DC7A2: ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _080DC818 _080DC7AA: ldrh r0, [r5, 0x32] adds r1, r0, 0x1 strh r1, [r5, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080DC7E8 movs r0, 0 strh r0, [r5, 0x32] ldrh r1, [r5, 0x30] subs r1, 0x1 strh r1, [r5, 0x30] ldr r2, _080DC804 movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r1, 0x30 ldrsh r0, [r5, r1] cmp r0, 0 bne _080DC7E8 ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _080DC7E8: movs r0, 0xE0 lsls r0, 2 adds r2, r0, 0 ldrh r1, [r5, 0x34] adds r2, r1 lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r5, 0x26] subs r0, r1 strh r0, [r5, 0x26] movs r0, 0xFF ands r2, r0 strh r2, [r5, 0x34] b _080DC818 .align 2, 0 _080DC804: .4byte REG_BLDALPHA _080DC808: ldr r0, _080DC820 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, r5, 0 bl move_anim_8072740 _080DC818: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DC820: .4byte REG_BLDCNT thumb_func_end sub_80DC700 thumb_func_start sub_80DC824 sub_80DC824: @ 80DC824 push {r4-r6,lr} adds r6, r0, 0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DC850 adds r0, r6, 0 movs r1, 0x2 bl StartSpriteAffineAnim ldr r0, _080DC84C ldrh r1, [r0, 0x4] negs r1, r1 strh r1, [r0, 0x4] ldrh r1, [r0] negs r1, r1 strh r1, [r0] b _080DC880 .align 2, 0 _080DC84C: .4byte 0x03004b00 _080DC850: ldr r0, _080DC8E4 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DC880 adds r0, r6, 0 movs r1, 0x1 bl StartSpriteAffineAnim ldr r1, _080DC8E8 ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] ldrh r0, [r1, 0x6] negs r0, r0 strh r0, [r1, 0x6] ldrh r0, [r1] negs r0, r0 strh r0, [r1] _080DC880: ldr r5, _080DC8E4 ldrb r0, [r5] movs r1, 0x2 bl sub_8077EE4 lsls r0, 24 ldr r4, _080DC8E8 lsrs r0, 24 ldrh r1, [r4] adds r0, r1 strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077EE4 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 strh r0, [r6, 0x22] ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] adds r0, r1 strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] adds r0, r4 strh r0, [r6, 0x36] ldr r0, _080DC8EC str r0, [r6, 0x1C] ldr r1, _080DC8F0 adds r0, r6, 0 bl oamt_set_x3A_32 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DC8E4: .4byte 0x0202f7c9 _080DC8E8: .4byte 0x03004b00 _080DC8EC: .4byte sub_8078B34 _080DC8F0: .4byte move_anim_8072740 thumb_func_end sub_80DC824 thumb_func_start sub_80DC8F4 sub_80DC8F4: @ 80DC8F4 push {r4-r6,lr} adds r6, r0, 0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DC918 ldr r1, _080DC914 ldrh r0, [r1] negs r0, r0 strh r0, [r1] adds r0, r6, 0 movs r1, 0x2 bl StartSpriteAffineAnim b _080DC934 .align 2, 0 _080DC914: .4byte 0x03004b00 _080DC918: ldr r0, _080DC990 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DC934 ldr r0, _080DC994 ldrh r1, [r0, 0x2] negs r1, r1 strh r1, [r0, 0x2] ldrh r1, [r0] negs r1, r1 strh r1, [r0] _080DC934: ldr r5, _080DC990 ldrb r0, [r5] movs r1, 0x2 bl sub_8077EE4 lsls r0, 24 ldr r4, _080DC994 lsrs r0, 24 ldrh r1, [r4] adds r0, r1 strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077EE4 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 strh r0, [r6, 0x22] ldrh r0, [r4, 0x4] strh r0, [r6, 0x2E] ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x36] ldr r0, _080DC998 str r0, [r6, 0x1C] ldr r1, _080DC99C adds r0, r6, 0 bl oamt_set_x3A_32 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DC990: .4byte 0x0202f7c9 _080DC994: .4byte 0x03004b00 _080DC998: .4byte sub_8078B34 _080DC99C: .4byte move_anim_8072740 thumb_func_end sub_80DC8F4 thumb_func_start sub_80DC9A0 sub_80DC9A0: @ 80DC9A0 push {r4,r5,lr} adds r5, r0, 0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DC9BC ldr r0, _080DC9FC movs r2, 0x4 ldrsh r1, [r0, r2] lsrs r2, r1, 31 adds r1, r2 asrs r1, 1 strh r1, [r0, 0x4] _080DC9BC: adds r0, r5, 0 movs r1, 0x1 bl sub_80787B0 ldr r1, _080DC9FC ldrh r0, [r1, 0x4] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] ldrh r0, [r5, 0x22] strh r0, [r5, 0x34] movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _080DCA04 ldr r4, _080DCA00 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] b _080DCA16 .align 2, 0 _080DC9FC: .4byte 0x03004b00 _080DCA00: .4byte 0x0202f7c9 _080DCA04: ldr r0, _080DCA2C ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 adds r3, r5, 0 adds r3, 0x36 movs r1, 0x1 bl sub_807A3FC _080DCA16: adds r0, r5, 0 bl sub_8078BD4 ldr r0, _080DCA30 ldrh r0, [r0, 0x6] strh r0, [r5, 0x38] ldr r0, _080DCA34 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DCA2C: .4byte 0x0202f7c9 _080DCA30: .4byte 0x03004b00 _080DCA34: .4byte sub_80DCA38 thumb_func_end sub_80DC9A0 thumb_func_start sub_80DCA38 sub_80DCA38: @ 80DCA38 push {r4,lr} adds r4, r0, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080DCA4E adds r0, r4, 0 bl move_anim_8072740 b _080DCA6A _080DCA4E: movs r1, 0x3A ldrsh r0, [r4, r1] movs r2, 0x38 ldrsh r1, [r4, r2] bl sine ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] ldrh r0, [r4, 0x3A] adds r0, 0xD movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x3A] _080DCA6A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DCA38 thumb_func_start sub_80DCA70 sub_80DCA70: @ 80DCA70 push {r4,lr} adds r4, r0, 0 ldr r0, _080DCAA0 ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 movs r1, 0 bl sub_807A3FC ldr r0, _080DCAA4 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DCAAC ldr r0, _080DCAA8 ldrh r1, [r4, 0x20] ldrh r2, [r0] subs r1, r2 strh r1, [r4, 0x20] b _080DCAB8 .align 2, 0 _080DCAA0: .4byte 0x0202f7c9 _080DCAA4: .4byte 0x0202f7c8 _080DCAA8: .4byte 0x03004b00 _080DCAAC: ldr r1, _080DCAE0 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] adds r0, r1, 0 _080DCAB8: ldrh r0, [r0, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldr r0, _080DCAE4 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DCAD4 ldrh r0, [r4, 0x22] adds r0, 0x8 strh r0, [r4, 0x22] _080DCAD4: ldr r0, _080DCAE8 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080DCAE0: .4byte 0x03004b00 _080DCAE4: .4byte 0x0202f7c9 _080DCAE8: .4byte sub_80DCAEC thumb_func_end sub_80DCA70 thumb_func_start sub_80DCAEC sub_80DCAEC: @ 80DCAEC push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _080DCB20 movs r0, 0 strh r0, [r3, 0x2E] movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] _080DCB20: ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x33 bne _080DCB34 adds r0, r3, 0 bl move_anim_8072740 _080DCB34: pop {r0} bx r0 thumb_func_end sub_80DCAEC thumb_func_start sub_80DCB38 sub_80DCB38: @ 80DCB38 ldr r2, _080DCB54 movs r3, 0xFD lsls r3, 6 adds r1, r3, 0 strh r1, [r2] adds r2, 0x2 movs r1, 0x10 strh r1, [r2] movs r1, 0x10 strh r1, [r0, 0x2E] ldr r1, _080DCB58 str r1, [r0, 0x1C] bx lr .align 2, 0 _080DCB54: .4byte REG_BLDCNT _080DCB58: .4byte sub_80DCB5C thumb_func_end sub_80DCB38 thumb_func_start sub_80DCB5C sub_80DCB5C: @ 80DCB5C push {lr} adds r3, r0, 0 ldrh r1, [r3, 0x32] movs r2, 0x32 ldrsh r0, [r3, r2] cmp r0, 0x13 bgt _080DCB70 adds r0, r1, 0x1 strh r0, [r3, 0x32] b _080DCBA8 _080DCB70: ldrh r1, [r3, 0x30] adds r0, r1, 0x1 strh r0, [r3, 0x30] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080DCBA8 ldrh r1, [r3, 0x2E] subs r1, 0x1 strh r1, [r3, 0x2E] ldr r2, _080DCBAC movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r1, 0x2E ldrsh r0, [r3, r1] cmp r0, 0 bne _080DCBA8 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080DCBB0 str r0, [r3, 0x1C] _080DCBA8: pop {r0} bx r0 .align 2, 0 _080DCBAC: .4byte REG_BLDALPHA _080DCBB0: .4byte sub_80DCBB4 thumb_func_end sub_80DCB5C thumb_func_start sub_80DCBB4 sub_80DCBB4: @ 80DCBB4 push {lr} ldr r1, _080DCBC8 movs r2, 0 strh r2, [r1] adds r1, 0x2 strh r2, [r1] bl move_anim_8072740 pop {r0} bx r0 .align 2, 0 _080DCBC8: .4byte REG_BLDCNT thumb_func_end sub_80DCBB4 thumb_func_start sub_80DCBCC sub_80DCBCC: @ 80DCBCC push {r4-r7,lr} sub sp, 0x4 adds r7, r0, 0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DCBEC ldr r1, _080DCBE8 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] b _080DCC0E .align 2, 0 _080DCBE8: .4byte 0x03004b00 _080DCBEC: ldr r0, _080DCCE8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DCC0E ldr r1, _080DCCEC ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] ldrh r0, [r1, 0x6] negs r0, r0 strh r0, [r1, 0x6] _080DCC0E: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080DCC5E ldr r0, _080DCCE8 ldrb r0, [r0] bl battle_side_get_owner adds r4, r0, 0 ldr r5, _080DCCF0 ldrb r0, [r5] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080DCC5E ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 cmp r0, 0 beq _080DCC4C ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080DCC5E _080DCC4C: ldr r0, _080DCCEC movs r2, 0x4 ldrsh r1, [r0, r2] negs r1, r1 strh r1, [r0, 0x4] movs r2, 0 ldrsh r1, [r0, r2] negs r1, r1 strh r1, [r0] _080DCC5E: adds r0, r7, 0 movs r1, 0x1 bl sub_80787B0 ldr r5, _080DCCF0 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 ldr r6, _080DCCEC lsrs r4, 24 ldrh r0, [r6, 0x4] adds r4, r0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldrh r2, [r6, 0x6] adds r1, r2 lsls r1, 16 ldrh r2, [r7, 0x20] lsls r0, r4, 16 asrs r0, 16 subs r0, r2 lsls r0, 16 asrs r0, 16 ldrh r2, [r7, 0x22] lsrs r5, r1, 16 asrs r1, 16 subs r1, r2 lsls r1, 16 asrs r1, 16 bl sub_80790F0 lsls r0, 16 movs r1, 0xC0 lsls r1, 24 adds r0, r1 lsrs r0, 16 movs r3, 0x80 lsls r3, 1 str r0, [sp] adds r0, r7, 0 movs r1, 0 adds r2, r3, 0 bl sub_8078FDC ldrh r0, [r6, 0x8] strh r0, [r7, 0x2E] strh r4, [r7, 0x32] strh r5, [r7, 0x36] ldr r0, _080DCCF4 str r0, [r7, 0x1C] ldr r1, _080DCCF8 adds r0, r7, 0 bl oamt_set_x3A_32 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DCCE8: .4byte 0x0202f7c8 _080DCCEC: .4byte 0x03004b00 _080DCCF0: .4byte 0x0202f7c9 _080DCCF4: .4byte sub_8078B34 _080DCCF8: .4byte move_anim_8072740 thumb_func_end sub_80DCBCC thumb_func_start sub_80DCCFC sub_80DCCFC: @ 80DCCFC push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080DCD68 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DCD1C ldr r1, _080DCD6C ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080DCD1C: ldr r4, _080DCD6C ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] ldr r5, _080DCD70 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] adds r0, r1 strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] adds r0, r1 strh r0, [r6, 0x36] ldrh r0, [r4, 0xA] strh r0, [r6, 0x38] adds r0, r6, 0 bl sub_80786EC ldr r0, _080DCD74 str r0, [r6, 0x1C] adds r2, r6, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DCD68: .4byte 0x0202f7c8 _080DCD6C: .4byte 0x03004b00 _080DCD70: .4byte 0x0202f7c9 _080DCD74: .4byte sub_80DCD78 thumb_func_end sub_80DCCFC thumb_func_start sub_80DCD78 sub_80DCD78: @ 80DCD78 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 adds r4, r0, 0 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r2] adds r0, r4, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080DCDA4 adds r0, r4, 0 bl move_anim_8072740 b _080DCE34 _080DCDA4: movs r0, 0x2E adds r0, r4 mov r8, r0 ldrh r7, [r4, 0x20] ldrh r5, [r4, 0x24] ldrh r1, [r4, 0x22] mov r12, r1 ldrh r6, [r4, 0x26] mov r2, r8 add r1, sp, 0x4 movs r3, 0x7 _080DCDBA: ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 subs r3, 0x1 cmp r3, 0 bge _080DCDBA adds r0, r7, r5 lsls r0, 16 lsrs r5, r0, 16 mov r2, r12 adds r0, r2, r6 lsls r0, 16 lsrs r6, r0, 16 adds r0, r4, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 bne _080DCE34 ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 lsls r1, r5, 16 asrs r1, 16 subs r0, r1 lsls r0, 16 asrs r0, 16 ldrh r1, [r4, 0x26] ldrh r2, [r4, 0x22] adds r1, r2 lsls r2, r6, 16 asrs r2, 16 subs r1, r2 lsls r1, 16 asrs r1, 16 bl sub_80790F0 lsls r0, 16 movs r1, 0xC0 lsls r1, 24 adds r0, r1 lsrs r0, 16 movs r3, 0x80 lsls r3, 1 str r0, [sp] adds r0, r4, 0 movs r1, 0 adds r2, r3, 0 bl sub_8078FDC add r2, sp, 0x4 mov r1, r8 movs r3, 0x7 _080DCE26: ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 subs r3, 0x1 cmp r3, 0 bge _080DCE26 _080DCE34: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80DCD78 thumb_func_start sub_80DCE40 sub_80DCE40: @ 80DCE40 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080DCE54 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DCE5C ldr r4, _080DCE58 b _080DCE5E .align 2, 0 _080DCE54: .4byte 0x03004b00 _080DCE58: .4byte 0x0202f7c8 _080DCE5C: ldr r4, _080DCE90 _080DCE5E: ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x12 strh r0, [r5, 0x22] ldr r1, _080DCE94 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080DCE98 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DCE90: .4byte 0x0202f7c9 _080DCE94: .4byte move_anim_8074EE0 _080DCE98: .4byte sub_80785E4 thumb_func_end sub_80DCE40 thumb_func_start sub_80DCE9C sub_80DCE9C: @ 80DCE9C push {r4-r6,lr} adds r5, r0, 0 ldr r6, _080DCF08 movs r1, 0x6 ldrsh r0, [r6, r1] cmp r0, 0 beq _080DCEBC ldr r0, _080DCF0C ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x20 adds r3, r5, 0 adds r3, 0x22 movs r1, 0 bl sub_807A3FC _080DCEBC: ldrh r0, [r6] ldrh r1, [r5, 0x20] adds r0, r1 movs r4, 0 strh r0, [r5, 0x20] ldrh r0, [r5, 0x22] adds r0, 0xE strh r0, [r5, 0x22] ldrb r1, [r6, 0x2] adds r0, r5, 0 bl StartSpriteAnim adds r0, r5, 0 bl AnimateSprite strh r4, [r5, 0x2E] strh r4, [r5, 0x30] movs r0, 0x4 strh r0, [r5, 0x32] movs r0, 0x10 strh r0, [r5, 0x34] ldr r0, _080DCF10 strh r0, [r5, 0x36] ldrh r0, [r6, 0x4] strh r0, [r5, 0x38] ldr r1, _080DCF14 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r1, _080DCF18 str r1, [r5, 0x1C] adds r0, r5, 0 bl _call_via_r1 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DCF08: .4byte 0x03004b00 _080DCF0C: .4byte 0x0202f7c9 _080DCF10: .4byte 0x0000ffba _080DCF14: .4byte sub_80DCF1C _080DCF18: .4byte sub_8078278 thumb_func_end sub_80DCE9C thumb_func_start sub_80DCF1C sub_80DCF1C: @ 80DCF1C push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x38] ldrh r2, [r4, 0x20] adds r0, r1, r2 strh r0, [r4, 0x20] movs r0, 0xC0 strh r0, [r4, 0x2E] strh r1, [r4, 0x30] movs r0, 0x4 strh r0, [r4, 0x32] movs r0, 0x20 strh r0, [r4, 0x34] ldr r0, _080DCF54 strh r0, [r4, 0x36] ldr r1, _080DCF58 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r1, _080DCF5C str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080DCF54: .4byte 0x0000ffe8 _080DCF58: .4byte move_anim_8074EE0 _080DCF5C: .4byte sub_8078278 thumb_func_end sub_80DCF1C thumb_func_start sub_80DCF60 sub_80DCF60: @ 80DCF60 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080DCF88 ldrb r1, [r4, 0xA] bl StartSpriteAnim adds r0, r5, 0 bl AnimateSprite ldr r0, _080DCF8C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DCF90 ldrh r0, [r5, 0x20] ldrh r1, [r4] subs r0, r1 b _080DCF96 .align 2, 0 _080DCF88: .4byte 0x03004b00 _080DCF8C: .4byte 0x0202f7c8 _080DCF90: ldrh r0, [r4] ldrh r1, [r5, 0x20] adds r0, r1 _080DCF96: strh r0, [r5, 0x20] ldr r3, _080DCFD8 ldrh r2, [r3, 0x2] ldrh r0, [r5, 0x22] adds r2, r0 movs r4, 0 strh r2, [r5, 0x22] ldrh r0, [r3, 0x8] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] ldrh r1, [r3, 0x4] adds r0, r1 strh r0, [r5, 0x32] strh r2, [r5, 0x34] ldrh r0, [r3, 0x6] adds r2, r0 strh r2, [r5, 0x36] adds r0, r5, 0 bl sub_8078A5C strh r4, [r5, 0x34] strh r4, [r5, 0x36] ldr r0, _080DCFDC str r0, [r5, 0x1C] ldr r1, _080DCFE0 adds r0, r5, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DCFD8: .4byte 0x03004b00 _080DCFDC: .4byte sub_8078394 _080DCFE0: .4byte move_anim_8074EE0 thumb_func_end sub_80DCF60 thumb_func_start sub_80DCFE4 sub_80DCFE4: @ 80DCFE4 push {r4,lr} adds r4, r0, 0 ldr r0, _080DCFFC movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0 bne _080DD000 adds r0, r4, 0 movs r1, 0 bl sub_80787B0 b _080DD008 .align 2, 0 _080DCFFC: .4byte 0x03004b00 _080DD000: adds r0, r4, 0 movs r1, 0 bl sub_8078764 _080DD008: ldr r1, _080DD024 ldrh r0, [r1, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x4] strh r0, [r4, 0x30] ldrh r0, [r1, 0x8] strh r0, [r4, 0x32] ldrh r0, [r1, 0xA] strh r0, [r4, 0x34] ldr r0, _080DD028 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080DD024: .4byte 0x03004b00 _080DD028: .4byte sub_80DD02C thumb_func_end sub_80DCFE4 thumb_func_start sub_80DD02C sub_80DD02C: @ 80DD02C push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x36] adds r0, r1 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 24 negs r0, r0 strh r0, [r4, 0x26] movs r2, 0x38 ldrsh r0, [r4, r2] movs r2, 0x34 ldrsh r1, [r4, r2] bl sine strh r0, [r4, 0x24] ldrh r0, [r4, 0x32] ldrh r1, [r4, 0x38] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _080DD072 adds r0, r4, 0 bl move_anim_8072740 _080DD072: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DD02C thumb_func_start do_boulder_dust do_boulder_dust: @ 80DD078 push {r4-r6,lr} sub sp, 0x10 lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 ldr r1, _080DD154 ldr r2, _080DD158 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r4, _080DD15C ldrb r1, [r4] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080DD0C4 ldrb r0, [r4] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4] _080DD0C4: ldr r0, _080DD160 strh r5, [r0] ldr r0, _080DD164 strh r5, [r0] ldr r0, _080DD168 strh r5, [r0] adds r0, 0x2 strh r5, [r0] mov r0, sp bl sub_8078914 ldr r1, [sp, 0x4] str r5, [sp, 0xC] ldr r2, _080DD16C add r0, sp, 0xC str r0, [r2] str r1, [r2, 0x4] ldr r0, _080DD170 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _080DD174 bl LZDecompressVram ldr r0, _080DD178 ldr r1, [sp] bl LZDecompressVram ldr r0, _080DD17C mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DD120 mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_80763FC _080DD120: ldr r0, _080DD180 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _080DD13A ldr r0, _080DD184 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DD13A movs r5, 0x1 _080DD13A: ldr r0, _080DD188 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 strh r5, [r1, 0x8] ldr r0, _080DD18C str r0, [r1] add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DD154: .4byte REG_BLDCNT _080DD158: .4byte 0x00003f42 _080DD15C: .4byte REG_BG1CNT _080DD160: .4byte 0x030042c0 _080DD164: .4byte 0x030041b4 _080DD168: .4byte REG_BG1HOFS _080DD16C: .4byte 0x040000d4 _080DD170: .4byte 0x85000400 _080DD174: .4byte gUnknown_08E67ED8 _080DD178: .4byte gUnknown_08E68054 _080DD17C: .4byte gUnknown_08E68580 _080DD180: .4byte 0x03004b00 _080DD184: .4byte 0x0202f7c8 _080DD188: .4byte 0x03004b20 _080DD18C: .4byte sub_80DD190 thumb_func_end do_boulder_dust thumb_func_start sub_80DD190 sub_80DD190: @ 80DD190 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _080DD1C0 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r3, r1, 0 cmp r0, 0 bne _080DD1CC ldr r1, _080DD1C4 ldr r5, _080DD1C8 adds r0, r5, 0 ldrh r2, [r1] adds r0, r2 b _080DD1D2 .align 2, 0 _080DD1C0: .4byte 0x03004b20 _080DD1C4: .4byte 0x030042c0 _080DD1C8: .4byte 0x0000fffa _080DD1CC: ldr r1, _080DD204 ldrh r0, [r1] adds r0, 0x6 _080DD1D2: strh r0, [r1] adds r4, r1, 0 ldr r1, _080DD208 ldr r5, _080DD20C adds r0, r5, 0 ldrh r2, [r1] adds r0, r2 strh r0, [r1] lsls r2, r7, 2 adds r0, r2, r7 lsls r0, 3 adds r0, r3 movs r5, 0x20 ldrsh r0, [r0, r5] mov r8, r2 adds r2, r1, 0 cmp r0, 0x4 bls _080DD1F8 b _080DD37C _080DD1F8: lsls r0, 2 ldr r1, _080DD210 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080DD204: .4byte 0x030042c0 _080DD208: .4byte 0x030041b4 _080DD20C: .4byte 0x0000ffff _080DD210: .4byte _080DD214 .align 2, 0 _080DD214: .4byte _080DD228 .4byte _080DD270 .4byte _080DD292 .4byte _080DD2D4 .4byte _080DD358 _080DD228: mov r1, r8 adds r0, r1, r7 lsls r0, 3 adds r3, r0, r3 ldrh r0, [r3, 0x1C] adds r0, 0x1 movs r4, 0 strh r0, [r3, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 beq _080DD242 b _080DD37C _080DD242: strh r4, [r3, 0x1C] ldrh r1, [r3, 0x1E] adds r1, 0x1 strh r1, [r3, 0x1E] ldr r2, _080DD26C movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r2, 0x1E ldrsh r0, [r3, r2] cmp r0, 0x7 beq _080DD260 b _080DD37C _080DD260: ldrh r0, [r3, 0x20] adds r0, 0x1 strh r0, [r3, 0x20] strh r4, [r3, 0x1E] b _080DD37C .align 2, 0 _080DD26C: .4byte REG_BLDALPHA _080DD270: mov r5, r8 adds r0, r5, r7 lsls r0, 3 adds r1, r0, r3 ldrh r0, [r1, 0x1E] adds r0, 0x1 strh r0, [r1, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x65 bne _080DD37C movs r0, 0x7 strh r0, [r1, 0x1E] ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] b _080DD37C _080DD292: mov r1, r8 adds r0, r1, r7 lsls r0, 3 adds r3, r0, r3 ldrh r0, [r3, 0x1C] adds r0, 0x1 strh r0, [r3, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080DD37C movs r0, 0 strh r0, [r3, 0x1C] ldrh r1, [r3, 0x1E] subs r1, 0x1 strh r1, [r3, 0x1E] ldr r2, _080DD2D0 movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r2, 0x1E ldrsh r1, [r3, r2] cmp r1, 0 bne _080DD37C ldrh r0, [r3, 0x20] adds r0, 0x1 strh r0, [r3, 0x20] strh r1, [r3, 0x1E] b _080DD37C .align 2, 0 _080DD2D0: .4byte REG_BLDALPHA _080DD2D4: mov r0, sp bl sub_8078914 ldr r2, [sp] movs r3, 0x80 lsls r3, 6 add r5, sp, 0xC movs r6, 0 ldr r1, _080DD38C movs r4, 0x80 lsls r4, 5 mov r9, r5 ldr r0, _080DD390 mov r12, r0 movs r0, 0x85 lsls r0, 24 mov r10, r0 _080DD2F6: str r6, [sp, 0xC] mov r0, r9 str r0, [r1] str r2, [r1, 0x4] mov r0, r12 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _080DD2F6 str r6, [sp, 0xC] str r5, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r10 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r0, _080DD38C str r5, [r0] str r1, [r0, 0x4] ldr r1, _080DD394 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080DD344 ldr r2, _080DD398 ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080DD344: ldr r0, _080DD39C mov r5, r8 adds r1, r5, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] ldr r4, _080DD3A0 ldr r2, _080DD3A4 _080DD358: movs r1, 0 strh r1, [r4] strh r1, [r2] ldr r0, _080DD3A8 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r2, _080DD398 ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] adds r0, r7, 0 bl move_anim_task_del _080DD37C: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DD38C: .4byte 0x040000d4 _080DD390: .4byte 0x85000400 _080DD394: .4byte 0x85000200 _080DD398: .4byte REG_BG1CNT _080DD39C: .4byte 0x03004b20 _080DD3A0: .4byte 0x030042c0 _080DD3A4: .4byte 0x030041b4 _080DD3A8: .4byte REG_BLDCNT thumb_func_end sub_80DD190 thumb_func_start sub_80DD3AC sub_80DD3AC: @ 80DD3AC push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 bne _080DD428 ldr r4, _080DD3F0 movs r2, 0x6 ldrsh r0, [r4, r2] cmp r0, 0 beq _080DD3F8 ldr r0, _080DD3F4 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DD3F8 movs r0, 0x98 lsls r0, 1 strh r0, [r5, 0x20] ldrh r0, [r4, 0x2] negs r0, r0 strh r0, [r4, 0x2] movs r0, 0x1 strh r0, [r5, 0x38] ldrb r1, [r5, 0x3] subs r0, 0x40 ands r0, r1 movs r1, 0x10 orrs r0, r1 strb r0, [r5, 0x3] b _080DD3FC .align 2, 0 _080DD3F0: .4byte 0x03004b00 _080DD3F4: .4byte 0x0202f7c8 _080DD3F8: ldr r0, _080DD41C strh r0, [r5, 0x20] _080DD3FC: ldr r4, _080DD420 ldrh r0, [r4] strh r0, [r5, 0x22] ldr r1, _080DD424 adds r0, r5, 0 bl SetSubspriteTables ldrh r0, [r4, 0x2] strh r0, [r5, 0x30] ldrh r0, [r4, 0x4] strh r0, [r5, 0x32] ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _080DD484 .align 2, 0 _080DD41C: .4byte 0x0000ffc0 _080DD420: .4byte 0x03004b00 _080DD424: .4byte gUnknown_083DAD10 _080DD428: ldrh r1, [r5, 0x30] ldrh r3, [r5, 0x34] adds r1, r3 ldrh r2, [r5, 0x32] ldrh r0, [r5, 0x36] adds r2, r0 lsls r0, r1, 16 asrs r0, 24 ldrh r3, [r5, 0x24] adds r0, r3 strh r0, [r5, 0x24] lsls r0, r2, 16 asrs r0, 24 ldrh r3, [r5, 0x26] adds r0, r3 strh r0, [r5, 0x26] movs r0, 0xFF ands r1, r0 strh r1, [r5, 0x34] ands r2, r0 strh r2, [r5, 0x36] movs r1, 0x38 ldrsh r0, [r5, r1] cmp r0, 0 bne _080DD46E movs r2, 0x20 ldrsh r0, [r5, r2] movs r3, 0x24 ldrsh r1, [r5, r3] adds r0, r1 movs r1, 0x88 lsls r1, 1 cmp r0, r1 ble _080DD484 b _080DD480 _080DD46E: movs r1, 0x20 ldrsh r0, [r5, r1] movs r2, 0x24 ldrsh r1, [r5, r2] adds r0, r1 movs r1, 0x20 negs r1, r1 cmp r0, r1 bge _080DD484 _080DD480: ldr r0, _080DD48C str r0, [r5, 0x1C] _080DD484: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DD48C: .4byte move_anim_8072740 thumb_func_end sub_80DD3AC thumb_func_start sub_80DD490 sub_80DD490: @ 80DD490 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080DD4C8 ldrb r1, [r5, 0x8] bl StartSpriteAnim adds r0, r4, 0 movs r1, 0 bl sub_80787B0 ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x32] ldrh r0, [r5, 0x4] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x36] ldr r0, _080DD4CC str r0, [r4, 0x1C] ldr r1, _080DD4D0 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DD4C8: .4byte 0x03004b00 _080DD4CC: .4byte sub_8078B34 _080DD4D0: .4byte move_anim_8072740 thumb_func_end sub_80DD490 thumb_func_start sub_80DD4D4 sub_80DD4D4: @ 80DD4D4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080DD554 adds r6, r1, r0 ldr r5, _080DD558 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 mov r9, r0 ldrb r0, [r5] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 8 movs r1, 0xC0 lsls r1, 13 adds r0, r1 lsrs r7, r0, 16 ldr r4, _080DD55C ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 mov r10, r0 ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 8 movs r2, 0xC0 lsls r2, 13 adds r0, r2 lsrs r0, 16 mov r8, r0 ldrb r1, [r5] movs r0, 0x2 eors r0, r1 ldrb r4, [r4] cmp r0, r4 bne _080DD544 mov r8, r7 _080DD544: bl sub_80DD8BC lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bne _080DD560 movs r0, 0x20 b _080DD566 .align 2, 0 _080DD554: .4byte 0x03004b20 _080DD558: .4byte 0x0202f7c8 _080DD55C: .4byte 0x0202f7c9 _080DD560: lsls r1, r5, 3 movs r0, 0x30 subs r0, r1 _080DD566: strh r0, [r6, 0x18] movs r4, 0 strh r4, [r6, 0x8] strh r4, [r6, 0x1E] strh r4, [r6, 0x1A] movs r0, 0x1 strh r0, [r6, 0x20] movs r1, 0x18 ldrsh r0, [r6, r1] cmp r0, 0 bge _080DD57E adds r0, 0x7 _080DD57E: asrs r0, 3 subs r0, 0x1 strh r0, [r6, 0x1C] mov r2, r9 lsls r0, r2, 3 strh r0, [r6, 0xC] lsls r0, r7, 3 strh r0, [r6, 0xE] mov r1, r10 subs r0, r1, r2 lsls r0, 3 movs r2, 0x18 ldrsh r1, [r6, r2] bl __divsi3 strh r0, [r6, 0x10] mov r1, r8 subs r0, r1, r7 lsls r0, 3 movs r2, 0x18 ldrsh r1, [r6, r2] bl __divsi3 strh r0, [r6, 0x12] strh r4, [r6, 0x14] strh r4, [r6, 0x16] movs r0, 0x40 negs r0, r0 bl sub_8076F98 adds r4, r0, 0 lsls r4, 24 asrs r4, 8 lsrs r4, 16 movs r0, 0x3F bl sub_8076F98 lsls r0, 24 strh r4, [r6, 0x22] asrs r0, 24 lsls r4, 16 asrs r4, 16 subs r0, r4 movs r2, 0x18 ldrsh r1, [r6, r2] bl __divsi3 strh r0, [r6, 0x24] strh r5, [r6, 0xA] movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x26] ldr r0, _080DD600 str r0, [r6] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DD600: .4byte sub_80DD604 thumb_func_end sub_80DD4D4 thumb_func_start sub_80DD604 sub_80DD604: @ 80DD604 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080DD628 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x4 bls _080DD61E b _080DD76C _080DD61E: lsls r0, 2 ldr r1, _080DD62C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080DD628: .4byte 0x03004b20 _080DD62C: .4byte _080DD630 .align 2, 0 _080DD630: .4byte _080DD644 .4byte _080DD6A8 .4byte _080DD6B0 .4byte _080DD70C .4byte _080DD75E _080DD644: ldrh r2, [r4, 0x14] ldrh r0, [r4, 0x10] subs r2, r0 strh r2, [r4, 0x14] ldrh r0, [r4, 0x16] ldrh r1, [r4, 0x12] subs r0, r1 strh r0, [r4, 0x16] ldr r3, _080DD6A4 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 lsls r2, 16 asrs r2, 19 strh r2, [r0, 0x24] movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrh r0, [r4, 0x16] lsls r0, 16 asrs r0, 19 strh r0, [r1, 0x26] ldrh r0, [r4, 0x1A] adds r0, 0x1 strh r0, [r4, 0x1A] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _080DD694 movs r0, 0x14 strh r0, [r4, 0x1E] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080DD694: ldrh r1, [r4, 0x22] lsls r1, 24 asrs r1, 24 movs r0, 0xA2 bl audio_play_and_stuff b _080DD76C .align 2, 0 _080DD6A4: .4byte 0x02020004 _080DD6A8: ldrh r0, [r4, 0x1E] subs r0, 0x1 strh r0, [r4, 0x1E] b _080DD750 _080DD6B0: ldrh r0, [r4, 0x1A] subs r0, 0x1 strh r0, [r4, 0x1A] lsls r0, 16 asrs r0, 16 cmp r0, 0 beq _080DD6D0 ldrh r0, [r4, 0x10] ldrh r2, [r4, 0x14] adds r0, r2 strh r0, [r4, 0x14] ldrh r0, [r4, 0x12] ldrh r1, [r4, 0x16] adds r0, r1 strh r0, [r4, 0x16] b _080DD6DA _080DD6D0: strh r0, [r4, 0x14] strh r0, [r4, 0x16] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080DD6DA: ldr r2, _080DD708 movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r0, [r4, 0x14] lsls r0, 16 asrs r0, 19 strh r0, [r1, 0x24] movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r0, [r4, 0x16] lsls r0, 16 asrs r0, 19 strh r0, [r1, 0x26] b _080DD76C .align 2, 0 _080DD708: .4byte 0x02020004 _080DD70C: ldrh r0, [r4, 0x10] ldrh r2, [r4, 0xC] adds r0, r2 strh r0, [r4, 0xC] ldrh r0, [r4, 0x12] ldrh r1, [r4, 0xE] adds r0, r1 strh r0, [r4, 0xE] ldrh r0, [r4, 0x1A] adds r0, 0x1 strh r0, [r4, 0x1A] lsls r0, 16 asrs r0, 16 movs r2, 0x1C ldrsh r1, [r4, r2] cmp r0, r1 blt _080DD74A movs r0, 0 strh r0, [r4, 0x1A] adds r0, r4, 0 bl sub_80DD774 ldrh r1, [r4, 0x24] ldrh r0, [r4, 0x22] adds r1, r0 strh r1, [r4, 0x22] lsls r1, 24 asrs r1, 24 movs r0, 0xAF bl audio_play_and_stuff _080DD74A: ldrh r0, [r4, 0x18] subs r0, 0x1 strh r0, [r4, 0x18] _080DD750: lsls r0, 16 cmp r0, 0 bne _080DD76C ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080DD76C _080DD75E: movs r1, 0x1E ldrsh r0, [r4, r1] cmp r0, 0 bne _080DD76C adds r0, r2, 0 bl move_anim_task_del _080DD76C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DD604 thumb_func_start sub_80DD774 sub_80DD774: @ 80DD774 push {r4-r7,lr} adds r4, r0, 0 ldrh r0, [r4, 0xA] subs r0, 0x1 lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bhi _080DD864 lsls r0, 2 ldr r1, _080DD790 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080DD790: .4byte _080DD794 .align 2, 0 _080DD794: .4byte _080DD7A8 .4byte _080DD7B4 .4byte _080DD7B4 .4byte _080DD7C0 .4byte _080DD7CC _080DD7A8: ldr r3, _080DD7B0 movs r5, 0 b _080DD7D0 .align 2, 0 _080DD7B0: .4byte gSpriteTemplate_83DAD78 _080DD7B4: ldr r3, _080DD7BC movs r5, 0x50 b _080DD7D0 .align 2, 0 _080DD7BC: .4byte gSpriteTemplate_83DAD90 _080DD7C0: ldr r3, _080DD7C8 movs r5, 0x40 b _080DD7D0 .align 2, 0 _080DD7C8: .4byte gSpriteTemplate_83DAD90 _080DD7CC: ldr r3, _080DD86C movs r5, 0x30 _080DD7D0: ldrh r1, [r4, 0xC] lsls r1, 16 asrs r1, 19 lsls r1, 16 lsrs r1, 16 ldrh r2, [r4, 0xE] lsls r2, 16 asrs r2, 19 lsls r2, 16 movs r6, 0x20 ldrsh r0, [r4, r6] lsls r0, 2 adds r1, r0 lsls r1, 16 lsrs r6, r1, 16 asrs r1, 16 lsrs r7, r2, 16 asrs r2, 16 adds r0, r3, 0 movs r3, 0x23 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080DD85C ldr r1, _080DD870 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0x12 strh r1, [r0, 0x2E] movs r2, 0x20 ldrsh r1, [r4, r2] lsls r2, r1, 2 adds r2, r1 lsls r2, 2 adds r2, r6, r2 movs r6, 0xA ldrsh r3, [r4, r6] lsls r1, r3, 1 adds r1, r3 adds r2, r1 strh r2, [r0, 0x32] strh r7, [r0, 0x36] movs r1, 0xA ldrsh r2, [r4, r1] lsls r2, 1 movs r3, 0x10 negs r3, r3 adds r1, r3, 0 subs r1, r2 strh r1, [r0, 0x38] ldrh r3, [r0, 0x4] lsls r2, r3, 22 lsrs r2, 22 adds r2, r5 ldr r5, _080DD874 adds r1, r5, 0 ands r2, r1 ldr r1, _080DD878 ands r1, r3 orrs r1, r2 strh r1, [r0, 0x4] bl sub_80786EC ldrh r0, [r4, 0x1E] adds r0, 0x1 strh r0, [r4, 0x1E] _080DD85C: movs r6, 0x20 ldrsh r0, [r4, r6] negs r0, r0 strh r0, [r4, 0x20] _080DD864: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DD86C: .4byte gSpriteTemplate_83DAD90 _080DD870: .4byte 0x02020004 _080DD874: .4byte 0x000003ff _080DD878: .4byte 0xfffffc00 thumb_func_end sub_80DD774 thumb_func_start sub_80DD87C sub_80DD87C: @ 80DD87C push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080DD8AE ldr r0, _080DD8B4 bl FindTaskIdByFunc lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF beq _080DD8A8 ldr r0, _080DD8B8 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x1E] subs r0, 0x1 strh r0, [r1, 0x1E] _080DD8A8: adds r0, r4, 0 bl DestroySprite _080DD8AE: pop {r4} pop {r0} bx r0 .align 2, 0 _080DD8B4: .4byte sub_80DD604 _080DD8B8: .4byte 0x03004b20 thumb_func_end sub_80DD87C thumb_func_start sub_80DD8BC sub_80DD8BC: @ 80DD8BC push {lr} ldr r0, _080DD8E4 ldr r0, [r0] ldrb r1, [r0, 0x11] lsrs r0, r1, 4 lsls r1, 28 lsrs r1, 28 subs r0, r1 lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xFF lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0x4 bls _080DD8DE movs r1, 0x1 _080DD8DE: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _080DD8E4: .4byte 0x0202f7b4 thumb_func_end sub_80DD8BC thumb_func_start sub_80DD8E8 sub_80DD8E8: @ 80DD8E8 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080DD920 ldrb r1, [r5, 0x8] bl StartSpriteAnim ldrh r0, [r5] strh r0, [r4, 0x24] ldrh r0, [r5, 0x2] strh r0, [r4, 0x32] ldrh r0, [r4, 0x34] ldrh r1, [r5, 0x4] subs r0, r1 strh r0, [r4, 0x34] movs r0, 0x3 strh r0, [r4, 0x2E] ldrh r0, [r5, 0x6] strh r0, [r4, 0x30] ldr r0, _080DD924 str r0, [r4, 0x1C] adds r4, 0x3E ldrb r0, [r4] movs r1, 0x4 orrs r0, r1 strb r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DD920: .4byte 0x03004b00 _080DD924: .4byte sub_80DD928 thumb_func_end sub_80DD8E8 thumb_func_start sub_80DD928 sub_80DD928: @ 80DD928 push {lr} adds r2, r0, 0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r3] ldrh r1, [r2, 0x34] movs r3, 0x34 ldrsh r0, [r2, r3] cmp r0, 0 beq _080DD960 ldrh r3, [r2, 0x32] adds r0, r1, r3 strh r0, [r2, 0x26] ldrh r0, [r2, 0x2E] adds r1, r0 strh r1, [r2, 0x34] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r1, 16 cmp r1, 0 ble _080DD972 movs r0, 0 strh r0, [r2, 0x34] b _080DD972 _080DD960: ldrh r0, [r2, 0x30] subs r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 cmp r0, 0 bne _080DD972 adds r0, r2, 0 bl move_anim_8072740 _080DD972: pop {r0} bx r0 thumb_func_end sub_80DD928 thumb_func_start sub_80DD978 sub_80DD978: @ 80DD978 push {r4,lr} adds r4, r0, 0 ldr r0, _080DD9A0 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080DD994 adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim _080DD994: adds r0, r4, 0 bl sub_807941C pop {r4} pop {r0} bx r0 .align 2, 0 _080DD9A0: .4byte 0x0202f7c8 thumb_func_end sub_80DD978 thumb_func_start sub_80DD9A4 sub_80DD9A4: @ 80DD9A4 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080DD9F0 ldrb r0, [r5] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldr r2, _080DD9F4 ldrh r3, [r2] ldrh r5, [r4, 0x20] adds r1, r3, r5 strh r1, [r4, 0x20] ldrh r1, [r2, 0x2] adds r0, r1 strh r0, [r4, 0x22] strh r3, [r4, 0x30] strh r1, [r4, 0x32] ldrh r0, [r2, 0x4] strh r0, [r4, 0x38] ldrb r1, [r2, 0x6] adds r0, r4, 0 bl StartSpriteAnim ldr r0, _080DD9F8 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DD9F0: .4byte 0x0202f7c9 _080DD9F4: .4byte 0x03004b00 _080DD9F8: .4byte sub_80DD9FC thumb_func_end sub_80DD9A4 thumb_func_start sub_80DD9FC sub_80DD9FC: @ 80DD9FC push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x8 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x34] adds r0, r1 strh r0, [r4, 0x34] ldrh r0, [r4, 0x32] ldrh r2, [r4, 0x36] adds r0, r2 strh r0, [r4, 0x36] movs r1, 0x34 ldrsh r0, [r4, r1] movs r1, 0x28 bl __divsi3 ldrh r1, [r4, 0x24] adds r1, r0 strh r1, [r4, 0x24] movs r2, 0x2E ldrsh r0, [r4, r2] movs r2, 0x38 ldrsh r1, [r4, r2] bl sine ldrh r1, [r4, 0x26] subs r1, r0 strh r1, [r4, 0x26] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x8C ble _080DDA46 adds r0, r4, 0 bl move_anim_8072740 _080DDA46: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DD9FC thumb_func_start sub_80DDA4C sub_80DDA4C: @ 80DDA4C push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r2, _080DDA84 ldr r0, [r2] cmp r0, 0x20 bgt _080DDA60 ldr r1, _080DDA88 movs r0, 0 strh r0, [r1, 0xE] _080DDA60: ldr r2, [r2] adds r0, r2, 0 subs r0, 0x21 cmp r0, 0x20 bhi _080DDA70 ldr r1, _080DDA88 movs r0, 0x1 strh r0, [r1, 0xE] _080DDA70: cmp r2, 0x41 ble _080DDA7A ldr r1, _080DDA88 movs r0, 0x2 strh r0, [r1, 0xE] _080DDA7A: adds r0, r3, 0 bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _080DDA84: .4byte 0x0202f7b8 _080DDA88: .4byte 0x03004b00 thumb_func_end sub_80DDA4C thumb_func_start sub_80DDA8C sub_80DDA8C: @ 80DDA8C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080DDAE8 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0 bne _080DDAAE movs r0, 0 bl sub_80789D4 movs r0, 0xC8 strh r0, [r5, 0xA] _080DDAAE: ldr r4, _080DDAEC movs r1, 0xA ldrsh r0, [r5, r1] movs r1, 0xA bl __divsi3 ldrh r1, [r4] adds r1, r0 strh r1, [r4] ldrh r0, [r5, 0xA] subs r0, 0x3 strh r0, [r5, 0xA] movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x78 bne _080DDADA movs r0, 0x1 bl sub_80789D4 adds r0, r6, 0 bl move_anim_task_del _080DDADA: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DDAE8: .4byte 0x03004b20 _080DDAEC: .4byte 0x030041b8 thumb_func_end sub_80DDA8C thumb_func_start sub_80DDAF0 sub_80DDAF0: @ 80DDAF0 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, _080DDB5C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bne _080DDB1C movs r0, 0 bl sub_80789D4 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] ldr r0, _080DDB60 ldrh r0, [r0] strh r0, [r4, 0xC] _080DDB1C: ldrh r0, [r4, 0xA] adds r0, 0x50 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0xA] ldr r6, _080DDB60 movs r2, 0xA ldrsh r1, [r4, r2] movs r0, 0x4 bl cosine ldrh r4, [r4, 0xC] adds r0, r4 strh r0, [r6] ldr r0, _080DDB64 movs r2, 0xE ldrsh r1, [r0, r2] ldr r0, _080DDB68 cmp r1, r0 bne _080DDB54 movs r0, 0 strh r0, [r6] movs r0, 0x1 bl sub_80789D4 adds r0, r5, 0 bl move_anim_task_del _080DDB54: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DDB5C: .4byte 0x03004b20 _080DDB60: .4byte 0x030041b8 _080DDB64: .4byte 0x03004b00 _080DDB68: .4byte 0x00000fff thumb_func_end sub_80DDAF0 thumb_func_start sub_80DDB6C sub_80DDB6C: @ 80DDB6C push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080DDBC8 ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] ldr r5, _080DDBCC ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] adds r0, r4, 0 bl sub_8078BD4 ldr r0, _080DDBD0 str r0, [r4, 0x1C] movs r0, 0x10 strh r0, [r4, 0x3A] ldr r1, _080DDBD4 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0x3A] strh r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DDBC8: .4byte 0x03004b00 _080DDBCC: .4byte 0x0202f7c9 _080DDBD0: .4byte sub_80DDBD8 _080DDBD4: .4byte REG_BLDCNT thumb_func_end sub_80DDB6C thumb_func_start sub_80DDBD8 sub_80DDBD8: @ 80DDBD8 push {r4,lr} adds r4, r0, 0 bl sub_80DDCC8 adds r0, r4, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _080DDBF8 ldr r0, _080DDBF4 str r0, [r4, 0x1C] b _080DDC42 .align 2, 0 _080DDBF4: .4byte sub_80DDC4C _080DDBF8: movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0xA bl sine ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0xF bl cosine ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r2, [r4, 0x38] adds r0, r2, 0x5 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] ldrh r0, [r4, 0x38] lsls r2, 16 asrs r2, 16 cmp r2, 0 beq _080DDC30 cmp r2, 0xC4 ble _080DDC42 _080DDC30: lsls r0, 16 cmp r0, 0 ble _080DDC42 ldr r0, _080DDC48 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0xC4 bl audio_play_and_stuff _080DDC42: pop {r4} pop {r0} bx r0 .align 2, 0 _080DDC48: .4byte 0x0202f7d2 thumb_func_end sub_80DDBD8 thumb_func_start sub_80DDC4C sub_80DDC4C: @ 80DDC4C push {r4,lr} adds r4, r0, 0 movs r0, 0x1 strh r0, [r4, 0x2E] adds r0, r4, 0 bl sub_8078B5C movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0xA bl sine ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0xF bl cosine ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r2, [r4, 0x38] adds r0, r2, 0x5 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] ldrh r0, [r4, 0x38] lsls r2, 16 asrs r2, 16 cmp r2, 0 beq _080DDC92 cmp r2, 0xC4 ble _080DDC9E _080DDC92: lsls r0, 16 cmp r0, 0 ble _080DDC9E movs r0, 0xC4 bl audio_play _080DDC9E: movs r1, 0x3A ldrsh r0, [r4, r1] cmp r0, 0 bne _080DDCBC adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080DDCB8 str r0, [r4, 0x1C] b _080DDCC2 .align 2, 0 _080DDCB8: .4byte sub_807861C _080DDCBC: adds r0, r4, 0 bl sub_80DDCC8 _080DDCC2: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DDC4C thumb_func_start sub_80DDCC8 sub_80DDCC8: @ 80DDCC8 push {r4,lr} adds r3, r0, 0 ldrh r2, [r3, 0x3A] movs r1, 0x3A ldrsh r0, [r3, r1] cmp r0, 0xFF ble _080DDCEC adds r0, r2, 0x1 strh r0, [r3, 0x3A] lsls r0, 16 ldr r1, _080DDCE8 cmp r0, r1 bne _080DDD4C movs r0, 0 b _080DDD4A .align 2, 0 _080DDCE8: .4byte 0x010d0000 _080DDCEC: ldrh r1, [r3, 0x3C] adds r4, r1, 0x1 strh r4, [r3, 0x3C] movs r0, 0xFF ands r0, r1 cmp r0, 0 bne _080DDD4C ldr r1, _080DDD10 ands r1, r4 strh r1, [r3, 0x3C] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080DDD14 adds r0, r2, 0x1 b _080DDD16 .align 2, 0 _080DDD10: .4byte 0xffffff00 _080DDD14: subs r0, r2, 0x1 _080DDD16: strh r0, [r3, 0x3A] ldr r2, _080DDD54 ldrh r1, [r3, 0x3A] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r0, r1 strh r0, [r2] movs r2, 0x3A ldrsh r0, [r3, r2] cmp r0, 0 beq _080DDD32 cmp r0, 0x10 bne _080DDD3E _080DDD32: ldrh r0, [r3, 0x3C] movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 eors r0, r1 strh r0, [r3, 0x3C] _080DDD3E: movs r1, 0x3A ldrsh r0, [r3, r1] cmp r0, 0 bne _080DDD4C movs r0, 0x80 lsls r0, 1 _080DDD4A: strh r0, [r3, 0x3A] _080DDD4C: pop {r4} pop {r0} bx r0 .align 2, 0 _080DDD54: .4byte REG_BLDALPHA thumb_func_end sub_80DDCC8 thumb_func_start sub_80DDD58 sub_80DDD58: @ 80DDD58 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 ldr r1, _080DDD74 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080DDD74: .4byte sub_80DDD78 thumb_func_end sub_80DDD58 thumb_func_start sub_80DDD78 sub_80DDD78: @ 80DDD78 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x20 bl sine strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x8 bl cosine strh r0, [r4, 0x26] ldrh r0, [r4, 0x2E] subs r0, 0x41 lsls r0, 16 lsrs r0, 16 cmp r0, 0x82 bhi _080DDDAC ldrb r0, [r4, 0x5] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x8 b _080DDDB6 _080DDDAC: ldrb r0, [r4, 0x5] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 _080DDDB6: orrs r1, r0 strb r1, [r4, 0x5] ldrh r0, [r4, 0x2E] adds r0, 0x13 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x32] adds r0, 0x50 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 24 ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] lsls r0, 16 asrs r0, 16 cmp r0, 0x3D bne _080DDDE8 adds r0, r4, 0 bl move_anim_8072740 _080DDDE8: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DDD78 thumb_func_start sub_80DDDF0 sub_80DDDF0: @ 80DDDF0 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r1, _080DDE68 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] movs r0, 0 bl obj_id_for_side_relative_to_move adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0x1 bl sub_8078E70 adds r0, r4, 0 movs r1, 0x80 movs r2, 0x80 movs r3, 0 bl obj_id_set_rotscale ldr r1, _080DDE6C lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldr r1, _080DDE70 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0 movs r1, 0x80 strh r1, [r0, 0x8] ldr r1, _080DDE74 ldrh r1, [r1] strh r1, [r0, 0xA] strh r2, [r0, 0xC] movs r1, 0x10 strh r1, [r0, 0xE] ldr r1, _080DDE78 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DDE68: .4byte REG_BLDCNT _080DDE6C: .4byte 0x02020004 _080DDE70: .4byte 0x03004b20 _080DDE74: .4byte 0x03004b00 _080DDE78: .4byte sub_80DDE7C thumb_func_end sub_80DDDF0 thumb_func_start sub_80DDE7C sub_80DDE7C: @ 80DDE7C push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080DDEC4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r3, r1, r2 ldrh r0, [r3, 0x1C] adds r0, 0x1 strh r0, [r3, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _080DDEBE movs r0, 0 strh r0, [r3, 0x1C] ldrh r1, [r3, 0xC] adds r1, 0x1 strh r1, [r3, 0xC] ldrh r0, [r3, 0xE] subs r0, 0x1 strh r0, [r3, 0xE] ldr r2, _080DDEC8 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r1, 0xC ldrsh r0, [r3, r1] cmp r0, 0x9 bne _080DDEBE ldr r0, _080DDECC str r0, [r3] _080DDEBE: pop {r0} bx r0 .align 2, 0 _080DDEC4: .4byte 0x03004b20 _080DDEC8: .4byte REG_BLDALPHA _080DDECC: .4byte sub_80DDED0 thumb_func_end sub_80DDE7C thumb_func_start sub_80DDED0 sub_80DDED0: @ 80DDED0 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, _080DDEF4 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r1, [r4, 0xA] movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0 ble _080DDEF8 subs r0, r1, 0x1 strh r0, [r4, 0xA] b _080DDF36 .align 2, 0 _080DDEF4: .4byte 0x03004b20 _080DDEF8: movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r1, r0, 24 ldrh r0, [r4, 0x8] adds r0, 0x8 movs r6, 0 strh r0, [r4, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0xFF bgt _080DDF22 movs r0, 0x8 ldrsh r2, [r4, r0] adds r0, r1, 0 adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale b _080DDF36 _080DDF22: adds r0, r1, 0 bl sub_8078F40 adds r0, r5, 0 bl move_anim_task_del ldr r0, _080DDF3C strh r6, [r0] adds r0, 0x2 strh r6, [r0] _080DDF36: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DDF3C: .4byte REG_BLDCNT thumb_func_end sub_80DDED0 thumb_func_start sub_80DDF40 sub_80DDF40: @ 80DDF40 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r4, r0, 0 ldrh r5, [r4, 0x20] ldrh r6, [r4, 0x22] ldr r0, _080DDFDC mov r8, r0 ldrb r0, [r0] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 movs r1, 0 mov r9, r1 strh r0, [r4, 0x20] mov r1, r8 ldrb r0, [r1] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] mov r1, r9 strh r1, [r4, 0x2E] ldr r2, _080DDFE0 ldrh r1, [r2] strh r1, [r4, 0x30] ldrh r1, [r2, 0x2] strh r1, [r4, 0x32] ldrh r1, [r2, 0x4] strh r1, [r4, 0x34] ldrh r1, [r4, 0x20] lsls r1, 4 strh r1, [r4, 0x36] lsls r0, 4 strh r0, [r4, 0x38] lsls r5, 16 asrs r5, 16 movs r1, 0x20 ldrsh r0, [r4, r1] subs r5, r0 lsls r5, 4 movs r0, 0 ldrsh r1, [r2, r0] lsls r1, 1 adds r0, r5, 0 str r2, [sp] bl __divsi3 strh r0, [r4, 0x3A] lsls r6, 16 asrs r6, 16 movs r1, 0x22 ldrsh r0, [r4, r1] subs r6, r0 lsls r6, 4 ldr r2, [sp] movs r0, 0 ldrsh r1, [r2, r0] lsls r1, 1 adds r0, r6, 0 bl __divsi3 strh r0, [r4, 0x3C] ldr r0, _080DDFE4 str r0, [r4, 0x1C] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DDFDC: .4byte 0x0202f7c8 _080DDFE0: .4byte 0x03004b00 _080DDFE4: .4byte sub_80DDFE8 thumb_func_end sub_80DDF40 thumb_func_start sub_80DDFE8 sub_80DDFE8: @ 80DDFE8 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080DE032 cmp r0, 0x1 bgt _080DDFFE cmp r0, 0 beq _080DE008 b _080DE0F6 _080DDFFE: cmp r0, 0x2 beq _080DE09C cmp r0, 0x3 beq _080DE0F0 b _080DE0F6 _080DE008: ldrh r0, [r5, 0x3A] ldrh r2, [r5, 0x36] adds r0, r2 strh r0, [r5, 0x36] ldrh r1, [r5, 0x3C] ldrh r2, [r5, 0x38] adds r1, r2 strh r1, [r5, 0x38] lsls r0, 16 asrs r0, 20 strh r0, [r5, 0x20] lsls r1, 16 asrs r1, 20 strh r1, [r5, 0x22] ldrh r0, [r5, 0x30] subs r0, 0x1 strh r0, [r5, 0x30] lsls r0, 16 cmp r0, 0 bgt _080DE0F6 b _080DE0E2 _080DE032: ldrh r0, [r5, 0x32] subs r0, 0x1 strh r0, [r5, 0x32] lsls r0, 16 cmp r0, 0 bgt _080DE0F6 ldr r4, _080DE098 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x30] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrh r0, [r5, 0x20] lsls r0, 4 strh r0, [r5, 0x36] ldrh r0, [r5, 0x22] lsls r0, 4 strh r0, [r5, 0x38] movs r1, 0x30 ldrsh r0, [r5, r1] movs r2, 0x20 ldrsh r1, [r5, r2] subs r0, r1 lsls r0, 4 movs r2, 0x34 ldrsh r1, [r5, r2] bl __divsi3 strh r0, [r5, 0x3A] movs r1, 0x32 ldrsh r0, [r5, r1] movs r2, 0x22 ldrsh r1, [r5, r2] subs r0, r1 lsls r0, 4 movs r2, 0x34 ldrsh r1, [r5, r2] bl __divsi3 strh r0, [r5, 0x3C] b _080DE0E2 .align 2, 0 _080DE098: .4byte 0x0202f7c9 _080DE09C: ldrh r0, [r5, 0x3A] ldrh r1, [r5, 0x36] adds r0, r1 strh r0, [r5, 0x36] ldrh r1, [r5, 0x3C] ldrh r2, [r5, 0x38] adds r1, r2 strh r1, [r5, 0x38] lsls r0, 16 asrs r0, 20 strh r0, [r5, 0x20] lsls r1, 16 asrs r1, 20 strh r1, [r5, 0x22] ldrh r0, [r5, 0x34] subs r0, 0x1 strh r0, [r5, 0x34] lsls r0, 16 cmp r0, 0 bgt _080DE0F6 ldr r4, _080DE0EC ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] _080DE0E2: ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _080DE0F6 .align 2, 0 _080DE0EC: .4byte 0x0202f7c9 _080DE0F0: adds r0, r5, 0 bl move_anim_8074EE0 _080DE0F6: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80DDFE8 thumb_func_start sub_80DE0FC sub_80DE0FC: @ 80DE0FC push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_8078764 ldr r0, _080DE110 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080DE110: .4byte sub_80DE114 thumb_func_end sub_80DE0FC thumb_func_start sub_80DE114 sub_80DE114: @ 80DE114 push {r4-r6,lr} adds r3, r0, 0 movs r5, 0 movs r6, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080DE1AA adds r1, r3, 0 adds r1, 0x3E ldrb r2, [r1] movs r0, 0x4 ands r0, r2 adds r4, r1, 0 cmp r0, 0 bne _080DE13E movs r0, 0x4 orrs r0, r2 strb r0, [r4] _080DE13E: movs r1, 0x2E ldrsh r0, [r3, r1] cmp r0, 0 beq _080DE14E cmp r0, 0x1 beq _080DE158 movs r6, 0x1 b _080DE162 _080DE14E: movs r1, 0x30 ldrsh r0, [r3, r1] cmp r0, 0x2 bne _080DE162 b _080DE166 _080DE158: movs r1, 0x30 ldrsh r0, [r3, r1] cmp r0, 0x4 bne _080DE162 movs r5, 0x1 _080DE162: cmp r5, 0 beq _080DE198 _080DE166: ldrb r2, [r4] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4] ldrh r0, [r3, 0x32] adds r0, 0x1 movs r1, 0 strh r0, [r3, 0x32] strh r1, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _080DE1AA strh r1, [r3, 0x32] ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] b _080DE1AA _080DE198: cmp r6, 0 beq _080DE1A4 adds r0, r3, 0 bl move_anim_8072740 b _080DE1AA _080DE1A4: ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] _080DE1AA: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80DE114 thumb_func_start sub_80DE1B0 sub_80DE1B0: @ 80DE1B0 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080DE1DC adds r5, r0, r1 movs r0, 0x1 bl duplicate_obj_of_side_rel2move_in_transparent_mode movs r6, 0 movs r1, 0 strh r0, [r5, 0x8] lsls r0, 16 cmp r0, 0 bge _080DE1E0 adds r0, r4, 0 bl move_anim_task_del b _080DE2C0 .align 2, 0 _080DE1DC: .4byte 0x03004b20 _080DE1E0: strh r1, [r5, 0xA] movs r0, 0xF strh r0, [r5, 0xC] movs r0, 0x2 strh r0, [r5, 0xE] strh r1, [r5, 0x10] ldr r1, _080DE244 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r2, _080DE248 ldrh r0, [r5, 0xE] lsls r0, 8 ldrh r1, [r5, 0xC] orrs r0, r1 strh r0, [r2] ldr r4, _080DE24C movs r0, 0x8 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x50 strh r1, [r0, 0x2E] ldr r0, _080DE250 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DE258 movs r2, 0x8 ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _080DE254 strh r1, [r0, 0x30] movs r0, 0x8 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x70 b _080DE276 .align 2, 0 _080DE244: .4byte REG_BLDCNT _080DE248: .4byte REG_BLDALPHA _080DE24C: .4byte 0x02020004 _080DE250: .4byte 0x0202f7c9 _080DE254: .4byte 0x0000ff70 _080DE258: movs r2, 0x8 ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x90 strh r1, [r0, 0x30] movs r0, 0x8 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _080DE2C8 _080DE276: strh r1, [r0, 0x32] ldr r4, _080DE2CC movs r2, 0x8 ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r2, 0 strh r2, [r0, 0x34] movs r0, 0x8 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r2, [r0, 0x36] movs r2, 0x8 ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _080DE2D0 bl oamt_set_x3A_32 movs r0, 0x8 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _080DE2D4 str r1, [r0] ldr r0, _080DE2D8 str r0, [r5] _080DE2C0: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DE2C8: .4byte 0x0000ff90 _080DE2CC: .4byte 0x02020004 _080DE2D0: .4byte SpriteCallbackDummy _080DE2D4: .4byte sub_8078394 _080DE2D8: .4byte sub_80DE2DC thumb_func_end sub_80DE1B0 thumb_func_start sub_80DE2DC sub_80DE2DC: @ 80DE2DC push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080DE300 adds r4, r0, r1 movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080DE37C cmp r0, 0x1 bgt _080DE304 cmp r0, 0 beq _080DE30A b _080DE3A6 .align 2, 0 _080DE300: .4byte 0x03004b20 _080DE304: cmp r0, 0x2 beq _080DE3A0 b _080DE3A6 _080DE30A: ldrh r1, [r4, 0xA] adds r1, 0x1 strh r1, [r4, 0xA] movs r0, 0x3 ands r0, r1 strh r0, [r4, 0x12] cmp r0, 0x1 bne _080DE328 ldrh r1, [r4, 0xC] movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0 ble _080DE328 subs r0, r1, 0x1 strh r0, [r4, 0xC] _080DE328: movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0x3 bne _080DE33E ldrh r1, [r4, 0xE] movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0xF bgt _080DE33E adds r0, r1, 0x1 strh r0, [r4, 0xE] _080DE33E: ldr r2, _080DE374 ldrh r0, [r4, 0xE] lsls r0, 8 ldrh r1, [r4, 0xC] orrs r0, r1 strh r0, [r2] ldr r1, [r4, 0xC] movs r0, 0x80 lsls r0, 13 cmp r1, r0 bne _080DE3A6 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x50 ble _080DE3A6 movs r2, 0x8 ldrsh r1, [r4, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080DE378 adds r0, r1 bl obj_delete_but_dont_free_vram movs r0, 0x1 strh r0, [r4, 0x10] b _080DE3A6 .align 2, 0 _080DE374: .4byte REG_BLDALPHA _080DE378: .4byte 0x02020004 _080DE37C: ldrh r0, [r4, 0x14] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0x14] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080DE3A6 ldr r0, _080DE39C strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] b _080DE3A6 .align 2, 0 _080DE39C: .4byte REG_BLDCNT _080DE3A0: adds r0, r2, 0 bl move_anim_task_del _080DE3A6: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DE2DC thumb_func_start sub_80DE3AC sub_80DE3AC: @ 80DE3AC push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r2, _080DE3CC adds r1, r2 movs r2, 0 strh r2, [r1, 0x26] ldr r2, _080DE3D0 str r2, [r1] bl _call_via_r2 pop {r0} bx r0 .align 2, 0 _080DE3CC: .4byte 0x03004b20 _080DE3D0: .4byte sub_80DE3D4 thumb_func_end sub_80DE3AC thumb_func_start sub_80DE3D4 sub_80DE3D4: @ 80DE3D4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080DE40C adds r5, r0, r1 ldr r0, _080DE410 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r6, r0, 24 movs r1, 0x26 ldrsh r0, [r5, r1] cmp r0, 0x4 bls _080DE400 b _080DE604 _080DE400: lsls r0, 2 ldr r1, _080DE414 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080DE40C: .4byte 0x03004b20 _080DE410: .4byte 0x0202f7c9 _080DE414: .4byte _080DE418 .align 2, 0 _080DE418: .4byte _080DE42C .4byte _080DE500 .4byte _080DE544 .4byte _080DE5AC .4byte _080DE5E0 _080DE42C: ldr r7, _080DE460 adds r0, r7, 0 bl AllocSpritePalette lsls r0, 24 lsrs r0, 24 movs r2, 0 mov r8, r2 strh r0, [r5, 0x24] cmp r0, 0xFF beq _080DE456 movs r0, 0x1 bl duplicate_obj_of_side_rel2move_in_transparent_mode strh r0, [r5, 0x8] lsls r0, 16 cmp r0, 0 bge _080DE464 adds r0, r7, 0 bl FreeSpritePaletteByTag _080DE456: adds r0, r4, 0 bl move_anim_task_del b _080DE60A .align 2, 0 _080DE460: .4byte 0x00002771 _080DE464: ldr r4, _080DE4E4 movs r3, 0x8 ldrsh r0, [r5, r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r2, [r5, 0x24] lsls r2, 4 ldrb r3, [r1, 0x5] movs r0, 0xF ands r0, r3 orrs r0, r2 strb r0, [r1, 0x5] movs r1, 0x8 ldrsh r0, [r5, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r2, [r1, 0x1] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] movs r2, 0x8 ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x5] movs r2, 0xC orrs r1, r2 strb r1, [r0, 0x5] mov r3, r8 strh r3, [r5, 0xA] strh r3, [r5, 0xC] movs r0, 0x10 strh r0, [r5, 0xE] movs r0, 0x1 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] movs r0, 0x22 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x5] lsrs r0, 4 adds r0, 0x10 lsls r0, 4 strh r0, [r5, 0x10] cmp r6, 0x1 bne _080DE4EC movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _080DE4E8 b _080DE4F4 .align 2, 0 _080DE4E4: .4byte 0x02020004 _080DE4E8: .4byte 0x0000fdff _080DE4EC: movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _080DE4FC _080DE4F4: ands r0, r1 strh r0, [r2] b _080DE604 .align 2, 0 _080DE4FC: .4byte 0x0000fbff _080DE500: movs r1, 0x24 ldrsh r0, [r5, r1] adds r0, 0x10 lsls r0, 4 strh r0, [r5, 0x24] movs r2, 0x10 ldrsh r0, [r5, r2] lsls r0, 1 ldr r1, _080DE534 adds r0, r1 movs r3, 0x24 ldrsh r1, [r5, r3] lsls r1, 1 ldr r2, _080DE538 adds r1, r2 ldr r2, _080DE53C bl CpuSet ldrh r0, [r5, 0x10] ldr r3, _080DE540 movs r1, 0x10 movs r2, 0xA bl BlendPalette b _080DE604 .align 2, 0 _080DE534: .4byte 0x0202eac8 _080DE538: .4byte 0x0202eec8 _080DE53C: .4byte REG_BG0CNT _080DE540: .4byte 0x00003c0d _080DE544: ldr r2, _080DE580 movs r0, 0x22 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] ldrh r0, [r0, 0x22] adds r1, r0 subs r1, 0x20 lsls r1, 16 lsrs r2, r1, 16 cmp r1, 0 bge _080DE564 movs r2, 0 _080DE564: cmp r6, 0x1 bne _080DE584 lsls r0, r2, 24 lsrs r0, 24 adds r1, r2, 0 adds r1, 0x40 lsls r1, 24 lsrs r1, 24 movs r2, 0 str r2, [sp] movs r2, 0x4 str r2, [sp, 0x4] str r6, [sp, 0x8] b _080DE59C .align 2, 0 _080DE580: .4byte 0x02020004 _080DE584: lsls r0, r2, 24 lsrs r0, 24 adds r1, r2, 0 adds r1, 0x40 lsls r1, 24 lsrs r1, 24 movs r2, 0 str r2, [sp] movs r2, 0x8 str r2, [sp, 0x4] movs r2, 0x1 str r2, [sp, 0x8] _080DE59C: movs r2, 0x2 movs r3, 0x6 bl sub_8089944 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x1C] b _080DE604 _080DE5AC: cmp r6, 0x1 bne _080DE5C0 ldr r1, _080DE5B8 ldr r2, _080DE5BC adds r0, r2, 0 b _080DE5C6 .align 2, 0 _080DE5B8: .4byte REG_BLDCNT _080DE5BC: .4byte 0x00003f42 _080DE5C0: ldr r1, _080DE5D4 ldr r3, _080DE5D8 adds r0, r3, 0 _080DE5C6: strh r0, [r1] ldr r1, _080DE5DC movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] b _080DE604 .align 2, 0 _080DE5D4: .4byte REG_BLDCNT _080DE5D8: .4byte 0x00003f44 _080DE5DC: .4byte REG_BLDALPHA _080DE5E0: cmp r6, 0x1 bne _080DE5F0 movs r0, 0x80 lsls r0, 19 ldrh r1, [r0] movs r3, 0x80 lsls r3, 2 b _080DE5FA _080DE5F0: movs r0, 0x80 lsls r0, 19 ldrh r1, [r0] movs r3, 0x80 lsls r3, 3 _080DE5FA: adds r2, r3, 0 orrs r1, r2 strh r1, [r0] ldr r0, _080DE618 str r0, [r5] _080DE604: ldrh r0, [r5, 0x26] adds r0, 0x1 strh r0, [r5, 0x26] _080DE60A: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DE618: .4byte sub_80DE61C thumb_func_end sub_80DE3D4 thumb_func_start sub_80DE61C sub_80DE61C: @ 80DE61C 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, _080DE6A0 adds r4, r0, r1 ldrh r1, [r4, 0xA] adds r1, 0x1 strh r1, [r4, 0xA] movs r0, 0x1 ands r0, r1 strh r0, [r4, 0x12] cmp r0, 0 bne _080DE654 ldr r1, _080DE6A4 movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0x12 bl __divsi3 strh r0, [r4, 0xC] _080DE654: movs r2, 0x12 ldrsh r0, [r4, r2] cmp r0, 0x1 bne _080DE676 ldr r1, _080DE6A4 movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0x12 bl __divsi3 movs r1, 0x10 subs r1, r0 strh r1, [r4, 0xE] _080DE676: ldr r2, _080DE6A8 ldrh r0, [r4, 0xE] lsls r0, 8 ldrh r1, [r4, 0xC] orrs r0, r1 strh r0, [r2] movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0x80 bne _080DE698 movs r0, 0 strh r0, [r4, 0x26] ldr r1, _080DE6AC str r1, [r4] adds r0, r5, 0 bl _call_via_r1 _080DE698: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DE6A0: .4byte 0x03004b20 _080DE6A4: .4byte gSineTable _080DE6A8: .4byte REG_BLDALPHA _080DE6AC: .4byte sub_80DE6B0 thumb_func_end sub_80DE61C thumb_func_start sub_80DE6B0 sub_80DE6B0: @ 80DE6B0 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080DE6E0 adds r4, r0, r1 ldr r0, _080DE6E4 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r6, r0, 24 movs r1, 0x26 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080DE72C cmp r0, 0x1 bgt _080DE6E8 cmp r0, 0 beq _080DE6EE b _080DE7AA .align 2, 0 _080DE6E0: .4byte 0x03004b20 _080DE6E4: .4byte 0x0202f7c9 _080DE6E8: cmp r0, 0x2 beq _080DE740 b _080DE7AA _080DE6EE: ldr r1, _080DE710 movs r0, 0x3 strb r0, [r1, 0x15] movs r0, 0x1 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x24] cmp r6, 0x1 bne _080DE718 movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _080DE714 b _080DE720 .align 2, 0 _080DE710: .4byte 0x03004dc0 _080DE714: .4byte 0x0000fdff _080DE718: movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _080DE728 _080DE720: ands r0, r1 strh r0, [r2] b _080DE7AA .align 2, 0 _080DE728: .4byte 0x0000fbff _080DE72C: ldrh r0, [r4, 0x10] ldr r3, _080DE73C movs r1, 0x10 movs r2, 0 bl BlendPalette b _080DE7AA .align 2, 0 _080DE73C: .4byte 0x00003c0d _080DE740: ldr r3, _080DE788 movs r0, 0x24 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 bl obj_delete_but_dont_free_vram ldr r0, _080DE78C bl FreeSpritePaletteByTag ldr r0, _080DE790 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] cmp r6, 0x1 bne _080DE794 subs r0, 0x52 ldrh r1, [r0] movs r3, 0x80 lsls r3, 2 b _080DE79E .align 2, 0 _080DE788: .4byte 0x02020004 _080DE78C: .4byte 0x00002771 _080DE790: .4byte REG_BLDCNT _080DE794: movs r0, 0x80 lsls r0, 19 ldrh r1, [r0] movs r3, 0x80 lsls r3, 3 _080DE79E: adds r2, r3, 0 orrs r1, r2 strh r1, [r0] adds r0, r5, 0 bl move_anim_task_del _080DE7AA: ldrh r0, [r4, 0x26] adds r0, 0x1 strh r0, [r4, 0x26] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80DE6B0 thumb_func_start sub_80DE7B8 sub_80DE7B8: @ 80DE7B8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r7, r0, 0 ldr r0, _080DE7F4 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DE800 ldr r4, _080DE7F8 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 8 movs r2, 0xE0 lsls r2, 13 adds r0, r2 lsrs r5, r0, 16 ldr r4, _080DE7FC b _080DE824 .align 2, 0 _080DE7F4: .4byte 0x03004b00 _080DE7F8: .4byte 0x0202f7c8 _080DE7FC: .4byte 0x0202f7c9 _080DE800: ldr r4, _080DE8C8 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 8 movs r2, 0xE0 lsls r2, 13 adds r0, r2 lsrs r5, r0, 16 ldr r4, _080DE8CC _080DE824: ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 mov r10, r0 ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 8 movs r1, 0xE0 lsls r1, 13 adds r0, r1 lsrs r0, 16 mov r9, r0 mov r8, r5 mov r2, r9 subs r4, r2, r5 lsls r4, 16 lsrs r4, 16 lsls r0, r6, 4 strh r0, [r7, 0x2E] lsls r0, r5, 4 strh r0, [r7, 0x30] mov r1, r10 subs r0, r1, r6 lsls r0, 4 ldr r5, _080DE8D0 movs r2, 0x2 ldrsh r1, [r5, r2] bl __divsi3 strh r0, [r7, 0x32] lsls r4, 16 asrs r4, 12 movs r0, 0x2 ldrsh r1, [r5, r0] adds r0, r4, 0 bl __divsi3 strh r0, [r7, 0x34] ldrh r0, [r5, 0x2] strh r0, [r7, 0x36] mov r1, r10 strh r1, [r7, 0x38] mov r2, r9 strh r2, [r7, 0x3A] movs r1, 0x36 ldrsh r0, [r7, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r7, 0x3C] ldrb r1, [r7, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r7, 0x5] strh r6, [r7, 0x20] mov r2, r8 strh r2, [r7, 0x22] ldr r0, _080DE8D4 str r0, [r7, 0x1C] adds r2, r7, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DE8C8: .4byte 0x0202f7c9 _080DE8CC: .4byte 0x0202f7c8 _080DE8D0: .4byte 0x03004b00 _080DE8D4: .4byte sub_80DE8D8 thumb_func_end sub_80DE7B8 thumb_func_start sub_80DE8D8 sub_80DE8D8: @ 80DE8D8 push {r4,lr} adds r2, r0, 0 ldrh r3, [r2, 0x36] movs r1, 0x36 ldrsh r0, [r2, r1] cmp r0, 0 beq _080DE910 ldrh r0, [r2, 0x32] ldrh r4, [r2, 0x2E] adds r0, r4 strh r0, [r2, 0x2E] ldrh r1, [r2, 0x34] ldrh r4, [r2, 0x30] adds r1, r4 strh r1, [r2, 0x30] lsls r0, 16 asrs r0, 20 strh r0, [r2, 0x20] lsls r1, 16 asrs r1, 20 strh r1, [r2, 0x22] subs r0, r3, 0x1 strh r0, [r2, 0x36] lsls r0, 16 asrs r0, 16 cmp r0, 0 bne _080DE910 strh r0, [r2, 0x2E] _080DE910: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DE8D8 thumb_func_start sub_80DE918 sub_80DE918: @ 80DE918 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080DEA68 adds r1, r0 str r1, [sp] ldr r1, _080DEA6C movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r3, 0x80 lsls r3, 5 adds r0, r3, 0 strh r0, [r1] movs r0, 0 ldr r1, [sp] strh r0, [r1, 0x12] strh r0, [r1, 0x14] strh r0, [r1, 0x16] strh r0, [r1, 0x18] movs r0, 0x10 strh r0, [r1, 0x1A] ldr r2, _080DEA70 ldrh r0, [r2] strh r0, [r1, 0x1C] ldr r4, _080DEA74 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] ldrb r0, [r4] movs r1, 0x3 bl sub_807A100 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DE988 b _080DEA88 _080DE988: movs r4, 0 _080DE98A: lsls r1, r4, 16 asrs r3, r1, 16 ldr r0, _080DEA74 ldrb r2, [r0] str r1, [sp, 0x10] cmp r3, r2 beq _080DEA56 movs r0, 0x2 eors r2, r0 cmp r3, r2 beq _080DEA56 lsls r0, r4, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080DEA56 ldr r6, [sp, 0x4] ldr r3, [sp, 0x8] lsls r0, r3, 16 asrs r7, r0, 16 ldr r0, _080DEA78 adds r1, r6, 0 adds r2, r7, 0 movs r3, 0x37 bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x40 beq _080DEA56 adds r0, r4, 0 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 mov r10, r0 adds r0, r4, 0 movs r1, 0x3 bl sub_807A100 lsls r0, 16 lsrs r0, 16 mov r9, r0 mov r0, r8 lsls r5, r0, 4 add r5, r8 lsls r5, 2 ldr r1, _080DEA7C adds r4, r5, r1 lsls r0, r6, 4 strh r0, [r4, 0x2E] lsls r0, r7, 4 strh r0, [r4, 0x30] mov r2, r10 subs r0, r2, r6 lsls r0, 4 ldr r3, _080DEA70 movs r2, 0x2 ldrsh r1, [r3, r2] bl __divsi3 strh r0, [r4, 0x32] mov r3, r9 lsls r0, r3, 16 asrs r0, 16 subs r0, r7 lsls r0, 4 ldr r2, _080DEA70 movs r3, 0x2 ldrsh r1, [r2, r3] bl __divsi3 strh r0, [r4, 0x34] ldr r1, _080DEA70 ldrh r0, [r1, 0x2] strh r0, [r4, 0x36] mov r2, r10 strh r2, [r4, 0x38] mov r3, r9 strh r3, [r4, 0x3A] ldr r0, _080DEA80 adds r5, r0 ldr r0, _080DEA84 str r0, [r5] ldr r2, [sp] movs r3, 0x20 ldrsh r1, [r2, r3] adds r1, 0xD lsls r1, 1 adds r0, r2, 0 adds r0, 0x8 adds r0, r1 mov r1, r8 strh r1, [r0] ldrh r0, [r2, 0x20] adds r0, 0x1 strh r0, [r2, 0x20] _080DEA56: ldr r2, [sp, 0x10] movs r3, 0x80 lsls r3, 9 adds r0, r2, r3 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080DE98A b _080DEB0C .align 2, 0 _080DEA68: .4byte 0x03004b20 _080DEA6C: .4byte REG_BLDCNT _080DEA70: .4byte 0x03004b00 _080DEA74: .4byte 0x0202f7c8 _080DEA78: .4byte gSpriteTemplate_83DAF08 _080DEA7C: .4byte 0x02020004 _080DEA80: .4byte 0x02020020 _080DEA84: .4byte sub_80DE8D8 _080DEA88: ldr r0, _080DEB24 ldr r7, [sp, 0x4] ldr r2, [sp, 0x8] lsls r1, r2, 16 asrs r1, 16 str r1, [sp, 0xC] adds r1, r7, 0 ldr r2, [sp, 0xC] movs r3, 0x37 bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x40 beq _080DEB0C movs r3, 0x30 mov r10, r3 movs r0, 0x28 mov r9, r0 ldr r6, _080DEB28 mov r1, r8 lsls r5, r1, 4 add r5, r8 lsls r5, 2 adds r4, r5, r6 lsls r0, r7, 4 strh r0, [r4, 0x2E] ldr r2, [sp, 0xC] lsls r0, r2, 4 strh r0, [r4, 0x30] subs r0, r3, r7 lsls r0, 4 ldr r3, _080DEB2C movs r2, 0x2 ldrsh r1, [r3, r2] bl __divsi3 strh r0, [r4, 0x32] mov r3, r9 ldr r1, [sp, 0xC] subs r0, r3, r1 lsls r0, 4 ldr r2, _080DEB2C movs r3, 0x2 ldrsh r1, [r2, r3] bl __divsi3 strh r0, [r4, 0x34] ldr r1, _080DEB2C ldrh r0, [r1, 0x2] strh r0, [r4, 0x36] mov r2, r10 strh r2, [r4, 0x38] mov r3, r9 strh r3, [r4, 0x3A] adds r6, 0x1C adds r5, r6 ldr r0, _080DEB30 str r0, [r5] mov r1, r8 ldr r0, [sp] strh r1, [r0, 0x22] movs r0, 0x1 ldr r2, [sp] strh r0, [r2, 0x20] _080DEB0C: ldr r0, _080DEB34 ldr r3, [sp] str r0, [r3] add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DEB24: .4byte gSpriteTemplate_83DAF08 _080DEB28: .4byte 0x02020004 _080DEB2C: .4byte 0x03004b00 _080DEB30: .4byte sub_80DE8D8 _080DEB34: .4byte sub_80DEB38 thumb_func_end sub_80DE918 thumb_func_start sub_80DEB38 sub_80DEB38: @ 80DEB38 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080DEB5C adds r4, r0, r1 movs r0, 0x8 ldrsh r1, [r4, r0] cmp r1, 0x1 beq _080DEBEE cmp r1, 0x1 bgt _080DEB60 cmp r1, 0 beq _080DEB6E b _080DECA4 .align 2, 0 _080DEB5C: .4byte 0x03004b20 _080DEB60: cmp r1, 0x2 bne _080DEB66 b _080DEC80 _080DEB66: cmp r1, 0x3 bne _080DEB6C b _080DEC94 _080DEB6C: b _080DECA4 _080DEB6E: movs r2, 0x14 ldrsh r0, [r4, r2] cmp r0, 0 bne _080DEBCE ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080DEBCE strh r1, [r4, 0x12] ldrh r0, [r4, 0x16] adds r0, 0x1 strh r0, [r4, 0x16] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080DEBA4 ldrh r1, [r4, 0x18] movs r2, 0x18 ldrsh r0, [r4, r2] cmp r0, 0xF bgt _080DEBB2 adds r0, r1, 0x1 strh r0, [r4, 0x18] b _080DEBB2 _080DEBA4: ldrh r1, [r4, 0x1A] movs r2, 0x1A ldrsh r0, [r4, r2] cmp r0, 0 beq _080DEBB2 subs r0, r1, 0x1 strh r0, [r4, 0x1A] _080DEBB2: ldr r2, _080DEBE0 ldrh r0, [r4, 0x1A] lsls r0, 8 ldrh r1, [r4, 0x18] orrs r0, r1 strh r0, [r2] movs r1, 0x16 ldrsh r0, [r4, r1] cmp r0, 0x17 ble _080DEBCE movs r0, 0 strh r0, [r4, 0x16] movs r0, 0x1 strh r0, [r4, 0x14] _080DEBCE: ldrh r1, [r4, 0x1C] movs r2, 0x1C ldrsh r0, [r4, r2] cmp r0, 0 beq _080DEBE4 subs r0, r1, 0x1 strh r0, [r4, 0x1C] b _080DECA4 .align 2, 0 _080DEBE0: .4byte REG_BLDALPHA _080DEBE4: movs r1, 0x14 ldrsh r0, [r4, r1] cmp r0, 0 beq _080DECA4 b _080DEC8C _080DEBEE: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080DECA4 movs r0, 0 strh r0, [r4, 0x12] ldrh r0, [r4, 0x16] adds r0, 0x1 strh r0, [r4, 0x16] ands r0, r1 lsls r0, 16 cmp r0, 0 beq _080DEC1E ldrh r1, [r4, 0x18] movs r2, 0x18 ldrsh r0, [r4, r2] cmp r0, 0 beq _080DEC2C subs r0, r1, 0x1 strh r0, [r4, 0x18] b _080DEC2C _080DEC1E: ldrh r1, [r4, 0x1A] movs r2, 0x1A ldrsh r0, [r4, r2] cmp r0, 0xF bgt _080DEC2C adds r0, r1, 0x1 strh r0, [r4, 0x1A] _080DEC2C: ldr r2, _080DEC48 ldrh r0, [r4, 0x1A] lsls r0, 8 ldrh r1, [r4, 0x18] orrs r0, r1 strh r0, [r2] ldr r1, [r4, 0x18] movs r0, 0x80 lsls r0, 13 cmp r1, r0 bne _080DECA4 movs r5, 0 b _080DEC70 .align 2, 0 _080DEC48: .4byte REG_BLDALPHA _080DEC4C: adds r1, r5, 0 adds r1, 0xD lsls r1, 1 adds r0, r4, 0 adds r0, 0x8 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080DEC7C adds r0, r1 bl DestroySprite adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _080DEC70: movs r1, 0x20 ldrsh r0, [r4, r1] cmp r5, r0 blt _080DEC4C b _080DEC8C .align 2, 0 _080DEC7C: .4byte 0x02020004 _080DEC80: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 cmp r0, 0 ble _080DECA4 _080DEC8C: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080DECA4 _080DEC94: ldr r0, _080DECAC movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, r2, 0 bl move_anim_task_del _080DECA4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DECAC: .4byte REG_BLDCNT thumb_func_end sub_80DEB38 thumb_func_start sub_80DECB0 sub_80DECB0: @ 80DECB0 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r0, _080DECF8 movs r1, 0 strh r1, [r0] ldr r0, _080DECFC strh r1, [r0] ldr r1, _080DED00 ldr r2, _080DED04 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 subs r2, 0x20 adds r0, r2, 0 strh r0, [r1] adds r1, 0x6 movs r0, 0xC8 strh r0, [r1] adds r1, 0x4 movs r0, 0x10 strh r0, [r1] ldr r0, _080DED08 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DECF4 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DED0C _080DECF4: movs r6, 0x28 b _080DED0E .align 2, 0 _080DECF8: .4byte 0x030042c4 _080DECFC: .4byte 0x03004240 _080DED00: .4byte REG_WININ _080DED04: .4byte 0x00003f3f _080DED08: .4byte 0x0202f7c8 _080DED0C: movs r6, 0xC8 _080DED0E: ldr r1, _080DED4C lsls r3, r6, 16 asrs r2, r3, 16 lsls r0, r2, 8 orrs r0, r2 strh r0, [r1] ldr r1, _080DED50 movs r5, 0x28 ldr r0, _080DED54 strh r0, [r1] lsrs r3, 16 movs r1, 0xF0 subs r1, r2 movs r4, 0x48 ldr r2, _080DED58 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r2 strh r3, [r0, 0xA] strh r1, [r0, 0xC] strh r5, [r0, 0xE] strh r4, [r0, 0x10] strh r6, [r0, 0x12] strh r5, [r0, 0x14] ldr r1, _080DED5C str r1, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DED4C: .4byte 0x030042c4 _080DED50: .4byte 0x03004240 _080DED54: .4byte 0x00002828 _080DED58: .4byte 0x03004b20 _080DED5C: .4byte sub_80DED60 thumb_func_end sub_80DECB0 thumb_func_start sub_80DED60 sub_80DED60: @ 80DED60 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 lsls r0, 24 lsrs r0, 24 ldr r2, _080DEE80 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r1, [r4, 0x8] adds r0, r1, 0x1 strh r0, [r4, 0x8] ldrh r5, [r4, 0xA] ldrh r7, [r4, 0xC] ldrh r0, [r4, 0xE] mov r10, r0 ldrh r2, [r4, 0x10] str r2, [sp, 0xC] ldrh r0, [r4, 0x12] ldrh r2, [r4, 0x14] mov r8, r2 lsls r1, 16 asrs r6, r1, 16 cmp r6, 0xF ble _080DED9C b _080DEE8C _080DED9C: lsls r0, 16 asrs r0, 16 bl __floatsidf str r0, [sp, 0x10] str r1, [sp, 0x14] lsls r0, r5, 16 asrs r0, 16 bl __floatsidf ldr r2, _080DEE84 ldr r3, _080DEE88 bl __muldf3 adds r5, r1, 0 adds r4, r0, 0 adds r0, r6, 0 bl __floatsidf str r0, [sp, 0x18] str r1, [sp, 0x1C] adds r1, r5, 0 adds r0, r4, 0 ldr r2, [sp, 0x18] ldr r3, [sp, 0x1C] bl __muldf3 adds r3, r1, 0 adds r2, r0, 0 ldr r0, [sp, 0x10] ldr r1, [sp, 0x14] bl __subdf3 bl __fixunsdfsi lsls r0, 16 lsrs r0, 16 mov r9, r0 lsls r0, r7, 16 asrs r0, 16 bl __floatsidf ldr r2, _080DEE84 ldr r3, _080DEE88 bl __muldf3 ldr r2, [sp, 0x18] ldr r3, [sp, 0x1C] bl __muldf3 adds r3, r1, 0 adds r2, r0, 0 ldr r0, [sp, 0x10] ldr r1, [sp, 0x14] bl __adddf3 bl __fixunsdfsi lsls r0, 16 lsrs r7, r0, 16 mov r1, r8 lsls r0, r1, 16 asrs r0, 16 bl __floatsidf adds r5, r1, 0 adds r4, r0, 0 mov r2, r10 lsls r0, r2, 16 asrs r0, 16 bl __floatsidf ldr r2, _080DEE84 ldr r3, _080DEE88 bl __muldf3 ldr r2, [sp, 0x18] ldr r3, [sp, 0x1C] bl __muldf3 adds r3, r1, 0 adds r2, r0, 0 adds r1, r5, 0 adds r0, r4, 0 bl __subdf3 bl __fixunsdfsi lsls r0, 16 lsrs r6, r0, 16 ldr r1, [sp, 0xC] lsls r0, r1, 16 asrs r0, 16 bl __floatsidf ldr r2, _080DEE84 ldr r3, _080DEE88 bl __muldf3 ldr r2, [sp, 0x18] ldr r3, [sp, 0x1C] bl __muldf3 adds r3, r1, 0 adds r2, r0, 0 adds r1, r5, 0 adds r0, r4, 0 bl __adddf3 bl __fixunsdfsi lsls r0, 16 lsrs r5, r0, 16 b _080DEEBA .align 2, 0 _080DEE80: .4byte 0x03004b20 _080DEE84: .4byte 0x3fb00000 _080DEE88: .4byte 0x00000000 _080DEE8C: movs r2, 0 mov r9, r2 movs r7, 0xF0 movs r6, 0 movs r5, 0x70 str r6, [sp] str r6, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0x1 movs r1, 0 movs r3, 0 bl sub_80791A8 lsls r0, 16 lsrs r0, 16 str r6, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _080DEEDC str r0, [r4] _080DEEBA: ldr r1, _080DEEE0 mov r2, r9 lsls r0, r2, 8 orrs r7, r0 strh r7, [r1] ldr r1, _080DEEE4 lsls r0, r6, 8 orrs r5, r0 strh r5, [r1] add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DEEDC: .4byte sub_80DEEE8 _080DEEE0: .4byte 0x030042c4 _080DEEE4: .4byte 0x03004240 thumb_func_end sub_80DED60 thumb_func_start sub_80DEEE8 sub_80DEEE8: @ 80DEEE8 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, _080DEF28 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080DEF20 ldr r0, _080DEF2C strh r2, [r0] ldr r0, _080DEF30 strh r2, [r0] ldr r0, _080DEF34 ldr r4, _080DEF38 adds r1, r4, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x6 strh r2, [r0] adds r0, 0x4 strh r2, [r0] adds r0, r3, 0 bl move_anim_task_del _080DEF20: pop {r4} pop {r0} bx r0 .align 2, 0 _080DEF28: .4byte 0x0202f388 _080DEF2C: .4byte 0x030042c4 _080DEF30: .4byte 0x03004240 _080DEF34: .4byte REG_WININ _080DEF38: .4byte 0x00003f3f thumb_func_end sub_80DEEE8 thumb_func_start sub_80DEF3C sub_80DEF3C: @ 80DEF3C push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _080DEF68 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DEF70 movs r2, 0x18 ldr r3, _080DEF6C ldrb r0, [r4, 0x3] movs r1, 0x3F negs r1, r1 ands r1, r0 movs r0, 0x10 orrs r1, r0 strb r1, [r4, 0x3] b _080DEF74 .align 2, 0 _080DEF68: .4byte 0x0202f7c8 _080DEF6C: .4byte 0x0000fffe _080DEF70: ldr r2, _080DEF90 movs r3, 0x2 _080DEF74: lsls r0, r2, 16 asrs r0, 16 ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] strh r3, [r4, 0x30] movs r0, 0x3C strh r0, [r4, 0x2E] ldr r0, _080DEF94 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080DEF90: .4byte 0x0000ffe8 _080DEF94: .4byte sub_80DEF98 thumb_func_end sub_80DEF3C thumb_func_start sub_80DEF98 sub_80DEF98: @ 80DEF98 push {r4,lr} adds r3, r0, 0 ldrh r1, [r3, 0x2E] movs r2, 0x2E ldrsh r0, [r3, r2] cmp r0, 0 ble _080DEFAA subs r0, r1, 0x1 b _080DF00E _080DEFAA: ldrh r0, [r3, 0x30] ldrh r4, [r3, 0x24] adds r1, r0, r4 strh r1, [r3, 0x24] adds r0, r1, 0x7 lsls r0, 16 lsrs r0, 16 cmp r0, 0xE bls _080DF010 ldrh r0, [r3, 0x20] adds r0, r1 strh r0, [r3, 0x20] movs r0, 0 strh r0, [r3, 0x24] ldrh r2, [r3, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x8 ldr r4, _080DEFFC adds r0, r4, 0 ands r1, r0 ldr r0, _080DF000 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] ldrh r0, [r3, 0x32] adds r0, 0x1 strh r0, [r3, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _080DF00C movs r0, 0x1E strh r0, [r3, 0x2E] ldr r0, _080DF004 str r0, [r3, 0x1C] ldr r1, _080DF008 adds r0, r3, 0 bl oamt_set_x3A_32 b _080DF010 .align 2, 0 _080DEFFC: .4byte 0x000003ff _080DF000: .4byte 0xfffffc00 _080DF004: .4byte sub_80782D8 _080DF008: .4byte sub_80DF018 _080DF00C: movs r0, 0x28 _080DF00E: strh r0, [r3, 0x2E] _080DF010: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DEF98 thumb_func_start sub_80DF018 sub_80DF018: @ 80DF018 push {r4,lr} adds r3, r0, 0 movs r0, 0x2E ldrsh r2, [r3, r0] cmp r2, 0 bne _080DF044 ldr r1, _080DF040 movs r4, 0xFD lsls r4, 6 adds r0, r4, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x10 strh r0, [r1] ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] strh r2, [r3, 0x30] strh r2, [r3, 0x32] b _080DF082 .align 2, 0 _080DF040: .4byte REG_BLDCNT _080DF044: ldrh r1, [r3, 0x30] movs r2, 0x30 ldrsh r0, [r3, r2] cmp r0, 0x1 bgt _080DF054 adds r0, r1, 0x1 strh r0, [r3, 0x30] b _080DF082 _080DF054: movs r0, 0 strh r0, [r3, 0x30] ldrh r0, [r3, 0x32] adds r0, 0x1 strh r0, [r3, 0x32] ldr r2, _080DF088 movs r1, 0x10 subs r1, r0 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r4, 0x32 ldrsh r0, [r3, r4] cmp r0, 0x10 bne _080DF082 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080DF08C str r0, [r3, 0x1C] _080DF082: pop {r4} pop {r0} bx r0 .align 2, 0 _080DF088: .4byte REG_BLDALPHA _080DF08C: .4byte sub_80DF090 thumb_func_end sub_80DF018 thumb_func_start sub_80DF090 sub_80DF090: @ 80DF090 push {lr} ldr r1, _080DF0AC movs r2, 0 strh r2, [r1] adds r1, 0x2 strh r2, [r1] ldr r1, _080DF0B0 strh r2, [r1] ldr r1, _080DF0B4 strh r2, [r1] bl move_anim_8072740 pop {r0} bx r0 .align 2, 0 _080DF0AC: .4byte REG_BLDCNT _080DF0B0: .4byte 0x030042c4 _080DF0B4: .4byte 0x03004240 thumb_func_end sub_80DF090 thumb_func_start sub_80DF0B8 sub_80DF0B8: @ 80DF0B8 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0xC bl sine strh r0, [r4, 0x24] ldr r0, _080DF120 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DF0DC ldrh r0, [r4, 0x24] negs r0, r0 strh r0, [r4, 0x24] _080DF0DC: ldrh r0, [r4, 0x2E] adds r0, 0x6 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 ldrh r1, [r4, 0x30] adds r0, r1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 24 negs r0, r0 strh r0, [r4, 0x26] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080DF12C ldr r0, _080DF124 strh r0, [r4, 0x3A] ldr r1, _080DF128 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0x3A] strh r0, [r1] b _080DF17E .align 2, 0 _080DF120: .4byte 0x0202f7c8 _080DF124: .4byte 0x0000050b _080DF128: .4byte REG_BLDCNT _080DF12C: cmp r0, 0x1E ble _080DF17E ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] ldrh r1, [r4, 0x3A] lsls r0, r1, 16 asrs r0, 24 lsls r0, 16 movs r2, 0xFF ands r2, r1 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r3, r0, 16 cmp r3, 0x10 bls _080DF150 movs r3, 0x10 _080DF150: subs r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r0, 0 bge _080DF15C movs r2, 0 _080DF15C: ldr r1, _080DF184 lsls r0, r3, 8 orrs r0, r2 strh r0, [r1] strh r0, [r4, 0x3A] cmp r3, 0x10 bne _080DF17E cmp r2, 0 bne _080DF17E adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080DF188 str r0, [r4, 0x1C] _080DF17E: pop {r4} pop {r0} bx r0 .align 2, 0 _080DF184: .4byte REG_BLDALPHA _080DF188: .4byte sub_80DF18C thumb_func_end sub_80DF0B8 thumb_func_start sub_80DF18C sub_80DF18C: @ 80DF18C push {lr} ldr r1, _080DF1A0 movs r2, 0 strh r2, [r1] adds r1, 0x2 strh r2, [r1] bl move_anim_8072740 pop {r0} bx r0 .align 2, 0 _080DF1A0: .4byte REG_BLDCNT thumb_func_end sub_80DF18C thumb_func_start sub_80DF1A4 sub_80DF1A4: @ 80DF1A4 push {r4-r6,lr} mov r6, r8 push {r6} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080DF23C adds r4, r0 movs r6, 0 strh r6, [r4, 0x8] movs r0, 0x10 mov r8, r0 mov r2, r8 strh r2, [r4, 0xA] ldr r5, _080DF240 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1A] ldrb r0, [r5] bl sub_8077FC0 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] ldrb r0, [r5] movs r1, 0x1 bl sub_807A100 lsls r0, 16 asrs r1, r0, 16 lsrs r0, 31 adds r1, r0 asrs r1, 1 adds r1, 0x8 strh r1, [r4, 0x1E] strh r6, [r4, 0x16] ldrb r0, [r5] bl sub_8079ED4 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x12] ldrb r0, [r5] bl sub_8079E90 lsls r0, 24 lsrs r0, 24 subs r0, 0x2 strh r0, [r4, 0x14] strh r6, [r4, 0xE] mov r0, r8 strh r0, [r4, 0x10] ldr r1, _080DF244 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] strh r6, [r4, 0x18] ldr r0, _080DF248 str r0, [r4] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DF23C: .4byte 0x03004b20 _080DF240: .4byte 0x0202f7c8 _080DF244: .4byte REG_BLDCNT _080DF248: .4byte sub_80DF24C thumb_func_end sub_80DF1A4 thumb_func_start sub_80DF24C sub_80DF24C: @ 80DF24C push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, _080DF270 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x5 bls _080DF266 b _080DF3CC _080DF266: lsls r0, 2 ldr r1, _080DF274 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080DF270: .4byte 0x03004b20 _080DF274: .4byte _080DF278 .align 2, 0 _080DF278: .4byte _080DF290 .4byte _080DF300 .4byte _080DF342 .4byte _080DF356 .4byte _080DF3AC .4byte _080DF3BC _080DF290: movs r6, 0 _080DF292: movs r2, 0x1A ldrsh r1, [r4, r2] movs r0, 0x1C ldrsh r2, [r4, r0] ldrb r3, [r4, 0x14] ldr r0, _080DF2F4 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080DF2E6 ldr r1, _080DF2F8 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r5, r0, r1 strh r7, [r5, 0x2E] ldr r0, _080DF2FC ldrb r0, [r0] bl battle_side_get_owner movs r1, 0 lsls r0, 24 cmp r0, 0 bne _080DF2C8 movs r1, 0x1 _080DF2C8: strh r1, [r5, 0x30] movs r0, 0x2A muls r0, r6 movs r1, 0xFF ands r0, r1 strh r0, [r5, 0x32] ldrh r0, [r4, 0x1E] strh r0, [r5, 0x34] lsls r0, r6, 1 adds r0, r6 lsls r0, 1 strh r0, [r5, 0x38] ldrh r0, [r4, 0x16] adds r0, 0x1 strh r0, [r4, 0x16] _080DF2E6: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x5 bls _080DF292 b _080DF3B4 .align 2, 0 _080DF2F4: .4byte gSpriteTemplate_83DAF80 _080DF2F8: .4byte 0x02020004 _080DF2FC: .4byte 0x0202f7c8 _080DF300: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080DF31E ldrh r1, [r4, 0xE] movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0xD bgt _080DF32C adds r0, r1, 0x1 strh r0, [r4, 0xE] b _080DF32C _080DF31E: ldrh r1, [r4, 0x10] movs r2, 0x10 ldrsh r0, [r4, r2] cmp r0, 0x4 ble _080DF32C subs r0, r1, 0x1 strh r0, [r4, 0x10] _080DF32C: movs r1, 0xE ldrsh r0, [r4, r1] ldrh r3, [r4, 0xE] ldrh r2, [r4, 0x10] cmp r0, 0xE bne _080DF39C cmp r2, 0x4 bne _080DF39C movs r0, 0 strh r0, [r4, 0xA] b _080DF396 _080DF342: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1E ble _080DF3CC movs r0, 0 strh r0, [r4, 0xA] b _080DF3B4 _080DF356: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080DF374 ldrh r1, [r4, 0xE] movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0 ble _080DF382 subs r0, r1, 0x1 strh r0, [r4, 0xE] b _080DF382 _080DF374: ldrh r1, [r4, 0x10] movs r2, 0x10 ldrsh r0, [r4, r2] cmp r0, 0xF bgt _080DF382 adds r0, r1, 0x1 strh r0, [r4, 0x10] _080DF382: movs r1, 0xE ldrsh r0, [r4, r1] ldrh r3, [r4, 0xE] ldrh r2, [r4, 0x10] cmp r0, 0 bne _080DF39C cmp r2, 0x10 bne _080DF39C movs r0, 0x1 strh r0, [r4, 0x18] _080DF396: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080DF39C: ldr r1, _080DF3A8 lsls r0, r2, 8 orrs r0, r3 strh r0, [r1] b _080DF3CC .align 2, 0 _080DF3A8: .4byte REG_BLDALPHA _080DF3AC: movs r2, 0x16 ldrsh r0, [r4, r2] cmp r0, 0 bne _080DF3CC _080DF3B4: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080DF3CC _080DF3BC: ldr r0, _080DF3D4 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, r7, 0 bl move_anim_task_del _080DF3CC: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DF3D4: .4byte REG_BLDCNT thumb_func_end sub_80DF24C thumb_func_start sub_80DF3D8 sub_80DF3D8: @ 80DF3D8 push {r4,lr} adds r4, r0, 0 movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0 bne _080DF3EA ldrh r0, [r4, 0x32] adds r0, 0x2 b _080DF3EE _080DF3EA: ldrh r0, [r4, 0x32] subs r0, 0x2 _080DF3EE: strh r0, [r4, 0x32] ldrh r1, [r4, 0x32] movs r0, 0xFF ands r0, r1 strh r0, [r4, 0x32] movs r2, 0x32 ldrsh r0, [r4, r2] movs r2, 0x34 ldrsh r1, [r4, r2] bl sine strh r0, [r4, 0x24] ldrh r0, [r4, 0x32] subs r0, 0x41 lsls r0, 16 lsrs r0, 16 cmp r0, 0x7E bhi _080DF430 ldr r2, _080DF42C movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r1, [r0, 0x12] adds r1, 0x1 movs r0, 0x3 ands r1, r0 b _080DF444 .align 2, 0 _080DF42C: .4byte 0x03004b20 _080DF430: ldr r2, _080DF498 movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x3 ldrb r1, [r0, 0x12] ands r1, r2 _080DF444: lsls r1, 2 ldrb r2, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] movs r1, 0x38 ldrsh r0, [r4, r1] lsls r0, 3 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x3A] movs r2, 0x3A ldrsh r0, [r4, r2] movs r1, 0x7 bl sine strh r0, [r4, 0x26] ldr r2, _080DF498 movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r1, r0, r2 movs r2, 0x18 ldrsh r0, [r1, r2] cmp r0, 0 beq _080DF492 ldrh r0, [r1, 0x16] subs r0, 0x1 strh r0, [r1, 0x16] adds r0, r4, 0 bl DestroySprite _080DF492: pop {r4} pop {r0} bx r0 .align 2, 0 _080DF498: .4byte 0x03004b20 thumb_func_end sub_80DF3D8 thumb_func_start sub_80DF49C sub_80DF49C: @ 80DF49C adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x4 orrs r1, r2 strb r1, [r3] ldr r2, _080DF4E0 ldr r1, _080DF4E4 ldrb r1, [r1] adds r1, r2 ldrb r1, [r1] strh r1, [r0, 0x38] movs r1, 0x80 strh r1, [r0, 0x2E] movs r1, 0xA strh r1, [r0, 0x30] ldr r2, _080DF4E8 ldrh r1, [r2] strh r1, [r0, 0x32] ldrh r1, [r2, 0x2] strh r1, [r0, 0x34] ldr r1, _080DF4EC str r1, [r0, 0x1C] ldr r2, _080DF4F0 movs r3, 0x38 ldrsh r1, [r0, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] adds r1, 0x8 strh r1, [r0, 0x22] bx lr .align 2, 0 _080DF4E0: .4byte 0x02024be0 _080DF4E4: .4byte 0x0202f7c8 _080DF4E8: .4byte 0x03004b00 _080DF4EC: .4byte sub_80DF4F4 _080DF4F0: .4byte 0x02020004 thumb_func_end sub_80DF49C thumb_func_start sub_80DF4F4 sub_80DF4F4: @ 80DF4F4 push {r4,r5,lr} adds r5, r0, 0 ldrh r0, [r5, 0x34] movs r1, 0x34 ldrsh r3, [r5, r1] cmp r3, 0 beq _080DF55C subs r0, 0x1 strh r0, [r5, 0x34] movs r2, 0x2E ldrsh r0, [r5, r2] movs r2, 0x30 ldrsh r1, [r5, r2] bl sine ldr r4, _080DF554 movs r1, 0x38 ldrsh r2, [r5, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 strh r0, [r1, 0x24] movs r2, 0x2E ldrsh r0, [r5, r2] movs r2, 0x30 ldrsh r1, [r5, r2] bl cosine movs r1, 0x38 ldrsh r2, [r5, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 strh r0, [r1, 0x26] ldrh r0, [r5, 0x32] ldrh r2, [r5, 0x2E] adds r1, r0, r2 strh r1, [r5, 0x2E] lsls r0, r1, 16 asrs r0, 16 cmp r0, 0xFF ble _080DF590 ldr r2, _080DF558 adds r0, r1, r2 strh r0, [r5, 0x2E] b _080DF590 .align 2, 0 _080DF554: .4byte 0x02020004 _080DF558: .4byte 0xffffff00 _080DF55C: ldr r2, _080DF598 movs r0, 0x38 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r3, [r0, 0x24] movs r0, 0x38 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r3, [r0, 0x26] movs r0, 0x38 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] subs r1, 0x8 strh r1, [r0, 0x22] ldr r0, _080DF59C str r0, [r5, 0x1C] _080DF590: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DF598: .4byte 0x02020004 _080DF59C: .4byte move_anim_8074EE0 thumb_func_end sub_80DF4F4 thumb_func_start sub_80DF5A0 sub_80DF5A0: @ 80DF5A0 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080DF5E8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DF5F0 ldr r2, _080DF5EC ldrh r0, [r5, 0x20] ldrh r1, [r2] subs r0, r1 strh r0, [r5, 0x20] ldrh r0, [r2, 0x6] negs r0, r0 strh r0, [r2, 0x6] ldrh r0, [r2, 0x8] negs r0, r0 strh r0, [r2, 0x8] adds r1, r2, 0 b _080DF5FA .align 2, 0 _080DF5E8: .4byte 0x0202f7c8 _080DF5EC: .4byte 0x03004b00 _080DF5F0: ldr r1, _080DF630 ldrh r0, [r1] ldrh r2, [r5, 0x20] adds r0, r2 strh r0, [r5, 0x20] _080DF5FA: ldrh r0, [r1, 0x2] ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] ldrh r0, [r1, 0x4] strh r0, [r5, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r5, 0x30] ldrh r0, [r1, 0x8] strh r0, [r5, 0x34] ldrh r0, [r1, 0xA] strh r0, [r5, 0x38] adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r1, _080DF634 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080DF638 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DF630: .4byte 0x03004b00 _080DF634: .4byte move_anim_8074EE0 _080DF638: .4byte sub_8078504 thumb_func_end sub_80DF5A0 thumb_func_start sub_80DF63C sub_80DF63C: @ 80DF63C push {r4,r5,lr} adds r5, r0, 0 bl sub_8078650 ldr r4, _080DF694 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] ldr r0, _080DF698 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DF6A0 ldr r2, _080DF69C ldrh r0, [r5, 0x20] ldrh r1, [r2, 0x2] subs r0, r1 strh r0, [r5, 0x20] ldrh r0, [r5, 0x22] adds r1, r0 strh r1, [r5, 0x22] ldrh r0, [r5, 0x32] ldrh r1, [r2, 0x4] subs r0, r1 strh r0, [r5, 0x32] ldrh r0, [r2, 0x6] ldrh r1, [r5, 0x36] adds r0, r1 strh r0, [r5, 0x36] b _080DF6CA .align 2, 0 _080DF694: .4byte 0x0202f7c9 _080DF698: .4byte 0x0202f7c8 _080DF69C: .4byte 0x03004b00 _080DF6A0: ldr r1, _080DF6E4 ldrh r0, [r1] ldrh r2, [r5, 0x20] adds r0, r2 strh r0, [r5, 0x20] ldrh r0, [r1, 0x2] ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] ldrh r0, [r1, 0x4] ldrh r2, [r5, 0x32] adds r0, r2 strh r0, [r5, 0x32] ldrh r0, [r1, 0x6] ldrh r1, [r5, 0x36] adds r0, r1 strh r0, [r5, 0x36] adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnim _080DF6CA: ldr r0, _080DF6E4 ldrh r0, [r0, 0x8] strh r0, [r5, 0x2E] ldr r0, _080DF6E8 str r0, [r5, 0x1C] ldr r1, _080DF6EC adds r0, r5, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DF6E4: .4byte 0x03004b00 _080DF6E8: .4byte sub_8078B34 _080DF6EC: .4byte move_anim_8074EE0 thumb_func_end sub_80DF63C thumb_func_start sub_80DF6F0 sub_80DF6F0: @ 80DF6F0 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080DF704 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DF70C ldr r4, _080DF708 b _080DF70E .align 2, 0 _080DF704: .4byte 0x03004b00 _080DF708: .4byte 0x0202f7c8 _080DF70C: ldr r4, _080DF750 _080DF70E: ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r4, _080DF754 movs r0, 0x2 ldrsh r1, [r4, r0] adds r0, r5, 0 bl sub_807867C ldrh r0, [r4, 0x4] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x22] ldr r0, _080DF758 str r0, [r5, 0x1C] ldr r1, _080DF75C adds r0, r5, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DF750: .4byte 0x0202f7c9 _080DF754: .4byte 0x03004b00 _080DF758: .4byte sub_8078600 _080DF75C: .4byte move_anim_8074EE0 thumb_func_end sub_80DF6F0 thumb_func_start sub_80DF760 sub_80DF760: @ 80DF760 push {r4,lr} adds r4, r0, 0 ldr r0, _080DF788 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DF77A adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim _080DF77A: adds r0, r4, 0 bl sub_80DF63C pop {r4} pop {r0} bx r0 .align 2, 0 _080DF788: .4byte 0x0202f7c8 thumb_func_end sub_80DF760 thumb_func_start sub_80DF78C sub_80DF78C: @ 80DF78C push {r4-r7,lr} adds r6, r0, 0 ldr r4, _080DF7E0 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r6, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x22] strh r5, [r6, 0x36] movs r0, 0x1 strh r0, [r6, 0x38] ldr r0, _080DF7E4 ldrh r0, [r0] strh r0, [r6, 0x3A] ldr r4, _080DF7E8 ldrb r0, [r4] movs r1, 0 bl sub_807A100 lsls r7, r0, 16 lsrs r5, r7, 16 ldrb r0, [r4] movs r1, 0x1 bl sub_807A100 lsls r1, r0, 16 lsrs r0, r1, 16 cmp r5, r0 bls _080DF7EC lsrs r0, r7, 17 b _080DF7EE .align 2, 0 _080DF7E0: .4byte 0x0202f7c8 _080DF7E4: .4byte 0x03004b00 _080DF7E8: .4byte 0x02024c07 _080DF7EC: lsrs r0, r1, 17 _080DF7EE: strh r0, [r6, 0x3C] movs r1, 0x3A ldrsh r0, [r6, r1] movs r2, 0x3C ldrsh r1, [r6, r2] bl cosine strh r0, [r6, 0x24] movs r1, 0x3A ldrsh r0, [r6, r1] movs r2, 0x3C ldrsh r1, [r6, r2] bl sine strh r0, [r6, 0x26] ldr r0, _080DF818 str r0, [r6, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DF818: .4byte sub_80DF81C thumb_func_end sub_80DF78C thumb_func_start sub_80DF81C sub_80DF81C: @ 80DF81C push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x2E ldrsh r5, [r4, r0] cmp r5, 0 beq _080DF82E cmp r5, 0x1 beq _080DF89A b _080DF91E _080DF82E: ldrh r0, [r4, 0x3A] ldrh r1, [r4, 0x38] subs r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x3A] movs r1, 0x3A ldrsh r0, [r4, r1] movs r2, 0x3C ldrsh r1, [r4, r2] bl cosine strh r0, [r4, 0x24] movs r1, 0x3A ldrsh r0, [r4, r1] movs r2, 0x3C ldrsh r1, [r4, r2] bl sine strh r0, [r4, 0x26] ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _080DF880 strh r5, [r4, 0x36] ldrh r1, [r4, 0x38] movs r2, 0x38 ldrsh r0, [r4, r2] cmp r0, 0xF bgt _080DF880 adds r0, r1, 0x1 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0xF ble _080DF880 movs r0, 0x10 strh r0, [r4, 0x38] _080DF880: ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C ble _080DF91E movs r0, 0 strh r0, [r4, 0x34] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080DF91E _080DF89A: ldrh r0, [r4, 0x3A] ldrh r1, [r4, 0x38] subs r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x3A] ldrh r1, [r4, 0x3C] movs r2, 0x3C ldrsh r0, [r4, r2] cmp r0, 0x95 bgt _080DF8C2 adds r0, r1, 0 adds r0, 0x8 strh r0, [r4, 0x3C] lsls r0, 16 asrs r0, 16 cmp r0, 0x95 ble _080DF8C2 movs r0, 0x96 strh r0, [r4, 0x3C] _080DF8C2: movs r1, 0x3A ldrsh r0, [r4, r1] movs r2, 0x3C ldrsh r1, [r4, r2] bl cosine strh r0, [r4, 0x24] movs r1, 0x3A ldrsh r0, [r4, r1] movs r2, 0x3C ldrsh r1, [r4, r2] bl sine strh r0, [r4, 0x26] ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _080DF90A movs r0, 0 strh r0, [r4, 0x36] ldrh r1, [r4, 0x38] movs r2, 0x38 ldrsh r0, [r4, r2] cmp r0, 0xF bgt _080DF90A adds r0, r1, 0x1 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0xF ble _080DF90A movs r0, 0x10 strh r0, [r4, 0x38] _080DF90A: ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080DF91E adds r0, r4, 0 bl move_anim_8072740 _080DF91E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80DF81C thumb_func_start sub_80DF924 sub_80DF924: @ 80DF924 push {r4-r6,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080DF950 adds r4, r1, r0 ldr r0, _080DF954 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080DF960 ldr r0, _080DF958 str r0, [sp] ldr r0, _080DF95C b _080DF966 .align 2, 0 _080DF950: .4byte 0x03004b20 _080DF954: .4byte 0x0202f7c8 _080DF958: .4byte REG_BG1HOFS _080DF95C: .4byte 0x030042c0 _080DF960: ldr r0, _080DF9DC str r0, [sp] ldr r0, _080DF9E0 _080DF966: ldrh r0, [r0] strh r0, [r4, 0xC] ldr r0, _080DF9E4 str r0, [sp, 0x4] mov r1, sp movs r5, 0 movs r0, 0x1 strb r0, [r1, 0x8] mov r0, sp strb r5, [r0, 0x9] ldr r0, _080DF9E8 ldrb r0, [r0] bl sub_8077FC0 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 subs r1, 0x20 strh r1, [r4, 0xE] adds r0, 0x20 strh r0, [r4, 0x10] cmp r1, 0 bge _080DF996 strh r5, [r4, 0xE] _080DF996: ldrh r3, [r4, 0xE] movs r1, 0x10 ldrsh r0, [r4, r1] cmp r3, r0 bgt _080DF9C4 ldr r5, _080DF9EC movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 _080DF9A8: lsls r1, r3, 1 adds r2, r1, r5 ldrh r0, [r4, 0xC] strh r0, [r2] adds r1, r6 ldrh r0, [r4, 0xC] strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 movs r1, 0x10 ldrsh r0, [r4, r1] cmp r3, r0 ble _080DF9A8 _080DF9C4: ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl sub_80895F8 ldr r0, _080DF9F0 str r0, [r4] add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DF9DC: .4byte REG_BG2HOFS _080DF9E0: .4byte 0x03004288 _080DF9E4: .4byte 0xa2600001 _080DF9E8: .4byte 0x0202f7c8 _080DF9EC: .4byte 0x03004de0 _080DF9F0: .4byte sub_80DF9F4 thumb_func_end sub_80DF924 thumb_func_start sub_80DF9F4 sub_80DF9F4: @ 80DF9F4 push {lr} lsls r0, 24 lsrs r3, r0, 24 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 ldr r1, _080DFA18 adds r2, r0, r1 movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, 0x4 bhi _080DFAAA lsls r0, 2 ldr r1, _080DFA1C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080DFA18: .4byte 0x03004b20 _080DFA1C: .4byte _080DFA20 .align 2, 0 _080DFA20: .4byte _080DFA34 .4byte _080DFA56 .4byte _080DFA66 .4byte _080DFA92 .4byte _080DFAA4 _080DFA34: ldrh r0, [r2, 0x16] adds r0, 0x1 strh r0, [r2, 0x16] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080DFA8A movs r0, 0 strh r0, [r2, 0x16] ldrh r0, [r2, 0x14] adds r0, 0x1 strh r0, [r2, 0x14] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _080DFA8A b _080DFA84 _080DFA56: ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C ble _080DFA8A b _080DFA84 _080DFA66: ldrh r0, [r2, 0x16] adds r0, 0x1 strh r0, [r2, 0x16] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080DFA8A movs r0, 0 strh r0, [r2, 0x16] ldrh r0, [r2, 0x14] subs r0, 0x1 strh r0, [r2, 0x14] lsls r0, 16 cmp r0, 0 bne _080DFA8A _080DFA84: ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] _080DFA8A: adds r0, r2, 0 bl sub_80DFAB0 b _080DFAAA _080DFA92: ldr r1, _080DFAA0 movs r0, 0x3 strb r0, [r1, 0x15] ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] b _080DFAAA .align 2, 0 _080DFAA0: .4byte 0x03004dc0 _080DFAA4: adds r0, r3, 0 bl move_anim_task_del _080DFAAA: pop {r0} bx r0 thumb_func_end sub_80DF9F4 thumb_func_start sub_80DFAB0 sub_80DFAB0: @ 80DFAB0 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 ldrh r3, [r5, 0x12] ldrh r4, [r5, 0xE] movs r1, 0x10 ldrsh r0, [r5, r1] cmp r4, r0 bgt _080DFB06 ldr r7, _080DFB1C mov r12, r7 ldr r0, _080DFB20 mov r8, r0 ldr r6, _080DFB24 _080DFACE: lsls r2, r4, 1 ldrb r1, [r6, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 add r2, r12 lsls r0, r3, 1 add r0, r8 movs r7, 0 ldrsh r1, [r0, r7] movs r7, 0x14 ldrsh r0, [r5, r7] muls r0, r1 asrs r0, 7 ldrh r1, [r5, 0xC] adds r0, r1 strh r0, [r2] adds r3, 0x8 movs r0, 0xFF ands r3, r0 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 movs r7, 0x10 ldrsh r0, [r5, r7] cmp r4, r0 ble _080DFACE _080DFB06: ldrh r0, [r5, 0x12] adds r0, 0x9 movs r1, 0xFF ands r0, r1 strh r0, [r5, 0x12] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080DFB1C: .4byte 0x03004de0 _080DFB20: .4byte gSineTable _080DFB24: .4byte 0x03004dc0 thumb_func_end sub_80DFAB0 thumb_func_start sub_80DFB28 sub_80DFB28: @ 80DFB28 push {r4-r6,lr} mov r6, r8 push {r6} adds r4, r0, 0 ldr r5, _080DFBC8 movs r0, 0x4 ldrsh r1, [r5, r0] lsls r0, r1, 1 adds r0, r1 movs r1, 0x5 bl __divsi3 adds r6, r0, 0 ldr r1, _080DFBCC mov r8, r1 ldrb r0, [r1] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] mov r2, r8 ldrb r0, [r2] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r3, [r5, 0x8] adds r0, r3 strh r0, [r4, 0x22] movs r1, 0x2 ldrsh r0, [r5, r1] movs r2, 0x4 ldrsh r1, [r5, r2] bl cosine strh r0, [r4, 0x30] movs r3, 0x2 ldrsh r0, [r5, r3] lsls r6, 16 asrs r6, 16 adds r1, r6, 0 bl sine strh r0, [r4, 0x32] ldrh r1, [r4, 0x30] ldrh r2, [r5] adds r3, r2, 0 muls r3, r1 adds r1, r3, 0 ldrh r3, [r4, 0x20] adds r1, r3 strh r1, [r4, 0x20] adds r1, r2, 0 muls r1, r0 adds r0, r1, 0 ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] ldrh r0, [r5, 0x6] strh r0, [r4, 0x34] ldr r0, _080DFBD0 str r0, [r4, 0x1C] adds r4, 0x2E ldr r2, _080DFBD4 movs r1, 0x6 _080DFBB0: ldrh r0, [r4] strh r0, [r2] adds r4, 0x2 adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bge _080DFBB0 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DFBC8: .4byte 0x03004b00 _080DFBCC: .4byte 0x0202f7c8 _080DFBD0: .4byte sub_80DFBD8 _080DFBD4: .4byte 0x03000730 thumb_func_end sub_80DFB28 thumb_func_start sub_80DFBD8 sub_80DFBD8: @ 80DFBD8 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x36] adds r0, r1 strh r0, [r4, 0x36] ldrh r0, [r4, 0x32] ldrh r2, [r4, 0x38] adds r0, r2 strh r0, [r4, 0x38] movs r1, 0x36 ldrsh r0, [r4, r1] movs r1, 0xA bl __divsi3 strh r0, [r4, 0x24] movs r2, 0x38 ldrsh r0, [r4, r2] movs r1, 0xA bl __divsi3 strh r0, [r4, 0x26] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 movs r2, 0x34 ldrsh r1, [r4, r2] cmp r0, r1 ble _080DFC1C adds r0, r4, 0 bl move_anim_8072740 _080DFC1C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DFBD8 thumb_func_start sub_80DFC24 sub_80DFC24: @ 80DFC24 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080DFC58 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080DFC5C ldrh r0, [r0] strh r0, [r1, 0x8] ldr r0, _080DFC60 ldrb r0, [r0] movs r2, 0x10 strh r2, [r1, 0xA] ldr r1, _080DFC64 strh r2, [r1] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080DFC70 ldr r1, _080DFC68 ldr r2, _080DFC6C b _080DFC74 .align 2, 0 _080DFC58: .4byte 0x03004b20 _080DFC5C: .4byte 0x03004b00 _080DFC60: .4byte 0x0202f7c8 _080DFC64: .4byte REG_BLDALPHA _080DFC68: .4byte REG_BLDCNT _080DFC6C: .4byte 0x00003f42 _080DFC70: ldr r1, _080DFC8C ldr r2, _080DFC90 _080DFC74: adds r0, r2, 0 strh r0, [r1] ldr r0, _080DFC94 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080DFC98 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080DFC8C: .4byte REG_BLDCNT _080DFC90: .4byte 0x00003f44 _080DFC94: .4byte 0x03004b20 _080DFC98: .4byte sub_80DFC9C thumb_func_end sub_80DFC24 thumb_func_start sub_80DFC9C sub_80DFC9C: @ 80DFC9C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080DFD04 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0xA] lsrs r2, r0, 8 lsls r0, 24 lsrs r1, r0, 24 movs r3, 0xC ldrsh r0, [r4, r3] ldrb r3, [r4, 0x8] cmp r0, r3 bne _080DFD18 adds r2, 0x1 lsls r2, 24 lsrs r2, 24 subs r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 lsls r1, r2, 8 orrs r1, r0 movs r3, 0 strh r1, [r4, 0xA] ldr r0, _080DFD08 strh r1, [r0] strh r3, [r4, 0xC] cmp r2, 0x10 bne _080DFD1E ldr r2, _080DFD0C ldr r1, _080DFD10 ldr r0, _080DFD14 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r0, r5, 0 bl move_anim_task_del b _080DFD1E .align 2, 0 _080DFD04: .4byte 0x03004b20 _080DFD08: .4byte REG_BLDALPHA _080DFD0C: .4byte 0x02020004 _080DFD10: .4byte 0x02024be0 _080DFD14: .4byte 0x0202f7c8 _080DFD18: ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] _080DFD1E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80DFC9C thumb_func_start sub_80DFD24 sub_80DFD24: @ 80DFD24 lsls r0, 24 lsrs r0, 24 ldr r2, _080DFD48 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080DFD4C ldrh r0, [r0] strh r0, [r1, 0x8] movs r2, 0x80 lsls r2, 5 strh r2, [r1, 0xA] ldr r0, _080DFD50 str r0, [r1] ldr r0, _080DFD54 strh r2, [r0] bx lr .align 2, 0 _080DFD48: .4byte 0x03004b20 _080DFD4C: .4byte 0x03004b00 _080DFD50: .4byte sub_80DFD58 _080DFD54: .4byte REG_BLDALPHA thumb_func_end sub_80DFD24 thumb_func_start sub_80DFD58 sub_80DFD58: @ 80DFD58 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080DFDA8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 ldrh r0, [r2, 0xA] lsrs r1, r0, 8 lsls r0, 24 lsrs r5, r0, 24 movs r3, 0xC ldrsh r0, [r2, r3] ldrb r3, [r2, 0x8] cmp r0, r3 bne _080DFDB4 subs r0, r1, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r0, r5, 0x1 lsls r0, 24 lsrs r0, 24 lsls r1, r3, 8 orrs r1, r0 movs r0, 0 strh r1, [r2, 0xA] ldr r5, _080DFDAC strh r1, [r5] strh r0, [r2, 0xC] cmp r3, 0 bne _080DFDBA ldr r0, _080DFDB0 strh r3, [r0] strh r3, [r5] adds r0, r4, 0 bl move_anim_task_del b _080DFDBA .align 2, 0 _080DFDA8: .4byte 0x03004b20 _080DFDAC: .4byte REG_BLDALPHA _080DFDB0: .4byte REG_BLDCNT _080DFDB4: ldrh r0, [r2, 0xC] adds r0, 0x1 strh r0, [r2, 0xC] _080DFDBA: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80DFD58 thumb_func_start sub_80DFDC0 sub_80DFDC0: @ 80DFDC0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080DFDE8 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _080DFDEC ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080DFDF8 ldr r1, _080DFDF0 ldr r2, _080DFDF4 b _080DFDFC .align 2, 0 _080DFDE8: .4byte REG_BLDALPHA _080DFDEC: .4byte 0x0202f7c8 _080DFDF0: .4byte REG_BLDCNT _080DFDF4: .4byte 0x00003f42 _080DFDF8: ldr r1, _080DFE0C ldr r2, _080DFE10 _080DFDFC: adds r0, r2, 0 strh r0, [r1] adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _080DFE0C: .4byte REG_BLDCNT _080DFE10: .4byte 0x00003f44 thumb_func_end sub_80DFDC0 thumb_func_start sub_80DFE14 sub_80DFE14: @ 80DFE14 push {r4-r6,lr} adds r4, r0, 0 ldr r6, _080DFE80 ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x30] ldr r5, _080DFE84 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r6] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x34] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] movs r0, 0x7E strh r0, [r4, 0x2E] adds r0, r4, 0 bl sub_8078A5C ldrh r0, [r4, 0x30] negs r0, r0 strh r0, [r4, 0x34] ldrh r0, [r4, 0x32] negs r0, r0 strh r0, [r4, 0x36] ldr r0, _080DFE88 strh r0, [r4, 0x3A] ldr r1, _080DFE8C str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080DFE80: .4byte 0x0202f7c9 _080DFE84: .4byte 0x0202f7c8 _080DFE88: .4byte 0x0000ffd8 _080DFE8C: .4byte sub_80DFE90 thumb_func_end sub_80DFE14 thumb_func_start sub_80DFE90 sub_80DFE90: @ 80DFE90 push {r4-r6,lr} adds r4, r0, 0 ldrh r5, [r4, 0x30] ldrh r0, [r4, 0x34] adds r2, r5, r0 strh r2, [r4, 0x34] ldrh r3, [r4, 0x32] ldrh r6, [r4, 0x36] adds r1, r3, r6 strh r1, [r4, 0x36] lsls r0, r2, 16 asrs r0, 24 strh r0, [r4, 0x24] lsls r0, r1, 16 asrs r0, 24 strh r0, [r4, 0x26] movs r6, 0x3C ldrsh r0, [r4, r6] cmp r0, 0 bne _080DFED2 adds r0, r2, r5 strh r0, [r4, 0x34] adds r1, r3 strh r1, [r4, 0x36] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] lsls r1, 16 asrs r1, 24 strh r1, [r4, 0x26] ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] _080DFED2: movs r1, 0x38 ldrsh r0, [r4, r1] movs r2, 0x3A ldrsh r1, [r4, r2] bl sine ldrh r6, [r4, 0x26] adds r0, r6 strh r0, [r4, 0x26] ldrh r0, [r4, 0x38] adds r0, 0x3 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x38] cmp r0, 0x7F ble _080DFF02 movs r0, 0 strh r0, [r4, 0x38] ldrh r0, [r4, 0x3A] adds r0, 0x14 strh r0, [r4, 0x3A] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] _080DFF02: ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bne _080DFF14 adds r0, r4, 0 bl move_anim_8072740 _080DFF14: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80DFE90 thumb_func_start sub_80DFF1C sub_80DFF1C: @ 80DFF1C push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080DFF50 ldrh r0, [r5] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldrb r1, [r5, 0x4] adds r0, r4, 0 bl StartSpriteAffineAnim ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r5, 0x8] strh r0, [r4, 0x30] ldrh r0, [r5, 0xA] strh r0, [r4, 0x32] ldr r0, _080DFF54 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080DFF50: .4byte 0x03004b00 _080DFF54: .4byte sub_80DFF58 thumb_func_end sub_80DFF1C thumb_func_start sub_80DFF58 sub_80DFF58: @ 80DFF58 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x36] adds r0, r1 strh r0, [r2, 0x36] ldrh r1, [r2, 0x30] ldrh r3, [r2, 0x38] adds r1, r3 strh r1, [r2, 0x38] lsls r0, 16 asrs r0, 24 strh r0, [r2, 0x24] lsls r1, 16 asrs r1, 24 strh r1, [r2, 0x26] ldrh r0, [r2, 0x34] adds r0, 0x1 strh r0, [r2, 0x34] lsls r0, 16 asrs r0, 16 movs r3, 0x32 ldrsh r1, [r2, r3] cmp r0, r1 bne _080DFF8E ldr r0, _080DFF94 str r0, [r2, 0x1C] _080DFF8E: pop {r0} bx r0 .align 2, 0 _080DFF94: .4byte sub_80DFF98 thumb_func_end sub_80DFF58 thumb_func_start sub_80DFF98 sub_80DFF98: @ 80DFF98 push {lr} adds r3, r0, 0 ldrh r1, [r3, 0x36] ldrh r0, [r3, 0x2E] subs r1, r0 strh r1, [r3, 0x36] ldrh r0, [r3, 0x38] ldrh r2, [r3, 0x30] subs r0, r2 strh r0, [r3, 0x38] lsls r1, 16 asrs r1, 24 strh r1, [r3, 0x24] lsls r0, 16 asrs r0, 24 strh r0, [r3, 0x26] ldrh r0, [r3, 0x34] subs r0, 0x1 strh r0, [r3, 0x34] lsls r0, 16 cmp r0, 0 bne _080DFFCA adds r0, r3, 0 bl move_anim_8074EE0 _080DFFCA: pop {r0} bx r0 thumb_func_end sub_80DFF98 thumb_func_start sub_80DFFD0 sub_80DFFD0: @ 80DFFD0 push {r4-r7,lr} adds r4, r0, 0 ldr r0, _080DFFE4 movs r2, 0 ldrsh r1, [r0, r2] adds r3, r0, 0 cmp r1, 0 bne _080DFFEC ldr r0, _080DFFE8 b _080DFFEE .align 2, 0 _080DFFE4: .4byte 0x03004b00 _080DFFE8: .4byte 0x0202f7c8 _080DFFEC: ldr r0, _080E001C _080DFFEE: ldrb r5, [r0] movs r6, 0x14 ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x4 ldr r7, _080E0020 adds r0, r7, 0 ands r1, r0 ldr r0, _080E0024 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] movs r1, 0x2 ldrsh r0, [r3, r1] cmp r0, 0x1 beq _080E004C cmp r0, 0x1 bgt _080E0028 cmp r0, 0 beq _080E0032 b _080E00A0 .align 2, 0 _080E001C: .4byte 0x0202f7c9 _080E0020: .4byte 0x000003ff _080E0024: .4byte 0xfffffc00 _080E0028: cmp r0, 0x2 beq _080E0066 cmp r0, 0x3 beq _080E007E b _080E00A0 _080E0032: adds r0, r5, 0 movs r1, 0x5 bl sub_807A100 subs r0, 0x8 strh r0, [r4, 0x20] adds r0, r5, 0 movs r1, 0x2 bl sub_807A100 adds r0, 0x8 strh r0, [r4, 0x22] b _080E00A0 _080E004C: adds r0, r5, 0 movs r1, 0x5 bl sub_807A100 subs r0, 0xE strh r0, [r4, 0x20] adds r0, r5, 0 movs r1, 0x2 bl sub_807A100 adds r0, 0x10 strh r0, [r4, 0x22] b _080E00A0 _080E0066: adds r0, r5, 0 movs r1, 0x4 bl sub_807A100 adds r0, 0x8 strh r0, [r4, 0x20] adds r0, r5, 0 movs r1, 0x2 bl sub_807A100 adds r0, 0x8 b _080E0094 _080E007E: adds r0, r5, 0 movs r1, 0x4 bl sub_807A100 adds r0, 0xE strh r0, [r4, 0x20] adds r0, r5, 0 movs r1, 0x2 bl sub_807A100 adds r0, 0x10 _080E0094: strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim movs r6, 0xEC _080E00A0: movs r0, 0x20 strh r0, [r4, 0x2E] lsls r0, r6, 24 asrs r0, 24 ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] adds r0, 0xC strh r0, [r4, 0x36] ldr r0, _080E00C8 strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC ldr r0, _080E00CC str r0, [r4, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E00C8: .4byte 0x0000fff4 _080E00CC: .4byte sub_80E00D0 thumb_func_end sub_80DFFD0 thumb_func_start sub_80E00D0 sub_80E00D0: @ 80E00D0 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080E00E4 adds r0, r4, 0 bl move_anim_8074EE0 _080E00E4: pop {r4} pop {r0} bx r0 thumb_func_end sub_80E00D0 thumb_func_start sub_80E00EC sub_80E00EC: @ 80E00EC push {r4-r7,lr} sub sp, 0x18 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080E0150 adds r5, r1, r0 ldr r4, _080E0154 ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x1F movs r6, 0 strh r0, [r5, 0x16] ldrb r0, [r4] movs r1, 0x2 bl sub_807A100 subs r0, 0x7 strh r0, [r5, 0x14] ldrh r1, [r5, 0x16] strh r1, [r5, 0x12] strh r0, [r5, 0x10] subs r1, r0 lsls r1, 8 strh r1, [r5, 0x22] ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 subs r1, 0x20 strh r1, [r5, 0x24] adds r0, 0x20 strh r0, [r5, 0x26] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080E015C ldr r0, _080E0158 b _080E015E .align 2, 0 _080E0150: .4byte 0x03004b20 _080E0154: .4byte 0x0202f7c8 _080E0158: .4byte 0x0000fff4 _080E015C: ldr r0, _080E01A8 _080E015E: strh r0, [r5, 0x18] ldr r0, _080E01AC ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xE] cmp r0, 0x1 bne _080E01C4 add r4, sp, 0xC adds r0, r4, 0 bl sub_8078914 ldr r0, _080E01B0 ldrh r0, [r0] strh r0, [r5, 0x1C] ldr r1, _080E01B4 ldr r2, _080E01B8 adds r0, r2, 0 strh r0, [r1] ldrb r1, [r4, 0x8] lsls r1, 4 movs r0, 0 movs r2, 0x20 bl FillPalette ldr r0, _080E01BC str r0, [sp] movs r7, 0x2 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E01F4 ldr r1, _080E01C0 b _080E01EE .align 2, 0 _080E01A8: .4byte 0x0000ffc0 _080E01AC: .4byte 0x0202f7c8 _080E01B0: .4byte 0x030041b4 _080E01B4: .4byte REG_BLDCNT _080E01B8: .4byte 0x00003f42 _080E01BC: .4byte REG_BG1VOFS _080E01C0: .4byte 0x03004288 _080E01C4: ldr r0, _080E0278 ldrh r0, [r0] strh r0, [r5, 0x1C] ldr r1, _080E027C ldr r2, _080E0280 adds r0, r2, 0 strh r0, [r1] movs r0, 0 movs r1, 0x90 movs r2, 0x20 bl FillPalette ldr r0, _080E0284 str r0, [sp] movs r7, 0x4 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E01F4 ldr r1, _080E0288 _080E01EE: ldrh r0, [r1] adds r0, 0xF0 strh r0, [r1] _080E01F4: ldr r0, _080E028C str r0, [sp, 0x4] mov r2, sp movs r1, 0 movs r0, 0x1 strb r0, [r2, 0x8] mov r0, sp strb r1, [r0, 0x9] strh r1, [r5, 0x1E] movs r0, 0x10 strh r0, [r5, 0x20] strh r1, [r5, 0x8] strh r1, [r5, 0xA] strh r1, [r5, 0xC] movs r0, 0x3 bl sub_80E08CC movs r3, 0 ldr r4, _080E0290 movs r0, 0xF0 lsls r0, 3 adds r6, r4, r0 _080E0220: lsls r1, r3, 1 adds r2, r1, r4 ldrh r0, [r5, 0x1C] strh r0, [r2] adds r1, r6 ldrh r0, [r5, 0x1C] strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x6F bls _080E0220 ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl sub_80895F8 ldr r1, _080E0294 movs r0, 0x3F eors r7, r0 movs r2, 0xFC lsls r2, 6 adds r0, r2, 0 orrs r7, r0 strh r7, [r1] subs r1, 0x2 adds r2, 0x3F adds r0, r2, 0 strh r0, [r1] ldr r2, _080E0298 ldrh r0, [r5, 0x24] lsls r0, 8 ldrh r1, [r5, 0x26] orrs r0, r1 strh r0, [r2] ldr r1, _080E029C movs r0, 0xA0 strh r0, [r1] ldr r0, _080E02A0 str r0, [r5] add sp, 0x18 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E0278: .4byte 0x03004280 _080E027C: .4byte REG_BLDCNT _080E0280: .4byte 0x00003f44 _080E0284: .4byte REG_BG2VOFS _080E0288: .4byte 0x030042c0 _080E028C: .4byte 0xa2600001 _080E0290: .4byte 0x03004de0 _080E0294: .4byte REG_WINOUT _080E0298: .4byte 0x030042c4 _080E029C: .4byte 0x03004240 _080E02A0: .4byte sub_80E02A4 thumb_func_end sub_80E00EC thumb_func_start sub_80E02A4 sub_80E02A4: @ 80E02A4 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080E02C8 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x4 bls _080E02BE b _080E03B6 _080E02BE: lsls r0, 2 ldr r1, _080E02CC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E02C8: .4byte 0x03004b20 _080E02CC: .4byte _080E02D0 .align 2, 0 _080E02D0: .4byte _080E02E4 .4byte _080E0344 .4byte _080E035E .4byte _080E039C .4byte _080E03B0 _080E02E4: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080E03B6 movs r0, 0 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080E0314 ldrh r1, [r4, 0x1E] movs r2, 0x1E ldrsh r0, [r4, r2] cmp r0, 0xC beq _080E0322 adds r0, r1, 0x1 strh r0, [r4, 0x1E] b _080E0322 _080E0314: ldrh r1, [r4, 0x20] movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x8 beq _080E0322 subs r0, r1, 0x1 strh r0, [r4, 0x20] _080E0322: ldr r2, _080E0340 ldrh r0, [r4, 0x20] lsls r0, 8 ldrh r1, [r4, 0x1E] orrs r0, r1 strh r0, [r2] movs r1, 0x1E ldrsh r0, [r4, r1] cmp r0, 0xC bne _080E03B6 movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x8 bne _080E03B6 b _080E03A2 .align 2, 0 _080E0340: .4byte REG_BLDALPHA _080E0344: ldrh r0, [r4, 0x10] subs r0, 0x8 strh r0, [r4, 0x10] adds r0, r4, 0 bl sub_80E079C movs r0, 0x10 ldrsh r1, [r4, r0] movs r2, 0x18 ldrsh r0, [r4, r2] cmp r1, r0 bge _080E03B6 b _080E03A2 _080E035E: ldrh r0, [r4, 0x10] subs r0, 0x8 strh r0, [r4, 0x10] adds r0, r4, 0 bl sub_80E079C ldrh r1, [r4, 0x24] adds r1, 0x4 strh r1, [r4, 0x24] ldrh r0, [r4, 0x26] subs r2, r0, 0x4 strh r2, [r4, 0x26] lsls r1, 16 lsls r0, r2, 16 cmp r1, r0 blt _080E0380 strh r2, [r4, 0x24] _080E0380: ldr r3, _080E0398 ldrh r2, [r4, 0x24] lsls r0, r2, 8 ldrh r1, [r4, 0x26] orrs r0, r1 strh r0, [r3] lsls r2, 16 lsls r1, 16 cmp r2, r1 bne _080E03B6 b _080E03A2 .align 2, 0 _080E0398: .4byte 0x030042c4 _080E039C: ldr r1, _080E03AC movs r0, 0x3 strb r0, [r1, 0x15] _080E03A2: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080E03B6 .align 2, 0 _080E03AC: .4byte 0x03004dc0 _080E03B0: adds r0, r2, 0 bl move_anim_task_del _080E03B6: pop {r4} pop {r0} bx r0 thumb_func_end sub_80E02A4 thumb_func_start sub_80E03BC sub_80E03BC: @ 80E03BC push {r4-r7,lr} sub sp, 0x18 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080E03E4 adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x4 bls _080E03D8 b _080E05F2 _080E03D8: lsls r0, 2 ldr r1, _080E03E8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E03E4: .4byte 0x03004b20 _080E03E8: .4byte _080E03EC .align 2, 0 _080E03EC: .4byte _080E0400 .4byte _080E048C .4byte _080E04D0 .4byte _080E053C .4byte _080E05A4 _080E0400: bl sub_8076BE0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080E043C ldr r0, _080E042C movs r1, 0 strh r1, [r0] ldr r0, _080E0430 strh r1, [r0] ldr r0, _080E0434 ldr r2, _080E0438 adds r1, r2, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, r4, 0 bl move_anim_task_del b _080E05F2 .align 2, 0 _080E042C: .4byte 0x030042c4 _080E0430: .4byte 0x03004240 _080E0434: .4byte REG_WININ _080E0438: .4byte 0x00003f3f _080E043C: ldr r0, _080E045C ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xE] cmp r0, 0x1 bne _080E046C ldr r1, _080E0460 ldr r2, _080E0464 adds r0, r2, 0 strh r0, [r1] ldr r1, _080E0468 b _080E0476 .align 2, 0 _080E045C: .4byte 0x0202f7c9 _080E0460: .4byte REG_BLDCNT _080E0464: .4byte 0x00003f42 _080E0468: .4byte 0x03004288 _080E046C: ldr r1, _080E0480 ldr r2, _080E0484 adds r0, r2, 0 strh r0, [r1] ldr r1, _080E0488 _080E0476: ldrh r0, [r1] adds r0, 0xF0 strh r0, [r1] b _080E0590 .align 2, 0 _080E0480: .4byte REG_BLDCNT _080E0484: .4byte 0x00003f44 _080E0488: .4byte 0x030042c0 _080E048C: movs r1, 0xE ldrsh r0, [r5, r1] cmp r0, 0x1 bne _080E04B4 mov r0, sp bl sub_8078914 ldr r0, _080E04B0 ldrh r0, [r0] strh r0, [r5, 0x1C] mov r0, sp ldrb r1, [r0, 0x8] lsls r1, 4 movs r0, 0 movs r2, 0x20 bl FillPalette b _080E04C4 .align 2, 0 _080E04B0: .4byte 0x030041b4 _080E04B4: ldr r0, _080E04CC ldrh r0, [r0] strh r0, [r5, 0x1C] movs r0, 0 movs r1, 0x90 movs r2, 0x20 bl FillPalette _080E04C4: movs r0, 0x3 bl sub_80E08CC b _080E0590 .align 2, 0 _080E04CC: .4byte 0x03004280 _080E04D0: ldr r4, _080E051C ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x1F movs r6, 0 strh r0, [r5, 0x16] ldrb r0, [r4] movs r1, 0x2 bl sub_807A100 subs r0, 0x7 strh r0, [r5, 0x14] ldrh r1, [r5, 0x16] subs r1, r0 lsls r1, 8 strh r1, [r5, 0x22] ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 subs r1, r0, 0x4 strh r1, [r5, 0x24] adds r0, 0x4 strh r0, [r5, 0x26] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080E0524 ldr r0, _080E0520 b _080E0526 .align 2, 0 _080E051C: .4byte 0x0202f7c9 _080E0520: .4byte 0x0000fff4 _080E0524: ldr r0, _080E0538 _080E0526: strh r0, [r5, 0x18] ldrh r0, [r5, 0x18] strh r0, [r5, 0x10] strh r0, [r5, 0x12] movs r0, 0xC strh r0, [r5, 0x1E] movs r0, 0x8 strh r0, [r5, 0x20] b _080E0590 .align 2, 0 _080E0538: .4byte 0x0000ffc0 _080E053C: movs r2, 0xE ldrsh r0, [r5, r2] cmp r0, 0x1 bne _080E054C ldr r0, _080E0548 b _080E054E .align 2, 0 _080E0548: .4byte REG_BG1VOFS _080E054C: ldr r0, _080E0598 _080E054E: str r0, [sp, 0xC] movs r3, 0 add r4, sp, 0xC ldr r6, _080E059C movs r0, 0xF0 lsls r0, 3 adds r7, r6, r0 _080E055C: lsls r1, r3, 1 adds r2, r1, r6 ldrh r0, [r5, 0x1C] adds r0, 0x9F subs r0, r3 strh r0, [r2] adds r1, r7 ldrh r0, [r5, 0x1C] adds r0, 0x9F subs r0, r3 strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x6F bls _080E055C ldr r1, _080E05A0 str r1, [r4, 0x4] movs r2, 0 movs r0, 0x1 strb r0, [r4, 0x8] strb r2, [r4, 0x9] ldr r0, [sp, 0xC] ldr r2, [r4, 0x8] bl sub_80895F8 _080E0590: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _080E05F2 .align 2, 0 _080E0598: .4byte REG_BG2VOFS _080E059C: .4byte 0x03004de0 _080E05A0: .4byte 0xa2600001 _080E05A4: movs r1, 0xE ldrsh r0, [r5, r1] cmp r0, 0x1 bne _080E05BC ldr r1, _080E05B4 ldr r2, _080E05B8 b _080E05C0 .align 2, 0 _080E05B4: .4byte REG_WINOUT _080E05B8: .4byte 0x00003f3d _080E05BC: ldr r1, _080E05FC ldr r2, _080E0600 _080E05C0: adds r0, r2, 0 strh r0, [r1] ldr r1, _080E0604 ldr r2, _080E0608 adds r0, r2, 0 strh r0, [r1] ldr r2, _080E060C ldrh r0, [r5, 0x24] lsls r0, 8 ldrh r1, [r5, 0x26] orrs r0, r1 strh r0, [r2] ldr r1, _080E0610 movs r0, 0xA0 strh r0, [r1] movs r0, 0 strh r0, [r5, 0x8] strh r0, [r5, 0xA] strh r0, [r5, 0xC] ldr r1, _080E0614 ldr r2, _080E0618 adds r0, r2, 0 strh r0, [r1] ldr r0, _080E061C str r0, [r5] _080E05F2: add sp, 0x18 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E05FC: .4byte REG_WINOUT _080E0600: .4byte 0x00003f3b _080E0604: .4byte REG_WININ _080E0608: .4byte 0x00003f3f _080E060C: .4byte 0x030042c4 _080E0610: .4byte 0x03004240 _080E0614: .4byte REG_BLDALPHA _080E0618: .4byte 0x0000080c _080E061C: .4byte sub_80E0620 thumb_func_end sub_80E03BC thumb_func_start sub_80E0620 sub_80E0620: @ 80E0620 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080E0644 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x4 bls _080E063A b _080E0784 _080E063A: lsls r0, 2 ldr r1, _080E0648 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E0644: .4byte 0x03004b20 _080E0648: .4byte _080E064C .align 2, 0 _080E064C: .4byte _080E0660 .4byte _080E068C .4byte _080E06F4 .4byte _080E0754 .4byte _080E0768 _080E0660: ldrh r0, [r4, 0x12] adds r0, 0x8 strh r0, [r4, 0x12] lsls r0, 16 asrs r0, 16 ldrh r2, [r4, 0x16] movs r3, 0x16 ldrsh r1, [r4, r3] cmp r0, r1 blt _080E0676 strh r2, [r4, 0x12] _080E0676: adds r0, r4, 0 bl sub_80E079C movs r0, 0x12 ldrsh r1, [r4, r0] movs r2, 0x16 ldrsh r0, [r4, r2] cmp r1, r0 beq _080E068A b _080E0784 _080E068A: b _080E075A _080E068C: movs r3, 0x26 ldrsh r0, [r4, r3] movs r2, 0x24 ldrsh r1, [r4, r2] subs r0, r1 cmp r0, 0x3F bgt _080E06A8 ldrh r0, [r4, 0x24] subs r0, 0x4 strh r0, [r4, 0x24] ldrh r0, [r4, 0x26] adds r0, 0x4 strh r0, [r4, 0x26] b _080E06AC _080E06A8: movs r0, 0x1 strh r0, [r4, 0xA] _080E06AC: ldr r2, _080E06F0 ldrh r0, [r4, 0x24] lsls r0, 8 ldrh r1, [r4, 0x26] orrs r0, r1 strh r0, [r2] ldrh r0, [r4, 0x10] adds r0, 0x8 strh r0, [r4, 0x10] lsls r0, 16 asrs r0, 16 ldrh r2, [r4, 0x14] movs r3, 0x14 ldrsh r1, [r4, r3] cmp r0, r1 blt _080E06CE strh r2, [r4, 0x10] _080E06CE: adds r0, r4, 0 bl sub_80E079C movs r0, 0x10 ldrsh r1, [r4, r0] movs r2, 0x14 ldrsh r0, [r4, r2] cmp r1, r0 bne _080E0784 movs r3, 0xA ldrsh r0, [r4, r3] cmp r0, 0 beq _080E0784 movs r0, 0 strh r0, [r4, 0xA] b _080E075A .align 2, 0 _080E06F0: .4byte 0x030042c4 _080E06F4: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080E0784 movs r0, 0 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080E0724 ldrh r1, [r4, 0x1E] movs r2, 0x1E ldrsh r0, [r4, r2] cmp r0, 0 beq _080E0732 subs r0, r1, 0x1 strh r0, [r4, 0x1E] b _080E0732 _080E0724: ldrh r1, [r4, 0x20] movs r3, 0x20 ldrsh r0, [r4, r3] cmp r0, 0xF bgt _080E0732 adds r0, r1, 0x1 strh r0, [r4, 0x20] _080E0732: ldr r2, _080E0750 ldrh r0, [r4, 0x20] lsls r0, 8 ldrh r1, [r4, 0x1E] orrs r0, r1 strh r0, [r2] movs r1, 0x1E ldrsh r0, [r4, r1] cmp r0, 0 bne _080E0784 movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x10 bne _080E0784 b _080E075A .align 2, 0 _080E0750: .4byte REG_BLDALPHA _080E0754: ldr r1, _080E0764 movs r0, 0x3 strb r0, [r1, 0x15] _080E075A: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080E0784 .align 2, 0 _080E0764: .4byte 0x03004dc0 _080E0768: ldr r0, _080E078C movs r1, 0 strh r1, [r0] ldr r0, _080E0790 strh r1, [r0] ldr r0, _080E0794 ldr r3, _080E0798 adds r1, r3, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, r2, 0 bl move_anim_task_del _080E0784: pop {r4} pop {r0} bx r0 .align 2, 0 _080E078C: .4byte 0x030042c4 _080E0790: .4byte 0x03004240 _080E0794: .4byte REG_WININ _080E0798: .4byte 0x00003f3f thumb_func_end sub_80E0620 thumb_func_start sub_80E079C sub_80E079C: @ 80E079C push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 ldrh r0, [r6, 0x12] ldrh r4, [r6, 0x10] subs r0, r4 lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 beq _080E0890 movs r2, 0x22 ldrsh r0, [r6, r2] bl __divsi3 mov r8, r0 movs r3, 0x14 ldrsh r0, [r6, r3] lsls r5, r0, 8 lsls r0, r4, 16 movs r4, 0 cmp r0, 0 ble _080E07FC ldr r0, _080E0888 mov r12, r0 ldr r7, _080E088C _080E07D0: lsls r2, r4, 16 asrs r2, 16 lsls r3, r2, 1 ldrb r1, [r7, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r3, r0 add r3, r12 adds r1, r2, 0 subs r1, 0x9F ldrh r0, [r6, 0x1C] subs r0, r1 strh r0, [r3] adds r2, 0x1 lsls r2, 16 lsrs r4, r2, 16 asrs r2, 16 movs r1, 0x10 ldrsh r0, [r6, r1] cmp r2, r0 blt _080E07D0 _080E07FC: ldrh r4, [r6, 0x10] lsls r3, r4, 16 asrs r1, r3, 16 movs r2, 0x12 ldrsh r0, [r6, r2] cmp r1, r0 bgt _080E0846 ldr r0, _080E0888 mov r12, r0 ldr r7, _080E088C _080E0810: asrs r4, r3, 16 cmp r4, 0 blt _080E0832 asrs r1, r5, 8 subs r1, r4 lsls r3, r4, 1 ldrb r2, [r7, 0x14] lsls r0, r2, 4 subs r0, r2 lsls r0, 7 adds r3, r0 add r3, r12 lsls r1, 16 asrs r1, 16 ldrh r2, [r6, 0x1C] adds r1, r2 strh r1, [r3] _080E0832: add r5, r8 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 lsls r3, r4, 16 asrs r1, r3, 16 movs r2, 0x12 ldrsh r0, [r6, r2] cmp r1, r0 ble _080E0810 _080E0846: movs r3, 0x1C ldrsh r0, [r6, r3] adds r0, 0x9F lsls r2, r4, 16 asrs r1, r2, 16 subs r5, r0, r1 movs r3, 0x16 ldrsh r0, [r6, r3] cmp r1, r0 bge _080E08BE ldr r7, _080E0888 ldr r4, _080E088C _080E085E: asrs r3, r2, 16 cmp r3, 0 blt _080E0876 lsls r2, r3, 1 ldrb r1, [r4, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 adds r2, r7 strh r5, [r2] subs r5, 0x1 _080E0876: adds r0, r3, 0x1 lsls r2, r0, 16 asrs r1, r2, 16 movs r3, 0x16 ldrsh r0, [r6, r3] cmp r1, r0 blt _080E085E b _080E08BE .align 2, 0 _080E0888: .4byte 0x03004de0 _080E088C: .4byte 0x03004dc0 _080E0890: movs r1, 0x1C ldrsh r0, [r6, r1] adds r5, r0, 0 adds r5, 0x9F movs r4, 0 ldr r3, _080E08C8 movs r2, 0xF0 lsls r2, 3 adds r6, r3, r2 _080E08A2: lsls r0, r4, 16 asrs r0, 16 lsls r2, r0, 1 adds r1, r2, r3 strh r5, [r1] adds r2, r6 strh r5, [r2] subs r5, 0x1 adds r0, 0x1 lsls r0, 16 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x6F ble _080E08A2 _080E08BE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E08C8: .4byte 0x03004de0 thumb_func_end sub_80E079C thumb_func_start sub_80E08CC sub_80E08CC: @ 80E08CC push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 movs r4, 0 ldr r7, _080E0914 movs r1, 0x3 ands r0, r1 lsls r5, r0, 2 movs r0, 0xD negs r0, r0 adds r6, r0, 0 _080E08E2: lsls r0, r4, 24 lsrs r0, 24 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _080E0902 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 ldrb r0, [r1, 0x5] ands r0, r6 orrs r0, r5 strb r0, [r1, 0x5] _080E0902: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3 bls _080E08E2 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E0914: .4byte 0x02020004 thumb_func_end sub_80E08CC thumb_func_start sub_80E0918 sub_80E0918: @ 80E0918 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r6, _080E09B8 ldrb r0, [r6] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 movs r1, 0x1 eors r0, r1 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 ldrb r0, [r6] adds r1, r4, 0 bl sub_8076034 ldr r0, _080E09BC mov r9, r0 ldr r0, _080E09C0 mov r8, r0 ldrb r0, [r6] add r0, r8 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r9 adds r1, 0x3E ldrb r2, [r1] movs r7, 0x5 negs r7, r7 adds r0, r7, 0 ands r0, r2 strb r0, [r1] ldrb r0, [r6] movs r5, 0x2 eors r0, r5 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080E09A2 ldrb r0, [r6] eors r0, r5 movs r1, 0x1 eors r4, r1 adds r1, r4, 0 bl sub_8076034 ldrb r0, [r6] eors r0, r5 add r0, r8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 adds r0, 0x3E ldrb r2, [r0] adds r1, r7, 0 ands r1, r2 strb r1, [r0] _080E09A2: mov r0, r10 bl move_anim_task_del pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E09B8: .4byte 0x0202f7c8 _080E09BC: .4byte 0x02020004 _080E09C0: .4byte 0x02024be0 thumb_func_end sub_80E0918 thumb_func_start sub_80E09C4 sub_80E09C4: @ 80E09C4 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r4, _080E0A0C ldrb r0, [r4] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 movs r1, 0x1 eors r0, r1 negs r1, r0 orrs r1, r0 lsrs r5, r1, 31 adds r0, r5, 0 bl sub_8076464 ldrb r1, [r4] movs r0, 0x2 eors r0, r1 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080E0A00 movs r0, 0x1 eors r5, r0 adds r0, r5, 0 bl sub_8076464 _080E0A00: adds r0, r6, 0 bl move_anim_task_del pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E0A0C: .4byte 0x0202f7c8 thumb_func_end sub_80E09C4 thumb_func_start sub_80E0A10 sub_80E0A10: @ 80E0A10 push {r4,lr} adds r4, r0, 0 ldr r1, _080E0A40 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] ldrb r1, [r1, 0x4] adds r0, r4, 0 bl StartSpriteAnim ldr r0, _080E0A44 str r0, [r4, 0x1C] ldr r1, _080E0A48 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4} pop {r0} bx r0 .align 2, 0 _080E0A40: .4byte 0x03004b00 _080E0A44: .4byte sub_8078600 _080E0A48: .4byte move_anim_8072740 thumb_func_end sub_80E0A10 thumb_func_start sub_80E0A4C sub_80E0A4C: @ 80E0A4C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r7, 0 ldr r0, _080E0B50 strh r7, [r0] ldr r0, _080E0B54 strh r7, [r0] ldr r1, _080E0B58 ldr r2, _080E0B5C adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080E0B60 adds r0, r3, 0 strh r0, [r1] movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] ldr r1, _080E0B64 ldr r2, _080E0B68 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080E0B6C adds r0, r3, 0 strh r0, [r1] ldr r5, _080E0B70 ldrb r1, [r5] movs r0, 0x4 negs r0, r0 mov r8, r0 ands r0, r1 strb r0, [r5] ldrb r1, [r5, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r5, 0x1] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E0AC4 ldrb r0, [r5] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r5] _080E0AC4: bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080E0B40 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E0B40 ldr r4, _080E0B74 ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _080E0AF4 ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 cmp r0, 0 bne _080E0B40 _080E0AF4: ldrb r0, [r4] movs r6, 0x2 eors r0, r6 bl b_side_obj__get_some_boolean lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080E0B40 ldr r3, _080E0B78 ldr r1, _080E0B7C ldrb r0, [r4] eors r0, r6 adds r0, r1 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 ldrb r3, [r2, 0x5] lsls r1, r3, 28 lsrs r1, 30 subs r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldrb r1, [r5] mov r0, r8 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r5] movs r7, 0x1 _080E0B40: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080E0B84 ldr r0, _080E0B80 ldrh r5, [r0] b _080E0BCC .align 2, 0 _080E0B50: .4byte 0x030042c4 _080E0B54: .4byte 0x03004240 _080E0B58: .4byte REG_WININ _080E0B5C: .4byte 0x00003f3f _080E0B60: .4byte 0x00003f3d _080E0B64: .4byte REG_BLDCNT _080E0B68: .4byte 0x00003f42 _080E0B6C: .4byte 0x00000c08 _080E0B70: .4byte REG_BG1CNT _080E0B74: .4byte 0x0202f7c8 _080E0B78: .4byte 0x02020004 _080E0B7C: .4byte 0x02024be0 _080E0B80: .4byte 0x02019348 _080E0B84: ldr r4, _080E0BA4 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080E0BB0 ldr r1, _080E0BA8 ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E0BAC b _080E0BC0 .align 2, 0 _080E0BA4: .4byte 0x0202f7c8 _080E0BA8: .4byte 0x02024a6a _080E0BAC: .4byte 0x030045c0 _080E0BB0: ldr r1, _080E0C58 ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E0C5C _080E0BC0: adds r0, r1 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r5, r0, 16 _080E0BCC: movs r0, 0 bl obj_id_for_side_relative_to_move adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080E0C60 ldrb r0, [r0] adds r1, r4, 0 adds r2, r5, 0 bl sub_807A4A0 lsls r0, 24 lsrs r5, r0, 24 mov r0, sp bl sub_8078914 ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r2, _080E0C64 add r0, sp, 0xC str r0, [r2] str r1, [r2, 0x4] ldr r0, _080E0C68 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _080E0C6C bl LZDecompressVram ldr r0, _080E0C70 ldr r1, [sp] bl LZDecompressVram ldr r0, _080E0C74 mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette ldr r2, _080E0C78 ldr r0, _080E0C7C lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x20] negs r0, r0 adds r0, 0x60 strh r0, [r2] ldr r2, _080E0C80 ldrh r0, [r1, 0x22] negs r0, r0 adds r0, 0x20 strh r0, [r2] ldrb r0, [r1, 0x5] lsrs r0, 4 adds r0, 0x10 adds r1, r0, 0 ldr r2, _080E0C84 movs r3, 0x2 ldrsh r0, [r2, r3] cmp r0, 0 bne _080E0C88 adds r0, r1, 0 movs r1, 0 bl sub_8079108 b _080E0C94 .align 2, 0 _080E0C58: .4byte 0x02024a6a _080E0C5C: .4byte 0x03004360 _080E0C60: .4byte 0x0202f7c8 _080E0C64: .4byte 0x040000d4 _080E0C68: .4byte 0x85000400 _080E0C6C: .4byte gUnknown_08D1D574 _080E0C70: .4byte gUnknown_08D1D410 _080E0C74: .4byte gUnknown_08D1D54C _080E0C78: .4byte 0x030042c0 _080E0C7C: .4byte 0x02020004 _080E0C80: .4byte 0x030041b4 _080E0C84: .4byte 0x03004b00 _080E0C88: lsls r0, r1, 4 ldrh r3, [r2, 0x4] movs r1, 0x10 movs r2, 0xB bl BlendPalette _080E0C94: ldr r1, _080E0CC4 mov r2, r9 lsls r0, r2, 2 add r0, r9 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x8] ldr r2, _080E0CC8 ldrh r1, [r2] strh r1, [r0, 0xA] ldrh r1, [r2, 0x2] strh r1, [r0, 0xC] ldrh r1, [r2, 0x4] strh r1, [r0, 0xE] strh r7, [r0, 0x14] ldr r1, _080E0CCC str r1, [r0] add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E0CC4: .4byte 0x03004b20 _080E0CC8: .4byte 0x03004b00 _080E0CCC: .4byte sub_80E0CD0 thumb_func_end sub_80E0A4C thumb_func_start sub_80E0CD0 sub_80E0CD0: @ 80E0CD0 push {r4-r7,lr} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _080E0DF0 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x1C] adds r0, 0x4 movs r5, 0 strh r0, [r4, 0x1C] ldr r2, _080E0DF4 ldrh r3, [r2] subs r1, r3, 0x4 strh r1, [r2] lsls r0, 16 asrs r0, 16 cmp r0, 0x80 bne _080E0DE8 strh r5, [r4, 0x1C] adds r0, r3, 0 adds r0, 0x7C strh r0, [r2] ldrh r0, [r4, 0x1E] adds r0, 0x1 strh r0, [r4, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _080E0DE8 movs r0, 0 bl sub_8076464 ldr r0, _080E0DF8 strh r5, [r0] ldr r0, _080E0DFC strh r5, [r0] ldr r0, _080E0E00 ldr r2, _080E0E04 adds r1, r2, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E0D40 ldr r2, _080E0E08 ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080E0D40: movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 eors r0, r1 strh r0, [r2] ldr r0, _080E0E0C strh r5, [r0] adds r0, 0x2 strh r5, [r0] movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 ldr r6, _080E0E10 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r0, [r1, 0x5] lsrs r0, 4 adds r0, 0x10 adds r1, r0, 0 movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0 bne _080E0D84 adds r0, r1, 0 movs r1, 0x1 bl sub_8079108 _080E0D84: movs r3, 0x8 ldrsh r1, [r4, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl DestroySprite mov r0, sp bl sub_8078914 ldr r2, [sp, 0x4] str r5, [sp, 0xC] ldr r1, _080E0E14 add r0, sp, 0xC str r0, [r1] str r2, [r1, 0x4] ldr r0, _080E0E18 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r1, 0x14 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080E0DE2 ldr r2, _080E0E1C ldr r0, _080E0E20 ldrb r1, [r0] movs r0, 0x2 eors r0, r1 adds r0, r2 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r6 ldrb r3, [r2, 0x5] lsls r1, r3, 28 lsrs r1, 30 adds r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] _080E0DE2: adds r0, r7, 0 bl move_anim_task_del _080E0DE8: add sp, 0x10 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E0DF0: .4byte 0x03004b20 _080E0DF4: .4byte 0x030042c0 _080E0DF8: .4byte 0x030042c4 _080E0DFC: .4byte 0x03004240 _080E0E00: .4byte REG_WININ _080E0E04: .4byte 0x00003f3f _080E0E08: .4byte REG_BG1CNT _080E0E0C: .4byte REG_BLDCNT _080E0E10: .4byte 0x02020004 _080E0E14: .4byte 0x040000d4 _080E0E18: .4byte 0x85000200 _080E0E1C: .4byte 0x02024be0 _080E0E20: .4byte 0x0202f7c8 thumb_func_end sub_80E0CD0 thumb_func_start sub_80E0E24 sub_80E0E24: @ 80E0E24 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r0, _080E0E44 movs r2, 0 ldrsh r1, [r0, r2] adds r2, r0, 0 cmp r1, 0x7 bhi _080E0E88 lsls r0, r1, 2 ldr r1, _080E0E48 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E0E44: .4byte 0x03004b00 _080E0E48: .4byte _080E0E4C .align 2, 0 _080E0E4C: .4byte _080E0E6C .4byte _080E0E6C .4byte _080E0E6C .4byte _080E0E6C .4byte _080E0E78 .4byte _080E0E7C .4byte _080E0E80 .4byte _080E0E84 _080E0E6C: ldrb r0, [r2] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r2, r0, 24 b _080E0E8A _080E0E78: movs r4, 0 b _080E0E90 _080E0E7C: movs r4, 0x2 b _080E0E90 _080E0E80: movs r4, 0x1 b _080E0E90 _080E0E84: movs r4, 0x3 b _080E0E90 _080E0E88: movs r2, 0xFF _080E0E8A: movs r0, 0 cmp r0, 0 beq _080E0EB6 _080E0E90: adds r0, r4, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080E0EB4 ldr r0, _080E0EB0 adds r0, r4, r0 ldrb r2, [r0] b _080E0EB6 .align 2, 0 _080E0EB0: .4byte 0x02024be0 _080E0EB4: movs r2, 0xFF _080E0EB6: cmp r2, 0xFF beq _080E0ED2 ldr r1, _080E0EE0 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x5] lsrs r0, 4 adds r0, 0x10 ldr r1, _080E0EE4 ldrb r1, [r1, 0x2] bl sub_8079108 _080E0ED2: adds r0, r5, 0 bl move_anim_task_del pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E0EE0: .4byte 0x02020004 _080E0EE4: .4byte 0x03004b00 thumb_func_end sub_80E0E24 thumb_func_start sub_80E0EE8 sub_80E0EE8: @ 80E0EE8 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r2, _080E0F14 ldrb r0, [r2] cmp r0, 0x1 bhi _080E0EFC ldr r1, _080E0F18 movs r0, 0 strh r0, [r1, 0xE] _080E0EFC: ldrb r0, [r2] cmp r0, 0x2 bne _080E0F08 ldr r1, _080E0F18 movs r0, 0x1 strh r0, [r1, 0xE] _080E0F08: adds r0, r3, 0 bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _080E0F14: .4byte 0x0202f7c4 _080E0F18: .4byte 0x03004b00 thumb_func_end sub_80E0EE8 thumb_func_start sub_80E0F1C sub_80E0F1C: @ 80E0F1C push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080E0F74 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] movs r0, 0x14 strh r0, [r4, 0x2E] ldr r5, _080E0F78 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] ldr r0, _080E0F7C strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC ldr r0, _080E0F80 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E0F74: .4byte 0x0202f7c8 _080E0F78: .4byte 0x0202f7c9 _080E0F7C: .4byte 0x0000ffd8 _080E0F80: .4byte sub_80E0F84 thumb_func_end sub_80E0F1C thumb_func_start sub_80E0F84 sub_80E0F84: @ 80E0F84 push {r4,r5,lr} adds r5, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080E0FD8 ldrh r0, [r5, 0x24] ldrh r1, [r5, 0x20] adds r0, r1 movs r1, 0 strh r0, [r5, 0x20] ldrh r0, [r5, 0x26] ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] strh r1, [r5, 0x26] strh r1, [r5, 0x24] movs r0, 0x14 strh r0, [r5, 0x2E] ldr r4, _080E0FE0 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] movs r0, 0x28 strh r0, [r5, 0x38] adds r0, r5, 0 bl sub_80786EC ldr r0, _080E0FE4 str r0, [r5, 0x1C] _080E0FD8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E0FE0: .4byte 0x0202f7c8 _080E0FE4: .4byte sub_80E0FE8 thumb_func_end sub_80E0F84 thumb_func_start sub_80E0FE8 sub_80E0FE8: @ 80E0FE8 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080E0FFC adds r0, r4, 0 bl move_anim_8072740 _080E0FFC: pop {r4} pop {r0} bx r0 thumb_func_end sub_80E0FE8 thumb_func_start sub_80E1004 sub_80E1004: @ 80E1004 push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x1 bl sub_8078764 ldr r0, _080E1064 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080E1024 ldr r1, _080E1068 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080E1024: ldr r4, _080E1068 ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] ldr r5, _080E106C ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] adds r0, r1 strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] adds r0, r4 strh r0, [r6, 0x36] ldr r0, _080E1070 str r0, [r6, 0x1C] ldr r1, _080E1074 adds r0, r6, 0 bl oamt_set_x3A_32 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E1064: .4byte 0x0202f7c8 _080E1068: .4byte 0x03004b00 _080E106C: .4byte 0x0202f7c9 _080E1070: .4byte sub_8078B34 _080E1074: .4byte move_anim_8072740 thumb_func_end sub_80E1004 thumb_func_start sub_80E1078 sub_80E1078: @ 80E1078 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r4, _080E10F8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077EE4 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldrb r0, [r4] movs r1, 0x3 bl sub_8077EE4 lsls r0, 24 lsrs r7, r0, 24 bl Random movs r4, 0x1F adds r5, r4, 0 ands r5, r0 bl Random ands r4, r0 adds r1, r5, 0 cmp r1, 0x10 ble _080E10C0 movs r0, 0x10 subs r0, r1 lsls r0, 16 lsrs r5, r0, 16 _080E10C0: lsls r0, r4, 16 asrs r1, r0, 16 cmp r1, 0x10 ble _080E10D0 movs r0, 0x10 subs r0, r1 lsls r0, 16 lsrs r4, r0, 16 _080E10D0: ldr r0, _080E10FC ldrh r0, [r0, 0x4] strh r0, [r6, 0x2E] mov r1, r8 adds r0, r1, r5 strh r0, [r6, 0x32] adds r0, r7, r4 strh r0, [r6, 0x36] ldr r0, _080E1100 str r0, [r6, 0x1C] ldr r1, _080E1104 adds r0, r6, 0 bl oamt_set_x3A_32 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E10F8: .4byte 0x0202f7c9 _080E10FC: .4byte 0x03004b00 _080E1100: .4byte sub_8078B34 _080E1104: .4byte move_anim_8074EE0 thumb_func_end sub_80E1078 thumb_func_start sub_80E1108 sub_80E1108: @ 80E1108 push {r4-r6,lr} adds r5, r0, 0 ldrh r2, [r5, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x1 ldr r3, _080E1168 adds r0, r3, 0 ands r1, r0 ldr r0, _080E116C ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] ldr r6, _080E1170 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _080E117C ldr r4, _080E1174 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r2, [r6, 0x2] adds r0, r2 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r3, [r6, 0x4] adds r0, r3 strh r0, [r5, 0x22] movs r1, 0x2 ldrsh r0, [r6, r1] movs r2, 0x1 negs r2, r2 adds r1, r2, 0 cmp r0, 0 ble _080E1162 movs r1, 0x1 _080E1162: strh r1, [r5, 0x2E] ldr r0, _080E1178 b _080E118A .align 2, 0 _080E1168: .4byte 0x000003ff _080E116C: .4byte 0xfffffc00 _080E1170: .4byte 0x03004b00 _080E1174: .4byte 0x0202f7c8 _080E1178: .4byte sub_80E1198 _080E117C: ldrh r0, [r6, 0x2] strh r0, [r5, 0x20] ldrh r0, [r6, 0x4] strh r0, [r5, 0x22] negs r0, r0 strh r0, [r5, 0x26] ldr r0, _080E1194 _080E118A: str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E1194: .4byte sub_80E11D4 thumb_func_end sub_80E1108 thumb_func_start sub_80E1198 sub_80E1198: @ 80E1198 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080E11B6 movs r0, 0 strh r0, [r2, 0x30] ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x20] adds r0, r1 strh r0, [r2, 0x20] _080E11B6: ldrh r0, [r2, 0x22] subs r0, 0x4 strh r0, [r2, 0x22] lsls r0, 16 asrs r0, 16 movs r1, 0x4 negs r1, r1 cmp r0, r1 bge _080E11CE adds r0, r2, 0 bl move_anim_8072740 _080E11CE: pop {r0} bx r0 thumb_func_end sub_80E1198 thumb_func_start sub_80E11D4 sub_80E11D4: @ 80E11D4 push {lr} adds r3, r0, 0 movs r0, 0x2E ldrsh r1, [r3, r0] cmp r1, 0 beq _080E11E6 cmp r1, 0x1 beq _080E11FC b _080E123E _080E11E6: ldrh r0, [r3, 0x26] adds r0, 0x4 strh r0, [r3, 0x26] lsls r0, 16 cmp r0, 0 blt _080E123E strh r1, [r3, 0x26] ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] b _080E123E _080E11FC: ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 cmp r0, 0 ble _080E123E movs r0, 0 strh r0, [r3, 0x30] movs r1, 0x3E adds r1, r3 mov r12, r1 ldrb r2, [r1] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrh r0, [r3, 0x32] adds r0, 0x1 strh r0, [r3, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _080E123E adds r0, r3, 0 bl move_anim_8072740 _080E123E: pop {r0} bx r0 thumb_func_end sub_80E11D4 thumb_func_start sub_80E1244 sub_80E1244: @ 80E1244 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080E1264 adds r1, r0, r1 ldr r0, _080E1268 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0 bne _080E1270 ldr r0, _080E126C b _080E1272 .align 2, 0 _080E1264: .4byte 0x03004b20 _080E1268: .4byte 0x03004b00 _080E126C: .4byte sub_80E1284 _080E1270: ldr r0, _080E1280 _080E1272: str r0, [r1] ldr r1, [r1] adds r0, r2, 0 bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _080E1280: .4byte sub_80E143C thumb_func_end sub_80E1244 thumb_func_start sub_80E1284 sub_80E1284: @ 80E1284 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080E12A8 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x4 bls _080E129E b _080E1432 _080E129E: lsls r0, 2 ldr r1, _080E12AC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E12A8: .4byte 0x03004b20 _080E12AC: .4byte _080E12B0 .align 2, 0 _080E12B0: .4byte _080E12C4 .4byte _080E134C .4byte _080E135C .4byte _080E1400 .4byte _080E1414 _080E12C4: movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] ldr r0, _080E12EC ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1E] cmp r0, 0x1 bne _080E12F8 ldr r0, _080E12F0 ldrh r0, [r0] strh r0, [r4, 0x20] ldr r0, _080E12F4 b _080E1300 .align 2, 0 _080E12EC: .4byte 0x0202f7c8 _080E12F0: .4byte 0x030042c0 _080E12F4: .4byte 0x030041b4 _080E12F8: ldr r0, _080E133C ldrh r0, [r0] strh r0, [r4, 0x20] ldr r0, _080E1340 _080E1300: ldrh r0, [r0] strh r0, [r4, 0x22] ldr r0, _080E1344 ldrb r0, [r0] bl sub_8077FC0 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 subs r1, 0x20 strh r1, [r4, 0x24] adds r0, 0x20 strh r0, [r4, 0x26] cmp r1, 0 bge _080E1322 movs r0, 0 strh r0, [r4, 0x24] _080E1322: ldr r2, _080E1348 movs r3, 0x1C ldrsh r1, [r4, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _080E1406 .align 2, 0 _080E133C: .4byte 0x03004288 _080E1340: .4byte 0x03004280 _080E1344: .4byte 0x0202f7c8 _080E1348: .4byte 0x02020004 _080E134C: ldrb r0, [r4, 0x1E] movs r2, 0x24 ldrsh r1, [r4, r2] movs r3, 0x26 ldrsh r2, [r4, r3] bl sub_80E1668 b _080E1406 _080E135C: ldrh r0, [r4, 0xC] adds r0, 0x6 movs r1, 0x7F ands r0, r1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080E137E movs r0, 0 strh r0, [r4, 0x10] ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] _080E137E: ldr r1, _080E13A0 movs r2, 0xC ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 ldrh r0, [r0] lsls r0, 16 asrs r0, 20 ldrh r3, [r4, 0xE] adds r2, r0, r3 strh r2, [r4, 0x12] movs r1, 0x1E ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080E13A8 ldr r1, _080E13A4 b _080E13AA .align 2, 0 _080E13A0: .4byte gSineTable _080E13A4: .4byte 0x030041b4 _080E13A8: ldr r1, _080E13CC _080E13AA: ldrh r0, [r4, 0x22] subs r0, r2 strh r0, [r1] movs r2, 0x12 ldrsh r0, [r4, r2] cmp r0, 0x3F ble _080E1432 ldrh r0, [r4, 0x24] movs r1, 0x78 subs r2, r1, r0 strh r2, [r4, 0x12] movs r3, 0x1E ldrsh r0, [r4, r3] cmp r0, 0x1 bne _080E13D4 ldr r1, _080E13D0 b _080E13D6 .align 2, 0 _080E13CC: .4byte 0x03004280 _080E13D0: .4byte 0x030041b4 _080E13D4: ldr r1, _080E13F8 _080E13D6: ldrh r0, [r4, 0x22] subs r0, r2 strh r0, [r1] ldr r2, _080E13FC movs r1, 0x1C ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r2, [r1, 0x20] movs r3, 0x88 lsls r3, 1 adds r0, r3, 0 subs r0, r2 strh r0, [r1, 0x24] b _080E1406 .align 2, 0 _080E13F8: .4byte 0x03004280 _080E13FC: .4byte 0x02020004 _080E1400: ldr r1, _080E1410 movs r0, 0x3 strb r0, [r1, 0x15] _080E1406: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080E1432 .align 2, 0 _080E1410: .4byte 0x03004dc0 _080E1414: adds r0, r2, 0 bl move_anim_task_del ldr r2, _080E1438 movs r0, 0x1C ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080E1432: pop {r4} pop {r0} bx r0 .align 2, 0 _080E1438: .4byte 0x02020004 thumb_func_end sub_80E1284 thumb_func_start sub_80E143C sub_80E143C: @ 80E143C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 ldr r2, _080E147C lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r3, r1, 0 adds r3, 0x3E ldrb r0, [r3] movs r2, 0x4 orrs r0, r2 strb r0, [r3] movs r4, 0 strh r4, [r1, 0x24] strh r4, [r1, 0x26] ldr r0, _080E1480 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080E1488 ldr r0, _080E1484 b _080E148A .align 2, 0 _080E147C: .4byte 0x02020004 _080E1480: .4byte 0x0202f7c8 _080E1484: .4byte 0x030041b4 _080E1488: ldr r0, _080E1498 _080E148A: strh r4, [r0] adds r0, r5, 0 bl move_anim_task_del pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E1498: .4byte 0x03004280 thumb_func_end sub_80E143C thumb_func_start sub_80E149C sub_80E149C: @ 80E149C push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080E14BC adds r1, r0, r1 ldr r0, _080E14C0 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0 bne _080E14C8 ldr r0, _080E14C4 b _080E14CA .align 2, 0 _080E14BC: .4byte 0x03004b20 _080E14C0: .4byte 0x03004b00 _080E14C4: .4byte sub_80E14DC _080E14C8: ldr r0, _080E14D8 _080E14CA: str r0, [r1] ldr r1, [r1] adds r0, r2, 0 bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _080E14D8: .4byte sub_80E1560 thumb_func_end sub_80E149C thumb_func_start sub_80E14DC sub_80E14DC: @ 80E14DC push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080E14FC adds r4, r0, r1 movs r0, 0x8 ldrsh r5, [r4, r0] cmp r5, 0 beq _080E1500 cmp r5, 0x1 beq _080E1554 b _080E155A .align 2, 0 _080E14FC: .4byte 0x03004b20 _080E1500: movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] ldr r3, _080E1550 movs r0, 0x1C ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] movs r0, 0x1C ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r5, [r0, 0x24] movs r1, 0x1C ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrh r2, [r1, 0x22] movs r0, 0xA0 subs r0, r2 strh r0, [r1, 0x26] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080E155A .align 2, 0 _080E1550: .4byte 0x02020004 _080E1554: adds r0, r2, 0 bl move_anim_task_del _080E155A: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80E14DC thumb_func_start sub_80E1560 sub_80E1560: @ 80E1560 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080E1584 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x4 bhi _080E1662 lsls r0, 2 ldr r1, _080E1588 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E1584: .4byte 0x03004b20 _080E1588: .4byte _080E158C .align 2, 0 _080E158C: .4byte _080E15A0 .4byte _080E15F4 .4byte _080E1602 .4byte _080E161C .4byte _080E165C _080E15A0: movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] ldr r0, _080E15C4 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1E] cmp r0, 0x1 bne _080E15CC ldr r0, _080E15C8 b _080E15CE .align 2, 0 _080E15C4: .4byte 0x0202f7c8 _080E15C8: .4byte 0x030042c0 _080E15CC: ldr r0, _080E15EC _080E15CE: ldrh r0, [r0] strh r0, [r4, 0x20] ldr r0, _080E15F0 ldrb r0, [r0] bl sub_8077FC0 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 subs r1, 0x20 strh r1, [r4, 0x24] adds r0, 0x20 strh r0, [r4, 0x26] b _080E164A .align 2, 0 _080E15EC: .4byte 0x03004288 _080E15F0: .4byte 0x0202f7c8 _080E15F4: ldrb r0, [r4, 0x1E] movs r1, 0x26 ldrsh r2, [r4, r1] movs r1, 0 bl sub_80E1668 b _080E164A _080E1602: ldr r2, _080E1618 movs r0, 0x1C ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x60 strh r1, [r0, 0x26] b _080E164A .align 2, 0 _080E1618: .4byte 0x02020004 _080E161C: ldr r2, _080E1654 movs r0, 0x1C ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] subs r1, 0x8 strh r1, [r0, 0x26] movs r0, 0x1C ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x26 ldrsh r0, [r0, r1] cmp r0, 0 bne _080E1662 ldr r1, _080E1658 movs r0, 0x3 strb r0, [r1, 0x15] _080E164A: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080E1662 .align 2, 0 _080E1654: .4byte 0x02020004 _080E1658: .4byte 0x03004dc0 _080E165C: adds r0, r2, 0 bl move_anim_task_del _080E1662: pop {r4} pop {r0} bx r0 thumb_func_end sub_80E1560 thumb_func_start sub_80E1668 sub_80E1668: @ 80E1668 push {r4-r6,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r4, r2, 16 cmp r0, 0x1 bne _080E168C ldr r0, _080E1684 ldrh r3, [r0] ldr r0, _080E1688 b _080E1692 .align 2, 0 _080E1684: .4byte 0x030042c0 _080E1688: .4byte REG_BG1HOFS _080E168C: ldr r0, _080E1718 ldrh r3, [r0] ldr r0, _080E171C _080E1692: str r0, [sp] lsls r0, r1, 16 cmp r0, 0 bge _080E169C movs r1, 0 _080E169C: lsls r2, r1, 16 lsls r0, r4, 16 asrs r4, r0, 16 cmp r2, r0 bge _080E16C8 ldr r5, _080E1720 movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 _080E16AE: asrs r2, 16 lsls r1, r2, 1 adds r0, r1, r5 strh r3, [r0] adds r1, r6 strh r3, [r1] adds r2, 0x1 lsls r2, 16 lsrs r1, r2, 16 lsls r2, r1, 16 asrs r0, r2, 16 cmp r0, r4 blt _080E16AE _080E16C8: lsls r1, 16 asrs r0, r1, 16 cmp r0, 0x9F bgt _080E16F6 ldr r4, _080E1720 lsls r0, r3, 16 asrs r0, 16 adds r3, r0, 0 adds r3, 0xF0 movs r0, 0xF0 lsls r0, 3 adds r5, r4, r0 _080E16E0: asrs r2, r1, 16 lsls r1, r2, 1 adds r0, r1, r4 strh r3, [r0] adds r1, r5 strh r3, [r1] adds r2, 0x1 lsls r1, r2, 16 asrs r0, r1, 16 cmp r0, 0x9F ble _080E16E0 _080E16F6: ldr r0, _080E1724 str r0, [sp, 0x4] mov r1, sp movs r2, 0 movs r0, 0x1 strb r0, [r1, 0x8] mov r0, sp strb r2, [r0, 0x9] ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl sub_80895F8 add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E1718: .4byte 0x03004288 _080E171C: .4byte REG_BG2HOFS _080E1720: .4byte 0x03004de0 _080E1724: .4byte 0xa2600001 thumb_func_end sub_80E1668 thumb_func_start sub_80E1728 sub_80E1728: @ 80E1728 push {r4-r7,lr} adds r5, r0, 0 ldr r0, _080E173C movs r2, 0 ldrsh r1, [r0, r2] adds r7, r0, 0 cmp r1, 0 bne _080E1744 ldr r0, _080E1740 b _080E1746 .align 2, 0 _080E173C: .4byte 0x03004b00 _080E1740: .4byte 0x0202f7c8 _080E1744: ldr r0, _080E17A8 _080E1746: ldrb r4, [r0] movs r6, 0x18 adds r1, r7, 0 movs r2, 0x2 ldrsh r0, [r1, r2] cmp r0, 0x1 bne _080E1762 negs r0, r6 lsls r0, 16 lsrs r6, r0, 16 movs r2, 0x4 ldrsh r0, [r1, r2] negs r0, r0 strh r0, [r1, 0x4] _080E1762: adds r0, r4, 0 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r6 strh r0, [r5, 0x20] adds r0, r4, 0 bl sub_8077FC0 lsls r0, 24 lsrs r0, 24 adds r0, 0x1E strh r0, [r5, 0x22] ldrh r1, [r7, 0xA] strh r1, [r5, 0x2E] ldrh r1, [r7, 0x4] ldrh r2, [r5, 0x20] adds r1, r2 strh r1, [r5, 0x32] ldrh r1, [r7, 0x6] adds r0, r1 strh r0, [r5, 0x36] ldrh r0, [r7, 0x8] strh r0, [r5, 0x38] adds r0, r5, 0 bl sub_80786EC ldr r0, _080E17AC str r0, [r5, 0x1C] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E17A8: .4byte 0x0202f7c9 _080E17AC: .4byte sub_80E17B0 thumb_func_end sub_80E1728 thumb_func_start sub_80E17B0 sub_80E17B0: @ 80E17B0 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _080E17C4 adds r0, r4, 0 bl move_anim_8072740 _080E17C4: pop {r4} pop {r0} bx r0 thumb_func_end sub_80E17B0 thumb_func_start sub_80E17CC sub_80E17CC: @ 80E17CC push {r4-r6,lr} adds r6, r0, 0 ldr r0, _080E17E0 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080E17E8 ldr r0, _080E17E4 b _080E17EA .align 2, 0 _080E17E0: .4byte 0x03004b00 _080E17E4: .4byte 0x0202f7c8 _080E17E8: ldr r0, _080E1848 _080E17EA: ldrb r5, [r0] adds r0, r5, 0 movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldr r2, _080E184C adds r0, r2 ldr r4, _080E1850 movs r3, 0x2 ldrsh r1, [r4, r3] lsls r1, 5 adds r0, r1 strh r0, [r6, 0x20] adds r0, r5, 0 bl sub_8077FC0 lsls r0, 24 lsrs r0, 24 adds r0, 0x20 strh r0, [r6, 0x22] ldrh r2, [r6, 0x4] lsls r1, r2, 22 lsrs r1, 22 movs r3, 0x2 ldrsh r0, [r4, r3] lsls r0, 3 adds r1, r0 ldr r3, _080E1854 adds r0, r3, 0 ands r1, r0 ldr r0, _080E1858 ands r0, r2 orrs r0, r1 strh r0, [r6, 0x4] ldr r1, _080E185C adds r0, r6, 0 bl oamt_set_x3A_32 ldrh r0, [r4, 0x4] strh r0, [r6, 0x2E] ldr r0, _080E1860 str r0, [r6, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E1848: .4byte 0x0202f7c9 _080E184C: .4byte 0x0000fff0 _080E1850: .4byte 0x03004b00 _080E1854: .4byte 0x000003ff _080E1858: .4byte 0xfffffc00 _080E185C: .4byte move_anim_8072740 _080E1860: .4byte sub_80782D8 thumb_func_end sub_80E17CC thumb_func_start sub_80E1864 sub_80E1864: @ 80E1864 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080E1888 adds r4, r0, r1 ldr r0, _080E188C ldrh r2, [r0, 0x2] movs r3, 0x2 ldrsh r1, [r0, r3] adds r6, r0, 0 cmp r1, 0 beq _080E1890 adds r0, r2, 0x3 b _080E189C .align 2, 0 _080E1888: .4byte 0x03004b20 _080E188C: .4byte 0x03004b00 _080E1890: ldr r0, _080E18BC ldrh r0, [r0] movs r1, 0xA bl __udivsi3 adds r0, 0x3 _080E189C: strh r0, [r4, 0x26] strh r0, [r4, 0x24] adds r1, r6, 0 ldrh r0, [r1, 0x4] strh r0, [r4, 0xE] movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0x4 beq _080E18C8 cmp r0, 0x5 bne _080E1908 ldr r0, _080E18C0 ldrh r0, [r0] strh r0, [r4, 0x22] ldr r0, _080E18C4 b _080E1926 .align 2, 0 _080E18BC: .4byte 0x0202f7bc _080E18C0: .4byte 0x030041b0 _080E18C4: .4byte sub_80E1934 _080E18C8: movs r0, 0 strh r0, [r4, 0x22] movs r5, 0 _080E18CE: lsls r0, r5, 24 lsrs r0, 24 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080E18F8 movs r3, 0x22 ldrsh r0, [r4, r3] adds r0, 0x9 lsls r0, 1 adds r1, r4, 0 adds r1, 0x8 adds r1, r0 ldr r0, _080E1904 adds r0, r5, r0 ldrb r0, [r0] strh r0, [r1] ldrh r0, [r4, 0x22] adds r0, 0x1 strh r0, [r4, 0x22] _080E18F8: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3 bls _080E18CE b _080E1924 .align 2, 0 _080E1904: .4byte 0x02024be0 _080E1908: ldrb r0, [r6] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1A] cmp r0, 0xFF bne _080E1920 adds r0, r5, 0 bl move_anim_task_del b _080E1928 _080E1920: movs r0, 0x1 strh r0, [r4, 0x22] _080E1924: ldr r0, _080E1930 _080E1926: str r0, [r4] _080E1928: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E1930: .4byte sub_80E1A2C thumb_func_end sub_80E1864 thumb_func_start sub_80E1934 sub_80E1934: @ 80E1934 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080E1958 adds r3, r0, r1 movs r0, 0x8 ldrsh r1, [r3, r0] cmp r1, 0x1 beq _080E19B8 cmp r1, 0x1 bgt _080E195C cmp r1, 0 beq _080E1962 b _080E1A24 .align 2, 0 _080E1958: .4byte 0x03004b20 _080E195C: cmp r1, 0x2 beq _080E1A18 b _080E1A24 _080E1962: ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080E1A24 strh r1, [r3, 0xA] ldrh r1, [r3, 0xC] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080E198C ldr r1, _080E1988 ldrh r0, [r3, 0x26] ldrh r2, [r3, 0x22] adds r0, r2 strh r0, [r1] b _080E1996 .align 2, 0 _080E1988: .4byte 0x030041b0 _080E198C: ldr r0, _080E19B4 ldrh r1, [r3, 0x22] ldrh r2, [r3, 0x26] subs r1, r2 strh r1, [r0] _080E1996: ldrh r0, [r3, 0xC] adds r0, 0x1 strh r0, [r3, 0xC] lsls r0, 16 asrs r0, 16 movs r2, 0xE ldrsh r1, [r3, r2] cmp r0, r1 bne _080E1A24 movs r0, 0 strh r0, [r3, 0xC] ldrh r0, [r3, 0x24] subs r0, 0x1 strh r0, [r3, 0x24] b _080E1A0C .align 2, 0 _080E19B4: .4byte 0x030041b0 _080E19B8: ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080E1A24 movs r0, 0 strh r0, [r3, 0xA] ldrh r0, [r3, 0xC] ands r1, r0 cmp r1, 0 bne _080E19E4 ldr r1, _080E19E0 ldrh r0, [r3, 0x24] ldrh r2, [r3, 0x22] adds r0, r2 strh r0, [r1] b _080E19EE .align 2, 0 _080E19E0: .4byte 0x030041b0 _080E19E4: ldr r0, _080E1A14 ldrh r1, [r3, 0x22] ldrh r2, [r3, 0x24] subs r1, r2 strh r1, [r0] _080E19EE: ldrh r0, [r3, 0xC] adds r0, 0x1 strh r0, [r3, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080E1A24 movs r0, 0 strh r0, [r3, 0xC] ldrh r0, [r3, 0x24] subs r0, 0x1 strh r0, [r3, 0x24] lsls r0, 16 cmp r0, 0 bne _080E1A24 _080E1A0C: ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] b _080E1A24 .align 2, 0 _080E1A14: .4byte 0x030041b0 _080E1A18: ldr r1, _080E1A28 ldrh r0, [r3, 0x22] strh r0, [r1] adds r0, r2, 0 bl move_anim_task_del _080E1A24: pop {r0} bx r0 .align 2, 0 _080E1A28: .4byte 0x030041b0 thumb_func_end sub_80E1934 thumb_func_start sub_80E1A2C sub_80E1A2C: @ 80E1A2C push {r4-r7,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 ldr r1, _080E1A50 adds r4, r0, r1 movs r0, 0x8 ldrsh r5, [r4, r0] cmp r5, 0x1 beq _080E1A8C cmp r5, 0x1 bgt _080E1A54 cmp r5, 0 beq _080E1A5A b _080E1B06 .align 2, 0 _080E1A50: .4byte 0x03004b20 _080E1A54: cmp r5, 0x2 beq _080E1AC8 b _080E1B06 _080E1A5A: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080E1B06 strh r5, [r4, 0xA] adds r0, r4, 0 bl sub_80E1B10 ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 movs r2, 0xE ldrsh r1, [r4, r2] cmp r0, r1 bne _080E1B06 strh r5, [r4, 0xC] ldrh r0, [r4, 0x24] subs r0, 0x1 strh r0, [r4, 0x24] b _080E1AC0 _080E1A8C: ldrh r0, [r4, 0xA] adds r0, 0x1 movs r5, 0 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080E1B06 strh r5, [r4, 0xA] adds r0, r4, 0 bl sub_80E1B10 ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080E1B06 strh r5, [r4, 0xC] ldrh r0, [r4, 0x24] subs r0, 0x1 strh r0, [r4, 0x24] lsls r0, 16 cmp r0, 0 bne _080E1B06 _080E1AC0: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080E1B06 _080E1AC8: movs r2, 0 movs r7, 0x22 ldrsh r0, [r4, r7] cmp r2, r0 bge _080E1B00 ldr r0, _080E1B0C mov r12, r0 adds r5, r4, 0 adds r5, 0x8 movs r6, 0 _080E1ADC: adds r0, r2, 0 adds r0, 0x9 lsls r0, 1 adds r0, r5, r0 movs r7, 0 ldrsh r1, [r0, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r12 strh r6, [r0, 0x24] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 movs r1, 0x22 ldrsh r0, [r4, r1] cmp r2, r0 blt _080E1ADC _080E1B00: adds r0, r3, 0 bl move_anim_task_del _080E1B06: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E1B0C: .4byte 0x02020004 thumb_func_end sub_80E1A2C thumb_func_start sub_80E1B10 sub_80E1B10: @ 80E1B10 push {r4-r7,lr} adds r3, r0, 0 ldrh r1, [r3, 0xC] movs r4, 0x1 adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _080E1B38 movs r0, 0x24 ldrsh r1, [r3, r0] lsrs r0, r1, 31 adds r1, r0 asrs r1, 1 ldrh r2, [r3, 0x24] adds r0, r4, 0 ands r0, r2 adds r1, r0 lsls r1, 16 lsrs r4, r1, 16 b _080E1B48 _080E1B38: movs r1, 0x24 ldrsh r0, [r3, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 negs r0, r0 lsls r0, 16 lsrs r4, r0, 16 _080E1B48: movs r2, 0 movs r7, 0x22 ldrsh r0, [r3, r7] cmp r2, r0 bge _080E1B7C ldr r6, _080E1B84 adds r5, r3, 0 adds r5, 0x8 _080E1B58: adds r0, r2, 0 adds r0, 0x9 lsls r0, 1 adds r0, r5, r0 movs r7, 0 ldrsh r1, [r0, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r4, [r0, 0x24] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 movs r1, 0x22 ldrsh r0, [r3, r1] cmp r2, r0 blt _080E1B58 _080E1B7C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E1B84: .4byte 0x02020004 thumb_func_end sub_80E1B10 thumb_func_start sub_80E1B88 sub_80E1B88: @ 80E1B88 push {lr} lsls r0, 24 lsrs r1, r0, 24 ldr r3, _080E1BA8 movs r2, 0 ldr r0, _080E1BAC ldrh r0, [r0] cmp r0, 0x63 bls _080E1B9C movs r2, 0x1 _080E1B9C: strh r2, [r3, 0x1E] adds r0, r1, 0 bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _080E1BA8: .4byte 0x03004b00 _080E1BAC: .4byte 0x0202f7bc thumb_func_end sub_80E1B88 thumb_func_start sub_80E1BB0 sub_80E1BB0: @ 80E1BB0 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r2, _080E1BC8 ldrh r1, [r2] movs r0, 0x1 ands r0, r1 adds r6, r2, 0 cmp r0, 0 beq _080E1BD0 ldr r0, _080E1BCC b _080E1BD2 .align 2, 0 _080E1BC8: .4byte 0x03004b00 _080E1BCC: .4byte 0x0202f7c9 _080E1BD0: ldr r0, _080E1C40 _080E1BD2: ldrb r0, [r0] adds r5, r0, 0 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0x1 ble _080E1BE2 movs r0, 0x2 eors r5, r0 _080E1BE2: ldr r0, _080E1C44 ldrb r1, [r6, 0x2] bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080E1C48 adds r4, r0 adds r0, r5, 0 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 movs r1, 0x20 subs r1, r0 ldr r2, _080E1C4C adds r0, r2, 0 ands r1, r0 strh r1, [r4, 0xA] adds r0, r5, 0 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 movs r1, 0x40 subs r1, r0 movs r0, 0xFF ands r1, r0 strh r1, [r4, 0xC] ldr r2, _080E1C50 ldrh r0, [r4, 0xA] strh r0, [r2] ldr r0, _080E1C54 strh r1, [r0] ldrh r0, [r6, 0x4] strh r0, [r4, 0xE] adds r0, r7, 0 bl move_anim_task_del pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E1C40: .4byte 0x0202f7c8 _080E1C44: .4byte sub_80E1C58 _080E1C48: .4byte 0x03004b20 _080E1C4C: .4byte 0x000001ff _080E1C50: .4byte 0x030041b0 _080E1C54: .4byte 0x030041b8 thumb_func_end sub_80E1BB0 thumb_func_start sub_80E1C58 sub_80E1C58: @ 80E1C58 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 ldr r1, _080E1C88 adds r2, r0, r1 ldr r0, _080E1C8C movs r4, 0xE ldrsh r1, [r0, r4] movs r4, 0xE ldrsh r0, [r2, r4] cmp r1, r0 bne _080E1C98 ldr r0, _080E1C90 movs r1, 0 strh r1, [r0] ldr r0, _080E1C94 strh r1, [r0] adds r0, r3, 0 bl DestroyTask b _080E1CA4 .align 2, 0 _080E1C88: .4byte 0x03004b20 _080E1C8C: .4byte 0x03004b00 _080E1C90: .4byte 0x030041b0 _080E1C94: .4byte 0x030041b8 _080E1C98: ldr r1, _080E1CAC ldrh r0, [r2, 0xA] strh r0, [r1] ldr r1, _080E1CB0 ldrh r0, [r2, 0xC] strh r0, [r1] _080E1CA4: pop {r4} pop {r0} bx r0 .align 2, 0 _080E1CAC: .4byte 0x030041b0 _080E1CB0: .4byte 0x030041b8 thumb_func_end sub_80E1C58 thumb_func_start sub_80E1CB4 sub_80E1CB4: @ 80E1CB4 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080E1CEC ldrh r0, [r5] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] ldr r0, _080E1CF0 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _080E1CF4 ldrh r0, [r5, 0x6] negs r0, r0 strh r0, [r4, 0x30] movs r0, 0x1 strh r0, [r4, 0x36] b _080E1D02 .align 2, 0 _080E1CEC: .4byte 0x03004b00 _080E1CF0: .4byte 0x0202f7c8 _080E1CF4: ldrh r0, [r5, 0x6] strh r0, [r4, 0x30] strh r1, [r4, 0x36] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim _080E1D02: ldr r0, _080E1D18 ldrh r0, [r0, 0x8] strh r0, [r4, 0x34] ldr r1, _080E1D1C str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E1D18: .4byte 0x03004b00 _080E1D1C: .4byte sub_80E1D20 thumb_func_end sub_80E1CB4 thumb_func_start sub_80E1D20 sub_80E1D20: @ 80E1D20 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] movs r1, 0x1E bl cosine strh r0, [r4, 0x24] movs r2, 0x2E ldrsh r0, [r4, r2] movs r1, 0xA bl sine strh r0, [r4, 0x26] ldrh r0, [r4, 0x2E] cmp r0, 0x7F bhi _080E1D52 ldrb r0, [r4, 0x5] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4, 0x5] b _080E1D5A _080E1D52: ldrb r0, [r4, 0x5] movs r1, 0xC orrs r0, r1 strb r0, [r4, 0x5] _080E1D5A: ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x2E] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 movs r2, 0x34 ldrsh r1, [r4, r2] cmp r0, r1 bne _080E1D7E adds r0, r4, 0 bl move_anim_8072740 _080E1D7E: pop {r4} pop {r0} bx r0 thumb_func_end sub_80E1D20 thumb_func_start sub_80E1D84 sub_80E1D84: @ 80E1D84 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 ldr r4, _080E1DBC movs r1, 0 ldrsh r0, [r4, r1] bl sub_80E1DC4 movs r1, 0x2 ldrsb r1, [r4, r1] ldrb r2, [r4, 0x4] ldrb r3, [r4, 0x6] ldrh r4, [r4, 0x8] str r4, [sp] bl BeginNormalPaletteFade adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080E1DC0 str r0, [r5, 0x1C] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E1DBC: .4byte 0x03004b00 _080E1DC0: .4byte sub_80E1E0C thumb_func_end sub_80E1D84 thumb_func_start sub_80E1DC4 sub_80E1DC4: @ 80E1DC4 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0xC lsls r0, 16 lsrs r0, 16 movs r4, 0x1 mov r8, r0 mov r1, r8 ands r1, r4 mov r8, r1 lsls r0, 16 asrs r1, r0, 17 ands r1, r4 asrs r2, r0, 18 ands r2, r4 asrs r3, r0, 19 ands r3, r4 asrs r6, r0, 20 ands r6, r4 asrs r5, r0, 21 ands r5, r4 asrs r0, 22 ands r0, r4 str r6, [sp] str r5, [sp, 0x4] str r0, [sp, 0x8] mov r0, r8 bl sub_80791A8 add sp, 0xC pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80E1DC4 thumb_func_start sub_80E1E0C sub_80E1E0C: @ 80E1E0C push {lr} adds r2, r0, 0 ldr r0, _080E1E28 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080E1E22 adds r0, r2, 0 bl move_anim_8072740 _080E1E22: pop {r0} bx r0 .align 2, 0 _080E1E28: .4byte 0x0202f388 thumb_func_end sub_80E1E0C thumb_func_start sub_80E1E2C sub_80E1E2C: @ 80E1E2C push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080E1E78 ldrh r0, [r4, 0x2] strh r0, [r5, 0x2E] strh r0, [r5, 0x30] ldrh r0, [r4, 0x4] strh r0, [r5, 0x32] ldrh r0, [r4, 0x6] strh r0, [r5, 0x34] ldrh r0, [r4, 0x8] strh r0, [r5, 0x36] ldrh r0, [r4, 0xA] strh r0, [r5, 0x38] ldrh r0, [r4, 0xC] strh r0, [r5, 0x3A] ldrh r0, [r4] strh r0, [r5, 0x3C] movs r1, 0x3C ldrsh r0, [r5, r1] bl sub_80E1DC4 ldrb r1, [r4, 0x8] ldrh r2, [r4, 0x6] bl BlendPalettes adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080E1E7C str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E1E78: .4byte 0x03004b00 _080E1E7C: .4byte sub_80E1E80 thumb_func_end sub_80E1E2C thumb_func_start sub_80E1E80 sub_80E1E80: @ 80E1E80 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x2E] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 ble _080E1E94 subs r0, r1, 0x1 strh r0, [r4, 0x2E] b _080E1F04 _080E1E94: ldr r0, _080E1EB0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080E1F04 movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 bne _080E1EB8 ldr r0, _080E1EB4 str r0, [r4, 0x1C] b _080E1F04 .align 2, 0 _080E1EB0: .4byte 0x0202f388 _080E1EB4: .4byte sub_80E1F0C _080E1EB8: movs r2, 0x3C ldrsh r0, [r4, r2] bl sub_80E1DC4 adds r3, r0, 0 ldrh r1, [r4, 0x30] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080E1EDE ldrh r1, [r4, 0x36] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x34] adds r0, r3, 0 bl BlendPalettes b _080E1EEC _080E1EDE: ldrh r1, [r4, 0x3A] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x38] adds r0, r3, 0 bl BlendPalettes _080E1EEC: ldrh r0, [r4, 0x30] movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 eors r0, r1 strh r0, [r4, 0x30] movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x32] subs r0, 0x1 strh r0, [r4, 0x32] _080E1F04: pop {r4} pop {r0} bx r0 thumb_func_end sub_80E1E80 thumb_func_start sub_80E1F0C sub_80E1F0C: @ 80E1F0C push {r4,lr} adds r4, r0, 0 ldr r0, _080E1F38 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080E1F32 movs r1, 0x3C ldrsh r0, [r4, r1] bl sub_80E1DC4 movs r1, 0 movs r2, 0 bl BlendPalettes adds r0, r4, 0 bl move_anim_8072740 _080E1F32: pop {r4} pop {r0} bx r0 .align 2, 0 _080E1F38: .4byte 0x0202f388 thumb_func_end sub_80E1F0C thumb_func_start sub_80E1F3C sub_80E1F3C: @ 80E1F3C push {r4,lr} adds r4, r0, 0 ldr r1, _080E1F80 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 movs r2, 0 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] strh r2, [r4, 0x2E] movs r0, 0xA strh r0, [r4, 0x30] movs r0, 0x8 strh r0, [r4, 0x32] movs r0, 0x28 strh r0, [r4, 0x34] movs r0, 0x70 strh r0, [r4, 0x36] strh r2, [r4, 0x38] ldr r1, _080E1F84 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r1, _080E1F88 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080E1F80: .4byte 0x03004b00 _080E1F84: .4byte move_anim_8074EE0 _080E1F88: .4byte sub_8078174 thumb_func_end sub_80E1F3C thumb_func_start sub_80E1F8C sub_80E1F8C: @ 80E1F8C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080E1FD0 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldr r3, _080E1FD4 ldrh r1, [r3] movs r5, 0 strh r1, [r4, 0x8] ldrh r1, [r3, 0x2] strh r1, [r4, 0xA] ldrh r1, [r3, 0x4] strh r1, [r4, 0xC] ldrh r1, [r3, 0x6] strh r1, [r4, 0xE] ldrh r2, [r3, 0x8] strh r2, [r4, 0x10] ldrh r1, [r3, 0xA] strh r1, [r4, 0x12] strh r5, [r4, 0x18] lsls r2, 24 lsrs r2, 24 movs r1, 0 bl sub_80E1FDC ldr r0, _080E1FD8 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E1FD0: .4byte 0x03004b20 _080E1FD4: .4byte 0x03004b00 _080E1FD8: .4byte sub_80E202C thumb_func_end sub_80E1F8C thumb_func_start sub_80E1FDC sub_80E1FDC: @ 80E1FDC push {r4-r6,lr} sub sp, 0x4 adds r5, r1, 0 adds r6, r2, 0 lsls r0, 24 lsrs r0, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 ldr r1, _080E2028 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r1, 0x8 ldrsh r0, [r4, r1] bl sub_80E1DC4 movs r1, 0xA ldrsb r1, [r4, r1] ldrh r2, [r4, 0x12] str r2, [sp] adds r2, r5, 0 adds r3, r6, 0 bl BeginNormalPaletteFade ldrh r0, [r4, 0xC] subs r0, 0x1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x18] movs r1, 0x1 eors r0, r1 strh r0, [r4, 0x18] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E2028: .4byte 0x03004b20 thumb_func_end sub_80E1FDC thumb_func_start sub_80E202C sub_80E202C: @ 80E202C push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 adds r4, r3, 0 ldr r0, _080E2064 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080E208E ldr r1, _080E2068 lsls r2, r3, 2 adds r0, r2, r3 lsls r0, 3 adds r3, r0, r1 movs r5, 0xC ldrsh r0, [r3, r5] adds r6, r1, 0 adds r5, r2, 0 cmp r0, 0 ble _080E2088 movs r1, 0x18 ldrsh r0, [r3, r1] cmp r0, 0 bne _080E206C ldrb r1, [r3, 0xE] ldrb r2, [r3, 0x10] b _080E2070 .align 2, 0 _080E2064: .4byte 0x0202f388 _080E2068: .4byte 0x03004b20 _080E206C: ldrb r1, [r3, 0x10] ldrb r2, [r3, 0xE] _080E2070: adds r0, r5, r4 lsls r0, 3 adds r0, r6 movs r3, 0xC ldrsh r0, [r0, r3] cmp r0, 0x1 bne _080E2080 movs r2, 0 _080E2080: adds r0, r4, 0 bl sub_80E1FDC b _080E208E _080E2088: adds r0, r4, 0 bl move_anim_task_del _080E208E: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80E202C thumb_func_start sub_80E2094 sub_80E2094: @ 80E2094 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080E20D8 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldr r3, _080E20DC ldrh r1, [r3] movs r5, 0 strh r1, [r4, 0x8] ldrh r1, [r3, 0x2] strh r1, [r4, 0xA] ldrh r1, [r3, 0x4] strh r1, [r4, 0xC] ldrh r1, [r3, 0x6] strh r1, [r4, 0xE] ldrh r2, [r3, 0x8] strh r2, [r4, 0x10] ldrh r1, [r3, 0xA] strh r1, [r4, 0x12] strh r5, [r4, 0x18] lsls r2, 24 lsrs r2, 24 movs r1, 0 bl sub_80E20E4 ldr r0, _080E20E0 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E20D8: .4byte 0x03004b20 _080E20DC: .4byte 0x03004b00 _080E20E0: .4byte sub_80E2140 thumb_func_end sub_80E2094 thumb_func_start sub_80E20E4 sub_80E20E4: @ 80E20E4 push {r4-r6,lr} sub sp, 0x4 adds r5, r1, 0 adds r6, r2, 0 lsls r0, 24 lsrs r0, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 ldr r1, _080E213C lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldrh r0, [r4, 0x8] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r0, 0x10 movs r2, 0x1 lsls r2, r0 movs r1, 0xA ldrsb r1, [r4, r1] ldrh r0, [r4, 0x12] str r0, [sp] adds r0, r2, 0 adds r2, r5, 0 adds r3, r6, 0 bl BeginNormalPaletteFade ldrh r0, [r4, 0xC] subs r0, 0x1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x18] movs r1, 0x1 eors r0, r1 strh r0, [r4, 0x18] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E213C: .4byte 0x03004b20 thumb_func_end sub_80E20E4 thumb_func_start sub_80E2140 sub_80E2140: @ 80E2140 push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 adds r4, r3, 0 ldr r0, _080E2178 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080E21A2 ldr r1, _080E217C lsls r2, r3, 2 adds r0, r2, r3 lsls r0, 3 adds r3, r0, r1 movs r5, 0xC ldrsh r0, [r3, r5] adds r6, r1, 0 adds r5, r2, 0 cmp r0, 0 ble _080E219C movs r1, 0x18 ldrsh r0, [r3, r1] cmp r0, 0 bne _080E2180 ldrb r1, [r3, 0xE] ldrb r2, [r3, 0x10] b _080E2184 .align 2, 0 _080E2178: .4byte 0x0202f388 _080E217C: .4byte 0x03004b20 _080E2180: ldrb r1, [r3, 0x10] ldrb r2, [r3, 0xE] _080E2184: adds r0, r5, r4 lsls r0, 3 adds r0, r6 movs r3, 0xC ldrsh r0, [r0, r3] cmp r0, 0x1 bne _080E2194 movs r2, 0 _080E2194: adds r0, r4, 0 bl sub_80E20E4 b _080E21A2 _080E219C: adds r0, r4, 0 bl move_anim_task_del _080E21A2: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80E2140 thumb_func_start sub_80E21A8 sub_80E21A8: @ 80E21A8 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r1, _080E2208 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldr r5, _080E220C ldrh r0, [r5, 0x2] strh r0, [r4, 0x8] ldrh r0, [r5, 0x2] strh r0, [r4, 0xA] ldrh r0, [r5, 0x4] strh r0, [r4, 0xC] ldrh r0, [r5, 0x6] strh r0, [r4, 0xE] ldrh r0, [r5, 0x8] strh r0, [r4, 0x10] ldrh r0, [r5, 0xA] strh r0, [r4, 0x12] ldrh r0, [r5, 0xC] strh r0, [r4, 0x14] ldrh r0, [r5] strh r0, [r4, 0x16] ldrh r0, [r5] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r0, 0x10 movs r1, 0x1 lsls r1, r0 ldrb r3, [r5, 0x8] ldrh r0, [r5, 0x6] str r0, [sp] adds r0, r1, 0 movs r1, 0 adds r2, r3, 0 bl BeginNormalPaletteFade ldr r0, _080E2210 str r0, [r4] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E2208: .4byte 0x03004b20 _080E220C: .4byte 0x03004b00 _080E2210: .4byte sub_80E2214 thumb_func_end sub_80E21A8 thumb_func_start sub_80E2214 sub_80E2214: @ 80E2214 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080E2238 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r1, [r4, 0x8] movs r2, 0x8 ldrsh r0, [r4, r2] cmp r0, 0 ble _080E223C subs r0, r1, 0x1 strh r0, [r4, 0x8] b _080E22C0 .align 2, 0 _080E2238: .4byte 0x03004b20 _080E223C: ldr r0, _080E2258 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080E22C0 movs r3, 0xC ldrsh r0, [r4, r3] cmp r0, 0 bne _080E2260 ldr r0, _080E225C str r0, [r4] b _080E22C0 .align 2, 0 _080E2258: .4byte 0x0202f388 _080E225C: .4byte sub_80E22CC _080E2260: ldrh r0, [r4, 0x16] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r0, 0x10 movs r2, 0x1 lsls r2, r0 ldrh r1, [r4, 0xA] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080E228E ldrb r3, [r4, 0x10] ldrh r0, [r4, 0xE] str r0, [sp] adds r0, r2, 0 movs r1, 0 adds r2, r3, 0 bl BeginNormalPaletteFade b _080E229E _080E228E: ldrb r3, [r4, 0x14] ldrh r0, [r4, 0x12] str r0, [sp] adds r0, r2, 0 movs r1, 0 adds r2, r3, 0 bl BeginNormalPaletteFade _080E229E: ldr r0, _080E22C8 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xA] movs r3, 0x80 lsls r3, 1 adds r2, r3, 0 eors r0, r2 strh r0, [r1, 0xA] movs r2, 0xFF ands r0, r2 strh r0, [r1, 0x8] ldrh r0, [r1, 0xC] subs r0, 0x1 strh r0, [r1, 0xC] _080E22C0: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E22C8: .4byte 0x03004b20 thumb_func_end sub_80E2214 thumb_func_start sub_80E22CC sub_80E22CC: @ 80E22CC push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E231C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _080E2312 ldr r1, _080E2320 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x16] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r0, 0x10 movs r1, 0x1 lsls r1, r0 str r5, [sp] adds r0, r1, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl BeginNormalPaletteFade adds r0, r4, 0 bl move_anim_task_del _080E2312: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E231C: .4byte 0x0202f388 _080E2320: .4byte 0x03004b20 thumb_func_end sub_80E22CC thumb_func_start sub_80E2324 sub_80E2324: @ 80E2324 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r2, 0 ldr r0, _080E239C ldrb r6, [r0] ldr r0, _080E23A0 ldrb r7, [r0] ldr r4, _080E23A4 ldrh r1, [r4] movs r5, 0x80 lsls r5, 1 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080E235E str r2, [sp] str r2, [sp, 0x4] str r2, [sp, 0x8] movs r0, 0x1 movs r1, 0 movs r3, 0 bl sub_80791A8 adds r2, r0, 0 _080E235E: ldrh r1, [r4, 0x2] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080E2370 movs r0, 0x80 lsls r0, 9 lsls r0, r6 orrs r2, r0 _080E2370: ldrh r1, [r4, 0x4] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080E2382 movs r0, 0x80 lsls r0, 9 lsls r0, r7 orrs r2, r0 _080E2382: adds r0, r2, 0 bl InvertPlttBuffer mov r0, r8 bl move_anim_task_del add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E239C: .4byte 0x0202f7c8 _080E23A0: .4byte 0x0202f7c9 _080E23A4: .4byte 0x03004b00 thumb_func_end sub_80E2324 thumb_func_start unref_sub_80E23A8 unref_sub_80E23A8: @ 80E23A8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r5, 0 ldr r1, _080E249C lsls r0, 2 add r0, r8 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bne _080E23EA ldr r1, _080E24A0 ldrh r0, [r1] strh r0, [r4, 0xC] ldrh r0, [r1, 0x2] strh r0, [r4, 0xE] ldrh r0, [r1, 0x4] strh r0, [r4, 0x10] ldrh r0, [r1, 0x6] strh r0, [r4, 0xA] ldrh r0, [r1, 0x8] strh r0, [r4, 0x12] ldrh r0, [r1, 0xA] strh r0, [r4, 0x14] ldrh r0, [r1, 0xC] strh r0, [r4, 0x16] _080E23EA: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] ldr r0, _080E24A4 ldrb r0, [r0] mov r9, r0 ldr r0, _080E24A8 ldrb r0, [r0] mov r10, r0 ldrh r1, [r4, 0xC] movs r7, 0x80 lsls r7, 1 adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _080E240C ldr r5, _080E24AC _080E240C: movs r6, 0x1 adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _080E243C ldr r2, _080E24B0 ldr r0, _080E24B4 add r0, r9 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x14 adds r0, r2 ldr r0, [r0] ldrh r0, [r0, 0x2] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r1, r6, 0 lsls r1, r0 lsls r1, 16 orrs r5, r1 _080E243C: ldrh r1, [r4, 0xE] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _080E2450 adds r0, r6, 0 mov r2, r9 lsls r0, r2 lsls r0, 16 orrs r5, r0 _080E2450: ldrh r1, [r4, 0x10] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _080E2464 adds r0, r6, 0 mov r1, r10 lsls r0, r1 lsls r0, 16 orrs r5, r0 _080E2464: movs r1, 0x12 ldrsb r1, [r4, r1] movs r2, 0x14 ldrsb r2, [r4, r2] movs r3, 0x16 ldrsb r3, [r4, r3] adds r0, r5, 0 bl TintPlttBuffer movs r2, 0x8 ldrsh r1, [r4, r2] movs r2, 0xA ldrsh r0, [r4, r2] cmp r1, r0 bne _080E248E adds r0, r5, 0 bl UnfadePlttBuffer mov r0, r8 bl move_anim_task_del _080E248E: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E249C: .4byte 0x03004b20 _080E24A0: .4byte 0x03004b00 _080E24A4: .4byte 0x0202f7c8 _080E24A8: .4byte 0x0202f7c9 _080E24AC: .4byte 0x0000ffff _080E24B0: .4byte 0x02020004 _080E24B4: .4byte 0x03004340 thumb_func_end unref_sub_80E23A8 thumb_func_start sub_80E24B8 sub_80E24B8: @ 80E24B8 push {r4,lr} adds r4, r0, 0 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r1, _080E24EC ldrh r0, [r1] negs r0, r0 strh r0, [r4, 0x2E] ldrh r0, [r1, 0x2] strh r0, [r4, 0x30] strh r0, [r4, 0x32] ldrh r0, [r1, 0x4] strh r0, [r4, 0x34] movs r2, 0x6 ldrsh r0, [r1, r2] cmp r0, 0x1 beq _080E2500 cmp r0, 0x1 bgt _080E24F0 cmp r0, 0 beq _080E24F6 b _080E2518 .align 2, 0 _080E24EC: .4byte 0x03004b00 _080E24F0: cmp r0, 0x2 beq _080E2508 b _080E2518 _080E24F6: ldr r1, _080E24FC b _080E250A .align 2, 0 _080E24FC: .4byte 0x030041b0 _080E2500: ldr r1, _080E2504 b _080E250A .align 2, 0 _080E2504: .4byte 0x030041b8 _080E2508: ldr r1, _080E2514 _080E250A: adds r0, r4, 0 bl oamt_set_x3A_32 b _080E2520 .align 2, 0 _080E2514: .4byte 0x030024d0 _080E2518: ldr r1, _080E2550 adds r0, r4, 0 bl oamt_set_x3A_32 _080E2520: movs r0, 0x3A ldrsh r1, [r4, r0] movs r2, 0x3C ldrsh r0, [r4, r2] lsls r0, 16 orrs r1, r0 ldr r0, [r1] strh r0, [r4, 0x36] ldr r0, _080E2554 ldrh r0, [r0, 0x6] strh r0, [r4, 0x38] subs r0, 0x2 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080E2544 bl sub_80E260C _080E2544: ldr r0, _080E2558 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080E2550: .4byte 0x030027e0 _080E2554: .4byte 0x03004b00 _080E2558: .4byte sub_80E255C thumb_func_end sub_80E24B8 thumb_func_start sub_80E255C sub_80E255C: @ 80E255C push {r4-r7,lr} adds r3, r0, 0 ldrh r1, [r3, 0x34] movs r2, 0x34 ldrsh r0, [r3, r2] cmp r0, 0 ble _080E25A0 subs r0, r1, 0x1 strh r0, [r3, 0x34] ldrh r1, [r3, 0x30] movs r2, 0x30 ldrsh r0, [r3, r2] cmp r0, 0 ble _080E257E subs r0, r1, 0x1 strh r0, [r3, 0x30] b _080E25FA _080E257E: ldrh r0, [r3, 0x32] strh r0, [r3, 0x30] movs r0, 0x3A ldrsh r1, [r3, r0] movs r2, 0x3C ldrsh r0, [r3, r2] lsls r0, 16 orrs r1, r0 movs r0, 0x2E ldrsh r2, [r3, r0] ldr r0, [r1] adds r0, r2 str r0, [r1] ldrh r0, [r3, 0x2E] negs r0, r0 strh r0, [r3, 0x2E] b _080E25FA _080E25A0: movs r2, 0x3A ldrsh r1, [r3, r2] movs r2, 0x3C ldrsh r0, [r3, r2] lsls r0, 16 orrs r1, r0 movs r2, 0x36 ldrsh r0, [r3, r2] str r0, [r1] ldrh r0, [r3, 0x38] subs r0, 0x2 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080E25F4 movs r4, 0 ldr r5, _080E2600 ldrb r0, [r5] cmp r4, r0 bcs _080E25F4 ldr r2, _080E2604 mov r12, r2 ldr r6, _080E2608 movs r7, 0x3 negs r7, r7 _080E25D2: adds r0, r4, r6 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r12 adds r1, 0x3E ldrb r2, [r1] adds r0, r7, 0 ands r0, r2 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r5] cmp r4, r0 bcc _080E25D2 _080E25F4: adds r0, r3, 0 bl move_anim_8072740 _080E25FA: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E2600: .4byte 0x02024a68 _080E2604: .4byte 0x02020004 _080E2608: .4byte 0x02024be0 thumb_func_end sub_80E255C thumb_func_start sub_80E260C sub_80E260C: @ 80E260C push {r4-r6,lr} ldr r6, _080E2680 ldr r4, _080E2684 ldr r5, _080E2688 ldrb r0, [r5] adds r0, r4 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x3 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] ldr r3, _080E268C ldrb r0, [r3] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] ldr r0, _080E2690 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0x2 bne _080E2694 ldrb r0, [r5] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x2 orrs r1, r2 strb r1, [r0] ldrb r0, [r3] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] b _080E26B0 .align 2, 0 _080E2680: .4byte 0x02020004 _080E2684: .4byte 0x02024be0 _080E2688: .4byte 0x0202f7c8 _080E268C: .4byte 0x0202f7c9 _080E2690: .4byte 0x03004b00 _080E2694: cmp r0, 0 bne _080E269C ldrb r0, [r5] b _080E269E _080E269C: ldrb r0, [r3] _080E269E: adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x2 _080E26B0: orrs r1, r2 strb r1, [r0] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80E260C thumb_func_start sub_80E26BC sub_80E26BC: @ 80E26BC push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080E26FC lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r2, r1 ldr r3, _080E2700 ldrh r1, [r3] strh r1, [r2, 0x8] ldrh r1, [r3, 0x2] strh r1, [r2, 0xA] ldrh r1, [r3, 0x4] strh r1, [r2, 0xC] ldrh r1, [r3, 0x6] strh r1, [r2, 0xE] ldrh r1, [r3, 0x6] strh r1, [r2, 0x18] ldr r4, _080E2704 ldrh r1, [r3] strh r1, [r4] ldr r4, _080E2708 ldrh r1, [r3, 0x2] strh r1, [r4] ldr r1, _080E270C str r1, [r2] bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080E26FC: .4byte 0x03004b20 _080E2700: .4byte 0x03004b00 _080E2704: .4byte 0x030041b0 _080E2708: .4byte 0x030041b8 _080E270C: .4byte sub_80E2710 thumb_func_end sub_80E26BC thumb_func_start sub_80E2710 sub_80E2710: @ 80E2710 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080E2740 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r1 ldrh r2, [r3, 0xE] movs r4, 0xE ldrsh r0, [r3, r4] mov r12, r1 cmp r0, 0 bne _080E2796 ldr r0, _080E2744 ldrh r2, [r0] movs r7, 0x8 ldrsh r1, [r3, r7] adds r6, r0, 0 cmp r2, r1 bne _080E2748 ldrh r0, [r3, 0x8] negs r0, r0 b _080E274A .align 2, 0 _080E2740: .4byte 0x03004b20 _080E2744: .4byte 0x030041b0 _080E2748: ldrh r0, [r3, 0x8] _080E274A: strh r0, [r6] ldr r2, _080E2768 ldrh r3, [r2] lsls r1, r5, 2 adds r0, r1, r5 lsls r0, 3 mov r7, r12 adds r4, r0, r7 movs r7, 0xA ldrsh r0, [r4, r7] cmn r3, r0 bne _080E276C movs r0, 0 b _080E2770 .align 2, 0 _080E2768: .4byte 0x030041b8 _080E276C: ldrh r0, [r4, 0xA] negs r0, r0 _080E2770: strh r0, [r2] adds r0, r1, r5 lsls r0, 3 add r0, r12 ldrh r1, [r0, 0x18] strh r1, [r0, 0xE] ldrh r1, [r0, 0xC] subs r1, 0x1 strh r1, [r0, 0xC] lsls r1, 16 asrs r1, 16 cmp r1, 0 bne _080E279A strh r1, [r6] strh r1, [r2] adds r0, r5, 0 bl move_anim_task_del b _080E279A _080E2796: subs r0, r2, 0x1 strh r0, [r3, 0xE] _080E279A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80E2710 thumb_func_start sub_80E27A0 sub_80E27A0: @ 80E27A0 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080E27C0 ldrb r1, [r4, 0x6] bl StartSpriteAffineAnim movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 bne _080E27C4 adds r0, r5, 0 movs r1, 0x1 bl sub_80787B0 b _080E27CC .align 2, 0 _080E27C0: .4byte 0x03004b00 _080E27C4: adds r0, r5, 0 movs r1, 0x1 bl sub_8078764 _080E27CC: ldr r0, _080E27E0 str r0, [r5, 0x1C] ldr r1, _080E27E4 adds r0, r5, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E27E0: .4byte sub_80785E4 _080E27E4: .4byte move_anim_8072740 thumb_func_end sub_80E27A0 thumb_func_start sub_80E27E8 sub_80E27E8: @ 80E27E8 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080E2808 ldrb r1, [r4, 0x6] bl StartSpriteAffineAnim movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 bne _080E280C adds r0, r5, 0 movs r1, 0x1 bl sub_80787B0 b _080E2814 .align 2, 0 _080E2808: .4byte 0x03004b00 _080E280C: adds r0, r5, 0 movs r1, 0x1 bl sub_8078764 _080E2814: ldr r0, _080E282C ldrh r0, [r0, 0x8] strh r0, [r5, 0x2E] ldr r0, _080E2830 str r0, [r5, 0x1C] ldr r1, _080E2834 adds r0, r5, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E282C: .4byte 0x03004b00 _080E2830: .4byte sub_80785E4 _080E2834: .4byte sub_80DA48C thumb_func_end sub_80E27E8 thumb_func_start sub_80E2838 sub_80E2838: @ 80E2838 push {r4,lr} adds r4, r0, 0 ldr r0, _080E2868 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080E285C bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E285C ldr r1, _080E286C ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] _080E285C: adds r0, r4, 0 bl sub_80E27A0 pop {r4} pop {r0} bx r0 .align 2, 0 _080E2868: .4byte 0x0202f7c8 _080E286C: .4byte 0x03004b00 thumb_func_end sub_80E2838 thumb_func_start sub_80E2870 sub_80E2870: @ 80E2870 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080E28A8 movs r0, 0x2 ldrsh r1, [r5, r0] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080E288C bl Random movs r1, 0x3 ands r1, r0 strh r1, [r5, 0x2] _080E288C: ldrb r1, [r5, 0x2] adds r0, r4, 0 bl StartSpriteAffineAnim movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0 bne _080E28AC adds r0, r4, 0 movs r1, 0 bl sub_80787B0 b _080E28B4 .align 2, 0 _080E28A8: .4byte 0x03004b00 _080E28AC: adds r0, r4, 0 movs r1, 0 bl sub_8078764 _080E28B4: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x30 bl __umodsi3 ldr r1, _080E28F8 adds r0, r1 ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x18 bl __umodsi3 ldr r1, _080E28FC adds r0, r1 ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldr r1, _080E2900 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080E2904 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E28F8: .4byte 0x0000ffe8 _080E28FC: .4byte 0x0000fff4 _080E2900: .4byte move_anim_8074EE0 _080E2904: .4byte sub_80785E4 thumb_func_end sub_80E2870 thumb_func_start sub_80E2908 sub_80E2908: @ 80E2908 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _080E2968 ldrb r0, [r5] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x2E] ldr r2, _080E296C movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x24] ldrh r0, [r0, 0x20] adds r1, r0 strh r1, [r4, 0x20] movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] ldrh r0, [r0, 0x22] adds r1, r0 strh r1, [r4, 0x22] ldrh r0, [r5, 0x2] strh r0, [r4, 0x24] ldrh r0, [r5, 0x4] strh r0, [r4, 0x26] ldrb r1, [r5, 0x6] adds r0, r4, 0 bl StartSpriteAffineAnim ldr r1, _080E2970 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080E2974 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E2968: .4byte 0x03004b00 _080E296C: .4byte 0x02020004 _080E2970: .4byte move_anim_8074EE0 _080E2974: .4byte sub_80785E4 thumb_func_end sub_80E2908 thumb_func_start sub_80E2978 sub_80E2978: @ 80E2978 push {r4,lr} adds r4, r0, 0 ldr r0, _080E2990 movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 bne _080E2994 adds r0, r4, 0 movs r1, 0x1 bl sub_80787B0 b _080E299C .align 2, 0 _080E2990: .4byte 0x03004b00 _080E2994: adds r0, r4, 0 movs r1, 0x1 bl sub_8078764 _080E299C: ldr r0, _080E29B4 ldrh r0, [r0, 0x6] strh r0, [r4, 0x2E] ldr r1, _080E29B8 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080E29BC str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080E29B4: .4byte 0x03004b00 _080E29B8: .4byte move_anim_8072740 _080E29BC: .4byte sub_80782D8 thumb_func_end sub_80E2978 thumb_func_start sub_80E29C0 sub_80E29C0: @ 80E29C0 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080E29E0 ldrb r1, [r4, 0x6] bl StartSpriteAffineAnim movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 bne _080E29E4 adds r0, r5, 0 movs r1, 0x1 bl sub_80787B0 b _080E29EC .align 2, 0 _080E29E0: .4byte 0x03004b00 _080E29E4: adds r0, r5, 0 movs r1, 0x1 bl sub_8078764 _080E29EC: ldr r0, _080E29F8 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E29F8: .4byte sub_80E29FC thumb_func_end sub_80E29C0 thumb_func_start sub_80E29FC sub_80E29FC: @ 80E29FC push {lr} adds r3, r0, 0 movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrh r0, [r3, 0x2E] adds r1, r0, 0x1 strh r1, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xC ble _080E2A32 adds r0, r3, 0 bl move_anim_8072740 _080E2A32: pop {r0} bx r0 thumb_func_end sub_80E29FC thumb_func_start sub_80E2A38 sub_80E2A38: @ 80E2A38 push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r4, _080E2A78 movs r1, 0 ldrsh r0, [r4, r1] bl sub_80E1DC4 adds r6, r0, 0 ldrh r3, [r4] lsls r3, 16 asrs r0, r3, 23 movs r4, 0x1 ands r0, r4 asrs r1, r3, 24 ands r1, r4 asrs r2, r3, 25 ands r2, r4 asrs r3, 26 ands r3, r4 bl sub_80792C0 orrs r6, r0 adds r0, r5, 0 adds r1, r6, 0 bl sub_80E2C8C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E2A78: .4byte 0x03004b00 thumb_func_end sub_80E2A38 thumb_func_start sub_80E2A7C sub_80E2A7C: @ 80E2A7C push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 mov r1, sp movs r0, 0xFF strb r0, [r1, 0x1] movs r0, 0x1 bl sub_80E1DC4 adds r5, r0, 0 ldr r0, _080E2AA8 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x7 bhi _080E2B26 lsls r0, 2 ldr r1, _080E2AAC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E2AA8: .4byte 0x03004b00 _080E2AAC: .4byte _080E2AB0 .align 2, 0 _080E2AB0: .4byte _080E2AD2 .4byte _080E2ADE .4byte _080E2AD0 .4byte _080E2ADC .4byte _080E2AEC .4byte _080E2B04 .4byte _080E2B0C .4byte _080E2B18 _080E2AD0: movs r5, 0 _080E2AD2: mov r0, sp ldr r1, _080E2AD8 b _080E2AE2 .align 2, 0 _080E2AD8: .4byte 0x0202f7c8 _080E2ADC: movs r5, 0 _080E2ADE: mov r0, sp ldr r1, _080E2AE8 _080E2AE2: ldrb r1, [r1] strb r1, [r0] b _080E2B26 .align 2, 0 _080E2AE8: .4byte 0x0202f7c9 _080E2AEC: mov r1, sp ldr r0, _080E2AFC ldrb r0, [r0] strb r0, [r1] ldr r0, _080E2B00 ldrb r0, [r0] strb r0, [r1, 0x1] b _080E2B26 .align 2, 0 _080E2AFC: .4byte 0x0202f7c8 _080E2B00: .4byte 0x0202f7c9 _080E2B04: mov r1, sp movs r0, 0xFF strb r0, [r1] b _080E2B26 _080E2B0C: movs r5, 0 mov r2, sp ldr r0, _080E2B14 b _080E2B1E .align 2, 0 _080E2B14: .4byte 0x0202f7c8 _080E2B18: movs r5, 0 mov r2, sp ldr r0, _080E2B70 _080E2B1E: ldrb r0, [r0] movs r1, 0x2 eors r0, r1 strb r0, [r2] _080E2B26: movs r4, 0 mov r6, sp _080E2B2A: ldrb r0, [r6] cmp r4, r0 beq _080E2B54 ldrb r0, [r6, 0x1] cmp r4, r0 beq _080E2B54 adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080E2B54 adds r0, r4, 0 bl sub_80793A8 lsls r0, 24 lsrs r0, 24 movs r1, 0x80 lsls r1, 9 lsls r1, r0 orrs r5, r1 _080E2B54: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080E2B2A adds r0, r7, 0 adds r1, r5, 0 bl sub_80E2C8C add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E2B70: .4byte 0x0202f7c9 thumb_func_end sub_80E2A7C thumb_func_start sub_80E2B74 sub_80E2B74: @ 80E2B74 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E2B98 movs r1, 0 ldrsh r0, [r0, r1] bl sub_80E1DC4 adds r2, r0, 0 ldr r0, _080E2B9C ldrb r0, [r0] cmp r0, 0x9 bhi _080E2C4A lsls r0, 2 ldr r1, _080E2BA0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E2B98: .4byte 0x03004b00 _080E2B9C: .4byte 0x0300428c _080E2BA0: .4byte _080E2BA4 .align 2, 0 _080E2BA4: .4byte _080E2BCC .4byte _080E2BDC .4byte _080E2BE8 .4byte _080E2BF8 .4byte _080E2C04 .4byte _080E2C14 .4byte _080E2C24 .4byte _080E2C34 .4byte _080E2C44 .4byte _080E2C44 _080E2BCC: ldr r1, _080E2BD4 ldr r0, _080E2BD8 b _080E2C48 .align 2, 0 _080E2BD4: .4byte 0x03004b00 _080E2BD8: .4byte 0x00000b0c _080E2BDC: ldr r1, _080E2BE4 movs r0, 0x9E lsls r0, 4 b _080E2C48 .align 2, 0 _080E2BE4: .4byte 0x03004b00 _080E2BE8: ldr r1, _080E2BF0 ldr r0, _080E2BF4 b _080E2C48 .align 2, 0 _080E2BF0: .4byte 0x03004b00 _080E2BF4: .4byte 0x00002f1e _080E2BF8: ldr r1, _080E2C00 movs r0, 0x90 lsls r0, 7 b _080E2C48 .align 2, 0 _080E2C00: .4byte 0x03004b00 _080E2C04: ldr r1, _080E2C0C ldr r0, _080E2C10 b _080E2C48 .align 2, 0 _080E2C0C: .4byte 0x03004b00 _080E2C10: .4byte 0x00007ecb _080E2C14: ldr r1, _080E2C1C ldr r0, _080E2C20 b _080E2C48 .align 2, 0 _080E2C1C: .4byte 0x03004b00 _080E2C20: .4byte 0x00007ecb _080E2C24: ldr r1, _080E2C2C ldr r0, _080E2C30 b _080E2C48 .align 2, 0 _080E2C2C: .4byte 0x03004b00 _080E2C30: .4byte 0x00002a16 _080E2C34: ldr r1, _080E2C3C ldr r0, _080E2C40 b _080E2C48 .align 2, 0 _080E2C3C: .4byte 0x03004b00 _080E2C40: .4byte 0x00000d2e _080E2C44: ldr r1, _080E2C58 ldr r0, _080E2C5C _080E2C48: strh r0, [r1, 0x8] _080E2C4A: adds r0, r4, 0 adds r1, r2, 0 bl sub_80E2C8C pop {r4} pop {r0} bx r0 .align 2, 0 _080E2C58: .4byte 0x03004b00 _080E2C5C: .4byte 0x00007fff thumb_func_end sub_80E2B74 thumb_func_start sub_80E2C60 sub_80E2C60: @ 80E2C60 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080E2C88 ldrh r0, [r0] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r0, 0x10 movs r1, 0x1 lsls r1, r0 adds r0, r4, 0 bl sub_80E2C8C pop {r4} pop {r0} bx r0 .align 2, 0 _080E2C88: .4byte 0x03004b00 thumb_func_end sub_80E2C60 thumb_func_start sub_80E2C8C sub_80E2C8C: @ 80E2C8C push {lr} lsls r0, 24 lsrs r0, 24 ldr r3, _080E2CC4 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r2, r3 strh r1, [r2, 0x8] lsrs r1, 16 strh r1, [r2, 0xA] ldr r3, _080E2CC8 ldrh r1, [r3, 0x2] strh r1, [r2, 0xC] ldrh r1, [r3, 0x4] strh r1, [r2, 0xE] ldrh r1, [r3, 0x6] strh r1, [r2, 0x10] ldrh r1, [r3, 0x8] strh r1, [r2, 0x12] ldrh r1, [r3, 0x4] strh r1, [r2, 0x1C] ldr r1, _080E2CCC str r1, [r2] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _080E2CC4: .4byte 0x03004b20 _080E2CC8: .4byte 0x03004b00 _080E2CCC: .4byte sub_80E2CD0 thumb_func_end sub_80E2C8C thumb_func_start sub_80E2CD0 sub_80E2CD0: @ 80E2CD0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r7, r0, 24 movs r6, 0 ldr r2, _080E2D50 lsls r5, r7, 2 adds r0, r5, r7 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x1A] mov r8, r0 movs r4, 0x1A ldrsh r1, [r3, r4] movs r4, 0xC ldrsh r0, [r3, r4] mov r9, r2 cmp r1, r0 bne _080E2D66 strh r6, [r3, 0x1A] movs r0, 0x8 ldrsh r4, [r3, r0] movs r1, 0xA ldrsh r0, [r3, r1] lsls r0, 16 orrs r4, r0 mov r8, r5 cmp r4, 0 beq _080E2D32 adds r5, r3, 0 _080E2D10: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _080E2D24 ldrb r2, [r5, 0x1C] ldrh r3, [r5, 0x12] adds r0, r6, 0 movs r1, 0x10 bl BlendPalette _080E2D24: adds r0, r6, 0 adds r0, 0x10 lsls r0, 16 lsrs r6, r0, 16 lsrs r4, 1 cmp r4, 0 bne _080E2D10 _080E2D32: mov r4, r8 adds r0, r4, r7 lsls r0, 3 mov r1, r9 adds r2, r0, r1 ldrh r0, [r2, 0x1C] movs r4, 0x1C ldrsh r3, [r2, r4] movs r4, 0x10 ldrsh r1, [r2, r4] cmp r3, r1 bge _080E2D54 adds r0, 0x1 strh r0, [r2, 0x1C] b _080E2D6C .align 2, 0 _080E2D50: .4byte 0x03004b20 _080E2D54: cmp r3, r1 ble _080E2D5E subs r0, 0x1 strh r0, [r2, 0x1C] b _080E2D6C _080E2D5E: adds r0, r7, 0 bl move_anim_task_del b _080E2D6C _080E2D66: mov r0, r8 adds r0, 0x1 strh r0, [r3, 0x1A] _080E2D6C: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80E2CD0 thumb_func_start sub_80E2D78 sub_80E2D78: @ 80E2D78 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r4, _080E2DAC ldrb r0, [r4] ldrb r1, [r4, 0x2] ldrb r2, [r4, 0x4] ldrb r3, [r4, 0x6] ldrb r4, [r4, 0x8] str r4, [sp] bl BeginHardwarePaletteFade ldr r1, _080E2DB0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080E2DB4 str r1, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E2DAC: .4byte 0x03004b00 _080E2DB0: .4byte 0x03004b20 _080E2DB4: .4byte sub_80E2DB8 thumb_func_end sub_80E2D78 thumb_func_start sub_80E2DB8 sub_80E2DB8: @ 80E2DB8 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080E2DD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080E2DD0 adds r0, r2, 0 bl move_anim_task_del _080E2DD0: pop {r0} bx r0 .align 2, 0 _080E2DD4: .4byte 0x0202f388 thumb_func_end sub_80E2DB8 thumb_func_start sub_80E2DD8 sub_80E2DD8: @ 80E2DD8 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080E2E04 adds r1, r0 ldr r2, _080E2E08 ldrh r0, [r2] movs r3, 0 strh r0, [r1, 0x8] strh r3, [r1, 0xA] ldrh r0, [r2, 0x2] strh r0, [r1, 0xC] ldrh r0, [r2, 0x4] strh r0, [r1, 0xE] ldrh r0, [r2, 0x6] strh r0, [r1, 0x10] strh r3, [r1, 0x12] ldr r0, _080E2E0C str r0, [r1] bx lr .align 2, 0 _080E2E04: .4byte 0x03004b20 _080E2E08: .4byte 0x03004b00 _080E2E0C: .4byte sub_80E2E10 thumb_func_end sub_80E2DD8 thumb_func_start sub_80E2E10 sub_80E2E10: @ 80E2E10 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r2, r5, 0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080E2E3C adds r4, r0, r1 movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0 beq _080E2ED4 ldrh r1, [r4, 0xA] movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0 beq _080E2E40 subs r0, r1, 0x1 strh r0, [r4, 0xA] b _080E2EE2 .align 2, 0 _080E2E3C: .4byte 0x03004b20 _080E2E40: ldrb r0, [r4, 0x8] bl duplicate_obj_of_side_rel2move_in_transparent_mode strh r0, [r4, 0x14] lsls r0, 16 cmp r0, 0 blt _080E2EBE ldr r6, _080E2ECC movs r1, 0x14 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r3, r1, r6 movs r2, 0x8 ldrsh r0, [r4, r2] movs r2, 0x2 cmp r0, 0 beq _080E2E68 movs r2, 0x1 _080E2E68: lsls r2, 2 ldrb r1, [r3, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 orrs r0, r2 strb r0, [r3, 0x5] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r1, [r4, 0xE] strh r1, [r0, 0x2E] movs r2, 0x14 ldrsh r1, [r4, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r5, [r0, 0x30] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x5 strh r1, [r0, 0x32] movs r2, 0x14 ldrsh r1, [r4, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r6, 0 adds r1, 0x1C adds r0, r1 ldr r1, _080E2ED0 str r1, [r0] ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] _080E2EBE: ldrh r0, [r4, 0x10] subs r0, 0x1 strh r0, [r4, 0x10] ldrh r0, [r4, 0xC] strh r0, [r4, 0xA] b _080E2EE2 .align 2, 0 _080E2ECC: .4byte 0x02020004 _080E2ED0: .4byte sub_80E2EE8 _080E2ED4: movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 bne _080E2EE2 adds r0, r2, 0 bl move_anim_task_del _080E2EE2: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80E2E10 thumb_func_start sub_80E2EE8 sub_80E2EE8: @ 80E2EE8 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x2E] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 beq _080E2EFC subs r0, r1, 0x1 strh r0, [r4, 0x2E] b _080E2F20 _080E2EFC: ldr r3, _080E2F28 movs r0, 0x32 ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x30 ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl obj_delete_but_dont_free_vram _080E2F20: pop {r4} pop {r0} bx r0 .align 2, 0 _080E2F28: .4byte 0x03004b20 thumb_func_end sub_80E2EE8 thumb_func_start sub_80E2F2C sub_80E2F2C: @ 80E2F2C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r7, 0 ldr r0, _080E3038 strh r7, [r0] ldr r0, _080E303C strh r7, [r0] ldr r1, _080E3040 ldr r2, _080E3044 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080E3048 adds r0, r3, 0 strh r0, [r1] movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] ldr r1, _080E304C ldr r2, _080E3050 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080E3054 adds r0, r3, 0 strh r0, [r1] ldr r4, _080E3058 ldrb r1, [r4] movs r0, 0x4 negs r0, r0 mov r8, r0 ands r0, r1 strb r0, [r4] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x1] movs r1, 0x20 orrs r0, r1 strb r0, [r4, 0x1] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E2FAC ldrb r0, [r4] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4] _080E2FAC: bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080E3028 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E3028 ldr r5, _080E305C ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _080E2FDC ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 cmp r0, 0 bne _080E3028 _080E2FDC: ldrb r0, [r5] movs r6, 0x2 eors r0, r6 bl b_side_obj__get_some_boolean lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080E3028 ldr r3, _080E3060 ldr r1, _080E3064 ldrb r0, [r5] eors r0, r6 adds r0, r1 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 ldrb r3, [r2, 0x5] lsls r1, r3, 28 lsrs r1, 30 subs r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldrb r1, [r4] mov r0, r8 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4] movs r7, 0x1 _080E3028: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080E306C ldr r0, _080E3068 ldrh r4, [r0] b _080E30B4 .align 2, 0 _080E3038: .4byte 0x030042c4 _080E303C: .4byte 0x03004240 _080E3040: .4byte REG_WININ _080E3044: .4byte 0x00003f3f _080E3048: .4byte 0x00003f3d _080E304C: .4byte REG_BLDCNT _080E3050: .4byte 0x00003f42 _080E3054: .4byte 0x00000c08 _080E3058: .4byte REG_BG1CNT _080E305C: .4byte 0x0202f7c8 _080E3060: .4byte 0x02020004 _080E3064: .4byte 0x02024be0 _080E3068: .4byte 0x02019348 _080E306C: ldr r4, _080E308C ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080E3098 ldr r1, _080E3090 ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E3094 b _080E30A8 .align 2, 0 _080E308C: .4byte 0x0202f7c8 _080E3090: .4byte 0x02024a6a _080E3094: .4byte 0x030045c0 _080E3098: ldr r1, _080E3160 ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E3164 _080E30A8: adds r0, r1 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r4, r0, 16 _080E30B4: movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080E3168 ldrb r0, [r0] adds r1, r5, 0 adds r2, r4, 0 bl sub_807A4A0 lsls r0, 24 lsrs r4, r0, 24 mov r0, sp bl sub_8078914 ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r2, _080E316C add r0, sp, 0xC str r0, [r2] str r1, [r2, 0x4] ldr r0, _080E3170 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _080E3174 bl LZDecompressVram bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080E3106 mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_80763FC _080E3106: ldr r0, _080E3178 ldr r1, [sp] bl LZDecompressVram ldr r0, _080E317C mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 adds r1, 0x1 movs r2, 0x2 bl LoadPalette ldr r2, _080E3180 ldr r0, _080E3184 lsls r1, r5, 4 adds r1, r5 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x20] negs r0, r0 adds r0, 0x20 strh r0, [r2] ldr r2, _080E3188 ldrh r0, [r1, 0x22] negs r0, r0 adds r0, 0x20 strh r0, [r2] ldr r1, _080E318C mov r2, r9 lsls r0, r2, 2 add r0, r9 lsls r0, 3 adds r0, r1 strh r4, [r0, 0x8] strh r7, [r0, 0x14] ldr r1, _080E3190 str r1, [r0] add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E3160: .4byte 0x02024a6a _080E3164: .4byte 0x03004360 _080E3168: .4byte 0x0202f7c8 _080E316C: .4byte 0x040000d4 _080E3170: .4byte 0x85000400 _080E3174: .4byte gUnknown_08D20A30 _080E3178: .4byte gUnknown_08D20A14 _080E317C: .4byte gUnknown_083DB568 _080E3180: .4byte 0x030042c0 _080E3184: .4byte 0x02020004 _080E3188: .4byte 0x030041b4 _080E318C: .4byte 0x03004b20 _080E3190: .4byte sub_80E3194 thumb_func_end sub_80E2F2C thumb_func_start sub_80E3194 sub_80E3194: @ 80E3194 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080E32AC lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x1C] adds r0, 0x4 movs r5, 0 strh r0, [r4, 0x1C] ldr r7, _080E32B0 ldrh r2, [r7] subs r1, r2, 0x4 strh r1, [r7] lsls r0, 16 asrs r0, 16 cmp r0, 0x40 bne _080E329E strh r5, [r4, 0x1C] adds r0, r2, 0 adds r0, 0x3C strh r0, [r7] ldrh r0, [r4, 0x1E] adds r0, 0x1 strh r0, [r4, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080E329E movs r0, 0 bl sub_8076464 ldr r0, _080E32B4 strh r5, [r0] ldr r0, _080E32B8 strh r5, [r0] ldr r0, _080E32BC ldr r2, _080E32C0 adds r1, r2, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E3208 ldr r2, _080E32C4 ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080E3208: movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 eors r0, r1 strh r0, [r2] ldr r0, _080E32C8 strh r5, [r0] adds r0, 0x2 strh r5, [r0] movs r0, 0 bl obj_id_for_side_relative_to_move ldr r0, _080E32CC mov r8, r0 movs r2, 0x8 ldrsh r1, [r4, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 bl DestroySprite mov r0, sp bl sub_8078914 ldr r2, [sp, 0x4] str r5, [sp, 0xC] ldr r1, _080E32D0 add r0, sp, 0xC str r0, [r1] str r2, [r1, 0x4] ldr r0, _080E32D4 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r3, 0x14 ldrsh r0, [r4, r3] cmp r0, 0x1 bne _080E3288 ldr r2, _080E32D8 ldr r0, _080E32DC ldrb r1, [r0] movs r0, 0x2 eors r0, r1 adds r0, r2 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 add r2, r8 ldrb r3, [r2, 0x5] lsls r1, r3, 28 lsrs r1, 30 adds r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] _080E3288: ldr r2, _080E32C4 ldrb r1, [r2, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r2, 0x1] movs r0, 0 strh r0, [r7] adds r0, r6, 0 bl move_anim_task_del _080E329E: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E32AC: .4byte 0x03004b20 _080E32B0: .4byte 0x030041b4 _080E32B4: .4byte 0x030042c4 _080E32B8: .4byte 0x03004240 _080E32BC: .4byte REG_WININ _080E32C0: .4byte 0x00003f3f _080E32C4: .4byte REG_BG1CNT _080E32C8: .4byte REG_BLDCNT _080E32CC: .4byte 0x02020004 _080E32D0: .4byte 0x040000d4 _080E32D4: .4byte 0x85000200 _080E32D8: .4byte 0x02024be0 _080E32DC: .4byte 0x0202f7c8 thumb_func_end sub_80E3194 thumb_func_start sub_80E32E0 sub_80E32E0: @ 80E32E0 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r3, r0, 24 movs r2, 0 ldr r0, _080E332C mov r12, r0 ldr r1, _080E3330 mov r8, r1 lsls r1, r3, 2 adds r0, r1, r3 lsls r4, r0, 3 mov r7, r12 adds r7, 0x8 adds r5, r1, 0 ldr r6, _080E3334 _080E3302: lsls r0, r2, 1 adds r1, r0, r4 adds r1, r7 adds r0, r6 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x7 bls _080E3302 adds r0, r5, r3 lsls r0, 3 add r0, r12 mov r1, r8 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E332C: .4byte 0x03004b20 _080E3330: .4byte sub_80E3338 _080E3334: .4byte 0x03004b00 thumb_func_end sub_80E32E0 thumb_func_start sub_80E3338 sub_80E3338: @ 80E3338 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r0, 0 str r0, [sp, 0x1C] movs r1, 0 str r1, [sp, 0x20] add r7, sp, 0xC ldr r2, _080E3388 mov r3, r9 lsls r1, r3, 2 adds r0, r1, r3 lsls r0, 3 mov r10, r1 adds r1, r2, 0 adds r1, 0x8 adds r1, r0, r1 adds r3, r7, 0 movs r4, 0 movs r2, 0x7 _080E336C: ldrh r0, [r1] strh r0, [r3] strh r4, [r1] adds r1, 0x2 adds r3, 0x2 subs r2, 0x1 cmp r2, 0 bge _080E336C movs r1, 0x4 ldrsh r0, [r7, r1] cmp r0, 0 bne _080E3390 ldr r0, _080E338C b _080E3392 .align 2, 0 _080E3388: .4byte 0x03004b20 _080E338C: .4byte 0x0202f7c8 _080E3390: ldr r0, _080E34B4 _080E3392: ldrb r5, [r0] movs r0, 0x2 mov r8, r5 mov r2, r8 eors r2, r0 mov r8, r2 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E33BC movs r3, 0x6 ldrsh r0, [r7, r3] cmp r0, 0 beq _080E33C0 mov r0, r8 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 bne _080E33C0 _080E33BC: movs r0, 0 strh r0, [r7, 0x6] _080E33C0: ldr r0, _080E34B8 movs r1, 0 strh r1, [r0] ldr r0, _080E34BC strh r1, [r0] ldr r1, _080E34C0 ldr r2, _080E34C4 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080E34C8 adds r0, r3, 0 strh r0, [r1] movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] ldr r1, _080E34CC ldr r2, _080E34D0 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r3, 0x80 lsls r3, 5 adds r0, r3, 0 strh r0, [r1] ldr r4, _080E34D4 ldrb r1, [r4] movs r6, 0x4 negs r6, r6 adds r0, r6, 0 ands r0, r1 strb r0, [r4] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x1] movs r1, 0x20 orrs r0, r1 strb r0, [r4, 0x1] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E3432 ldrb r0, [r4] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4] _080E3432: bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080E34A4 movs r1, 0x6 ldrsh r0, [r7, r1] cmp r0, 0 bne _080E34A4 adds r0, r5, 0 bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _080E345E adds r0, r5, 0 bl battle_get_per_side_status lsls r0, 24 cmp r0, 0 bne _080E34A4 _080E345E: mov r0, r8 bl b_side_obj__get_some_boolean lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080E34A4 ldr r1, _080E34D8 ldr r0, _080E34DC add r0, r8 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 ldrb r3, [r2, 0x5] lsls r1, r3, 28 lsrs r1, 30 subs r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldrb r1, [r4] adds r0, r6, 0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4] movs r2, 0x1 str r2, [sp, 0x20] _080E34A4: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080E34E4 ldr r0, _080E34E0 ldrh r4, [r0] b _080E3522 .align 2, 0 _080E34B4: .4byte 0x0202f7c9 _080E34B8: .4byte 0x030042c4 _080E34BC: .4byte 0x03004240 _080E34C0: .4byte REG_WININ _080E34C4: .4byte 0x00003f3f _080E34C8: .4byte 0x00003f3d _080E34CC: .4byte REG_BLDCNT _080E34D0: .4byte 0x00003f42 _080E34D4: .4byte REG_BG1CNT _080E34D8: .4byte 0x02020004 _080E34DC: .4byte 0x02024be0 _080E34E0: .4byte 0x02019348 _080E34E4: adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080E3508 ldr r1, _080E3500 lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E3504 b _080E3516 .align 2, 0 _080E3500: .4byte 0x02024a6a _080E3504: .4byte 0x030045c0 _080E3508: ldr r1, _080E3568 lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E356C _080E3516: adds r0, r1 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r4, r0, 16 _080E3522: ldr r6, _080E3570 adds r0, r5, r6 ldrb r1, [r0] adds r0, r5, 0 adds r2, r4, 0 bl sub_807A4A0 lsls r0, 24 lsrs r5, r0, 24 movs r3, 0x6 ldrsh r0, [r7, r3] cmp r0, 0 beq _080E3550 mov r1, r8 adds r0, r1, r6 ldrb r1, [r0] mov r0, r8 adds r2, r4, 0 bl sub_807A4A0 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x1C] _080E3550: mov r0, sp bl sub_8078914 movs r2, 0 ldrsh r0, [r7, r2] cmp r0, 0 bne _080E3578 ldr r0, _080E3574 ldr r1, [sp, 0x4] bl LZDecompressVram b _080E3580 .align 2, 0 _080E3568: .4byte 0x02024a6a _080E356C: .4byte 0x03004360 _080E3570: .4byte 0x02024be0 _080E3574: .4byte gUnknown_08D2DCDC _080E3578: ldr r0, _080E35B0 ldr r1, [sp, 0x4] bl LZDecompressVram _080E3580: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080E3598 mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_80763FC _080E3598: ldr r0, _080E35B4 ldr r1, [sp] bl LZDecompressVram ldrh r0, [r7, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0 bne _080E35BC ldr r0, _080E35B8 b _080E35FE .align 2, 0 _080E35B0: .4byte gUnknown_08D2DDF8 _080E35B4: .4byte gUnknown_08D2DACC _080E35B8: .4byte gUnknown_08D2DF34 _080E35BC: cmp r0, 0x1 bne _080E35C8 ldr r0, _080E35C4 b _080E35FE .align 2, 0 _080E35C4: .4byte gUnknown_08D2DF14 _080E35C8: cmp r0, 0x2 bne _080E35D4 ldr r0, _080E35D0 b _080E35FE .align 2, 0 _080E35D0: .4byte gUnknown_08D2DF54 _080E35D4: cmp r0, 0x3 bne _080E35E0 ldr r0, _080E35DC b _080E35FE .align 2, 0 _080E35DC: .4byte gUnknown_08D2DF74 _080E35E0: cmp r0, 0x4 bne _080E35EC ldr r0, _080E35E8 b _080E35FE .align 2, 0 _080E35E8: .4byte gUnknown_08D2DFB4 _080E35EC: cmp r0, 0x5 bne _080E35F8 ldr r0, _080E35F4 b _080E35FE .align 2, 0 _080E35F4: .4byte gUnknown_08D2DFD4 _080E35F8: cmp r0, 0x6 bne _080E3610 ldr r0, _080E360C _080E35FE: mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette b _080E361E .align 2, 0 _080E360C: .4byte gUnknown_08D2DFF4 _080E3610: ldr r0, _080E3644 mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette _080E361E: ldr r2, _080E3648 movs r1, 0 strh r1, [r2] ldr r0, _080E364C strh r1, [r0] movs r3, 0 ldrsh r0, [r7, r3] cmp r0, 0x1 bne _080E3658 movs r0, 0x40 strh r0, [r2] ldr r2, _080E3650 mov r0, r10 add r0, r9 lsls r0, 3 adds r0, r2 ldr r1, _080E3654 strh r1, [r0, 0xA] b _080E3668 .align 2, 0 _080E3644: .4byte gUnknown_08D2DF94 _080E3648: .4byte 0x030042c0 _080E364C: .4byte 0x030041b4 _080E3650: .4byte 0x03004b20 _080E3654: .4byte 0x0000fffd _080E3658: ldr r0, _080E3680 mov r1, r10 add r1, r9 lsls r1, 3 adds r1, r0 movs r2, 0x3 strh r2, [r1, 0xA] adds r2, r0, 0 _080E3668: movs r1, 0x8 ldrsh r0, [r7, r1] cmp r0, 0 bne _080E3684 mov r0, r10 add r0, r9 lsls r0, 3 adds r0, r2 movs r1, 0xA strh r1, [r0, 0x10] movs r1, 0x14 b _080E3692 .align 2, 0 _080E3680: .4byte 0x03004b20 _080E3684: mov r0, r10 add r0, r9 lsls r0, 3 adds r0, r2 movs r1, 0xD strh r1, [r0, 0x10] movs r1, 0x1E _080E3692: strh r1, [r0, 0x12] mov r1, r10 add r1, r9 lsls r1, 3 adds r1, r2 strh r5, [r1, 0x8] ldrh r0, [r7, 0x6] strh r0, [r1, 0xC] mov r2, sp ldrh r2, [r2, 0x1C] strh r2, [r1, 0xE] mov r3, sp ldrh r3, [r3, 0x20] strh r3, [r1, 0x14] ldr r0, _080E36D8 add r0, r8 ldrb r0, [r0] strh r0, [r1, 0x16] ldr r0, _080E36DC str r0, [r1] movs r1, 0 ldrsh r0, [r7, r1] cmp r0, 0 bne _080E36E0 movs r0, 0x40 negs r0, r0 bl sub_8077094 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xEF bl audio_play_and_stuff b _080E36F4 .align 2, 0 _080E36D8: .4byte 0x02024be0 _080E36DC: .4byte sub_80E3704 _080E36E0: movs r0, 0x40 negs r0, r0 bl sub_8077094 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xF5 bl audio_play_and_stuff _080E36F4: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80E3338 thumb_func_start sub_80E3704 sub_80E3704: @ 80E3704 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r2, _080E3730 ldr r1, _080E3734 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0xA] ldrh r1, [r2] adds r0, r1 strh r0, [r2] movs r3, 0x26 ldrsh r2, [r4, r3] cmp r2, 0x1 beq _080E3774 cmp r2, 0x1 bgt _080E3738 cmp r2, 0 beq _080E373E b _080E3866 .align 2, 0 _080E3730: .4byte 0x030041b4 _080E3734: .4byte 0x03004b20 _080E3738: cmp r2, 0x2 beq _080E378E b _080E3866 _080E373E: ldrh r0, [r4, 0x1E] adds r1, r0, 0x1 strh r1, [r4, 0x1E] lsls r0, 16 cmp r0, 0 bgt _080E374C b _080E3866 _080E374C: strh r2, [r4, 0x1E] ldrh r1, [r4, 0x20] adds r1, 0x1 strh r1, [r4, 0x20] ldr r2, _080E3770 movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r0, 0x20 ldrsh r1, [r4, r0] movs r2, 0x10 ldrsh r0, [r4, r2] cmp r1, r0 bne _080E3866 b _080E3786 .align 2, 0 _080E3770: .4byte REG_BLDALPHA _080E3774: ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] lsls r0, 16 asrs r0, 16 movs r3, 0x12 ldrsh r1, [r4, r3] cmp r0, r1 bne _080E3866 _080E3786: ldrh r0, [r4, 0x26] adds r0, 0x1 strh r0, [r4, 0x26] b _080E3866 _080E378E: ldrh r0, [r4, 0x1E] adds r1, r0, 0x1 strh r1, [r4, 0x1E] lsls r0, 16 cmp r0, 0 ble _080E3866 movs r0, 0 strh r0, [r4, 0x1E] ldrh r1, [r4, 0x20] subs r1, 0x1 strh r1, [r4, 0x20] ldr r7, _080E386C movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r7] movs r0, 0x20 ldrsh r5, [r4, r0] cmp r5, 0 bne _080E3866 movs r0, 0 bl sub_8076464 ldr r0, _080E3870 strh r5, [r0] ldr r0, _080E3874 strh r5, [r0] ldr r0, _080E3878 ldr r2, _080E387C adds r1, r2, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E37E8 ldr r2, _080E3880 ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080E37E8: movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 eors r0, r1 strh r0, [r2] ldr r0, _080E3884 strh r5, [r0] strh r5, [r7] movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _080E3888 adds r0, r5 bl DestroySprite movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0 beq _080E3828 movs r2, 0xE ldrsh r1, [r4, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite _080E3828: movs r3, 0x14 ldrsh r0, [r4, r3] cmp r0, 0x1 bne _080E3854 movs r1, 0x16 ldrsh r0, [r4, r1] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r5 ldrb r3, [r2, 0x5] lsls r1, r3, 28 lsrs r1, 30 adds r1, 0x1 movs r0, 0x3 ands r1, r0 lsls r1, 2 movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] _080E3854: ldr r2, _080E3880 ldrb r1, [r2, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r2, 0x1] adds r0, r6, 0 bl move_anim_task_del _080E3866: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E386C: .4byte REG_BLDALPHA _080E3870: .4byte 0x030042c4 _080E3874: .4byte 0x03004240 _080E3878: .4byte REG_WININ _080E387C: .4byte 0x00003f3f _080E3880: .4byte REG_BG1CNT _080E3884: .4byte REG_BLDCNT _080E3888: .4byte 0x02020004 thumb_func_end sub_80E3704 thumb_func_start sub_80E388C sub_80E388C: @ 80E388C push {r4-r6,lr} sub sp, 0xC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0x1 movs r1, 0x1 movs r2, 0x1 movs r3, 0x1 bl sub_80792C0 adds r6, r0, 0 movs r1, 0 bl sub_80E39BC ldr r0, _080E38EC lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 lsrs r0, r6, 16 movs r5, 0 strh r0, [r4, 0x24] str r5, [sp] str r5, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80791A8 adds r6, r0, 0 ldr r1, _080E38F0 ands r6, r1 adds r0, r6, 0 bl sub_80E39BC strh r6, [r4, 0x26] strh r5, [r4, 0x8] strh r5, [r4, 0xA] ldr r0, _080E38F4 str r0, [r4] add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E38EC: .4byte 0x03004b20 _080E38F0: .4byte 0x0000ffff _080E38F4: .4byte sub_80E38F8 thumb_func_end sub_80E388C thumb_func_start sub_80E38F8 sub_80E38F8: @ 80E38F8 push {r4-r6,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080E391C adds r4, r0, r1 movs r0, 0x8 ldrsh r1, [r4, r0] cmp r1, 0x1 beq _080E393C cmp r1, 0x1 bgt _080E3920 cmp r1, 0 beq _080E3926 b _080E39B6 .align 2, 0 _080E391C: .4byte 0x03004b20 _080E3920: cmp r1, 0x2 beq _080E39B0 b _080E39B6 _080E3926: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 ble _080E39B6 strh r1, [r4, 0xA] movs r0, 0x10 strh r0, [r4, 0xC] b _080E39A4 _080E393C: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080E39B6 movs r0, 0 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] subs r0, 0x1 strh r0, [r4, 0xC] movs r5, 0 movs r6, 0x1 _080E3958: movs r1, 0x26 ldrsh r0, [r4, r1] asrs r0, r5 ands r0, r6 cmp r0, 0 beq _080E3972 lsls r0, r5, 20 lsrs r0, 16 ldrb r2, [r4, 0xC] movs r1, 0x10 ldr r3, _080E39AC bl BlendPalette _080E3972: movs r1, 0x24 ldrsh r0, [r4, r1] asrs r0, r5 ands r0, r6 cmp r0, 0 beq _080E3992 lsls r0, r5, 20 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r0, 16 ldrb r2, [r4, 0xC] movs r1, 0x10 movs r3, 0 bl BlendPalette _080E3992: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0xF bls _080E3958 movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0 bne _080E39B6 _080E39A4: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080E39B6 .align 2, 0 _080E39AC: .4byte 0x0000ffff _080E39B0: adds r0, r2, 0 bl move_anim_task_del _080E39B6: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80E38F8 thumb_func_start sub_80E39BC sub_80E39BC: @ 80E39BC push {r4-r6,lr} adds r3, r0, 0 lsls r1, 16 lsrs r6, r1, 16 movs r2, 0 _080E39C6: movs r0, 0x1 ands r0, r3 lsrs r4, r3, 1 adds r5, r2, 0x1 cmp r0, 0 beq _080E39F2 lsls r0, r2, 20 lsrs r2, r0, 16 adds r0, r2, 0 adds r0, 0x10 cmp r2, r0 bge _080E39F2 ldr r1, _080E3A04 adds r3, r0, 0 _080E39E2: lsls r0, r2, 1 adds r0, r1 strh r6, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r3 blt _080E39E2 _080E39F2: adds r3, r4, 0 lsls r0, r5, 16 lsrs r2, r0, 16 cmp r2, 0x1F bls _080E39C6 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E3A04: .4byte 0x0202eec8 thumb_func_end sub_80E39BC thumb_func_start sub_80E3A08 sub_80E3A08: @ 80E3A08 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 movs r2, 0 ldr r0, _080E3A50 ldrb r3, [r0] movs r5, 0x1 _080E3A18: cmp r3, r2 beq _080E3A26 adds r1, r2, 0 adds r1, 0x10 adds r0, r5, 0 lsls r0, r1 orrs r4, r0 _080E3A26: adds r2, 0x1 cmp r2, 0x3 bls _080E3A18 movs r2, 0x5 ldr r0, _080E3A54 adds r1, r0, 0 adds r1, 0x8 _080E3A34: ldrh r0, [r1] strh r0, [r1, 0x2] subs r1, 0x2 subs r2, 0x1 cmp r2, 0 bne _080E3A34 adds r0, r6, 0 adds r1, r4, 0 bl sub_80E2C8C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E3A50: .4byte 0x0202f7c8 _080E3A54: .4byte 0x03004b00 thumb_func_end sub_80E3A08 thumb_func_start sub_80E3A58 sub_80E3A58: @ 80E3A58 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 bl sub_80789D4 ldr r0, _080E3AC0 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r5, r0, 24 ldr r4, _080E3AC4 movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 beq _080E3A94 ldr r0, _080E3AC8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080E3A94 ldrh r0, [r4] negs r0, r0 strh r0, [r4] ldrh r0, [r4, 0x2] negs r0, r0 strh r0, [r4, 0x2] _080E3A94: ldr r0, _080E3ACC lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r2, _080E3AC4 ldrh r0, [r2] strh r0, [r1, 0xA] ldrh r0, [r2, 0x2] strh r0, [r1, 0xC] ldrh r0, [r2, 0x6] strh r0, [r1, 0xE] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] adds r0, r6, 0 bl move_anim_task_del pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E3AC0: .4byte sub_80E3AD0 _080E3AC4: .4byte 0x03004b00 _080E3AC8: .4byte 0x0202f7c8 _080E3ACC: .4byte 0x03004b20 thumb_func_end sub_80E3A58 thumb_func_start sub_80E3AD0 sub_80E3AD0: @ 80E3AD0 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080E3B3C lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r3, [r1, 0xA] ldrh r0, [r1, 0x1C] adds r3, r0 movs r4, 0 mov r12, r4 strh r3, [r1, 0x1C] ldrh r2, [r1, 0xC] ldrh r7, [r1, 0x1E] adds r2, r7 strh r2, [r1, 0x1E] ldr r6, _080E3B40 lsls r0, r3, 16 asrs r0, 24 ldrh r4, [r6] adds r0, r4 strh r0, [r6] ldr r4, _080E3B44 lsls r0, r2, 16 asrs r0, 24 ldrh r7, [r4] adds r0, r7 strh r0, [r4] movs r0, 0xFF ands r3, r0 strh r3, [r1, 0x1C] ands r2, r0 strh r2, [r1, 0x1E] ldr r0, _080E3B48 movs r3, 0xE ldrsh r2, [r0, r3] movs r7, 0xE ldrsh r0, [r1, r7] cmp r2, r0 bne _080E3B36 mov r0, r12 strh r0, [r6] strh r0, [r4] movs r0, 0x1 bl sub_80789D4 adds r0, r5, 0 bl DestroyTask _080E3B36: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E3B3C: .4byte 0x03004b20 _080E3B40: .4byte 0x030041b0 _080E3B44: .4byte 0x030041b8 _080E3B48: .4byte 0x03004b00 thumb_func_end sub_80E3AD0 thumb_func_start sub_80E3B4C sub_80E3B4C: @ 80E3B4C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080E3B70 ldrb r0, [r0] bl battle_side_get_owner ldr r1, _080E3B74 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0xE] adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _080E3B70: .4byte 0x0202f7c8 _080E3B74: .4byte 0x03004b00 thumb_func_end sub_80E3B4C thumb_func_start sub_80E3B78 sub_80E3B78: @ 80E3B78 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080E3B9C ldrb r0, [r0] bl battle_side_get_owner ldr r1, _080E3BA0 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0xE] adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _080E3B9C: .4byte 0x0202f7c9 _080E3BA0: .4byte 0x03004b00 thumb_func_end sub_80E3B78 thumb_func_start sub_80E3BA4 sub_80E3BA4: @ 80E3BA4 push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r5, _080E3BD0 movs r4, 0 ldr r0, _080E3BD4 ldrb r2, [r0] movs r0, 0x2 ldr r1, _080E3BD8 eors r0, r2 ldrb r1, [r1] cmp r0, r1 bne _080E3BC0 movs r4, 0x1 _080E3BC0: strh r4, [r5, 0xE] adds r0, r3, 0 bl move_anim_task_del pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E3BD0: .4byte 0x03004b00 _080E3BD4: .4byte 0x0202f7c8 _080E3BD8: .4byte 0x0202f7c9 thumb_func_end sub_80E3BA4 thumb_func_start sub_80E3BDC sub_80E3BDC: @ 80E3BDC push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r6, _080E3C3C _080E3BE6: ldr r0, _080E3C40 ldrb r0, [r0] cmp r4, r0 beq _080E3C24 lsls r0, r4, 24 lsrs r0, 24 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _080E3C24 ldr r0, _080E3C44 adds r0, r4, r0 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r6 ldr r1, _080E3C48 adds r2, 0x3E movs r0, 0x1 ldrb r3, [r1] ands r3, r0 lsls r3, 2 ldrb r0, [r2] movs r7, 0x5 negs r7, r7 adds r1, r7, 0 ands r0, r1 orrs r0, r3 strb r0, [r2] _080E3C24: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3 bls _080E3BE6 adds r0, r5, 0 bl move_anim_task_del pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E3C3C: .4byte 0x02020004 _080E3C40: .4byte 0x0202f7c8 _080E3C44: .4byte 0x02024be0 _080E3C48: .4byte 0x03004b00 thumb_func_end sub_80E3BDC thumb_func_start sub_80E3C4C sub_80E3C4C: @ 80E3C4C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C ldr r1, [sp, 0x3C] ldr r4, [sp, 0x40] ldr r5, [sp, 0x44] ldr r6, [sp, 0x48] lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r2, 16 lsrs r2, 16 str r2, [sp, 0xC] lsls r3, 24 lsrs r7, r3, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r4, 24 lsrs r4, 24 str r4, [sp, 0x10] lsls r5, 24 lsrs r5, 24 str r5, [sp, 0x14] lsls r6, 24 lsrs r6, 24 mov r10, r6 movs r0, 0 str r0, [sp, 0x18] movs r0, 0x2 adds r6, r7, 0 eors r6, r0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E3CAE mov r1, r8 cmp r1, 0 beq _080E3CB2 adds r0, r6, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 bne _080E3CB2 _080E3CAE: movs r2, 0 mov r8, r2 _080E3CB2: ldr r0, _080E3D34 movs r1, 0 strh r1, [r0] ldr r0, _080E3D38 strh r1, [r0] ldr r1, _080E3D3C ldr r3, _080E3D40 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080E3D44 adds r0, r2, 0 strh r0, [r1] movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] ldr r1, _080E3D48 ldr r2, _080E3D4C adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r3, 0x80 lsls r3, 5 adds r0, r3, 0 strh r0, [r1] ldr r4, _080E3D50 ldrb r1, [r4] movs r0, 0x4 negs r0, r0 ands r0, r1 strb r0, [r4] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x1] movs r1, 0x20 orrs r0, r1 strb r0, [r4, 0x1] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E3D22 ldrb r0, [r4] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4] _080E3D22: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080E3D58 ldr r0, _080E3D54 ldrh r4, [r0] b _080E3D96 .align 2, 0 _080E3D34: .4byte 0x030042c4 _080E3D38: .4byte 0x03004240 _080E3D3C: .4byte REG_WININ _080E3D40: .4byte 0x00003f3f _080E3D44: .4byte 0x00003f3d _080E3D48: .4byte REG_BLDCNT _080E3D4C: .4byte 0x00003f42 _080E3D50: .4byte REG_BG1CNT _080E3D54: .4byte 0x02019348 _080E3D58: adds r0, r7, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080E3D7C ldr r1, _080E3D74 lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E3D78 b _080E3D8A .align 2, 0 _080E3D74: .4byte 0x02024a6a _080E3D78: .4byte 0x030045c0 _080E3D7C: ldr r1, _080E3E48 lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E3E4C _080E3D8A: adds r0, r1 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r4, r0, 16 _080E3D96: ldr r5, _080E3E50 adds r0, r7, r5 ldrb r1, [r0] adds r0, r7, 0 adds r2, r4, 0 bl sub_807A4A0 lsls r0, 24 lsrs r7, r0, 24 mov r0, r8 cmp r0, 0 beq _080E3DC0 adds r0, r6, r5 ldrb r1, [r0] adds r0, r6, 0 adds r2, r4, 0 bl sub_807A4A0 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x18] _080E3DC0: mov r0, sp bl sub_8078914 ldr r1, [sp, 0x4] ldr r0, [sp, 0x50] bl LZDecompressVram bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080E3DE6 mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_80763FC _080E3DE6: ldr r1, [sp] ldr r0, [sp, 0x4C] bl LZDecompressVram mov r0, sp ldrb r1, [r0, 0x8] lsls r1, 4 ldr r0, [sp, 0x54] movs r2, 0x20 bl LoadCompressedPalette ldr r0, _080E3E54 movs r1, 0 strh r1, [r0] ldr r0, _080E3E58 strh r1, [r0] ldr r1, _080E3E5C mov r2, r9 lsls r0, r2, 2 add r0, r9 lsls r0, 3 adds r0, r1 mov r3, sp ldrh r3, [r3, 0xC] strh r3, [r0, 0xA] mov r1, sp ldrh r1, [r1, 0x10] strh r1, [r0, 0x10] mov r2, r10 strh r2, [r0, 0x12] mov r3, sp ldrh r3, [r3, 0x14] strh r3, [r0, 0x14] strh r7, [r0, 0x8] mov r1, r8 strh r1, [r0, 0xC] mov r2, sp ldrh r2, [r2, 0x18] strh r2, [r0, 0xE] ldr r1, _080E3E60 str r1, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E3E48: .4byte 0x02024a6a _080E3E4C: .4byte 0x03004360 _080E3E50: .4byte 0x02024be0 _080E3E54: .4byte 0x030042c0 _080E3E58: .4byte 0x030041b4 _080E3E5C: .4byte 0x03004b20 _080E3E60: .4byte sub_80E3E64 thumb_func_end sub_80E3C4C thumb_func_start sub_80E3E64 sub_80E3E64: @ 80E3E64 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080E3E9C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r3, r0, r1 movs r0, 0xA ldrsh r2, [r3, r0] adds r5, r1, 0 cmp r2, 0 bge _080E3E80 negs r2, r2 _080E3E80: ldrh r0, [r3, 0x22] adds r4, r0, r2 strh r4, [r3, 0x22] movs r1, 0xA ldrsh r0, [r3, r1] cmp r0, 0 bge _080E3EA4 ldr r2, _080E3EA0 lsls r1, r4, 16 asrs r1, 24 ldrh r0, [r2] subs r0, r1 strh r0, [r2] b _080E3EB0 .align 2, 0 _080E3E9C: .4byte 0x03004b20 _080E3EA0: .4byte 0x030041b4 _080E3EA4: ldr r1, _080E3ED4 lsls r0, r4, 16 asrs r0, 24 ldrh r2, [r1] adds r0, r2 strh r0, [r1] _080E3EB0: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r5 ldrh r1, [r4, 0x22] movs r0, 0xFF ands r0, r1 movs r2, 0 strh r0, [r4, 0x22] movs r3, 0x26 ldrsh r0, [r4, r3] cmp r0, 0x1 beq _080E3F18 cmp r0, 0x1 bgt _080E3ED8 cmp r0, 0 beq _080E3EDE b _080E3FE2 .align 2, 0 _080E3ED4: .4byte 0x030041b4 _080E3ED8: cmp r0, 0x2 beq _080E3F32 b _080E3FE2 _080E3EDE: ldrh r0, [r4, 0x1E] adds r1, r0, 0x1 strh r1, [r4, 0x1E] lsls r0, 16 asrs r0, 16 movs r3, 0x14 ldrsh r1, [r4, r3] cmp r0, r1 blt _080E3FE2 strh r2, [r4, 0x1E] ldrh r1, [r4, 0x20] adds r1, 0x1 strh r1, [r4, 0x20] ldr r2, _080E3F14 movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r0, 0x20 ldrsh r1, [r4, r0] movs r2, 0x10 ldrsh r0, [r4, r2] cmp r1, r0 bne _080E3FE2 b _080E3F2A .align 2, 0 _080E3F14: .4byte REG_BLDALPHA _080E3F18: ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] lsls r0, 16 asrs r0, 16 movs r3, 0x12 ldrsh r1, [r4, r3] cmp r0, r1 bne _080E3FE2 _080E3F2A: ldrh r0, [r4, 0x26] adds r0, 0x1 strh r0, [r4, 0x26] b _080E3FE2 _080E3F32: ldrh r0, [r4, 0x1E] adds r1, r0, 0x1 strh r1, [r4, 0x1E] lsls r0, 16 asrs r0, 16 movs r3, 0x14 ldrsh r1, [r4, r3] cmp r0, r1 blt _080E3FE2 strh r2, [r4, 0x1E] ldrh r1, [r4, 0x20] subs r1, 0x1 strh r1, [r4, 0x20] ldr r7, _080E3FE8 movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r7] movs r0, 0x20 ldrsh r5, [r4, r0] cmp r5, 0 bne _080E3FE2 movs r0, 0 bl sub_8076464 ldr r0, _080E3FEC strh r5, [r0] ldr r0, _080E3FF0 strh r5, [r0] ldr r0, _080E3FF4 ldr r2, _080E3FF8 adds r1, r2, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E3F90 ldr r2, _080E3FFC ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080E3F90: movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 eors r0, r1 strh r0, [r2] ldr r0, _080E4000 strh r5, [r0] strh r5, [r7] movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _080E4004 adds r0, r5 bl DestroySprite movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0 beq _080E3FD0 movs r2, 0xE ldrsh r1, [r4, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite _080E3FD0: ldr r2, _080E3FFC ldrb r1, [r2, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r2, 0x1] adds r0, r6, 0 bl move_anim_task_del _080E3FE2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E3FE8: .4byte REG_BLDALPHA _080E3FEC: .4byte 0x030042c4 _080E3FF0: .4byte 0x03004240 _080E3FF4: .4byte REG_WININ _080E3FF8: .4byte 0x00003f3f _080E3FFC: .4byte REG_BG1CNT _080E4000: .4byte REG_BLDCNT _080E4004: .4byte 0x02020004 thumb_func_end sub_80E3E64 thumb_func_start sub_80E4008 sub_80E4008: @ 80E4008 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080E4020 ldr r1, _080E4024 ldrb r1, [r1] strh r1, [r2] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _080E4020: .4byte 0x03004b00 _080E4024: .4byte 0x0300428c thumb_func_end sub_80E4008 thumb_func_start sub_80E4028 sub_80E4028: @ 80E4028 push {r4-r6,lr} sub sp, 0xC lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r0, _080E4068 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080E406C str r4, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80791A8 adds r1, r0, 0 movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080E4084 movs r2, 0x1 _080E405A: lsrs r1, 1 adds r4, 0x1 adds r0, r1, 0 ands r0, r2 cmp r0, 0 beq _080E405A b _080E4084 .align 2, 0 _080E4068: .4byte 0x03004b00 _080E406C: cmp r0, 0x1 bne _080E4078 ldr r0, _080E4074 b _080E407E .align 2, 0 _080E4074: .4byte 0x0202f7c8 _080E4078: cmp r0, 0x2 bne _080E4084 ldr r0, _080E409C _080E407E: ldrb r0, [r0] adds r4, r0, 0 adds r4, 0x10 _080E4084: ldr r0, _080E40A0 movs r1, 0x2 ldrsh r0, [r0, r1] lsls r5, r0, 5 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080E40A8 ldr r0, _080E40A4 b _080E40AA .align 2, 0 _080E409C: .4byte 0x0202f7c9 _080E40A0: .4byte 0x03004b00 _080E40A4: .4byte 0x02014800 _080E40A8: ldr r0, _080E40C8 _080E40AA: adds r2, r5, r0 lsls r1, r4, 5 ldr r0, _080E40CC adds r1, r0 adds r0, r2, 0 movs r2, 0x20 bl memcpy adds r0, r6, 0 bl move_anim_task_del add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E40C8: .4byte 0x02018000 _080E40CC: .4byte 0x0202eac8 thumb_func_end sub_80E4028 thumb_func_start sub_80E40D0 sub_80E40D0: @ 80E40D0 push {r4-r6,lr} sub sp, 0xC lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r0, _080E4110 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080E4114 str r4, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80791A8 adds r1, r0, 0 movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080E412C movs r2, 0x1 _080E4102: lsrs r1, 1 adds r4, 0x1 adds r0, r1, 0 ands r0, r2 cmp r0, 0 beq _080E4102 b _080E412C .align 2, 0 _080E4110: .4byte 0x03004b00 _080E4114: cmp r0, 0x1 bne _080E4120 ldr r0, _080E411C b _080E4126 .align 2, 0 _080E411C: .4byte 0x0202f7c8 _080E4120: cmp r0, 0x2 bne _080E412C ldr r0, _080E4148 _080E4126: ldrb r0, [r0] adds r4, r0, 0 adds r4, 0x10 _080E412C: lsls r1, r4, 5 ldr r0, _080E414C adds r5, r1, r0 ldr r0, _080E4150 movs r1, 0x2 ldrsh r0, [r0, r1] lsls r4, r0, 5 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080E4158 ldr r0, _080E4154 b _080E415A .align 2, 0 _080E4148: .4byte 0x0202f7c9 _080E414C: .4byte 0x0202eac8 _080E4150: .4byte 0x03004b00 _080E4154: .4byte 0x02014800 _080E4158: ldr r0, _080E4174 _080E415A: adds r1, r4, r0 adds r0, r5, 0 movs r2, 0x20 bl memcpy adds r0, r6, 0 bl move_anim_task_del add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E4174: .4byte 0x02018000 thumb_func_end sub_80E40D0 thumb_func_start sub_80E4178 sub_80E4178: @ 80E4178 push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r0, _080E41B8 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080E41BC str r4, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80791A8 adds r1, r0, 0 movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080E41D4 movs r2, 0x1 _080E41AA: lsrs r1, 1 adds r4, 0x1 adds r0, r1, 0 ands r0, r2 cmp r0, 0 beq _080E41AA b _080E41D4 .align 2, 0 _080E41B8: .4byte 0x03004b00 _080E41BC: cmp r0, 0x1 bne _080E41C8 ldr r0, _080E41C4 b _080E41CE .align 2, 0 _080E41C4: .4byte 0x0202f7c8 _080E41C8: cmp r0, 0x2 bne _080E41D4 ldr r0, _080E41F4 _080E41CE: ldrb r0, [r0] adds r4, r0, 0 adds r4, 0x10 _080E41D4: lsls r1, r4, 5 ldr r0, _080E41F8 adds r0, r1, r0 ldr r2, _080E41FC adds r1, r2 movs r2, 0x20 bl memcpy adds r0, r5, 0 bl move_anim_task_del add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E41F4: .4byte 0x0202f7c9 _080E41F8: .4byte 0x0202eac8 _080E41FC: .4byte 0x0202eec8 thumb_func_end sub_80E4178 thumb_func_start sub_80E4200 sub_80E4200: @ 80E4200 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8076BE0 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _080E4220 ldr r1, _080E421C movs r0, 0x1 strh r0, [r1, 0xE] b _080E4224 .align 2, 0 _080E421C: .4byte 0x03004b00 _080E4220: ldr r0, _080E4230 strh r1, [r0, 0xE] _080E4224: adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _080E4230: .4byte 0x03004b00 thumb_func_end sub_80E4200 thumb_func_start sub_80E4234 sub_80E4234: @ 80E4234 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080E4254 ldr r1, _080E4258 ldrb r1, [r1] strb r1, [r2] ldr r2, _080E425C ldr r1, _080E4260 ldrb r1, [r1] strb r1, [r2] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _080E4254: .4byte 0x0202f7c8 _080E4258: .4byte 0x02024c08 _080E425C: .4byte 0x0202f7c9 _080E4260: .4byte 0x02024c0a thumb_func_end sub_80E4234 thumb_func_start sub_80E4264 sub_80E4264: @ 80E4264 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080E428C ldrb r0, [r0] bl battle_side_get_owner adds r4, r0, 0 ldr r0, _080E4290 ldrb r0, [r0] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080E4298 ldr r1, _080E4294 movs r0, 0x1 b _080E429C .align 2, 0 _080E428C: .4byte 0x0202f7c8 _080E4290: .4byte 0x0202f7c9 _080E4294: .4byte 0x03004b00 _080E4298: ldr r1, _080E42AC movs r0, 0 _080E429C: strh r0, [r1, 0xE] adds r0, r5, 0 bl move_anim_task_del pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E42AC: .4byte 0x03004b00 thumb_func_end sub_80E4264 thumb_func_start sub_80E42B0 sub_80E42B0: @ 80E42B0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080E42C8 ldr r1, _080E42CC ldrb r1, [r1] strb r1, [r2] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _080E42C8: .4byte 0x0202f7c9 _080E42CC: .4byte 0x02024c08 thumb_func_end sub_80E42B0 thumb_func_start sub_80E42D0 sub_80E42D0: @ 80E42D0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080E42F0 ldr r1, _080E42F4 ldrb r1, [r1] strb r1, [r2] ldr r2, _080E42F8 ldr r1, _080E42FC ldrb r1, [r1] strb r1, [r2] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _080E42F0: .4byte 0x0202f7c8 _080E42F4: .4byte 0x02024c07 _080E42F8: .4byte 0x0202f7c9 _080E42FC: .4byte 0x02024c0a thumb_func_end sub_80E42D0 thumb_func_start sub_80E4300 sub_80E4300: @ 80E4300 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080E4318 adds r0, r4, 0 bl move_anim_task_del b _080E434E _080E4318: ldr r0, _080E4354 lsls r3, r4, 2 adds r3, r4 lsls r3, 3 adds r3, r0 ldr r1, _080E4358 ldrb r0, [r1] lsls r0, 2 ldr r2, _080E435C adds r0, r2 ldr r0, [r0] lsls r0, 31 lsrs r0, 31 strh r0, [r3, 0x8] ldrb r1, [r1] lsls r1, 2 adds r1, r2 ldrb r0, [r1] movs r2, 0x1 orrs r0, r2 strb r0, [r1] ldr r0, _080E4360 str r0, [r3] ldr r1, _080E4364 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] _080E434E: pop {r4} pop {r0} bx r0 .align 2, 0 _080E4354: .4byte 0x03004b20 _080E4358: .4byte 0x0202f7c8 _080E435C: .4byte 0x02017800 _080E4360: .4byte sub_80E4368 _080E4364: .4byte 0x0202f7b2 thumb_func_end sub_80E4300 thumb_func_start sub_80E4368 sub_80E4368: @ 80E4368 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E43B0 movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x80 lsls r0, 5 cmp r1, r0 bne _080E43A8 ldr r0, _080E43B4 ldrb r3, [r0] lsls r3, 2 ldr r0, _080E43B8 adds r3, r0 ldr r1, _080E43BC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x8] movs r1, 0x1 ands r1, r0 ldrb r2, [r3] movs r0, 0x2 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] adds r0, r4, 0 bl DestroyTask _080E43A8: pop {r4} pop {r0} bx r0 .align 2, 0 _080E43B0: .4byte 0x03004b00 _080E43B4: .4byte 0x0202f7c8 _080E43B8: .4byte 0x02017800 _080E43BC: .4byte 0x03004b20 thumb_func_end sub_80E4368 thumb_func_start sub_80E43C0 sub_80E43C0: @ 80E43C0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E43D8 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080E43E0 ldr r0, _080E43DC b _080E4408 .align 2, 0 _080E43D8: .4byte 0x020239f8 _080E43DC: .4byte sub_80E4C34 _080E43E0: movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 beq _080E4400 ldr r0, _080E43F8 ldrb r0, [r0] cmp r0, 0x2 beq _080E4400 movs r4, 0x3 ldr r0, _080E43FC b _080E4408 .align 2, 0 _080E43F8: .4byte gGameVersion _080E43FC: .4byte task00_battle_intro_80BC6C8 _080E4400: ldr r1, _080E4434 lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] _080E4408: movs r1, 0 bl CreateTask lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080E4438 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 movs r0, 0 strh r0, [r1, 0x8] strh r4, [r1, 0xA] strh r0, [r1, 0xC] strh r0, [r1, 0xE] strh r0, [r1, 0x10] strh r0, [r1, 0x12] strh r0, [r1, 0x14] pop {r4} pop {r0} bx r0 .align 2, 0 _080E4434: .4byte gUnknown_083DB56C _080E4438: .4byte 0x03004b20 thumb_func_end sub_80E43C0 thumb_func_start sub_80E443C sub_80E443C: @ 80E443C push {lr} lsls r0, 24 lsrs r0, 24 bl DestroyTask ldr r0, _080E4474 movs r1, 0 strh r1, [r0] ldr r0, _080E4478 strh r1, [r0] ldr r0, _080E447C strh r1, [r0] ldr r0, _080E4480 strh r1, [r0] ldr r0, _080E4484 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0xC ldr r2, _080E4488 adds r1, r2, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] pop {r0} bx r0 .align 2, 0 _080E4474: .4byte 0x030042c0 _080E4478: .4byte 0x030041b4 _080E447C: .4byte 0x03004288 _080E4480: .4byte 0x03004280 _080E4484: .4byte REG_BLDCNT _080E4488: .4byte 0x00003f3f thumb_func_end sub_80E443C thumb_func_start task_battle_intro_80BC47C task_battle_intro_80BC47C: @ 80E448C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080E44C4 ldrh r0, [r1] adds r0, 0x6 strh r0, [r1] ldr r1, _080E44C8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] mov r8, r1 cmp r0, 0x4 bls _080E44B8 b _080E46BE _080E44B8: lsls r0, 2 ldr r1, _080E44CC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E44C4: .4byte 0x030042c0 _080E44C8: .4byte 0x03004b20 _080E44CC: .4byte _080E44D0 .align 2, 0 _080E44D0: .4byte _080E44E4 .4byte _080E4514 .4byte _080E4540 .4byte _080E4588 .4byte _080E46B8 _080E44E4: ldr r0, _080E44FC ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080E4500 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 add r0, r8 movs r1, 0x10 b _080E450A .align 2, 0 _080E44FC: .4byte 0x020239f8 _080E4500: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 add r0, r8 movs r1, 0x1 _080E450A: strh r1, [r0, 0xC] ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _080E46BE _080E4514: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 mov r3, r8 adds r1, r0, r3 ldrh r0, [r1, 0xC] subs r0, 0x1 strh r0, [r1, 0xC] lsls r0, 16 cmp r0, 0 beq _080E452C b _080E46BE _080E452C: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] ldr r1, _080E453C movs r0, 0x3F strh r0, [r1] b _080E46BE .align 2, 0 _080E453C: .4byte REG_WININ _080E4540: ldr r1, _080E457C ldrh r0, [r1] subs r0, 0xFF strh r0, [r1] movs r1, 0xFF lsls r1, 8 ands r0, r1 movs r1, 0xC0 lsls r1, 6 cmp r0, r1 beq _080E4558 b _080E46BE _080E4558: lsls r1, r4, 2 adds r1, r4 lsls r1, 3 add r1, r8 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] movs r0, 0xF0 strh r0, [r1, 0xC] movs r0, 0x20 strh r0, [r1, 0xE] ldr r2, _080E4580 ldrh r1, [r2] ldr r0, _080E4584 ands r0, r1 strh r0, [r2] b _080E46BE .align 2, 0 _080E457C: .4byte 0x03004240 _080E4580: .4byte 0x02024de8 _080E4584: .4byte 0x0000fffe _080E4588: lsls r0, r4, 2 adds r1, r0, r4 lsls r1, 3 mov r5, r8 adds r2, r1, r5 ldrh r3, [r2, 0xE] movs r5, 0xE ldrsh r1, [r2, r5] mov r12, r0 cmp r1, 0 beq _080E45A4 subs r0, r3, 0x1 strh r0, [r2, 0xE] b _080E45D2 _080E45A4: movs r1, 0xA ldrsh r0, [r2, r1] cmp r0, 0x1 bne _080E45C4 ldr r2, _080E45BC ldrh r1, [r2] ldr r0, _080E45C0 cmp r1, r0 beq _080E45D2 subs r0, r1, 0x2 b _080E45D0 .align 2, 0 _080E45BC: .4byte 0x030041b4 _080E45C0: .4byte 0x0000ffb0 _080E45C4: ldr r2, _080E4690 ldrh r1, [r2] ldr r0, _080E4694 cmp r1, r0 beq _080E45D2 subs r0, r1, 0x1 _080E45D0: strh r0, [r2] _080E45D2: ldr r2, _080E4698 ldrh r1, [r2] movs r0, 0xFF lsls r0, 8 ands r0, r1 cmp r0, 0 beq _080E45E6 ldr r3, _080E469C adds r0, r1, r3 strh r0, [r2] _080E45E6: mov r5, r12 adds r0, r5, r4 lsls r0, 3 mov r2, r8 adds r1, r0, r2 ldrh r2, [r1, 0xC] movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0 beq _080E45FE subs r0, r2, 0x2 strh r0, [r1, 0xC] _080E45FE: movs r3, 0 ldr r5, _080E46A0 mov r9, r5 ldr r7, _080E46A4 mov r6, r9 adds r5, r1, 0 _080E460A: lsls r2, r3, 1 ldrb r1, [r6, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 adds r2, r7 ldrh r0, [r5, 0xC] strh r0, [r2] adds r3, 0x1 cmp r3, 0x4F ble _080E460A cmp r3, 0x9F bgt _080E464E ldr r7, _080E46A4 ldr r6, _080E46A0 ldr r1, _080E46A8 mov r2, r12 adds r0, r2, r4 lsls r0, 3 adds r5, r0, r1 _080E4634: lsls r2, r3, 1 ldrb r1, [r6, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 adds r2, r7 ldrh r0, [r5, 0xC] negs r0, r0 strh r0, [r2] adds r3, 0x1 cmp r3, 0x9F ble _080E4634 _080E464E: mov r3, r12 adds r0, r3, r4 lsls r0, 3 mov r5, r8 adds r1, r0, r5 movs r0, 0xC ldrsh r2, [r1, r0] cmp r2, 0 bne _080E46BE movs r0, 0x3 mov r3, r9 strb r0, [r3, 0x15] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] str r2, [sp] ldr r1, _080E46AC ldr r2, _080E46B0 mov r0, sp bl CpuSet ldr r1, _080E46B4 movs r5, 0x9C lsls r5, 8 adds r0, r5, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0xBC lsls r2, 7 adds r0, r2, 0 strh r0, [r1] b _080E46BE .align 2, 0 _080E4690: .4byte 0x030041b4 _080E4694: .4byte 0x0000ffc8 _080E4698: .4byte 0x03004240 _080E469C: .4byte 0xfffffc04 _080E46A0: .4byte 0x03004dc0 _080E46A4: .4byte 0x03004de0 _080E46A8: .4byte 0x03004b20 _080E46AC: .4byte 0x0600e000 _080E46B0: .4byte 0x05000200 _080E46B4: .4byte REG_BG1CNT _080E46B8: adds r0, r4, 0 bl sub_80E443C _080E46BE: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end task_battle_intro_80BC47C thumb_func_start task00_battle_intro_80BC6C8 task00_battle_intro_80BC6C8: @ 80E46CC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080E46F8 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0xA ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0x3 beq _080E470C cmp r0, 0x3 bgt _080E46FC cmp r0, 0x2 beq _080E4700 b _080E4714 .align 2, 0 _080E46F8: .4byte 0x03004b20 _080E46FC: cmp r0, 0x4 bne _080E4714 _080E4700: ldr r1, _080E4708 ldrh r0, [r1] adds r0, 0x8 b _080E4712 .align 2, 0 _080E4708: .4byte 0x030042c0 _080E470C: ldr r1, _080E4750 ldrh r0, [r1] adds r0, 0x6 _080E4712: strh r0, [r1] _080E4714: lsls r0, r5, 2 adds r1, r0, r5 lsls r1, 3 adds r4, r1, r2 movs r3, 0xA ldrsh r1, [r4, r3] adds r6, r0, 0 cmp r1, 0x4 bne _080E4778 ldr r7, _080E4754 ldrh r0, [r4, 0x14] bl cosine2 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _080E473A ldr r1, _080E4758 adds r0, r1 _080E473A: asrs r0, 9 subs r0, 0x8 strh r0, [r7] ldrh r1, [r4, 0x14] movs r2, 0x14 ldrsh r0, [r4, r2] cmp r0, 0xB3 bgt _080E475C adds r0, r1, 0x4 b _080E475E .align 2, 0 _080E4750: .4byte 0x030042c0 _080E4754: .4byte 0x030041b4 _080E4758: .4byte 0x000001ff _080E475C: adds r0, r1, 0x6 _080E475E: strh r0, [r4, 0x14] ldr r2, _080E4794 adds r0, r6, r5 lsls r0, 3 adds r3, r0, r2 movs r4, 0x14 ldrsh r1, [r3, r4] movs r0, 0xB4 lsls r0, 1 cmp r1, r0 bne _080E4778 movs r0, 0 strh r0, [r3, 0x14] _080E4778: adds r0, r6, r5 lsls r0, 3 adds r0, r2 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0x4 bls _080E4788 b _080E4996 _080E4788: lsls r0, 2 ldr r1, _080E4798 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E4794: .4byte 0x03004b20 _080E4798: .4byte _080E479C .align 2, 0 _080E479C: .4byte _080E47B0 .4byte _080E47E0 .4byte _080E480C .4byte _080E485C .4byte _080E4990 _080E47B0: ldr r1, _080E47CC adds r0, r6, r5 lsls r0, 3 adds r2, r0, r1 movs r3, 0x10 strh r3, [r2, 0x10] ldr r0, _080E47D0 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080E47D4 strh r3, [r2, 0xC] b _080E47D8 .align 2, 0 _080E47CC: .4byte 0x03004b20 _080E47D0: .4byte 0x020239f8 _080E47D4: movs r0, 0x1 strh r0, [r2, 0xC] _080E47D8: ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] b _080E4996 _080E47E0: ldr r0, _080E4804 adds r1, r6, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xC] subs r0, 0x1 strh r0, [r1, 0xC] lsls r0, 16 cmp r0, 0 beq _080E47F6 b _080E4996 _080E47F6: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] ldr r1, _080E4808 movs r0, 0x3F strh r0, [r1] b _080E4996 .align 2, 0 _080E4804: .4byte 0x03004b20 _080E4808: .4byte REG_WININ _080E480C: ldr r1, _080E484C ldrh r0, [r1] subs r0, 0xFF strh r0, [r1] movs r1, 0xFF lsls r1, 8 ands r0, r1 movs r1, 0xC0 lsls r1, 6 cmp r0, r1 beq _080E4824 b _080E4996 _080E4824: ldr r0, _080E4850 adds r1, r6, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] movs r0, 0xF0 strh r0, [r1, 0xC] movs r0, 0x20 strh r0, [r1, 0xE] movs r0, 0x1 strh r0, [r1, 0x12] ldr r2, _080E4854 ldrh r1, [r2] ldr r0, _080E4858 ands r0, r1 strh r0, [r2] b _080E4996 .align 2, 0 _080E484C: .4byte 0x03004240 _080E4850: .4byte 0x03004b20 _080E4854: .4byte 0x02024de8 _080E4858: .4byte 0x0000fffe _080E485C: adds r0, r6, r5 lsls r0, 3 adds r1, r0, r2 ldrh r3, [r1, 0xE] movs r4, 0xE ldrsh r0, [r1, r4] cmp r0, 0 beq _080E4898 subs r0, r3, 0x1 strh r0, [r1, 0xE] lsls r0, 16 asrs r3, r0, 16 cmp r3, 0 bne _080E48B8 ldr r1, _080E488C ldr r4, _080E4890 adds r0, r4, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0xF strh r0, [r1] ldr r0, _080E4894 strh r3, [r0] b _080E48B8 .align 2, 0 _080E488C: .4byte REG_BLDCNT _080E4890: .4byte 0x00001842 _080E4894: .4byte REG_BLDY _080E4898: ldrh r3, [r1, 0x10] movs r0, 0x1F ands r0, r3 cmp r0, 0 beq _080E48B8 ldrh r0, [r1, 0x12] subs r0, 0x1 strh r0, [r1, 0x12] lsls r0, 16 cmp r0, 0 bne _080E48B8 adds r0, r3, 0 adds r0, 0xFF strh r0, [r1, 0x10] movs r0, 0x4 strh r0, [r1, 0x12] _080E48B8: ldr r3, _080E4970 ldrh r1, [r3] movs r0, 0xFF lsls r0, 8 ands r0, r1 cmp r0, 0 beq _080E48CC ldr r4, _080E4974 adds r0, r1, r4 strh r0, [r3] _080E48CC: adds r0, r6, r5 lsls r0, 3 adds r1, r0, r2 ldrh r2, [r1, 0xC] movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0 beq _080E48E0 subs r0, r2, 0x2 strh r0, [r1, 0xC] _080E48E0: movs r3, 0 ldr r4, _080E4978 mov r8, r4 ldr r0, _080E497C mov r12, r0 mov r7, r8 adds r4, r1, 0 _080E48EE: lsls r2, r3, 1 ldrb r1, [r7, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 add r2, r12 ldrh r0, [r4, 0xC] strh r0, [r2] adds r3, 0x1 cmp r3, 0x4F ble _080E48EE cmp r3, 0x9F bgt _080E4932 ldr r1, _080E497C mov r12, r1 ldr r7, _080E4978 ldr r1, _080E4980 adds r0, r6, r5 lsls r0, 3 adds r4, r0, r1 _080E4918: lsls r2, r3, 1 ldrb r1, [r7, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 add r2, r12 ldrh r0, [r4, 0xC] negs r0, r0 strh r0, [r2] adds r3, 0x1 cmp r3, 0x9F ble _080E4918 _080E4932: ldr r1, _080E4980 adds r0, r6, r5 lsls r0, 3 adds r1, r0, r1 movs r3, 0xC ldrsh r2, [r1, r3] cmp r2, 0 bne _080E4996 movs r0, 0x3 mov r4, r8 strb r0, [r4, 0x15] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] str r2, [sp] ldr r1, _080E4984 ldr r2, _080E4988 mov r0, sp bl CpuSet ldr r1, _080E498C movs r2, 0x9C lsls r2, 8 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r3, 0xBC lsls r3, 7 adds r0, r3, 0 strh r0, [r1] b _080E4996 .align 2, 0 _080E4970: .4byte 0x03004240 _080E4974: .4byte 0xfffffc04 _080E4978: .4byte 0x03004dc0 _080E497C: .4byte 0x03004de0 _080E4980: .4byte 0x03004b20 _080E4984: .4byte 0x0600e000 _080E4988: .4byte 0x05000200 _080E498C: .4byte REG_BG1CNT _080E4990: adds r0, r5, 0 bl sub_80E443C _080E4996: ldr r0, _080E49B8 adds r1, r6, r5 lsls r1, 3 adds r2, r1, r0 movs r4, 0x8 ldrsh r0, [r2, r4] cmp r0, 0x4 beq _080E49AC ldr r1, _080E49BC ldrh r0, [r2, 0x10] strh r0, [r1] _080E49AC: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E49B8: .4byte 0x03004b20 _080E49BC: .4byte REG_BLDALPHA thumb_func_end task00_battle_intro_80BC6C8 thumb_func_start task_battle_intro_anim task_battle_intro_anim: @ 80E49C0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080E49F4 ldrh r0, [r1] adds r0, 0x8 strh r0, [r1] ldr r1, _080E49F8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r5, r1, 0 cmp r0, 0x4 bls _080E49EA b _080E4C06 _080E49EA: lsls r0, 2 ldr r1, _080E49FC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E49F4: .4byte 0x030042c0 _080E49F8: .4byte 0x03004b20 _080E49FC: .4byte _080E4A00 .align 2, 0 _080E4A00: .4byte _080E4A14 .4byte _080E4A6C .4byte _080E4A9C .4byte _080E4AEC .4byte _080E4C00 _080E4A14: ldr r1, _080E4A48 ldr r3, _080E4A4C adds r0, r3, 0 strh r0, [r1] ldr r0, _080E4A50 ldr r6, _080E4A54 adds r2, r6, 0 strh r2, [r0] adds r1, 0x4 movs r0, 0 strh r0, [r1] ldr r1, _080E4A58 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r3, r0, r1 strh r2, [r3, 0x10] ldr r0, _080E4A5C ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080E4A60 movs r0, 0x10 b _080E4A62 .align 2, 0 _080E4A48: .4byte REG_BLDCNT _080E4A4C: .4byte 0x00001842 _080E4A50: .4byte REG_BLDALPHA _080E4A54: .4byte 0x00000808 _080E4A58: .4byte 0x03004b20 _080E4A5C: .4byte 0x020239f8 _080E4A60: movs r0, 0x1 _080E4A62: strh r0, [r3, 0xC] ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] b _080E4C06 _080E4A6C: ldr r0, _080E4A94 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xC] subs r0, 0x1 strh r0, [r1, 0xC] lsls r0, 16 cmp r0, 0 beq _080E4A84 b _080E4C06 _080E4A84: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] ldr r1, _080E4A98 movs r0, 0x3F strh r0, [r1] b _080E4C06 .align 2, 0 _080E4A94: .4byte 0x03004b20 _080E4A98: .4byte REG_WININ _080E4A9C: ldr r1, _080E4ADC ldrh r0, [r1] subs r0, 0xFF strh r0, [r1] movs r1, 0xFF lsls r1, 8 ands r0, r1 movs r1, 0xC0 lsls r1, 6 cmp r0, r1 beq _080E4AB4 b _080E4C06 _080E4AB4: ldr r0, _080E4AE0 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] movs r0, 0xF0 strh r0, [r1, 0xC] movs r0, 0x20 strh r0, [r1, 0xE] movs r0, 0x1 strh r0, [r1, 0x12] ldr r2, _080E4AE4 ldrh r1, [r2] ldr r0, _080E4AE8 ands r0, r1 strh r0, [r2] b _080E4C06 .align 2, 0 _080E4ADC: .4byte 0x03004240 _080E4AE0: .4byte 0x03004b20 _080E4AE4: .4byte 0x02024de8 _080E4AE8: .4byte 0x0000fffe _080E4AEC: lsls r0, r4, 2 adds r1, r0, r4 lsls r1, 3 adds r2, r1, r5 ldrh r3, [r2, 0xE] movs r6, 0xE ldrsh r1, [r2, r6] mov r12, r0 cmp r1, 0 beq _080E4B06 subs r0, r3, 0x1 strh r0, [r2, 0xE] b _080E4B26 _080E4B06: ldrh r1, [r2, 0x10] movs r0, 0xF ands r0, r1 cmp r0, 0 beq _080E4B26 ldrh r0, [r2, 0x12] subs r0, 0x1 strh r0, [r2, 0x12] lsls r0, 16 cmp r0, 0 bne _080E4B26 adds r0, r1, 0 adds r0, 0xFF strh r0, [r2, 0x10] movs r0, 0x6 strh r0, [r2, 0x12] _080E4B26: ldr r2, _080E4BE0 ldrh r1, [r2] movs r0, 0xFF lsls r0, 8 ands r0, r1 cmp r0, 0 beq _080E4B3A ldr r3, _080E4BE4 adds r0, r1, r3 strh r0, [r2] _080E4B3A: mov r6, r12 adds r0, r6, r4 lsls r0, 3 adds r1, r0, r5 ldrh r2, [r1, 0xC] movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0 beq _080E4B50 subs r0, r2, 0x2 strh r0, [r1, 0xC] _080E4B50: movs r3, 0 ldr r6, _080E4BE8 mov r8, r6 ldr r7, _080E4BEC adds r5, r1, 0 _080E4B5A: lsls r2, r3, 1 ldrb r1, [r6, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 adds r2, r7 ldrh r0, [r5, 0xC] strh r0, [r2] adds r3, 0x1 cmp r3, 0x4F ble _080E4B5A cmp r3, 0x9F bgt _080E4B9E ldr r7, _080E4BEC ldr r6, _080E4BE8 ldr r1, _080E4BF0 mov r2, r12 adds r0, r2, r4 lsls r0, 3 adds r5, r0, r1 _080E4B84: lsls r2, r3, 1 ldrb r1, [r6, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 adds r2, r7 ldrh r0, [r5, 0xC] negs r0, r0 strh r0, [r2] adds r3, 0x1 cmp r3, 0x9F ble _080E4B84 _080E4B9E: ldr r1, _080E4BF0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 movs r3, 0xC ldrsh r2, [r1, r3] cmp r2, 0 bne _080E4C06 movs r0, 0x3 mov r6, r8 strb r0, [r6, 0x15] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] str r2, [sp] ldr r1, _080E4BF4 ldr r2, _080E4BF8 mov r0, sp bl CpuSet ldr r1, _080E4BFC movs r2, 0x9C lsls r2, 8 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r3, 0xBC lsls r3, 7 adds r0, r3, 0 strh r0, [r1] b _080E4C06 .align 2, 0 _080E4BE0: .4byte 0x03004240 _080E4BE4: .4byte 0xfffffc04 _080E4BE8: .4byte 0x03004dc0 _080E4BEC: .4byte 0x03004de0 _080E4BF0: .4byte 0x03004b20 _080E4BF4: .4byte 0x0600e000 _080E4BF8: .4byte 0x05000200 _080E4BFC: .4byte REG_BG1CNT _080E4C00: adds r0, r4, 0 bl sub_80E443C _080E4C06: ldr r0, _080E4C2C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r2, r1, r0 movs r6, 0x8 ldrsh r0, [r2, r6] cmp r0, 0x4 beq _080E4C1E ldr r1, _080E4C30 ldrh r0, [r2, 0x10] strh r0, [r1] _080E4C1E: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E4C2C: .4byte 0x03004b20 _080E4C30: .4byte REG_BLDALPHA thumb_func_end task_battle_intro_anim thumb_func_start sub_80E4C34 sub_80E4C34: @ 80E4C34 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080E4C80 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r7, r0, r1 movs r1, 0x8 ldrsh r0, [r7, r1] cmp r0, 0x1 ble _080E4CAA movs r2, 0x10 ldrsh r0, [r7, r2] cmp r0, 0 bne _080E4CAA ldr r2, _080E4C84 ldrh r1, [r2] movs r0, 0x80 lsls r0, 8 ands r0, r1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 bne _080E4C72 cmp r1, 0x4F bhi _080E4C8C _080E4C72: adds r0, r1, 0x3 strh r0, [r2] ldr r1, _080E4C88 ldrh r0, [r1] subs r0, 0x3 strh r0, [r1] b _080E4CAA .align 2, 0 _080E4C80: .4byte 0x03004b20 _080E4C84: .4byte 0x030042c0 _080E4C88: .4byte 0x03004288 _080E4C8C: str r5, [sp] ldr r1, _080E4CCC ldr r4, _080E4CD0 mov r0, sp adds r2, r4, 0 bl CpuSet str r5, [sp, 0x4] add r0, sp, 0x4 ldr r1, _080E4CD4 adds r2, r4, 0 bl CpuSet movs r0, 0x1 strh r0, [r7, 0x10] _080E4CAA: ldr r0, _080E4CD8 lsls r2, r6, 2 adds r1, r2, r6 lsls r1, 3 adds r1, r0 movs r3, 0x8 ldrsh r1, [r1, r3] mov r12, r0 adds r5, r2, 0 cmp r1, 0x4 bls _080E4CC2 b _080E4EBA _080E4CC2: lsls r0, r1, 2 ldr r1, _080E4CDC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E4CCC: .4byte 0x0600e000 _080E4CD0: .4byte 0x05000200 _080E4CD4: .4byte 0x0600f000 _080E4CD8: .4byte 0x03004b20 _080E4CDC: .4byte _080E4CE0 .align 2, 0 _080E4CE0: .4byte _080E4CF4 .4byte _080E4D06 .4byte _080E4DA8 .4byte _080E4DEC .4byte _080E4EB4 _080E4CF4: adds r0, r5, r6 lsls r0, 3 add r0, r12 movs r1, 0x10 strh r1, [r0, 0xC] ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _080E4EBA _080E4D06: adds r0, r5, r6 lsls r0, 3 mov r2, r12 adds r1, r0, r2 ldrh r0, [r1, 0xC] subs r0, 0x1 strh r0, [r1, 0xC] lsls r0, 16 cmp r0, 0 beq _080E4D1C b _080E4EBA _080E4D1C: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] ldr r5, _080E4D8C ldr r4, _080E4D90 ldr r3, _080E4D94 adds r6, r4, r3 ldrb r0, [r6] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r3, [r1, 0x1] movs r2, 0xD negs r2, r2 adds r0, r2, 0 ands r0, r3 movs r3, 0x8 mov r8, r3 mov r3, r8 orrs r0, r3 strb r0, [r1, 0x1] ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r6, r5, 0 adds r6, 0x1C adds r0, r6 ldr r3, _080E4D98 str r3, [r0] ldr r0, _080E4D9C adds r4, r0 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x1] ands r2, r1 mov r1, r8 orrs r2, r1 strb r2, [r0, 0x1] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 str r3, [r0] ldr r1, _080E4DA0 movs r0, 0x3F strh r0, [r1] adds r1, 0x2 ldr r2, _080E4DA4 b _080E4E94 .align 2, 0 _080E4D8C: .4byte 0x02020004 _080E4D90: .4byte 0x02000000 _080E4D94: .4byte 0x0001608a _080E4D98: .4byte sub_800FE20 _080E4D9C: .4byte 0x0001608b _080E4DA0: .4byte REG_WININ _080E4DA4: .4byte 0x00003f06 _080E4DA8: ldr r1, _080E4DE0 ldrh r0, [r1] subs r0, 0xFF strh r0, [r1] movs r1, 0xFF lsls r1, 8 ands r0, r1 movs r1, 0xC0 lsls r1, 6 cmp r0, r1 beq _080E4DC0 b _080E4EBA _080E4DC0: adds r1, r5, r6 lsls r1, 3 add r1, r12 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] movs r0, 0xF0 strh r0, [r1, 0xC] movs r0, 0x20 strh r0, [r1, 0xE] ldr r2, _080E4DE4 ldrh r1, [r2] ldr r0, _080E4DE8 ands r0, r1 strh r0, [r2] b _080E4EBA .align 2, 0 _080E4DE0: .4byte 0x03004240 _080E4DE4: .4byte 0x02024de8 _080E4DE8: .4byte 0x0000fffe _080E4DEC: ldr r2, _080E4E9C ldrh r1, [r2] movs r0, 0xFF lsls r0, 8 ands r0, r1 cmp r0, 0 beq _080E4E00 ldr r3, _080E4EA0 adds r0, r1, r3 strh r0, [r2] _080E4E00: adds r0, r5, r6 lsls r0, 3 mov r2, r12 adds r1, r0, r2 ldrh r2, [r1, 0xC] movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0 beq _080E4E16 subs r0, r2, 0x2 strh r0, [r1, 0xC] _080E4E16: movs r3, 0 ldr r0, _080E4EA4 mov r9, r0 ldr r2, _080E4EA8 mov r8, r2 mov r7, r9 adds r4, r1, 0 _080E4E24: lsls r2, r3, 1 ldrb r1, [r7, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 add r2, r8 ldrh r0, [r4, 0xC] strh r0, [r2] adds r3, 0x1 cmp r3, 0x4F ble _080E4E24 cmp r3, 0x9F bgt _080E4E68 ldr r0, _080E4EA8 mov r8, r0 ldr r7, _080E4EA4 ldr r1, _080E4EAC adds r0, r5, r6 lsls r0, 3 adds r4, r0, r1 _080E4E4E: lsls r2, r3, 1 ldrb r1, [r7, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 add r2, r8 ldrh r0, [r4, 0xC] negs r0, r0 strh r0, [r2] adds r3, 0x1 cmp r3, 0x9F ble _080E4E4E _080E4E68: adds r0, r5, r6 lsls r0, 3 mov r2, r12 adds r1, r0, r2 movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0 bne _080E4EBA movs r0, 0x3 mov r2, r9 strb r0, [r2, 0x15] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] ldr r1, _080E4EB0 movs r3, 0x9C lsls r3, 8 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0xBC lsls r2, 7 _080E4E94: adds r0, r2, 0 strh r0, [r1] b _080E4EBA .align 2, 0 _080E4E9C: .4byte 0x03004240 _080E4EA0: .4byte 0xfffffc04 _080E4EA4: .4byte 0x03004dc0 _080E4EA8: .4byte 0x03004de0 _080E4EAC: .4byte 0x03004b20 _080E4EB0: .4byte REG_BG1CNT _080E4EB4: adds r0, r6, 0 bl sub_80E443C _080E4EBA: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80E4C34 thumb_func_start unref_sub_80E4EC8 unref_sub_80E4EC8: @ 80E4EC8 push {r4,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 movs r4, 0x80 lsls r4, 7 str r4, [sp] movs r4, 0x1E str r4, [sp, 0x4] movs r4, 0x1 str r4, [sp, 0x8] bl sub_80E4EF8 add sp, 0xC pop {r4} pop {r0} bx r0 thumb_func_end unref_sub_80E4EC8 thumb_func_start sub_80E4EF8 sub_80E4EF8: @ 80E4EF8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r9, r1 adds r4, r2, 0 ldr r1, [sp, 0x24] mov r8, r1 ldr r1, [sp, 0x28] ldr r5, [sp, 0x2C] lsls r0, 24 lsrs r0, 24 mov r10, r0 mov r7, r9 lsls r7, 24 adds r0, r7, 0 lsrs r0, 24 mov r9, r0 lsls r4, 24 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 str r3, [sp] mov r3, r8 lsls r3, 16 mov r8, r3 lsrs r6, r3, 16 lsls r1, 24 lsrs r7, r1, 24 lsls r5, 24 lsrs r5, 24 adds r0, r4, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 ldr r2, _080E4FCC ldr r1, _080E4FD0 lsls r4, 2 adds r4, r1 ldr r1, _080E4FD4 adds r0, r1 ldrb r1, [r0] lsls r1, 11 ldr r0, [r4] adds r0, r1 str r0, [r2] movs r0, 0xC0 lsls r0, 19 adds r6, r0 str r6, [r2, 0x4] ldr r0, _080E4FD8 str r0, [r2, 0x8] ldr r0, [r2, 0x8] mov r0, r8 lsrs r0, 21 lsls r5, 9 subs r5, r0, r5 mov r0, r9 adds r1, r0, 0 adds r1, 0x8 cmp r0, r1 bge _080E4FBC mov r9, r1 mov r1, r10 lsls r1, 1 mov r8, r1 lsls r7, 11 mov r12, r7 _080E4F86: mov r2, r10 adds r4, r2, 0 adds r4, 0x8 adds r1, r0, 0x1 cmp r2, r4 bge _080E4FB6 ldr r3, [sp] lsls r6, r3, 12 lsls r0, 6 movs r7, 0xC0 lsls r7, 19 adds r0, r7 add r0, r12 mov r7, r8 adds r3, r7, r0 subs r2, r4, r2 _080E4FA6: adds r0, r5, 0 orrs r0, r6 strh r0, [r3] adds r5, 0x1 adds r3, 0x2 subs r2, 0x1 cmp r2, 0 bne _080E4FA6 _080E4FB6: adds r0, r1, 0 cmp r0, r9 blt _080E4F86 _080E4FBC: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E4FCC: .4byte 0x040000d4 _080E4FD0: .4byte gUnknown_081FAF4C _080E4FD4: .4byte 0x02024e84 _080E4FD8: .4byte 0x80000400 thumb_func_end sub_80E4EF8 thumb_func_start unref_sub_80E4FDC unref_sub_80E4FDC: @ 80E4FDC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r4, [sp, 0x24] ldr r5, [sp, 0x28] mov r8, r5 ldr r5, [sp, 0x2C] ldr r6, [sp, 0x30] mov r9, r6 lsls r0, 24 lsrs r0, 24 mov r12, r0 lsls r1, 24 lsls r2, 24 lsls r3, 24 lsls r4, 24 lsrs r4, 24 mov r10, r4 mov r7, r8 lsls r7, 16 lsrs r6, r7, 16 lsls r5, 24 lsrs r5, 24 mov r0, r9 lsls r0, 24 mov r9, r0 ldr r4, _080E509C ldr r0, _080E50A0 lsrs r2, 22 adds r2, r0 lsrs r3, 13 ldr r0, [r2] adds r0, r3 str r0, [r4] movs r0, 0xC0 lsls r0, 19 adds r6, r0 str r6, [r4, 0x4] ldr r0, _080E50A4 str r0, [r4, 0x8] ldr r0, [r4, 0x8] adds r2, r7, 0 lsrs r2, 21 mov r6, r9 lsrs r6, 15 subs r4, r2, r6 lsrs r0, r1, 24 adds r1, r0, 0 adds r1, 0x8 cmp r0, r1 bge _080E508C mov r9, r1 mov r7, r12 lsls r7, 1 mov r8, r7 lsls r5, 11 str r5, [sp] _080E5054: mov r2, r12 adds r3, r2, 0 adds r3, 0x8 adds r5, r0, 0x1 cmp r2, r3 bge _080E5086 mov r1, r10 lsls r6, r1, 12 lsls r0, 6 movs r7, 0xC0 lsls r7, 19 adds r0, r7 ldr r1, [sp] adds r0, r1, r0 mov r7, r8 adds r1, r7, r0 subs r2, r3, r2 _080E5076: adds r0, r4, 0 orrs r0, r6 strh r0, [r1] adds r4, 0x1 adds r1, 0x2 subs r2, 0x1 cmp r2, 0 bne _080E5076 _080E5086: adds r0, r5, 0 cmp r0, r9 blt _080E5054 _080E508C: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E509C: .4byte 0x040000d4 _080E50A0: .4byte gUnknown_081FAF4C _080E50A4: .4byte 0x80000400 thumb_func_end unref_sub_80E4FDC thumb_func_start MovePlayerOnBike MovePlayerOnBike: @ 80E50A8 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 16 lsrs r4, r1, 16 lsls r2, 16 lsrs r2, 16 ldr r0, _080E50CC ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080E50D0 adds r0, r3, 0 adds r1, r4, 0 bl MovePlayerOnMachBike b _080E50D8 .align 2, 0 _080E50CC: .4byte 0x0202e858 _080E50D0: adds r0, r3, 0 adds r1, r4, 0 bl MovePlayerOnAcroBike _080E50D8: pop {r4} pop {r0} bx r0 thumb_func_end MovePlayerOnBike thumb_func_start MovePlayerOnMachBike MovePlayerOnMachBike: @ 80E50E0 push {r4,lr} sub sp, 0x4 mov r1, sp strb r0, [r1] ldr r4, _080E510C mov r0, sp bl CheckMovementInputMachBike lsls r0, 24 lsrs r0, 22 adds r0, r4 mov r1, sp ldrb r1, [r1] ldr r2, [r0] adds r0, r1, 0 bl _call_via_r2 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080E510C: .4byte gUnknown_083DB594 thumb_func_end MovePlayerOnMachBike thumb_func_start CheckMovementInputMachBike CheckMovementInputMachBike: @ 80E5110 push {r4,lr} adds r4, r0, 0 bl player_get_direction_upper_nybble lsls r0, 24 lsrs r0, 24 adds r3, r0, 0 ldrb r1, [r4] cmp r1, 0 bne _080E5138 strb r0, [r4] ldr r2, _080E5134 ldrb r0, [r2, 0xB] cmp r0, 0 bne _080E514C strb r1, [r2, 0x2] movs r0, 0 b _080E5160 .align 2, 0 _080E5134: .4byte 0x0202e858 _080E5138: ldr r2, _080E5154 cmp r1, r3 beq _080E515C ldrb r0, [r2, 0x2] cmp r0, 0x2 beq _080E515C ldrb r0, [r2, 0xB] cmp r0, 0 beq _080E5158 strb r3, [r4] _080E514C: movs r0, 0x2 strb r0, [r2, 0x2] movs r0, 0x3 b _080E5160 .align 2, 0 _080E5154: .4byte 0x0202e858 _080E5158: movs r0, 0x1 b _080E515E _080E515C: movs r0, 0x2 _080E515E: strb r0, [r2, 0x2] _080E5160: pop {r4} pop {r1} bx r1 thumb_func_end CheckMovementInputMachBike thumb_func_start sub_80E5168 sub_80E5168: @ 80E5168 push {lr} lsls r0, 24 lsrs r0, 24 bl PlayerFaceDirection bl sub_80E6024 pop {r0} bx r0 thumb_func_end sub_80E5168 thumb_func_start sub_80E517C sub_80E517C: @ 80E517C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080E51AC ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E51B0 adds r4, r0, r1 ldrb r1, [r4, 0x1E] adds r0, r5, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 beq _080E51B4 adds r0, r5, 0 bl PlayerTurnInPlace bl sub_80E6024 b _080E51BE .align 2, 0 _080E51AC: .4byte 0x0202e858 _080E51B0: .4byte 0x030048a0 _080E51B4: ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl sub_80E5168 _080E51BE: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80E517C thumb_func_start sub_80E51C4 sub_80E51C4: @ 80E51C4 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 adds r7, r5, 0 ldr r6, _080E51F8 ldrb r1, [r6, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E51FC adds r4, r0, r1 ldrb r1, [r4, 0x1E] adds r0, r5, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E520A ldrb r0, [r6, 0xB] cmp r0, 0 beq _080E5200 ldrb r0, [r4, 0x18] lsrs r0, 4 bl sub_80E5270 b _080E5266 .align 2, 0 _080E51F8: .4byte 0x0202e858 _080E51FC: .4byte 0x030048a0 _080E5200: ldrb r0, [r4, 0x18] lsrs r0, 4 bl sub_80E5168 b _080E5266 _080E520A: adds r0, r5, 0 bl sub_80E5D34 lsls r0, 24 lsrs r4, r0, 24 movs r1, 0xFF lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0xA bhi _080E5242 cmp r4, 0x6 bne _080E522C adds r0, r5, 0 bl PlayerJumpLedge b _080E5266 _080E522C: bl sub_80E6024 subs r0, r4, 0x5 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _080E5266 adds r0, r5, 0 bl PlayerOnBikeCollide b _080E5266 _080E5242: ldr r1, _080E526C ldrb r0, [r6, 0xA] lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r7, 0 bl _call_via_r1 ldrb r2, [r6, 0xA] lsls r0, r2, 24 lsrs r1, r0, 24 lsrs r0, 25 adds r0, r2, r0 strb r0, [r6, 0xB] cmp r1, 0x1 bhi _080E5266 adds r0, r2, 0x1 strb r0, [r6, 0xA] _080E5266: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E526C: .4byte gUnknown_083DB5A4 thumb_func_end sub_80E51C4 thumb_func_start sub_80E5270 sub_80E5270: @ 80E5270 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 ldr r6, _080E52A8 ldrb r0, [r6, 0xB] cmp r0, 0 beq _080E5286 subs r0, 0x1 strb r0, [r6, 0xB] strb r0, [r6, 0xA] _080E5286: adds r0, r4, 0 bl sub_80E5D34 lsls r0, 24 lsrs r5, r0, 24 movs r1, 0xFF lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0xA bhi _080E52C2 cmp r5, 0x6 bne _080E52AC adds r0, r4, 0 bl PlayerJumpLedge b _080E52D2 .align 2, 0 _080E52A8: .4byte 0x0202e858 _080E52AC: bl sub_80E6024 subs r0, r5, 0x5 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _080E52D2 adds r0, r4, 0 bl PlayerOnBikeCollide b _080E52D2 _080E52C2: ldr r0, _080E52D8 ldrb r1, [r6, 0xA] lsls r1, 2 adds r1, r0 ldr r1, [r1] adds r0, r7, 0 bl _call_via_r1 _080E52D2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E52D8: .4byte gUnknown_083DB5A4 thumb_func_end sub_80E5270 thumb_func_start MovePlayerOnAcroBike MovePlayerOnAcroBike: @ 80E52DC push {r4,lr} sub sp, 0x4 mov r3, sp strb r0, [r3] lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 ldr r4, _080E5310 mov r0, sp bl CheckMovementInputAcroBike lsls r0, 24 lsrs r0, 22 adds r0, r4 mov r1, sp ldrb r1, [r1] ldr r2, [r0] adds r0, r1, 0 bl _call_via_r2 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080E5310: .4byte gUnknown_083DB5B0 thumb_func_end MovePlayerOnAcroBike thumb_func_start CheckMovementInputAcroBike CheckMovementInputAcroBike: @ 80E5314 push {r4,lr} lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 ldr r4, _080E5338 ldr r3, _080E533C ldrb r3, [r3, 0x8] lsls r3, 2 adds r3, r4 ldr r3, [r3] bl _call_via_r3 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _080E5338: .4byte gUnknown_083DB5E4 _080E533C: .4byte 0x0202e858 thumb_func_end CheckMovementInputAcroBike thumb_func_start CheckMovementInputAcroBikeNormal CheckMovementInputAcroBikeNormal: @ 80E5340 push {r4-r6,lr} adds r4, r0, 0 lsls r1, 16 lsrs r6, r1, 16 lsls r2, 16 lsrs r5, r2, 16 bl player_get_direction_upper_nybble lsls r0, 24 lsrs r3, r0, 24 ldr r2, _080E5374 movs r0, 0 strb r0, [r2, 0xA] ldrb r1, [r4] cmp r1, 0 bne _080E5380 movs r0, 0x2 ands r0, r6 cmp r0, 0 beq _080E5378 strb r3, [r4] strb r1, [r2, 0x2] movs r0, 0x2 strb r0, [r2, 0x8] movs r0, 0x3 b _080E53D4 .align 2, 0 _080E5374: .4byte 0x0202e858 _080E5378: strb r3, [r4] strb r1, [r2, 0x2] movs r0, 0 b _080E53D4 _080E5380: cmp r1, r3 bne _080E53A6 movs r0, 0x2 ands r0, r5 cmp r0, 0 beq _080E539E ldrb r0, [r2, 0xB] cmp r0, 0 bne _080E539E adds r0, 0x1 strb r0, [r2, 0xB] movs r0, 0x4 strb r0, [r2, 0x8] movs r0, 0xB b _080E53D4 _080E539E: ldrb r0, [r4] ldr r2, _080E53CC cmp r0, r3 beq _080E53D0 _080E53A6: ldr r0, _080E53CC ldrb r1, [r0, 0x2] adds r2, r0, 0 cmp r1, 0x2 beq _080E53D0 movs r1, 0 movs r0, 0x1 strb r0, [r2, 0x8] ldrb r0, [r4] strb r0, [r2, 0x9] strb r1, [r2, 0x2] adds r0, r4, 0 adds r1, r6, 0 adds r2, r5, 0 bl CheckMovementInputAcroBike lsls r0, 24 lsrs r0, 24 b _080E53D4 .align 2, 0 _080E53CC: .4byte 0x0202e858 _080E53D0: movs r0, 0x2 strb r0, [r2, 0x2] _080E53D4: pop {r4-r6} pop {r1} bx r1 thumb_func_end CheckMovementInputAcroBikeNormal thumb_func_start CheckMovementInputAcroBikeChangingDirection CheckMovementInputAcroBikeChangingDirection: @ 80E53DC push {r4-r6,lr} adds r5, r0, 0 ldr r4, _080E5404 ldrb r0, [r4, 0x9] strb r0, [r5] ldrb r0, [r4, 0xA] adds r0, 0x1 strb r0, [r4, 0xA] lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bls _080E5408 movs r0, 0x1 strb r0, [r4, 0x2] movs r0, 0 strb r0, [r4, 0x8] bl sub_80E6024 movs r0, 0x1 b _080E544E .align 2, 0 _080E5404: .4byte 0x0202e858 _080E5408: bl player_get_direction_upper_nybble lsls r0, 24 lsrs r6, r0, 24 bl sub_80E5C2C ldrb r1, [r5] lsls r0, 24 lsrs r0, 24 cmp r1, r0 bne _080E544A bl sub_80E6024 movs r0, 0x1 strb r0, [r4, 0xB] adds r0, r6, 0 bl GetOppositeDirection ldrb r1, [r5] lsls r0, 24 lsrs r0, 24 cmp r1, r0 bne _080E543E movs r0, 0x6 strb r0, [r4, 0x8] movs r0, 0x9 b _080E544E _080E543E: movs r0, 0x2 strb r0, [r4, 0x2] movs r0, 0x5 strb r0, [r4, 0x8] movs r0, 0x8 b _080E544E _080E544A: strb r6, [r5] movs r0, 0 _080E544E: pop {r4-r6} pop {r1} bx r1 thumb_func_end CheckMovementInputAcroBikeChangingDirection thumb_func_start CheckMovementInputAcroBikeStandingWheelie CheckMovementInputAcroBikeStandingWheelie: @ 80E5454 push {r4-r7,lr} adds r7, r0, 0 lsls r4, r2, 16 lsrs r4, 16 bl player_get_direction_upper_nybble lsls r0, 24 lsrs r6, r0, 24 ldr r5, _080E54A0 ldrb r1, [r5, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E54A4 adds r1, r0, r1 movs r0, 0 strb r0, [r5, 0x2] movs r0, 0x2 ands r4, r0 lsls r4, 16 lsrs r4, 16 cmp r4, 0 bne _080E54A8 strb r4, [r5, 0xA] ldrb r0, [r1, 0x1E] bl MetatileBehavior_IsBumpySlope lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080E54AE strb r6, [r7] strb r0, [r5, 0x8] bl sub_80E6024 movs r0, 0x4 b _080E54EC .align 2, 0 _080E54A0: .4byte 0x0202e858 _080E54A4: .4byte 0x030048a0 _080E54A8: ldrb r0, [r5, 0xA] adds r0, 0x1 strb r0, [r5, 0xA] _080E54AE: ldr r1, _080E54C4 ldrb r0, [r1, 0xA] cmp r0, 0x27 bls _080E54C8 strb r6, [r7] movs r0, 0x3 strb r0, [r1, 0x8] bl sub_80E6024 movs r0, 0x6 b _080E54EC .align 2, 0 _080E54C4: .4byte 0x0202e858 _080E54C8: ldrb r0, [r7] cmp r0, r6 bne _080E54DE movs r0, 0x2 strb r0, [r1, 0x2] movs r0, 0x4 strb r0, [r1, 0x8] bl sub_80E6024 movs r0, 0xA b _080E54EC _080E54DE: cmp r0, 0 beq _080E54E8 movs r0, 0x1 strb r0, [r1, 0x2] b _080E54EA _080E54E8: strb r6, [r7] _080E54EA: movs r0, 0x5 _080E54EC: pop {r4-r7} pop {r1} bx r1 thumb_func_end CheckMovementInputAcroBikeStandingWheelie thumb_func_start CheckMovementInputAcroBikeBunnyHop CheckMovementInputAcroBikeBunnyHop: @ 80E54F4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r6, r0, 0 lsls r1, 16 lsrs r1, 16 mov r9, r1 lsls r2, 16 lsrs r2, 16 mov r8, r2 bl player_get_direction_upper_nybble lsls r0, 24 lsrs r5, r0, 24 adds r2, r5, 0 ldr r4, _080E5554 ldrb r1, [r4, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E5558 adds r7, r0, r1 movs r0, 0x2 mov r1, r8 ands r0, r1 cmp r0, 0 bne _080E5566 bl sub_80E6024 ldrb r0, [r7, 0x1E] bl MetatileBehavior_IsBumpySlope lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080E555C movs r0, 0x2 strb r0, [r4, 0x8] adds r0, r6, 0 mov r1, r9 mov r2, r8 bl CheckMovementInputAcroBike lsls r0, 24 lsrs r0, 24 b _080E558A .align 2, 0 _080E5554: .4byte 0x0202e858 _080E5558: .4byte 0x030048a0 _080E555C: strb r5, [r6] strb r0, [r4, 0x2] strb r0, [r4, 0x8] movs r0, 0x4 b _080E558A _080E5566: ldrb r0, [r6] cmp r0, 0 bne _080E5570 strb r5, [r6] b _080E557C _080E5570: cmp r0, r2 beq _080E5582 ldrb r0, [r4, 0x2] cmp r0, 0x2 beq _080E5582 movs r0, 0x1 _080E557C: strb r0, [r4, 0x2] movs r0, 0x6 b _080E558A _080E5582: ldr r1, _080E5598 movs r0, 0x2 strb r0, [r1, 0x2] movs r0, 0x7 _080E558A: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080E5598: .4byte 0x0202e858 thumb_func_end CheckMovementInputAcroBikeBunnyHop thumb_func_start CheckMovementInputAcroBikeMovingWheelie CheckMovementInputAcroBikeMovingWheelie: @ 80E559C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 lsls r1, 16 lsrs r1, 16 mov r10, r1 lsls r2, 16 lsrs r2, 16 mov r8, r2 bl player_get_direction_lower_nybble lsls r0, 24 lsrs r5, r0, 24 adds r2, r5, 0 ldr r4, _080E55F8 ldrb r1, [r4, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E55FC adds r7, r0, r1 movs r0, 0x2 mov r9, r0 movs r0, 0x2 mov r1, r8 ands r0, r1 cmp r0, 0 bne _080E5634 bl sub_80E6024 ldrb r0, [r7, 0x1E] bl MetatileBehavior_IsBumpySlope lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _080E5620 strb r1, [r4, 0x8] ldrb r0, [r6] cmp r0, 0 bne _080E5600 strb r5, [r6] b _080E560A .align 2, 0 _080E55F8: .4byte 0x0202e858 _080E55FC: .4byte 0x030048a0 _080E5600: cmp r0, r5 beq _080E5610 ldrb r0, [r4, 0x2] cmp r0, 0x2 beq _080E5610 _080E560A: strb r1, [r4, 0x2] movs r0, 0x4 b _080E5664 _080E5610: ldr r1, _080E561C movs r0, 0x2 strb r0, [r1, 0x2] movs r0, 0xC b _080E5664 .align 2, 0 _080E561C: .4byte 0x0202e858 _080E5620: mov r0, r9 strb r0, [r4, 0x8] adds r0, r6, 0 mov r1, r10 mov r2, r8 bl CheckMovementInputAcroBike lsls r0, 24 lsrs r0, 24 b _080E5664 _080E5634: ldrb r0, [r6] cmp r0, 0 bne _080E564A strb r5, [r6] mov r1, r9 strb r1, [r4, 0x8] strb r0, [r4, 0x2] bl sub_80E6024 movs r0, 0x5 b _080E5664 _080E564A: cmp r2, r0 beq _080E565C ldrb r0, [r4, 0x2] cmp r0, 0x2 beq _080E565C movs r0, 0 strb r0, [r4, 0x2] movs r0, 0x5 b _080E5664 _080E565C: ldr r1, _080E5674 movs r0, 0x2 strb r0, [r1, 0x2] movs r0, 0xA _080E5664: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080E5674: .4byte 0x0202e858 thumb_func_end CheckMovementInputAcroBikeMovingWheelie thumb_func_start CheckMovementInputAcroBikeUnknownMode5 CheckMovementInputAcroBikeUnknownMode5: @ 80E5678 push {r4-r6,lr} mov r6, r8 push {r6} mov r8, r0 adds r4, r1, 0 adds r5, r2, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 ldr r6, _080E56CC ldrb r1, [r6, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E56D0 adds r0, r1 ldrb r2, [r0, 0x1] movs r1, 0x3 negs r1, r1 ands r1, r2 strb r1, [r0, 0x1] ldrb r1, [r0, 0x18] lsls r1, 28 lsrs r1, 28 bl FieldObjectSetDirection movs r0, 0 strb r0, [r6, 0x8] mov r0, r8 adds r1, r4, 0 adds r2, r5, 0 bl CheckMovementInputAcroBike lsls r0, 24 lsrs r0, 24 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080E56CC: .4byte 0x0202e858 _080E56D0: .4byte 0x030048a0 thumb_func_end CheckMovementInputAcroBikeUnknownMode5 thumb_func_start CheckMovementInputAcroBikeUnknownMode6 CheckMovementInputAcroBikeUnknownMode6: @ 80E56D4 push {r4,lr} lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 ldr r4, _080E56F4 movs r3, 0 strb r3, [r4, 0x8] bl CheckMovementInputAcroBike lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _080E56F4: .4byte 0x0202e858 thumb_func_end CheckMovementInputAcroBikeUnknownMode6 thumb_func_start sub_80E56F8 sub_80E56F8: @ 80E56F8 push {lr} lsls r0, 24 lsrs r0, 24 bl PlayerFaceDirection pop {r0} bx r0 thumb_func_end sub_80E56F8 thumb_func_start sub_80E5708 sub_80E5708: @ 80E5708 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E573C ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E5740 adds r5, r0, r1 ldrb r1, [r5, 0x1E] adds r0, r4, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E572E ldrb r0, [r5, 0x18] lsrs r4, r0, 4 _080E572E: adds r0, r4, 0 bl PlayerFaceDirection pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E573C: .4byte 0x0202e858 _080E5740: .4byte 0x030048a0 thumb_func_end sub_80E5708 thumb_func_start sub_80E5744 sub_80E5744: @ 80E5744 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 ldr r0, _080E5774 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E5778 adds r5, r0, r1 ldrb r1, [r5, 0x1E] adds r0, r4, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E577C ldrb r0, [r5, 0x18] lsrs r0, 4 bl sub_80E56F8 b _080E57B6 .align 2, 0 _080E5774: .4byte 0x0202e858 _080E5778: .4byte 0x030048a0 _080E577C: adds r0, r4, 0 bl sub_80E5D34 lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xFF lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0xA bhi _080E57B0 cmp r1, 0x6 bne _080E579E adds r0, r4, 0 bl PlayerJumpLedge b _080E57B6 _080E579E: subs r0, r1, 0x5 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _080E57B6 adds r0, r4, 0 bl PlayerOnBikeCollide b _080E57B6 _080E57B0: adds r0, r6, 0 bl npc_use_some_d2s _080E57B6: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80E5744 thumb_func_start sub_80E57BC sub_80E57BC: @ 80E57BC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E57F0 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E57F4 adds r5, r0, r1 ldrb r1, [r5, 0x1E] adds r0, r4, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E57E2 ldrb r0, [r5, 0x18] lsrs r4, r0, 4 _080E57E2: adds r0, r4, 0 bl sub_805951C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E57F0: .4byte 0x0202e858 _080E57F4: .4byte 0x030048a0 thumb_func_end sub_80E57BC thumb_func_start sub_80E57F8 sub_80E57F8: @ 80E57F8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E582C ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E5830 adds r5, r0, r1 ldrb r1, [r5, 0x1E] adds r0, r4, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E581E ldrb r0, [r5, 0x18] lsrs r4, r0, 4 _080E581E: adds r0, r4, 0 bl sub_8059534 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E582C: .4byte 0x0202e858 _080E5830: .4byte 0x030048a0 thumb_func_end sub_80E57F8 thumb_func_start sub_80E5834 sub_80E5834: @ 80E5834 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E5868 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E586C adds r5, r0, r1 ldrb r1, [r5, 0x1E] adds r0, r4, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E585A ldrb r0, [r5, 0x18] lsrs r4, r0, 4 _080E585A: adds r0, r4, 0 bl sub_8059504 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E5868: .4byte 0x0202e858 _080E586C: .4byte 0x030048a0 thumb_func_end sub_80E5834 thumb_func_start sub_80E5870 sub_80E5870: @ 80E5870 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E58A4 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E58A8 adds r5, r0, r1 ldrb r1, [r5, 0x1E] adds r0, r4, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E5896 ldrb r0, [r5, 0x18] lsrs r4, r0, 4 _080E5896: adds r0, r4, 0 bl sub_805954C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E58A4: .4byte 0x0202e858 _080E58A8: .4byte 0x030048a0 thumb_func_end sub_80E5870 thumb_func_start sub_80E58AC sub_80E58AC: @ 80E58AC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E58D8 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E58DC adds r5, r0, r1 ldrb r1, [r5, 0x1E] adds r0, r4, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E58E0 ldrb r0, [r5, 0x18] lsrs r0, 4 bl sub_80E5870 b _080E591A .align 2, 0 _080E58D8: .4byte 0x0202e858 _080E58DC: .4byte 0x030048a0 _080E58E0: adds r0, r4, 0 bl sub_80E5D34 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _080E5914 cmp r1, 0x9 beq _080E5914 cmp r1, 0x6 bne _080E58FE adds r0, r4, 0 bl sub_8059594 b _080E591A _080E58FE: subs r0, r1, 0x5 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _080E591A cmp r1, 0xB bhi _080E5914 adds r0, r4, 0 bl sub_80E5870 b _080E591A _080E5914: adds r0, r4, 0 bl sub_8059570 _080E591A: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80E58AC thumb_func_start sub_80E5920 sub_80E5920: @ 80E5920 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl sub_80E5D34 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0 beq _080E5954 cmp r0, 0x7 beq _080E5980 cmp r0, 0x9 bls _080E594C adds r0, r1, 0 adds r1, r5, 0 bl sub_80E5EC0 lsls r0, 24 cmp r0, 0 bne _080E5954 _080E594C: adds r0, r5, 0 bl sub_80E5708 b _080E5980 _080E5954: ldr r0, _080E5988 ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080E598C adds r4, r0 movs r0, 0x22 bl audio_play ldrb r0, [r4, 0x1] movs r1, 0x2 orrs r0, r1 strb r0, [r4, 0x1] adds r0, r5, 0 bl sub_80608A4 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl player_npc_set_state_and_x22_etc _080E5980: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E5988: .4byte 0x0202e858 _080E598C: .4byte 0x030048a0 thumb_func_end sub_80E5920 thumb_func_start sub_80E5990 sub_80E5990: @ 80E5990 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80595B8 pop {r0} bx r0 thumb_func_end sub_80E5990 thumb_func_start sub_80E59A0 sub_80E59A0: @ 80E59A0 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 ldr r7, _080E59D0 ldrb r1, [r7, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E59D4 adds r5, r0, r1 ldrb r1, [r5, 0x1E] adds r0, r4, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E59D8 ldrb r0, [r5, 0x18] lsrs r0, 4 bl sub_8059504 b _080E5A28 .align 2, 0 _080E59D0: .4byte 0x0202e858 _080E59D4: .4byte 0x030048a0 _080E59D8: adds r0, r4, 0 bl sub_80E5D34 lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xFF lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0xA bhi _080E5A1E cmp r1, 0x6 bne _080E59FA adds r0, r4, 0 bl sub_8059594 b _080E5A28 _080E59FA: cmp r1, 0x9 beq _080E5A0E cmp r1, 0x4 bhi _080E5A28 ldrb r0, [r5, 0x1E] bl MetatileBehavior_IsBumpySlope lsls r0, 24 cmp r0, 0 beq _080E5A16 _080E5A0E: adds r0, r4, 0 bl sub_8059504 b _080E5A28 _080E5A16: adds r0, r4, 0 bl sub_80595DC b _080E5A28 _080E5A1E: adds r0, r6, 0 bl sub_8059618 movs r0, 0x2 strb r0, [r7, 0x2] _080E5A28: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80E59A0 thumb_func_start sub_80E5A30 sub_80E5A30: @ 80E5A30 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 ldr r7, _080E5A60 ldrb r1, [r7, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E5A64 adds r5, r0, r1 ldrb r1, [r5, 0x1E] adds r0, r4, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E5A68 ldrb r0, [r5, 0x18] lsrs r0, 4 bl sub_805951C b _080E5AB8 .align 2, 0 _080E5A60: .4byte 0x0202e858 _080E5A64: .4byte 0x030048a0 _080E5A68: adds r0, r4, 0 bl sub_80E5D34 lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xFF lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0xA bhi _080E5AAE cmp r1, 0x6 bne _080E5A8A adds r0, r4, 0 bl sub_8059594 b _080E5AB8 _080E5A8A: cmp r1, 0x9 beq _080E5A9E cmp r1, 0x4 bhi _080E5AB8 ldrb r0, [r5, 0x1E] bl MetatileBehavior_IsBumpySlope lsls r0, 24 cmp r0, 0 beq _080E5AA6 _080E5A9E: adds r0, r4, 0 bl sub_8059504 b _080E5AB8 _080E5AA6: adds r0, r4, 0 bl sub_80595DC b _080E5AB8 _080E5AAE: adds r0, r6, 0 bl sub_8059600 movs r0, 0x2 strb r0, [r7, 0x2] _080E5AB8: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80E5A30 thumb_func_start sub_80E5AC0 sub_80E5AC0: @ 80E5AC0 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 ldr r0, _080E5AF0 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E5AF4 adds r5, r0, r1 ldrb r1, [r5, 0x1E] adds r0, r4, 0 bl sub_80E5E70 lsls r0, 24 cmp r0, 0 bne _080E5AF8 ldrb r0, [r5, 0x18] lsrs r0, 4 bl sub_8059534 b _080E5B32 .align 2, 0 _080E5AF0: .4byte 0x0202e858 _080E5AF4: .4byte 0x030048a0 _080E5AF8: adds r0, r4, 0 bl sub_80E5D34 lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xFF lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0xA bhi _080E5B2C cmp r1, 0x6 bne _080E5B1A adds r0, r4, 0 bl PlayerJumpLedge b _080E5B32 _080E5B1A: subs r0, r1, 0x5 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _080E5B32 adds r0, r4, 0 bl sub_8059534 b _080E5B32 _080E5B2C: adds r0, r6, 0 bl sub_8059630 _080E5B32: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80E5AC0 thumb_func_start sub_80E5B38 sub_80E5B38: @ 80E5B38 push {lr} lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 lsrs r2, r1, 16 ldr r0, _080E5B5C ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080E5B56 adds r0, r3, 0 adds r1, r2, 0 bl sub_80E5B60 _080E5B56: pop {r0} bx r0 .align 2, 0 _080E5B5C: .4byte 0x0202e858 thumb_func_end sub_80E5B38 thumb_func_start sub_80E5B60 sub_80E5B60: @ 80E5B60 push {r4,r5,lr} lsls r1, 16 lsrs r5, r1, 16 adds r0, r5, 0 bl sub_80E5CF4 lsls r0, 24 lsrs r2, r0, 24 ldr r4, _080E5B88 ldr r0, [r4, 0xC] movs r1, 0xF ands r0, r1 cmp r2, r0 bne _080E5B8C ldrb r0, [r4, 0x14] cmp r0, 0xFE bhi _080E5B96 adds r0, 0x1 strb r0, [r4, 0x14] b _080E5B96 .align 2, 0 _080E5B88: .4byte 0x0202e858 _080E5B8C: adds r0, r2, 0 bl sub_80E5C7C movs r0, 0 strb r0, [r4, 0xB] _080E5B96: movs r0, 0xF adds r2, r5, 0 ands r2, r0 ldr r4, _080E5BB4 ldr r0, [r4, 0x10] movs r1, 0xF ands r0, r1 cmp r2, r0 bne _080E5BB8 ldrb r0, [r4, 0x1C] cmp r0, 0xFE bhi _080E5BC2 adds r0, 0x1 strb r0, [r4, 0x1C] b _080E5BC2 .align 2, 0 _080E5BB4: .4byte 0x0202e858 _080E5BB8: adds r0, r2, 0 bl sub_80E5CB8 movs r0, 0 strb r0, [r4, 0xB] _080E5BC2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80E5B60 thumb_func_start sub_80E5BC8 sub_80E5BC8: @ 80E5BC8 push {r4,r5,lr} adds r3, r0, 0 adds r4, r1, 0 movs r2, 0 ldrb r0, [r3] cmp r0, 0 beq _080E5BF2 ldr r5, _080E5C0C _080E5BD8: adds r0, r2, r5 adds r1, r3, r2 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bhi _080E5C08 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 adds r0, r3, r2 ldrb r0, [r0] cmp r0, 0 bne _080E5BD8 _080E5BF2: movs r2, 0 ldrb r0, [r4] cmp r0, 0 beq _080E5C22 ldr r3, _080E5C10 _080E5BFC: adds r0, r2, r3 adds r1, r4, r2 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _080E5C14 _080E5C08: movs r0, 0 b _080E5C24 .align 2, 0 _080E5C0C: .4byte 0x0202e86c _080E5C10: .4byte 0x0202e874 _080E5C14: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 bne _080E5BFC _080E5C22: movs r0, 0x1 _080E5C24: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80E5BC8 thumb_func_start sub_80E5C2C sub_80E5C2C: @ 80E5C2C push {r4-r6,lr} movs r6, 0 movs r5, 0 _080E5C32: ldr r0, _080E5C64 adds r4, r5, r0 ldr r0, _080E5C68 ldr r1, [r0, 0xC] ldr r2, [r0, 0x10] ldr r0, [r4, 0x8] ands r1, r0 ldr r0, [r4, 0xC] ands r2, r0 ldr r0, [r4] cmp r1, r0 bne _080E5C6C ldr r0, [r4, 0x4] cmp r2, r0 bne _080E5C6C ldr r0, [r4, 0x10] ldr r1, [r4, 0x14] bl sub_80E5BC8 lsls r0, 24 cmp r0, 0 beq _080E5C6C ldrb r0, [r4, 0x18] b _080E5C76 .align 2, 0 _080E5C64: .4byte gUnknown_083DB608 _080E5C68: .4byte 0x0202e858 _080E5C6C: adds r5, 0x1C adds r6, 0x1 cmp r6, 0x3 bls _080E5C32 movs r0, 0 _080E5C76: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80E5C2C thumb_func_start sub_80E5C7C sub_80E5C7C: @ 80E5C7C push {r4,lr} lsls r0, 24 ldr r3, _080E5CB4 ldr r2, [r3, 0xC] lsls r2, 4 movs r1, 0xF0 lsls r1, 20 ands r1, r0 lsrs r1, 24 orrs r2, r1 str r2, [r3, 0xC] movs r1, 0x7 adds r4, r3, 0 adds r3, 0x14 _080E5C98: adds r2, r1, r3 subs r1, 0x1 adds r0, r1, r3 ldrb r0, [r0] strb r0, [r2] lsls r1, 24 lsrs r1, 24 cmp r1, 0 bne _080E5C98 movs r0, 0x1 strb r0, [r4, 0x14] pop {r4} pop {r0} bx r0 .align 2, 0 _080E5CB4: .4byte 0x0202e858 thumb_func_end sub_80E5C7C thumb_func_start sub_80E5CB8 sub_80E5CB8: @ 80E5CB8 push {r4,lr} lsls r0, 24 ldr r3, _080E5CF0 ldr r2, [r3, 0x10] lsls r2, 4 movs r1, 0xF0 lsls r1, 20 ands r1, r0 lsrs r1, 24 orrs r2, r1 str r2, [r3, 0x10] movs r1, 0x7 adds r4, r3, 0 adds r3, 0x1C _080E5CD4: adds r2, r1, r3 subs r1, 0x1 adds r0, r1, r3 ldrb r0, [r0] strb r0, [r2] lsls r1, 24 lsrs r1, 24 cmp r1, 0 bne _080E5CD4 movs r0, 0x1 strb r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080E5CF0: .4byte 0x0202e858 thumb_func_end sub_80E5CB8 thumb_func_start sub_80E5CF4 sub_80E5CF4: @ 80E5CF4 push {lr} lsls r0, 16 lsrs r1, r0, 16 adds r2, r1, 0 movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080E5D08 movs r0, 0x2 b _080E5D2E _080E5D08: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080E5D14 movs r0, 0x1 b _080E5D2E _080E5D14: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080E5D20 movs r0, 0x3 b _080E5D2E _080E5D20: movs r0, 0x10 ands r2, r0 cmp r2, 0 bne _080E5D2C movs r0, 0 b _080E5D2E _080E5D2C: movs r0, 0x4 _080E5D2E: pop {r1} bx r1 thumb_func_end sub_80E5CF4 thumb_func_start sub_80E5D34 sub_80E5D34: @ 80E5D34 push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldr r0, _080E5D98 ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080E5D9C adds r4, r0 ldrh r1, [r4, 0x10] add r0, sp, 0x4 strh r1, [r0] ldrh r0, [r4, 0x12] mov r5, sp adds r5, 0x6 strh r0, [r5] adds r0, r6, 0 add r1, sp, 0x4 adds r2, r5, 0 bl MoveCoords add r0, sp, 0x4 movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 add r1, sp, 0x4 movs r3, 0 ldrsh r1, [r1, r3] movs r3, 0 ldrsh r2, [r5, r3] str r0, [sp] adds r0, r4, 0 adds r3, r6, 0 bl sub_80E5DA0 lsls r0, 24 lsrs r0, 24 add sp, 0x8 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080E5D98: .4byte 0x0202e858 _080E5D9C: .4byte 0x030048a0 thumb_func_end sub_80E5D34 thumb_func_start sub_80E5DA0 sub_80E5DA0: @ 80E5DA0 push {r4,r5,lr} sub sp, 0x4 ldr r4, [sp, 0x10] lsls r3, 24 lsrs r3, 24 lsls r4, 24 lsrs r4, 24 adds r5, r4, 0 lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 str r5, [sp] bl CheckForFieldObjectCollision lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bhi _080E5DE0 cmp r4, 0 bne _080E5DDC adds r0, r5, 0 bl IsRunningDisallowedByMetatile lsls r0, 24 cmp r0, 0 beq _080E5DD8 movs r4, 0x2 _080E5DD8: cmp r4, 0 beq _080E5DE0 _080E5DDC: bl sub_80E5E4C _080E5DE0: adds r0, r4, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80E5DA0 thumb_func_start sub_80E5DEC sub_80E5DEC: @ 80E5DEC push {lr} lsls r0, 24 lsrs r0, 24 bl IsRunningDisallowedByMetatile lsls r0, 24 cmp r0, 0 bne _080E5E04 ldr r0, _080E5E08 ldrb r0, [r0, 0x17] cmp r0, 0x8 bne _080E5E0C _080E5E04: movs r0, 0x1 b _080E5E0E .align 2, 0 _080E5E08: .4byte 0x0202e828 _080E5E0C: movs r0, 0 _080E5E0E: pop {r1} bx r1 thumb_func_end sub_80E5DEC thumb_func_start IsRunningDisallowedByMetatile IsRunningDisallowedByMetatile: @ 80E5E14 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl MetatileBehavior_IsRunningDisallowed lsls r0, 24 cmp r0, 0 bne _080E5E3E adds r0, r4, 0 bl MetatileBehavior_IsFortreeBridge lsls r0, 24 cmp r0, 0 beq _080E5E42 bl PlayerGetZCoord movs r1, 0x1 ands r1, r0 cmp r1, 0 bne _080E5E42 _080E5E3E: movs r0, 0x1 b _080E5E44 _080E5E42: movs r0, 0 _080E5E44: pop {r4} pop {r1} bx r1 thumb_func_end IsRunningDisallowedByMetatile thumb_func_start sub_80E5E4C sub_80E5E4C: @ 80E5E4C push {lr} ldr r0, _080E5E68 ldrb r0, [r0] cmp r0, 0 beq _080E5E62 ldr r1, _080E5E6C ldrb r0, [r1] cmp r0, 0x63 bhi _080E5E62 adds r0, 0x1 strb r0, [r1] _080E5E62: pop {r0} bx r0 .align 2, 0 _080E5E68: .4byte 0x02039250 _080E5E6C: .4byte 0x02039251 thumb_func_end sub_80E5E4C thumb_func_start sub_80E5E70 sub_80E5E70: @ 80E5E70 push {r4,r5,lr} lsls r0, 24 lsls r1, 24 lsrs r4, r1, 24 adds r5, r4, 0 movs r1, 0xFD lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0x1 bhi _080E5E9A adds r0, r4, 0 bl MetatileBehavior_IsIsolatedVerticalRail lsls r0, 24 cmp r0, 0 bne _080E5EB2 adds r0, r4, 0 bl MetatileBehavior_IsVerticalRail b _080E5EAC _080E5E9A: adds r0, r5, 0 bl MetatileBehavior_IsIsolatedHorizontalRail lsls r0, 24 cmp r0, 0 bne _080E5EB2 adds r0, r5, 0 bl MetatileBehavior_IsHorizontalRail _080E5EAC: lsls r0, 24 cmp r0, 0 beq _080E5EB6 _080E5EB2: movs r0, 0 b _080E5EB8 _080E5EB6: movs r0, 0x1 _080E5EB8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80E5E70 thumb_func_start sub_80E5EC0 sub_80E5EC0: @ 80E5EC0 push {lr} lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 lsls r1, 24 movs r3, 0xFF lsls r3, 24 adds r1, r3 lsrs r1, 24 cmp r1, 0x1 bhi _080E5EE0 cmp r0, 0xA beq _080E5EE8 cmp r0, 0xC bne _080E5EEC b _080E5EE8 _080E5EE0: cmp r2, 0xB beq _080E5EE8 cmp r2, 0xD bne _080E5EEC _080E5EE8: movs r0, 0 b _080E5EEE _080E5EEC: movs r0, 0x1 _080E5EEE: pop {r1} bx r1 thumb_func_end sub_80E5EC0 thumb_func_start sub_80E5EF4 sub_80E5EF4: @ 80E5EF4 push {r4,lr} sub sp, 0x4 ldr r0, _080E5F30 ldrb r1, [r0] movs r0, 0x18 ands r0, r1 cmp r0, 0 bne _080E5F34 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl IsRunningDisallowedByMetatile lsls r0, 24 cmp r0, 0 bne _080E5F34 movs r0, 0 b _080E5F36 .align 2, 0 _080E5F30: .4byte 0x0202e858 _080E5F34: movs r0, 0x1 _080E5F36: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_80E5EF4 thumb_func_start player_should_look_direction_be_enforced_upon_movement player_should_look_direction_be_enforced_upon_movement: @ 80E5F40 push {lr} movs r0, 0x4 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _080E5F74 ldr r2, _080E5F6C ldr r0, _080E5F70 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1E] bl MetatileBehavior_IsBumpySlope lsls r0, 24 cmp r0, 0 beq _080E5F74 movs r0, 0 b _080E5F76 .align 2, 0 _080E5F6C: .4byte 0x030048a0 _080E5F70: .4byte 0x0202e858 _080E5F74: movs r0, 0x1 _080E5F76: pop {r1} bx r1 thumb_func_end player_should_look_direction_be_enforced_upon_movement thumb_func_start GetOnOffBike GetOnOffBike: @ 80E5F7C push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080E5FA4 movs r0, 0 strb r0, [r1] ldr r0, _080E5FA8 ldrb r1, [r0] movs r0, 0x6 ands r0, r1 cmp r0, 0 beq _080E5FAC movs r0, 0x1 bl SetPlayerAvatarTransitionFlags bl sav1_reset_battle_music_maybe bl sub_8053E90 b _080E5FC0 .align 2, 0 _080E5FA4: .4byte 0x0202e854 _080E5FA8: .4byte 0x0202e858 _080E5FAC: adds r0, r2, 0 bl SetPlayerAvatarTransitionFlags ldr r4, _080E5FC8 adds r0, r4, 0 bl sav1_set_battle_music_maybe adds r0, r4, 0 bl sub_8053FB0 _080E5FC0: pop {r4} pop {r0} bx r0 .align 2, 0 _080E5FC8: .4byte 0x00000193 thumb_func_end GetOnOffBike thumb_func_start sub_80E5FCC sub_80E5FCC: @ 80E5FCC push {lr} ldr r2, _080E6008 movs r3, 0 strb r3, [r2, 0x8] strb r3, [r2, 0x9] strb r3, [r2, 0xA] strb r3, [r2, 0xB] str r0, [r2, 0xC] str r1, [r2, 0x10] movs r1, 0 adds r2, 0x14 _080E5FE2: adds r0, r1, r2 strb r3, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x7 bls _080E5FE2 movs r1, 0 ldr r3, _080E600C movs r2, 0 _080E5FF6: adds r0, r1, r3 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x7 bls _080E5FF6 pop {r0} bx r0 .align 2, 0 _080E6008: .4byte 0x0202e858 _080E600C: .4byte 0x0202e874 thumb_func_end sub_80E5FCC thumb_func_start sub_80E6010 sub_80E6010: @ 80E6010 lsls r0, 24 lsrs r0, 24 ldr r2, _080E6020 strb r0, [r2, 0xA] lsrs r1, r0, 1 adds r0, r1 strb r0, [r2, 0xB] bx lr .align 2, 0 _080E6020: .4byte 0x0202e858 thumb_func_end sub_80E6010 thumb_func_start sub_80E6024 sub_80E6024: @ 80E6024 ldr r1, _080E6030 movs r0, 0 strb r0, [r1, 0xA] strb r0, [r1, 0xB] bx lr .align 2, 0 _080E6030: .4byte 0x0202e858 thumb_func_end sub_80E6024 thumb_func_start sub_80E6034 sub_80E6034: @ 80E6034 push {lr} sub sp, 0x8 ldr r1, _080E605C mov r0, sp movs r2, 0x6 bl memcpy ldr r2, _080E6060 ldrb r1, [r2] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080E6064 ldrb r0, [r2, 0xA] lsls r0, 1 add r0, sp movs r1, 0 ldrsh r0, [r0, r1] b _080E607E .align 2, 0 _080E605C: .4byte gUnknown_083DB600 _080E6060: .4byte 0x0202e858 _080E6064: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080E6070 movs r0, 0x3 b _080E607E _080E6070: movs r0, 0x88 ands r0, r1 cmp r0, 0 bne _080E607C movs r0, 0x1 b _080E607E _080E607C: movs r0, 0x2 _080E607E: add sp, 0x8 pop {r1} bx r1 thumb_func_end sub_80E6034 thumb_func_start sub_80E6084 sub_80E6084: @ 80E6084 push {r4,r5,lr} sub sp, 0x4 ldr r5, _080E60D4 ldrb r1, [r5] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080E60CC mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl MetatileBehavior_IsBumpySlope lsls r0, 24 cmp r0, 0 beq _080E60CC movs r0, 0x2 strb r0, [r5, 0x8] bl player_get_direction_upper_nybble lsls r0, 24 lsrs r0, 24 bl sub_8059C94 _080E60CC: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E60D4: .4byte 0x0202e858 thumb_func_end sub_80E6084 thumb_func_start sub_80E60D8 sub_80E60D8: @ 80E60D8 push {r4-r7,lr} movs r4, 0x3 ldr r0, _080E60F4 ldrh r1, [r0] adds r7, r0, 0 cmp r1, 0xD bls _080E60E8 b _080E6284 _080E60E8: lsls r0, r1, 2 ldr r1, _080E60F8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E60F4: .4byte 0x0202e8cc _080E60F8: .4byte _080E60FC .align 2, 0 _080E60FC: .4byte _080E6134 .4byte _080E613C .4byte _080E6144 .4byte _080E614C .4byte _080E6154 .4byte _080E619C .4byte _080E616C .4byte _080E61BC .4byte _080E61E0 .4byte _080E61FC .4byte _080E6200 .4byte _080E6214 .4byte _080E623C .4byte _080E6260 _080E6134: ldr r1, _080E6138 b _080E624C .align 2, 0 _080E6138: .4byte 0x02028250 _080E613C: ldr r1, _080E6140 b _080E6276 .align 2, 0 _080E6140: .4byte 0x0202825c _080E6144: ldr r1, _080E6148 b _080E624C .align 2, 0 _080E6148: .4byte 0x02028268 _080E614C: ldr r1, _080E6150 b _080E6276 .align 2, 0 _080E6150: .4byte 0x02028274 _080E6154: ldr r0, _080E6164 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E6168 adds r1, r0, r1 b _080E624C .align 2, 0 _080E6164: .4byte 0x0202e8ce _080E6168: .4byte 0x02028280 _080E616C: ldr r0, _080E6194 movs r2, 0 ldr r1, _080E6198 mov r12, r1 adds r3, r0, 0 adds r3, 0xE adds r5, r0, 0x2 adds r6, r3, 0 _080E617C: lsls r0, r2, 1 adds r1, r3, r0 adds r0, r5, r0 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x5 bls _080E617C adds r1, r6, 0 b _080E627A .align 2, 0 _080E6194: .4byte 0x020284c8 _080E6198: .4byte sub_80546B8 _080E619C: ldr r0, _080E61B0 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E61B4 adds r1, r0, r1 ldr r0, _080E61B8 ldrb r4, [r0] b _080E6276 .align 2, 0 _080E61B0: .4byte 0x0202e8ce _080E61B4: .4byte 0x02027e70 _080E61B8: .4byte 0x0202e8d0 _080E61BC: ldr r0, _080E61D4 ldrh r0, [r0] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _080E61D8 adds r1, r0 ldr r0, _080E61DC ldrh r0, [r0] lsls r0, 1 adds r1, r0 b _080E624A .align 2, 0 _080E61D4: .4byte 0x0202e8ce _080E61D8: .4byte 0x02027e88 _080E61DC: .4byte 0x0202e8d0 _080E61E0: ldr r0, _080E61F4 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E61F8 adds r1, r0, r1 movs r4, 0 b _080E6276 .align 2, 0 _080E61F4: .4byte 0x0202e8ce _080E61F8: .4byte 0x02027e6e _080E61FC: movs r1, 0 b _080E624C _080E6200: ldr r1, _080E620C ldr r2, _080E6210 adds r0, r2, 0 strh r0, [r1] b _080E624A .align 2, 0 _080E620C: .4byte 0x0202824a _080E6210: .4byte 0x0000ffff _080E6214: ldr r0, _080E6230 ldrh r0, [r0] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _080E6234 adds r1, r0 ldr r0, _080E6238 ldrh r0, [r0] lsls r0, 1 adds r1, r0 movs r4, 0 b _080E6276 .align 2, 0 _080E6230: .4byte 0x0202e8ce _080E6234: .4byte 0x02027e70 _080E6238: .4byte 0x0202e8d0 _080E623C: ldr r0, _080E6254 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E6258 adds r1, r0, r1 _080E624A: movs r4, 0x1 _080E624C: ldr r0, _080E625C mov r12, r0 b _080E627A .align 2, 0 _080E6254: .4byte 0x0202e8ce _080E6258: .4byte 0x02027e84 _080E625C: .4byte sub_80546B8 _080E6260: ldr r1, _080E628C ldr r0, _080E6290 adds r2, r1, r0 ldr r0, _080E6294 strh r0, [r2] ldr r0, _080E6298 adds r1, r0 movs r0, 0x1 negs r0, r0 strh r0, [r1] adds r1, r2, 0 _080E6276: ldr r2, _080E629C mov r12, r2 _080E627A: ldrb r0, [r7] mov r2, r12 adds r3, r4, 0 bl sub_80E62A0 _080E6284: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E628C: .4byte 0x02001000 _080E6290: .4byte 0x00009c7c _080E6294: .4byte 0x0000ffff _080E6298: .4byte 0x00009c7e _080E629C: .4byte sub_80546B8 thumb_func_end sub_80E60D8 thumb_func_start sub_80E62A0 sub_80E62A0: @ 80E62A0 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r4, _080E62DC str r2, [r4] str r1, [r4, 0x4] strb r0, [r4, 0x8] strb r3, [r4, 0xB] cmp r0, 0x9 bne _080E62D0 ldr r0, _080E62E0 adds r2, r4, r0 str r2, [r4, 0x4] ldr r0, _080E62E4 ldr r3, _080E62E8 adds r1, r0, r3 ldrh r1, [r1] strh r1, [r2] ldr r1, _080E62EC adds r0, r1 ldrh r1, [r0] ldr r2, _080E62F0 adds r0, r4, r2 strh r1, [r0] _080E62D0: ldr r0, _080E62F4 bl SetMainCallback2 pop {r4} pop {r0} bx r0 .align 2, 0 _080E62DC: .4byte 0x02001000 _080E62E0: .4byte 0x00009c7c _080E62E4: .4byte 0x02025734 _080E62E8: .4byte 0x00002dd8 _080E62EC: .4byte 0x00002dda _080E62F0: .4byte 0x00009c7e _080E62F4: .4byte sub_80E62F8 thumb_func_end sub_80E62A0 thumb_func_start sub_80E62F8 sub_80E62F8: @ 80E62F8 push {lr} sub sp, 0x4 ldr r0, _080E6314 ldr r1, _080E6318 adds r0, r1 ldrb r0, [r0] cmp r0, 0x8 bhi _080E6344 lsls r0, 2 ldr r1, _080E631C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E6314: .4byte 0x03001770 _080E6318: .4byte 0x0000043c _080E631C: .4byte _080E6320 .align 2, 0 _080E6320: .4byte _080E6344 .4byte _080E6380 .4byte _080E638C .4byte _080E63A8 .4byte _080E63AE .4byte _080E63B4 .4byte _080E63BE .4byte _080E63D8 .4byte _080E63EA _080E6344: movs r1, 0x80 lsls r1, 19 movs r0, 0 strh r0, [r1] movs r0, 0 bl SetVBlankCallback bl ResetPaletteFade bl ResetSpriteData bl dp12_8087EA4 bl remove_some_task bl sub_80EAD08 ldr r2, _080E637C ldr r0, [r2] ldr r1, [r2, 0x4] ldr r2, [r2, 0x8] bl sub_80895F8 bl FreeSpriteTileRanges bl FreeAllSpritePalettes b _080E6402 .align 2, 0 _080E637C: .4byte gUnknown_083DB698 _080E6380: ldr r0, _080E6388 bl SetUpWindowConfig b _080E6402 .align 2, 0 _080E6388: .4byte gWindowConfig_81E6DA8 _080E638C: ldr r0, _080E63A0 bl sub_8071C4C ldr r0, _080E63A4 bl sub_8071C4C bl sub_8071EF4 b _080E6402 .align 2, 0 _080E63A0: .4byte gWindowConfig_81E6D54 _080E63A4: .4byte gWindowConfig_81E6DA8 _080E63A8: bl sub_80E6424 b _080E6402 _080E63AE: bl sub_80E8DD8 b _080E6402 _080E63B4: bl sub_80E8218 bl sub_80E8CEC b _080E6402 _080E63BE: bl sub_80E69F8 ldr r0, _080E63D0 bl sub_80E682C ldr r0, _080E63D4 bl SetVBlankCallback b _080E6402 .align 2, 0 _080E63D0: .4byte sub_80E6AA8 _080E63D4: .4byte sub_80E6A6C _080E63D8: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _080E6402 _080E63EA: movs r1, 0x80 lsls r1, 19 movs r2, 0xFA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _080E6414 bl SetMainCallback2 ldr r0, _080E6418 bl FlagSet _080E6402: ldr r1, _080E641C ldr r0, _080E6420 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080E6414: .4byte sub_80E6A88 _080E6418: .4byte 0x00000805 _080E641C: .4byte 0x03001770 _080E6420: .4byte 0x0000043c thumb_func_end sub_80E62F8 thumb_func_start sub_80E6424 sub_80E6424: @ 80E6424 push {lr} ldr r2, _080E6444 ldr r0, _080E6448 ldrb r1, [r2, 0x8] adds r1, r0 ldrb r0, [r1] strb r0, [r2, 0x9] ldrb r0, [r2, 0x9] adds r3, r2, 0 cmp r0, 0x5 bhi _080E6512 lsls r0, 2 ldr r1, _080E644C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E6444: .4byte 0x02001000 _080E6448: .4byte gUnknown_083DB6A4 _080E644C: .4byte _080E6450 .align 2, 0 _080E6450: .4byte _080E64A0 .4byte _080E64B8 .4byte _080E64DA .4byte _080E64F6 .4byte _080E6468 .4byte _080E6480 _080E6468: movs r2, 0x4 strb r2, [r3, 0xA] adds r0, r3, 0 adds r0, 0x83 movs r1, 0x2 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r1, r3, 0 adds r1, 0x88 movs r0, 0x5 b _080E64D0 _080E6480: movs r1, 0x4 strb r1, [r3, 0xA] adds r2, r3, 0 adds r2, 0x83 movs r0, 0x1 strb r0, [r2] adds r0, r3, 0 adds r0, 0x84 strb r1, [r0] adds r1, r3, 0 adds r1, 0x88 movs r0, 0x10 strh r0, [r1] adds r1, 0x2 movs r0, 0x2 b _080E6510 _080E64A0: movs r0, 0x6 strb r0, [r3, 0xA] adds r1, r3, 0 adds r1, 0x83 movs r0, 0x2 strb r0, [r1] adds r0, r3, 0 adds r0, 0x84 movs r2, 0x3 strb r2, [r0] adds r1, 0x5 b _080E64CE _080E64B8: movs r2, 0 movs r0, 0x9 strb r0, [r3, 0xA] adds r1, r3, 0 adds r1, 0x83 movs r0, 0x2 strb r0, [r1] adds r1, 0x1 movs r0, 0x5 strb r0, [r1] adds r1, 0x4 _080E64CE: movs r0, 0x4 _080E64D0: strh r0, [r1] adds r0, r3, 0 adds r0, 0x8A strh r2, [r0] b _080E6512 _080E64DA: movs r1, 0x1 strb r1, [r3, 0xA] adds r0, r3, 0 adds r0, 0x83 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r1, r3, 0 adds r1, 0x88 movs r0, 0x10 strh r0, [r1] adds r1, 0x2 movs r0, 0x4 b _080E6510 _080E64F6: movs r0, 0x2 strb r0, [r3, 0xA] adds r1, r3, 0 adds r1, 0x83 strb r0, [r1] adds r1, 0x1 movs r0, 0x1 strb r0, [r1] adds r1, 0x4 movs r0, 0x5 strh r0, [r1] adds r1, 0x2 movs r0, 0x3 _080E6510: strh r0, [r1] _080E6512: adds r1, r3, 0 adds r1, 0x86 movs r0, 0 strb r0, [r1] subs r1, 0x1 strb r0, [r1] adds r1, 0x2 strb r0, [r1] subs r1, 0x61 strb r0, [r1] movs r2, 0xDD lsls r2, 1 adds r1, r3, r2 strh r0, [r1] movs r0, 0xDF lsls r0, 1 adds r1, r3, r0 movs r0, 0x2 strb r0, [r1] bl sub_80E6554 bl sub_80EAECC bl sub_80EB040 bl sub_80E7E50 bl sub_80E6630 bl sub_80E6690 pop {r0} bx r0 thumb_func_end sub_80E6424 thumb_func_start sub_80E6554 sub_80E6554: @ 80E6554 push {r4-r7,lr} sub sp, 0x4 movs r4, 0 movs r7, 0 ldr r0, _080E6564 mov r12, r0 b _080E656E .align 2, 0 _080E6564: .4byte 0x02001000 _080E6568: adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 _080E656E: movs r5, 0 lsls r3, r7, 1 mov r6, r12 adds r6, 0x2A adds r2, r3, r6 adds r1, r4, 0 adds r0, r1, 0x1 lsls r0, 16 lsrs r4, r0, 16 strb r1, [r2] cmp r4, 0x11 beq _080E65A6 _080E6586: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1 bhi _080E65A2 adds r2, r5, r3 adds r2, r6 adds r1, r4, 0 adds r0, r1, 0x1 lsls r0, 16 lsrs r4, r0, 16 strb r1, [r2] cmp r4, 0x11 bne _080E6586 _080E65A2: cmp r4, 0x11 bne _080E6568 _080E65A6: movs r0, 0x11 mov r1, r12 strh r0, [r1, 0x28] cmp r4, 0x15 bhi _080E6612 mov r6, r12 adds r2, r6, 0 adds r2, 0x78 _080E65B6: lsls r0, r4, 24 lsrs r0, 24 str r2, [sp] bl sub_80EAD7C lsls r0, 24 lsrs r1, r0, 24 ldr r2, [sp] cmp r1, 0 beq _080E65FC adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1 bls _080E65DC adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 movs r5, 0 _080E65DC: lsls r0, r7, 1 adds r0, r5, r0 adds r1, r6, 0 adds r1, 0x2A adds r0, r1 strb r4, [r0] adds r0, r4, 0 subs r0, 0x11 adds r0, r2 movs r1, 0x1 strb r1, [r0] ldrh r0, [r6, 0x28] adds r0, 0x1 strh r0, [r6, 0x28] mov r12, r6 b _080E6608 _080E65FC: adds r0, r4, 0 subs r0, 0x11 adds r0, r2 strb r1, [r0] ldr r0, _080E662C mov r12, r0 _080E6608: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x15 bls _080E65B6 _080E6612: mov r1, r12 ldrh r0, [r1, 0x28] adds r0, 0x1 asrs r0, 1 movs r1, 0xDB lsls r1, 1 add r1, r12 strb r0, [r1] add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E662C: .4byte 0x02001000 thumb_func_end sub_80E6554 thumb_func_start sub_80E6630 sub_80E6630: @ 80E6630 push {r4-r7,lr} movs r1, 0 ldr r0, _080E6664 mov r12, r0 _080E6638: lsls r0, r1, 4 mov r2, r12 adds r5, r0, r2 movs r3, 0 ldrb r0, [r5] adds r7, r1, 0x1 cmp r0, 0xFF beq _080E6680 lsls r0, r1, 3 subs r0, r1 lsls r4, r0, 1 ldr r6, _080E6668 _080E6650: adds r0, r5, r3 ldrb r1, [r0] adds r2, r1, 0 cmp r2, 0 beq _080E666C adds r0, r3, r4 adds r0, r6 adds r1, 0x46 strb r1, [r0] b _080E6672 .align 2, 0 _080E6664: .4byte gUnknown_083DB6B2 _080E6668: .4byte 0x02001040 _080E666C: adds r0, r3, r4 adds r0, r6 strb r2, [r0] _080E6672: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r0, r5, r3 ldrb r0, [r0] cmp r0, 0xFF bne _080E6650 _080E6680: lsls r0, r7, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _080E6638 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80E6630 thumb_func_start sub_80E6690 sub_80E6690: @ 80E6690 push {r4-r6,lr} sub sp, 0x10 mov r0, sp ldr r1, _080E66E0 ldm r1!, {r2-r4} stm r0!, {r2-r4} ldr r1, [r1] str r1, [r0] movs r5, 0 ldr r6, _080E66E4 _080E66A4: ldr r0, _080E66E8 ldrb r0, [r0, 0x8] lsls r0, 1 adds r0, r5, r0 adds r0, r6 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080E66EC adds r4, r0, r1 lsls r0, r5, 3 add r0, sp ldr r0, [r0] ldr r1, [r4] bl StringCopy adds r3, r0, 0 ldrb r0, [r4, 0x8] cmp r0, 0 beq _080E66F0 lsls r0, r5, 1 adds r0, 0x1 lsls r0, 2 add r0, sp ldr r0, [r0] ldr r1, [r4, 0x4] bl StringCopy b _080E670A .align 2, 0 _080E66E0: .4byte gUnknown_083DB7DC _080E66E4: .4byte gUnknown_083DB7C0 _080E66E8: .4byte 0x02001000 _080E66EC: .4byte gUnknown_083DB6F4 _080E66F0: strb r0, [r3] adds r3, 0x1 ldr r1, [r4, 0x4] adds r0, r3, 0 bl StringCopy lsls r0, r5, 1 adds r0, 0x1 lsls r0, 2 add r0, sp ldr r1, [r0] movs r0, 0xFF strb r0, [r1] _080E670A: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1 bls _080E66A4 movs r5, 0 ldr r3, _080E6758 ldr r0, _080E675C adds r2, r3, r0 movs r1, 0 _080E671E: adds r0, r5, r2 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x23 bls _080E671E ldr r1, _080E675C adds r0, r3, r1 adds r0, r5, r0 movs r4, 0x1 negs r4, r4 adds r2, r4, 0 movs r1, 0xFF strb r1, [r0] ldr r0, _080E6760 adds r3, r0 movs r0, 0xFC strb r0, [r3] movs r0, 0x11 strb r0, [r3, 0x1] movs r0, 0xE0 strb r0, [r3, 0x2] strb r2, [r3, 0x3] add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E6758: .4byte 0x02001000 _080E675C: .4byte 0x00009da4 _080E6760: .4byte 0x00009f6e thumb_func_end sub_80E6690 thumb_func_start sub_80E6764 sub_80E6764: @ 80E6764 push {r4-r6,lr} movs r3, 0 ldr r4, _080E680C ldr r2, _080E6810 _080E676C: lsls r0, r3, 1 adds r1, r0, r4 adds r0, r2 ldrh r0, [r0] strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _080E676C movs r3, 0 ldr r4, _080E6814 ldr r2, _080E6818 _080E6786: lsls r0, r3, 1 adds r1, r0, r4 adds r0, r2 ldrh r0, [r0] strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x5 bls _080E6786 movs r3, 0 ldr r5, _080E681C ldr r0, _080E6820 adds r4, r0, 0 adds r6, r5, 0 adds r6, 0xC _080E67A6: lsls r1, r3, 1 adds r2, r1, r5 ldrh r0, [r2] orrs r0, r4 strh r0, [r2] adds r1, r6 ldrh r0, [r1] orrs r0, r4 strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x5 bls _080E67A6 movs r3, 0 ldr r6, _080E6824 ldr r0, _080E6820 adds r5, r0, 0 _080E67CA: movs r2, 0 lsls r0, r3, 3 adds r0, r3 lsls r4, r0, 2 _080E67D2: lsls r0, r2, 1 adds r0, r4 adds r0, r6 ldrh r1, [r0] orrs r1, r5 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x8 bls _080E67D2 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0xF bls _080E67CA movs r3, 0 ldr r2, _080E6828 movs r1, 0 _080E67F8: adds r0, r3, r2 strb r1, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3F bls _080E67F8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E680C: .4byte 0x02028250 _080E6810: .4byte gUnknown_083DB7EC _080E6814: .4byte 0x0202825c _080E6818: .4byte gUnknown_083DB7F4 _080E681C: .4byte 0x02028268 _080E6820: .4byte 0x0000ffff _080E6824: .4byte 0x02028280 _080E6828: .4byte 0x020284c0 thumb_func_end sub_80E6764 thumb_func_start sub_80E682C sub_80E682C: @ 80E682C ldr r1, _080E6838 str r0, [r1, 0x20] movs r0, 0 strh r0, [r1, 0x24] bx lr .align 2, 0 _080E6838: .4byte 0x02001000 thumb_func_end sub_80E682C thumb_func_start sub_80E683C sub_80E683C: @ 80E683C push {r4,r5,lr} ldr r1, _080E6890 adds r0, r1, 0 adds r0, 0x26 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0 bne _080E6898 movs r1, 0 movs r0, 0xDB lsls r0, 1 adds r3, r2, r0 movs r0, 0 ldrsb r0, [r3, r0] cmp r1, r0 bge _080E6876 movs r0, 0xD5 lsls r0, 1 adds r5, r2, r0 movs r4, 0x2 _080E6864: adds r0, r1, r5 strb r4, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 movs r0, 0 ldrsb r0, [r3, r0] cmp r1, r0 blt _080E6864 _080E6876: adds r0, r2, r1 ldr r1, _080E6894 adds r3, r0, r1 ldrh r0, [r2, 0x28] movs r1, 0x1 ands r0, r1 strb r0, [r3] cmp r0, 0 bne _080E68B8 movs r0, 0x2 strb r0, [r3] b _080E68B8 .align 2, 0 _080E6890: .4byte 0x02001000 _080E6894: .4byte 0x000001a9 _080E6898: movs r3, 0xD5 lsls r3, 1 adds r1, r2, r3 movs r0, 0x7 strb r0, [r1] ldr r1, _080E68E0 adds r3, r2, r1 movs r1, 0x6 strb r1, [r3] movs r3, 0xD6 lsls r3, 1 adds r1, r2, r3 strb r0, [r1] adds r3, 0x1 adds r1, r2, r3 strb r0, [r1] _080E68B8: movs r0, 0xD4 lsls r0, 1 adds r1, r2, r0 movs r0, 0 strb r0, [r1] ldr r3, _080E68E4 adds r1, r2, r3 strb r0, [r1] adds r3, 0xC adds r1, r2, r3 strb r0, [r1] adds r3, 0x2 adds r1, r2, r3 strb r0, [r1] bl sub_80E9A4C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E68E0: .4byte 0x000001ab _080E68E4: .4byte 0x000001a9 thumb_func_end sub_80E683C thumb_func_start sub_80E68E8 sub_80E68E8: @ 80E68E8 push {r4-r6,lr} bl sub_80EB0B0 ldr r3, _080E694C adds r0, r3, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0 bne _080E695C movs r1, 0xDC lsls r1, 1 adds r0, r3, r1 ldrb r6, [r0] lsls r0, r6, 1 ldr r2, _080E6950 adds r1, r3, r2 adds r0, r1 ldrh r0, [r0] adds r0, 0x1 asrs r0, 1 ldr r1, _080E6954 adds r2, r3, r1 strb r0, [r2] movs r1, 0 movs r0, 0 ldrsb r0, [r2, r0] adds r5, r3, 0 cmp r1, r0 bge _080E693A ldr r3, _080E6958 adds r4, r5, r3 movs r3, 0x2 _080E6928: adds r0, r1, r4 strb r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 movs r0, 0 ldrsb r0, [r2, r0] cmp r1, r0 blt _080E6928 _080E693A: subs r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 ldr r2, _080E6958 adds r0, r5, r2 adds r2, r1, r0 lsls r0, r6, 1 ldr r3, _080E6950 b _080E69AC .align 2, 0 _080E694C: .4byte 0x02001000 _080E6950: .4byte 0x00004178 _080E6954: .4byte 0x00009a28 _080E6958: .4byte 0x000099a6 _080E695C: movs r1, 0xDC lsls r1, 1 adds r0, r3, r1 ldrb r6, [r0] lsls r0, r6, 1 ldr r2, _080E69E0 adds r1, r3, r2 adds r0, r1 ldrh r0, [r0] adds r0, 0x1 asrs r0, 1 ldr r1, _080E69E4 adds r2, r3, r1 strb r0, [r2] movs r1, 0 movs r0, 0 ldrsb r0, [r2, r0] adds r5, r3, 0 cmp r1, r0 bge _080E699C ldr r3, _080E69E8 adds r4, r5, r3 movs r3, 0x2 _080E698A: adds r0, r1, r4 strb r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 movs r0, 0 ldrsb r0, [r2, r0] cmp r1, r0 blt _080E698A _080E699C: subs r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 ldr r2, _080E69E8 adds r0, r5, r2 adds r2, r1, r0 lsls r0, r6, 1 ldr r3, _080E69E0 _080E69AC: adds r1, r5, r3 adds r0, r1 ldrh r0, [r0] movs r1, 0x1 ands r0, r1 strb r0, [r2] cmp r0, 0 bne _080E69C0 movs r0, 0x2 strb r0, [r2] _080E69C0: ldr r1, _080E69EC adds r0, r5, r1 movs r1, 0 strb r1, [r0] ldr r2, _080E69F0 adds r0, r5, r2 strb r1, [r0] ldr r3, _080E69F4 adds r0, r5, r3 strb r1, [r0] bl sub_80E9A4C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E69E0: .4byte 0x00004142 _080E69E4: .4byte 0x00009a28 _080E69E8: .4byte 0x000099a6 _080E69EC: .4byte 0x000099a4 _080E69F0: .4byte 0x000099a5 _080E69F4: .4byte 0x00009a29 thumb_func_end sub_80E68E8 thumb_func_start sub_80E69F8 sub_80E69F8: @ 80E69F8 push {r4,lr} ldr r0, _080E6A10 ldrb r1, [r0, 0x8] adds r4, r0, 0 cmp r1, 0xD bhi _080E6A50 lsls r0, r1, 2 ldr r1, _080E6A14 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E6A10: .4byte 0x02001000 _080E6A14: .4byte _080E6A18 .align 2, 0 _080E6A18: .4byte _080E6A50 .4byte _080E6A50 .4byte _080E6A50 .4byte _080E6A50 .4byte _080E6A50 .4byte _080E6A58 .4byte _080E6A50 .4byte _080E6A58 .4byte _080E6A58 .4byte _080E6A50 .4byte _080E6A58 .4byte _080E6A58 .4byte _080E6A58 .4byte _080E6A50 _080E6A50: ldrb r0, [r4, 0x8] bl sub_80E9368 b _080E6A66 _080E6A58: ldrb r0, [r4, 0x8] bl sub_80E9368 ldrb r0, [r4, 0xB] ldrb r1, [r4, 0x9] bl sub_80E8BF4 _080E6A66: pop {r4} pop {r0} bx r0 thumb_func_end sub_80E69F8 thumb_func_start sub_80E6A6C sub_80E6A6C: @ 80E6A6C push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl sub_80EAC5C bl TransferPlttBuffer bl sub_8089668 pop {r0} bx r0 thumb_func_end sub_80E6A6C thumb_func_start sub_80E6A88 sub_80E6A88: @ 80E6A88 push {lr} ldr r0, _080E6AA4 ldr r0, [r0, 0x20] bl _call_via_r0 bl AnimateSprites bl BuildOamBuffer bl sub_80EAD08 pop {r0} bx r0 .align 2, 0 _080E6AA4: .4byte 0x02001000 thumb_func_end sub_80E6A88 thumb_func_start sub_80E6AA8 sub_80E6AA8: @ 80E6AA8 push {lr} bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080E6ABA ldr r0, _080E6AC0 bl sub_80E682C _080E6ABA: pop {r0} bx r0 .align 2, 0 _080E6AC0: .4byte sub_80E6AC4 thumb_func_end sub_80E6AA8 thumb_func_start sub_80E6AC4 sub_80E6AC4: @ 80E6AC4 push {lr} bl sub_80E88F0 movs r0, 0 bl sub_80E8398 movs r0, 0 bl sub_80E91D4 ldr r0, _080E6AE0 bl sub_80E682C pop {r0} bx r0 .align 2, 0 _080E6AE0: .4byte sub_80E6AE4 thumb_func_end sub_80E6AC4 thumb_func_start sub_80E6AE4 sub_80E6AE4: @ 80E6AE4 push {r4,r5,lr} bl sub_80E75D8 ldr r4, _080E6B44 adds r1, r4, 0 adds r1, 0x87 strb r0, [r1] lsls r0, 24 cmp r0, 0 beq _080E6AFE movs r0, 0x5 bl audio_play _080E6AFE: ldr r2, _080E6B48 ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 adds r5, r2, 0 cmp r0, 0 beq _080E6BA4 movs r0, 0x5 bl audio_play adds r1, r4, 0 adds r1, 0x86 adds r0, r4, 0 adds r0, 0x84 ldrb r2, [r1] ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 bne _080E6B78 adds r0, r4, 0 adds r0, 0x85 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x1 beq _080E6B60 cmp r0, 0x1 bgt _080E6B4C cmp r0, 0 beq _080E6B52 b _080E6BA4 .align 2, 0 _080E6B44: .4byte 0x02001000 _080E6B48: .4byte 0x03001770 _080E6B4C: cmp r0, 0x2 beq _080E6B6C b _080E6BA4 _080E6B52: ldr r0, _080E6B5C bl sub_80E682C b _080E6BB4 .align 2, 0 _080E6B5C: .4byte sub_80E6BC0 _080E6B60: ldr r0, _080E6B68 bl sub_80E682C b _080E6BB4 .align 2, 0 _080E6B68: .4byte sub_80E6C84 _080E6B6C: ldr r0, _080E6B74 bl sub_80E682C b _080E6BB4 .align 2, 0 _080E6B74: .4byte sub_80E6D7C _080E6B78: adds r0, r4, 0 adds r0, 0x83 ldrb r0, [r0] adds r1, r4, 0 adds r1, 0x85 adds r3, r0, 0 muls r3, r2 adds r0, r3, 0 ldrb r1, [r1] adds r0, r1 adds r1, r4, 0 adds r1, 0x27 strb r0, [r1] bl sub_80E7574 ldr r0, _080E6BA0 bl sub_80E682C b _080E6BB4 .align 2, 0 _080E6BA0: .4byte sub_80E6F68 _080E6BA4: ldrh r1, [r5, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080E6BB4 ldr r0, _080E6BBC bl sub_80E682C _080E6BB4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E6BBC: .4byte sub_80E6C84 thumb_func_end sub_80E6AE4 thumb_func_start sub_80E6BC0 sub_80E6BC0: @ 80E6BC0 push {r4,lr} ldr r4, _080E6BD4 ldrh r0, [r4, 0x24] cmp r0, 0x1 beq _080E6C12 cmp r0, 0x1 bgt _080E6BD8 cmp r0, 0 beq _080E6BE2 b _080E6C76 .align 2, 0 _080E6BD4: .4byte 0x02001000 _080E6BD8: cmp r0, 0x2 beq _080E6C54 cmp r0, 0x64 beq _080E6C64 b _080E6C76 _080E6BE2: movs r0, 0x2 bl sub_80E8398 ldrb r0, [r4, 0x8] cmp r0, 0x6 bne _080E6BFA movs r0, 0x6 bl sub_80E91D4 movs r0, 0x64 strh r0, [r4, 0x24] b _080E6C76 _080E6BFA: movs r0, 0x2 bl sub_80E91D4 movs r0, 0x17 movs r1, 0x8 movs r2, 0x1 bl sub_8072974 movs r0, 0x1 bl MoveMenuCursor b _080E6C3E _080E6C12: bl FillWindowPixelBuffer lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _080E6C32 cmp r1, 0 bgt _080E6C2C movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080E6C46 b _080E6C76 _080E6C2C: cmp r1, 0x1 beq _080E6C46 b _080E6C76 _080E6C32: bl sub_80E7D6C bl sub_80E98C4 bl sub_80E95A4 _080E6C3E: ldrh r0, [r4, 0x24] adds r0, 0x1 strh r0, [r4, 0x24] b _080E6C76 _080E6C46: ldr r1, _080E6C50 ldrh r0, [r1, 0x24] adds r0, 0x1 strh r0, [r1, 0x24] b _080E6C76 .align 2, 0 _080E6C50: .4byte 0x02001000 _080E6C54: bl sub_80E81FC ldr r0, _080E6C60 bl sub_80E682C b _080E6C76 .align 2, 0 _080E6C60: .4byte sub_80E6AC4 _080E6C64: ldr r0, _080E6C7C ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080E6C76 ldr r0, _080E6C80 bl sub_80E682C _080E6C76: pop {r4} pop {r0} bx r0 .align 2, 0 _080E6C7C: .4byte 0x03001770 _080E6C80: .4byte sub_80E6AC4 thumb_func_end sub_80E6BC0 thumb_func_start sub_80E6C84 sub_80E6C84: @ 80E6C84 push {r4,lr} ldr r4, _080E6C98 ldrh r0, [r4, 0x24] cmp r0, 0x1 beq _080E6CF4 cmp r0, 0x1 bgt _080E6C9C cmp r0, 0 beq _080E6CA6 b _080E6D72 .align 2, 0 _080E6C98: .4byte 0x02001000 _080E6C9C: cmp r0, 0x2 beq _080E6D24 cmp r0, 0xFF beq _080E6D64 b _080E6D72 _080E6CA6: movs r0, 0x2 bl sub_80E8398 movs r0, 0x3 bl sub_80E91D4 movs r0, 0x17 movs r1, 0x8 movs r2, 0 bl sub_8072974 movs r0, 0x1 bl MoveMenuCursor ldrb r0, [r4, 0x8] cmp r0, 0x9 beq _080E6CE8 cmp r0, 0x4 beq _080E6CE8 cmp r0, 0x7 beq _080E6CE8 cmp r0, 0x8 beq _080E6CE8 cmp r0, 0xA beq _080E6CE8 cmp r0, 0xB beq _080E6CE8 cmp r0, 0xC beq _080E6CE8 cmp r0, 0x5 beq _080E6CE8 cmp r0, 0xD bne _080E6D1C _080E6CE8: ldr r1, _080E6CF0 movs r0, 0x2 strh r0, [r1, 0x24] b _080E6D72 .align 2, 0 _080E6CF0: .4byte 0x02001000 _080E6CF4: bl FillWindowPixelBuffer lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _080E6D06 cmp r1, 0 ble _080E6D34 b _080E6D3E _080E6D06: movs r0, 0x4 bl sub_80E91D4 movs r0, 0x17 movs r1, 0x8 movs r2, 0 bl sub_8072974 movs r0, 0x1 bl MoveMenuCursor _080E6D1C: ldrh r0, [r4, 0x24] adds r0, 0x1 strh r0, [r4, 0x24] b _080E6D72 _080E6D24: bl FillWindowPixelBuffer lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _080E6D44 cmp r1, 0 bgt _080E6D3E _080E6D34: movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080E6D58 b _080E6D72 _080E6D3E: cmp r1, 0x1 beq _080E6D58 b _080E6D72 _080E6D44: ldr r0, _080E6D50 strh r1, [r0] ldr r0, _080E6D54 bl sub_80E682C b _080E6D72 .align 2, 0 _080E6D50: .4byte 0x0202e8dc _080E6D54: .4byte sub_80E752C _080E6D58: ldr r1, _080E6D60 movs r0, 0xFF strh r0, [r1, 0x24] b _080E6D72 .align 2, 0 _080E6D60: .4byte 0x02001000 _080E6D64: bl sub_8072DEC bl sub_80E81FC ldr r0, _080E6D78 bl sub_80E682C _080E6D72: pop {r4} pop {r0} bx r0 .align 2, 0 _080E6D78: .4byte sub_80E6AC4 thumb_func_end sub_80E6C84 thumb_func_start sub_80E6D7C sub_80E6D7C: @ 80E6D7C push {r4-r7,lr} ldr r5, _080E6D98 ldrh r0, [r5, 0x24] cmp r0, 0xA bne _080E6D88 b _080E6F06 _080E6D88: cmp r0, 0xA bgt _080E6D9C cmp r0, 0 beq _080E6DB6 cmp r0, 0x1 beq _080E6E3C b _080E6F5E .align 2, 0 _080E6D98: .4byte 0x02001000 _080E6D9C: cmp r0, 0x65 bne _080E6DA2 b _080E6F30 _080E6DA2: cmp r0, 0x65 bgt _080E6DAE cmp r0, 0x64 bne _080E6DAC b _080E6F24 _080E6DAC: b _080E6F5E _080E6DAE: cmp r0, 0x66 bne _080E6DB4 b _080E6F50 _080E6DB4: b _080E6F5E _080E6DB6: movs r0, 0x2 bl sub_80E8398 bl sub_80E8054 lsls r0, 24 cmp r0, 0 beq _080E6DCA movs r0, 0x5 b _080E6DEE _080E6DCA: ldrb r0, [r5, 0x8] cmp r0, 0x9 bne _080E6DFC bl sub_80E7FA8 lsls r0, 24 cmp r0, 0 bne _080E6DDE movs r0, 0x8 b _080E6DEE _080E6DDE: ldrh r0, [r5, 0xC] ldr r1, _080E6DF8 cmp r0, r1 beq _080E6DEC ldrh r0, [r5, 0xE] cmp r0, r1 bne _080E6DFC _080E6DEC: movs r0, 0x9 _080E6DEE: bl sub_80E91D4 movs r0, 0xA strh r0, [r5, 0x24] b _080E6F5E .align 2, 0 _080E6DF8: .4byte 0x0000ffff _080E6DFC: ldr r0, _080E6E18 ldrb r0, [r0, 0x8] cmp r0, 0x4 bne _080E6E20 bl sub_80E7FA8 lsls r0, 24 cmp r0, 0 bne _080E6E20 ldr r0, _080E6E1C bl sub_80E682C b _080E6F5E .align 2, 0 _080E6E18: .4byte 0x02001000 _080E6E1C: .4byte sub_80E6C84 _080E6E20: movs r0, 0x1 bl sub_80E91D4 bl sub_80E9744 movs r0, 0x17 movs r1, 0x8 movs r2, 0 bl sub_8072974 movs r0, 0 bl MoveMenuCursor b _080E6F3C _080E6E3C: bl FillWindowPixelBuffer lsls r0, 24 asrs r6, r0, 24 cmp r6, 0 beq _080E6E5C cmp r6, 0 bgt _080E6E56 movs r0, 0x1 negs r0, r0 cmp r6, r0 beq _080E6EDC b _080E6F5E _080E6E56: cmp r6, 0x1 beq _080E6EDC b _080E6F5E _080E6E5C: ldr r7, _080E6EC8 bl sub_80E7FA8 lsls r0, 24 lsrs r0, 24 negs r0, r0 lsrs r0, 31 strh r0, [r7] bl sub_80E7D9C ldrb r0, [r5, 0x8] cmp r0, 0 bne _080E6E82 ldr r4, _080E6ECC bl sub_80E8094 lsls r0, 24 lsrs r0, 24 strh r0, [r4] _080E6E82: ldrb r0, [r5, 0x8] cmp r0, 0x9 bne _080E6E9C bl sub_80E81C0 ldr r4, _080E6ECC ldr r1, _080E6ED0 adds r0, r5, r1 bl sub_80FA364 lsls r0, 24 lsrs r0, 24 strh r0, [r4] _080E6E9C: ldrb r0, [r5, 0x8] cmp r0, 0xD bne _080E6EBE ldrh r0, [r5, 0xC] ldr r1, _080E6ED4 cmp r0, r1 beq _080E6EB0 ldrh r0, [r5, 0xE] cmp r0, r1 bne _080E6EB2 _080E6EB0: strh r6, [r7] _080E6EB2: ldr r4, _080E6ECC bl sub_80E810C lsls r0, 24 lsrs r0, 24 strh r0, [r4] _080E6EBE: ldr r0, _080E6ED8 bl sub_80E682C b _080E6F5E .align 2, 0 _080E6EC8: .4byte 0x0202e8dc _080E6ECC: .4byte 0x0202e8cc _080E6ED0: .4byte 0x00009c7c _080E6ED4: .4byte 0x0000ffff _080E6ED8: .4byte sub_80E752C _080E6EDC: bl sub_8072DEC bl sub_80E81FC ldr r4, _080E6EFC ldrb r0, [r4, 0x8] cmp r0, 0x6 bne _080E6F00 bl sub_80E7FA8 lsls r0, 24 cmp r0, 0 beq _080E6F00 movs r0, 0x64 strh r0, [r4, 0x24] b _080E6F5E .align 2, 0 _080E6EFC: .4byte 0x02001000 _080E6F00: bl sub_80E95A4 b _080E6F12 _080E6F06: ldr r0, _080E6F1C ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080E6F5E _080E6F12: ldr r0, _080E6F20 bl sub_80E682C b _080E6F5E .align 2, 0 _080E6F1C: .4byte 0x03001770 _080E6F20: .4byte sub_80E6AC4 _080E6F24: movs r0, 0x7 bl sub_80E91D4 ldrh r0, [r5, 0x24] adds r0, 0x1 strh r0, [r5, 0x24] _080E6F30: ldr r0, _080E6F48 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080E6F5E _080E6F3C: ldr r1, _080E6F4C ldrh r0, [r1, 0x24] adds r0, 0x1 strh r0, [r1, 0x24] b _080E6F5E .align 2, 0 _080E6F48: .4byte 0x03001770 _080E6F4C: .4byte 0x02001000 _080E6F50: bl sub_80E7E50 bl sub_80E95A4 ldr r0, _080E6F64 bl sub_80E682C _080E6F5E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E6F64: .4byte sub_80E6AC4 thumb_func_end sub_80E6D7C thumb_func_start sub_80E6F68 sub_80E6F68: @ 80E6F68 push {r4,lr} ldr r4, _080E6F78 ldrh r0, [r4, 0x24] cmp r0, 0 beq _080E6F7C cmp r0, 0x1 beq _080E6F9C b _080E6FBC .align 2, 0 _080E6F78: .4byte 0x02001000 _080E6F7C: movs r0, 0x1 bl sub_80E8398 movs r0, 0xA bl sub_80E91D4 bl sub_80E683C bl sub_80E9974 bl sub_80E9E98 ldrh r0, [r4, 0x24] adds r0, 0x1 strh r0, [r4, 0x24] b _080E6FBC _080E6F9C: bl sub_80E9EA8 lsls r0, 24 cmp r0, 0 beq _080E6FBC movs r0, 0x1 bl sub_80E8D8C bl sub_80E8420 movs r0, 0 bl sub_80E8958 ldr r0, _080E6FC4 bl sub_80E682C _080E6FBC: pop {r4} pop {r0} bx r0 .align 2, 0 _080E6FC4: .4byte sub_80E6FC8 thumb_func_end sub_80E6F68 thumb_func_start sub_80E6FC8 sub_80E6FC8: @ 80E6FC8 push {r4,lr} bl sub_80E77C8 adds r1, r0, 0 ldr r4, _080E7000 adds r0, r4, 0 adds r0, 0x96 strb r1, [r0] movs r2, 0xE0 lsls r2, 1 adds r0, r4, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _080E700C movs r0, 0x5 bl audio_play movs r1, 0xE2 lsls r1, 1 adds r0, r4, r1 ldr r1, _080E7004 str r1, [r0] ldr r0, _080E7008 bl sub_80E682C b _080E710A .align 2, 0 _080E7000: .4byte 0x02001000 _080E7004: .4byte sub_80E6FC8 _080E7008: .4byte sub_80E7458 _080E700C: lsls r0, r1, 24 cmp r0, 0 beq _080E7018 movs r0, 0x5 bl audio_play _080E7018: ldr r0, _080E7054 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080E70E8 ldr r2, _080E7058 adds r0, r4, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _080E7090 movs r0, 0x5 bl audio_play movs r1, 0xD4 lsls r1, 1 adds r0, r4, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x2 beq _080E7070 cmp r0, 0x2 bgt _080E705C cmp r0, 0x1 beq _080E7062 b _080E710A .align 2, 0 _080E7054: .4byte 0x03001770 _080E7058: .4byte 0x000001b7 _080E705C: cmp r0, 0x3 beq _080E70F0 b _080E710A _080E7062: ldr r0, _080E706C bl sub_80E682C b _080E710A .align 2, 0 _080E706C: .4byte sub_80E718C _080E7070: ldrb r0, [r4, 0x8] cmp r0, 0x6 beq _080E710A adds r0, r4, 0 adds r0, 0x27 ldrb r0, [r0] ldr r1, _080E708C bl sub_80E7F00 bl sub_80E7574 bl sub_80E95A4 b _080E710A .align 2, 0 _080E708C: .4byte 0x0000ffff _080E7090: adds r0, r4, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0 beq _080E70CA ldr r2, _080E70DC adds r0, r4, r2 movs r2, 0 ldrsb r2, [r0, r2] movs r1, 0xD4 lsls r1, 1 adds r0, r4, r1 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r2, r0 adds r0, r4, 0 adds r0, 0x40 adds r2, r0 ldrb r0, [r2] lsls r0, 1 ldr r2, _080E70E0 adds r1, r4, r2 adds r0, r1 ldrh r0, [r0] cmp r0, 0 beq _080E710A _080E70CA: movs r0, 0x5 bl audio_play bl sub_80E7AD4 ldr r0, _080E70E4 bl sub_80E682C b _080E710A .align 2, 0 _080E70DC: .4byte 0x000001a9 _080E70E0: .4byte 0x00004142 _080E70E4: .4byte sub_80E7218 _080E70E8: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080E70FC _080E70F0: ldr r0, _080E70F8 bl sub_80E682C b _080E710A .align 2, 0 _080E70F8: .4byte sub_80E7114 _080E70FC: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080E710A ldr r0, _080E7110 bl sub_80E682C _080E710A: pop {r4} pop {r0} bx r0 .align 2, 0 _080E7110: .4byte sub_80E718C thumb_func_end sub_80E6FC8 thumb_func_start sub_80E7114 sub_80E7114: @ 80E7114 push {lr} ldr r0, _080E712C ldrh r1, [r0, 0x24] adds r2, r0, 0 cmp r1, 0x4 bhi _080E7182 lsls r0, r1, 2 ldr r1, _080E7130 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E712C: .4byte 0x02001000 _080E7130: .4byte _080E7134 .align 2, 0 _080E7134: .4byte _080E7148 .4byte _080E715C .4byte _080E715C .4byte _080E7164 .4byte _080E717C _080E7148: bl sub_80E8504 bl sub_80E9E98 bl sub_80E88F0 movs r0, 0 bl sub_80E8D8C b _080E716E _080E715C: ldrh r0, [r2, 0x24] adds r0, 0x1 strh r0, [r2, 0x24] b _080E7182 _080E7164: bl sub_80E9F50 lsls r0, 24 cmp r0, 0 beq _080E7182 _080E716E: ldr r1, _080E7178 ldrh r0, [r1, 0x24] adds r0, 0x1 strh r0, [r1, 0x24] b _080E7182 .align 2, 0 _080E7178: .4byte 0x02001000 _080E717C: ldr r0, _080E7188 bl sub_80E682C _080E7182: pop {r0} bx r0 .align 2, 0 _080E7188: .4byte sub_80E6AC4 thumb_func_end sub_80E7114 thumb_func_start sub_80E718C sub_80E718C: @ 80E718C push {r4,lr} ldr r0, _080E71A4 ldrh r1, [r0, 0x24] adds r4, r0, 0 cmp r1, 0x1 beq _080E71C6 cmp r1, 0x1 bgt _080E71A8 cmp r1, 0 beq _080E71AE b _080E71EC .align 2, 0 _080E71A4: .4byte 0x02001000 _080E71A8: cmp r1, 0x8 beq _080E71F4 b _080E71EC _080E71AE: bl sub_80E8504 bl sub_80E9E98 bl sub_80E88F0 ldrh r0, [r4, 0x24] adds r0, 0x1 strh r0, [r4, 0x24] bl sub_80E8D54 b _080E720E _080E71C6: bl sub_80E9FD4 lsls r0, 24 cmp r0, 0 beq _080E720E movs r2, 0 adds r1, r4, 0 adds r1, 0x26 ldrb r0, [r1] cmp r0, 0 bne _080E71DE movs r2, 0x1 _080E71DE: strb r2, [r1] bl sub_80E683C bl sub_80E9974 bl sub_80E9E98 _080E71EC: ldrh r0, [r4, 0x24] adds r0, 0x1 strh r0, [r4, 0x24] b _080E720E _080E71F4: bl sub_80EA014 lsls r0, 24 cmp r0, 0 beq _080E720E bl sub_80E8420 movs r0, 0 bl sub_80E8958 ldr r0, _080E7214 bl sub_80E682C _080E720E: pop {r4} pop {r0} bx r0 .align 2, 0 _080E7214: .4byte sub_80E6FC8 thumb_func_end sub_80E718C thumb_func_start sub_80E7218 sub_80E7218: @ 80E7218 push {r4,lr} ldr r4, _080E7230 ldrh r0, [r4, 0x24] adds r1, r4, 0 cmp r0, 0x9 beq _080E7260 cmp r0, 0x9 bgt _080E7234 cmp r0, 0x8 beq _080E7244 b _080E723C .align 2, 0 _080E7230: .4byte 0x02001000 _080E7234: cmp r0, 0xA beq _080E7276 cmp r0, 0xB beq _080E7288 _080E723C: ldrh r0, [r1, 0x24] adds r0, 0x1 strh r0, [r1, 0x24] b _080E7288 _080E7244: movs r0, 0 bl sub_80E8D8C bl sub_80E8504 bl sub_80E9AD4 bl sub_80E68E8 bl sub_80E88F0 bl sub_80E9E98 b _080E726E _080E7260: bl sub_80EA050 lsls r0, 24 cmp r0, 0 beq _080E7288 bl sub_80E9C94 _080E726E: ldrh r0, [r4, 0x24] adds r0, 0x1 strh r0, [r4, 0x24] b _080E7288 _080E7276: movs r0, 0x1 bl sub_80E87CC movs r0, 0x1 bl sub_80E8958 ldr r0, _080E7290 bl sub_80E682C _080E7288: pop {r4} pop {r0} bx r0 .align 2, 0 _080E7290: .4byte sub_80E7294 thumb_func_end sub_80E7218 thumb_func_start sub_80E7294 sub_80E7294: @ 80E7294 push {r4,lr} bl sub_80E7B40 adds r1, r0, 0 ldr r4, _080E72CC ldr r2, _080E72D0 adds r0, r4, r2 strb r1, [r0] adds r2, 0x7 adds r0, r4, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _080E72DC movs r0, 0x5 bl audio_play movs r1, 0xE2 lsls r1, 1 adds r0, r4, r1 ldr r1, _080E72D4 str r1, [r0] ldr r0, _080E72D8 bl sub_80E682C b _080E731A .align 2, 0 _080E72CC: .4byte 0x02001000 _080E72D0: .4byte 0x000001b9 _080E72D4: .4byte sub_80E7294 _080E72D8: .4byte sub_80E7458 _080E72DC: lsls r0, r1, 24 cmp r0, 0 beq _080E72E8 movs r0, 0x5 bl audio_play _080E72E8: ldr r0, _080E7304 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080E730C movs r0, 0x5 bl audio_play ldr r0, _080E7308 bl sub_80E682C b _080E731A .align 2, 0 _080E7304: .4byte 0x03001770 _080E7308: .4byte sub_80E7324 _080E730C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080E731A ldr r0, _080E7320 bl sub_80E682C _080E731A: pop {r4} pop {r0} bx r0 .align 2, 0 _080E7320: .4byte sub_80E73D0 thumb_func_end sub_80E7294 thumb_func_start sub_80E7324 sub_80E7324: @ 80E7324 push {lr} ldr r0, _080E733C ldrh r1, [r0, 0x24] adds r2, r0, 0 cmp r1, 0x4 bhi _080E73C6 lsls r0, r1, 2 ldr r1, _080E7340 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E733C: .4byte 0x02001000 _080E7340: .4byte _080E7344 .align 2, 0 _080E7344: .4byte _080E7358 .4byte _080E737C .4byte _080E7384 .4byte _080E738A .4byte _080E73A4 _080E7358: bl sub_80E7DD0 lsls r0, 24 cmp r0, 0 bne _080E7370 ldr r0, _080E736C bl sub_80E682C b _080E73C6 .align 2, 0 _080E736C: .4byte sub_80E7294 _080E7370: bl sub_80E88F0 movs r0, 0 bl sub_80E87CC b _080E7394 _080E737C: ldrh r0, [r2, 0x24] adds r0, 0x1 strh r0, [r2, 0x24] b _080E73C6 _080E7384: bl sub_80E9E98 b _080E7394 _080E738A: bl sub_80EA184 lsls r0, 24 cmp r0, 0 beq _080E73C6 _080E7394: ldr r1, _080E73A0 ldrh r0, [r1, 0x24] adds r0, 0x1 strh r0, [r1, 0x24] b _080E73C6 .align 2, 0 _080E73A0: .4byte 0x02001000 _080E73A4: ldrb r0, [r2, 0x8] cmp r0, 0x6 bne _080E73C0 bl sub_80E7FA8 lsls r0, 24 cmp r0, 0 beq _080E73C0 ldr r0, _080E73BC bl sub_80E682C b _080E73C6 .align 2, 0 _080E73BC: .4byte sub_80E6D7C _080E73C0: ldr r0, _080E73CC bl sub_80E682C _080E73C6: pop {r0} bx r0 .align 2, 0 _080E73CC: .4byte sub_80E6AC4 thumb_func_end sub_80E7324 thumb_func_start sub_80E73D0 sub_80E73D0: @ 80E73D0 push {lr} ldr r0, _080E73E4 ldrh r0, [r0, 0x24] cmp r0, 0x4 bhi _080E744E lsls r0, 2 ldr r1, _080E73E8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E73E4: .4byte 0x02001000 _080E73E8: .4byte _080E73EC .align 2, 0 _080E73EC: .4byte _080E7400 .4byte _080E740C .4byte _080E7416 .4byte _080E742C .4byte _080E7444 _080E7400: movs r0, 0 bl sub_80E87CC bl sub_80E88F0 b _080E7436 _080E740C: bl sub_80E9AD4 bl sub_80E9E98 b _080E7436 _080E7416: bl sub_80EA0E4 lsls r0, 24 cmp r0, 0 beq _080E744E movs r0, 0x1 bl sub_80E8D8C bl sub_80E9A14 b _080E7436 _080E742C: bl sub_80E8420 movs r0, 0 bl sub_80E8958 _080E7436: ldr r1, _080E7440 ldrh r0, [r1, 0x24] adds r0, 0x1 strh r0, [r1, 0x24] b _080E744E .align 2, 0 _080E7440: .4byte 0x02001000 _080E7444: bl sub_80E9974 ldr r0, _080E7454 bl sub_80E682C _080E744E: pop {r0} bx r0 .align 2, 0 _080E7454: .4byte sub_80E6FC8 thumb_func_end sub_80E73D0 thumb_func_start sub_80E7458 sub_80E7458: @ 80E7458 push {r4,r5,lr} ldr r4, _080E7468 ldrh r5, [r4, 0x24] cmp r5, 0 beq _080E746C cmp r5, 0x1 beq _080E74A4 b _080E7518 .align 2, 0 _080E7468: .4byte 0x02001000 _080E746C: movs r1, 0xE2 lsls r1, 1 adds r0, r4, r1 ldr r1, [r0] ldr r0, _080E7480 cmp r1, r0 bne _080E7484 bl sub_80E9D7C b _080E7488 .align 2, 0 _080E7480: .4byte sub_80E6FC8 _080E7484: bl sub_80E9D00 _080E7488: ldr r4, _080E74A0 movs r2, 0xDF lsls r2, 1 adds r0, r4, r2 ldrb r0, [r0] bl sub_80E9E08 ldrh r0, [r4, 0x24] adds r0, 0x1 strh r0, [r4, 0x24] b _080E7518 .align 2, 0 _080E74A0: .4byte 0x02001000 _080E74A4: bl sub_80E9E54 lsls r0, 24 cmp r0, 0 beq _080E7518 movs r1, 0xE2 lsls r1, 1 adds r0, r4, r1 ldr r1, [r0] ldr r0, _080E74DC cmp r1, r0 bne _080E74E4 bl sub_80E9D7C ldr r2, _080E74E0 adds r1, r4, r2 adds r2, 0xB adds r0, r4, r2 ldrb r0, [r0] ldrb r2, [r1] adds r0, r2 strb r0, [r1] bl sub_80E7A98 adds r0, r4, 0 adds r0, 0x96 b _080E74FE .align 2, 0 _080E74DC: .4byte sub_80E6FC8 _080E74E0: .4byte 0x000001b5 _080E74E4: ldr r0, _080E7520 adds r1, r4, r0 movs r2, 0xE0 lsls r2, 1 adds r0, r4, r2 ldrb r0, [r0] ldrb r2, [r1] adds r0, r2 strb r0, [r1] bl sub_80E7D30 ldr r1, _080E7524 adds r0, r4, r1 _080E74FE: strb r5, [r0] ldr r1, _080E7528 movs r0, 0xDF lsls r0, 1 adds r2, r1, r0 movs r0, 0x2 strb r0, [r2] movs r2, 0xE2 lsls r2, 1 adds r0, r1, r2 ldr r0, [r0] bl sub_80E682C _080E7518: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E7520: .4byte 0x00009a29 _080E7524: .4byte 0x000001b9 _080E7528: .4byte 0x02001000 thumb_func_end sub_80E7458 thumb_func_start sub_80E752C sub_80E752C: @ 80E752C push {r4,lr} sub sp, 0x4 ldr r4, _080E7540 ldrh r1, [r4, 0x24] cmp r1, 0 beq _080E7544 cmp r1, 0x1 beq _080E755C b _080E756C .align 2, 0 _080E7540: .4byte 0x02001000 _080E7544: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrh r0, [r4, 0x24] adds r0, 0x1 strh r0, [r4, 0x24] b _080E756C _080E755C: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080E756C ldr r0, [r4] bl SetMainCallback2 _080E756C: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_80E752C thumb_func_start sub_80E7574 sub_80E7574: @ 80E7574 push {r4,r5,lr} ldr r4, _080E75B8 ldrb r5, [r4, 0x8] cmp r5, 0x1 bne _080E75BC adds r0, r4, 0 adds r0, 0x86 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r1, r4, 0 adds r1, 0x7E adds r0, r1 ldrb r0, [r0] cmp r0, 0x2 bne _080E75BC adds r0, r4, 0 adds r0, 0x27 ldrb r0, [r0] lsls r0, 1 subs r1, 0x72 adds r0, r1 ldrh r0, [r0] bl sub_80EB2D4 lsls r0, 16 lsrs r0, 16 cmp r0, 0x7 beq _080E75BC adds r0, r4, 0 adds r0, 0x7D strb r5, [r0] adds r1, r4, 0 b _080E75C6 .align 2, 0 _080E75B8: .4byte 0x02001000 _080E75BC: ldr r1, _080E75D4 adds r2, r1, 0 adds r2, 0x7D movs r0, 0 strb r0, [r2] _080E75C6: adds r1, 0x7D movs r0, 0 strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E75D4: .4byte 0x02001000 thumb_func_end sub_80E7574 thumb_func_start sub_80E75D8 sub_80E75D8: @ 80E75D8 push {r4-r6,lr} movs r4, 0 ldr r2, _080E75FC ldrh r1, [r2, 0x2E] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080E7604 ldr r1, _080E7600 adds r0, r1, 0 adds r0, 0x84 ldrb r0, [r0] adds r2, r1, 0 adds r2, 0x86 strb r0, [r2] adds r1, 0x85 movs r0, 0x2 b _080E768E .align 2, 0 _080E75FC: .4byte 0x03001770 _080E7600: .4byte 0x02001000 _080E7604: ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080E7630 ldr r2, _080E762C adds r1, r2, 0 adds r1, 0x86 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bge _080E765C adds r0, r2, 0 adds r0, 0x84 ldrb r0, [r0] strb r0, [r1] b _080E765C .align 2, 0 _080E762C: .4byte 0x02001000 _080E7630: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080E7658 ldr r0, _080E7684 adds r3, r0, 0 adds r3, 0x86 ldrb r1, [r3] adds r1, 0x1 strb r1, [r3] adds r0, 0x84 lsls r1, 24 asrs r1, 24 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 ble _080E7656 strb r4, [r3] _080E7656: movs r4, 0x1 _080E7658: cmp r4, 0 beq _080E76EA _080E765C: ldr r2, _080E7684 ldrb r3, [r2, 0x9] cmp r3, 0x2 bne _080E7692 adds r1, r2, 0 adds r1, 0x86 adds r0, r2, 0 adds r0, 0x84 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 bne _080E7688 adds r0, r2, 0 adds r0, 0x85 strb r3, [r0] b _080E77BC .align 2, 0 _080E7684: .4byte 0x02001000 _080E7688: adds r1, r2, 0 adds r1, 0x85 movs r0, 0 _080E768E: strb r0, [r1] b _080E77BC _080E7692: movs r0, 0x85 adds r0, r2 mov r12, r0 adds r4, r2, 0 adds r4, 0x83 movs r1, 0 ldrsb r1, [r0, r1] ldrb r3, [r4] movs r0, 0 ldrsb r0, [r4, r0] cmp r1, r0 blt _080E76B0 subs r0, r3, 0x1 mov r1, r12 strb r0, [r1] _080E76B0: adds r1, r2, 0 adds r1, 0x86 adds r0, r2, 0 adds r0, 0x84 ldrb r3, [r1] ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 beq _080E77BC ldrb r0, [r4] adds r4, r0, 0 muls r4, r3 adds r0, r4, 0 mov r5, r12 ldrb r5, [r5] adds r0, r5 lsls r0, 24 lsrs r0, 24 ldrb r1, [r2, 0xA] cmp r0, r1 bcc _080E77BC subs r0, r1 mov r6, r12 strb r0, [r6] b _080E77BC _080E76EA: ldrh r2, [r2, 0x30] movs r0, 0x20 ands r0, r2 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _080E7744 ldr r2, _080E7728 adds r3, r2, 0 adds r3, 0x85 ldrb r0, [r3] subs r0, 0x1 strb r0, [r3] lsls r0, 24 cmp r0, 0 bge _080E77BC adds r1, r2, 0 adds r1, 0x86 adds r0, r2, 0 adds r0, 0x84 ldrb r4, [r1] ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 bne _080E772C movs r0, 0x2 b _080E77BA .align 2, 0 _080E7728: .4byte 0x02001000 _080E772C: adds r0, r2, 0 adds r0, 0x83 ldrb r0, [r0] subs r1, r0, 0x1 strb r1, [r3] adds r5, r4, 0 muls r5, r0 adds r0, r5, 0 adds r1, r0 lsls r1, 24 lsrs r0, r1, 24 b _080E77B2 _080E7744: movs r0, 0x10 ands r0, r2 cmp r0, 0 beq _080E77C0 ldr r2, _080E777C adds r5, r2, 0 adds r5, 0x86 adds r0, r2, 0 adds r0, 0x84 movs r1, 0 ldrsb r1, [r5, r1] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 bne _080E7780 adds r1, r2, 0 adds r1, 0x85 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 asrs r0, 24 cmp r0, 0x2 ble _080E77BC strb r4, [r1] b _080E77BC .align 2, 0 _080E777C: .4byte 0x02001000 _080E7780: adds r3, r2, 0 adds r3, 0x85 ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] movs r6, 0x83 adds r6, r2 mov r12, r6 lsls r0, 24 asrs r0, 24 movs r1, 0 ldrsb r1, [r6, r1] cmp r0, r1 blt _080E779E strb r4, [r3] _080E779E: ldrb r1, [r5] mov r4, r12 ldrb r0, [r4] adds r5, r0, 0 muls r5, r1 adds r0, r5, 0 ldrb r6, [r3] adds r0, r6 lsls r0, 24 lsrs r0, 24 _080E77B2: ldrb r1, [r2, 0xA] cmp r0, r1 bcc _080E77BC subs r0, r1 _080E77BA: strb r0, [r3] _080E77BC: movs r0, 0x1 b _080E77C2 _080E77C0: movs r0, 0 _080E77C2: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80E75D8 thumb_func_start sub_80E77C8 sub_80E77C8: @ 80E77C8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r7, 0 ldr r1, _080E780C ldr r2, _080E7810 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r3, r1, 0 cmp r0, 0 beq _080E783E ldr r1, _080E7814 ldrh r2, [r1, 0x30] movs r0, 0x40 ands r0, r2 adds r6, r1, 0 cmp r0, 0 beq _080E7818 movs r4, 0xD4 lsls r4, 1 adds r1, r3, r4 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 ble _080E7806 b _080E7948 _080E7806: movs r0, 0x3 strb r0, [r1] b _080E7948 .align 2, 0 _080E780C: .4byte 0x02001000 _080E7810: .4byte 0x000001b7 _080E7814: .4byte 0x03001770 _080E7818: movs r0, 0x80 ands r0, r2 cmp r0, 0 bne _080E7822 b _080E7950 _080E7822: movs r5, 0xD4 lsls r5, 1 adds r1, r3, r5 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 asrs r0, 24 cmp r0, 0x3 bgt _080E7838 b _080E7948 _080E7838: movs r0, 0x1 strb r0, [r1] b _080E7948 _080E783E: adds r0, r3, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0x1 bne _080E789A movs r4, 0 ldr r1, _080E7870 ldrh r2, [r1, 0x30] movs r0, 0x40 ands r0, r2 adds r6, r1, 0 cmp r0, 0 beq _080E7874 movs r6, 0xD4 lsls r6, 1 adds r1, r3, r6 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bge _080E7944 movs r0, 0x3 strb r0, [r1] b _080E7944 .align 2, 0 _080E7870: .4byte 0x03001770 _080E7874: movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _080E7894 movs r0, 0xD4 lsls r0, 1 adds r1, r3, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 asrs r0, 24 cmp r0, 0x3 ble _080E7892 strb r7, [r1] _080E7892: movs r4, 0x1 _080E7894: cmp r4, 0 beq _080E7950 b _080E7944 _080E789A: movs r4, 0 movs r1, 0xE0 lsls r1, 1 adds r5, r3, r1 strb r7, [r5] ldr r1, _080E78E0 ldrh r2, [r1, 0x30] movs r0, 0x40 ands r0, r2 adds r6, r1, 0 cmp r0, 0 beq _080E78E8 movs r2, 0xD4 lsls r2, 1 adds r1, r3, r2 ldrb r2, [r1] movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0 bne _080E78C4 b _080E7A88 _080E78C4: subs r0, r2, 0x1 strb r0, [r1] ldr r4, _080E78E4 adds r1, r3, r4 lsls r0, 24 asrs r0, 24 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 cmp r0, r1 bge _080E7932 movs r0, 0xFF strb r0, [r5] b _080E7932 .align 2, 0 _080E78E0: .4byte 0x03001770 _080E78E4: .4byte 0x000001b5 _080E78E8: movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _080E792E movs r0, 0xD4 lsls r0, 1 adds r2, r3, r0 movs r1, 0 ldrsb r1, [r2, r1] movs r4, 0xDB lsls r4, 1 adds r0, r3, r4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 subs r0, 0x1 cmp r1, r0 blt _080E790E b _080E7A88 _080E790E: ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] movs r1, 0 ldrsb r1, [r2, r1] ldr r2, _080E794C adds r0, r3, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r0, 0x3 cmp r1, r0 ble _080E792C movs r0, 0x1 strb r0, [r5] _080E792C: movs r4, 0x1 _080E792E: cmp r4, 0 beq _080E7950 _080E7932: movs r4, 0xE0 lsls r4, 1 adds r0, r3, r4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _080E7944 b _080E7A88 _080E7944: bl sub_80E7A98 _080E7948: movs r0, 0x1 b _080E7A8A .align 2, 0 _080E794C: .4byte 0x000001b5 _080E7950: ldrh r1, [r6, 0x30] movs r0, 0x20 ands r0, r1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0 beq _080E7992 ldr r5, _080E7974 adds r2, r3, r5 ldrb r1, [r2] movs r0, 0 ldrsb r0, [r2, r0] cmp r0, 0 beq _080E7978 subs r0, r1, 0x1 strb r0, [r2] b _080E79E6 .align 2, 0 _080E7974: .4byte 0x000001a9 _080E7978: movs r6, 0xD4 lsls r6, 1 adds r0, r3, r6 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 movs r4, 0xD5 lsls r4, 1 adds r1, r3, r4 adds r0, r1 ldrb r0, [r0] strb r0, [r2] b _080E79E6 _080E7992: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080E79E2 ldr r5, _080E79D4 adds r0, r3, r5 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 bne _080E79CC ldr r0, _080E79D8 adds r4, r3, r0 movs r1, 0xD4 lsls r1, 1 adds r0, r3, r1 movs r1, 0 ldrsb r1, [r0, r1] movs r2, 0xD5 lsls r2, 1 adds r0, r3, r2 adds r1, r0 ldrb r5, [r4] movs r2, 0 ldrsb r2, [r4, r2] movs r0, 0 ldrsb r0, [r1, r0] cmp r2, r0 bne _080E79DC _080E79CC: ldr r4, _080E79D8 adds r0, r3, r4 strb r6, [r0] b _080E79E0 .align 2, 0 _080E79D4: .4byte 0x000001b7 _080E79D8: .4byte 0x000001a9 _080E79DC: adds r0, r5, 0x1 strb r0, [r4] _080E79E0: movs r7, 0x1 _080E79E2: cmp r7, 0 beq _080E7A88 _080E79E6: adds r2, r3, 0 ldr r5, _080E7A48 adds r7, r2, r5 ldrb r6, [r7] mov r9, r6 movs r1, 0 ldr r0, _080E7A4C adds r0, r2 mov r12, r0 subs r5, 0xF adds r4, r2, r5 movs r0, 0 ldrsb r0, [r4, r0] movs r6, 0xD5 lsls r6, 1 adds r6, r2 mov r8, r6 add r0, r8 mov r6, r12 movs r5, 0 ldrsb r5, [r6, r5] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r5, r0 bne _080E7A1C movs r1, 0x1 _080E7A1C: strb r1, [r7] cmp r1, 0 beq _080E7A58 ldr r0, _080E7A50 adds r1, r2, r0 ldrb r0, [r4] ldrb r1, [r1] subs r0, r1 strb r0, [r4] lsls r0, 24 cmp r0, 0 beq _080E7A36 b _080E7948 _080E7A36: movs r0, 0x1 strb r0, [r4] ldr r1, _080E7A54 adds r0, r2, r1 ldrb r0, [r0] mov r2, r12 strb r0, [r2] b _080E7948 .align 2, 0 _080E7A48: .4byte 0x000001b7 _080E7A4C: .4byte 0x000001a9 _080E7A50: .4byte 0x000001b5 _080E7A54: .4byte 0x000001ab _080E7A58: mov r6, r9 cmp r6, 0 bne _080E7A60 b _080E7948 _080E7A60: ldr r1, _080E7A84 adds r0, r3, r1 ldrb r0, [r0] ldrb r2, [r4] adds r0, r2 strb r0, [r4] cmp r5, 0 bne _080E7A72 b _080E7948 _080E7A72: movs r0, 0 ldrsb r0, [r4, r0] add r0, r8 ldrb r0, [r0] subs r0, 0x1 mov r4, r12 strb r0, [r4] b _080E7948 .align 2, 0 _080E7A84: .4byte 0x000001b5 _080E7A88: movs r0, 0 _080E7A8A: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80E77C8 thumb_func_start sub_80E7A98 sub_80E7A98: @ 80E7A98 push {lr} ldr r1, _080E7ACC ldr r0, _080E7AD0 adds r3, r1, r0 movs r2, 0xD4 lsls r2, 1 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r2, 0x2 adds r1, r2 adds r0, r1 movs r1, 0 ldrsb r1, [r3, r1] ldrb r2, [r0] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 blt _080E7AC6 subs r0, r2, 0x1 strb r0, [r3] _080E7AC6: pop {r0} bx r0 .align 2, 0 _080E7ACC: .4byte 0x02001000 _080E7AD0: .4byte 0x000001a9 thumb_func_end sub_80E7A98 thumb_func_start sub_80E7AD4 sub_80E7AD4: @ 80E7AD4 push {lr} ldr r3, _080E7B08 adds r0, r3, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0 bne _080E7B10 ldr r1, _080E7B0C adds r0, r3, r1 movs r1, 0 ldrsb r1, [r0, r1] movs r2, 0xD4 lsls r2, 1 adds r0, r3, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 1 adds r1, r0 adds r0, r3, 0 adds r0, 0x2A adds r1, r0 ldrb r1, [r1] adds r2, 0x10 b _080E7B34 .align 2, 0 _080E7B08: .4byte 0x02001000 _080E7B0C: .4byte 0x000001a9 _080E7B10: ldr r1, _080E7B3C adds r0, r3, r1 movs r2, 0 ldrsb r2, [r0, r2] subs r1, 0x1 adds r0, r3, r1 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r2, r0 adds r0, r3, 0 adds r0, 0x40 adds r2, r0 ldrb r1, [r2] movs r2, 0xDC lsls r2, 1 _080E7B34: adds r0, r3, r2 strb r1, [r0] pop {r0} bx r0 .align 2, 0 _080E7B3C: .4byte 0x000001a9 thumb_func_end sub_80E7AD4 thumb_func_start sub_80E7B40 sub_80E7B40: @ 80E7B40 push {r4-r7,lr} movs r5, 0 ldr r2, _080E7B8C movs r0, 0xE0 lsls r0, 1 adds r6, r2, r0 strb r5, [r6] ldr r1, _080E7B90 ldrh r4, [r1, 0x30] movs r0, 0x40 ands r0, r4 adds r3, r2, 0 adds r7, r1, 0 cmp r0, 0 beq _080E7B9C ldr r2, _080E7B94 adds r1, r3, r2 ldrb r2, [r1] movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0 bne _080E7B6E b _080E7D1A _080E7B6E: subs r0, r2, 0x1 strb r0, [r1] ldr r4, _080E7B98 adds r1, r3, r4 lsls r0, 24 asrs r0, 24 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 cmp r0, r1 bge _080E7BF2 movs r0, 0xFF strb r0, [r6] b _080E7D1A .align 2, 0 _080E7B8C: .4byte 0x02001000 _080E7B90: .4byte 0x03001770 _080E7B94: .4byte 0x000099a4 _080E7B98: .4byte 0x00009a29 _080E7B9C: movs r0, 0x80 ands r0, r4 cmp r0, 0 beq _080E7BEE ldr r0, _080E7BE0 adds r2, r3, r0 movs r1, 0 ldrsb r1, [r2, r1] ldr r4, _080E7BE4 adds r0, r3, r4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 subs r0, 0x1 cmp r1, r0 blt _080E7BBE b _080E7D1A _080E7BBE: ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] movs r1, 0 ldrsb r1, [r2, r1] ldr r2, _080E7BE8 adds r0, r3, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r0, 0x4 cmp r1, r0 blt _080E7BEC movs r0, 0x1 strb r0, [r6] b _080E7D1A .align 2, 0 _080E7BE0: .4byte 0x000099a4 _080E7BE4: .4byte 0x00009a28 _080E7BE8: .4byte 0x00009a29 _080E7BEC: movs r5, 0x1 _080E7BEE: cmp r5, 0 beq _080E7BFA _080E7BF2: bl sub_80E7D30 _080E7BF6: movs r0, 0x1 b _080E7D1C _080E7BFA: ldrh r1, [r7, 0x30] movs r0, 0x20 ands r0, r1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 beq _080E7C38 ldr r4, _080E7C30 adds r2, r3, r4 ldrb r0, [r2] subs r0, 0x1 strb r0, [r2] lsls r0, 24 cmp r0, 0 bge _080E7BF6 ldr r6, _080E7C34 adds r0, r3, r6 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r4, 0x1 adds r1, r3, r4 adds r0, r1 ldrb r0, [r0] subs r0, 0x1 strb r0, [r2] b _080E7BF6 .align 2, 0 _080E7C30: .4byte 0x000099a5 _080E7C34: .4byte 0x000099a4 _080E7C38: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080E7C70 ldr r6, _080E7C68 adds r4, r3, r6 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r2, _080E7C6C adds r1, r3, r2 movs r2, 0 ldrsb r2, [r1, r2] adds r6, 0x1 adds r1, r3, r6 adds r2, r1 lsls r0, 24 asrs r0, 24 movs r1, 0 ldrsb r1, [r2, r1] cmp r0, r1 blt _080E7BF6 strb r5, [r4] b _080E7BF6 .align 2, 0 _080E7C68: .4byte 0x000099a5 _080E7C6C: .4byte 0x000099a4 _080E7C70: ldrh r1, [r7, 0x2E] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080E7CC4 ldr r1, _080E7CBC adds r0, r3, r1 ldrb r1, [r0] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _080E7CA2 negs r0, r1 movs r4, 0xE0 lsls r4, 1 adds r2, r3, r4 strb r0, [r2] lsls r0, 24 asrs r0, 24 movs r1, 0x4 negs r1, r1 cmp r0, r1 bge _080E7CA2 strb r1, [r2] _080E7CA2: ldr r6, _080E7CC0 adds r1, r3, r6 movs r2, 0xE0 lsls r2, 1 adds r0, r3, r2 ldrb r0, [r0] ldrb r4, [r1] adds r0, r4 strb r0, [r1] movs r6, 0xDF lsls r6, 1 adds r1, r3, r6 b _080E7D16 .align 2, 0 _080E7CBC: .4byte 0x00009a29 _080E7CC0: .4byte 0x000099a4 _080E7CC4: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080E7D1A ldr r0, _080E7D24 adds r4, r3, r0 movs r1, 0 ldrsb r1, [r4, r1] ldr r6, _080E7D28 adds r2, r3, r6 movs r0, 0 ldrsb r0, [r2, r0] subs r0, 0x4 cmp r1, r0 bge _080E7CFE ldrb r1, [r4] adds r1, 0x4 ldrb r0, [r2] subs r0, r1 movs r2, 0xE0 lsls r2, 1 adds r1, r3, r2 strb r0, [r1] lsls r0, 24 asrs r0, 24 cmp r0, 0x4 ble _080E7CFE movs r0, 0x4 strb r0, [r1] _080E7CFE: ldr r4, _080E7D2C adds r1, r3, r4 movs r6, 0xE0 lsls r6, 1 adds r0, r3, r6 ldrb r0, [r0] ldrb r2, [r1] adds r0, r2 strb r0, [r1] movs r4, 0xDF lsls r4, 1 adds r1, r3, r4 _080E7D16: movs r0, 0x4 strb r0, [r1] _080E7D1A: movs r0, 0 _080E7D1C: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080E7D24: .4byte 0x00009a29 _080E7D28: .4byte 0x00009a28 _080E7D2C: .4byte 0x000099a4 thumb_func_end sub_80E7B40 thumb_func_start sub_80E7D30 sub_80E7D30: @ 80E7D30 push {r4,lr} ldr r0, _080E7D60 ldr r1, _080E7D64 adds r4, r0, r1 ldr r2, _080E7D68 adds r1, r0, r2 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 adds r2, 0x2 adds r0, r2 adds r1, r0 movs r2, 0 ldrsb r2, [r4, r2] ldrb r3, [r1] movs r0, 0 ldrsb r0, [r1, r0] cmp r2, r0 blt _080E7D5A subs r0, r3, 0x1 strb r0, [r4] _080E7D5A: pop {r4} pop {r0} bx r0 .align 2, 0 _080E7D60: .4byte 0x02001000 _080E7D64: .4byte 0x000099a5 _080E7D68: .4byte 0x000099a4 thumb_func_end sub_80E7D30 thumb_func_start sub_80E7D6C sub_80E7D6C: @ 80E7D6C push {r4,r5,lr} movs r4, 0 ldr r0, _080E7D94 ldrb r1, [r0, 0xA] cmp r4, r1 bcs _080E7D8E adds r5, r0, 0 _080E7D7A: adds r0, r4, 0 ldr r1, _080E7D98 bl sub_80E7F00 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldrb r0, [r5, 0xA] cmp r4, r0 bcc _080E7D7A _080E7D8E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E7D94: .4byte 0x02001000 _080E7D98: .4byte 0x0000ffff thumb_func_end sub_80E7D6C thumb_func_start sub_80E7D9C sub_80E7D9C: @ 80E7D9C push {r4,r5,lr} movs r2, 0 ldr r0, _080E7DCC ldrb r1, [r0, 0xA] cmp r2, r1 bcs _080E7DC6 adds r3, r0, 0 ldr r4, [r3, 0x4] adds r5, r3, 0 adds r5, 0xC _080E7DB0: lsls r0, r2, 1 adds r1, r0, r4 adds r0, r5 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldrb r0, [r3, 0xA] cmp r2, r0 bcc _080E7DB0 _080E7DC6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E7DCC: .4byte 0x02001000 thumb_func_end sub_80E7D9C thumb_func_start sub_80E7DD0 sub_80E7DD0: @ 80E7DD0 push {r4,lr} ldr r2, _080E7E28 ldr r1, _080E7E2C adds r0, r2, r1 movs r1, 0 ldrsb r1, [r0, r1] lsls r1, 1 ldr r3, _080E7E30 adds r0, r2, r3 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 2 adds r1, r0 adds r3, 0x86 adds r0, r2, r3 adds r1, r0 ldrh r4, [r1] adds r0, r2, 0 adds r0, 0x7D ldrb r0, [r0] cmp r0, 0 beq _080E7E34 adds r0, r2, 0 adds r0, 0x86 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r1, r2, 0 adds r1, 0x7E adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bls _080E7E34 adds r0, r4, 0 bl sub_80EB2D4 lsls r0, 16 lsrs r0, 16 cmp r0, 0x7 bne _080E7E34 movs r0, 0 b _080E7E46 .align 2, 0 _080E7E28: .4byte 0x02001000 _080E7E2C: .4byte 0x000099a5 _080E7E30: .4byte 0x000099a4 _080E7E34: ldr r0, _080E7E4C adds r0, 0x27 ldrb r0, [r0] adds r1, r4, 0 bl sub_80E7F00 bl sub_80E95A4 movs r0, 0x1 _080E7E46: pop {r4} pop {r1} bx r1 .align 2, 0 _080E7E4C: .4byte 0x02001000 thumb_func_end sub_80E7DD0 thumb_func_start sub_80E7E50 sub_80E7E50: @ 80E7E50 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r5, 0 movs r2, 0 ldr r1, _080E7EF0 adds r3, r1, 0 adds r3, 0x84 movs r0, 0 ldrsb r0, [r3, r0] cmp r2, r0 bge _080E7EDE mov r8, r1 adds r0, r1, 0 str r0, [sp] _080E7E74: mov r0, r8 adds r0, 0x7E adds r0, r2, r0 movs r1, 0 strb r1, [r0] movs r3, 0 ldr r6, _080E7EF4 movs r0, 0 ldrsb r0, [r6, r0] adds r1, r2, 0x1 str r1, [sp, 0x4] cmp r3, r0 bge _080E7ECE ldr r6, [sp] mov r12, r6 movs r0, 0 mov r10, r0 ldr r1, _080E7EF4 mov r9, r1 ldr r7, _080E7EF8 lsls r4, r2, 1 _080E7E9E: lsls r1, r5, 1 adds r2, r1, r7 mov r6, r12 ldr r0, [r6, 0x4] adds r1, r0 ldrh r0, [r1] strh r0, [r2] adds r0, r3, r4 mov r1, r12 adds r1, 0x8C adds r0, r1 mov r1, r10 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 mov r6, r9 movs r0, 0 ldrsb r0, [r6, r0] cmp r3, r0 blt _080E7E9E _080E7ECE: ldr r1, [sp, 0x4] lsls r0, r1, 16 lsrs r2, r0, 16 ldr r6, _080E7EFC movs r0, 0 ldrsb r0, [r6, r0] cmp r2, r0 blt _080E7E74 _080E7EDE: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E7EF0: .4byte 0x02001000 _080E7EF4: .4byte 0x02001083 _080E7EF8: .4byte 0x0200100c _080E7EFC: .4byte 0x02001084 thumb_func_end sub_80E7E50 thumb_func_start sub_80E7F00 sub_80E7F00: @ 80E7F00 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 16 lsrs r6, r0, 16 lsls r1, 16 lsrs r1, 16 mov r9, r1 ldr r7, _080E7F68 adds r0, r7, 0 adds r0, 0x83 movs r4, 0 ldrsb r4, [r0, r4] adds r0, r6, 0 adds r1, r4, 0 bl __divsi3 lsls r0, 16 lsrs r5, r0, 16 adds r0, r6, 0 adds r1, r4, 0 bl __modsi3 lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r0, r6, 1 adds r1, r7, 0 adds r1, 0xC adds r0, r1 ldrh r0, [r0] bl sub_80EB2D4 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, r9 bl sub_80EB2D4 lsls r0, 16 lsrs r3, r0, 16 cmp r4, 0x7 bne _080E7F6C cmp r3, 0x7 beq _080E7F7C adds r1, r7, 0 adds r1, 0x7E adds r1, r5, r1 ldrb r0, [r1] subs r0, 0x1 b _080E7F7A .align 2, 0 _080E7F68: .4byte 0x02001000 _080E7F6C: cmp r3, 0x7 bne _080E7F7C adds r1, r7, 0 adds r1, 0x7E adds r1, r5, r1 ldrb r0, [r1] adds r0, 0x1 _080E7F7A: strb r0, [r1] _080E7F7C: movs r3, 0 ldr r2, _080E7FA4 lsls r0, r5, 1 add r0, r8 adds r1, r2, 0 adds r1, 0x8C adds r0, r1 strb r3, [r0] lsls r0, r6, 1 adds r2, 0xC adds r0, r2 mov r1, r9 strh r1, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E7FA4: .4byte 0x02001000 thumb_func_end sub_80E7F00 thumb_func_start sub_80E7FA8 sub_80E7FA8: @ 80E7FA8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r0, 0 mov r8, r0 movs r5, 0 ldr r0, _080E8040 ldrb r1, [r0, 0xA] cmp r8, r1 bcs _080E802E ldr r3, _080E8044 adds r6, r0, r3 ldr r1, _080E8048 adds r1, r0 mov r9, r1 _080E7FC8: ldr r3, _080E804C adds r7, r6, r3 ldr r0, [r7, 0x4] lsls r4, r5, 1 adds r0, r4, r0 ldrh r1, [r0] adds r0, r6, 0 movs r2, 0 bl sub_80EB218 ldr r1, _080E8050 adds r0, r6, r1 adds r0, r4 ldrh r1, [r0] mov r0, r9 movs r2, 0 bl sub_80EB218 adds r1, r6, 0 mov r2, r9 ldrb r0, [r1] adds r4, r5, 0x1 ldrb r3, [r2] cmp r0, r3 bne _080E8018 adds r3, r7, 0 cmp r0, 0xFF beq _080E8010 _080E8000: adds r1, 0x1 adds r2, 0x1 ldrb r0, [r1] ldrb r5, [r2] cmp r0, r5 bne _080E8018 cmp r0, 0xFF bne _080E8000 _080E8010: ldrb r0, [r1] ldrb r2, [r2] cmp r0, r2 beq _080E8024 _080E8018: mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r3, _080E8040 _080E8024: lsls r0, r4, 16 lsrs r5, r0, 16 ldrb r3, [r3, 0xA] cmp r5, r3 bcc _080E7FC8 _080E802E: mov r1, r8 lsls r0, r1, 24 lsrs r0, 24 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080E8040: .4byte 0x02001000 _080E8044: .4byte 0x00009e14 _080E8048: .4byte 0x00009e41 _080E804C: .4byte 0xffff61ec _080E8050: .4byte 0xffff61f8 thumb_func_end sub_80E7FA8 thumb_func_start sub_80E8054 sub_80E8054: @ 80E8054 push {r4,lr} movs r1, 0 ldr r2, _080E8078 ldrb r0, [r2, 0xA] cmp r1, r0 bcs _080E808A adds r4, r2, 0 adds r4, 0xC ldr r3, _080E807C adds r2, r0, 0 _080E8068: lsls r0, r1, 1 adds r0, r4 ldrh r0, [r0] cmp r0, r3 beq _080E8080 movs r0, 0 b _080E808C .align 2, 0 _080E8078: .4byte 0x02001000 _080E807C: .4byte 0x0000ffff _080E8080: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r2 bcc _080E8068 _080E808A: movs r0, 0x1 _080E808C: pop {r4} pop {r1} bx r1 thumb_func_end sub_80E8054 thumb_func_start sub_80E8094 sub_80E8094: @ 80E8094 push {r4-r7,lr} movs r5, 0 ldr r6, _080E80C4 adds r7, r6, 0 adds r7, 0x2D _080E809E: lsls r4, r5, 1 ldr r1, _080E80C8 adds r0, r6, r1 adds r0, r4 ldrh r1, [r0] adds r0, r6, 0 movs r2, 0 bl sub_80EB218 ldr r0, _080E80CC adds r4, r0 ldrh r1, [r4] adds r0, r7, 0 movs r2, 0 bl sub_80EB218 adds r3, r6, 0 adds r4, r7, 0 b _080E80D8 .align 2, 0 _080E80C4: .4byte 0x0200ae14 _080E80C8: .4byte 0xffff61f8 _080E80CC: .4byte gUnknown_083DB678 _080E80D0: adds r4, 0x1 adds r3, 0x1 cmp r2, r1 bne _080E80F4 _080E80D8: ldrb r2, [r3] adds r0, r2, 0 cmp r0, 0xFF beq _080E80EE ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _080E80D0 ldrb r0, [r3] cmp r0, 0xFF bne _080E80F4 _080E80EE: ldrb r0, [r4] cmp r0, 0xFF beq _080E80F8 _080E80F4: movs r0, 0 b _080E8104 _080E80F8: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3 bls _080E809E movs r0, 0x1 _080E8104: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80E8094 thumb_func_start sub_80E810C sub_80E810C: @ 80E810C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r5, 0 ldr r6, _080E8198 ldr r0, _080E819C adds r0, r6 mov r9, r0 movs r1, 0 mov r8, r1 adds r7, r6, 0 adds r7, 0x80 ldr r2, _080E81A0 mov r10, r2 _080E812C: mov r0, r9 ldrh r1, [r0, 0xC] adds r0, r6, 0 movs r2, 0 bl sub_80EB218 mov r1, r8 strb r1, [r0] adds r0, 0x1 mov r2, r9 ldrh r1, [r2, 0xE] movs r2, 0 bl sub_80EB218 lsls r4, r5, 2 mov r1, r10 adds r0, r4, r1 ldrh r1, [r0] adds r0, r7, 0 movs r2, 0 bl sub_80EB218 mov r2, r8 strb r2, [r0] adds r0, 0x1 ldr r1, _080E81A4 adds r4, r1 ldrh r1, [r4] movs r2, 0 bl sub_80EB218 adds r0, r6, 0 adds r3, r7, 0 adds r4, r5, 0x1 _080E8170: ldrb r2, [r0] cmp r2, 0xFF beq _080E818A ldrb r1, [r3] cmp r1, 0xFF beq _080E8184 adds r3, 0x1 adds r0, 0x1 cmp r2, r1 beq _080E8170 _080E8184: ldrb r0, [r0] cmp r0, 0xFF bne _080E81A8 _080E818A: ldrb r0, [r3] cmp r0, 0xFF bne _080E81A8 lsls r0, r4, 24 lsrs r0, 24 b _080E81B2 .align 2, 0 _080E8198: .4byte 0x0200ae6e _080E819C: .4byte 0xffff6192 _080E81A0: .4byte gUnknown_083DB680 _080E81A4: .4byte gUnknown_083DB682 _080E81A8: lsls r0, r4, 16 lsrs r5, r0, 16 cmp r5, 0x4 bls _080E812C movs r0, 0 _080E81B2: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80E810C thumb_func_start sub_80E81C0 sub_80E81C0: @ 80E81C0 push {r4,lr} ldr r0, _080E81EC ldr r4, _080E81F0 ldr r2, _080E81F4 adds r1, r4, r2 ldrh r1, [r1] movs r2, 0 bl sub_80EB218 movs r1, 0 strb r1, [r0] adds r0, 0x1 ldr r1, _080E81F8 adds r4, r1 ldrh r1, [r4] movs r2, 0 bl sub_80EB218 pop {r4} pop {r0} bx r0 .align 2, 0 _080E81EC: .4byte 0x020232cc _080E81F0: .4byte 0x02001000 _080E81F4: .4byte 0x00009c7c _080E81F8: .4byte 0x00009c7e thumb_func_end sub_80E81C0 thumb_func_start sub_80E81FC sub_80E81FC: @ 80E81FC push {lr} movs r0, 0x5 bl audio_play bl sub_80E95A4 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0xD bl Reset pop {r0} bx r0 thumb_func_end sub_80E81FC thumb_func_start sub_80E8218 sub_80E8218: @ 80E8218 push {r4,r5,lr} sub sp, 0x40 mov r1, sp ldr r0, _080E8260 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldr r0, [r0] str r0, [r1] add r4, sp, 0x28 adds r1, r4, 0 ldr r0, _080E8264 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} mov r0, sp bl LoadSpriteSheets adds r0, r4, 0 bl LoadSpritePalettes bl sub_80E8268 bl sub_80E8818 bl sub_80E8A7C add sp, 0x40 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E8260: .4byte gUnknown_083DBBB4 _080E8264: .4byte gUnknown_083DBBDC thumb_func_end sub_80E8218 thumb_func_start sub_80E8268 sub_80E8268: @ 80E8268 push {lr} ldr r0, _080E82B0 movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _080E82B4 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldr r0, _080E82B8 ldr r3, [r0] adds r0, r3, 0 adds r0, 0x8A ldrh r0, [r0] lsls r0, 3 adds r0, 0x8 movs r2, 0 strh r0, [r1, 0x22] adds r0, r3, 0 adds r0, 0x88 ldrh r0, [r0] lsls r0, 3 adds r0, 0x4 strh r0, [r1, 0x20] strh r2, [r1, 0x2E] strh r2, [r1, 0x30] adds r0, r3, 0 adds r0, 0x98 str r1, [r0] pop {r0} bx r0 .align 2, 0 _080E82B0: .4byte gSpriteTemplate_83DBBFC _080E82B4: .4byte 0x02020004 _080E82B8: .4byte gUnknown_083DB694 thumb_func_end sub_80E8268 thumb_func_start sub_80E82BC sub_80E82BC: @ 80E82BC push {r4-r7,lr} adds r3, r0, 0 movs r1, 0x30 ldrsh r0, [r3, r1] cmp r0, 0 bne _080E838C ldr r0, _080E8334 ldr r2, [r0] adds r1, r2, 0 adds r1, 0x87 ldrb r1, [r1] mov r12, r0 cmp r1, 0 beq _080E836C adds r0, r2, 0 adds r0, 0x86 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r5, r0, 16 adds r0, r2, 0 adds r0, 0x85 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r4, r0, 16 movs r7, 0 movs r1, 0 cmp r7, r4 bcs _080E8316 lsls r6, r5, 1 adds r2, 0x8C _080E8300: adds r0, r1, r6 adds r0, r2, r0 ldrb r0, [r0] adds r0, r7, r0 lsls r0, 16 lsrs r7, r0, 16 adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r4 bcc _080E8300 _080E8316: mov r0, r12 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x84 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r5, r0 bne _080E8338 movs r0, 0x60 strh r0, [r3, 0x22] lsls r0, r4, 3 subs r0, r4 adds r0, 0x3 b _080E8356 .align 2, 0 _080E8334: .4byte gUnknown_083DB694 _080E8338: adds r1, r2, 0 adds r1, 0x8A lsls r0, r5, 1 ldrh r1, [r1] adds r0, r1 lsls r0, 3 adds r0, 0x8 strh r0, [r3, 0x22] adds r0, r2, 0 adds r0, 0x88 ldrh r0, [r0] adds r0, r7 movs r1, 0xB muls r1, r4 adds r0, r1 _080E8356: lsls r0, 3 adds r0, 0x4 strh r0, [r3, 0x20] movs r1, 0 ldr r0, _080E8368 strh r0, [r3, 0x24] strh r1, [r3, 0x2E] b _080E838C .align 2, 0 _080E8368: .4byte 0x0000fffa _080E836C: ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080E838C strh r1, [r3, 0x2E] ldrh r0, [r3, 0x24] adds r0, 0x1 strh r0, [r3, 0x24] lsls r0, 16 cmp r0, 0 ble _080E838C ldr r0, _080E8394 strh r0, [r3, 0x24] _080E838C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E8394: .4byte 0x0000fffa thumb_func_end sub_80E82BC thumb_func_start sub_80E8398 sub_80E8398: @ 80E8398 push {lr} lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x1 beq _080E83D4 cmp r3, 0x1 bgt _080E83AC cmp r3, 0 beq _080E83B2 b _080E8416 _080E83AC: cmp r3, 0x2 beq _080E83F8 b _080E8416 _080E83B2: ldr r0, _080E83D0 ldr r0, [r0] adds r0, 0x98 ldr r1, [r0] strh r3, [r1, 0x30] ldr r1, [r0] strh r3, [r1, 0x24] ldr r1, [r0] adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 b _080E8414 .align 2, 0 _080E83D0: .4byte gUnknown_083DB694 _080E83D4: ldr r0, _080E83F4 ldr r1, [r0] adds r1, 0x98 ldr r0, [r1] movs r2, 0 strh r3, [r0, 0x30] ldr r0, [r1] strh r2, [r0, 0x24] ldr r1, [r1] adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 b _080E8414 .align 2, 0 _080E83F4: .4byte gUnknown_083DB694 _080E83F8: ldr r0, _080E841C ldr r1, [r0] adds r1, 0x98 ldr r2, [r1] movs r3, 0 movs r0, 0x1 strh r0, [r2, 0x30] ldr r0, [r1] strh r3, [r0, 0x24] ldr r1, [r1] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 _080E8414: strb r0, [r1] _080E8416: pop {r0} bx r0 .align 2, 0 _080E841C: .4byte gUnknown_083DB694 thumb_func_end sub_80E8398 thumb_func_start sub_80E8420 sub_80E8420: @ 80E8420 push {r4-r7,lr} sub sp, 0x18 mov r1, sp ldr r0, _080E84E0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} mov r0, sp movs r1, 0 movs r2, 0 movs r3, 0x3 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _080E84E4 ldr r7, [r1] adds r5, r7, 0 adds r5, 0x9C lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r4, _080E84E8 adds r1, r4 str r1, [r5] ldr r0, _080E84EC str r0, [sp, 0x8] ldr r0, _080E84F0 str r0, [sp, 0x14] mov r0, sp movs r1, 0 movs r2, 0 movs r3, 0x4 bl CreateSprite lsls r0, 24 lsrs r0, 24 adds r6, r7, 0 adds r6, 0xA0 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 str r1, [r6] ldr r0, _080E84F4 str r0, [sp, 0x8] ldr r0, _080E84F8 str r0, [sp, 0x14] mov r0, sp movs r1, 0 movs r2, 0 movs r3, 0x5 bl CreateSprite lsls r0, 24 lsrs r0, 24 adds r2, r7, 0 adds r2, 0xA4 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 str r1, [r2] ldr r0, [r5] movs r1, 0 strh r1, [r0, 0x2E] ldr r0, [r6] strh r1, [r0, 0x2E] ldr r0, [r2] strh r1, [r0, 0x2E] movs r0, 0x1 bl IndexOfSpritePaletteTag ldr r1, [r5] lsls r0, 24 lsrs r0, 20 ldr r2, _080E84FC adds r0, r2 strh r0, [r1, 0x34] bl sub_80E8534 adds r1, r7, 0 adds r1, 0x96 movs r0, 0x1 strb r0, [r1] ldr r1, _080E8500 movs r3, 0xFD lsls r3, 6 adds r0, r3, 0 strh r0, [r1] add sp, 0x18 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E84E0: .4byte gSpriteTemplate_83DBCAC _080E84E4: .4byte gUnknown_083DB694 _080E84E8: .4byte 0x02020004 _080E84EC: .4byte gSpriteAnimTable_83DBC8C _080E84F0: .4byte sub_80E872C _080E84F4: .4byte gSpriteAnimTable_83DBC9C _080E84F8: .4byte sub_80E8760 _080E84FC: .4byte 0x00000101 _080E8500: .4byte REG_BLDCNT thumb_func_end sub_80E8420 thumb_func_start sub_80E8504 sub_80E8504: @ 80E8504 push {r4,lr} ldr r0, _080E8530 ldr r4, [r0] adds r0, r4, 0 adds r0, 0x9C ldr r0, [r0] bl DestroySprite adds r0, r4, 0 adds r0, 0xA0 ldr r0, [r0] bl DestroySprite adds r0, r4, 0 adds r0, 0xA4 ldr r0, [r0] bl DestroySprite pop {r4} pop {r0} bx r0 .align 2, 0 _080E8530: .4byte gUnknown_083DB694 thumb_func_end sub_80E8504 thumb_func_start sub_80E8534 sub_80E8534: @ 80E8534 push {r4-r7,lr} mov r7, r8 push {r7} ldr r1, _080E8554 ldr r3, [r1] ldr r2, _080E8558 adds r0, r3, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r4, r1, 0 cmp r0, 0 beq _080E8560 ldr r1, _080E855C movs r0, 0x1 b _080E8598 .align 2, 0 _080E8554: .4byte gUnknown_083DB694 _080E8558: .4byte 0x000001b7 _080E855C: .4byte 0x020388ac _080E8560: adds r0, r3, 0 adds r0, 0x26 ldrb r2, [r0] cmp r2, 0 bne _080E8578 ldr r0, _080E8574 strb r2, [r0] adds r7, r0, 0 b _080E859C .align 2, 0 _080E8574: .4byte 0x020388ac _080E8578: movs r1, 0xD4 lsls r1, 1 adds r0, r3, r1 ldrh r1, [r0] movs r0, 0xC0 lsls r0, 3 cmp r1, r0 bne _080E8594 ldr r1, _080E8590 movs r0, 0x2 b _080E8598 .align 2, 0 _080E8590: .4byte 0x020388ac _080E8594: ldr r1, _080E85F4 movs r0, 0x3 _080E8598: strb r0, [r1] adds r7, r1, 0 _080E859C: ldr r2, [r4] adds r4, r2, 0 adds r4, 0x9C ldr r1, [r4] ldrb r0, [r7] movs r3, 0 mov r8, r3 strh r0, [r1, 0x32] adds r5, r2, 0 adds r5, 0xA0 ldr r1, [r5] ldrb r0, [r7] strh r0, [r1, 0x32] adds r6, r2, 0 adds r6, 0xA4 ldr r1, [r6] ldrb r0, [r7] strh r0, [r1, 0x32] ldr r0, [r4] ldrb r1, [r7] bl StartSpriteAnim ldr r0, [r5] ldrb r1, [r7] bl StartSpriteAnim ldr r0, [r6] ldrb r1, [r7] bl StartSpriteAnim ldr r0, [r4] movs r1, 0x8 strh r1, [r0, 0x38] ldr r0, [r4] strh r1, [r0, 0x3A] ldr r0, [r4] mov r1, r8 strh r1, [r0, 0x30] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E85F4: .4byte 0x020388ac thumb_func_end sub_80E8534 thumb_func_start sub_80E85F8 sub_80E85F8: @ 80E85F8 push {r4-r6,lr} adds r5, r0, 0 ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080E8624 ldr r1, _080E8620 movs r2, 0x30 ldrsh r0, [r5, r2] lsls r0, 1 adds r0, r1 ldrh r0, [r0] lsls r0, 16 asrs r0, 21 adds r0, 0x8 strh r0, [r5, 0x38] b _080E863A .align 2, 0 _080E8620: .4byte gSineTable _080E8624: ldr r1, _080E8688 movs r2, 0x30 ldrsh r0, [r5, r2] lsls r0, 1 adds r0, r1 ldrh r1, [r0] lsls r1, 16 asrs r1, 21 movs r0, 0x8 subs r0, r1 strh r0, [r5, 0x3A] _080E863A: ldrh r0, [r5, 0x30] adds r0, 0x5 movs r1, 0xFF ands r0, r1 strh r0, [r5, 0x30] ldr r2, _080E868C ldrh r0, [r5, 0x3A] lsls r0, 8 ldrh r1, [r5, 0x38] orrs r0, r1 strh r0, [r2] ldr r0, _080E8690 ldr r6, [r0] adds r0, r6, 0 adds r0, 0x96 ldrb r0, [r0] cmp r0, 0 beq _080E871A bl sub_80E8534 adds r1, r6, 0 adds r1, 0x9C ldr r0, [r1] movs r2, 0x8 strh r2, [r0, 0x38] ldr r0, [r1] strh r2, [r0, 0x3A] ldr r1, [r1] movs r0, 0 strh r0, [r1, 0x30] movs r1, 0x32 ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080E86C4 cmp r0, 0x1 bgt _080E8694 cmp r0, 0 beq _080E869E b _080E871A .align 2, 0 _080E8688: .4byte gSineTable _080E868C: .4byte REG_BLDALPHA _080E8690: .4byte gUnknown_083DB694 _080E8694: cmp r0, 0x2 beq _080E86D6 cmp r0, 0x3 beq _080E86DE b _080E871A _080E869E: ldr r2, _080E86C0 adds r0, r6, r2 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0x58 muls r0, r1 adds r0, 0x20 strh r0, [r5, 0x20] movs r1, 0xD4 lsls r1, 1 adds r0, r6, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r2, 0xC b _080E870A .align 2, 0 _080E86C0: .4byte 0x000001a9 _080E86C4: movs r0, 0xD8 strh r0, [r5, 0x20] movs r1, 0xD4 lsls r1, 1 adds r0, r6, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 b _080E8714 _080E86D6: movs r0, 0x97 strh r0, [r5, 0x20] movs r0, 0x60 b _080E8718 _080E86DE: ldr r4, _080E8720 ldr r2, _080E8724 adds r0, r6, r2 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0xD4 lsls r0, 1 adds r3, r6, r0 movs r2, 0 ldrsb r2, [r3, r2] lsls r0, r2, 3 subs r0, r2 adds r1, r0 adds r1, r4 movs r0, 0 ldrsb r0, [r1, r0] lsls r0, 3 adds r0, 0x1F strh r0, [r5, 0x20] movs r0, 0 ldrsb r0, [r3, r0] ldr r2, _080E8728 _080E870A: adds r1, r6, r2 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 subs r0, r1 _080E8714: lsls r0, 4 adds r0, 0x60 _080E8718: strh r0, [r5, 0x22] _080E871A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E8720: .4byte gUnknown_083DBCC4 _080E8724: .4byte 0x000001a9 _080E8728: .4byte 0x000001b5 thumb_func_end sub_80E85F8 thumb_func_start sub_80E872C sub_80E872C: @ 80E872C push {lr} adds r2, r0, 0 ldr r0, _080E875C ldr r1, [r0] adds r0, r1, 0 adds r0, 0x96 ldrb r0, [r0] cmp r0, 0 beq _080E8756 movs r3, 0x32 ldrsh r0, [r2, r3] cmp r0, 0 bne _080E8756 adds r1, 0x9C ldr r0, [r1] ldrh r0, [r0, 0x20] adds r0, 0x20 strh r0, [r2, 0x20] ldr r0, [r1] ldrh r0, [r0, 0x22] strh r0, [r2, 0x22] _080E8756: pop {r0} bx r0 .align 2, 0 _080E875C: .4byte gUnknown_083DB694 thumb_func_end sub_80E872C thumb_func_start sub_80E8760 sub_80E8760: @ 80E8760 push {lr} adds r2, r0, 0 ldr r0, _080E8780 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x96 ldrb r0, [r0] cmp r0, 0 beq _080E879E movs r3, 0x32 ldrsh r0, [r2, r3] cmp r0, 0 beq _080E8784 cmp r0, 0x2 beq _080E878E b _080E879E .align 2, 0 _080E8780: .4byte gUnknown_083DB694 _080E8784: adds r1, 0x9C ldr r0, [r1] ldrh r0, [r0, 0x20] adds r0, 0x40 b _080E8796 _080E878E: adds r1, 0x9C ldr r0, [r1] ldrh r0, [r0, 0x20] adds r0, 0x15 _080E8796: strh r0, [r2, 0x20] ldr r0, [r1] ldrh r0, [r0, 0x22] strh r0, [r2, 0x22] _080E879E: pop {r0} bx r0 thumb_func_end sub_80E8760 thumb_func_start sub_80E87A4 sub_80E87A4: @ 80E87A4 push {r4,lr} lsls r0, 24 ldr r1, _080E87C8 ldr r1, [r1] adds r2, r1, 0 adds r2, 0xA8 ldr r3, [r2] movs r4, 0 cmp r0, 0 bne _080E87BA movs r4, 0x1 _080E87BA: movs r1, 0 strh r4, [r3, 0x30] ldr r0, [r2] strh r1, [r0, 0x24] pop {r4} pop {r0} bx r0 .align 2, 0 _080E87C8: .4byte gUnknown_083DB694 thumb_func_end sub_80E87A4 thumb_func_start sub_80E87CC sub_80E87CC: @ 80E87CC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 ldr r0, _080E8810 ldr r5, [r0] adds r0, r5, 0 adds r0, 0xA8 ldr r0, [r0] movs r3, 0 cmp r4, 0 bne _080E87E6 movs r3, 0x1 _080E87E6: adds r2, r0, 0 adds r2, 0x3E lsls r3, 2 ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 orrs r0, r3 strb r0, [r2] adds r0, r4, 0 bl sub_80E87A4 cmp r4, 0 beq _080E880A ldr r0, _080E8814 adds r1, r5, r0 movs r0, 0x1 strb r0, [r1] _080E880A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E8810: .4byte gUnknown_083DB694 _080E8814: .4byte 0x000001b9 thumb_func_end sub_80E87CC thumb_func_start sub_80E8818 sub_80E8818: @ 80E8818 push {lr} ldr r0, _080E8850 movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _080E8854 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0 strh r0, [r1, 0x2E] strh r0, [r1, 0x30] ldr r0, _080E8858 ldr r0, [r0] adds r0, 0xA8 str r1, [r0] ldr r0, _080E885C str r0, [r1, 0x1C] movs r0, 0 bl sub_80E87CC pop {r0} bx r0 .align 2, 0 _080E8850: .4byte gSpriteTemplate_83DBBFC _080E8854: .4byte 0x02020004 _080E8858: .4byte gUnknown_083DB694 _080E885C: .4byte sub_80E8860 thumb_func_end sub_80E8818 thumb_func_start sub_80E8860 sub_80E8860: @ 80E8860 push {r4,r5,lr} adds r2, r0, 0 movs r0, 0x30 ldrsh r4, [r2, r0] cmp r4, 0 bne _080E88E4 ldr r0, _080E88B0 ldr r3, [r0] ldr r1, _080E88B4 adds r0, r3, r1 ldrb r1, [r0] cmp r1, 0 beq _080E88C4 ldr r5, _080E88B8 adds r0, r3, r5 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0x58 muls r0, r1 adds r0, 0x2C strh r0, [r2, 0x20] ldr r1, _080E88BC adds r0, r3, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r5, 0x84 adds r1, r3, r5 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 subs r0, r1 lsls r0, 4 adds r0, 0x60 strh r0, [r2, 0x22] ldr r0, _080E88C0 strh r0, [r2, 0x24] strh r4, [r2, 0x2E] b _080E88E4 .align 2, 0 _080E88B0: .4byte gUnknown_083DB694 _080E88B4: .4byte 0x000001b9 _080E88B8: .4byte 0x000099a5 _080E88BC: .4byte 0x000099a4 _080E88C0: .4byte 0x0000fffa _080E88C4: ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080E88E4 strh r1, [r2, 0x2E] ldrh r0, [r2, 0x24] adds r0, 0x1 strh r0, [r2, 0x24] lsls r0, 16 cmp r0, 0 ble _080E88E4 ldr r0, _080E88EC strh r0, [r2, 0x24] _080E88E4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E88EC: .4byte 0x0000fffa thumb_func_end sub_80E8860 thumb_func_start sub_80E88F0 sub_80E88F0: @ 80E88F0 push {r4-r7,lr} mov r7, r8 push {r7} movs r4, 0 ldr r0, _080E8950 mov r8, r0 ldr r0, [r0] movs r6, 0x4 movs r5, 0 movs r1, 0xB4 adds r1, r0 mov r12, r1 adds r7, r0, 0 adds r7, 0xAC _080E890C: lsls r2, r4, 2 adds r3, r7, r2 ldr r1, [r3] adds r1, 0x3E ldrb r0, [r1] orrs r0, r6 strb r0, [r1] ldr r0, [r3] strh r5, [r0, 0x30] add r2, r12 ldr r1, [r2] adds r1, 0x3E ldrb r0, [r1] orrs r0, r6 strb r0, [r1] ldr r0, [r2] strh r5, [r0, 0x30] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _080E890C mov r1, r8 ldr r0, [r1] ldr r1, _080E8954 adds r0, r1 movs r1, 0 strb r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E8950: .4byte gUnknown_083DB694 _080E8954: .4byte 0x00009c70 thumb_func_end sub_80E88F0 thumb_func_start sub_80E8958 sub_80E8958: @ 80E8958 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0 bne _080E89B4 movs r0, 0x64 mov r9, r0 ldr r0, _080E8998 ldr r2, [r0] ldr r3, _080E899C adds r1, r2, r3 ldr r3, _080E89A0 adds r0, r2, r3 str r0, [r1] adds r0, r2, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0 bne _080E89A8 movs r1, 0xDB lsls r1, 1 adds r0, r2, r1 ldrb r0, [r0] subs r0, 0x4 ldr r3, _080E89A4 adds r1, r2, r3 strb r0, [r1] b _080E8A00 .align 2, 0 _080E8998: .4byte gUnknown_083DB694 _080E899C: .4byte 0x00009c6c _080E89A0: .4byte 0x000001b5 _080E89A4: .4byte 0x00009c71 _080E89A8: ldr r1, _080E89B0 adds r0, r2, r1 strb r7, [r0] b _080E8A00 .align 2, 0 _080E89B0: .4byte 0x00009c71 _080E89B4: movs r3, 0x78 mov r9, r3 ldr r0, _080E8A64 ldr r2, [r0] ldr r0, _080E8A68 adds r1, r2, r0 ldr r3, _080E8A6C adds r0, r2, r3 str r0, [r1] ldr r1, _080E8A70 adds r0, r2, r1 ldrb r0, [r0] subs r0, 0x4 ldr r3, _080E8A74 adds r1, r2, r3 strb r0, [r1] movs r4, 0 adds r5, r2, 0 adds r5, 0xB4 movs r0, 0x5 negs r0, r0 mov r12, r0 movs r6, 0x1 _080E89E2: lsls r3, r4, 2 adds r3, r5, r3 ldr r1, [r3] adds r1, 0x3E ldrb r2, [r1] mov r0, r12 ands r0, r2 strb r0, [r1] ldr r0, [r3] strh r6, [r0, 0x30] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _080E89E2 _080E8A00: ldr r0, _080E8A64 ldr r2, [r0] ldr r3, _080E8A74 adds r1, r2, r3 movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0 bge _080E8A14 movs r0, 0 strb r0, [r1] _080E8A14: movs r4, 0 adds r6, r2, 0 adds r6, 0xAC movs r0, 0x5 negs r0, r0 mov r8, r0 _080E8A20: lsls r2, r4, 2 adds r2, r6, r2 ldr r0, [r2] mov r1, r9 strh r1, [r0, 0x20] ldr r1, [r2] adds r1, 0x3E ldrb r0, [r1] mov r3, r8 ands r0, r3 strb r0, [r1] ldr r0, [r2] movs r5, 0x1 strh r5, [r0, 0x30] ldr r0, [r2] adds r1, r7, 0 bl StartSpriteAnim adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _080E8A20 ldr r0, _080E8A64 ldr r0, [r0] ldr r1, _080E8A78 adds r0, r1 strb r5, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E8A64: .4byte gUnknown_083DB694 _080E8A68: .4byte 0x00009c6c _080E8A6C: .4byte 0x00009a29 _080E8A70: .4byte 0x00009a28 _080E8A74: .4byte 0x00009c71 _080E8A78: .4byte 0x00009c70 thumb_func_end sub_80E8958 thumb_func_start sub_80E8A7C sub_80E8A7C: @ 80E8A7C push {r4-r7,lr} sub sp, 0x18 mov r1, sp ldr r0, _080E8B68 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} movs r5, 0 _080E8A8E: lsls r2, r5, 3 adds r2, r5 lsls r2, 19 movs r0, 0xA8 lsls r0, 15 adds r2, r0 asrs r2, 16 mov r0, sp movs r1, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 ldr r0, _080E8B6C ldr r2, [r0] lsls r0, r5, 2 adds r2, 0xAC adds r2, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080E8B70 adds r0, r1 str r0, [r2] strh r5, [r0, 0x2E] ldr r3, [r2] adds r3, 0x3F movs r0, 0x1 adds r2, r5, 0 ands r2, r0 lsls r2, 1 ldrb r0, [r3] movs r4, 0x3 negs r4, r4 adds r1, r4, 0 ands r0, r1 orrs r0, r2 strb r0, [r3] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1 bls _080E8A8E mov r0, sp movs r1, 0x3 strh r1, [r0] ldr r0, _080E8B74 str r0, [sp, 0x8] movs r5, 0 movs r7, 0x3F movs r6, 0x40 _080E8AF6: lsls r4, r5, 2 adds r1, r4, r5 lsls r1, 19 movs r0, 0x8E lsls r0, 16 adds r1, r0 asrs r1, 16 mov r0, sp movs r2, 0x58 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 ldr r0, _080E8B6C ldr r2, [r0] adds r2, 0xB4 adds r2, r4 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080E8B70 adds r0, r1 str r0, [r2] strh r5, [r0, 0x2E] ldr r3, [r2] ldrb r1, [r3, 0x1] adds r0, r7, 0 ands r0, r1 orrs r0, r6 strb r0, [r3, 0x1] ldr r3, [r2] ldrb r1, [r3, 0x3] adds r0, r7, 0 ands r0, r1 orrs r0, r6 strb r0, [r3, 0x3] ldr r0, [r2] lsls r1, r5, 24 lsrs r1, 24 bl StartSpriteAnim adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1 bls _080E8AF6 movs r0, 0 bl sub_80E8958 bl sub_80E88F0 add sp, 0x18 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E8B68: .4byte gSpriteTemplate_83DBD18 _080E8B6C: .4byte gUnknown_083DB694 _080E8B70: .4byte 0x02020004 _080E8B74: .4byte gUnknown_083DBD10 thumb_func_end sub_80E8A7C thumb_func_start sub_80E8B78 sub_80E8B78: @ 80E8B78 push {r4,lr} adds r3, r0, 0 ldr r0, _080E8BB0 ldr r1, [r0] ldr r2, _080E8BB4 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _080E8BE8 movs r2, 0x30 ldrsh r0, [r3, r2] cmp r0, 0 beq _080E8BE8 movs r2, 0x2E ldrsh r0, [r3, r2] cmp r0, 0 bne _080E8BBC movs r4, 0 ldr r2, _080E8BB8 adds r0, r1, r2 ldr r0, [r0] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 bne _080E8BD6 b _080E8BD4 .align 2, 0 _080E8BB0: .4byte gUnknown_083DB694 _080E8BB4: .4byte 0x00009c70 _080E8BB8: .4byte 0x00009c6c _080E8BBC: movs r4, 0 ldr r2, _080E8BF0 adds r0, r1, r2 ldr r0, [r0] adds r2, 0x5 adds r1, r2 movs r2, 0 ldrsb r2, [r0, r2] movs r0, 0 ldrsb r0, [r1, r0] cmp r2, r0 bne _080E8BD6 _080E8BD4: movs r4, 0x1 _080E8BD6: adds r2, r3, 0 adds r2, 0x3E lsls r3, r4, 2 ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 orrs r0, r3 strb r0, [r2] _080E8BE8: pop {r4} pop {r0} bx r0 .align 2, 0 _080E8BF0: .4byte 0x00009c6c thumb_func_end sub_80E8B78 thumb_func_start sub_80E8BF4 sub_80E8BF4: @ 80E8BF4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r2, r1, 24 ldr r0, _080E8C28 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x4] str r1, [sp, 0x8] ldr r0, _080E8C2C ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0xC] str r1, [sp, 0x10] cmp r2, 0x2 beq _080E8C20 cmp r2, 0x5 beq _080E8C30 _080E8C20: movs r4, 0x40 movs r5, 0x28 b _080E8C34 .align 2, 0 _080E8C28: .4byte gUnknown_083DBD30 _080E8C2C: .4byte gUnknown_083DBD38 _080E8C30: movs r4, 0x24 movs r5, 0x30 _080E8C34: cmp r3, 0 beq _080E8C3C cmp r3, 0x1 beq _080E8C40 _080E8C3C: movs r0, 0x43 b _080E8C42 _080E8C40: movs r0, 0x44 _080E8C42: mov r8, r0 add r0, sp, 0x4 bl LoadCompressedObjectPic add r0, sp, 0xC bl LoadSpritePalette ldr r0, _080E8CDC adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x1 bl CreateSprite ldr r0, _080E8CE0 ldrb r0, [r0, 0x8] movs r1, 0x69 cmp r0, 0 bne _080E8C68 movs r1, 0x64 _080E8C68: ldr r7, _080E8CE4 adds r2, r4, 0 subs r2, 0xC movs r6, 0 str r6, [sp] adds r0, r1, 0 adds r1, r7, 0 adds r3, r5, 0 bl AddPseudoFieldObject lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080E8C9E ldr r1, _080E8CE8 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 strb r1, [r0, 0x5] movs r1, 0x3 bl StartSpriteAnim _080E8C9E: adds r2, r4, 0 adds r2, 0xC str r6, [sp] mov r0, r8 adds r1, r7, 0 adds r3, r5, 0 bl AddPseudoFieldObject lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080E8CD0 ldr r1, _080E8CE8 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 strb r1, [r0, 0x5] movs r1, 0x2 bl StartSpriteAnim _080E8CD0: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E8CDC: .4byte gSpriteTemplate_83DBD48 _080E8CE0: .4byte gSaveBlock2 _080E8CE4: .4byte SpriteCallbackDummy _080E8CE8: .4byte 0x02020004 thumb_func_end sub_80E8BF4 thumb_func_start sub_80E8CEC sub_80E8CEC: @ 80E8CEC push {lr} ldr r0, _080E8D24 bl LoadCompressedObjectPic ldr r0, _080E8D28 bl LoadSpritePalette ldr r0, _080E8D2C movs r1, 0xE0 movs r2, 0x58 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080E8D3C ldr r0, _080E8D30 ldr r2, [r0] ldr r0, _080E8D34 adds r2, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080E8D38 adds r0, r1 str r0, [r2] b _080E8D48 .align 2, 0 _080E8D24: .4byte gUnknown_083DBD60 _080E8D28: .4byte gUnknown_083DBD68 _080E8D2C: .4byte gSpriteTemplate_83DBDE4 _080E8D30: .4byte gUnknown_083DB694 _080E8D34: .4byte 0x00009c74 _080E8D38: .4byte 0x02020004 _080E8D3C: ldr r0, _080E8D4C ldr r0, [r0] ldr r1, _080E8D50 adds r0, r1 movs r1, 0 str r1, [r0] _080E8D48: pop {r0} bx r0 .align 2, 0 _080E8D4C: .4byte gUnknown_083DB694 _080E8D50: .4byte 0x00009c74 thumb_func_end sub_80E8CEC thumb_func_start sub_80E8D54 sub_80E8D54: @ 80E8D54 push {lr} ldr r0, _080E8D78 ldr r2, [r0] ldr r1, _080E8D7C adds r0, r2, r1 ldr r1, [r0] cmp r1, 0 beq _080E8D88 adds r0, r2, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0 bne _080E8D80 adds r0, r1, 0 movs r1, 0x1 bl StartSpriteAnim b _080E8D88 .align 2, 0 _080E8D78: .4byte gUnknown_083DB694 _080E8D7C: .4byte 0x00009c74 _080E8D80: adds r0, r1, 0 movs r1, 0x2 bl StartSpriteAnim _080E8D88: pop {r0} bx r0 thumb_func_end sub_80E8D54 thumb_func_start sub_80E8D8C sub_80E8D8C: @ 80E8D8C push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, _080E8DB8 ldr r2, [r0] ldr r1, _080E8DBC adds r0, r2, r1 ldr r1, [r0] cmp r1, 0 beq _080E8DD2 cmp r3, 0 beq _080E8DCA adds r0, r2, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0 bne _080E8DC0 adds r0, r1, 0 movs r1, 0x3 bl StartSpriteAnim b _080E8DD2 .align 2, 0 _080E8DB8: .4byte gUnknown_083DB694 _080E8DBC: .4byte 0x00009c74 _080E8DC0: adds r0, r1, 0 movs r1, 0x4 bl StartSpriteAnim b _080E8DD2 _080E8DCA: adds r0, r1, 0 movs r1, 0x5 bl StartSpriteAnim _080E8DD2: pop {r0} bx r0 thumb_func_end sub_80E8D8C thumb_func_start sub_80E8DD8 sub_80E8DD8: @ 80E8DD8 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 ldr r0, _080E8F2C movs r6, 0 strh r6, [r0] adds r0, 0x2 strh r6, [r0] adds r0, 0x2 strh r6, [r0] adds r0, 0x2 strh r6, [r0] adds r0, 0x4 strh r6, [r0] subs r0, 0x2 strh r6, [r0] adds r0, 0x4 strh r6, [r0] adds r0, 0x2 strh r6, [r0] ldr r1, _080E8F30 movs r2, 0x8B lsls r2, 8 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080E8F34 adds r0, r2, 0 strh r0, [r1] ldr r0, _080E8F38 ldr r1, _080E8F3C ldr r1, [r1] mov r8, r1 movs r4, 0xE4 lsls r4, 1 add r4, r8 movs r5, 0xA0 lsls r5, 2 adds r1, r4, 0 adds r2, r5, 0 bl CpuSet ldr r0, _080E8F40 movs r1, 0xD9 lsls r1, 3 add r1, r8 bl LZ77UnCompWram ldr r0, _080E8F44 ldr r1, _080E8F48 bl LZ77UnCompVram ldr r1, _080E8F4C adds r0, r4, 0 adds r2, r5, 0 bl CpuSet ldr r0, _080E8F50 movs r1, 0x40 movs r2, 0x40 bl LoadPalette ldr r1, _080E8F54 ldr r2, _080E8F58 adds r0, r2, 0 strh r0, [r1] ldr r1, _080E8F5C movs r5, 0x80 lsls r5, 4 mov r0, sp strh r6, [r0] ldr r4, _080E8F60 str r0, [r4] str r1, [r4, 0x4] lsrs r0, r5, 1 movs r2, 0x81 lsls r2, 24 orrs r0, r2 str r0, [r4, 0x8] ldr r0, [r4, 0x8] ldr r0, _080E8F64 ldr r2, _080E8F68 str r0, [r4] str r2, [r4, 0x4] ldr r0, _080E8F6C str r0, [r4, 0x8] ldr r0, [r4, 0x8] ldr r0, _080E8F70 bl LZ77UnCompVram ldr r0, _080E8F74 movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r0, _080E8F78 movs r1, 0x10 movs r2, 0x20 bl LoadPalette ldr r1, _080E8F7C ldr r2, _080E8F80 adds r0, r2, 0 strh r0, [r1] ldr r1, _080E8F84 movs r0, 0 mov r9, r0 str r0, [sp, 0x4] add r0, sp, 0x4 str r0, [r4] str r1, [r4, 0x4] lsrs r5, 2 movs r0, 0x85 lsls r0, 24 orrs r5, r0 str r5, [r4, 0x8] ldr r0, [r4, 0x8] ldr r0, _080E8F88 movs r1, 0x20 movs r2, 0x20 bl LoadPalette ldr r0, _080E8F8C adds r1, r0, 0 adds r1, 0x7E ldr r3, _080E8F90 strh r3, [r1] subs r1, 0x1C ldr r2, _080E8F94 strh r2, [r1] adds r0, 0x70 ldr r1, _080E8F98 strh r1, [r0] ldr r0, _080E8F9C adds r4, r0, 0 adds r4, 0x7E strh r3, [r4] adds r3, r0, 0 adds r3, 0x62 strh r2, [r3] adds r0, 0x70 strh r1, [r0] movs r1, 0xBC add r8, r1 mov r2, r8 strb r6, [r2] bl sub_80E8FA4 bl sub_80E948C movs r0, 0xA bl sub_80E9198 movs r0, 0 bl sub_80E91D4 bl sub_80E95A4 ldr r0, _080E8FA0 mov r1, r9 strh r1, [r0] add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E8F2C: .4byte REG_BG0HOFS _080E8F30: .4byte REG_BG0CNT _080E8F34: .4byte 0x00000d09 _080E8F38: .4byte gUnknown_08E945D0 _080E8F3C: .4byte gUnknown_083DB694 _080E8F40: .4byte gUnknown_08E953D0 _080E8F44: .4byte gUnknown_08E8EE18 _080E8F48: .4byte 0x06008000 _080E8F4C: .4byte 0x06006800 _080E8F50: .4byte gUnknown_08E8F178 _080E8F54: .4byte REG_BG2CNT _080E8F58: .4byte 0x00000e02 _080E8F5C: .4byte 0x06007000 _080E8F60: .4byte 0x040000d4 _080E8F64: .4byte gUnknown_08E9AB00 _080E8F68: .4byte 0x06006000 _080E8F6C: .4byte 0x80000020 _080E8F70: .4byte gUnknown_08E9AB60 _080E8F74: .4byte gUnknown_08E9AB40 _080E8F78: .4byte gUnknown_083DBDFC _080E8F7C: .4byte REG_BG3CNT _080E8F80: .4byte 0x00000f0f _080E8F84: .4byte 0x06007800 _080E8F88: .4byte gUnknown_083DBE40 _080E8F8C: .4byte 0x0202eac8 _080E8F90: .4byte 0x00007fff _080E8F94: .4byte 0x00006f5b _080E8F98: .4byte 0x0000739c _080E8F9C: .4byte 0x0202eec8 _080E8FA0: .4byte REG_BLDCNT thumb_func_end sub_80E8DD8 thumb_func_start sub_80E8FA4 sub_80E8FA4: @ 80E8FA4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C movs r0, 0 mov r9, r0 mov r1, sp adds r1, 0x18 str r1, [sp, 0x24] add r2, sp, 0xC mov r12, r2 _080E8FBE: mov r3, r9 lsls r1, r3, 1 ldr r4, _080E90F4 adds r0, r1, r4 ldrh r2, [r0] movs r0, 0x1F ands r0, r2 lsls r0, 8 str r0, [sp] ldr r5, _080E90F8 adds r1, r5 ldrh r1, [r1] movs r0, 0x1F ands r0, r1 lsls r0, 8 str r0, [sp, 0xC] lsls r2, 16 lsrs r0, r2, 21 movs r3, 0x1F ands r0, r3 lsls r0, 8 str r0, [sp, 0x4] lsls r1, 16 lsrs r0, r1, 21 ands r0, r3 lsls r0, 8 mov r4, r12 str r0, [r4, 0x4] lsrs r2, 26 ands r2, r3 lsls r2, 8 str r2, [sp, 0x8] lsrs r1, 26 ands r1, r3 lsls r1, 8 str r1, [r4, 0x8] movs r3, 0 mov r5, r9 lsls r5, 3 mov r10, r5 mov r0, r9 adds r0, 0x1 str r0, [sp, 0x28] ldr r4, [sp, 0x24] _080E9016: lsls r0, r3, 2 adds r2, r4, r0 mov r5, r12 adds r1, r5, r0 add r0, sp ldr r1, [r1] ldr r0, [r0] subs r0, r1, r0 cmp r0, 0 bge _080E902C adds r0, 0x7 _080E902C: asrs r0, 3 str r0, [r2] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x2 bls _080E9016 movs r4, 0 ldr r0, _080E90FC ldr r1, [r0] mov r0, r10 add r0, r9 lsls r0, 1 mov r8, r0 movs r5, 0x1F ldr r6, [sp, 0x24] ldr r0, _080E9100 adds r7, r1, r0 _080E9050: lsls r2, r4, 1 add r2, r8 adds r2, r7, r2 ldr r1, [sp, 0x8] asrs r1, 8 ands r1, r5 lsls r1, 10 ldr r0, [sp, 0x4] asrs r0, 8 ands r0, r5 lsls r0, 5 orrs r1, r0 ldr r0, [sp] asrs r0, 8 ands r0, r5 orrs r1, r0 strh r1, [r2] movs r3, 0 adds r4, 0x1 _080E9076: lsls r0, r3, 2 mov r1, sp adds r2, r1, r0 adds r0, r6, r0 ldr r1, [r2] ldr r0, [r0] adds r1, r0 str r1, [r2] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x2 bls _080E9076 lsls r0, r4, 16 lsrs r4, r0, 16 cmp r4, 0x7 bls _080E9050 ldr r2, _080E90FC ldr r3, [r2] mov r0, r10 add r0, r9 adds r0, r4 lsls r0, 1 ldr r4, _080E9100 adds r2, r3, r4 adds r2, r0 mov r5, r12 ldr r1, [r5, 0x8] asrs r1, 8 movs r0, 0x1F ands r1, r0 lsls r1, 10 ldr r0, [r5, 0x4] asrs r0, 8 movs r4, 0x1F ands r0, r4 lsls r0, 5 orrs r1, r0 ldr r0, [sp, 0xC] asrs r0, 8 ands r0, r4 orrs r1, r0 strh r1, [r2] ldr r5, [sp, 0x28] lsls r0, r5, 16 lsrs r0, 16 mov r9, r0 cmp r0, 0x2 bhi _080E90DA b _080E8FBE _080E90DA: ldr r0, _080E9104 adds r1, r3, r0 movs r0, 0 strb r0, [r1] add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E90F4: .4byte gUnknown_08E8F19A _080E90F8: .4byte gUnknown_08E8F1A0 _080E90FC: .4byte gUnknown_083DB694 _080E9100: .4byte 0x00009c34 _080E9104: .4byte 0x00009c32 thumb_func_end sub_80E8FA4 thumb_func_start sub_80E9108 sub_80E9108: @ 80E9108 push {r4-r7,lr} lsls r0, 24 ldr r1, _080E9164 ldr r2, [r1] ldr r3, _080E9168 adds r1, r2, r3 lsrs r0, 24 ldrb r3, [r1] adds r0, r3 strb r0, [r1] movs r4, 0 ldr r0, _080E916C mov r12, r0 adds r6, r1, 0 ldr r3, _080E9170 adds r5, r2, r3 ldr r7, _080E9174 _080E912A: adds r2, r4, 0 adds r2, 0x51 lsls r2, 1 mov r0, r12 adds r3, r2, r0 ldrb r0, [r6] lsls r0, 1 lsls r1, r4, 3 adds r1, r4 lsls r1, 1 adds r0, r1 adds r0, r5, r0 ldrh r0, [r0] strh r0, [r3] adds r2, r7 ldrb r0, [r6] lsls r0, 1 adds r0, r1 adds r0, r5, r0 ldrh r0, [r0] strh r0, [r2] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x2 bls _080E912A pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E9164: .4byte gUnknown_083DB694 _080E9168: .4byte 0x00009c32 _080E916C: .4byte 0x0202eac8 _080E9170: .4byte 0x00009c34 _080E9174: .4byte 0x0202eec8 thumb_func_end sub_80E9108 thumb_func_start sub_80E9178 sub_80E9178: @ 80E9178 push {lr} ldr r0, _080E9190 ldr r0, [r0] ldr r1, _080E9194 adds r0, r1 movs r1, 0 strb r1, [r0] movs r0, 0 bl sub_80E9108 pop {r0} bx r0 .align 2, 0 _080E9190: .4byte gUnknown_083DB694 _080E9194: .4byte 0x00009c32 thumb_func_end sub_80E9178 thumb_func_start sub_80E9198 sub_80E9198: @ 80E9198 ldr r1, _080E91A0 strb r0, [r1] bx lr .align 2, 0 _080E91A0: .4byte 0x03000740 thumb_func_end sub_80E9198 thumb_func_start sub_80E91A4 sub_80E91A4: @ 80E91A4 ldr r0, _080E91AC ldrb r0, [r0] bx lr .align 2, 0 _080E91AC: .4byte 0x03000740 thumb_func_end sub_80E91A4 thumb_func_start sub_80E91B0 sub_80E91B0: @ 80E91B0 push {lr} sub sp, 0x8 lsls r2, 24 lsls r1, 27 lsrs r1, 24 lsrs r2, 21 lsls r3, 27 lsrs r3, 24 str r3, [sp] movs r3, 0x1 str r3, [sp, 0x4] movs r3, 0xB0 bl sub_8072AB0 add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_80E91B0 thumb_func_start sub_80E91D4 sub_80E91D4: @ 80E91D4 push {r4,lr} lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 ldr r0, _080E91FC bl sub_8071E2C cmp r4, 0xA bne _080E9200 movs r0, 0x3 movs r1, 0xE movs r2, 0x1A movs r3, 0x13 bl Reset movs r0, 0xA bl sub_80E9198 b _080E935C .align 2, 0 _080E91FC: .4byte gWindowConfig_81E6DA8 _080E9200: bl sub_80E91A4 lsls r0, 24 lsrs r0, 24 cmp r0, 0xA bne _080E9218 movs r0, 0x3 movs r1, 0xE movs r2, 0x1A movs r3, 0x13 bl DrawDefaultWindow _080E9218: adds r0, r4, 0 bl sub_80E9198 cmp r4, 0x9 bls _080E9224 b _080E935C _080E9224: lsls r0, r4, 2 ldr r1, _080E9230 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E9230: .4byte _080E9234 .align 2, 0 _080E9234: .4byte _080E925C .4byte _080E9284 .4byte _080E92AC .4byte _080E92C4 .4byte _080E92F0 .4byte _080E9308 .4byte _080E9310 .4byte _080E9318 .4byte _080E933C .4byte _080E9350 _080E925C: ldr r0, _080E9278 ldr r4, [r0] ldr r1, _080E927C adds r0, r4, r1 movs r1, 0x4 movs r2, 0xF movs r3, 0x2 bl sub_80E91B0 ldr r0, _080E9280 adds r4, r0 adds r0, r4, 0 b _080E9326 .align 2, 0 _080E9278: .4byte gUnknown_083DB694 _080E927C: .4byte 0x00009c80 _080E9280: .4byte 0x00009cc9 _080E9284: ldr r0, _080E92A0 ldr r4, [r0] ldr r1, _080E92A4 adds r0, r4, r1 movs r1, 0x4 movs r2, 0xF movs r3, 0x2 bl sub_80E91B0 ldr r0, _080E92A8 adds r4, r0 adds r0, r4, 0 b _080E9326 .align 2, 0 _080E92A0: .4byte gUnknown_083DB694 _080E92A4: .4byte 0x00009d12 _080E92A8: .4byte 0x00009d5b _080E92AC: ldr r0, _080E92BC movs r1, 0x4 movs r2, 0xF movs r3, 0x2 bl sub_80E91B0 ldr r0, _080E92C0 b _080E9326 .align 2, 0 _080E92BC: .4byte gUnknown_084110EE _080E92C0: .4byte gUnknown_0841110D _080E92C4: ldr r0, _080E92D8 ldr r0, [r0] ldrb r0, [r0, 0x8] cmp r0, 0x4 beq _080E92E0 cmp r0, 0x9 bne _080E92E8 ldr r0, _080E92DC b _080E933E .align 2, 0 _080E92D8: .4byte gUnknown_083DB694 _080E92DC: .4byte gUnknown_08411220 _080E92E0: ldr r0, _080E92E4 b _080E933E .align 2, 0 _080E92E4: .4byte gUnknown_08411239 _080E92E8: ldr r0, _080E92EC b _080E933E .align 2, 0 _080E92EC: .4byte gUnknown_08411127 _080E92F0: ldr r0, _080E9300 movs r1, 0x4 movs r2, 0xF movs r3, 0x2 bl sub_80E91B0 ldr r0, _080E9304 b _080E9326 .align 2, 0 _080E9300: .4byte gUnknown_08411135 _080E9304: .4byte gUnknown_08411158 _080E9308: ldr r0, _080E930C b _080E933E .align 2, 0 _080E930C: .4byte gUnknown_08411166 _080E9310: ldr r0, _080E9314 b _080E933E .align 2, 0 _080E9314: .4byte gUnknown_08411185 _080E9318: ldr r0, _080E9334 movs r1, 0x4 movs r2, 0xF movs r3, 0x2 bl sub_80E91B0 ldr r0, _080E9338 _080E9326: movs r1, 0x4 movs r2, 0x11 movs r3, 0x2 bl sub_80E91B0 b _080E935C .align 2, 0 _080E9334: .4byte gUnknown_084111A7 _080E9338: .4byte gUnknown_084111C7 _080E933C: ldr r0, _080E934C _080E933E: movs r1, 0x4 movs r2, 0xF movs r3, 0x4 bl sub_80E91B0 b _080E935C .align 2, 0 _080E934C: .4byte gUnknown_084111EB _080E9350: ldr r0, _080E9364 movs r1, 0x4 movs r2, 0xF movs r3, 0x4 bl sub_80E91B0 _080E935C: pop {r4} pop {r0} bx r0 .align 2, 0 _080E9364: .4byte gUnknown_08411202 thumb_func_end sub_80E91D4 thumb_func_start sub_80E9368 sub_80E9368: @ 80E9368 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xD bhi _080E93F8 lsls r0, 2 ldr r1, _080E937C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E937C: .4byte _080E9380 .align 2, 0 _080E9380: .4byte _080E93B8 .4byte _080E93C0 .4byte _080E93C8 .4byte _080E93D0 .4byte _080E93F8 .4byte _080E93E8 .4byte _080E93D8 .4byte _080E93E8 .4byte _080E93E8 .4byte _080E93E0 .4byte _080E93E8 .4byte _080E93E8 .4byte _080E93E8 .4byte _080E93F0 _080E93B8: ldr r4, _080E93BC b _080E93FA .align 2, 0 _080E93BC: .4byte gUnknown_08411257 _080E93C0: ldr r4, _080E93C4 b _080E93FA .align 2, 0 _080E93C4: .4byte gUnknown_0841125F _080E93C8: ldr r4, _080E93CC b _080E93FA .align 2, 0 _080E93CC: .4byte gUnknown_08411276 _080E93D0: ldr r4, _080E93D4 b _080E93FA .align 2, 0 _080E93D4: .4byte gUnknown_0841128D _080E93D8: ldr r4, _080E93DC b _080E93FA .align 2, 0 _080E93DC: .4byte gUnknown_084112A3 _080E93E0: ldr r4, _080E93E4 b _080E93FA .align 2, 0 _080E93E4: .4byte gUnknown_084112B3 _080E93E8: ldr r4, _080E93EC b _080E93FA .align 2, 0 _080E93EC: .4byte gUnknown_084112CD _080E93F0: ldr r4, _080E93F4 b _080E93FA .align 2, 0 _080E93F4: .4byte gUnknown_084112D7 _080E93F8: movs r4, 0 _080E93FA: ldr r0, _080E943C bl sub_8071E2C ldr r0, _080E9440 ldr r2, [r0] ldr r0, _080E9444 adds r5, r2, r0 movs r3, 0xFC strb r3, [r5] adds r0, 0x1 adds r1, r2, r0 movs r0, 0x5 strb r0, [r1] ldr r0, _080E9448 adds r1, r2, r0 movs r0, 0x1 strb r0, [r1] cmp r4, 0 beq _080E9450 ldr r1, _080E944C adds r0, r2, r1 adds r1, r4, 0 movs r2, 0xF0 movs r3, 0x2 bl sub_8072C74 adds r0, r5, 0 movs r1, 0 movs r2, 0 bl Print b _080E9476 .align 2, 0 _080E943C: .4byte gWindowConfig_81E6D8C _080E9440: .4byte gUnknown_083DB694 _080E9444: .4byte 0x00009f8e _080E9448: .4byte 0x00009f90 _080E944C: .4byte 0x00009f91 _080E9450: ldr r0, _080E9484 adds r1, r2, r0 strb r3, [r1] movs r0, 0x11 strb r0, [r1, 0x1] movs r0, 0x10 strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] adds r0, r5, 0 movs r1, 0 movs r2, 0 bl Print adds r0, r5, 0 movs r1, 0x1C movs r2, 0 bl Print _080E9476: ldr r0, _080E9488 bl sub_8071E2C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E9484: .4byte 0x00009f91 _080E9488: .4byte gWindowConfig_81E6DA8 thumb_func_end sub_80E9368 thumb_func_start sub_80E948C sub_80E948C: @ 80E948C push {lr} sub sp, 0x10 ldr r0, _080E94A8 ldr r0, [r0] ldrb r0, [r0, 0x9] cmp r0, 0x5 bls _080E949C b _080E9594 _080E949C: lsls r0, 2 ldr r1, _080E94AC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E94A8: .4byte gUnknown_083DB694 _080E94AC: .4byte _080E94B0 .align 2, 0 _080E94B0: .4byte _080E9508 .4byte _080E9530 .4byte _080E9554 .4byte _080E9578 .4byte _080E94C8 .4byte _080E94E8 _080E94C8: ldr r0, _080E94E0 ldr r3, _080E94E4 movs r1, 0 str r1, [sp] movs r1, 0x1A str r1, [sp, 0x4] movs r1, 0x18 str r1, [sp, 0x8] movs r1, 0x6 str r1, [sp, 0xC] movs r1, 0x3 b _080E9568 .align 2, 0 _080E94E0: .4byte 0x06006800 _080E94E4: .4byte gUnknown_08E94AD0 _080E94E8: ldr r0, _080E9500 ldr r3, _080E9504 movs r1, 0 str r1, [sp] movs r1, 0x12 str r1, [sp, 0x4] movs r1, 0xD str r1, [sp, 0x8] movs r1, 0x8 str r1, [sp, 0xC] movs r1, 0xE b _080E951E .align 2, 0 _080E9500: .4byte 0x06006800 _080E9504: .4byte gUnknown_08E94AD0 _080E9508: ldr r0, _080E9528 ldr r3, _080E952C movs r1, 0 str r1, [sp] movs r1, 0xA str r1, [sp, 0x4] movs r1, 0x1A str r1, [sp, 0x8] movs r1, 0x8 str r1, [sp, 0xC] movs r1, 0x2 _080E951E: movs r2, 0x2 bl sub_809D104 b _080E9594 .align 2, 0 _080E9528: .4byte 0x06006800 _080E952C: .4byte gUnknown_08E94AD0 _080E9530: ldr r0, _080E954C ldr r3, _080E9550 movs r1, 0 str r1, [sp] str r1, [sp, 0x4] movs r1, 0x1A str r1, [sp, 0x8] movs r1, 0xA str r1, [sp, 0xC] movs r1, 0x2 movs r2, 0 bl sub_809D104 b _080E9594 .align 2, 0 _080E954C: .4byte 0x06006800 _080E9550: .4byte gUnknown_08E94AD0 _080E9554: ldr r0, _080E9570 ldr r3, _080E9574 movs r2, 0xD str r2, [sp] movs r1, 0x12 str r1, [sp, 0x4] str r2, [sp, 0x8] movs r1, 0x4 str r1, [sp, 0xC] movs r1, 0xE _080E9568: movs r2, 0x3 bl sub_809D104 b _080E9594 .align 2, 0 _080E9570: .4byte 0x06006800 _080E9574: .4byte gUnknown_08E94AD0 _080E9578: ldr r0, _080E959C ldr r3, _080E95A0 movs r1, 0 str r1, [sp] movs r1, 0x20 str r1, [sp, 0x4] movs r1, 0x18 str r1, [sp, 0x8] movs r1, 0x4 str r1, [sp, 0xC] movs r1, 0x3 movs r2, 0x2 bl sub_809D104 _080E9594: add sp, 0x10 pop {r0} bx r0 .align 2, 0 _080E959C: .4byte 0x06006800 _080E95A0: .4byte gUnknown_08E94AD0 thumb_func_end sub_80E948C thumb_func_start sub_80E95A4 sub_80E95A4: @ 80E95A4 push {lr} ldr r0, _080E95C0 bl sub_8071E2C ldr r0, _080E95C4 ldr r0, [r0] ldrb r0, [r0, 0x9] cmp r0, 0x5 bhi _080E9612 lsls r0, 2 ldr r1, _080E95C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E95C0: .4byte gWindowConfig_81E6D8C _080E95C4: .4byte gUnknown_083DB694 _080E95C8: .4byte _080E95CC .align 2, 0 _080E95CC: .4byte _080E95F2 .4byte _080E95F6 .4byte _080E9600 .4byte _080E960A .4byte _080E95E4 .4byte _080E95EE _080E95E4: movs r0, 0x4 movs r1, 0x6 bl sub_80E9620 b _080E9612 _080E95EE: movs r0, 0x2 b _080E9602 _080E95F2: movs r0, 0x3 b _080E95F8 _080E95F6: movs r0, 0 _080E95F8: movs r1, 0x5 bl sub_80E9620 b _080E9612 _080E9600: movs r0, 0x4 _080E9602: movs r1, 0x11 bl sub_80E9620 b _080E9612 _080E960A: movs r0, 0x3 movs r1, 0x6 bl sub_80E9620 _080E9612: ldr r0, _080E961C bl sub_8071E2C pop {r0} bx r0 .align 2, 0 _080E961C: .4byte gWindowConfig_81E6DA8 thumb_func_end sub_80E95A4 thumb_func_start sub_80E9620 sub_80E9620: @ 80E9620 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 lsls r0, 16 lsls r1, 16 lsrs r1, 16 str r1, [sp, 0x14] movs r1, 0 mov r10, r1 lsrs r7, r0, 16 mov r9, r1 ldr r0, _080E9644 ldr r0, [r0] b _080E971A .align 2, 0 _080E9644: .4byte gUnknown_083DB694 _080E9648: ldr r6, [sp, 0x14] movs r2, 0 mov r8, r2 adds r0, r7, 0x2 str r0, [sp, 0x1C] mov r1, r9 adds r1, 0x1 str r1, [sp, 0x18] b _080E96E4 _080E965A: mov r2, r10 lsls r0, r2, 1 adds r1, r5, 0 adds r1, 0xC adds r1, r0 ldrh r0, [r1] ldr r2, _080E9690 cmp r0, r2 bne _080E969C movs r0, 0 str r0, [sp] str r0, [sp, 0x4] movs r1, 0x9 str r1, [sp, 0x8] movs r0, 0x2 str r0, [sp, 0xC] str r1, [sp, 0x10] ldr r0, _080E9694 adds r1, r6, 0 adds r2, r7, 0 ldr r3, _080E9698 bl sub_8095C8C adds r0, r6, 0 adds r0, 0xB b _080E96CC .align 2, 0 _080E9690: .4byte 0x0000ffff _080E9694: .4byte 0x06007000 _080E9698: .4byte gUnknown_083DBE1C _080E969C: ldr r0, _080E9738 adds r4, r5, r0 ldrh r1, [r1] adds r0, r4, 0 movs r2, 0xB bl sub_80EB218 lsls r1, r6, 24 lsrs r1, 24 lsls r2, r7, 24 lsrs r2, 24 adds r0, r4, 0 bl Print mov r1, r9 lsls r0, r1, 1 add r0, r8 adds r1, r5, 0 adds r1, 0x8C adds r1, r0 adds r0, r6, 0 adds r0, 0xB ldrb r1, [r1] adds r0, r1 _080E96CC: lsls r0, 16 lsrs r6, r0, 16 mov r0, r10 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r10, r0 mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 _080E96E4: ldr r0, _080E973C ldr r5, [r0] adds r0, r5, 0 adds r0, 0x83 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r8, r0 bge _080E970A ldrb r2, [r5, 0xA] cmp r10, r2 bcc _080E965A lsls r1, r6, 24 lsrs r1, 24 lsls r2, r7, 24 lsrs r2, 24 ldr r0, _080E9740 bl Print _080E970A: ldr r1, [sp, 0x1C] lsls r0, r1, 16 lsrs r7, r0, 16 ldr r2, [sp, 0x18] lsls r0, r2, 16 lsrs r0, 16 mov r9, r0 adds r0, r5, 0 _080E971A: adds r0, 0x84 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r9, r0 blt _080E9648 add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E9738: .4byte 0x00009e14 _080E973C: .4byte gUnknown_083DB694 _080E9740: .4byte gUnknown_083DBEA8 thumb_func_end sub_80E9620 thumb_func_start sub_80E9744 sub_80E9744: @ 80E9744 push {lr} ldr r0, _080E9760 bl sub_8071E2C ldr r0, _080E9764 ldr r0, [r0] ldrb r0, [r0, 0x9] cmp r0, 0x5 bhi _080E97B2 lsls r0, 2 ldr r1, _080E9768 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E9760: .4byte gWindowConfig_81E6D8C _080E9764: .4byte gUnknown_083DB694 _080E9768: .4byte _080E976C .align 2, 0 _080E976C: .4byte _080E9792 .4byte _080E9796 .4byte _080E97A0 .4byte _080E97AA .4byte _080E9784 .4byte _080E978E _080E9784: movs r0, 0x4 movs r1, 0x6 bl sub_80E97C0 b _080E97B2 _080E978E: movs r0, 0x2 b _080E97A2 _080E9792: movs r0, 0x3 b _080E9798 _080E9796: movs r0, 0 _080E9798: movs r1, 0x5 bl sub_80E97C0 b _080E97B2 _080E97A0: movs r0, 0x4 _080E97A2: movs r1, 0x11 bl sub_80E97C0 b _080E97B2 _080E97AA: movs r0, 0x3 movs r1, 0x6 bl sub_80E97C0 _080E97B2: ldr r0, _080E97BC bl sub_8071E2C pop {r0} bx r0 .align 2, 0 _080E97BC: .4byte gWindowConfig_81E6DA8 thumb_func_end sub_80E9744 thumb_func_start sub_80E97C0 sub_80E97C0: @ 80E97C0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 lsrs r1, 16 str r1, [sp] movs r7, 0 movs r3, 0 ldr r1, _080E98B8 ldr r0, [r1] adds r0, 0x84 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r3, r0 bge _080E98A6 _080E97EA: ldr r1, [r1] ldr r0, _080E98BC adds r2, r1, r0 movs r6, 0 adds r0, r1, 0 adds r0, 0x83 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldr r4, [sp] lsls r4, 24 mov r8, r4 lsls r4, r5, 24 mov r9, r4 adds r5, 0x2 mov r10, r5 adds r3, 0x1 str r3, [sp, 0x4] cmp r6, r0 bge _080E985E ldrb r1, [r1, 0xA] cmp r7, r1 bcs _080E985E ldr r0, _080E98B8 ldr r4, [r0] ldr r5, _080E98C0 _080E981E: lsls r0, r7, 1 adds r1, r4, 0 adds r1, 0xC adds r1, r0 ldrh r0, [r1] cmp r0, r5 beq _080E983E adds r1, r0, 0 adds r0, r2, 0 movs r2, 0 bl sub_80EB218 adds r2, r0, 0 movs r0, 0 strb r0, [r2] adds r2, 0x1 _080E983E: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r0, r4, 0 adds r0, 0x83 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r6, r0 bge _080E985E ldrb r0, [r4, 0xA] cmp r7, r0 bcc _080E981E _080E985E: ldr r1, _080E98B8 ldr r4, [r1] adds r0, r4, 0 adds r0, 0x83 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0xB muls r1, r0 movs r0, 0xFC strb r0, [r2] movs r0, 0x13 strb r0, [r2, 0x1] lsls r1, 3 strb r1, [r2, 0x2] movs r0, 0xFF strb r0, [r2, 0x3] ldr r2, _080E98BC adds r0, r4, r2 mov r3, r8 lsrs r1, r3, 24 mov r3, r9 lsrs r2, r3, 24 bl Print mov r1, r10 lsls r0, r1, 16 lsrs r5, r0, 16 ldr r2, [sp, 0x4] lsls r0, r2, 24 lsrs r3, r0, 24 ldr r1, _080E98B8 adds r4, 0x84 movs r0, 0 ldrsb r0, [r4, r0] cmp r3, r0 blt _080E97EA _080E98A6: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E98B8: .4byte gUnknown_083DB694 _080E98BC: .4byte 0x00009e6e _080E98C0: .4byte 0x0000ffff thumb_func_end sub_80E97C0 thumb_func_start sub_80E98C4 sub_80E98C4: @ 80E98C4 push {lr} ldr r0, _080E98E0 bl sub_8071E2C ldr r0, _080E98E4 ldr r0, [r0] ldrb r0, [r0, 0x9] cmp r0, 0x5 bhi _080E9936 lsls r0, 2 ldr r1, _080E98E8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E98E0: .4byte gWindowConfig_81E6D8C _080E98E4: .4byte gUnknown_083DB694 _080E98E8: .4byte _080E98EC .align 2, 0 _080E98EC: .4byte _080E990A .4byte _080E9910 .4byte _080E9916 .4byte _080E991A .4byte _080E9904 .4byte _080E990A _080E9904: movs r1, 0x4 movs r3, 0x2 b _080E991E _080E990A: movs r1, 0x3 movs r3, 0x2 b _080E991E _080E9910: movs r1, 0x1 movs r3, 0x3 b _080E991E _080E9916: movs r1, 0x4 b _080E991C _080E991A: movs r1, 0x3 _080E991C: movs r3, 0x1 _080E991E: lsls r3, 1 adds r3, r1, r3 subs r3, 0x1 lsls r3, 24 lsrs r3, 24 movs r0, 0x2 movs r2, 0x1B bl sub_8071EBC ldr r0, _080E993C bl sub_8071E2C _080E9936: pop {r0} bx r0 .align 2, 0 _080E993C: .4byte gWindowConfig_81E6DA8 thumb_func_end sub_80E98C4 thumb_func_start sub_80E9940 sub_80E9940: @ 80E9940 push {r4-r6,lr} adds r6, r0, 0 lsls r5, r1, 24 lsrs r5, 24 movs r4, 0x7 ands r4, r5 lsls r3, r4, 1 adds r1, r3, 0 adds r3, 0x1 movs r0, 0x2 movs r2, 0x1F bl sub_8071EBC adds r0, r6, 0 adds r1, r5, 0 bl sub_80E9A7C lsls r4, 1 adds r0, r6, 0 movs r1, 0x2 adds r2, r4, 0 bl sub_80E9A60 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80E9940 thumb_func_start sub_80E9974 sub_80E9974: @ 80E9974 push {r4-r6,lr} ldr r0, _080E99C4 bl sub_8071E2C ldr r0, _080E99C8 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0 bne _080E99D4 ldr r1, _080E99CC adds r0, r2, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r1, r0, 16 lsrs r4, r1, 16 adds r0, 0x4 cmp r4, r0 bge _080E9A08 adds r5, r2, 0 ldr r2, _080E99CC adds r6, r5, r2 _080E99A4: lsls r1, r4, 24 lsrs r1, 24 ldr r2, _080E99D0 adds r0, r5, r2 bl sub_80E9940 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 movs r0, 0 ldrsb r0, [r6, r0] adds r0, 0x4 cmp r4, r0 blt _080E99A4 b _080E9A08 .align 2, 0 _080E99C4: .4byte gWindowConfig_81E6D54 _080E99C8: .4byte gUnknown_083DB694 _080E99CC: .4byte 0x000001b5 _080E99D0: .4byte 0x00009dc9 _080E99D4: bl sub_80E9AD4 ldr r4, _080E9A10 adds r0, r4, 0 movs r1, 0x2 movs r2, 0 bl sub_80E9A60 adds r0, r4, 0 adds r0, 0x20 movs r1, 0x2 movs r2, 0x2 bl sub_80E9A60 adds r0, r4, 0 adds r0, 0x40 movs r1, 0x2 movs r2, 0x4 bl sub_80E9A60 adds r4, 0x60 adds r0, r4, 0 movs r1, 0x2 movs r2, 0x6 bl sub_80E9A60 _080E9A08: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E9A10: .4byte gUnknown_083DBEAC thumb_func_end sub_80E9974 thumb_func_start sub_80E9A14 sub_80E9A14: @ 80E9A14 push {lr} bl sub_80E9A4C ldr r0, _080E9A44 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0 bne _080E9A40 movs r0, 0xDD lsls r0, 1 adds r2, r1, r0 ldr r3, _080E9A48 adds r0, r1, r3 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 4 ldrh r1, [r2] adds r0, r1 strh r0, [r2] _080E9A40: pop {r0} bx r0 .align 2, 0 _080E9A44: .4byte gUnknown_083DB694 _080E9A48: .4byte 0x000001b5 thumb_func_end sub_80E9A14 thumb_func_start sub_80E9A4C sub_80E9A4C: @ 80E9A4C ldr r0, _080E9A5C ldr r0, [r0] movs r2, 0xDD lsls r2, 1 adds r1, r0, r2 movs r0, 0 strh r0, [r1] bx lr .align 2, 0 _080E9A5C: .4byte gUnknown_083DB694 thumb_func_end sub_80E9A4C thumb_func_start sub_80E9A60 sub_80E9A60: @ 80E9A60 push {lr} lsls r2, 16 movs r3, 0xF0 lsls r3, 12 ands r3, r2 lsls r1, 24 lsrs r1, 24 lsrs r3, 16 adds r2, r3, 0 bl Print pop {r0} bx r0 thumb_func_end sub_80E9A60 thumb_func_start sub_80E9A7C sub_80E9A7C: @ 80E9A7C push {r4-r7,lr} adds r2, r0, 0 lsls r1, 16 lsrs r7, r1, 16 lsls r0, r7, 17 lsrs r5, r0, 16 movs r4, 0 ldr r0, _080E9AD0 ldr r6, [r0] _080E9A8E: movs r0, 0xFC strb r0, [r2] movs r0, 0x12 strb r0, [r2, 0x1] movs r0, 0x58 muls r0, r4 strb r0, [r2, 0x2] adds r2, 0x3 lsls r1, r7, 1 adds r1, r4, r1 adds r0, r6, 0 adds r0, 0x2A adds r0, r1 ldrb r1, [r0] adds r0, r2, 0 movs r2, 0xB bl sub_80EAD64 adds r2, r0, 0 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r6, 0x28] cmp r5, r0 bcs _080E9ACA adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _080E9A8E _080E9ACA: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E9AD0: .4byte gUnknown_083DB694 thumb_func_end sub_80E9A7C thumb_func_start sub_80E9AD4 sub_80E9AD4: @ 80E9AD4 push {r4,lr} ldr r0, _080E9AF4 bl sub_8071E2C movs r4, 0 _080E9ADE: adds r0, r4, 0 bl sub_80E9C74 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xF bls _080E9ADE pop {r4} pop {r0} bx r0 .align 2, 0 _080E9AF4: .4byte gWindowConfig_81E6D54 thumb_func_end sub_80E9AD4 thumb_func_start sub_80E9AF8 sub_80E9AF8: @ 80E9AF8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 16 lsrs r7, r0, 16 adds r0, r7, 0 bl sub_80E9C74 ldr r4, _080E9B7C ldr r5, [r4] ldr r0, _080E9B80 adds r0, r5 mov r8, r0 movs r0, 0xFC mov r1, r8 strb r0, [r1] movs r0, 0x11 strb r0, [r1, 0x1] movs r0, 0x10 strb r0, [r1, 0x2] ldr r2, _080E9B84 adds r2, r5 mov r8, r2 adds r0, r5, 0 adds r0, 0x7D ldrb r0, [r0] cmp r0, 0 beq _080E9BF4 movs r6, 0 ldr r3, _080E9B88 adds r0, r5, r3 adds r0, r7 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r6, r0 blt _080E9B4A b _080E9C52 _080E9B4A: lsls r0, r7, 2 mov r9, r0 ldr r1, _080E9B8C adds r1, r5, r1 str r1, [sp] lsls r2, r7, 17 mov r10, r2 _080E9B58: lsls r4, r6, 1 mov r3, r9 adds r0, r4, r3 ldr r1, [sp] adds r0, r1, r0 ldrh r0, [r0] bl sub_80EB2D4 lsls r0, 16 lsrs r0, 16 adds r5, r4, 0 cmp r0, 0x7 bne _080E9B94 ldr r0, _080E9B90 bl sub_8071E2C b _080E9B9A .align 2, 0 _080E9B7C: .4byte gUnknown_083DB694 _080E9B80: .4byte 0x00009e14 _080E9B84: .4byte 0x00009e17 _080E9B88: .4byte 0x000099a6 _080E9B8C: .4byte 0x00009a2a _080E9B90: .4byte gWindowConfig_81E6D70 _080E9B94: ldr r0, _080E9BE0 bl sub_8071E2C _080E9B9A: ldr r2, _080E9BE4 ldr r4, [r2] mov r3, r9 adds r1, r5, r3 ldr r2, _080E9BE8 adds r0, r4, r2 adds r0, r1 ldrh r1, [r0] mov r0, r8 movs r2, 0x9 bl sub_80EB218 ldr r3, _080E9BEC adds r0, r4, r3 movs r1, 0xB muls r1, r6 adds r1, 0x4 lsls r1, 16 lsrs r1, 16 mov r3, r10 lsrs r2, r3, 16 bl sub_80E9A60 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _080E9BF0 adds r4, r0 adds r4, r7 movs r0, 0 ldrsb r0, [r4, r0] cmp r6, r0 blt _080E9B58 b _080E9C52 .align 2, 0 _080E9BE0: .4byte gWindowConfig_81E6D54 _080E9BE4: .4byte gUnknown_083DB694 _080E9BE8: .4byte 0x00009a2a _080E9BEC: .4byte 0x00009e14 _080E9BF0: .4byte 0x000099a6 _080E9BF4: ldr r0, _080E9C64 bl sub_8071E2C movs r6, 0 ldr r1, _080E9C68 adds r0, r5, r1 adds r0, r7 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r6, r0 bge _080E9C52 adds r4, r5, 0 adds r0, r4, r1 adds r0, r7 mov r9, r0 lsls r5, r7, 17 _080E9C16: lsls r1, r6, 1 lsls r0, r7, 2 adds r1, r0 ldr r2, _080E9C6C adds r0, r4, r2 adds r0, r1 ldrh r1, [r0] mov r0, r8 movs r2, 0x9 bl sub_80EB218 movs r0, 0xB adds r1, r6, 0 muls r1, r0 adds r1, 0x4 lsls r1, 16 lsrs r1, 16 ldr r3, _080E9C70 adds r0, r4, r3 lsrs r2, r5, 16 bl sub_80E9A60 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 mov r1, r9 movs r0, 0 ldrsb r0, [r1, r0] cmp r6, r0 blt _080E9C16 _080E9C52: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E9C64: .4byte gWindowConfig_81E6D54 _080E9C68: .4byte 0x000099a6 _080E9C6C: .4byte 0x00009a2a _080E9C70: .4byte 0x00009e14 thumb_func_end sub_80E9AF8 thumb_func_start sub_80E9C74 sub_80E9C74: @ 80E9C74 push {lr} lsls r0, 16 movs r1, 0xE0 lsls r1, 11 ands r1, r0 lsrs r1, 16 lsls r3, r1, 1 adds r1, r3, 0 adds r3, 0x1 movs r0, 0 movs r2, 0x1D bl sub_8071EBC pop {r0} bx r0 thumb_func_end sub_80E9C74 thumb_func_start sub_80E9C94 sub_80E9C94: @ 80E9C94 push {r4-r6,lr} ldr r0, _080E9CAC ldr r0, [r0] ldr r2, _080E9CB0 adds r1, r0, r2 movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0x3 bgt _080E9CB4 lsls r0, 16 lsrs r0, 16 b _080E9CB6 .align 2, 0 _080E9CAC: .4byte gUnknown_083DB694 _080E9CB0: .4byte 0x00009a28 _080E9CB4: movs r0, 0x4 _080E9CB6: adds r5, r0, 0 movs r4, 0 cmp r4, r5 bcs _080E9CF4 ldr r0, _080E9CE0 ldr r0, [r0] ldr r1, _080E9CE4 adds r6, r0, r1 _080E9CC6: movs r0, 0 ldrsb r0, [r6, r0] adds r0, r4, r0 lsls r0, 16 lsrs r0, 16 bl sub_80E9AF8 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r5 bcc _080E9CC6 b _080E9CF4 .align 2, 0 _080E9CE0: .4byte gUnknown_083DB694 _080E9CE4: .4byte 0x00009a29 _080E9CE8: adds r0, r4, 0 adds r1, r0, 0x1 lsls r1, 16 lsrs r4, r1, 16 bl sub_80E9C74 _080E9CF4: cmp r4, 0x3 bls _080E9CE8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80E9C94 thumb_func_start sub_80E9D00 sub_80E9D00: @ 80E9D00 push {r4-r6,lr} ldr r0, _080E9D28 ldr r2, [r0] movs r0, 0xE0 lsls r0, 1 adds r1, r2, r0 movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0 ble _080E9D30 lsls r0, 16 lsrs r4, r0, 16 ldr r1, _080E9D2C adds r0, r2, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r0, 0x4 b _080E9D46 .align 2, 0 _080E9D28: .4byte gUnknown_083DB694 _080E9D2C: .4byte 0x00009a29 _080E9D30: movs r0, 0 ldrsb r0, [r1, r0] negs r0, r0 lsls r0, 16 lsrs r4, r0, 16 ldr r1, _080E9D74 adds r0, r2, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 subs r0, r4 _080E9D46: lsls r0, 16 lsrs r5, r0, 16 subs r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldr r0, _080E9D78 cmp r4, r0 beq _080E9D6E adds r6, r0, 0 _080E9D58: adds r0, r5, 0 adds r1, r0, 0x1 lsls r1, 16 lsrs r5, r1, 16 bl sub_80E9AF8 subs r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r6 bne _080E9D58 _080E9D6E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080E9D74: .4byte 0x00009a29 _080E9D78: .4byte 0x0000ffff thumb_func_end sub_80E9D00 thumb_func_start sub_80E9D7C sub_80E9D7C: @ 80E9D7C push {r4-r7,lr} ldr r0, _080E9DAC bl sub_8071E2C ldr r0, _080E9DB0 ldr r2, [r0] movs r0, 0xE0 lsls r0, 1 adds r1, r2, r0 movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0 bge _080E9DB8 negs r0, r0 lsls r0, 16 lsrs r6, r0, 16 ldr r1, _080E9DB4 adds r0, r2, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 subs r0, r6 b _080E9DCC .align 2, 0 _080E9DAC: .4byte gWindowConfig_81E6D54 _080E9DB0: .4byte gUnknown_083DB694 _080E9DB4: .4byte 0x000001b5 _080E9DB8: movs r0, 0 ldrsb r0, [r1, r0] lsls r0, 16 lsrs r6, r0, 16 ldr r1, _080E9DFC adds r0, r2, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r0, 0x4 _080E9DCC: lsls r0, 16 lsrs r4, r0, 16 movs r5, 0 cmp r5, r6 bcs _080E9DF6 ldr r0, _080E9E00 ldr r7, [r0] _080E9DDA: lsls r1, r4, 24 lsrs r1, 24 ldr r2, _080E9E04 adds r0, r7, r2 bl sub_80E9940 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r6 bcc _080E9DDA _080E9DF6: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080E9DFC: .4byte 0x000001b5 _080E9E00: .4byte gUnknown_083DB694 _080E9E04: .4byte 0x00009dc9 thumb_func_end sub_80E9D7C thumb_func_start sub_80E9E08 sub_80E9E08: @ 80E9E08 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080E9E4C ldr r3, [r0] movs r0, 0xDD lsls r0, 1 adds r1, r3, r0 movs r5, 0xE0 lsls r5, 1 adds r2, r3, r5 movs r0, 0 ldrsb r0, [r2, r0] lsls r0, 4 ldrh r1, [r1] adds r0, r1 movs r1, 0x7F ands r0, r1 subs r5, 0x4 adds r1, r3, r5 strh r0, [r1] adds r1, r4, 0 movs r0, 0 ldrsb r0, [r2, r0] cmp r0, 0 bge _080E9E3E negs r1, r4 _080E9E3E: ldr r2, _080E9E50 adds r0, r3, r2 strb r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080E9E4C: .4byte gUnknown_083DB694 _080E9E50: .4byte 0x000001bf thumb_func_end sub_80E9E08 thumb_func_start sub_80E9E54 sub_80E9E54: @ 80E9E54 push {r4,lr} ldr r0, _080E9E8C ldr r2, [r0] movs r0, 0xDD lsls r0, 1 adds r3, r2, r0 ldr r1, _080E9E90 adds r0, r2, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrh r4, [r3] adds r0, r4 movs r1, 0x7F ands r0, r1 strh r0, [r3] movs r3, 0 movs r4, 0xDE lsls r4, 1 adds r1, r2, r4 ldrh r1, [r1] cmp r0, r1 bne _080E9E84 movs r3, 0x1 _080E9E84: adds r0, r3, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080E9E8C: .4byte gUnknown_083DB694 _080E9E90: .4byte 0x000001bf thumb_func_end sub_80E9E54 thumb_func_start nullsub_23 nullsub_23: @ 80E9E94 bx lr thumb_func_end nullsub_23 thumb_func_start sub_80E9E98 sub_80E9E98: @ 80E9E98 ldr r0, _080E9EA4 ldr r0, [r0] adds r0, 0xBE movs r1, 0 strh r1, [r0] bx lr .align 2, 0 _080E9EA4: .4byte gUnknown_083DB694 thumb_func_end sub_80E9E98 thumb_func_start sub_80E9EA8 sub_80E9EA8: @ 80E9EA8 push {lr} ldr r1, _080E9EC4 ldr r0, [r1] adds r0, 0xBE ldrh r0, [r0] adds r2, r1, 0 cmp r0, 0x5 bhi _080E9F48 lsls r0, 2 ldr r1, _080E9EC8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E9EC4: .4byte gUnknown_083DB694 _080E9EC8: .4byte _080E9ECC .align 2, 0 _080E9ECC: .4byte _080E9EE4 .4byte _080E9EF4 .4byte _080E9F0C .4byte _080E9F24 .4byte _080E9F38 .4byte _080E9F44 _080E9EE4: bl sub_80EA24C ldr r0, _080E9F08 ldr r1, [r0] adds r1, 0xBE ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080E9EF4: bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080E9F48 bl sub_80EA4A4 ldr r0, _080E9F08 ldr r1, [r0] b _080E9F3A .align 2, 0 _080E9F08: .4byte gUnknown_083DB694 _080E9F0C: bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080E9F48 bl sub_80EA704 ldr r0, _080E9F20 ldr r1, [r0] b _080E9F3A .align 2, 0 _080E9F20: .4byte gUnknown_083DB694 _080E9F24: bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080E9F48 ldr r0, _080E9F34 ldr r1, [r0] b _080E9F3A .align 2, 0 _080E9F34: .4byte gUnknown_083DB694 _080E9F38: ldr r1, [r2] _080E9F3A: adds r1, 0xBE ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080E9F48 _080E9F44: movs r0, 0x1 b _080E9F4A _080E9F48: movs r0, 0 _080E9F4A: pop {r1} bx r1 thumb_func_end sub_80E9EA8 thumb_func_start sub_80E9F50 sub_80E9F50: @ 80E9F50 push {lr} ldr r0, _080E9F68 ldr r0, [r0] adds r0, 0xBE ldrh r0, [r0] cmp r0, 0x6 bhi _080E9FCC lsls r0, 2 ldr r1, _080E9F6C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080E9F68: .4byte gUnknown_083DB694 _080E9F6C: .4byte _080E9F70 .align 2, 0 _080E9F70: .4byte _080E9F8C .4byte _080E9FAC .4byte _080E9F96 .4byte _080E9FAC .4byte _080E9F9C .4byte _080E9FAC .4byte _080E9FC8 _080E9F8C: bl nullsub_23 bl sub_80EA764 b _080E9FA0 _080E9F96: bl sub_80EA5A0 b _080E9FA0 _080E9F9C: bl sub_80EA348 _080E9FA0: ldr r0, _080E9FC4 ldr r1, [r0] adds r1, 0xBE ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080E9FAC: bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080E9FCC ldr r0, _080E9FC4 ldr r1, [r0] adds r1, 0xBE ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080E9FCC .align 2, 0 _080E9FC4: .4byte gUnknown_083DB694 _080E9FC8: movs r0, 0x1 b _080E9FCE _080E9FCC: movs r0, 0 _080E9FCE: pop {r1} bx r1 thumb_func_end sub_80E9F50 thumb_func_start sub_80E9FD4 sub_80E9FD4: @ 80E9FD4 push {r4,lr} ldr r0, _080E9FEC ldr r0, [r0] adds r4, r0, 0 adds r4, 0xBE ldrh r0, [r4] cmp r0, 0 beq _080E9FF0 cmp r0, 0x1 beq _080E9FFE b _080EA00C .align 2, 0 _080E9FEC: .4byte gUnknown_083DB694 _080E9FF0: bl nullsub_23 bl sub_80EA5A0 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _080E9FFE: bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080EA00C movs r0, 0x1 b _080EA00E _080EA00C: movs r0, 0 _080EA00E: pop {r4} pop {r1} bx r1 thumb_func_end sub_80E9FD4 thumb_func_start sub_80EA014 sub_80EA014: @ 80EA014 push {r4,lr} ldr r0, _080EA02C ldr r0, [r0] adds r4, r0, 0 adds r4, 0xBE ldrh r0, [r4] cmp r0, 0 beq _080EA030 cmp r0, 0x1 beq _080EA03A b _080EA048 .align 2, 0 _080EA02C: .4byte gUnknown_083DB694 _080EA030: bl sub_80EA4A4 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _080EA03A: bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080EA048 movs r0, 0x1 b _080EA04A _080EA048: movs r0, 0 _080EA04A: pop {r4} pop {r1} bx r1 thumb_func_end sub_80EA014 thumb_func_start sub_80EA050 sub_80EA050: @ 80EA050 push {lr} ldr r0, _080EA068 ldr r0, [r0] adds r0, 0xBE ldrh r0, [r0] cmp r0, 0x4 bhi _080EA0DC lsls r0, 2 ldr r1, _080EA06C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EA068: .4byte gUnknown_083DB694 _080EA06C: .4byte _080EA070 .align 2, 0 _080EA070: .4byte _080EA084 .4byte _080EA08E .4byte _080EA09E .4byte _080EA0B4 .4byte _080EA0D8 _080EA084: bl nullsub_23 bl sub_80EA764 b _080EA0C4 _080EA08E: bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080EA0DC bl sub_80EA7F4 b _080EA0C4 _080EA09E: movs r0, 0x1 bl sub_80E9108 bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080EA0DC bl sub_80EA8BC b _080EA0C4 _080EA0B4: movs r0, 0x1 bl sub_80E9108 bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080EA0DC _080EA0C4: ldr r0, _080EA0D4 ldr r1, [r0] adds r1, 0xBE ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EA0DC .align 2, 0 _080EA0D4: .4byte gUnknown_083DB694 _080EA0D8: movs r0, 0x1 b _080EA0DE _080EA0DC: movs r0, 0 _080EA0DE: pop {r1} bx r1 thumb_func_end sub_80EA050 thumb_func_start sub_80EA0E4 sub_80EA0E4: @ 80EA0E4 push {lr} ldr r0, _080EA0FC ldr r0, [r0] adds r0, 0xBE ldrh r0, [r0] cmp r0, 0x4 bhi _080EA17C lsls r0, 2 ldr r1, _080EA100 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EA0FC: .4byte gUnknown_083DB694 _080EA100: .4byte _080EA104 .align 2, 0 _080EA104: .4byte _080EA118 .4byte _080EA128 .4byte _080EA144 .4byte _080EA15C .4byte _080EA178 _080EA118: bl sub_80EA948 ldr r0, _080EA140 ldr r1, [r0] adds r1, 0xBE ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EA128: movs r0, 0x1 negs r0, r0 bl sub_80E9108 bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080EA17C bl sub_80EAA44 b _080EA166 .align 2, 0 _080EA140: .4byte gUnknown_083DB694 _080EA144: movs r0, 0x1 negs r0, r0 bl sub_80E9108 bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080EA17C bl sub_80EA704 b _080EA166 _080EA15C: bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080EA17C _080EA166: ldr r0, _080EA174 ldr r1, [r0] adds r1, 0xBE ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EA17C .align 2, 0 _080EA174: .4byte gUnknown_083DB694 _080EA178: movs r0, 0x1 b _080EA17E _080EA17C: movs r0, 0 _080EA17E: pop {r1} bx r1 thumb_func_end sub_80EA0E4 thumb_func_start sub_80EA184 sub_80EA184: @ 80EA184 push {r4,lr} ldr r0, _080EA1A0 ldr r0, [r0] adds r4, r0, 0 adds r4, 0xBE ldrh r0, [r4] cmp r0, 0x1 beq _080EA1B4 cmp r0, 0x1 bgt _080EA1A4 cmp r0, 0 beq _080EA1AA b _080EA1D8 .align 2, 0 _080EA1A0: .4byte gUnknown_083DB694 _080EA1A4: cmp r0, 0x2 beq _080EA1D0 b _080EA1D8 _080EA1AA: bl sub_80EAAD4 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _080EA1B4: bl sub_80EA1E0 lsls r0, 24 cmp r0, 0 beq _080EA1D8 ldr r0, _080EA1CC ldr r1, [r0] adds r1, 0xBE ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EA1D8 .align 2, 0 _080EA1CC: .4byte gUnknown_083DB694 _080EA1D0: bl sub_80E9178 movs r0, 0x1 b _080EA1DA _080EA1D8: movs r0, 0 _080EA1DA: pop {r4} pop {r1} bx r1 thumb_func_end sub_80EA184 thumb_func_start sub_80EA1E0 sub_80EA1E0: @ 80EA1E0 push {r4-r6,lr} ldr r0, _080EA240 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xC4 ldrh r0, [r0] cmp r0, 0 beq _080EA244 movs r4, 0 adds r0, r1, 0 adds r0, 0xC2 ldrh r2, [r0] cmp r4, r2 bcs _080EA228 adds r5, r1, 0 adds r6, r0, 0 _080EA200: lsls r0, r4, 4 adds r0, 0xC8 adds r0, r5, r0 bl sub_80EAC0C lsls r0, r4, 1 adds r0, r4 lsls r0, 2 movs r1, 0xA4 lsls r1, 1 adds r0, r1 adds r0, r5, r0 bl sub_80EAC48 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldrh r2, [r6] cmp r4, r2 bcc _080EA200 _080EA228: ldr r0, _080EA240 ldr r1, [r0] adds r2, r1, 0 adds r2, 0xBC movs r0, 0x1 strb r0, [r2] adds r1, 0xC4 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] movs r0, 0 b _080EA246 .align 2, 0 _080EA240: .4byte gUnknown_083DB694 _080EA244: movs r0, 0x1 _080EA246: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80EA1E0 thumb_func_start sub_80EA24C sub_80EA24C: @ 80EA24C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 ldr r0, _080EA340 ldr r7, [r0] adds r0, r7, 0 adds r0, 0xC8 movs r6, 0xF str r6, [sp] ldr r1, _080EA344 mov r8, r1 str r1, [sp, 0x4] movs r4, 0 str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0xD movs r2, 0xE movs r3, 0xD bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r7, r1 str r4, [sp] movs r1, 0xD9 lsls r1, 3 adds r5, r7, r1 str r5, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xD8 str r6, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x2 mov r9, r1 str r1, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0xC movs r2, 0xE movs r3, 0xC bl sub_80EABD4 movs r1, 0xAA lsls r1, 1 adds r0, r7, r1 str r4, [sp] str r5, [sp, 0x4] movs r1, 0x1E movs r2, 0 mov r3, r8 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xE8 movs r6, 0x10 str r6, [sp] mov r1, r8 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0xD movs r2, 0xF movs r3, 0xD bl sub_80EABD4 movs r1, 0xB0 lsls r1, 1 adds r0, r7, r1 str r4, [sp] str r5, [sp, 0x4] movs r1, 0 movs r2, 0x9 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xF8 str r6, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] mov r1, r9 str r1, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0xC movs r2, 0xF movs r3, 0xC bl sub_80EABD4 movs r1, 0xB6 lsls r1, 1 adds r0, r7, r1 str r4, [sp] str r5, [sp, 0x4] movs r1, 0x1E movs r2, 0x9 mov r3, r8 bl sub_80EAC30 adds r1, r7, 0 adds r1, 0xC2 movs r0, 0x4 strh r0, [r1] adds r1, 0x2 movs r0, 0x6 strh r0, [r1] add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EA340: .4byte gUnknown_083DB694 _080EA344: .4byte 0x0000fffe thumb_func_end sub_80EA24C thumb_func_start sub_80EA348 sub_80EA348: @ 80EA348 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 ldr r0, _080EA49C ldr r7, [r0] adds r0, r7, 0 adds r0, 0xC8 movs r5, 0xF str r5, [sp] movs r1, 0x2 mov r9, r1 str r1, [sp, 0x4] movs r4, 0 str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x1 movs r2, 0xE movs r3, 0xD bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r7, r1 str r4, [sp] movs r1, 0xD9 lsls r1, 3 adds r6, r7, r1 str r6, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xD8 str r5, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] ldr r1, _080EA4A0 mov r8, r1 str r1, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0xC movs r2, 0xE movs r3, 0x18 bl sub_80EABD4 movs r1, 0xAA lsls r1, 1 adds r0, r7, r1 str r4, [sp] str r6, [sp, 0x4] movs r1, 0x12 movs r2, 0 movs r3, 0x2 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xE8 movs r5, 0x10 str r5, [sp] mov r1, r9 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x1 movs r2, 0xF movs r3, 0xD bl sub_80EABD4 movs r1, 0xB0 lsls r1, 1 adds r0, r7, r1 str r4, [sp] str r6, [sp, 0x4] movs r1, 0 movs r2, 0x9 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xF8 str r5, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] mov r1, r8 str r1, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0xC movs r2, 0xF movs r3, 0x18 bl sub_80EABD4 movs r1, 0xB6 lsls r1, 1 adds r0, r7, r1 str r4, [sp] str r6, [sp, 0x4] movs r1, 0x12 movs r2, 0x9 movs r3, 0x2 bl sub_80EAC30 movs r1, 0x84 lsls r1, 1 adds r0, r7, r1 str r5, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] mov r1, r9 str r1, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x1 movs r2, 0xE movs r3, 0x1 bl sub_80EABD4 movs r1, 0xBC lsls r1, 1 adds r0, r7, r1 str r4, [sp] adds r1, 0x50 adds r6, r7, r1 str r6, [sp, 0x4] movs r1, 0x1 movs r2, 0xE movs r3, 0 bl sub_80EAC30 movs r1, 0x8C lsls r1, 1 adds r0, r7, r1 str r5, [sp] mov r1, r8 str r1, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x18 movs r2, 0xE movs r3, 0x18 bl sub_80EABD4 movs r1, 0xC2 lsls r1, 1 adds r0, r7, r1 str r4, [sp] str r6, [sp, 0x4] movs r1, 0x18 movs r2, 0xE mov r3, r8 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xC2 movs r1, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EA49C: .4byte gUnknown_083DB694 _080EA4A0: .4byte 0x0000fffe thumb_func_end sub_80EA348 thumb_func_start sub_80EA4A4 sub_80EA4A4: @ 80EA4A4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 ldr r0, _080EA598 ldr r7, [r0] adds r0, r7, 0 adds r0, 0xC8 movs r6, 0xF str r6, [sp] movs r4, 0 str r4, [sp, 0x4] ldr r1, _080EA59C mov r8, r1 str r1, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x1 movs r2, 0xE movs r3, 0xD bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r7, r1 str r4, [sp] movs r1, 0xD9 lsls r1, 3 adds r5, r7, r1 str r5, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xD8 str r6, [sp] str r4, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0xC movs r2, 0xE movs r3, 0x18 bl sub_80EABD4 movs r1, 0xAA lsls r1, 1 adds r0, r7, r1 str r4, [sp] str r5, [sp, 0x4] movs r1, 0x12 movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xE8 movs r1, 0x10 mov r9, r1 str r1, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] movs r6, 0x1 str r6, [sp, 0x10] movs r1, 0x1 movs r2, 0xF movs r3, 0xD bl sub_80EABD4 movs r1, 0xB0 lsls r1, 1 adds r0, r7, r1 mov r1, r8 str r1, [sp] str r5, [sp, 0x4] movs r1, 0 movs r2, 0x9 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xF8 mov r1, r9 str r1, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r6, [sp, 0x10] movs r1, 0xC movs r2, 0xF movs r3, 0x18 bl sub_80EABD4 movs r1, 0xB6 lsls r1, 1 adds r0, r7, r1 mov r1, r8 str r1, [sp] str r5, [sp, 0x4] movs r1, 0x12 movs r2, 0x9 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xC2 movs r1, 0x4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EA598: .4byte gUnknown_083DB694 _080EA59C: .4byte 0x0000ffff thumb_func_end sub_80EA4A4 thumb_func_start sub_80EA5A0 sub_80EA5A0: @ 80EA5A0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 ldr r0, _080EA6FC ldr r7, [r0] adds r0, r7, 0 adds r0, 0xC8 movs r6, 0xF str r6, [sp] movs r4, 0 str r4, [sp, 0x4] movs r1, 0x1 mov r8, r1 str r1, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r2, 0xA movs r3, 0xD bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r7, r1 str r4, [sp] movs r1, 0xD9 lsls r1, 3 adds r5, r7, r1 str r5, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xD8 str r6, [sp] str r4, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0xC movs r2, 0xA movs r3, 0x18 bl sub_80EABD4 movs r1, 0xAA lsls r1, 1 adds r0, r7, r1 str r4, [sp] str r5, [sp, 0x4] movs r1, 0x12 movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xE8 movs r1, 0x14 mov r9, r1 str r1, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] ldr r6, _080EA700 str r6, [sp, 0x10] movs r1, 0x1 movs r2, 0xF movs r3, 0xD bl sub_80EABD4 movs r1, 0xB0 lsls r1, 1 adds r0, r7, r1 mov r1, r8 str r1, [sp] str r5, [sp, 0x4] movs r1, 0 movs r2, 0x5 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xF8 mov r1, r9 str r1, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r6, [sp, 0x10] movs r1, 0xC movs r2, 0xF movs r3, 0x18 bl sub_80EABD4 movs r1, 0xB6 lsls r1, 1 adds r0, r7, r1 mov r1, r8 str r1, [sp] str r5, [sp, 0x4] movs r1, 0x12 movs r2, 0x5 movs r3, 0 bl sub_80EAC30 movs r1, 0x84 lsls r1, 1 adds r0, r7, r1 movs r1, 0xA str r1, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] mov r1, r8 str r1, [sp, 0x10] movs r1, 0x1 movs r2, 0xA movs r3, 0x18 bl sub_80EABD4 movs r1, 0xBC lsls r1, 1 adds r0, r7, r1 str r4, [sp] adds r1, 0x50 adds r5, r7, r1 str r5, [sp, 0x4] movs r1, 0x1 movs r2, 0xA movs r3, 0 bl sub_80EAC30 movs r1, 0x8C lsls r1, 1 adds r0, r7, r1 mov r1, r9 str r1, [sp] str r4, [sp, 0x4] str r6, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x1 movs r2, 0x14 movs r3, 0x18 bl sub_80EABD4 movs r1, 0xC2 lsls r1, 1 adds r0, r7, r1 str r6, [sp] str r5, [sp, 0x4] movs r1, 0x1 movs r2, 0x14 movs r3, 0 bl sub_80EAC30 adds r1, r7, 0 adds r1, 0xC2 movs r0, 0x6 strh r0, [r1] adds r1, 0x2 movs r0, 0x4 strh r0, [r1] add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EA6FC: .4byte gUnknown_083DB694 _080EA700: .4byte 0x0000ffff thumb_func_end sub_80EA5A0 thumb_func_start sub_80EA704 sub_80EA704: @ 80EA704 push {r4-r6,lr} sub sp, 0x14 ldr r0, _080EA75C ldr r6, [r0] adds r0, r6, 0 adds r0, 0xC8 movs r1, 0x14 str r1, [sp] movs r4, 0 str r4, [sp, 0x4] str r4, [sp, 0x8] movs r5, 0x1 str r5, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x18 movs r2, 0xC movs r3, 0x19 bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r6, r1 ldr r3, _080EA760 str r4, [sp] movs r2, 0xD9 lsls r2, 3 adds r1, r6, r2 str r1, [sp, 0x4] movs r1, 0x5 movs r2, 0xA bl sub_80EAC30 adds r0, r6, 0 adds r0, 0xC2 strh r5, [r0] adds r1, r6, 0 adds r1, 0xC4 movs r0, 0x5 strh r0, [r1] add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080EA75C: .4byte gUnknown_083DB694 _080EA760: .4byte 0x0000ffff thumb_func_end sub_80EA704 thumb_func_start sub_80EA764 sub_80EA764: @ 80EA764 push {r4-r7,lr} sub sp, 0x14 ldr r0, _080EA7EC ldr r7, [r0] adds r0, r7, 0 adds r0, 0xC8 movs r6, 0x14 str r6, [sp] movs r4, 0 str r4, [sp, 0x4] str r4, [sp, 0x8] ldr r5, _080EA7F0 str r5, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x18 movs r2, 0xC movs r3, 0x1E bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r7, r1 str r4, [sp] movs r2, 0xD9 lsls r2, 3 adds r1, r7, r2 str r1, [sp, 0x4] movs r1, 0 movs r2, 0xA movs r3, 0x1 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xD8 str r6, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x1E movs r2, 0xC movs r3, 0x1F bl sub_80EABD4 movs r1, 0xAA lsls r1, 1 adds r0, r7, r1 str r4, [sp] movs r2, 0xE4 lsls r2, 1 adds r1, r7, r2 str r1, [sp, 0x4] movs r1, 0x1E movs r2, 0xC adds r3, r5, 0 bl sub_80EAC30 adds r1, r7, 0 adds r1, 0xC2 movs r0, 0x2 strh r0, [r1] adds r1, 0x2 movs r0, 0x6 strh r0, [r1] add sp, 0x14 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EA7EC: .4byte gUnknown_083DB694 _080EA7F0: .4byte 0x0000ffff thumb_func_end sub_80EA764 thumb_func_start sub_80EA7F4 sub_80EA7F4: @ 80EA7F4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 ldr r0, _080EA8B4 ldr r7, [r0] adds r0, r7, 0 adds r0, 0xC8 movs r6, 0x14 str r6, [sp] movs r4, 0 str r4, [sp, 0x4] str r4, [sp, 0x8] movs r5, 0x1 str r5, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x14 movs r2, 0xA movs r3, 0x19 bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r7, r1 ldr r3, _080EA8B8 str r4, [sp] movs r2, 0xD9 lsls r2, 3 adds r2, r7 mov r8, r2 str r2, [sp, 0x4] movs r1, 0x19 movs r2, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xD8 str r6, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r5, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0 movs r2, 0xA movs r3, 0x1 bl sub_80EABD4 movs r1, 0xAA lsls r1, 1 adds r0, r7, r1 str r4, [sp] movs r2, 0xE4 lsls r2, 1 adds r1, r7, r2 str r1, [sp, 0x4] movs r1, 0 movs r2, 0xA movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xE8 str r6, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x1 movs r2, 0xA movs r3, 0x4 bl sub_80EABD4 movs r1, 0xB0 lsls r1, 1 adds r0, r7, r1 str r4, [sp] mov r2, r8 str r2, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r1, r7, 0 adds r1, 0xC2 movs r0, 0x3 strh r0, [r1] adds r1, 0x2 movs r0, 0x2 strh r0, [r1] add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EA8B4: .4byte gUnknown_083DB694 _080EA8B8: .4byte 0x0000ffff thumb_func_end sub_80EA7F4 thumb_func_start sub_80EA8BC sub_80EA8BC: @ 80EA8BC push {r4-r6,lr} sub sp, 0x14 ldr r0, _080EA944 ldr r6, [r0] adds r0, r6, 0 adds r0, 0xC8 movs r5, 0x14 str r5, [sp] movs r4, 0 str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x3 movs r2, 0xA movs r3, 0x4 bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r6, r1 str r4, [sp] movs r2, 0xD9 lsls r2, 3 adds r1, r6, r2 str r1, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r0, r6, 0 adds r0, 0xD8 str r5, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0 movs r2, 0xA movs r3, 0x2 bl sub_80EABD4 movs r1, 0xAA lsls r1, 1 adds r0, r6, r1 str r4, [sp] movs r2, 0xE4 lsls r2, 1 adds r1, r6, r2 str r1, [sp, 0x4] movs r1, 0 movs r2, 0xA movs r3, 0 bl sub_80EAC30 adds r1, r6, 0 adds r1, 0xC2 movs r0, 0x2 strh r0, [r1] adds r1, 0x2 movs r0, 0x1 strh r0, [r1] add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080EA944: .4byte gUnknown_083DB694 thumb_func_end sub_80EA8BC thumb_func_start sub_80EA948 sub_80EA948: @ 80EA948 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 ldr r0, _080EAA3C ldr r7, [r0] adds r0, r7, 0 adds r0, 0xC8 movs r6, 0x14 str r6, [sp] movs r4, 0 str r4, [sp, 0x4] str r4, [sp, 0x8] ldr r5, _080EAA40 str r5, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0 movs r2, 0xA movs r3, 0x2 bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r7, r1 str r4, [sp] adds r1, 0x80 adds r1, r7 mov r9, r1 str r1, [sp, 0x4] movs r1, 0 movs r2, 0xA movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xD8 str r6, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x3 movs r2, 0xA movs r3, 0x5 bl sub_80EABD4 movs r1, 0xAA lsls r1, 1 adds r0, r7, r1 str r4, [sp] movs r1, 0xD9 lsls r1, 3 adds r1, r7 mov r8, r1 str r1, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xE8 str r6, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x1A movs r2, 0xA movs r3, 0x1E bl sub_80EABD4 movs r1, 0xB0 lsls r1, 1 adds r0, r7, r1 str r4, [sp] mov r1, r9 str r1, [sp, 0x4] movs r1, 0x1A movs r2, 0xA adds r3, r5, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xF8 str r6, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] str r5, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x19 movs r2, 0xA movs r3, 0x1A bl sub_80EABD4 movs r1, 0xB6 lsls r1, 1 adds r0, r7, r1 str r4, [sp] mov r1, r8 str r1, [sp, 0x4] movs r1, 0x1D movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r1, r7, 0 adds r1, 0xC2 movs r0, 0x4 strh r0, [r1] adds r1, 0x2 movs r0, 0x2 strh r0, [r1] add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EAA3C: .4byte gUnknown_083DB694 _080EAA40: .4byte 0x0000ffff thumb_func_end sub_80EA948 thumb_func_start sub_80EAA44 sub_80EAA44: @ 80EAA44 push {r4-r6,lr} sub sp, 0x14 ldr r0, _080EAACC ldr r6, [r0] adds r0, r6, 0 adds r0, 0xC8 movs r5, 0x14 str r5, [sp] movs r4, 0 str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x18 movs r2, 0xA movs r3, 0x1E bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r6, r1 str r4, [sp] movs r2, 0xE4 lsls r2, 1 adds r1, r6, r2 str r1, [sp, 0x4] movs r1, 0x18 movs r2, 0xA movs r3, 0 bl sub_80EAC30 adds r0, r6, 0 adds r0, 0xD8 str r5, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] ldr r1, _080EAAD0 str r1, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x17 movs r2, 0xA movs r3, 0x18 bl sub_80EABD4 movs r1, 0xAA lsls r1, 1 adds r0, r6, r1 str r4, [sp] movs r2, 0xD9 lsls r2, 3 adds r1, r6, r2 str r1, [sp, 0x4] movs r1, 0x1D movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r1, r6, 0 adds r1, 0xC2 movs r0, 0x2 strh r0, [r1] adds r1, 0x2 movs r0, 0x1 strh r0, [r1] add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080EAACC: .4byte gUnknown_083DB694 _080EAAD0: .4byte 0x0000ffff thumb_func_end sub_80EAA44 thumb_func_start sub_80EAAD4 sub_80EAAD4: @ 80EAAD4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 ldr r0, _080EABCC ldr r7, [r0] adds r0, r7, 0 adds r0, 0xC8 movs r1, 0xF str r1, [sp] movs r4, 0 str r4, [sp, 0x4] movs r5, 0x1 str r5, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0 movs r2, 0xA movs r3, 0x1E bl sub_80EABD4 movs r1, 0xA4 lsls r1, 1 adds r0, r7, r1 str r4, [sp] movs r1, 0xD9 lsls r1, 3 adds r1, r7 mov r8, r1 str r1, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xD8 movs r1, 0x14 mov r9, r1 str r1, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] ldr r6, _080EABD0 str r6, [sp, 0x10] movs r1, 0 movs r2, 0xF movs r3, 0x1E bl sub_80EABD4 movs r1, 0xAA lsls r1, 1 adds r0, r7, r1 str r5, [sp] mov r1, r8 str r1, [sp, 0x4] movs r1, 0 movs r2, 0x5 movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xE8 movs r1, 0xA str r1, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r5, [sp, 0x10] movs r1, 0 movs r2, 0xA movs r3, 0x1E bl sub_80EABD4 movs r1, 0xB0 lsls r1, 1 adds r0, r7, r1 str r4, [sp] adds r1, 0x68 adds r5, r7, r1 str r5, [sp, 0x4] movs r1, 0 movs r2, 0xA movs r3, 0 bl sub_80EAC30 adds r0, r7, 0 adds r0, 0xF8 mov r1, r9 str r1, [sp] str r4, [sp, 0x4] str r6, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0 movs r2, 0x14 movs r3, 0x1E bl sub_80EABD4 movs r1, 0xB6 lsls r1, 1 adds r0, r7, r1 str r6, [sp] str r5, [sp, 0x4] movs r1, 0 movs r2, 0x14 movs r3, 0 bl sub_80EAC30 adds r1, r7, 0 adds r1, 0xC2 movs r0, 0x4 strh r0, [r1] adds r1, 0x2 movs r0, 0x5 strh r0, [r1] add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EABCC: .4byte gUnknown_083DB694 _080EABD0: .4byte 0x0000ffff thumb_func_end sub_80EAAD4 thumb_func_start sub_80EABD4 sub_80EABD4: @ 80EABD4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r5, [sp, 0x1C] ldr r6, [sp, 0x20] ldr r4, [sp, 0x24] mov r9, r4 ldr r4, [sp, 0x28] ldr r7, [sp, 0x2C] mov r8, r7 strh r1, [r0] strh r3, [r0, 0x2] strh r2, [r0, 0x4] strh r5, [r0, 0x6] strh r6, [r0, 0x8] strh r4, [r0, 0xA] mov r1, r9 strh r1, [r0, 0xC] mov r4, r8 strh r4, [r0, 0xE] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80EABD4 thumb_func_start sub_80EAC0C sub_80EAC0C: @ 80EAC0C ldrh r1, [r0, 0x8] ldrh r2, [r0] adds r1, r2 strh r1, [r0] ldrh r1, [r0, 0xA] ldrh r2, [r0, 0x2] adds r1, r2 strh r1, [r0, 0x2] ldrh r1, [r0, 0xC] ldrh r2, [r0, 0x4] adds r1, r2 strh r1, [r0, 0x4] ldrh r1, [r0, 0xE] ldrh r2, [r0, 0x6] adds r1, r2 strh r1, [r0, 0x6] bx lr thumb_func_end sub_80EAC0C thumb_func_start sub_80EAC30 sub_80EAC30: @ 80EAC30 push {r4,r5,lr} ldr r4, [sp, 0xC] ldr r5, [sp, 0x10] strh r1, [r0] strh r2, [r0, 0x2] strh r3, [r0, 0x4] strh r4, [r0, 0x6] str r5, [r0, 0x8] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80EAC30 thumb_func_start sub_80EAC48 sub_80EAC48: @ 80EAC48 ldrh r1, [r0, 0x4] ldrh r2, [r0] adds r1, r2 strh r1, [r0] ldrh r1, [r0, 0x6] ldrh r2, [r0, 0x2] adds r1, r2 strh r1, [r0, 0x2] bx lr thumb_func_end sub_80EAC48 thumb_func_start sub_80EAC5C sub_80EAC5C: @ 80EAC5C push {r4-r6,lr} ldr r0, _080EACB4 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0 beq _080EACAC movs r4, 0 adds r0, r1, 0 adds r0, 0xC2 ldrh r2, [r0] cmp r4, r2 bcs _080EACA2 adds r5, r1, 0 adds r6, r0, 0 _080EAC7C: lsls r1, r4, 4 adds r1, 0xC8 adds r1, r5, r1 lsls r2, r4, 1 adds r2, r4 lsls r2, 2 movs r0, 0xA4 lsls r0, 1 adds r2, r0 adds r2, r5, r2 ldr r0, _080EACB8 bl sub_80EACBC adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldrh r2, [r6] cmp r4, r2 bcc _080EAC7C _080EACA2: ldr r0, _080EACB4 ldr r0, [r0] adds r0, 0xBC movs r1, 0 strb r1, [r0] _080EACAC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080EACB4: .4byte gUnknown_083DB694 _080EACB8: .4byte 0x06006800 thumb_func_end sub_80EAC5C thumb_func_start sub_80EACBC sub_80EACBC: @ 80EACBC push {r4-r7,lr} sub sp, 0x10 adds r7, r0, 0 adds r3, r1, 0 adds r4, r2, 0 ldrh r2, [r3, 0x2] ldrh r0, [r3] subs r2, r0 ldrh r0, [r3, 0x6] ldrh r1, [r3, 0x4] subs r0, r1 lsls r0, 16 lsrs r0, 16 lsls r6, r2, 16 cmp r6, 0 ble _080EACFE lsls r5, r0, 16 cmp r5, 0 ble _080EACFE ldrh r1, [r3] ldrh r2, [r3, 0x4] ldr r3, [r4, 0x8] ldrh r0, [r4] str r0, [sp] ldrh r0, [r4, 0x2] str r0, [sp, 0x4] lsrs r0, r6, 16 str r0, [sp, 0x8] lsrs r0, r5, 16 str r0, [sp, 0xC] adds r0, r7, 0 bl sub_809D104 _080EACFE: add sp, 0x10 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80EACBC thumb_func_start sub_80EAD08 sub_80EAD08: @ 80EAD08 push {r4,r5,lr} ldr r0, _080EAD58 ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 ldr r1, _080EAD5C adds r4, r0, r1 adds r4, 0xB0 ldr r0, _080EAD60 ldr r1, [r0] movs r0, 0xDD lsls r0, 1 adds r1, r0 ldrh r0, [r1] adds r2, r0, 0 subs r2, 0x58 movs r0, 0xFF ands r2, r0 movs r3, 0 movs r5, 0xFF _080EAD32: ldrh r0, [r1] adds r0, r3 cmp r0, 0x80 bne _080EAD42 negs r0, r3 adds r2, r0, 0 subs r2, 0x58 ands r2, r5 _080EAD42: strh r2, [r4] adds r4, 0x2 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3F bls _080EAD32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EAD58: .4byte 0x03004dc0 _080EAD5C: .4byte 0x03004de0 _080EAD60: .4byte gUnknown_083DB694 thumb_func_end sub_80EAD08 thumb_func_start sub_80EAD64 sub_80EAD64: @ 80EAD64 push {lr} lsls r1, 24 ldr r2, _080EAD78 lsrs r1, 22 adds r1, r2 ldr r1, [r1] bl StringCopy pop {r1} bx r1 .align 2, 0 _080EAD78: .4byte gEasyChatGroupNames thumb_func_end sub_80EAD64 thumb_func_start sub_80EAD7C sub_80EAD7C: @ 80EAD7C push {lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x14 beq _080EADA2 cmp r0, 0x14 bgt _080EAD9C cmp r0, 0x11 blt _080EADBA ldr r0, _080EAD98 bl FlagGet b _080EADB4 .align 2, 0 _080EAD98: .4byte 0x00000804 _080EAD9C: cmp r1, 0x15 beq _080EADB0 b _080EADBA _080EADA2: ldr r0, _080EADAC bl FlagGet b _080EADB4 .align 2, 0 _080EADAC: .4byte 0x00000806 _080EADB0: bl sub_80EB9C8 _080EADB4: lsls r0, 24 lsrs r0, 24 b _080EADBC _080EADBA: movs r0, 0x1 _080EADBC: pop {r1} bx r1 thumb_func_end sub_80EAD7C thumb_func_start sub_80EADC0 sub_80EADC0: @ 80EADC0 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 16 lsrs r3, r1, 16 cmp r2, 0x15 bhi _080EAE82 lsls r0, r2, 2 ldr r1, _080EADD8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EADD8: .4byte _080EADDC .align 2, 0 _080EADDC: .4byte _080EAE50 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE82 .4byte _080EAE62 .4byte _080EAE62 .4byte _080EAE62 .4byte _080EAE34 .4byte _080EAE78 _080EAE34: ldr r0, _080EAE4C ldr r0, [r0] adds r0, r2 adds r0, 0x67 ldrb r0, [r0] cmp r0, 0 beq _080EAE70 lsls r0, r3, 24 lsrs r0, 24 bl sub_80EB868 b _080EAE7C .align 2, 0 _080EAE4C: .4byte gUnknown_083DB694 _080EAE50: adds r0, r3, 0 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0 bl sub_8090D90 b _080EAE7C _080EAE62: ldr r0, _080EAE74 ldr r0, [r0] adds r0, r2 adds r0, 0x67 ldrb r0, [r0] cmp r0, 0 bne _080EAE82 _080EAE70: movs r0, 0 b _080EAE84 .align 2, 0 _080EAE74: .4byte gUnknown_083DB694 _080EAE78: bl sub_80EB9C8 _080EAE7C: lsls r0, 24 lsrs r0, 24 b _080EAE84 _080EAE82: movs r0, 0x1 _080EAE84: pop {r1} bx r1 thumb_func_end sub_80EADC0 thumb_func_start sub_80EAE88 sub_80EAE88: @ 80EAE88 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080EAEA6 cmp r4, 0x14 beq _080EAEB2 adds r0, r4, 0 bl sub_80EAD7C lsls r0, 24 cmp r0, 0 bne _080EAEBC movs r0, 0 b _080EAEC2 _080EAEA6: movs r0, 0 bl sub_8090F68 lsls r0, 16 lsrs r0, 16 b _080EAEC2 _080EAEB2: bl sub_80EB8C0 lsls r0, 24 lsrs r0, 24 b _080EAEC2 _080EAEBC: ldr r0, _080EAEC8 adds r0, r4, r0 ldrb r0, [r0] _080EAEC2: pop {r4} pop {r1} bx r1 .align 2, 0 _080EAEC8: .4byte gEasyChatGroupSizes thumb_func_end sub_80EAE88 thumb_func_start sub_80EAECC sub_80EAECC: @ 80EAECC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 movs r0, 0 mov r8, r0 ldr r1, _080EAF10 ldr r0, [r1] ldr r3, _080EAF14 adds r3, r0, r3 str r3, [sp, 0x4] _080EAEE6: ldr r1, _080EAF18 mov r7, r8 lsls r2, r7, 1 adds r0, r2, r1 ldrh r4, [r0] mov r3, r8 adds r3, 0x1 lsls r0, r3, 1 adds r0, r1 ldrh r0, [r0] str r0, [sp] ldr r0, [sp, 0x4] adds r1, r0, r2 movs r0, 0 strh r0, [r1] mov r9, r0 adds r6, r4, 0 mov r10, r2 str r3, [sp, 0x8] b _080EB00C .align 2, 0 _080EAF10: .4byte gUnknown_083DB694 _080EAF14: .4byte 0x00004142 _080EAF18: .4byte gEasyChatWordsByLetter _080EAF1C: ldr r2, _080EAFB0 adds r0, r6, 0 adds r1, r0, 0x1 lsls r1, 16 lsrs r6, r1, 16 lsls r0, 1 adds r0, r2 ldrh r1, [r0] adds r4, r1, 0 ldr r0, _080EAFB4 cmp r1, r0 bls _080EAFCC movs r0, 0xFF ands r1, r0 movs r7, 0 subs r0, r1, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldr r3, _080EAFB8 cmp r5, r3 beq _080EB00C mov r1, r8 lsls r0, r1, 8 subs r0, r1 lsls r3, r0, 1 _080EAF4E: adds r1, r6, 0 adds r0, r1, 0x1 lsls r0, 16 lsrs r6, r0, 16 lsls r1, 1 ldr r0, _080EAFB0 adds r1, r0 ldrh r4, [r1] lsrs r0, r4, 9 ldr r1, _080EAFBC adds r2, r1, 0 adds r1, r4, 0 ands r1, r2 str r3, [sp, 0xC] bl sub_80EADC0 lsls r0, 24 ldr r3, [sp, 0xC] cmp r0, 0 beq _080EAFA2 cmp r7, 0 bne _080EAFA2 ldr r7, _080EAFC0 ldr r2, [r7] mov r1, r9 adds r0, r1, 0x1 lsls r0, 16 lsrs r0, 16 mov r9, r0 lsls r1, 1 adds r1, r3 ldr r7, _080EAFC4 adds r0, r2, r7 adds r0, r1 strh r4, [r0] ldr r0, _080EAFC8 adds r2, r0 add r2, r10 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] movs r7, 0x1 _080EAFA2: subs r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldr r1, _080EAFB8 cmp r5, r1 bne _080EAF4E b _080EB00C .align 2, 0 _080EAFB0: .4byte gEasyChatWordsAlphabetized _080EAFB4: .4byte 0x0000feff _080EAFB8: .4byte 0x0000ffff _080EAFBC: .4byte 0x000001ff _080EAFC0: .4byte gUnknown_083DB694 _080EAFC4: .4byte 0x00000b78 _080EAFC8: .4byte 0x00004142 _080EAFCC: lsrs r0, r4, 9 ldr r3, _080EB030 adds r2, r3, 0 adds r1, r4, 0 ands r1, r2 bl sub_80EADC0 lsls r0, 24 cmp r0, 0 beq _080EB00C ldr r7, _080EB034 ldr r2, [r7] mov r1, r9 adds r0, r1, 0x1 lsls r0, 16 lsrs r0, 16 mov r9, r0 mov r3, r8 lsls r0, r3, 8 subs r0, r3 adds r0, r1 lsls r0, 1 ldr r7, _080EB038 adds r1, r2, r7 adds r1, r0 strh r4, [r1] ldr r0, _080EB03C adds r2, r0 add r2, r10 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] _080EB00C: ldr r1, [sp] cmp r6, r1 bcc _080EAF1C ldr r3, [sp, 0x8] lsls r0, r3, 16 lsrs r0, 16 mov r8, r0 cmp r0, 0x1A bhi _080EB020 b _080EAEE6 _080EB020: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EB030: .4byte 0x000001ff _080EB034: .4byte gUnknown_083DB694 _080EB038: .4byte 0x00000b78 _080EB03C: .4byte 0x00004142 thumb_func_end sub_80EAECC thumb_func_start sub_80EB040 sub_80EB040: @ 80EB040 push {r4-r6,lr} movs r3, 0 _080EB044: adds r6, r3, 0x1 cmp r3, 0 beq _080EB094 cmp r3, 0x15 beq _080EB094 cmp r3, 0x12 beq _080EB094 cmp r3, 0x13 beq _080EB094 ldr r0, _080EB0A4 lsls r1, r3, 2 adds r1, r0 ldr r2, [r1] movs r4, 0 ldrb r0, [r2] cmp r0, 0xFF beq _080EB094 ldr r0, _080EB0A8 ldr r0, [r0] ldr r1, _080EB0AC adds r5, r0, r1 _080EB06E: lsls r0, r4, 2 lsls r1, r3, 10 adds r0, r1 adds r0, r5, r0 str r2, [r0] ldrb r0, [r2] adds r1, r4, 0x1 cmp r0, 0xFF beq _080EB088 _080EB080: adds r2, 0x1 ldrb r0, [r2] cmp r0, 0xFF bne _080EB080 _080EB088: adds r2, 0x1 lsls r0, r1, 16 lsrs r4, r0, 16 ldrb r0, [r2] cmp r0, 0xFF bne _080EB06E _080EB094: lsls r0, r6, 16 lsrs r3, r0, 16 cmp r3, 0x15 bls _080EB044 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080EB0A4: .4byte gEasyChatGroupWords _080EB0A8: .4byte gUnknown_083DB694 _080EB0AC: .4byte 0x000041a4 thumb_func_end sub_80EB040 thumb_func_start sub_80EB0B0 sub_80EB0B0: @ 80EB0B0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r3, _080EB184 ldr r4, [r3] adds r0, r4, 0 adds r0, 0x26 ldrb r5, [r0] cmp r5, 0 bne _080EB19C movs r0, 0xDC lsls r0, 1 adds r2, r4, r0 ldrb r6, [r2] lsls r1, r6, 1 ldr r7, _080EB188 adds r0, r4, r7 adds r0, r1 strh r5, [r0] movs r7, 0 movs r0, 0 mov r9, r0 ldr r1, _080EB18C lsls r0, r6, 2 adds r0, r1 ldr r0, [r0] str r0, [sp] movs r1, 0 mov r8, r1 ldr r1, _080EB190 ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] cmp r8, r0 bcc _080EB0FE b _080EB1FA _080EB0FE: movs r2, 0xDC lsls r2, 1 adds r2, r4, r2 str r2, [sp, 0x4] lsls r5, r6, 24 mov r10, r5 _080EB10A: mov r1, r8 lsls r0, r1, 1 ldr r2, [sp] adds r5, r0, r2 ldrh r1, [r5] mov r2, r10 lsrs r0, r2, 24 bl sub_80EADC0 lsls r0, 24 cmp r0, 0 beq _080EB16A ldr r0, _080EB184 ldr r3, [r0] lsls r1, r7, 1 mov r2, r9 lsls r0, r2, 2 adds r1, r0 ldr r0, _080EB194 adds r4, r3, r0 adds r4, r1 movs r0, 0x7F ands r0, r6 lsls r0, 9 ldrh r1, [r5] ldr r5, _080EB198 adds r2, r5, 0 ands r1, r2 orrs r0, r1 strh r0, [r4] lsls r0, r6, 1 ldr r1, _080EB188 adds r3, r1 adds r3, r0 ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0x1 bls _080EB16A movs r7, 0 mov r0, r9 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r9, r0 _080EB16A: mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r1, _080EB190 ldr r2, [sp, 0x4] ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] cmp r8, r0 bcc _080EB10A b _080EB1FA .align 2, 0 _080EB184: .4byte gUnknown_083DB694 _080EB188: .4byte 0x00004178 _080EB18C: .4byte gEasyChatGroupOrders _080EB190: .4byte gEasyChatGroupSizes _080EB194: .4byte 0x00009a2a _080EB198: .4byte 0x000001ff _080EB19C: movs r5, 0xDC lsls r5, 1 adds r0, r4, r5 ldrb r2, [r0] movs r3, 0 movs r6, 0 movs r5, 0 lsls r1, r2, 1 ldr r7, _080EB20C adds r0, r4, r7 adds r1, r0, r1 ldrh r0, [r1] cmp r5, r0 bcs _080EB1FA ldr r7, _080EB210 adds r7, r4 mov r8, r7 lsls r0, r2, 8 subs r0, r2 lsls r7, r0, 1 ldr r0, _080EB214 adds r2, r4, r0 adds r4, r1, 0 _080EB1CA: lsls r1, r3, 1 lsls r0, r6, 2 adds r1, r0 add r1, r8 lsls r0, r5, 1 adds r0, r7 adds r0, r2, r0 ldrh r0, [r0] strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x1 bls _080EB1EE movs r3, 0 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080EB1EE: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldrh r1, [r4] cmp r5, r1 bcc _080EB1CA _080EB1FA: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EB20C: .4byte 0x00004142 _080EB210: .4byte 0x00009a2a _080EB214: .4byte 0x00000b78 thumb_func_end sub_80EB0B0 thumb_func_start sub_80EB218 sub_80EB218: @ 80EB218 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 lsls r6, r1, 16 lsrs r4, r6, 16 adds r7, r4, 0 lsls r2, 16 lsrs r2, 16 mov r8, r2 adds r0, r4, 0 bl sub_80EB37C lsls r0, 24 cmp r0, 0 beq _080EB240 ldr r1, _080EB23C b _080EB2A2 .align 2, 0 _080EB23C: .4byte gUnknown_0842C890 _080EB240: ldr r0, _080EB250 cmp r4, r0 bne _080EB254 adds r1, r5, 0 movs r0, 0xFF strb r0, [r1] b _080EB2AA .align 2, 0 _080EB250: .4byte 0x0000ffff _080EB254: lsrs r2, r6, 25 ldr r1, _080EB268 ands r1, r7 cmp r2, 0x13 bgt _080EB26C cmp r2, 0x12 bge _080EB280 cmp r2, 0 beq _080EB270 b _080EB290 .align 2, 0 _080EB268: .4byte 0x000001ff _080EB26C: cmp r2, 0x15 bne _080EB290 _080EB270: movs r0, 0xB muls r1, r0 ldr r0, _080EB27C adds r1, r0 b _080EB2A2 .align 2, 0 _080EB27C: .4byte gSpeciesNames _080EB280: movs r0, 0xD muls r1, r0 ldr r0, _080EB28C adds r1, r0 b _080EB2A2 .align 2, 0 _080EB28C: .4byte gMoveNames _080EB290: ldr r0, _080EB2CC ldr r0, [r0] lsls r1, 2 lsls r2, 10 adds r1, r2 ldr r2, _080EB2D0 adds r0, r2 adds r0, r1 ldr r1, [r0] _080EB2A2: adds r0, r5, 0 bl StringCopy adds r1, r0, 0 _080EB2AA: movs r0, 0xFC strb r0, [r1] movs r0, 0x13 strb r0, [r1, 0x1] mov r2, r8 lsls r0, r2, 3 strb r0, [r1, 0x2] adds r1, 0x3 movs r0, 0xFF strb r0, [r1] adds r0, r1, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080EB2CC: .4byte gUnknown_083DB694 _080EB2D0: .4byte 0x000041a4 thumb_func_end sub_80EB218 thumb_func_start sub_80EB2D4 sub_80EB2D4: @ 80EB2D4 push {r4-r6,lr} lsls r5, r0, 16 lsrs r4, r5, 16 adds r6, r4, 0 adds r0, r4, 0 bl sub_80EB37C lsls r0, 24 cmp r0, 0 beq _080EB2F8 ldr r0, _080EB2F4 bl StringLength lsls r0, 16 lsrs r0, 16 b _080EB374 .align 2, 0 _080EB2F4: .4byte gUnknown_0842C890 _080EB2F8: ldr r0, _080EB304 cmp r4, r0 bne _080EB308 movs r0, 0 b _080EB374 .align 2, 0 _080EB304: .4byte 0x0000ffff _080EB308: lsrs r2, r5, 25 ldr r1, _080EB31C ands r1, r6 cmp r2, 0x13 bgt _080EB320 cmp r2, 0x12 bge _080EB334 cmp r2, 0 beq _080EB324 b _080EB344 .align 2, 0 _080EB31C: .4byte 0x000001ff _080EB320: cmp r2, 0x15 bne _080EB344 _080EB324: movs r0, 0xB muls r1, r0 ldr r0, _080EB330 adds r1, r0 b _080EB356 .align 2, 0 _080EB330: .4byte gSpeciesNames _080EB334: movs r0, 0xD muls r1, r0 ldr r0, _080EB340 adds r1, r0 b _080EB356 .align 2, 0 _080EB340: .4byte gMoveNames _080EB344: ldr r0, _080EB35C ldr r0, [r0] lsls r1, 2 lsls r2, 10 adds r1, r2 ldr r2, _080EB360 adds r0, r2 adds r0, r1 ldr r1, [r0] _080EB356: movs r2, 0 b _080EB36C .align 2, 0 _080EB35C: .4byte gUnknown_083DB694 _080EB360: .4byte 0x000041a4 _080EB364: adds r1, 0x1 adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 _080EB36C: ldrb r0, [r1] cmp r0, 0xFF bne _080EB364 adds r0, r2, 0 _080EB374: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80EB2D4 thumb_func_start sub_80EB37C sub_80EB37C: @ 80EB37C push {r4,r5,lr} lsls r1, r0, 16 lsrs r3, r1, 16 ldr r0, _080EB3A0 cmp r3, r0 beq _080EB3EA lsrs r2, r1, 25 ldr r5, _080EB3A4 ands r5, r3 cmp r2, 0x15 bhi _080EB3F4 cmp r2, 0x13 bgt _080EB3A8 cmp r2, 0x12 bge _080EB3AC cmp r2, 0 beq _080EB3AC b _080EB3E0 .align 2, 0 _080EB3A0: .4byte 0x0000ffff _080EB3A4: .4byte 0x000001ff _080EB3A8: cmp r2, 0x15 bne _080EB3E0 _080EB3AC: ldr r0, _080EB3D8 lsls r1, r2, 2 adds r1, r0 ldr r4, [r1] movs r3, 0 ldr r0, _080EB3DC adds r0, r2, r0 ldrb r0, [r0] cmp r3, r0 bcs _080EB3F4 adds r1, r0, 0 _080EB3C2: lsls r0, r3, 1 adds r0, r4 ldrh r0, [r0] cmp r5, r0 beq _080EB3EA adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r1 bcc _080EB3C2 b _080EB3F4 .align 2, 0 _080EB3D8: .4byte gEasyChatGroupWords _080EB3DC: .4byte gEasyChatGroupSizes _080EB3E0: ldr r0, _080EB3F0 adds r0, r2, r0 ldrb r0, [r0] cmp r5, r0 bcs _080EB3F4 _080EB3EA: movs r0, 0 b _080EB3F6 .align 2, 0 _080EB3F0: .4byte gEasyChatGroupSizes _080EB3F4: movs r0, 0x1 _080EB3F6: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80EB37C thumb_func_start sub_80EB3FC sub_80EB3FC: @ 80EB3FC push {r4-r7,lr} adds r5, r0, 0 lsls r6, r1, 16 lsrs r4, r6, 16 adds r7, r4, 0 adds r0, r4, 0 bl sub_80EB37C lsls r0, 24 cmp r0, 0 beq _080EB420 ldr r1, _080EB41C adds r0, r5, 0 bl StringCopy b _080EB4A6 .align 2, 0 _080EB41C: .4byte gUnknown_0842C890 _080EB420: ldr r0, _080EB43C cmp r4, r0 beq _080EB4A0 lsrs r1, r6, 25 ldr r2, _080EB440 ands r2, r7 cmp r1, 0x13 bgt _080EB444 cmp r1, 0x12 bge _080EB458 cmp r1, 0 beq _080EB448 b _080EB468 .align 2, 0 _080EB43C: .4byte 0x0000ffff _080EB440: .4byte 0x000001ff _080EB444: cmp r1, 0x15 bne _080EB468 _080EB448: movs r0, 0xB adds r1, r2, 0 muls r1, r0 ldr r0, _080EB454 adds r1, r0 b _080EB498 .align 2, 0 _080EB454: .4byte gSpeciesNames _080EB458: movs r0, 0xD adds r1, r2, 0 muls r1, r0 ldr r0, _080EB464 adds r1, r0 b _080EB498 .align 2, 0 _080EB464: .4byte gMoveNames _080EB468: ldr r0, _080EB4AC lsls r1, 2 adds r1, r0 ldr r1, [r1] subs r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldr r0, _080EB4B0 cmp r2, r0 beq _080EB498 adds r3, r0, 0 _080EB47E: ldrb r0, [r1] adds r1, 0x1 subs r2, 0x1 cmp r0, 0xFF beq _080EB490 _080EB488: ldrb r0, [r1] adds r1, 0x1 cmp r0, 0xFF bne _080EB488 _080EB490: lsls r0, r2, 16 lsrs r2, r0, 16 cmp r2, r3 bne _080EB47E _080EB498: adds r0, r5, 0 bl StringCopy adds r5, r0, 0 _080EB4A0: movs r0, 0xFF strb r0, [r5] adds r0, r5, 0 _080EB4A6: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080EB4AC: .4byte gEasyChatGroupWords _080EB4B0: .4byte 0x0000ffff thumb_func_end sub_80EB3FC thumb_func_start ConvertEasyChatWordsToString ConvertEasyChatWordsToString: @ 80EB4B4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 lsls r2, 16 lsls r3, 16 lsrs r3, 16 mov r9, r3 ldr r0, _080EB53C adds r2, r0 lsrs r7, r2, 16 movs r0, 0 cmp r0, r9 bcs _080EB524 _080EB4D6: movs r6, 0 adds r0, 0x1 mov r8, r0 cmp r6, r7 bcs _080EB508 ldr r2, _080EB540 _080EB4E2: ldrh r1, [r5] adds r0, r4, 0 str r2, [sp] bl sub_80EB3FC adds r4, r0, 0 ldrh r0, [r5] ldr r2, [sp] cmp r0, r2 beq _080EB4FC movs r0, 0 strb r0, [r4] adds r4, 0x1 _080EB4FC: adds r5, 0x2 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, r7 bcc _080EB4E2 _080EB508: ldrh r1, [r5] adds r5, 0x2 adds r0, r4, 0 bl sub_80EB3FC adds r4, r0, 0 movs r0, 0xFE strb r0, [r4] adds r4, 0x1 mov r1, r8 lsls r0, r1, 16 lsrs r0, 16 cmp r0, r9 bcc _080EB4D6 _080EB524: subs r4, 0x1 movs r0, 0xFF strb r0, [r4] adds r0, r4, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080EB53C: .4byte 0xffff0000 _080EB540: .4byte 0x0000ffff thumb_func_end ConvertEasyChatWordsToString thumb_func_start sub_80EB544 sub_80EB544: @ 80EB544 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 lsls r2, 16 lsls r3, 16 lsrs r3, 16 mov r10, r3 ldr r0, _080EB5B0 adds r2, r0 lsrs r2, 16 mov r8, r2 movs r7, 0 cmp r7, r10 bcs _080EB5C8 _080EB56A: movs r6, 0 adds r1, r7, 0x1 mov r9, r1 cmp r6, r8 bcs _080EB59C ldr r2, _080EB5B4 _080EB576: ldrh r1, [r5] adds r0, r4, 0 str r2, [sp] bl sub_80EB3FC adds r4, r0, 0 ldrh r0, [r5] ldr r2, [sp] cmp r0, r2 beq _080EB590 movs r0, 0 strb r0, [r4] adds r4, 0x1 _080EB590: adds r5, 0x2 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, r8 bcc _080EB576 _080EB59C: ldrh r1, [r5] adds r5, 0x2 adds r0, r4, 0 bl sub_80EB3FC adds r4, r0, 0 cmp r7, 0 bne _080EB5B8 movs r0, 0xFE b _080EB5BA .align 2, 0 _080EB5B0: .4byte 0xffff0000 _080EB5B4: .4byte 0x0000ffff _080EB5B8: movs r0, 0xFA _080EB5BA: strb r0, [r4] adds r4, 0x1 mov r1, r9 lsls r0, r1, 16 lsrs r7, r0, 16 cmp r7, r10 bcc _080EB56A _080EB5C8: subs r4, 0x1 movs r0, 0xFF strb r0, [r4] adds r0, r4, 0 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80EB544 thumb_func_start unref_sub_80EB5E0 unref_sub_80EB5E0: @ 80EB5E0 push {lr} lsls r1, r0, 16 lsrs r3, r1, 16 ldr r0, _080EB5F0 cmp r3, r0 bne _080EB5F4 movs r0, 0 b _080EB67C .align 2, 0 _080EB5F0: .4byte 0x0000ffff _080EB5F4: lsrs r1, 25 ldr r2, _080EB608 ands r2, r3 cmp r1, 0x13 bgt _080EB60C cmp r1, 0x12 bge _080EB620 cmp r1, 0 beq _080EB610 b _080EB630 .align 2, 0 _080EB608: .4byte 0x000001ff _080EB60C: cmp r1, 0x15 bne _080EB630 _080EB610: movs r0, 0xB adds r1, r2, 0 muls r1, r0 ldr r0, _080EB61C adds r1, r0 b _080EB660 .align 2, 0 _080EB61C: .4byte gSpeciesNames _080EB620: movs r0, 0xD adds r1, r2, 0 muls r1, r0 ldr r0, _080EB62C adds r1, r0 b _080EB660 .align 2, 0 _080EB62C: .4byte gMoveNames _080EB630: ldr r0, _080EB664 lsls r1, 2 adds r1, r0 ldr r1, [r1] subs r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldr r0, _080EB668 cmp r2, r0 beq _080EB660 adds r3, r0, 0 _080EB646: ldrb r0, [r1] adds r1, 0x1 subs r2, 0x1 cmp r0, 0xFF beq _080EB658 _080EB650: ldrb r0, [r1] adds r1, 0x1 cmp r0, 0xFF bne _080EB650 _080EB658: lsls r0, r2, 16 lsrs r2, r0, 16 cmp r2, r3 bne _080EB646 _080EB660: movs r2, 0 b _080EB674 .align 2, 0 _080EB664: .4byte gEasyChatGroupWords _080EB668: .4byte 0x0000ffff _080EB66C: adds r1, 0x1 adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 _080EB674: ldrb r0, [r1] cmp r0, 0xFF bne _080EB66C adds r0, r2, 0 _080EB67C: pop {r1} bx r1 thumb_func_end unref_sub_80EB5E0 thumb_func_start sub_80EB680 sub_80EB680: @ 80EB680 movs r0, 0 bx lr thumb_func_end sub_80EB680 thumb_func_start unref_sub_80EB684 unref_sub_80EB684: @ 80EB684 push {r4,lr} lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 lsls r1, 16 lsrs r1, 16 cmp r0, 0x7 beq _080EB6B4 cmp r0, 0x7 bgt _080EB69E cmp r0, 0x5 beq _080EB6A4 b _080EB6EE _080EB69E: cmp r2, 0x8 beq _080EB6C4 b _080EB6EE _080EB6A4: movs r2, 0x6 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080EB6B0 b _080EB6CE .align 2, 0 _080EB6B0: .4byte 0x02027e70 _080EB6B4: movs r2, 0x2 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080EB6C0 b _080EB6CE .align 2, 0 _080EB6C0: .4byte 0x02027e88 _080EB6C4: movs r2, 0x1 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080EB6F4 _080EB6CE: adds r1, r0, r1 subs r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldr r0, _080EB6F8 cmp r2, r0 beq _080EB6EE adds r4, r0, 0 adds r3, r0, 0 _080EB6E0: strh r4, [r1] adds r1, 0x2 subs r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r3 bne _080EB6E0 _080EB6EE: pop {r4} pop {r0} bx r0 .align 2, 0 _080EB6F4: .4byte 0x02027e6e _080EB6F8: .4byte 0x0000ffff thumb_func_end unref_sub_80EB684 thumb_func_start sub_80EB6FC sub_80EB6FC: @ 80EB6FC push {lr} adds r2, r0, 0 lsls r1, 16 ldr r0, _080EB724 adds r1, r0 lsrs r0, r1, 16 ldr r1, _080EB728 cmp r0, r1 beq _080EB71E adds r3, r1, 0 _080EB710: strh r3, [r2] adds r2, 0x2 subs r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, r1 bne _080EB710 _080EB71E: pop {r0} bx r0 .align 2, 0 _080EB724: .4byte 0xffff0000 _080EB728: .4byte 0x0000ffff thumb_func_end sub_80EB6FC thumb_func_start sub_80EB72C sub_80EB72C: @ 80EB72C push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 bl Random lsls r0, 16 lsrs r0, 16 ldr r1, _080EB778 adds r1, r4, r1 ldrb r1, [r1] bl __modsi3 lsls r0, 16 lsrs r2, r0, 16 cmp r4, 0 beq _080EB758 cmp r4, 0x15 beq _080EB758 cmp r4, 0x12 beq _080EB758 cmp r4, 0x13 bne _080EB766 _080EB758: ldr r1, _080EB77C lsls r0, r4, 2 adds r0, r1 ldr r1, [r0] lsls r0, r2, 1 adds r0, r1 ldrh r2, [r0] _080EB766: movs r0, 0x7F ands r0, r4 lsls r0, 9 ldr r1, _080EB780 ands r2, r1 orrs r0, r2 pop {r4} pop {r1} bx r1 .align 2, 0 _080EB778: .4byte gEasyChatGroupSizes _080EB77C: .4byte gEasyChatGroupWords _080EB780: .4byte 0x000001ff thumb_func_end sub_80EB72C thumb_func_start sub_80EB784 sub_80EB784: @ 80EB784 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r0, r4, 24 lsrs r0, 24 bl sub_80EAD7C lsls r0, 24 cmp r0, 0 bne _080EB7A0 ldr r0, _080EB79C b _080EB7BE .align 2, 0 _080EB79C: .4byte 0x0000ffff _080EB7A0: cmp r4, 0 beq _080EB7AE cmp r4, 0x14 bne _080EB7B4 bl sub_80EB960 b _080EB7BA _080EB7AE: bl sub_80EB9D8 b _080EB7BA _080EB7B4: adds r0, r4, 0 bl sub_80EB72C _080EB7BA: lsls r0, 16 lsrs r0, 16 _080EB7BE: pop {r4} pop {r1} bx r1 thumb_func_end sub_80EB784 thumb_func_start sub_80EB7C4 sub_80EB7C4: @ 80EB7C4 push {r4,r5,lr} ldr r0, _080EB7D8 ldrh r0, [r0] cmp r0, 0x1 beq _080EB7F0 cmp r0, 0x1 bgt _080EB7DC cmp r0, 0 beq _080EB7E6 b _080EB82E .align 2, 0 _080EB7D8: .4byte 0x0202e8cc _080EB7DC: cmp r0, 0x2 beq _080EB810 cmp r0, 0x3 beq _080EB818 b _080EB82E _080EB7E6: ldr r5, _080EB7EC movs r2, 0x2 b _080EB81C .align 2, 0 _080EB7EC: .4byte 0x02028250 _080EB7F0: ldr r5, _080EB80C adds r0, r5, 0 movs r1, 0x3 movs r2, 0x2 movs r3, 0x14 bl sub_80EB680 lsls r0, 24 cmp r0, 0 beq _080EB81A movs r2, 0x2 movs r3, 0x3 b _080EB81E .align 2, 0 _080EB80C: .4byte 0x0202825c _080EB810: ldr r5, _080EB814 b _080EB81A .align 2, 0 _080EB814: .4byte 0x02028268 _080EB818: ldr r5, _080EB834 _080EB81A: movs r2, 0x3 _080EB81C: movs r3, 0x2 _080EB81E: ldr r4, _080EB838 adds r0, r4, 0 adds r1, r5, 0 bl ConvertEasyChatWordsToString adds r0, r4, 0 bl box_related_two__3 _080EB82E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EB834: .4byte 0x02028274 _080EB838: .4byte 0x020234cc thumb_func_end sub_80EB7C4 thumb_func_start sub_80EB83C sub_80EB83C: @ 80EB83C push {lr} bl Random movs r1, 0x1 ands r1, r0 movs r0, 0xC cmp r1, 0 beq _080EB84E movs r0, 0xD _080EB84E: bl sub_80EB784 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r0, _080EB864 bl sub_80EB3FC pop {r0} bx r0 .align 2, 0 _080EB864: .4byte 0x020232cc thumb_func_end sub_80EB83C thumb_func_start sub_80EB868 sub_80EB868: @ 80EB868 lsls r0, 24 lsrs r2, r0, 27 movs r1, 0xE0 lsls r1, 19 ands r1, r0 lsrs r1, 24 ldr r0, _080EB888 ldr r3, _080EB88C adds r0, r3 adds r2, r0 ldrb r0, [r2] asrs r0, r1 movs r1, 0x1 ands r0, r1 bx lr .align 2, 0 _080EB888: .4byte 0x02025734 _080EB88C: .4byte 0x00002d8c thumb_func_end sub_80EB868 thumb_func_start sub_80EB890 sub_80EB890: @ 80EB890 push {lr} lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x20 bhi _080EB8B2 lsrs r2, r0, 27 movs r1, 0x7 ands r1, r3 ldr r0, _080EB8B8 ldr r3, _080EB8BC adds r0, r3 adds r2, r0 movs r0, 0x1 lsls r0, r1 ldrb r1, [r2] orrs r0, r1 strb r0, [r2] _080EB8B2: pop {r0} bx r0 .align 2, 0 _080EB8B8: .4byte 0x02025734 _080EB8BC: .4byte 0x00002d8c thumb_func_end sub_80EB890 thumb_func_start sub_80EB8C0 sub_80EB8C0: @ 80EB8C0 push {r4,r5,lr} movs r4, 0 movs r5, 0 _080EB8C6: adds r0, r4, 0 bl sub_80EB868 lsls r0, 24 cmp r0, 0 beq _080EB8D8 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _080EB8D8: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x20 bls _080EB8C6 adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80EB8C0 thumb_func_start sub_80EB8EC sub_80EB8EC: @ 80EB8EC push {r4-r6,lr} bl sub_80EB8C0 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x21 bne _080EB918 b _080EB952 _080EB8FC: adds r0, r5, 0 bl sub_80EB890 ldr r0, _080EB914 ands r4, r0 movs r1, 0xA0 lsls r1, 6 adds r0, r1, 0 orrs r4, r0 adds r0, r4, 0 b _080EB954 .align 2, 0 _080EB914: .4byte 0x000001ff _080EB918: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x21 subs r1, r4 bl __modsi3 lsls r0, 16 lsrs r6, r0, 16 movs r4, 0 _080EB92E: lsls r0, r4, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl sub_80EB868 lsls r0, 24 cmp r0, 0 bne _080EB948 cmp r6, 0 beq _080EB8FC subs r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080EB948: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x20 bls _080EB92E _080EB952: ldr r0, _080EB95C _080EB954: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080EB95C: .4byte 0x0000ffff thumb_func_end sub_80EB8EC thumb_func_start sub_80EB960 sub_80EB960: @ 80EB960 push {r4,r5,lr} bl sub_80EB8C0 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _080EB984 b _080EB9BA _080EB970: ldr r0, _080EB980 ands r4, r0 movs r1, 0xA0 lsls r1, 6 adds r0, r1, 0 orrs r4, r0 adds r0, r4, 0 b _080EB9BC .align 2, 0 _080EB980: .4byte 0x000001ff _080EB984: bl Random lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 bl __umodsi3 lsls r0, 16 lsrs r5, r0, 16 movs r4, 0 _080EB998: lsls r0, r4, 24 lsrs r0, 24 bl sub_80EB868 lsls r0, 24 cmp r0, 0 beq _080EB9B0 cmp r5, 0 beq _080EB970 subs r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _080EB9B0: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x20 bls _080EB998 _080EB9BA: ldr r0, _080EB9C4 _080EB9BC: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080EB9C4: .4byte 0x0000ffff thumb_func_end sub_80EB960 thumb_func_start sub_80EB9C8 sub_80EB9C8: @ 80EB9C8 push {lr} bl sub_806912C lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80EB9C8 thumb_func_start sub_80EB9D8 sub_80EB9D8: @ 80EB9D8 push {r4-r7,lr} movs r0, 0 bl sub_80EAE88 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 bne _080EB9F8 b _080EBA46 _080EB9EA: ldrh r1, [r5] ldr r0, _080EB9F4 ands r0, r1 b _080EBA48 .align 2, 0 _080EB9F4: .4byte 0x000001ff _080EB9F8: bl Random lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 bl __umodsi3 lsls r0, 16 lsrs r4, r0, 16 ldr r0, _080EBA50 ldr r5, [r0] movs r6, 0 ldr r0, _080EBA54 ldrb r0, [r0] cmp r6, r0 bcs _080EBA46 adds r7, r0, 0 _080EBA1A: ldrh r0, [r5] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0 bl sub_8090D90 lsls r0, 24 cmp r0, 0 beq _080EBA3A cmp r4, 0 beq _080EB9EA subs r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _080EBA3A: adds r5, 0x2 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, r7 bcc _080EBA1A _080EBA46: ldr r0, _080EBA58 _080EBA48: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080EBA50: .4byte gEasyChatGroupWords _080EBA54: .4byte gEasyChatGroupSizes _080EBA58: .4byte 0x0000ffff thumb_func_end sub_80EB9D8 thumb_func_start sub_80EBA5C sub_80EBA5C: @ 80EBA5C push {lr} ldr r0, _080EBA74 ldr r2, _080EBA78 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0xE bhi _080EBABC lsls r0, 2 ldr r1, _080EBA7C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EBA74: .4byte 0x03001770 _080EBA78: .4byte 0x0000043c _080EBA7C: .4byte _080EBA80 .align 2, 0 _080EBA80: .4byte _080EBAC0 .4byte _080EBB08 .4byte _080EBB10 .4byte _080EBB16 .4byte _080EBB1C .4byte _080EBB22 .4byte _080EBB28 .4byte _080EBB2E .4byte _080EBB3E .4byte _080EBB4C .4byte _080EBB5C .4byte _080EBB6C .4byte _080EBB7C .4byte _080EBB90 .4byte _080EBBA0 _080EBABC: movs r0, 0 strb r0, [r1] _080EBAC0: bl is_c1_link_related_active ldr r3, _080EBAF0 ldr r2, _080EBAF4 adds r1, r3, r2 strb r0, [r1] lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080EBBC0 ldr r1, _080EBAF8 adds r0, r3, r1 strb r2, [r0] ldr r1, _080EBAFC ldr r2, _080EBB00 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, _080EBB04 bl SetMainCallback2 b _080EBBC0 .align 2, 0 _080EBAF0: .4byte 0x02000000 _080EBAF4: .4byte 0x00006dac _080EBAF8: .4byte 0x00006dab _080EBAFC: .4byte 0x03001770 _080EBB00: .4byte 0x0000043c _080EBB04: .4byte sub_80EBBE8 _080EBB08: movs r0, 0 bl SetVBlankCallback b _080EBBC0 _080EBB10: bl ResetPaletteFade b _080EBBC0 _080EBB16: bl ResetSpriteData b _080EBBC0 _080EBB1C: bl FreeAllSpritePalettes b _080EBBC0 _080EBB22: bl ResetTasks b _080EBBC0 _080EBB28: bl remove_some_task b _080EBBC0 _080EBB2E: bl sub_80F1A90 ldr r1, _080EBB44 ldr r0, _080EBB48 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080EBB3E: bl sub_80F1AC4 b _080EBB80 .align 2, 0 _080EBB44: .4byte 0x03001770 _080EBB48: .4byte 0x0000043c _080EBB4C: bl sub_80F2688 ldr r1, _080EBB64 ldr r2, _080EBB68 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080EBB5C: bl sub_80F26BC b _080EBB80 .align 2, 0 _080EBB64: .4byte 0x03001770 _080EBB68: .4byte 0x0000043c _080EBB6C: bl sub_80F36F0 ldr r1, _080EBB88 ldr r0, _080EBB8C adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080EBB7C: bl sub_80F3724 _080EBB80: lsls r0, 24 cmp r0, 0 bne _080EBBCC b _080EBBC0 .align 2, 0 _080EBB88: .4byte 0x03001770 _080EBB8C: .4byte 0x0000043c _080EBB90: bl sub_80EBC10 ldr r0, _080EBB9C bl sub_80EBDBC b _080EBBC0 .align 2, 0 _080EBB9C: .4byte sub_80EBDD8 _080EBBA0: ldr r0, _080EBBD0 ldr r1, _080EBBD4 adds r0, r1 movs r1, 0x1 strb r1, [r0] movs r0, 0x6E bl audio_play ldr r0, _080EBBD8 bl SetMainCallback2 ldr r0, _080EBBDC bl SetVBlankCallback bl sub_80F1A74 _080EBBC0: ldr r1, _080EBBE0 ldr r2, _080EBBE4 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080EBBCC: pop {r0} bx r0 .align 2, 0 _080EBBD0: .4byte 0x02000000 _080EBBD4: .4byte 0x00006dab _080EBBD8: .4byte sub_80EBD90 _080EBBDC: .4byte sub_80EBD18 _080EBBE0: .4byte 0x03001770 _080EBBE4: .4byte 0x0000043c thumb_func_end sub_80EBA5C thumb_func_start sub_80EBBE8 sub_80EBBE8: @ 80EBBE8 push {r4,lr} ldr r0, _080EBC08 ldr r2, _080EBC0C adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 bne _080EBC02 adds r4, r1, 0 _080EBBF8: bl sub_80EBA5C ldrb r0, [r4] cmp r0, 0 beq _080EBBF8 _080EBC02: pop {r4} pop {r0} bx r0 .align 2, 0 _080EBC08: .4byte 0x02000000 _080EBC0C: .4byte 0x00006dab thumb_func_end sub_80EBBE8 thumb_func_start sub_80EBC10 sub_80EBC10: @ 80EBC10 push {r4-r7,lr} ldr r1, _080EBC7C movs r0, 0x14 strh r0, [r1] bl calc_player_party_count ldr r2, _080EBC80 ldr r1, _080EBC84 adds r3, r2, r1 movs r1, 0 strb r0, [r3] ldr r3, _080EBC88 adds r0, r2, r3 strb r1, [r0] ldr r3, _080EBC8C adds r0, r2, r3 strb r1, [r0] ldr r3, _080EBC90 adds r0, r2, r3 str r1, [r0] ldr r3, _080EBC94 adds r0, r2, r3 str r1, [r0] movs r3, 0 ldr r0, _080EBC98 adds r7, r2, r0 mov r12, r2 movs r6, 0 ldr r5, _080EBC9C movs r4, 0x9B _080EBC4C: adds r0, r3, r7 strb r6, [r0] lsls r1, r3, 2 adds r1, r2 adds r0, r1, r5 strh r4, [r0] ldr r0, _080EBCA0 adds r1, r0 movs r0, 0x5B strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x4 bls _080EBC4C ldr r1, _080EBCA4 add r1, r12 movs r0, 0 strb r0, [r1] bl sub_80EBCA8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EBC7C: .4byte 0x03001760 _080EBC80: .4byte 0x02000000 _080EBC84: .4byte 0x00008828 _080EBC88: .4byte 0x00006ddc _080EBC8C: .4byte 0x00009344 _080EBC90: .4byte 0x00008768 _080EBC94: .4byte 0x0000ced0 _080EBC98: .4byte 0x00008fff _080EBC9C: .4byte 0x00009040 _080EBCA0: .4byte 0x00009042 _080EBCA4: .4byte 0x00006e95 thumb_func_end sub_80EBC10 thumb_func_start sub_80EBCA8 sub_80EBCA8: @ 80EBCA8 push {r4,lr} ldr r4, _080EBCDC ldr r0, _080EBCE0 adds r1, r4, r0 movs r0, 0x1 strb r0, [r1] ldr r0, _080EBCE4 adds r1, r4, r0 movs r0, 0x2 strb r0, [r1] ldr r0, _080EBCE8 adds r1, r4, r0 movs r0, 0x3 strb r0, [r1] ldr r0, _080EBCEC bl FlagGet lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080EBCF4 ldr r0, _080EBCF0 adds r1, r4, r0 movs r0, 0x4 strb r0, [r1] b _080EBCFA .align 2, 0 _080EBCDC: .4byte 0x02000000 _080EBCE0: .4byte 0x00006db2 _080EBCE4: .4byte 0x00006db3 _080EBCE8: .4byte 0x00006db4 _080EBCEC: .4byte 0x0000083b _080EBCF0: .4byte 0x00006db5 _080EBCF4: ldr r1, _080EBD0C adds r0, r4, r1 strb r2, [r0] _080EBCFA: ldr r0, _080EBD10 ldr r1, _080EBD14 adds r0, r1 movs r1, 0x5 strb r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080EBD0C: .4byte 0x00006db5 _080EBD10: .4byte 0x02000000 _080EBD14: .4byte 0x00006db6 thumb_func_end sub_80EBCA8 thumb_func_start sub_80EBD18 sub_80EBD18: @ 80EBD18 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_80F1FF0 pop {r0} bx r0 thumb_func_end sub_80EBD18 thumb_func_start sub_80EBD30 sub_80EBD30: @ 80EBD30 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_80FB260 bl sub_80EFE7C pop {r0} bx r0 thumb_func_end sub_80EBD30 thumb_func_start sub_80EBD4C sub_80EBD4C: @ 80EBD4C push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_80F5BF0 bl sub_8089668 pop {r0} bx r0 thumb_func_end sub_80EBD4C thumb_func_start sub_80EBD68 sub_80EBD68: @ 80EBD68 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_80F6F64 pop {r0} bx r0 thumb_func_end sub_80EBD68 thumb_func_start sub_80EBD80 sub_80EBD80: @ 80EBD80 push {lr} bl LoadOam bl ProcessSpriteCopyRequests pop {r0} bx r0 thumb_func_end sub_80EBD80 thumb_func_start sub_80EBD90 sub_80EBD90: @ 80EBD90 push {lr} ldr r0, _080EBDB8 movs r1, 0xC0 lsls r1, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 bl AnimateSprites bl BuildOamBuffer bl RunTasks bl UpdatePaletteFade bl sub_80F19FC pop {r0} bx r0 .align 2, 0 _080EBDB8: .4byte 0x02000000 thumb_func_end sub_80EBD90 thumb_func_start sub_80EBDBC sub_80EBDBC: @ 80EBDBC ldr r2, _080EBDD4 movs r3, 0xC0 lsls r3, 2 adds r1, r2, r3 str r0, [r1] movs r0, 0xC1 lsls r0, 2 adds r1, r2, r0 movs r0, 0 strh r0, [r1] bx lr .align 2, 0 _080EBDD4: .4byte 0x02000000 thumb_func_end sub_80EBDBC thumb_func_start sub_80EBDD8 sub_80EBDD8: @ 80EBDD8 push {lr} sub sp, 0x4 ldr r1, _080EBDF8 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r2, r1, 0 cmp r0, 0x11 bls _080EBDEE b _080EC000 _080EBDEE: lsls r0, 2 ldr r1, _080EBDFC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EBDF8: .4byte 0x02000000 _080EBDFC: .4byte _080EBE00 .align 2, 0 _080EBE00: .4byte _080EBE48 .4byte _080EBE80 .4byte _080EBE92 .4byte _080EBEAC .4byte _080EBEC0 .4byte _080EBED2 .4byte _080EBEF0 .4byte _080EBF04 .4byte _080EBF18 .4byte _080EBF2C .4byte _080EBF48 .4byte _080EBF54 .4byte _080EBF74 .4byte _080EBF88 .4byte _080EBFA0 .4byte _080EBFB4 .4byte _080EBFD0 .4byte _080EBFE8 _080EBE48: movs r0, 0 bl SetVBlankCallback movs r1, 0x80 lsls r1, 19 movs r0, 0 strh r0, [r1] ldr r1, _080EBE74 ldr r3, _080EBE78 adds r0, r1, r3 ldrb r2, [r0] subs r3, 0x2F adds r0, r1, r3 strb r2, [r0] ldr r0, _080EBE7C adds r2, r1, r0 movs r0, 0x5 strb r0, [r2] movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EBFDC .align 2, 0 _080EBE74: .4byte 0x02000000 _080EBE78: .4byte 0x00006ddc _080EBE7C: .4byte 0x00006dae _080EBE80: bl sub_80F3FF0 ldr r1, _080EBEA8 movs r3, 0xC1 lsls r3, 2 adds r1, r3 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EBE92: bl sub_80F4024 lsls r0, 24 cmp r0, 0 beq _080EBE9E b _080EC000 _080EBE9E: ldr r1, _080EBEA8 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EBFDC .align 2, 0 _080EBEA8: .4byte 0x02000000 _080EBEAC: bl sub_80F2598 ldr r1, _080EBEBC movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EBFDC .align 2, 0 _080EBEBC: .4byte 0x02000000 _080EBEC0: bl sub_80EEE20 ldr r1, _080EBEEC movs r3, 0xC1 lsls r3, 2 adds r1, r3 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EBED2: bl sub_80EEE54 lsls r0, 24 cmp r0, 0 beq _080EBEDE b _080EC000 _080EBEDE: bl sub_80EEE08 ldr r1, _080EBEEC movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EBFDC .align 2, 0 _080EBEEC: .4byte 0x02000000 _080EBEF0: movs r0, 0 bl sub_80EF248 ldr r1, _080EBF14 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EBF04: movs r0, 0 bl sub_80EF284 lsls r0, 24 cmp r0, 0 beq _080EBF12 b _080EC000 _080EBF12: b _080EBFD4 .align 2, 0 _080EBF14: .4byte 0x02000000 _080EBF18: movs r0, 0 bl sub_80F1B8C ldr r1, _080EBF44 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EBF2C: movs r0, 0 bl sub_80F1BC8 lsls r0, 24 cmp r0, 0 bne _080EC000 ldr r1, _080EBF44 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EBFDC .align 2, 0 _080EBF44: .4byte 0x02000000 _080EBF48: ldr r0, _080EBF50 bl SetVBlankCallback b _080EBFD4 .align 2, 0 _080EBF50: .4byte sub_80EBD18 _080EBF54: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _080EBF70 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EBFDC .align 2, 0 _080EBF70: .4byte 0x02000000 _080EBF74: movs r0, 0 bl sub_80EED2C ldr r1, _080EBF84 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EBFDC .align 2, 0 _080EBF84: .4byte 0x02000000 _080EBF88: ldr r0, _080EBF9C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EC000 movs r3, 0xC1 lsls r3, 2 adds r1, r2, r3 b _080EBFDC .align 2, 0 _080EBF9C: .4byte 0x0202f388 _080EBFA0: movs r0, 0 bl sub_80F2C80 ldr r1, _080EBFCC movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EBFB4: movs r0, 0 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 bne _080EC000 ldr r1, _080EBFCC movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EBFDC .align 2, 0 _080EBFCC: .4byte 0x02000000 _080EBFD0: bl sub_80F1DF0 _080EBFD4: ldr r1, _080EBFE4 movs r3, 0xC1 lsls r3, 2 adds r1, r3 _080EBFDC: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EC000 .align 2, 0 _080EBFE4: .4byte 0x02000000 _080EBFE8: bl sub_80F1E50 lsls r0, 24 cmp r0, 0 bne _080EC000 movs r0, 0 movs r1, 0 bl sub_80EF428 ldr r0, _080EC008 bl sub_80EBDBC _080EC000: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080EC008: .4byte sub_80EC268 thumb_func_end sub_80EBDD8 thumb_func_start sub_80EC00C sub_80EC00C: @ 80EC00C push {r4,lr} sub sp, 0x4 ldr r1, _080EC02C movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0xD bls _080EC022 b _080EC1FA _080EC022: lsls r0, 2 ldr r1, _080EC030 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EC02C: .4byte 0x02000000 _080EC030: .4byte _080EC034 .align 2, 0 _080EC034: .4byte _080EC06C .4byte _080EC0C0 .4byte _080EC0D4 .4byte _080EC0F0 .4byte _080EC104 .4byte _080EC120 .4byte _080EC12A .4byte _080EC154 .4byte _080EC168 .4byte _080EC180 .4byte _080EC194 .4byte _080EC1A8 .4byte _080EC1C4 .4byte _080EC1DC _080EC06C: bl sub_80EEF78 lsls r0, 24 cmp r0, 0 beq _080EC078 b _080EC1FA _080EC078: ldr r0, _080EC0AC bl SetVBlankCallback bl sub_80EED1C ldr r4, _080EC0B0 ldr r1, _080EC0B4 adds r0, r4, r1 ldrb r1, [r0] ldr r2, _080EC0B8 adds r0, r4, r2 strb r1, [r0] ldr r0, _080EC0BC adds r1, r4, r0 movs r0, 0x5 strb r0, [r1] bl sub_80EEE08 movs r1, 0xC1 lsls r1, 2 adds r4, r1 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080EC1FA .align 2, 0 _080EC0AC: .4byte sub_80EBD80 _080EC0B0: .4byte 0x02000000 _080EC0B4: .4byte 0x00006ddc _080EC0B8: .4byte 0x00006dad _080EC0BC: .4byte 0x00006dae _080EC0C0: movs r0, 0 bl sub_80EF248 ldr r1, _080EC0EC movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EC0D4: movs r0, 0 bl sub_80EF284 lsls r0, 24 cmp r0, 0 beq _080EC0E2 b _080EC1FA _080EC0E2: ldr r1, _080EC0EC movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EC1D0 .align 2, 0 _080EC0EC: .4byte 0x02000000 _080EC0F0: movs r0, 0 bl sub_80F1B8C ldr r1, _080EC11C movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EC104: movs r0, 0 bl sub_80F1BC8 lsls r0, 24 cmp r0, 0 beq _080EC112 b _080EC1FA _080EC112: ldr r1, _080EC11C movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EC1D0 .align 2, 0 _080EC11C: .4byte 0x02000000 _080EC120: bl sub_8055870 cmp r0, 0 bne _080EC1FA b _080EC1C8 _080EC12A: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080EC150 bl SetVBlankCallback movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080EC1D0 .align 2, 0 _080EC150: .4byte sub_80EBD18 _080EC154: movs r0, 0 bl sub_80EED2C ldr r1, _080EC164 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EC1D0 .align 2, 0 _080EC164: .4byte 0x02000000 _080EC168: ldr r0, _080EC17C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EC1FA movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080EC1D0 .align 2, 0 _080EC17C: .4byte 0x0202f388 _080EC180: bl sub_80F2598 ldr r1, _080EC190 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EC1D0 .align 2, 0 _080EC190: .4byte 0x02000000 _080EC194: movs r0, 0 bl sub_80F2C80 ldr r1, _080EC1C0 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EC1A8: movs r0, 0 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 bne _080EC1FA ldr r1, _080EC1C0 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EC1D0 .align 2, 0 _080EC1C0: .4byte 0x02000000 _080EC1C4: bl sub_80F1DF0 _080EC1C8: ldr r1, _080EC1D8 movs r2, 0xC1 lsls r2, 2 adds r1, r2 _080EC1D0: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EC1FA .align 2, 0 _080EC1D8: .4byte 0x02000000 _080EC1DC: bl sub_80F1E50 lsls r0, 24 cmp r0, 0 bne _080EC1FA ldr r0, _080EC204 ldr r1, _080EC208 adds r0, r1 ldrb r1, [r0] movs r0, 0 bl sub_80EF428 ldr r0, _080EC20C bl sub_80EBDBC _080EC1FA: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080EC204: .4byte 0x02000000 _080EC208: .4byte 0x00006dad _080EC20C: .4byte sub_80EC268 thumb_func_end sub_80EC00C thumb_func_start sub_80EC210 sub_80EC210: @ 80EC210 push {r4,r5,lr} ldr r5, _080EC228 movs r0, 0xC1 lsls r0, 2 adds r4, r5, r0 ldrh r0, [r4] cmp r0, 0 beq _080EC22C cmp r0, 0x1 beq _080EC24C b _080EC25C .align 2, 0 _080EC228: .4byte 0x02000000 _080EC22C: movs r0, 0x1 bl sub_80F2D04 ldr r1, _080EC248 adds r0, r5, r1 ldrb r1, [r0] movs r0, 0 movs r2, 0 bl sub_80EE9C0 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080EC25C .align 2, 0 _080EC248: .4byte 0x00006ddc _080EC24C: bl sub_80EEA0C lsls r0, 24 cmp r0, 0 bne _080EC25C ldr r0, _080EC264 bl sub_80EBDBC _080EC25C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EC264: .4byte sub_80EC268 thumb_func_end sub_80EC210 thumb_func_start sub_80EC268 sub_80EC268: @ 80EC268 push {r4-r6,lr} ldr r4, _080EC290 movs r0, 0xC1 lsls r0, 2 adds r6, r4, r0 ldrh r0, [r6] cmp r0, 0x3 bne _080EC27A b _080EC3BE _080EC27A: cmp r0, 0x3 bgt _080EC294 cmp r0, 0x1 bne _080EC284 b _080EC3A2 _080EC284: cmp r0, 0x1 ble _080EC28A b _080EC3B4 _080EC28A: cmp r0, 0 beq _080EC2AE b _080EC492 .align 2, 0 _080EC290: .4byte 0x02000000 _080EC294: cmp r0, 0x6 bne _080EC29A b _080EC414 _080EC29A: cmp r0, 0x6 bgt _080EC2A6 cmp r0, 0x4 bne _080EC2A4 b _080EC3DC _080EC2A4: b _080EC492 _080EC2A6: cmp r0, 0xFF bne _080EC2AC b _080EC44C _080EC2AC: b _080EC492 _080EC2AE: bl sub_80EEC10 lsls r0, 24 cmp r0, 0 beq _080EC2D4 movs r0, 0x5 bl audio_play ldr r1, _080EC2D0 adds r0, r4, r1 ldrb r1, [r0] movs r0, 0 bl sub_80EF428 bl sub_80EED9C b _080EC492 .align 2, 0 _080EC2D0: .4byte 0x00006dad _080EC2D4: ldr r0, _080EC310 ldrh r1, [r0, 0x2E] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _080EC394 ldr r2, _080EC314 adds r0, r4, r2 ldrb r1, [r0] adds r2, 0x2F adds r0, r4, r2 strb r1, [r0] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 subs r2, 0x2A adds r1, r4, r2 adds r0, r1 ldrb r0, [r0] subs r0, 0x1 cmp r0, 0x4 bls _080EC304 b _080EC492 _080EC304: lsls r0, 2 ldr r1, _080EC318 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EC310: .4byte 0x03001770 _080EC314: .4byte 0x00006dad _080EC318: .4byte _080EC31C .align 2, 0 _080EC31C: .4byte _080EC330 .4byte _080EC344 .4byte _080EC380 .4byte _080EC36C .4byte _080EC358 _080EC330: movs r0, 0x5 bl audio_play ldr r0, _080EC340 bl sub_80EBDBC b _080EC492 .align 2, 0 _080EC340: .4byte sub_80EC4A0 _080EC344: movs r0, 0x5 bl audio_play ldr r0, _080EC354 bl sub_80EBDBC b _080EC492 .align 2, 0 _080EC354: .4byte sub_80EC81C _080EC358: ldr r0, _080EC368 movs r1, 0xC1 lsls r1, 2 adds r0, r1 movs r1, 0x1 strh r1, [r0] b _080EC492 .align 2, 0 _080EC368: .4byte 0x02000000 _080EC36C: ldr r0, _080EC37C movs r2, 0xC1 lsls r2, 2 adds r0, r2 movs r1, 0x2 strh r1, [r0] b _080EC492 .align 2, 0 _080EC37C: .4byte 0x02000000 _080EC380: ldr r0, _080EC390 movs r1, 0xC1 lsls r1, 2 adds r0, r1 movs r1, 0x6 strh r1, [r0] b _080EC492 .align 2, 0 _080EC390: .4byte 0x02000000 _080EC394: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080EC39E b _080EC492 _080EC39E: strh r2, [r6] b _080EC492 _080EC3A2: bl sub_80F208C ldr r0, _080EC3B0 bl sub_80EBDBC b _080EC492 .align 2, 0 _080EC3B0: .4byte sub_80EE96C _080EC3B4: bl sub_80F6208 ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] _080EC3BE: bl sub_80F6250 lsls r0, 24 cmp r0, 0 bne _080EC492 ldr r1, _080EC3D8 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EC492 .align 2, 0 _080EC3D8: .4byte 0x02000000 _080EC3DC: bl sub_8055870 cmp r0, 0 bne _080EC492 ldr r1, _080EC400 adds r0, r4, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _080EC408 movs r0, 0x5 bl audio_play ldr r0, _080EC404 bl sub_80EBDBC b _080EC492 .align 2, 0 _080EC400: .4byte 0x00008fe8 _080EC404: .4byte sub_80EDB88 _080EC408: movs r0, 0x20 bl audio_play movs r0, 0 movs r1, 0x5 b _080EC442 _080EC414: bl sub_80F6C20 ldr r2, _080EC430 adds r0, r4, r2 ldrh r0, [r0] cmp r0, 0 beq _080EC438 movs r0, 0x5 bl audio_play ldr r0, _080EC434 bl sub_80EBDBC b _080EC492 .align 2, 0 _080EC430: .4byte 0x0000d158 _080EC434: .4byte sub_80EE3D8 _080EC438: movs r0, 0x20 bl audio_play movs r0, 0 movs r1, 0x6 _080EC442: bl sub_80EF428 movs r0, 0xFF strh r0, [r6] b _080EC492 _080EC44C: bl sub_80EEC10 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _080EC478 movs r0, 0x5 bl audio_play ldr r1, _080EC474 adds r0, r4, r1 ldrb r1, [r0] movs r0, 0 bl sub_80EF428 movs r0, 0 strh r0, [r6] bl sub_80EED9C b _080EC492 .align 2, 0 _080EC474: .4byte 0x00006dad _080EC478: ldr r0, _080EC498 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080EC492 ldr r2, _080EC49C adds r0, r4, r2 ldrb r1, [r0] movs r0, 0 bl sub_80EF428 strh r5, [r6] _080EC492: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080EC498: .4byte 0x03001770 _080EC49C: .4byte 0x00006dad thumb_func_end sub_80EC268 thumb_func_start sub_80EC4A0 sub_80EC4A0: @ 80EC4A0 push {r4,lr} sub sp, 0x4 ldr r1, _080EC4C0 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0xE bls _080EC4B6 b _080EC66A _080EC4B6: lsls r0, 2 ldr r1, _080EC4C4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EC4C0: .4byte 0x02000000 _080EC4C4: .4byte _080EC4C8 .align 2, 0 _080EC4C8: .4byte _080EC504 .4byte _080EC510 .4byte _080EC544 .4byte _080EC578 .4byte _080EC594 .4byte _080EC5A8 .4byte _080EC5AE .4byte _080EC5C0 .4byte _080EC5D0 .4byte _080EC5E4 .4byte _080EC5F8 .4byte _080EC614 .4byte _080EC61E .4byte _080EC63E .4byte _080EC658 _080EC504: bl sub_80F1E84 movs r0, 0 bl sub_80F2D04 b _080EC644 _080EC510: bl sub_80F1F10 lsls r0, 24 cmp r0, 0 beq _080EC51C b _080EC66A _080EC51C: ldr r0, _080EC53C ldrb r1, [r0, 0x15] movs r0, 0x8 ands r0, r1 movs r1, 0x8 cmp r0, 0 beq _080EC52C movs r1, 0x7 _080EC52C: adds r0, r1, 0 bl sub_80EEFBC ldr r1, _080EC540 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EC64C .align 2, 0 _080EC53C: .4byte gSaveBlock2 _080EC540: .4byte 0x02000000 _080EC544: bl sub_80EEF34 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080EC552 b _080EC66A _080EC552: ldr r4, _080EC574 movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 str r2, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080EC64C .align 2, 0 _080EC574: .4byte 0x02000000 _080EC578: ldr r0, _080EC590 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EC66A movs r0, 0 bl SetVBlankCallback bl sub_80EED0C b _080EC644 .align 2, 0 _080EC590: .4byte 0x0202f388 _080EC594: bl sub_80F2620 ldr r1, _080EC5A4 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EC64C .align 2, 0 _080EC5A4: .4byte 0x02000000 _080EC5A8: bl sub_80EF814 b _080EC644 _080EC5AE: bl sub_80EF840 ldr r1, _080EC5CC movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EC5C0: bl sub_80EF874 lsls r0, 24 cmp r0, 0 bne _080EC66A b _080EC644 .align 2, 0 _080EC5CC: .4byte 0x02000000 _080EC5D0: movs r0, 0x4 bl sub_80F2C80 ldr r1, _080EC5F4 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EC5E4: movs r0, 0x4 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 bne _080EC66A b _080EC644 .align 2, 0 _080EC5F4: .4byte 0x02000000 _080EC5F8: bl sub_80F2DD8 ldr r0, _080EC60C bl SetVBlankCallback ldr r1, _080EC610 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EC64C .align 2, 0 _080EC60C: .4byte sub_80EBD30 _080EC610: .4byte 0x02000000 _080EC614: bl sub_8055870 cmp r0, 0 bne _080EC66A b _080EC644 _080EC61E: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080EC64C _080EC63E: movs r0, 0x1 bl sub_80EED2C _080EC644: ldr r1, _080EC654 movs r0, 0xC1 lsls r0, 2 adds r1, r0 _080EC64C: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EC66A .align 2, 0 _080EC654: .4byte 0x02000000 _080EC658: ldr r0, _080EC674 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EC66A ldr r0, _080EC678 bl sub_80EBDBC _080EC66A: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080EC674: .4byte 0x0202f388 _080EC678: .4byte sub_80EC67C thumb_func_end sub_80EC4A0 thumb_func_start sub_80EC67C sub_80EC67C: @ 80EC67C push {r4,r5,lr} sub sp, 0x4 ldr r1, _080EC69C movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0x5 bls _080EC692 b _080EC800 _080EC692: lsls r0, 2 ldr r1, _080EC6A0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EC69C: .4byte 0x02000000 _080EC6A0: .4byte _080EC6A4 .align 2, 0 _080EC6A4: .4byte _080EC6BC .4byte _080EC718 .4byte _080EC746 .4byte _080EC77C .4byte _080EC7A0 .4byte _080EC7C4 _080EC6BC: bl sub_80FAB60 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _080EC6E2 cmp r0, 0x3 bgt _080EC6D2 cmp r0, 0x1 beq _080EC6DC b _080EC800 _080EC6D2: cmp r0, 0x4 beq _080EC6E8 cmp r0, 0x5 beq _080EC700 b _080EC800 _080EC6DC: bl sub_80EED9C b _080EC800 _080EC6E2: bl sub_80EF9F8 b _080EC800 _080EC6E8: movs r0, 0x5 bl audio_play ldr r0, _080EC6FC movs r1, 0xC1 lsls r1, 2 adds r0, r1 movs r1, 0x1 strh r1, [r0] b _080EC800 .align 2, 0 _080EC6FC: .4byte 0x02000000 _080EC700: movs r0, 0x5 bl audio_play ldr r0, _080EC714 movs r2, 0xC1 lsls r2, 2 adds r0, r2 movs r1, 0x4 strh r1, [r0] b _080EC800 .align 2, 0 _080EC714: .4byte 0x02000000 _080EC718: ldr r1, _080EC730 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _080EC734 bl sub_80FAEC4 movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080EC7BC .align 2, 0 _080EC730: .4byte 0x00006e90 _080EC734: movs r0, 0x1 bl sub_80EFBDC lsls r0, 24 cmp r0, 0 bne _080EC800 bl sub_80FAEC4 b _080EC7B6 _080EC746: bl sub_80FAFC0 lsls r0, 24 cmp r0, 0 bne _080EC800 ldr r5, _080EC76C ldr r1, _080EC770 adds r0, r5, r1 ldrb r4, [r0] cmp r4, 0 bne _080EC774 bl sub_80EFBB0 movs r2, 0xC1 lsls r2, 2 adds r0, r5, r2 strh r4, [r0] b _080EC800 .align 2, 0 _080EC76C: .4byte 0x02000000 _080EC770: .4byte 0x00006e90 _080EC774: movs r0, 0xC1 lsls r0, 2 adds r1, r5, r0 b _080EC7BC _080EC77C: movs r0, 0 bl sub_80EFBDC lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080EC800 bl sub_80EFBB0 ldr r0, _080EC79C movs r1, 0xC1 lsls r1, 2 adds r0, r1 strh r4, [r0] b _080EC800 .align 2, 0 _080EC79C: .4byte 0x02000000 _080EC7A0: movs r2, 0xC2 lsls r2, 2 adds r0, r4, r2 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r3, 0x10 bl BeginNormalPaletteFade _080EC7B6: movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 _080EC7BC: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EC800 _080EC7C4: ldr r0, _080EC808 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EC800 bl sub_80F2DF4 movs r0, 0x4 bl sub_80F2D04 ldr r3, _080EC80C movs r2, 0 ldr r0, _080EC810 ldr r1, _080EC814 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080EC7EC movs r2, 0x1 _080EC7EC: lsls r2, 3 ldrb r1, [r3, 0x15] movs r0, 0x9 negs r0, r0 ands r0, r1 orrs r0, r2 strb r0, [r3, 0x15] ldr r0, _080EC818 bl sub_80EBDBC _080EC800: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EC808: .4byte 0x0202f388 _080EC80C: .4byte gSaveBlock2 _080EC810: .4byte 0x02000000 _080EC814: .4byte 0x00006e90 _080EC818: .4byte sub_80EC00C thumb_func_end sub_80EC67C thumb_func_start sub_80EC81C sub_80EC81C: @ 80EC81C push {r4,lr} ldr r0, _080EC834 movs r1, 0xC1 lsls r1, 2 adds r4, r0, r1 ldrh r0, [r4] cmp r0, 0 beq _080EC838 cmp r0, 0x1 beq _080EC850 b _080EC860 .align 2, 0 _080EC834: .4byte 0x02000000 _080EC838: movs r0, 0 bl sub_80F2D04 movs r0, 0x1 movs r1, 0 movs r2, 0x1 bl sub_80EE9C0 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080EC860 _080EC850: bl sub_80EEA0C lsls r0, 24 cmp r0, 0 bne _080EC860 ldr r0, _080EC868 bl sub_80EBDBC _080EC860: pop {r4} pop {r0} bx r0 .align 2, 0 _080EC868: .4byte sub_80EC86C thumb_func_end sub_80EC81C thumb_func_start sub_80EC86C sub_80EC86C: @ 80EC86C push {r4-r6,lr} ldr r4, _080EC884 movs r0, 0xC1 lsls r0, 2 adds r5, r4, r0 ldrh r0, [r5] cmp r0, 0 beq _080EC888 cmp r0, 0x1 beq _080EC944 b _080EC954 .align 2, 0 _080EC884: .4byte 0x02000000 _080EC888: bl sub_80EEC90 lsls r0, 24 cmp r0, 0 beq _080EC8B0 movs r0, 0x5 bl audio_play ldr r1, _080EC8AC adds r0, r4, r1 ldrb r1, [r0] movs r0, 0x1 bl sub_80EF428 bl sub_80EED9C b _080EC954 .align 2, 0 _080EC8AC: .4byte 0x00006dad _080EC8B0: ldr r0, _080EC8E4 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080EC918 movs r0, 0x5 bl audio_play ldr r2, _080EC8E8 adds r0, r4, r2 ldrb r1, [r0] adds r2, 0x43 adds r0, r4, r2 strb r1, [r0] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x1 beq _080EC900 cmp r0, 0x1 bgt _080EC8EC cmp r0, 0 beq _080EC8F2 b _080EC954 .align 2, 0 _080EC8E4: .4byte 0x03001770 _080EC8E8: .4byte 0x00006dad _080EC8EC: cmp r0, 0x2 beq _080EC90C b _080EC954 _080EC8F2: ldr r0, _080EC8FC bl sub_80EBDBC b _080EC954 .align 2, 0 _080EC8FC: .4byte sub_80ED620 _080EC900: ldr r0, _080EC908 bl sub_80EBDBC b _080EC954 .align 2, 0 _080EC908: .4byte sub_80EC960 _080EC90C: ldr r0, _080EC914 bl sub_80EBDBC b _080EC954 .align 2, 0 _080EC914: .4byte sub_80EC210 _080EC918: movs r6, 0x2 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080EC954 movs r0, 0x5 bl audio_play ldr r1, _080EC93C adds r0, r4, r1 strb r6, [r0] ldr r2, _080EC940 adds r0, r4, r2 strb r6, [r0] ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] b _080EC954 .align 2, 0 _080EC93C: .4byte 0x00006df0 _080EC940: .4byte 0x00006dad _080EC944: bl sub_80F1E6C lsls r0, 24 cmp r0, 0 bne _080EC954 ldr r0, _080EC95C bl sub_80EBDBC _080EC954: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080EC95C: .4byte sub_80EC210 thumb_func_end sub_80EC86C thumb_func_start sub_80EC960 sub_80EC960: @ 80EC960 push {r4,lr} ldr r0, _080EC978 movs r1, 0xC1 lsls r1, 2 adds r4, r0, r1 ldrh r0, [r4] cmp r0, 0 beq _080EC97C cmp r0, 0x1 beq _080EC98E b _080EC99E .align 2, 0 _080EC978: .4byte 0x02000000 _080EC97C: movs r0, 0x2 movs r1, 0 movs r2, 0x5 bl sub_80EE9C0 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080EC99E _080EC98E: bl sub_80EEA0C lsls r0, 24 cmp r0, 0 bne _080EC99E ldr r0, _080EC9A4 bl sub_80EBDBC _080EC99E: pop {r4} pop {r0} bx r0 .align 2, 0 _080EC9A4: .4byte sub_80ECC08 thumb_func_end sub_80EC960 thumb_func_start sub_80EC9A8 sub_80EC9A8: @ 80EC9A8 push {r4,r5,lr} ldr r5, _080EC9C0 movs r0, 0xC1 lsls r0, 2 adds r4, r5, r0 ldrh r0, [r4] cmp r0, 0 beq _080EC9C4 cmp r0, 0x1 beq _080EC9E4 b _080ECA00 .align 2, 0 _080EC9C0: .4byte 0x02000000 _080EC9C4: movs r0, 0x5 bl sub_80F2D04 ldr r1, _080EC9E0 adds r0, r5, r1 ldrb r1, [r0] movs r0, 0x1 movs r2, 0xC bl sub_80EE9C0 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080ECA00 .align 2, 0 _080EC9E0: .4byte 0x00006df0 _080EC9E4: bl sub_80EEA0C lsls r0, 24 cmp r0, 0 bne _080ECA00 ldr r0, _080ECA08 bl sub_80EBDBC ldr r1, _080ECA0C adds r0, r5, r1 ldrb r1, [r0] movs r0, 0x1 bl sub_80EF428 _080ECA00: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080ECA08: .4byte sub_80EC86C _080ECA0C: .4byte 0x00006dad thumb_func_end sub_80EC9A8 thumb_func_start sub_80ECA10 sub_80ECA10: @ 80ECA10 push {r4,lr} sub sp, 0x4 ldr r1, _080ECA30 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0xD bls _080ECA26 b _080ECBF2 _080ECA26: lsls r0, 2 ldr r1, _080ECA34 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ECA30: .4byte 0x02000000 _080ECA34: .4byte _080ECA38 .align 2, 0 _080ECA38: .4byte _080ECA70 .4byte _080ECAC4 .4byte _080ECAD8 .4byte _080ECAF4 .4byte _080ECB08 .4byte _080ECB24 .4byte _080ECB2E .4byte _080ECB58 .4byte _080ECB6C .4byte _080ECB72 .4byte _080ECB8C .4byte _080ECBA0 .4byte _080ECBBC .4byte _080ECBD4 _080ECA70: bl sub_80EEF78 lsls r0, 24 cmp r0, 0 beq _080ECA7C b _080ECBF2 _080ECA7C: ldr r0, _080ECAB0 bl SetVBlankCallback bl sub_80EED1C ldr r4, _080ECAB4 ldr r1, _080ECAB8 adds r0, r4, r1 ldrb r1, [r0] ldr r2, _080ECABC adds r0, r4, r2 strb r1, [r0] ldr r0, _080ECAC0 adds r1, r4, r0 movs r0, 0x3 strb r0, [r1] bl sub_80EEE08 movs r1, 0xC1 lsls r1, 2 adds r4, r1 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080ECBF2 .align 2, 0 _080ECAB0: .4byte sub_80EBD80 _080ECAB4: .4byte 0x02000000 _080ECAB8: .4byte 0x00006df0 _080ECABC: .4byte 0x00006dad _080ECAC0: .4byte 0x00006dae _080ECAC4: movs r0, 0x1 bl sub_80EF248 ldr r1, _080ECAF0 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ECAD8: movs r0, 0x1 bl sub_80EF284 lsls r0, 24 cmp r0, 0 beq _080ECAE6 b _080ECBF2 _080ECAE6: ldr r1, _080ECAF0 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ECBC8 .align 2, 0 _080ECAF0: .4byte 0x02000000 _080ECAF4: movs r0, 0x1 bl sub_80F1B8C ldr r1, _080ECB20 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ECB08: movs r0, 0x1 bl sub_80F1BC8 lsls r0, 24 cmp r0, 0 bne _080ECBF2 ldr r1, _080ECB20 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ECBC8 .align 2, 0 _080ECB20: .4byte 0x02000000 _080ECB24: bl sub_8055870 cmp r0, 0 bne _080ECBF2 b _080ECBC0 _080ECB2E: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080ECB54 bl SetVBlankCallback movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ECBC8 .align 2, 0 _080ECB54: .4byte sub_80EBD18 _080ECB58: movs r0, 0 bl sub_80EED2C ldr r1, _080ECB68 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ECBC8 .align 2, 0 _080ECB68: .4byte 0x02000000 _080ECB6C: bl sub_80F2598 b _080ECBC0 _080ECB72: ldr r0, _080ECB88 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080ECBF2 movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 b _080ECBC8 .align 2, 0 _080ECB88: .4byte 0x0202f388 _080ECB8C: movs r0, 0x1 bl sub_80F2C80 ldr r1, _080ECBB8 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ECBA0: movs r0, 0x1 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 bne _080ECBF2 ldr r1, _080ECBB8 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ECBC8 .align 2, 0 _080ECBB8: .4byte 0x02000000 _080ECBBC: bl sub_80F1DF0 _080ECBC0: ldr r1, _080ECBD0 movs r2, 0xC1 lsls r2, 2 adds r1, r2 _080ECBC8: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080ECBF2 .align 2, 0 _080ECBD0: .4byte 0x02000000 _080ECBD4: bl sub_80F1E50 lsls r0, 24 cmp r0, 0 bne _080ECBF2 ldr r0, _080ECBFC ldr r1, _080ECC00 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 bl sub_80EF428 ldr r0, _080ECC04 bl sub_80EBDBC _080ECBF2: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080ECBFC: .4byte 0x02000000 _080ECC00: .4byte 0x00006dad _080ECC04: .4byte sub_80EC86C thumb_func_end sub_80ECA10 thumb_func_start sub_80ECC08 sub_80ECC08: @ 80ECC08 push {r4,r5,lr} ldr r4, _080ECC20 movs r0, 0xC1 lsls r0, 2 adds r5, r4, r0 ldrh r0, [r5] cmp r0, 0 beq _080ECC24 cmp r0, 0x1 bne _080ECC1E b _080ECD64 _080ECC1E: b _080ECD74 .align 2, 0 _080ECC20: .4byte 0x02000000 _080ECC24: bl sub_80EEC90 lsls r0, 24 cmp r0, 0 beq _080ECC4C movs r0, 0x5 bl audio_play ldr r1, _080ECC48 adds r0, r4, r1 ldrb r1, [r0] movs r0, 0x2 bl sub_80EF428 bl sub_80EED9C b _080ECD74 .align 2, 0 _080ECC48: .4byte 0x00006dad _080ECC4C: ldr r0, _080ECC78 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080ECC5A b _080ECD40 _080ECC5A: movs r0, 0x5 bl audio_play ldr r2, _080ECC7C adds r0, r4, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x5 bhi _080ECD0C lsls r0, 2 ldr r1, _080ECC80 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ECC78: .4byte 0x03001770 _080ECC7C: .4byte 0x00006dad _080ECC80: .4byte _080ECC84 .align 2, 0 _080ECC84: .4byte _080ECC9C .4byte _080ECCB0 .4byte _080ECCC4 .4byte _080ECCD8 .4byte _080ECCEC .4byte _080ECD00 _080ECC9C: ldr r0, _080ECCA8 ldr r3, _080ECCAC adds r0, r3 movs r1, 0x16 strb r1, [r0] b _080ECD0C .align 2, 0 _080ECCA8: .4byte 0x02000000 _080ECCAC: .4byte 0x000087d8 _080ECCB0: ldr r0, _080ECCBC ldr r1, _080ECCC0 adds r0, r1 movs r1, 0x17 strb r1, [r0] b _080ECD0C .align 2, 0 _080ECCBC: .4byte 0x02000000 _080ECCC0: .4byte 0x000087d8 _080ECCC4: ldr r0, _080ECCD0 ldr r2, _080ECCD4 adds r0, r2 movs r1, 0x18 strb r1, [r0] b _080ECD0C .align 2, 0 _080ECCD0: .4byte 0x02000000 _080ECCD4: .4byte 0x000087d8 _080ECCD8: ldr r0, _080ECCE4 ldr r3, _080ECCE8 adds r0, r3 movs r1, 0x21 strb r1, [r0] b _080ECD0C .align 2, 0 _080ECCE4: .4byte 0x02000000 _080ECCE8: .4byte 0x000087d8 _080ECCEC: ldr r0, _080ECCF8 ldr r1, _080ECCFC adds r0, r1 movs r1, 0x2F strb r1, [r0] b _080ECD0C .align 2, 0 _080ECCF8: .4byte 0x02000000 _080ECCFC: .4byte 0x000087d8 _080ECD00: ldr r0, _080ECD08 bl sub_80EBDBC b _080ECD74 .align 2, 0 _080ECD08: .4byte sub_80EC9A8 _080ECD0C: ldr r1, _080ECD2C ldr r2, _080ECD30 adds r0, r1, r2 ldrb r2, [r0] ldr r3, _080ECD34 adds r0, r1, r3 strb r2, [r0] ldr r0, _080ECD38 adds r1, r0 movs r0, 0x1 strb r0, [r1] ldr r0, _080ECD3C bl sub_80EBDBC b _080ECD74 .align 2, 0 _080ECD2C: .4byte 0x02000000 _080ECD30: .4byte 0x00006dad _080ECD34: .4byte 0x00006dfc _080ECD38: .4byte 0x000076aa _080ECD3C: .4byte sub_80ED01C _080ECD40: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080ECD74 movs r0, 0x5 bl audio_play ldr r2, _080ECD60 adds r1, r4, r2 movs r0, 0x5 strb r0, [r1] ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] b _080ECD74 .align 2, 0 _080ECD60: .4byte 0x00006dad _080ECD64: bl sub_80F1E6C lsls r0, 24 cmp r0, 0 bne _080ECD74 ldr r0, _080ECD7C bl sub_80EBDBC _080ECD74: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080ECD7C: .4byte sub_80EC9A8 thumb_func_end sub_80ECC08 thumb_func_start sub_80ECD80 sub_80ECD80: @ 80ECD80 push {r4,lr} sub sp, 0x4 ldr r1, _080ECDA0 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0x14 bls _080ECD96 b _080ED006 _080ECD96: lsls r0, 2 ldr r1, _080ECDA4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ECDA0: .4byte 0x02000000 _080ECDA4: .4byte _080ECDA8 .align 2, 0 _080ECDA8: .4byte _080ECDFC .4byte _080ECE1A .4byte _080ECE34 .4byte _080ECE4C .4byte _080ECE64 .4byte _080ECE78 .4byte _080ECE80 .4byte _080ECEAC .4byte _080ECEC0 .4byte _080ECED4 .4byte _080ECEE8 .4byte _080ECF04 .4byte _080ECF10 .4byte _080ECF3C .4byte _080ECF44 .4byte _080ECF58 .4byte _080ECF70 .4byte _080ECF84 .4byte _080ECFB0 .4byte _080ECFC4 .4byte _080ECFE8 _080ECDFC: movs r3, 0xC2 lsls r3, 2 adds r0, r4, r3 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 b _080ECFDC _080ECE1A: ldr r0, _080ECE30 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080ECE28 b _080ED006 _080ECE28: movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ECFDC .align 2, 0 _080ECE30: .4byte 0x0202f388 _080ECE34: bl sub_80EEF78 lsls r0, 24 cmp r0, 0 beq _080ECE40 b _080ED006 _080ECE40: ldr r0, _080ECE48 bl SetVBlankCallback b _080ECFD4 .align 2, 0 _080ECE48: .4byte sub_80EBD80 _080ECE4C: bl sub_80EED1C bl sub_80F3130 ldr r1, _080ECE60 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ECFDC .align 2, 0 _080ECE60: .4byte 0x02000000 _080ECE64: movs r0, 0x1 bl sub_80F2D6C ldr r1, _080ECE74 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080ECFDC .align 2, 0 _080ECE74: .4byte 0x02000000 _080ECE78: movs r0, 0x5 bl sub_80F2D6C b _080ECFD4 _080ECE80: ldr r1, _080ECEA0 adds r0, r4, r1 ldrb r1, [r0] ldr r2, _080ECEA4 adds r0, r4, r2 strb r1, [r0] ldr r3, _080ECEA8 adds r1, r4, r3 movs r0, 0x6 strb r0, [r1] bl sub_80EEE08 movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 b _080ECFDC .align 2, 0 _080ECEA0: .4byte 0x00006dfc _080ECEA4: .4byte 0x00006dad _080ECEA8: .4byte 0x00006dae _080ECEAC: movs r0, 0x2 bl sub_80EF248 ldr r1, _080ECED0 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ECEC0: movs r0, 0x2 bl sub_80EF284 lsls r0, 24 cmp r0, 0 beq _080ECECE b _080ED006 _080ECECE: b _080ECFD4 .align 2, 0 _080ECED0: .4byte 0x02000000 _080ECED4: movs r0, 0x2 bl sub_80F1B8C ldr r1, _080ECF00 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ECEE8: movs r0, 0x2 bl sub_80F1BC8 lsls r0, 24 cmp r0, 0 beq _080ECEF6 b _080ED006 _080ECEF6: ldr r1, _080ECF00 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080ECFDC .align 2, 0 _080ECF00: .4byte 0x02000000 _080ECF04: bl sub_8055870 cmp r0, 0 beq _080ECF0E b _080ED006 _080ECF0E: b _080ECFD4 _080ECF10: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080ECF38 bl SetVBlankCallback movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ECFDC .align 2, 0 _080ECF38: .4byte sub_80EBD18 _080ECF3C: movs r0, 0 bl sub_80EED2C b _080ECFD4 _080ECF44: bl sub_80F2598 ldr r1, _080ECF54 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ECFDC .align 2, 0 _080ECF54: .4byte 0x02000000 _080ECF58: ldr r0, _080ECF6C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080ED006 movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ECFDC .align 2, 0 _080ECF6C: .4byte 0x0202f388 _080ECF70: movs r0, 0x1 bl sub_80F2C80 ldr r1, _080ECFA8 movs r3, 0xC1 lsls r3, 2 adds r1, r3 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ECF84: movs r0, 0x1 bl sub_80F2CBC lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080ED006 ldr r0, _080ECFA8 ldr r3, _080ECFAC adds r1, r0, r3 strh r2, [r1] movs r1, 0xC1 lsls r1, 2 adds r0, r1 ldrh r1, [r0] adds r1, 0x1 strh r1, [r0] b _080ED006 .align 2, 0 _080ECFA8: .4byte 0x02000000 _080ECFAC: .4byte 0x00000306 _080ECFB0: movs r0, 0x5 bl sub_80F2C80 ldr r1, _080ECFE4 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ECFC4: movs r0, 0x5 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 bne _080ED006 bl sub_80F1DF0 _080ECFD4: ldr r1, _080ECFE4 movs r3, 0xC1 lsls r3, 2 adds r1, r3 _080ECFDC: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080ED006 .align 2, 0 _080ECFE4: .4byte 0x02000000 _080ECFE8: bl sub_80F1E50 lsls r0, 24 cmp r0, 0 bne _080ED006 ldr r0, _080ED010 ldr r1, _080ED014 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 bl sub_80EF428 ldr r0, _080ED018 bl sub_80EBDBC _080ED006: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080ED010: .4byte 0x02000000 _080ED014: .4byte 0x00006dad _080ED018: .4byte sub_80ECC08 thumb_func_end sub_80ECD80 thumb_func_start sub_80ED01C sub_80ED01C: @ 80ED01C push {r4,lr} sub sp, 0x4 ldr r1, _080ED03C movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0x13 bls _080ED032 b _080ED308 _080ED032: lsls r0, 2 ldr r1, _080ED040 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ED03C: .4byte 0x02000000 _080ED040: .4byte _080ED044 .align 2, 0 _080ED044: .4byte _080ED094 .4byte _080ED0B4 .4byte _080ED0D4 .4byte _080ED108 .4byte _080ED138 .4byte _080ED14C .4byte _080ED15E .4byte _080ED18C .4byte _080ED1AC .4byte _080ED1C4 .4byte _080ED1D8 .4byte _080ED1F4 .4byte _080ED208 .4byte _080ED220 .4byte _080ED24C .4byte _080ED260 .4byte _080ED28C .4byte _080ED2A0 .4byte _080ED2CC .4byte _080ED2EA _080ED094: bl sub_80F1E84 movs r0, 0x1 bl sub_80F2D04 movs r0, 0x5 bl sub_80F2D04 ldr r1, _080ED0B0 movs r3, 0xC1 lsls r3, 2 adds r1, r3 b _080ED27C .align 2, 0 _080ED0B0: .4byte 0x02000000 _080ED0B4: bl sub_80F1F10 lsls r0, 24 cmp r0, 0 beq _080ED0C0 b _080ED308 _080ED0C0: movs r0, 0 bl sub_80EEFBC ldr r1, _080ED0D0 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ED27C .align 2, 0 _080ED0D0: .4byte 0x02000000 _080ED0D4: bl sub_80EEF34 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080ED0E2 b _080ED308 _080ED0E2: ldr r4, _080ED104 movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 str r2, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ED27C .align 2, 0 _080ED104: .4byte 0x02000000 _080ED108: ldr r0, _080ED130 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080ED116 b _080ED308 _080ED116: movs r0, 0 bl SetVBlankCallback bl sub_80EED0C bl sub_80EF814 ldr r1, _080ED134 movs r3, 0xC1 lsls r3, 2 adds r1, r3 b _080ED27C .align 2, 0 _080ED130: .4byte 0x0202f388 _080ED134: .4byte 0x02000000 _080ED138: bl sub_80F2620 ldr r1, _080ED148 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ED27C .align 2, 0 _080ED148: .4byte 0x02000000 _080ED14C: bl sub_80F4D44 ldr r1, _080ED178 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ED15E: bl sub_80F4D88 lsls r0, 24 cmp r0, 0 bne _080ED17C ldr r1, _080ED178 movs r3, 0xC1 lsls r3, 2 adds r1, r3 ldrh r0, [r1] adds r0, 0x2 strh r0, [r1] b _080ED308 .align 2, 0 _080ED178: .4byte 0x02000000 _080ED17C: ldr r1, _080ED188 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ED27C .align 2, 0 _080ED188: .4byte 0x02000000 _080ED18C: bl sub_8055870 cmp r0, 0 beq _080ED196 b _080ED308 _080ED196: ldr r1, _080ED1A8 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] b _080ED308 .align 2, 0 _080ED1A8: .4byte 0x02000000 _080ED1AC: bl sub_8055870 cmp r0, 0 beq _080ED1B6 b _080ED308 _080ED1B6: ldr r1, _080ED1C0 movs r3, 0xC1 lsls r3, 2 adds r1, r3 b _080ED27C .align 2, 0 _080ED1C0: .4byte 0x02000000 _080ED1C4: movs r0, 0 bl sub_80F0264 ldr r1, _080ED1F0 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ED1D8: bl sub_80F02A0 lsls r0, 24 cmp r0, 0 beq _080ED1E4 b _080ED308 _080ED1E4: ldr r1, _080ED1F0 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080ED27C .align 2, 0 _080ED1F0: .4byte 0x02000000 _080ED1F4: movs r0, 0 bl sub_80F3008 ldr r1, _080ED204 movs r3, 0xC1 lsls r3, 2 adds r1, r3 b _080ED27C .align 2, 0 _080ED204: .4byte 0x02000000 _080ED208: bl sub_8055870 cmp r0, 0 beq _080ED212 b _080ED308 _080ED212: ldr r1, _080ED21C movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ED27C .align 2, 0 _080ED21C: .4byte 0x02000000 _080ED220: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080ED248 bl SetVBlankCallback movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ED27C .align 2, 0 _080ED248: .4byte sub_80EBD18 _080ED24C: movs r0, 0x4 bl sub_80EED2C ldr r1, _080ED25C movs r3, 0xC1 lsls r3, 2 adds r1, r3 b _080ED27C .align 2, 0 _080ED25C: .4byte 0x02000000 _080ED260: ldr r0, _080ED284 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _080ED308 ldr r2, _080ED288 adds r0, r4, r2 strh r1, [r0] movs r3, 0xC1 lsls r3, 2 adds r1, r4, r3 _080ED27C: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080ED308 .align 2, 0 _080ED284: .4byte 0x0202f388 _080ED288: .4byte 0x00000306 _080ED28C: movs r0, 0x1 bl sub_80F2C80 ldr r1, _080ED2C4 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ED2A0: movs r0, 0x1 bl sub_80F2CBC lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080ED308 ldr r0, _080ED2C4 ldr r3, _080ED2C8 adds r1, r0, r3 strh r2, [r1] movs r1, 0xC1 lsls r1, 2 adds r0, r1 ldrh r1, [r0] adds r1, 0x1 strh r1, [r0] b _080ED308 .align 2, 0 _080ED2C4: .4byte 0x02000000 _080ED2C8: .4byte 0x00000306 _080ED2CC: ldr r4, _080ED310 ldr r2, _080ED314 adds r0, r4, r2 ldrb r0, [r0] adds r0, 0x7 lsls r0, 24 lsrs r0, 24 bl sub_80F2C80 movs r3, 0xC1 lsls r3, 2 adds r4, r3 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _080ED2EA: ldr r0, _080ED310 ldr r1, _080ED314 adds r0, r1 ldrb r0, [r0] adds r0, 0x7 lsls r0, 24 lsrs r0, 24 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 bne _080ED308 ldr r0, _080ED318 bl sub_80EBDBC _080ED308: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080ED310: .4byte 0x02000000 _080ED314: .4byte 0x00006dfc _080ED318: .4byte sub_80ED31C thumb_func_end sub_80ED01C thumb_func_start sub_80ED31C sub_80ED31C: @ 80ED31C push {r4,lr} ldr r0, _080ED338 movs r1, 0xC1 lsls r1, 2 adds r4, r0, r1 ldrh r0, [r4] cmp r0, 0x1 beq _080ED3A8 cmp r0, 0x1 bgt _080ED33C cmp r0, 0 beq _080ED342 b _080ED3CA .align 2, 0 _080ED338: .4byte 0x02000000 _080ED33C: cmp r0, 0x2 beq _080ED3C0 b _080ED3CA _080ED342: bl sub_80F5DD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080ED374 cmp r0, 0x2 beq _080ED380 ldr r0, _080ED36C ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080ED38C movs r0, 0x5 bl audio_play ldr r0, _080ED370 bl sub_80EBDBC b _080ED3CA .align 2, 0 _080ED36C: .4byte 0x03001770 _080ED370: .4byte sub_80ED4D8 _080ED374: movs r0, 0x5 bl audio_play bl ShowMapNamePopUpWindow b _080ED3CA _080ED380: movs r0, 0x5 bl audio_play ldrh r0, [r4] adds r0, 0x1 b _080ED3C8 _080ED38C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080ED3CA movs r0, 0x5 bl audio_play ldr r0, _080ED3A4 bl sub_80EBDBC b _080ED3CA .align 2, 0 _080ED3A4: .4byte sub_80ECD80 _080ED3A8: bl sub_80F0718 lsls r0, 24 cmp r0, 0 bne _080ED3CA bl ShowMapNamePopUpWindow bl sub_80F3264 ldrh r0, [r4] adds r0, 0x1 b _080ED3C8 _080ED3C0: bl sub_8055870 cmp r0, 0 bne _080ED3CA _080ED3C8: strh r0, [r4] _080ED3CA: pop {r4} pop {r0} bx r0 thumb_func_end sub_80ED31C thumb_func_start sub_80ED3D0 sub_80ED3D0: @ 80ED3D0 push {r4,lr} sub sp, 0x4 ldr r0, _080ED3EC movs r1, 0xC1 lsls r1, 2 adds r0, r1 ldrh r0, [r0] cmp r0, 0x8 bhi _080ED4C6 lsls r0, 2 ldr r1, _080ED3F0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ED3EC: .4byte 0x02000000 _080ED3F0: .4byte _080ED3F4 .align 2, 0 _080ED3F4: .4byte _080ED418 .4byte _080ED420 .4byte _080ED42A .4byte _080ED432 .4byte _080ED446 .4byte _080ED458 .4byte _080ED462 .4byte _080ED498 .4byte _080ED4B4 _080ED418: movs r0, 0 bl SetVBlankCallback b _080ED49E _080ED420: bl sub_80EED0C bl sub_80F6134 b _080ED49E _080ED42A: movs r0, 0 bl sub_80EEFBC b _080ED49E _080ED432: movs r0, 0 bl sub_80F0264 ldr r1, _080ED454 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ED446: bl sub_80F02A0 lsls r0, 24 cmp r0, 0 bne _080ED4C6 b _080ED49E .align 2, 0 _080ED454: .4byte 0x02000000 _080ED458: bl sub_8055870 cmp r0, 0 bne _080ED4C6 b _080ED49E _080ED462: movs r0, 0 bl sub_80F3008 ldr r4, _080ED490 movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080ED494 bl SetVBlankCallback movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 b _080ED4A6 .align 2, 0 _080ED490: .4byte 0x02000000 _080ED494: .4byte sub_80EBD18 _080ED498: movs r0, 0x4 bl sub_80EED2C _080ED49E: ldr r1, _080ED4B0 movs r0, 0xC1 lsls r0, 2 adds r1, r0 _080ED4A6: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080ED4C6 .align 2, 0 _080ED4B0: .4byte 0x02000000 _080ED4B4: ldr r0, _080ED4D0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080ED4C6 ldr r0, _080ED4D4 bl sub_80EBDBC _080ED4C6: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080ED4D0: .4byte 0x0202f388 _080ED4D4: .4byte sub_80ED31C thumb_func_end sub_80ED3D0 thumb_func_start sub_80ED4D8 sub_80ED4D8: @ 80ED4D8 push {r4,lr} sub sp, 0x4 ldr r1, _080ED4F8 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0x8 bls _080ED4EE b _080ED60E _080ED4EE: lsls r0, 2 ldr r1, _080ED4FC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ED4F8: .4byte 0x02000000 _080ED4FC: .4byte _080ED500 .align 2, 0 _080ED500: .4byte _080ED524 .4byte _080ED542 .4byte _080ED564 .4byte _080ED57C .4byte _080ED582 .4byte _080ED594 .4byte _080ED5A4 .4byte _080ED5E0 .4byte _080ED5FC _080ED524: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r3, 0x10 bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ED5EE _080ED542: ldr r0, _080ED560 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080ED60E movs r0, 0 bl SetVBlankCallback bl sub_80EED0C bl sub_80F3130 b _080ED5E6 .align 2, 0 _080ED560: .4byte 0x0202f388 _080ED564: bl sub_8055870 cmp r0, 0 bne _080ED60E ldr r1, _080ED578 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080ED5EE .align 2, 0 _080ED578: .4byte 0x02000000 _080ED57C: bl sub_80F4CF0 b _080ED5E6 _080ED582: bl sub_80EFF34 ldr r1, _080ED5A0 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ED594: bl sub_80EFF68 lsls r0, 24 cmp r0, 0 bne _080ED60E b _080ED5E6 .align 2, 0 _080ED5A0: .4byte 0x02000000 _080ED5A4: bl sub_80F35B4 movs r0, 0x2 bl sub_80EEFBC ldr r4, _080ED5D8 movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080ED5DC bl SetVBlankCallback movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ED5EE .align 2, 0 _080ED5D8: .4byte 0x02000000 _080ED5DC: .4byte sub_80EBD4C _080ED5E0: movs r0, 0x2 bl sub_80EED2C _080ED5E6: ldr r1, _080ED5F8 movs r0, 0xC1 lsls r0, 2 adds r1, r0 _080ED5EE: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080ED60E .align 2, 0 _080ED5F8: .4byte 0x02000000 _080ED5FC: ldr r0, _080ED618 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080ED60E ldr r0, _080ED61C bl sub_80EBDBC _080ED60E: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080ED618: .4byte 0x0202f388 _080ED61C: .4byte sub_80ED858 thumb_func_end sub_80ED4D8 thumb_func_start sub_80ED620 sub_80ED620: @ 80ED620 push {r4,lr} sub sp, 0x4 ldr r1, _080ED640 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0x10 bls _080ED636 b _080ED846 _080ED636: lsls r0, 2 ldr r1, _080ED644 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ED640: .4byte 0x02000000 _080ED644: .4byte _080ED648 .align 2, 0 _080ED648: .4byte _080ED68C .4byte _080ED6A4 .4byte _080ED6B8 .4byte _080ED6EC .4byte _080ED730 .4byte _080ED736 .4byte _080ED750 .4byte _080ED762 .4byte _080ED76C .4byte _080ED784 .4byte _080ED78A .4byte _080ED7C0 .4byte _080ED7D4 .4byte _080ED7EC .4byte _080ED800 .4byte _080ED820 .4byte _080ED834 _080ED68C: bl sub_80F1E84 movs r0, 0x1 bl sub_80F2D04 ldr r1, _080ED6A0 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ED814 .align 2, 0 _080ED6A0: .4byte 0x02000000 _080ED6A4: bl sub_80F1F10 lsls r0, 24 cmp r0, 0 beq _080ED6B0 b _080ED846 _080ED6B0: movs r0, 0x1 bl sub_80EEFBC b _080ED80C _080ED6B8: bl sub_80EEF34 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080ED6C6 b _080ED846 _080ED6C6: ldr r4, _080ED6E8 movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 str r2, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ED814 .align 2, 0 _080ED6E8: .4byte 0x02000000 _080ED6EC: ldr r0, _080ED724 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080ED6FE b _080ED846 _080ED6FE: movs r0, 0 bl SetVBlankCallback bl sub_80EED0C bl sub_80EF814 ldr r0, _080ED728 ldr r2, _080ED72C adds r1, r0, r2 strb r4, [r1] movs r1, 0xC1 lsls r1, 2 adds r0, r1 ldrh r1, [r0] adds r1, 0x1 strh r1, [r0] b _080ED846 .align 2, 0 _080ED724: .4byte 0x0202f388 _080ED728: .4byte 0x02000000 _080ED72C: .4byte 0x000076aa _080ED730: bl sub_80F2620 b _080ED80C _080ED736: ldr r0, _080ED74C adds r1, r4, r0 movs r0, 0x2 strb r0, [r1] bl sub_80F4BD0 movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ED814 .align 2, 0 _080ED74C: .4byte 0x0000d162 _080ED750: bl sub_80EFF34 ldr r1, _080ED768 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ED762: bl sub_80EFF68 b _080ED806 .align 2, 0 _080ED768: .4byte 0x02000000 _080ED76C: bl sub_8055870 cmp r0, 0 bne _080ED846 ldr r1, _080ED780 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ED814 .align 2, 0 _080ED780: .4byte 0x02000000 _080ED784: bl sub_8055870 b _080ED808 _080ED78A: bl sub_80F33A8 ldr r4, _080ED7B8 movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080ED7BC bl SetVBlankCallback movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ED814 .align 2, 0 _080ED7B8: .4byte 0x02000000 _080ED7BC: .4byte sub_80EBD4C _080ED7C0: movs r0, 0x2 bl sub_80EED2C ldr r1, _080ED7D0 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ED814 .align 2, 0 _080ED7D0: .4byte 0x02000000 _080ED7D4: ldr r0, _080ED7E8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080ED846 movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080ED814 .align 2, 0 _080ED7E8: .4byte 0x0202f388 _080ED7EC: movs r0, 0x1 bl sub_80F2C80 ldr r1, _080ED81C movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ED800: movs r0, 0x1 bl sub_80F2CBC _080ED806: lsls r0, 24 _080ED808: cmp r0, 0 bne _080ED846 _080ED80C: ldr r1, _080ED81C movs r2, 0xC1 lsls r2, 2 adds r1, r2 _080ED814: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080ED846 .align 2, 0 _080ED81C: .4byte 0x02000000 _080ED820: movs r0, 0x6 bl sub_80F2C80 ldr r1, _080ED850 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080ED834: movs r0, 0x6 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 bne _080ED846 ldr r0, _080ED854 bl sub_80EBDBC _080ED846: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080ED850: .4byte 0x02000000 _080ED854: .4byte sub_80ED858 thumb_func_end sub_80ED620 thumb_func_start sub_80ED858 sub_80ED858: @ 80ED858 push {r4,r5,lr} sub sp, 0x4 ldr r1, _080ED878 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r5, r1, 0 cmp r0, 0xB bls _080ED86E b _080EDB7A _080ED86E: lsls r0, 2 ldr r1, _080ED87C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ED878: .4byte 0x02000000 _080ED87C: .4byte _080ED880 .align 2, 0 _080ED880: .4byte _080ED8B0 .4byte _080ED8CC .4byte _080ED8EC .4byte _080ED904 .4byte _080ED91A .4byte _080EDA68 .4byte _080EDA8C .4byte _080EDAA4 .4byte _080EDAC0 .4byte _080EDAE8 .4byte _080EDB7A .4byte _080EDB28 _080ED8B0: bl sub_80F4F78 bl sub_80F5B38 ldr r0, _080ED8C8 movs r4, 0xC1 lsls r4, 2 adds r0, r4 movs r1, 0x1 strh r1, [r0] b _080EDB7A .align 2, 0 _080ED8C8: .4byte 0x02000000 _080ED8CC: bl sub_80F5B50 lsls r0, 24 cmp r0, 0 beq _080ED8D8 b _080EDB7A _080ED8D8: ldr r0, _080ED8E8 movs r1, 0xC1 lsls r1, 2 adds r0, r1 movs r1, 0x2 strh r1, [r0] b _080EDB7A .align 2, 0 _080ED8E8: .4byte 0x02000000 _080ED8EC: movs r0, 0x1 bl sub_80F0174 ldr r0, _080ED900 movs r2, 0xC1 lsls r2, 2 adds r0, r2 movs r1, 0x3 strh r1, [r0] b _080EDB7A .align 2, 0 _080ED900: .4byte 0x02000000 _080ED904: bl sub_80F4FB4 lsls r0, 24 cmp r0, 0 beq _080ED910 b _080EDB7A _080ED910: bl sub_80F3C94 bl sub_80F3D00 b _080EDAD4 _080ED91A: ldr r2, _080ED960 ldrh r1, [r2, 0x2C] movs r0, 0x40 ands r0, r1 adds r3, r2, 0 cmp r0, 0 beq _080ED970 ldr r1, _080ED964 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 beq _080ED970 ldr r2, _080ED968 adds r0, r5, r2 ldrb r0, [r0] cmp r0, 0 beq _080ED948 ldr r4, _080ED96C adds r0, r5, r4 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _080ED970 _080ED948: movs r0, 0x5 bl audio_play movs r0, 0x1 bl sub_80F5060 bl move_anim_execute movs r2, 0xC1 lsls r2, 2 adds r1, r5, r2 b _080ED9B8 .align 2, 0 _080ED960: .4byte 0x03001770 _080ED964: .4byte 0x000087cb _080ED968: .4byte 0x000076aa _080ED96C: .4byte 0x000087dc _080ED970: ldrh r1, [r3, 0x2C] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080ED9CC ldr r4, _080ED9C0 adds r0, r5, r4 ldrb r0, [r0] cmp r0, 0 beq _080ED9CC ldr r1, _080ED9C4 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 beq _080ED9A2 ldr r2, _080ED9C8 adds r0, r5, r2 subs r4, 0x57 adds r1, r5, r4 movs r4, 0 ldrsh r2, [r0, r4] movs r4, 0 ldrsh r0, [r1, r4] cmp r2, r0 bge _080ED9CC _080ED9A2: movs r0, 0x5 bl audio_play movs r0, 0 bl sub_80F5060 bl move_anim_execute movs r0, 0xC1 lsls r0, 2 adds r1, r5, r0 _080ED9B8: movs r0, 0x5 strh r0, [r1] b _080EDB7A .align 2, 0 _080ED9C0: .4byte 0x000087cb _080ED9C4: .4byte 0x000076aa _080ED9C8: .4byte 0x000087dc _080ED9CC: ldrh r2, [r3, 0x2E] movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _080ED9F8 movs r0, 0x5 bl audio_play bl sub_80F4FDC bl move_anim_execute ldr r0, _080ED9F4 movs r1, 0xC1 lsls r1, 2 adds r0, r1 movs r1, 0x9 strh r1, [r0] b _080EDB7A .align 2, 0 _080ED9F4: .4byte 0x02000000 _080ED9F8: movs r0, 0x1 ands r0, r2 cmp r0, 0 bne _080EDA02 b _080EDB7A _080EDA02: adds r4, r5, 0 ldr r2, _080EDA38 adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 bne _080EDA44 ldr r1, _080EDA3C adds r0, r4, r1 movs r2, 0 ldrsh r1, [r0, r2] ldr r2, _080EDA40 adds r0, r4, r2 movs r2, 0 ldrsh r0, [r0, r2] subs r0, 0x1 cmp r1, r0 beq _080EDA26 b _080EDB7A _080EDA26: movs r0, 0x5 bl audio_play movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 movs r0, 0x9 strh r0, [r1] b _080EDB7A .align 2, 0 _080EDA38: .4byte 0x000076aa _080EDA3C: .4byte 0x000087dc _080EDA40: .4byte 0x000087da _080EDA44: ldr r1, _080EDA64 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 beq _080EDA50 b _080EDB7A _080EDA50: movs r0, 0x5 bl audio_play movs r2, 0xC1 lsls r2, 2 adds r1, r5, r2 movs r0, 0x7 strh r0, [r1] b _080EDB7A .align 2, 0 _080EDA64: .4byte 0x00006dac _080EDA68: bl gpu_sync_bg_show lsls r0, 24 cmp r0, 0 beq _080EDA74 b _080EDB7A _080EDA74: bl sub_80F3D00 ldr r0, _080EDA88 movs r4, 0xC1 lsls r4, 2 adds r0, r4 movs r1, 0x6 strh r1, [r0] b _080EDB7A .align 2, 0 _080EDA88: .4byte 0x02000000 _080EDA8C: bl sub_8055870 cmp r0, 0 bne _080EDB7A ldr r0, _080EDAA0 movs r1, 0xC1 lsls r1, 2 adds r0, r1 b _080EDADC .align 2, 0 _080EDAA0: .4byte 0x02000000 _080EDAA4: movs r0, 0x3 bl sub_80EEFBC bl sub_80F3668 ldr r0, _080EDABC movs r2, 0xC1 lsls r2, 2 adds r0, r2 movs r1, 0x8 strh r1, [r0] b _080EDB7A .align 2, 0 _080EDABC: .4byte 0x02000000 _080EDAC0: bl sub_80F7500 lsls r0, 24 cmp r0, 0 bne _080EDB7A movs r0, 0x2 bl sub_80EEFBC bl sub_80F3698 _080EDAD4: ldr r0, _080EDAE4 movs r4, 0xC1 lsls r4, 2 adds r0, r4 _080EDADC: movs r1, 0x4 strh r1, [r0] b _080EDB7A .align 2, 0 _080EDAE4: .4byte 0x02000000 _080EDAE8: bl sub_80F5038 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080EDB7A movs r0, 0 bl sub_80F0174 bl sub_80F2F48 ldr r5, _080EDB24 movs r1, 0xC2 lsls r1, 2 adds r0, r5, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 str r4, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r5, r2 movs r0, 0xB strh r0, [r1] b _080EDB7A .align 2, 0 _080EDB24: .4byte 0x02000000 _080EDB28: ldr r0, _080EDB60 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EDB7A bl sub_80F3CE8 bl sub_80F5BDC ldr r0, _080EDB64 ldr r4, _080EDB68 adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _080EDB70 bl sub_80F357C movs r0, 0x1 bl sub_80F2D6C movs r0, 0x6 bl sub_80F2D6C ldr r0, _080EDB6C bl sub_80EBDBC b _080EDB7A .align 2, 0 _080EDB60: .4byte 0x0202f388 _080EDB64: .4byte 0x02000000 _080EDB68: .4byte 0x000076aa _080EDB6C: .4byte sub_80ECA10 _080EDB70: bl sub_80F3614 ldr r0, _080EDB84 bl sub_80EBDBC _080EDB7A: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EDB84: .4byte sub_80ED3D0 thumb_func_end sub_80ED858 thumb_func_start sub_80EDB88 sub_80EDB88: @ 80EDB88 push {r4,lr} sub sp, 0x4 ldr r1, _080EDBA8 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0x11 bls _080EDB9E b _080EDDAA _080EDB9E: lsls r0, 2 ldr r1, _080EDBAC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EDBA8: .4byte 0x02000000 _080EDBAC: .4byte _080EDBB0 .align 2, 0 _080EDBB0: .4byte _080EDBF8 .4byte _080EDC04 .4byte _080EDC24 .4byte _080EDC58 .4byte _080EDC7C .4byte _080EDC90 .4byte _080EDCA2 .4byte _080EDCC0 .4byte _080EDCDC .4byte _080EDCE6 .4byte _080EDCFA .4byte _080EDD0C .4byte _080EDD20 .4byte _080EDD34 .4byte _080EDD48 .4byte _080EDD52 .4byte _080EDD7C .4byte _080EDD98 _080EDBF8: bl sub_80F1E84 movs r0, 0 bl sub_80F2D04 b _080EDD82 _080EDC04: bl sub_80F1F10 lsls r0, 24 cmp r0, 0 beq _080EDC10 b _080EDDAA _080EDC10: movs r0, 0x4 bl sub_80EEFBC ldr r1, _080EDC20 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EDD8A .align 2, 0 _080EDC20: .4byte 0x02000000 _080EDC24: bl sub_80EEF34 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080EDC32 b _080EDDAA _080EDC32: ldr r4, _080EDC54 movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 str r2, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080EDD8A .align 2, 0 _080EDC54: .4byte 0x02000000 _080EDC58: ldr r0, _080EDC78 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080EDC66 b _080EDDAA _080EDC66: movs r0, 0 bl SetVBlankCallback bl sub_80EED0C bl sub_80EF814 b _080EDD82 .align 2, 0 _080EDC78: .4byte 0x0202f388 _080EDC7C: bl sub_80F2620 ldr r1, _080EDC8C movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EDD8A .align 2, 0 _080EDC8C: .4byte 0x02000000 _080EDC90: bl sub_80F638C ldr r1, _080EDCBC movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EDCA2: bl sub_80F63D0 lsls r0, 24 cmp r0, 0 bne _080EDD82 ldr r1, _080EDCBC movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x2 strh r0, [r1] b _080EDDAA .align 2, 0 _080EDCBC: .4byte 0x02000000 _080EDCC0: bl sub_8055870 cmp r0, 0 bne _080EDDAA ldr r1, _080EDCD8 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] b _080EDDAA .align 2, 0 _080EDCD8: .4byte 0x02000000 _080EDCDC: bl sub_8055870 cmp r0, 0 bne _080EDDAA b _080EDD82 _080EDCE6: movs r0, 0x1 bl sub_80F0264 ldr r1, _080EDD08 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EDCFA: bl sub_80F02A0 lsls r0, 24 cmp r0, 0 bne _080EDDAA b _080EDD82 .align 2, 0 _080EDD08: .4byte 0x02000000 _080EDD0C: movs r0, 0x2 bl sub_80F2C80 ldr r1, _080EDD30 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EDD20: movs r0, 0x2 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 bne _080EDDAA b _080EDD82 .align 2, 0 _080EDD30: .4byte 0x02000000 _080EDD34: movs r0, 0x1 bl sub_80F3008 ldr r1, _080EDD44 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EDD8A .align 2, 0 _080EDD44: .4byte 0x02000000 _080EDD48: bl sub_8055870 cmp r0, 0 bne _080EDDAA b _080EDD82 _080EDD52: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080EDD78 bl SetVBlankCallback movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080EDD8A .align 2, 0 _080EDD78: .4byte sub_80EBD18 _080EDD7C: movs r0, 0x4 bl sub_80EED2C _080EDD82: ldr r1, _080EDD94 movs r0, 0xC1 lsls r0, 2 adds r1, r0 _080EDD8A: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EDDAA .align 2, 0 _080EDD94: .4byte 0x02000000 _080EDD98: ldr r0, _080EDDB4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EDDAA ldr r0, _080EDDB8 bl sub_80EBDBC _080EDDAA: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080EDDB4: .4byte 0x0202f388 _080EDDB8: .4byte sub_80EDDBC thumb_func_end sub_80EDB88 thumb_func_start sub_80EDDBC sub_80EDDBC: @ 80EDDBC push {r4,lr} ldr r0, _080EDDD8 movs r1, 0xC1 lsls r1, 2 adds r4, r0, r1 ldrh r0, [r4] cmp r0, 0x1 beq _080EDE48 cmp r0, 0x1 bgt _080EDDDC cmp r0, 0 beq _080EDDE2 b _080EDE6A .align 2, 0 _080EDDD8: .4byte 0x02000000 _080EDDDC: cmp r0, 0x2 beq _080EDE60 b _080EDE6A _080EDDE2: bl sub_80F5DD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080EDE14 cmp r0, 0x2 beq _080EDE20 ldr r0, _080EDE0C ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080EDE2C movs r0, 0x5 bl audio_play ldr r0, _080EDE10 bl sub_80EBDBC b _080EDE6A .align 2, 0 _080EDE0C: .4byte 0x03001770 _080EDE10: .4byte sub_80EDEE4 _080EDE14: movs r0, 0x5 bl audio_play bl ShowMapNamePopUpWindow b _080EDE6A _080EDE20: movs r0, 0x5 bl audio_play ldrh r0, [r4] adds r0, 0x1 b _080EDE68 _080EDE2C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080EDE6A movs r0, 0x5 bl audio_play ldr r0, _080EDE44 bl sub_80EBDBC b _080EDE6A .align 2, 0 _080EDE44: .4byte sub_80EDE70 _080EDE48: bl sub_80F0718 lsls r0, 24 cmp r0, 0 bne _080EDE6A bl ShowMapNamePopUpWindow bl sub_80F3264 ldrh r0, [r4] adds r0, 0x1 b _080EDE68 _080EDE60: bl sub_8055870 cmp r0, 0 bne _080EDE6A _080EDE68: strh r0, [r4] _080EDE6A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80EDDBC thumb_func_start sub_80EDE70 sub_80EDE70: @ 80EDE70 push {r4,lr} sub sp, 0x4 ldr r0, _080EDE8C movs r1, 0xC1 lsls r1, 2 adds r4, r0, r1 ldrh r2, [r4] cmp r2, 0x1 beq _080EDEAE cmp r2, 0x1 bgt _080EDE90 cmp r2, 0 beq _080EDE96 b _080EDED6 .align 2, 0 _080EDE8C: .4byte 0x02000000 _080EDE90: cmp r2, 0x2 beq _080EDED0 b _080EDED6 _080EDE96: movs r1, 0xC2 lsls r1, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 str r2, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _080EDEC4 _080EDEAE: ldr r0, _080EDECC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EDED6 bl sub_80F3130 movs r0, 0x2 bl sub_80F2D6C _080EDEC4: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080EDED6 .align 2, 0 _080EDECC: .4byte 0x0202f388 _080EDED0: ldr r0, _080EDEE0 bl sub_80EBDBC _080EDED6: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080EDEE0: .4byte sub_80EC00C thumb_func_end sub_80EDE70 thumb_func_start sub_80EDEE4 sub_80EDEE4: @ 80EDEE4 push {r4,lr} sub sp, 0x4 ldr r1, _080EDF04 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0xA bls _080EDEFA b _080EE060 _080EDEFA: lsls r0, 2 ldr r1, _080EDF08 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EDF04: .4byte 0x02000000 _080EDF08: .4byte _080EDF0C .align 2, 0 _080EDF0C: .4byte _080EDF38 .4byte _080EDF50 .4byte _080EDF80 .4byte _080EDF98 .4byte _080EDFB0 .4byte _080EDFC8 .4byte _080EDFE0 .4byte _080EDFF8 .4byte _080EE01C .4byte _080EE030 .4byte _080EE050 _080EDF38: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r3, 0x10 bl BeginNormalPaletteFade b _080EE03C _080EDF50: ldr r0, _080EDF78 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080EDF5E b _080EE060 _080EDF5E: movs r0, 0 bl SetVBlankCallback bl sub_80EED0C bl sub_80F3130 ldr r1, _080EDF7C movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EE042 .align 2, 0 _080EDF78: .4byte 0x0202f388 _080EDF7C: .4byte 0x02000000 _080EDF80: bl sub_80F66E0 bl sub_80EEE08 ldr r1, _080EDF94 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EE042 .align 2, 0 _080EDF94: .4byte 0x02000000 _080EDF98: bl sub_80F1080 lsls r0, 24 cmp r0, 0 bne _080EE060 ldr r1, _080EDFAC movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EE042 .align 2, 0 _080EDFAC: .4byte 0x02000000 _080EDFB0: movs r0, 0x5 bl sub_80EEFBC bl sub_80F38B8 ldr r1, _080EDFDC movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EDFC8: bl sub_80F38EC lsls r0, 24 cmp r0, 0 bne _080EE060 ldr r1, _080EDFDC movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EE042 .align 2, 0 _080EDFDC: .4byte 0x02000000 _080EDFE0: bl sub_8055870 cmp r0, 0 bne _080EE060 ldr r1, _080EDFF4 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EE042 .align 2, 0 _080EDFF4: .4byte 0x02000000 _080EDFF8: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080EE018 bl SetVBlankCallback b _080EE03C .align 2, 0 _080EE018: .4byte sub_80EBD18 _080EE01C: movs r0, 0x3 bl sub_80EED2C ldr r1, _080EE02C movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EE042 .align 2, 0 _080EE02C: .4byte 0x02000000 _080EE030: ldr r0, _080EE04C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EE060 _080EE03C: movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 _080EE042: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EE060 .align 2, 0 _080EE04C: .4byte 0x0202f388 _080EE050: bl sub_80F170C lsls r0, 24 cmp r0, 0 bne _080EE060 ldr r0, _080EE068 bl sub_80EBDBC _080EE060: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080EE068: .4byte sub_80EE06C thumb_func_end sub_80EDEE4 thumb_func_start sub_80EE06C sub_80EE06C: @ 80EE06C push {r4,r5,lr} ldr r1, _080EE08C movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0x8 bls _080EE080 b _080EE288 _080EE080: lsls r0, 2 ldr r1, _080EE090 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EE08C: .4byte 0x02000000 _080EE090: .4byte _080EE094 .align 2, 0 _080EE094: .4byte _080EE0B8 .4byte _080EE0CC .4byte _080EE180 .4byte _080EE19C .4byte _080EE1B8 .4byte _080EE1D0 .4byte _080EE1F8 .4byte _080EE250 .4byte _080EE26C _080EE0B8: bl sub_80F15A8 ldr r1, _080EE0C8 movs r5, 0xC1 lsls r5, 2 adds r1, r5 b _080EE1C4 .align 2, 0 _080EE0C8: .4byte 0x02000000 _080EE0CC: ldr r2, _080EE0FC ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 adds r3, r2, 0 cmp r0, 0 beq _080EE104 ldr r1, _080EE100 adds r0, r4, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 beq _080EE104 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 bl sub_80F6A4C movs r5, 0xC1 lsls r5, 2 adds r1, r4, r5 b _080EE1C4 .align 2, 0 _080EE0FC: .4byte 0x03001770 _080EE100: .4byte 0x000087dc _080EE104: ldrh r1, [r3, 0x30] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080EE140 ldr r1, _080EE138 adds r0, r4, r1 ldr r2, _080EE13C adds r1, r4, r2 movs r5, 0 ldrsh r2, [r0, r5] movs r5, 0 ldrsh r0, [r1, r5] cmp r2, r0 bge _080EE140 movs r0, 0x5 bl audio_play movs r0, 0x1 bl sub_80F6A4C movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 b _080EE1C4 .align 2, 0 _080EE138: .4byte 0x000087dc _080EE13C: .4byte 0x00008774 _080EE140: ldrh r2, [r3, 0x2E] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _080EE164 movs r0, 0x5 bl audio_play movs r0, 0xB bl sub_80EEFBC ldr r0, _080EE160 movs r1, 0xC1 lsls r1, 2 adds r0, r1 b _080EE262 .align 2, 0 _080EE160: .4byte 0x02000000 _080EE164: movs r0, 0x2 ands r0, r2 cmp r0, 0 bne _080EE16E b _080EE288 _080EE16E: movs r0, 0x5 bl audio_play ldr r0, _080EE17C bl sub_80EBDBC b _080EE288 .align 2, 0 _080EE17C: .4byte sub_80EE294 _080EE180: bl sub_80F6AF0 lsls r0, 24 cmp r0, 0 beq _080EE18C b _080EE288 _080EE18C: ldr r1, _080EE198 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EE1C4 .align 2, 0 _080EE198: .4byte 0x02000000 _080EE19C: bl sub_8055870 adds r1, r0, 0 cmp r1, 0 bne _080EE288 ldr r0, _080EE1B4 movs r5, 0xC1 lsls r5, 2 adds r0, r5 strh r1, [r0] b _080EE288 .align 2, 0 _080EE1B4: .4byte 0x02000000 _080EE1B8: bl sub_80F3B00 ldr r1, _080EE1CC movs r0, 0xC1 lsls r0, 2 adds r1, r0 _080EE1C4: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EE288 .align 2, 0 _080EE1CC: .4byte 0x02000000 _080EE1D0: bl sub_80F3B58 lsls r0, 24 cmp r0, 0 bne _080EE288 bl sub_80F1494 ldr r1, _080EE1F4 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] bl sub_80EED9C b _080EE288 .align 2, 0 _080EE1F4: .4byte 0x02000000 _080EE1F8: bl sub_80F68E8 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080EE224 cmp r0, 0x1 bne _080EE224 movs r0, 0x5 bl audio_play bl sub_80F3B94 ldr r0, _080EE220 movs r5, 0xC1 lsls r5, 2 adds r0, r5 movs r1, 0x7 strh r1, [r0] b _080EE288 .align 2, 0 _080EE220: .4byte 0x02000000 _080EE224: ldr r0, _080EE248 ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080EE288 movs r0, 0x5 bl audio_play bl sub_80F3B94 ldr r0, _080EE24C movs r1, 0xC1 lsls r1, 2 adds r0, r1 movs r1, 0x8 strh r1, [r0] b _080EE288 .align 2, 0 _080EE248: .4byte 0x03001770 _080EE24C: .4byte 0x02000000 _080EE250: bl sub_80F3BD4 lsls r0, 24 cmp r0, 0 bne _080EE288 ldr r0, _080EE268 movs r2, 0xC1 lsls r2, 2 adds r0, r2 _080EE262: movs r1, 0x4 strh r1, [r0] b _080EE288 .align 2, 0 _080EE268: .4byte 0x02000000 _080EE26C: bl sub_80F3BD4 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080EE288 movs r0, 0x5 bl sub_80EEFBC ldr r0, _080EE290 movs r5, 0xC1 lsls r5, 2 adds r0, r5 strh r4, [r0] _080EE288: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EE290: .4byte 0x02000000 thumb_func_end sub_80EE06C thumb_func_start sub_80EE294 sub_80EE294: @ 80EE294 push {r4,lr} sub sp, 0x4 ldr r1, _080EE2B4 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0x8 bls _080EE2AA b _080EE3C6 _080EE2AA: lsls r0, 2 ldr r1, _080EE2B8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EE2B4: .4byte 0x02000000 _080EE2B8: .4byte _080EE2BC .align 2, 0 _080EE2BC: .4byte _080EE2E0 .4byte _080EE2FE .4byte _080EE324 .4byte _080EE33C .4byte _080EE34C .4byte _080EE370 .4byte _080EE37A .4byte _080EE39A .4byte _080EE3B4 _080EE2E0: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r3, 0x10 bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080EE3A8 _080EE2FE: ldr r0, _080EE320 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EE3C6 movs r0, 0 bl SetVBlankCallback bl sub_80EED0C bl sub_80F3C2C bl sub_80EEE08 b _080EE3A0 .align 2, 0 _080EE320: .4byte 0x0202f388 _080EE324: bl sub_80F6134 movs r0, 0x1 bl sub_80F0264 ldr r1, _080EE348 movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EE33C: bl sub_80F02A0 lsls r0, 24 cmp r0, 0 bne _080EE3C6 b _080EE3A0 .align 2, 0 _080EE348: .4byte 0x02000000 _080EE34C: movs r0, 0x4 bl sub_80EEFBC movs r0, 0x1 bl sub_80F3008 ldr r0, _080EE368 bl SetVBlankCallback ldr r1, _080EE36C movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EE3A8 .align 2, 0 _080EE368: .4byte sub_80EBD18 _080EE36C: .4byte 0x02000000 _080EE370: bl sub_8055870 cmp r0, 0 bne _080EE3C6 b _080EE3A0 _080EE37A: movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 b _080EE3A8 _080EE39A: movs r0, 0x4 bl sub_80EED2C _080EE3A0: ldr r1, _080EE3B0 movs r0, 0xC1 lsls r0, 2 adds r1, r0 _080EE3A8: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EE3C6 .align 2, 0 _080EE3B0: .4byte 0x02000000 _080EE3B4: ldr r0, _080EE3D0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EE3C6 ldr r0, _080EE3D4 bl sub_80EBDBC _080EE3C6: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080EE3D0: .4byte 0x0202f388 _080EE3D4: .4byte sub_80EDDBC thumb_func_end sub_80EE294 thumb_func_start sub_80EE3D8 sub_80EE3D8: @ 80EE3D8 push {r4,lr} sub sp, 0x4 ldr r0, _080EE3F8 movs r1, 0xC1 lsls r1, 2 adds r0, r1 ldrh r0, [r0] cmp r0, 0xD bls _080EE3EC b _080EE57A _080EE3EC: lsls r0, 2 ldr r1, _080EE3FC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EE3F8: .4byte 0x02000000 _080EE3FC: .4byte _080EE400 .align 2, 0 _080EE400: .4byte _080EE438 .4byte _080EE444 .4byte _080EE458 .4byte _080EE48C .4byte _080EE4B0 .4byte _080EE4B6 .4byte _080EE4CA .4byte _080EE4DC .4byte _080EE4F0 .4byte _080EE504 .4byte _080EE50C .4byte _080EE516 .4byte _080EE54C .4byte _080EE568 _080EE438: bl sub_80F1E84 movs r0, 0 bl sub_80F2D04 b _080EE552 _080EE444: bl sub_80F1F10 lsls r0, 24 cmp r0, 0 beq _080EE450 b _080EE57A _080EE450: movs r0, 0x9 bl sub_80EEFBC b _080EE552 _080EE458: bl sub_80EEF34 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080EE466 b _080EE57A _080EE466: ldr r4, _080EE488 movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 str r2, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 b _080EE55A .align 2, 0 _080EE488: .4byte 0x02000000 _080EE48C: ldr r0, _080EE4AC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EE57A movs r0, 0 bl SetVBlankCallback bl sub_80EED0C bl sub_80EF814 bl sub_80EEE08 b _080EE552 .align 2, 0 _080EE4AC: .4byte 0x0202f388 _080EE4B0: bl sub_80F2620 b _080EE552 _080EE4B6: movs r0, 0x2 bl sub_80F0264 ldr r1, _080EE4D8 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EE4CA: bl sub_80F02A0 lsls r0, 24 cmp r0, 0 bne _080EE57A b _080EE552 .align 2, 0 _080EE4D8: .4byte 0x02000000 _080EE4DC: movs r0, 0x3 bl sub_80F2C80 ldr r1, _080EE500 movs r0, 0xC1 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EE4F0: movs r0, 0x3 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 bne _080EE57A b _080EE552 .align 2, 0 _080EE500: .4byte 0x02000000 _080EE504: movs r0, 0x2 bl sub_80F3008 b _080EE552 _080EE50C: bl sub_8055870 cmp r0, 0 bne _080EE57A b _080EE552 _080EE516: bl sub_80F6F10 ldr r4, _080EE544 movs r1, 0xC2 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080EE548 bl SetVBlankCallback movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 b _080EE55A .align 2, 0 _080EE544: .4byte 0x02000000 _080EE548: .4byte sub_80EBD68 _080EE54C: movs r0, 0x5 bl sub_80EED2C _080EE552: ldr r1, _080EE564 movs r0, 0xC1 lsls r0, 2 adds r1, r0 _080EE55A: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EE57A .align 2, 0 _080EE564: .4byte 0x02000000 _080EE568: ldr r0, _080EE584 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EE57A ldr r0, _080EE588 bl sub_80EBDBC _080EE57A: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080EE584: .4byte 0x0202f388 _080EE588: .4byte sub_80EE58C thumb_func_end sub_80EE3D8 thumb_func_start sub_80EE58C sub_80EE58C: @ 80EE58C push {r4,r5,lr} ldr r5, _080EE5A8 movs r0, 0xC1 lsls r0, 2 adds r4, r5, r0 ldrh r0, [r4] cmp r0, 0x1 beq _080EE624 cmp r0, 0x1 bgt _080EE5AC cmp r0, 0 beq _080EE5B2 b _080EE652 .align 2, 0 _080EE5A8: .4byte 0x02000000 _080EE5AC: cmp r0, 0x2 beq _080EE648 b _080EE652 _080EE5B2: bl sub_80F5DD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080EE5E4 cmp r0, 0x2 beq _080EE5FC ldr r0, _080EE5DC ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080EE608 movs r0, 0x5 bl audio_play ldr r0, _080EE5E0 bl sub_80EBDBC b _080EE652 .align 2, 0 _080EE5DC: .4byte 0x03001770 _080EE5E0: .4byte sub_80EE658 _080EE5E4: movs r0, 0x5 bl audio_play ldr r1, _080EE5F8 adds r0, r5, r1 ldrb r0, [r0] bl sub_80F0FFC b _080EE652 .align 2, 0 _080EE5F8: .4byte 0x0000876e _080EE5FC: movs r0, 0x5 bl audio_play ldrh r0, [r4] adds r0, 0x1 b _080EE650 _080EE608: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080EE652 movs r0, 0x5 bl audio_play ldr r0, _080EE620 bl sub_80EBDBC b _080EE652 .align 2, 0 _080EE620: .4byte sub_80EE8F4 _080EE624: bl sub_80F0718 lsls r0, 24 cmp r0, 0 bne _080EE652 ldr r1, _080EE644 adds r0, r5, r1 ldrb r0, [r0] bl sub_80F0FFC bl sub_80F3264 ldrh r0, [r4] adds r0, 0x1 b _080EE650 .align 2, 0 _080EE644: .4byte 0x0000876e _080EE648: bl sub_8055870 cmp r0, 0 bne _080EE652 _080EE650: strh r0, [r4] _080EE652: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80EE58C thumb_func_start sub_80EE658 sub_80EE658: @ 80EE658 push {r4,r5,lr} ldr r1, _080EE678 movs r2, 0xC1 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] adds r4, r1, 0 cmp r0, 0x11 bls _080EE66C b _080EE8E8 _080EE66C: lsls r0, 2 ldr r1, _080EE67C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EE678: .4byte 0x02000000 _080EE67C: .4byte _080EE680 .align 2, 0 _080EE680: .4byte _080EE6C8 .4byte _080EE6DA .4byte _080EE6F4 .4byte _080EE708 .4byte _080EE71C .4byte _080EE730 .4byte _080EE758 .4byte _080EE76A .4byte _080EE780 .4byte _080EE820 .4byte _080EE840 .4byte _080EE854 .4byte _080EE868 .4byte _080EE86E .4byte _080EE880 .4byte _080EE898 .4byte _080EE8B4 .4byte _080EE8D4 _080EE6C8: movs r0, 0x1 bl sub_80F3294 movs r0, 0xA bl sub_80EEFBC bl sub_80F0B24 b _080EE8BE _080EE6DA: bl sub_80F0B44 lsls r0, 24 cmp r0, 0 beq _080EE6E6 b _080EE8E8 _080EE6E6: ldr r1, _080EE6F0 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EE8C6 .align 2, 0 _080EE6F0: .4byte 0x02000000 _080EE6F4: bl sub_80F0F64 ldr r1, _080EE704 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EE8C6 .align 2, 0 _080EE704: .4byte 0x02000000 _080EE708: bl sub_80F0FEC lsls r0, 24 cmp r0, 0 beq _080EE714 b _080EE8E8 _080EE714: movs r0, 0x1 bl sub_80F6FB8 b _080EE8BE _080EE71C: bl sub_80F6DB8 ldr r1, _080EE72C movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EE8C6 .align 2, 0 _080EE72C: .4byte 0x02000000 _080EE730: ldr r4, _080EE750 adds r0, r4, 0 subs r0, 0x1A ldrh r1, [r0] adds r0, r4, 0 bl sub_80F700C adds r0, r4, 0 bl sub_80F42C4 ldr r1, _080EE754 adds r4, r1 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080EE8E8 .align 2, 0 _080EE750: .4byte 0x02008788 _080EE754: .4byte 0xffff7b7c _080EE758: bl sub_80F0CD8 ldr r1, _080EE77C movs r2, 0xC1 lsls r2, 2 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EE76A: bl sub_80F6E9C lsls r0, 24 cmp r0, 0 beq _080EE776 b _080EE8E8 _080EE776: bl sub_80F0D5C b _080EE8B8 .align 2, 0 _080EE77C: .4byte 0x02000000 _080EE780: ldr r2, _080EE7B0 ldrh r1, [r2, 0x2C] movs r0, 0x40 ands r0, r1 adds r3, r2, 0 cmp r0, 0 beq _080EE7B8 ldr r1, _080EE7B4 adds r0, r4, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 beq _080EE7B8 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 bl sub_80F708C movs r5, 0xC1 lsls r5, 2 adds r1, r4, r5 b _080EE7E8 .align 2, 0 _080EE7B0: .4byte 0x03001770 _080EE7B4: .4byte 0x000087dc _080EE7B8: ldrh r1, [r3, 0x2C] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080EE7F8 ldr r1, _080EE7F0 adds r0, r4, r1 ldr r2, _080EE7F4 adds r1, r4, r2 movs r5, 0 ldrsh r2, [r0, r5] movs r5, 0 ldrsh r0, [r1, r5] cmp r2, r0 bge _080EE7F8 movs r0, 0x5 bl audio_play movs r0, 0x1 bl sub_80F708C movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 _080EE7E8: movs r0, 0x10 strh r0, [r1] b _080EE8E8 .align 2, 0 _080EE7F0: .4byte 0x000087dc _080EE7F4: .4byte 0x00008774 _080EE7F8: ldrh r1, [r3, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080EE8E8 movs r0, 0x5 bl audio_play bl sub_80F4394 bl sub_80F0EC0 ldr r1, _080EE81C movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EE8C6 .align 2, 0 _080EE81C: .4byte 0x02000000 _080EE820: bl sub_80F6ED4 lsls r0, 24 cmp r0, 0 bne _080EE8E8 bl sub_80F0EF4 lsls r0, 24 cmp r0, 0 bne _080EE8E8 movs r0, 0 bl sub_80F6FB8 bl sub_80F2FB0 b _080EE8BE _080EE840: bl sub_80F6134 ldr r1, _080EE850 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EE8C6 .align 2, 0 _080EE850: .4byte 0x02000000 _080EE854: bl sub_80F0FA0 ldr r1, _080EE864 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EE8C6 .align 2, 0 _080EE864: .4byte 0x02000000 _080EE868: bl sub_80F0FEC b _080EE8B8 _080EE86E: bl sub_80F0C28 ldr r1, _080EE87C movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EE8C6 .align 2, 0 _080EE87C: .4byte 0x02000000 _080EE880: bl sub_80F0C48 lsls r0, 24 cmp r0, 0 bne _080EE8E8 ldr r1, _080EE894 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EE8C6 .align 2, 0 _080EE894: .4byte 0x02000000 _080EE898: movs r0, 0x9 bl sub_80EEFBC movs r0, 0 bl sub_80F3294 ldr r0, _080EE8B0 bl sub_80EBDBC bl sub_80EED9C b _080EE8E8 .align 2, 0 _080EE8B0: .4byte sub_80EE58C _080EE8B4: bl sub_80F70FC _080EE8B8: lsls r0, 24 cmp r0, 0 bne _080EE8E8 _080EE8BE: ldr r1, _080EE8D0 movs r5, 0xC1 lsls r5, 2 adds r1, r5 _080EE8C6: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080EE8E8 .align 2, 0 _080EE8D0: .4byte 0x02000000 _080EE8D4: bl sub_8055870 cmp r0, 0 bne _080EE8E8 ldr r0, _080EE8F0 movs r1, 0xC1 lsls r1, 2 adds r0, r1 movs r1, 0x8 strh r1, [r0] _080EE8E8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EE8F0: .4byte 0x02000000 thumb_func_end sub_80EE658 thumb_func_start sub_80EE8F4 sub_80EE8F4: @ 80EE8F4 push {r4,lr} sub sp, 0x4 ldr r0, _080EE910 movs r1, 0xC1 lsls r1, 2 adds r4, r0, r1 ldrh r2, [r4] cmp r2, 0x1 beq _080EE932 cmp r2, 0x1 bgt _080EE914 cmp r2, 0 beq _080EE91A b _080EE95E .align 2, 0 _080EE910: .4byte 0x02000000 _080EE914: cmp r2, 0x2 beq _080EE958 b _080EE95E _080EE91A: movs r1, 0xC2 lsls r1, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x1 negs r1, r1 str r2, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _080EE94C _080EE932: ldr r0, _080EE954 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EE95E bl sub_80F3130 movs r0, 0x2 bl sub_80F2D6C bl sub_80F6FFC _080EE94C: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080EE95E .align 2, 0 _080EE954: .4byte 0x0202f388 _080EE958: ldr r0, _080EE968 bl sub_80EBDBC _080EE95E: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080EE968: .4byte sub_80EC00C thumb_func_end sub_80EE8F4 thumb_func_start sub_80EE96C sub_80EE96C: @ 80EE96C push {r4,r5,lr} sub sp, 0x4 ldr r0, _080EE99C movs r1, 0xC1 lsls r1, 2 adds r5, r0, r1 ldrh r4, [r5] cmp r4, 0 bne _080EE9A0 movs r0, 0x6F bl audio_play movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] b _080EE9B4 .align 2, 0 _080EE99C: .4byte 0x02000000 _080EE9A0: ldr r0, _080EE9BC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EE9B4 bl sub_80F5BDC bl sub_805469C _080EE9B4: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EE9BC: .4byte 0x0202f388 thumb_func_end sub_80EE96C thumb_func_start sub_80EE9C0 sub_80EE9C0: @ 80EE9C0 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 bl sub_80F1E84 ldr r1, _080EE9FC ldr r2, _080EEA00 adds r0, r1, r2 movs r2, 0 strb r4, [r0] ldr r3, _080EEA04 adds r0, r1, r3 strb r5, [r0] adds r3, 0x1 adds r0, r1, r3 strb r2, [r0] ldr r0, _080EEA08 adds r1, r0 strb r6, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080EE9FC: .4byte 0x02000000 _080EEA00: .4byte 0x00006e14 _080EEA04: .4byte 0x00006e15 _080EEA08: .4byte 0x00006e17 thumb_func_end sub_80EE9C0 thumb_func_start sub_80EEA0C sub_80EEA0C: @ 80EEA0C push {r4,lr} ldr r1, _080EEA28 ldr r2, _080EEA2C adds r0, r1, r2 ldrb r0, [r0] adds r3, r1, 0 cmp r0, 0x8 bls _080EEA1E b _080EEBFA _080EEA1E: lsls r0, 2 ldr r1, _080EEA30 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EEA28: .4byte 0x02000000 _080EEA2C: .4byte 0x00006e16 _080EEA30: .4byte _080EEA34 .align 2, 0 _080EEA34: .4byte _080EEA58 .4byte _080EEA98 .4byte _080EEAAE .4byte _080EEAD4 .4byte _080EEB3E .4byte _080EEB68 .4byte _080EEB88 .4byte _080EEBAC .4byte _080EEBE4 _080EEA58: bl sub_80F1F10 lsls r0, 24 cmp r0, 0 beq _080EEA64 b _080EEC08 _080EEA64: ldr r1, _080EEA7C ldr r4, _080EEA80 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0xC beq _080EEA88 ldr r0, _080EEA84 adds r1, r0 movs r0, 0x1 strb r0, [r1] b _080EEC08 .align 2, 0 _080EEA7C: .4byte 0x02000000 _080EEA80: .4byte 0x00006e17 _080EEA84: .4byte 0x00006e16 _080EEA88: ldr r2, _080EEA94 adds r1, r2 movs r0, 0x3 strb r0, [r1] b _080EEC08 .align 2, 0 _080EEA94: .4byte 0x00006e16 _080EEA98: ldr r4, _080EEAC8 ldr r1, _080EEACC adds r0, r4, r1 ldrb r0, [r0] bl sub_80F2C80 ldr r2, _080EEAD0 adds r4, r2 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _080EEAAE: ldr r4, _080EEAC8 ldr r1, _080EEACC adds r0, r4, r1 ldrb r0, [r0] bl sub_80F2CBC lsls r0, 24 cmp r0, 0 beq _080EEAC2 b _080EEC08 _080EEAC2: ldr r2, _080EEAD0 adds r1, r4, r2 b _080EEB76 .align 2, 0 _080EEAC8: .4byte 0x02000000 _080EEACC: .4byte 0x00006e17 _080EEAD0: .4byte 0x00006e16 _080EEAD4: adds r2, r3, 0 ldr r4, _080EEAF8 adds r0, r2, r4 ldrb r1, [r0] subs r4, 0x68 adds r0, r2, r4 strb r1, [r0] ldr r1, _080EEAFC adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x1 beq _080EEB14 cmp r0, 0x1 bgt _080EEB00 cmp r0, 0 beq _080EEB06 b _080EEB28 .align 2, 0 _080EEAF8: .4byte 0x00006e15 _080EEAFC: .4byte 0x00006e14 _080EEB00: cmp r0, 0x2 beq _080EEB20 b _080EEB28 _080EEB06: ldr r4, _080EEB10 adds r1, r2, r4 movs r0, 0x5 b _080EEB26 .align 2, 0 _080EEB10: .4byte 0x00006dae _080EEB14: ldr r0, _080EEB1C adds r1, r2, r0 movs r0, 0x3 b _080EEB26 .align 2, 0 _080EEB1C: .4byte 0x00006dae _080EEB20: ldr r2, _080EEB58 adds r1, r3, r2 movs r0, 0x6 _080EEB26: strb r0, [r1] _080EEB28: ldr r4, _080EEB5C ldr r1, _080EEB60 adds r0, r4, r1 ldrb r0, [r0] bl sub_80F1B8C ldr r2, _080EEB64 adds r4, r2 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _080EEB3E: ldr r4, _080EEB5C ldr r1, _080EEB60 adds r0, r4, r1 ldrb r0, [r0] bl sub_80F1BC8 lsls r0, 24 cmp r0, 0 bne _080EEC08 ldr r2, _080EEB64 adds r1, r4, r2 b _080EEB76 .align 2, 0 _080EEB58: .4byte 0x00006dae _080EEB5C: .4byte 0x02000000 _080EEB60: .4byte 0x00006e14 _080EEB64: .4byte 0x00006e16 _080EEB68: bl sub_8055870 cmp r0, 0 bne _080EEC08 ldr r1, _080EEB80 ldr r4, _080EEB84 adds r1, r4 _080EEB76: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080EEC08 .align 2, 0 _080EEB80: .4byte 0x02000000 _080EEB84: .4byte 0x00006e16 _080EEB88: bl sub_80F1DF0 ldr r4, _080EEBA0 ldr r1, _080EEBA4 adds r0, r4, r1 ldrb r0, [r0] bl sub_80EF490 ldr r2, _080EEBA8 adds r4, r2 b _080EEBCC .align 2, 0 _080EEBA0: .4byte 0x02000000 _080EEBA4: .4byte 0x00006e14 _080EEBA8: .4byte 0x00006e16 _080EEBAC: bl sub_80F1E50 lsls r0, 24 cmp r0, 0 bne _080EEC08 ldr r4, _080EEBD4 ldr r1, _080EEBD8 adds r0, r4, r1 ldrb r0, [r0] ldr r2, _080EEBDC adds r1, r4, r2 ldrb r1, [r1] bl sub_80EF428 ldr r0, _080EEBE0 adds r4, r0 _080EEBCC: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _080EEC08 .align 2, 0 _080EEBD4: .4byte 0x02000000 _080EEBD8: .4byte 0x00006e14 _080EEBDC: .4byte 0x00006dad _080EEBE0: .4byte 0x00006e16 _080EEBE4: bl sub_80EF4F8 lsls r0, 24 cmp r0, 0 bne _080EEC08 ldr r1, _080EEC00 ldr r2, _080EEC04 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080EEBFA: movs r0, 0 b _080EEC0A .align 2, 0 _080EEC00: .4byte 0x02000000 _080EEC04: .4byte 0x00006e16 _080EEC08: movs r0, 0x1 _080EEC0A: pop {r4} pop {r1} bx r1 thumb_func_end sub_80EEA0C thumb_func_start sub_80EEC10 sub_80EEC10: @ 80EEC10 push {r4,lr} ldr r0, _080EEC48 ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080EEC50 ldr r1, _080EEC4C adds r3, r1, 0x1 adds r2, r1, 0x5 _080EEC24: ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bge _080EEC36 ldrb r0, [r3] subs r0, 0x1 strb r0, [r1] _080EEC36: movs r0, 0 ldrsb r0, [r1, r0] adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _080EEC24 movs r0, 0x1 b _080EEC8A .align 2, 0 _080EEC48: .4byte 0x03001770 _080EEC4C: .4byte 0x02006dad _080EEC50: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080EEC88 ldr r1, _080EEC84 movs r4, 0 movs r2, 0x1 ldrsb r2, [r1, r2] adds r3, r1, 0x5 _080EEC62: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 asrs r0, 24 cmp r0, r2 blt _080EEC72 strb r4, [r1] _080EEC72: movs r0, 0 ldrsb r0, [r1, r0] adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _080EEC62 movs r0, 0x1 b _080EEC8A .align 2, 0 _080EEC84: .4byte 0x02006dad _080EEC88: movs r0, 0 _080EEC8A: pop {r4} pop {r1} bx r1 thumb_func_end sub_80EEC10 thumb_func_start sub_80EEC90 sub_80EEC90: @ 80EEC90 push {r4,lr} ldr r0, _080EECC0 ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _080EECD0 ldr r2, _080EECC4 ldr r0, _080EECC8 adds r1, r2, r0 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bge _080EECF8 ldr r3, _080EECCC adds r0, r2, r3 ldrb r0, [r0] subs r0, 0x1 strb r0, [r1] b _080EECF8 .align 2, 0 _080EECC0: .4byte 0x03001770 _080EECC4: .4byte 0x02000000 _080EECC8: .4byte 0x00006dad _080EECCC: .4byte 0x00006dae _080EECD0: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080EED04 ldr r0, _080EECFC ldr r4, _080EED00 adds r2, r0, r4 ldrb r1, [r2] adds r1, 0x1 strb r1, [r2] adds r4, 0x1 adds r0, r4 lsls r1, 24 asrs r1, 24 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 blt _080EECF8 strb r3, [r2] _080EECF8: movs r0, 0x1 b _080EED06 .align 2, 0 _080EECFC: .4byte 0x02000000 _080EED00: .4byte 0x00006dad _080EED04: movs r0, 0 _080EED06: pop {r4} pop {r1} bx r1 thumb_func_end sub_80EEC90 thumb_func_start sub_80EED0C sub_80EED0C: @ 80EED0C movs r1, 0x80 lsls r1, 19 movs r2, 0x80 lsls r2, 2 adds r0, r2, 0 strh r0, [r1] bx lr thumb_func_end sub_80EED0C thumb_func_start sub_80EED1C sub_80EED1C: @ 80EED1C movs r1, 0x80 lsls r1, 19 movs r2, 0x92 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] bx lr thumb_func_end sub_80EED1C thumb_func_start sub_80EED2C sub_80EED2C: @ 80EED2C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bhi _080EED98 lsls r0, 2 ldr r1, _080EED40 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EED40: .4byte _080EED44 .align 2, 0 _080EED44: .4byte _080EED5C .4byte _080EED66 .4byte _080EED7E .4byte _080EED74 .4byte _080EED74 .4byte _080EED8C _080EED5C: movs r1, 0x80 lsls r1, 19 movs r2, 0xFA lsls r2, 5 b _080EED94 _080EED66: movs r1, 0x80 lsls r1, 19 ldr r2, _080EED70 b _080EED94 .align 2, 0 _080EED70: .4byte 0x00001741 _080EED74: movs r1, 0x80 lsls r1, 19 movs r2, 0xFA lsls r2, 5 b _080EED94 _080EED7E: movs r1, 0x80 lsls r1, 19 ldr r2, _080EED88 b _080EED94 .align 2, 0 _080EED88: .4byte 0x00007b40 _080EED8C: movs r1, 0x80 lsls r1, 19 movs r2, 0xFD lsls r2, 6 _080EED94: adds r0, r2, 0 strh r0, [r1] _080EED98: pop {r0} bx r0 thumb_func_end sub_80EED2C thumb_func_start sub_80EED9C sub_80EED9C: @ 80EED9C push {lr} ldr r2, _080EEDB8 ldr r0, _080EEDBC movs r1, 0xC0 lsls r1, 2 adds r0, r1 ldr r1, [r0] str r1, [r2] ldr r1, _080EEDC0 str r1, [r0] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _080EEDB8: .4byte 0x03000744 _080EEDBC: .4byte 0x02000000 _080EEDC0: .4byte sub_80EEDC4 thumb_func_end sub_80EED9C thumb_func_start sub_80EEDC4 sub_80EEDC4: @ 80EEDC4 push {lr} bl sub_8055870 cmp r0, 0x1 beq _080EEDDC ldr r0, _080EEDE0 movs r1, 0xC0 lsls r1, 2 adds r0, r1 ldr r1, _080EEDE4 ldr r1, [r1] str r1, [r0] _080EEDDC: pop {r0} bx r0 .align 2, 0 _080EEDE0: .4byte 0x02000000 _080EEDE4: .4byte 0x03000744 thumb_func_end sub_80EEDC4 thumb_func_start sub_80EEDE8 sub_80EEDE8: @ 80EEDE8 ldr r0, _080EEE04 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x8 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bx lr .align 2, 0 _080EEE04: .4byte REG_BG0HOFS thumb_func_end sub_80EEDE8 thumb_func_start sub_80EEE08 sub_80EEE08: @ 80EEE08 ldr r0, _080EEE18 ldr r0, [r0] ldr r1, _080EEE1C adds r0, r1 movs r1, 0 strh r1, [r0] bx lr .align 2, 0 _080EEE18: .4byte gUnknown_083DFEC4 _080EEE1C: .4byte 0x0000d160 thumb_func_end sub_80EEE08 thumb_func_start sub_80EEE20 sub_80EEE20: @ 80EEE20 push {lr} ldr r0, _080EEE48 ldr r0, [r0] ldr r1, _080EEE4C adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080EEE50 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080EEE42 _080EEE38: bl sub_80EEE54 lsls r0, 24 cmp r0, 0 bne _080EEE38 _080EEE42: pop {r0} bx r0 .align 2, 0 _080EEE48: .4byte gUnknown_083DFEC4 _080EEE4C: .4byte 0x0000d160 _080EEE50: .4byte 0x00006dac thumb_func_end sub_80EEE20 thumb_func_start sub_80EEE54 sub_80EEE54: @ 80EEE54 push {lr} ldr r1, _080EEE70 ldr r0, [r1] ldr r2, _080EEE74 adds r0, r2 ldrh r0, [r0] adds r2, r1, 0 cmp r0, 0x4 bhi _080EEF02 lsls r0, 2 ldr r1, _080EEE78 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EEE70: .4byte gUnknown_083DFEC4 _080EEE74: .4byte 0x0000d160 _080EEE78: .4byte _080EEE7C .align 2, 0 _080EEE7C: .4byte _080EEE90 .4byte _080EEEA4 .4byte _080EEEB8 .4byte _080EEEC8 .4byte _080EEEDC _080EEE90: ldr r0, _080EEE9C ldr r1, _080EEEA0 bl LZ77UnCompVram b _080EEF18 .align 2, 0 _080EEE9C: .4byte gUnknown_08E88D4C _080EEEA0: .4byte 0x0600c000 _080EEEA4: ldr r0, _080EEEB0 ldr r1, _080EEEB4 bl LZ77UnCompVram b _080EEF18 .align 2, 0 _080EEEB0: .4byte gUnknown_08E99FB0 _080EEEB4: .4byte 0x0600d800 _080EEEB8: ldr r0, _080EEEC4 movs r1, 0x10 movs r2, 0x20 bl LoadPalette b _080EEF18 .align 2, 0 _080EEEC4: .4byte gUnknown_08E89628 _080EEEC8: movs r0, 0 bl sub_80EF58C movs r0, 0x1 bl sub_80EF58C movs r0, 0x2 bl sub_80EF58C b _080EEF18 _080EEEDC: ldr r2, [r2] movs r3, 0xC3 lsls r3, 2 adds r0, r2, r3 movs r1, 0 strh r1, [r0] ldr r0, _080EEF08 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _080EEF0C ldr r3, _080EEF10 adds r0, r3, 0 strh r0, [r1] ldr r0, _080EEF14 adds r2, r0 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] _080EEF02: movs r0, 0 b _080EEF28 .align 2, 0 _080EEF08: .4byte REG_BG1HOFS _080EEF0C: .4byte REG_BG1CNT _080EEF10: .4byte 0x00001b0c _080EEF14: .4byte 0x0000d160 _080EEF18: ldr r0, _080EEF2C ldr r1, [r0] ldr r2, _080EEF30 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0x1 _080EEF28: pop {r1} bx r1 .align 2, 0 _080EEF2C: .4byte gUnknown_083DFEC4 _080EEF30: .4byte 0x0000d160 thumb_func_end sub_80EEE54 thumb_func_start sub_80EEF34 sub_80EEF34: @ 80EEF34 push {r4,lr} movs r3, 0x1 ldr r0, _080EEF50 ldr r0, [r0] movs r1, 0xC3 lsls r1, 2 adds r2, r0, r1 ldrh r1, [r2] movs r4, 0 ldrsh r0, [r2, r4] cmp r0, 0x20 bne _080EEF54 movs r0, 0 b _080EEF6E .align 2, 0 _080EEF50: .4byte gUnknown_083DFEC4 _080EEF54: adds r0, r1, 0x2 strh r0, [r2] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F ble _080EEF66 movs r0, 0x20 strh r0, [r2] movs r3, 0 _080EEF66: ldr r1, _080EEF74 ldrh r0, [r2] strh r0, [r1] adds r0, r3, 0 _080EEF6E: pop {r4} pop {r1} bx r1 .align 2, 0 _080EEF74: .4byte REG_BG1VOFS thumb_func_end sub_80EEF34 thumb_func_start sub_80EEF78 sub_80EEF78: @ 80EEF78 push {r4,lr} movs r3, 0x1 ldr r0, _080EEF94 ldr r0, [r0] movs r1, 0xC3 lsls r1, 2 adds r2, r0, r1 ldrh r1, [r2] movs r4, 0 ldrsh r0, [r2, r4] cmp r0, 0 bne _080EEF98 movs r0, 0 b _080EEFB0 .align 2, 0 _080EEF94: .4byte gUnknown_083DFEC4 _080EEF98: subs r0, r1, 0x2 strh r0, [r2] lsls r0, 16 cmp r0, 0 bgt _080EEFA8 movs r0, 0 strh r0, [r2] movs r3, 0 _080EEFA8: ldr r1, _080EEFB8 ldrh r0, [r2] strh r0, [r1] adds r0, r3, 0 _080EEFB0: pop {r4} pop {r1} bx r1 .align 2, 0 _080EEFB8: .4byte REG_BG1VOFS thumb_func_end sub_80EEF78 thumb_func_start sub_80EEFBC sub_80EEFBC: @ 80EEFBC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080EEFF4 ldr r3, _080EEFF8 movs r1, 0 str r1, [sp] str r1, [sp, 0x4] movs r1, 0x11 str r1, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] movs r1, 0 movs r2, 0x16 bl sub_809D104 cmp r4, 0xB bls _080EEFE8 b _080EF234 _080EEFE8: lsls r0, r4, 2 ldr r1, _080EEFFC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EEFF4: .4byte 0x0600d800 _080EEFF8: .4byte gUnknown_08E9A100 _080EEFFC: .4byte _080EF000 .align 2, 0 _080EF000: .4byte _080EF030 .4byte _080EF234 .4byte _080EF08C .4byte _080EF100 .4byte _080EF13C .4byte _080EF1D4 .4byte _080EF234 .4byte _080EF178 .4byte _080EF190 .4byte _080EF1D4 .4byte _080EF218 .4byte _080EF06C _080EF030: ldr r6, _080EF064 ldr r0, _080EF068 mov r8, r0 movs r0, 0x11 str r0, [sp] movs r4, 0 str r4, [sp, 0x4] movs r0, 0xA str r0, [sp, 0x8] movs r5, 0x2 str r5, [sp, 0xC] adds r0, r6, 0 movs r1, 0 movs r2, 0x16 mov r3, r8 bl sub_809D104 str r4, [sp] movs r0, 0x6 str r0, [sp, 0x4] movs r0, 0x7 str r0, [sp, 0x8] str r5, [sp, 0xC] adds r0, r6, 0 movs r1, 0xA b _080EF204 .align 2, 0 _080EF064: .4byte 0x0600d800 _080EF068: .4byte gUnknown_08E9A100 _080EF06C: ldr r0, _080EF084 ldr r3, _080EF088 movs r1, 0 str r1, [sp] movs r1, 0x6 str r1, [sp, 0x4] movs r1, 0x7 str r1, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] movs r1, 0x8 b _080EF0EE .align 2, 0 _080EF084: .4byte 0x0600d800 _080EF088: .4byte gUnknown_08E9A100 _080EF08C: ldr r0, _080EF0C8 ldr r0, [r0] ldr r1, _080EF0CC adds r0, r1 ldrb r7, [r0] cmp r7, 0 bne _080EF0D8 ldr r5, _080EF0D0 ldr r6, _080EF0D4 movs r0, 0xA str r0, [sp] movs r4, 0x2 str r4, [sp, 0x4] str r0, [sp, 0x8] str r4, [sp, 0xC] adds r0, r5, 0 movs r1, 0 movs r2, 0x16 adds r3, r6, 0 bl sub_809D104 str r7, [sp] movs r0, 0x6 str r0, [sp, 0x4] movs r0, 0x7 str r0, [sp, 0x8] str r4, [sp, 0xC] adds r0, r5, 0 movs r1, 0xA b _080EF1C2 .align 2, 0 _080EF0C8: .4byte gUnknown_083DFEC4 _080EF0CC: .4byte 0x00006dac _080EF0D0: .4byte 0x0600d800 _080EF0D4: .4byte gUnknown_08E9A100 _080EF0D8: ldr r0, _080EF0F8 ldr r3, _080EF0FC movs r1, 0 str r1, [sp] movs r1, 0x6 str r1, [sp, 0x4] movs r1, 0x7 str r1, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] movs r1, 0xA _080EF0EE: movs r2, 0x16 bl sub_809D104 b _080EF234 .align 2, 0 _080EF0F8: .4byte 0x0600d800 _080EF0FC: .4byte gUnknown_08E9A100 _080EF100: ldr r6, _080EF134 ldr r0, _080EF138 mov r8, r0 movs r5, 0 str r5, [sp] movs r0, 0x4 str r0, [sp, 0x4] movs r0, 0xA str r0, [sp, 0x8] movs r4, 0x2 str r4, [sp, 0xC] adds r0, r6, 0 movs r1, 0 movs r2, 0x16 mov r3, r8 bl sub_809D104 str r5, [sp] movs r0, 0x6 str r0, [sp, 0x4] movs r0, 0x7 str r0, [sp, 0x8] str r4, [sp, 0xC] adds r0, r6, 0 movs r1, 0xA b _080EF204 .align 2, 0 _080EF134: .4byte 0x0600d800 _080EF138: .4byte gUnknown_08E9A100 _080EF13C: ldr r5, _080EF170 ldr r6, _080EF174 movs r0, 0x14 str r0, [sp] movs r4, 0x2 str r4, [sp, 0x4] movs r0, 0xA str r0, [sp, 0x8] str r4, [sp, 0xC] adds r0, r5, 0 movs r1, 0 movs r2, 0x16 adds r3, r6, 0 bl sub_809D104 movs r0, 0 str r0, [sp] movs r0, 0x6 str r0, [sp, 0x4] movs r0, 0x7 str r0, [sp, 0x8] str r4, [sp, 0xC] adds r0, r5, 0 movs r1, 0xA b _080EF1C2 .align 2, 0 _080EF170: .4byte 0x0600d800 _080EF174: .4byte gUnknown_08E9A100 _080EF178: ldr r5, _080EF188 ldr r6, _080EF18C movs r1, 0xA str r1, [sp] movs r0, 0x4 str r0, [sp, 0x4] str r1, [sp, 0x8] b _080EF1A0 .align 2, 0 _080EF188: .4byte 0x0600d800 _080EF18C: .4byte gUnknown_08E9A100 _080EF190: ldr r5, _080EF1CC ldr r6, _080EF1D0 movs r0, 0x14 str r0, [sp] movs r0, 0x4 str r0, [sp, 0x4] movs r0, 0xA str r0, [sp, 0x8] _080EF1A0: movs r4, 0x2 str r4, [sp, 0xC] adds r0, r5, 0 movs r1, 0 movs r2, 0x16 adds r3, r6, 0 bl sub_809D104 movs r0, 0 str r0, [sp] movs r0, 0x6 str r0, [sp, 0x4] movs r0, 0x7 str r0, [sp, 0x8] str r4, [sp, 0xC] adds r0, r5, 0 movs r1, 0x7 _080EF1C2: movs r2, 0x16 adds r3, r6, 0 bl sub_809D104 b _080EF234 .align 2, 0 _080EF1CC: .4byte 0x0600d800 _080EF1D0: .4byte gUnknown_08E9A100 _080EF1D4: ldr r6, _080EF210 ldr r1, _080EF214 mov r8, r1 movs r5, 0 str r5, [sp] movs r4, 0x2 str r4, [sp, 0x4] movs r0, 0xA str r0, [sp, 0x8] str r4, [sp, 0xC] adds r0, r6, 0 movs r1, 0 movs r2, 0x16 mov r3, r8 bl sub_809D104 str r5, [sp] movs r0, 0x6 str r0, [sp, 0x4] movs r0, 0x7 str r0, [sp, 0x8] str r4, [sp, 0xC] adds r0, r6, 0 movs r1, 0x8 _080EF204: movs r2, 0x16 mov r3, r8 bl sub_809D104 b _080EF234 .align 2, 0 _080EF210: .4byte 0x0600d800 _080EF214: .4byte gUnknown_08E9A100 _080EF218: ldr r0, _080EF240 ldr r3, _080EF244 movs r1, 0 str r1, [sp] movs r1, 0x6 str r1, [sp, 0x4] movs r1, 0x7 str r1, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] movs r1, 0x8 movs r2, 0x16 bl sub_809D104 _080EF234: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EF240: .4byte 0x0600d800 _080EF244: .4byte gUnknown_08E9A100 thumb_func_end sub_80EEFBC thumb_func_start sub_80EF248 sub_80EF248: @ 80EF248 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080EF278 ldr r0, [r0] ldr r1, _080EF27C adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080EF280 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080EF270 _080EF264: adds r0, r4, 0 bl sub_80EF284 lsls r0, 24 cmp r0, 0 bne _080EF264 _080EF270: pop {r4} pop {r0} bx r0 .align 2, 0 _080EF278: .4byte gUnknown_083DFEC4 _080EF27C: .4byte 0x0000d160 _080EF280: .4byte 0x00006dac thumb_func_end sub_80EF248 thumb_func_start sub_80EF284 sub_80EF284: @ 80EF284 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080EF2A8 ldr r0, [r1] ldr r3, _080EF2AC adds r0, r3 ldrh r0, [r0] adds r3, r1, 0 cmp r0, 0xB bls _080EF29C b _080EF3F6 _080EF29C: lsls r0, 2 ldr r1, _080EF2B0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EF2A8: .4byte gUnknown_083DFEC4 _080EF2AC: .4byte 0x0000d160 _080EF2B0: .4byte _080EF2B4 .align 2, 0 _080EF2B4: .4byte _080EF2E4 .4byte _080EF2EA .4byte _080EF2F8 .4byte _080EF304 .4byte _080EF310 .4byte _080EF330 .4byte _080EF344 .4byte _080EF368 .4byte _080EF37C .4byte _080EF390 .4byte _080EF3A4 .4byte _080EF3CC _080EF2E4: bl sub_80EEDE8 b _080EF40C _080EF2EA: ldr r0, _080EF2F4 bl SetUpWindowConfig b _080EF40C .align 2, 0 _080EF2F4: .4byte gWindowConfig_81E7224 _080EF2F8: ldr r0, _080EF300 bl sub_8071C58 b _080EF40C .align 2, 0 _080EF300: .4byte gWindowConfig_81E7224 _080EF304: bl sub_8071C94 cmp r0, 0 beq _080EF30E b _080EF40C _080EF30E: b _080EF41A _080EF310: ldr r1, _080EF320 ldr r2, _080EF324 ldr r0, _080EF328 str r1, [r0] str r2, [r0, 0x4] ldr r1, _080EF32C b _080EF350 .align 2, 0 _080EF320: .4byte gUnknown_083DFEEC _080EF324: .4byte 0x06005000 _080EF328: .4byte 0x040000d4 _080EF32C: .4byte 0x80000050 _080EF330: ldr r0, _080EF33C ldr r1, _080EF340 bl LZ77UnCompVram b _080EF40C .align 2, 0 _080EF33C: .4byte gUnknown_083DFF8C _080EF340: .4byte 0x0600f800 _080EF344: ldr r1, _080EF358 ldr r2, _080EF35C ldr r0, _080EF360 str r1, [r0] str r2, [r0, 0x4] ldr r1, _080EF364 _080EF350: str r1, [r0, 0x8] ldr r0, [r0, 0x8] b _080EF40C .align 2, 0 _080EF358: .4byte gUnknown_083E005C _080EF35C: .4byte 0x06008000 _080EF360: .4byte 0x040000d4 _080EF364: .4byte 0x80000010 _080EF368: ldr r0, _080EF374 ldr r1, _080EF378 bl LZ77UnCompVram b _080EF40C .align 2, 0 _080EF374: .4byte gUnknown_083E007C _080EF378: .4byte 0x0600e000 _080EF37C: ldr r0, _080EF388 ldr r1, _080EF38C bl LZ77UnCompVram b _080EF40C .align 2, 0 _080EF388: .4byte gPokenavOutlineTilemap _080EF38C: .4byte 0x0600e800 _080EF390: ldr r0, _080EF39C ldr r1, _080EF3A0 bl LZ77UnCompVram b _080EF40C .align 2, 0 _080EF39C: .4byte gPokenavOutlineTiles _080EF3A0: .4byte 0x06008020 _080EF3A4: adds r0, r2, 0 bl sub_80EF54C ldr r0, _080EF3C4 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r0, _080EF3C8 movs r1, 0x40 movs r2, 0x20 bl LoadPalette bl sub_80EF7D4 b _080EF40C .align 2, 0 _080EF3C4: .4byte gUnknown_083DFECC _080EF3C8: .4byte gPokenavOutlinePalette _080EF3CC: ldr r1, _080EF3FC ldr r2, _080EF400 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080EF404 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 subs r2, 0xFF adds r0, r2, 0 strh r0, [r1] adds r1, 0x42 movs r0, 0 strh r0, [r1] ldr r1, [r3] ldr r3, _080EF408 adds r1, r3 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EF3F6: movs r0, 0 b _080EF41C .align 2, 0 _080EF3FC: .4byte REG_BG0CNT _080EF400: .4byte 0x00001f01 _080EF404: .4byte 0x00001d0a _080EF408: .4byte 0x0000d160 _080EF40C: ldr r0, _080EF420 ldr r1, [r0] ldr r0, _080EF424 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EF41A: movs r0, 0x1 _080EF41C: pop {r1} bx r1 .align 2, 0 _080EF420: .4byte gUnknown_083DFEC4 _080EF424: .4byte 0x0000d160 thumb_func_end sub_80EF284 thumb_func_start sub_80EF428 sub_80EF428: @ 80EF428 push {r4,lr} lsls r0, 24 lsrs r0, 24 adds r3, r0, 0 lsls r1, 24 lsrs r2, r1, 24 movs r1, 0 cmp r0, 0x1 beq _080EF454 cmp r0, 0x1 bgt _080EF444 cmp r0, 0 beq _080EF44A b _080EF464 _080EF444: cmp r3, 0x2 beq _080EF45C b _080EF464 _080EF44A: ldr r1, _080EF450 b _080EF45E .align 2, 0 _080EF450: .4byte gUnknown_083E31B0 _080EF454: ldr r1, _080EF458 b _080EF45E .align 2, 0 _080EF458: .4byte gUnknown_083E31CC _080EF45C: ldr r1, _080EF488 _080EF45E: lsls r0, r2, 2 adds r0, r1 ldr r1, [r0] _080EF464: ldr r0, _080EF48C ldr r4, [r0] movs r0, 0x80 lsls r0, 4 adds r4, r0 adds r0, r4, 0 movs r2, 0xC0 movs r3, 0x2 bl sub_8072C74 adds r0, r4, 0 movs r1, 0x3 movs r2, 0x11 bl Print pop {r4} pop {r0} bx r0 .align 2, 0 _080EF488: .4byte gUnknown_083E31D8 _080EF48C: .4byte gUnknown_083DFEC8 thumb_func_end sub_80EF428 thumb_func_start sub_80EF490 sub_80EF490: @ 80EF490 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bne _080EF49C movs r2, 0x1 _080EF49C: ldr r0, _080EF4C4 ldr r3, [r0] lsls r1, r2, 4 subs r1, r2 lsls r2, r1, 1 ldr r4, _080EF4C8 adds r0, r3, r4 strh r2, [r0] ldr r2, _080EF4CC adds r0, r3, r2 ldrh r2, [r0] lsls r1, 17 lsrs r0, r1, 16 cmp r2, r0 bcs _080EF4D0 adds r4, 0x2 adds r1, r3, r4 movs r0, 0x2 b _080EF4EA .align 2, 0 _080EF4C4: .4byte gUnknown_083DFEC4 _080EF4C8: .4byte 0x0000ce4e _080EF4CC: .4byte 0x0000ce4c _080EF4D0: cmp r2, r0 bls _080EF4E4 ldr r0, _080EF4DC adds r1, r3, r0 ldr r0, _080EF4E0 b _080EF4EA .align 2, 0 _080EF4DC: .4byte 0x0000ce50 _080EF4E0: .4byte 0x0000fffe _080EF4E4: ldr r2, _080EF4F4 adds r1, r3, r2 movs r0, 0 _080EF4EA: strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080EF4F4: .4byte 0x0000ce50 thumb_func_end sub_80EF490 thumb_func_start sub_80EF4F8 sub_80EF4F8: @ 80EF4F8 push {r4,lr} ldr r0, _080EF530 ldr r1, [r0] ldr r0, _080EF534 adds r2, r1, r0 ldr r3, _080EF538 adds r0, r1, r3 ldrh r3, [r2] ldrh r0, [r0] cmp r3, r0 beq _080EF544 ldr r4, _080EF53C adds r0, r1, r4 ldrh r0, [r0] adds r0, r3, r0 strh r0, [r2] ldr r3, _080EF540 adds r0, r1, r3 ldrh r1, [r2] lsls r1, 1 adds r0, r1 movs r1, 0x31 movs r2, 0x4 bl LoadPalette movs r0, 0x1 b _080EF546 .align 2, 0 _080EF530: .4byte gUnknown_083DFEC4 _080EF534: .4byte 0x0000ce4c _080EF538: .4byte 0x0000ce4e _080EF53C: .4byte 0x0000ce50 _080EF540: .4byte 0x0000ce52 _080EF544: movs r0, 0 _080EF546: pop {r4} pop {r1} bx r1 thumb_func_end sub_80EF4F8 thumb_func_start sub_80EF54C sub_80EF54C: @ 80EF54C push {lr} lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bne _080EF558 movs r2, 0x1 _080EF558: ldr r0, _080EF580 ldr r0, [r0] lsls r1, r2, 4 subs r1, r2 lsls r1, 1 ldr r3, _080EF584 adds r2, r0, r3 strh r1, [r2] ldrh r1, [r2] lsls r1, 1 ldr r2, _080EF588 adds r1, r2 adds r0, r1 movs r1, 0x31 movs r2, 0x4 bl LoadPalette pop {r0} bx r0 .align 2, 0 _080EF580: .4byte gUnknown_083DFEC4 _080EF584: .4byte 0x0000ce4c _080EF588: .4byte 0x0000ce52 thumb_func_end sub_80EF54C thumb_func_start sub_80EF58C sub_80EF58C: @ 80EF58C push {lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x1 beq _080EF5D0 cmp r0, 0x1 bgt _080EF5A4 cmp r0, 0 beq _080EF5AA b _080EF610 _080EF5A4: cmp r1, 0x2 beq _080EF5F8 b _080EF610 _080EF5AA: movs r1, 0 ldr r0, _080EF5C8 ldr r0, [r0] ldr r3, _080EF5CC adds r2, r0, r3 movs r3, 0 _080EF5B6: lsls r0, r1, 1 adds r0, r2, r0 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x3D bls _080EF5B6 b _080EF610 .align 2, 0 _080EF5C8: .4byte gUnknown_083DFEC4 _080EF5CC: .4byte 0x0000ce52 _080EF5D0: ldr r0, _080EF5EC ldr r0, [r0] ldr r1, _080EF5F0 adds r2, r0, r1 ldr r1, _080EF5F4 adds r0, r1, 0x2 adds r1, 0x6 str r2, [sp] movs r2, 0x10 movs r3, 0x2 bl sub_80EF624 b _080EF610 .align 2, 0 _080EF5EC: .4byte gUnknown_083DFEC4 _080EF5F0: .4byte 0x0000ce52 _080EF5F4: .4byte gUnknown_083E003C _080EF5F8: ldr r0, _080EF618 ldr r0, [r0] ldr r3, _080EF61C adds r2, r0, r3 ldr r1, _080EF620 adds r0, r1, 0x6 adds r1, 0xE str r2, [sp] movs r2, 0x10 movs r3, 0x2 bl sub_80EF624 _080EF610: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080EF618: .4byte gUnknown_083DFEC4 _080EF61C: .4byte 0x0000ce8e _080EF620: .4byte gUnknown_083E003C thumb_func_end sub_80EF58C thumb_func_start sub_80EF624 sub_80EF624: @ 80EF624 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x38 str r0, [sp] str r1, [sp, 0x4] ldr r4, [sp, 0x58] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x8] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0xC] movs r0, 0 str r0, [sp, 0x10] lsls r0, r3, 16 ldr r1, [sp, 0x10] cmp r1, r3 bcs _080EF72E subs r2, 0x1 str r2, [sp, 0x20] str r0, [sp, 0x2C] _080EF654: ldr r2, [sp] ldrh r1, [r2] movs r0, 0x1F ands r0, r1 lsls r7, r0, 8 lsls r1, 16 lsrs r0, r1, 21 movs r2, 0x1F ands r0, r2 lsls r6, r0, 8 lsrs r1, 26 ands r1, r2 lsls r5, r1, 8 ldr r0, [sp, 0x4] ldrh r1, [r0] movs r0, 0x1F ands r0, r1 lsls r0, 8 str r0, [sp, 0x14] lsls r1, 16 lsrs r0, r1, 21 ands r0, r2 lsls r0, 8 str r0, [sp, 0x18] lsrs r1, 26 ands r1, r2 lsls r1, 8 str r1, [sp, 0x1C] ldr r1, [sp, 0x14] subs r0, r1, r7 ldr r1, [sp, 0x8] bl __divsi3 mov r10, r0 ldr r2, [sp, 0x18] subs r0, r2, r6 ldr r1, [sp, 0x8] bl __divsi3 mov r9, r0 ldr r1, [sp, 0x1C] subs r0, r1, r5 ldr r1, [sp, 0x8] bl __divsi3 mov r8, r0 adds r3, r4, 0 movs r4, 0 ldr r2, [sp] adds r2, 0x2 str r2, [sp, 0x30] ldr r0, [sp, 0x4] adds r0, 0x2 str r0, [sp, 0x34] adds r1, r3, 0x2 str r1, [sp, 0x24] ldr r2, [sp, 0x10] adds r2, 0x1 str r2, [sp, 0x28] ldr r0, [sp, 0x20] cmp r4, r0 bge _080EF700 ldr r1, [sp, 0xC] lsls r1, 1 mov r12, r1 _080EF6D6: lsls r0, r7, 8 lsrs r2, r0, 16 lsls r0, r6, 8 lsrs r1, r0, 16 lsls r0, r5, 8 lsrs r0, 16 lsls r0, 10 lsls r1, 5 orrs r0, r1 orrs r2, r0 strh r2, [r3] add r3, r12 add r7, r10 add r6, r9 add r5, r8 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldr r2, [sp, 0x20] cmp r4, r2 blt _080EF6D6 _080EF700: ldr r4, [sp, 0x14] lsrs r2, r4, 8 ldr r1, [sp, 0x1C] lsls r0, r1, 2 ldr r4, [sp, 0x18] lsrs r1, r4, 3 orrs r0, r1 orrs r2, r0 strh r2, [r3] ldr r0, [sp, 0x30] str r0, [sp] ldr r1, [sp, 0x34] str r1, [sp, 0x4] ldr r4, [sp, 0x24] ldr r2, [sp, 0x28] lsls r0, r2, 16 lsrs r0, 16 str r0, [sp, 0x10] ldr r1, [sp, 0x2C] lsrs r0, r1, 16 ldr r2, [sp, 0x10] cmp r2, r0 bcc _080EF654 _080EF72E: add sp, 0x38 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80EF624 thumb_func_start sub_80EF740 sub_80EF740: @ 80EF740 push {lr} ldr r0, _080EF770 ldr r3, [r0] ldr r0, _080EF774 adds r2, r3, r0 ldrh r0, [r2] adds r0, 0x1 movs r1, 0x1 ands r0, r1 strh r0, [r2] cmp r0, 0 beq _080EF762 ldr r2, _080EF778 adds r1, r3, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EF762: ldr r0, _080EF77C ldr r2, _080EF778 adds r1, r3, r2 ldrh r1, [r1] strh r1, [r0] pop {r0} bx r0 .align 2, 0 _080EF770: .4byte gUnknown_083DFEC4 _080EF774: .4byte 0x00006da0 _080EF778: .4byte 0x00006da2 _080EF77C: .4byte REG_BG3HOFS thumb_func_end sub_80EF740 thumb_func_start sub_80EF780 sub_80EF780: @ 80EF780 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080EF7B0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 beq _080EF7AA ldr r0, _080EF7B4 ldr r3, [r0] ldr r0, _080EF7B8 adds r2, r3, r0 ldrh r0, [r2] movs r1, 0x7 ands r1, r0 cmp r1, 0 beq _080EF7BC _080EF7AA: bl sub_80EF740 b _080EF7C8 .align 2, 0 _080EF7B0: .4byte 0x03004b20 _080EF7B4: .4byte gUnknown_083DFEC4 _080EF7B8: .4byte 0x00006da2 _080EF7BC: strh r1, [r2] ldr r2, _080EF7CC adds r0, r3, r2 strh r1, [r0] ldr r0, _080EF7D0 strh r1, [r0] _080EF7C8: pop {r0} bx r0 .align 2, 0 _080EF7CC: .4byte 0x00006da0 _080EF7D0: .4byte REG_BG3HOFS thumb_func_end sub_80EF780 thumb_func_start sub_80EF7D4 sub_80EF7D4: @ 80EF7D4 push {r4,lr} ldr r0, _080EF800 ldr r4, [r0] ldr r1, _080EF804 adds r0, r4, r1 movs r1, 0 strh r1, [r0] ldr r2, _080EF808 adds r0, r4, r2 strh r1, [r0] ldr r0, _080EF80C movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r1, _080EF810 adds r4, r1 strh r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080EF800: .4byte gUnknown_083DFEC4 _080EF804: .4byte 0x00006da2 _080EF808: .4byte 0x00006da0 _080EF80C: .4byte sub_80EF780 _080EF810: .4byte 0x00006da4 thumb_func_end sub_80EF7D4 thumb_func_start sub_80EF814 sub_80EF814: @ 80EF814 push {lr} ldr r0, _080EF834 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 beq _080EF830 ldr r0, _080EF838 ldr r0, [r0] ldr r1, _080EF83C adds r0, r1 ldrb r0, [r0] bl DestroyTask _080EF830: pop {r0} bx r0 .align 2, 0 _080EF834: .4byte sub_80EF780 _080EF838: .4byte gUnknown_083DFEC4 _080EF83C: .4byte 0x00006da4 thumb_func_end sub_80EF814 thumb_func_start sub_80EF840 sub_80EF840: @ 80EF840 push {lr} ldr r0, _080EF868 ldr r0, [r0] ldr r1, _080EF86C adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080EF870 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080EF862 _080EF858: bl sub_80EF874 lsls r0, 24 cmp r0, 0 bne _080EF858 _080EF862: pop {r0} bx r0 .align 2, 0 _080EF868: .4byte gUnknown_083DFEC4 _080EF86C: .4byte 0x0000d160 _080EF870: .4byte 0x00006dac thumb_func_end sub_80EF840 thumb_func_start sub_80EF874 sub_80EF874: @ 80EF874 push {lr} ldr r0, _080EF890 ldr r0, [r0] ldr r1, _080EF894 adds r0, r1 ldrh r0, [r0] cmp r0, 0xB bls _080EF886 b _080EF9D8 _080EF886: lsls r0, 2 ldr r1, _080EF898 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EF890: .4byte gUnknown_083DFEC4 _080EF894: .4byte 0x0000d160 _080EF898: .4byte _080EF89C .align 2, 0 _080EF89C: .4byte _080EF8CC .4byte _080EF8D2 .4byte _080EF8E0 .4byte _080EF8EC .4byte _080EF8F6 .4byte _080EF8FC .4byte _080EF920 .4byte _080EF92C .4byte _080EF940 .4byte _080EF954 .4byte _080EF960 .4byte _080EF972 _080EF8CC: bl sub_80EEDE8 b _080EF9DC _080EF8D2: ldr r0, _080EF8DC bl SetUpWindowConfig b _080EF9DC .align 2, 0 _080EF8DC: .4byte gWindowConfig_81E7224 _080EF8E0: ldr r0, _080EF8E8 bl sub_8071C58 b _080EF9DC .align 2, 0 _080EF8E8: .4byte gWindowConfig_81E7224 _080EF8EC: bl sub_8071C94 cmp r0, 0 bne _080EF9DC b _080EF9EA _080EF8F6: bl sub_8071EF4 b _080EF9DC _080EF8FC: ldr r0, _080EF914 ldr r0, [r0] ldr r2, _080EF918 adds r0, r2 ldr r1, _080EF91C ldrb r1, [r1, 0x15] lsrs r1, 3 movs r2, 0x1 ands r1, r2 bl sub_80FA904 b _080EF9DC .align 2, 0 _080EF914: .4byte gUnknown_083DFEC4 _080EF918: .4byte 0x00006e18 _080EF91C: .4byte gSaveBlock2 _080EF920: bl sub_80FA940 lsls r0, 24 cmp r0, 0 beq _080EF9DC b _080EF9EA _080EF92C: ldr r0, _080EF938 ldr r1, _080EF93C bl LZ77UnCompVram b _080EF9DC .align 2, 0 _080EF938: .4byte gUnknown_08E892C4 _080EF93C: .4byte 0x06005000 _080EF940: ldr r0, _080EF950 movs r1, 0x30 movs r2, 0x20 bl LoadPalette bl sub_80EFC3C b _080EF9DC .align 2, 0 _080EF950: .4byte gUnknown_08E89648 _080EF954: bl sub_80EFC64 lsls r0, 24 cmp r0, 0 beq _080EF9DC b _080EF9EA _080EF960: movs r0, 0xD movs r1, 0x3 movs r2, 0x1D movs r3, 0x11 bl DrawDefaultWindow bl sub_80EF9F8 b _080EF9DC _080EF972: ldr r0, _080EF990 ldr r1, [r0] ldr r2, _080EF994 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _080EF9A0 ldr r2, _080EF998 adds r0, r1, r2 movs r1, 0xA0 strh r1, [r0] ldr r0, _080EF99C strh r1, [r0] b _080EF9B0 .align 2, 0 _080EF990: .4byte gUnknown_083DFEC4 _080EF994: .4byte 0x00006e90 _080EF998: .4byte 0x00007698 _080EF99C: .4byte REG_BG0VOFS _080EF9A0: ldr r0, _080EF9C8 adds r1, r0 movs r2, 0 movs r0, 0x80 lsls r0, 1 strh r0, [r1] ldr r0, _080EF9CC strh r2, [r0] _080EF9B0: ldr r2, _080EF9D0 ldrh r0, [r2] strh r0, [r2] ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] ldr r1, _080EF9D4 movs r0, 0 strh r0, [r1] b _080EF9DC .align 2, 0 _080EF9C8: .4byte 0x00007698 _080EF9CC: .4byte REG_BG0VOFS _080EF9D0: .4byte REG_BG0CNT _080EF9D4: .4byte REG_BLDCNT _080EF9D8: movs r0, 0 b _080EF9EC _080EF9DC: ldr r0, _080EF9F0 ldr r1, [r0] ldr r2, _080EF9F4 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EF9EA: movs r0, 0x1 _080EF9EC: pop {r1} bx r1 .align 2, 0 _080EF9F0: .4byte gUnknown_083DFEC4 _080EF9F4: .4byte 0x0000d160 thumb_func_end sub_80EF874 thumb_func_start sub_80EF9F8 sub_80EF9F8: @ 80EF9F8 push {r4-r6,lr} sub sp, 0x14 movs r5, 0x4 ldr r0, _080EFA18 ldr r0, [r0] ldr r1, _080EFA1C adds r0, r1 ldrb r0, [r0] cmp r0, 0x4 bls _080EFA0E b _080EFB6A _080EFA0E: lsls r0, 2 ldr r1, _080EFA20 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EFA18: .4byte gUnknown_083DFEC4 _080EFA1C: .4byte 0x00006e2e _080EFA20: .4byte _080EFA24 .align 2, 0 _080EFA24: .4byte _080EFB6A .4byte _080EFA38 .4byte _080EFAC0 .4byte _080EFB4C .4byte _080EFA38 _080EFA38: ldr r0, _080EFA64 ldr r0, [r0] ldr r2, _080EFA68 adds r0, r2 lsls r2, r5, 19 lsrs r2, 16 movs r1, 0x1 str r1, [sp] movs r1, 0x70 movs r3, 0x78 bl sub_8072A18 adds r0, r5, 0x2 lsls r0, 16 lsrs r5, r0, 16 ldr r0, _080EFA6C ldrb r0, [r0] cmp r0, 0x1 bne _080EFA70 bl sub_80F1A80 b _080EFB82 .align 2, 0 _080EFA64: .4byte gUnknown_083DFEC4 _080EFA68: .4byte 0x00006e18 _080EFA6C: .4byte 0x020238c0 _080EFA70: movs r4, 0 b _080EFA92 _080EFA74: lsls r2, r5, 19 lsrs r2, 16 movs r0, 0x1 str r0, [sp] adds r0, r1, 0 movs r1, 0x70 movs r3, 0x78 bl sub_8072A18 adds r0, r5, 0x2 lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _080EFA92: cmp r4, 0x3 bhi _080EFB6A ldr r0, _080EFAB8 ldr r1, [r0] ldr r2, _080EFABC adds r0, r1, r2 ldrb r0, [r0] adds r2, 0x3 adds r1, r2 ldrb r1, [r1] lsls r2, r4, 24 lsrs r2, 24 bl sub_811A8CC adds r1, r0, 0 cmp r1, 0 bne _080EFA74 b _080EFB6A .align 2, 0 _080EFAB8: .4byte gUnknown_083DFEC4 _080EFABC: .4byte 0x00006e2c _080EFAC0: ldr r0, _080EFB38 ldr r4, [r0] ldr r1, _080EFB3C adds r0, r4, r1 lsls r2, r5, 19 lsrs r2, 16 movs r1, 0x1 str r1, [sp] movs r1, 0x70 movs r3, 0x78 bl sub_8072A18 adds r0, r5, 0x2 lsls r0, 16 lsrs r5, r0, 16 ldr r2, _080EFB40 adds r0, r4, r2 ldrh r1, [r0] adds r2, 0x3 adds r0, r4, r2 ldrb r0, [r0] lsls r0, 2 lsls r1, 3 adds r0, r1 ldr r1, _080EFB44 adds r4, r1 adds r6, r4, r0 ldr r0, [r6] cmp r0, 0 beq _080EFB6A lsls r4, r5, 24 lsrs r4, 24 movs r0, 0xE adds r1, r4, 0 movs r2, 0xF movs r3, 0xF bl sub_8071EBC movs r0, 0x1A adds r1, r4, 0 movs r2, 0x1C movs r3, 0xF bl sub_8071EBC ldr r0, _080EFB48 ldr r3, [r6] movs r1, 0 str r1, [sp] str r1, [sp, 0x4] movs r1, 0xA str r1, [sp, 0x8] str r1, [sp, 0xC] str r1, [sp, 0x10] movs r1, 0x10 movs r2, 0x6 bl sub_8095C8C adds r0, r5, 0 adds r0, 0xB b _080EFB66 .align 2, 0 _080EFB38: .4byte gUnknown_083DFEC4 _080EFB3C: .4byte 0x00006e18 _080EFB40: .4byte 0x00006e2c _080EFB44: .4byte 0x0000cdcc _080EFB48: .4byte 0x0600f800 _080EFB4C: ldr r0, _080EFB98 ldr r0, [r0] ldr r2, _080EFB9C adds r0, r2 lsls r2, r5, 19 lsrs r2, 16 movs r1, 0x1 str r1, [sp] movs r1, 0x70 movs r3, 0x78 bl sub_8072A18 adds r0, r5, 0x2 _080EFB66: lsls r0, 16 lsrs r5, r0, 16 _080EFB6A: movs r0, 0 cmp r0, 0 bne _080EFB82 cmp r5, 0xF bhi _080EFB82 lsls r1, r5, 24 lsrs r1, 24 movs r0, 0xE movs r2, 0x1C movs r3, 0xF bl sub_8071EBC _080EFB82: ldr r0, _080EFB98 ldr r0, [r0] ldr r1, _080EFBA0 adds r0, r1 ldrb r0, [r0] cmp r0, 0x2 bne _080EFBA4 bl sub_80EFD74 b _080EFBA8 .align 2, 0 _080EFB98: .4byte gUnknown_083DFEC4 _080EFB9C: .4byte 0x00006e18 _080EFBA0: .4byte 0x00006e2e _080EFBA4: bl sub_80EFDA0 _080EFBA8: add sp, 0x14 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80EF9F8 thumb_func_start sub_80EFBB0 sub_80EFBB0: @ 80EFBB0 push {lr} ldr r0, _080EFBC8 ldr r0, [r0] ldr r1, _080EFBCC adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080EFBD0 movs r0, 0x8 bl sub_80EEFBC b _080EFBD6 .align 2, 0 _080EFBC8: .4byte gUnknown_083DFEC4 _080EFBCC: .4byte 0x00006e90 _080EFBD0: movs r0, 0x7 bl sub_80EEFBC _080EFBD6: pop {r0} bx r0 thumb_func_end sub_80EFBB0 thumb_func_start sub_80EFBDC sub_80EFBDC: @ 80EFBDC push {r4,lr} lsls r0, 24 movs r4, 0x1 ldr r2, _080EFBFC ldr r1, [r2] ldr r3, _080EFC00 adds r1, r3 ldrh r3, [r1] cmp r0, 0 beq _080EFC08 cmp r3, 0xA8 bls _080EFC04 adds r0, r3, 0 subs r0, 0x8 b _080EFC10 .align 2, 0 _080EFBFC: .4byte gUnknown_083DFEC4 _080EFC00: .4byte 0x00007698 _080EFC04: movs r3, 0xA0 b _080EFC1A _080EFC08: cmp r3, 0xF7 bhi _080EFC16 adds r0, r3, 0 adds r0, 0x8 _080EFC10: lsls r0, 16 lsrs r3, r0, 16 b _080EFC1C _080EFC16: movs r3, 0x80 lsls r3, 1 _080EFC1A: movs r4, 0 _080EFC1C: ldr r0, [r2] ldr r1, _080EFC34 adds r0, r1 strh r3, [r0] ldr r1, _080EFC38 movs r0, 0xFF ands r3, r0 strh r3, [r1] adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080EFC34: .4byte 0x00007698 _080EFC38: .4byte REG_BG0VOFS thumb_func_end sub_80EFBDC thumb_func_start sub_80EFC3C sub_80EFC3C: @ 80EFC3C push {lr} ldr r0, _080EFC58 ldr r0, [r0] ldr r2, _080EFC5C adds r1, r0, r2 movs r2, 0 strb r2, [r1] ldr r1, _080EFC60 adds r0, r1 strb r2, [r0] bl sub_80EFD3C pop {r0} bx r0 .align 2, 0 _080EFC58: .4byte gUnknown_083DFEC4 _080EFC5C: .4byte 0x0000bc9a _080EFC60: .4byte 0x0000bc9b thumb_func_end sub_80EFC3C thumb_func_start sub_80EFC64 sub_80EFC64: @ 80EFC64 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 ldr r4, _080EFCD0 ldr r2, [r4] ldr r0, _080EFCD4 adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0xF bhi _080EFD2C ldrb r1, [r1] mov r8, r1 ldr r1, _080EFCD8 adds r0, r2, r1 ldrb r7, [r0] movs r2, 0 ldr r0, _080EFCDC mov r9, r0 adds r3, r4, 0 _080EFC8E: lsls r0, r2, 2 mov r4, r8 lsls r1, r4, 3 adds r6, r0, r1 mov r1, r9 adds r0, r6, r1 ldr r1, [r0] cmp r1, 0 beq _080EFCE8 movs r0, 0xC8 adds r5, r7, 0 muls r5, r0 ldr r4, _080EFCE0 adds r5, r4 ldr r4, [r3] adds r5, r4, r5 adds r0, r1, 0 adds r1, r5, 0 str r2, [sp] str r3, [sp, 0x4] bl LZ77UnCompVram ldr r0, _080EFCE4 adds r4, r0 adds r4, r6 str r5, [r4] adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 ldr r2, [sp] ldr r3, [sp, 0x4] b _080EFCF2 .align 2, 0 _080EFCD0: .4byte gUnknown_083DFEC4 _080EFCD4: .4byte 0x0000bc9a _080EFCD8: .4byte 0x0000bc9b _080EFCDC: .4byte gPokenavCityMaps _080EFCE0: .4byte 0x0000bc9c _080EFCE4: .4byte 0x0000cdcc _080EFCE8: ldr r0, [r3] ldr r4, _080EFD1C adds r0, r4 adds r0, r6 str r1, [r0] _080EFCF2: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x1 bls _080EFC8E ldr r0, _080EFD20 ldr r2, [r0] ldr r0, _080EFD24 adds r1, r2, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0xF bhi _080EFD2C ldr r1, _080EFD28 adds r0, r2, r1 strb r7, [r0] movs r0, 0x1 b _080EFD2E .align 2, 0 _080EFD1C: .4byte 0x0000cdcc _080EFD20: .4byte gUnknown_083DFEC4 _080EFD24: .4byte 0x0000bc9a _080EFD28: .4byte 0x0000bc9b _080EFD2C: movs r0, 0 _080EFD2E: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80EFC64 thumb_func_start sub_80EFD3C sub_80EFD3C: @ 80EFD3C ldr r0, _080EFD60 ldr r1, [r0] ldr r2, _080EFD64 adds r0, r1, r2 movs r2, 0 strb r2, [r0] ldr r0, _080EFD68 adds r3, r1, r0 movs r0, 0x2F strb r0, [r3] ldr r3, _080EFD6C adds r0, r1, r3 strb r2, [r0] ldr r0, _080EFD70 adds r1, r0 strh r2, [r1] bx lr .align 2, 0 _080EFD60: .4byte gUnknown_083DFEC4 _080EFD64: .4byte 0x0000769e _080EFD68: .4byte 0x0000769c _080EFD6C: .4byte 0x0000769d _080EFD70: .4byte 0x0000769a thumb_func_end sub_80EFD3C thumb_func_start sub_80EFD74 sub_80EFD74: @ 80EFD74 push {lr} ldr r0, _080EFD94 ldr r2, [r0] ldr r0, _080EFD98 adds r1, r2, r0 movs r0, 0x1 strb r0, [r1] ldr r0, _080EFD9C adds r2, r0 ldrb r0, [r2] cmp r0, 0x1 bne _080EFD90 movs r0, 0x2 strb r0, [r2] _080EFD90: pop {r0} bx r0 .align 2, 0 _080EFD94: .4byte gUnknown_083DFEC4 _080EFD98: .4byte 0x0000769e _080EFD9C: .4byte 0x0000769d thumb_func_end sub_80EFD74 thumb_func_start sub_80EFDA0 sub_80EFDA0: @ 80EFDA0 push {r4,lr} sub sp, 0x14 ldr r0, _080EFDD4 ldr r3, _080EFDD8 movs r4, 0 str r4, [sp] str r4, [sp, 0x4] movs r2, 0xF str r2, [sp, 0x8] movs r1, 0x1 str r1, [sp, 0xC] str r2, [sp, 0x10] movs r1, 0xE movs r2, 0x10 bl sub_8095C8C ldr r0, _080EFDDC ldr r0, [r0] ldr r1, _080EFDE0 adds r0, r1 strb r4, [r0] add sp, 0x14 pop {r4} pop {r0} bx r0 .align 2, 0 _080EFDD4: .4byte 0x0600f800 _080EFDD8: .4byte gUnknown_08E9AC2C _080EFDDC: .4byte gUnknown_083DFEC4 _080EFDE0: .4byte 0x0000769e thumb_func_end sub_80EFDA0 thumb_func_start sub_80EFDE4 sub_80EFDE4: @ 80EFDE4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 ldr r0, _080EFE68 ldr r1, [r0] ldr r2, _080EFE6C adds r0, r1, r2 ldrb r2, [r0] movs r0, 0x3C subs r0, r2 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xF bls _080EFE06 movs r4, 0xF _080EFE06: ldr r3, _080EFE70 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 beq _080EFE58 ldr r0, _080EFE74 mov r8, r0 ldr r3, _080EFE78 mov r9, r3 str r2, [sp] movs r5, 0 str r5, [sp, 0x4] str r4, [sp, 0x8] movs r7, 0x1 str r7, [sp, 0xC] movs r6, 0x3C str r6, [sp, 0x10] movs r1, 0xE movs r2, 0x10 bl sub_8095C8C cmp r4, 0xE bhi _080EFE58 adds r1, r4, 0 adds r1, 0xE lsls r1, 16 lsrs r1, 16 str r5, [sp] str r5, [sp, 0x4] movs r0, 0xF subs r0, r4 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x8] str r7, [sp, 0xC] str r6, [sp, 0x10] mov r0, r8 movs r2, 0x10 mov r3, r9 bl sub_8095C8C _080EFE58: add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EFE68: .4byte gUnknown_083DFEC4 _080EFE6C: .4byte 0x0000769c _080EFE70: .4byte 0x0000769e _080EFE74: .4byte 0x0600f800 _080EFE78: .4byte gUnknown_08E9ABB4 thumb_func_end sub_80EFDE4 thumb_func_start sub_80EFE7C sub_80EFE7C: @ 80EFE7C push {r4,lr} ldr r0, _080EFE98 ldr r2, [r0] ldr r0, _080EFE9C adds r4, r2, r0 ldrb r1, [r4] cmp r1, 0x1 beq _080EFF08 cmp r1, 0x1 bgt _080EFEA0 cmp r1, 0 beq _080EFEA6 b _080EFF2E .align 2, 0 _080EFE98: .4byte gUnknown_083DFEC4 _080EFE9C: .4byte 0x0000769d _080EFEA0: cmp r1, 0x2 beq _080EFF24 b _080EFF2E _080EFEA6: ldr r0, _080EFED4 adds r4, r2, r0 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, 0x3B bls _080EFEBA strb r1, [r4] _080EFEBA: ldr r1, _080EFED8 adds r0, r2, r1 ldrb r0, [r0] bl sub_80EFDE4 ldrb r0, [r4] cmp r0, 0xF beq _080EFEE4 cmp r0, 0xF bgt _080EFEDC cmp r0, 0 beq _080EFEE4 b _080EFF2E .align 2, 0 _080EFED4: .4byte 0x0000769c _080EFED8: .4byte 0x0000769e _080EFEDC: cmp r0, 0x1E beq _080EFEE4 cmp r0, 0x2D bne _080EFF2E _080EFEE4: ldr r0, _080EFEFC ldr r1, [r0] ldr r0, _080EFF00 adds r2, r1, r0 movs r3, 0 movs r0, 0x1 strb r0, [r2] ldr r0, _080EFF04 adds r1, r0 strh r3, [r1] b _080EFF2E .align 2, 0 _080EFEFC: .4byte gUnknown_083DFEC4 _080EFF00: .4byte 0x0000769d _080EFF04: .4byte 0x0000769a _080EFF08: ldr r0, _080EFF20 adds r1, r2, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0x78 bls _080EFF2E movs r0, 0 strh r0, [r1] b _080EFF2C .align 2, 0 _080EFF20: .4byte 0x0000769a _080EFF24: movs r0, 0x1 bl sub_80EFDE4 movs r0, 0x1 _080EFF2C: strb r0, [r4] _080EFF2E: pop {r4} pop {r0} bx r0 thumb_func_end sub_80EFE7C thumb_func_start sub_80EFF34 sub_80EFF34: @ 80EFF34 push {lr} ldr r0, _080EFF5C ldr r0, [r0] ldr r1, _080EFF60 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080EFF64 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080EFF56 _080EFF4C: bl sub_80EFF68 lsls r0, 24 cmp r0, 0 bne _080EFF4C _080EFF56: pop {r0} bx r0 .align 2, 0 _080EFF5C: .4byte gUnknown_083DFEC4 _080EFF60: .4byte 0x0000d160 _080EFF64: .4byte 0x00006dac thumb_func_end sub_80EFF34 thumb_func_start sub_80EFF68 sub_80EFF68: @ 80EFF68 push {r4,lr} sub sp, 0x14 ldr r0, _080EFF88 ldr r0, [r0] ldr r1, _080EFF8C adds r0, r1 ldrh r0, [r0] cmp r0, 0xD bls _080EFF7C b _080F0150 _080EFF7C: lsls r0, 2 ldr r1, _080EFF90 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EFF88: .4byte gUnknown_083DFEC4 _080EFF8C: .4byte 0x0000d160 _080EFF90: .4byte _080EFF94 .align 2, 0 _080EFF94: .4byte _080EFFCC .4byte _080EFFE8 .4byte _080EFFF4 .4byte _080F0000 .4byte _080F000C .4byte _080F0012 .4byte _080F0018 .4byte _080F0028 .4byte _080F003C .4byte _080F005C .4byte _080F0098 .4byte _080F00AC .4byte _080F00F8 .4byte _080F0118 _080EFFCC: bl sub_80EEDE8 ldr r0, _080EFFE0 ldr r0, [r0] ldr r2, _080EFFE4 adds r0, r2 movs r1, 0xB strb r1, [r0] b _080F0154 .align 2, 0 _080EFFE0: .4byte gUnknown_083DFEC4 _080EFFE4: .4byte 0x0000d162 _080EFFE8: ldr r0, _080EFFF0 bl SetUpWindowConfig b _080F0154 .align 2, 0 _080EFFF0: .4byte gWindowConfig_81E7080 _080EFFF4: ldr r0, _080EFFFC bl sub_8071C58 b _080F0154 .align 2, 0 _080EFFFC: .4byte gWindowConfig_81E7080 _080F0000: bl sub_8071C94 cmp r0, 0 beq _080F000A b _080F0154 _080F000A: b _080F0162 _080F000C: bl sub_8071EF4 b _080F0154 _080F0012: bl sub_80F1614 b _080F0154 _080F0018: movs r0, 0 bl sub_80F162C lsls r0, 24 cmp r0, 0 bne _080F0026 b _080F0154 _080F0026: b _080F0162 _080F0028: ldr r0, _080F0034 ldr r1, _080F0038 bl LZ77UnCompVram b _080F0154 .align 2, 0 _080F0034: .4byte gUnknown_08E89AD8 _080F0038: .4byte 0x06005000 _080F003C: ldr r0, _080F0050 ldr r1, _080F0054 bl LZ77UnCompVram ldr r0, _080F0058 movs r1, 0x20 movs r2, 0x20 bl LoadPalette b _080F0154 .align 2, 0 _080F0050: .4byte gUnknown_08E9AC4C _080F0054: .4byte 0x0600f000 _080F0058: .4byte gUnknown_08E8A1C0 _080F005C: ldr r0, _080F0088 ldr r0, [r0] ldr r1, _080F008C adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080F0154 ldr r0, _080F0090 ldr r3, _080F0094 movs r1, 0 str r1, [sp] str r1, [sp, 0x4] movs r2, 0x9 str r2, [sp, 0x8] movs r1, 0x4 str r1, [sp, 0xC] str r2, [sp, 0x10] movs r1, 0 movs r2, 0x5 bl sub_8095C8C b _080F0154 .align 2, 0 _080F0088: .4byte gUnknown_083DFEC4 _080F008C: .4byte 0x000076aa _080F0090: .4byte 0x0600f000 _080F0094: .4byte gUnknown_083E01AC _080F0098: ldr r0, _080F00A4 ldr r1, _080F00A8 bl LZ77UnCompVram b _080F0154 .align 2, 0 _080F00A4: .4byte gUnknown_08E9FEB4 _080F00A8: .4byte 0x0600b800 _080F00AC: ldr r0, _080F00EC movs r1, 0x30 movs r2, 0x20 bl LoadPalette ldr r0, _080F00F0 movs r1, 0xB0 movs r2, 0x20 bl LoadPalette ldr r4, _080F00F4 adds r0, r4, 0 movs r1, 0xB1 movs r2, 0x2 bl LoadPalette adds r0, r4, 0 adds r0, 0xE movs r1, 0xB5 movs r2, 0x2 bl LoadPalette adds r4, 0x1C adds r0, r4, 0 movs r1, 0xBF movs r2, 0x2 bl LoadPalette bl sub_80F01A4 b _080F0154 .align 2, 0 _080F00EC: .4byte gUnknown_083E0254 _080F00F0: .4byte gUnknownPalette_81E6692 _080F00F4: .4byte gUnknown_08E8A1C2 _080F00F8: ldr r0, _080F0110 ldr r0, [r0] ldr r2, _080F0114 adds r0, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r0, 16 bl sub_80F01E0 b _080F0154 .align 2, 0 _080F0110: .4byte gUnknown_083DFEC4 _080F0114: .4byte 0x00008fe9 _080F0118: ldr r1, _080F013C ldr r2, _080F0140 adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 ldr r2, _080F0144 adds r0, r2, 0 strh r0, [r1] adds r1, 0x44 ldr r2, _080F0148 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080F014C adds r0, r2, 0 strh r0, [r1] b _080F0154 .align 2, 0 _080F013C: .4byte REG_BG3CNT _080F0140: .4byte 0x00001e03 _080F0144: .4byte 0x00001702 _080F0148: .4byte 0x00000844 _080F014C: .4byte 0x0000040b _080F0150: movs r0, 0 b _080F0164 _080F0154: ldr r0, _080F016C ldr r1, [r0] ldr r0, _080F0170 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F0162: movs r0, 0x1 _080F0164: add sp, 0x14 pop {r4} pop {r1} bx r1 .align 2, 0 _080F016C: .4byte gUnknown_083DFEC4 _080F0170: .4byte 0x0000d160 thumb_func_end sub_80EFF68 thumb_func_start sub_80F0174 sub_80F0174: @ 80F0174 push {lr} lsls r0, 24 cmp r0, 0 beq _080F018E movs r0, 0x80 lsls r0, 19 ldrh r1, [r0] movs r3, 0x80 lsls r3, 3 adds r2, r3, 0 orrs r1, r2 strh r1, [r0] b _080F019A _080F018E: movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _080F01A0 ands r0, r1 strh r0, [r2] _080F019A: pop {r0} bx r0 .align 2, 0 _080F01A0: .4byte 0x0000fbff thumb_func_end sub_80F0174 thumb_func_start sub_80F01A4 sub_80F01A4: @ 80F01A4 ldr r1, _080F01CC movs r0, 0xF0 strh r0, [r1] adds r1, 0x2 movs r0, 0x9B strh r0, [r1] ldr r0, _080F01D0 ldr r2, _080F01D4 adds r1, r2, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _080F01D8 ldr r2, _080F01DC adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x1B strh r0, [r1] bx lr .align 2, 0 _080F01CC: .4byte REG_WIN0H _080F01D0: .4byte REG_WIN0V _080F01D4: .4byte 0x00003879 _080F01D8: .4byte REG_WININ _080F01DC: .4byte 0x00003f3f thumb_func_end sub_80F01A4 thumb_func_start sub_80F01E0 sub_80F01E0: @ 80F01E0 push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 ldr r1, _080F0248 lsls r0, r4, 6 ldr r2, _080F024C adds r0, r2 ldr r5, [r1] adds r0, r5, r0 movs r1, 0xD movs r2, 0x1 bl Print ldr r1, _080F0250 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080F0242 lsls r0, r4, 1 adds r0, r4 lsls r0, 3 ldr r2, _080F0254 adds r0, r2 adds r0, r5, r0 movs r1, 0xD movs r2, 0x3 bl Print ldr r0, _080F0258 adds r4, r5, r0 ldr r1, _080F025C adds r0, r5, r1 movs r2, 0 ldrsh r0, [r0, r2] lsls r0, 2 adds r0, r5, r0 ldr r1, _080F0260 adds r0, r1 ldrh r1, [r0] lsls r1, 18 lsrs r1, 23 adds r0, r4, 0 bl sub_80F443C adds r0, r4, 0 movs r1, 0x1 movs r2, 0x6 bl Print _080F0242: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F0248: .4byte gUnknown_083DFEC4 _080F024C: .4byte 0x00008829 _080F0250: .4byte 0x000076aa _080F0254: .4byte 0x000088e9 _080F0258: .4byte 0x00008788 _080F025C: .4byte 0x000087dc _080F0260: .4byte 0x0000893e thumb_func_end sub_80F01E0 thumb_func_start sub_80F0264 sub_80F0264: @ 80F0264 push {lr} ldr r1, _080F0290 ldr r2, [r1] ldr r1, _080F0294 adds r3, r2, r1 movs r1, 0 strh r1, [r3] ldr r3, _080F0298 adds r1, r2, r3 strb r0, [r1] ldr r0, _080F029C adds r2, r0 ldrb r0, [r2] cmp r0, 0 bne _080F028C _080F0282: bl sub_80F02A0 lsls r0, 24 cmp r0, 0 bne _080F0282 _080F028C: pop {r0} bx r0 .align 2, 0 _080F0290: .4byte gUnknown_083DFEC4 _080F0294: .4byte 0x00000306 _080F0298: .4byte 0x000087ca _080F029C: .4byte 0x00006dac thumb_func_end sub_80F0264 thumb_func_start sub_80F02A0 sub_80F02A0: @ 80F02A0 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x18 ldr r1, _080F02C4 ldr r0, [r1] ldr r2, _080F02C8 adds r0, r2 ldrh r0, [r0] adds r2, r1, 0 cmp r0, 0xE bls _080F02BA b _080F05FA _080F02BA: lsls r0, 2 ldr r1, _080F02CC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F02C4: .4byte gUnknown_083DFEC4 _080F02C8: .4byte 0x00000306 _080F02CC: .4byte _080F02D0 .align 2, 0 _080F02D0: .4byte _080F030C .4byte _080F0344 .4byte _080F0350 .4byte _080F035C .4byte _080F0368 .4byte _080F036E .4byte _080F0380 .4byte _080F0394 .4byte _080F04BC .4byte _080F053C .4byte _080F0550 .4byte _080F0574 .4byte _080F057A .4byte _080F0586 .4byte _080F05BC _080F030C: bl sub_80EEDE8 ldr r0, _080F0334 ldr r1, [r0] movs r2, 0 ldr r3, _080F0338 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0x1 bne _080F0322 movs r2, 0x1 _080F0322: ldr r3, _080F033C adds r0, r1, r3 strb r2, [r0] ldr r0, _080F0340 adds r1, r0 movs r0, 0xB strb r0, [r1] b _080F0618 .align 2, 0 _080F0334: .4byte gUnknown_083DFEC4 _080F0338: .4byte 0x000087ca _080F033C: .4byte 0x000087c8 _080F0340: .4byte 0x0000d162 _080F0344: ldr r0, _080F034C bl SetUpWindowConfig b _080F0618 .align 2, 0 _080F034C: .4byte gWindowConfig_81E70D4 _080F0350: ldr r0, _080F0358 bl sub_8071C58 b _080F0618 .align 2, 0 _080F0358: .4byte gWindowConfig_81E70D4 _080F035C: bl sub_8071C94 cmp r0, 0 beq _080F0366 b _080F0618 _080F0366: b _080F0626 _080F0368: bl sub_8071EF4 b _080F0618 _080F036E: ldr r0, _080F0378 ldr r1, _080F037C bl LZ77UnCompVram b _080F0618 .align 2, 0 _080F0378: .4byte gUnknown_08E9FC64 _080F037C: .4byte 0x0600e800 _080F0380: ldr r0, _080F038C ldr r1, _080F0390 bl LZ77UnCompVram b _080F0618 .align 2, 0 _080F038C: .4byte gUnknown_08E9FA08 _080F0390: .4byte 0x06008000 _080F0394: ldr r6, _080F03FC adds r0, r6, 0 movs r1, 0xB0 movs r2, 0x20 bl LoadPalette adds r0, r6, 0 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r0, _080F0400 movs r1, 0x40 movs r2, 0x20 bl LoadPalette ldr r0, _080F0404 ldr r0, [r0] ldr r1, _080F0408 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F0418 ldr r4, _080F040C adds r0, r4, 0 movs r1, 0x30 movs r2, 0x20 bl LoadPalette ldr r1, _080F0410 ldrh r0, [r4, 0xA] strh r0, [r1] ldr r0, _080F0414 movs r1, 0xB0 movs r2, 0x20 bl LoadPalette adds r0, r6, 0x2 movs r1, 0xB1 movs r2, 0x2 bl LoadPalette adds r0, r6, 0 adds r0, 0x10 movs r1, 0xB5 movs r2, 0x2 bl LoadPalette adds r4, 0xA adds r0, r4, 0 movs r1, 0xBF b _080F04A8 .align 2, 0 _080F03FC: .4byte gUnknown_083E02B4 _080F0400: .4byte gUnknown_083E0334 _080F0404: .4byte gUnknown_083DFEC4 _080F0408: .4byte 0x000087ca _080F040C: .4byte gUnknown_083E0294 _080F0410: .4byte 0x0202eac8 _080F0414: .4byte gUnknownPalette_81E6692 _080F0418: cmp r0, 0x1 bne _080F0464 ldr r4, _080F0458 adds r0, r4, 0 movs r1, 0x30 movs r2, 0x20 bl LoadPalette ldr r1, _080F045C ldrh r0, [r4, 0xA] strh r0, [r1] ldr r0, _080F0460 movs r1, 0xB0 movs r2, 0x20 bl LoadPalette adds r0, r6, 0x2 movs r1, 0xB1 movs r2, 0x2 bl LoadPalette adds r0, r6, 0 adds r0, 0x10 movs r1, 0xB5 movs r2, 0x2 bl LoadPalette adds r4, 0xA adds r0, r4, 0 movs r1, 0xBF b _080F04A8 .align 2, 0 _080F0458: .4byte gUnknown_083E0274 _080F045C: .4byte 0x0202eac8 _080F0460: .4byte gUnknownPalette_81E6692 _080F0464: ldr r4, _080F04B0 adds r0, r4, 0 movs r1, 0x30 movs r2, 0x20 bl LoadPalette ldr r1, _080F04B4 adds r5, r4, 0 adds r5, 0xA ldrh r0, [r4, 0xA] strh r0, [r1] ldr r0, _080F04B8 movs r1, 0x50 movs r2, 0x20 bl LoadPalette adds r0, r6, 0x2 movs r1, 0xB1 movs r2, 0x2 bl LoadPalette adds r0, r6, 0 adds r0, 0x10 movs r1, 0xB5 movs r2, 0x2 bl LoadPalette adds r0, r5, 0 movs r1, 0xBF movs r2, 0x2 bl LoadPalette adds r0, r5, 0 movs r1, 0x5F _080F04A8: movs r2, 0x2 bl LoadPalette b _080F0618 .align 2, 0 _080F04B0: .4byte gUnknown_08E9F9E8 _080F04B4: .4byte 0x0202eac8 _080F04B8: .4byte gUnknown_083E0314 _080F04BC: ldr r0, _080F04E8 ldr r0, [r0] ldr r2, _080F04EC adds r0, r2 ldrb r0, [r0] cmp r0, 0x2 beq _080F04F8 ldr r0, _080F04F0 ldr r3, _080F04F4 movs r1, 0 str r1, [sp] str r1, [sp, 0x4] movs r2, 0x9 str r2, [sp, 0x8] movs r1, 0x4 str r1, [sp, 0xC] str r2, [sp, 0x10] movs r1, 0 movs r2, 0x5 bl sub_8095C8C b _080F0618 .align 2, 0 _080F04E8: .4byte gUnknown_083DFEC4 _080F04EC: .4byte 0x000087ca _080F04F0: .4byte 0x0600e800 _080F04F4: .4byte gUnknown_08E9FD1C _080F04F8: ldr r3, _080F0530 mov r8, r3 ldr r3, _080F0534 movs r4, 0 str r4, [sp] str r4, [sp, 0x4] movs r5, 0xC str r5, [sp, 0x8] movs r6, 0xA str r6, [sp, 0xC] str r5, [sp, 0x10] mov r0, r8 movs r1, 0 movs r2, 0x4 bl sub_8095C8C ldr r3, _080F0538 str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] str r6, [sp, 0xC] str r5, [sp, 0x10] mov r0, r8 movs r1, 0 movs r2, 0x8 bl sub_8095C8C b _080F0618 .align 2, 0 _080F0530: .4byte 0x0600e800 _080F0534: .4byte gUnknown_08E9FE54 _080F0538: .4byte gUnknown_08E9FD64 _080F053C: ldr r0, _080F0548 ldr r1, _080F054C bl LZ77UnCompVram b _080F0618 .align 2, 0 _080F0548: .4byte gUnknown_083E0354 _080F054C: .4byte 0x06005000 _080F0550: ldr r2, _080F0568 add r1, sp, 0x14 movs r0, 0 strh r0, [r1] ldr r0, _080F056C str r1, [r0] str r2, [r0, 0x4] ldr r1, _080F0570 str r1, [r0, 0x8] ldr r0, [r0, 0x8] b _080F0618 .align 2, 0 _080F0568: .4byte 0x0600f800 _080F056C: .4byte 0x040000d4 _080F0570: .4byte 0x81000400 _080F0574: bl sub_80F0900 b _080F0618 _080F057A: bl sub_80F0944 lsls r0, 24 cmp r0, 0 beq _080F0618 b _080F0626 _080F0586: ldr r0, _080F059C ldr r4, [r0] ldr r1, _080F05A0 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0x2 beq _080F05A4 bl ShowMapNamePopUpWindow b _080F0618 .align 2, 0 _080F059C: .4byte gUnknown_083DFEC4 _080F05A0: .4byte 0x000087ca _080F05A4: movs r0, 0 bl sub_80F081C ldr r2, _080F05B8 adds r0, r4, r2 ldrb r0, [r0] bl sub_80F0FFC b _080F0618 .align 2, 0 _080F05B8: .4byte 0x0000876e _080F05BC: ldr r1, _080F0600 ldr r3, _080F0604 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 adds r3, 0xF9 adds r0, r3, 0 strh r0, [r1] subs r1, 0x6 adds r3, 0xFE adds r0, r3, 0 strh r0, [r1] adds r1, 0x16 movs r0, 0xF8 strh r0, [r1] ldr r1, [r2] ldr r0, _080F0608 adds r2, r1, r0 movs r3, 0 movs r0, 0xF8 strh r0, [r2] ldr r2, _080F060C adds r0, r1, r2 strh r3, [r0] ldr r0, _080F0610 strh r3, [r0] ldr r3, _080F0614 adds r1, r3 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F05FA: movs r0, 0 b _080F0628 .align 2, 0 _080F0600: .4byte REG_BG2CNT _080F0604: .4byte 0x00001d0a _080F0608: .4byte 0x00008776 _080F060C: .4byte 0x00008778 _080F0610: .4byte REG_BLDCNT _080F0614: .4byte 0x0000d160 _080F0618: ldr r0, _080F0634 ldr r1, [r0] ldr r0, _080F0638 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F0626: movs r0, 0x1 _080F0628: add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080F0634: .4byte gUnknown_083DFEC4 _080F0638: .4byte 0x00000306 thumb_func_end sub_80F02A0 thumb_func_start sub_80F063C sub_80F063C: @ 80F063C push {r4-r7,lr} lsls r0, 16 ldr r3, _080F0664 ldr r2, [r3] lsrs r5, r0, 16 asrs r4, r0, 16 lsls r1, r4, 4 ldr r6, _080F0668 adds r0, r2, r6 strh r1, [r0] adds r7, r3, 0 cmp r4, 0x1 beq _080F065E movs r0, 0x1 negs r0, r0 cmp r4, r0 bne _080F066C _080F065E: movs r1, 0x4 b _080F066E .align 2, 0 _080F0664: .4byte gUnknown_083DFEC4 _080F0668: .4byte 0x0000877c _080F066C: movs r1, 0x8 _080F066E: ldr r3, _080F06C0 adds r0, r2, r3 strh r1, [r0] lsls r0, r5, 16 asrs r3, r0, 16 cmp r3, 0 bge _080F06CC ldr r4, [r7] ldr r6, _080F06C0 adds r1, r4, r6 movs r2, 0 ldrsh r0, [r1, r2] negs r0, r0 strh r0, [r1] subs r6, 0x2 adds r1, r4, r6 lsls r0, r3, 1 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r6, r0, 16 ldr r1, _080F06C4 adds r0, r4, r1 ldrh r0, [r0] adds r0, r3, r0 lsls r0, 16 lsrs r2, r0, 16 asrs r0, 16 cmp r0, 0 bge _080F06B8 ldr r2, _080F06C8 adds r1, r4, r2 adds r0, 0x1 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r2, r0, 16 _080F06B8: negs r0, r3 lsls r0, 16 lsrs r5, r0, 16 b _080F06E6 .align 2, 0 _080F06C0: .4byte 0x0000877a _080F06C4: .4byte 0x00008770 _080F06C8: .4byte 0x00008774 _080F06CC: ldr r1, [r7] ldr r3, _080F070C adds r0, r1, r3 ldrh r0, [r0] adds r0, 0x10 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _080F0710 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 lsls r0, 16 lsrs r2, r0, 16 _080F06E6: ldr r0, [r7] ldr r1, _080F0714 adds r0, r1 lsls r1, r2, 16 asrs r1, 16 movs r3, 0 ldrsh r0, [r0, r3] cmp r1, r0 ble _080F06FA movs r2, 0 _080F06FA: movs r1, 0x1F adds r0, r2, 0 ands r1, r6 adds r2, r5, 0 bl sub_80F0954 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F070C: .4byte 0x00008778 _080F0710: .4byte 0x00008772 _080F0714: .4byte 0x00008774 thumb_func_end sub_80F063C thumb_func_start sub_80F0718 sub_80F0718: @ 80F0718 push {r4,r5,lr} bl sub_80F098C lsls r0, 24 cmp r0, 0 bne _080F0790 ldr r0, _080F073C ldr r4, [r0] ldr r0, _080F0740 adds r3, r4, r0 ldrh r2, [r3] movs r1, 0 ldrsh r0, [r3, r1] cmp r0, 0 bne _080F0744 movs r0, 0 b _080F0792 .align 2, 0 _080F073C: .4byte gUnknown_083DFEC4 _080F0740: .4byte 0x0000877c _080F0744: ldr r0, _080F0780 adds r1, r4, r0 ldrh r0, [r1] subs r0, r2, r0 strh r0, [r3] ldr r0, _080F0784 adds r2, r4, r0 ldrh r0, [r1] ldrh r1, [r2] adds r0, r1 movs r5, 0xFF ands r0, r5 strh r0, [r2] ldr r1, _080F0788 strh r0, [r1] movs r1, 0 ldrsh r0, [r3, r1] cmp r0, 0 bne _080F0790 movs r1, 0 ldrsh r0, [r2, r1] adds r0, 0x8 ands r0, r5 asrs r1, r0, 3 ldr r2, _080F078C adds r0, r4, r2 strh r1, [r0] movs r0, 0 b _080F0792 .align 2, 0 _080F0780: .4byte 0x0000877a _080F0784: .4byte 0x00008776 _080F0788: .4byte REG_BG3VOFS _080F078C: .4byte 0x00008778 _080F0790: movs r0, 0x1 _080F0792: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80F0718 thumb_func_start ShowMapNamePopUpWindow ShowMapNamePopUpWindow: @ 80F0798 push {lr} ldr r0, _080F07B0 ldr r2, [r0] ldr r1, _080F07B4 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _080F07B8 cmp r0, 0x1 beq _080F07E0 b _080F080A .align 2, 0 _080F07B0: .4byte gUnknown_083DFEC4 _080F07B4: .4byte 0x000087ca _080F07B8: ldr r3, _080F07D8 adds r0, r2, r3 subs r3, 0x1A adds r1, r2, r3 movs r3, 0 ldrsh r1, [r1, r3] lsls r1, 2 adds r1, r2, r1 ldr r2, _080F07DC adds r1, r2 ldrh r1, [r1] lsls r1, 18 lsrs r1, 23 bl sub_80F443C b _080F07F4 .align 2, 0 _080F07D8: .4byte 0x00008788 _080F07DC: .4byte 0x0000893e _080F07E0: ldr r3, _080F0810 adds r0, r2, r3 subs r3, 0x1A adds r1, r2, r3 ldrh r1, [r1] adds r1, 0x1 lsls r1, 16 lsrs r1, 16 bl sub_80F445C _080F07F4: ldr r0, _080F0814 bl sub_8071E2C ldr r0, _080F0818 ldr r0, [r0] ldr r1, _080F0810 adds r0, r1 movs r1, 0x1 movs r2, 0x6 bl Print _080F080A: pop {r0} bx r0 .align 2, 0 _080F0810: .4byte 0x00008788 _080F0814: .4byte gWindowConfig_81E710C _080F0818: .4byte gUnknown_083DFEC4 thumb_func_end ShowMapNamePopUpWindow thumb_func_start sub_80F081C sub_80F081C: @ 80F081C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080F0838 bl sub_8071E2C cmp r5, 0x4 bhi _080F08C6 lsls r0, r5, 2 ldr r1, _080F083C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F0838: .4byte gWindowConfig_81E710C _080F083C: .4byte _080F0840 .align 2, 0 _080F0840: .4byte _080F0854 .4byte _080F0854 .4byte _080F0862 .4byte _080F088C .4byte _080F089A _080F0854: ldr r0, _080F08CC movs r1, 0xA movs r2, 0x9 bl PrintCoinsString cmp r5, 0 bne _080F08C6 _080F0862: ldr r0, _080F08D0 ldr r0, [r0] ldr r1, _080F08D4 adds r4, r0, r1 ldr r2, _080F08D8 adds r0, r2 movs r2, 0 ldrsh r1, [r0, r2] adds r1, 0x1 adds r0, r4, 0 movs r2, 0x1 movs r3, 0x5 bl ConvertIntToDecimalStringN adds r0, r4, 0 movs r1, 0xA movs r2, 0xB bl PrintCoinsString cmp r5, 0 bne _080F08C6 _080F088C: ldr r0, _080F08DC movs r1, 0xA movs r2, 0xD bl PrintCoinsString cmp r5, 0 bne _080F08C6 _080F089A: movs r0, 0x9 bl sub_8053108 adds r1, r0, 0 ldr r0, _080F08E0 cmp r1, r0 bls _080F08AA adds r1, r0, 0 _080F08AA: ldr r0, _080F08D0 ldr r4, [r0] ldr r0, _080F08D4 adds r4, r0 adds r0, r4, 0 movs r2, 0x1 movs r3, 0x5 bl ConvertIntToDecimalStringN adds r0, r4, 0 movs r1, 0xA movs r2, 0xF bl PrintCoinsString _080F08C6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F08CC: .4byte gUnknown_08410E22 _080F08D0: .4byte gUnknown_083DFEC4 _080F08D4: .4byte 0x00008788 _080F08D8: .4byte 0x00008774 _080F08DC: .4byte gUnknown_08410E31 _080F08E0: .4byte 0x0001869f thumb_func_end sub_80F081C thumb_func_start sub_80F08E4 sub_80F08E4: @ 80F08E4 push {lr} ldr r0, _080F08FC bl sub_8071E2C movs r0, 0 movs r1, 0x9 movs r2, 0xB movs r3, 0x10 bl Reset pop {r0} bx r0 .align 2, 0 _080F08FC: .4byte gWindowConfig_81E710C thumb_func_end sub_80F08E4 thumb_func_start sub_80F0900 sub_80F0900: @ 80F0900 push {r4,r5,lr} ldr r0, _080F093C ldr r0, [r0] ldr r2, _080F0940 adds r1, r0, r2 subs r2, 0x2 adds r5, r0, r2 ldrh r0, [r1] ldrh r1, [r5] subs r0, r1 adds r0, 0x1 lsls r4, r0, 16 asrs r0, r4, 16 cmp r0, 0x7 bgt _080F092A movs r0, 0xC movs r1, 0x1 movs r2, 0x1F movs r3, 0xF bl Reset _080F092A: ldrh r0, [r5] lsrs r2, r4, 16 movs r1, 0 bl sub_80F0954 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F093C: .4byte gUnknown_083DFEC4 _080F0940: .4byte 0x00008772 thumb_func_end sub_80F0900 thumb_func_start sub_80F0944 sub_80F0944: @ 80F0944 push {lr} bl sub_80F098C lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80F0944 thumb_func_start sub_80F0954 sub_80F0954: @ 80F0954 push {r4,r5,lr} ldr r3, _080F097C ldr r3, [r3] ldr r5, _080F0980 adds r4, r3, r5 movs r5, 0 strh r0, [r4] ldr r4, _080F0984 adds r0, r3, r4 strh r1, [r0] ldr r1, _080F0988 adds r0, r3, r1 strh r2, [r0] adds r4, 0x6 adds r3, r4 strh r5, [r3] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F097C: .4byte gUnknown_083DFEC4 _080F0980: .4byte 0x0000877e _080F0984: .4byte 0x00008780 _080F0988: .4byte 0x00008784 thumb_func_end sub_80F0954 thumb_func_start sub_80F098C sub_80F098C: @ 80F098C push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _080F09A4 ldr r6, [r0] ldr r0, _080F09A8 adds r7, r6, r0 ldrh r0, [r7] cmp r0, 0 bne _080F09AC _080F09A0: movs r0, 0 b _080F0A02 .align 2, 0 _080F09A4: .4byte gUnknown_083DFEC4 _080F09A8: .4byte 0x00008784 _080F09AC: movs r1, 0 mov r8, r1 ldr r1, _080F0A0C ldr r2, _080F0A10 adds r0, r6, r2 ldrb r2, [r0] lsls r2, 2 adds r2, r1 ldr r0, _080F0A14 adds r4, r6, r0 ldrh r0, [r4] ldr r1, _080F0A18 adds r5, r6, r1 ldrh r1, [r5] ldr r2, [r2] bl _call_via_r2 ldrh r0, [r7] subs r0, 0x1 strh r0, [r7] ldr r2, _080F0A1C adds r1, r2, 0 lsls r0, 16 cmp r0, 0 beq _080F09A0 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] ands r0, r1 ldr r2, _080F0A20 adds r1, r6, r2 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 ble _080F09F6 mov r0, r8 strh r0, [r4] _080F09F6: ldrh r0, [r5] adds r0, 0x2 movs r1, 0x1F ands r0, r1 strh r0, [r5] movs r0, 0x1 _080F0A02: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080F0A0C: .4byte gUnknown_083E3270 _080F0A10: .4byte 0x000087ca _080F0A14: .4byte 0x0000877e _080F0A18: .4byte 0x00008780 _080F0A1C: .4byte 0x0000ffff _080F0A20: .4byte 0x00008774 thumb_func_end sub_80F098C thumb_func_start sub_80F0A24 sub_80F0A24: @ 80F0A24 push {r4,r5,lr} lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 lsrs r5, r1, 16 ldr r0, _080F0A64 ldr r4, [r0] ldr r1, _080F0A68 adds r0, r4, r1 ldrb r0, [r0] movs r2, 0x1 cmp r0, 0 bne _080F0A40 movs r2, 0x2 _080F0A40: ldr r0, _080F0A6C adds r4, r0 adds r0, r4, 0 adds r1, r3, 0 bl sub_80F4428 ldr r0, _080F0A70 bl sub_8071E2C lsls r2, r5, 24 lsrs r2, 24 adds r0, r4, 0 movs r1, 0xD bl Print pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F0A64: .4byte gUnknown_083DFEC4 _080F0A68: .4byte 0x000087c8 _080F0A6C: .4byte 0x00008788 _080F0A70: .4byte gWindowConfig_81E70D4 thumb_func_end sub_80F0A24 thumb_func_start sub_80F0A74 sub_80F0A74: @ 80F0A74 push {r4-r7,lr} sub sp, 0x14 lsls r0, 16 lsrs r6, r0, 16 lsls r1, 16 lsrs r7, r1, 16 ldr r0, _080F0ADC ldr r5, [r0] ldr r0, _080F0AE0 adds r4, r5, r0 adds r0, r4, 0 adds r1, r6, 0 bl sub_80F700C movs r0, 0x1F ands r7, r0 ldr r0, _080F0AE4 bl sub_8071E2C lsls r2, r7, 3 adds r0, r4, 0 movs r1, 0x61 movs r3, 0 bl sub_80729D8 ldr r1, _080F0AE8 adds r0, r5, r1 ldrh r0, [r0] cmp r6, r0 bcs _080F0AF8 lsls r0, r6, 3 adds r0, r5, r0 ldr r1, _080F0AEC adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080F0AF8 ldr r0, _080F0AF0 ldr r3, _080F0AF4 movs r1, 0 str r1, [sp] str r1, [sp, 0x4] movs r2, 0x1 str r2, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] str r2, [sp, 0x10] movs r1, 0x1D adds r2, r7, 0 bl sub_8095C8C b _080F0B14 .align 2, 0 _080F0ADC: .4byte gUnknown_083DFEC4 _080F0AE0: .4byte 0x00008788 _080F0AE4: .4byte gWindowConfig_81E70D4 _080F0AE8: .4byte 0x0000d158 _080F0AEC: .4byte 0x0000ceed _080F0AF0: .4byte 0x0600f000 _080F0AF4: .4byte gUnknown_083E039C _080F0AF8: ldr r0, _080F0B1C ldr r3, _080F0B20 movs r1, 0 str r1, [sp] str r1, [sp, 0x4] movs r2, 0x1 str r2, [sp, 0x8] movs r1, 0x2 str r1, [sp, 0xC] str r2, [sp, 0x10] movs r1, 0x1D adds r2, r7, 0 bl sub_8095C8C _080F0B14: add sp, 0x14 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F0B1C: .4byte 0x0600f000 _080F0B20: .4byte gUnknown_083E03A0 thumb_func_end sub_80F0A74 thumb_func_start sub_80F0B24 sub_80F0B24: @ 80F0B24 ldr r0, _080F0B38 ldr r0, [r0] ldr r2, _080F0B3C adds r1, r0, r2 movs r2, 0 strh r2, [r1] ldr r1, _080F0B40 adds r0, r1 strh r2, [r0] bx lr .align 2, 0 _080F0B38: .4byte gUnknown_083DFEC4 _080F0B3C: .4byte 0x0000d15c _080F0B40: .4byte 0x00000306 thumb_func_end sub_80F0B24 thumb_func_start sub_80F0B44 sub_80F0B44: @ 80F0B44 push {r4-r6,lr} ldr r0, _080F0B58 ldr r5, [r0] ldr r0, _080F0B5C adds r6, r5, r0 ldrh r0, [r6] cmp r0, 0x8 bls _080F0B60 movs r0, 0 b _080F0C22 .align 2, 0 _080F0B58: .4byte gUnknown_083DFEC4 _080F0B5C: .4byte 0x0000d15c _080F0B60: ldr r0, _080F0BBC adds r1, r5, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _080F0C20 movs r0, 0 strh r0, [r1] ldrh r0, [r6] cmp r0, 0x7 bhi _080F0BCC ldr r0, _080F0BC0 adds r1, r5, r0 ldrh r2, [r6] lsls r0, r2, 1 ldrh r1, [r1] adds r4, r0, r1 movs r0, 0x1F ands r4, r0 ldr r1, _080F0BC4 adds r0, r5, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r2, r0 beq _080F0BAA ldr r0, _080F0BC8 bl sub_8071E2C adds r1, r4, 0 adds r3, r1, 0x1 movs r0, 0xC movs r2, 0x1F bl Reset _080F0BAA: ldrh r0, [r6] cmp r0, 0 bne _080F0BB4 bl sub_80F08E4 _080F0BB4: ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] b _080F0C20 .align 2, 0 _080F0BBC: .4byte 0x00000306 _080F0BC0: .4byte 0x00008778 _080F0BC4: .4byte 0x0000876c _080F0BC8: .4byte gWindowConfig_81E70D4 _080F0BCC: ldr r0, _080F0C10 bl sub_8071E2C ldr r1, _080F0C14 adds r0, r5, r1 ldrh r0, [r0] adds r4, r0, 0 adds r4, 0x10 movs r0, 0x1F ands r4, r0 movs r5, 0 _080F0BE2: adds r3, r4, 0x1 movs r0, 0xC adds r1, r4, 0 movs r2, 0x1F bl Reset adds r4, 0x2 movs r0, 0x1F ands r4, r0 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x7 bls _080F0BE2 ldr r0, _080F0C18 ldr r1, [r0] ldr r0, _080F0C1C adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0 b _080F0C22 .align 2, 0 _080F0C10: .4byte gWindowConfig_81E70D4 _080F0C14: .4byte 0x00008778 _080F0C18: .4byte gUnknown_083DFEC4 _080F0C1C: .4byte 0x0000d15c _080F0C20: movs r0, 0x1 _080F0C22: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80F0B44 thumb_func_start sub_80F0C28 sub_80F0C28: @ 80F0C28 ldr r0, _080F0C3C ldr r0, [r0] ldr r2, _080F0C40 adds r1, r0, r2 movs r2, 0 strh r2, [r1] ldr r1, _080F0C44 adds r0, r1 strh r2, [r0] bx lr .align 2, 0 _080F0C3C: .4byte gUnknown_083DFEC4 _080F0C40: .4byte 0x0000d15c _080F0C44: .4byte 0x00000306 thumb_func_end sub_80F0C28 thumb_func_start sub_80F0C48 sub_80F0C48: @ 80F0C48 push {r4-r6,lr} ldr r0, _080F0C5C ldr r4, [r0] ldr r0, _080F0C60 adds r5, r4, r0 ldrh r0, [r5] cmp r0, 0x7 bls _080F0C64 movs r0, 0 b _080F0CD2 .align 2, 0 _080F0C5C: .4byte gUnknown_083DFEC4 _080F0C60: .4byte 0x0000d15c _080F0C64: ldr r2, _080F0CBC adds r1, r4, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] ldr r2, _080F0CC0 adds r6, r2, 0 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _080F0CD0 movs r0, 0 strh r0, [r1] ldr r0, _080F0CC4 bl sub_8071E2C ldr r0, _080F0CC8 adds r1, r4, r0 ldrh r0, [r5] ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r1, _080F0CCC adds r2, r4, r1 ldrh r1, [r5] lsls r1, 1 ldrh r2, [r2] adds r1, r2 lsls r1, 16 lsrs r1, 16 bl sub_80F0A74 ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] ands r0, r6 cmp r0, 0x7 bls _080F0CD0 movs r0, 0 bl sub_80F081C movs r0, 0 b _080F0CD2 .align 2, 0 _080F0CBC: .4byte 0x00000306 _080F0CC0: .4byte 0x0000ffff _080F0CC4: .4byte gWindowConfig_81E70D4 _080F0CC8: .4byte 0x00008770 _080F0CCC: .4byte 0x00008778 _080F0CD0: movs r0, 0x1 _080F0CD2: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80F0C48 thumb_func_start sub_80F0CD8 sub_80F0CD8: @ 80F0CD8 push {r4,r5,lr} ldr r4, _080F0D40 ldr r1, [r4] ldr r2, _080F0D44 adds r0, r1, r2 movs r2, 0 strh r2, [r0] ldr r3, _080F0D48 adds r0, r1, r3 strh r2, [r0] ldr r2, _080F0D4C adds r0, r1, r2 movs r3, 0 ldrsh r0, [r0, r3] lsls r0, 3 adds r0, r1, r0 ldr r2, _080F0D50 adds r0, r2 ldrb r0, [r0] ldr r3, _080F0D54 adds r1, r3 ldr r2, _080F0D58 lsls r0, 2 adds r0, r2 ldr r0, [r0] str r0, [r1] adds r2, r0, 0 movs r1, 0 adds r5, r4, 0 adds r4, r3, 0 _080F0D14: ldrb r0, [r2] adds r3, r1, 0x1 cmp r0, 0xFF beq _080F0D24 _080F0D1C: adds r2, 0x1 ldrb r0, [r2] cmp r0, 0xFF bne _080F0D1C _080F0D24: ldr r0, [r5] lsls r1, r3, 2 adds r0, r4 adds r0, r1 adds r2, 0x1 str r2, [r0] lsls r0, r3, 16 lsrs r1, r0, 16 cmp r1, 0x2 bls _080F0D14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F0D40: .4byte gUnknown_083DFEC4 _080F0D44: .4byte 0x00000306 _080F0D48: .4byte 0x0000d15c _080F0D4C: .4byte 0x0000876e _080F0D50: .4byte 0x0000ceec _080F0D54: .4byte 0x0000d110 _080F0D58: .4byte gTrainerEyeDescriptions thumb_func_end sub_80F0CD8 thumb_func_start sub_80F0D5C sub_80F0D5C: @ 80F0D5C push {r4,r5,lr} ldr r0, _080F0D70 ldr r4, [r0] ldr r0, _080F0D74 adds r5, r4, r0 ldrh r0, [r5] cmp r0, 0x7 bne _080F0D78 _080F0D6C: movs r0, 0 b _080F0EB0 .align 2, 0 _080F0D70: .4byte gUnknown_083DFEC4 _080F0D74: .4byte 0x0000d15c _080F0D78: ldr r0, _080F0DB8 adds r1, r4, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080F0D8C b _080F0EAE _080F0D8C: movs r0, 0 strh r0, [r1] ldr r0, _080F0DBC bl sub_8071E2C ldr r0, _080F0DC0 adds r1, r4, r0 ldrh r3, [r5] lsls r0, r3, 1 adds r0, 0x2 ldrh r1, [r1] adds r5, r0, r1 movs r0, 0x1F ands r5, r0 cmp r3, 0x6 bhi _080F0D6C lsls r0, r3, 2 ldr r1, _080F0DC4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F0DB8: .4byte 0x00000306 _080F0DBC: .4byte gWindowConfig_81E70D4 _080F0DC0: .4byte 0x00008778 _080F0DC4: .4byte _080F0DC8 .align 2, 0 _080F0DC8: .4byte _080F0DE4 .4byte _080F0DF0 .4byte _080F0E08 .4byte _080F0E14 .4byte _080F0E2C .4byte _080F0E38 .4byte _080F0E6C _080F0DE4: ldr r0, _080F0DEC lsls r2, r5, 3 b _080F0E54 .align 2, 0 _080F0DEC: .4byte gUnknown_08410E40 _080F0DF0: ldr r0, _080F0DFC ldr r0, [r0] ldr r1, _080F0E00 adds r4, r0, r1 ldr r1, _080F0E04 b _080F0E42 .align 2, 0 _080F0DFC: .4byte gUnknown_083DFEC4 _080F0E00: .4byte 0x00008788 _080F0E04: .4byte 0x0000d110 _080F0E08: ldr r0, _080F0E10 lsls r2, r5, 3 b _080F0E54 .align 2, 0 _080F0E10: .4byte gUnknown_08410E4C _080F0E14: ldr r0, _080F0E20 ldr r0, [r0] ldr r1, _080F0E24 adds r4, r0, r1 ldr r1, _080F0E28 b _080F0E42 .align 2, 0 _080F0E20: .4byte gUnknown_083DFEC4 _080F0E24: .4byte 0x00008788 _080F0E28: .4byte 0x0000d114 _080F0E2C: ldr r0, _080F0E34 lsls r2, r5, 3 b _080F0E54 .align 2, 0 _080F0E34: .4byte gUnknown_08410E61 _080F0E38: ldr r0, _080F0E60 ldr r0, [r0] ldr r1, _080F0E64 adds r4, r0, r1 ldr r1, _080F0E68 _080F0E42: adds r0, r1 ldr r1, [r0] adds r0, r4, 0 movs r2, 0x88 movs r3, 0 bl sub_8072C74 lsls r2, r5, 3 adds r0, r4, 0 _080F0E54: movs r1, 0x61 movs r3, 0 bl sub_80729D8 b _080F0EA0 .align 2, 0 _080F0E60: .4byte gUnknown_083DFEC4 _080F0E64: .4byte 0x00008788 _080F0E68: .4byte 0x0000d118 _080F0E6C: ldr r0, _080F0E94 ldr r0, [r0] ldr r1, _080F0E98 adds r4, r0, r1 ldr r1, _080F0E9C adds r0, r1 ldr r1, [r0] adds r0, r4, 0 movs r2, 0x88 movs r3, 0 bl sub_8072C74 lsls r2, r5, 3 adds r0, r4, 0 movs r1, 0x61 movs r3, 0 bl sub_80729D8 b _080F0D6C .align 2, 0 _080F0E94: .4byte gUnknown_083DFEC4 _080F0E98: .4byte 0x00008788 _080F0E9C: .4byte 0x0000d11c _080F0EA0: ldr r0, _080F0EB8 ldr r1, [r0] ldr r0, _080F0EBC adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F0EAE: movs r0, 0x1 _080F0EB0: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080F0EB8: .4byte gUnknown_083DFEC4 _080F0EBC: .4byte 0x0000d15c thumb_func_end sub_80F0D5C thumb_func_start sub_80F0EC0 sub_80F0EC0: @ 80F0EC0 push {lr} ldr r0, _080F0EE4 ldr r0, [r0] ldr r2, _080F0EE8 adds r1, r0, r2 movs r2, 0 strh r2, [r1] ldr r3, _080F0EEC adds r1, r0, r3 strh r2, [r1] ldr r1, _080F0EF0 adds r0, r1 movs r1, 0 movs r2, 0x10 bl StringFill pop {r0} bx r0 .align 2, 0 _080F0EE4: .4byte gUnknown_083DFEC4 _080F0EE8: .4byte 0x00000306 _080F0EEC: .4byte 0x0000d15c _080F0EF0: .4byte 0x00008788 thumb_func_end sub_80F0EC0 thumb_func_start sub_80F0EF4 sub_80F0EF4: @ 80F0EF4 push {r4,r5,lr} ldr r0, _080F0F08 ldr r2, [r0] ldr r0, _080F0F0C adds r5, r2, r0 ldrh r0, [r5] cmp r0, 0x6 bls _080F0F10 movs r0, 0 b _080F0F52 .align 2, 0 _080F0F08: .4byte gUnknown_083DFEC4 _080F0F0C: .4byte 0x0000d15c _080F0F10: ldr r0, _080F0F58 adds r1, r2, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _080F0F50 movs r0, 0 strh r0, [r1] ldr r1, _080F0F5C adds r0, r2, r1 ldrh r4, [r5] lsls r4, 1 adds r4, 0x2 ldrh r0, [r0] adds r4, r0 movs r0, 0x1F ands r4, r0 ldr r0, _080F0F60 bl sub_8071E2C adds r3, r4, 0x1 movs r0, 0xC adds r1, r4, 0 movs r2, 0x1F bl Reset ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _080F0F50: movs r0, 0x1 _080F0F52: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080F0F58: .4byte 0x00000306 _080F0F5C: .4byte 0x00008778 _080F0F60: .4byte gWindowConfig_81E70D4 thumb_func_end sub_80F0EF4 thumb_func_start sub_80F0F64 sub_80F0F64: @ 80F0F64 push {r4,lr} ldr r0, _080F0F90 ldr r3, [r0] ldr r1, _080F0F94 adds r0, r3, r1 movs r4, 0 ldrsh r2, [r0, r4] lsls r1, r2, 4 ldr r4, _080F0F98 adds r0, r3, r4 strh r1, [r0] movs r1, 0x8 cmp r2, 0x1 bne _080F0F82 movs r1, 0x4 _080F0F82: ldr r2, _080F0F9C adds r0, r3, r2 strh r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080F0F90: .4byte gUnknown_083DFEC4 _080F0F94: .4byte 0x0000876c _080F0F98: .4byte 0x0000877c _080F0F9C: .4byte 0x0000877a thumb_func_end sub_80F0F64 thumb_func_start sub_80F0FA0 sub_80F0FA0: @ 80F0FA0 push {r4,lr} ldr r0, _080F0FDC ldr r3, [r0] ldr r1, _080F0FE0 adds r0, r3, r1 movs r4, 0 ldrsh r0, [r0, r4] negs r0, r0 lsls r0, 16 asrs r0, 16 lsls r2, r0, 4 ldr r4, _080F0FE4 adds r1, r3, r4 strh r2, [r1] movs r1, 0x1 negs r1, r1 movs r4, 0x8 negs r4, r4 adds r2, r4, 0 cmp r0, r1 bne _080F0FD0 movs r0, 0x4 negs r0, r0 adds r2, r0, 0 _080F0FD0: ldr r1, _080F0FE8 adds r0, r3, r1 strh r2, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080F0FDC: .4byte gUnknown_083DFEC4 _080F0FE0: .4byte 0x0000876c _080F0FE4: .4byte 0x0000877c _080F0FE8: .4byte 0x0000877a thumb_func_end sub_80F0FA0 thumb_func_start sub_80F0FEC sub_80F0FEC: @ 80F0FEC push {lr} bl sub_80F0718 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80F0FEC thumb_func_start sub_80F0FFC sub_80F0FFC: @ 80F0FFC push {r4,r5,lr} lsls r0, 24 ldr r1, _080F1048 ldr r4, [r1] ldr r1, _080F104C adds r5, r4, r1 lsrs r0, 21 adds r0, r4, r0 ldr r1, _080F1050 adds r0, r1 ldrh r1, [r0] adds r0, r5, 0 movs r2, 0 bl sub_80FBFB4 ldr r0, _080F1054 bl sub_8071E2C adds r0, r5, 0 bl sub_80F19DC ldr r0, _080F1058 adds r4, r0 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x58 movs r3, 0x2 bl sub_8072C74 adds r0, r4, 0 movs r1, 0 movs r2, 0x5 bl Print pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F1048: .4byte gUnknown_083DFEC4 _080F104C: .4byte 0x00008788 _080F1050: .4byte 0x0000ceea _080F1054: .4byte gWindowConfig_81E710C _080F1058: .4byte 0x0000d138 thumb_func_end sub_80F0FFC thumb_func_start sub_80F105C sub_80F105C: @ 80F105C push {lr} ldr r0, _080F1078 ldr r1, [r0] ldr r2, _080F107C adds r0, r1, r2 ldrh r0, [r0] adds r2, 0xA adds r1, r2 ldrh r1, [r1] bl sub_80F0A74 pop {r0} bx r0 .align 2, 0 _080F1078: .4byte gUnknown_083DFEC4 _080F107C: .4byte 0x0000876e thumb_func_end sub_80F105C thumb_func_start sub_80F1080 sub_80F1080: @ 80F1080 push {r4,lr} ldr r1, _080F10A0 ldr r0, [r1] ldr r2, _080F10A4 adds r0, r2 ldrh r0, [r0] adds r2, r1, 0 cmp r0, 0xE bls _080F1094 b _080F1204 _080F1094: lsls r0, 2 ldr r1, _080F10A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F10A0: .4byte gUnknown_083DFEC4 _080F10A4: .4byte 0x0000d160 _080F10A8: .4byte _080F10AC .align 2, 0 _080F10AC: .4byte _080F10E8 .4byte _080F1104 .4byte _080F1110 .4byte _080F111C .4byte _080F1128 .4byte _080F112E .4byte _080F1134 .4byte _080F1142 .4byte _080F1160 .4byte _080F1166 .4byte _080F116C .4byte _080F1180 .4byte _080F1194 .4byte _080F11DC .4byte _080F11E2 _080F10E8: bl sub_80EEDE8 ldr r0, _080F10FC ldr r0, [r0] ldr r3, _080F1100 adds r0, r3 movs r1, 0xB strb r1, [r0] b _080F1218 .align 2, 0 _080F10FC: .4byte gUnknown_083DFEC4 _080F1100: .4byte 0x0000d162 _080F1104: ldr r0, _080F110C bl SetUpWindowConfig b _080F1218 .align 2, 0 _080F110C: .4byte gWindowConfig_81E70B8 _080F1110: ldr r0, _080F1118 bl sub_8071C58 b _080F1218 .align 2, 0 _080F1118: .4byte gWindowConfig_81E70B8 _080F111C: bl sub_8071C94 cmp r0, 0 beq _080F1126 b _080F1218 _080F1126: b _080F1226 _080F1128: bl sub_8071EF4 b _080F1218 _080F112E: bl sub_80F1614 b _080F1218 _080F1134: movs r0, 0x1 bl sub_80F162C lsls r0, 24 cmp r0, 0 beq _080F1218 b _080F1226 _080F1142: ldr r0, _080F1154 ldr r1, _080F1158 ldr r1, [r1] ldr r2, _080F115C adds r1, r2 bl LZ77UnCompWram b _080F1218 .align 2, 0 _080F1154: .4byte gUnknown_08E9FBA0 _080F1158: .4byte gUnknown_083DFEC4 _080F115C: .4byte 0x0000934c _080F1160: bl sub_80F1238 b _080F1218 _080F1166: bl sub_80F13FC b _080F1218 _080F116C: ldr r0, _080F1178 ldr r1, _080F117C bl LZ77UnCompVram b _080F1218 .align 2, 0 _080F1178: .4byte gUnknown_08E9FB1C _080F117C: .4byte 0x06008000 _080F1180: ldr r0, _080F118C ldr r1, _080F1190 bl LZ77UnCompVram b _080F1218 .align 2, 0 _080F118C: .4byte gUnknown_083E040C _080F1190: .4byte 0x06008200 _080F1194: ldr r0, _080F11CC movs r1, 0x20 movs r2, 0x20 bl LoadPalette ldr r4, _080F11D0 adds r0, r4, 0 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r0, _080F11D4 movs r1, 0x30 movs r2, 0xA0 bl LoadPalette ldr r0, _080F11D8 movs r1, 0xB0 movs r2, 0x20 bl LoadPalette adds r4, 0x1E adds r0, r4, 0 movs r1, 0xBF movs r2, 0x2 bl LoadPalette b _080F1218 .align 2, 0 _080F11CC: .4byte gUnknown_08E9FAFC _080F11D0: .4byte gUnknown_083E03A8 _080F11D4: .4byte gUnknown_083E3C60 _080F11D8: .4byte gUnknownPalette_81E6692 _080F11DC: bl sub_80F1438 b _080F1218 _080F11E2: ldr r1, _080F1208 ldr r3, _080F120C adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080F1210 adds r0, r3, 0 strh r0, [r1] adds r1, 0x42 movs r0, 0 strh r0, [r1] ldr r1, [r2] ldr r0, _080F1214 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F1204: movs r0, 0 b _080F1228 .align 2, 0 _080F1208: .4byte REG_BG2CNT _080F120C: .4byte 0x00001e02 _080F1210: .4byte 0x0000170b _080F1214: .4byte 0x0000d160 _080F1218: ldr r0, _080F1230 ldr r1, [r0] ldr r2, _080F1234 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F1226: movs r0, 0x1 _080F1228: pop {r4} pop {r1} bx r1 .align 2, 0 _080F1230: .4byte gUnknown_083DFEC4 _080F1234: .4byte 0x0000d160 thumb_func_end sub_80F1080 thumb_func_start sub_80F1238 sub_80F1238: @ 80F1238 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r6, 0x8B ldr r0, _080F1318 ldr r2, [r0] ldr r1, _080F131C adds r0, r2, r1 ldr r3, _080F1320 adds r1, r2, r3 ldrb r0, [r0] ldrb r1, [r1] subs r0, r1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r7, 0 mov r5, sp adds r4, r2, 0 _080F1264: movs r1, 0x80 lsls r1, 6 adds r0, r1, 0 strh r0, [r5] lsls r1, r7, 5 adds r1, r6, r1 lsls r1, 1 ldr r2, _080F1324 adds r1, r2 adds r1, r4, r1 mov r0, sp ldr r2, _080F1328 bl CpuSet adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0x7 bls _080F1264 ldr r3, [sp, 0x4] lsls r0, r3, 16 movs r7, 0 mov r9, r0 cmp r0, 0 beq _080F1342 ldr r0, _080F1318 ldr r0, [r0] mov r8, r0 ldr r1, _080F132C mov r10, r1 ldr r5, _080F1324 add r5, r8 _080F12A4: ldr r0, _080F1330 add r0, r8 adds r0, r7 ldrb r1, [r0] lsls r1, 2 mov r0, r10 adds r0, 0x2 adds r0, r1, r0 ldrb r2, [r0] adds r2, 0x3 lsls r2, 24 add r1, r10 ldrh r0, [r1] lsls r0, 25 movs r3, 0x80 lsls r3, 21 adds r0, r3 lsrs r4, r0, 24 lsls r1, r6, 1 adds r1, r5, r1 lsrs r2, 12 adds r0, r2, 0 orrs r0, r4 strh r0, [r1] adds r1, r6, 0x1 lsls r1, 1 adds r1, r5, r1 movs r3, 0x80 lsls r3, 3 adds r0, r3, 0 adds r3, r2, 0 orrs r3, r0 adds r0, r3, 0 orrs r0, r4 strh r0, [r1] adds r0, r6, 0 adds r0, 0x20 lsls r0, 1 adds r0, r5, r0 adds r1, r4, 0x1 orrs r2, r1 strh r2, [r0] adds r0, r6, 0 adds r0, 0x21 lsls r0, 1 adds r0, r5, r0 orrs r3, r1 strh r3, [r0] adds r4, r7, 0x1 adds r0, r4, 0 movs r1, 0x9 bl __modsi3 cmp r0, 0 bne _080F1334 adds r0, r6, 0 adds r0, 0x30 b _080F1336 .align 2, 0 _080F1318: .4byte gUnknown_083DFEC4 _080F131C: .4byte 0x0000bc8e _080F1320: .4byte 0x0000bc8f _080F1324: .4byte 0x0000934c _080F1328: .4byte 0x01000012 _080F132C: .4byte gUnknown_083E4698 _080F1330: .4byte 0x0000bc4c _080F1334: adds r0, r6, 0x2 _080F1336: lsls r0, 16 lsrs r6, r0, 16 lsls r0, r4, 16 lsrs r7, r0, 16 cmp r0, r9 bcc _080F12A4 _080F1342: ldr r6, _080F13E8 movs r7, 0 ldr r1, _080F13EC ldr r0, [r1] ldr r2, _080F13F0 adds r1, r0, r2 ldrb r3, [r1] cmp r7, r3 bcs _080F13D8 subs r2, 0x43 adds r2, r0 mov r10, r2 ldr r3, _080F13F4 mov r8, r3 ldr r2, _080F13F8 adds r5, r0, r2 mov r9, r1 _080F1364: ldr r3, [sp, 0x4] adds r0, r3, r7 add r0, r10 ldrb r1, [r0] lsls r1, 2 mov r0, r8 adds r0, 0x2 adds r0, r1, r0 ldrb r2, [r0] adds r2, 0x3 lsls r2, 24 add r1, r8 ldrh r0, [r1] lsls r0, 25 movs r1, 0x80 lsls r1, 21 adds r0, r1 lsrs r4, r0, 24 lsls r1, r6, 1 adds r1, r5, r1 lsrs r2, 12 adds r0, r2, 0 orrs r0, r4 strh r0, [r1] adds r1, r6, 0x1 lsls r1, 1 adds r1, r5, r1 movs r3, 0x80 lsls r3, 3 adds r0, r3, 0 adds r3, r2, 0 orrs r3, r0 adds r0, r3, 0 orrs r0, r4 strh r0, [r1] adds r0, r6, 0 adds r0, 0x20 lsls r0, 1 adds r0, r5, r0 adds r1, r4, 0x1 orrs r2, r1 strh r2, [r0] adds r0, r6, 0 adds r0, 0x21 lsls r0, 1 adds r0, r5, r0 orrs r3, r1 strh r3, [r0] adds r0, r6, 0x2 lsls r0, 16 lsrs r6, r0, 16 adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 mov r0, r9 ldrb r0, [r0] cmp r7, r0 bcc _080F1364 _080F13D8: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F13E8: .4byte 0x0000014b _080F13EC: .4byte gUnknown_083DFEC4 _080F13F0: .4byte 0x0000bc8f _080F13F4: .4byte gUnknown_083E4698 _080F13F8: .4byte 0x0000934c thumb_func_end sub_80F1238 thumb_func_start sub_80F13FC sub_80F13FC: @ 80F13FC ldr r0, _080F141C ldr r0, [r0] ldr r1, _080F1420 adds r0, r1 ldr r2, _080F1424 ldr r1, _080F1428 str r0, [r1] str r2, [r1, 0x4] ldr r0, _080F142C str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, _080F1430 ldr r0, _080F1434 ldrh r0, [r0] strh r0, [r1] bx lr .align 2, 0 _080F141C: .4byte gUnknown_083DFEC4 _080F1420: .4byte 0x0000934c _080F1424: .4byte 0x0600b800 _080F1428: .4byte 0x040000d4 _080F142C: .4byte 0x84000140 _080F1430: .4byte 0x0202eac8 _080F1434: .4byte gUnknown_08E9FB18 thumb_func_end sub_80F13FC thumb_func_start sub_80F1438 sub_80F1438: @ 80F1438 push {r4,r5,lr} ldr r0, _080F1470 ldr r4, [r0] ldr r1, _080F1474 adds r0, r4, r1 movs r1, 0xD movs r2, 0x1 bl Print ldr r0, _080F1478 adds r5, r4, r0 ldr r1, _080F147C adds r4, r1 ldrh r1, [r4] adds r1, 0x1 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl sub_80F445C adds r0, r5, 0 movs r1, 0x1 movs r2, 0x5 bl Print pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F1470: .4byte gUnknown_083DFEC4 _080F1474: .4byte 0x00008829 _080F1478: .4byte 0x00008788 _080F147C: .4byte 0x0000876e thumb_func_end sub_80F1438 thumb_func_start sub_80F1480 sub_80F1480: @ 80F1480 push {lr} movs r0, 0xC movs r1, 0xD movs r2, 0x1B movs r3, 0x10 bl Reset pop {r0} bx r0 thumb_func_end sub_80F1480 thumb_func_start sub_80F1494 sub_80F1494: @ 80F1494 push {r4-r7,lr} ldr r0, _080F14D4 ldr r0, [r0] movs r1, 0x80 lsls r1, 4 adds r6, r0, r1 ldr r2, _080F14D8 adds r7, r0, r2 ldr r0, _080F14DC ldr r3, [r0] ldr r4, _080F14E0 adds r1, r3, r4 ldrb r0, [r1] cmp r0, 0x2 bhi _080F14F0 ldr r5, _080F14E4 adds r1, r0, 0 lsls r0, r1, 3 subs r4, 0x1 adds r2, r3, r4 adds r0, r1 ldrb r2, [r2] adds r0, r2 strh r0, [r5] ldr r1, _080F14E8 adds r0, r3, r1 ldrh r2, [r5] adds r0, r2 ldrb r0, [r0] strh r0, [r5] ldr r4, _080F14EC b _080F152E .align 2, 0 _080F14D4: .4byte gUnknown_083DFEC8 _080F14D8: .4byte 0x00000a98 _080F14DC: .4byte gUnknown_083DFEC4 _080F14E0: .4byte 0x0000bc91 _080F14E4: .4byte 0x020388b4 _080F14E8: .4byte 0x0000bc4c _080F14EC: .4byte gRibbonDescriptions _080F14F0: ldr r5, _080F1558 ldr r4, _080F155C adds r0, r3, r4 ldrb r0, [r0] ldr r2, _080F1560 adds r1, r3, r2 ldrb r1, [r1] subs r0, r1 strh r0, [r5] ldrh r1, [r5] adds r4, 0x2 adds r0, r3, r4 ldrb r0, [r0] adds r1, r0 subs r2, 0x43 adds r0, r3, r2 adds r0, r1 ldrb r0, [r0] strh r0, [r5] ldr r0, _080F1564 ldrh r1, [r5] adds r0, r1 ldr r4, _080F1568 adds r0, r4 ldrb r0, [r0] strh r0, [r5] cmp r0, 0 beq _080F1570 subs r0, 0x1 strh r0, [r5] ldr r4, _080F156C _080F152E: ldrh r0, [r5] lsls r0, 3 adds r0, r4 ldr r1, [r0] adds r0, r6, 0 movs r2, 0x80 movs r3, 0 bl sub_8072C74 ldrh r0, [r5] lsls r0, 3 adds r4, 0x4 adds r0, r4 ldr r1, [r0] adds r0, r7, 0 movs r2, 0x80 movs r3, 0 bl sub_8072C74 b _080F158A .align 2, 0 _080F1558: .4byte 0x020388b4 _080F155C: .4byte 0x0000bc8e _080F1560: .4byte 0x0000bc8f _080F1564: .4byte 0x02025734 _080F1568: .4byte 0x000030f7 _080F156C: .4byte gGiftRibbonDescriptions _080F1570: ldr r4, _080F15A4 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x80 movs r3, 0 bl sub_8072C74 adds r0, r7, 0 adds r1, r4, 0 movs r2, 0x80 movs r3, 0 bl sub_8072C74 _080F158A: adds r0, r6, 0 movs r1, 0xC movs r2, 0xD bl Print adds r0, r7, 0 movs r1, 0xC movs r2, 0xF bl Print pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F15A4: .4byte gEmptyString_81E72B0 thumb_func_end sub_80F1494 thumb_func_start sub_80F15A8 sub_80F15A8: @ 80F15A8 push {r4,r5,lr} movs r0, 0xC movs r1, 0xD movs r2, 0x1B movs r3, 0x10 bl Reset ldr r0, _080F1600 ldr r4, [r0] ldr r0, _080F1604 adds r5, r4, r0 ldr r1, _080F1608 adds r0, r5, 0 bl StringCopy adds r2, r0, 0 movs r0, 0 strb r0, [r2] adds r2, 0x1 ldr r1, _080F160C adds r0, r4, r1 movs r1, 0 ldrsh r0, [r0, r1] lsls r0, 2 adds r4, r0 ldr r0, _080F1610 adds r4, r0 ldrb r1, [r4] adds r0, r2, 0 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN adds r2, r0, 0 movs r0, 0xFF strb r0, [r2] adds r0, r5, 0 movs r1, 0xC movs r2, 0xD bl Print pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F1600: .4byte gUnknown_083DFEC4 _080F1604: .4byte 0x00008788 _080F1608: .4byte gUnknown_08410E8C _080F160C: .4byte 0x000087dc _080F1610: .4byte 0x0000893c thumb_func_end sub_80F15A8 thumb_func_start sub_80F1614 sub_80F1614: @ 80F1614 ldr r0, _080F1624 ldr r0, [r0] ldr r1, _080F1628 adds r0, r1 movs r1, 0 strh r1, [r0] bx lr .align 2, 0 _080F1624: .4byte gUnknown_083DFEC4 _080F1628: .4byte 0x00008764 thumb_func_end sub_80F1614 thumb_func_start sub_80F162C sub_80F162C: @ 80F162C push {lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _080F164C ldr r0, [r0] ldr r2, _080F1650 adds r0, r2 ldrh r0, [r0] cmp r0, 0x1 beq _080F165E cmp r0, 0x1 bgt _080F1654 cmp r0, 0 beq _080F16F0 b _080F16D0 .align 2, 0 _080F164C: .4byte gUnknown_083DFEC4 _080F1650: .4byte 0x00008764 _080F1654: cmp r0, 0x2 beq _080F1670 cmp r0, 0x3 beq _080F1694 b _080F16D0 _080F165E: ldr r0, _080F1668 ldr r1, _080F166C bl LZ77UnCompVram b _080F16F0 .align 2, 0 _080F1668: .4byte gUnknown_08E9FF58 _080F166C: .4byte 0x0600e800 _080F1670: ldr r1, _080F1684 ldr r2, _080F1688 ldr r0, _080F168C str r1, [r0] str r2, [r0, 0x4] ldr r1, _080F1690 str r1, [r0, 0x8] ldr r0, [r0, 0x8] b _080F16F0 .align 2, 0 _080F1684: .4byte gUnknown_08EA0028 _080F1688: .4byte 0x0600e000 _080F168C: .4byte 0x040000d4 _080F1690: .4byte 0x80000070 _080F1694: cmp r1, 0 bne _080F16A8 ldr r0, _080F16A4 movs r1, 0xD0 movs r2, 0x20 bl LoadPalette b _080F16B2 .align 2, 0 _080F16A4: .4byte gUnknown_083E0124 _080F16A8: ldr r0, _080F16D4 movs r1, 0xD0 movs r2, 0x20 bl LoadPalette _080F16B2: ldr r0, _080F16D8 ldr r1, [r0] ldr r3, _080F16DC adds r2, r1, r3 ldr r0, _080F16E0 strh r0, [r2] ldr r2, _080F16E4 ldr r3, _080F16E8 adds r0, r3, 0 strh r0, [r2] ldr r0, _080F16EC adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F16D0: movs r0, 0 b _080F1700 .align 2, 0 _080F16D4: .4byte gUnknown_083E0144 _080F16D8: .4byte gUnknown_083DFEC4 _080F16DC: .4byte 0x00008766 _080F16E0: .4byte 0x0000ffb0 _080F16E4: .4byte REG_BG0CNT _080F16E8: .4byte 0x00001d0d _080F16EC: .4byte 0x00008764 _080F16F0: ldr r0, _080F1704 ldr r1, [r0] ldr r2, _080F1708 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0x1 _080F1700: pop {r1} bx r1 .align 2, 0 _080F1704: .4byte gUnknown_083DFEC4 _080F1708: .4byte 0x00008764 thumb_func_end sub_80F162C thumb_func_start sub_80F170C sub_80F170C: @ 80F170C push {lr} ldr r0, _080F1734 ldr r0, [r0] ldr r2, _080F1738 adds r1, r0, r2 ldrh r0, [r1] adds r0, 0x10 strh r0, [r1] lsls r0, 16 cmp r0, 0 ble _080F1726 movs r0, 0 strh r0, [r1] _080F1726: movs r0, 0 ldrsh r1, [r1, r0] negs r0, r1 orrs r0, r1 lsrs r0, 31 pop {r1} bx r1 .align 2, 0 _080F1734: .4byte gUnknown_083DFEC4 _080F1738: .4byte 0x00008766 thumb_func_end sub_80F170C thumb_func_start sub_80F173C sub_80F173C: @ 80F173C push {lr} ldr r0, _080F176C ldr r0, [r0] ldr r2, _080F1770 adds r1, r0, r2 ldrh r0, [r1] subs r0, 0x10 strh r0, [r1] lsls r0, 16 asrs r0, 16 movs r2, 0x50 negs r2, r2 cmp r0, r2 bge _080F175C ldr r0, _080F1774 strh r0, [r1] _080F175C: movs r0, 0 ldrsh r1, [r1, r0] eors r1, r2 negs r0, r1 orrs r0, r1 lsrs r0, 31 pop {r1} bx r1 .align 2, 0 _080F176C: .4byte gUnknown_083DFEC4 _080F1770: .4byte 0x00008766 _080F1774: .4byte 0x0000ffb0 thumb_func_end sub_80F173C thumb_func_start sub_80F1778 sub_80F1778: @ 80F1778 push {r4,lr} sub sp, 0x14 ldr r0, _080F1798 ldr r0, [r0] ldr r1, _080F179C adds r0, r1 ldrh r0, [r0] cmp r0, 0x9 bls _080F178C b _080F1910 _080F178C: lsls r0, 2 ldr r1, _080F17A0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F1798: .4byte gUnknown_083DFEC4 _080F179C: .4byte 0x0000d160 _080F17A0: .4byte _080F17A4 .align 2, 0 _080F17A4: .4byte _080F17CC .4byte _080F17E8 .4byte _080F17EE .4byte _080F17FE .4byte _080F1810 .4byte _080F1830 .4byte _080F1858 .4byte _080F186C .4byte _080F18B8 .4byte _080F18D8 _080F17CC: bl sub_80EEDE8 ldr r0, _080F17E0 ldr r0, [r0] ldr r2, _080F17E4 adds r0, r2 movs r1, 0x2 strb r1, [r0] b _080F1914 .align 2, 0 _080F17E0: .4byte gUnknown_083DFEC4 _080F17E4: .4byte 0x0000d162 _080F17E8: bl sub_80F1614 b _080F1914 _080F17EE: movs r0, 0 bl sub_80F162C lsls r0, 24 cmp r0, 0 bne _080F17FC b _080F1914 _080F17FC: b _080F1922 _080F17FE: ldr r0, _080F1808 ldr r1, _080F180C bl LZ77UnCompVram b _080F1914 .align 2, 0 _080F1808: .4byte gUnknown_08E89AD8 _080F180C: .4byte 0x06005000 _080F1810: ldr r0, _080F1824 ldr r1, _080F1828 bl LZ77UnCompVram ldr r0, _080F182C movs r1, 0x20 movs r2, 0x20 bl LoadPalette b _080F1914 .align 2, 0 _080F1824: .4byte gUnknown_08E9AC4C _080F1828: .4byte 0x0600f000 _080F182C: .4byte gUnknown_08E8A1C0 _080F1830: ldr r0, _080F1850 ldr r3, _080F1854 movs r1, 0 str r1, [sp] str r1, [sp, 0x4] movs r2, 0xC str r2, [sp, 0x8] movs r1, 0x4 str r1, [sp, 0xC] str r2, [sp, 0x10] movs r1, 0 movs r2, 0xD bl sub_8095C8C b _080F1914 .align 2, 0 _080F1850: .4byte 0x0600f000 _080F1854: .4byte gUnknown_083E01F4 _080F1858: ldr r0, _080F1864 ldr r1, _080F1868 bl LZ77UnCompVram b _080F1914 .align 2, 0 _080F1864: .4byte gUnknown_08E9FEB4 _080F1868: .4byte 0x0600b800 _080F186C: ldr r0, _080F18AC movs r1, 0x30 movs r2, 0x20 bl LoadPalette ldr r0, _080F18B0 movs r1, 0xB0 movs r2, 0x20 bl LoadPalette ldr r4, _080F18B4 adds r0, r4, 0 movs r1, 0xB1 movs r2, 0x2 bl LoadPalette adds r0, r4, 0 adds r0, 0xE movs r1, 0xB5 movs r2, 0x2 bl LoadPalette adds r4, 0x1C adds r0, r4, 0 movs r1, 0xBF movs r2, 0x2 bl LoadPalette bl sub_80F01A4 b _080F1914 .align 2, 0 _080F18AC: .4byte gUnknown_083E0254 _080F18B0: .4byte gUnknownPalette_81E6692 _080F18B4: .4byte gUnknown_08E8A1C2 _080F18B8: ldr r0, _080F18D0 ldr r0, [r0] ldr r1, _080F18D4 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r0, 16 bl sub_80F01E0 b _080F1914 .align 2, 0 _080F18D0: .4byte gUnknown_083DFEC4 _080F18D4: .4byte 0x00008fe9 _080F18D8: ldr r1, _080F18FC ldr r2, _080F1900 adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 ldr r2, _080F1904 adds r0, r2, 0 strh r0, [r1] adds r1, 0x44 ldr r2, _080F1908 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080F190C adds r0, r2, 0 strh r0, [r1] b _080F1914 .align 2, 0 _080F18FC: .4byte REG_BG3CNT _080F1900: .4byte 0x00001e03 _080F1904: .4byte 0x00001702 _080F1908: .4byte 0x00000844 _080F190C: .4byte 0x0000040b _080F1910: movs r0, 0 b _080F1924 _080F1914: ldr r0, _080F192C ldr r1, [r0] ldr r0, _080F1930 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F1922: movs r0, 0x1 _080F1924: add sp, 0x14 pop {r4} pop {r1} bx r1 .align 2, 0 _080F192C: .4byte gUnknown_083DFEC4 _080F1930: .4byte 0x0000d160 thumb_func_end sub_80F1778 thumb_func_start sub_80F1934 sub_80F1934: @ 80F1934 push {r4,r5,lr} ldr r0, _080F1990 ldr r1, [r0] ldr r0, _080F1994 adds r5, r1, r0 ldr r3, _080F1998 adds r2, r1, r3 movs r3, 0 ldrsh r0, [r2, r3] lsls r0, 2 adds r1, r0 ldr r0, _080F199C adds r1, r0 ldrb r0, [r1] lsls r0, 25 cmp r0, 0 bge _080F19AC ldrb r0, [r2] bl sub_8137124 lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _080F19A0 adds r0, r1 bl GetNature adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080F19A4 adds r0, r5, 0 bl StringCopy adds r5, r0, 0 ldr r0, _080F19A8 lsls r4, 2 adds r4, r0 ldr r1, [r4] adds r0, r5, 0 movs r2, 0x57 movs r3, 0 bl sub_8072C74 b _080F19B8 .align 2, 0 _080F1990: .4byte gUnknown_083DFEC4 _080F1994: .4byte 0x00008788 _080F1998: .4byte 0x000087dc _080F199C: .4byte 0x0000893f _080F19A0: .4byte 0x03004360 _080F19A4: .4byte gUnknown_08410E76 _080F19A8: .4byte gNatureNames _080F19AC: ldr r1, _080F19D0 adds r0, r5, 0 movs r2, 0x57 movs r3, 0 bl sub_8072C74 _080F19B8: ldr r0, _080F19D4 ldr r0, [r0] ldr r1, _080F19D8 adds r0, r1 movs r1, 0x1 movs r2, 0x70 movs r3, 0x1 bl sub_80729D8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F19D0: .4byte gEmptyString_81E72B0 _080F19D4: .4byte gUnknown_083DFEC4 _080F19D8: .4byte 0x00008788 thumb_func_end sub_80F1934 thumb_func_start sub_80F19DC sub_80F19DC: @ 80F19DC push {lr} adds r1, r0, 0 b _080F19E4 _080F19E2: adds r1, 0x1 _080F19E4: ldrb r0, [r1] cmp r0, 0xFF beq _080F19F8 cmp r0, 0xFC bne _080F19E2 ldrb r0, [r1, 0x1] cmp r0, 0 bne _080F19E2 movs r0, 0xFF strb r0, [r1] _080F19F8: pop {r0} bx r0 thumb_func_end sub_80F19DC thumb_func_start sub_80F19FC sub_80F19FC: @ 80F19FC push {r4,r5,lr} sub sp, 0x4 ldr r5, _080F1A68 ldrb r4, [r5] cmp r4, 0x1 bne _080F1A60 ldr r0, _080F1A6C ldr r1, [r0] ldr r2, _080F1A70 adds r0, r1, r2 ldrb r0, [r0] adds r2, 0x3 adds r1, r2 ldrb r1, [r1] ldrb r2, [r5, 0x1] bl sub_811A8CC cmp r0, 0 beq _080F1A46 ldrb r2, [r5, 0x1] lsls r2, 20 movs r1, 0xC0 lsls r1, 14 adds r2, r1 lsrs r2, 16 str r4, [sp] movs r1, 0x70 movs r3, 0x78 bl sub_8072A18 ldrb r0, [r5, 0x1] adds r0, 0x1 strb r0, [r5, 0x1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _080F1A60 _080F1A46: ldrb r1, [r5, 0x1] lsls r1, 25 movs r2, 0xC0 lsls r2, 19 adds r1, r2 lsrs r1, 24 movs r0, 0xE movs r2, 0x1C movs r3, 0xF bl sub_8071EBC movs r0, 0 strb r0, [r5] _080F1A60: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F1A68: .4byte 0x020388b0 _080F1A6C: .4byte gUnknown_083DFEC4 _080F1A70: .4byte 0x00006e2c thumb_func_end sub_80F19FC thumb_func_start sub_80F1A74 sub_80F1A74: @ 80F1A74 ldr r1, _080F1A7C movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _080F1A7C: .4byte 0x020388b0 thumb_func_end sub_80F1A74 thumb_func_start sub_80F1A80 sub_80F1A80: @ 80F1A80 ldr r0, _080F1A8C movs r2, 0 movs r1, 0x1 strb r1, [r0] strb r2, [r0, 0x1] bx lr .align 2, 0 _080F1A8C: .4byte 0x020388b0 thumb_func_end sub_80F1A80 thumb_func_start sub_80F1A90 sub_80F1A90: @ 80F1A90 push {lr} ldr r0, _080F1AB8 ldr r0, [r0] ldr r1, _080F1ABC adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F1AC0 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F1AB2 _080F1AA8: bl sub_80F1AC4 lsls r0, 24 cmp r0, 0 bne _080F1AA8 _080F1AB2: pop {r0} bx r0 .align 2, 0 _080F1AB8: .4byte gUnknown_083DFEC4 _080F1ABC: .4byte 0x00000306 _080F1AC0: .4byte 0x00006dac thumb_func_end sub_80F1A90 thumb_func_start sub_80F1AC4 sub_80F1AC4: @ 80F1AC4 push {r4,r5,lr} ldr r0, _080F1AE0 ldr r1, [r0] ldr r2, _080F1AE4 adds r0, r1, r2 ldrh r0, [r0] cmp r0, 0x1 beq _080F1B34 cmp r0, 0x1 bgt _080F1AE8 cmp r0, 0 beq _080F1AF2 b _080F1B6C .align 2, 0 _080F1AE0: .4byte gUnknown_083DFEC4 _080F1AE4: .4byte 0x00000306 _080F1AE8: cmp r0, 0x2 beq _080F1B40 cmp r0, 0x3 beq _080F1B54 b _080F1B6C _080F1AF2: movs r0, 0 movs r2, 0xC8 lsls r2, 2 adds r4, r1, r2 movs r5, 0 _080F1AFC: movs r2, 0 adds r1, r0, 0x1 lsls r3, r0, 4 _080F1B02: lsls r0, r2, 2 adds r0, r3 adds r0, r4, r0 str r5, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x3 bls _080F1B02 lsls r0, r1, 16 lsrs r0, 16 cmp r0, 0x5 bls _080F1AFC ldr r0, _080F1B2C ldr r0, [r0] ldr r1, _080F1B30 adds r0, r1 movs r1, 0 strb r1, [r0] b _080F1B6C .align 2, 0 _080F1B2C: .4byte gUnknown_083DFEC4 _080F1B30: .4byte 0x00000311 _080F1B34: ldr r0, _080F1B3C movs r2, 0xE2 lsls r2, 2 b _080F1B44 .align 2, 0 _080F1B3C: .4byte gUnknown_08E884CC _080F1B40: ldr r0, _080F1B4C ldr r2, _080F1B50 _080F1B44: adds r1, r2 bl LZ77UnCompWram b _080F1B6C .align 2, 0 _080F1B4C: .4byte gUnknown_08E89668 _080F1B50: .4byte 0x00001788 _080F1B54: ldr r0, _080F1B64 ldr r2, _080F1B68 adds r1, r2 bl LZ77UnCompWram movs r0, 0 b _080F1B7C .align 2, 0 _080F1B64: .4byte gUnknown_08E8AD04 _080F1B68: .4byte 0x00002388 _080F1B6C: ldr r0, _080F1B84 ldr r1, [r0] ldr r0, _080F1B88 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0x1 _080F1B7C: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080F1B84: .4byte gUnknown_083DFEC4 _080F1B88: .4byte 0x00000306 thumb_func_end sub_80F1AC4 thumb_func_start sub_80F1B8C sub_80F1B8C: @ 80F1B8C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080F1BBC ldr r0, [r0] ldr r1, _080F1BC0 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F1BC4 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F1BB4 _080F1BA8: adds r0, r4, 0 bl sub_80F1BC8 lsls r0, 24 cmp r0, 0 bne _080F1BA8 _080F1BB4: pop {r4} pop {r0} bx r0 .align 2, 0 _080F1BBC: .4byte gUnknown_083DFEC4 _080F1BC0: .4byte 0x00000306 _080F1BC4: .4byte 0x00006dac thumb_func_end sub_80F1B8C thumb_func_start sub_80F1BC8 sub_80F1BC8: @ 80F1BC8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r1, _080F1BF4 ldr r2, [r1] ldr r3, _080F1BF8 adds r0, r2, r3 ldrh r0, [r0] adds r3, r1, 0 cmp r0, 0x1 beq _080F1C0A cmp r0, 0x1 bgt _080F1BFC cmp r0, 0 beq _080F1C02 b _080F1DC4 .align 2, 0 _080F1BF4: .4byte gUnknown_083DFEC4 _080F1BF8: .4byte 0x00000306 _080F1BFC: cmp r0, 0x2 beq _080F1C12 b _080F1DC4 _080F1C02: mov r0, r9 bl sub_80F2458 b _080F1DC8 _080F1C0A: mov r0, r9 bl sub_80F2514 b _080F1DC8 _080F1C12: mov r4, r9 cmp r4, 0x1 beq _080F1C40 cmp r4, 0x1 bgt _080F1C22 cmp r4, 0 beq _080F1C2A b _080F1DC4 _080F1C22: mov r5, r9 cmp r5, 0x2 beq _080F1C54 b _080F1DC4 _080F1C2A: movs r0, 0x2A str r0, [sp, 0x4] movs r1, 0x14 str r1, [sp, 0x8] ldr r4, _080F1C3C adds r1, r2, r4 movs r0, 0x5 b _080F1C62 .align 2, 0 _080F1C3C: .4byte 0x0000030e _080F1C40: movs r5, 0x38 str r5, [sp, 0x4] movs r0, 0x14 str r0, [sp, 0x8] ldr r4, _080F1C50 adds r1, r2, r4 movs r0, 0x3 b _080F1C62 .align 2, 0 _080F1C50: .4byte 0x0000030e _080F1C54: movs r5, 0x28 str r5, [sp, 0x4] movs r0, 0x10 str r0, [sp, 0x8] ldr r4, _080F1CDC adds r1, r2, r4 movs r0, 0x6 _080F1C62: strb r0, [r1] movs r5, 0 str r5, [sp] mov r8, r5 adds r1, r3, 0 ldr r0, [r1] ldr r2, _080F1CDC adds r0, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r8, r0 blt _080F1C7E b _080F1DC8 _080F1C7E: ldr r4, [sp, 0x8] mov r3, r8 muls r3, r4 ldr r5, [sp, 0x4] adds r0, r5, r3 subs r0, 0x8 lsls r0, 16 lsrs r0, 16 ldr r4, [r1] mov r2, r8 lsls r1, r2, 1 movs r5, 0xC5 lsls r5, 2 adds r2, r4, r5 adds r2, r1 lsls r1, r0, 8 adds r0, 0x11 orrs r1, r0 strh r1, [r2] mov r0, r9 cmp r0, 0 bne _080F1CF2 ldr r1, _080F1CE0 adds r0, r4, r1 mov r2, r8 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 bne _080F1CE8 movs r5, 0 ldr r0, _080F1CE4 ldr r0, [r0] lsls r2, 4 movs r3, 0xC8 lsls r3, 2 adds r1, r0, r3 movs r3, 0 _080F1CC8: lsls r0, r5, 2 adds r0, r2 adds r0, r1, r0 str r3, [r0] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3 bls _080F1CC8 b _080F1D92 .align 2, 0 _080F1CDC: .4byte 0x0000030e _080F1CE0: .4byte 0x00006db2 _080F1CE4: .4byte gUnknown_083DFEC4 _080F1CE8: ldrb r0, [r1] subs r0, 0x1 lsls r0, 18 lsrs r0, 16 str r0, [sp] _080F1CF2: movs r5, 0 ldr r4, [sp, 0x4] adds r0, r4, r3 lsls r0, 16 mov r10, r0 _080F1CFC: lsls r6, r5, 5 movs r0, 0x80 lsls r0, 1 adds r7, r6, r0 lsls r1, r7, 16 asrs r1, 16 ldr r0, _080F1DB4 mov r3, r10 asrs r2, r3, 16 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 beq _080F1DC4 ldr r0, _080F1DB8 ldr r2, [r0] lsls r1, r5, 2 mov r4, r8 lsls r0, r4, 4 adds r1, r0 movs r0, 0xC8 lsls r0, 2 adds r2, r0 adds r4, r2, r1 lsls r0, r3, 4 adds r0, r3 lsls r0, 2 ldr r1, _080F1DBC adds r0, r1 str r0, [r4] mov r1, r8 strh r1, [r0, 0x2E] ldr r0, [r4] strh r5, [r0, 0x30] ldr r1, [r4] adds r0, r6, 0 adds r0, 0x98 strh r0, [r1, 0x32] ldr r0, [r4] strh r7, [r0, 0x34] ldr r0, [r4] ldr r1, [sp] adds r2, r1, 0x1 lsls r2, 16 lsrs r2, 16 str r2, [sp] lsls r1, 24 lsrs r1, 24 bl StartSpriteAnim mov r2, r9 cmp r2, 0x2 beq _080F1D6E cmp r2, 0 bne _080F1D88 _080F1D6E: mov r3, r8 cmp r3, 0x2 bls _080F1D88 movs r0, 0x1 bl IndexOfSpritePaletteTag ldr r3, [r4] lsls r0, 4 ldrb r2, [r3, 0x5] movs r1, 0xF ands r1, r2 orrs r1, r0 strb r1, [r3, 0x5] _080F1D88: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3 bls _080F1CFC _080F1D92: mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r1, _080F1DB8 ldr r0, [r1] ldr r4, _080F1DC0 adds r0, r4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r8, r0 bge _080F1DB0 b _080F1C7E _080F1DB0: b _080F1DC8 .align 2, 0 _080F1DB4: .4byte gSpriteTemplate_83E4454 _080F1DB8: .4byte gUnknown_083DFEC4 _080F1DBC: .4byte 0x02020004 _080F1DC0: .4byte 0x0000030e _080F1DC4: movs r0, 0 b _080F1DD8 _080F1DC8: ldr r0, _080F1DE8 ldr r1, [r0] ldr r5, _080F1DEC adds r1, r5 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0x1 _080F1DD8: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080F1DE8: .4byte gUnknown_083DFEC4 _080F1DEC: .4byte 0x00000306 thumb_func_end sub_80F1BC8 thumb_func_start sub_80F1DF0 sub_80F1DF0: @ 80F1DF0 push {r4-r6,lr} movs r2, 0 ldr r0, _080F1E44 ldr r3, [r0] ldr r0, _080F1E48 adds r1, r3, r0 movs r0, 0 ldrsb r0, [r1, r0] cmp r2, r0 bge _080F1E38 movs r0, 0xC8 lsls r0, 2 adds r4, r3, r0 adds r6, r1, 0 ldr r5, _080F1E4C _080F1E0E: movs r1, 0 adds r3, r2, 0x1 lsls r2, 4 _080F1E14: lsls r0, r1, 2 adds r0, r2 adds r0, r4, r0 ldr r0, [r0] cmp r0, 0 beq _080F1E22 str r5, [r0, 0x1C] _080F1E22: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x3 bls _080F1E14 lsls r0, r3, 16 lsrs r2, r0, 16 movs r0, 0 ldrsb r0, [r6, r0] cmp r2, r0 blt _080F1E0E _080F1E38: movs r0, 0x6 bl audio_play pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F1E44: .4byte gUnknown_083DFEC4 _080F1E48: .4byte 0x0000030e _080F1E4C: .4byte sub_80F2218 thumb_func_end sub_80F1DF0 thumb_func_start sub_80F1E50 sub_80F1E50: @ 80F1E50 push {lr} bl sub_80F22F8 lsls r0, 24 cmp r0, 0 bne _080F1E60 movs r0, 0x1 b _080F1E66 _080F1E60: bl sub_80F2108 movs r0, 0 _080F1E66: pop {r1} bx r1 thumb_func_end sub_80F1E50 thumb_func_start sub_80F1E6C sub_80F1E6C: @ 80F1E6C push {lr} bl sub_80F22F8 movs r1, 0 lsls r0, 24 cmp r0, 0 bne _080F1E7C movs r1, 0x1 _080F1E7C: adds r0, r1, 0 pop {r1} bx r1 thumb_func_end sub_80F1E6C thumb_func_start sub_80F1E84 sub_80F1E84: @ 80F1E84 push {r4-r7,lr} mov r7, r8 push {r7} ldr r5, _080F1EFC ldr r4, [r5] ldr r1, _080F1F00 adds r0, r4, r1 movs r1, 0 strb r1, [r0] bl sub_80F2148 movs r2, 0 ldr r3, _080F1F04 adds r1, r4, r3 movs r0, 0 ldrsb r0, [r1, r0] cmp r2, r0 bge _080F1EF2 ldr r0, _080F1F08 adds r7, r4, r0 adds r6, r1, 0 mov r8, r5 ldr r1, _080F1F0C mov r12, r1 _080F1EB4: movs r0, 0 ldrsb r0, [r7, r0] adds r5, r2, 0x1 cmp r2, r0 beq _080F1EE6 movs r1, 0 mov r3, r8 ldr r0, [r3] lsls r3, r2, 4 movs r4, 0xC8 lsls r4, 2 adds r2, r0, r4 mov r4, r12 _080F1ECE: lsls r0, r1, 2 adds r0, r3 adds r0, r2, r0 ldr r0, [r0] cmp r0, 0 beq _080F1EDC str r4, [r0, 0x1C] _080F1EDC: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x3 bls _080F1ECE _080F1EE6: lsls r0, r5, 16 lsrs r2, r0, 16 movs r0, 0 ldrsb r0, [r6, r0] cmp r2, r0 blt _080F1EB4 _080F1EF2: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F1EFC: .4byte gUnknown_083DFEC4 _080F1F00: .4byte 0x0000030f _080F1F04: .4byte 0x0000030e _080F1F08: .4byte 0x00006dad _080F1F0C: .4byte sub_80F2240 thumb_func_end sub_80F1E84 thumb_func_start sub_80F1F10 sub_80F1F10: @ 80F1F10 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _080F1F2C ldr r4, [r0] ldr r1, _080F1F30 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 beq _080F1F34 cmp r0, 0x1 beq _080F1FC0 b _080F1FE4 .align 2, 0 _080F1F2C: .4byte gUnknown_083DFEC4 _080F1F30: .4byte 0x0000030f _080F1F34: bl sub_80F2360 lsls r0, 24 cmp r0, 0 beq _080F1FE4 movs r6, 0 adds r7, r4, 0 movs r0, 0xC8 lsls r0, 2 adds r0, r7 mov r8, r0 _080F1F4A: lsls r5, r6, 2 ldr r1, _080F1FAC adds r0, r7, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 4 adds r0, r5, r0 add r0, r8 ldr r4, [r0] ldrb r0, [r4, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] ldr r0, _080F1FB0 str r0, [r4, 0x10] adds r0, r4, 0 bl InitSpriteAffineAnim subs r5, 0x6 strh r5, [r4, 0x36] movs r1, 0x36 ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r4, 0x36] movs r1, 0x36 ldrsh r0, [r4, r1] lsls r0, 3 strh r0, [r4, 0x38] ldr r0, _080F1FB4 str r0, [r4, 0x1C] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x3 bls _080F1F4A bl sub_80F2170 ldr r0, _080F1FB8 ldr r1, [r0] ldr r0, _080F1FBC adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080F1FE4 .align 2, 0 _080F1FAC: .4byte 0x00006dad _080F1FB0: .4byte gUnknown_083E4450 _080F1FB4: .4byte sub_80F2240 _080F1FB8: .4byte gUnknown_083DFEC4 _080F1FBC: .4byte 0x0000030f _080F1FC0: bl sub_80F23C8 lsls r0, 24 cmp r0, 0 beq _080F1FE4 bl sub_80F21F8 movs r0, 0 bl FreeSpriteTilesByTag movs r0, 0 bl FreeSpritePaletteByTag movs r0, 0x1 bl FreeSpritePaletteByTag movs r0, 0 b _080F1FE6 _080F1FE4: movs r0, 0x1 _080F1FE6: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80F1F10 thumb_func_start sub_80F1FF0 sub_80F1FF0: @ 80F1FF0 push {r4,lr} ldr r0, _080F203C ldr r4, [r0] ldr r1, _080F2040 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080F2058 ldr r2, _080F2044 ldr r3, _080F2048 adds r0, r4, r3 movs r1, 0 ldrsb r1, [r0, r1] lsls r1, 1 movs r3, 0xC5 lsls r3, 2 adds r0, r4, r3 adds r0, r1 ldrh r0, [r0] strh r0, [r2] ldr r3, _080F204C ldr r1, _080F2050 ldr r0, _080F2054 adds r2, r4, r0 ldrh r0, [r2] lsls r0, 1 adds r0, r1 ldrh r0, [r0] lsls r0, 16 asrs r0, 21 strh r0, [r3] ldrh r0, [r2] adds r0, 0x3 movs r1, 0x7F ands r0, r1 strh r0, [r2] b _080F2078 .align 2, 0 _080F203C: .4byte gUnknown_083DFEC4 _080F2040: .4byte 0x00000311 _080F2044: .4byte REG_WIN0V _080F2048: .4byte 0x00006dad _080F204C: .4byte REG_BLDY _080F2050: .4byte gSineTable _080F2054: .4byte 0x00000312 _080F2058: cmp r0, 0x2 bne _080F2078 ldr r2, _080F2080 ldr r1, _080F2084 ldr r0, _080F2088 adds r3, r4, r0 ldrh r0, [r3] lsls r0, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r2] ldrh r0, [r3] cmp r0, 0xE bhi _080F2078 adds r0, 0x1 strh r0, [r3] _080F2078: pop {r4} pop {r0} bx r0 .align 2, 0 _080F2080: .4byte REG_BLDALPHA _080F2084: .4byte gUnknown_083E42F8 _080F2088: .4byte 0x00000312 thumb_func_end sub_80F1FF0 thumb_func_start sub_80F208C sub_80F208C: @ 80F208C push {lr} bl sub_80F2148 pop {r0} bx r0 thumb_func_end sub_80F208C thumb_func_start sub_80F2098 sub_80F2098: @ 80F2098 ldr r1, _080F20DC ldr r2, _080F20E0 adds r0, r2, 0 strh r0, [r1] ldr r2, _080F20E4 ldr r0, _080F20E8 ldr r1, [r0] ldr r3, _080F20EC adds r0, r1, r3 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 1 movs r3, 0xC5 lsls r3, 2 adds r1, r3 adds r1, r0 ldrh r0, [r1] strh r0, [r2] ldr r1, _080F20F0 movs r0, 0x3F strh r0, [r1] adds r1, 0x2 movs r0, 0x1F strh r0, [r1] subs r2, 0x44 ldrh r0, [r2] movs r3, 0x80 lsls r3, 6 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] bx lr .align 2, 0 _080F20DC: .4byte REG_WIN0H _080F20E0: .4byte 0x000077f0 _080F20E4: .4byte REG_WIN0V _080F20E8: .4byte gUnknown_083DFEC4 _080F20EC: .4byte 0x00006dad _080F20F0: .4byte REG_WININ thumb_func_end sub_80F2098 thumb_func_start sub_80F20F4 sub_80F20F4: @ 80F20F4 movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _080F2104 ands r0, r1 strh r0, [r2] bx lr .align 2, 0 _080F2104: .4byte 0x0000dfff thumb_func_end sub_80F20F4 thumb_func_start sub_80F2108 sub_80F2108: @ 80F2108 push {lr} ldr r0, _080F2134 ldr r3, [r0] ldr r0, _080F2138 adds r1, r3, r0 ldrb r2, [r1] cmp r2, 0 bne _080F2130 movs r0, 0x1 strb r0, [r1] ldr r1, _080F213C adds r0, r3, r1 strh r2, [r0] ldr r1, _080F2140 movs r0, 0x90 strh r0, [r1] ldr r0, _080F2144 strh r2, [r0] bl sub_80F2098 _080F2130: pop {r0} bx r0 .align 2, 0 _080F2134: .4byte gUnknown_083DFEC4 _080F2138: .4byte 0x00000311 _080F213C: .4byte 0x00000312 _080F2140: .4byte REG_BLDCNT _080F2144: .4byte REG_BLDY thumb_func_end sub_80F2108 thumb_func_start sub_80F2148 sub_80F2148: @ 80F2148 push {lr} ldr r0, _080F2164 ldr r0, [r0] ldr r1, _080F2168 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, _080F216C strh r1, [r0] bl sub_80F20F4 pop {r0} bx r0 .align 2, 0 _080F2164: .4byte gUnknown_083DFEC4 _080F2168: .4byte 0x00000311 _080F216C: .4byte REG_BLDCNT thumb_func_end sub_80F2148 thumb_func_start sub_80F2170 sub_80F2170: @ 80F2170 push {r4-r7,lr} ldr r7, _080F21E4 ldr r4, [r7] ldr r1, _080F21E8 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _080F21DC bl sub_80F20F4 movs r3, 0 ldr r2, _080F21EC adds r5, r4, r2 movs r0, 0xC8 lsls r0, 2 adds r4, r0 movs r1, 0xD negs r1, r1 mov r12, r1 movs r6, 0x4 _080F2198: lsls r1, r3, 2 movs r0, 0 ldrsb r0, [r5, r0] lsls r0, 4 adds r1, r0 adds r1, r4, r1 ldr r2, [r1] ldrb r1, [r2, 0x1] mov r0, r12 ands r0, r1 orrs r0, r6 strb r0, [r2, 0x1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _080F2198 ldr r1, [r7] ldr r0, _080F21E8 adds r2, r1, r0 movs r3, 0 movs r0, 0x2 strb r0, [r2] ldr r2, _080F21F0 adds r1, r2 strh r3, [r1] ldr r1, _080F21F4 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x10 strh r0, [r1] _080F21DC: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F21E4: .4byte gUnknown_083DFEC4 _080F21E8: .4byte 0x00000311 _080F21EC: .4byte 0x00006dad _080F21F0: .4byte 0x00000312 _080F21F4: .4byte REG_BLDCNT thumb_func_end sub_80F2170 thumb_func_start sub_80F21F8 sub_80F21F8: @ 80F21F8 ldr r0, _080F220C ldr r0, [r0] ldr r1, _080F2210 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, _080F2214 strh r1, [r0] bx lr .align 2, 0 _080F220C: .4byte gUnknown_083DFEC4 _080F2210: .4byte 0x00000311 _080F2214: .4byte REG_BLDCNT thumb_func_end sub_80F21F8 thumb_func_start sub_80F2218 sub_80F2218: @ 80F2218 push {r4,lr} adds r2, r0, 0 ldrh r0, [r2, 0x20] subs r0, 0x8 strh r0, [r2, 0x20] lsls r0, 16 asrs r0, 16 ldrh r3, [r2, 0x32] movs r4, 0x32 ldrsh r1, [r2, r4] cmp r0, r1 bgt _080F2236 strh r3, [r2, 0x20] ldr r0, _080F223C str r0, [r2, 0x1C] _080F2236: pop {r4} pop {r0} bx r0 .align 2, 0 _080F223C: .4byte sub_80F22B0 thumb_func_end sub_80F2218 thumb_func_start sub_80F2240 sub_80F2240: @ 80F2240 push {r4,lr} adds r2, r0, 0 ldr r0, _080F2288 ldr r0, [r0] ldr r1, _080F228C adds r0, r1 movs r3, 0x2E ldrsh r1, [r2, r3] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 bne _080F2290 ldrh r3, [r2, 0x38] movs r4, 0x38 ldrsh r0, [r2, r4] cmp r0, 0 beq _080F2270 ldrh r0, [r2, 0x36] ldrh r4, [r2, 0x20] adds r1, r0, r4 strh r1, [r2, 0x20] subs r0, r3, r0 strh r0, [r2, 0x38] _080F2270: adds r0, r2, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080F22A8 adds r0, r2, 0 bl sub_80F240C b _080F22A8 .align 2, 0 _080F2288: .4byte gUnknown_083DFEC4 _080F228C: .4byte 0x00006dad _080F2290: ldrh r0, [r2, 0x20] adds r0, 0x8 strh r0, [r2, 0x20] lsls r0, 16 asrs r0, 16 movs r3, 0x34 ldrsh r1, [r2, r3] cmp r0, r1 blt _080F22A8 adds r0, r2, 0 bl sub_80F240C _080F22A8: pop {r4} pop {r0} bx r0 thumb_func_end sub_80F2240 thumb_func_start sub_80F22B0 sub_80F22B0: @ 80F22B0 push {lr} adds r2, r0, 0 ldr r0, _080F22DC ldr r0, [r0] ldr r1, _080F22E0 adds r0, r1 movs r3, 0x2E ldrsh r1, [r2, r3] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r1, r0 bne _080F22E4 ldrh r3, [r2, 0x24] movs r0, 0x24 ldrsh r1, [r2, r0] movs r0, 0x10 negs r0, r0 cmp r1, r0 ble _080F22F2 subs r0, r3, 0x4 b _080F22F0 .align 2, 0 _080F22DC: .4byte gUnknown_083DFEC4 _080F22E0: .4byte 0x00006dad _080F22E4: ldrh r1, [r2, 0x24] movs r3, 0x24 ldrsh r0, [r2, r3] cmp r0, 0 bge _080F22F2 adds r0, r1, 0x4 _080F22F0: strh r0, [r2, 0x24] _080F22F2: pop {r0} bx r0 thumb_func_end sub_80F22B0 thumb_func_start sub_80F22F8 sub_80F22F8: @ 80F22F8 push {r4-r7,lr} movs r3, 0 ldr r0, _080F233C ldr r1, [r0] ldr r2, _080F2340 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r3, r0 bge _080F2358 movs r7, 0xC8 lsls r7, 2 adds r4, r1, r7 movs r5, 0x10 negs r5, r5 adds r6, r0, 0 _080F231A: movs r1, 0 lsls r2, r3, 4 _080F231E: lsls r0, r1, 2 adds r0, r2 adds r0, r4, r0 ldr r0, [r0] cmp r0, 0 beq _080F2358 movs r7, 0x24 ldrsh r0, [r0, r7] cmp r0, 0 beq _080F2344 cmp r0, r5 beq _080F2344 movs r0, 0 b _080F235A .align 2, 0 _080F233C: .4byte gUnknown_083DFEC4 _080F2340: .4byte 0x00006dae _080F2344: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x3 bls _080F231E adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r6 blt _080F231A _080F2358: movs r0, 0x1 _080F235A: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80F22F8 thumb_func_start sub_80F2360 sub_80F2360: @ 80F2360 push {r4-r7,lr} movs r4, 0 ldr r0, _080F23A0 ldr r2, [r0] ldr r1, _080F23A4 adds r0, r2, r1 movs r1, 0 ldrsb r1, [r0, r1] cmp r4, r1 bge _080F23C0 ldr r3, _080F23A8 adds r0, r2, r3 movs r6, 0 ldrsb r6, [r0, r6] adds r5, r1, 0 _080F237E: cmp r4, r6 beq _080F23B6 movs r1, 0 ldr r0, _080F23A0 ldr r0, [r0] lsls r3, r4, 4 movs r7, 0xC8 lsls r7, 2 adds r2, r0, r7 _080F2390: lsls r0, r1, 2 adds r0, r3 adds r0, r2, r0 ldr r0, [r0] cmp r0, 0 beq _080F23AC movs r0, 0 b _080F23C2 .align 2, 0 _080F23A0: .4byte gUnknown_083DFEC4 _080F23A4: .4byte 0x0000030e _080F23A8: .4byte 0x00006dad _080F23AC: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x3 bls _080F2390 _080F23B6: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r5 blt _080F237E _080F23C0: movs r0, 0x1 _080F23C2: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80F2360 thumb_func_start sub_80F23C8 sub_80F23C8: @ 80F23C8 push {lr} movs r2, 0 ldr r0, _080F23F4 ldr r1, [r0] ldr r3, _080F23F8 adds r0, r1, r3 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r3, r0, 4 movs r0, 0xC8 lsls r0, 2 adds r1, r0 _080F23E2: lsls r0, r2, 2 adds r0, r3 adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 beq _080F23FC movs r0, 0 b _080F2408 .align 2, 0 _080F23F4: .4byte gUnknown_083DFEC4 _080F23F8: .4byte 0x00006dad _080F23FC: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x3 bls _080F23E2 movs r0, 0x1 _080F2408: pop {r1} bx r1 thumb_func_end sub_80F23C8 thumb_func_start sub_80F240C sub_80F240C: @ 80F240C push {r4,lr} adds r4, r0, 0 ldr r0, _080F2454 ldr r2, [r0] movs r0, 0x30 ldrsh r1, [r4, r0] lsls r1, 2 movs r3, 0x2E ldrsh r0, [r4, r3] lsls r0, 4 adds r1, r0 movs r0, 0xC8 lsls r0, 2 adds r2, r0 adds r2, r1 movs r0, 0 str r0, [r2] adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080F2446 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix _080F2446: adds r0, r4, 0 bl DestroySprite pop {r4} pop {r0} bx r0 .align 2, 0 _080F2454: .4byte gUnknown_083DFEC4 thumb_func_end sub_80F240C thumb_func_start sub_80F2458 sub_80F2458: @ 80F2458 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 beq _080F24A0 cmp r4, 0x1 bgt _080F246C cmp r4, 0 beq _080F2472 b _080F2502 _080F246C: cmp r4, 0x2 beq _080F24D0 b _080F2502 _080F2472: ldr r2, _080F2498 ldr r3, [r2] movs r0, 0xE0 lsls r0, 2 adds r1, r3, r0 movs r5, 0xE2 lsls r5, 2 adds r0, r3, r5 str r0, [r1] movs r0, 0xE1 lsls r0, 2 adds r1, r3, r0 movs r0, 0xA0 lsls r0, 5 strh r0, [r1] ldr r1, _080F249C adds r0, r3, r1 strh r4, [r0] b _080F24F6 .align 2, 0 _080F2498: .4byte gUnknown_083DFEC4 _080F249C: .4byte 0x00000386 _080F24A0: ldr r4, _080F24C4 ldr r1, [r4] movs r3, 0xE0 lsls r3, 2 adds r2, r1, r3 ldr r5, _080F24C8 adds r0, r1, r5 str r0, [r2] movs r0, 0xE1 lsls r0, 2 adds r2, r1, r0 movs r3, 0 movs r0, 0xC0 lsls r0, 4 strh r0, [r2] ldr r5, _080F24CC adds r1, r5 b _080F24F2 .align 2, 0 _080F24C4: .4byte gUnknown_083DFEC4 _080F24C8: .4byte 0x00001788 _080F24CC: .4byte 0x00000386 _080F24D0: ldr r4, _080F2508 ldr r1, [r4] movs r0, 0xE0 lsls r0, 2 adds r2, r1, r0 ldr r3, _080F250C adds r0, r1, r3 str r0, [r2] movs r5, 0xE1 lsls r5, 2 adds r2, r1, r5 movs r3, 0 movs r0, 0xC0 lsls r0, 5 strh r0, [r2] ldr r0, _080F2510 adds r1, r0 _080F24F2: strh r3, [r1] adds r2, r4, 0 _080F24F6: ldr r0, [r2] movs r1, 0xE0 lsls r1, 2 adds r0, r1 bl LoadSpriteSheet _080F2502: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F2508: .4byte gUnknown_083DFEC4 _080F250C: .4byte 0x00002388 _080F2510: .4byte 0x00000386 thumb_func_end sub_80F2458 thumb_func_start sub_80F2514 sub_80F2514: @ 80F2514 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x1 beq _080F2558 cmp r0, 0x1 bgt _080F252C cmp r0, 0 beq _080F2532 b _080F2586 _080F252C: cmp r1, 0x2 beq _080F2568 b _080F2586 _080F2532: ldr r0, _080F254C str r0, [sp] ldr r1, _080F2550 mov r4, sp ldr r0, [sp, 0x4] ands r0, r1 str r0, [sp, 0x4] mov r0, sp bl LoadSpritePalette ldr r0, _080F2554 b _080F257A .align 2, 0 _080F254C: .4byte gUnknown_08E88A28 _080F2550: .4byte 0xffff0000 _080F2554: .4byte gUnknown_08E88A48 _080F2558: ldr r0, _080F2564 str r0, [sp] mov r1, sp movs r0, 0 strh r0, [r1, 0x4] b _080F2580 .align 2, 0 _080F2564: .4byte gUnknown_08E89958 _080F2568: ldr r0, _080F2590 str r0, [sp] mov r4, sp movs r0, 0 strh r0, [r4, 0x4] mov r0, sp bl LoadSpritePalette ldr r0, _080F2594 _080F257A: str r0, [sp] movs r0, 0x1 strh r0, [r4, 0x4] _080F2580: mov r0, sp bl LoadSpritePalette _080F2586: add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080F2590: .4byte gUnknown_08E8B1C4 _080F2594: .4byte gUnknown_08E8B1E4 thumb_func_end sub_80F2514 thumb_func_start sub_80F2598 sub_80F2598: @ 80F2598 push {r4,lr} ldr r0, _080F25F0 ldr r0, [r0] ldr r1, _080F25F4 adds r4, r0, r1 movs r0, 0 str r0, [r4] ldr r1, _080F25F8 movs r0, 0x4 ldrsb r0, [r1, r0] lsls r0, 16 lsrs r0, 16 ldrb r1, [r1, 0x5] lsls r1, 24 asrs r1, 24 lsls r1, 16 lsrs r1, 16 bl sub_8082C0C cmp r0, 0x1 bne _080F2618 ldr r0, _080F25FC bl LoadSpriteSheet ldr r0, _080F2600 bl LoadSpritePalette ldr r0, _080F2604 movs r1, 0xC movs r2, 0x60 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080F260C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F2608 adds r0, r1 str r0, [r4] b _080F2618 .align 2, 0 _080F25F0: .4byte gUnknown_083DFEC4 _080F25F4: .4byte 0x00006d9c _080F25F8: .4byte 0x02025734 _080F25FC: .4byte gUnknown_083E446C _080F2600: .4byte gUnknown_083E4474 _080F2604: .4byte gSpriteTemplate_83E4484 _080F2608: .4byte 0x02020004 _080F260C: movs r0, 0x19 bl FreeSpriteTilesByTag movs r0, 0x11 bl FreeSpritePaletteByTag _080F2618: pop {r4} pop {r0} bx r0 thumb_func_end sub_80F2598 thumb_func_start sub_80F2620 sub_80F2620: @ 80F2620 push {r4,lr} ldr r0, _080F264C ldr r0, [r0] ldr r1, _080F2650 adds r4, r0, r1 ldr r0, [r4] cmp r0, 0 beq _080F2644 bl DestroySprite movs r0, 0x19 bl FreeSpriteTilesByTag movs r0, 0x11 bl FreeSpritePaletteByTag movs r0, 0 str r0, [r4] _080F2644: pop {r4} pop {r0} bx r0 .align 2, 0 _080F264C: .4byte gUnknown_083DFEC4 _080F2650: .4byte 0x00006d9c thumb_func_end sub_80F2620 thumb_func_start sub_80F2654 sub_80F2654: @ 80F2654 push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 ble _080F2682 movs r0, 0 strh r0, [r3, 0x2E] adds r3, 0x3E ldrb r2, [r3] lsrs r1, r2, 2 movs r0, 0x1 eors r1, r0 ands r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080F2682: pop {r0} bx r0 thumb_func_end sub_80F2654 thumb_func_start sub_80F2688 sub_80F2688: @ 80F2688 push {lr} ldr r0, _080F26B0 ldr r0, [r0] ldr r1, _080F26B4 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F26B8 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F26AA _080F26A0: bl sub_80F26BC lsls r0, 24 cmp r0, 0 bne _080F26A0 _080F26AA: pop {r0} bx r0 .align 2, 0 _080F26B0: .4byte gUnknown_083DFEC4 _080F26B4: .4byte 0x00000306 _080F26B8: .4byte 0x00006dac thumb_func_end sub_80F2688 thumb_func_start sub_80F26BC sub_80F26BC: @ 80F26BC push {lr} ldr r0, _080F26D8 ldr r0, [r0] ldr r1, _080F26DC adds r0, r1 ldrh r0, [r0] cmp r0, 0x7 bls _080F26CE b _080F27BC _080F26CE: lsls r0, 2 ldr r1, _080F26E0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F26D8: .4byte gUnknown_083DFEC4 _080F26DC: .4byte 0x00000306 _080F26E0: .4byte _080F26E4 .align 2, 0 _080F26E4: .4byte _080F2704 .4byte _080F271C .4byte _080F2734 .4byte _080F274C .4byte _080F2764 .4byte _080F277C .4byte _080F2794 .4byte _080F27B0 _080F2704: ldr r0, _080F2710 ldr r1, _080F2714 ldr r1, [r1] ldr r2, _080F2718 b _080F279C .align 2, 0 _080F2710: .4byte gUnknown_08E88358 _080F2714: .4byte gUnknown_083DFEC4 _080F2718: .4byte 0x00003b98 _080F271C: ldr r0, _080F2728 ldr r1, _080F272C ldr r1, [r1] ldr r2, _080F2730 b _080F279C .align 2, 0 _080F2728: .4byte gUnknown_08E89978 _080F272C: .4byte gUnknown_083DFEC4 _080F2730: .4byte 0x00004198 _080F2734: ldr r0, _080F2740 ldr r1, _080F2744 ldr r1, [r1] ldr r2, _080F2748 b _080F279C .align 2, 0 _080F2740: .4byte gUnknown_08E8B3A0 _080F2744: .4byte gUnknown_083DFEC4 _080F2748: .4byte 0x00004d98 _080F274C: ldr r0, _080F2758 ldr r1, _080F275C ldr r1, [r1] ldr r2, _080F2760 b _080F279C .align 2, 0 _080F2758: .4byte gUnknown_08E88A88 _080F275C: .4byte gUnknown_083DFEC4 _080F2760: .4byte 0x00005398 _080F2764: ldr r0, _080F2770 ldr r1, _080F2774 ldr r1, [r1] ldr r2, _080F2778 b _080F279C .align 2, 0 _080F2770: .4byte gUnknown_08E8A1E0 _080F2774: .4byte gUnknown_083DFEC4 _080F2778: .4byte 0x00005f98 _080F277C: ldr r0, _080F2788 ldr r1, _080F278C ldr r1, [r1] ldr r2, _080F2790 b _080F279C .align 2, 0 _080F2788: .4byte gUnknown_08E8A5D8 _080F278C: .4byte gUnknown_083DFEC4 _080F2790: .4byte 0x00006798 _080F2794: ldr r0, _080F27A4 ldr r1, _080F27A8 ldr r1, [r1] ldr r2, _080F27AC _080F279C: adds r1, r2 bl LZ77UnCompWram b _080F27C0 .align 2, 0 _080F27A4: .4byte gUnknown_08E8B204 _080F27A8: .4byte gUnknown_083DFEC4 _080F27AC: .4byte 0x00004798 _080F27B0: ldr r0, _080F27B8 bl LoadSpritePalettes b _080F27C0 .align 2, 0 _080F27B8: .4byte gUnknown_083E449C _080F27BC: movs r0, 0 b _080F27D0 _080F27C0: ldr r0, _080F27D4 ldr r1, [r0] ldr r0, _080F27D8 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0x1 _080F27D0: pop {r1} bx r1 .align 2, 0 _080F27D4: .4byte gUnknown_083DFEC4 _080F27D8: .4byte 0x00000306 thumb_func_end sub_80F26BC thumb_func_start sub_80F27DC sub_80F27DC: @ 80F27DC push {lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 cmp r0, 0xB bls _080F27EA b _080F29A0 _080F27EA: lsls r0, 2 ldr r1, _080F27F4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F27F4: .4byte _080F27F8 .align 2, 0 _080F27F8: .4byte _080F2828 .4byte _080F2858 .4byte _080F28B8 .4byte _080F2888 .4byte _080F28E8 .4byte _080F2918 .4byte _080F2928 .4byte _080F2978 .4byte _080F2938 .4byte _080F2948 .4byte _080F2968 .4byte _080F2958 _080F2828: ldr r0, _080F2848 ldr r0, [r0] ldr r1, _080F284C adds r0, r1 str r0, [sp] ldr r1, _080F2850 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0xC0 lsls r1, 3 orrs r0, r1 ldr r1, _080F2854 ands r0, r1 adds r1, 0x1 b _080F2996 .align 2, 0 _080F2848: .4byte gUnknown_083DFEC4 _080F284C: .4byte 0x00003b98 _080F2850: .4byte 0xffff0000 _080F2854: .4byte 0x0000ffff _080F2858: ldr r0, _080F2878 ldr r0, [r0] ldr r1, _080F287C adds r0, r1 str r0, [sp] ldr r1, _080F2880 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0xC0 lsls r1, 3 orrs r0, r1 ldr r1, _080F2884 ands r0, r1 adds r1, 0x1 b _080F2996 .align 2, 0 _080F2878: .4byte gUnknown_083DFEC4 _080F287C: .4byte 0x00004198 _080F2880: .4byte 0xffff0000 _080F2884: .4byte 0x0000ffff _080F2888: ldr r0, _080F28A8 ldr r0, [r0] ldr r1, _080F28AC adds r0, r1 str r0, [sp] ldr r1, _080F28B0 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0xC0 lsls r1, 3 orrs r0, r1 ldr r1, _080F28B4 ands r0, r1 adds r1, 0x1 b _080F2996 .align 2, 0 _080F28A8: .4byte gUnknown_083DFEC4 _080F28AC: .4byte 0x00004798 _080F28B0: .4byte 0xffff0000 _080F28B4: .4byte 0x0000ffff _080F28B8: ldr r0, _080F28D8 ldr r0, [r0] ldr r1, _080F28DC adds r0, r1 str r0, [sp] ldr r1, _080F28E0 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0xC0 lsls r1, 3 orrs r0, r1 ldr r1, _080F28E4 ands r0, r1 adds r1, 0x1 b _080F2996 .align 2, 0 _080F28D8: .4byte gUnknown_083DFEC4 _080F28DC: .4byte 0x00004d98 _080F28E0: .4byte 0xffff0000 _080F28E4: .4byte 0x0000ffff _080F28E8: ldr r0, _080F2908 ldr r0, [r0] ldr r1, _080F290C adds r0, r1 str r0, [sp] ldr r1, _080F2910 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0xC0 lsls r1, 4 orrs r0, r1 ldr r1, _080F2914 ands r0, r1 adds r1, 0x1 b _080F2996 .align 2, 0 _080F2908: .4byte gUnknown_083DFEC4 _080F290C: .4byte 0x00005398 _080F2910: .4byte 0xffff0000 _080F2914: .4byte 0x0000ffff _080F2918: ldr r0, _080F2920 ldr r0, [r0] ldr r1, _080F2924 b _080F297E .align 2, 0 _080F2920: .4byte gUnknown_083DFEC4 _080F2924: .4byte 0x00005f98 _080F2928: ldr r0, _080F2930 ldr r0, [r0] ldr r1, _080F2934 b _080F297E .align 2, 0 _080F2930: .4byte gUnknown_083DFEC4 _080F2934: .4byte 0x00006198 _080F2938: ldr r0, _080F2940 ldr r0, [r0] ldr r1, _080F2944 b _080F297E .align 2, 0 _080F2940: .4byte gUnknown_083DFEC4 _080F2944: .4byte 0x00006398 _080F2948: ldr r0, _080F2950 ldr r0, [r0] ldr r1, _080F2954 b _080F297E .align 2, 0 _080F2950: .4byte gUnknown_083DFEC4 _080F2954: .4byte 0x00006598 _080F2958: ldr r0, _080F2960 ldr r0, [r0] ldr r1, _080F2964 b _080F297E .align 2, 0 _080F2960: .4byte gUnknown_083DFEC4 _080F2964: .4byte 0x00006998 _080F2968: ldr r0, _080F2970 ldr r0, [r0] ldr r1, _080F2974 b _080F297E .align 2, 0 _080F2970: .4byte gUnknown_083DFEC4 _080F2974: .4byte 0x00006798 _080F2978: ldr r0, _080F29A8 ldr r0, [r0] ldr r1, _080F29AC _080F297E: adds r0, r1 str r0, [sp] ldr r1, _080F29B0 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0x80 lsls r1, 2 orrs r0, r1 ldr r1, _080F29B4 ands r0, r1 movs r1, 0x80 lsls r1, 10 _080F2996: orrs r0, r1 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet _080F29A0: add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080F29A8: .4byte gUnknown_083DFEC4 _080F29AC: .4byte 0x00006b98 _080F29B0: .4byte 0xffff0000 _080F29B4: .4byte 0x0000ffff thumb_func_end sub_80F27DC thumb_func_start sub_80F29B8 sub_80F29B8: @ 80F29B8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r7, r0, 24 movs r0, 0 mov r8, r0 cmp r7, 0xB bls _080F29D2 b _080F2BA6 _080F29D2: lsls r0, r7, 2 ldr r1, _080F29DC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F29DC: .4byte _080F29E0 .align 2, 0 _080F29E0: .4byte _080F2A10 .4byte _080F2A10 .4byte _080F2A10 .4byte _080F2A10 .4byte _080F2A58 .4byte _080F2A94 .4byte _080F2A94 .4byte _080F2A98 .4byte _080F2A94 .4byte _080F2A94 .4byte _080F2A98 .4byte _080F2A98 _080F2A10: ldr r3, _080F2A44 ldr r0, _080F2A48 ldr r2, [r0] movs r1, 0xC3 lsls r1, 2 adds r0, r2, r1 ldrh r1, [r0] movs r0, 0x31 subs r0, r1 lsls r0, 16 lsrs r0, 16 movs r4, 0x8 str r4, [sp] movs r1, 0x20 str r1, [sp, 0x4] movs r1, 0x40 ldr r4, _080F2A4C adds r4, r2 mov r9, r4 ldr r2, _080F2A50 mov r8, r2 cmp r7, 0x3 beq _080F2AC8 ldr r4, _080F2A54 mov r8, r4 b _080F2AC8 .align 2, 0 _080F2A44: .4byte 0x0000ffa0 _080F2A48: .4byte gUnknown_083DFEC4 _080F2A4C: .4byte 0x00003b88 _080F2A50: .4byte gSpriteTemplate_83E44F8 _080F2A54: .4byte gSpriteTemplate_83E44E0 _080F2A58: movs r3, 0x88 lsls r3, 1 ldr r0, _080F2A84 ldr r2, [r0] movs r1, 0xC3 lsls r1, 2 adds r0, r2, r1 ldrh r1, [r0] movs r0, 0x31 subs r0, r1 lsls r0, 16 lsrs r0, 16 ldr r4, _080F2A88 str r4, [sp] movs r1, 0x98 str r1, [sp, 0x4] movs r1, 0x40 ldr r4, _080F2A8C mov r8, r4 ldr r4, _080F2A90 b _080F2AC4 .align 2, 0 _080F2A84: .4byte gUnknown_083DFEC4 _080F2A88: .4byte 0x0000fff8 _080F2A8C: .4byte gSpriteTemplate_83E44E0 _080F2A90: .4byte 0x00003b88 _080F2A94: ldr r0, _080F2B40 mov r8, r0 _080F2A98: mov r1, r8 cmp r1, 0 bne _080F2AA2 ldr r2, _080F2B44 mov r8, r2 _080F2AA2: ldr r3, _080F2B48 ldr r0, _080F2B4C ldr r2, [r0] movs r4, 0xC3 lsls r4, 2 adds r0, r2, r4 ldrh r1, [r0] movs r0, 0x44 subs r0, r1 lsls r0, 16 lsrs r0, 16 movs r1, 0x8 str r1, [sp] movs r4, 0x10 str r4, [sp, 0x4] movs r1, 0x20 ldr r4, _080F2B50 _080F2AC4: adds r4, r2 mov r9, r4 _080F2AC8: movs r6, 0 lsls r1, 16 str r1, [sp, 0x10] lsls r3, 16 str r3, [sp, 0x8] lsls r0, 16 str r0, [sp, 0xC] ldr r0, _080F2B54 mov r10, r0 _080F2ADA: ldr r1, [sp, 0x10] asrs r0, r1, 16 adds r5, r6, 0 muls r5, r0 ldr r2, [sp, 0x8] asrs r1, r2, 16 adds r1, r5 lsls r1, 16 asrs r1, 16 mov r0, r8 ldr r3, [sp, 0xC] asrs r2, r3, 16 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x40 beq _080F2B9C lsls r0, r4, 4 adds r1, r0, r4 lsls r1, 2 mov r2, r10 adds r3, r1, r2 mov r1, sp ldrh r1, [r1] strh r1, [r3, 0x2E] ldr r2, [sp, 0x4] adds r1, r2, r5 strh r1, [r3, 0x30] strh r6, [r3, 0x32] strh r7, [r3, 0x34] adds r5, r0, 0 cmp r7, 0x4 bne _080F2B5C cmp r6, 0x1 bne _080F2B5C ldr r0, _080F2B4C ldr r0, [r0] ldr r1, _080F2B58 adds r0, r1 ldrb r0, [r0] movs r1, 0x2 cmp r0, 0 bne _080F2B36 movs r1, 0x1 _080F2B36: adds r0, r3, 0 bl StartSpriteAnim b _080F2B6A .align 2, 0 _080F2B40: .4byte gSpriteTemplate_83E4530 _080F2B44: .4byte gSpriteTemplate_83E4548 _080F2B48: .4byte 0x0000ffa0 _080F2B4C: .4byte gUnknown_083DFEC4 _080F2B50: .4byte 0x00003b90 _080F2B54: .4byte 0x02020004 _080F2B58: .4byte 0x00006e90 _080F2B5C: adds r0, r5, r4 lsls r0, 2 add r0, r10 lsls r1, r6, 24 lsrs r1, 24 bl StartSpriteAnim _080F2B6A: ldr r2, _080F2BB8 mov r12, r2 cmp r7, 0x3 bhi _080F2B90 cmp r6, 0x1 bne _080F2B90 adds r2, r5, r4 lsls r2, 2 add r2, r10 ldrb r3, [r2, 0x1] movs r1, 0x3F adds r0, r1, 0 ands r0, r3 strb r0, [r2, 0x1] ldrb r0, [r2, 0x3] ands r1, r0 movs r0, 0x80 orrs r1, r0 strb r1, [r2, 0x3] _080F2B90: lsls r1, r6, 2 add r1, r9 adds r0, r5, r4 lsls r0, 2 add r0, r12 str r0, [r1] _080F2B9C: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x1 bls _080F2ADA _080F2BA6: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F2BB8: .4byte 0x02020004 thumb_func_end sub_80F29B8 thumb_func_start sub_80F2BBC sub_80F2BBC: @ 80F2BBC push {r4,lr} adds r2, r0, 0 ldrh r0, [r2, 0x20] ldrh r1, [r2, 0x2E] adds r3, r0, r1 strh r3, [r2, 0x20] lsls r0, 16 asrs r4, r0, 16 movs r0, 0x30 ldrsh r1, [r2, r0] cmp r4, r1 bgt _080F2BE0 lsls r0, r3, 16 asrs r0, 16 cmp r0, r1 bge _080F2BE8 cmp r4, r1 blt _080F2C08 _080F2BE0: lsls r0, r3, 16 asrs r0, 16 cmp r0, r1 bgt _080F2C08 _080F2BE8: ldrh r0, [r2, 0x30] strh r0, [r2, 0x20] movs r1, 0x34 ldrsh r0, [r2, r1] cmp r0, 0x4 bne _080F2C04 movs r1, 0x32 ldrsh r0, [r2, r1] cmp r0, 0x1 bne _080F2C04 ldr r0, _080F2C00 b _080F2C06 .align 2, 0 _080F2C00: .4byte sub_80F2C58 _080F2C04: ldr r0, _080F2C10 _080F2C06: str r0, [r2, 0x1C] _080F2C08: pop {r4} pop {r0} bx r0 .align 2, 0 _080F2C10: .4byte SpriteCallbackDummy thumb_func_end sub_80F2BBC thumb_func_start sub_80F2C14 sub_80F2C14: @ 80F2C14 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x20] ldrh r1, [r4, 0x2E] subs r0, r1 strh r0, [r4, 0x20] adds r0, 0x20 lsls r0, 16 movs r1, 0x98 lsls r1, 17 cmp r0, r1 bls _080F2C50 movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080F2C4A movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0x4 bgt _080F2C44 movs r0, 0x1 bl FreeSpriteTilesByTag b _080F2C4A _080F2C44: movs r0, 0x2 bl FreeSpriteTilesByTag _080F2C4A: adds r0, r4, 0 bl DestroySprite _080F2C50: pop {r4} pop {r0} bx r0 thumb_func_end sub_80F2C14 thumb_func_start sub_80F2C58 sub_80F2C58: @ 80F2C58 push {lr} adds r2, r0, 0 ldr r0, _080F2C78 ldr r0, [r0] ldr r1, _080F2C7C adds r0, r1 ldrb r0, [r0] movs r1, 0x2 cmp r0, 0 bne _080F2C6E movs r1, 0x1 _080F2C6E: adds r0, r2, 0 bl StartSpriteAnim pop {r0} bx r0 .align 2, 0 _080F2C78: .4byte gUnknown_083DFEC4 _080F2C7C: .4byte 0x00006e90 thumb_func_end sub_80F2C58 thumb_func_start sub_80F2C80 sub_80F2C80: @ 80F2C80 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080F2CB0 ldr r0, [r0] ldr r1, _080F2CB4 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F2CB8 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F2CA8 _080F2C9C: adds r0, r4, 0 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 bne _080F2C9C _080F2CA8: pop {r4} pop {r0} bx r0 .align 2, 0 _080F2CB0: .4byte gUnknown_083DFEC4 _080F2CB4: .4byte 0x00000306 _080F2CB8: .4byte 0x00006dac thumb_func_end sub_80F2C80 thumb_func_start sub_80F2CBC sub_80F2CBC: @ 80F2CBC push {r4,lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _080F2CD8 ldr r0, [r0] ldr r2, _080F2CDC adds r4, r0, r2 ldrh r0, [r4] cmp r0, 0 beq _080F2CE0 cmp r0, 0x1 beq _080F2CF0 b _080F2CFC .align 2, 0 _080F2CD8: .4byte gUnknown_083DFEC4 _080F2CDC: .4byte 0x00000306 _080F2CE0: adds r0, r1, 0 bl sub_80F27DC ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] movs r0, 0x1 b _080F2CFE _080F2CF0: adds r0, r1, 0 bl sub_80F29B8 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _080F2CFC: movs r0, 0 _080F2CFE: pop {r4} pop {r1} bx r1 thumb_func_end sub_80F2CBC thumb_func_start sub_80F2D04 sub_80F2D04: @ 80F2D04 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080F2D3C movs r1, 0 ldr r0, _080F2D30 ldr r0, [r0] ldr r3, _080F2D34 adds r2, r0, r3 ldr r3, _080F2D38 _080F2D1A: lsls r0, r1, 2 adds r0, r2, r0 ldr r0, [r0] str r3, [r0, 0x1C] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x1 bls _080F2D1A b _080F2D5A .align 2, 0 _080F2D30: .4byte gUnknown_083DFEC4 _080F2D34: .4byte 0x00003b88 _080F2D38: .4byte sub_80F2C14 _080F2D3C: movs r1, 0 ldr r0, _080F2D60 ldr r0, [r0] ldr r3, _080F2D64 adds r2, r0, r3 ldr r3, _080F2D68 _080F2D48: lsls r0, r1, 2 adds r0, r2, r0 ldr r0, [r0] str r3, [r0, 0x1C] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x1 bls _080F2D48 _080F2D5A: pop {r0} bx r0 .align 2, 0 _080F2D60: .4byte gUnknown_083DFEC4 _080F2D64: .4byte 0x00003b90 _080F2D68: .4byte sub_80F2C14 thumb_func_end sub_80F2D04 thumb_func_start sub_80F2D6C sub_80F2D6C: @ 80F2D6C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080F2DA4 movs r0, 0x1 bl FreeSpriteTilesByTag movs r4, 0 ldr r0, _080F2D9C ldr r0, [r0] ldr r1, _080F2DA0 adds r5, r0, r1 _080F2D86: lsls r0, r4, 2 adds r0, r5, r0 ldr r0, [r0] bl DestroySprite adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _080F2D86 b _080F2DC8 .align 2, 0 _080F2D9C: .4byte gUnknown_083DFEC4 _080F2DA0: .4byte 0x00003b88 _080F2DA4: movs r0, 0x2 bl FreeSpriteTilesByTag movs r4, 0 ldr r0, _080F2DD0 ldr r0, [r0] ldr r1, _080F2DD4 adds r5, r0, r1 _080F2DB4: lsls r0, r4, 2 adds r0, r5, r0 ldr r0, [r0] bl DestroySprite adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _080F2DB4 _080F2DC8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F2DD0: .4byte gUnknown_083DFEC4 _080F2DD4: .4byte 0x00003b90 thumb_func_end sub_80F2D6C thumb_func_start sub_80F2DD8 sub_80F2DD8: @ 80F2DD8 push {lr} movs r0, 0x7 movs r1, 0x7 bl sub_80FBB3C movs r0, 0x8 movs r1, 0x8 bl sub_80FBCF0 bl sub_80FBF94 pop {r0} bx r0 thumb_func_end sub_80F2DD8 thumb_func_start sub_80F2DF4 sub_80F2DF4: @ 80F2DF4 push {lr} bl sub_80FAB10 pop {r0} bx r0 thumb_func_end sub_80F2DF4 thumb_func_start sub_80F2E00 sub_80F2E00: @ 80F2E00 ldr r1, _080F2E10 ldr r1, [r1] ldr r2, _080F2E14 adds r1, r2 ldrh r1, [r1] adds r1, 0x26 strh r1, [r0, 0x20] bx lr .align 2, 0 _080F2E10: .4byte gUnknown_083DFEC4 _080F2E14: .4byte 0x00008766 thumb_func_end sub_80F2E00 thumb_func_start sub_80F2E18 sub_80F2E18: @ 80F2E18 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x28 lsls r0, 24 lsrs r3, r0, 24 ldr r0, _080F2EA8 ldr r4, [r0] ldr r0, _080F2EAC adds r7, r4, r0 ldr r1, [r7] mov r8, r1 cmp r1, 0 bne _080F2EFC ldr r0, _080F2EB0 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x20] str r1, [sp, 0x24] mov r1, sp ldr r0, _080F2EB4 ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldr r0, _080F2EB8 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x18] str r1, [sp, 0x1C] lsls r0, r3, 13 ldr r1, _080F2EBC adds r0, r1 adds r0, r4, r0 str r0, [sp, 0x20] lsls r0, r3, 7 adds r0, r4, r0 str r0, [sp, 0x18] add r0, sp, 0x18 bl LoadSpritePalette lsls r0, 24 lsrs r0, 24 ldr r2, _080F2EC0 adds r5, r4, r2 strh r0, [r5] add r0, sp, 0x20 bl LoadSpriteSheet ldr r1, _080F2EC4 adds r6, r4, r1 strh r0, [r6] mov r0, sp movs r1, 0x26 movs r2, 0x68 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 bne _080F2EC8 movs r0, 0x6 bl FreeSpriteTilesByTag movs r0, 0x6 bl FreeSpritePaletteByTag mov r2, r8 str r2, [r7] b _080F2F26 .align 2, 0 _080F2EA8: .4byte gUnknown_083DFEC4 _080F2EAC: .4byte 0x00008768 _080F2EB0: .4byte gUnknown_083E4568 _080F2EB4: .4byte gSpriteTemplate_83E4570 _080F2EB8: .4byte gUnknown_083E4588 _080F2EBC: .4byte 0x0000d1e4 _080F2EC0: .4byte 0x0000d1dc _080F2EC4: .4byte 0x0000d1de _080F2EC8: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F2EF0 adds r0, r1 str r0, [r7] ldr r0, _080F2EF4 adds r1, r4, r0 ldrh r0, [r6] lsls r0, 5 ldr r2, _080F2EF8 adds r0, r2 str r0, [r1] ldrh r0, [r5] lsls r0, 4 movs r6, 0x80 lsls r6, 1 adds r0, r6 strh r0, [r5] b _080F2F26 .align 2, 0 _080F2EF0: .4byte 0x02020004 _080F2EF4: .4byte 0x0000d1e0 _080F2EF8: .4byte 0x06010000 _080F2EFC: lsls r0, r3, 13 ldr r1, _080F2F34 adds r0, r1 adds r0, r4, r0 ldr r2, _080F2F38 adds r1, r4, r2 ldr r2, [r1] ldr r1, _080F2F3C str r0, [r1] str r2, [r1, 0x4] ldr r0, _080F2F40 str r0, [r1, 0x8] ldr r0, [r1, 0x8] lsls r0, r3, 7 adds r0, r4, r0 ldr r5, _080F2F44 adds r1, r4, r5 ldrh r1, [r1] movs r2, 0x20 bl LoadPalette _080F2F26: add sp, 0x28 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F2F34: .4byte 0x0000d1e4 _080F2F38: .4byte 0x0000d1e0 _080F2F3C: .4byte 0x040000d4 _080F2F40: .4byte 0x80000400 _080F2F44: .4byte 0x0000d1dc thumb_func_end sub_80F2E18 thumb_func_start sub_80F2F48 sub_80F2F48: @ 80F2F48 push {r4,lr} ldr r0, _080F2F74 ldr r0, [r0] ldr r1, _080F2F78 adds r4, r0, r1 ldr r0, [r4] cmp r0, 0 beq _080F2F6C bl DestroySprite movs r0, 0x6 bl FreeSpriteTilesByTag movs r0, 0x6 bl FreeSpritePaletteByTag movs r0, 0 str r0, [r4] _080F2F6C: pop {r4} pop {r0} bx r0 .align 2, 0 _080F2F74: .4byte gUnknown_083DFEC4 _080F2F78: .4byte 0x00008768 thumb_func_end sub_80F2F48 thumb_func_start sub_80F2F7C sub_80F2F7C: @ 80F2F7C push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80F2E18 ldr r0, _080F2FA0 ldr r0, [r0] ldr r1, _080F2FA4 adds r2, r0, r1 ldr r1, _080F2FA8 adds r0, r1 ldr r1, [r0] str r1, [r2] ldr r0, _080F2FAC str r0, [r1, 0x1C] pop {r0} bx r0 .align 2, 0 _080F2FA0: .4byte gUnknown_083DFEC4 _080F2FA4: .4byte 0x0000ced0 _080F2FA8: .4byte 0x00008768 _080F2FAC: .4byte sub_80F2FEC thumb_func_end sub_80F2F7C thumb_func_start sub_80F2FB0 sub_80F2FB0: @ 80F2FB0 push {r4,r5,lr} ldr r0, _080F2FE0 ldr r5, [r0] ldr r0, _080F2FE4 adds r4, r5, r0 ldr r0, [r4] cmp r0, 0 beq _080F2FDA bl DestroySprite movs r0, 0x6 bl FreeSpriteTilesByTag movs r0, 0x6 bl FreeSpritePaletteByTag movs r1, 0 str r1, [r4] ldr r2, _080F2FE8 adds r0, r5, r2 str r1, [r0] _080F2FDA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F2FE0: .4byte gUnknown_083DFEC4 _080F2FE4: .4byte 0x0000ced0 _080F2FE8: .4byte 0x00008768 thumb_func_end sub_80F2FB0 thumb_func_start sub_80F2FEC sub_80F2FEC: @ 80F2FEC ldr r1, _080F3000 ldr r1, [r1] ldr r2, _080F3004 adds r1, r2 ldrh r1, [r1] adds r1, 0x28 strh r1, [r0, 0x20] movs r1, 0x68 strh r1, [r0, 0x22] bx lr .align 2, 0 _080F3000: .4byte gUnknown_083DFEC4 _080F3004: .4byte 0x0000d15a thumb_func_end sub_80F2FEC thumb_func_start sub_80F3008 sub_80F3008: @ 80F3008 push {r4,r5,lr} sub sp, 0x20 lsls r0, 24 lsrs r2, r0, 24 mov r1, sp ldr r0, _080F3060 ldm r0!, {r3-r5} stm r1!, {r3-r5} ldm r0!, {r3-r5} stm r1!, {r3-r5} ldr r0, _080F3064 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x18] str r1, [sp, 0x1C] cmp r2, 0x2 bgt _080F3032 cmp r2, 0x1 blt _080F3032 ldr r0, _080F3068 str r0, [sp, 0x18] _080F3032: mov r0, sp bl LoadSpriteSheets add r0, sp, 0x18 bl LoadSpritePalette ldr r0, _080F306C movs r1, 0x5F movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 bne _080F3078 ldr r0, _080F3070 ldr r0, [r0] ldr r1, _080F3074 adds r0, r1 movs r1, 0 str r1, [r0] b _080F3120 .align 2, 0 _080F3060: .4byte gUnknown_083E4590 _080F3064: .4byte gUnknown_083E45A8 _080F3068: .4byte gUnknown_08E9F988 _080F306C: .4byte gSpriteTemplate_83E45B8 _080F3070: .4byte gUnknown_083DFEC4 _080F3074: .4byte 0x000087cc _080F3078: ldr r0, _080F30F4 ldr r2, [r0] ldr r3, _080F30F8 adds r2, r3 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F30FC adds r0, r1 str r0, [r2] movs r4, 0 movs r5, 0 _080F3090: lsls r2, r4, 7 adds r2, 0x8 lsls r2, 16 asrs r2, 16 ldr r0, _080F3100 movs r1, 0xA8 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080F3108 ldr r0, _080F30F4 ldr r2, [r0] lsls r0, r4, 2 ldr r3, _080F3104 adds r2, r3 adds r2, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F30FC adds r3, r0, r1 str r3, [r2] adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] strh r5, [r3, 0x2E] strh r5, [r3, 0x30] movs r0, 0x1 cmp r4, 0 bne _080F30DE movs r1, 0x1 negs r1, r1 adds r0, r1, 0 _080F30DE: strh r0, [r3, 0x32] strh r4, [r3, 0x34] movs r0, 0x1 strh r0, [r3, 0x36] lsls r1, r4, 24 lsrs r1, 24 adds r0, r3, 0 bl StartSpriteAnim b _080F3116 .align 2, 0 _080F30F4: .4byte gUnknown_083DFEC4 _080F30F8: .4byte 0x000087cc _080F30FC: .4byte 0x02020004 _080F3100: .4byte gSpriteTemplate_83E45F0 _080F3104: .4byte 0x000087d0 _080F3108: ldr r0, _080F3128 ldr r0, [r0] lsls r1, r4, 2 ldr r2, _080F312C adds r0, r2 adds r0, r1 str r5, [r0] _080F3116: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _080F3090 _080F3120: add sp, 0x20 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F3128: .4byte gUnknown_083DFEC4 _080F312C: .4byte 0x000087d0 thumb_func_end sub_80F3008 thumb_func_start sub_80F3130 sub_80F3130: @ 80F3130 push {r4-r6,lr} ldr r0, _080F3184 ldr r6, [r0] ldr r0, _080F3188 adds r4, r6, r0 ldr r0, [r4] cmp r0, 0 beq _080F3154 bl DestroySprite movs r0, 0x9 bl FreeSpriteTilesByTag movs r0, 0x9 bl FreeSpritePaletteByTag movs r0, 0 str r0, [r4] _080F3154: movs r5, 0 ldr r0, _080F318C adds r6, r0 _080F315A: lsls r0, r5, 2 adds r4, r6, r0 ldr r0, [r4] cmp r0, 0 beq _080F316C bl DestroySprite movs r0, 0 str r0, [r4] _080F316C: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1 bls _080F315A movs r0, 0xA bl FreeSpriteTilesByTag pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F3184: .4byte gUnknown_083DFEC4 _080F3188: .4byte 0x000087cc _080F318C: .4byte 0x000087d0 thumb_func_end sub_80F3130 thumb_func_start sub_80F3190 sub_80F3190: @ 80F3190 ldr r1, _080F31A4 ldr r1, [r1] ldr r2, _080F31A8 adds r1, r2 movs r2, 0 ldrsh r1, [r1, r2] lsls r1, 4 adds r1, 0x10 strh r1, [r0, 0x22] bx lr .align 2, 0 _080F31A4: .4byte gUnknown_083DFEC4 _080F31A8: .4byte 0x0000876c thumb_func_end sub_80F3190 thumb_func_start sub_80F31AC sub_80F31AC: @ 80F31AC push {r4,r5,lr} adds r3, r0, 0 ldr r0, _080F31E8 ldr r1, [r0] ldr r2, _080F31EC adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _080F325C movs r4, 0x36 ldrsh r0, [r3, r4] cmp r0, 0 beq _080F3226 movs r5, 0x34 ldrsh r0, [r3, r5] cmp r0, 0 bne _080F31F4 movs r2, 0 ldr r4, _080F31F0 adds r0, r1, r4 movs r5, 0 ldrsh r0, [r0, r5] cmp r0, 0 bne _080F31DE movs r2, 0x1 _080F31DE: movs r0, 0x3E adds r0, r3 mov r12, r0 lsls r2, 2 b _080F3214 .align 2, 0 _080F31E8: .4byte gUnknown_083DFEC4 _080F31EC: .4byte 0x000087c9 _080F31F0: .4byte 0x00008770 _080F31F4: movs r4, 0 ldr r2, _080F3250 adds r0, r1, r2 ldr r5, _080F3254 adds r1, r5 movs r5, 0 ldrsh r2, [r0, r5] movs r5, 0 ldrsh r0, [r1, r5] cmp r2, r0 bne _080F320C movs r4, 0x1 _080F320C: movs r0, 0x3E adds r0, r3 mov r12, r0 lsls r2, r4, 2 _080F3214: ldrb r1, [r0] movs r0, 0x5 negs r0, r0 ands r0, r1 orrs r0, r2 mov r1, r12 strb r0, [r1] movs r0, 0 strh r0, [r3, 0x36] _080F3226: ldrh r0, [r3, 0x2E] adds r0, 0x1 movs r1, 0 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _080F325C strh r1, [r3, 0x2E] ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bgt _080F3258 ldrh r0, [r3, 0x32] ldrh r2, [r3, 0x26] adds r0, r2 strh r0, [r3, 0x26] b _080F325C .align 2, 0 _080F3250: .4byte 0x00008772 _080F3254: .4byte 0x00008774 _080F3258: strh r1, [r3, 0x30] strh r1, [r3, 0x26] _080F325C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80F31AC thumb_func_start sub_80F3264 sub_80F3264: @ 80F3264 push {lr} movs r1, 0 ldr r0, _080F328C ldr r0, [r0] ldr r3, _080F3290 adds r2, r0, r3 movs r3, 0x1 _080F3272: lsls r0, r1, 2 adds r0, r2, r0 ldr r0, [r0] cmp r0, 0 beq _080F327E strh r3, [r0, 0x36] _080F327E: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x1 bls _080F3272 pop {r0} bx r0 .align 2, 0 _080F328C: .4byte gUnknown_083DFEC4 _080F3290: .4byte 0x000087d0 thumb_func_end sub_80F3264 thumb_func_start sub_80F3294 sub_80F3294: @ 80F3294 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _080F32F4 ldr r4, [r0] ldr r1, _080F32F8 adds r0, r4, r1 ldr r2, [r0] adds r2, 0x3E movs r0, 0x1 adds r1, r6, 0 ands r1, r0 lsls r1, 2 ldrb r3, [r2] movs r5, 0x5 negs r5, r5 adds r0, r5, 0 ands r0, r3 orrs r0, r1 strb r0, [r2] ldr r2, _080F32FC adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 beq _080F331A cmp r6, 0x1 bne _080F3308 ldr r1, _080F3300 adds r0, r4, r1 ldr r1, [r0] adds r1, 0x3E ldrb r2, [r1] adds r0, r5, 0 ands r0, r2 movs r3, 0x4 orrs r0, r3 strb r0, [r1] ldr r2, _080F3304 adds r0, r4, r2 ldr r1, [r0] adds r1, 0x3E ldrb r2, [r1] adds r0, r5, 0 ands r0, r2 orrs r0, r3 strb r0, [r1] b _080F331A .align 2, 0 _080F32F4: .4byte gUnknown_083DFEC4 _080F32F8: .4byte 0x000087cc _080F32FC: .4byte 0x000087c9 _080F3300: .4byte 0x000087d0 _080F3304: .4byte 0x000087d4 _080F3308: ldr r1, _080F3320 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 strh r1, [r0, 0x36] ldr r2, _080F3324 adds r0, r4, r2 ldr r0, [r0] strh r1, [r0, 0x36] _080F331A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F3320: .4byte 0x000087d0 _080F3324: .4byte 0x000087d4 thumb_func_end sub_80F3294 thumb_func_start sub_80F3328 sub_80F3328: @ 80F3328 push {lr} adds r2, r0, 0 ldr r0, _080F334C ldr r0, [r0] ldr r1, _080F3350 adds r0, r1 movs r3, 0x2E ldrsh r1, [r2, r3] movs r3, 0 ldrsh r0, [r0, r3] cmp r1, r0 bne _080F3354 adds r0, r2, 0 movs r1, 0 bl StartSpriteAnim b _080F335C .align 2, 0 _080F334C: .4byte gUnknown_083DFEC4 _080F3350: .4byte 0x000087dc _080F3354: adds r0, r2, 0 movs r1, 0x1 bl StartSpriteAnim _080F335C: pop {r0} bx r0 thumb_func_end sub_80F3328 thumb_func_start sub_80F3360 sub_80F3360: @ 80F3360 push {r4,lr} adds r4, r0, 0 ldr r0, _080F3384 ldr r0, [r0] ldr r2, _080F3388 adds r1, r0, r2 movs r2, 0 ldrsh r1, [r1, r2] ldr r2, _080F338C adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] subs r0, 0x1 cmp r1, r0 bne _080F3390 movs r0, 0x4 b _080F3392 .align 2, 0 _080F3384: .4byte gUnknown_083DFEC4 _080F3388: .4byte 0x000087dc _080F338C: .4byte 0x000087da _080F3390: movs r0, 0x5 _080F3392: bl IndexOfSpritePaletteTag lsls r0, 4 ldrb r2, [r4, 0x5] movs r1, 0xF ands r1, r2 orrs r1, r0 strb r1, [r4, 0x5] pop {r4} pop {r0} bx r0 thumb_func_end sub_80F3360 thumb_func_start sub_80F33A8 sub_80F33A8: @ 80F33A8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x50 mov r1, sp ldr r0, _080F3440 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldm r0!, {r3,r4} stm r1!, {r3,r4} add r4, sp, 0x20 adds r1, r4, 0 ldr r0, _080F3444 ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} add r5, sp, 0x38 adds r1, r5, 0 ldr r0, _080F3448 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} mov r0, sp bl LoadSpriteSheets adds r0, r4, 0 bl LoadSpritePalettes movs r6, 0 ldr r2, _080F344C ldr r1, [r2] ldr r3, _080F3450 adds r0, r1, r3 movs r4, 0 ldrsh r0, [r0, r4] subs r0, 0x1 adds r7, r5, 0 cmp r6, r0 bge _080F347A adds r5, r2, 0 adds r0, r3, 0 adds r0, r1 mov r8, r0 _080F3406: lsls r4, r6, 2 adds r2, r4, r6 lsls r2, 18 movs r1, 0x80 lsls r1, 12 adds r2, r1 asrs r2, 16 adds r0, r7, 0 movs r1, 0xE2 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 beq _080F345C ldr r0, [r5] ldr r2, _080F3454 adds r0, r2 adds r0, r4 lsls r1, r3, 4 adds r1, r3 lsls r1, 2 ldr r2, _080F3458 adds r1, r2 str r1, [r0] strh r6, [r1, 0x2E] b _080F3468 .align 2, 0 _080F3440: .4byte gUnknown_083E4628 _080F3444: .4byte gUnknown_083E4648 _080F3448: .4byte gSpriteTemplate_83E4660 _080F344C: .4byte gUnknown_083DFEC4 _080F3450: .4byte 0x000087da _080F3454: .4byte 0x000087e4 _080F3458: .4byte 0x02020004 _080F345C: ldr r0, [r5] ldr r3, _080F34C8 adds r0, r3 adds r0, r4 movs r1, 0 str r1, [r0] _080F3468: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 mov r4, r8 movs r1, 0 ldrsh r0, [r4, r1] subs r0, 0x1 cmp r6, r0 blt _080F3406 _080F347A: movs r0, 0x4 strh r0, [r7] ldr r0, _080F34CC str r0, [r7, 0x14] cmp r6, 0x5 bhi _080F34EE ldr r5, _080F34D0 _080F3488: lsls r4, r6, 2 adds r2, r4, r6 lsls r2, 18 movs r3, 0x80 lsls r3, 12 adds r2, r3 asrs r2, 16 adds r0, r7, 0 movs r1, 0xE6 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 beq _080F34D8 ldr r2, [r5] ldr r0, _080F34C8 adds r2, r0 adds r2, r4 lsls r1, r3, 4 adds r1, r3 lsls r1, 2 ldr r0, _080F34D4 adds r1, r0 str r1, [r2] ldrb r2, [r1, 0x3] movs r0, 0x3F ands r0, r2 strb r0, [r1, 0x3] b _080F34E4 .align 2, 0 _080F34C8: .4byte 0x000087e4 _080F34CC: .4byte SpriteCallbackDummy _080F34D0: .4byte gUnknown_083DFEC4 _080F34D4: .4byte 0x02020004 _080F34D8: ldr r0, [r5] ldr r1, _080F3548 adds r0, r1 adds r0, r4 movs r1, 0 str r1, [r0] _080F34E4: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x5 bls _080F3488 _080F34EE: movs r0, 0x5 strh r0, [r7] ldr r0, _080F354C str r0, [r7, 0x14] lsls r5, r6, 2 adds r2, r5, r6 lsls r2, 18 movs r3, 0x80 lsls r3, 12 adds r2, r3 asrs r2, 16 adds r0, r7, 0 movs r1, 0xDE movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 beq _080F3558 ldr r0, _080F3550 ldr r4, [r0] ldr r6, _080F3548 adds r4, r6 adds r4, r5 lsls r1, r3, 4 adds r1, r3 lsls r1, 2 ldr r0, _080F3554 adds r1, r0 str r1, [r4] ldrb r3, [r1, 0x1] movs r2, 0x3F adds r0, r2, 0 ands r0, r3 movs r3, 0x40 orrs r0, r3 strb r0, [r1, 0x1] ldr r1, [r4] ldrb r0, [r1, 0x3] ands r2, r0 movs r0, 0x80 orrs r2, r0 strb r2, [r1, 0x3] b _080F3566 .align 2, 0 _080F3548: .4byte 0x000087e4 _080F354C: .4byte sub_80F3360 _080F3550: .4byte gUnknown_083DFEC4 _080F3554: .4byte 0x02020004 _080F3558: ldr r0, _080F3574 ldr r0, [r0] ldr r1, _080F3578 adds r0, r1 adds r0, r5 movs r1, 0 str r1, [r0] _080F3566: add sp, 0x50 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F3574: .4byte gUnknown_083DFEC4 _080F3578: .4byte 0x000087e4 thumb_func_end sub_80F33A8 thumb_func_start sub_80F357C sub_80F357C: @ 80F357C push {r4-r6,lr} movs r5, 0 ldr r0, _080F35AC ldr r0, [r0] ldr r1, _080F35B0 adds r6, r0, r1 _080F3588: lsls r0, r5, 2 adds r4, r6, r0 ldr r0, [r4] cmp r0, 0 beq _080F359A bl DestroySprite movs r0, 0 str r0, [r4] _080F359A: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x6 bls _080F3588 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F35AC: .4byte gUnknown_083DFEC4 _080F35B0: .4byte 0x000087e4 thumb_func_end sub_80F357C thumb_func_start sub_80F35B4 sub_80F35B4: @ 80F35B4 push {r4,lr} ldr r0, _080F35FC ldr r4, [r0] ldr r1, _080F3600 adds r0, r4, r1 movs r1, 0x1C strh r1, [r0] ldr r1, _080F3604 adds r2, r4, r1 movs r1, 0x13 strh r1, [r2] bl sub_80F727C bl sub_80F7404 ldr r2, _080F3608 movs r0, 0x1B movs r1, 0x15 bl sub_80F7920 ldrb r1, [r0, 0x5] movs r2, 0xC orrs r1, r2 strb r1, [r0, 0x5] movs r1, 0xC0 strh r1, [r0, 0x20] movs r1, 0x20 strh r1, [r0, 0x22] ldr r1, _080F360C str r1, [r0, 0x1C] ldr r1, _080F3610 adds r4, r1 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080F35FC: .4byte gUnknown_083DFEC4 _080F3600: .4byte 0x000076b0 _080F3604: .4byte 0x000076b2 _080F3608: .4byte gUnknown_083E4678 _080F360C: .4byte sub_80F363C _080F3610: .4byte 0x000076ac thumb_func_end sub_80F35B4 thumb_func_start sub_80F3614 sub_80F3614: @ 80F3614 push {lr} ldr r0, _080F3634 ldr r0, [r0] ldr r1, _080F3638 adds r0, r1 ldr r0, [r0] bl DestroySprite movs r0, 0x1B bl FreeSpriteTilesByTag movs r0, 0x15 bl FreeSpritePaletteByTag pop {r0} bx r0 .align 2, 0 _080F3634: .4byte gUnknown_083DFEC4 _080F3638: .4byte 0x000076ac thumb_func_end sub_80F3614 thumb_func_start sub_80F363C sub_80F363C: @ 80F363C push {lr} ldr r1, _080F365C ldr r1, [r1] ldr r3, _080F3660 adds r2, r1, r3 ldrb r2, [r2] lsls r2, 24 asrs r2, 24 ldr r3, _080F3664 adds r1, r3 adds r1, r2 ldrb r1, [r1] bl StartSpriteAnim pop {r0} bx r0 .align 2, 0 _080F365C: .4byte gUnknown_083DFEC4 _080F3660: .4byte 0x00008fe9 _080F3664: .4byte 0x00008934 thumb_func_end sub_80F363C thumb_func_start sub_80F3668 sub_80F3668: @ 80F3668 push {lr} ldr r0, _080F368C ldr r0, [r0] ldr r2, _080F3690 adds r1, r0, r2 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldr r2, _080F3694 adds r0, r2 adds r0, r1 ldrb r0, [r0] movs r1, 0xB0 movs r2, 0x20 bl sub_80F7418 pop {r0} bx r0 .align 2, 0 _080F368C: .4byte gUnknown_083DFEC4 _080F3690: .4byte 0x00008fe9 _080F3694: .4byte 0x00008934 thumb_func_end sub_80F3668 thumb_func_start sub_80F3698 sub_80F3698: @ 80F3698 push {r4,lr} ldr r0, _080F36DC ldr r3, [r0] ldr r1, _080F36E0 adds r0, r3, r1 movs r2, 0 ldrsh r1, [r0, r2] lsls r1, 2 ldr r4, _080F36E4 adds r1, r4 adds r1, r3, r1 ldr r2, _080F36E8 adds r0, r3, r2 movs r2, 0 ldrsb r2, [r0, r2] subs r4, 0x8 adds r0, r3, r4 adds r0, r2 ldr r2, _080F36EC adds r3, r2 ldrb r2, [r3] strb r2, [r0] ldrb r0, [r1, 0x1] ldr r1, [r1] lsls r1, 11 lsrs r1, 27 ldrb r2, [r3] bl sub_80F4548 bl sub_80F7470 pop {r4} pop {r0} bx r0 .align 2, 0 _080F36DC: .4byte gUnknown_083DFEC4 _080F36E0: .4byte 0x000087dc _080F36E4: .4byte 0x0000893c _080F36E8: .4byte 0x00008fe9 _080F36EC: .4byte 0x000076b4 thumb_func_end sub_80F3698 thumb_func_start sub_80F36F0 sub_80F36F0: @ 80F36F0 push {lr} ldr r0, _080F3718 ldr r0, [r0] ldr r1, _080F371C adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F3720 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F3712 _080F3708: bl sub_80F3724 lsls r0, 24 cmp r0, 0 bne _080F3708 _080F3712: pop {r0} bx r0 .align 2, 0 _080F3718: .4byte gUnknown_083DFEC4 _080F371C: .4byte 0x00000306 _080F3720: .4byte 0x00006dac thumb_func_end sub_80F36F0 thumb_func_start sub_80F3724 sub_80F3724: @ 80F3724 push {r4,lr} ldr r0, _080F3740 ldr r1, [r0] ldr r0, _080F3744 adds r4, r1, r0 ldrh r0, [r4] cmp r0, 0x1 beq _080F3764 cmp r0, 0x1 bgt _080F3748 cmp r0, 0 beq _080F374E b _080F377A .align 2, 0 _080F3740: .4byte gUnknown_083DFEC4 _080F3744: .4byte 0x00000306 _080F3748: cmp r0, 0x2 beq _080F376E b _080F377A _080F374E: ldr r0, _080F375C ldr r2, _080F3760 adds r1, r2 bl LZ77UnCompWram b _080F377E .align 2, 0 _080F375C: .4byte gUnknown_083E3D00 _080F3760: .4byte 0x0000984c _080F3764: bl sub_80F379C ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _080F376E: bl sub_80F37D0 lsls r0, 24 cmp r0, 0 beq _080F377E b _080F378C _080F377A: movs r0, 0 b _080F378E _080F377E: ldr r0, _080F3794 ldr r1, [r0] ldr r0, _080F3798 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F378C: movs r0, 0x1 _080F378E: pop {r4} pop {r1} bx r1 .align 2, 0 _080F3794: .4byte gUnknown_083DFEC4 _080F3798: .4byte 0x00000306 thumb_func_end sub_80F3724 thumb_func_start sub_80F379C sub_80F379C: @ 80F379C push {lr} ldr r0, _080F37C4 ldr r0, [r0] ldr r1, _080F37C8 adds r2, r0, r1 movs r1, 0 strb r1, [r2] ldr r1, _080F37CC adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F37BE _080F37B4: bl sub_80F37D0 lsls r0, 24 cmp r0, 0 bne _080F37B4 _080F37BE: pop {r0} bx r0 .align 2, 0 _080F37C4: .4byte gUnknown_083DFEC4 _080F37C8: .4byte 0x0000bc93 _080F37CC: .4byte 0x00006dac thumb_func_end sub_80F379C thumb_func_start sub_80F37D0 sub_80F37D0: @ 80F37D0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _080F3898 ldr r1, [r0] ldr r2, _080F389C adds r1, r2 ldrb r1, [r1] adds r2, r0, 0 cmp r1, 0xB bhi _080F38A8 movs r3, 0 mov r8, r3 movs r7, 0xF mov r9, r7 _080F37F0: ldr r2, [r2] ldr r1, _080F389C adds r0, r2, r1 ldrb r1, [r0] lsls r0, r1, 8 ldr r3, _080F38A0 adds r0, r3 adds r4, r2, r0 lsls r1, 9 ldr r7, _080F38A4 adds r1, r7 adds r5, r2, r1 movs r6, 0 _080F380A: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x10 bl CpuFastSet adds r5, 0x40 adds r4, 0x20 movs r1, 0 adds r6, 0x1 mov r12, r6 _080F381E: movs r0, 0 adds r6, r1, 0x1 _080F3822: adds r4, 0x4 movs r2, 0 adds r3, r0, 0x1 _080F3828: subs r4, 0x1 ldrb r0, [r4] lsls r1, r0, 4 lsrs r0, 4 mov r7, r9 ands r0, r7 orrs r1, r0 strb r1, [r5] adds r5, 0x1 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _080F3828 adds r4, 0x4 lsls r0, r3, 24 lsrs r0, 24 cmp r0, 0x7 bls _080F3822 subs r4, 0x40 lsls r0, r6, 24 lsrs r1, r0, 24 cmp r1, 0x1 bls _080F381E adds r4, 0x60 mov r1, r12 lsls r0, r1, 24 lsrs r6, r0, 24 cmp r6, 0x3 bls _080F380A ldr r2, _080F3898 ldr r3, [r2] ldr r7, _080F389C adds r1, r3, r7 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0xB bhi _080F38A8 mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r0, 0x1 bls _080F37F0 adds r1, r7, 0 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0xB bhi _080F38A8 movs r0, 0x1 b _080F38AA .align 2, 0 _080F3898: .4byte gUnknown_083DFEC4 _080F389C: .4byte 0x0000bc93 _080F38A0: .4byte 0x0000984c _080F38A4: .4byte 0x0000a44c _080F38A8: movs r0, 0 _080F38AA: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80F37D0 thumb_func_start sub_80F38B8 sub_80F38B8: @ 80F38B8 push {lr} ldr r0, _080F38E0 ldr r0, [r0] ldr r1, _080F38E4 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F38E8 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F38DA _080F38D0: bl sub_80F38EC lsls r0, 24 cmp r0, 0 bne _080F38D0 _080F38DA: pop {r0} bx r0 .align 2, 0 _080F38E0: .4byte gUnknown_083DFEC4 _080F38E4: .4byte 0x00000306 _080F38E8: .4byte 0x00006dac thumb_func_end sub_80F38B8 thumb_func_start sub_80F38EC sub_80F38EC: @ 80F38EC push {r4,lr} ldr r0, _080F3908 ldr r2, [r0] ldr r0, _080F390C adds r4, r2, r0 ldrh r1, [r4] cmp r1, 0x1 beq _080F3930 cmp r1, 0x1 bgt _080F3910 cmp r1, 0 beq _080F391A b _080F394E .align 2, 0 _080F3908: .4byte gUnknown_083DFEC4 _080F390C: .4byte 0x00000306 _080F3910: cmp r1, 0x2 beq _080F3938 cmp r1, 0x3 beq _080F3942 b _080F394E _080F391A: ldr r3, _080F3928 adds r0, r2, r3 str r1, [r0] ldr r3, _080F392C adds r0, r2, r3 strb r1, [r0] b _080F3952 .align 2, 0 _080F3928: .4byte 0x00009348 _080F392C: .4byte 0x0000bc92 _080F3930: movs r0, 0 bl sub_80F2E18 b _080F3952 _080F3938: bl sub_80F3970 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _080F3942: bl sub_80F39A4 lsls r0, 24 cmp r0, 0 beq _080F3952 b _080F3960 _080F394E: movs r0, 0 b _080F3962 _080F3952: ldr r0, _080F3968 ldr r1, [r0] ldr r0, _080F396C adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F3960: movs r0, 0x1 _080F3962: pop {r4} pop {r1} bx r1 .align 2, 0 _080F3968: .4byte gUnknown_083DFEC4 _080F396C: .4byte 0x00000306 thumb_func_end sub_80F38EC thumb_func_start sub_80F3970 sub_80F3970: @ 80F3970 push {lr} ldr r0, _080F3998 ldr r0, [r0] ldr r1, _080F399C adds r2, r0, r1 movs r1, 0 strb r1, [r2] ldr r1, _080F39A0 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F3992 _080F3988: bl sub_80F39A4 lsls r0, 24 cmp r0, 0 bne _080F3988 _080F3992: pop {r0} bx r0 .align 2, 0 _080F3998: .4byte gUnknown_083DFEC4 _080F399C: .4byte 0x0000bc93 _080F39A0: .4byte 0x00006dac thumb_func_end sub_80F3970 thumb_func_start sub_80F39A4 sub_80F39A4: @ 80F39A4 push {r4,r5,lr} sub sp, 0x10 ldr r0, _080F3A18 ldr r1, [r0] ldr r0, _080F3A1C adds r4, r1, r0 ldrb r0, [r4] cmp r0, 0xB bhi _080F3A30 ldrb r0, [r4] lsls r0, 9 ldr r2, _080F3A20 adds r0, r2 adds r0, r1, r0 str r0, [sp] ldr r5, _080F3A24 ldr r2, [sp, 0x4] ands r2, r5 movs r0, 0x80 lsls r0, 2 orrs r2, r0 str r2, [sp, 0x4] ldrb r1, [r4] adds r1, 0xB lsls r1, 16 ldr r0, _080F3A28 ands r0, r2 orrs r0, r1 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet ldrb r0, [r4] cmp r0, 0x4 bhi _080F3A04 lsls r0, 5 ldr r1, _080F3A2C adds r0, r1 str r0, [sp, 0x8] ldrb r2, [r4] adds r2, 0xA add r0, sp, 0x8 ldr r1, [r0, 0x4] ands r1, r5 orrs r1, r2 str r1, [r0, 0x4] bl LoadSpritePalette _080F3A04: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, 0xB bhi _080F3A30 movs r0, 0x1 b _080F3A32 .align 2, 0 _080F3A18: .4byte gUnknown_083DFEC4 _080F3A1C: .4byte 0x0000bc93 _080F3A20: .4byte 0x0000a44c _080F3A24: .4byte 0xffff0000 _080F3A28: .4byte 0x0000ffff _080F3A2C: .4byte gUnknown_083E3C60 _080F3A30: movs r0, 0 _080F3A32: add sp, 0x10 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80F39A4 thumb_func_start sub_80F3A3C sub_80F3A3C: @ 80F3A3C push {r4-r7,lr} sub sp, 0x18 lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 lsrs r4, r1, 16 cmp r4, 0x2 bhi _080F3A60 lsls r0, r4, 3 adds r0, r4 adds r0, r5, r0 lsls r0, 16 lsrs r1, r0, 16 ldr r2, _080F3A5C b _080F3A78 .align 2, 0 _080F3A5C: .4byte gUnknown_083DFEC4 _080F3A60: ldr r2, _080F3AD0 ldr r1, [r2] ldr r3, _080F3AD4 adds r0, r1, r3 ldrb r0, [r0] ldr r6, _080F3AD8 adds r1, r6 ldrb r1, [r1] subs r0, r1 adds r0, r5, r0 lsls r0, 16 lsrs r1, r0, 16 _080F3A78: ldr r0, [r2] ldr r7, _080F3ADC adds r0, r7 adds r0, r1 ldrb r2, [r0] mov r1, sp ldr r0, _080F3AE0 ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} mov r3, sp ldr r1, _080F3AE4 lsls r2, 2 adds r0, r2, r1 ldrh r0, [r0] adds r0, 0xB strh r0, [r3] adds r1, 0x2 adds r2, r1 ldrh r0, [r2] adds r0, 0xA strh r0, [r3, 0x2] lsls r1, r5, 20 movs r0, 0xC0 lsls r0, 15 adds r1, r0 asrs r1, 16 lsls r2, r4, 20 movs r3, 0xA0 lsls r3, 14 adds r2, r3 asrs r2, 16 mov r0, sp movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 bne _080F3AE8 movs r0, 0 b _080F3AF2 .align 2, 0 _080F3AD0: .4byte gUnknown_083DFEC4 _080F3AD4: .4byte 0x0000bc8e _080F3AD8: .4byte 0x0000bc8f _080F3ADC: .4byte 0x0000bc4c _080F3AE0: .4byte gSpriteTemplate_83E476C _080F3AE4: .4byte gUnknown_083E4698 _080F3AE8: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F3AFC adds r0, r1 _080F3AF2: add sp, 0x18 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080F3AFC: .4byte 0x02020004 thumb_func_end sub_80F3A3C thumb_func_start sub_80F3B00 sub_80F3B00: @ 80F3B00 push {r4,lr} ldr r0, _080F3B34 ldr r4, [r0] ldr r1, _080F3B38 adds r0, r4, r1 ldrb r0, [r0] ldr r2, _080F3B3C adds r1, r4, r2 ldrb r1, [r1] bl sub_80F3A3C adds r2, r0, 0 ldr r1, _080F3B40 adds r0, r4, r1 str r2, [r0] cmp r2, 0 beq _080F3B48 adds r0, r2, 0 movs r1, 0x1 bl StartSpriteAffineAnim ldr r2, _080F3B44 adds r1, r4, r2 movs r0, 0x1 strb r0, [r1] b _080F3B4E .align 2, 0 _080F3B34: .4byte gUnknown_083DFEC4 _080F3B38: .4byte 0x0000bc90 _080F3B3C: .4byte 0x0000bc91 _080F3B40: .4byte 0x00009348 _080F3B44: .4byte 0x0000bc92 _080F3B48: ldr r1, _080F3B54 adds r0, r4, r1 strb r2, [r0] _080F3B4E: pop {r4} pop {r0} bx r0 .align 2, 0 _080F3B54: .4byte 0x0000bc92 thumb_func_end sub_80F3B00 thumb_func_start sub_80F3B58 sub_80F3B58: @ 80F3B58 push {lr} ldr r0, _080F3B6C ldr r1, [r0] ldr r0, _080F3B70 adds r2, r1, r0 ldrb r0, [r2] cmp r0, 0 bne _080F3B74 movs r0, 0 b _080F3B8A .align 2, 0 _080F3B6C: .4byte gUnknown_083DFEC4 _080F3B70: .4byte 0x0000bc92 _080F3B74: ldr r3, _080F3B90 adds r0, r1, r3 ldr r0, [r0] adds r0, 0x3F ldrb r0, [r0] lsrs r0, 5 movs r1, 0x1 eors r0, r1 ands r0, r1 strb r0, [r2] ldrb r0, [r2] _080F3B8A: pop {r1} bx r1 .align 2, 0 _080F3B90: .4byte 0x00009348 thumb_func_end sub_80F3B58 thumb_func_start sub_80F3B94 sub_80F3B94: @ 80F3B94 push {r4,lr} ldr r0, _080F3BB8 ldr r4, [r0] ldr r1, _080F3BBC adds r0, r4, r1 ldr r2, [r0] cmp r2, 0 beq _080F3BC4 adds r0, r2, 0 movs r1, 0x2 bl StartSpriteAffineAnim ldr r0, _080F3BC0 adds r1, r4, r0 movs r0, 0x1 strb r0, [r1] b _080F3BCA .align 2, 0 _080F3BB8: .4byte gUnknown_083DFEC4 _080F3BBC: .4byte 0x00009348 _080F3BC0: .4byte 0x0000bc92 _080F3BC4: ldr r1, _080F3BD0 adds r0, r4, r1 strb r2, [r0] _080F3BCA: pop {r4} pop {r0} bx r0 .align 2, 0 _080F3BD0: .4byte 0x0000bc92 thumb_func_end sub_80F3B94 thumb_func_start sub_80F3BD4 sub_80F3BD4: @ 80F3BD4 push {r4-r6,lr} ldr r0, _080F3C18 ldr r1, [r0] ldr r0, _080F3C1C adds r5, r1, r0 ldrb r0, [r5] cmp r0, 0 beq _080F3C24 ldr r0, _080F3C20 adds r4, r1, r0 ldr r0, [r4] adds r0, 0x3F ldrb r0, [r0] lsrs r0, 5 movs r1, 0x1 eors r0, r1 ands r0, r1 strb r0, [r5] adds r6, r0, 0 cmp r6, 0 bne _080F3C12 ldr r0, [r4] ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldr r0, [r4] bl DestroySprite str r6, [r4] _080F3C12: ldrb r0, [r5] b _080F3C26 .align 2, 0 _080F3C18: .4byte gUnknown_083DFEC4 _080F3C1C: .4byte 0x0000bc92 _080F3C20: .4byte 0x00009348 _080F3C24: movs r0, 0 _080F3C26: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80F3BD4 thumb_func_start sub_80F3C2C sub_80F3C2C: @ 80F3C2C push {r4,lr} ldr r0, _080F3C8C ldr r0, [r0] ldr r1, _080F3C90 adds r4, r0, r1 ldr r0, [r4] cmp r0, 0 beq _080F3C50 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldr r0, [r4] bl DestroySprite movs r0, 0 str r0, [r4] _080F3C50: movs r4, 0 _080F3C52: adds r0, r4, 0 adds r0, 0xB lsls r0, 16 lsrs r0, 16 bl FreeSpriteTilesByTag adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xB bls _080F3C52 movs r4, 0 _080F3C6A: adds r0, r4, 0 adds r0, 0xA lsls r0, 16 lsrs r0, 16 bl FreeSpritePaletteByTag adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _080F3C6A bl sub_80F2F48 pop {r4} pop {r0} bx r0 .align 2, 0 _080F3C8C: .4byte gUnknown_083DFEC4 _080F3C90: .4byte 0x00009348 thumb_func_end sub_80F3C2C thumb_func_start sub_80F3C94 sub_80F3C94: @ 80F3C94 push {lr} sub sp, 0x10 ldr r0, _080F3CDC ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] ldr r0, _080F3CE0 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x8] str r1, [sp, 0xC] mov r0, sp bl LoadSpriteSheet add r0, sp, 0x8 bl LoadSpritePalette movs r1, 0 ldr r0, _080F3CE4 ldr r0, [r0] movs r3, 0x88 lsls r3, 8 adds r2, r0, r3 movs r3, 0 _080F3CC6: lsls r0, r1, 2 adds r0, r2, r0 str r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x9 bls _080F3CC6 add sp, 0x10 pop {r0} bx r0 .align 2, 0 _080F3CDC: .4byte gUnknown_083E4784 _080F3CE0: .4byte gUnknown_083E478C _080F3CE4: .4byte gUnknown_083DFEC4 thumb_func_end sub_80F3C94 thumb_func_start sub_80F3CE8 sub_80F3CE8: @ 80F3CE8 push {lr} bl move_anim_execute movs r0, 0x17 bl FreeSpriteTilesByTag movs r0, 0xF bl FreeSpritePaletteByTag pop {r0} bx r0 thumb_func_end sub_80F3CE8 thumb_func_start sub_80F3D00 sub_80F3D00: @ 80F3D00 push {r4,r5,lr} ldr r0, _080F3D34 ldr r2, [r0] ldr r1, _080F3D38 adds r0, r2, r1 movs r3, 0 ldrsh r0, [r0, r3] lsls r0, 2 ldr r1, _080F3D3C adds r0, r1 adds r0, r2, r0 ldrb r1, [r0, 0x3] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080F3D94 ldr r3, _080F3D40 adds r0, r2, r3 movs r1, 0 ldrsb r1, [r0, r1] ldr r3, _080F3D44 adds r0, r2, r3 adds r0, r1 ldrb r5, [r0] movs r4, 0 b _080F3D86 .align 2, 0 _080F3D34: .4byte gUnknown_083DFEC4 _080F3D38: .4byte 0x000087dc _080F3D3C: .4byte 0x0000893c _080F3D40: .4byte 0x00008fe9 _080F3D44: .4byte 0x00008931 _080F3D48: ldr r0, _080F3D9C movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080F3D8C ldr r0, _080F3DA0 ldr r2, [r0] lsls r0, r4, 2 movs r3, 0x88 lsls r3, 8 adds r2, r3 adds r2, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F3DA4 adds r0, r1 str r0, [r2] adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _080F3D86: adds r0, r5, 0x1 cmp r4, r0 blt _080F3D48 _080F3D8C: adds r0, r5, 0 movs r1, 0x1 bl sub_80F3F20 _080F3D94: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F3D9C: .4byte gSpriteTemplate_83E4800 _080F3DA0: .4byte gUnknown_083DFEC4 _080F3DA4: .4byte 0x02020004 thumb_func_end sub_80F3D00 thumb_func_start move_anim_execute move_anim_execute: @ 80F3DA8 push {r4-r6,lr} movs r5, 0 ldr r0, _080F3DD8 ldr r0, [r0] movs r1, 0x88 lsls r1, 8 adds r6, r0, r1 _080F3DB6: lsls r0, r5, 2 adds r4, r6, r0 ldr r0, [r4] cmp r0, 0 beq _080F3DD2 bl DestroySprite movs r0, 0 str r0, [r4] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x9 bls _080F3DB6 _080F3DD2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F3DD8: .4byte gUnknown_083DFEC4 thumb_func_end move_anim_execute thumb_func_start sub_80F3DDC sub_80F3DDC: @ 80F3DDC push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x30] adds r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C ble _080F3DFE movs r0, 0 strh r0, [r1, 0x30] ldrh r0, [r1, 0x32] lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_80F3F20 _080F3DFE: pop {r0} bx r0 thumb_func_end sub_80F3DDC thumb_func_start sub_80F3E04 sub_80F3E04: @ 80F3E04 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080F3E1C movs r0, 0 strh r0, [r2, 0x30] ldr r0, _080F3E20 str r0, [r2, 0x1C] _080F3E1C: pop {r0} bx r0 .align 2, 0 _080F3E20: .4byte sub_80F3DDC thumb_func_end sub_80F3E04 thumb_func_start sub_80F3E24 sub_80F3E24: @ 80F3E24 push {r4,r5,lr} adds r3, r0, 0 ldr r0, _080F3E64 ldr r0, [r0] ldr r1, _080F3E68 adds r4, r0, r1 ldr r0, [r4] cmp r0, 0 beq _080F3E70 ldrh r1, [r0, 0x24] ldrh r0, [r0, 0x20] adds r1, r0 ldr r2, _080F3E6C movs r5, 0x2E ldrsh r0, [r3, r5] lsls r0, 2 adds r0, r2 ldrh r0, [r0] adds r0, r1 strh r0, [r3, 0x20] ldr r0, [r4] ldrh r1, [r0, 0x26] ldrh r0, [r0, 0x22] adds r1, r0 movs r4, 0x2E ldrsh r0, [r3, r4] lsls r0, 2 adds r2, 0x2 adds r0, r2 ldrh r0, [r0] adds r0, r1 b _080F3E8E .align 2, 0 _080F3E64: .4byte gUnknown_083DFEC4 _080F3E68: .4byte 0x00008768 _080F3E6C: .4byte gUnknown_083E4794 _080F3E70: ldr r1, _080F3E98 movs r5, 0x2E ldrsh r0, [r3, r5] lsls r0, 2 adds r0, r1 ldrh r0, [r0] adds r0, 0x28 strh r0, [r3, 0x20] movs r2, 0x2E ldrsh r0, [r3, r2] lsls r0, 2 adds r1, 0x2 adds r0, r1 ldrh r0, [r0] adds r0, 0x68 _080F3E8E: strh r0, [r3, 0x22] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F3E98: .4byte gUnknown_083E4794 thumb_func_end sub_80F3E24 thumb_func_start sub_80F3E9C sub_80F3E9C: @ 80F3E9C push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0 beq _080F3ECA subs r0, r1, 0x1 strh r0, [r4, 0x30] lsls r0, 16 cmp r0, 0 bne _080F3F14 adds r0, r4, 0 movs r1, 0 bl SeekSpriteAnim adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _080F3ECA: adds r0, r4, 0 bl sub_80F3E24 adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080F3F14 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] movs r0, 0x34 ldrsh r1, [r4, r0] movs r2, 0x32 ldrsh r0, [r4, r2] cmp r1, r0 bne _080F3F10 cmp r1, 0x9 bne _080F3F08 bl sub_80F3FAC ldr r0, _080F3F04 b _080F3F12 .align 2, 0 _080F3F04: .4byte sub_80F3E04 _080F3F08: ldr r0, _080F3F0C b _080F3F12 .align 2, 0 _080F3F0C: .4byte sub_80F3DDC _080F3F10: ldr r0, _080F3F1C _080F3F12: str r0, [r4, 0x1C] _080F3F14: pop {r4} pop {r0} bx r0 .align 2, 0 _080F3F1C: .4byte SpriteCallbackDummy thumb_func_end sub_80F3E9C thumb_func_start sub_80F3F20 sub_80F3F20: @ 80F3F20 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 movs r5, 0 ldr r0, _080F3F6C ldr r0, [r0] movs r1, 0x88 lsls r1, 8 adds r7, r0, r1 _080F3F3C: lsls r0, r5, 2 adds r4, r7, r0 ldr r0, [r4] cmp r0, 0 beq _080F3F92 strh r5, [r0, 0x2E] ldr r1, [r4] lsls r0, r5, 4 adds r0, 0x1 strh r0, [r1, 0x30] ldr r0, [r4] strh r6, [r0, 0x32] ldr r0, [r4] strh r5, [r0, 0x34] mov r3, r8 cmp r3, 0 beq _080F3F62 cmp r6, 0x9 beq _080F3F74 _080F3F62: ldr r1, [r4] ldr r0, _080F3F70 str r0, [r1, 0x1C] b _080F3F92 .align 2, 0 _080F3F6C: .4byte gUnknown_083DFEC4 _080F3F70: .4byte sub_80F3E9C _080F3F74: ldr r0, [r4] bl sub_80F3E24 bl sub_80F3FAC ldr r2, [r4] ldr r0, _080F3FA8 str r0, [r2, 0x1C] adds r2, 0x3E ldrb r0, [r2] movs r3, 0x5 negs r3, r3 adds r1, r3, 0 ands r0, r1 strb r0, [r2] _080F3F92: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x9 bls _080F3F3C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F3FA8: .4byte sub_80F3E04 thumb_func_end sub_80F3F20 thumb_func_start sub_80F3FAC sub_80F3FAC: @ 80F3FAC push {r4-r7,lr} movs r5, 0 ldr r0, _080F3FEC ldr r0, [r0] movs r1, 0x88 lsls r1, 8 adds r6, r0, r1 movs r0, 0x5 negs r0, r0 adds r7, r0, 0 _080F3FC0: lsls r0, r5, 2 adds r4, r6, r0 ldr r0, [r4] cmp r0, 0 beq _080F3FDA movs r1, 0 bl SeekSpriteAnim ldr r1, [r4] adds r1, 0x3E ldrb r0, [r1] ands r0, r7 strb r0, [r1] _080F3FDA: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x9 bls _080F3FC0 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F3FEC: .4byte gUnknown_083DFEC4 thumb_func_end sub_80F3FAC thumb_func_start sub_80F3FF0 sub_80F3FF0: @ 80F3FF0 push {lr} ldr r0, _080F4018 ldr r0, [r0] ldr r1, _080F401C adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F4020 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F4012 _080F4008: bl sub_80F4024 lsls r0, 24 cmp r0, 0 bne _080F4008 _080F4012: pop {r0} bx r0 .align 2, 0 _080F4018: .4byte gUnknown_083DFEC4 _080F401C: .4byte 0x00000306 _080F4020: .4byte 0x00006dac thumb_func_end sub_80F3FF0 thumb_func_start sub_80F4024 sub_80F4024: @ 80F4024 push {r4,lr} sub sp, 0x10 ldr r0, _080F4040 ldr r4, [r0] ldr r1, _080F4044 adds r0, r4, r1 ldrh r0, [r0] cmp r0, 0x1 beq _080F4068 cmp r0, 0x1 bgt _080F4048 cmp r0, 0 beq _080F4052 b _080F4106 .align 2, 0 _080F4040: .4byte gUnknown_083DFEC4 _080F4044: .4byte 0x00000306 _080F4048: cmp r0, 0x2 beq _080F4084 cmp r0, 0x3 beq _080F40B8 b _080F4106 _080F4052: ldr r0, _080F4060 ldr r2, _080F4064 adds r1, r4, r2 bl LZ77UnCompWram b _080F4118 .align 2, 0 _080F4060: .4byte gUnknown_083E329C _080F4064: .4byte 0x000131e4 _080F4068: ldr r1, _080F407C adds r0, r4, r1 str r0, [sp] ldr r0, _080F4080 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet b _080F4118 .align 2, 0 _080F407C: .4byte 0x000131e4 _080F4080: .4byte 0x00181000 _080F4084: ldr r0, _080F40B4 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x8] str r1, [sp, 0xC] add r0, sp, 0x8 bl LoadSpritePalette movs r0, 0x10 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 movs r1, 0xC2 lsls r1, 2 adds r2, r4, r1 adds r0, 0x10 movs r1, 0x1 lsls r1, r0 movs r0, 0x3 negs r0, r0 bics r0, r1 str r0, [r2] b _080F4118 .align 2, 0 _080F40B4: .4byte gUnknown_083E4818 _080F40B8: ldr r0, _080F40E4 movs r1, 0xDA movs r2, 0xE movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080F40F0 ldr r0, _080F40E8 adds r2, r4, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F40EC adds r0, r1 str r0, [r2] movs r1, 0 strh r1, [r0, 0x2E] b _080F40F8 .align 2, 0 _080F40E4: .4byte gSpriteTemplate_83E4850 _080F40E8: .4byte 0x00006d98 _080F40EC: .4byte 0x02020004 _080F40F0: ldr r2, _080F410C adds r1, r4, r2 movs r0, 0 str r0, [r1] _080F40F8: ldr r0, _080F4110 ldr r1, [r0] ldr r0, _080F4114 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080F4106: movs r0, 0 b _080F4128 .align 2, 0 _080F410C: .4byte 0x00006d98 _080F4110: .4byte gUnknown_083DFEC4 _080F4114: .4byte 0x00000306 _080F4118: ldr r0, _080F4130 ldr r1, [r0] ldr r2, _080F4134 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0x1 _080F4128: add sp, 0x10 pop {r4} pop {r1} bx r1 .align 2, 0 _080F4130: .4byte gUnknown_083DFEC4 _080F4134: .4byte 0x00000306 thumb_func_end sub_80F4024 thumb_func_start sub_80F4138 sub_80F4138: @ 80F4138 push {lr} adds r2, r0, 0 ldr r0, _080F4170 ldr r0, [r0] movs r1, 0xC3 lsls r1, 2 adds r0, r1 ldrh r0, [r0] negs r0, r0 strh r0, [r2, 0x26] lsls r0, 16 asrs r0, 16 movs r1, 0x20 negs r1, r1 cmp r0, r1 bgt _080F4174 movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 bne _080F418E adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] movs r0, 0x1 b _080F418C .align 2, 0 _080F4170: .4byte gUnknown_083DFEC4 _080F4174: movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0x1 bne _080F418E adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r3] movs r0, 0 _080F418C: strh r0, [r2, 0x2E] _080F418E: pop {r0} bx r0 thumb_func_end sub_80F4138 thumb_func_start sub_80F4194 sub_80F4194: @ 80F4194 push {r4-r7,lr} sub sp, 0x4 adds r7, r0, 0 adds r2, r1, 0 ldr r0, _080F42A4 ldr r6, [r0] mov r0, sp ldr r1, _080F42A8 adds r5, r1, 0 strh r5, [r0] ldr r4, _080F42AC str r0, [r4] str r6, [r4, 0x4] ldr r3, _080F42B0 str r3, [r4, 0x8] ldr r0, [r4, 0x8] movs r0, 0x80 lsls r0, 3 adds r1, r6, r0 mov r0, sp strh r5, [r0] str r0, [r4] str r1, [r4, 0x4] str r3, [r4, 0x8] ldr r0, [r4, 0x8] ldr r0, _080F42B4 adds r1, r6, 0 bl sub_8004E3C movs r3, 0x88 lsls r3, 2 adds r1, r6, r3 mov r0, sp movs r3, 0 strh r3, [r0] str r0, [r4] str r1, [r4, 0x4] ldr r2, _080F42B8 str r2, [r4, 0x8] ldr r0, [r4, 0x8] movs r0, 0xC4 lsls r0, 3 adds r1, r6, r0 mov r0, sp strh r3, [r0] str r0, [r4] str r1, [r4, 0x4] str r2, [r4, 0x8] ldr r0, [r4, 0x8] movs r1, 0x80 lsls r1, 2 adds r2, r6, r1 ldr r0, [r2] ldr r1, _080F42BC ands r0, r1 str r0, [r2] ldr r0, [r2, 0x4] ands r0, r1 str r0, [r2, 0x4] ldr r0, [r2, 0x8] ands r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0xC] ands r0, r1 str r0, [r2, 0xC] ldr r0, [r2, 0x10] ands r0, r1 str r0, [r2, 0x10] ldr r0, [r2, 0x14] ands r0, r1 str r0, [r2, 0x14] ldr r0, [r2, 0x18] ands r0, r1 str r0, [r2, 0x18] ldr r0, [r2, 0x1C] ands r0, r1 str r0, [r2, 0x1C] movs r3, 0xC0 lsls r3, 3 adds r2, r6, r3 ldr r0, [r2] ands r0, r1 str r0, [r2] ldr r0, [r2, 0x4] ands r0, r1 str r0, [r2, 0x4] ldr r0, [r2, 0x8] ands r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0xC] ands r0, r1 str r0, [r2, 0xC] ldr r0, [r2, 0x10] ands r0, r1 str r0, [r2, 0x10] ldr r0, [r2, 0x14] ands r0, r1 str r0, [r2, 0x14] ldr r0, [r2, 0x18] ands r0, r1 str r0, [r2, 0x18] ldr r0, [r2, 0x1C] ands r0, r1 str r0, [r2, 0x1C] movs r1, 0 ldr r2, _080F42C0 _080F4268: lsls r0, r1, 7 adds r0, r6, r0 str r0, [r4] lsls r0, r1, 8 adds r0, r7, r0 str r0, [r4, 0x4] str r2, [r4, 0x8] ldr r0, [r4, 0x8] lsls r0, r1, 7 movs r3, 0x80 lsls r3, 3 adds r0, r3 adds r0, r6, r0 str r0, [r4] lsls r0, r1, 3 adds r0, 0x4 lsls r0, 5 adds r0, r7, r0 str r0, [r4, 0x4] str r2, [r4, 0x8] ldr r0, [r4, 0x8] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x4 bls _080F4268 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F42A4: .4byte gUnknown_083DFEC8 _080F42A8: .4byte 0x00001111 _080F42AC: .4byte 0x040000d4 _080F42B0: .4byte 0x81000140 _080F42B4: .4byte gWindowConfig_81E70F0 _080F42B8: .4byte 0x81000030 _080F42BC: .4byte 0x0fffffff _080F42C0: .4byte 0x80000040 thumb_func_end sub_80F4194 thumb_func_start sub_80F42C4 sub_80F42C4: @ 80F42C4 push {r4-r7,lr} sub sp, 0x8 adds r1, r0, 0 ldr r0, _080F433C ldr r0, [r0] ldr r2, _080F4340 adds r0, r2 str r0, [sp] ldr r2, _080F4344 str r2, [sp, 0x4] bl sub_80F4194 mov r0, sp bl LoadSpriteSheet ldr r0, _080F4348 bl LoadSpritePalette movs r5, 0 movs r4, 0 ldr r6, _080F434C _080F42EE: lsls r1, r4, 21 movs r7, 0xE2 lsls r7, 15 adds r1, r7 asrs r1, 16 ldr r0, _080F4350 movs r2, 0x10 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _080F4360 lsls r3, r0, 4 adds r3, r0 lsls r3, 2 adds r3, r6 ldrh r2, [r3, 0x4] lsls r0, r2, 22 lsrs r0, 22 adds r0, r5, r0 ldr r7, _080F4354 adds r1, r7, 0 ands r0, r1 ldr r7, _080F4358 adds r1, r7, 0 ands r2, r1 orrs r2, r0 strh r2, [r3, 0x4] ldr r0, _080F433C ldr r0, [r0] lsls r1, r4, 2 ldr r2, _080F435C adds r0, r2 adds r0, r1 str r3, [r0] b _080F4370 .align 2, 0 _080F433C: .4byte gUnknown_083DFEC4 _080F4340: .4byte 0x0000d1e4 _080F4344: .4byte 0x001a0500 _080F4348: .4byte gUnknown_083E4868 _080F434C: .4byte 0x02020004 _080F4350: .4byte gSpriteTemplate_83E4878 _080F4354: .4byte 0x000003ff _080F4358: .4byte 0xfffffc00 _080F435C: .4byte 0x0000ced4 _080F4360: ldr r0, _080F438C ldr r1, [r0] lsls r0, r4, 2 ldr r7, _080F4390 adds r1, r7 adds r1, r0 movs r0, 0 str r0, [r1] _080F4370: adds r0, r5, 0 adds r0, 0x8 lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _080F42EE add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F438C: .4byte gUnknown_083DFEC4 _080F4390: .4byte 0x0000ced4 thumb_func_end sub_80F42C4 thumb_func_start sub_80F4394 sub_80F4394: @ 80F4394 push {r4,r5,lr} movs r4, 0 ldr r0, _080F43CC ldr r0, [r0] ldr r1, _080F43D0 adds r5, r0, r1 _080F43A0: lsls r0, r4, 2 adds r0, r5, r0 ldr r0, [r0] cmp r0, 0 beq _080F43AE bl DestroySprite _080F43AE: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _080F43A0 movs r0, 0x1A bl FreeSpriteTilesByTag movs r0, 0x12 bl FreeSpritePaletteByTag pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F43CC: .4byte gUnknown_083DFEC4 _080F43D0: .4byte 0x0000ced4 thumb_func_end sub_80F4394 thumb_func_start sub_80F43D4 sub_80F43D4: @ 80F43D4 push {r4,lr} adds r1, r0, 0 ldr r0, _080F4410 ldr r0, [r0] ldr r2, _080F4414 adds r4, r0, r2 adds r0, r4, 0 bl sub_80F4194 movs r0, 0x1A bl GetSpriteTileStartByTag lsls r0, 16 lsrs r1, r0, 16 ldr r0, _080F4418 cmp r1, r0 beq _080F4408 lsls r0, r1, 5 ldr r1, _080F441C adds r0, r1 ldr r1, _080F4420 str r4, [r1] str r0, [r1, 0x4] ldr r0, _080F4424 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _080F4408: pop {r4} pop {r0} bx r0 .align 2, 0 _080F4410: .4byte gUnknown_083DFEC4 _080F4414: .4byte 0x0000d1e4 _080F4418: .4byte 0x0000ffff _080F441C: .4byte 0x06010000 _080F4420: .4byte 0x040000d4 _080F4424: .4byte 0x84000140 thumb_func_end sub_80F43D4 thumb_func_start sub_80F4428 sub_80F4428: @ 80F4428 push {lr} lsls r1, 16 lsrs r1, 16 lsls r2, 24 lsrs r2, 24 bl sub_80F6514 pop {r1} bx r1 thumb_func_end sub_80F4428 thumb_func_start sub_80F443C sub_80F443C: @ 80F443C push {r4,lr} lsls r4, r1, 16 lsrs r4, 16 ldr r1, _080F4458 bl StringCopy adds r1, r4, 0 movs r2, 0x38 movs r3, 0x1 bl sub_8072C14 pop {r4} pop {r1} bx r1 .align 2, 0 _080F4458: .4byte gUnknown_08410E87 thumb_func_end sub_80F443C thumb_func_start sub_80F445C sub_80F445C: @ 80F445C push {r4,lr} lsls r1, 16 lsrs r1, 16 movs r2, 0x17 movs r3, 0x1 bl sub_8072C14 adds r4, r0, 0 movs r3, 0xFC strb r3, [r4] movs r2, 0x11 strb r2, [r4, 0x1] movs r1, 0x1 strb r1, [r4, 0x2] adds r4, 0x3 movs r0, 0xBA strb r0, [r4] adds r4, 0x1 strb r3, [r4] strb r2, [r4, 0x1] strb r1, [r4, 0x2] adds r4, 0x3 ldr r0, _080F44A8 ldr r0, [r0] ldr r1, _080F44AC adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] adds r1, 0x1 adds r0, r4, 0 movs r2, 0x32 movs r3, 0x1 bl sub_8072C14 adds r4, r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080F44A8: .4byte gUnknown_083DFEC4 _080F44AC: .4byte 0x00008774 thumb_func_end sub_80F445C thumb_func_start sub_80F44B0 sub_80F44B0: @ 80F44B0 push {r4,lr} adds r4, r2, 0 lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r2, r1, 16 cmp r0, 0xE bne _080F44F4 cmp r4, 0x2 beq _080F44C8 cmp r4, 0x7 bne _080F44E0 _080F44C8: movs r0, 0x64 muls r0, r2 ldr r1, _080F44DC adds r0, r1 adds r1, r4, 0 adds r2, r3, 0 bl PokemonGetField b _080F453C .align 2, 0 _080F44DC: .4byte 0x03004360 _080F44E0: movs r0, 0x64 muls r0, r2 ldr r1, _080F44F0 adds r0, r1 adds r1, r4, 0 bl PokemonGetField b _080F453C .align 2, 0 _080F44F0: .4byte 0x03004360 _080F44F4: cmp r4, 0x2 beq _080F44FC cmp r4, 0x7 bne _080F4520 _080F44FC: lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 lsls r1, r2, 2 adds r1, r2 lsls r1, 4 ldr r2, _080F451C adds r1, r2 adds r0, r1 adds r1, r4, 0 adds r2, r3, 0 bl PokemonGetEncryptedField b _080F453C .align 2, 0 _080F451C: .4byte 0x020300a4 _080F4520: lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 lsls r1, r2, 2 adds r1, r2 lsls r1, 4 ldr r2, _080F4544 adds r1, r2 adds r0, r1 adds r1, r4, 0 bl PokemonGetEncryptedField _080F453C: pop {r4} pop {r1} bx r1 .align 2, 0 _080F4544: .4byte 0x020300a4 thumb_func_end sub_80F44B0 thumb_func_start sub_80F4548 sub_80F4548: @ 80F4548 push {r4,lr} sub sp, 0x4 lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 lsrs r4, r1, 16 mov r0, sp strb r2, [r0] cmp r3, 0xE bne _080F4574 movs r0, 0x64 muls r0, r4 ldr r1, _080F4570 adds r0, r1 movs r1, 0x8 mov r2, sp bl pokemon_setattr b _080F4592 .align 2, 0 _080F4570: .4byte 0x03004360 _080F4574: lsls r1, r3, 2 adds r1, r3 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 lsls r1, r4, 2 adds r1, r4 lsls r1, 4 ldr r2, _080F459C adds r1, r2 adds r0, r1 movs r1, 0x8 mov r2, sp bl PokemonSetEncryptedField _080F4592: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080F459C: .4byte 0x020300a4 thumb_func_end sub_80F4548 thumb_func_start sub_80F45A0 sub_80F45A0: @ 80F45A0 push {r4-r7,lr} lsls r1, 24 lsrs r6, r1, 24 ldr r1, _080F45F0 ldr r5, [r1] lsls r1, r0, 16 asrs r0, r1, 14 adds r4, r5, r0 ldr r2, _080F45F4 adds r0, r4, r2 ldrb r0, [r0] lsls r0, 25 lsrs r7, r0, 31 cmp r7, 0 beq _080F4644 lsls r0, r6, 6 ldr r2, _080F45F8 adds r0, r2 adds r0, r5, r0 lsrs r1, 16 movs r2, 0 bl sub_80F4428 ldr r1, _080F45FC adds r0, r4, r1 ldrb r2, [r0] cmp r2, 0xE bne _080F4608 lsls r0, r6, 1 adds r0, r6 lsls r0, 3 ldr r2, _080F4600 adds r0, r2 adds r0, r5, r0 ldr r1, _080F4604 movs r2, 0x40 movs r3, 0 bl sub_8072C74 b _080F4624 .align 2, 0 _080F45F0: .4byte gUnknown_083DFEC4 _080F45F4: .4byte 0x0000893f _080F45F8: .4byte 0x00008829 _080F45FC: .4byte 0x0000893d _080F4600: .4byte 0x000088e9 _080F4604: .4byte gUnknown_08410E7E _080F4608: lsls r0, r6, 1 adds r0, r6 lsls r0, 3 ldr r1, _080F4634 adds r0, r1 adds r0, r5, r0 lsls r1, r2, 3 adds r1, r2 ldr r2, _080F4638 adds r1, r2 movs r2, 0x40 movs r3, 0 bl sub_8072C74 _080F4624: ldr r0, _080F463C ldr r0, [r0] ldr r2, _080F4640 adds r0, r2 adds r0, r6 movs r1, 0x1 strb r1, [r0] b _080F4676 .align 2, 0 _080F4634: .4byte 0x000088e9 _080F4638: .4byte 0x020383e4 _080F463C: .4byte gUnknown_083DFEC4 _080F4640: .4byte 0x00008937 _080F4644: lsls r0, r6, 6 ldr r1, _080F467C adds r0, r1 adds r0, r5, r0 ldr r4, _080F4680 adds r1, r4, 0 movs r2, 0x68 movs r3, 0 bl sub_8072C74 lsls r0, r6, 1 adds r0, r6 lsls r0, 3 ldr r2, _080F4684 adds r0, r2 adds r0, r5, r0 adds r1, r4, 0 movs r2, 0x40 movs r3, 0 bl sub_8072C74 ldr r1, _080F4688 adds r0, r5, r1 adds r0, r6 strb r7, [r0] _080F4676: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F467C: .4byte 0x00008829 _080F4680: .4byte gEmptyString_81E72B0 _080F4684: .4byte 0x000088e9 _080F4688: .4byte 0x00008937 thumb_func_end sub_80F45A0 thumb_func_start sub_80F468C sub_80F468C: @ 80F468C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r1, 24 lsrs r1, 24 mov r9, r1 ldr r1, _080F475C ldr r7, [r1] lsls r0, 16 asrs r0, 14 adds r1, r7, r0 ldr r2, _080F4760 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 25 cmp r0, 0 blt _080F46B2 b _080F47C4 _080F46B2: ldr r3, _080F4764 adds r0, r1, r3 ldrb r5, [r0] subs r2, 0x1 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 27 lsrs r6, r0, 27 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x16 movs r3, 0 bl sub_80F44B0 mov r3, r9 lsls r3, 2 mov r8, r3 mov r4, r8 add r4, r9 ldr r2, _080F4768 adds r1, r7, r2 adds r1, r4 strb r0, [r1] adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x2F movs r3, 0 bl sub_80F44B0 ldr r3, _080F476C adds r1, r7, r3 adds r1, r4 strb r0, [r1] adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x21 movs r3, 0 bl sub_80F44B0 ldr r2, _080F4770 adds r1, r7, r2 adds r1, r4 strb r0, [r1] adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x18 movs r3, 0 bl sub_80F44B0 ldr r3, _080F4774 adds r1, r7, r3 adds r1, r4 strb r0, [r1] adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x17 movs r3, 0 bl sub_80F44B0 ldr r2, _080F4778 adds r1, r7, r2 adds r1, r4 strb r0, [r1] ldr r3, _080F477C adds r0, r7, r3 mov r7, r9 adds r4, r0, r7 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x30 movs r3, 0 bl sub_80F44B0 cmp r0, 0xFF beq _080F4780 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x30 movs r3, 0 bl sub_80F44B0 movs r1, 0x1D bl __udivsi3 b _080F4782 .align 2, 0 _080F475C: .4byte gUnknown_083DFEC4 _080F4760: .4byte 0x0000893f _080F4764: .4byte 0x0000893d _080F4768: .4byte 0x00008ff0 _080F476C: .4byte 0x00008ff1 _080F4770: .4byte 0x00008ff2 _080F4774: .4byte 0x00008ff3 _080F4778: .4byte 0x00008ff4 _080F477C: .4byte 0x00008931 _080F4780: movs r0, 0x9 _080F4782: strb r0, [r4] adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x8 movs r3, 0 bl sub_80F44B0 ldr r1, _080F47B4 ldr r1, [r1] ldr r3, _080F47B8 adds r2, r1, r3 add r2, r9 strb r0, [r2] mov r2, r8 add r2, r9 ldr r7, _080F47BC adds r0, r2, r7 adds r0, r1, r0 lsls r2, 2 ldr r3, _080F47C0 adds r2, r3 adds r1, r2 bl sub_80F55AC b _080F480A .align 2, 0 _080F47B4: .4byte gUnknown_083DFEC4 _080F47B8: .4byte 0x00008934 _080F47BC: .4byte 0x00008ff0 _080F47C0: .4byte 0x00009004 _080F47C4: movs r3, 0 mov r0, r9 lsls r0, 2 mov r8, r0 adds r4, r7, 0 mov r2, r8 add r2, r9 ldr r1, _080F4818 adds r6, r4, r1 lsls r5, r2, 2 mov r9, r3 ldr r7, _080F481C mov r8, r7 movs r0, 0x9B mov r12, r0 _080F47E2: adds r0, r3, r2 adds r0, r6, r0 mov r1, r9 strb r1, [r0] lsls r0, r3, 2 adds r0, r5 adds r0, r4, r0 mov r7, r8 adds r1, r0, r7 mov r7, r12 strh r7, [r1] ldr r1, _080F4820 adds r0, r1 movs r1, 0x5B strh r1, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x4 bls _080F47E2 _080F480A: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F4818: .4byte 0x00008ff0 _080F481C: .4byte 0x00009004 _080F4820: .4byte 0x00009006 thumb_func_end sub_80F468C thumb_func_start sub_80F4824 sub_80F4824: @ 80F4824 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC lsls r1, 24 lsrs r1, 24 mov r9, r1 ldr r1, _080F48E0 ldr r7, [r1] lsls r0, 16 asrs r0, 14 adds r1, r7, r0 ldr r2, _080F48E4 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 25 cmp r0, 0 bge _080F48D0 ldr r6, _080F48E8 adds r0, r1, r6 ldrb r6, [r0] subs r2, 0x1 adds r0, r1, r2 ldrb r4, [r0] lsls r4, 27 lsrs r4, 27 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x41 movs r3, 0 bl sub_80F44B0 adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x1 movs r3, 0 bl sub_80F44B0 mov r8, r0 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl sub_80F44B0 adds r4, r0, 0 lsls r0, r5, 3 ldr r1, _080F48EC adds r0, r1 ldr r2, _080F48F0 lsls r1, r5, 2 adds r1, r2 ldrb r1, [r1] ldr r6, _080F48F4 adds r3, r7, r6 mov r6, r9 lsls r2, r6, 13 ldr r6, _080F48F8 adds r2, r6 adds r2, r7, r2 str r2, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] movs r2, 0x1 bl sub_800D334 adds r0, r5, 0 mov r1, r8 adds r2, r4, 0 bl species_and_otid_get_pal mov r2, r9 lsls r1, r2, 7 adds r1, r7, r1 bl LZ77UnCompWram mov r6, r9 lsls r1, r6, 1 ldr r2, _080F48FC adds r0, r7, r2 adds r0, r1 strh r5, [r0] _080F48D0: add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F48E0: .4byte gUnknown_083DFEC4 _080F48E4: .4byte 0x0000893f _080F48E8: .4byte 0x0000893d _080F48EC: .4byte gMonFrontPicTable _080F48F0: .4byte gMonFrontPicCoords _080F48F4: .4byte 0x000131e4 _080F48F8: .4byte 0x0000d1e4 _080F48FC: .4byte 0x0000d1d6 thumb_func_end sub_80F4824 thumb_func_start sub_80F4900 sub_80F4900: @ 80F4900 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r5, 24 lsrs r5, 24 lsls r4, 16 asrs r4, 16 adds r0, r4, 0 adds r1, r5, 0 bl sub_80F45A0 adds r0, r4, 0 adds r1, r5, 0 bl sub_80F468C adds r0, r4, 0 adds r1, r5, 0 bl sub_80F4824 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80F4900 thumb_func_start sub_80F492C sub_80F492C: @ 80F492C ldr r0, _080F493C ldr r0, [r0] ldr r1, _080F4940 adds r0, r1 movs r1, 0 strh r1, [r0] bx lr .align 2, 0 _080F493C: .4byte gUnknown_083DFEC4 _080F4940: .4byte 0x00008fe4 thumb_func_end sub_80F492C thumb_func_start sub_80F4944 sub_80F4944: @ 80F4944 push {r4-r7,lr} mov r7, r8 push {r7} mov r12, r0 movs r2, 0 ldr r1, _080F4978 ldr r5, [r1] ldr r3, _080F497C adds r0, r5, r3 ldrh r4, [r0] lsrs r3, r4, 1 mov r8, r1 cmp r4, r3 beq _080F499C adds r6, r5, 0 mov r0, r12 ldrb r5, [r0] ldr r7, _080F4980 _080F4968: lsls r0, r3, 2 adds r0, r6, r0 adds r0, r7 ldrb r0, [r0] cmp r5, r0 bls _080F4984 adds r4, r3, 0 b _080F498A .align 2, 0 _080F4978: .4byte gUnknown_083DFEC4 _080F497C: .4byte 0x00008fe4 _080F4980: .4byte 0x0000893c _080F4984: adds r0, r3, 0x1 lsls r0, 16 lsrs r2, r0, 16 _080F498A: subs r0, r4, r2 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r0, r2, r0 lsls r0, 16 lsrs r3, r0, 16 cmp r4, r3 bne _080F4968 _080F499C: mov r1, r8 ldr r2, [r1] ldr r1, _080F49EC adds r0, r2, r1 ldrh r4, [r0] lsls r6, r3, 2 cmp r4, r3 bls _080F49C6 ldr r0, _080F49F0 adds r5, r2, r0 _080F49B0: lsls r2, r4, 2 adds r2, r5, r2 subs r1, r4, 0x1 lsls r0, r1, 2 adds r0, r5, r0 ldr r0, [r0] str r0, [r2] lsls r1, 16 lsrs r4, r1, 16 cmp r4, r3 bhi _080F49B0 _080F49C6: mov r1, r8 ldr r2, [r1] ldr r3, _080F49F0 adds r0, r2, r3 adds r0, r6 mov r3, r12 ldr r1, [r3] str r1, [r0] ldr r0, _080F49EC adds r2, r0 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F49EC: .4byte 0x00008fe4 _080F49F0: .4byte 0x0000893c thumb_func_end sub_80F4944 thumb_func_start sub_80F49F4 sub_80F49F4: @ 80F49F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r3, _080F4A64 ldr r4, [r3] ldr r7, _080F4A68 adds r2, r4, r7 ldrh r1, [r2] ldr r0, _080F4A6C mov r12, r0 ands r0, r1 movs r1, 0x20 orrs r0, r1 strh r0, [r2] movs r5, 0x1 ldr r1, _080F4A70 adds r0, r4, r1 ldrh r3, [r0] cmp r5, r3 bcs _080F4A9E adds r6, r4, 0 ldr r1, _080F4A74 mov r8, r1 ldr r3, _080F4A78 mov r10, r3 mov r9, r0 _080F4A2C: lsls r0, r5, 2 adds r3, r6, r0 mov r0, r8 adds r2, r3, r0 subs r0, r5, 0x1 lsls r0, 2 adds r4, r6, r0 mov r0, r8 adds r1, r4, r0 ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 bne _080F4A7C adds r0, r4, r7 ldrh r0, [r0] lsls r0, 18 lsrs r0, 23 adds r3, r7 ldr r1, _080F4A78 ands r1, r0 lsls r1, 5 ldrh r2, [r3] mov r0, r12 ands r0, r2 orrs r0, r1 strh r0, [r3] adds r4, r5, 0x1 b _080F4A92 .align 2, 0 _080F4A64: .4byte gUnknown_083DFEC4 _080F4A68: .4byte 0x0000893e _080F4A6C: .4byte 0xffffc01f _080F4A70: .4byte 0x00008fe4 _080F4A74: .4byte 0x0000893c _080F4A78: .4byte 0x000001ff _080F4A7C: adds r4, r5, 0x1 adds r3, r7 adds r1, r4, 0 mov r0, r10 ands r1, r0 lsls r1, 5 ldrh r2, [r3] mov r0, r12 ands r0, r2 orrs r0, r1 strh r0, [r3] _080F4A92: lsls r0, r4, 16 lsrs r5, r0, 16 mov r1, r9 ldrh r1, [r1] cmp r5, r1 bcc _080F4A2C _080F4A9E: ldr r3, _080F4AC4 ldr r2, [r3] ldr r1, _080F4AC8 adds r0, r2, r1 movs r1, 0 strh r1, [r0] ldr r3, _080F4ACC adds r0, r2, r3 strh r1, [r0] subs r3, 0x2 adds r0, r2, r3 strh r1, [r0] ldr r1, _080F4AD0 adds r0, r2, r1 ldrh r0, [r0] cmp r0, 0x8 bhi _080F4AD4 subs r1, r0, 0x1 b _080F4AD6 .align 2, 0 _080F4AC4: .4byte gUnknown_083DFEC4 _080F4AC8: .4byte 0x0000876c _080F4ACC: .4byte 0x00008770 _080F4AD0: .4byte 0x00008fe4 _080F4AD4: movs r1, 0x7 _080F4AD6: ldr r3, _080F4B10 adds r0, r2, r3 strh r1, [r0] ldr r0, _080F4B14 ldr r2, [r0] ldr r1, _080F4B18 adds r0, r2, r1 ldrh r0, [r0] subs r0, 0x1 adds r3, 0x2 adds r1, r2, r3 strh r0, [r1] movs r1, 0 lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080F4AFA movs r1, 0x1 _080F4AFA: ldr r3, _080F4B1C adds r0, r2, r3 strb r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F4B10: .4byte 0x00008772 _080F4B14: .4byte gUnknown_083DFEC4 _080F4B18: .4byte 0x00008fe4 _080F4B1C: .4byte 0x000087c9 thumb_func_end sub_80F49F4 thumb_func_start sub_80F4B20 sub_80F4B20: @ 80F4B20 push {r4-r6,lr} ldr r0, _080F4B5C ldr r4, [r0] ldr r0, _080F4B60 adds r5, r4, r0 movs r1, 0 ldrsh r0, [r5, r1] movs r1, 0 bl sub_80F4900 movs r0, 0 bl sub_80F2E18 ldr r0, _080F4B64 adds r2, r4, r0 movs r1, 0 ldrsh r0, [r2, r1] cmp r0, 0x1 bne _080F4B6C ldr r2, _080F4B68 adds r0, r4, r2 movs r1, 0 strb r1, [r0] adds r2, 0x1 adds r0, r4, r2 strb r1, [r0] adds r2, 0x1 adds r0, r4, r2 strb r1, [r0] b _080F4BBE .align 2, 0 _080F4B5C: .4byte gUnknown_083DFEC4 _080F4B60: .4byte 0x000087dc _080F4B64: .4byte 0x000087da _080F4B68: .4byte 0x00008fe9 _080F4B6C: ldr r0, _080F4BC4 adds r1, r4, r0 movs r0, 0 strb r0, [r1] ldr r0, _080F4BC8 adds r1, r4, r0 movs r0, 0x1 strb r0, [r1] ldr r0, _080F4BCC adds r1, r4, r0 movs r0, 0x2 strb r0, [r1] ldrh r3, [r5] adds r0, r3, 0x1 lsls r0, 16 lsrs r5, r0, 16 asrs r0, 16 ldrh r6, [r2] movs r4, 0 ldrsh r1, [r2, r4] cmp r0, r1 blt _080F4B9A movs r5, 0 _080F4B9A: subs r0, r3, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r0, 0 bge _080F4BAA subs r0, r6, 0x1 lsls r0, 16 lsrs r4, r0, 16 _080F4BAA: lsls r0, r5, 16 asrs r0, 16 movs r1, 0x1 bl sub_80F4900 lsls r0, r4, 16 asrs r0, 16 movs r1, 0x2 bl sub_80F4900 _080F4BBE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F4BC4: .4byte 0x00008fe9 _080F4BC8: .4byte 0x00008fea _080F4BCC: .4byte 0x00008feb thumb_func_end sub_80F4B20 thumb_func_start sub_80F4BD0 sub_80F4BD0: @ 80F4BD0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r6, 0 movs r7, 0 ldr r0, _080F4CC4 ldr r2, [r0] ldr r3, _080F4CC8 adds r1, r2, r3 mov r9, r0 ldrb r1, [r1] cmp r7, r1 bcs _080F4C66 mov r10, r9 adds r4, r3, 0 adds r4, r2 mov r8, r4 _080F4BF6: movs r0, 0x64 muls r0, r6 ldr r1, _080F4CCC adds r0, r1 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _080F4C58 mov r0, r10 ldr r3, [r0] lsls r0, r7, 2 adds r3, r0 ldr r2, _080F4CD0 adds r1, r3, r2 movs r0, 0xE strb r0, [r1] ldr r4, _080F4CD4 adds r5, r3, r4 movs r0, 0x1F adds r2, r6, 0 ands r2, r0 ldrb r0, [r5] movs r4, 0x20 negs r4, r4 adds r1, r4, 0 ands r0, r1 orrs r0, r2 strb r0, [r5] adds r4, r7, 0x1 ldr r7, _080F4CD8 adds r0, r7, 0 adds r2, r4, 0 ands r2, r0 lsls r2, 5 ldrh r0, [r5] ldr r7, _080F4CDC adds r1, r7, 0 ands r0, r1 orrs r0, r2 strh r0, [r5] ldr r0, _080F4CE0 adds r3, r0 ldrb r0, [r3] movs r1, 0x40 orrs r0, r1 strb r0, [r3] lsls r4, 16 lsrs r7, r4, 16 _080F4C58: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 mov r1, r8 ldrb r1, [r1] cmp r6, r1 bcc _080F4BF6 _080F4C66: mov r2, r9 ldr r4, [r2] lsls r1, r7, 2 adds r1, r4, r1 ldr r3, _080F4CD0 adds r0, r1, r3 movs r5, 0 strb r5, [r0] ldr r0, _080F4CD4 adds r2, r1, r0 ldrb r3, [r2] movs r0, 0x20 negs r0, r0 ands r0, r3 strb r0, [r2] ldrh r3, [r2] ldr r0, _080F4CDC ands r0, r3 strh r0, [r2] ldr r2, _080F4CE0 adds r1, r2 ldrb r2, [r1] movs r0, 0x41 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r3, _080F4CE4 adds r0, r4, r3 strh r5, [r0] adds r1, r7, 0x1 ldr r7, _080F4CE8 adds r0, r4, r7 strh r1, [r0] bl sub_80F4B20 ldr r0, _080F4CEC adds r4, r0 movs r0, 0x1 strb r0, [r4] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F4CC4: .4byte gUnknown_083DFEC4 _080F4CC8: .4byte 0x00008828 _080F4CCC: .4byte 0x03004360 _080F4CD0: .4byte 0x0000893d _080F4CD4: .4byte 0x0000893e _080F4CD8: .4byte 0x000001ff _080F4CDC: .4byte 0xffffc01f _080F4CE0: .4byte 0x0000893f _080F4CE4: .4byte 0x000087dc _080F4CE8: .4byte 0x000087da _080F4CEC: .4byte 0x000087cb thumb_func_end sub_80F4BD0 thumb_func_start sub_80F4CF0 sub_80F4CF0: @ 80F4CF0 push {r4,lr} ldr r0, _080F4D1C ldr r4, [r0] ldr r1, _080F4D20 adds r0, r4, r1 ldrh r1, [r0] ldr r2, _080F4D24 adds r0, r4, r2 strh r1, [r0] bl sub_80F4B20 ldr r1, _080F4D28 adds r0, r4, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bne _080F4D30 ldr r0, _080F4D2C adds r1, r4, r0 movs r0, 0 b _080F4D36 .align 2, 0 _080F4D1C: .4byte gUnknown_083DFEC4 _080F4D20: .4byte 0x0000876e _080F4D24: .4byte 0x000087dc _080F4D28: .4byte 0x00008774 _080F4D2C: .4byte 0x000087cb _080F4D30: ldr r2, _080F4D40 adds r1, r4, r2 movs r0, 0x1 _080F4D36: strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080F4D40: .4byte 0x000087cb thumb_func_end sub_80F4CF0 thumb_func_start sub_80F4D44 sub_80F4D44: @ 80F4D44 push {r4,lr} ldr r0, _080F4D78 ldr r4, [r0] ldr r1, _080F4D7C adds r0, r4, r1 movs r1, 0 strb r1, [r0] ldr r2, _080F4D80 adds r0, r4, r2 strb r1, [r0] bl sub_80F492C ldr r0, _080F4D84 adds r4, r0 ldrb r0, [r4] cmp r0, 0 bne _080F4D70 _080F4D66: bl sub_80F4D88 lsls r0, 24 cmp r0, 0 bne _080F4D66 _080F4D70: pop {r4} pop {r0} bx r0 .align 2, 0 _080F4D78: .4byte gUnknown_083DFEC4 _080F4D7C: .4byte 0x00008fe6 _080F4D80: .4byte 0x00008fe7 _080F4D84: .4byte 0x00006dac thumb_func_end sub_80F4D44 thumb_func_start sub_80F4D88 sub_80F4D88: @ 80F4D88 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r6, _080F4E98 ldr r4, [r6] ldr r1, _080F4E9C adds r0, r4, r1 ldrb r3, [r0] cmp r3, 0xE bne _080F4DA4 b _080F4EB8 _080F4DA4: cmp r3, 0xF bne _080F4DAA b _080F4F60 _080F4DAA: movs r1, 0x80 lsls r1, 23 ldr r0, [sp] orrs r0, r1 str r0, [sp] movs r7, 0 mov r10, r6 ldr r2, _080F4E9C adds r6, r4, r2 ldr r3, _080F4EA0 adds r5, r4, r3 ldr r0, _080F4EA4 adds r0, r4 mov r9, r0 ldr r1, _080F4EA8 mov r8, r1 _080F4DCA: ldrb r0, [r6] lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 ldrb r2, [r5] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 add r1, r8 adds r0, r1 movs r1, 0xB bl PokemonGetEncryptedField cmp r0, 0 beq _080F4E60 ldrb r0, [r6] lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 ldrb r2, [r5] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 add r1, r8 adds r0, r1 movs r1, 0x2D bl PokemonGetEncryptedField cmp r0, 0 bne _080F4E60 ldrb r1, [r6] lsls r1, 8 ldr r2, _080F4EAC ldr r0, [sp] ands r0, r2 orrs r0, r1 str r0, [sp] ldrb r2, [r5] movs r1, 0x1F ands r2, r1 lsls r2, 16 ldr r1, _080F4EB0 ands r0, r1 orrs r0, r2 str r0, [sp] ldrb r0, [r6] lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 ldrb r2, [r5] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 add r1, r8 adds r0, r1 mov r2, r9 ldrb r1, [r2] bl PokemonGetEncryptedField lsls r0, 24 lsrs r0, 24 ldr r2, _080F4EB4 ldr r1, [sp] ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp bl sub_80F4944 _080F4E60: mov r3, r10 ldr r1, [r3] ldr r0, _080F4EA0 adds r2, r1, r0 ldrb r0, [r2] adds r0, 0x1 movs r4, 0 strb r0, [r2] movs r3, 0xFF lsls r0, 24 lsrs r0, 24 cmp r0, 0x1E bne _080F4E8C strb r4, [r2] ldr r2, _080F4E9C adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ands r0, r3 cmp r0, 0xE beq _080F4F64 _080F4E8C: adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0xE bls _080F4DCA b _080F4F64 .align 2, 0 _080F4E98: .4byte gUnknown_083DFEC4 _080F4E9C: .4byte 0x00008fe6 _080F4EA0: .4byte 0x00008fe7 _080F4EA4: .4byte 0x000087d8 _080F4EA8: .4byte 0x020300a4 _080F4EAC: .4byte 0xffff00ff _080F4EB0: .4byte 0xffe0ffff _080F4EB4: .4byte 0xffffff00 _080F4EB8: mov r2, sp ldrb r0, [r2, 0x3] movs r1, 0x40 orrs r0, r1 strb r0, [r2, 0x3] strb r3, [r2, 0x1] movs r7, 0 ldr r3, _080F4F44 adds r0, r4, r3 ldrb r0, [r0] cmp r7, r0 bcs _080F4F24 mov r5, sp mov r8, r6 adds r6, r4, r3 _080F4ED6: movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, _080F4F48 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _080F4F18 movs r0, 0x1F adds r2, r7, 0 ands r2, r0 ldrb r0, [r5, 0x2] movs r3, 0x20 negs r3, r3 adds r1, r3, 0 ands r0, r1 orrs r0, r2 strb r0, [r5, 0x2] mov r1, r8 ldr r0, [r1] ldr r2, _080F4F4C adds r0, r2 ldrb r1, [r0] adds r0, r4, 0 bl PokemonGetField strb r0, [r5] mov r0, sp bl sub_80F4944 _080F4F18: adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 ldrb r3, [r6] cmp r7, r3 bcc _080F4ED6 _080F4F24: bl sub_80F49F4 ldr r0, _080F4F50 ldr r1, [r0] ldr r2, _080F4F54 adds r0, r1, r2 ldrh r2, [r0] ldr r3, _080F4F58 adds r0, r1, r3 strh r2, [r0] ldr r0, _080F4F5C adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080F4F64 .align 2, 0 _080F4F44: .4byte 0x00008828 _080F4F48: .4byte 0x03004360 _080F4F4C: .4byte 0x000087d8 _080F4F50: .4byte gUnknown_083DFEC4 _080F4F54: .4byte 0x00008fe4 _080F4F58: .4byte 0x000087da _080F4F5C: .4byte 0x00008fe6 _080F4F60: movs r0, 0 b _080F4F66 _080F4F64: movs r0, 0x1 _080F4F66: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80F4D88 thumb_func_start sub_80F4F78 sub_80F4F78: @ 80F4F78 push {lr} ldr r0, _080F4FA4 ldr r1, [r0] ldr r2, _080F4FA8 adds r0, r1, r2 ldr r3, _080F4FAC adds r2, r1, r3 movs r3, 0 ldrsb r3, [r2, r3] lsls r2, r3, 2 adds r2, r3 lsls r2, 2 ldr r3, _080F4FB0 adds r2, r3 adds r1, r2 bl sub_80F53EC bl sub_80F5504 pop {r0} bx r0 .align 2, 0 _080F4FA4: .4byte gUnknown_083DFEC4 _080F4FA8: .4byte 0x00009040 _080F4FAC: .4byte 0x00008fe9 _080F4FB0: .4byte 0x00009004 thumb_func_end sub_80F4F78 thumb_func_start sub_80F4FB4 sub_80F4FB4: @ 80F4FB4 push {r4,lr} bl sub_80F5504 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80F170C lsls r0, 24 lsrs r0, 24 movs r1, 0 cmp r4, 0 bne _080F4FD2 cmp r0, 0 beq _080F4FD4 _080F4FD2: movs r1, 0x1 _080F4FD4: adds r0, r1, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80F4FB4 thumb_func_start sub_80F4FDC sub_80F4FDC: @ 80F4FDC push {lr} ldr r0, _080F5020 ldr r2, [r0] ldr r1, _080F5024 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 bne _080F4FFE ldr r3, _080F5028 adds r0, r2, r3 movs r3, 0 ldrsh r1, [r0, r3] ldr r3, _080F502C adds r0, r2, r3 ldrb r0, [r0] cmp r1, r0 beq _080F501A _080F4FFE: ldr r1, _080F5030 adds r0, r2, r1 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r3, _080F5034 adds r0, r3 adds r0, r2, r0 adds r3, 0x3C adds r1, r2, r3 bl sub_80F53EC _080F501A: pop {r0} bx r0 .align 2, 0 _080F5020: .4byte gUnknown_083DFEC4 _080F5024: .4byte 0x000076aa _080F5028: .4byte 0x000087dc _080F502C: .4byte 0x00008828 _080F5030: .4byte 0x00008fe9 _080F5034: .4byte 0x00009004 thumb_func_end sub_80F4FDC thumb_func_start sub_80F5038 sub_80F5038: @ 80F5038 push {r4,lr} bl sub_80F5504 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80F173C lsls r0, 24 lsrs r0, 24 movs r1, 0 cmp r4, 0 bne _080F5056 cmp r0, 0 beq _080F5058 _080F5056: movs r1, 0x1 _080F5058: adds r0, r1, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80F5038 thumb_func_start sub_80F5060 sub_80F5060: @ 80F5060 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0 beq _080F507C ldr r0, _080F5074 ldr r0, [r0] ldr r1, _080F5078 adds r0, r1 b _080F5084 .align 2, 0 _080F5074: .4byte gUnknown_083DFEC4 _080F5078: .4byte 0x00008feb _080F507C: ldr r0, _080F50FC ldr r0, [r0] ldr r2, _080F5100 adds r0, r2 _080F5084: ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _080F50FC ldr r4, [r0] ldr r3, _080F5104 adds r5, r4, r3 movs r1, 0 ldrsb r1, [r5, r1] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r2, _080F5108 adds r0, r2 adds r0, r4, r0 lsls r1, r6, 2 adds r1, r6 lsls r1, 2 adds r1, r2 adds r1, r4, r1 bl sub_80F53EC ldr r0, _080F510C adds r3, r4, r0 movs r1, 0 ldrsh r0, [r3, r1] lsls r0, 2 adds r0, r4, r0 ldr r2, _080F5110 adds r0, r2 ldrb r0, [r0] lsls r0, 25 lsrs r0, 31 mov r12, r0 cmp r7, 0 beq _080F5158 ldr r7, _080F5100 adds r1, r4, r7 ldrb r0, [r1] adds r7, 0x1 adds r2, r4, r7 strb r0, [r2] ldrb r0, [r5] strb r0, [r1] strb r6, [r5] ldrb r1, [r2] ldr r2, _080F5114 adds r0, r4, r2 strb r1, [r0] adds r5, r4, 0 ldrh r1, [r3] movs r7, 0 ldrsh r0, [r3, r7] cmp r0, 0 beq _080F5118 subs r2, r1, 0x1 b _080F5120 .align 2, 0 _080F50FC: .4byte gUnknown_083DFEC4 _080F5100: .4byte 0x00008fea _080F5104: .4byte 0x00008fe9 _080F5108: .4byte 0x00009004 _080F510C: .4byte 0x000087dc _080F5110: .4byte 0x0000893f _080F5114: .4byte 0x00008fec _080F5118: ldr r1, _080F513C adds r0, r4, r1 ldrh r0, [r0] subs r2, r0, 0x1 _080F5120: ldr r1, _080F5140 adds r0, r5, r1 strh r2, [r0] ldr r2, _080F5144 ldr r3, [r2] adds r1, r3, r1 ldrh r4, [r1] movs r5, 0 ldrsh r0, [r1, r5] cmp r0, 0 beq _080F5148 subs r1, r4, 0x1 b _080F51CE .align 2, 0 _080F513C: .4byte 0x000087da _080F5140: .4byte 0x000087dc _080F5144: .4byte gUnknown_083DFEC4 _080F5148: ldr r7, _080F5154 adds r0, r3, r7 ldrh r0, [r0] subs r1, r0, 0x1 b _080F51CE .align 2, 0 _080F5154: .4byte 0x000087da _080F5158: ldr r7, _080F518C adds r1, r4, r7 ldrb r0, [r1] subs r7, 0x1 adds r2, r4, r7 strb r0, [r2] ldrb r0, [r5] strb r0, [r1] strb r6, [r5] ldrb r1, [r2] ldr r2, _080F5190 adds r0, r4, r2 strb r1, [r0] adds r2, r4, 0 movs r4, 0 ldrsh r1, [r3, r4] ldr r5, _080F5194 adds r0, r2, r5 movs r7, 0 ldrsh r0, [r0, r7] subs r0, 0x1 cmp r1, r0 bge _080F5198 ldrh r0, [r3] adds r3, r0, 0x1 b _080F519A .align 2, 0 _080F518C: .4byte 0x00008feb _080F5190: .4byte 0x00008fec _080F5194: .4byte 0x000087da _080F5198: movs r3, 0 _080F519A: ldr r1, _080F51C0 adds r0, r2, r1 strh r3, [r0] ldr r2, _080F51C4 ldr r3, [r2] adds r4, r3, r1 movs r0, 0 ldrsh r1, [r4, r0] ldr r5, _080F51C8 adds r0, r3, r5 movs r7, 0 ldrsh r0, [r0, r7] subs r0, 0x1 cmp r1, r0 bge _080F51CC ldrh r0, [r4] adds r1, r0, 0x1 b _080F51CE .align 2, 0 _080F51C0: .4byte 0x000087dc _080F51C4: .4byte gUnknown_083DFEC4 _080F51C8: .4byte 0x000087da _080F51CC: movs r1, 0 _080F51CE: ldr r4, _080F51FC adds r0, r3, r4 strh r1, [r0] ldr r1, [r2] ldr r5, _080F5200 adds r0, r1, r5 movs r7, 0 ldrsh r0, [r0, r7] lsls r0, 2 adds r0, r1, r0 ldr r3, _080F5204 adds r0, r3 ldrb r0, [r0] lsls r0, 25 lsrs r0, 31 mov r4, r12 cmp r4, 0 bne _080F520C adds r5, 0x4 adds r1, r5 ldr r0, _080F5208 b _080F5226 .align 2, 0 _080F51FC: .4byte 0x00008fee _080F5200: .4byte 0x000087dc _080F5204: .4byte 0x0000893f _080F5208: .4byte sub_80F5264 _080F520C: cmp r0, 0 bne _080F5220 ldr r7, _080F5218 adds r1, r7 ldr r0, _080F521C b _080F5226 .align 2, 0 _080F5218: .4byte 0x000087e0 _080F521C: .4byte sub_80F52F8 _080F5220: ldr r0, _080F5238 adds r1, r0 ldr r0, _080F523C _080F5226: str r0, [r1] ldr r0, [r2] ldr r1, _080F5240 adds r0, r1 movs r1, 0 strb r1, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F5238: .4byte 0x000087e0 _080F523C: .4byte sub_80F5364 _080F5240: .4byte 0x000087de thumb_func_end sub_80F5060 thumb_func_start gpu_sync_bg_show gpu_sync_bg_show: @ 80F5244 push {lr} ldr r0, _080F525C ldr r0, [r0] ldr r1, _080F5260 adds r0, r1 ldr r0, [r0] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080F525C: .4byte gUnknown_083DFEC4 _080F5260: .4byte 0x000087e0 thumb_func_end gpu_sync_bg_show thumb_func_start sub_80F5264 sub_80F5264: @ 80F5264 push {r4,r5,lr} ldr r0, _080F5280 ldr r0, [r0] ldr r1, _080F5284 adds r5, r0, r1 ldrb r1, [r5] cmp r1, 0x1 beq _080F52AA cmp r1, 0x1 bgt _080F5288 cmp r1, 0 beq _080F528E b _080F52F0 .align 2, 0 _080F5280: .4byte gUnknown_083DFEC4 _080F5284: .4byte 0x000087de _080F5288: cmp r1, 0x2 beq _080F52EC b _080F52F0 _080F528E: ldr r2, _080F52D8 adds r4, r0, r2 ldrb r0, [r4] bl sub_80F2E18 movs r0, 0 ldrsb r0, [r4, r0] lsls r0, 16 lsrs r0, 16 bl sub_80F01E0 ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] _080F52AA: bl sub_80F4FB4 lsls r0, 24 cmp r0, 0 bne _080F52F0 ldr r0, _080F52DC ldr r4, [r0] ldr r1, _080F52E0 adds r0, r4, r1 movs r2, 0 ldrsh r0, [r0, r2] ldr r2, _080F52E4 adds r1, r4, r2 ldrb r1, [r1] bl sub_80F4900 ldr r0, _080F52E8 adds r4, r0 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _080F52F0 .align 2, 0 _080F52D8: .4byte 0x00008fe9 _080F52DC: .4byte gUnknown_083DFEC4 _080F52E0: .4byte 0x00008fee _080F52E4: .4byte 0x00008fec _080F52E8: .4byte 0x000087de _080F52EC: movs r0, 0 b _080F52F2 _080F52F0: movs r0, 0x1 _080F52F2: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80F5264 thumb_func_start sub_80F52F8 sub_80F52F8: @ 80F52F8 push {r4,r5,lr} ldr r0, _080F5310 ldr r4, [r0] ldr r0, _080F5314 adds r5, r4, r0 ldrb r0, [r5] cmp r0, 0 beq _080F5318 cmp r0, 0x1 beq _080F5358 b _080F535C .align 2, 0 _080F5310: .4byte gUnknown_083DFEC4 _080F5314: .4byte 0x000087de _080F5318: bl sub_80F5038 lsls r0, 24 cmp r0, 0 bne _080F535C ldr r1, _080F5350 adds r0, r4, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r0, 16 bl sub_80F01E0 ldr r2, _080F5354 adds r0, r4, r2 movs r1, 0 ldrsh r0, [r0, r1] subs r2, 0x2 adds r1, r4, r2 ldrb r1, [r1] bl sub_80F4900 ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _080F535C .align 2, 0 _080F5350: .4byte 0x00008fe9 _080F5354: .4byte 0x00008fee _080F5358: movs r0, 0 b _080F535E _080F535C: movs r0, 0x1 _080F535E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80F52F8 thumb_func_start sub_80F5364 sub_80F5364: @ 80F5364 push {r4,r5,lr} ldr r0, _080F5380 ldr r4, [r0] ldr r0, _080F5384 adds r5, r4, r0 ldrb r0, [r5] cmp r0, 0x1 beq _080F53B8 cmp r0, 0x1 bgt _080F5388 cmp r0, 0 beq _080F538E b _080F53E4 .align 2, 0 _080F5380: .4byte gUnknown_083DFEC4 _080F5384: .4byte 0x000087de _080F5388: cmp r0, 0x2 beq _080F53CA b _080F53E4 _080F538E: bl sub_80F5504 bl sub_80F173C lsls r0, 24 cmp r0, 0 bne _080F53E4 ldr r1, _080F53B4 adds r4, r1 ldrb r0, [r4] bl sub_80F2E18 movs r0, 0 ldrsb r0, [r4, r0] lsls r0, 16 lsrs r0, 16 bl sub_80F01E0 b _080F53C2 .align 2, 0 _080F53B4: .4byte 0x00008fe9 _080F53B8: bl sub_80F4FB4 lsls r0, 24 cmp r0, 0 bne _080F53E4 _080F53C2: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _080F53E4 _080F53CA: ldr r2, _080F53E0 adds r0, r4, r2 movs r1, 0 ldrsh r0, [r0, r1] subs r2, 0x2 adds r1, r4, r2 ldrb r1, [r1] bl sub_80F4900 movs r0, 0 b _080F53E6 .align 2, 0 _080F53E0: .4byte 0x00008fee _080F53E4: movs r0, 0x1 _080F53E6: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80F5364 thumb_func_start sub_80F53EC sub_80F53EC: @ 80F53EC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC str r0, [sp] mov r9, r1 movs r7, 0 ldr r0, _080F54F4 ldr r0, [r0] str r0, [sp, 0x4] _080F5404: lsls r4, r7, 2 ldr r1, [sp] adds r0, r4, r1 ldrh r1, [r0] lsls r5, r1, 8 mov r2, r9 adds r0, r4, r2 ldrh r0, [r0] subs r0, r1 lsls r0, 8 movs r1, 0xA bl __divsi3 adds r6, r0, 0 movs r3, 0 adds r7, 0x1 mov r10, r7 mov r8, r4 _080F5428: lsls r0, r3, 2 adds r0, r3 lsls r0, 2 add r0, r8 ldr r7, [sp, 0x4] adds r0, r7, r0 asrs r2, r5, 8 asrs r1, r5, 7 movs r7, 0x1 ands r1, r7 adds r2, r1 ldr r1, _080F54F8 adds r0, r1 strh r2, [r0] adds r5, r6 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x8 bls _080F5428 ldr r2, _080F54F4 ldr r1, [r2] lsls r0, r3, 2 adds r0, r3 lsls r0, 2 adds r0, r4, r0 adds r1, r0 mov r3, r9 adds r2, r4, r3 ldrh r0, [r2] ldr r7, _080F54F8 adds r1, r7 strh r0, [r1] ldr r1, [sp] adds r0, r4, r1 ldrh r1, [r0, 0x2] lsls r5, r1, 8 ldrh r0, [r2, 0x2] subs r0, r1 lsls r0, 8 movs r1, 0xA bl __divsi3 adds r6, r0, 0 movs r3, 0 ldr r0, _080F54F4 ldr r0, [r0] mov r12, r0 str r4, [sp, 0x8] movs r2, 0x1 mov r8, r2 _080F548E: lsls r0, r3, 2 adds r0, r3 lsls r0, 2 ldr r7, [sp, 0x8] adds r0, r7, r0 add r0, r12 asrs r2, r5, 8 asrs r1, r5, 7 mov r7, r8 ands r1, r7 adds r2, r1 ldr r1, _080F54FC adds r0, r1 strh r2, [r0] adds r5, r6 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x8 bls _080F548E ldr r7, _080F54F4 ldr r2, [r7] lsls r0, r3, 2 adds r0, r3 lsls r0, 2 adds r0, r4, r0 adds r0, r2, r0 mov r3, r9 adds r1, r4, r3 ldrh r1, [r1, 0x2] ldr r7, _080F54FC adds r0, r7 strh r1, [r0] mov r1, r10 lsls r0, r1, 16 lsrs r7, r0, 16 cmp r7, 0x4 bls _080F5404 ldr r3, _080F5500 adds r1, r2, r3 movs r0, 0 strh r0, [r1] add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F54F4: .4byte gUnknown_083DFEC4 _080F54F8: .4byte 0x00009054 _080F54FC: .4byte 0x00009056 _080F5500: .4byte 0x00009342 thumb_func_end sub_80F53EC thumb_func_start sub_80F5504 sub_80F5504: @ 80F5504 push {r4,lr} ldr r0, _080F551C ldr r2, [r0] ldr r0, _080F5520 adds r4, r2, r0 ldrh r0, [r4] adds r1, r0, 0 cmp r1, 0x9 bls _080F5524 movs r0, 0 b _080F5544 .align 2, 0 _080F551C: .4byte gUnknown_083DFEC4 _080F5520: .4byte 0x00009342 _080F5524: adds r0, 0x1 strh r0, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r1, _080F554C adds r0, r1 adds r0, r2, r0 bl sub_80F556C ldrh r1, [r4] movs r0, 0xA eors r1, r0 negs r0, r1 orrs r0, r1 lsrs r0, 31 _080F5544: pop {r4} pop {r1} bx r1 .align 2, 0 _080F554C: .4byte 0x00009054 thumb_func_end sub_80F5504 thumb_func_start sub_80F5550 sub_80F5550: @ 80F5550 push {lr} bl sub_80F53EC pop {r0} bx r0 thumb_func_end sub_80F5550 thumb_func_start sub_80F555C sub_80F555C: @ 80F555C push {lr} bl sub_80F5504 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80F555C thumb_func_start sub_80F556C sub_80F556C: @ 80F556C push {r4,r5,lr} adds r4, r0, 0 movs r2, 0 ldr r5, _080F55A0 ldr r0, [r5] ldr r1, _080F55A4 adds r3, r0, r1 _080F557A: lsls r0, r2, 2 adds r1, r3, r0 adds r0, r4 ldr r0, [r0] str r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x4 bls _080F557A ldr r0, [r5] ldr r1, _080F55A8 adds r0, r1 movs r1, 0x1 strb r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F55A0: .4byte gUnknown_083DFEC4 _080F55A4: .4byte 0x0000911c _080F55A8: .4byte 0x00009344 thumb_func_end sub_80F556C thumb_func_start sub_80F55AC sub_80F55AC: @ 80F55AC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 mov r8, r1 ldr r1, _080F5674 ldrb r0, [r6] adds r0, r1 ldrb r2, [r0] adds r6, 0x1 movs r0, 0x9B mov r3, r8 strh r0, [r3] movs r0, 0x5B subs r0, r2 strh r0, [r3, 0x2] movs r7, 0x40 movs r0, 0 mov r12, r0 movs r2, 0x1 mov r9, r2 ldr r3, _080F5678 mov r10, r3 _080F55DE: adds r0, r7, 0 adds r0, 0x33 lsls r0, 24 lsrs r7, r0, 24 mov r1, r12 lsls r0, r1, 24 movs r2, 0xFF lsls r2, 24 adds r0, r2 lsrs r3, r0, 24 mov r12, r3 cmp r0, 0 bge _080F55FC movs r0, 0x4 mov r12, r0 _080F55FC: mov r1, r12 lsls r0, r1, 24 asrs r4, r0, 24 cmp r4, 0x2 bne _080F560C adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _080F560C: ldrb r0, [r6] ldr r2, _080F5674 adds r0, r2 ldrb r2, [r0] adds r6, 0x1 lsls r0, r4, 2 mov r1, r8 adds r3, r0, r1 adds r0, r7, 0 adds r0, 0x40 lsls r0, 1 add r0, r10 movs r1, 0 ldrsh r0, [r0, r1] muls r0, r2 asrs r5, r0, 8 adds r0, r5, 0 adds r0, 0x9B strh r0, [r3] lsls r0, r7, 1 add r0, r10 movs r1, 0 ldrsh r0, [r0, r1] adds r1, r2, 0 muls r1, r0 asrs r1, 8 movs r0, 0x5B subs r0, r1 strh r0, [r3, 0x2] cmp r4, 0x2 bgt _080F5658 cmp r2, 0x20 bne _080F5652 cmp r4, 0x2 beq _080F5658 _080F5652: adds r0, r5, 0 adds r0, 0x9C strh r0, [r3] _080F5658: mov r0, r9 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r9, r0 cmp r0, 0x4 bls _080F55DE pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F5674: .4byte gUnknown_083E4890 _080F5678: .4byte gSineTable thumb_func_end sub_80F55AC thumb_func_start sub_80F567C sub_80F567C: @ 80F567C push {lr} bl sub_80F55AC pop {r0} bx r0 thumb_func_end sub_80F567C thumb_func_start sub_80F5688 sub_80F5688: @ 80F5688 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 adds r6, r0, 0 adds r5, r1, 0 str r2, [sp] ldr r7, [sp, 0x34] lsls r3, 24 lsrs r3, 24 mov r9, r3 movs r0, 0 str r0, [sp, 0x8] ldrh r0, [r5, 0x2] ldrh r1, [r2, 0x2] cmp r0, r1 bcs _080F56D0 adds r2, r0, 0 str r2, [sp, 0x4] ldr r3, [sp] ldrh r0, [r3, 0x2] ldrh r1, [r5] lsls r4, r1, 10 ldrh r2, [r3] mov r10, r2 ldr r3, [sp, 0x4] subs r0, r3 lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r0, 0 beq _080F56FC subs r0, r2, r1 b _080F56F2 _080F56D0: ldrh r0, [r5, 0x2] ldr r1, [sp] ldrh r1, [r1, 0x2] str r1, [sp, 0x4] ldr r2, [sp] ldrh r1, [r2] lsls r4, r1, 10 ldrh r3, [r5] mov r10, r3 ldr r2, [sp, 0x4] subs r0, r2 lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r0, 0 beq _080F56FC subs r0, r3, r1 _080F56F2: lsls r0, 10 mov r1, r8 bl __divsi3 str r0, [sp, 0x8] _080F56FC: mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r7, 0 bne _080F5746 ldr r0, [sp, 0x4] subs r0, 0x38 lsls r0, 2 adds r6, r0 movs r5, 0 mov r3, r9 lsls r3, 1 mov r12, r3 mov r0, r10 add r0, r9 str r0, [sp, 0xC] cmp r7, r8 bcs _080F57D4 movs r7, 0x1 _080F5726: adds r2, r3, r6 asrs r1, r4, 10 asrs r0, r4, 9 ands r0, r7 adds r1, r0 add r1, r9 strh r1, [r2] ldr r1, [sp, 0x8] adds r4, r1 adds r6, 0x4 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r8 bcc _080F5726 b _080F57D4 _080F5746: ldr r2, [sp, 0x8] cmp r2, 0 ble _080F57E4 ldr r0, [sp, 0x4] subs r0, 0x38 lsls r0, 2 adds r7, r0 movs r5, 0 mov r3, r9 lsls r3, 1 mov r12, r3 mov r0, r10 add r0, r9 str r0, [sp, 0xC] cmp r5, r8 bcs _080F5798 ldr r0, _080F57D8 cmp r4, r0 bgt _080F5798 mov r1, r12 str r1, [sp, 0x10] mov r10, r0 _080F5772: ldr r3, [sp, 0x10] adds r2, r3, r7 asrs r1, r4, 10 asrs r0, r4, 9 movs r3, 0x1 ands r0, r3 adds r1, r0 add r1, r9 strh r1, [r2] ldr r0, [sp, 0x8] adds r4, r0 adds r7, 0x4 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r8 bcs _080F5798 cmp r4, r10 ble _080F5772 _080F5798: ldr r1, _080F57DC ldr r0, [r1] ldr r2, [sp, 0x4] adds r1, r2, r5 ldr r3, _080F57E0 adds r0, r3 strh r1, [r0] ldrh r0, [r0] subs r0, 0x38 lsls r0, 2 adds r6, r0 cmp r5, r8 bcs _080F57D4 mov r3, r12 movs r7, 0x1 _080F57B6: adds r2, r3, r6 asrs r1, r4, 10 asrs r0, r4, 9 ands r0, r7 adds r1, r0 add r1, r9 strh r1, [r2] ldr r0, [sp, 0x8] adds r4, r0 adds r6, 0x4 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r8 bcc _080F57B6 _080F57D4: subs r0, r6, 0x4 b _080F58C4 .align 2, 0 _080F57D8: .4byte 0x00026bff _080F57DC: .4byte gUnknown_083DFEC4 _080F57E0: .4byte 0x00009340 _080F57E4: ldr r1, [sp, 0x8] cmp r1, 0 bge _080F5890 ldr r0, [sp, 0x4] subs r0, 0x38 lsls r0, 2 adds r6, r0 movs r5, 0 mov r2, r9 lsls r2, 1 mov r12, r2 mov r3, r10 add r3, r9 str r3, [sp, 0xC] cmp r5, r8 bcs _080F5842 adds r3, r2, r6 asrs r1, r4, 10 asrs r0, r4, 9 movs r2, 0x1 ands r0, r2 adds r1, r0 add r1, r9 strh r1, [r3] b _080F5838 _080F5816: ldr r0, [sp, 0x8] adds r4, r0 adds r6, 0x4 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r8 bcs _080F5842 mov r1, r12 adds r3, r1, r6 asrs r2, r4, 10 asrs r0, r4, 9 movs r1, 0x1 ands r0, r1 adds r2, r0 add r2, r9 strh r2, [r3] _080F5838: ldr r0, _080F5884 cmp r4, r0 bgt _080F5816 movs r0, 0x9B strh r0, [r3] _080F5842: ldr r2, _080F5888 ldr r0, [r2] ldr r3, [sp, 0x4] adds r1, r3, r5 ldr r2, _080F588C adds r0, r2 strh r1, [r0] ldrh r0, [r0] subs r0, 0x38 lsls r0, 2 adds r7, r0 cmp r5, r8 bcs _080F587E mov r3, r12 movs r6, 0x1 _080F5860: adds r2, r3, r7 asrs r1, r4, 10 asrs r0, r4, 9 ands r0, r6 adds r1, r0 add r1, r9 strh r1, [r2] ldr r0, [sp, 0x8] adds r4, r0 adds r7, 0x4 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r8 bcc _080F5860 _080F587E: subs r0, r7, 0x4 b _080F58C4 .align 2, 0 _080F5884: .4byte 0x00026bff _080F5888: .4byte gUnknown_083DFEC4 _080F588C: .4byte 0x00009340 _080F5890: ldr r0, _080F58BC ldr r0, [r0] ldr r1, _080F58C0 adds r0, r1 mov r2, sp ldrh r2, [r2, 0x4] strh r2, [r0] ldr r0, [sp, 0x4] subs r0, 0x38 lsls r0, 2 adds r6, r0 adds r7, r0 ldrh r0, [r5] adds r0, 0x1 strh r0, [r6, 0x2] ldr r3, [sp] ldrh r0, [r3] strh r0, [r7] movs r0, 0x9B strh r0, [r7, 0x2] b _080F58CC .align 2, 0 _080F58BC: .4byte gUnknown_083DFEC4 _080F58C0: .4byte 0x00009340 _080F58C4: add r0, r12 mov r1, sp ldrh r1, [r1, 0xC] strh r1, [r0] _080F58CC: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80F5688 thumb_func_start sub_80F58DC sub_80F58DC: @ 80F58DC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r5, r0, 0 ldrh r0, [r5, 0x2] ldrh r1, [r5, 0x6] cmp r0, r1 bcs _080F5914 adds r4, r0, 0 mov r8, r4 ldr r0, _080F590C ldr r0, [r0] ldr r1, _080F5910 adds r0, r1 adds r4, r5, 0x4 movs r1, 0 str r1, [sp] adds r1, r5, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_80F5688 b _080F5930 .align 2, 0 _080F590C: .4byte gUnknown_083DFEC4 _080F5910: .4byte 0x00009130 _080F5914: ldrh r4, [r5, 0x6] mov r8, r4 ldr r0, _080F5A08 ldr r0, [r0] ldr r1, _080F5A0C adds r0, r1 adds r4, r5, 0x4 movs r1, 0 str r1, [sp] adds r1, r4, 0 adds r2, r5, 0 movs r3, 0 bl sub_80F5688 _080F5930: adds r1, r4, 0 ldr r0, _080F5A08 ldr r6, [r0] ldr r0, _080F5A0C adds r4, r6, r0 adds r7, r5, 0 adds r7, 0x8 movs r0, 0 str r0, [sp] adds r0, r4, 0 adds r2, r7, 0 movs r3, 0x1 bl sub_80F5688 movs r3, 0 ldrh r0, [r5, 0xA] ldrh r1, [r5, 0xE] cmp r0, r1 bhi _080F5958 movs r3, 0x1 _080F5958: adds r2, r5, 0 adds r2, 0xC ldr r1, _080F5A10 adds r0, r6, r1 str r0, [sp] adds r0, r4, 0 adds r1, r7, 0 bl sub_80F5688 movs r2, 0x38 cmp r2, r8 bcs _080F5990 adds r7, r4, 0 movs r3, 0 ldr r0, _080F5A14 adds r4, r6, r0 _080F5978: adds r0, r2, 0 subs r0, 0x38 lsls r0, 2 adds r1, r7, r0 strh r3, [r1] adds r0, r4, r0 strh r3, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r8 bcc _080F5978 _080F5990: ldrh r2, [r5, 0x2] ldr r0, _080F5A08 ldr r3, [r0] ldr r4, _080F5A18 adds r1, r3, r4 adds r6, r0, 0 ldrh r0, [r1] cmp r2, r0 bhi _080F59BE ldr r4, _080F5A0C adds r3, r4 movs r4, 0x9B _080F59A8: adds r0, r2, 0 subs r0, 0x38 lsls r0, 2 adds r0, r3, r0 strh r4, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldrh r0, [r1] cmp r2, r0 bls _080F59A8 _080F59BE: ldr r4, [r6] ldr r1, _080F5A18 adds r0, r4, r1 ldrh r0, [r0] ldrh r1, [r5, 0xA] cmp r0, r1 bcs _080F59CE adds r0, r1, 0 _080F59CE: adds r0, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x79 bhi _080F59FA ldr r0, _080F5A0C adds r5, r4, r0 movs r3, 0 ldr r1, _080F5A14 adds r4, r1 _080F59E2: adds r0, r2, 0 subs r0, 0x38 lsls r0, 2 adds r1, r5, r0 strh r3, [r1] adds r0, r4, r0 strh r3, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x79 bls _080F59E2 _080F59FA: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F5A08: .4byte gUnknown_083DFEC4 _080F5A0C: .4byte 0x00009130 _080F5A10: .4byte 0x00009238 _080F5A14: .4byte 0x00009132 _080F5A18: .4byte 0x00009340 thumb_func_end sub_80F58DC thumb_func_start sub_80F5A1C sub_80F5A1C: @ 80F5A1C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r5, r0, 0 ldrh r0, [r5, 0x2] ldrh r1, [r5, 0x12] cmp r0, r1 bcs _080F5A54 adds r7, r0, 0 ldr r0, _080F5A4C ldr r0, [r0] ldr r2, _080F5A50 adds r0, r2 adds r4, r5, 0 adds r4, 0x10 movs r1, 0 str r1, [sp] adds r1, r5, 0 adds r2, r4, 0 movs r3, 0 bl sub_80F5688 b _080F5A70 .align 2, 0 _080F5A4C: .4byte gUnknown_083DFEC4 _080F5A50: .4byte 0x00009238 _080F5A54: ldrh r7, [r5, 0x12] ldr r0, _080F5B28 ldr r0, [r0] ldr r4, _080F5B2C adds r0, r4 adds r4, r5, 0 adds r4, 0x10 movs r1, 0 str r1, [sp] adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x1 bl sub_80F5688 _080F5A70: adds r1, r4, 0 ldr r0, _080F5B28 ldr r0, [r0] mov r8, r0 ldr r4, _080F5B2C add r4, r8 adds r2, r5, 0 adds r2, 0xC movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r3, 0 bl sub_80F5688 movs r2, 0x38 cmp r2, r7 bcs _080F5AB2 adds r6, r4, 0 movs r3, 0 ldr r4, _080F5B30 add r4, r8 _080F5A9A: adds r0, r2, 0 subs r0, 0x38 lsls r0, 2 adds r1, r6, r0 strh r3, [r1] adds r0, r4, r0 strh r3, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r7 bcc _080F5A9A _080F5AB2: ldrh r2, [r5, 0x2] ldr r0, _080F5B28 ldr r3, [r0] ldr r4, _080F5B34 adds r1, r3, r4 adds r6, r0, 0 ldrh r0, [r1] cmp r2, r0 bhi _080F5AE0 ldr r4, _080F5B30 adds r3, r4 movs r4, 0x9B _080F5ACA: adds r0, r2, 0 subs r0, 0x38 lsls r0, 2 adds r0, r3, r0 strh r4, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldrh r0, [r1] cmp r2, r0 bls _080F5ACA _080F5AE0: ldrh r0, [r5, 0xE] adds r1, r0, 0x1 ldr r3, [r6] ldr r2, _080F5B34 adds r0, r3, r2 ldrh r0, [r0] cmp r0, r1 bge _080F5AF2 adds r0, r1, 0 _080F5AF2: lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x79 bhi _080F5B1C ldr r4, _080F5B2C adds r5, r3, r4 movs r4, 0 ldr r0, _080F5B30 adds r3, r0 _080F5B04: adds r0, r2, 0 subs r0, 0x38 lsls r0, 2 adds r1, r5, r0 strh r4, [r1] adds r0, r3, r0 strh r4, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x79 bls _080F5B04 _080F5B1C: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F5B28: .4byte gUnknown_083DFEC4 _080F5B2C: .4byte 0x00009238 _080F5B30: .4byte 0x0000923a _080F5B34: .4byte 0x00009340 thumb_func_end sub_80F5A1C thumb_func_start sub_80F5B38 sub_80F5B38: @ 80F5B38 ldr r0, _080F5B48 ldr r0, [r0] ldr r1, _080F5B4C adds r0, r1 movs r1, 0 strb r1, [r0] bx lr .align 2, 0 _080F5B48: .4byte gUnknown_083DFEC4 _080F5B4C: .4byte 0x00009345 thumb_func_end sub_80F5B38 thumb_func_start sub_80F5B50 sub_80F5B50: @ 80F5B50 push {r4,r5,lr} sub sp, 0xC ldr r0, _080F5B68 ldr r0, [r0] ldr r1, _080F5B6C adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 beq _080F5B70 cmp r0, 0x1 beq _080F5BB4 b _080F5BCC .align 2, 0 _080F5B68: .4byte gUnknown_083DFEC4 _080F5B6C: .4byte 0x00009345 _080F5B70: bl dp12_8087EA4 ldr r0, _080F5BA8 movs r2, 0xEF movs r3, 0xF4 lsls r3, 3 adds r1, r0, r3 adds r0, 0x20 movs r3, 0xF _080F5B82: strh r2, [r0] strh r2, [r0, 0x2] strh r2, [r1] strh r2, [r1, 0x2] adds r1, 0x4 adds r0, 0x4 subs r3, 0x1 cmp r3, 0 bge _080F5B82 ldr r0, _080F5BAC ldr r1, [r0] ldr r5, _080F5BB0 adds r1, r5 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0x1 b _080F5BCE .align 2, 0 _080F5BA8: .4byte 0x03004de0 _080F5BAC: .4byte gUnknown_083DFEC4 _080F5BB0: .4byte 0x00009345 _080F5BB4: mov r0, sp ldr r1, _080F5BD8 ldm r1!, {r2,r3,r5} stm r0!, {r2,r3,r5} ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl sub_80895F8 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _080F5BCC: movs r0, 0 _080F5BCE: add sp, 0xC pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080F5BD8: .4byte gUnknown_083E4990 thumb_func_end sub_80F5B50 thumb_func_start sub_80F5BDC sub_80F5BDC: @ 80F5BDC push {lr} ldr r1, _080F5BEC movs r0, 0x3 strb r0, [r1, 0x15] bl sub_8089668 pop {r0} bx r0 .align 2, 0 _080F5BEC: .4byte 0x03004dc0 thumb_func_end sub_80F5BDC thumb_func_start sub_80F5BF0 sub_80F5BF0: @ 80F5BF0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC ldr r0, _080F5CB8 ldr r5, [r0] ldr r1, _080F5CBC adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 beq _080F5CA6 ldr r0, _080F5CC0 adds r4, r5, r0 adds r0, r4, 0 bl sub_80F58DC adds r0, r4, 0 bl sub_80F5A1C movs r6, 0 ldr r1, _080F5CC4 mov r12, r1 movs r0, 0xF0 lsls r0, 3 add r0, r12 mov r9, r0 adds r7, r5, 0 ldr r1, _080F5CC8 mov r8, r1 ldr r5, _080F5CCC adds r5, r7, r5 str r5, [sp] ldr r0, _080F5CD0 adds r0, r7, r0 str r0, [sp, 0x4] ldr r1, _080F5CD4 adds r1, r7 mov r10, r1 _080F5C40: adds r2, r6, 0 adds r2, 0x37 lsls r3, r2, 2 mov r5, r9 adds r5, r3, r5 str r5, [sp, 0x8] add r3, r12 lsls r4, r6, 2 ldr r1, [sp] adds r0, r1, r4 ldrh r0, [r0] lsls r0, 8 ldr r5, [sp, 0x4] adds r1, r5, r4 ldrh r1, [r1] orrs r0, r1 strh r0, [r3] mov r1, r8 ands r0, r1 ldr r5, [sp, 0x8] strh r0, [r5] lsls r2, 1 adds r2, 0x1 lsls r2, 1 mov r0, r9 adds r3, r2, r0 add r2, r12 mov r1, r10 adds r0, r1, r4 ldrh r1, [r0] lsls r1, 8 ldr r5, _080F5CD8 adds r0, r7, r5 adds r0, r4 ldrh r0, [r0] orrs r1, r0 strh r1, [r2] mov r0, r8 ands r1, r0 strh r1, [r3] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _080F5CB8 cmp r6, 0x41 bls _080F5C40 ldr r0, [r0] ldr r1, _080F5CBC adds r0, r1 movs r1, 0 strb r1, [r0] _080F5CA6: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F5CB8: .4byte gUnknown_083DFEC4 _080F5CBC: .4byte 0x00009344 _080F5CC0: .4byte 0x0000911c _080F5CC4: .4byte 0x03004de0 _080F5CC8: .4byte 0x0000ffff _080F5CCC: .4byte 0x00009130 _080F5CD0: .4byte 0x00009132 _080F5CD4: .4byte 0x00009238 _080F5CD8: .4byte 0x0000923a thumb_func_end sub_80F5BF0 thumb_func_start sub_80F5CDC sub_80F5CDC: @ 80F5CDC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080F5DB0 ldr r6, [r0] ldr r1, _080F5DB4 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0 beq _080F5DA0 ldr r0, _080F5DB8 adds r4, r6, r0 adds r0, r4, 0 bl sub_80F58DC adds r0, r4, 0 bl sub_80F5A1C movs r0, 0x37 subs r0, r5 lsls r0, 17 lsrs r5, r0, 16 movs r7, 0 ldr r1, _080F5DBC mov r12, r1 movs r4, 0xF0 lsls r4, 3 add r4, r12 mov r9, r4 ldr r0, _080F5DC0 mov r8, r0 ldr r1, _080F5DC4 adds r1, r6, r1 str r1, [sp] ldr r4, _080F5DC8 adds r4, r6, r4 str r4, [sp, 0x4] ldr r0, _080F5DCC adds r0, r6 mov r10, r0 _080F5D36: lsls r2, r5, 1 mov r1, r9 adds r1, r2, r1 str r1, [sp, 0x8] add r2, r12 lsls r3, r7, 2 ldr r4, [sp] adds r0, r4, r3 ldrh r0, [r0] lsls r0, 8 ldr r4, [sp, 0x4] adds r1, r4, r3 ldrh r1, [r1] orrs r0, r1 strh r0, [r2] mov r1, r8 ands r0, r1 ldr r4, [sp, 0x8] strh r0, [r4] adds r2, r5, 0x1 lsls r2, 1 mov r0, r9 adds r0, r2, r0 str r0, [sp, 0x8] add r2, r12 mov r1, r10 adds r0, r1, r3 ldrh r1, [r0] lsls r1, 8 ldr r4, _080F5DD0 adds r0, r6, r4 adds r0, r3 ldrh r0, [r0] orrs r1, r0 strh r1, [r2] mov r0, r8 ands r1, r0 ldr r4, [sp, 0x8] strh r1, [r4] adds r0, r5, 0x2 lsls r0, 16 lsrs r5, r0, 16 adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 ldr r0, _080F5DB0 cmp r7, 0x41 bls _080F5D36 ldr r0, [r0] ldr r1, _080F5DB4 adds r0, r1 movs r1, 0 strb r1, [r0] _080F5DA0: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F5DB0: .4byte gUnknown_083DFEC4 _080F5DB4: .4byte 0x00009344 _080F5DB8: .4byte 0x0000911c _080F5DBC: .4byte 0x03004de0 _080F5DC0: .4byte 0x0000ffff _080F5DC4: .4byte 0x00009130 _080F5DC8: .4byte 0x00009132 _080F5DCC: .4byte 0x00009238 _080F5DD0: .4byte 0x0000923a thumb_func_end sub_80F5CDC thumb_func_start sub_80F5DD4 sub_80F5DD4: @ 80F5DD4 push {lr} ldr r0, _080F5DE8 ldrh r1, [r0, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080F5DEC bl sub_80F5E20 b _080F5E18 .align 2, 0 _080F5DE8: .4byte 0x03001770 _080F5DEC: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080F5DFA bl sub_80F5EE4 b _080F5E18 _080F5DFA: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080F5E08 bl sub_80F5FB4 b _080F5E18 _080F5E08: movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _080F5E14 movs r0, 0 b _080F5E1C _080F5E14: bl sub_80F6010 _080F5E18: lsls r0, 24 lsrs r0, 24 _080F5E1C: pop {r1} bx r1 thumb_func_end sub_80F5DD4 thumb_func_start sub_80F5E20 sub_80F5E20: @ 80F5E20 push {r4,r5,lr} ldr r0, _080F5E38 ldr r2, [r0] ldr r3, _080F5E3C adds r1, r2, r3 movs r5, 0 ldrsh r1, [r1, r5] adds r4, r0, 0 cmp r1, 0 bne _080F5E40 movs r0, 0 b _080F5EC8 .align 2, 0 _080F5E38: .4byte gUnknown_083DFEC4 _080F5E3C: .4byte 0x0000876e _080F5E40: ldr r1, _080F5E6C adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _080F5E74 ldr r3, _080F5E70 adds r0, r2, r3 movs r5, 0 ldrsh r0, [r0, r5] cmp r0, 0 bne _080F5E74 movs r4, 0x1 negs r4, r4 adds r0, r4, 0 bl sub_80F063C adds r0, r4, 0 bl sub_80F6074 movs r0, 0x2 b _080F5EC8 .align 2, 0 _080F5E6C: .4byte 0x000087c9 _080F5E70: .4byte 0x0000876c _080F5E74: ldr r1, [r4] ldr r0, _080F5ED0 adds r2, r1, r0 ldrh r0, [r2] subs r3, r0, 0x1 strh r3, [r2] ldr r5, _080F5ED4 adds r0, r1, r5 ldrb r0, [r0] cmp r0, 0 bne _080F5E98 lsls r0, r3, 16 cmp r0, 0 bge _080F5E98 ldr r3, _080F5ED8 adds r0, r1, r3 ldrh r0, [r0] strh r0, [r2] _080F5E98: ldr r0, [r4] ldr r5, _080F5EDC adds r2, r0, r5 ldr r3, _080F5ED0 adds r1, r0, r3 ldrh r1, [r1] ldrh r2, [r2] adds r2, r1, r2 subs r5, 0x2 adds r4, r0, r5 strh r2, [r4] ldr r1, _080F5EE0 adds r0, r1 lsls r1, r2, 16 asrs r1, 16 ldrh r3, [r0] movs r5, 0 ldrsh r0, [r0, r5] cmp r1, r0 ble _080F5EC6 subs r0, r2, 0x1 subs r0, r3 strh r0, [r4] _080F5EC6: movs r0, 0x1 _080F5EC8: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080F5ED0: .4byte 0x0000876c _080F5ED4: .4byte 0x000087c9 _080F5ED8: .4byte 0x00008772 _080F5EDC: .4byte 0x00008770 _080F5EE0: .4byte 0x00008774 thumb_func_end sub_80F5E20 thumb_func_start sub_80F5EE4 sub_80F5EE4: @ 80F5EE4 push {r4-r6,lr} ldr r3, _080F5F04 ldr r4, [r3] ldr r1, _080F5F08 adds r0, r4, r1 ldr r2, _080F5F0C adds r1, r4, r2 movs r5, 0 ldrsh r2, [r0, r5] movs r6, 0 ldrsh r0, [r1, r6] adds r5, r3, 0 cmp r2, r0 bne _080F5F10 movs r0, 0 b _080F5F98 .align 2, 0 _080F5F04: .4byte gUnknown_083DFEC4 _080F5F08: .4byte 0x0000876e _080F5F0C: .4byte 0x00008774 _080F5F10: ldr r1, _080F5F38 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 beq _080F5F40 ldr r2, _080F5F3C adds r0, r4, r2 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0x7 bne _080F5F40 movs r0, 0x1 bl sub_80F063C movs r0, 0x1 bl sub_80F6074 movs r0, 0x2 b _080F5F98 .align 2, 0 _080F5F38: .4byte 0x000087c9 _080F5F3C: .4byte 0x0000876c _080F5F40: ldr r2, [r5] ldr r6, _080F5FA0 adds r4, r2, r6 ldrh r0, [r4] adds r1, r0, 0x1 strh r1, [r4] ldr r3, _080F5FA4 adds r0, r2, r3 ldrb r3, [r0] cmp r3, 0 bne _080F5F68 adds r6, 0x6 adds r0, r2, r6 lsls r1, 16 asrs r1, 16 movs r2, 0 ldrsh r0, [r0, r2] cmp r1, r0 ble _080F5F68 strh r3, [r4] _080F5F68: ldr r0, [r5] ldr r3, _080F5FA8 adds r2, r0, r3 ldr r5, _080F5FA0 adds r1, r0, r5 ldrh r1, [r1] ldrh r2, [r2] adds r2, r1, r2 ldr r6, _080F5FAC adds r4, r0, r6 strh r2, [r4] ldr r1, _080F5FB0 adds r0, r1 lsls r1, r2, 16 asrs r1, 16 ldrh r3, [r0] movs r5, 0 ldrsh r0, [r0, r5] cmp r1, r0 ble _080F5F96 subs r0, r2, 0x1 subs r0, r3 strh r0, [r4] _080F5F96: movs r0, 0x1 _080F5F98: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080F5FA0: .4byte 0x0000876c _080F5FA4: .4byte 0x000087c9 _080F5FA8: .4byte 0x00008770 _080F5FAC: .4byte 0x0000876e _080F5FB0: .4byte 0x00008774 thumb_func_end sub_80F5EE4 thumb_func_start sub_80F5FB4 sub_80F5FB4: @ 80F5FB4 push {r4,lr} ldr r0, _080F5FD8 ldr r1, [r0] ldr r2, _080F5FDC adds r0, r1, r2 ldrh r3, [r0] movs r4, 0 ldrsh r2, [r0, r4] cmp r2, 0 beq _080F5FD2 ldr r4, _080F5FE0 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 bne _080F5FE4 _080F5FD2: movs r0, 0 b _080F6004 .align 2, 0 _080F5FD8: .4byte gUnknown_083DFEC4 _080F5FDC: .4byte 0x00008770 _080F5FE0: .4byte 0x000087c9 _080F5FE4: cmp r2, 0x7 bgt _080F5FF0 negs r0, r3 lsls r0, 16 lsrs r0, 16 b _080F5FF2 _080F5FF0: ldr r0, _080F600C _080F5FF2: lsls r4, r0, 16 asrs r4, 16 adds r0, r4, 0 bl sub_80F063C adds r0, r4, 0 bl sub_80F6074 movs r0, 0x2 _080F6004: pop {r4} pop {r1} bx r1 .align 2, 0 _080F600C: .4byte 0x0000fff8 thumb_func_end sub_80F5FB4 thumb_func_start sub_80F6010 sub_80F6010: @ 80F6010 push {r4-r6,lr} ldr r0, _080F603C ldr r3, [r0] ldr r1, _080F6040 adds r0, r3, r1 ldr r2, _080F6044 adds r1, r3, r2 ldrh r5, [r0] movs r4, 0 ldrsh r2, [r0, r4] ldrh r4, [r1] movs r6, 0 ldrsh r0, [r1, r6] cmp r2, r0 beq _080F6038 ldr r1, _080F6048 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 bne _080F604C _080F6038: movs r0, 0 b _080F606C .align 2, 0 _080F603C: .4byte gUnknown_083DFEC4 _080F6040: .4byte 0x00008772 _080F6044: .4byte 0x00008774 _080F6048: .4byte 0x000087c9 _080F604C: subs r0, r4, r5 lsls r0, 16 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080F605A movs r4, 0x8 _080F605A: lsls r4, 16 asrs r4, 16 adds r0, r4, 0 bl sub_80F063C adds r0, r4, 0 bl sub_80F6074 movs r0, 0x2 _080F606C: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80F6010 thumb_func_start sub_80F6074 sub_80F6074: @ 80F6074 push {r4-r7,lr} ldr r1, _080F6120 ldr r6, [r1] ldr r1, _080F6124 adds r3, r6, r1 ldrh r1, [r3] lsls r0, 16 asrs r7, r0, 16 adds r2, r7, r1 strh r2, [r3] ldr r5, _080F6128 adds r4, r6, r5 lsls r0, r2, 16 asrs r0, 16 ldrh r1, [r4] mov r12, r1 movs r5, 0 ldrsh r1, [r4, r5] cmp r0, r1 ble _080F60A4 subs r0, r2, 0x1 mov r1, r12 subs r0, r1 strh r0, [r3] _080F60A4: ldrh r1, [r3] movs r2, 0 ldrsh r0, [r3, r2] cmp r0, 0 bge _080F60B6 adds r0, r1, 0x1 ldrh r5, [r4] adds r0, r5 strh r0, [r3] _080F60B6: ldr r0, _080F612C adds r3, r6, r0 ldrh r0, [r3] adds r2, r7, r0 strh r2, [r3] lsls r0, r2, 16 asrs r0, 16 ldrh r1, [r4] mov r12, r1 movs r5, 0 ldrsh r1, [r4, r5] cmp r0, r1 ble _080F60D8 subs r0, r2, 0x1 mov r1, r12 subs r0, r1 strh r0, [r3] _080F60D8: ldrh r1, [r3] movs r2, 0 ldrsh r0, [r3, r2] cmp r0, 0 bge _080F60EA adds r0, r1, 0x1 ldrh r5, [r4] adds r0, r5 strh r0, [r3] _080F60EA: ldr r0, _080F6130 adds r3, r6, r0 ldrh r0, [r3] adds r2, r7, r0 strh r2, [r3] lsls r0, r2, 16 asrs r0, 16 ldrh r5, [r4] movs r6, 0 ldrsh r1, [r4, r6] cmp r0, r1 ble _080F6108 subs r0, r2, 0x1 subs r0, r5 strh r0, [r3] _080F6108: ldrh r1, [r3] movs r2, 0 ldrsh r0, [r3, r2] cmp r0, 0 bge _080F611A adds r0, r1, 0x1 ldrh r4, [r4] adds r0, r4 strh r0, [r3] _080F611A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F6120: .4byte gUnknown_083DFEC4 _080F6124: .4byte 0x00008770 _080F6128: .4byte 0x00008774 _080F612C: .4byte 0x00008772 _080F6130: .4byte 0x0000876e thumb_func_end sub_80F6074 thumb_func_start sub_80F6134 sub_80F6134: @ 80F6134 push {r4-r6,lr} ldr r0, _080F6194 ldr r3, [r0] ldr r1, _080F6198 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 beq _080F61E0 ldr r2, _080F619C adds r5, r3, r2 movs r4, 0 ldrsh r1, [r5, r4] ldr r6, _080F61A0 adds r4, r3, r6 movs r2, 0 ldrsh r0, [r4, r2] subs r0, 0x7 cmp r1, r0 bge _080F61AC subs r6, 0x8 adds r1, r3, r6 movs r0, 0 strh r0, [r1] ldrh r0, [r5] ldr r1, _080F61A4 adds r2, r3, r1 strh r0, [r2] ldrh r1, [r5] ldr r5, _080F61A8 adds r0, r3, r5 strh r1, [r0] ldrh r5, [r2] adds r0, r5, 0x7 adds r6, 0x6 adds r2, r3, r6 strh r0, [r2] lsls r0, 16 asrs r0, 16 ldrh r3, [r4] movs r6, 0 ldrsh r1, [r4, r6] cmp r0, r1 ble _080F61F4 adds r0, r5, 0x6 subs r0, r3 strh r0, [r2] b _080F61F4 .align 2, 0 _080F6194: .4byte gUnknown_083DFEC4 _080F6198: .4byte 0x000087c9 _080F619C: .4byte 0x000087dc _080F61A0: .4byte 0x00008774 _080F61A4: .4byte 0x00008770 _080F61A8: .4byte 0x0000876e _080F61AC: ldrh r0, [r4] subs r0, 0x7 ldr r2, _080F61D4 adds r1, r3, r2 strh r0, [r1] ldrh r1, [r4] ldr r6, _080F61D8 adds r0, r3, r6 strh r1, [r0] ldrh r1, [r5] subs r2, 0x2 adds r0, r3, r2 strh r1, [r0] ldrh r0, [r4] subs r0, r1 movs r1, 0x7 subs r1, r0 ldr r4, _080F61DC adds r0, r3, r4 b _080F61F2 .align 2, 0 _080F61D4: .4byte 0x00008770 _080F61D8: .4byte 0x00008772 _080F61DC: .4byte 0x0000876c _080F61E0: ldr r5, _080F61FC adds r2, r3, r5 ldrh r1, [r2] ldr r6, _080F6200 adds r0, r3, r6 strh r1, [r0] ldrh r1, [r2] ldr r2, _080F6204 adds r0, r3, r2 _080F61F2: strh r1, [r0] _080F61F4: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F61FC: .4byte 0x000087dc _080F6200: .4byte 0x0000876c _080F6204: .4byte 0x0000876e thumb_func_end sub_80F6134 thumb_func_start sub_80F6208 sub_80F6208: @ 80F6208 push {lr} ldr r0, _080F623C ldr r1, [r0] ldr r2, _080F6240 adds r0, r1, r2 movs r2, 0 strb r2, [r0] ldr r3, _080F6244 adds r0, r1, r3 strb r2, [r0] ldr r0, _080F6248 adds r2, r1, r0 movs r0, 0xFF strb r0, [r2] ldr r2, _080F624C adds r1, r2 ldrb r0, [r1] cmp r0, 0 bne _080F6238 _080F622E: bl sub_80F6250 lsls r0, 24 cmp r0, 0 bne _080F622E _080F6238: pop {r0} bx r0 .align 2, 0 _080F623C: .4byte gUnknown_083DFEC4 _080F6240: .4byte 0x00008fe6 _080F6244: .4byte 0x00008fe7 _080F6248: .4byte 0x00008fe8 _080F624C: .4byte 0x00006dac thumb_func_end sub_80F6208 thumb_func_start sub_80F6250 sub_80F6250: @ 80F6250 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _080F6270 ldr r2, [r0] ldr r0, _080F6274 adds r3, r2, r0 movs r1, 0 ldrsb r1, [r3, r1] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080F6278 _080F626C: movs r0, 0 b _080F637E .align 2, 0 _080F6270: .4byte gUnknown_083DFEC4 _080F6274: .4byte 0x00008fe8 _080F6278: ldr r1, _080F630C adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x7 beq _080F631C cmp r0, 0x8 beq _080F626C movs r6, 0 adds r7, r2, 0 adds r5, r7, r1 ldr r0, _080F6310 adds r4, r7, r0 ldr r1, _080F6314 mov r8, r1 ldr r0, _080F6318 add r0, r8 mov r9, r0 _080F629A: ldrb r0, [r5] lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 ldrb r2, [r4] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 add r1, r8 adds r0, r1 movs r1, 0x51 bl PokemonGetEncryptedField cmp r0, 0 bne _080F636C ldrb r0, [r5] lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 ldrb r2, [r4] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 add r1, r9 adds r0, r1 movs r1, 0x51 bl PokemonGetEncryptedField adds r1, r0, 0 cmp r1, 0 bne _080F636C ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r2, 0xFF lsls r0, 24 lsrs r0, 24 cmp r0, 0x1D bls _080F62FE strb r1, [r4] ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] ands r0, r2 cmp r0, 0x6 bhi _080F637C _080F62FE: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x9 bls _080F629A b _080F637C .align 2, 0 _080F630C: .4byte 0x00008fe6 _080F6310: .4byte 0x00008fe7 _080F6314: .4byte 0x020300a4 _080F6318: .4byte 0x000041a0 _080F631C: movs r0, 0 strb r0, [r3] movs r6, 0 b _080F632A _080F6324: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080F632A: cmp r6, 0x5 bhi _080F634C movs r0, 0x64 muls r0, r6 ldr r1, _080F635C adds r0, r1 movs r1, 0x51 bl PokemonGetField cmp r0, 0 beq _080F6324 ldr r0, _080F6360 ldr r0, [r0] ldr r1, _080F6364 adds r0, r1 movs r1, 0x1 strb r1, [r0] _080F634C: ldr r0, _080F6360 ldr r1, [r0] ldr r0, _080F6368 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 b _080F6372 .align 2, 0 _080F635C: .4byte 0x03004360 _080F6360: .4byte gUnknown_083DFEC4 _080F6364: .4byte 0x00008fe8 _080F6368: .4byte 0x00008fe6 _080F636C: ldr r0, _080F6378 adds r1, r7, r0 movs r0, 0x1 _080F6372: strb r0, [r1] b _080F626C .align 2, 0 _080F6378: .4byte 0x00008fe8 _080F637C: movs r0, 0x1 _080F637E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80F6250 thumb_func_start sub_80F638C sub_80F638C: @ 80F638C push {r4,lr} ldr r0, _080F63C0 ldr r4, [r0] ldr r1, _080F63C4 adds r0, r4, r1 movs r1, 0 strb r1, [r0] ldr r2, _080F63C8 adds r0, r4, r2 strb r1, [r0] bl sub_80F492C ldr r0, _080F63CC adds r4, r0 ldrb r0, [r4] cmp r0, 0 bne _080F63B8 _080F63AE: bl sub_80F63D0 lsls r0, 24 cmp r0, 0 bne _080F63AE _080F63B8: pop {r4} pop {r0} bx r0 .align 2, 0 _080F63C0: .4byte gUnknown_083DFEC4 _080F63C4: .4byte 0x00008fe6 _080F63C8: .4byte 0x00008fe7 _080F63CC: .4byte 0x00006dac thumb_func_end sub_80F638C thumb_func_start sub_80F63D0 sub_80F63D0: @ 80F63D0 push {r4-r6,lr} sub sp, 0x4 ldr r0, _080F647C ldr r2, [r0] ldr r1, _080F6480 adds r0, r2, r1 ldrb r3, [r0] cmp r3, 0xE beq _080F6498 cmp r3, 0xF bne _080F63E8 b _080F64F6 _080F63E8: movs r1, 0x80 lsls r1, 23 ldr r0, [sp] orrs r0, r1 str r0, [sp] movs r6, 0 ldr r0, _080F6480 adds r5, r2, r0 ldr r1, _080F6484 adds r4, r2, r1 _080F63FC: ldrb r0, [r5] lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 ldrb r2, [r4] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 ldr r2, _080F6488 adds r1, r2 adds r0, r1 movs r1, 0x51 bl PokemonGetEncryptedField lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _080F644E ldrb r1, [r5] lsls r1, 8 ldr r2, _080F648C ldr r0, [sp] ands r0, r2 orrs r0, r1 str r0, [sp] ldrb r2, [r4] movs r1, 0x1F ands r2, r1 lsls r2, 16 ldr r1, _080F6490 ands r0, r1 orrs r0, r2 ldr r1, _080F6494 ands r0, r1 orrs r0, r3 str r0, [sp] mov r0, sp bl sub_80F4944 _080F644E: ldrb r0, [r4] adds r0, 0x1 movs r2, 0 strb r0, [r4] movs r1, 0xFF lsls r0, 24 lsrs r0, 24 cmp r0, 0x1E bne _080F646E strb r2, [r4] ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] ands r0, r1 cmp r0, 0xE beq _080F6508 _080F646E: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0xE bls _080F63FC b _080F6508 .align 2, 0 _080F647C: .4byte gUnknown_083DFEC4 _080F6480: .4byte 0x00008fe6 _080F6484: .4byte 0x00008fe7 _080F6488: .4byte 0x020300a4 _080F648C: .4byte 0xffff00ff _080F6490: .4byte 0xffe0ffff _080F6494: .4byte 0xffffff00 _080F6498: mov r0, sp ldrb r1, [r0, 0x3] movs r2, 0x40 orrs r1, r2 strb r1, [r0, 0x3] strb r3, [r0, 0x1] movs r6, 0 mov r4, sp _080F64A8: movs r0, 0x64 muls r0, r6 ldr r1, _080F64FC adds r0, r1 movs r1, 0x51 bl PokemonGetField lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _080F64DA movs r0, 0x1F adds r2, r6, 0 ands r2, r0 ldrb r0, [r4, 0x2] movs r5, 0x20 negs r5, r5 adds r1, r5, 0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x2] strb r3, [r4] mov r0, sp bl sub_80F4944 _080F64DA: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x5 bls _080F64A8 bl sub_80F49F4 ldr r0, _080F6500 ldr r1, [r0] ldr r0, _080F6504 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080F64F6: movs r0, 0 b _080F650A .align 2, 0 _080F64FC: .4byte 0x03004360 _080F6500: .4byte gUnknown_083DFEC4 _080F6504: .4byte 0x00008fe6 _080F6508: movs r0, 0x1 _080F650A: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80F63D0 thumb_func_start sub_80F6514 sub_80F6514: @ 80F6514 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r10, r0 lsls r1, 16 lsrs r1, 16 str r1, [sp] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x4] mov r5, r10 ldr r0, _080F65A4 ldr r0, [r0] lsls r1, 2 adds r0, r1 ldr r2, _080F65A8 adds r1, r0, r2 ldrb r6, [r1] mov r8, r6 ldr r1, _080F65AC adds r0, r1 ldrb r0, [r0] lsls r0, 27 lsrs r4, r0, 27 adds r7, r4, 0 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x2D movs r3, 0 bl sub_80F44B0 cmp r0, 0 beq _080F655E b _080F66CA _080F655E: adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x2 adds r3, r5, 0 bl sub_80F44B0 adds r0, r5, 0 bl StringGetEnd10 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0xB movs r3, 0 bl sub_80F44B0 lsls r0, 16 lsrs r0, 16 mov r9, r0 cmp r6, 0xE bne _080F65B4 movs r0, 0x64 muls r4, r0 ldr r0, _080F65B0 adds r4, r0 adds r0, r4, 0 movs r1, 0x38 bl PokemonGetField lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x8] adds r0, r4, 0 bl pokemon_get_gender b _080F65EA .align 2, 0 _080F65A4: .4byte gUnknown_083DFEC4 _080F65A8: .4byte 0x0000893d _080F65AC: .4byte 0x0000893e _080F65B0: .4byte 0x03004360 _080F65B4: mov r2, r8 lsls r1, r2, 2 add r1, r8 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 lsls r1, r7, 2 adds r1, r7 lsls r1, 4 ldr r2, _080F6620 adds r1, r2 adds r0, r1 bl sub_803B570 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x8] mov r0, r8 adds r1, r7, 0 movs r2, 0 movs r3, 0 bl sub_80F44B0 adds r1, r0, 0 mov r0, r9 bl pokemon_species_get_gender_info _080F65EA: lsls r0, 24 lsrs r4, r0, 24 mov r0, r9 mov r1, r10 bl sub_8040D8C cmp r0, 0 beq _080F65FC movs r4, 0xFF _080F65FC: adds r0, r5, 0 bl StringLength lsls r0, 16 lsrs r0, 16 adds r5, r0 movs r1, 0xFC strb r1, [r5] movs r0, 0x13 strb r0, [r5, 0x1] movs r0, 0x3F strb r0, [r5, 0x2] adds r5, 0x3 cmp r4, 0 beq _080F6624 cmp r4, 0xFE beq _080F663C b _080F6656 .align 2, 0 _080F6620: .4byte 0x020300a4 _080F6624: strb r1, [r5] movs r0, 0x1 strb r0, [r5, 0x1] movs r0, 0xC strb r0, [r5, 0x2] strb r1, [r5, 0x3] movs r0, 0x3 strb r0, [r5, 0x4] movs r0, 0xD strb r0, [r5, 0x5] movs r0, 0xB5 b _080F6652 _080F663C: strb r1, [r5] movs r0, 0x1 strb r0, [r5, 0x1] movs r0, 0xA strb r0, [r5, 0x2] strb r1, [r5, 0x3] movs r0, 0x3 strb r0, [r5, 0x4] movs r0, 0xB strb r0, [r5, 0x5] movs r0, 0xB6 _080F6652: strb r0, [r5, 0x6] adds r5, 0x7 _080F6656: movs r4, 0xFC strb r4, [r5] movs r1, 0x1 strb r1, [r5, 0x1] strb r1, [r5, 0x2] strb r4, [r5, 0x3] movs r0, 0x3 strb r0, [r5, 0x4] movs r0, 0x5 strb r0, [r5, 0x5] adds r5, 0x6 strb r4, [r5] movs r6, 0x13 strb r6, [r5, 0x1] movs r0, 0x46 strb r0, [r5, 0x2] adds r5, 0x3 movs r0, 0xBA strb r0, [r5] strb r4, [r5, 0x1] movs r0, 0x11 strb r0, [r5, 0x2] strb r1, [r5, 0x3] movs r0, 0x34 strb r0, [r5, 0x4] adds r5, 0x5 adds r0, r5, 0 ldr r1, [sp, 0x8] bl ConvertIntToDecimalString adds r5, r0, 0 ldr r0, [sp, 0x4] cmp r0, 0x1 bne _080F66C0 ldr r0, _080F66B8 ldr r0, [r0] ldr r2, [sp] lsls r1, r2, 2 adds r0, r1 ldr r1, _080F66BC adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 movs r2, 0x80 movs r3, 0x1 bl sub_8072C14 adds r5, r0, 0 b _080F66CE .align 2, 0 _080F66B8: .4byte gUnknown_083DFEC4 _080F66BC: .4byte 0x0000893c _080F66C0: strb r4, [r5] strb r6, [r5, 0x1] movs r0, 0x67 strb r0, [r5, 0x2] adds r5, 0x3 _080F66CA: movs r0, 0xFF strb r0, [r5] _080F66CE: adds r0, r5, 0 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80F6514 thumb_func_start sub_80F66E0 sub_80F66E0: @ 80F66E0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r0, _080F676C mov r8, r0 ldr r4, [r0] ldr r1, _080F6770 adds r0, r4, r1 ldr r2, _080F6774 adds r5, r4, r2 ldrh r1, [r5] movs r2, 0 bl sub_80F6514 movs r3, 0 ldrsh r0, [r5, r3] movs r1, 0 bl sub_80F4824 ldrh r1, [r5] ldr r6, _080F6778 adds r0, r4, r6 movs r6, 0 strh r1, [r0] ldr r1, _080F677C adds r0, r4, r1 strb r6, [r0] movs r2, 0 mov r9, r2 movs r3, 0 ldrsh r1, [r5, r3] lsls r1, 2 adds r1, r4, r1 ldr r5, _080F6780 adds r0, r1, r5 ldrb r0, [r0] ldr r2, _080F6784 adds r1, r2 ldrb r1, [r1] lsls r1, 27 lsrs r1, 27 movs r2, 0x52 movs r3, 0 bl sub_80F44B0 adds r7, r0, 0 ldr r3, _080F6788 adds r4, r3 strb r6, [r4] movs r5, 0 mov r12, r5 mov r10, r8 _080F674E: ldr r1, _080F678C mov r6, r12 lsls r0, r6, 1 adds r0, r1 ldrh r0, [r0] cmp r0, 0x36 bgt _080F6790 cmp r0, 0x32 blt _080F6790 movs r0, 0x7 adds r2, r7, 0 ands r2, r0 lsrs r7, 3 movs r0, 0x4 b _080F679A .align 2, 0 _080F676C: .4byte gUnknown_083DFEC4 _080F6770: .4byte 0x00008829 _080F6774: .4byte 0x0000876e _080F6778: .4byte 0x000087dc _080F677C: .4byte 0x0000bc8e _080F6780: .4byte 0x0000893d _080F6784: .4byte 0x0000893e _080F6788: .4byte 0x0000bc8f _080F678C: .4byte gUnknown_083E499C _080F6790: movs r0, 0x1 adds r2, r7, 0 ands r2, r0 lsrs r7, 1 movs r0, 0x1 _080F679A: movs r4, 0 adds r1, r2, 0 add r0, r9 mov r8, r0 cmp r4, r1 bcs _080F67D4 mov r3, r10 ldr r0, [r3] ldr r5, _080F6828 adds r3, r0, r5 ldr r6, _080F682C adds r6, r0, r6 str r6, [sp] adds r5, r1, 0 _080F67B6: ldrb r0, [r3] adds r1, r0, 0x1 strb r1, [r3] lsls r0, 24 lsrs r0, 24 ldr r1, [sp] adds r0, r1, r0 mov r6, r9 adds r1, r6, r4 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r5 bcc _080F67B6 _080F67D4: cmp r2, 0 beq _080F67EC mov r0, r9 cmp r0, 0x18 bls _080F67EC mov r2, r10 ldr r1, [r2] ldr r3, _080F6830 adds r1, r3 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080F67EC: mov r5, r8 lsls r0, r5, 24 lsrs r0, 24 mov r9, r0 mov r0, r12 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r12, r0 cmp r0, 0x10 bls _080F674E ldr r6, _080F6834 ldr r2, [r6] ldr r1, _080F6828 adds r0, r2, r1 ldr r3, _080F6830 adds r1, r2, r3 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 beq _080F6840 ldr r5, _080F6838 adds r0, r2, r5 movs r1, 0 strb r1, [r0] ldr r6, _080F683C adds r0, r2, r6 strb r1, [r0] b _080F6850 .align 2, 0 _080F6828: .4byte 0x0000bc8e _080F682C: .4byte 0x0000bc4c _080F6830: .4byte 0x0000bc8f _080F6834: .4byte gUnknown_083DFEC4 _080F6838: .4byte 0x0000bc90 _080F683C: .4byte 0x0000bc91 _080F6840: ldr r0, _080F6888 adds r1, r2, r0 movs r0, 0 strb r0, [r1] ldr r3, _080F688C adds r1, r2, r3 movs r0, 0x3 strb r0, [r1] _080F6850: ldr r5, _080F6890 ldr r1, [r5] ldr r6, _080F6894 adds r0, r1, r6 ldr r2, _080F6898 adds r1, r2 ldrb r0, [r0] ldrb r1, [r1] subs r0, r1 lsls r0, 24 lsrs r2, r0, 24 movs r3, 0 mov r12, r3 adds r3, r5, 0 ldr r1, _080F689C movs r4, 0x9 _080F6870: cmp r2, 0x8 bls _080F68A0 ldr r0, [r3] adds r0, r1 add r0, r12 strb r4, [r0] adds r0, r2, 0 subs r0, 0x9 lsls r0, 24 lsrs r2, r0, 24 b _080F68AA .align 2, 0 _080F6888: .4byte 0x0000bc90 _080F688C: .4byte 0x0000bc91 _080F6890: .4byte gUnknown_083DFEC4 _080F6894: .4byte 0x0000bc8e _080F6898: .4byte 0x0000bc8f _080F689C: .4byte 0x0000bc96 _080F68A0: ldr r0, [r3] adds r0, r1 add r0, r12 strb r2, [r0] movs r2, 0 _080F68AA: mov r0, r12 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r12, r0 cmp r0, 0x2 bls _080F6870 ldr r5, _080F68DC ldr r0, [r5] ldr r6, _080F68E0 adds r1, r0, r6 add r1, r12 ldr r2, _080F68E4 adds r0, r2 ldrb r0, [r0] strb r0, [r1] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F68DC: .4byte gUnknown_083DFEC4 _080F68E0: .4byte 0x0000bc96 _080F68E4: .4byte 0x0000bc8f thumb_func_end sub_80F66E0 thumb_func_start sub_80F68E8 sub_80F68E8: @ 80F68E8 push {r4-r7,lr} ldr r3, _080F6918 ldr r0, [r3] ldr r2, _080F691C adds r1, r0, r2 ldrb r5, [r1] ldr r6, _080F6920 adds r0, r6 ldrb r4, [r0] movs r0, 0x1 mov r12, r0 ldr r2, _080F6924 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 adds r6, r3, 0 adds r7, r2, 0 cmp r0, 0 beq _080F692E lsls r0, r4, 24 cmp r0, 0 ble _080F692E b _080F69BC .align 2, 0 _080F6918: .4byte gUnknown_083DFEC4 _080F691C: .4byte 0x0000bc90 _080F6920: .4byte 0x0000bc91 _080F6924: .4byte 0x03001770 _080F6928: ldr r1, _080F69B0 adds r0, r2, r1 ldrb r4, [r0] _080F692E: ldrh r1, [r7, 0x30] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080F6978 lsls r0, r4, 24 asrs r0, 24 cmp r0, 0x2 bgt _080F6978 ldr r3, _080F69B4 ldr r2, _080F69B8 _080F6944: lsls r0, r4, 24 asrs r0, 24 cmp r0, 0x2 bgt _080F6960 adds r0, 0x1 lsls r0, 24 ldr r1, [r3] lsrs r4, r0, 24 asrs r0, 24 adds r1, r2 adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _080F6944 _080F6960: ldr r2, [r6] lsls r0, r4, 24 asrs r0, 24 ldr r3, _080F69B8 adds r1, r2, r3 adds r1, r0 ldrb r0, [r1] cmp r0, 0 bne _080F69EC ldr r1, _080F69B0 adds r0, r2, r1 ldrb r4, [r0] _080F6978: ldrh r2, [r7, 0x30] movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _080F698A lsls r0, r5, 24 asrs r0, 24 cmp r0, 0 bgt _080F6A3C _080F698A: movs r0, 0x10 ands r0, r2 cmp r0, 0 beq _080F69AA lsls r0, r5, 24 asrs r2, r0, 24 ldr r1, [r6] lsls r0, r4, 24 asrs r0, 24 ldr r3, _080F69B8 adds r1, r3 adds r1, r0 ldrb r0, [r1] subs r0, 0x1 cmp r2, r0 blt _080F6A38 _080F69AA: movs r0, 0 mov r12, r0 b _080F69FC .align 2, 0 _080F69B0: .4byte 0x0000bc91 _080F69B4: .4byte gUnknown_083DFEC4 _080F69B8: .4byte 0x0000bc96 _080F69BC: lsls r0, r4, 24 asrs r0, 24 cmp r0, 0 ble _080F69DA subs r0, 0x1 lsls r0, 24 ldr r1, [r6] lsrs r4, r0, 24 asrs r0, 24 ldr r2, _080F6A2C adds r1, r2 adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _080F69BC _080F69DA: ldr r2, [r6] lsls r0, r4, 24 asrs r0, 24 ldr r3, _080F6A2C adds r1, r2, r3 adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _080F6928 _080F69EC: lsls r0, r5, 24 asrs r0, 24 ldrb r1, [r1] cmp r0, r1 blt _080F69FC subs r0, r1, 0x1 _080F69F8: lsls r0, 24 lsrs r5, r0, 24 _080F69FC: mov r0, r12 cmp r0, 0 beq _080F6A44 lsls r0, r5, 24 asrs r0, 24 ldr r3, [r6] ldr r1, _080F6A30 adds r2, r3, r1 ldrb r6, [r2] cmp r0, r6 bne _080F6A20 lsls r0, r4, 24 asrs r0, 24 ldr r6, _080F6A34 adds r1, r3, r6 ldrb r1, [r1] cmp r0, r1 beq _080F6A40 _080F6A20: strb r5, [r2] ldr r1, _080F6A34 adds r0, r3, r1 strb r4, [r0] b _080F6A44 .align 2, 0 _080F6A2C: .4byte 0x0000bc96 _080F6A30: .4byte 0x0000bc90 _080F6A34: .4byte 0x0000bc91 _080F6A38: adds r0, r2, 0x1 b _080F69F8 _080F6A3C: subs r0, 0x1 b _080F69F8 _080F6A40: movs r2, 0 mov r12, r2 _080F6A44: mov r0, r12 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80F68E8 thumb_func_start sub_80F6A4C sub_80F6A4C: @ 80F6A4C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 ldr r0, _080F6AC4 ldr r3, [r0] ldr r0, _080F6AC8 adds r2, r3, r0 lsls r0, r4, 24 asrs r0, 24 ldrh r1, [r2] adds r0, r1 strh r0, [r2] lsls r0, 16 cmp r0, 0 bge _080F6A74 ldr r5, _080F6ACC adds r0, r3, r5 ldrh r0, [r0] strh r0, [r2] _080F6A74: ldr r1, _080F6ACC adds r0, r3, r1 movs r5, 0 ldrsh r1, [r2, r5] movs r5, 0 ldrsh r0, [r0, r5] cmp r1, r0 ble _080F6A88 movs r0, 0 strh r0, [r2] _080F6A88: ldr r1, _080F6AD0 adds r0, r3, r1 strb r4, [r0] ldrh r1, [r2] ldr r2, _080F6AD4 adds r0, r3, r2 strh r1, [r0] ldr r1, _080F6AD8 ldr r5, _080F6ADC adds r0, r5, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080F6AE0 adds r0, r2, 0 strh r0, [r1] subs r1, 0xA ldr r5, _080F6AE4 adds r0, r5, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080F6AE8 adds r0, r2, 0 strh r0, [r1] ldr r5, _080F6AEC adds r1, r3, r5 movs r0, 0 strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F6AC4: .4byte gUnknown_083DFEC4 _080F6AC8: .4byte 0x0000876e _080F6ACC: .4byte 0x00008774 _080F6AD0: .4byte 0x0000bc94 _080F6AD4: .4byte 0x000087dc _080F6AD8: .4byte REG_WININ _080F6ADC: .4byte 0x00003f37 _080F6AE0: .4byte 0x00003f3f _080F6AE4: .4byte 0x000058f0 _080F6AE8: .4byte 0x00002060 _080F6AEC: .4byte 0x000087de thumb_func_end sub_80F6A4C thumb_func_start sub_80F6AF0 sub_80F6AF0: @ 80F6AF0 push {r4,lr} ldr r1, _080F6B10 ldr r0, [r1] ldr r2, _080F6B14 adds r0, r2 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0x6 bls _080F6B04 b _080F6C08 _080F6B04: lsls r0, 2 ldr r1, _080F6B18 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F6B10: .4byte gUnknown_083DFEC4 _080F6B14: .4byte 0x000087de _080F6B18: .4byte _080F6B1C .align 2, 0 _080F6B1C: .4byte _080F6B38 .4byte _080F6B54 .4byte _080F6B6E .4byte _080F6B84 .4byte _080F6B9C .4byte _080F6BC0 .4byte _080F6BE0 _080F6B38: bl sub_80F173C lsls r0, 24 cmp r0, 0 bne _080F6C18 ldr r0, _080F6B4C ldr r1, [r0] ldr r3, _080F6B50 adds r1, r3 b _080F6BCE .align 2, 0 _080F6B4C: .4byte gUnknown_083DFEC4 _080F6B50: .4byte 0x000087de _080F6B54: movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 6 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] bl sub_80F1480 bl sub_80F66E0 b _080F6BC6 _080F6B6E: bl sub_80F1238 ldr r0, _080F6B7C ldr r1, [r0] ldr r2, _080F6B80 adds r1, r2 b _080F6BCE .align 2, 0 _080F6B7C: .4byte gUnknown_083DFEC4 _080F6B80: .4byte 0x000087de _080F6B84: bl sub_80F13FC ldr r0, _080F6B94 ldr r1, [r0] ldr r3, _080F6B98 adds r1, r3 b _080F6BCE .align 2, 0 _080F6B94: .4byte gUnknown_083DFEC4 _080F6B98: .4byte 0x000087de _080F6B9C: ldr r4, [r4] ldr r1, _080F6BB8 adds r0, r4, r1 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0 bl sub_80F4824 ldr r3, _080F6BBC adds r4, r3 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _080F6C18 .align 2, 0 _080F6BB8: .4byte 0x0000876e _080F6BBC: .4byte 0x000087de _080F6BC0: movs r0, 0 bl sub_80F2E18 _080F6BC6: ldr r0, _080F6BD8 ldr r1, [r0] ldr r0, _080F6BDC adds r1, r0 _080F6BCE: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080F6C18 .align 2, 0 _080F6BD8: .4byte gUnknown_083DFEC4 _080F6BDC: .4byte 0x000087de _080F6BE0: bl sub_80F170C lsls r0, 24 cmp r0, 0 bne _080F6C18 bl sub_80F1438 movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _080F6C0C ands r0, r1 strh r0, [r2] ldr r0, _080F6C10 ldr r1, [r0] ldr r2, _080F6C14 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080F6C08: movs r0, 0 b _080F6C1A .align 2, 0 _080F6C0C: .4byte 0x0000dfff _080F6C10: .4byte gUnknown_083DFEC4 _080F6C14: .4byte 0x000087de _080F6C18: movs r0, 0x1 _080F6C1A: pop {r4} pop {r1} bx r1 thumb_func_end sub_80F6AF0 thumb_func_start sub_80F6C20 sub_80F6C20: @ 80F6C20 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _080F6D44 ldr r0, [r0] ldr r1, _080F6D48 adds r0, r1 movs r1, 0 strh r1, [r0] mov r8, r1 ldr r2, _080F6D4C mov r9, r2 _080F6C3A: ldr r1, _080F6D50 mov r4, r8 lsls r0, r4, 4 adds r6, r0, r1 ldrh r7, [r6] adds r0, r7, 0 bl trainer_flag_check lsls r0, 24 cmp r0, 0 beq _080F6CA0 ldr r0, _080F6D44 ldr r4, [r0] ldr r0, _080F6D48 adds r5, r4, r0 ldrh r0, [r5] lsls r0, 3 adds r0, r4, r0 ldr r1, _080F6D54 adds r0, r1 strh r7, [r0] ldrh r0, [r5] lsls r0, 3 adds r0, r4, r0 ldr r2, _080F6D58 adds r0, r2 mov r1, r8 strb r1, [r0] ldrh r0, [r5] lsls r0, 3 adds r0, r4, r0 mov r1, r8 add r1, r9 ldrb r1, [r1] adds r2, 0x1 adds r0, r2 strb r1, [r0] ldrh r0, [r6, 0xA] ldrh r1, [r6, 0xC] bl get_mapheader_by_bank_and_number ldrh r1, [r5] lsls r1, 3 adds r4, r1 ldrb r0, [r0, 0x14] ldr r1, _080F6D5C adds r4, r1 strh r0, [r4] ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _080F6CA0: mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r0, 0x37 bls _080F6C3A movs r2, 0 mov r8, r2 movs r6, 0 _080F6CB4: ldr r1, _080F6D60 mov r4, r8 lsls r0, r4, 2 adds r5, r0, r1 ldrh r4, [r5] adds r0, r4, 0 bl trainer_flag_check lsls r0, 24 cmp r0, 0 beq _080F6D0E ldr r0, _080F6D44 ldr r2, [r0] ldr r0, _080F6D48 adds r3, r2, r0 ldrh r0, [r3] lsls r0, 3 adds r0, r2, r0 ldr r1, _080F6D54 adds r0, r1 strh r4, [r0] ldrh r0, [r3] lsls r0, 3 adds r0, r2, r0 ldrh r1, [r5, 0x2] ldr r4, _080F6D5C adds r0, r4 strh r1, [r0] ldrh r0, [r3] lsls r0, 3 adds r0, r2, r0 ldr r1, _080F6D64 adds r0, r1 strb r6, [r0] ldrh r0, [r3] lsls r0, 3 adds r2, r0 mov r0, r8 adds r0, 0x38 adds r4, 0x2 adds r2, r4 strb r0, [r2] ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] _080F6D0E: mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r0, 0xC bls _080F6CB4 ldr r3, _080F6D44 ldr r2, [r3] ldr r1, _080F6D68 adds r0, r2, r1 movs r1, 0 strh r1, [r0] ldr r4, _080F6D6C adds r0, r2, r4 strh r1, [r0] subs r4, 0x2 adds r0, r2, r4 strh r1, [r0] ldr r1, _080F6D48 adds r0, r2, r1 ldrh r0, [r0] cmp r0, 0x8 bhi _080F6D70 subs r4, r0, 0x1 b _080F6D72 .align 2, 0 _080F6D44: .4byte gUnknown_083DFEC4 _080F6D48: .4byte 0x0000d158 _080F6D4C: .4byte 0x020260ae _080F6D50: .4byte gUnknown_0839AE70 _080F6D54: .4byte 0x0000cee8 _080F6D58: .4byte 0x0000ceec _080F6D5C: .4byte 0x0000ceea _080F6D60: .4byte gUnknown_083E49C0 _080F6D64: .4byte 0x0000ceed _080F6D68: .4byte 0x0000876c _080F6D6C: .4byte 0x00008770 _080F6D70: movs r4, 0x7 _080F6D72: ldr r1, _080F6DA8 adds r0, r2, r1 strh r4, [r0] ldr r3, [r3] ldr r2, _080F6DAC adds r0, r3, r2 ldrh r0, [r0] subs r0, 0x1 ldr r4, _080F6DB0 adds r1, r3, r4 strh r0, [r1] movs r1, 0 lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080F6D94 movs r1, 0x1 _080F6D94: ldr r2, _080F6DB4 adds r0, r3, r2 strb r1, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F6DA8: .4byte 0x00008772 _080F6DAC: .4byte 0x0000d158 _080F6DB0: .4byte 0x00008774 _080F6DB4: .4byte 0x000087c9 thumb_func_end sub_80F6C20 thumb_func_start sub_80F6DB8 sub_80F6DB8: @ 80F6DB8 push {r4,lr} movs r1, 0 ldr r0, _080F6DEC ldr r4, [r0] ldr r2, _080F6DF0 adds r0, r4, r2 strb r1, [r0] movs r0, 0 bl sub_80F6E04 ldr r0, _080F6DF4 adds r1, r4, r0 ldr r0, _080F6DF8 strh r0, [r1] movs r0, 0 bl sub_80F2F7C ldr r1, _080F6DFC adds r0, r4, r1 ldrh r0, [r0] ldr r2, _080F6E00 adds r4, r2 strh r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080F6DEC: .4byte gUnknown_083DFEC4 _080F6DF0: .4byte 0x00008fe9 _080F6DF4: .4byte 0x0000d15a _080F6DF8: .4byte 0x0000ffb8 _080F6DFC: .4byte 0x0000876e _080F6E00: .4byte 0x000087dc thumb_func_end sub_80F6DB8 thumb_func_start sub_80F6E04 sub_80F6E04: @ 80F6E04 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080F6E78 ldr r5, [r0] ldr r1, _080F6E7C adds r0, r5, r1 movs r2, 0 ldrsh r0, [r0, r2] lsls r0, 3 adds r0, r5, r0 ldr r7, _080F6E80 adds r0, r7 ldrh r1, [r0] ldr r2, _080F6E84 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r6, [r0, 0x3] lsls r0, r6, 3 mov r8, r0 ldr r0, _080F6E88 add r0, r8 ldr r2, _080F6E8C lsls r1, r6, 2 adds r1, r2 ldrb r1, [r1] ldr r2, _080F6E90 adds r3, r5, r2 lsls r2, r4, 13 ldr r7, _080F6E94 adds r2, r7 adds r2, r5, r2 str r2, [sp] str r6, [sp, 0x4] movs r2, 0x1 bl DecompressPicFromTable_2 ldr r0, _080F6E98 add r8, r0 mov r1, r8 ldr r0, [r1] lsls r4, 7 adds r5, r4 adds r1, r5, 0 bl LZ77UnCompWram add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F6E78: .4byte gUnknown_083DFEC4 _080F6E7C: .4byte 0x0000876e _080F6E80: .4byte 0x0000cee8 _080F6E84: .4byte gTrainers _080F6E88: .4byte gTrainerFrontPicTable _080F6E8C: .4byte gTrainerFrontPicCoords _080F6E90: .4byte 0x000131e4 _080F6E94: .4byte 0x0000d1e4 _080F6E98: .4byte gTrainerFrontPicPaletteTable thumb_func_end sub_80F6E04 thumb_func_start sub_80F6E9C sub_80F6E9C: @ 80F6E9C push {lr} ldr r0, _080F6EB4 ldr r0, [r0] ldr r2, _080F6EB8 adds r1, r0, r2 ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 bne _080F6EBC movs r0, 0 b _080F6ED0 .align 2, 0 _080F6EB4: .4byte gUnknown_083DFEC4 _080F6EB8: .4byte 0x0000d15a _080F6EBC: adds r0, r2, 0 adds r0, 0x8 strh r0, [r1] lsls r0, 16 cmp r0, 0 bge _080F6ECC movs r0, 0x1 b _080F6ED0 _080F6ECC: movs r0, 0 strh r0, [r1] _080F6ED0: pop {r1} bx r1 thumb_func_end sub_80F6E9C thumb_func_start sub_80F6ED4 sub_80F6ED4: @ 80F6ED4 push {lr} ldr r0, _080F6F00 ldr r0, [r0] ldr r2, _080F6F04 adds r1, r0, r2 ldrh r3, [r1] movs r2, 0 ldrsh r0, [r1, r2] movs r2, 0x48 negs r2, r2 cmp r0, r2 beq _080F6F0A adds r0, r3, 0 subs r0, 0x8 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, r2 ble _080F6F08 movs r0, 0x1 b _080F6F0C .align 2, 0 _080F6F00: .4byte gUnknown_083DFEC4 _080F6F04: .4byte 0x0000d15a _080F6F08: strh r2, [r1] _080F6F0A: movs r0, 0 _080F6F0C: pop {r1} bx r1 thumb_func_end sub_80F6ED4 thumb_func_start sub_80F6F10 sub_80F6F10: @ 80F6F10 push {lr} ldr r0, _080F6F48 ldr r0, [r0] ldr r2, _080F6F4C adds r1, r0, r2 movs r2, 0 strb r2, [r1] ldr r1, _080F6F50 adds r0, r1 strb r2, [r0] ldr r1, _080F6F54 movs r0, 0xC8 strh r0, [r1] ldr r0, _080F6F58 strh r2, [r0] subs r1, 0x8 ldr r2, _080F6F5C adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080F6F60 adds r0, r2, 0 strh r0, [r1] movs r0, 0 bl sub_80F6FB8 pop {r0} bx r0 .align 2, 0 _080F6F48: .4byte gUnknown_083DFEC4 _080F6F4C: .4byte 0x0000d15e _080F6F50: .4byte 0x0000d15f _080F6F54: .4byte REG_BLDCNT _080F6F58: .4byte REG_BLDY _080F6F5C: .4byte 0x00003f3f _080F6F60: .4byte 0x00001f1f thumb_func_end sub_80F6F10 thumb_func_start sub_80F6F64 sub_80F6F64: @ 80F6F64 push {lr} ldr r0, _080F6F9C ldr r1, [r0] ldr r0, _080F6FA0 adds r2, r1, r0 ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] lsls r0, 24 lsrs r0, 24 cmp r0, 0x8 bls _080F6FB0 movs r0, 0 strb r0, [r2] ldr r0, _080F6FA4 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _080F6FAC ldr r1, _080F6FA8 movs r0, 0x6 strh r0, [r1] b _080F6FB0 .align 2, 0 _080F6F9C: .4byte gUnknown_083DFEC4 _080F6FA0: .4byte 0x0000d15e _080F6FA4: .4byte 0x0000d15f _080F6FA8: .4byte REG_BLDY _080F6FAC: ldr r0, _080F6FB4 strh r1, [r0] _080F6FB0: pop {r0} bx r0 .align 2, 0 _080F6FB4: .4byte REG_BLDY thumb_func_end sub_80F6F64 thumb_func_start sub_80F6FB8 sub_80F6FB8: @ 80F6FB8 push {lr} lsls r0, 24 cmp r0, 0 bne _080F6FDC ldr r1, _080F6FD0 ldr r2, _080F6FD4 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080F6FD8 b _080F6FE8 .align 2, 0 _080F6FD0: .4byte REG_WIN0H _080F6FD4: .4byte 0x0000e8f0 _080F6FD8: .4byte 0x00000888 _080F6FDC: ldr r1, _080F6FF0 ldr r2, _080F6FF4 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080F6FF8 _080F6FE8: adds r0, r2, 0 strh r0, [r1] pop {r0} bx r0 .align 2, 0 _080F6FF0: .4byte REG_WIN0H _080F6FF4: .4byte 0x0000e8f0 _080F6FF8: .4byte 0x00000818 thumb_func_end sub_80F6FB8 thumb_func_start sub_80F6FFC sub_80F6FFC: @ 80F6FFC ldr r0, _080F7008 movs r1, 0 strh r1, [r0] adds r0, 0x4 strh r1, [r0] bx lr .align 2, 0 _080F7008: .4byte REG_BLDCNT thumb_func_end sub_80F6FFC thumb_func_start sub_80F700C sub_80F700C: @ 80F700C push {r4,r5,lr} lsls r1, 16 lsrs r1, 16 ldr r2, _080F7078 ldr r4, [r2] lsls r2, r1, 3 adds r2, r4, r2 ldr r3, _080F707C adds r2, r3 ldrh r3, [r2] lsls r2, r3, 2 adds r2, r3 lsls r2, 3 ldr r3, _080F7080 adds r5, r2, r3 adds r3, r0, 0 ldr r0, _080F7084 adds r4, r0 ldrh r4, [r4] cmp r1, r4 bcs _080F7060 ldrb r1, [r5, 0x1] movs r0, 0xD muls r1, r0 ldr r0, _080F7088 adds r1, r0 adds r0, r3, 0 bl StringCopy adds r3, r0, 0 movs r0, 0xFC strb r0, [r3] movs r0, 0x13 strb r0, [r3, 0x1] movs r0, 0x4B strb r0, [r3, 0x2] adds r3, 0x3 adds r1, r5, 0x4 adds r0, r3, 0 bl StringCopy adds r3, r0, 0 _080F7060: movs r0, 0xFC strb r0, [r3] movs r0, 0x13 strb r0, [r3, 0x1] movs r0, 0x80 strb r0, [r3, 0x2] movs r0, 0xFF strb r0, [r3, 0x3] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F7078: .4byte gUnknown_083DFEC4 _080F707C: .4byte 0x0000cee8 _080F7080: .4byte gTrainers _080F7084: .4byte 0x0000d158 _080F7088: .4byte gTrainerClassNames thumb_func_end sub_80F700C thumb_func_start sub_80F708C sub_80F708C: @ 80F708C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 ldr r0, _080F70E4 ldr r3, [r0] ldr r0, _080F70E8 adds r2, r3, r0 lsls r0, r4, 24 asrs r0, 24 ldrh r1, [r2] adds r0, r1 strh r0, [r2] lsls r0, 16 cmp r0, 0 bge _080F70B4 ldr r5, _080F70EC adds r0, r3, r5 ldrh r0, [r0] strh r0, [r2] _080F70B4: ldr r1, _080F70EC adds r0, r3, r1 movs r5, 0 ldrsh r1, [r2, r5] movs r5, 0 ldrsh r0, [r0, r5] cmp r1, r0 ble _080F70C8 movs r0, 0 strh r0, [r2] _080F70C8: ldr r1, _080F70F0 adds r0, r3, r1 strb r4, [r0] ldrh r1, [r2] ldr r2, _080F70F4 adds r0, r3, r2 strh r1, [r0] ldr r5, _080F70F8 adds r1, r3, r5 movs r0, 0 strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F70E4: .4byte gUnknown_083DFEC4 _080F70E8: .4byte 0x0000876e _080F70EC: .4byte 0x00008774 _080F70F0: .4byte 0x0000bc94 _080F70F4: .4byte 0x000087dc _080F70F8: .4byte 0x000087de thumb_func_end sub_80F708C thumb_func_start sub_80F70FC sub_80F70FC: @ 80F70FC push {r4-r6,lr} ldr r1, _080F711C ldr r0, [r1] ldr r2, _080F7120 adds r0, r2 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0x6 bls _080F7110 b _080F7218 _080F7110: lsls r0, 2 ldr r1, _080F7124 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F711C: .4byte gUnknown_083DFEC4 _080F7120: .4byte 0x000087de _080F7124: .4byte _080F7128 .align 2, 0 _080F7128: .4byte _080F7144 .4byte _080F714A .4byte _080F7164 .4byte _080F716C .4byte _080F71A0 .4byte _080F71BA .4byte _080F71EA _080F7144: bl sub_80F6ED4 b _080F71F8 _080F714A: movs r0, 0 bl sub_80F6E04 ldr r0, _080F715C ldr r1, [r0] ldr r2, _080F7160 adds r1, r2 b _080F7206 .align 2, 0 _080F715C: .4byte gUnknown_083DFEC4 _080F7160: .4byte 0x000087de _080F7164: movs r0, 0 bl sub_80F2F7C b _080F71FE _080F716C: ldr r4, [r4] ldr r2, _080F7194 adds r5, r4, r2 ldr r0, _080F7198 adds r6, r4, r0 ldrh r1, [r6] adds r0, r5, 0 bl sub_80F700C adds r0, r5, 0 bl sub_80F43D4 bl sub_80F105C ldrb r0, [r6] bl sub_80F0FFC ldr r2, _080F719C adds r4, r2 b _080F71CC .align 2, 0 _080F7194: .4byte 0x00008788 _080F7198: .4byte 0x0000876e _080F719C: .4byte 0x000087de _080F71A0: bl sub_80F0CD8 ldr r0, _080F71D4 ldr r1, [r0] ldr r0, _080F71D8 adds r2, r1, r0 movs r0, 0 strb r0, [r2] ldr r2, _080F71DC adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080F71BA: ldr r0, _080F71D4 ldr r1, [r0] ldr r0, _080F71D8 adds r4, r1, r0 ldrb r0, [r4] cmp r0, 0x1 bhi _080F71E0 bl sub_80F0D5C _080F71CC: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _080F721C .align 2, 0 _080F71D4: .4byte gUnknown_083DFEC4 _080F71D8: .4byte 0x0000bc95 _080F71DC: .4byte 0x000087de _080F71E0: ldr r2, _080F7210 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080F71EA: bl sub_80F6E9C lsls r0, 24 cmp r0, 0 bne _080F721C bl sub_80F0D5C _080F71F8: lsls r0, 24 cmp r0, 0 bne _080F721C _080F71FE: ldr r0, _080F7214 ldr r1, [r0] ldr r0, _080F7210 adds r1, r0 _080F7206: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080F721C .align 2, 0 _080F7210: .4byte 0x000087de _080F7214: .4byte gUnknown_083DFEC4 _080F7218: movs r0, 0 b _080F721E _080F721C: movs r0, 0x1 _080F721E: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80F70FC thumb_func_start sub_80F7224 sub_80F7224: @ 80F7224 push {r4,lr} lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _080F7260 adds r0, r1 movs r1, 0x30 bl PokemonGetField lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080F7264 ldr r0, [r0] ldr r3, _080F7268 adds r1, r0, r3 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldr r3, _080F726C adds r0, r3 adds r4, r0, r1 cmp r2, 0xFF beq _080F7270 adds r0, r2, 0 movs r1, 0x1D bl __udivsi3 b _080F7272 .align 2, 0 _080F7260: .4byte 0x03004360 _080F7264: .4byte gUnknown_083DFEC4 _080F7268: .4byte 0x00008fe9 _080F726C: .4byte 0x00008931 _080F7270: movs r0, 0x9 _080F7272: strb r0, [r4] pop {r4} pop {r0} bx r0 thumb_func_end sub_80F7224 thumb_func_start sub_80F727C sub_80F727C: @ 80F727C ldr r1, _080F7288 str r0, [r1] movs r1, 0 strb r1, [r0, 0xB] bx lr .align 2, 0 _080F7288: .4byte 0x020388b8 thumb_func_end sub_80F727C thumb_func_start sub_80F728C sub_80F728C: @ 80F728C push {lr} sub sp, 0x4 ldr r0, _080F72C4 ldrb r0, [r0, 0x14] lsrs r0, 3 bl sub_8064FD4 ldr r3, _080F72C8 ldr r2, [r3] ldr r1, [r0] str r1, [r2, 0x28] ldr r0, [r0, 0x4] str r0, [r2, 0x2C] ldr r0, _080F72CC adds r2, r0 movs r1, 0 strb r1, [r2] mov r0, sp strh r1, [r0] ldr r1, [r3] adds r1, 0x30 ldr r2, _080F72D0 bl CpuSet add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080F72C4: .4byte gSaveBlock2 _080F72C8: .4byte 0x020388b8 _080F72CC: .4byte 0x000010b0 _080F72D0: .4byte 0x01000800 thumb_func_end sub_80F728C thumb_func_start sub_80F72D4 sub_80F72D4: @ 80F72D4 push {r4-r7,lr} ldr r0, _080F72F4 ldr r1, [r0] ldr r2, _080F72F8 adds r0, r1, r2 ldrb r2, [r0] lsls r0, r2, 8 adds r0, 0x30 adds r5, r1, r0 cmp r2, 0xD beq _080F73A4 cmp r2, 0xD bgt _080F72FC cmp r2, 0 beq _080F7302 b _080F734C .align 2, 0 _080F72F4: .4byte 0x020388b8 _080F72F8: .4byte 0x000010b0 _080F72FC: cmp r2, 0xE beq _080F73F0 b _080F734C _080F7302: ldr r0, [r1, 0x28] adds r1, r5, 0 movs r2, 0x8 bl CpuFastSet movs r4, 0 adds r7, r5, 0 adds r7, 0xE0 _080F7312: ldr r6, _080F7344 ldr r0, [r6] ldr r0, [r0, 0x28] adds r0, 0x20 adds r4, 0x1 lsls r1, r4, 5 adds r1, r5, r1 movs r2, 0x8 bl CpuFastSet lsls r4, 16 lsrs r4, 16 cmp r4, 0x5 bls _080F7312 ldr r0, [r6] ldr r0, [r0, 0x28] adds r0, 0x40 adds r1, r7, 0 movs r2, 0x8 bl CpuFastSet ldr r1, [r6] ldr r0, _080F7348 adds r1, r0 b _080F7392 .align 2, 0 _080F7344: .4byte 0x020388b8 _080F7348: .4byte 0x000010b0 _080F734C: ldr r0, _080F739C ldr r0, [r0] ldr r0, [r0, 0x28] adds r0, 0x60 adds r1, r5, 0 movs r2, 0x8 bl CpuFastSet movs r4, 0 adds r7, r5, 0 adds r7, 0xE0 _080F7362: ldr r6, _080F739C ldr r0, [r6] ldr r0, [r0, 0x28] adds r0, 0x80 adds r4, 0x1 lsls r1, r4, 5 adds r1, r5, r1 movs r2, 0x8 bl CpuFastSet lsls r4, 16 lsrs r4, 16 cmp r4, 0x5 bls _080F7362 ldr r0, [r6] ldr r0, [r0, 0x28] adds r0, 0xA0 adds r1, r7, 0 movs r2, 0x8 bl CpuFastSet ldr r1, [r6] ldr r2, _080F73A0 adds r1, r2 _080F7392: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080F73FC .align 2, 0 _080F739C: .4byte 0x020388b8 _080F73A0: .4byte 0x000010b0 _080F73A4: ldr r0, [r1, 0x28] adds r0, 0xC0 adds r1, r5, 0 movs r2, 0x8 bl CpuFastSet movs r4, 0 adds r7, r5, 0 adds r7, 0xE0 _080F73B6: ldr r6, _080F73F4 ldr r0, [r6] ldr r0, [r0, 0x28] adds r0, 0xE0 adds r4, 0x1 lsls r1, r4, 5 adds r1, r5, r1 movs r2, 0x8 bl CpuFastSet lsls r4, 16 lsrs r4, 16 cmp r4, 0x5 bls _080F73B6 ldr r0, [r6] ldr r0, [r0, 0x28] movs r1, 0x80 lsls r1, 1 adds r0, r1 adds r1, r7, 0 movs r2, 0x8 bl CpuFastSet ldr r1, [r6] ldr r2, _080F73F8 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080F73F0: movs r0, 0 b _080F73FE .align 2, 0 _080F73F4: .4byte 0x020388b8 _080F73F8: .4byte 0x000010b0 _080F73FC: movs r0, 0x1 _080F73FE: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80F72D4 thumb_func_start sub_80F7404 sub_80F7404: @ 80F7404 push {lr} bl sub_80F728C _080F740A: bl sub_80F72D4 lsls r0, 24 cmp r0, 0 bne _080F740A pop {r0} bx r0 thumb_func_end sub_80F7404 thumb_func_start sub_80F7418 sub_80F7418: @ 80F7418 push {r4-r6,lr} lsls r1, 16 lsrs r5, r1, 16 lsls r2, 16 lsrs r6, r2, 16 ldr r2, _080F746C ldr r3, [r2] movs r1, 0 strb r1, [r3, 0x5] ldr r1, [r2] strb r0, [r1, 0x4] movs r3, 0 adds r4, r2, 0 movs r2, 0x1 _080F7434: ldr r0, [r4] adds r1, r0, 0x6 adds r1, r3 ldrb r0, [r0, 0x4] asrs r0, r3 ands r0, r2 strb r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _080F7434 bl sub_814A7FC lsls r0, r5, 16 asrs r0, 16 lsls r1, r6, 16 asrs r1, 16 ldr r2, _080F746C ldr r3, [r2] ldrh r2, [r3] ldrh r3, [r3, 0x2] bl sub_80F761C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F746C: .4byte 0x020388b8 thumb_func_end sub_80F7418 thumb_func_start sub_80F7470 sub_80F7470: @ 80F7470 push {r4,r5,lr} movs r4, 0 ldr r5, _080F74FC _080F7476: ldr r0, [r5] ldrh r0, [r0] adds r0, r4, r0 lsls r0, 16 lsrs r0, 16 bl FreeSpriteTilesByTag adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x2 bls _080F7476 ldr r4, _080F74FC ldr r0, [r4] ldrh r0, [r0, 0x2] bl FreeSpritePaletteByTag ldr r0, [r4] ldrh r0, [r0, 0x2] adds r0, 0x1 lsls r0, 16 lsrs r0, 16 bl FreeSpritePaletteByTag movs r4, 0 _080F74A8: ldr r0, _080F74FC ldr r0, [r0] lsls r1, r4, 2 adds r0, 0xC adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _080F74F6 bl DestroySprite adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _080F74A8 movs r4, 0 _080F74C8: ldr r5, _080F74FC ldr r0, [r5] lsls r1, r4, 2 adds r0, 0x14 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _080F74F6 bl DestroySprite adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3 bls _080F74C8 bl sub_814A7FC ldr r0, [r5] ldr r0, [r0, 0x24] cmp r0, 0 beq _080F74F6 bl DestroySprite _080F74F6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F74FC: .4byte 0x020388b8 thumb_func_end sub_80F7470 thumb_func_start sub_80F7500 sub_80F7500: @ 80F7500 push {r4,r5,lr} sub sp, 0x30 ldr r4, _080F7580 ldr r2, [r4] adds r0, r2, 0 adds r0, 0x30 str r0, [sp, 0x18] add r1, sp, 0x1C movs r5, 0 movs r0, 0x80 lsls r0, 5 strh r0, [r1] ldrh r1, [r2] mov r0, sp adds r0, 0x1E strh r1, [r0] add r1, sp, 0x20 ldr r0, _080F7584 str r0, [sp, 0x20] movs r0, 0xA4 lsls r0, 3 strh r0, [r1, 0x4] ldrh r0, [r2] adds r0, 0x1 strh r0, [r1, 0x6] add r0, sp, 0x28 movs r1, 0 movs r2, 0x8 bl memset add r1, sp, 0x18 mov r0, sp movs r2, 0x18 bl memcpy ldr r0, [r4] ldrb r0, [r0, 0xB] cmp r0, 0 beq _080F7558 mov r0, sp bl LoadTilesForSpriteSheets ldr r0, [r4] strb r5, [r0, 0xB] _080F7558: ldr r0, _080F7588 ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080F758C movs r0, 0x5 bl audio_play ldr r1, [r4] ldrb r0, [r1, 0x5] subs r0, 0x1 strb r0, [r1, 0x5] lsls r0, 24 cmp r0, 0 bge _080F75FE ldr r1, [r4] movs r0, 0x5 strb r0, [r1, 0x5] b _080F75FE .align 2, 0 _080F7580: .4byte 0x020388b8 _080F7584: .4byte gUnknown_08E8A7C4 _080F7588: .4byte 0x03001770 _080F758C: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080F75B0 movs r0, 0x5 bl audio_play ldr r1, [r4] ldrb r0, [r1, 0x5] adds r0, 0x1 strb r0, [r1, 0x5] lsls r0, 24 asrs r0, 24 cmp r0, 0x5 ble _080F75FE ldr r0, [r4] strb r5, [r0, 0x5] b _080F75FE _080F75B0: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080F7602 movs r0, 0x5 bl audio_play ldr r0, [r4] movs r1, 0x5 ldrsb r1, [r0, r1] cmp r1, 0x4 beq _080F75DC cmp r1, 0x5 beq _080F7610 adds r0, 0x6 adds r1, r0, r1 movs r2, 0 ldrb r0, [r1] cmp r0, 0 bne _080F75FC movs r2, 0x1 b _080F75FC _080F75DC: strb r5, [r0, 0x4] movs r3, 0 _080F75E0: ldr r2, [r4] adds r0, r2, 0x6 adds r0, r3 ldrb r0, [r0] lsls r0, r3 ldrb r1, [r2, 0x4] orrs r0, r1 strb r0, [r2, 0x4] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _080F75E0 b _080F7610 _080F75FC: strb r2, [r1] _080F75FE: movs r0, 0x1 b _080F7612 _080F7602: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080F75FE movs r0, 0x5 bl audio_play _080F7610: movs r0, 0 _080F7612: add sp, 0x30 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80F7500 thumb_func_start sub_80F761C sub_80F761C: @ 80F761C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x5C adds r5, r2, 0 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x4C] lsls r1, 16 lsrs r1, 16 str r1, [sp, 0x50] lsls r5, 16 lsrs r5, 16 lsls r3, 16 lsrs r3, 16 str r3, [sp, 0x54] ldr r0, _080F7820 mov r8, r0 ldr r0, [r0] adds r0, 0x30 str r0, [sp, 0x1C] add r1, sp, 0x20 movs r2, 0 mov r9, r2 movs r0, 0x80 lsls r0, 5 strh r0, [r1] mov r0, sp adds r0, 0x22 strh r5, [r0] add r1, sp, 0x24 ldr r0, _080F7824 str r0, [sp, 0x24] movs r0, 0xA4 lsls r0, 3 strh r0, [r1, 0x4] adds r0, r5, 0x1 strh r0, [r1, 0x6] add r0, sp, 0x2C movs r1, 0 movs r2, 0x8 bl memset add r6, sp, 0x1C add r0, sp, 0x4 adds r1, r6, 0 movs r2, 0x18 bl memcpy mov r3, r8 ldr r0, [r3] ldr r0, [r0, 0x2C] str r0, [sp, 0x34] add r0, sp, 0x38 add r1, sp, 0x54 ldrh r1, [r1] strh r1, [r0] add r1, sp, 0x3C ldr r0, _080F7828 str r0, [sp, 0x3C] ldr r0, [sp, 0x54] adds r0, 0x1 strh r0, [r1, 0x4] add r0, sp, 0x44 movs r1, 0 movs r2, 0x8 bl memset add r4, sp, 0x34 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x18 bl memcpy strh r5, [r4] add r2, sp, 0x54 ldrh r2, [r2] strh r2, [r4, 0x2] ldr r0, _080F782C str r0, [r4, 0x4] ldr r0, _080F7830 str r0, [r4, 0x8] mov r3, r9 str r3, [r4, 0xC] ldr r0, _080F7834 str r0, [r4, 0x10] ldr r0, _080F7838 str r0, [r4, 0x14] mov r0, r8 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0xB] add r0, sp, 0x4 bl AllocTilesForSpriteSheets adds r0, r6, 0 bl LoadSpritePalettes movs r5, 0 ldr r1, [sp, 0x4C] lsls r0, r1, 16 movs r2, 0x80 lsls r2, 14 adds r2, r0 mov r8, r2 str r0, [sp, 0x58] ldr r3, [sp, 0x50] lsls r0, r3, 16 movs r1, 0x80 lsls r1, 14 adds r7, r0, r1 mov r9, r0 _080F7700: adds r0, r4, 0 mov r2, r8 asrs r1, r2, 16 asrs r2, r7, 16 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 bne _080F7718 b _080F7850 _080F7718: ldr r6, _080F7820 ldr r2, [r6] lsls r0, r5, 2 adds r2, 0xC adds r2, r0 lsls r0, r3, 4 adds r0, r3 lsls r0, 2 ldr r1, _080F783C adds r0, r1 str r0, [r2] lsls r1, r5, 24 lsrs r1, 24 bl StartSpriteAnim adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1 bls _080F7700 ldr r0, [r6] ldr r1, [r0, 0x10] mov r3, r9 asrs r0, r3, 16 adds r0, 0x60 strh r0, [r1, 0x22] ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] ldr r0, _080F7840 str r0, [r4, 0x8] ldr r0, _080F7844 str r0, [r4, 0x14] ldr r0, _080F7848 str r0, [r4, 0x4] movs r5, 0 ldr r0, [sp, 0x58] movs r1, 0x80 lsls r1, 14 adds r0, r1 mov r10, r0 _080F7770: lsls r2, r5, 4 adds r2, 0x10 mov r3, r9 asrs r3, 16 mov r8, r3 add r2, r8 lsls r2, 16 asrs r2, 16 adds r0, r4, 0 mov r3, r10 asrs r1, r3, 16 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 beq _080F7860 ldr r6, _080F7820 ldr r1, [r6] lsls r0, r5, 2 adds r1, 0x14 adds r1, r0 lsls r0, r3, 4 adds r0, r3 lsls r0, 2 ldr r7, _080F783C adds r0, r7 str r0, [r1] strh r5, [r0, 0x2E] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3 bls _080F7770 ldr r0, _080F784C str r0, [r4, 0x14] adds r0, r4, 0 movs r1, 0 movs r2, 0 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 beq _080F7874 ldr r1, [r6] lsls r0, r3, 4 adds r0, r3 lsls r0, 2 adds r0, r7 str r0, [r1, 0x24] ldrb r2, [r0, 0x1] movs r1, 0x3F ands r1, r2 movs r2, 0x40 orrs r1, r2 strb r1, [r0, 0x1] ldr r0, [r6] ldr r2, [r0, 0x24] ldrb r0, [r2, 0x3] movs r1, 0xC0 orrs r0, r1 strb r0, [r2, 0x3] ldr r0, [r6] ldr r0, [r0, 0x24] movs r1, 0x9 bl StartSpriteAnim ldr r1, [r6] ldr r2, [r1, 0x24] ldr r3, [sp, 0x58] asrs r0, r3, 16 adds r0, 0x20 strh r0, [r2, 0x20] ldr r2, [r1, 0x24] mov r0, r8 adds r0, 0x50 strh r0, [r2, 0x22] ldr r0, [r1, 0x24] movs r1, 0x1 movs r2, 0x2 movs r3, 0 bl CalcCenterToCornerVec b _080F787A .align 2, 0 _080F7820: .4byte 0x020388b8 _080F7824: .4byte gUnknown_08E8A7C4 _080F7828: .4byte gUnknown_08E966B8 _080F782C: .4byte gUnknown_083E5214 _080F7830: .4byte gSpriteAnimTable_83E52AC _080F7834: .4byte gDummySpriteAffineAnimTable _080F7838: .4byte nullsub_65 _080F783C: .4byte 0x02020004 _080F7840: .4byte gSpriteAnimTable_83E5274 _080F7844: .4byte sub_80F78CC _080F7848: .4byte gUnknown_083E521C _080F784C: .4byte SpriteCallbackDummy _080F7850: ldr r0, _080F785C ldr r0, [r0] lsls r1, r5, 2 adds r0, 0xC b _080F7868 .align 2, 0 _080F785C: .4byte 0x020388b8 _080F7860: ldr r0, _080F7870 ldr r0, [r0] lsls r1, r5, 2 adds r0, 0x14 _080F7868: adds r0, r1 movs r1, 0 str r1, [r0] b _080F78B0 .align 2, 0 _080F7870: .4byte 0x020388b8 _080F7874: ldr r1, [r6] movs r0, 0 str r0, [r1, 0x24] _080F787A: ldr r4, _080F78C0 ldr r1, [r4] ldr r0, [sp, 0x50] adds r0, 0x8 strb r0, [r1, 0xA] ldr r1, [sp, 0x54] adds r1, 0x1 lsls r1, 16 lsrs r1, 16 movs r0, 0x30 str r0, [sp] movs r0, 0 movs r2, 0xF movs r3, 0 bl sub_814A5C0 ldr r0, [sp, 0x4C] adds r0, 0x8 lsls r0, 24 lsrs r0, 24 ldr r1, [r4] ldrb r1, [r1, 0xA] bl sub_814A880 ldr r0, _080F78C4 bl sub_814AABC _080F78B0: add sp, 0x5C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F78C0: .4byte 0x020388b8 _080F78C4: .4byte sub_80F7908 thumb_func_end sub_80F761C thumb_func_start nullsub_65 nullsub_65: @ 80F78C8 bx lr thumb_func_end nullsub_65 thumb_func_start sub_80F78CC sub_80F78CC: @ 80F78CC push {lr} adds r2, r0, 0 ldr r0, _080F78F4 ldr r0, [r0] movs r3, 0x2E ldrsh r1, [r2, r3] adds r0, 0x6 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080F78F8 lsls r1, 1 adds r1, 0x1 lsls r1, 24 lsrs r1, 24 adds r0, r2, 0 bl StartSpriteAnim b _080F7902 .align 2, 0 _080F78F4: .4byte 0x020388b8 _080F78F8: lsls r1, 25 lsrs r1, 24 adds r0, r2, 0 bl StartSpriteAnim _080F7902: pop {r0} bx r0 thumb_func_end sub_80F78CC thumb_func_start sub_80F7908 sub_80F7908: @ 80F7908 ldr r1, _080F791C ldr r2, [r1] movs r1, 0x5 ldrsb r1, [r2, r1] lsls r1, 4 ldrb r2, [r2, 0xA] adds r1, r2 strh r1, [r0, 0x22] bx lr .align 2, 0 _080F791C: .4byte 0x020388b8 thumb_func_end sub_80F7908 thumb_func_start sub_80F7920 sub_80F7920: @ 80F7920 push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 cmp r2, 0 bne _080F7930 ldr r2, _080F793C _080F7930: movs r3, 0x10 bl sub_80F7960 pop {r1} bx r1 .align 2, 0 _080F793C: .4byte gUnknown_083E49F4 thumb_func_end sub_80F7920 thumb_func_start sub_80F7940 sub_80F7940: @ 80F7940 push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 cmp r2, 0 bne _080F7950 ldr r2, _080F795C _080F7950: movs r3, 0x1 bl sub_80F7960 pop {r1} bx r1 .align 2, 0 _080F795C: .4byte gUnknown_083E49F4 thumb_func_end sub_80F7940 thumb_func_start sub_80F7960 sub_80F7960: @ 80F7960 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x28 lsls r0, 16 lsls r1, 16 lsrs r1, 16 ldr r4, _080F79DC str r4, [sp, 0x18] movs r4, 0x80 add r5, sp, 0x18 lsrs r6, r0, 16 orrs r0, r4 str r0, [r5, 0x4] str r2, [sp, 0x20] ldr r0, _080F79E0 mov r8, r0 add r4, sp, 0x20 ldr r0, [r4, 0x4] mov r2, r8 ands r0, r2 orrs r0, r1 str r0, [r4, 0x4] mov r0, sp movs r2, 0 strh r6, [r0] strh r1, [r0, 0x2] ldr r0, _080F79E4 str r0, [sp, 0x4] ldr r0, _080F79E8 str r0, [sp, 0x8] str r2, [sp, 0xC] ldr r0, _080F79EC str r0, [sp, 0x10] ldr r0, _080F79F0 str r0, [sp, 0x14] lsls r3, 23 lsrs r3, 16 ldr r0, [r5, 0x4] mov r1, r8 ands r0, r1 orrs r0, r3 str r0, [r5, 0x4] adds r0, r5, 0 bl LoadSpriteSheet adds r0, r4, 0 bl LoadSpritePalette mov r0, sp movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 bne _080F79F4 movs r0, 0 b _080F79FE .align 2, 0 _080F79DC: .4byte gUnknown_083E4A14 _080F79E0: .4byte 0xffff0000 _080F79E4: .4byte gUnknown_083E52B4 _080F79E8: .4byte gSpriteAnimTable_83E533C _080F79EC: .4byte gDummySpriteAffineAnimTable _080F79F0: .4byte nullsub_65 _080F79F4: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F7A0C adds r0, r1 _080F79FE: add sp, 0x28 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080F7A0C: .4byte 0x02020004 thumb_func_end sub_80F7960 thumb_func_start sub_80F7A10 sub_80F7A10: @ 80F7A10 lsls r0, 24 lsrs r0, 17 ldr r2, _080F7A28 adds r0, r2 ldr r2, _080F7A2C str r0, [r2] str r1, [r2, 0x4] ldr r0, _080F7A30 str r0, [r2, 0x8] ldr r0, [r2, 0x8] bx lr .align 2, 0 _080F7A28: .4byte gUnknown_083E4A14 _080F7A2C: .4byte 0x040000d4 _080F7A30: .4byte 0x80000040 thumb_func_end sub_80F7A10 thumb_func_start sub_80F7A34 sub_80F7A34: @ 80F7A34 push {r4,lr} ldr r0, _080F7A64 movs r1, 0 strb r1, [r0] adds r2, r0, 0 adds r2, 0x29 strb r1, [r2] movs r2, 0 adds r4, r0, 0x2 ldr r3, _080F7A68 _080F7A48: lsls r0, r2, 1 adds r1, r4, r0 adds r0, r3 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x5 bls _080F7A48 pop {r4} pop {r0} bx r0 .align 2, 0 _080F7A64: .4byte 0x020284c8 _080F7A68: .4byte gUnknown_083E537C thumb_func_end sub_80F7A34 thumb_func_start sub_80F7A6C sub_80F7A6C: @ 80F7A6C ldr r0, _080F7A78 movs r2, 0 movs r1, 0x1 strb r1, [r0] strb r2, [r0, 0x1] bx lr .align 2, 0 _080F7A78: .4byte 0x020284c8 thumb_func_end sub_80F7A6C thumb_func_start sub_80F7A7C sub_80F7A7C: @ 80F7A7C push {lr} bl sub_80F83F8 pop {r0} bx r0 thumb_func_end sub_80F7A7C thumb_func_start sub_80F7A88 sub_80F7A88: @ 80F7A88 ldr r0, _080F7A94 movs r2, 0 movs r1, 0x4 strb r1, [r0] strb r2, [r0, 0x1] bx lr .align 2, 0 _080F7A94: .4byte 0x020284c8 thumb_func_end sub_80F7A88 thumb_func_start sub_80F7A98 sub_80F7A98: @ 80F7A98 push {lr} bl sub_81099CC pop {r0} bx r0 thumb_func_end sub_80F7A98 thumb_func_start sub_80F7AA4 sub_80F7AA4: @ 80F7AA4 push {lr} ldr r0, _080F7AC8 ldrb r1, [r0, 0xB] lsls r1, 8 ldrb r0, [r0, 0xA] orrs r0, r1 movs r1, 0xA bl __umodsi3 lsls r0, 16 lsrs r0, 17 cmp r0, 0x4 bhi _080F7B00 lsls r0, 2 ldr r1, _080F7ACC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F7AC8: .4byte gSaveBlock2 _080F7ACC: .4byte _080F7AD0 .align 2, 0 _080F7AD0: .4byte _080F7AE4 .4byte _080F7AEA .4byte _080F7AF0 .4byte _080F7AF6 .4byte _080F7AFC _080F7AE4: bl sub_80F7A34 b _080F7B00 _080F7AEA: bl sub_80F7A6C b _080F7B00 _080F7AF0: bl sub_80F7A98 b _080F7B00 _080F7AF6: bl sub_80F7A7C b _080F7B00 _080F7AFC: bl sub_80F7A88 _080F7B00: bl sub_80F83D0 pop {r0} bx r0 thumb_func_end sub_80F7AA4 thumb_func_start GetCurrentMauvilleOldMan GetCurrentMauvilleOldMan: @ 80F7B08 ldr r0, _080F7B10 ldrb r0, [r0] bx lr .align 2, 0 _080F7B10: .4byte 0x020284c8 thumb_func_end GetCurrentMauvilleOldMan thumb_func_start sub_80F7B14 sub_80F7B14: @ 80F7B14 push {r4,lr} ldr r4, _080F7B28 bl GetCurrentMauvilleOldMan lsls r0, 24 lsrs r0, 24 strh r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080F7B28: .4byte 0x0202e8dc thumb_func_end sub_80F7B14 thumb_func_start sub_80F7B2C sub_80F7B2C: @ 80F7B2C ldr r0, _080F7B38 ldr r1, _080F7B3C adds r1, 0x29 ldrb r1, [r1] strh r1, [r0] bx lr .align 2, 0 _080F7B38: .4byte 0x0202e8dc _080F7B3C: .4byte 0x020284c8 thumb_func_end sub_80F7B2C thumb_func_start sub_80F7B40 sub_80F7B40: @ 80F7B40 push {r4,r5,lr} ldr r5, _080F7B98 adds r0, r5, 0 adds r0, 0x1A ldr r4, _080F7B9C adds r1, r4, 0 bl StringCopy movs r2, 0 adds r3, r5, 0 adds r3, 0x25 adds r4, 0xA _080F7B58: adds r1, r3, r2 adds r0, r2, r4 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x3 bls _080F7B58 movs r2, 0 movs r0, 0x29 adds r0, r5 mov r12, r0 adds r4, r5, 0x2 adds r3, r5, 0 adds r3, 0xE _080F7B78: lsls r0, r2, 1 adds r1, r4, r0 adds r0, r3, r0 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x5 bls _080F7B78 movs r0, 0x1 mov r1, r12 strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F7B98: .4byte 0x020284c8 _080F7B9C: .4byte gSaveBlock2 thumb_func_end sub_80F7B40 thumb_func_start sub_80F7BA0 sub_80F7BA0: @ 80F7BA0 push {r4-r7,lr} ldr r1, _080F7C48 ldr r0, _080F7C4C ldrh r0, [r0] adds r5, r1, 0 adds r5, 0xE cmp r0, 0 bne _080F7BB2 adds r5, r1, 0x2 _080F7BB2: ldr r2, _080F7C50 adds r4, r2, 0 movs r6, 0 _080F7BB8: ldrh r1, [r5] adds r5, 0x2 adds r0, r2, 0 bl sub_80EB3FC adds r2, r0, 0 adds r7, r6, 0x1 cmp r2, r4 beq _080F7BDA movs r1, 0x37 _080F7BCC: ldrb r0, [r4] cmp r0, 0 bne _080F7BD4 strb r1, [r4] _080F7BD4: adds r4, 0x1 cmp r2, r4 bne _080F7BCC _080F7BDA: adds r4, 0x1 movs r0, 0 strb r0, [r2] adds r2, 0x1 ldrh r1, [r5] adds r5, 0x2 adds r0, r2, 0 bl sub_80EB3FC adds r2, r0, 0 cmp r2, r4 beq _080F7C02 movs r1, 0x37 _080F7BF4: ldrb r0, [r4] cmp r0, 0 bne _080F7BFC strb r1, [r4] _080F7BFC: adds r4, 0x1 cmp r2, r4 bne _080F7BF4 _080F7C02: adds r4, 0x1 movs r0, 0xFE strb r0, [r2] adds r2, 0x1 ldrh r1, [r5] adds r5, 0x2 adds r0, r2, 0 bl sub_80EB3FC adds r2, r0, 0 cmp r2, r4 beq _080F7C2A movs r1, 0x37 _080F7C1C: ldrb r0, [r4] cmp r0, 0 bne _080F7C24 strb r1, [r4] _080F7C24: adds r4, 0x1 cmp r2, r4 bne _080F7C1C _080F7C2A: cmp r6, 0 bne _080F7C3A movs r0, 0xFC strb r0, [r2] adds r2, 0x1 movs r0, 0xF strb r0, [r2] adds r2, 0x1 _080F7C3A: lsls r0, r7, 16 lsrs r6, r0, 16 cmp r6, 0x1 bls _080F7BB8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F7C48: .4byte 0x020284c8 _080F7C4C: .4byte 0x0202e8cc _080F7C50: .4byte 0x020234cc thumb_func_end sub_80F7BA0 thumb_func_start sub_80F7C54 sub_80F7C54: @ 80F7C54 push {lr} ldr r0, _080F7C6C ldrb r0, [r0] bl sub_80F7F80 bl sub_8071FFC bl sub_80655F0 pop {r0} bx r0 .align 2, 0 _080F7C6C: .4byte 0x0202e8cc thumb_func_end sub_80F7C54 thumb_func_start sub_80F7C70 sub_80F7C70: @ 80F7C70 ldr r0, _080F7C7C ldr r1, _080F7C80 ldrb r1, [r1, 0x1] strh r1, [r0] bx lr .align 2, 0 _080F7C7C: .4byte 0x0202e8dc _080F7C80: .4byte 0x020284c8 thumb_func_end sub_80F7C70 thumb_func_start sub_80F7C84 sub_80F7C84: @ 80F7C84 ldr r1, _080F7C8C movs r0, 0x1 strb r0, [r1, 0x1] bx lr .align 2, 0 _080F7C8C: .4byte 0x020284c8 thumb_func_end sub_80F7C84 thumb_func_start sub_80F7C90 sub_80F7C90: @ 80F7C90 push {lr} bl sub_80EB8EC lsls r0, 16 lsrs r1, r0, 16 ldr r0, _080F7CA8 cmp r1, r0 bne _080F7CB0 ldr r1, _080F7CAC movs r0, 0 b _080F7CBA .align 2, 0 _080F7CA8: .4byte 0x0000ffff _080F7CAC: .4byte 0x0202e8dc _080F7CB0: ldr r0, _080F7CC0 bl sub_80EB3FC ldr r1, _080F7CC4 movs r0, 0x1 _080F7CBA: strh r0, [r1] pop {r0} bx r0 .align 2, 0 _080F7CC0: .4byte 0x020231cc _080F7CC4: .4byte 0x0202e8dc thumb_func_end sub_80F7C90 thumb_func_start sub_80F7CC8 sub_80F7CC8: @ 80F7CC8 push {lr} ldr r2, _080F7CDC ldrb r0, [r2, 0x1] cmp r0, 0xA bne _080F7CE4 ldr r1, _080F7CE0 movs r0, 0 strh r0, [r1] strb r0, [r2, 0x1] b _080F7CEA .align 2, 0 _080F7CDC: .4byte 0x020284c8 _080F7CE0: .4byte 0x0202e8dc _080F7CE4: ldr r1, _080F7CF0 movs r0, 0x1 strh r0, [r1] _080F7CEA: pop {r0} bx r0 .align 2, 0 _080F7CF0: .4byte 0x0202e8dc thumb_func_end sub_80F7CC8 thumb_func_start sub_80F7CF4 sub_80F7CF4: @ 80F7CF4 push {r4-r6,lr} ldr r5, _080F7D50 ldrb r0, [r5, 0x1] cmp r0, 0 bne _080F7D02 bl sub_80F7DC0 _080F7D02: ldrb r0, [r5, 0x1] lsls r0, 1 adds r6, r5, 0x4 adds r0, r6 ldrh r1, [r0] ldr r0, _080F7D54 cmp r1, r0 beq _080F7D68 bl Random adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 movs r0, 0x7 ands r4, r0 ldr r0, _080F7D58 ldrb r1, [r5, 0x1] lsls r1, 1 adds r1, r6 ldrh r1, [r1] bl sub_80EB3FC adds r2, r0, 0 ldr r1, _080F7D5C bl StringCopy adds r2, r0, 0 ldr r0, _080F7D60 lsls r4, 2 adds r4, r0 ldr r1, [r4] adds r0, r2, 0 bl StringCopy adds r2, r0, 0 ldr r1, _080F7D64 bl StringCopy b _080F7D88 .align 2, 0 _080F7D50: .4byte 0x020284c8 _080F7D54: .4byte 0x0000ffff _080F7D58: .4byte 0x020234cc _080F7D5C: .4byte gUnknown_0841134B _080F7D60: .4byte gUnknown_083E5388 _080F7D64: .4byte gUnknown_0841134F _080F7D68: ldr r0, _080F7DA0 ldr r3, _080F7DA4 ldrb r1, [r5, 0x2] adds r2, r1, 0x1 strb r2, [r5, 0x2] lsls r1, 24 lsrs r1, 24 adds r2, r5, 0 adds r2, 0x18 adds r1, r2 ldrb r1, [r1] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl StringCopy _080F7D88: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 16 cmp r0, 0 bne _080F7DA8 movs r0, 0xA b _080F7DAC .align 2, 0 _080F7DA0: .4byte 0x020234cc _080F7DA4: .4byte gUnknown_083E53A8 _080F7DA8: ldrb r0, [r5, 0x1] adds r0, 0x1 _080F7DAC: strb r0, [r5, 0x1] ldr r1, _080F7DBC movs r0, 0x1 strh r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F7DBC: .4byte 0x0202e8dc thumb_func_end sub_80F7CF4 thumb_func_start sub_80F7DC0 sub_80F7DC0: @ 80F7DC0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 ldr r1, _080F7E84 mov r0, sp movs r2, 0x18 bl memcpy movs r5, 0 movs r0, 0x2 add r0, sp mov r8, r0 ldr r1, _080F7E88 adds r1, 0x18 adds r3, r1, 0 _080F7DE4: adds r0, r3, r5 strb r5, [r0] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x7 bls _080F7DE4 movs r5, 0 ldr r2, _080F7E88 adds r2, 0x4 mov r9, r2 adds r6, r1, 0 _080F7DFC: bl Random lsls r0, 16 lsrs r0, 16 adds r4, r5, 0x1 adds r1, r4, 0 bl __modsi3 lsls r0, 16 lsrs r1, r0, 16 adds r2, r6, r5 ldrb r7, [r2] adds r1, r6, r1 ldrb r0, [r1] strb r0, [r2] strb r7, [r1] lsls r4, 16 lsrs r5, r4, 16 cmp r5, 0x7 bls _080F7DFC movs r3, 0 mov r10, r3 movs r5, 0 _080F7E2A: lsls r4, r5, 2 mov r1, sp adds r0, r1, r4 ldrb r0, [r0] bl sub_80EAE88 add r4, r8 strh r0, [r4] add r0, r10 lsls r0, 16 lsrs r0, 16 mov r10, r0 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x5 bls _080F7E2A movs r0, 0 ldr r2, _080F7E88 strb r0, [r2, 0x2] movs r7, 0 movs r5, 0 _080F7E56: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x2 bhi _080F7E90 cmp r7, 0x7 bhi _080F7E90 lsls r0, r5, 1 add r0, r9 ldr r1, _080F7E8C strh r1, [r0] adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 adds r4, r5, 0x1 b _080F7EE2 .align 2, 0 _080F7E84: .4byte gUnknown_083E53C8 _080F7E88: .4byte 0x020284c8 _080F7E8C: .4byte 0x0000ffff _080F7E90: bl Random lsls r0, 16 lsrs r0, 16 mov r1, r10 bl __umodsi3 lsls r0, 16 lsrs r2, r0, 16 movs r1, 0 adds r4, r5, 0x1 lsls r6, r5, 1 cmp r5, 0x5 bhi _080F7ECC mov r3, r8 ldrh r0, [r3] b _080F7EC2 _080F7EB2: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r5, 0x5 bhi _080F7ECC lsls r0, r1, 2 adds r0, r3, r0 ldrh r0, [r0] _080F7EC2: subs r0, r2, r0 lsls r0, 16 lsrs r2, r0, 16 cmp r0, 0 bgt _080F7EB2 _080F7ECC: cmp r1, 0x6 bne _080F7ED2 movs r1, 0 _080F7ED2: lsls r0, r1, 2 add r0, sp ldrh r0, [r0] bl sub_80EB784 mov r2, r9 adds r1, r2, r6 strh r0, [r1] _080F7EE2: lsls r0, r4, 16 lsrs r5, r0, 16 cmp r5, 0x9 bls _080F7E56 add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80F7DC0 thumb_func_start sub_80F7EFC sub_80F7EFC: @ 80F7EFC ldr r0, _080F7F08 adds r0, 0x29 movs r1, 0 strb r1, [r0] bx lr .align 2, 0 _080F7F08: .4byte 0x020284c8 thumb_func_end sub_80F7EFC thumb_func_start sub_80F7F0C sub_80F7F0C: @ 80F7F0C ldr r1, _080F7F14 movs r0, 0 strb r0, [r1, 0x1] bx lr .align 2, 0 _080F7F14: .4byte 0x020284c8 thumb_func_end sub_80F7F0C thumb_func_start sub_80F7F18 sub_80F7F18: @ 80F7F18 push {lr} bl sub_8109A20 pop {r0} bx r0 thumb_func_end sub_80F7F18 thumb_func_start sub_80F7F24 sub_80F7F24: @ 80F7F24 push {lr} bl sub_80F8428 pop {r0} bx r0 thumb_func_end sub_80F7F24 thumb_func_start sub_80F7F30 sub_80F7F30: @ 80F7F30 push {lr} bl GetCurrentMauvilleOldMan lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080F7F76 lsls r0, 2 ldr r1, _080F7F48 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F7F48: .4byte _080F7F4C .align 2, 0 _080F7F4C: .4byte _080F7F60 .4byte _080F7F66 .4byte _080F7F72 .4byte _080F7F6C .4byte _080F7F76 _080F7F60: bl sub_80F7EFC b _080F7F76 _080F7F66: bl sub_80F7F0C b _080F7F76 _080F7F6C: bl sub_80F7F24 b _080F7F76 _080F7F72: bl sub_80F7F18 _080F7F76: bl sub_80F83D0 pop {r0} bx r0 thumb_func_end sub_80F7F30 thumb_func_start sub_80F7F80 sub_80F7F80: @ 80F7F80 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080F7FA8 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080F7FAC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x12] pop {r4} pop {r0} bx r0 .align 2, 0 _080F7FA8: .4byte sub_80F8184 _080F7FAC: .4byte 0x03004b20 thumb_func_end sub_80F7F80 thumb_func_start sub_80F7FB0 sub_80F7FB0: @ 80F7FB0 push {r4-r7,lr} adds r6, r1, 0 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0x5 bls _080F7FBE b _080F817A _080F7FBE: lsls r0, 2 ldr r1, _080F7FC8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F7FC8: .4byte _080F7FCC .align 2, 0 _080F7FCC: .4byte _080F7FE4 .4byte _080F817A .4byte _080F8040 .4byte _080F8074 .4byte _080F8074 .4byte _080F817A _080F7FE4: ldr r2, _080F8034 ldr r0, _080F8038 ldrh r0, [r0] adds r1, r2, 0 adds r1, 0xE cmp r0, 0 bne _080F7FF4 adds r1, r2, 0x2 _080F7FF4: adds r2, r1, 0 adds r1, r6, 0 adds r1, 0xC movs r3, 0x5 _080F7FFC: ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 subs r3, 0x1 cmp r3, 0 bge _080F7FFC ldr r2, _080F803C adds r4, r2, 0 movs r2, 0 adds r1, r6, 0 adds r1, 0x18 movs r3, 0x5 _080F8016: ldrh r0, [r1] orrs r0, r4 strh r0, [r1] strh r2, [r1, 0x2] strh r2, [r1, 0x4] strh r2, [r1, 0x6] adds r1, 0x8 subs r3, 0x1 cmp r3, 0 bge _080F8016 movs r0, 0 strb r0, [r6] strb r0, [r6, 0x1] strh r0, [r6, 0x4] b _080F817A .align 2, 0 _080F8034: .4byte 0x020284c8 _080F8038: .4byte 0x0202e8cc _080F803C: .4byte 0x0000ffff _080F8040: ldrb r1, [r6] lsls r1, 1 adds r0, r6, 0 adds r0, 0xC adds r0, r1 ldrh r4, [r0] lsrs r0, r4, 9 ldr r1, _080F8070 ands r1, r4 bl sub_814A2D0 adds r1, r0, 0 movs r0, 0 strh r0, [r6, 0x4] movs r2, 0x3 ands r2, r4 lsrs r4, 3 movs r0, 0x1 ands r4, r0 adds r2, r4 adds r0, r6, 0 bl sub_814A2EC b _080F817A .align 2, 0 _080F8070: .4byte 0x000001ff _080F8074: ldrb r1, [r6, 0x1] lsls r0, r1, 3 adds r0, 0x18 adds r7, r6, r0 ldrb r0, [r6, 0x3] cmp r0, 0x1 beq _080F8124 cmp r0, 0x1 bgt _080F808C cmp r0, 0 beq _080F8092 b _080F817A _080F808C: cmp r0, 0xFE beq _080F8170 b _080F817A _080F8092: ldrb r0, [r6, 0x2] cmp r0, 0 bne _080F80D0 cmp r1, 0x6 beq _080F80A2 ldrh r0, [r7] cmp r0, 0xFF bne _080F80A6 _080F80A2: movs r0, 0xFE b _080F8178 _080F80A6: ldrh r0, [r7, 0x2] strb r0, [r6, 0x2] ldrh r0, [r7] cmp r0, 0x32 bhi _080F80CA movs r1, 0x3 bl __udivsi3 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 lsls r0, r1, 1 adds r0, r1 adds r0, 0xF9 lsls r0, 16 lsrs r0, 16 bl m4aSongNumStart _080F80CA: movs r0, 0x1 strb r0, [r6, 0x3] b _080F8114 _080F80D0: ldrh r1, [r6, 0xA] movs r2, 0xA ldrsh r0, [r6, r2] cmp r0, 0xA ble _080F80E0 ldrh r0, [r6, 0x6] subs r0, 0x2 strh r0, [r6, 0x6] _080F80E0: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080F80EE ldrh r0, [r6, 0x8] adds r0, 0x40 b _080F80F2 _080F80EE: ldrh r0, [r6, 0x8] subs r0, 0x40 _080F80F2: strh r0, [r6, 0x8] ldr r4, _080F811C ldr r5, _080F8120 ldrh r2, [r6, 0x6] adds r0, r4, 0 adds r1, r5, 0 bl m4aMPlayVolumeControl movs r0, 0x8 ldrsh r2, [r6, r0] adds r0, r4, 0 adds r1, r5, 0 bl m4aMPlayPitchControl ldrh r0, [r6, 0xA] adds r0, 0x1 strh r0, [r6, 0xA] _080F8114: ldrb r0, [r6, 0x2] subs r0, 0x1 strb r0, [r6, 0x2] b _080F817A .align 2, 0 _080F811C: .4byte 0x03007400 _080F8120: .4byte 0x0000ffff _080F8124: adds r0, r1, 0x1 movs r1, 0 strb r0, [r6, 0x1] strb r1, [r6, 0x3] ldrh r0, [r7] cmp r0, 0x32 bhi _080F817A ldrh r0, [r7, 0x6] lsls r0, 4 movs r1, 0x80 lsls r1, 1 adds r0, r1 strh r0, [r6, 0x6] ldr r4, _080F8168 ldr r5, _080F816C ldrh r2, [r6, 0x6] adds r0, r4, 0 adds r1, r5, 0 bl m4aMPlayVolumeControl movs r2, 0x80 lsls r2, 2 adds r0, r2, 0 ldrh r7, [r7, 0x4] adds r0, r7 strh r0, [r6, 0x8] movs r0, 0x8 ldrsh r2, [r6, r0] adds r0, r4, 0 adds r1, r5, 0 bl m4aMPlayPitchControl b _080F817A .align 2, 0 _080F8168: .4byte 0x03007400 _080F816C: .4byte 0x0000ffff _080F8170: ldr r0, _080F8180 bl m4aMPlayStop movs r0, 0xFF _080F8178: strb r0, [r6, 0x3] _080F817A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F8180: .4byte 0x03007400 thumb_func_end sub_80F7FB0 thumb_func_start sub_80F8184 sub_80F8184: @ 80F8184 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _080F81B4 adds r5, r0, r1 ldr r1, _080F81B8 adds r0, r5, 0 bl sub_80F7FB0 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x5 bls _080F81A8 b _080F83C8 _080F81A8: lsls r0, 2 ldr r1, _080F81BC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F81B4: .4byte 0x03004b20 _080F81B8: .4byte 0x03005da0 _080F81BC: .4byte _080F81C0 .align 2, 0 _080F81C0: .4byte _080F81D8 .4byte _080F8218 .4byte _080F8228 .4byte _080F82D8 .4byte _080F83B8 .4byte _080F82C6 _080F81D8: bl sub_80F7BA0 ldr r4, _080F820C ldr r0, [r4] ldr r1, _080F8210 bl InitWindowFromConfig ldr r0, [r4] ldr r1, _080F8214 movs r2, 0xF str r2, [sp] movs r2, 0x2 movs r3, 0x4 bl sub_8002EB0 movs r0, 0 strh r0, [r5, 0xA] strh r0, [r5, 0xC] strh r0, [r5, 0xE] strh r0, [r5, 0x10] movs r0, 0x4 bl sub_8074FB8 movs r0, 0x1 b _080F83C6 .align 2, 0 _080F820C: .4byte 0x0202e9c8 _080F8210: .4byte gWindowConfig_81E6CE4 _080F8214: .4byte 0x020234cc _080F8218: bl sub_8074FD0 lsls r0, 24 cmp r0, 0 bne _080F8224 b _080F83C8 _080F8224: movs r0, 0x2 b _080F83C6 _080F8228: ldr r4, _080F8240 movs r2, 0xE ldrsh r1, [r5, r2] ldr r0, _080F8244 adds r1, r0 movs r3, 0 ldrb r0, [r1] ldr r7, _080F8248 ldrh r2, [r5, 0x12] ldr r6, _080F824C b _080F825A .align 2, 0 _080F8240: .4byte 0x020284c8 _080F8244: .4byte 0x020234cc _080F8248: .4byte 0x03005da0 _080F824C: .4byte 0x020388bc _080F8250: adds r1, 0x1 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 ldrb r0, [r1] _080F825A: cmp r0, 0 beq _080F826A cmp r0, 0xFE beq _080F826A cmp r0, 0xFC beq _080F826A cmp r0, 0xFF bne _080F8250 _080F826A: cmp r2, 0 bne _080F8278 movs r0, 0x10 ldrsh r1, [r5, r0] lsls r1, 1 adds r0, r4, 0x2 b _080F8282 _080F8278: movs r2, 0x10 ldrsh r1, [r5, r2] lsls r1, 1 adds r0, r4, 0 adds r0, 0xE _080F8282: adds r0, r1 ldrh r0, [r0] movs r1, 0x3 ands r1, r0 lsrs r0, 3 movs r2, 0x1 ands r0, r2 adds r1, r0 strh r1, [r6] movs r1, 0x4 ldrsh r0, [r7, r1] adds r1, r3, 0 bl __divsi3 movs r1, 0 strh r0, [r7, 0x4] lsls r0, 16 cmp r0, 0 bgt _080F82AC movs r0, 0x1 strh r0, [r7, 0x4] _080F82AC: ldrh r0, [r5, 0x10] adds r0, 0x1 strh r0, [r5, 0x10] movs r2, 0xC ldrsh r0, [r5, r2] cmp r0, 0 bne _080F82BE movs r0, 0x3 b _080F82C0 _080F82BE: movs r0, 0x5 _080F82C0: strh r0, [r5, 0x8] strh r1, [r5, 0xA] b _080F83C8 _080F82C6: ldrh r1, [r5, 0xC] movs r2, 0xC ldrsh r0, [r5, r2] cmp r0, 0 bne _080F82D2 b _080F83C4 _080F82D2: subs r0, r1, 0x1 strh r0, [r5, 0xC] b _080F83C8 _080F82D8: ldr r1, _080F8304 movs r2, 0xE ldrsh r0, [r5, r2] adds r0, r1 ldrb r4, [r0] cmp r4, 0xFF bne _080F830C movs r0, 0xC8 lsls r0, 1 movs r1, 0x6 bl sub_8074F6C ldr r0, _080F8308 movs r1, 0x2 bl sub_81DE0D0 bl script_env_2_enable_and_set_ctx_running adds r0, r6, 0 bl DestroyTask b _080F83C8 .align 2, 0 _080F8304: .4byte 0x020234cc _080F8308: .4byte 0x03007400 _080F830C: cmp r4, 0 bne _080F832C ldr r0, _080F8328 ldr r0, [r0] bl sub_8003418 ldrh r0, [r5, 0xE] adds r0, 0x1 strh r0, [r5, 0xE] movs r0, 0x2 strh r0, [r5, 0x8] strh r4, [r5, 0xC] b _080F83C8 .align 2, 0 _080F8328: .4byte 0x0202e9c8 _080F832C: cmp r4, 0xFE bne _080F8340 ldrh r0, [r5, 0xE] adds r0, 0x1 movs r1, 0 strh r0, [r5, 0xE] movs r0, 0x2 strh r0, [r5, 0x8] strh r1, [r5, 0xC] b _080F83C8 _080F8340: cmp r4, 0xFC bne _080F8354 ldrh r0, [r5, 0xE] adds r0, 0x2 strh r0, [r5, 0xE] movs r0, 0x2 strh r0, [r5, 0x8] movs r0, 0x8 strh r0, [r5, 0xC] b _080F83C8 _080F8354: cmp r4, 0x37 bne _080F8374 movs r4, 0 strb r4, [r0] ldr r0, _080F8370 ldr r0, [r0] bl sub_8003418 ldrh r0, [r5, 0xE] adds r0, 0x1 strh r0, [r5, 0xE] strh r4, [r5, 0xC] b _080F83C8 .align 2, 0 _080F8370: .4byte 0x0202e9c8 _080F8374: movs r1, 0xA ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080F8394 cmp r0, 0x1 bgt _080F8386 cmp r0, 0 beq _080F838C b _080F83C8 _080F8386: cmp r0, 0x2 beq _080F83A0 b _080F83C8 _080F838C: ldr r0, _080F839C ldr r0, [r0] bl sub_8003418 _080F8394: ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] b _080F83C8 .align 2, 0 _080F839C: .4byte 0x0202e9c8 _080F83A0: ldrh r0, [r5, 0xE] adds r0, 0x1 movs r1, 0 strh r0, [r5, 0xE] strh r1, [r5, 0xA] ldr r0, _080F83B4 ldrh r0, [r0, 0x4] strh r0, [r5, 0xC] movs r0, 0x4 b _080F83C6 .align 2, 0 _080F83B4: .4byte 0x03005da0 _080F83B8: ldrh r0, [r5, 0xC] subs r0, 0x1 strh r0, [r5, 0xC] lsls r0, 16 cmp r0, 0 bne _080F83C8 _080F83C4: movs r0, 0x3 _080F83C6: strh r0, [r5, 0x8] _080F83C8: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80F8184 thumb_func_start sub_80F83D0 sub_80F83D0: @ 80F83D0 push {r4,lr} ldr r4, _080F83F4 bl GetCurrentMauvilleOldMan adds r1, r0, 0 lsls r1, 24 lsrs r1, 8 movs r0, 0x8A lsls r0, 15 adds r1, r0 lsrs r1, 16 adds r0, r4, 0 bl VarSet pop {r4} pop {r0} bx r0 .align 2, 0 _080F83F4: .4byte 0x00004010 thumb_func_end sub_80F83D0 thumb_func_start sub_80F83F8 sub_80F83F8: @ 80F83F8 push {r4,lr} ldr r0, _080F8424 movs r2, 0 movs r1, 0x3 strb r1, [r0] strb r2, [r0, 0x1] movs r4, 0 movs r3, 0xFF adds r1, r0, 0x4 movs r2, 0x3 _080F840C: strb r4, [r1] ldrb r0, [r1, 0x4] orrs r0, r3 strb r0, [r1, 0x4] adds r1, 0x1 subs r2, 0x1 cmp r2, 0 bge _080F840C pop {r4} pop {r0} bx r0 .align 2, 0 _080F8424: .4byte 0x020284c8 thumb_func_end sub_80F83F8 thumb_func_start sub_80F8428 sub_80F8428: @ 80F8428 ldr r0, _080F8434 movs r2, 0 movs r1, 0x3 strb r1, [r0] strb r2, [r0, 0x1] bx lr .align 2, 0 _080F8434: .4byte 0x020284c8 thumb_func_end sub_80F8428 thumb_func_start sub_80F8438 sub_80F8438: @ 80F8438 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x32 bne _080F8444 movs r0, 0 _080F8444: bl sub_8053108 pop {r1} bx r1 thumb_func_end sub_80F8438 thumb_func_start sub_80F844C sub_80F844C: @ 80F844C push {lr} adds r3, r0, 0 movs r2, 0 ldr r1, _080F8460 _080F8454: ldrb r0, [r1] cmp r0, r3 bne _080F8464 adds r0, r1, 0 b _080F846E .align 2, 0 _080F8460: .4byte gUnknown_083E53E0 _080F8464: adds r1, 0x10 adds r2, 0x1 cmp r2, 0x23 ble _080F8454 ldr r0, _080F8474 _080F846E: pop {r1} bx r1 .align 2, 0 _080F8474: .4byte gUnknown_083E5610 thumb_func_end sub_80F844C thumb_func_start sub_80F8478 sub_80F8478: @ 80F8478 push {lr} bl sub_80F844C ldr r0, [r0, 0x4] pop {r1} bx r1 thumb_func_end sub_80F8478 thumb_func_start sub_80F8484 sub_80F8484: @ 80F8484 push {lr} bl sub_80F844C ldr r0, [r0, 0xC] pop {r1} bx r1 thumb_func_end sub_80F8484 thumb_func_start sub_80F8490 sub_80F8490: @ 80F8490 push {lr} bl sub_80F844C ldr r0, [r0, 0x8] pop {r1} bx r1 thumb_func_end sub_80F8490 thumb_func_start sub_80F849C sub_80F849C: @ 80F849C push {lr} movs r1, 0 ldr r2, _080F84C4 ldrb r0, [r2, 0x4] cmp r0, 0 beq _080F84BC adds r2, 0x4 _080F84AA: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bhi _080F84BC adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _080F84AA _080F84BC: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _080F84C4: .4byte 0x020284c8 thumb_func_end sub_80F849C thumb_func_start sub_80F84C8 sub_80F84C8: @ 80F84C8 lsls r0, 2 ldr r1, _080F84E8 adds r0, r1 ldrb r2, [r0] ldrb r1, [r0, 0x1] lsls r1, 8 orrs r2, r1 ldrb r1, [r0, 0x2] lsls r1, 16 orrs r2, r1 ldrb r0, [r0, 0x3] lsls r0, 24 orrs r2, r0 adds r0, r2, 0 bx lr .align 2, 0 _080F84E8: .4byte 0x020284ec thumb_func_end sub_80F84C8 thumb_func_start sub_80F84EC sub_80F84EC: @ 80F84EC lsls r0, 2 ldr r2, _080F8504 adds r0, r2 strb r1, [r0] lsrs r2, r1, 8 strb r2, [r0, 0x1] lsrs r2, r1, 16 strb r2, [r0, 0x2] lsrs r1, 24 strb r1, [r0, 0x3] bx lr .align 2, 0 _080F8504: .4byte 0x020284ec thumb_func_end sub_80F84EC thumb_func_start sub_80F8508 sub_80F8508: @ 80F8508 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080F8528 adds r0, 0x4 adds r0, r5, r0 ldrb r0, [r0] bl sub_80F8438 adds r4, r0, 0 adds r0, r5, 0 bl sub_80F84C8 cmp r4, r0 bhi _080F852C movs r0, 0 b _080F852E .align 2, 0 _080F8528: .4byte 0x020284c8 _080F852C: movs r0, 0x1 _080F852E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80F8508 thumb_func_start sub_80F8534 sub_80F8534: @ 80F8534 push {r4,r5,lr} adds r5, r1, 0 lsls r4, r0, 3 subs r4, r0 ldr r0, _080F855C adds r4, r0 adds r0, r5, 0 movs r1, 0xFF movs r2, 0x8 bl memset adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x7 bl memcpy pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F855C: .4byte 0x020284d0 thumb_func_end sub_80F8534 thumb_func_start sub_80F8560 sub_80F8560: @ 80F8560 push {r4-r6,lr} adds r6, r1, 0 lsls r5, r0, 3 subs r5, r0 ldr r0, _080F8594 adds r5, r0 adds r0, r6, 0 bl StringLength adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0xFF movs r2, 0x7 bl memset adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 bl StringCopyN pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F8594: .4byte 0x020284d0 thumb_func_end sub_80F8560 thumb_func_start sub_80F8598 sub_80F8598: @ 80F8598 push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 ldr r0, _080F85EC adds r0, 0x4 adds r0, r5, r0 strb r6, [r0] ldr r1, _080F85F0 adds r0, r5, 0 bl sub_80F8560 lsls r4, r6, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_80F8438 adds r1, r0, 0 adds r0, r5, 0 bl sub_80F84EC ldr r5, _080F85F4 adds r0, r4, 0 bl sub_80F8438 adds r1, r0, 0 adds r0, r5, 0 movs r2, 0 movs r3, 0xA bl ConvertIntToDecimalStringN ldr r4, _080F85F8 adds r0, r6, 0 bl sub_80F8490 adds r1, r0, 0 adds r0, r4, 0 bl StringCopy pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F85EC: .4byte 0x020284c8 _080F85F0: .4byte gSaveBlock2 _080F85F4: .4byte 0x020231cc _080F85F8: .4byte 0x020232cc thumb_func_end sub_80F8598 thumb_func_start sub_80F85FC sub_80F85FC: @ 80F85FC push {r4-r7,lr} adds r7, r0, 0 adds r6, r1, 0 movs r5, 0 cmp r5, r6 bge _080F8612 _080F8608: adds r0, r7, r5 strb r5, [r0] adds r5, 0x1 cmp r5, r6 blt _080F8608 _080F8612: cmp r6, 0 ble _080F8648 adds r5, r6, 0 _080F8618: bl Random lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 bl __modsi3 adds r4, r0, 0 bl Random lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 bl __modsi3 adds r4, r7, r4 ldrb r2, [r4] adds r0, r7, r0 ldrb r1, [r0] strb r1, [r4] strb r2, [r0] subs r5, 0x1 cmp r5, 0 bne _080F8618 _080F8648: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80F85FC thumb_func_start sub_80F8650 sub_80F8650: @ 80F8650 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r7, sp mov r10, sp ldr r0, _080F86D4 ldr r0, [r0] lsls r0, 3 lsrs r0, 3 adds r0, 0x3 lsrs r0, 2 lsls r0, 2 mov r1, sp subs r1, r0 mov sp, r1 mov r8, sp mov r0, sp movs r1, 0x24 bl sub_80F85FC movs r5, 0 ldr r0, _080F86D8 mov r9, r0 ldr r3, _080F86DC _080F8686: mov r1, r8 adds r0, r1, r5 ldrb r0, [r0] lsls r0, 4 add r0, r9 ldrb r4, [r0] ldrb r6, [r0, 0x1] movs r1, 0 ldrb r0, [r3, 0x4] cmp r0, r4 beq _080F86AC ldr r2, _080F86E0 _080F869E: adds r1, 0x1 cmp r1, 0x3 bgt _080F86AC adds r0, r1, r2 ldrb r0, [r0] cmp r0, r4 bne _080F869E _080F86AC: cmp r1, 0x4 bne _080F86E4 adds r0, r4, 0 str r3, [r7] bl sub_80F8438 ldr r3, [r7] cmp r0, r6 bcc _080F86E4 movs r0, 0x1 strb r0, [r3, 0x1] bl sub_80F849C lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl sub_80F8598 movs r0, 0x1 b _080F86EC .align 2, 0 _080F86D4: .4byte gUnknown_083E5620 _080F86D8: .4byte gUnknown_083E53E0 _080F86DC: .4byte 0x020284c8 _080F86E0: .4byte 0x020284cc _080F86E4: adds r5, 0x1 cmp r5, 0x23 ble _080F8686 movs r0, 0 _080F86EC: mov sp, r10 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80F8650 thumb_func_start sub_80F8700 sub_80F8700: @ 80F8700 push {r4-r6,lr} adds r5, r0, 0 ldr r0, _080F8748 adds r0, 0x4 adds r0, r5, r0 ldrb r6, [r0] ldr r4, _080F874C adds r0, r5, 0 bl sub_80F84C8 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 movs r3, 0xA bl ConvertIntToDecimalStringN ldr r4, _080F8750 adds r0, r6, 0 bl sub_80F8490 adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldr r1, _080F8754 adds r0, r5, 0 bl sub_80F8534 adds r0, r6, 0 bl sub_80F8484 bl box_related_two__2 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F8748: .4byte 0x020284c8 _080F874C: .4byte 0x020231cc _080F8750: .4byte 0x020232cc _080F8754: .4byte 0x020233cc thumb_func_end sub_80F8700 thumb_func_start sub_80F8758 sub_80F8758: @ 80F8758 push {r4-r6,lr} bl sub_80F849C adds r3, r0, 0 lsls r3, 25 movs r0, 0x80 lsls r0, 19 adds r3, r0 lsrs r3, 24 movs r0, 0 movs r1, 0 movs r2, 0x19 bl DrawDefaultWindow movs r4, 0 ldr r1, _080F87BC ldrb r0, [r1, 0x4] cmp r0, 0 beq _080F87A4 adds r6, r1, 0x4 movs r5, 0x80 lsls r5, 18 _080F8784: bl sub_80F8478 lsrs r2, r5, 24 movs r1, 0x1 bl Print movs r1, 0x80 lsls r1, 18 adds r5, r1 adds r4, 0x1 cmp r4, 0x3 bgt _080F87A4 adds r0, r4, r6 ldrb r0, [r0] cmp r0, 0 bne _080F8784 _080F87A4: ldr r0, _080F87C0 lsls r2, r4, 25 movs r1, 0x80 lsls r1, 18 adds r2, r1 lsrs r2, 24 movs r1, 0x1 bl Print pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F87BC: .4byte 0x020284c8 _080F87C0: .4byte gUnknown_08410866 thumb_func_end sub_80F8758 thumb_func_start sub_80F87C4 sub_80F87C4: @ 80F87C4 push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _080F87E4 adds r4, r0, r1 movs r0, 0x8 ldrsh r5, [r4, r0] cmp r5, 0 beq _080F87E8 cmp r5, 0x1 beq _080F8810 b _080F8862 .align 2, 0 _080F87E4: .4byte 0x03004b20 _080F87E8: bl sub_80F8758 bl sub_80F849C adds r3, r0, 0 adds r3, 0x1 lsls r3, 24 lsrs r3, 24 str r5, [sp] movs r0, 0x18 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x2 bl InitMenu ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080F8862 _080F8810: bl ProcessMenuInput lsls r0, 24 asrs r4, r0, 24 movs r0, 0x2 negs r0, r0 cmp r4, r0 beq _080F8862 adds r0, 0x1 cmp r4, r0 beq _080F8832 bl sub_80F849C lsls r0, 24 lsrs r0, 24 cmp r4, r0 bne _080F8840 _080F8832: ldr r1, _080F883C movs r0, 0 strh r0, [r1] b _080F8848 .align 2, 0 _080F883C: .4byte 0x0202e8dc _080F8840: ldr r0, _080F886C strh r5, [r0] ldr r0, _080F8870 strb r4, [r0] _080F8848: bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0x19 movs r3, 0xC bl Reset adds r0, r6, 0 bl DestroyTask bl script_env_2_enable_and_set_ctx_running _080F8862: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F886C: .4byte 0x0202e8dc _080F8870: .4byte 0x03000748 thumb_func_end sub_80F87C4 thumb_func_start sub_80F8874 sub_80F8874: @ 80F8874 push {lr} ldr r0, _080F8884 movs r1, 0x50 bl CreateTask pop {r0} bx r0 .align 2, 0 _080F8884: .4byte sub_80F87C4 thumb_func_end sub_80F8874 thumb_func_start sub_80F8888 sub_80F8888: @ 80F8888 push {lr} ldr r0, _080F8898 ldrb r0, [r0] bl sub_80F8700 pop {r0} bx r0 .align 2, 0 _080F8898: .4byte 0x03000748 thumb_func_end sub_80F8888 thumb_func_start sub_80F889C sub_80F889C: @ 80F889C push {lr} bl sub_80F849C lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80F889C thumb_func_start sub_80F88AC sub_80F88AC: @ 80F88AC push {r4,r5,lr} ldr r1, _080F88C8 ldr r5, _080F88CC ldrb r0, [r5] adds r1, 0x4 adds r1, r0, r1 ldrb r4, [r1] bl sub_80F8508 cmp r0, 0x1 beq _080F88D0 movs r0, 0 b _080F88DA .align 2, 0 _080F88C8: .4byte 0x020284c8 _080F88CC: .4byte 0x03000748 _080F88D0: ldrb r0, [r5] adds r1, r4, 0 bl sub_80F8598 movs r0, 0x1 _080F88DA: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80F88AC thumb_func_start sub_80F88E0 sub_80F88E0: @ 80F88E0 push {lr} ldr r0, _080F88F0 ldrb r0, [r0, 0x1] cmp r0, 0 beq _080F88F4 movs r0, 0x1 b _080F88F6 .align 2, 0 _080F88F0: .4byte 0x020284c8 _080F88F4: movs r0, 0 _080F88F6: pop {r1} bx r1 thumb_func_end sub_80F88E0 thumb_func_start sub_80F88FC sub_80F88FC: @ 80F88FC push {lr} bl sub_80F8650 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80F88FC thumb_func_start sub_80F890C sub_80F890C: @ 80F890C push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 adds r6, r1, 0 lsls r2, 24 lsrs r5, r2, 24 ldr r2, _080F8958 adds r1, r2, 0 adds r1, 0xFF movs r0, 0x2 strb r0, [r1] adds r0, 0xFE adds r1, r2, r0 movs r0, 0x1 strb r0, [r1] movs r0, 0x82 lsls r0, 1 adds r1, r2, r0 ldr r0, _080F895C str r0, [r1] movs r0, 0x84 lsls r0, 1 adds r1, r2, r0 ldr r0, _080F8960 str r0, [r1] ldrh r1, [r4, 0x20] adds r0, r1, 0 subs r0, 0x79 lsls r0, 16 lsrs r0, 16 cmp r0, 0xB bhi _080F8964 subs r1, 0x79 adds r0, r2, 0 adds r0, 0xFA strb r1, [r0] b _080F896E .align 2, 0 _080F8958: .4byte 0x02000000 _080F895C: .4byte sub_80EB3FC _080F8960: .4byte ConvertEasyChatWordsToString _080F8964: adds r1, r2, 0 adds r1, 0xFA movs r0, 0 strb r0, [r1] movs r5, 0 _080F896E: ldr r1, _080F8994 movs r2, 0x80 lsls r2, 1 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _080F8980 cmp r0, 0x1 beq _080F899C _080F8980: movs r0, 0x86 lsls r0, 1 adds r2, r1, r0 adds r0, r1, 0 adds r0, 0xFA ldrb r0, [r0] lsls r0, 3 ldr r1, _080F8998 b _080F89AC .align 2, 0 _080F8994: .4byte 0x02000000 _080F8998: .4byte gUnknown_083E5730 _080F899C: movs r0, 0x86 lsls r0, 1 adds r2, r1, r0 adds r0, r1, 0 adds r0, 0xFA ldrb r0, [r0] lsls r0, 3 ldr r1, _080F89DC _080F89AC: adds r0, r1 str r0, [r2] ldrh r0, [r4, 0x1E] mov r1, sp bl sub_80A2D64 lsls r0, 16 ldr r1, _080F89E0 adds r0, r1 movs r1, 0xCD lsls r1, 17 cmp r0, r1 bhi _080F89F8 ldr r0, _080F89E4 adds r1, r0, 0 adds r1, 0xFA ldrb r2, [r1] adds r1, r0, 0 cmp r2, 0x6 beq _080F89E8 cmp r2, 0x9 beq _080F89F0 b _080F89FA .align 2, 0 _080F89DC: .4byte gUnknown_083E57A4 _080F89E0: .4byte 0xffff0000 _080F89E4: .4byte 0x02000000 _080F89E8: adds r2, r1, 0 adds r2, 0xFB movs r0, 0x1 b _080F8A00 _080F89F0: adds r2, r1, 0 adds r2, 0xFB movs r0, 0x2 b _080F8A00 _080F89F8: ldr r1, _080F8A20 _080F89FA: adds r2, r1, 0 adds r2, 0xFB movs r0, 0 _080F8A00: strb r0, [r2] adds r0, r1, 0 adds r0, 0xF4 str r4, [r0] subs r0, 0x8 str r6, [r0] adds r0, 0xC strb r5, [r0] ldr r0, _080F8A24 bl SetMainCallback2 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F8A20: .4byte 0x02000000 _080F8A24: .4byte sub_80F8D50 thumb_func_end sub_80F890C thumb_func_start sub_80F8A28 sub_80F8A28: @ 80F8A28 push {r4,r5,lr} sub sp, 0x8 ldr r0, _080F8A44 ldr r1, _080F8A48 adds r0, r1 ldrb r0, [r0] cmp r0, 0x12 bls _080F8A3A b _080F8D3C _080F8A3A: lsls r0, 2 ldr r1, _080F8A4C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F8A44: .4byte 0x03001770 _080F8A48: .4byte 0x0000043c _080F8A4C: .4byte _080F8A50 .align 2, 0 _080F8A50: .4byte _080F8A9C .4byte _080F8AB0 .4byte _080F8AC8 .4byte _080F8ACE .4byte _080F8AD4 .4byte _080F8ADA .4byte _080F8B10 .4byte _080F8B1C .4byte _080F8B28 .4byte _080F8B34 .4byte _080F8B3A .4byte _080F8B54 .4byte _080F8B78 .4byte _080F8BA0 .4byte _080F8C14 .4byte _080F8C2C .4byte _080F8C58 .4byte _080F8CBC .4byte _080F8CC6 _080F8A9C: movs r0, 0 bl SetVBlankCallback bl remove_some_task movs r1, 0x80 lsls r1, 19 movs r0, 0 strh r0, [r1] b _080F8D30 _080F8AB0: add r1, sp, 0x4 movs r0, 0 strh r0, [r1] movs r1, 0xE0 lsls r1, 19 ldr r2, _080F8AC4 add r0, sp, 0x4 bl CpuSet b _080F8D30 .align 2, 0 _080F8AC4: .4byte 0x01000200 _080F8AC8: bl ResetPaletteFade b _080F8D30 _080F8ACE: bl ResetTasks b _080F8D30 _080F8AD4: bl ResetSpriteData b _080F8D30 _080F8ADA: bl FreeAllSpritePalettes ldr r0, _080F8B0C movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x4 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x32 strh r1, [r0] adds r0, 0x2 strh r1, [r0] b _080F8D30 .align 2, 0 _080F8B0C: .4byte REG_BG0HOFS _080F8B10: ldr r0, _080F8B18 bl SetUpWindowConfig b _080F8D30 .align 2, 0 _080F8B18: .4byte gWindowConfig_81E6DFC _080F8B1C: ldr r0, _080F8B24 bl sub_8071C58 b _080F8D30 .align 2, 0 _080F8B24: .4byte gWindowConfig_81E6DFC _080F8B28: bl sub_8071C94 cmp r0, 0 beq _080F8B32 b _080F8D30 _080F8B32: b _080F8D3C _080F8B34: bl sub_8071EF4 b _080F8D30 _080F8B3A: mov r0, sp adds r0, 0x6 movs r1, 0x1 strh r1, [r0] ldr r1, _080F8B4C ldr r2, _080F8B50 bl CpuSet b _080F8D30 .align 2, 0 _080F8B4C: .4byte 0x06004800 _080F8B50: .4byte 0x01000400 _080F8B54: ldr r2, _080F8B70 ldr r0, _080F8B74 adds r0, 0xFA ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r0, [r0] movs r1, 0 movs r2, 0x20 bl LoadPalette b _080F8D30 .align 2, 0 _080F8B70: .4byte gMailGraphicsTable _080F8B74: .4byte 0x02000000 _080F8B78: ldr r2, _080F8B94 ldr r0, _080F8B98 adds r0, 0xFA ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0x8 adds r0, r2 ldr r0, [r0] ldr r1, _080F8B9C bl LZ77UnCompVram b _080F8D30 .align 2, 0 _080F8B94: .4byte gMailGraphicsTable _080F8B98: .4byte 0x02000000 _080F8B9C: .4byte 0x06004000 _080F8BA0: ldr r5, _080F8C00 ldr r4, _080F8C04 adds r4, 0xFA ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r1, r5, 0x4 adds r0, r1 ldr r0, [r0] movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r3, _080F8C08 ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r0, [r0, 0x10] movs r2, 0xF1 lsls r2, 1 adds r1, r3, r2 strh r0, [r1] ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r0, 0x12] adds r2, 0xE adds r0, r3, r2 strh r1, [r0] ldr r1, _080F8C0C ldr r2, _080F8C10 ldrb r0, [r2, 0x8] lsls r0, 2 adds r0, r1 ldrh r0, [r0] strh r0, [r3, 0x14] ldrb r0, [r2, 0x8] lsls r0, 2 adds r1, 0x2 adds r0, r1 ldrh r0, [r0] strh r0, [r3, 0x16] b _080F8D30 .align 2, 0 _080F8C00: .4byte gMailGraphicsTable _080F8C04: .4byte 0x02000000 _080F8C08: .4byte 0x0202eac8 _080F8C0C: .4byte gUnknown_083E562C _080F8C10: .4byte gSaveBlock2 _080F8C14: ldr r0, _080F8C28 adds r0, 0xF8 ldrb r0, [r0] cmp r0, 0 bne _080F8C20 b _080F8D30 _080F8C20: bl sub_80F8DA0 b _080F8D30 .align 2, 0 _080F8C28: .4byte 0x02000000 _080F8C2C: ldr r0, _080F8C4C adds r0, 0xF8 ldrb r0, [r0] cmp r0, 0 beq _080F8C3A bl sub_80F8E80 _080F8C3A: ldr r0, _080F8C50 bl SetVBlankCallback ldr r2, _080F8C54 ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] b _080F8D30 .align 2, 0 _080F8C4C: .4byte 0x02000000 _080F8C50: .4byte sub_80F8F18 _080F8C54: .4byte 0x0202f388 _080F8C58: ldr r5, _080F8C7C adds r0, r5, 0 adds r0, 0xF4 ldr r0, [r0] ldrh r0, [r0, 0x1E] bl sub_809D4A8 lsls r0, 16 lsrs r4, r0, 16 adds r0, r5, 0 adds r0, 0xFB ldrb r0, [r0] cmp r0, 0x1 beq _080F8C80 cmp r0, 0x2 beq _080F8C98 b _080F8D30 .align 2, 0 _080F8C7C: .4byte 0x02000000 _080F8C80: adds r0, r4, 0 bl sub_809D580 ldr r1, _080F8C94 movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r2, 0x60 b _080F8CA8 .align 2, 0 _080F8C94: .4byte SpriteCallbackDummy _080F8C98: adds r0, r4, 0 bl sub_809D580 ldr r1, _080F8CB8 movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r2, 0x28 _080F8CA8: movs r3, 0x80 bl sub_809D3A4 adds r1, r5, 0 adds r1, 0xFC strb r0, [r1] b _080F8D30 .align 2, 0 _080F8CB8: .4byte SpriteCallbackDummy _080F8CBC: bl sub_8055870 cmp r0, 0x1 bne _080F8D30 b _080F8D3C _080F8CC6: ldr r1, _080F8D14 ldr r2, _080F8D18 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080F8D1C adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080F8D20 adds r0, r2, 0 strh r0, [r1] adds r1, 0x44 movs r0, 0 strh r0, [r1] subs r1, 0x50 movs r2, 0xBA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r2, _080F8D24 ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] ldr r0, _080F8D28 adds r0, 0xF0 ldr r1, _080F8D2C str r1, [r0] movs r0, 0x1 b _080F8D3E .align 2, 0 _080F8D14: .4byte REG_BG0CNT _080F8D18: .4byte 0x00009f08 _080F8D1C: .4byte 0x00000801 _080F8D20: .4byte 0x00000902 _080F8D24: .4byte 0x0202f388 _080F8D28: .4byte 0x02000000 _080F8D2C: .4byte sub_80F8F58 _080F8D30: ldr r1, _080F8D48 ldr r0, _080F8D4C adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080F8D3C: movs r0, 0 _080F8D3E: add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080F8D48: .4byte 0x03001770 _080F8D4C: .4byte 0x0000043c thumb_func_end sub_80F8A28 thumb_func_start sub_80F8D50 sub_80F8D50: @ 80F8D50 push {lr} _080F8D52: bl sub_80F8A28 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080F8D6C ldr r0, _080F8D68 bl SetMainCallback2 b _080F8D78 .align 2, 0 _080F8D68: .4byte sub_80F8F2C _080F8D6C: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080F8D52 _080F8D78: pop {r0} bx r0 thumb_func_end sub_80F8D50 thumb_func_start sub_80F8D7C sub_80F8D7C: @ 80F8D7C push {r4,lr} adds r4, r0, 0 bl StringCopy adds r0, r4, 0 bl sub_814A568 adds r0, r4, 0 bl StringLength lsls r0, 16 lsrs r0, 16 adds r4, r0 adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80F8D7C thumb_func_start sub_80F8DA0 sub_80F8DA0: @ 80F8DA0 push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0 movs r5, 0 ldr r2, _080F8E3C movs r0, 0x86 lsls r0, 1 adds r1, r2, r0 ldr r0, [r1] ldrb r0, [r0] cmp r5, r0 bcs _080F8E04 mov r8, r2 adds r7, r1, 0 _080F8DBE: lsls r0, r5, 3 subs r0, r5 lsls r0, 2 subs r0, r5 add r0, r8 mov r1, r8 adds r1, 0xF4 lsls r2, r6, 1 ldr r1, [r1] adds r1, r2 ldr r2, [r7] ldr r2, [r2, 0x4] lsls r4, r5, 2 adds r2, r4, r2 ldr r2, [r2] lsls r2, 28 lsrs r2, 30 movs r3, 0x1 bl ConvertEasyChatWordsToString ldr r1, [r7] ldr r0, [r1, 0x4] adds r4, r0 ldr r0, [r4] lsls r0, 28 lsrs r0, 30 adds r0, r6, r0 lsls r0, 24 lsrs r6, r0, 24 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldrb r1, [r1] cmp r5, r1 bcc _080F8DBE _080F8E04: ldr r2, _080F8E40 adds r4, r2, 0 subs r4, 0xD8 adds r0, r2, 0 adds r0, 0x28 ldrb r0, [r0] cmp r0, 0 bne _080F8E48 ldr r1, [r2, 0x1C] adds r1, 0x12 adds r0, r2, 0 bl sub_80F8D7C adds r2, r0, 0 ldr r1, _080F8E44 bl StringCopy ldr r0, _080F8E40 bl StringLength movs r2, 0x86 lsls r2, 1 adds r1, r4, r2 ldr r1, [r1] ldrb r1, [r1, 0x2] subs r1, r0 b _080F8E6A .align 2, 0 _080F8E3C: .4byte 0x02000000 _080F8E40: .4byte 0x020000d8 _080F8E44: .4byte gUnknown_0842C894 _080F8E48: ldr r1, _080F8E7C adds r0, r2, 0 bl StringCopy adds r2, r0, 0 adds r0, r4, 0 adds r0, 0xF4 ldr r1, [r0] adds r1, 0x12 adds r0, r2, 0 bl sub_80F8D7C movs r1, 0x86 lsls r1, 1 adds r0, r4, r1 ldr r0, [r0] ldrb r1, [r0, 0x2] _080F8E6A: adds r0, r4, 0 adds r0, 0xF9 strb r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F8E7C: .4byte gUnknown_0842C894 thumb_func_end sub_80F8DA0 thumb_func_start sub_80F8E80 sub_80F8E80: @ 80F8E80 push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0 movs r4, 0 ldr r1, _080F8F10 movs r0, 0x86 lsls r0, 1 adds r2, r1, r0 ldr r0, [r2] ldrb r0, [r0] cmp r4, r0 bcs _080F8EF6 mov r8, r1 adds r7, r2, 0 _080F8E9E: lsls r0, r4, 3 subs r0, r4 lsls r0, 2 subs r0, r4 mov r1, r8 adds r5, r0, r1 ldrb r0, [r5] cmp r0, 0xFF beq _080F8EE8 cmp r0, 0 beq _080F8EE8 ldr r2, [r7] ldr r1, [r2, 0x4] lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] lsls r3, r0, 24 lsrs r3, 28 lsls r0, 30 lsrs r0, 30 adds r0, r6, r0 lsls r0, 24 lsrs r6, r0, 24 ldrb r2, [r2, 0x3] lsrs r1, r2, 4 adds r1, r3 lsls r2, 28 lsrs r2, 28 adds r2, r6, r2 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 bl Print adds r0, r6, 0x2 lsls r0, 24 lsrs r6, r0, 24 _080F8EE8: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldr r0, [r7] ldrb r0, [r0] cmp r4, r0 bcc _080F8E9E _080F8EF6: ldr r0, _080F8F14 adds r1, r0, 0 adds r1, 0x21 ldrb r1, [r1] ldr r2, [r0, 0x34] ldrb r2, [r2, 0x1] bl Print pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F8F10: .4byte 0x02000000 _080F8F14: .4byte 0x020000d8 thumb_func_end sub_80F8E80 thumb_func_start sub_80F8F18 sub_80F8F18: @ 80F8F18 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_80F8F18 thumb_func_start sub_80F8F2C sub_80F8F2C: @ 80F8F2C push {r4,lr} ldr r4, _080F8F54 adds r0, r4, 0 adds r0, 0xFB ldrb r0, [r0] cmp r0, 0 beq _080F8F42 bl AnimateSprites bl BuildOamBuffer _080F8F42: adds r0, r4, 0 adds r0, 0xF0 ldr r0, [r0] bl _call_via_r0 pop {r4} pop {r0} bx r0 .align 2, 0 _080F8F54: .4byte 0x02000000 thumb_func_end sub_80F8F2C thumb_func_start sub_80F8F58 sub_80F8F58: @ 80F8F58 push {lr} bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080F8F6C ldr r0, _080F8F70 adds r0, 0xF0 ldr r1, _080F8F74 str r1, [r0] _080F8F6C: pop {r0} bx r0 .align 2, 0 _080F8F70: .4byte 0x02000000 _080F8F74: .4byte sub_80F8F78 thumb_func_end sub_80F8F58 thumb_func_start sub_80F8F78 sub_80F8F78: @ 80F8F78 push {lr} sub sp, 0x4 ldr r0, _080F8FA8 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080F8FA0 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _080F8FAC adds r0, 0xF0 ldr r1, _080F8FB0 str r1, [r0] _080F8FA0: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080F8FA8: .4byte 0x03001770 _080F8FAC: .4byte 0x02000000 _080F8FB0: .4byte sub_80F8FB4 thumb_func_end sub_80F8F78 thumb_func_start sub_80F8FB4 sub_80F8FB4: @ 80F8FB4 push {r4,lr} bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080F9012 ldr r4, _080F9018 adds r0, r4, 0 adds r0, 0xEC ldr r0, [r0] bl SetMainCallback2 adds r0, r4, 0 adds r0, 0xFB ldrb r0, [r0] cmp r0, 0x2 bgt _080F9002 cmp r0, 0x1 blt _080F9002 adds r0, r4, 0 adds r0, 0xF4 ldr r0, [r0] ldrh r0, [r0, 0x1E] bl sub_809D4A8 lsls r0, 16 lsrs r0, 16 bl sub_809D608 adds r0, r4, 0 adds r0, 0xFC ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F901C adds r0, r1 bl sub_809D510 _080F9002: ldr r0, _080F9018 movs r2, 0x88 lsls r2, 1 movs r1, 0 bl memset bl ResetPaletteFade _080F9012: pop {r4} pop {r0} bx r0 .align 2, 0 _080F9018: .4byte 0x02000000 _080F901C: .4byte 0x02020004 thumb_func_end sub_80F8FB4 thumb_func_start sub_80F9020 sub_80F9020: @ 80F9020 push {r4,r5,lr} ldr r4, _080F9054 movs r5, 0x80 lsls r5, 4 adds r0, r4, 0 movs r1, 0 adds r2, r5, 0 bl memset adds r0, r4, r5 movs r1, 0 adds r2, r5, 0 bl memset movs r0, 0x80 lsls r0, 5 adds r4, r0 adds r0, r4, 0 movs r1, 0 adds r2, r5, 0 bl memset pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F9054: .4byte 0x020219cc thumb_func_end sub_80F9020 thumb_func_start sav2_get_text_speed sav2_get_text_speed: @ 80F9058 push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 lsls r1, 16 lsrs r4, r1, 16 bl sub_8071FFC cmp r4, 0 beq _080F907C ldr r0, _080F908C movs r1, 0x4 str r1, [sp] str r4, [sp, 0x4] movs r1, 0x2 movs r2, 0xF movs r3, 0x1A bl sub_80A3FA0 _080F907C: adds r0, r5, 0 bl sub_8072044 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F908C: .4byte 0x020219cc thumb_func_end sav2_get_text_speed thumb_func_start sub_80F9090 sub_80F9090: @ 80F9090 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8072080 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080F90AC ldr r0, _080F90B4 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 _080F90AC: pop {r4} pop {r0} bx r0 .align 2, 0 _080F90B4: .4byte 0x0300074c thumb_func_end sub_80F9090 thumb_func_start DisplayItemMessageOnField DisplayItemMessageOnField: @ 80F90B8 push {r4,r5,lr} adds r4, r0, 0 adds r0, r1, 0 adds r5, r2, 0 adds r1, r3, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 16 lsrs r1, 16 bl sav2_get_text_speed ldr r0, _080F90E8 str r5, [r0] ldr r1, _080F90EC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080F90F0 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F90E8: .4byte 0x0300074c _080F90EC: .4byte 0x03004b20 _080F90F0: .4byte sub_80F9090 thumb_func_end DisplayItemMessageOnField thumb_func_start Task_CallYesOrNoCallback Task_CallYesOrNoCallback: @ 80F90F4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl FillWindowPixelBuffer lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _080F911A cmp r1, 0 bgt _080F9114 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080F9130 b _080F9140 _080F9114: cmp r1, 0x1 beq _080F9130 b _080F9140 _080F911A: movs r0, 0x5 bl audio_play ldr r0, _080F912C ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 b _080F9140 .align 2, 0 _080F912C: .4byte 0x020388c4 _080F9130: movs r0, 0x5 bl audio_play ldr r0, _080F9148 ldr r1, [r0, 0x4] adds r0, r4, 0 bl _call_via_r1 _080F9140: pop {r4} pop {r0} bx r0 .align 2, 0 _080F9148: .4byte 0x020388c4 thumb_func_end Task_CallYesOrNoCallback thumb_func_start sub_80F914C sub_80F914C: @ 80F914C lsls r0, 24 lsrs r0, 24 ldr r3, _080F916C ldr r2, [r1, 0x4] ldr r1, [r1] str r1, [r3] str r2, [r3, 0x4] ldr r2, _080F9170 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080F9174 str r0, [r1] bx lr .align 2, 0 _080F916C: .4byte 0x020388c4 _080F9170: .4byte 0x03004b20 _080F9174: .4byte Task_CallYesOrNoCallback thumb_func_end sub_80F914C thumb_func_start brm_trade_1 brm_trade_1: @ 80F9178 push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 lsls r1, 24 lsrs r4, r1, 24 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 24 lsrs r6, r3, 24 ldr r1, _080F91C0 mov r0, sp movs r2, 0x4 bl memcpy cmp r4, 0xFF beq _080F91CC mov r0, sp strb r4, [r0, 0x2] ldr r4, _080F91C4 adds r0, r4, 0 mov r1, sp bl StringCopy adds r0, r4, 0 adds r1, r5, 0 bl StringAppend mov r1, sp ldr r0, _080F91C8 ldr r0, [r0] ldrb r0, [r0, 0x6] strb r0, [r1, 0x2] adds r0, r4, 0 bl StringAppend b _080F91D4 .align 2, 0 _080F91C0: .4byte gUnknown_083E5A18 _080F91C4: .4byte 0x020234cc _080F91C8: .4byte 0x0202e9c8 _080F91CC: ldr r0, _080F91E8 adds r1, r5, 0 bl StringCopy _080F91D4: ldr r0, _080F91E8 adds r1, r7, 0 adds r2, r6, 0 bl Print add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F91E8: .4byte 0x020234cc thumb_func_end brm_trade_1 thumb_func_start unref_sub_80F91EC unref_sub_80F91EC: @ 80F91EC push {r4-r7,lr} mov r7, r8 push {r7} mov r12, r0 adds r4, r2, 0 adds r2, r3, 0 ldr r0, [sp, 0x18] ldr r3, [sp, 0x1C] lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r4, 24 lsrs r4, 24 lsls r2, 24 lsrs r2, 24 lsls r0, 24 lsrs r7, r0, 24 lsls r3, 24 lsrs r5, r3, 24 ldr r6, _080F9234 adds r0, r6, 0 mov r1, r12 adds r3, r4, 0 bl ConvertIntToDecimalStringN mov r0, r8 cmp r0, 0xFF beq _080F9238 adds r0, r6, 0 mov r1, r8 adds r2, r7, 0 adds r3, r5, 0 bl brm_trade_1 b _080F9242 .align 2, 0 _080F9234: .4byte 0x020231cc _080F9238: adds r0, r6, 0 adds r1, r7, 0 adds r2, r5, 0 bl Print _080F9242: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end unref_sub_80F91EC thumb_func_start unref_sub_80F924C unref_sub_80F924C: @ 80F924C push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 adds r4, r2, 0 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 lsls r4, 24 lsrs r4, 24 ldr r1, _080F9280 mov r0, sp movs r2, 0x2 bl memcpy mov r0, sp adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl brm_trade_1 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F9280: .4byte gUnknown_083E5A1C thumb_func_end unref_sub_80F924C thumb_func_start sub_80F9284 sub_80F9284: @ 80F9284 push {lr} ldr r0, _080F92A0 ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _080F92B6 ldr r0, _080F92A4 ldrh r1, [r0, 0x2E] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _080F92A8 movs r0, 0x1 b _080F92B8 .align 2, 0 _080F92A0: .4byte gSaveBlock2 _080F92A4: .4byte 0x03001770 _080F92A8: movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080F92B6 movs r0, 0x2 b _080F92B8 _080F92B6: movs r0, 0 _080F92B8: pop {r1} bx r1 thumb_func_end sub_80F9284 thumb_func_start sub_80F92BC sub_80F92BC: @ 80F92BC push {lr} ldr r0, _080F92D8 ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _080F92EE ldr r0, _080F92DC ldrh r1, [r0, 0x30] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _080F92E0 movs r0, 0x1 b _080F92F0 .align 2, 0 _080F92D8: .4byte gSaveBlock2 _080F92DC: .4byte 0x03001770 _080F92E0: movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080F92EE movs r0, 0x2 b _080F92F0 _080F92EE: movs r0, 0 _080F92F0: pop {r1} bx r1 thumb_func_end sub_80F92BC thumb_func_start sub_80F92F4 sub_80F92F4: @ 80F92F4 push {lr} lsls r0, 16 lsrs r0, 16 cmp r0, 0xAF bne _080F9314 ldr r0, _080F930C ldrh r1, [r0, 0x4] ldr r0, _080F9310 cmp r1, r0 bne _080F9314 movs r0, 0 b _080F9316 .align 2, 0 _080F930C: .4byte 0x02025734 _080F9310: .4byte 0x00001919 _080F9314: movs r0, 0x1 _080F9316: pop {r1} bx r1 thumb_func_end sub_80F92F4 thumb_func_start sub_80F931C sub_80F931C: @ 80F931C push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 bl is_c1_link_related_active cmp r0, 0x1 bne _080F933C adds r0, r4, 0 bl itemid_is_mail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080F933C movs r0, 0 b _080F933E _080F933C: movs r0, 0x1 _080F933E: pop {r4} pop {r1} bx r1 thumb_func_end sub_80F931C thumb_func_start sub_80F9344 sub_80F9344: @ 80F9344 push {lr} bl is_c1_link_related_active cmp r0, 0x1 beq _080F9356 ldr r0, _080F935C ldrb r0, [r0] cmp r0, 0x1 bne _080F9360 _080F9356: movs r0, 0x1 b _080F9362 .align 2, 0 _080F935C: .4byte 0x03002fa4 _080F9360: movs r0, 0 _080F9362: pop {r1} bx r1 thumb_func_end sub_80F9344 thumb_func_start sub_80F9368 sub_80F9368: @ 80F9368 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r0, 0x80 lsls r0, 19 movs r1, 0 strh r1, [r0] adds r0, 0xE strh r1, [r0] subs r0, 0x2 strh r1, [r0] subs r0, 0x2 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x14 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 add r0, sp, 0x4 mov r8, r0 mov r2, sp movs r6, 0 ldr r1, _080F9430 movs r5, 0x80 lsls r5, 5 ldr r7, _080F9434 movs r0, 0x81 lsls r0, 24 mov r12, r0 _080F93C6: strh r6, [r2] mov r0, sp str r0, [r1] str r3, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r5 subs r4, r5 cmp r4, r5 bhi _080F93C6 strh r6, [r2] mov r2, sp str r2, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0xE0 lsls r0, 19 movs r3, 0x80 lsls r3, 3 movs r4, 0 str r4, [sp, 0x4] ldr r2, _080F9430 mov r1, r8 str r1, [r2] str r0, [r2, 0x4] lsrs r0, r3, 2 movs r1, 0x85 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xA0 lsls r1, 19 mov r0, sp strh r4, [r0] str r0, [r2] str r1, [r2, 0x4] lsrs r3, 1 movs r0, 0x81 lsls r0, 24 orrs r3, r0 str r3, [r2, 0x8] ldr r0, [r2, 0x8] add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080F9430: .4byte 0x040000d4 _080F9434: .4byte 0x81000800 thumb_func_end sub_80F9368 thumb_func_start sub_80F9438 sub_80F9438: @ 80F9438 push {lr} movs r0, 0 bl SetVBlankCallback movs r0, 0 bl SetHBlankCallback pop {r0} bx r0 thumb_func_end sub_80F9438 thumb_func_start sub_80F944C sub_80F944C: @ 80F944C push {r4,lr} movs r2, 0 ldr r4, _080F9478 movs r3, 0xFF _080F9454: adds r0, r2, r4 ldrb r1, [r0] orrs r1, r3 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _080F9454 movs r0, 0x6 bl FreeSpritePaletteByTag ldr r0, _080F947C bl LoadSpritePalette pop {r4} pop {r0} bx r0 .align 2, 0 _080F9478: .4byte 0x020388c0 _080F947C: .4byte gUnknown_083E5968 thumb_func_end sub_80F944C thumb_func_start sub_80F9480 sub_80F9480: @ 80F9480 push {r4,lr} adds r3, r0, 0 lsls r1, 24 lsrs r1, 24 movs r2, 0 cmp r2, r1 bcs _080F949E movs r4, 0xFF _080F9490: adds r0, r3, r2 strb r4, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r1 bcc _080F9490 _080F949E: pop {r4} pop {r0} bx r0 thumb_func_end sub_80F9480 thumb_func_start sub_80F94A4 sub_80F94A4: @ 80F94A4 push {r4,r5,lr} adds r5, r1, 0 lsls r0, 24 lsrs r4, r0, 24 lsls r2, 16 lsrs r1, r2, 16 lsls r3, 16 lsrs r2, r3, 16 cmp r4, 0x5 bhi _080F94E8 ldrb r0, [r5] cmp r0, 0xFF bne _080F94D0 ldr r0, _080F94F0 lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 movs r3, 0 bl CreateSprite strb r0, [r5] _080F94D0: subs r0, r4, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F94F4 adds r0, r1 adds r1, r4, 0 bl StartSpriteAnim _080F94E8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F94F0: .4byte gSpriteTemplate_83E5A00 _080F94F4: .4byte 0x02020004 thumb_func_end sub_80F94A4 thumb_func_start sub_80F94F8 sub_80F94F8: @ 80F94F8 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0xFF beq _080F9516 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F951C adds r0, r1 bl DestroySprite movs r0, 0xFF strb r0, [r4] _080F9516: pop {r4} pop {r0} bx r0 .align 2, 0 _080F951C: .4byte 0x02020004 thumb_func_end sub_80F94F8 thumb_func_start sub_80F9520 sub_80F9520: @ 80F9520 push {r4,r5,lr} adds r5, r0, 0 movs r4, 0 _080F9526: adds r0, r5, r4 bl sub_80F94F8 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _080F9526 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80F9520 thumb_func_start sub_80F953C sub_80F953C: @ 80F953C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 16 lsrs r3, r1, 16 lsls r2, 16 lsrs r2, 16 cmp r4, 0x3 bls _080F9550 b _080F9790 _080F9550: cmp r4, 0x1 beq _080F95F6 cmp r4, 0x1 bgt _080F9564 cmp r4, 0 beq _080F9578 ldr r5, _080F9560 b _080F977A .align 2, 0 _080F9560: .4byte 0x020388c0 _080F9564: cmp r4, 0x2 bne _080F956A b _080F967C _080F956A: cmp r4, 0x3 bne _080F9570 b _080F96F8 _080F9570: ldr r5, _080F9574 b _080F977A .align 2, 0 _080F9574: .4byte 0x020388c0 _080F9578: ldr r0, _080F95D8 ldrb r1, [r0] adds r5, r0, 0 cmp r1, 0xFF beq _080F9584 b _080F977A _080F9584: ldr r0, _080F95DC lsls r1, r3, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 movs r3, 0 bl CreateSprite strb r0, [r5] ldr r3, _080F95E0 ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldr r1, _080F95E4 strh r1, [r0, 0x32] ldrb r0, [r5, 0x1] cmp r0, 0xFF beq _080F95E8 ldrb r0, [r5] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r5, 0x1] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 movs r2, 0x26 ldrsh r0, [r0, r2] negs r0, r0 strh r0, [r1, 0x26] ldrb r0, [r5] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r5, 0x1] b _080F9650 .align 2, 0 _080F95D8: .4byte 0x020388c0 _080F95DC: .4byte gSpriteTemplate_83E59D0 _080F95E0: .4byte 0x02020004 _080F95E4: .4byte 0x0000ffff _080F95E8: ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r4, [r0, 0x34] b _080F977A _080F95F6: ldr r0, _080F9660 ldrb r1, [r0, 0x1] adds r5, r0, 0 cmp r1, 0xFF beq _080F9602 b _080F977A _080F9602: ldr r0, _080F9664 lsls r1, r3, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 movs r3, 0 bl CreateSprite strb r0, [r5, 0x1] ldr r3, _080F9668 ldrb r1, [r5, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r4, [r0, 0x32] ldrb r0, [r5] cmp r0, 0xFF beq _080F966C ldrb r0, [r5, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r5] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 movs r2, 0x26 ldrsh r0, [r0, r2] negs r0, r0 strh r0, [r1, 0x26] ldrb r0, [r5, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r5] _080F9650: lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x34] strh r0, [r1, 0x34] b _080F977A .align 2, 0 _080F9660: .4byte 0x020388c0 _080F9664: .4byte gSpriteTemplate_83E59D0 _080F9668: .4byte 0x02020004 _080F966C: ldrb r0, [r5, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 movs r0, 0 strh r0, [r1, 0x34] b _080F977A _080F967C: ldr r0, _080F96E4 ldrb r1, [r0, 0x2] adds r5, r0, 0 cmp r1, 0xFF bne _080F977A ldr r0, _080F96E8 lsls r1, r3, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 movs r3, 0 bl CreateSprite strb r0, [r5, 0x2] ldr r3, _080F96EC ldrb r1, [r5, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldr r1, _080F96F0 strh r1, [r0, 0x2E] ldrb r0, [r5, 0x3] cmp r0, 0xFF beq _080F96F4 ldrb r0, [r5, 0x2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r5, 0x3] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 movs r2, 0x24 ldrsh r0, [r0, r2] negs r0, r0 strh r0, [r1, 0x24] ldrb r0, [r5, 0x2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r5, 0x3] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x30] b _080F9778 .align 2, 0 _080F96E4: .4byte 0x020388c0 _080F96E8: .4byte gSpriteTemplate_83E59E8 _080F96EC: .4byte 0x02020004 _080F96F0: .4byte 0x0000ffff _080F96F4: ldrb r0, [r5, 0x2] b _080F976E _080F96F8: ldr r0, _080F9760 ldrb r1, [r0, 0x3] adds r5, r0, 0 cmp r1, 0xFF bne _080F977A ldr r0, _080F9764 lsls r1, r3, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 movs r3, 0 bl CreateSprite strb r0, [r5, 0x3] ldr r3, _080F9768 ldrb r1, [r5, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x1 strh r1, [r0, 0x2E] ldrb r0, [r5, 0x2] cmp r0, 0xFF beq _080F976C ldrb r0, [r5, 0x3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r5, 0x2] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 movs r2, 0x24 ldrsh r0, [r0, r2] negs r0, r0 strh r0, [r1, 0x24] ldrb r0, [r5, 0x3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r5, 0x2] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x30] b _080F9778 .align 2, 0 _080F9760: .4byte 0x020388c0 _080F9764: .4byte gSpriteTemplate_83E59E8 _080F9768: .4byte 0x02020004 _080F976C: ldrb r0, [r5, 0x3] _080F976E: lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 movs r0, 0 _080F9778: strh r0, [r1, 0x30] _080F977A: adds r0, r4, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F9798 adds r0, r1 movs r1, 0x1 ands r1, r4 bl StartSpriteAnim _080F9790: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F9798: .4byte 0x02020004 thumb_func_end sub_80F953C thumb_func_start sub_80F979C sub_80F979C: @ 80F979C push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r3, r1, 24 cmp r2, 0x3 bhi _080F97D4 ldr r0, _080F97D8 adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0xFF beq _080F97D4 ldr r2, _080F97DC lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E movs r0, 0x1 adds r2, r3, 0 ands r2, r0 lsls r2, 2 ldrb r3, [r1] movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r2 strb r0, [r1] _080F97D4: pop {r0} bx r0 .align 2, 0 _080F97D8: .4byte 0x020388c0 _080F97DC: .4byte 0x02020004 thumb_func_end sub_80F979C thumb_func_start SetBgTilemapBuffer SetBgTilemapBuffer: @ 80F97E0 push {r4,lr} lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bhi _080F9808 ldr r0, _080F9810 adds r4, r1, r0 ldrb r0, [r4] cmp r0, 0xFF beq _080F9808 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F9814 adds r0, r1 bl DestroySprite movs r0, 0xFF strb r0, [r4] _080F9808: pop {r4} pop {r0} bx r0 .align 2, 0 _080F9810: .4byte 0x020388c0 _080F9814: .4byte 0x02020004 thumb_func_end SetBgTilemapBuffer thumb_func_start InitMenuInUpperLeftCornerPlaySoundWhenAPressed InitMenuInUpperLeftCornerPlaySoundWhenAPressed: @ 80F9818 push {lr} ldr r0, _080F9824 bl LoadSpritePalette pop {r0} bx r0 .align 2, 0 _080F9824: .4byte gUnknown_083E5968 thumb_func_end InitMenuInUpperLeftCornerPlaySoundWhenAPressed thumb_func_start BuyMenuFreeMemory BuyMenuFreeMemory: @ 80F9828 push {lr} movs r0, 0x6 bl FreeSpritePaletteByTag pop {r0} bx r0 thumb_func_end BuyMenuFreeMemory thumb_func_start sub_80F9834 sub_80F9834: @ 80F9834 push {lr} adds r2, r0, 0 movs r1, 0x30 ldrsh r0, [r2, r1] cmp r0, 0 bne _080F9848 ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x24] _080F9848: movs r1, 0x34 ldrsh r0, [r2, r1] cmp r0, 0 bne _080F9858 ldrh r0, [r2, 0x32] ldrh r1, [r2, 0x26] adds r0, r1 strh r0, [r2, 0x26] _080F9858: ldrh r1, [r2, 0x30] adds r1, 0x1 movs r3, 0 strh r1, [r2, 0x30] ldrh r0, [r2, 0x34] adds r0, 0x1 strh r0, [r2, 0x34] lsls r1, 16 asrs r1, 16 cmp r1, 0x2 ble _080F9870 strh r3, [r2, 0x30] _080F9870: movs r1, 0x34 ldrsh r0, [r2, r1] cmp r0, 0x2 ble _080F987A strh r3, [r2, 0x34] _080F987A: movs r0, 0x24 ldrsh r1, [r2, r0] cmp r1, 0x8 beq _080F988A movs r0, 0x8 negs r0, r0 cmp r1, r0 bne _080F988C _080F988A: strh r3, [r2, 0x24] _080F988C: movs r0, 0x26 ldrsh r1, [r2, r0] cmp r1, 0x8 beq _080F989C movs r0, 0x8 negs r0, r0 cmp r1, r0 bne _080F98A0 _080F989C: movs r0, 0 strh r0, [r2, 0x26] _080F98A0: pop {r0} bx r0 thumb_func_end sub_80F9834 thumb_func_start sub_80F98A4 sub_80F98A4: @ 80F98A4 push {lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _080F98D0 adds r3, r1, r0 ldrb r0, [r3] cmp r0, 0xFF beq _080F98CA cmp r1, 0x3 bhi _080F98CA ldr r2, _080F98D4 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _080F98D8 str r1, [r0] _080F98CA: pop {r0} bx r0 .align 2, 0 _080F98D0: .4byte 0x020388c0 _080F98D4: .4byte 0x02020004 _080F98D8: .4byte SpriteCallbackDummy thumb_func_end sub_80F98A4 thumb_func_start sub_80F98DC sub_80F98DC: @ 80F98DC push {lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _080F9908 adds r3, r1, r0 ldrb r0, [r3] cmp r0, 0xFF beq _080F9902 cmp r1, 0x3 bhi _080F9902 ldr r2, _080F990C adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _080F9910 str r1, [r0] _080F9902: pop {r0} bx r0 .align 2, 0 _080F9908: .4byte 0x020388c0 _080F990C: .4byte 0x02020004 _080F9910: .4byte sub_80F9834 thumb_func_end sub_80F98DC thumb_func_start sub_80F9914 sub_80F9914: @ 80F9914 push {r4,lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _080F9964 adds r4, r1, r0 ldrb r0, [r4] cmp r0, 0xFF beq _080F995C cmp r1, 0x3 bhi _080F995C ldr r3, _080F9968 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r2, 0 strh r2, [r0, 0x24] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r2, [r0, 0x26] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r2, [r0, 0x30] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r2, [r0, 0x34] _080F995C: pop {r4} pop {r0} bx r0 .align 2, 0 _080F9964: .4byte 0x020388c0 _080F9968: .4byte 0x02020004 thumb_func_end sub_80F9914 thumb_func_start sub_80F996C sub_80F996C: @ 80F996C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_80F98A4 adds r0, r4, 0 bl sub_80F9914 pop {r4} pop {r0} bx r0 thumb_func_end sub_80F996C thumb_func_start sub_80F9988 sub_80F9988: @ 80F9988 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r3, r1, 24 ldr r0, _080F99C4 adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0xFF beq _080F99BE cmp r2, 0x3 bhi _080F99BE ldr r2, _080F99C8 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0x3 adds r2, r3, 0 ands r2, r0 lsls r2, 2 ldrb r3, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r2 strb r0, [r1, 0x5] _080F99BE: pop {r0} bx r0 .align 2, 0 _080F99C4: .4byte 0x020388c0 _080F99C8: .4byte 0x02020004 thumb_func_end sub_80F9988 thumb_func_start sub_80F99CC sub_80F99CC: @ 80F99CC push {lr} sub sp, 0x4 bl script_env_2_enable ldr r0, _080F9A04 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080F9A08 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0 movs r0, 0x2 strh r0, [r1, 0x8] subs r0, 0x3 str r2, [sp] movs r1, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080F9A04: .4byte sub_80F9A8C _080F9A08: .4byte 0x03004b20 thumb_func_end sub_80F99CC thumb_func_start sub_80F9A0C sub_80F9A0C: @ 80F9A0C push {lr} sub sp, 0x4 bl script_env_2_enable ldr r0, _080F9A44 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080F9A48 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0 movs r0, 0x3 strh r0, [r1, 0x8] subs r0, 0x4 str r2, [sp] movs r1, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080F9A44: .4byte sub_80F9A8C _080F9A48: .4byte 0x03004b20 thumb_func_end sub_80F9A0C thumb_func_start sub_80F9A4C sub_80F9A4C: @ 80F9A4C push {lr} sub sp, 0x4 bl script_env_2_enable ldr r0, _080F9A84 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080F9A88 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0 movs r0, 0x7 strh r0, [r1, 0x8] subs r0, 0x8 str r2, [sp] movs r1, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080F9A84: .4byte sub_80F9A8C _080F9A88: .4byte 0x03004b20 thumb_func_end sub_80F9A4C thumb_func_start sub_80F9A8C sub_80F9A8C: @ 80F9A8C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r2, _080F9AC4 ldrb r1, [r2, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080F9ABE ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r1, _080F9AC8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x8] movs r1, 0 bl sub_806AFAC adds r0, r4, 0 bl DestroyTask _080F9ABE: pop {r4} pop {r0} bx r0 .align 2, 0 _080F9AC4: .4byte 0x0202f388 _080F9AC8: .4byte 0x03004b20 thumb_func_end sub_80F9A8C thumb_func_start sub_80F9ACC sub_80F9ACC: @ 80F9ACC push {r4,r5,lr} ldr r1, _080F9AEC movs r2, 0x99 lsls r2, 2 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r4, r1, 0 cmp r0, 0x7 bls _080F9AE2 b _080F9BF6 _080F9AE2: lsls r0, 2 ldr r1, _080F9AF0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F9AEC: .4byte 0x0201b000 _080F9AF0: .4byte _080F9AF4 .align 2, 0 _080F9AF4: .4byte _080F9B14 .4byte _080F9B54 .4byte _080F9B5A .4byte _080F9B6E .4byte _080F9B98 .4byte _080F9B9E .4byte _080F9BB0 .4byte _080F9BC8 _080F9B14: ldr r0, _080F9B3C adds r5, r4, r0 movs r1, 0 ldrsh r3, [r5, r1] ldr r0, _080F9B40 ldrb r0, [r0] cmp r3, r0 bge _080F9B48 movs r2, 0x98 lsls r2, 2 adds r0, r4, r2 ldrb r0, [r0] ldrb r1, [r5] movs r2, 0x64 muls r2, r3 ldr r3, _080F9B44 adds r2, r3 bl sub_806D90C b _080F9BF0 .align 2, 0 _080F9B3C: .4byte 0x00000266 _080F9B40: .4byte 0x03004350 _080F9B44: .4byte 0x03004360 _080F9B48: movs r0, 0 strh r0, [r5] movs r0, 0x99 lsls r0, 2 adds r1, r4, r0 b _080F9BBC _080F9B54: bl sub_806DA98 b _080F9BB4 _080F9B5A: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] bl sub_806DC34 movs r2, 0x99 lsls r2, 2 adds r1, r4, r2 b _080F9BBC _080F9B6E: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] ldr r2, _080F9B94 adds r5, r4, r2 ldrb r1, [r5] bl sub_806BD58 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080F9BF0 movs r0, 0 strh r0, [r5] movs r0, 0x99 lsls r0, 2 adds r1, r4, r0 b _080F9BBC .align 2, 0 _080F9B94: .4byte 0x00000266 _080F9B98: bl sub_806E334 b _080F9BB4 _080F9B9E: bl sub_806E0C4 ldr r1, _080F9BAC movs r0, 0x99 lsls r0, 2 adds r1, r0 b _080F9BBC .align 2, 0 _080F9BAC: .4byte 0x0201b000 _080F9BB0: bl sub_80F9C00 _080F9BB4: ldr r1, _080F9BC4 movs r2, 0x99 lsls r2, 2 adds r1, r2 _080F9BBC: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080F9BF6 .align 2, 0 _080F9BC4: .4byte 0x0201b000 _080F9BC8: ldr r0, _080F9BEC adds r5, r4, r0 ldrb r0, [r5] bl sub_806B58C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080F9BF0 movs r1, 0 strh r1, [r5] movs r2, 0x99 lsls r2, 2 adds r0, r4, r2 strh r1, [r0] movs r0, 0x1 b _080F9BF8 .align 2, 0 _080F9BEC: .4byte 0x00000266 _080F9BF0: ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _080F9BF6: movs r0, 0 _080F9BF8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80F9ACC thumb_func_start sub_80F9C00 sub_80F9C00: @ 80F9C00 push {r4,lr} movs r4, 0 b _080F9C58 _080F9C06: movs r0, 0x64 muls r0, r4 ldr r1, _080F9C24 adds r0, r1 bl sub_80AE47C lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080F9C52 lsls r0, 2 ldr r1, _080F9C28 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F9C24: .4byte 0x03004360 _080F9C28: .4byte _080F9C2C .align 2, 0 _080F9C2C: .4byte _080F9C40 .4byte _080F9C4A .4byte _080F9C4A .4byte _080F9C40 .4byte _080F9C40 _080F9C40: adds r0, r4, 0 movs r1, 0x7E bl sub_806BC3C b _080F9C52 _080F9C4A: adds r0, r4, 0 movs r1, 0x70 bl sub_806BC3C _080F9C52: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _080F9C58: ldr r0, _080F9C68 ldrb r0, [r0] cmp r4, r0 bcc _080F9C06 pop {r4} pop {r0} bx r0 .align 2, 0 _080F9C68: .4byte 0x03004350 thumb_func_end sub_80F9C00 thumb_func_start sub_80F9C6C sub_80F9C6C: @ 80F9C6C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080F9C94 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080F9CD8 adds r0, r4, 0 bl sub_806BD80 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 beq _080F9C98 cmp r0, 0x2 beq _080F9CC0 b _080F9CD8 .align 2, 0 _080F9C94: .4byte 0x0202f388 _080F9C98: movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_806CA38 ldr r1, _080F9CB8 strb r0, [r1] ldr r2, _080F9CBC ldrb r0, [r1] strh r0, [r2] adds r0, r4, 0 bl sub_8123138 b _080F9CD8 .align 2, 0 _080F9CB8: .4byte 0x02038694 _080F9CBC: .4byte 0x0202e8cc _080F9CC0: movs r0, 0x5 bl audio_play ldr r1, _080F9CE0 movs r0, 0xFF strb r0, [r1] ldr r1, _080F9CE4 movs r0, 0xFF strh r0, [r1] adds r0, r4, 0 bl sub_8123138 _080F9CD8: pop {r4} pop {r0} bx r0 .align 2, 0 _080F9CE0: .4byte 0x02038694 _080F9CE4: .4byte 0x0202e8cc thumb_func_end sub_80F9C6C thumb_func_start sub_80F9CE8 sub_80F9CE8: @ 80F9CE8 push {r4,r5,lr} ldr r1, _080F9D08 movs r2, 0x99 lsls r2, 2 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r4, r1, 0 cmp r0, 0x7 bls _080F9CFE b _080F9E12 _080F9CFE: lsls r0, 2 ldr r1, _080F9D0C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080F9D08: .4byte 0x0201b000 _080F9D0C: .4byte _080F9D10 .align 2, 0 _080F9D10: .4byte _080F9D30 .4byte _080F9D70 .4byte _080F9D76 .4byte _080F9D8A .4byte _080F9DB4 .4byte _080F9DBA .4byte _080F9DCC .4byte _080F9DE4 _080F9D30: ldr r0, _080F9D58 adds r5, r4, r0 movs r1, 0 ldrsh r3, [r5, r1] ldr r0, _080F9D5C ldrb r0, [r0] cmp r3, r0 bge _080F9D64 movs r2, 0x98 lsls r2, 2 adds r0, r4, r2 ldrb r0, [r0] ldrb r1, [r5] movs r2, 0x64 muls r2, r3 ldr r3, _080F9D60 adds r2, r3 bl sub_806D90C b _080F9E0C .align 2, 0 _080F9D58: .4byte 0x00000266 _080F9D5C: .4byte 0x03004350 _080F9D60: .4byte 0x03004360 _080F9D64: movs r0, 0 strh r0, [r5] movs r0, 0x99 lsls r0, 2 adds r1, r4, r0 b _080F9DD8 _080F9D70: bl sub_806DA98 b _080F9DD0 _080F9D76: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] bl sub_806DC34 movs r2, 0x99 lsls r2, 2 adds r1, r4, r2 b _080F9DD8 _080F9D8A: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] ldr r2, _080F9DB0 adds r5, r4, r2 ldrb r1, [r5] bl sub_806BD58 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080F9E0C movs r0, 0 strh r0, [r5] movs r0, 0x99 lsls r0, 2 adds r1, r4, r0 b _080F9DD8 .align 2, 0 _080F9DB0: .4byte 0x00000266 _080F9DB4: bl sub_806E334 b _080F9DD0 _080F9DBA: bl sub_806E0C4 ldr r1, _080F9DC8 movs r0, 0x99 lsls r0, 2 adds r1, r0 b _080F9DD8 .align 2, 0 _080F9DC8: .4byte 0x0201b000 _080F9DCC: bl sub_80F9E1C _080F9DD0: ldr r1, _080F9DE0 movs r2, 0x99 lsls r2, 2 adds r1, r2 _080F9DD8: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080F9E12 .align 2, 0 _080F9DE0: .4byte 0x0201b000 _080F9DE4: ldr r0, _080F9E08 adds r5, r4, r0 ldrb r0, [r5] bl sub_806B58C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080F9E0C movs r1, 0 strh r1, [r5] movs r2, 0x99 lsls r2, 2 adds r0, r4, r2 strh r1, [r0] movs r0, 0x1 b _080F9E14 .align 2, 0 _080F9E08: .4byte 0x00000266 _080F9E0C: ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _080F9E12: movs r0, 0 _080F9E14: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80F9CE8 thumb_func_start sub_80F9E1C sub_80F9E1C: @ 80F9E1C push {r4,lr} movs r4, 0 b _080F9E52 _080F9E22: movs r0, 0x64 muls r0, r4 ldr r1, _080F9E40 adds r0, r1 bl sub_8040574 lsls r0, 24 cmp r0, 0 bne _080F9E44 adds r0, r4, 0 movs r1, 0x9A bl sub_806BC3C b _080F9E4C .align 2, 0 _080F9E40: .4byte 0x03004360 _080F9E44: adds r0, r4, 0 movs r1, 0x8C bl sub_806BC3C _080F9E4C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _080F9E52: ldr r0, _080F9E60 ldrb r0, [r0] cmp r4, r0 bcc _080F9E22 pop {r4} pop {r0} bx r0 .align 2, 0 _080F9E60: .4byte 0x03004350 thumb_func_end sub_80F9E1C thumb_func_start sub_80F9E64 sub_80F9E64: @ 80F9E64 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _080F9E8C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080F9EE2 adds r0, r6, 0 bl sub_806BD80 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 beq _080F9E90 cmp r0, 0x2 beq _080F9ED0 b _080F9EE2 .align 2, 0 _080F9E8C: .4byte 0x0202f388 _080F9E90: movs r0, 0x5 bl audio_play ldr r4, _080F9EC4 adds r0, r6, 0 bl sub_806CA38 lsls r0, 24 lsrs r0, 24 strh r0, [r4] ldr r5, _080F9EC8 ldrh r1, [r4] movs r0, 0x64 muls r0, r1 ldr r1, _080F9ECC adds r0, r1 bl sub_8040574 lsls r0, 24 lsrs r0, 24 strh r0, [r5] adds r0, r6, 0 bl sub_8123138 b _080F9EE2 .align 2, 0 _080F9EC4: .4byte 0x0202e8cc _080F9EC8: .4byte 0x0202e8ce _080F9ECC: .4byte 0x03004360 _080F9ED0: movs r0, 0x5 bl audio_play ldr r1, _080F9EE8 movs r0, 0xFF strh r0, [r1] adds r0, r6, 0 bl sub_8123138 _080F9EE2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080F9EE8: .4byte 0x0202e8cc thumb_func_end sub_80F9E64 thumb_func_start sub_80F9EEC sub_80F9EEC: @ 80F9EEC push {r4,lr} sub sp, 0x4 ldr r0, _080F9F20 ldr r1, _080F9F24 ldrb r1, [r1] ldr r2, _080F9F28 ldrb r2, [r2] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, _080F9F2C movs r4, 0 str r4, [sp] bl sub_809D9F0 ldr r1, _080F9F30 movs r0, 0x3 strb r0, [r1, 0x8] ldr r1, _080F9F34 ldr r0, _080F9F38 str r0, [r1] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080F9F20: .4byte 0x03004360 _080F9F24: .4byte 0x0202e8cc _080F9F28: .4byte 0x03004350 _080F9F2C: .4byte c2_exit_to_overworld_2_switch _080F9F30: .4byte 0x02018000 _080F9F34: .4byte 0x0300485c _080F9F38: .4byte sub_8080990 thumb_func_end sub_80F9EEC thumb_func_start sub_80F9F3C sub_80F9F3C: @ 80F9F3C push {r4,r5,lr} ldr r1, _080F9F78 movs r0, 0 strh r0, [r1] movs r4, 0 adds r5, r1, 0 _080F9F48: ldr r0, _080F9F7C ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080F9F80 adds r0, r1 adds r1, r4, 0 adds r1, 0xD bl PokemonGetField cmp r0, 0 beq _080F9F66 ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _080F9F66: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080F9F48 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F9F78: .4byte 0x0202e8dc _080F9F7C: .4byte 0x0202e8cc _080F9F80: .4byte 0x03004360 thumb_func_end sub_80F9F3C thumb_func_start sub_80F9F84 sub_80F9F84: @ 80F9F84 push {r4,r5,lr} ldr r0, _080F9FC4 ldrh r1, [r0] movs r0, 0x64 adds r5, r1, 0 muls r5, r0 ldr r0, _080F9FC8 adds r5, r0 ldr r0, _080F9FCC ldrh r1, [r0] adds r1, 0xD adds r0, r5, 0 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r1, _080F9FD0 adds r0, r5, 0 bl GetMonNickname ldr r0, _080F9FD4 movs r1, 0xD muls r1, r4 ldr r2, _080F9FD8 adds r1, r2 bl StringCopy pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080F9FC4: .4byte 0x0202e8cc _080F9FC8: .4byte 0x03004360 _080F9FCC: .4byte 0x0202e8ce _080F9FD0: .4byte 0x020231cc _080F9FD4: .4byte 0x020232cc _080F9FD8: .4byte gMoveNames thumb_func_end sub_80F9F84 thumb_func_start sub_80F9FDC sub_80F9FDC: @ 80F9FDC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 mov r8, r0 adds r5, r1, 0 adds r4, r2, 0 lsls r5, 24 lsrs r5, 24 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 adds r0, 0xD str r0, [sp, 0x8] mov r0, r8 ldr r1, [sp, 0x8] bl PokemonGetField mov r1, sp adds r1, 0x2 str r1, [sp, 0x14] strh r0, [r1] adds r3, r4, 0 adds r3, 0xD str r3, [sp, 0xC] mov r0, r8 adds r1, r3, 0 bl PokemonGetField mov r1, sp strh r0, [r1] adds r7, r5, 0 adds r7, 0x11 str r7, [sp, 0x10] mov r0, r8 adds r1, r7, 0 bl PokemonGetField mov r1, sp adds r1, 0x5 str r1, [sp, 0x18] strb r0, [r1] adds r3, r4, 0 adds r3, 0x11 str r3, [sp, 0x1C] mov r0, r8 adds r1, r3, 0 bl PokemonGetField add r7, sp, 0x4 mov r10, r7 strb r0, [r7] mov r0, r8 movs r1, 0x15 bl PokemonGetField mov r6, sp adds r6, 0x6 strb r0, [r6] ldr r1, _080FA0D8 adds r0, r5, r1 ldrb r0, [r0] mov r9, r0 ldrb r0, [r6] adds r2, r0, 0 mov r3, r9 ands r2, r3 lsls r5, 1 asrs r2, r5 lsls r2, 24 lsrs r2, 24 adds r1, r4, r1 ldrb r3, [r1] adds r1, r0, 0 ands r1, r3 lsls r4, 1 asrs r1, r4 lsls r1, 24 lsrs r1, 24 mov r7, r9 bics r0, r7 strb r0, [r6] ldrb r0, [r6] bics r0, r3 strb r0, [r6] lsls r2, r4 lsls r1, r5 adds r2, r1 ldrb r0, [r6] orrs r0, r2 strb r0, [r6] mov r0, r8 ldr r1, [sp, 0x8] mov r2, sp bl pokemon_setattr mov r0, r8 ldr r1, [sp, 0xC] ldr r2, [sp, 0x14] bl pokemon_setattr mov r0, r8 ldr r1, [sp, 0x10] mov r2, r10 bl pokemon_setattr mov r0, r8 ldr r1, [sp, 0x1C] ldr r2, [sp, 0x18] bl pokemon_setattr mov r0, r8 movs r1, 0x15 adds r2, r6, 0 bl pokemon_setattr add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FA0D8: .4byte gUnknown_08208238 thumb_func_end sub_80F9FDC thumb_func_start sub_80FA0DC sub_80FA0DC: @ 80FA0DC push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, _080FA13C mov r8, r0 ldrh r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, _080FA140 adds r0, r5 ldr r4, _080FA144 ldrb r2, [r4] movs r1, 0 bl sub_803B6A4 mov r1, r8 ldrh r0, [r1] muls r0, r6 adds r0, r5 ldrb r1, [r4] bl sub_803DE34 ldrh r4, [r4] cmp r4, 0x2 bhi _080FA130 _080FA10E: ldr r0, _080FA13C ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080FA140 adds r0, r1 lsls r1, r4, 24 lsrs r1, 24 adds r4, 0x1 lsls r2, r4, 24 lsrs r2, 24 bl sub_80F9FDC lsls r4, 16 lsrs r4, 16 cmp r4, 0x2 bls _080FA10E _080FA130: pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080FA13C: .4byte 0x0202e8cc _080FA140: .4byte 0x03004360 _080FA144: .4byte 0x0202e8ce thumb_func_end sub_80FA0DC thumb_func_start sub_80FA148 sub_80FA148: @ 80FA148 push {r4,lr} ldr r0, _080FA170 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080FA174 adds r0, r1 ldr r4, _080FA178 movs r1, 0 strh r1, [r4] movs r1, 0x2D bl PokemonGetField cmp r0, 0 beq _080FA16A movs r0, 0x1 strh r0, [r4] _080FA16A: pop {r4} pop {r0} bx r0 .align 2, 0 _080FA170: .4byte 0x0202e8cc _080FA174: .4byte 0x03004360 _080FA178: .4byte 0x0202e8dc thumb_func_end sub_80FA148 thumb_func_start sub_80FA17C sub_80FA17C: @ 80FA17C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r6, 0 ldr r7, _080FA1B4 ldr r0, _080FA1B8 adds r0, r7 mov r9, r0 movs r1, 0x1 mov r8, r1 _080FA192: movs r0, 0xA bl sub_80EB72C lsls r4, r6, 3 adds r5, r4, r7 ldr r2, _080FA1BC adds r1, r5, r2 strh r0, [r1] bl Random mov r1, r8 ands r1, r0 cmp r1, 0 beq _080FA1C0 movs r0, 0xC b _080FA1C2 .align 2, 0 _080FA1B4: .4byte 0x02025734 _080FA1B8: .4byte 0x00002dd4 _080FA1BC: .4byte 0x00002dd8 _080FA1C0: movs r0, 0xD _080FA1C2: bl sub_80EB72C ldr r2, _080FA214 adds r1, r5, r2 strh r0, [r1] bl Random adds r3, r4, r7 mov r2, r8 ands r2, r0 ldr r5, _080FA218 adds r3, r5 lsls r2, 6 ldrb r0, [r3] movs r5, 0x41 negs r5, r5 adds r1, r5, 0 ands r0, r1 orrs r0, r2 strb r0, [r3] mov r1, r9 adds r0, r4, r1 bl sub_80FA740 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x4 bls _080FA192 ldr r0, _080FA21C movs r1, 0x5 movs r2, 0 bl sub_80FA46C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FA214: .4byte 0x00002dda _080FA218: .4byte 0x00002dd5 _080FA21C: .4byte 0x02028508 thumb_func_end sub_80FA17C thumb_func_start sub_80FA220 sub_80FA220: @ 80FA220 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _080FA236 b _080FA34E _080FA236: lsls r0, r1, 2 adds r0, r1 str r0, [sp] movs r0, 0 mov r10, r0 movs r1, 0x7F mov r9, r1 movs r2, 0x80 negs r2, r2 mov r8, r2 _080FA24A: ldr r2, [sp] mov r4, r10 lsls r0, r4, 3 ldr r1, _080FA28C adds r5, r0, r1 ldrb r6, [r5, 0x1] movs r0, 0x40 ands r0, r6 cmp r0, 0 bne _080FA2A0 ldrb r4, [r5] lsls r3, r4, 25 lsrs r1, r3, 25 lsls r0, r2, 16 lsrs r0, 16 cmp r1, r0 bcc _080FA290 adds r0, r1, 0 subs r0, r2 mov r2, r9 ands r0, r2 mov r1, r8 ands r1, r4 orrs r1, r0 strb r1, [r5] movs r0, 0x7F ands r1, r0 cmp r1, 0 bne _080FA336 movs r0, 0x40 orrs r0, r6 b _080FA334 .align 2, 0 _080FA28C: .4byte 0x02028508 _080FA290: lsrs r0, r3, 25 subs r2, r0 mov r0, r8 ands r0, r4 strb r0, [r5] movs r0, 0x40 orrs r0, r6 strb r0, [r5, 0x1] _080FA2A0: ldrb r7, [r5] lsls r0, r7, 25 lsrs r0, 25 adds r4, r0, r2 ldrh r0, [r5] lsls r6, r0, 18 lsls r0, r4, 16 lsrs r0, 16 lsrs r1, r6, 25 cmp r0, r1 bls _080FA310 adds r0, r4, 0 bl __umodsi3 adds r3, r0, 0 lsrs r1, r6, 25 adds r0, r4, 0 str r3, [sp, 0x4] bl __udivsi3 adds r4, r0, 0 movs r0, 0x1 eors r4, r0 ands r4, r0 lsls r2, r4, 6 ldrb r0, [r5, 0x1] movs r4, 0x41 negs r4, r4 adds r1, r4, 0 ands r0, r1 orrs r0, r2 strb r0, [r5, 0x1] movs r1, 0x40 ands r0, r1 ldr r3, [sp, 0x4] cmp r0, 0 beq _080FA2FA adds r1, r3, 0 mov r0, r9 ands r1, r0 mov r0, r8 ands r0, r7 orrs r0, r1 strb r0, [r5] b _080FA336 _080FA2FA: ldrh r0, [r5] lsls r0, 18 lsrs r0, 25 subs r0, r3 mov r1, r9 ands r0, r1 mov r1, r8 ands r1, r7 orrs r1, r0 strb r1, [r5] b _080FA336 _080FA310: mov r2, r9 ands r4, r2 mov r0, r8 ands r0, r7 orrs r0, r4 strb r0, [r5] lsls r0, 25 ldrh r1, [r5] lsls r1, 18 lsrs r0, 25 lsrs r1, 25 cmp r0, r1 bne _080FA336 ldrb r0, [r5, 0x1] movs r4, 0x41 negs r4, r4 adds r1, r4, 0 ands r0, r1 _080FA334: strb r0, [r5, 0x1] _080FA336: mov r0, r10 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r10, r0 cmp r0, 0x4 bls _080FA24A ldr r0, _080FA360 movs r1, 0x5 movs r2, 0 bl sub_80FA46C _080FA34E: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FA360: .4byte 0x02028508 thumb_func_end sub_80FA220 thumb_func_start sub_80FA364 sub_80FA364: @ 80FA364 push {r4-r7,lr} sub sp, 0x8 adds r4, r0, 0 movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] adds r0, r4, 0 bl sub_80FA7C8 lsls r0, 24 cmp r0, 0 bne _080FA462 ldr r5, _080FA3B4 adds r0, r5, 0 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080FA3C8 adds r0, r5, 0 bl FlagSet ldr r0, _080FA3B8 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080FA3C8 ldr r1, _080FA3BC ldrh r2, [r4] ldr r3, _080FA3C0 adds r0, r1, r3 strh r2, [r0] ldrh r0, [r4, 0x2] ldr r2, _080FA3C4 adds r1, r2 strh r0, [r1] movs r0, 0x1 b _080FA464 .align 2, 0 _080FA3B4: .4byte 0x00000833 _080FA3B8: .4byte 0x00000834 _080FA3BC: .4byte 0x02025734 _080FA3C0: .4byte 0x00002dd8 _080FA3C4: .4byte 0x00002dda _080FA3C8: ldrh r1, [r4, 0x2] lsls r1, 16 ldrh r0, [r4] orrs r0, r1 str r0, [sp, 0x4] movs r1, 0x80 lsls r1, 7 ldr r0, [sp] orrs r0, r1 str r0, [sp] mov r0, sp bl sub_80FA740 movs r6, 0 _080FA3E4: lsls r4, r6, 3 ldr r5, _080FA444 adds r1, r4, r5 mov r0, sp movs r2, 0 bl atk90_changetypestoenemyattacktype lsls r0, 24 adds r7, r4, 0 cmp r0, 0 beq _080FA450 movs r3, 0x4 ldr r0, _080FA448 adds r0, r5 mov r12, r0 cmp r3, r6 bls _080FA428 mov r5, r12 ldr r4, _080FA44C _080FA40A: lsls r2, r3, 3 adds r2, r5 adds r2, r4 subs r3, 0x1 lsls r0, r3, 3 adds r0, r5 adds r0, r4 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2] str r1, [r2, 0x4] lsls r3, 16 lsrs r3, 16 cmp r3, r6 bhi _080FA40A _080FA428: mov r3, r12 adds r2, r7, r3 ldr r0, _080FA44C adds r2, r0 ldr r0, [sp] ldr r1, [sp, 0x4] str r0, [r2] str r1, [r2, 0x4] movs r0, 0 cmp r6, 0 bne _080FA464 movs r0, 0x1 b _080FA464 .align 2, 0 _080FA444: .4byte 0x02028508 _080FA448: .4byte 0xffffd22c _080FA44C: .4byte 0x00002dd4 _080FA450: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x4 bls _080FA3E4 ldr r0, [sp] ldr r1, [sp, 0x4] str r0, [r5, 0x20] str r1, [r5, 0x24] _080FA462: movs r0, 0 _080FA464: add sp, 0x8 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80FA364 thumb_func_start sub_80FA46C sub_80FA46C: @ 80FA46C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r9, r0 lsls r1, 16 lsrs r7, r1, 16 lsls r2, 24 lsrs r2, 24 mov r10, r2 movs r2, 0 cmp r2, r7 bcs _080FA4D4 _080FA488: adds r1, r2, 0x1 lsls r0, r1, 16 lsrs r5, r0, 16 mov r8, r1 cmp r5, r7 bcs _080FA4CA lsls r0, r2, 3 mov r1, r9 adds r6, r1, r0 _080FA49A: lsls r0, r5, 3 mov r1, r9 adds r4, r1, r0 adds r0, r4, 0 adds r1, r6, 0 mov r2, r10 bl atk90_changetypestoenemyattacktype lsls r0, 24 cmp r0, 0 beq _080FA4C0 ldr r2, [r4] ldr r3, [r4, 0x4] ldr r0, [r6] ldr r1, [r6, 0x4] str r0, [r4] str r1, [r4, 0x4] str r2, [r6] str r3, [r6, 0x4] _080FA4C0: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r7 bcc _080FA49A _080FA4CA: mov r1, r8 lsls r0, r1, 16 lsrs r2, r0, 16 cmp r2, r7 bcc _080FA488 _080FA4D4: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80FA46C thumb_func_start sub_80FA4E4 sub_80FA4E4: @ 80FA4E4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r6, r0, 0 adds r5, r1, 0 bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r4, 0 cmp r4, r8 bcs _080FA520 _080FA500: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080FA554 adds r0, r1 adds r1, r4, 0 muls r1, r5 adds r1, r6, r1 movs r2, 0x28 bl memcpy adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r8 bcc _080FA500 _080FA520: ldr r5, _080FA554 movs r0, 0x80 lsls r0, 1 adds r3, r5, r0 movs r7, 0 movs r4, 0 cmp r4, r8 bcs _080FA588 _080FA530: movs r6, 0 _080FA532: adds r0, r5, 0 adds r1, r7, 0 str r3, [sp] bl sub_80FA828 lsls r0, 16 asrs r0, 16 ldr r3, [sp] cmp r0, 0 bge _080FA558 ldr r0, [r5] ldr r1, [r5, 0x4] stm r3!, {r0,r1} adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 b _080FA572 .align 2, 0 _080FA554: .4byte 0x02007800 _080FA558: lsls r1, r0, 3 ldr r0, _080FA5B4 adds r2, r1, r0 ldrb r1, [r2] lsls r1, 25 ldrb r0, [r5] lsls r0, 25 cmp r1, r0 bcs _080FA572 ldr r0, [r5] ldr r1, [r5, 0x4] str r0, [r2] str r1, [r2, 0x4] _080FA572: adds r5, 0x8 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x4 bls _080FA532 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r8 bcc _080FA530 _080FA588: ldr r4, _080FA5B4 adds r0, r4, 0 adds r1, r7, 0 movs r2, 0x2 bl sub_80FA46C adds r5, r4, 0 ldr r3, _080FA5B8 movs r4, 0 _080FA59A: ldm r5!, {r0,r1} stm r3!, {r0,r1} adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _080FA59A add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FA5B4: .4byte 0x02007900 _080FA5B8: .4byte 0x02028508 thumb_func_end sub_80FA4E4 thumb_func_start sub_80FA5BC sub_80FA5BC: @ 80FA5BC push {lr} ldr r0, _080FA5D8 ldrh r1, [r0] lsls r1, 3 ldr r0, _080FA5DC adds r1, r0 ldr r0, _080FA5E0 adds r1, 0x4 movs r2, 0x2 movs r3, 0x1 bl ConvertEasyChatWordsToString pop {r0} bx r0 .align 2, 0 _080FA5D8: .4byte 0x0202e8cc _080FA5DC: .4byte 0x02028508 _080FA5E0: .4byte 0x020231cc thumb_func_end sub_80FA5BC thumb_func_start sub_80FA5E4 sub_80FA5E4: @ 80FA5E4 push {r4,lr} movs r4, 0 ldr r3, _080FA630 ldr r1, _080FA634 adds r0, r3, r1 ldrb r1, [r0] lsls r1, 25 lsrs r1, 25 ldr r2, _080FA638 adds r0, r3, r2 ldrb r0, [r0] lsls r0, 25 lsrs r0, 25 subs r1, r0 cmp r1, 0x1 bgt _080FA626 ldr r1, _080FA63C adds r0, r3, r1 ldrb r1, [r0] movs r2, 0x40 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _080FA626 ldr r1, _080FA640 adds r0, r3, r1 ldrb r1, [r0] adds r0, r2, 0 ands r0, r1 lsls r0, 24 lsrs r0, 24 negs r0, r0 lsrs r4, r0, 31 _080FA626: ldr r0, _080FA644 strh r4, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080FA630: .4byte 0x02025734 _080FA634: .4byte 0x00002dd4 _080FA638: .4byte 0x00002ddc _080FA63C: .4byte 0x00002dd5 _080FA640: .4byte 0x00002ddd _080FA644: .4byte 0x0202e8dc thumb_func_end sub_80FA5E4 thumb_func_start sub_80FA648 sub_80FA648: @ 80FA648 ldr r2, _080FA664 ldr r0, _080FA668 ldr r3, _080FA66C adds r1, r0, r3 adds r3, 0x2 adds r0, r3 ldrh r0, [r0] ldrh r1, [r1] adds r0, r1 movs r1, 0x7 ands r0, r1 strh r0, [r2] bx lr .align 2, 0 _080FA664: .4byte 0x0202e8dc _080FA668: .4byte 0x02025734 _080FA66C: .4byte 0x00002dd8 thumb_func_end sub_80FA648 thumb_func_start atk90_changetypestoenemyattacktype atk90_changetypestoenemyattacktype: @ 80FA670 push {r4,r5,lr} adds r3, r0, 0 adds r5, r1, 0 lsls r2, 24 lsrs r2, 24 adds r0, r2, 0 cmp r2, 0x1 beq _080FA6B6 cmp r2, 0x1 bgt _080FA68A cmp r2, 0 beq _080FA690 b _080FA732 _080FA68A: cmp r0, 0x2 beq _080FA6E2 b _080FA732 _080FA690: ldrb r0, [r3] lsls r1, r0, 25 ldrb r0, [r5] lsls r0, 25 cmp r1, r0 bhi _080FA72E cmp r1, r0 bcc _080FA6DE ldrh r0, [r3] lsls r3, r0, 18 ldrh r0, [r5] lsls r2, r0, 18 lsrs r1, r3, 25 lsrs r0, r2, 25 cmp r1, r0 bhi _080FA72E lsrs r1, r3, 25 lsrs r0, r2, 25 b _080FA6DA _080FA6B6: ldrh r0, [r3] lsls r4, r0, 18 ldrh r0, [r5] lsls r2, r0, 18 lsrs r1, r4, 25 lsrs r0, r2, 25 cmp r1, r0 bhi _080FA72E lsrs r1, r4, 25 lsrs r0, r2, 25 cmp r1, r0 bcc _080FA6DE ldrb r0, [r3] lsls r1, r0, 25 ldrb r0, [r5] lsls r0, 25 cmp r1, r0 bhi _080FA72E _080FA6DA: cmp r1, r0 bcs _080FA732 _080FA6DE: movs r0, 0 b _080FA73A _080FA6E2: ldrb r0, [r3] lsls r1, r0, 25 ldrb r0, [r5] lsls r0, 25 cmp r1, r0 bhi _080FA72E cmp r1, r0 bcc _080FA6DE ldrh r0, [r3] lsls r4, r0, 18 ldrh r0, [r5] lsls r2, r0, 18 lsrs r1, r4, 25 lsrs r0, r2, 25 cmp r1, r0 bhi _080FA72E lsrs r1, r4, 25 lsrs r0, r2, 25 cmp r1, r0 bcc _080FA6DE ldrh r1, [r3, 0x2] ldrh r0, [r5, 0x2] cmp r1, r0 bhi _080FA72E cmp r1, r0 bcc _080FA6DE ldrh r1, [r3, 0x4] ldrh r0, [r5, 0x4] cmp r1, r0 bhi _080FA72E cmp r1, r0 bcc _080FA6DE ldrh r1, [r3, 0x6] ldrh r0, [r5, 0x6] cmp r1, r0 bhi _080FA72E cmp r1, r0 bcc _080FA6DE _080FA72E: movs r0, 0x1 b _080FA73A _080FA732: bl Random movs r1, 0x1 ands r0, r1 _080FA73A: pop {r4,r5} pop {r1} bx r1 thumb_func_end atk90_changetypestoenemyattacktype thumb_func_start sub_80FA740 sub_80FA740: @ 80FA740 push {r4,r5,lr} adds r5, r0, 0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x62 bl __umodsi3 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x32 bls _080FA782 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x62 bl __umodsi3 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x50 bls _080FA782 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x62 bl __umodsi3 lsls r0, 16 lsrs r4, r0, 16 _080FA782: adds r1, r4, 0 adds r1, 0x1E movs r0, 0x7F ands r1, r0 lsls r1, 7 ldrh r2, [r5] ldr r0, _080FA7C4 ands r0, r2 orrs r0, r1 strh r0, [r5] bl Random lsls r0, 16 lsrs r0, 16 adds r1, r4, 0x1 bl __modsi3 adds r0, 0x1E movs r1, 0x7F ands r0, r1 ldrb r2, [r5] movs r1, 0x80 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r5] bl Random strh r0, [r5, 0x2] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FA7C4: .4byte 0xffffc07f thumb_func_end sub_80FA740 thumb_func_start sub_80FA7C8 sub_80FA7C8: @ 80FA7C8 push {r4,r5,lr} adds r5, r0, 0 movs r4, 0 _080FA7CE: lsls r1, r4, 3 ldr r0, _080FA7E4 adds r1, r0 adds r0, r5, 0 bl sub_80FA7FC lsls r0, 24 cmp r0, 0 beq _080FA7E8 movs r0, 0x1 b _080FA7F4 .align 2, 0 _080FA7E4: .4byte 0x0202850c _080FA7E8: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _080FA7CE movs r0, 0 _080FA7F4: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80FA7C8 thumb_func_start sub_80FA7FC sub_80FA7FC: @ 80FA7FC push {r4,lr} adds r3, r0, 0 adds r2, r1, 0 movs r4, 0 _080FA804: ldrh r1, [r3] ldrh r0, [r2] adds r2, 0x2 adds r3, 0x2 cmp r1, r0 beq _080FA814 movs r0, 0 b _080FA820 _080FA814: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _080FA804 movs r0, 0x1 _080FA820: pop {r4} pop {r1} bx r1 thumb_func_end sub_80FA7FC thumb_func_start sub_80FA828 sub_80FA828: @ 80FA828 push {r4-r7,lr} adds r7, r0, 0 lsls r1, 16 lsrs r5, r1, 16 ldr r6, _080FA84C movs r4, 0 cmp r4, r5 bge _080FA862 _080FA838: adds r1, r6, 0x4 adds r0, r7, 0x4 bl sub_80FA7FC lsls r0, 24 cmp r0, 0 beq _080FA850 lsls r0, r4, 16 asrs r0, 16 b _080FA866 .align 2, 0 _080FA84C: .4byte 0x02007900 _080FA850: adds r6, 0x8 lsls r0, r4, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r4, r0, 16 asrs r0, 16 cmp r0, r5 blt _080FA838 _080FA862: movs r0, 0x1 negs r0, r0 _080FA866: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80FA828 thumb_func_start sub_80FA86C sub_80FA86C: @ 80FA86C push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 16 lsrs r1, 16 movs r3, 0 ldr r2, _080FA890 _080FA87A: movs r0, 0 ldrsb r0, [r2, r0] cmp r0, r4 bne _080FA894 movs r0, 0x1 ldrsb r0, [r2, r0] cmp r0, r1 bne _080FA894 adds r0, r3, 0x1 b _080FA89E .align 2, 0 _080FA890: .4byte gUnknown_083E5A20 _080FA894: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x15 bls _080FA87A movs r0, 0 _080FA89E: pop {r4} pop {r1} bx r1 thumb_func_end sub_80FA86C thumb_func_start unref_sub_80FA8A4 unref_sub_80FA8A4: @ 80FA8A4 push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 bl sub_80FA86C cmp r0, 0 beq _080FA8C4 lsls r0, 3 ldr r1, _080FA8C0 adds r0, r1 b _080FA8C6 .align 2, 0 _080FA8C0: .4byte gUnknown_083E5A18 _080FA8C4: movs r0, 0 _080FA8C6: pop {r1} bx r1 thumb_func_end unref_sub_80FA8A4 thumb_func_start sub_80FA8CC sub_80FA8CC: @ 80FA8CC push {lr} cmp r0, 0 beq _080FA8E4 cmp r0, 0x16 bhi _080FA8E4 lsls r0, 3 ldr r1, _080FA8E0 adds r0, r1 b _080FA8E6 .align 2, 0 _080FA8E0: .4byte gUnknown_083E5A18 _080FA8E4: movs r0, 0 _080FA8E6: pop {r1} bx r1 thumb_func_end sub_80FA8CC thumb_func_start sub_80FA8EC sub_80FA8EC: @ 80FA8EC push {lr} lsls r1, 24 lsrs r1, 24 bl sub_80FA904 _080FA8F6: bl sub_80FA940 lsls r0, 24 cmp r0, 0 bne _080FA8F6 pop {r0} bx r0 thumb_func_end sub_80FA8EC thumb_func_start sub_80FA904 sub_80FA904: @ 80FA904 push {r4,lr} lsls r1, 24 lsrs r1, 24 ldr r3, _080FA928 str r0, [r3] movs r2, 0x79 adds r2, r0 mov r12, r2 movs r2, 0 mov r4, r12 strb r2, [r4] adds r0, 0x78 strb r1, [r0] ldr r3, [r3] cmp r1, 0 bne _080FA930 ldr r0, _080FA92C b _080FA932 .align 2, 0 _080FA928: .4byte 0x020388cc _080FA92C: .4byte sub_80FAB78 _080FA930: ldr r0, _080FA93C _080FA932: str r0, [r3, 0x18] pop {r4} pop {r0} bx r0 .align 2, 0 _080FA93C: .4byte sub_80FAD04 thumb_func_end sub_80FA904 thumb_func_start sub_80FA940 sub_80FA940: @ 80FA940 push {r4,r5,lr} sub sp, 0xC ldr r0, _080FA95C ldr r0, [r0] adds r0, 0x79 ldrb r0, [r0] cmp r0, 0x7 bls _080FA952 b _080FAAE2 _080FA952: lsls r0, 2 ldr r1, _080FA960 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FA95C: .4byte 0x020388cc _080FA960: .4byte _080FA964 .align 2, 0 _080FA964: .4byte _080FA984 .4byte _080FA998 .4byte _080FA9AC .4byte _080FA9BC .4byte _080FA9D8 .4byte _080FA9F4 .4byte _080FAA38 .4byte _080FAAB4 _080FA984: ldr r0, _080FA990 ldr r1, _080FA994 bl LZ77UnCompVram b _080FAAF4 .align 2, 0 _080FA990: .4byte gUnknown_083E5DA0 _080FA994: .4byte 0x06008000 _080FA998: ldr r0, _080FA9A4 ldr r1, _080FA9A8 bl LZ77UnCompVram b _080FAAF4 .align 2, 0 _080FA9A4: .4byte gUnknown_083E6B04 _080FA9A8: .4byte 0x0600e000 _080FA9AC: ldr r0, _080FA9B8 movs r1, 0x70 movs r2, 0x60 bl LoadPalette b _080FAAF4 .align 2, 0 _080FA9B8: .4byte gUnknown_083E5D60 _080FA9BC: ldr r0, _080FA9D0 ldr r1, _080FA9D4 ldr r1, [r1] movs r2, 0xC0 lsls r2, 1 adds r1, r2 bl LZ77UnCompWram b _080FAAF4 .align 2, 0 _080FA9D0: .4byte gUnknown_083E5AF0 _080FA9D4: .4byte 0x020388cc _080FA9D8: ldr r0, _080FA9EC ldr r1, _080FA9F0 ldr r1, [r1] movs r3, 0xA0 lsls r3, 2 adds r1, r3 bl LZ77UnCompWram b _080FAAF4 .align 2, 0 _080FA9EC: .4byte gUnknown_083E5B34 _080FA9F0: .4byte 0x020388cc _080FA9F4: bl sub_80FB32C ldr r4, _080FAA34 ldr r2, [r4] adds r0, r2, 0 adds r0, 0x54 ldrh r1, [r0] adds r0, 0x20 strh r1, [r0] subs r0, 0x1E ldrh r0, [r0] adds r1, r2, 0 adds r1, 0x76 strh r0, [r1] ldrh r0, [r2, 0x14] bl sub_80FB758 ldr r1, [r4] strb r0, [r1, 0x16] ldr r0, [r4] ldrh r0, [r0, 0x14] bl sub_80FB9C0 adds r1, r0, 0 ldr r0, [r4] strh r1, [r0, 0x14] ldrh r1, [r0, 0x14] movs r2, 0x10 bl sub_80FBFB4 b _080FAAF4 .align 2, 0 _080FAA34: .4byte 0x020388cc _080FAA38: ldr r0, _080FAA60 ldr r4, [r0] adds r0, r4, 0 adds r0, 0x78 ldrb r1, [r0] cmp r1, 0 bne _080FAA64 movs r0, 0x80 lsls r0, 1 str r0, [sp] str r0, [sp, 0x4] str r1, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80FB170 b _080FAAF4 .align 2, 0 _080FAA60: .4byte 0x020388cc _080FAA64: adds r1, r4, 0 adds r1, 0x54 ldrh r0, [r1] lsls r0, 3 subs r0, 0x34 adds r2, r4, 0 adds r2, 0x5C movs r3, 0 strh r0, [r2] movs r5, 0x56 adds r5, r4 mov r12, r5 ldrh r0, [r5] lsls r0, 3 subs r0, 0x44 adds r5, r4, 0 adds r5, 0x5E strh r0, [r5] ldrh r1, [r1] adds r0, r4, 0 adds r0, 0x64 strh r1, [r0] mov r0, r12 ldrh r1, [r0] adds r0, r4, 0 adds r0, 0x66 strh r1, [r0] movs r1, 0 ldrsh r0, [r2, r1] movs r2, 0 ldrsh r1, [r5, r2] movs r2, 0x80 str r2, [sp] str r2, [sp, 0x4] str r3, [sp, 0x8] movs r2, 0x38 movs r3, 0x48 bl sub_80FB170 b _080FAAF4 _080FAAB4: bl sub_80FBA18 bl sub_80FB260 ldr r2, _080FAAE8 ldr r0, [r2] movs r1, 0 str r1, [r0, 0x1C] str r1, [r0, 0x20] adds r0, 0x7A strb r1, [r0] ldr r0, [r2] adds r0, 0x7E strb r1, [r0] ldr r1, _080FAAEC ldr r3, _080FAAF0 adds r0, r3, 0 strh r0, [r1] ldr r1, [r2] adds r1, 0x79 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080FAAE2: movs r0, 0 b _080FAB02 .align 2, 0 _080FAAE8: .4byte 0x020388cc _080FAAEC: .4byte REG_BG2CNT _080FAAF0: .4byte 0x0000bc8a _080FAAF4: ldr r0, _080FAB0C ldr r1, [r0] adds r1, 0x79 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0x1 _080FAB02: add sp, 0xC pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080FAB0C: .4byte 0x020388cc thumb_func_end sub_80FA940 thumb_func_start sub_80FAB10 sub_80FAB10: @ 80FAB10 push {r4,lr} ldr r4, _080FAB5C ldr r0, [r4] ldr r0, [r0, 0x1C] cmp r0, 0 beq _080FAB34 bl DestroySprite ldr r0, [r4] adds r0, 0x58 ldrh r0, [r0] bl FreeSpriteTilesByTag ldr r0, [r4] adds r0, 0x5A ldrh r0, [r0] bl FreeSpritePaletteByTag _080FAB34: ldr r0, [r4] ldr r0, [r0, 0x20] cmp r0, 0 beq _080FAB54 bl DestroySprite ldr r0, [r4] adds r0, 0x70 ldrh r0, [r0] bl FreeSpriteTilesByTag ldr r0, [r4] adds r0, 0x72 ldrh r0, [r0] bl FreeSpritePaletteByTag _080FAB54: pop {r4} pop {r0} bx r0 .align 2, 0 _080FAB5C: .4byte 0x020388cc thumb_func_end sub_80FAB10 thumb_func_start sub_80FAB60 sub_80FAB60: @ 80FAB60 push {lr} ldr r0, _080FAB74 ldr r0, [r0] ldr r0, [r0, 0x18] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080FAB74: .4byte 0x020388cc thumb_func_end sub_80FAB60 thumb_func_start sub_80FAB78 sub_80FAB78: @ 80FAB78 push {r4,lr} movs r4, 0 ldr r2, _080FAC14 ldr r0, [r2] adds r0, 0x7B strb r4, [r0] ldr r0, [r2] adds r0, 0x7C strb r4, [r0] ldr r3, _080FAC18 ldrh r1, [r3, 0x2C] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080FABAA ldr r1, [r2] adds r0, r1, 0 adds r0, 0x56 ldrh r0, [r0] cmp r0, 0x2 bls _080FABAA adds r1, 0x7C movs r0, 0xFF strb r0, [r1] movs r4, 0x1 _080FABAA: ldrh r1, [r3, 0x2C] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080FABC8 ldr r1, [r2] adds r0, r1, 0 adds r0, 0x56 ldrh r0, [r0] cmp r0, 0xF bhi _080FABC8 adds r1, 0x7C movs r0, 0x1 strb r0, [r1] movs r4, 0x1 _080FABC8: ldrh r1, [r3, 0x2C] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080FABE6 ldr r1, [r2] adds r0, r1, 0 adds r0, 0x54 ldrh r0, [r0] cmp r0, 0x1 bls _080FABE6 adds r1, 0x7B movs r0, 0xFF strb r0, [r1] movs r4, 0x1 _080FABE6: ldrh r1, [r3, 0x2C] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080FAC04 ldr r1, [r2] adds r0, r1, 0 adds r0, 0x54 ldrh r0, [r0] cmp r0, 0x1B bhi _080FAC04 adds r1, 0x7B movs r0, 0x1 strb r0, [r1] movs r4, 0x1 _080FAC04: ldrh r3, [r3, 0x2E] movs r0, 0x1 ands r0, r3 cmp r0, 0 beq _080FAC1C movs r4, 0x4 b _080FAC26 .align 2, 0 _080FAC14: .4byte 0x020388cc _080FAC18: .4byte 0x03001770 _080FAC1C: movs r0, 0x2 ands r0, r3 cmp r0, 0 beq _080FAC26 movs r4, 0x5 _080FAC26: cmp r4, 0x1 bne _080FAC38 ldr r0, [r2] adds r0, 0x7A movs r1, 0x4 strb r1, [r0] ldr r1, [r2] ldr r0, _080FAC40 str r0, [r1, 0x18] _080FAC38: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080FAC40: .4byte _swiopen thumb_func_end sub_80FAB78 thumb_func_start _swiopen _swiopen: @ 80FAC44 push {r4,r5,lr} ldr r5, _080FAC5C ldr r1, [r5] adds r0, r1, 0 adds r0, 0x7A ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _080FAC60 movs r0, 0x2 b _080FACFA .align 2, 0 _080FAC5C: .4byte 0x020388cc _080FAC60: adds r0, r1, 0 adds r0, 0x7B ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 ble _080FAC76 adds r1, 0x54 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080FAC76: ldr r1, [r5] adds r0, r1, 0 adds r0, 0x7B ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 bge _080FAC8E adds r1, 0x54 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] _080FAC8E: ldr r1, [r5] adds r0, r1, 0 adds r0, 0x7C ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 ble _080FACA6 adds r1, 0x56 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080FACA6: ldr r1, [r5] adds r0, r1, 0 adds r0, 0x7C ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 bge _080FACBE adds r1, 0x56 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] _080FACBE: ldr r1, [r5] adds r0, r1, 0 adds r0, 0x54 ldrh r0, [r0] adds r1, 0x56 ldrh r1, [r1] bl sub_80FB2EC lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl sub_80FB758 ldr r1, [r5] strb r0, [r1, 0x16] ldr r0, [r5] ldrh r1, [r0, 0x14] cmp r4, r1 beq _080FACEE strh r4, [r0, 0x14] ldrh r1, [r0, 0x14] movs r2, 0x10 bl sub_80FBFB4 _080FACEE: bl sub_80FBA18 ldr r1, [r5] ldr r0, _080FAD00 str r0, [r1, 0x18] movs r0, 0x3 _080FACFA: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080FAD00: .4byte sub_80FAB78 thumb_func_end _swiopen thumb_func_start sub_80FAD04 sub_80FAD04: @ 80FAD04 push {r4-r6,lr} movs r4, 0 ldr r3, _080FADD4 ldr r0, [r3] mov r12, r0 adds r0, 0x6A strh r4, [r0] mov r5, r12 adds r5, 0x68 strh r4, [r5] ldr r2, _080FADD8 ldrh r1, [r2, 0x2C] movs r0, 0x40 ands r0, r1 adds r6, r3, 0 adds r3, r2, 0 cmp r0, 0 beq _080FAD3E mov r0, r12 adds r0, 0x5E movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0x34 negs r0, r0 cmp r1, r0 ble _080FAD3E ldr r0, _080FADDC strh r0, [r5] movs r4, 0x1 _080FAD3E: ldrh r1, [r3, 0x2C] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080FAD5E ldr r1, [r6] adds r0, r1, 0 adds r0, 0x5E movs r5, 0 ldrsh r0, [r0, r5] cmp r0, 0x3B bgt _080FAD5E adds r1, 0x68 movs r0, 0x1 strh r0, [r1] movs r4, 0x1 _080FAD5E: ldrh r1, [r3, 0x2C] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080FAD84 ldr r2, [r6] adds r0, r2, 0 adds r0, 0x5C movs r5, 0 ldrsh r1, [r0, r5] movs r0, 0x2C negs r0, r0 cmp r1, r0 ble _080FAD84 adds r1, r2, 0 adds r1, 0x6A ldr r0, _080FADDC strh r0, [r1] movs r4, 0x1 _080FAD84: ldrh r1, [r3, 0x2C] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080FADA4 ldr r1, [r6] adds r0, r1, 0 adds r0, 0x5C movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0xAB bgt _080FADA4 adds r1, 0x6A movs r0, 0x1 strh r0, [r1] movs r4, 0x1 _080FADA4: ldrh r2, [r3, 0x2E] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _080FADB0 movs r4, 0x4 _080FADB0: movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _080FADBA movs r4, 0x5 _080FADBA: cmp r4, 0x1 bne _080FADCA ldr r0, [r6] ldr r1, _080FADE0 str r1, [r0, 0x18] adds r0, 0x6C movs r1, 0 strh r1, [r0] _080FADCA: adds r0, r4, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080FADD4: .4byte 0x020388cc _080FADD8: .4byte 0x03001770 _080FADDC: .4byte 0x0000ffff _080FADE0: .4byte sub_80FADE4 thumb_func_end sub_80FAD04 thumb_func_start sub_80FADE4 sub_80FADE4: @ 80FADE4 push {r4,r5,lr} ldr r5, _080FAEB4 ldr r2, [r5] adds r3, r2, 0 adds r3, 0x5E adds r0, r2, 0 adds r0, 0x68 ldrh r0, [r0] ldrh r1, [r3] adds r0, r1 strh r0, [r3] adds r1, r2, 0 adds r1, 0x5C adds r0, r2, 0 adds r0, 0x6A ldrh r0, [r0] ldrh r2, [r1] adds r0, r2 strh r0, [r1] movs r4, 0 ldrsh r0, [r1, r4] movs r2, 0 ldrsh r1, [r3, r2] bl sub_80FB238 ldr r2, [r5] adds r1, r2, 0 adds r1, 0x6C ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0x8 bne _080FAEBC adds r0, r2, 0 adds r0, 0x5C movs r3, 0 ldrsh r1, [r0, r3] adds r0, r1, 0 adds r0, 0x2C cmp r0, 0 bge _080FAE3C adds r0, 0x7 _080FAE3C: asrs r0, 3 adds r0, 0x1 lsls r0, 16 lsrs r3, r0, 16 adds r0, r2, 0 adds r0, 0x5E movs r4, 0 ldrsh r1, [r0, r4] adds r0, r1, 0 adds r0, 0x34 cmp r0, 0 bge _080FAE56 adds r0, 0x7 _080FAE56: asrs r0, 3 adds r0, 0x2 lsls r0, 16 lsrs r1, r0, 16 adds r4, r2, 0 adds r4, 0x64 adds r0, r2, 0 adds r0, 0x66 ldrh r2, [r4] cmp r3, r2 bne _080FAE72 ldrh r2, [r0] cmp r1, r2 beq _080FAEA0 _080FAE72: strh r3, [r4] strh r1, [r0] adds r0, r3, 0 bl sub_80FB2EC lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl sub_80FB758 ldr r1, [r5] strb r0, [r1, 0x16] ldr r0, [r5] ldrh r3, [r0, 0x14] cmp r4, r3 beq _080FAE9C strh r4, [r0, 0x14] ldrh r1, [r0, 0x14] movs r2, 0x10 bl sub_80FBFB4 _080FAE9C: bl sub_80FBA18 _080FAEA0: ldr r0, _080FAEB4 ldr r2, [r0] adds r1, r2, 0 adds r1, 0x6C movs r0, 0 strh r0, [r1] ldr r0, _080FAEB8 str r0, [r2, 0x18] movs r0, 0x3 b _080FAEBE .align 2, 0 _080FAEB4: .4byte 0x020388cc _080FAEB8: .4byte sub_80FAD04 _080FAEBC: movs r0, 0x2 _080FAEBE: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80FADE4 thumb_func_start sub_80FAEC4 sub_80FAEC4: @ 80FAEC4 push {r4-r6,lr} ldr r1, _080FAF40 ldr r2, [r1] adds r0, r2, 0 adds r0, 0x78 ldrb r3, [r0] adds r5, r1, 0 cmp r3, 0 bne _080FAF48 subs r0, 0x1A strh r3, [r0] subs r0, 0x2 strh r3, [r0] str r3, [r2, 0x40] str r3, [r2, 0x3C] adds r4, r2, 0 adds r4, 0x54 ldrh r0, [r4] lsls r0, 3 subs r0, 0x34 adds r1, r2, 0 adds r1, 0x60 strh r0, [r1] movs r0, 0x56 adds r0, r2 mov r12, r0 ldrh r0, [r0] lsls r0, 3 subs r0, 0x44 adds r3, r2, 0 adds r3, 0x62 strh r0, [r3] movs r6, 0 ldrsh r0, [r1, r6] lsls r0, 8 cmp r0, 0 bge _080FAF10 adds r0, 0xF _080FAF10: asrs r0, 4 str r0, [r2, 0x44] movs r1, 0 ldrsh r0, [r3, r1] lsls r0, 8 cmp r0, 0 bge _080FAF20 adds r0, 0xF _080FAF20: asrs r0, 4 str r0, [r2, 0x48] ldrh r1, [r4] adds r0, r2, 0 adds r0, 0x64 strh r1, [r0] mov r3, r12 ldrh r0, [r3] adds r1, r2, 0 adds r1, 0x66 strh r0, [r1] movs r0, 0x80 lsls r0, 9 str r0, [r2, 0x4C] ldr r0, _080FAF44 b _080FAFA6 .align 2, 0 _080FAF40: .4byte 0x020388cc _080FAF44: .4byte 0xfffff800 _080FAF48: adds r0, r2, 0 adds r0, 0x5C movs r6, 0 ldrsh r0, [r0, r6] lsls r0, 8 str r0, [r2, 0x3C] adds r0, r2, 0 adds r0, 0x5E movs r1, 0 ldrsh r0, [r0, r1] lsls r0, 8 str r0, [r2, 0x40] adds r0, r2, 0 adds r0, 0x60 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r0, [r2, 0x3C] cmp r0, 0 bge _080FAF74 adds r0, 0xF _080FAF74: asrs r0, 4 negs r0, r0 str r0, [r2, 0x44] ldr r0, [r2, 0x40] cmp r0, 0 bge _080FAF82 adds r0, 0xF _080FAF82: asrs r0, 4 negs r0, r0 str r0, [r2, 0x48] adds r0, r2, 0 adds r0, 0x64 ldrh r1, [r0] subs r0, 0x10 strh r1, [r0] adds r0, 0x12 ldrh r0, [r0] adds r1, r2, 0 adds r1, 0x56 strh r0, [r1] movs r0, 0x80 lsls r0, 8 str r0, [r2, 0x4C] movs r0, 0x80 lsls r0, 4 _080FAFA6: str r0, [r2, 0x50] ldr r0, [r5] adds r0, 0x6E movs r1, 0 strh r1, [r0] bl sub_80FBCA0 bl sub_80FBDF8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80FAEC4 thumb_func_start sub_80FAFC0 sub_80FAFC0: @ 80FAFC0 push {r4-r6,lr} sub sp, 0xC ldr r0, _080FAFD8 ldr r3, [r0] adds r2, r3, 0 adds r2, 0x6E ldrh r1, [r2] adds r5, r0, 0 cmp r1, 0xF bls _080FAFDC movs r0, 0 b _080FB164 .align 2, 0 _080FAFD8: .4byte 0x020388cc _080FAFDC: adds r0, r1, 0x1 movs r1, 0 strh r0, [r2] lsls r0, 16 lsrs r0, 16 cmp r0, 0x10 bne _080FB050 str r1, [r3, 0x44] str r1, [r3, 0x48] adds r0, r3, 0 adds r0, 0x60 ldrh r1, [r0] subs r0, 0x4 strh r1, [r0] adds r0, 0x6 ldrh r0, [r0] adds r1, r3, 0 adds r1, 0x5E strh r0, [r1] adds r1, 0x1A ldrb r0, [r1] movs r2, 0x80 lsls r2, 9 cmp r0, 0 bne _080FB012 movs r2, 0x80 lsls r2, 8 _080FB012: str r2, [r3, 0x4C] movs r2, 0 ldrb r0, [r1] cmp r0, 0 bne _080FB01E movs r2, 0x1 _080FB01E: strb r2, [r1] ldr r1, [r5] adds r0, r1, 0 adds r0, 0x78 ldrb r0, [r0] ldr r2, _080FB048 cmp r0, 0 bne _080FB030 ldr r2, _080FB04C _080FB030: str r2, [r1, 0x18] adds r0, r1, 0 adds r0, 0x58 ldrh r0, [r0] adds r1, 0x5A ldrh r1, [r1] bl sub_80FBB3C bl sub_80FBE24 movs r4, 0 b _080FB132 .align 2, 0 _080FB048: .4byte sub_80FAD04 _080FB04C: .4byte sub_80FAB78 _080FB050: ldr r2, [r3, 0x3C] ldr r0, [r3, 0x44] adds r2, r0 str r2, [r3, 0x3C] ldr r0, [r3, 0x40] ldr r1, [r3, 0x48] adds r0, r1 str r0, [r3, 0x40] asrs r2, 8 adds r4, r3, 0 adds r4, 0x5C strh r2, [r4] ldr r0, [r3, 0x40] asrs r0, 8 adds r1, r3, 0 adds r1, 0x5E strh r0, [r1] ldr r0, [r3, 0x4C] ldr r1, [r3, 0x50] adds r0, r1 str r0, [r3, 0x4C] ldr r2, [r3, 0x44] cmp r2, 0 bge _080FB090 adds r0, r3, 0 adds r0, 0x60 movs r6, 0 ldrsh r1, [r4, r6] movs r6, 0 ldrsh r0, [r0, r6] cmp r1, r0 blt _080FB0A4 _080FB090: cmp r2, 0 ble _080FB0B4 adds r0, r3, 0 adds r0, 0x60 movs r2, 0 ldrsh r1, [r4, r2] movs r6, 0 ldrsh r0, [r0, r6] cmp r1, r0 ble _080FB0B4 _080FB0A4: ldr r3, [r5] adds r0, r3, 0 adds r0, 0x60 ldrh r2, [r0] subs r0, 0x4 movs r1, 0 strh r2, [r0] str r1, [r3, 0x44] _080FB0B4: ldr r2, [r5] ldr r4, [r2, 0x48] cmp r4, 0 bge _080FB0D0 adds r0, r2, 0 adds r0, 0x5E adds r3, r2, 0 adds r3, 0x62 movs r6, 0 ldrsh r1, [r0, r6] movs r6, 0 ldrsh r0, [r3, r6] cmp r1, r0 blt _080FB0E8 _080FB0D0: cmp r4, 0 ble _080FB0FA adds r1, r2, 0 adds r1, 0x5E adds r0, r2, 0 adds r0, 0x62 movs r2, 0 ldrsh r1, [r1, r2] movs r6, 0 ldrsh r0, [r0, r6] cmp r1, r0 ble _080FB0FA _080FB0E8: ldr r2, [r5] adds r0, r2, 0 adds r0, 0x62 ldrh r1, [r0] adds r3, r2, 0 adds r3, 0x5E movs r0, 0 strh r1, [r3] str r0, [r2, 0x48] _080FB0FA: ldr r0, _080FB118 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x78 ldrb r3, [r0] cmp r3, 0 bne _080FB120 ldr r1, [r2, 0x4C] ldr r0, _080FB11C cmp r1, r0 bgt _080FB130 adds r0, 0x1 str r0, [r2, 0x4C] str r3, [r2, 0x50] b _080FB130 .align 2, 0 _080FB118: .4byte 0x020388cc _080FB11C: .4byte 0x00007fff _080FB120: ldr r0, [r2, 0x4C] movs r1, 0x80 lsls r1, 9 cmp r0, r1 ble _080FB130 str r1, [r2, 0x4C] movs r0, 0 str r0, [r2, 0x50] _080FB130: movs r4, 0x1 _080FB132: ldr r0, _080FB16C ldr r3, [r0] adds r0, r3, 0 adds r0, 0x5C movs r1, 0 ldrsh r0, [r0, r1] adds r1, r3, 0 adds r1, 0x5E movs r2, 0 ldrsh r1, [r1, r2] ldr r2, [r3, 0x4C] lsls r2, 8 lsrs r2, 16 str r2, [sp] ldr r2, [r3, 0x4C] lsls r2, 8 lsrs r2, 16 str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] movs r2, 0x38 movs r3, 0x48 bl sub_80FB170 adds r0, r4, 0 _080FB164: add sp, 0xC pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080FB16C: .4byte 0x020388cc thumb_func_end sub_80FAFC0 thumb_func_start sub_80FB170 sub_80FB170: @ 80FB170 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r4, [sp, 0x24] ldr r7, [sp, 0x28] ldr r5, [sp, 0x2C] lsls r4, 16 lsrs r4, 16 mov r8, r4 lsls r7, 16 adds r4, r7, 0 lsrs r4, 16 mov r9, r4 lsls r5, 24 lsrs r5, 24 ldr r4, _080FB230 ldr r6, [r4] ldr r7, _080FB234 mov r12, r7 adds r4, r5, 0 adds r4, 0x40 lsls r4, 1 add r4, r12 movs r7, 0 ldrsh r4, [r4, r7] str r4, [sp] mov r7, r8 muls r7, r4 adds r4, r7, 0 asrs r4, 8 mov r10, r4 str r4, [r6, 0x2C] lsls r5, 1 add r5, r12 movs r7, 0 ldrsh r5, [r5, r7] negs r4, r5 mov r7, r8 muls r7, r4 adds r4, r7, 0 asrs r4, 8 mov r12, r4 str r4, [r6, 0x30] mov r7, r9 muls r7, r5 adds r5, r7, 0 asrs r5, 8 str r5, [r6, 0x34] ldr r7, [sp] mov r4, r9 muls r4, r7 asrs r4, 8 mov r8, r4 str r4, [r6, 0x38] lsls r0, 16 asrs r0, 8 lsls r2, 16 asrs r2, 16 lsls r4, r2, 8 adds r0, r4 lsls r3, 16 asrs r3, 16 adds r4, r3, 0 muls r4, r5 mov r5, r10 muls r5, r2 adds r4, r5 subs r0, r4 str r0, [r6, 0x24] lsls r1, 16 asrs r1, 8 lsls r0, r3, 8 adds r1, r0 mov r0, r8 muls r0, r3 mov r3, r12 muls r3, r2 adds r2, r3, 0 adds r0, r2 subs r1, r0 str r1, [r6, 0x28] adds r6, 0x7D movs r0, 0x1 strb r0, [r6] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FB230: .4byte 0x020388cc _080FB234: .4byte gSineTable thumb_func_end sub_80FB170 thumb_func_start sub_80FB238 sub_80FB238: @ 80FB238 ldr r2, _080FB25C ldr r2, [r2] lsls r0, 16 asrs r0, 8 movs r3, 0xE0 lsls r3, 5 adds r0, r3 str r0, [r2, 0x24] lsls r1, 16 asrs r1, 8 movs r0, 0x90 lsls r0, 6 adds r1, r0 str r1, [r2, 0x28] adds r2, 0x7D movs r0, 0x1 strb r0, [r2] bx lr .align 2, 0 _080FB25C: .4byte 0x020388cc thumb_func_end sub_80FB238 thumb_func_start sub_80FB260 sub_80FB260: @ 80FB260 push {lr} ldr r0, _080FB29C ldr r2, [r0] adds r3, r2, 0 adds r3, 0x7D ldrb r0, [r3] cmp r0, 0 beq _080FB298 ldr r1, _080FB2A0 ldr r0, [r2, 0x2C] strh r0, [r1] adds r1, 0x2 ldr r0, [r2, 0x34] strh r0, [r1] adds r1, 0x2 ldr r0, [r2, 0x30] strh r0, [r1] adds r1, 0x2 ldr r0, [r2, 0x38] strh r0, [r1] adds r1, 0x2 ldr r0, [r2, 0x24] str r0, [r1] adds r1, 0x4 ldr r0, [r2, 0x28] str r0, [r1] movs r0, 0 strb r0, [r3] _080FB298: pop {r0} bx r0 .align 2, 0 _080FB29C: .4byte 0x020388cc _080FB2A0: .4byte REG_BG2PA thumb_func_end sub_80FB260 thumb_func_start sub_80FB2A4 sub_80FB2A4: @ 80FB2A4 push {r4,r5,lr} sub sp, 0xC lsls r0, 16 asrs r4, r0, 16 lsls r1, 16 asrs r5, r1, 16 movs r0, 0x80 lsls r0, 1 str r0, [sp] str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x38 movs r3, 0x48 bl sub_80FB170 bl sub_80FB260 ldr r0, _080FB2E8 ldr r2, [r0] ldr r1, [r2, 0x20] cmp r1, 0 beq _080FB2E0 negs r0, r4 strh r0, [r1, 0x24] ldr r1, [r2, 0x20] negs r0, r5 strh r0, [r1, 0x26] _080FB2E0: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FB2E8: .4byte 0x020388cc thumb_func_end sub_80FB2A4 thumb_func_start sub_80FB2EC sub_80FB2EC: @ 80FB2EC push {lr} lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 ldr r0, _080FB30C adds r1, r0 lsrs r2, r1, 16 cmp r2, 0xE bhi _080FB306 cmp r3, 0 beq _080FB306 cmp r3, 0x1C bls _080FB310 _080FB306: movs r0, 0x58 b _080FB324 .align 2, 0 _080FB30C: .4byte 0xfffe0000 _080FB310: subs r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 ldr r1, _080FB328 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r3, r0 adds r0, r1 ldrb r0, [r0] _080FB324: pop {r1} bx r1 .align 2, 0 _080FB328: .4byte gRegionMapSections thumb_func_end sub_80FB2EC thumb_func_start sub_80FB32C sub_80FB32C: @ 80FB32C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r0, _080FB358 movs r1, 0x4 ldrsb r1, [r0, r1] adds r2, r0, 0 cmp r1, 0x19 bne _080FB35C ldrb r0, [r2, 0x5] subs r0, 0x29 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bhi _080FB35C bl sub_80FB600 b _080FB5E8 .align 2, 0 _080FB358: .4byte 0x02025734 _080FB35C: movs r0, 0x4 ldrsb r0, [r2, r0] movs r1, 0x5 ldrsb r1, [r2, r1] bl get_map_light_level_by_bank_and_number lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r0, 0x8 bhi _080FB3A4 lsls r0, 2 ldr r1, _080FB37C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FB37C: .4byte _080FB380 .align 2, 0 _080FB380: .4byte _080FB3A4 .4byte _080FB3A4 .4byte _080FB3A4 .4byte _080FB3E0 .4byte _080FB3A4 .4byte _080FB3A4 .4byte _080FB3E0 .4byte _080FB464 .4byte _080FB428 _080FB3A4: ldr r4, _080FB3D4 ldr r0, [r4] ldr r3, _080FB3D8 ldrb r1, [r3, 0x14] movs r2, 0 strh r1, [r0, 0x14] adds r0, 0x7F strb r2, [r0] ldr r0, [r3] ldrh r2, [r0] ldrh r0, [r0, 0x4] mov r8, r0 ldr r0, _080FB3DC ldrh r6, [r0] ldrh r3, [r0, 0x2] ldr r1, [r4] ldrh r0, [r1, 0x14] cmp r0, 0x45 beq _080FB3CC b _080FB4CC _080FB3CC: adds r1, 0x7F movs r0, 0x1 strb r0, [r1] b _080FB4CC .align 2, 0 _080FB3D4: .4byte 0x020388cc _080FB3D8: .4byte 0x0202e828 _080FB3DC: .4byte 0x02025734 _080FB3E0: ldr r4, _080FB420 adds r0, r4, 0 adds r0, 0x24 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 adds r1, 0x25 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number adds r2, r0, 0 ldr r0, _080FB424 ldr r0, [r0] ldrb r1, [r2, 0x14] strh r1, [r0, 0x14] adds r0, 0x7F movs r1, 0x1 strb r1, [r0] ldr r0, [r2] ldrh r2, [r0] ldrh r0, [r0, 0x4] mov r8, r0 ldrh r6, [r4, 0x28] ldrh r3, [r4, 0x2A] b _080FB4CC .align 2, 0 _080FB420: .4byte 0x02025734 _080FB424: .4byte 0x020388cc _080FB428: ldr r4, _080FB45C movs r0, 0x14 ldrsb r0, [r4, r0] lsls r0, 16 lsrs r0, 16 movs r1, 0x15 ldrsb r1, [r4, r1] lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number adds r2, r0, 0 ldr r0, _080FB460 ldr r0, [r0] ldrb r1, [r2, 0x14] strh r1, [r0, 0x14] adds r0, 0x7F movs r1, 0x1 strb r1, [r0] ldr r0, [r2] ldrh r2, [r0] ldrh r0, [r0, 0x4] mov r8, r0 ldrh r6, [r4, 0x18] ldrh r3, [r4, 0x1A] b _080FB4CC .align 2, 0 _080FB45C: .4byte 0x02025734 _080FB460: .4byte 0x020388cc _080FB464: ldr r5, _080FB48C ldr r0, [r5] ldr r1, _080FB490 ldrb r1, [r1, 0x14] strh r1, [r0, 0x14] cmp r1, 0x57 beq _080FB498 ldr r4, _080FB494 movs r0, 0 ldrsb r0, [r4, r0] lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ldrsb r1, [r4, r1] lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number adds r2, r0, 0 b _080FB4B6 .align 2, 0 _080FB48C: .4byte 0x020388cc _080FB490: .4byte 0x0202e828 _080FB494: .4byte 0x02025758 _080FB498: ldr r4, _080FB548 movs r0, 0 ldrsb r0, [r4, r0] lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ldrsb r1, [r4, r1] lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number adds r2, r0, 0 ldr r1, [r5] ldrb r0, [r2, 0x14] strh r0, [r1, 0x14] _080FB4B6: ldr r0, _080FB54C ldr r0, [r0] adds r0, 0x7F movs r1, 0 strb r1, [r0] ldr r0, [r2] ldrh r2, [r0] ldrh r0, [r0, 0x4] mov r8, r0 ldrh r6, [r4, 0x4] ldrh r3, [r4, 0x6] _080FB4CC: mov r9, r6 ldr r4, _080FB54C ldr r0, [r4] ldrh r5, [r0, 0x14] lsls r0, r5, 3 ldr r1, _080FB550 adds r0, r1 mov r10, r0 ldrb r7, [r0, 0x2] adds r0, r2, 0 adds r1, r7, 0 str r3, [sp] bl __divsi3 lsls r0, 16 lsrs r1, r0, 16 ldr r3, [sp] cmp r1, 0 bne _080FB4F4 movs r1, 0x1 _080FB4F4: adds r0, r6, 0 str r3, [sp] bl __udivsi3 lsls r0, 16 lsrs r6, r0, 16 ldr r3, [sp] cmp r6, r7 bcc _080FB50C subs r0, r7, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080FB50C: mov r2, r10 ldrb r4, [r2, 0x3] mov r0, r8 adds r1, r4, 0 str r3, [sp] bl __divsi3 lsls r0, 16 lsrs r1, r0, 16 ldr r3, [sp] cmp r1, 0 bne _080FB526 movs r1, 0x1 _080FB526: adds r0, r3, 0 bl __udivsi3 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r4 bcc _080FB53A subs r0, r4, 0x1 lsls r0, 16 lsrs r3, r0, 16 _080FB53A: cmp r5, 0x24 beq _080FB59C cmp r5, 0x24 bgt _080FB554 cmp r5, 0x1D beq _080FB55E b _080FB5BE .align 2, 0 _080FB548: .4byte 0x02025748 _080FB54C: .4byte 0x020388cc _080FB550: .4byte gRegionMapLocations _080FB554: cmp r5, 0x29 beq _080FB566 cmp r5, 0x33 beq _080FB566 b _080FB5BE _080FB55E: cmp r3, 0 beq _080FB5BE movs r6, 0 b _080FB5BE _080FB566: movs r6, 0 ldr r1, _080FB598 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0x20 ble _080FB574 movs r6, 0x1 _080FB574: cmp r0, 0x33 ble _080FB57E adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080FB57E: movs r3, 0 movs r2, 0x2 ldrsh r0, [r1, r2] cmp r0, 0x25 ble _080FB58A movs r3, 0x1 _080FB58A: cmp r0, 0x38 ble _080FB5BE adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 b _080FB5BE .align 2, 0 _080FB598: .4byte 0x02025734 _080FB59C: movs r6, 0 mov r0, r9 cmp r0, 0xE bls _080FB5A6 movs r6, 0x1 _080FB5A6: mov r1, r9 cmp r1, 0x1C bls _080FB5B2 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080FB5B2: mov r2, r9 cmp r2, 0x36 bls _080FB5BE adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080FB5BE: ldr r0, _080FB5F8 ldr r2, [r0] ldrh r0, [r2, 0x14] lsls r0, 3 ldr r1, _080FB5FC adds r0, r1 ldrb r0, [r0] adds r0, r6, r0 adds r0, 0x1 adds r1, r2, 0 adds r1, 0x54 strh r0, [r1] ldrh r0, [r2, 0x14] lsls r0, 3 ldr r1, _080FB5FC adds r0, r1 ldrb r0, [r0, 0x1] adds r0, r3, r0 adds r0, 0x2 adds r2, 0x56 strh r0, [r2] _080FB5E8: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FB5F8: .4byte 0x020388cc _080FB5FC: .4byte gRegionMapLocations thumb_func_end sub_80FB32C thumb_func_start sub_80FB600 sub_80FB600: @ 80FB600 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r7, 0 movs r0, 0 mov r8, r0 mov r4, sp adds r4, 0x1 mov r5, sp adds r5, 0x2 add r6, sp, 0x4 mov r0, sp adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_810D9EC lsls r0, 24 lsrs r0, 24 mov r10, r5 cmp r0, 0x4 bhi _080FB694 lsls r0, 2 ldr r1, _080FB63C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FB63C: .4byte _080FB640 .align 2, 0 _080FB640: .4byte _080FB694 .4byte _080FB654 .4byte _080FB664 .4byte _080FB674 .4byte _080FB684 _080FB654: ldr r2, _080FB660 ldr r1, [r2] movs r0, 0x8 strh r0, [r1, 0x14] b _080FB710 .align 2, 0 _080FB660: .4byte 0x020388cc _080FB664: ldr r2, _080FB670 ldr r1, [r2] movs r0, 0xC strh r0, [r1, 0x14] b _080FB710 .align 2, 0 _080FB670: .4byte 0x020388cc _080FB674: ldr r2, _080FB680 ldr r1, [r2] movs r0, 0x27 strh r0, [r1, 0x14] b _080FB710 .align 2, 0 _080FB680: .4byte 0x020388cc _080FB684: ldr r2, _080FB690 ldr r1, [r2] movs r0, 0x2E strh r0, [r1, 0x14] b _080FB710 .align 2, 0 _080FB690: .4byte 0x020388cc _080FB694: mov r0, sp ldrb r0, [r0] ldrb r1, [r4] bl get_mapheader_by_bank_and_number ldr r1, _080FB750 mov r9, r1 ldr r2, [r1] ldrb r1, [r0, 0x14] strh r1, [r2, 0x14] ldr r6, [r0] ldr r1, _080FB754 ldrh r0, [r2, 0x14] lsls r0, 3 adds r5, r0, r1 ldrb r4, [r5, 0x2] ldr r0, [r6] adds r1, r4, 0 bl __divsi3 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _080FB6C6 movs r1, 0x1 _080FB6C6: mov r2, r10 movs r3, 0 ldrsh r0, [r2, r3] bl __divsi3 lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r8, r4 bcc _080FB6E2 subs r0, r4, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 _080FB6E2: ldrb r4, [r5, 0x3] ldr r0, [r6, 0x4] adds r1, r4, 0 bl __divsi3 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _080FB6F6 movs r1, 0x1 _080FB6F6: mov r2, sp movs r3, 0x4 ldrsh r0, [r2, r3] bl __divsi3 lsls r0, 16 lsrs r7, r0, 16 mov r2, r9 cmp r7, r4 bcc _080FB710 subs r0, r4, 0x1 lsls r0, 16 lsrs r7, r0, 16 _080FB710: ldr r0, [r2] adds r0, 0x7F movs r1, 0 strb r1, [r0] ldr r2, [r2] ldr r3, _080FB754 ldrh r0, [r2, 0x14] lsls r0, 3 adds r0, r3 ldrb r0, [r0] add r0, r8 adds r0, 0x1 adds r1, r2, 0 adds r1, 0x54 strh r0, [r1] ldrh r0, [r2, 0x14] lsls r0, 3 adds r0, r3 ldrb r0, [r0, 0x1] adds r0, r7, r0 adds r0, 0x2 adds r2, 0x56 strh r0, [r2] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FB750: .4byte 0x020388cc _080FB754: .4byte gRegionMapLocations thumb_func_end sub_80FB600 thumb_func_start sub_80FB758 sub_80FB758: @ 80FB758 push {lr} lsls r0, 16 lsrs r0, 16 cmp r0, 0x58 bls _080FB764 b _080FB9A0 _080FB764: lsls r0, 2 ldr r1, _080FB770 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FB770: .4byte _080FB774 .align 2, 0 _080FB774: .4byte _080FB8DC .4byte _080FB8E4 .4byte _080FB8EA .4byte _080FB8F4 .4byte _080FB8FC .4byte _080FB904 .4byte _080FB90C .4byte _080FB914 .4byte _080FB91C .4byte _080FB924 .4byte _080FB92C .4byte _080FB934 .4byte _080FB93C .4byte _080FB944 .4byte _080FB94C .4byte _080FB954 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB96C .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB988 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB9A0 .4byte _080FB8D8 _080FB8D8: movs r0, 0 b _080FB9A2 _080FB8DC: ldr r0, _080FB8E0 b _080FB956 .align 2, 0 _080FB8E0: .4byte 0x0000080f _080FB8E4: movs r0, 0x81 lsls r0, 4 b _080FB956 _080FB8EA: ldr r0, _080FB8F0 b _080FB956 .align 2, 0 _080FB8F0: .4byte 0x00000811 _080FB8F4: ldr r0, _080FB8F8 b _080FB956 .align 2, 0 _080FB8F8: .4byte 0x00000812 _080FB8FC: ldr r0, _080FB900 b _080FB956 .align 2, 0 _080FB900: .4byte 0x00000813 _080FB904: ldr r0, _080FB908 b _080FB956 .align 2, 0 _080FB908: .4byte 0x00000814 _080FB90C: ldr r0, _080FB910 b _080FB956 .align 2, 0 _080FB910: .4byte 0x00000815 _080FB914: ldr r0, _080FB918 b _080FB956 .align 2, 0 _080FB918: .4byte 0x00000816 _080FB91C: ldr r0, _080FB920 b _080FB956 .align 2, 0 _080FB920: .4byte 0x00000817 _080FB924: ldr r0, _080FB928 b _080FB956 .align 2, 0 _080FB928: .4byte 0x00000818 _080FB92C: ldr r0, _080FB930 b _080FB956 .align 2, 0 _080FB930: .4byte 0x00000819 _080FB934: ldr r0, _080FB938 b _080FB956 .align 2, 0 _080FB938: .4byte 0x0000081a _080FB93C: ldr r0, _080FB940 b _080FB956 .align 2, 0 _080FB940: .4byte 0x0000081b _080FB944: ldr r0, _080FB948 b _080FB956 .align 2, 0 _080FB948: .4byte 0x0000081c _080FB94C: ldr r0, _080FB950 b _080FB956 .align 2, 0 _080FB950: .4byte 0x0000081d _080FB954: ldr r0, _080FB968 _080FB956: bl FlagGet lsls r0, 24 movs r1, 0x3 cmp r0, 0 beq _080FB964 movs r1, 0x2 _080FB964: adds r0, r1, 0 b _080FB9A2 .align 2, 0 _080FB968: .4byte 0x0000081e _080FB96C: ldr r0, _080FB984 bl FlagGet adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 negs r0, r1 orrs r0, r1 asrs r0, 31 movs r1, 0x4 ands r0, r1 b _080FB9A2 .align 2, 0 _080FB984: .4byte 0x00000848 _080FB988: ldr r0, _080FB99C bl FlagGet adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 negs r0, r1 orrs r0, r1 lsrs r0, 31 b _080FB9A2 .align 2, 0 _080FB99C: .4byte 0x00000849 _080FB9A0: movs r0, 0x1 _080FB9A2: pop {r1} bx r1 thumb_func_end sub_80FB758 thumb_func_start sub_80FB9A8 sub_80FB9A8: @ 80FB9A8 push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 bl sub_80FB2EC lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_80FB9A8 thumb_func_start sub_80FB9C0 sub_80FB9C0: @ 80FB9C0 push {r4-r6,lr} lsls r0, 16 lsrs r3, r0, 16 movs r2, 0 ldr r0, _080FB9E8 ldrh r1, [r0] adds r4, r0, 0 cmp r1, 0x58 beq _080FB9FC adds r5, r4, 0 adds r6, r4, 0x2 _080FB9D6: lsls r1, r2, 2 adds r0, r1, r5 ldrh r0, [r0] cmp r0, r3 bne _080FB9EC adds r0, r1, r6 ldrh r0, [r0] b _080FB9FE .align 2, 0 _080FB9E8: .4byte gUnknown_083E7684 _080FB9EC: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 lsls r0, r2, 2 adds r0, r4 ldrh r0, [r0] cmp r0, 0x58 bne _080FB9D6 _080FB9FC: adds r0, r3, 0 _080FB9FE: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80FB9C0 thumb_func_start sub_80FBA04 sub_80FBA04: @ 80FBA04 push {lr} lsls r0, 16 lsrs r0, 16 bl sub_80FB9C0 lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_80FBA04 thumb_func_start sub_80FBA18 sub_80FBA18: @ 80FBA18 push {r4-r6,lr} ldr r0, _080FBA2C ldr r1, [r0] ldrh r0, [r1, 0x14] cmp r0, 0x58 bne _080FBA30 movs r0, 0 strb r0, [r1, 0x17] b _080FBA96 .align 2, 0 _080FBA2C: .4byte 0x020388cc _080FBA30: adds r0, r1, 0 adds r0, 0x78 ldrb r0, [r0] cmp r0, 0 bne _080FBA40 adds r0, r1, 0 adds r0, 0x54 b _080FBA44 _080FBA40: adds r0, r1, 0 adds r0, 0x64 _080FBA44: ldrh r4, [r0] adds r0, 0x2 ldrh r5, [r0] movs r6, 0 b _080FBA70 _080FBA4E: subs r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 adds r1, r5, 0 bl sub_80FB2EC ldr r1, _080FBA8C ldr r1, [r1] lsls r0, 16 lsrs r0, 16 ldrh r1, [r1, 0x14] cmp r0, r1 bne _080FBA70 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080FBA70: cmp r4, 0x1 bhi _080FBA4E adds r0, r5, 0 bl sub_80FBAA0 lsls r0, 24 cmp r0, 0 beq _080FBA90 subs r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 movs r4, 0x1D b _080FBA70 .align 2, 0 _080FBA8C: .4byte 0x020388cc _080FBA90: ldr r0, _080FBA9C ldr r0, [r0] strb r6, [r0, 0x17] _080FBA96: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080FBA9C: .4byte 0x020388cc thumb_func_end sub_80FBA18 thumb_func_start sub_80FBAA0 sub_80FBAA0: @ 80FBAA0 push {r4,r5,lr} lsls r0, 16 ldr r1, _080FBAB4 adds r0, r1 lsrs r5, r0, 16 ldr r0, _080FBAB8 cmp r5, r0 bne _080FBAC0 b _080FBAE2 .align 2, 0 _080FBAB4: .4byte 0xffff0000 _080FBAB8: .4byte 0x0000ffff _080FBABC: movs r0, 0x1 b _080FBAE4 _080FBAC0: movs r4, 0x1 _080FBAC2: adds r0, r4, 0 adds r1, r5, 0 bl sub_80FB2EC ldr r1, _080FBAEC ldr r1, [r1] lsls r0, 16 lsrs r0, 16 ldrh r1, [r1, 0x14] cmp r0, r1 beq _080FBABC adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1C bls _080FBAC2 _080FBAE2: movs r0, 0 _080FBAE4: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080FBAEC: .4byte 0x020388cc thumb_func_end sub_80FBAA0 thumb_func_start sub_80FBAF0 sub_80FBAF0: @ 80FBAF0 push {r4,lr} adds r2, r0, 0 ldr r0, _080FBB34 ldr r1, [r0] adds r3, r1, 0 adds r3, 0x7A movs r0, 0 ldrsb r0, [r3, r0] cmp r0, 0 beq _080FBB2E adds r0, r1, 0 adds r0, 0x7B ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 1 ldrh r4, [r2, 0x20] adds r0, r4 strh r0, [r2, 0x20] adds r0, r1, 0 adds r0, 0x7C ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 1 ldrh r1, [r2, 0x22] adds r0, r1 strh r0, [r2, 0x22] ldrb r0, [r3] subs r0, 0x1 strb r0, [r3] _080FBB2E: pop {r4} pop {r0} bx r0 .align 2, 0 _080FBB34: .4byte 0x020388cc thumb_func_end sub_80FBAF0 thumb_func_start nullsub_66 nullsub_66: @ 80FBB38 bx lr thumb_func_end nullsub_66 thumb_func_start sub_80FBB3C sub_80FBB3C: @ 80FBB3C push {r4-r7,lr} sub sp, 0x28 lsls r0, 16 lsls r1, 16 lsrs r6, r1, 16 ldr r1, _080FBBAC ldr r2, [r1, 0x4] ldr r1, [r1] str r1, [sp, 0x20] str r2, [sp, 0x24] mov r2, sp ldr r1, _080FBBB0 ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} lsrs r3, r0, 16 add r2, sp, 0x18 ldrh r1, [r2, 0x4] orrs r1, r0 str r1, [r2, 0x4] mov r0, sp strh r3, [r0] ldr r0, _080FBBB4 ldr r4, [r0] adds r0, r4, 0 adds r0, 0x58 strh r3, [r0] ldr r5, _080FBBB8 add r1, sp, 0x20 ldr r0, [r1, 0x4] ands r0, r5 orrs r0, r6 str r0, [r1, 0x4] mov r0, sp strh r6, [r0, 0x2] adds r3, r4, 0 adds r0, r3, 0 adds r0, 0x5A strh r6, [r0] adds r0, 0x1E ldrb r0, [r0] adds r7, r1, 0 cmp r0, 0 bne _080FBBC0 movs r1, 0xC0 lsls r1, 1 adds r0, r3, r1 str r0, [sp, 0x18] ldr r0, [r2, 0x4] ands r0, r5 subs r1, 0x80 orrs r0, r1 str r0, [r2, 0x4] ldr r0, _080FBBBC b _080FBBD6 .align 2, 0 _080FBBAC: .4byte gUnknown_083E76E8 _080FBBB0: .4byte gSpriteTemplate_83E76F0 _080FBBB4: .4byte 0x020388cc _080FBBB8: .4byte 0xffff0000 _080FBBBC: .4byte sub_80FBAF0 _080FBBC0: movs r3, 0xA0 lsls r3, 2 adds r0, r4, r3 str r0, [sp, 0x18] ldr r0, [r2, 0x4] ands r0, r5 movs r1, 0xC0 lsls r1, 3 orrs r0, r1 str r0, [r2, 0x4] ldr r0, _080FBC38 _080FBBD6: str r0, [sp, 0x14] adds r0, r2, 0 bl LoadSpriteSheet adds r0, r7, 0 bl LoadSpritePalette mov r0, sp movs r1, 0x38 movs r2, 0x48 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080FBC90 ldr r4, _080FBC3C ldr r2, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080FBC40 adds r3, r0, r1 str r3, [r2, 0x1C] adds r2, 0x78 ldrb r0, [r2] cmp r0, 0x1 bne _080FBC44 ldrb r1, [r3, 0x3] movs r0, 0x3F ands r0, r1 movs r1, 0x80 orrs r0, r1 strb r0, [r3, 0x3] ldr r2, [r4] ldr r1, [r2, 0x1C] ldrh r0, [r1, 0x20] subs r0, 0x8 strh r0, [r1, 0x20] ldr r1, [r2, 0x1C] ldrh r0, [r1, 0x22] subs r0, 0x8 strh r0, [r1, 0x22] ldr r0, [r2, 0x1C] movs r1, 0x1 bl StartSpriteAnim b _080FBC6C .align 2, 0 _080FBC38: .4byte nullsub_66 _080FBC3C: .4byte 0x020388cc _080FBC40: .4byte 0x02020004 _080FBC44: ldrb r1, [r3, 0x3] movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 strb r0, [r3, 0x3] ldr r1, [r4] ldr r2, [r1, 0x1C] adds r0, r1, 0 adds r0, 0x54 ldrh r0, [r0] lsls r0, 3 adds r0, 0x4 strh r0, [r2, 0x20] ldr r2, [r1, 0x1C] adds r1, 0x56 ldrh r0, [r1] lsls r0, 3 adds r0, 0x4 strh r0, [r2, 0x22] _080FBC6C: ldr r4, _080FBC98 ldr r0, [r4] ldr r1, [r0, 0x1C] movs r0, 0x2 strh r0, [r1, 0x30] adds r0, r6, 0 bl IndexOfSpritePaletteTag ldr r1, [r4] ldr r2, [r1, 0x1C] lsls r0, 24 lsrs r0, 20 ldr r4, _080FBC9C adds r0, r4 strh r0, [r2, 0x32] ldr r1, [r1, 0x1C] movs r0, 0x1 strh r0, [r1, 0x34] _080FBC90: add sp, 0x28 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FBC98: .4byte 0x020388cc _080FBC9C: .4byte 0x00000101 thumb_func_end sub_80FBB3C thumb_func_start sub_80FBCA0 sub_80FBCA0: @ 80FBCA0 push {r4,lr} ldr r4, _080FBCCC ldr r0, [r4] ldr r0, [r0, 0x1C] cmp r0, 0 beq _080FBCC4 bl DestroySprite ldr r0, [r4] adds r0, 0x58 ldrh r0, [r0] bl FreeSpriteTilesByTag ldr r0, [r4] adds r0, 0x5A ldrh r0, [r0] bl FreeSpritePaletteByTag _080FBCC4: pop {r4} pop {r0} bx r0 .align 2, 0 _080FBCCC: .4byte 0x020388cc thumb_func_end sub_80FBCA0 thumb_func_start unref_sub_80FBCD0 unref_sub_80FBCD0: @ 80FBCD0 ldr r0, _080FBCDC ldr r0, [r0] ldr r1, [r0, 0x1C] movs r0, 0x1 strh r0, [r1, 0x34] bx lr .align 2, 0 _080FBCDC: .4byte 0x020388cc thumb_func_end unref_sub_80FBCD0 thumb_func_start unref_sub_80FBCE0 unref_sub_80FBCE0: @ 80FBCE0 ldr r0, _080FBCEC ldr r0, [r0] ldr r1, [r0, 0x1C] movs r0, 0 strh r0, [r1, 0x34] bx lr .align 2, 0 _080FBCEC: .4byte 0x020388cc thumb_func_end unref_sub_80FBCE0 thumb_func_start sub_80FBCF0 sub_80FBCF0: @ 80FBCF0 push {r4,r5,lr} sub sp, 0x28 lsls r0, 16 lsls r1, 16 lsrs r1, 16 ldr r2, _080FBD98 str r2, [sp, 0x18] movs r2, 0x80 add r5, sp, 0x18 lsrs r3, r0, 16 orrs r0, r2 str r0, [r5, 0x4] ldr r0, _080FBD9C str r0, [sp, 0x20] ldr r2, _080FBDA0 add r4, sp, 0x20 ldr r0, [r4, 0x4] ands r0, r2 orrs r0, r1 str r0, [r4, 0x4] mov r0, sp movs r2, 0 strh r3, [r0] strh r1, [r0, 0x2] ldr r0, _080FBDA4 str r0, [sp, 0x4] ldr r0, _080FBDA8 str r0, [sp, 0x8] str r2, [sp, 0xC] ldr r0, _080FBDAC str r0, [sp, 0x10] ldr r0, _080FBDB0 str r0, [sp, 0x14] ldr r0, _080FBDB4 ldrb r0, [r0, 0x8] cmp r0, 0x1 bne _080FBD42 ldr r0, _080FBDB8 str r0, [sp, 0x18] ldr r0, _080FBDBC str r0, [sp, 0x20] _080FBD42: adds r0, r5, 0 bl LoadSpriteSheet adds r0, r4, 0 bl LoadSpritePalette mov r0, sp movs r1, 0 movs r2, 0 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _080FBDC0 ldr r2, [r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _080FBDC4 adds r1, r0 str r1, [r2, 0x20] adds r0, r2, 0 adds r0, 0x78 ldrb r0, [r0] cmp r0, 0 bne _080FBDCC adds r0, r2, 0 adds r0, 0x74 ldrh r0, [r0] lsls r0, 3 adds r0, 0x4 strh r0, [r1, 0x20] ldr r1, [r2, 0x20] adds r0, r2, 0 adds r0, 0x76 ldrh r0, [r0] lsls r0, 3 adds r0, 0x4 strh r0, [r1, 0x22] ldr r1, [r2, 0x20] ldr r0, _080FBDC8 b _080FBDEA .align 2, 0 _080FBD98: .4byte gUnknown_083E5C40 _080FBD9C: .4byte gUnknown_083E5C20 _080FBDA0: .4byte 0xffff0000 _080FBDA4: .4byte gUnknown_083E7708 _080FBDA8: .4byte gUnknown_083E7718 _080FBDAC: .4byte gDummySpriteAffineAnimTable _080FBDB0: .4byte SpriteCallbackDummy _080FBDB4: .4byte gSaveBlock2 _080FBDB8: .4byte gUnknown_083E5CE0 _080FBDBC: .4byte gUnknown_083E5CC0 _080FBDC0: .4byte 0x020388cc _080FBDC4: .4byte 0x02020004 _080FBDC8: .4byte sub_80FBF34 _080FBDCC: adds r0, r2, 0 adds r0, 0x74 ldrh r0, [r0] lsls r0, 4 subs r0, 0x30 strh r0, [r1, 0x20] ldr r1, [r2, 0x20] adds r0, r2, 0 adds r0, 0x76 ldrh r0, [r0] lsls r0, 4 subs r0, 0x42 strh r0, [r1, 0x22] ldr r1, [r2, 0x20] ldr r0, _080FBDF4 _080FBDEA: str r0, [r1, 0x1C] add sp, 0x28 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FBDF4: .4byte sub_80FBEA4 thumb_func_end sub_80FBCF0 thumb_func_start sub_80FBDF8 sub_80FBDF8: @ 80FBDF8 push {lr} ldr r3, _080FBE1C ldr r0, [r3] ldr r2, [r0, 0x20] cmp r2, 0 beq _080FBE16 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, [r3] ldr r1, [r0, 0x20] ldr r0, _080FBE20 str r0, [r1, 0x1C] _080FBE16: pop {r0} bx r0 .align 2, 0 _080FBE1C: .4byte 0x020388cc _080FBE20: .4byte SpriteCallbackDummy thumb_func_end sub_80FBDF8 thumb_func_start sub_80FBE24 sub_80FBE24: @ 80FBE24 push {lr} ldr r0, _080FBE5C ldr r3, [r0] ldr r1, [r3, 0x20] cmp r1, 0 beq _080FBE9A adds r0, r3, 0 adds r0, 0x78 ldrb r0, [r0] cmp r0, 0x1 bne _080FBE64 adds r0, r3, 0 adds r0, 0x74 ldrh r0, [r0] lsls r0, 4 subs r0, 0x30 strh r0, [r1, 0x20] ldr r1, [r3, 0x20] adds r0, r3, 0 adds r0, 0x76 ldrh r0, [r0] lsls r0, 4 subs r0, 0x42 strh r0, [r1, 0x22] ldr r1, [r3, 0x20] ldr r0, _080FBE60 b _080FBE8C .align 2, 0 _080FBE5C: .4byte 0x020388cc _080FBE60: .4byte sub_80FBEA4 _080FBE64: adds r0, r3, 0 adds r0, 0x74 ldrh r0, [r0] lsls r0, 3 adds r0, 0x4 movs r2, 0 strh r0, [r1, 0x20] ldr r1, [r3, 0x20] adds r0, r3, 0 adds r0, 0x76 ldrh r0, [r0] lsls r0, 3 adds r0, 0x4 strh r0, [r1, 0x22] ldr r0, [r3, 0x20] strh r2, [r0, 0x24] ldr r0, [r3, 0x20] strh r2, [r0, 0x26] ldr r1, [r3, 0x20] ldr r0, _080FBEA0 _080FBE8C: str r0, [r1, 0x1C] adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] _080FBE9A: pop {r0} bx r0 .align 2, 0 _080FBEA0: .4byte sub_80FBF34 thumb_func_end sub_80FBE24 thumb_func_start sub_80FBEA4 sub_80FBEA4: @ 80FBEA4 push {r4,lr} adds r3, r0, 0 ldr r0, _080FBF08 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x5C movs r4, 0 ldrsh r2, [r0, r4] lsls r2, 1 negs r2, r2 strh r2, [r3, 0x24] adds r1, 0x5E movs r4, 0 ldrsh r0, [r1, r4] lsls r0, 1 negs r0, r0 strh r0, [r3, 0x26] ldrh r1, [r3, 0x22] adds r1, r0 adds r0, r3, 0 adds r0, 0x29 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r0, r1 strh r0, [r3, 0x2E] ldrh r1, [r3, 0x20] adds r1, r2 adds r2, r3, 0 adds r2, 0x28 ldrb r2, [r2] lsls r2, 24 asrs r2, 24 adds r2, r1 strh r2, [r3, 0x30] adds r0, 0x8 lsls r0, 16 lsrs r0, 16 cmp r0, 0xB0 bhi _080FBF04 lsls r0, r2, 16 asrs r2, r0, 16 movs r0, 0x8 negs r0, r0 cmp r2, r0 blt _080FBF04 cmp r2, 0xF8 ble _080FBF0C _080FBF04: movs r0, 0 b _080FBF0E .align 2, 0 _080FBF08: .4byte 0x020388cc _080FBF0C: movs r0, 0x1 _080FBF0E: strh r0, [r3, 0x32] movs r1, 0x32 ldrsh r0, [r3, r1] cmp r0, 0x1 bne _080FBF20 adds r0, r3, 0 bl sub_80FBF40 b _080FBF2C _080FBF20: adds r0, r3, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080FBF2C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80FBEA4 thumb_func_start sub_80FBF34 sub_80FBF34: @ 80FBF34 push {lr} bl sub_80FBF40 pop {r0} bx r0 thumb_func_end sub_80FBF34 thumb_func_start sub_80FBF40 sub_80FBF40: @ 80FBF40 push {lr} adds r2, r0, 0 ldr r0, _080FBF80 ldr r0, [r0] adds r0, 0x7E ldrb r0, [r0] cmp r0, 0 beq _080FBF84 ldrh r0, [r2, 0x3C] adds r0, 0x1 strh r0, [r2, 0x3C] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _080FBF90 movs r0, 0 strh r0, [r2, 0x3C] adds r3, r2, 0 adds r3, 0x3E ldrb r2, [r3] lsrs r1, r2, 2 movs r0, 0x1 eors r1, r0 ands r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] b _080FBF90 .align 2, 0 _080FBF80: .4byte 0x020388cc _080FBF84: adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _080FBF90: pop {r0} bx r0 thumb_func_end sub_80FBF40 thumb_func_start sub_80FBF94 sub_80FBF94: @ 80FBF94 push {lr} ldr r0, _080FBFB0 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x7F ldrb r0, [r0] cmp r0, 0 beq _080FBFAA adds r1, 0x7E movs r0, 0x1 strb r0, [r1] _080FBFAA: pop {r0} bx r0 .align 2, 0 _080FBFB0: .4byte 0x020388cc thumb_func_end sub_80FBF94 thumb_func_start sub_80FBFB4 sub_80FBFB4: @ 80FBFB4 push {lr} adds r3, r0, 0 lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 cmp r1, 0x56 bne _080FBFCA bl GetSecretBaseMapName b _080FBFF2 _080FBFCA: cmp r1, 0x57 bhi _080FBFE4 ldr r0, _080FBFE0 lsls r1, 3 adds r0, 0x4 adds r1, r0 ldr r1, [r1] adds r0, r3, 0 bl StringCopy b _080FBFF2 .align 2, 0 _080FBFE0: .4byte gRegionMapLocations _080FBFE4: cmp r2, 0 bne _080FBFEA movs r2, 0x12 _080FBFEA: adds r0, r3, 0 movs r1, 0 bl StringFill _080FBFF2: pop {r1} bx r1 thumb_func_end sub_80FBFB4 thumb_func_start sub_80FBFF8 sub_80FBFF8: @ 80FBFF8 push {lr} lsls r1, 16 lsrs r1, 16 cmp r1, 0x56 beq _080FC014 cmp r1, 0x57 bne _080FC020 ldr r1, _080FC010 bl StringCopy b _080FC026 .align 2, 0 _080FC010: .4byte gUnknown_084117C9 _080FC014: ldr r1, _080FC01C bl StringCopy b _080FC026 .align 2, 0 _080FC01C: .4byte gUnknown_084117CF _080FC020: movs r2, 0 bl sub_80FBFB4 _080FC026: pop {r1} bx r1 thumb_func_end sub_80FBFF8 thumb_func_start sub_80FC02C sub_80FC02C: @ 80FC02C push {lr} lsls r1, 16 lsrs r1, 16 cmp r1, 0x42 beq _080FC03C bl sub_80FBFF8 b _080FC042 _080FC03C: ldr r1, _080FC048 bl StringCopy _080FC042: pop {r1} bx r1 .align 2, 0 _080FC048: .4byte gUnknown_084117DB thumb_func_end sub_80FC02C thumb_func_start sub_80FC04C sub_80FC04C: @ 80FC04C push {r4,r5,lr} ldr r5, [sp, 0xC] lsls r0, 16 ldr r4, _080FC070 lsrs r0, 13 adds r0, r4 ldrb r4, [r0] strh r4, [r1] ldrb r1, [r0, 0x1] strh r1, [r2] ldrb r1, [r0, 0x2] strh r1, [r3] ldrb r0, [r0, 0x3] strh r0, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FC070: .4byte gRegionMapLocations thumb_func_end sub_80FC04C thumb_func_start sub_80FC074 sub_80FC074: @ 80FC074 push {r4,lr} ldr r0, _080FC090 ldr r1, _080FC094 adds r0, r1 ldrb r0, [r0] cmp r0, 0x9 bls _080FC084 b _080FC1F2 _080FC084: lsls r0, 2 ldr r1, _080FC098 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FC090: .4byte 0x03001770 _080FC094: .4byte 0x0000043c _080FC098: .4byte _080FC09C .align 2, 0 _080FC09C: .4byte _080FC0C4 .4byte _080FC104 .4byte _080FC110 .4byte _080FC120 .4byte _080FC15C .4byte _080FC170 .4byte _080FC184 .4byte _080FC1A4 .4byte _080FC1AA .4byte _080FC1C4 _080FC0C4: movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 19 movs r1, 0 strh r1, [r0] adds r0, 0x10 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x4 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bl ResetPaletteFade bl ResetSpriteData bl FreeSpriteTileRanges bl FreeAllSpritePalettes b _080FC1E6 _080FC104: ldr r0, _080FC10C bl SetUpWindowConfig b _080FC1E6 .align 2, 0 _080FC10C: .4byte gWindowConfig_81E7224 _080FC110: ldr r0, _080FC11C bl sub_8071C4C bl sub_8071EF4 b _080FC1E6 .align 2, 0 _080FC11C: .4byte gWindowConfig_81E7224 _080FC120: ldr r4, _080FC158 adds r0, r4, 0 movs r1, 0 bl sub_80FA8EC movs r0, 0 movs r1, 0 bl sub_80FBB3C movs r0, 0x1 movs r1, 0x1 bl sub_80FBCF0 adds r1, r4, 0 subs r1, 0x8 ldrh r0, [r1, 0x1C] strh r0, [r1, 0x6] movs r2, 0xA4 lsls r2, 4 adds r4, r2 adds r0, r4, 0 movs r1, 0 movs r2, 0xC bl StringFill bl sub_80FC254 b _080FC1E6 .align 2, 0 _080FC158: .4byte 0x02000008 _080FC15C: ldr r0, _080FC168 ldr r1, _080FC16C bl LZ77UnCompVram b _080FC1E6 .align 2, 0 _080FC168: .4byte gUnknown_083E773C _080FC16C: .4byte 0x0600c000 _080FC170: ldr r0, _080FC17C ldr r1, _080FC180 bl LZ77UnCompVram b _080FC1E6 .align 2, 0 _080FC17C: .4byte gUnknown_083E7774 _080FC180: .4byte 0x0600f000 _080FC184: ldr r0, _080FC19C movs r1, 0x10 movs r2, 0x20 bl LoadPalette ldr r0, _080FC1A0 movs r1, 0x1 movs r2, 0x90 movs r3, 0x1 bl sub_80729D8 b _080FC1E6 .align 2, 0 _080FC19C: .4byte gUnknown_083E771C _080FC1A0: .4byte gUnknown_0840E604 _080FC1A4: bl sub_80FC31C b _080FC1E6 _080FC1AA: movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes ldr r0, _080FC1C0 bl SetVBlankCallback b _080FC1E6 .align 2, 0 _080FC1C0: .4byte sub_80FC214 _080FC1C4: ldr r1, _080FC1F8 movs r0, 0 strh r0, [r1] subs r1, 0x46 ldr r2, _080FC1FC adds r0, r2, 0 strh r0, [r1] subs r1, 0xA ldr r2, _080FC200 adds r0, r2, 0 strh r0, [r1] ldr r0, _080FC204 bl sub_80FC244 ldr r0, _080FC208 bl SetMainCallback2 _080FC1E6: ldr r1, _080FC20C ldr r0, _080FC210 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080FC1F2: pop {r4} pop {r0} bx r0 .align 2, 0 _080FC1F8: .4byte REG_BLDCNT _080FC1FC: .4byte 0x00001e0d _080FC200: .4byte 0x00001741 _080FC204: .4byte sub_80FC5B4 _080FC208: .4byte sub_80FC228 _080FC20C: .4byte 0x03001770 _080FC210: .4byte 0x0000043c thumb_func_end sub_80FC074 thumb_func_start sub_80FC214 sub_80FC214: @ 80FC214 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_80FC214 thumb_func_start sub_80FC228 sub_80FC228: @ 80FC228 push {lr} ldr r0, _080FC240 ldr r0, [r0] bl _call_via_r0 bl AnimateSprites bl BuildOamBuffer pop {r0} bx r0 .align 2, 0 _080FC240: .4byte 0x02000000 thumb_func_end sub_80FC228 thumb_func_start sub_80FC244 sub_80FC244: @ 80FC244 ldr r1, _080FC250 str r0, [r1] movs r0, 0 strh r0, [r1, 0x4] bx lr .align 2, 0 _080FC250: .4byte 0x02000000 thumb_func_end sub_80FC244 thumb_func_start sub_80FC254 sub_80FC254: @ 80FC254 push {r4,r5,lr} ldr r4, _080FC2AC ldrb r0, [r4, 0x1E] cmp r0, 0x2 beq _080FC262 cmp r0, 0x4 bne _080FC2EC _080FC262: movs r1, 0 ldr r2, _080FC2B0 adds r5, r4, 0 _080FC268: lsls r0, r1, 3 adds r4, r0, r2 ldrh r0, [r5, 0x1C] ldrh r3, [r4, 0x4] cmp r0, r3 bne _080FC2B4 ldrh r0, [r4, 0x6] bl FlagGet lsls r0, 24 cmp r0, 0 beq _080FC2BE movs r0, 0x10 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow adds r0, r5, 0 adds r0, 0x8 movs r1, 0x11 movs r2, 0xF bl Print ldrb r0, [r5, 0x1F] ldr r1, [r4] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x1D movs r2, 0x11 bl PrintCoinsString b _080FC310 .align 2, 0 _080FC2AC: .4byte 0x02000000 _080FC2B0: .4byte gUnknown_083E79C0 _080FC2B4: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _080FC268 _080FC2BE: movs r0, 0 cmp r0, 0 bne _080FC310 movs r0, 0x10 movs r1, 0x10 movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow ldr r0, _080FC2E8 movs r1, 0x11 movs r2, 0x11 bl Print movs r0, 0x10 movs r1, 0xE movs r2, 0x1D movs r3, 0xF bl Reset b _080FC310 .align 2, 0 _080FC2E8: .4byte 0x02000008 _080FC2EC: movs r0, 0x10 movs r1, 0x10 movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow ldr r1, _080FC318 adds r0, r4, r1 movs r1, 0x11 movs r2, 0x11 bl Print movs r0, 0x10 movs r1, 0xE movs r2, 0x1D movs r3, 0xF bl Reset _080FC310: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FC318: .4byte 0x00000a48 thumb_func_end sub_80FC254 thumb_func_start sub_80FC31C sub_80FC31C: @ 80FC31C push {r4,lr} sub sp, 0x8 ldr r0, _080FC360 ldr r4, _080FC364 adds r1, r4, 0 bl LZ77UnCompWram str r4, [sp] ldr r1, _080FC368 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0xE0 lsls r1, 1 orrs r0, r1 ldr r1, _080FC36C ands r0, r1 movs r1, 0x80 lsls r1, 10 orrs r0, r1 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet ldr r0, _080FC370 bl LoadSpritePalette bl sub_80FC374 bl sub_80FC484 add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080FC360: .4byte gUnknown_083E784C _080FC364: .4byte 0x02000888 _080FC368: .4byte 0xffff0000 _080FC36C: .4byte 0x0000ffff _080FC370: .4byte gUnknown_083E79CC thumb_func_end sub_80FC31C thumb_func_start sub_80FC374 sub_80FC374: @ 80FC374 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C ldr r0, _080FC3D4 str r0, [sp, 0xC] movs r1, 0 mov r9, r1 mov r2, sp adds r2, 0x6 str r2, [sp, 0x14] mov r3, sp adds r3, 0xA str r3, [sp, 0x18] mov r0, sp adds r0, 0x8 str r0, [sp, 0x10] add r1, sp, 0x4 mov r10, r1 _080FC39E: ldr r2, [sp, 0x18] str r2, [sp] mov r0, r9 add r1, sp, 0x4 mov r2, sp adds r2, 0x6 ldr r3, [sp, 0x10] bl sub_80FC04C mov r3, r10 ldrh r0, [r3] adds r0, 0x1 lsls r0, 3 adds r0, 0x4 strh r0, [r3] mov r1, sp ldrh r0, [r1, 0x6] adds r0, 0x2 lsls r0, 3 adds r0, 0x4 strh r0, [r1, 0x6] ldr r2, [sp, 0x10] ldrh r0, [r2] cmp r0, 0x2 bne _080FC3D8 movs r7, 0x1 b _080FC3E4 .align 2, 0 _080FC3D4: .4byte 0x0000080f _080FC3D8: ldr r3, [sp, 0x18] ldrh r0, [r3] movs r7, 0 cmp r0, 0x2 bne _080FC3E4 movs r7, 0x2 _080FC3E4: mov r0, r10 movs r2, 0 ldrsh r1, [r0, r2] ldr r3, [sp, 0x14] movs r0, 0 ldrsh r2, [r3, r0] ldr r0, _080FC430 movs r3, 0xA bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x40 beq _080FC458 ldr r1, _080FC434 mov r8, r1 lsls r4, r5, 4 adds r0, r4, r5 lsls r6, r0, 2 adds r2, r6, r1 lsls r3, r7, 6 ldrb r1, [r2, 0x1] movs r0, 0x3F ands r0, r1 orrs r0, r3 strb r0, [r2, 0x1] ldr r0, [sp, 0xC] bl FlagGet lsls r0, 24 cmp r0, 0 beq _080FC43C mov r0, r8 adds r0, 0x1C adds r0, r6, r0 ldr r1, _080FC438 str r1, [r0] b _080FC442 .align 2, 0 _080FC430: .4byte gSpriteTemplate_83E7A38 _080FC434: .4byte 0x02020004 _080FC438: .4byte sub_80FC55C _080FC43C: adds r0, r7, 0x3 lsls r0, 16 lsrs r7, r0, 16 _080FC442: adds r4, r5 lsls r4, 2 ldr r0, _080FC480 adds r4, r0 lsls r1, r7, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim mov r2, r9 strh r2, [r4, 0x2E] _080FC458: ldr r0, [sp, 0xC] adds r0, 0x1 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0xC] mov r0, r9 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r9, r0 cmp r0, 0xF bls _080FC39E add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FC480: .4byte 0x02020004 thumb_func_end sub_80FC374 thumb_func_start sub_80FC484 sub_80FC484: @ 80FC484 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC movs r0, 0 mov r8, r0 ldr r6, _080FC54C ldrh r0, [r6, 0x2] cmp r0, 0x58 beq _080FC53C mov r5, sp adds r5, 0x6 add r7, sp, 0x4 ldr r1, _080FC550 mov r9, r1 movs r0, 0x1C add r0, r9 mov r10, r0 _080FC4AC: mov r1, r8 lsls r4, r1, 2 adds r0, r4, r6 ldrh r0, [r0] bl FlagGet lsls r0, 24 cmp r0, 0 beq _080FC524 adds r0, r6, 0x2 adds r0, r4, r0 ldrh r6, [r0] mov r0, sp adds r0, 0xA str r0, [sp] adds r0, r6, 0 add r1, sp, 0x4 adds r2, r5, 0 add r3, sp, 0x8 bl sub_80FC04C ldrh r0, [r7] adds r0, 0x1 lsls r0, 3 strh r0, [r7] ldrh r0, [r5] adds r0, 0x2 lsls r0, 3 strh r0, [r5] movs r0, 0 ldrsh r1, [r7, r0] movs r0, 0 ldrsh r2, [r5, r0] ldr r0, _080FC554 movs r3, 0xA bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _080FC524 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 mov r1, r9 adds r4, r2, r1 ldrb r1, [r4, 0x3] movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 strb r0, [r4, 0x3] add r2, r10 ldr r0, _080FC558 str r0, [r2] adds r0, r4, 0 movs r1, 0x6 bl StartSpriteAnim strh r6, [r4, 0x2E] _080FC524: mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r6, _080FC54C lsls r0, 2 adds r1, r6, 0x2 adds r0, r1 ldrh r0, [r0] cmp r0, 0x58 bne _080FC4AC _080FC53C: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FC54C: .4byte gUnknown_083E79D4 _080FC550: .4byte 0x02020004 _080FC554: .4byte gSpriteTemplate_83E7A38 _080FC558: .4byte sub_80FC55C thumb_func_end sub_80FC484 thumb_func_start sub_80FC55C sub_80FC55C: @ 80FC55C push {lr} adds r2, r0, 0 ldr r0, _080FC59C ldrh r1, [r0, 0x1C] movs r3, 0x2E ldrsh r0, [r2, r3] cmp r1, r0 bne _080FC5A0 ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _080FC5AE movs r0, 0 strh r0, [r2, 0x30] adds r3, r2, 0 adds r3, 0x3E ldrb r2, [r3] lsrs r1, r2, 2 movs r0, 0x1 eors r1, r0 ands r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] b _080FC5AE .align 2, 0 _080FC59C: .4byte 0x02000000 _080FC5A0: movs r0, 0x10 strh r0, [r2, 0x30] adds r2, 0x3E ldrb r1, [r2] subs r0, 0x15 ands r0, r1 strb r0, [r2] _080FC5AE: pop {r0} bx r0 thumb_func_end sub_80FC55C thumb_func_start sub_80FC5B4 sub_80FC5B4: @ 80FC5B4 push {r4,lr} sub sp, 0x4 ldr r4, _080FC5C8 ldrh r1, [r4, 0x4] cmp r1, 0 beq _080FC5CC cmp r1, 0x1 beq _080FC5E4 b _080FC5F4 .align 2, 0 _080FC5C8: .4byte 0x02000000 _080FC5CC: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldrh r0, [r4, 0x4] adds r0, 0x1 strh r0, [r4, 0x4] b _080FC5F4 _080FC5E4: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080FC5F4 ldr r0, _080FC5FC bl sub_80FC244 _080FC5F4: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080FC5FC: .4byte sub_80FC600 thumb_func_end sub_80FC5B4 thumb_func_start sub_80FC600 sub_80FC600: @ 80FC600 push {r4,lr} ldr r0, _080FC620 ldrh r0, [r0, 0x4] cmp r0, 0 bne _080FC68A bl sub_80FAB60 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bhi _080FC68A lsls r0, 2 ldr r1, _080FC624 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FC620: .4byte 0x02000000 _080FC624: .4byte _080FC628 .align 2, 0 _080FC628: .4byte _080FC68A .4byte _080FC68A .4byte _080FC68A .4byte _080FC640 .4byte _080FC646 .4byte _080FC674 _080FC640: bl sub_80FC254 b _080FC68A _080FC646: ldr r4, _080FC668 ldrb r0, [r4, 0x1E] cmp r0, 0x2 beq _080FC652 cmp r0, 0x4 bne _080FC68A _080FC652: movs r0, 0x5 bl m4aSongNumStart ldr r1, _080FC66C adds r0, r4, r1 movs r1, 0x1 strb r1, [r0] ldr r0, _080FC670 bl sub_80FC244 b _080FC68A .align 2, 0 _080FC668: .4byte 0x02000000 _080FC66C: .4byte 0x00000a6e _080FC670: .4byte sub_80FC69C _080FC674: movs r0, 0x5 bl m4aSongNumStart ldr r0, _080FC690 ldr r1, _080FC694 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, _080FC698 bl sub_80FC244 _080FC68A: pop {r4} pop {r0} bx r0 .align 2, 0 _080FC690: .4byte 0x02000000 _080FC694: .4byte 0x00000a6e _080FC698: .4byte sub_80FC69C thumb_func_end sub_80FC600 thumb_func_start sub_80FC69C sub_80FC69C: @ 80FC69C push {r4,lr} sub sp, 0x4 ldr r4, _080FC6B0 ldrh r1, [r4, 0x4] cmp r1, 0 beq _080FC6B4 cmp r1, 0x1 beq _080FC6CC b _080FC792 .align 2, 0 _080FC6B0: .4byte 0x02000000 _080FC6B4: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrh r0, [r4, 0x4] adds r0, 0x1 strh r0, [r4, 0x4] b _080FC792 _080FC6CC: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080FC792 bl sub_80FAB10 ldr r1, _080FC6F4 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 beq _080FC78C ldrh r0, [r4, 0x1C] cmp r0, 0xF beq _080FC724 cmp r0, 0xF bgt _080FC6F8 cmp r0, 0 beq _080FC710 b _080FC748 .align 2, 0 _080FC6F4: .4byte 0x00000a6e _080FC6F8: cmp r0, 0x3A beq _080FC708 cmp r0, 0x49 bne _080FC748 movs r0, 0x16 bl sub_8053538 b _080FC786 _080FC708: movs r0, 0x15 bl sub_8053538 b _080FC786 _080FC710: ldr r0, _080FC720 ldrb r0, [r0, 0x8] movs r1, 0xD cmp r0, 0 bne _080FC73A movs r1, 0xC b _080FC73A .align 2, 0 _080FC720: .4byte gSaveBlock2 _080FC724: ldr r0, _080FC744 bl FlagGet lsls r0, 24 movs r1, 0xB cmp r0, 0 beq _080FC73A ldrb r0, [r4, 0x1F] cmp r0, 0 bne _080FC73A movs r1, 0x14 _080FC73A: adds r0, r1, 0 bl sub_8053538 b _080FC786 .align 2, 0 _080FC744: .4byte 0x00000854 _080FC748: ldr r3, _080FC764 ldr r0, _080FC768 ldrh r1, [r0, 0x1C] lsls r0, r1, 1 adds r2, r0, r1 adds r0, r3, 0x2 adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0 beq _080FC76C bl sub_8053538 b _080FC786 .align 2, 0 _080FC764: .4byte gUnknown_083E7920 _080FC768: .4byte 0x02000000 _080FC76C: adds r0, r2, r3 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 movs r2, 0x1 negs r2, r2 bl warp1_set_2 _080FC786: bl sub_80865BC b _080FC792 _080FC78C: ldr r0, _080FC79C bl SetMainCallback2 _080FC792: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080FC79C: .4byte sub_808AD58 thumb_func_end sub_80FC69C thumb_func_start sub_80FC7A0 sub_80FC7A0: @ 80FC7A0 push {lr} ldr r2, _080FC7E8 ldr r1, [r0, 0x4] str r1, [r2] ldr r2, _080FC7EC ldrb r1, [r0, 0x1F] strb r1, [r2] ldr r2, _080FC7F0 ldrb r1, [r0, 0x19] strb r1, [r2] ldr r2, _080FC7F4 ldrb r1, [r0, 0x1A] strb r1, [r2] ldr r2, _080FC7F8 ldrb r1, [r0, 0x1B] strb r1, [r2] ldr r2, _080FC7FC ldrb r1, [r0, 0x1C] strb r1, [r2] ldr r2, _080FC800 ldrb r1, [r0, 0x1D] strb r1, [r2] ldr r2, _080FC804 ldrb r1, [r0, 0x1E] strb r1, [r2] ldrb r0, [r0] subs r0, 0x2 cmp r0, 0x22 bls _080FC7DC b _080FC928 _080FC7DC: lsls r0, 2 ldr r1, _080FC808 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FC7E8: .4byte 0x03005dec _080FC7EC: .4byte 0x03005e00 _080FC7F0: .4byte 0x03005de8 _080FC7F4: .4byte 0x03005dfc _080FC7F8: .4byte 0x03005df8 _080FC7FC: .4byte 0x03005df0 _080FC800: .4byte 0x03005e04 _080FC804: .4byte 0x03005df4 _080FC808: .4byte _080FC80C .align 2, 0 _080FC80C: .4byte _080FC898 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC8F8 .4byte _080FC928 .4byte _080FC89E .4byte _080FC8A4 .4byte _080FC8B8 .4byte _080FC8CA .4byte _080FC928 .4byte _080FC8E0 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC928 .4byte _080FC8E6 .4byte _080FC8C4 .4byte _080FC8EC .4byte _080FC8F2 .4byte _080FC928 .4byte _080FC928 .4byte _080FC904 _080FC898: bl sub_80FCAA4 b _080FC928 _080FC89E: bl sub_80FCB5C b _080FC928 _080FC8A4: bl sub_80FCD54 ldr r0, _080FC8B4 ldrb r0, [r0] bl sub_80FCC18 b _080FC928 .align 2, 0 _080FC8B4: .4byte 0x03005e00 _080FC8B8: bl sub_80FCD54 bl sub_80FCEA4 bl sub_80FCCBC _080FC8C4: bl sub_80FCEA4 b _080FC928 _080FC8CA: bl sub_80FCD54 bl sub_80FD06C bl sub_80FD06C bl sub_80FD114 bl sub_80FCCBC b _080FC928 _080FC8E0: bl sub_80FCF3C b _080FC928 _080FC8E6: bl sub_80FCD54 b _080FC928 _080FC8EC: bl sub_80FD06C b _080FC928 _080FC8F2: bl sub_80FD114 b _080FC928 _080FC8F8: bl sub_80FCAC4 movs r0, 0x3 bl sub_80FC92C b _080FC928 _080FC904: bl sub_80FCD54 bl sub_80FD06C bl sub_80FD114 bl sub_80FCCBC bl sub_80FCB5C bl sub_80FCB5C movs r0, 0x2 bl sub_80FC92C movs r0, 0x4 bl sub_80FC9E4 _080FC928: pop {r0} bx r0 thumb_func_end sub_80FC7A0 thumb_func_start sub_80FC92C sub_80FC92C: @ 80FC92C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r7, r0, 24 movs r2, 0 ldr r0, _080FC9CC mov r8, r0 ldrb r0, [r0] cmp r2, r0 bcs _080FC9BE ldr r1, _080FC9D0 mov r12, r1 ldr r3, _080FC9D4 mov r10, r3 ldr r0, _080FC9D8 mov r9, r0 _080FC952: ldr r1, _080FC9DC ldrb r0, [r1] adds r0, r2 mov r3, r10 ldrb r1, [r3] muls r0, r1 lsls r0, 1 ldr r3, _080FC9E0 ldr r1, [r3] adds r1, r0 mov r3, r9 ldrb r0, [r3] lsls r0, 1 adds r3, r1, r0 movs r4, 0 adds r5, r2, 0x1 mov r0, r12 ldrb r0, [r0] cmp r4, r0 bcs _080FC9B2 movs r6, 0x80 lsls r6, 8 _080FC97E: ldrh r1, [r3] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _080FC9A2 movs r0, 0x1F ands r0, r1 adds r0, r7 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x1F bls _080FC998 movs r2, 0x1F _080FC998: lsls r0, r2, 10 lsls r1, r2, 5 orrs r0, r1 orrs r0, r2 strh r0, [r3] _080FC9A2: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r3, 0x2 mov r1, r12 ldrb r1, [r1] cmp r4, r1 bcc _080FC97E _080FC9B2: lsls r0, r5, 24 lsrs r2, r0, 24 mov r3, r8 ldrb r3, [r3] cmp r2, r3 bcc _080FC952 _080FC9BE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FC9CC: .4byte 0x03005df0 _080FC9D0: .4byte 0x03005df8 _080FC9D4: .4byte 0x03005e04 _080FC9D8: .4byte 0x03005de8 _080FC9DC: .4byte 0x03005dfc _080FC9E0: .4byte 0x03005dec thumb_func_end sub_80FC92C thumb_func_start sub_80FC9E4 sub_80FC9E4: @ 80FC9E4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r2, 0 ldr r0, _080FCA8C ldrb r0, [r0] cmp r2, r0 bcs _080FCA7C ldr r1, _080FCA90 mov r10, r1 _080FCA02: ldr r3, _080FCA94 ldrb r0, [r3] adds r0, r2 ldr r3, _080FCA98 ldrb r1, [r3] muls r0, r1 lsls r0, 1 ldr r3, _080FCA9C ldr r1, [r3] adds r1, r0 ldr r3, _080FCAA0 ldrb r0, [r3] lsls r0, 1 adds r3, r1, r0 movs r5, 0 adds r7, r2, 0x1 mov r0, r10 ldrb r0, [r0] cmp r5, r0 bcs _080FCA70 movs r1, 0x80 lsls r1, 8 mov r9, r1 movs r0, 0x1F mov r12, r0 mov r1, r8 subs r6, r0, r1 _080FCA38: ldrh r1, [r3] mov r0, r9 ands r0, r1 cmp r0, 0 bne _080FCA60 movs r4, 0x1F mov r2, r12 ands r2, r1 cmp r2, r6 ble _080FCA56 mov r1, r8 lsrs r0, r1, 1 subs r0, r4, r0 lsls r0, 24 lsrs r2, r0, 24 _080FCA56: lsls r0, r2, 10 lsls r1, r2, 5 orrs r0, r1 orrs r0, r2 strh r0, [r3] _080FCA60: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r3, 0x2 mov r0, r10 ldrb r0, [r0] cmp r5, r0 bcc _080FCA38 _080FCA70: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r1, _080FCA8C ldrb r1, [r1] cmp r2, r1 bcc _080FCA02 _080FCA7C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FCA8C: .4byte 0x03005df0 _080FCA90: .4byte 0x03005df8 _080FCA94: .4byte 0x03005dfc _080FCA98: .4byte 0x03005e04 _080FCA9C: .4byte 0x03005dec _080FCAA0: .4byte 0x03005de8 thumb_func_end sub_80FC9E4 thumb_func_start sub_80FCAA4 sub_80FCAA4: @ 80FCAA4 push {r4,r5,lr} movs r4, 0 ldr r5, _080FCAC0 _080FCAAA: lsls r0, r4, 16 lsrs r0, 16 bl sub_80FD1C8 adds r4, 0x1 cmp r4, r5 bls _080FCAAA pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FCAC0: .4byte 0x00000c7f thumb_func_end sub_80FCAA4 thumb_func_start sub_80FCAC4 sub_80FCAC4: @ 80FCAC4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080FCB44 ldrb r0, [r0] cmp r2, r0 bcs _080FCB36 ldr r0, _080FCB48 mov r8, r0 ldr r3, _080FCB4C _080FCADC: ldr r0, _080FCB50 ldrb r1, [r0] adds r1, r2 ldr r0, _080FCB54 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r4, r8 ldr r1, [r4] adds r1, r0 ldr r0, _080FCB58 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 adds r6, r2, 0x1 ldrb r0, [r3] cmp r5, r0 bcs _080FCB2A movs r0, 0x80 lsls r0, 8 adds r7, r0, 0 _080FCB08: ldrh r0, [r4] ands r0, r7 cmp r0, 0 bne _080FCB1C adds r0, r4, 0 str r3, [sp] bl sub_80FD39C strh r0, [r4] ldr r3, [sp] _080FCB1C: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldrb r0, [r3] cmp r5, r0 bcc _080FCB08 _080FCB2A: lsls r0, r6, 24 lsrs r2, r0, 24 ldr r0, _080FCB44 ldrb r0, [r0] cmp r2, r0 bcc _080FCADC _080FCB36: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FCB44: .4byte 0x03005df0 _080FCB48: .4byte 0x03005dec _080FCB4C: .4byte 0x03005df8 _080FCB50: .4byte 0x03005dfc _080FCB54: .4byte 0x03005e04 _080FCB58: .4byte 0x03005de8 thumb_func_end sub_80FCAC4 thumb_func_start sub_80FCB5C sub_80FCB5C: @ 80FCB5C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r2, 0 ldr r0, _080FCC00 ldrb r0, [r0] cmp r2, r0 bcs _080FCBF2 ldr r0, _080FCC04 mov r8, r0 ldr r3, _080FCC08 _080FCB74: ldr r0, _080FCC0C ldrb r1, [r0] ldrb r0, [r3] muls r0, r1 lsls r0, 1 mov r4, r8 ldr r1, [r4] adds r1, r0 ldr r0, _080FCC10 ldrb r0, [r0] adds r0, r2 lsls r0, 1 adds r4, r1, r0 ldrh r1, [r4] mov r0, sp strh r1, [r0] movs r5, 0x1 ldrb r0, [r3] lsls r0, 1 adds r4, r0 ldr r0, _080FCC14 ldrb r0, [r0] subs r0, 0x1 adds r7, r2, 0x1 cmp r5, r0 bge _080FCBE6 ldr r6, _080FCC08 _080FCBAA: ldrh r0, [r4] movs r2, 0x80 lsls r2, 8 adds r1, r2, 0 ands r0, r1 cmp r0, 0 bne _080FCBD0 ldrb r2, [r6] lsls r2, 1 adds r2, r4, r2 mov r0, sp adds r1, r4, 0 str r3, [sp, 0x4] bl sub_80FD68C strh r0, [r4] mov r1, sp strh r0, [r1] ldr r3, [sp, 0x4] _080FCBD0: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r6] lsls r0, 1 adds r4, r0 ldr r0, _080FCC14 ldrb r0, [r0] subs r0, 0x1 cmp r5, r0 blt _080FCBAA _080FCBE6: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r0, _080FCC00 ldrb r0, [r0] cmp r2, r0 bcc _080FCB74 _080FCBF2: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FCC00: .4byte 0x03005df8 _080FCC04: .4byte 0x03005dec _080FCC08: .4byte 0x03005e04 _080FCC0C: .4byte 0x03005dfc _080FCC10: .4byte 0x03005de8 _080FCC14: .4byte 0x03005df0 thumb_func_end sub_80FCB5C thumb_func_start sub_80FCC18 sub_80FCC18: @ 80FCC18 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r2, 0 ldr r0, _080FCCA4 ldrb r0, [r0] cmp r2, r0 bcs _080FCC94 ldr r0, _080FCCA8 mov r9, r0 ldr r3, _080FCCAC _080FCC38: ldr r0, _080FCCB0 ldrb r1, [r0] adds r1, r2 ldr r0, _080FCCB4 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r4, r9 ldr r1, [r4] adds r1, r0 ldr r0, _080FCCB8 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 adds r6, r2, 0x1 ldrb r0, [r3] cmp r5, r0 bcs _080FCC88 movs r0, 0x80 lsls r0, 8 adds r7, r0, 0 _080FCC64: ldrh r0, [r4] ands r0, r7 cmp r0, 0 bne _080FCC7A adds r0, r4, 0 mov r1, r8 str r3, [sp] bl sub_80FD3D0 strh r0, [r4] ldr r3, [sp] _080FCC7A: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldrb r0, [r3] cmp r5, r0 bcc _080FCC64 _080FCC88: lsls r0, r6, 24 lsrs r2, r0, 24 ldr r0, _080FCCA4 ldrb r0, [r0] cmp r2, r0 bcc _080FCC38 _080FCC94: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FCCA4: .4byte 0x03005df0 _080FCCA8: .4byte 0x03005dec _080FCCAC: .4byte 0x03005df8 _080FCCB0: .4byte 0x03005dfc _080FCCB4: .4byte 0x03005e04 _080FCCB8: .4byte 0x03005de8 thumb_func_end sub_80FCC18 thumb_func_start sub_80FCCBC sub_80FCCBC: @ 80FCCBC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080FCD3C ldrb r0, [r0] cmp r2, r0 bcs _080FCD2E ldr r0, _080FCD40 mov r8, r0 ldr r3, _080FCD44 _080FCCD4: ldr r0, _080FCD48 ldrb r1, [r0] adds r1, r2 ldr r0, _080FCD4C ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r4, r8 ldr r1, [r4] adds r1, r0 ldr r0, _080FCD50 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 adds r6, r2, 0x1 ldrb r0, [r3] cmp r5, r0 bcs _080FCD22 movs r0, 0x80 lsls r0, 8 adds r7, r0, 0 _080FCD00: ldrh r0, [r4] ands r0, r7 cmp r0, 0 bne _080FCD14 adds r0, r4, 0 str r3, [sp] bl sub_80FD4DC strh r0, [r4] ldr r3, [sp] _080FCD14: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldrb r0, [r3] cmp r5, r0 bcc _080FCD00 _080FCD22: lsls r0, r6, 24 lsrs r2, r0, 24 ldr r0, _080FCD3C ldrb r0, [r0] cmp r2, r0 bcc _080FCCD4 _080FCD2E: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FCD3C: .4byte 0x03005df0 _080FCD40: .4byte 0x03005dec _080FCD44: .4byte 0x03005df8 _080FCD48: .4byte 0x03005dfc _080FCD4C: .4byte 0x03005e04 _080FCD50: .4byte 0x03005de8 thumb_func_end sub_80FCCBC thumb_func_start sub_80FCD54 sub_80FCD54: @ 80FCD54 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r7, 0 ldr r0, _080FCE8C ldrb r0, [r0] cmp r7, r0 bcs _080FCDE0 ldr r0, _080FCE90 mov r8, r0 _080FCD6A: ldr r0, _080FCE94 ldrb r1, [r0] adds r1, r7 ldr r0, _080FCE98 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r2, r8 ldr r1, [r2] adds r1, r0 ldr r0, _080FCE9C ldrb r0, [r0] lsls r0, 1 adds r5, r1, r0 adds r4, r5, 0x2 adds r0, r5, 0 adds r1, r4, 0 bl sub_80FD50C strh r0, [r5] movs r6, 0x1 adds r5, r4, 0 ldr r0, _080FCEA0 ldrb r0, [r0] subs r0, 0x1 adds r7, 0x1 cmp r6, r0 bge _080FCDCA _080FCDA2: adds r4, r5, 0x2 adds r0, r5, 0 adds r1, r4, 0 bl sub_80FD50C strh r0, [r5] subs r1, r5, 0x2 adds r0, r5, 0 bl sub_80FD50C strh r0, [r5] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r5, r4, 0 ldr r0, _080FCEA0 ldrb r0, [r0] subs r0, 0x1 cmp r6, r0 blt _080FCDA2 _080FCDCA: subs r1, r5, 0x2 adds r0, r5, 0 bl sub_80FD50C strh r0, [r5] lsls r0, r7, 24 lsrs r7, r0, 24 ldr r0, _080FCE8C ldrb r0, [r0] cmp r7, r0 bcc _080FCD6A _080FCDE0: movs r6, 0 ldr r0, _080FCEA0 ldrb r0, [r0] cmp r6, r0 bcs _080FCE80 ldr r3, _080FCE90 mov r9, r3 ldr r0, _080FCE98 mov r8, r0 _080FCDF2: ldr r0, _080FCE94 ldrb r0, [r0] mov r2, r8 ldrb r1, [r2] muls r0, r1 lsls r0, 1 mov r3, r9 ldr r2, [r3] adds r2, r0 ldr r0, _080FCE9C ldrb r0, [r0] adds r0, r6 lsls r0, 1 adds r5, r2, r0 lsls r1, 1 adds r1, r5, r1 adds r0, r5, 0 bl sub_80FD50C strh r0, [r5] movs r7, 0x1 mov r1, r8 ldrb r0, [r1] lsls r0, 1 adds r5, r0 ldr r0, _080FCE8C ldrb r0, [r0] subs r0, 0x1 adds r6, 0x1 cmp r7, r0 bge _080FCE64 ldr r4, _080FCE98 _080FCE32: ldrb r1, [r4] lsls r1, 1 adds r1, r5, r1 adds r0, r5, 0 bl sub_80FD50C strh r0, [r5] ldrb r1, [r4] lsls r1, 1 subs r1, r5, r1 adds r0, r5, 0 bl sub_80FD50C strh r0, [r5] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r4] lsls r0, 1 adds r5, r0 ldr r0, _080FCE8C ldrb r0, [r0] subs r0, 0x1 cmp r7, r0 blt _080FCE32 _080FCE64: mov r2, r8 ldrb r1, [r2] lsls r1, 1 subs r1, r5, r1 adds r0, r5, 0 bl sub_80FD50C strh r0, [r5] lsls r0, r6, 24 lsrs r6, r0, 24 ldr r0, _080FCEA0 ldrb r0, [r0] cmp r6, r0 bcc _080FCDF2 _080FCE80: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FCE8C: .4byte 0x03005df0 _080FCE90: .4byte 0x03005dec _080FCE94: .4byte 0x03005dfc _080FCE98: .4byte 0x03005e04 _080FCE9C: .4byte 0x03005de8 _080FCEA0: .4byte 0x03005df8 thumb_func_end sub_80FCD54 thumb_func_start sub_80FCEA4 sub_80FCEA4: @ 80FCEA4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080FCF24 ldrb r0, [r0] cmp r2, r0 bcs _080FCF16 ldr r0, _080FCF28 mov r8, r0 ldr r3, _080FCF2C _080FCEBC: ldr r0, _080FCF30 ldrb r1, [r0] adds r1, r2 ldr r0, _080FCF34 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r4, r8 ldr r1, [r4] adds r1, r0 ldr r0, _080FCF38 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 adds r6, r2, 0x1 ldrb r0, [r3] cmp r5, r0 bcs _080FCF0A movs r0, 0x80 lsls r0, 8 adds r7, r0, 0 _080FCEE8: ldrh r0, [r4] ands r0, r7 cmp r0, 0 bne _080FCEFC adds r0, r4, 0 str r3, [sp] bl sub_80FD53C strh r0, [r4] ldr r3, [sp] _080FCEFC: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldrb r0, [r3] cmp r5, r0 bcc _080FCEE8 _080FCF0A: lsls r0, r6, 24 lsrs r2, r0, 24 ldr r0, _080FCF24 ldrb r0, [r0] cmp r2, r0 bcc _080FCEBC _080FCF16: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FCF24: .4byte 0x03005df0 _080FCF28: .4byte 0x03005dec _080FCF2C: .4byte 0x03005df8 _080FCF30: .4byte 0x03005dfc _080FCF34: .4byte 0x03005e04 _080FCF38: .4byte 0x03005de8 thumb_func_end sub_80FCEA4 thumb_func_start sub_80FCF3C sub_80FCF3C: @ 80FCF3C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r0, _080FD068 ldr r4, [r0] movs r6, 0 movs r0, 0x80 lsls r0, 8 adds r5, r0, 0 _080FCF54: movs r7, 0 _080FCF56: ldrh r0, [r4] ands r0, r5 cmp r0, 0 bne _080FCF66 adds r0, r4, 0 bl sub_80FD53C strh r0, [r4] _080FCF66: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r4, 0x2 cmp r7, 0x3F bls _080FCF56 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3F bls _080FCF54 movs r7, 0 ldr r1, _080FD068 mov r10, r1 mov r3, sp movs r2, 0x80 lsls r2, 8 mov r9, r2 _080FCF8A: lsls r0, r7, 1 mov r2, r10 ldr r1, [r2] adds r4, r1, r0 ldrh r1, [r4] strh r1, [r3] mov r1, r9 strh r1, [r4] movs r6, 0x1 adds r4, 0x80 adds r5, r0, 0 _080FCFA0: ldrh r0, [r4] movs r2, 0x80 lsls r2, 8 ands r0, r2 cmp r0, 0 bne _080FCFC0 adds r2, r4, 0 adds r2, 0x80 mov r0, sp adds r1, r4, 0 str r3, [sp, 0x4] bl sub_80FD7AC strh r0, [r4] ldr r3, [sp, 0x4] strh r0, [r3] _080FCFC0: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r4, 0x80 cmp r6, 0x3E bls _080FCFA0 mov r0, r9 strh r0, [r4] mov r1, r10 ldr r0, [r1] adds r4, r0, r5 ldrh r0, [r4] strh r0, [r3] mov r2, r9 strh r2, [r4] movs r6, 0x1 adds r4, 0x80 movs r0, 0x80 lsls r0, 8 mov r8, r0 _080FCFE8: ldrh r0, [r4] mov r1, r8 ands r0, r1 adds r5, r4, 0 adds r5, 0x80 cmp r0, 0 bne _080FD008 mov r0, sp adds r1, r4, 0 adds r2, r5, 0 str r3, [sp, 0x4] bl sub_80FD7AC strh r0, [r4] ldr r3, [sp, 0x4] strh r0, [r3] _080FD008: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r4, r5, 0 cmp r6, 0x3E bls _080FCFE8 mov r2, r9 strh r2, [r4] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x3F bls _080FCF8A ldr r0, _080FD068 ldr r4, [r0] movs r6, 0 movs r0, 0x80 lsls r0, 8 mov r8, r0 _080FD02E: movs r7, 0 adds r5, r6, 0x1 _080FD032: ldrh r0, [r4] mov r1, r8 ands r0, r1 cmp r0, 0 bne _080FD044 adds r0, r4, 0 bl sub_80FD53C strh r0, [r4] _080FD044: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r4, 0x2 cmp r7, 0x3F bls _080FD032 lsls r0, r5, 24 lsrs r6, r0, 24 cmp r6, 0x3F bls _080FD02E add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FD068: .4byte 0x03005dec thumb_func_end sub_80FCF3C thumb_func_start sub_80FD06C sub_80FD06C: @ 80FD06C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080FD0FC ldrb r0, [r0] cmp r2, r0 bcs _080FD0EE ldr r0, _080FD100 mov r8, r0 _080FD082: ldr r0, _080FD104 ldrb r1, [r0] adds r1, r2 ldr r0, _080FD108 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080FD10C ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 ldrh r1, [r4] mov r0, sp strh r1, [r0] movs r5, 0x1 adds r4, 0x2 ldr r0, _080FD110 ldrb r0, [r0] subs r0, 0x1 adds r6, r2, 0x1 cmp r5, r0 bge _080FD0E2 movs r0, 0x80 lsls r0, 8 adds r7, r0, 0 _080FD0BA: ldrh r0, [r4] ands r0, r7 cmp r0, 0 bne _080FD0D0 mov r0, sp adds r1, r4, 0 bl sub_80FD568 strh r0, [r4] mov r1, sp strh r0, [r1] _080FD0D0: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldr r0, _080FD110 ldrb r0, [r0] subs r0, 0x1 cmp r5, r0 blt _080FD0BA _080FD0E2: lsls r0, r6, 24 lsrs r2, r0, 24 ldr r0, _080FD0FC ldrb r0, [r0] cmp r2, r0 bcc _080FD082 _080FD0EE: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FD0FC: .4byte 0x03005df0 _080FD100: .4byte 0x03005dec _080FD104: .4byte 0x03005dfc _080FD108: .4byte 0x03005e04 _080FD10C: .4byte 0x03005de8 _080FD110: .4byte 0x03005df8 thumb_func_end sub_80FD06C thumb_func_start sub_80FD114 sub_80FD114: @ 80FD114 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r2, 0 ldr r0, _080FD1B0 ldrb r0, [r0] cmp r2, r0 bcs _080FD1A2 ldr r0, _080FD1B4 mov r8, r0 ldr r7, _080FD1B8 _080FD12C: ldr r0, _080FD1BC ldrb r1, [r0] ldrb r0, [r7] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080FD1C0 ldrb r0, [r0] adds r0, r2 lsls r0, 1 adds r4, r1, r0 ldrh r1, [r4] mov r0, sp strh r1, [r0] movs r5, 0x1 ldrb r0, [r7] lsls r0, 1 adds r4, r0 ldr r0, _080FD1C4 ldrb r0, [r0] subs r0, 0x1 adds r6, r2, 0x1 cmp r5, r0 bge _080FD196 movs r0, 0x80 lsls r0, 8 adds r2, r0, 0 _080FD166: ldrh r0, [r4] ands r0, r2 cmp r0, 0 bne _080FD180 mov r0, sp adds r1, r4, 0 str r2, [sp, 0x4] bl sub_80FD568 strh r0, [r4] mov r1, sp strh r0, [r1] ldr r2, [sp, 0x4] _080FD180: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r7] lsls r0, 1 adds r4, r0 ldr r0, _080FD1C4 ldrb r0, [r0] subs r0, 0x1 cmp r5, r0 blt _080FD166 _080FD196: lsls r0, r6, 24 lsrs r2, r0, 24 ldr r0, _080FD1B0 ldrb r0, [r0] cmp r2, r0 bcc _080FD12C _080FD1A2: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FD1B0: .4byte 0x03005df8 _080FD1B4: .4byte 0x03005dec _080FD1B8: .4byte 0x03005e04 _080FD1BC: .4byte 0x03005dfc _080FD1C0: .4byte 0x03005de8 _080FD1C4: .4byte 0x03005df0 thumb_func_end sub_80FD114 thumb_func_start sub_80FD1C8 sub_80FD1C8: @ 80FD1C8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 lsls r0, 16 lsrs r0, 16 mov r10, r0 mov r2, sp ldr r3, _080FD234 lsls r1, r0, 1 add r1, r10 adds r0, r1, r3 ldrb r0, [r0] strb r0, [r2] adds r0, r3, 0x1 adds r0, r1, r0 ldrb r0, [r0] strb r0, [r2, 0x1] mov r5, sp adds r0, r3, 0x2 adds r1, r0 ldrb r4, [r1] lsls r2, r4, 24 lsrs r1, r2, 27 movs r0, 0x7 ands r1, r0 strh r1, [r5, 0x2] lsrs r2, 25 mov r9, r2 movs r0, 0x3 ands r2, r0 mov r9, r2 movs r5, 0x1 ands r5, r4 movs r4, 0x1 mov r8, r4 cmp r8, r1 bcs _080FD27A mov r3, sp _080FD21A: cmp r5, 0 bne _080FD238 mov r0, r8 lsls r2, r0, 2 mov r4, sp adds r1, r4, r2 ldrb r0, [r3] mov r4, r8 subs r0, r4 strb r0, [r1] ldrb r0, [r3, 0x1] add r0, r8 b _080FD24A .align 2, 0 _080FD234: .4byte gUnknown_083E7A50 _080FD238: mov r0, r8 lsls r2, r0, 2 mov r4, sp adds r1, r4, r2 ldrb r0, [r3] adds r0, 0x1 strb r0, [r1] ldrb r0, [r3, 0x1] subs r0, 0x1 _080FD24A: strb r0, [r1, 0x1] add r2, sp ldrb r0, [r2] cmp r0, 0x3F bhi _080FD25A ldrb r0, [r2, 0x1] cmp r0, 0x3F bls _080FD262 _080FD25A: mov r0, r8 subs r0, 0x1 strh r0, [r3, 0x2] b _080FD27A _080FD262: ldrh r0, [r3, 0x2] mov r1, r8 subs r0, r1 strh r0, [r2, 0x2] mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldrh r0, [r3, 0x2] cmp r8, r0 bcc _080FD21A _080FD27A: movs r2, 0 mov r8, r2 mov r0, sp ldrh r0, [r0, 0x2] cmp r8, r0 bcc _080FD288 b _080FD38A _080FD288: movs r3, 0x1F _080FD28A: ldr r1, _080FD2E8 mov r4, r8 lsls r0, r4, 2 mov r2, sp adds r6, r2, r0 ldrb r0, [r6, 0x1] lsls r0, 7 ldr r1, [r1] adds r1, r0 ldrb r0, [r6] lsls r0, 1 adds r2, r1, r0 ldrh r1, [r2] movs r4, 0x80 lsls r4, 8 adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _080FD376 movs r7, 0x1F ands r7, r1 lsls r0, r1, 16 lsrs r5, r0, 21 ands r5, r3 lsrs r4, r0, 26 ands r4, r3 mov r0, r9 cmp r0, 0 blt _080FD36C cmp r0, 0x1 ble _080FD2EC cmp r0, 0x3 bgt _080FD36C ldrh r0, [r6, 0x2] adds r1, r7, r0 lsls r1, 16 lsrs r7, r1, 16 adds r1, r5, r0 lsls r1, 16 lsrs r5, r1, 16 adds r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 cmp r7, 0x1F bls _080FD360 movs r7, 0x1F b _080FD360 .align 2, 0 _080FD2E8: .4byte 0x03005dec _080FD2EC: mov r1, r10 lsls r0, r1, 1 add r0, r10 ldr r1, _080FD320 adds r1, 0x2 adds r0, r1 ldrb r0, [r0] lsrs r0, 3 movs r1, 0x7 ands r0, r1 movs r1, 0x3 str r2, [sp, 0x18] str r3, [sp, 0x1C] bl __umodsi3 lsls r0, 24 lsrs r0, 24 ldr r2, [sp, 0x18] ldr r3, [sp, 0x1C] cmp r0, 0x1 beq _080FD33C cmp r0, 0x1 bgt _080FD324 cmp r0, 0 beq _080FD32A b _080FD36C .align 2, 0 _080FD320: .4byte gUnknown_083E7A50 _080FD324: cmp r0, 0x2 beq _080FD34E b _080FD36C _080FD32A: ldrh r0, [r6, 0x2] cmp r7, r0 bcc _080FD338 subs r0, r7, r0 lsls r0, 16 lsrs r7, r0, 16 b _080FD36C _080FD338: movs r7, 0 b _080FD36C _080FD33C: ldrh r0, [r6, 0x2] cmp r5, r0 bcc _080FD34A subs r0, r5, r0 lsls r0, 16 lsrs r5, r0, 16 b _080FD36C _080FD34A: movs r5, 0 b _080FD36C _080FD34E: ldrh r0, [r6, 0x2] cmp r4, r0 bcc _080FD35C subs r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 b _080FD36C _080FD35C: movs r4, 0 b _080FD36C _080FD360: cmp r5, 0x1F bls _080FD366 movs r5, 0x1F _080FD366: cmp r4, 0x1F bls _080FD36C movs r4, 0x1F _080FD36C: lsls r0, r4, 10 lsls r1, r5, 5 orrs r0, r1 orrs r7, r0 strh r7, [r2] _080FD376: mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, sp ldrh r0, [r0, 0x2] cmp r8, r0 bcs _080FD38A b _080FD28A _080FD38A: add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80FD1C8 thumb_func_start sub_80FD39C sub_80FD39C: @ 80FD39C push {lr} ldrh r1, [r0] movs r3, 0x1F movs r0, 0x1F ands r0, r1 lsls r1, 16 lsrs r2, r1, 21 ands r2, r3 lsrs r1, 26 ands r1, r3 adds r0, r2 adds r0, r1 movs r1, 0x3 bl __divsi3 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 lsls r0, r1, 10 lsls r2, r1, 5 orrs r0, r2 orrs r0, r1 lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_80FD39C thumb_func_start sub_80FD3D0 sub_80FD3D0: @ 80FD3D0 push {r4,lr} lsls r1, 24 lsrs r4, r1, 24 ldrh r0, [r0] movs r2, 0x1F movs r1, 0x1F ands r1, r0 lsls r0, 16 lsrs r3, r0, 21 ands r3, r2 lsrs r0, 26 ands r0, r2 cmp r1, 0x10 bhi _080FD400 cmp r3, 0x10 bhi _080FD400 cmp r0, 0x10 bhi _080FD400 adds r0, r4, 0 bl sub_80FD40C lsls r0, 16 lsrs r0, 16 b _080FD402 _080FD400: ldr r0, _080FD408 _080FD402: pop {r4} pop {r1} bx r1 .align 2, 0 _080FD408: .4byte 0x00007fff thumb_func_end sub_80FD3D0 thumb_func_start sub_80FD40C sub_80FD40C: @ 80FD40C push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 mov r8, r0 movs r6, 0 movs r7, 0 adds r0, r4, 0 movs r1, 0x6 bl __udivsi3 lsls r0, 24 lsrs r0, 24 movs r1, 0x3 bl __umodsi3 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bhi _080FD4C4 lsls r0, 2 ldr r1, _080FD450 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FD450: .4byte _080FD454 .align 2, 0 _080FD454: .4byte _080FD46C .4byte _080FD47C .4byte _080FD48C .4byte _080FD49A .4byte _080FD4A8 .4byte _080FD4B6 _080FD46C: movs r0, 0x15 subs r0, r5 lsls r0, 16 lsrs r6, r0, 16 adds r7, r6, 0 movs r1, 0 mov r8, r1 b _080FD4C4 _080FD47C: movs r7, 0 movs r0, 0x15 subs r0, r5 lsls r0, 16 lsrs r0, 16 mov r8, r0 mov r6, r8 b _080FD4C4 _080FD48C: movs r0, 0x15 subs r0, r5 lsls r0, 16 lsrs r7, r0, 16 movs r6, 0 mov r8, r7 b _080FD4C4 _080FD49A: movs r7, 0 movs r6, 0 movs r0, 0x17 subs r0, r5 lsls r0, 16 lsrs r0, 16 b _080FD4C2 _080FD4A8: movs r0, 0x17 subs r0, r5 lsls r0, 16 lsrs r7, r0, 16 movs r6, 0 mov r8, r6 b _080FD4C4 _080FD4B6: movs r7, 0 movs r0, 0x17 subs r0, r5 lsls r0, 16 lsrs r6, r0, 16 movs r0, 0 _080FD4C2: mov r8, r0 _080FD4C4: lsls r0, r7, 10 lsls r1, r6, 5 orrs r0, r1 mov r1, r8 orrs r1, r0 lsls r0, r1, 16 lsrs r0, 16 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80FD40C thumb_func_start sub_80FD4DC sub_80FD4DC: @ 80FD4DC push {lr} ldrh r0, [r0] movs r2, 0x1F movs r1, 0x1F ands r1, r0 lsls r0, 16 lsrs r3, r0, 21 ands r3, r2 lsrs r0, 26 ands r0, r2 cmp r1, 0x10 bhi _080FD500 cmp r3, 0x10 bhi _080FD500 cmp r0, 0x10 bhi _080FD500 movs r0, 0 b _080FD502 _080FD500: ldr r0, _080FD508 _080FD502: pop {r1} bx r1 .align 2, 0 _080FD508: .4byte 0x00007fff thumb_func_end sub_80FD4DC thumb_func_start sub_80FD50C sub_80FD50C: @ 80FD50C push {r4,lr} adds r4, r0, 0 ldrh r3, [r4] cmp r3, 0 beq _080FD534 movs r2, 0x80 lsls r2, 8 adds r0, r2, 0 ands r0, r3 cmp r0, 0 beq _080FD526 adds r0, r2, 0 b _080FD536 _080FD526: ldrh r1, [r1] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _080FD534 ldrh r0, [r4] b _080FD536 _080FD534: movs r0, 0 _080FD536: pop {r4} pop {r1} bx r1 thumb_func_end sub_80FD50C thumb_func_start sub_80FD53C sub_80FD53C: @ 80FD53C push {r4,lr} ldrh r1, [r0] movs r0, 0x1F movs r3, 0x1F ands r3, r1 lsls r1, 16 lsrs r2, r1, 21 lsrs r1, 26 subs r3, r0, r3 adds r4, r0, 0 bics r4, r2 adds r2, r4, 0 bics r0, r1 lsls r0, 10 lsls r2, 5 orrs r0, r2 orrs r0, r3 lsls r0, 16 lsrs r0, 16 pop {r4} pop {r1} bx r1 thumb_func_end sub_80FD53C thumb_func_start sub_80FD568 sub_80FD568: @ 80FD568 push {r4-r7,lr} sub sp, 0x14 adds r7, r1, 0 ldrh r4, [r0] ldrh r5, [r7] lsls r6, r4, 16 lsls r0, r5, 16 mov r12, r0 cmp r4, r5 beq _080FD5DA mov r2, sp movs r3, 0x1F movs r1, 0x1F adds r0, r1, 0 ands r0, r4 strh r0, [r2] lsrs r0, r6, 21 ands r0, r3 strh r0, [r2, 0x2] lsrs r0, r6, 26 ands r0, r3 strh r0, [r2, 0x4] mov r0, sp ands r1, r5 strh r1, [r0, 0x6] mov r1, sp mov r2, r12 lsrs r0, r2, 21 ands r0, r3 strh r0, [r1, 0x8] lsrs r0, r2, 26 ands r0, r3 strh r0, [r1, 0xA] mov r0, sp ldrh r0, [r0] cmp r0, 0x19 bls _080FD5C2 mov r0, sp ldrh r0, [r0, 0x2] cmp r0, 0x19 bls _080FD5C2 mov r0, sp ldrh r0, [r0, 0x4] cmp r0, 0x19 bhi _080FD5DA _080FD5C2: mov r0, sp ldrh r0, [r0, 0x6] cmp r0, 0x19 bls _080FD5DE mov r0, sp ldrh r0, [r0, 0x8] cmp r0, 0x19 bls _080FD5DE mov r0, sp ldrh r0, [r0, 0xA] cmp r0, 0x19 bls _080FD5DE _080FD5DA: ldrh r0, [r7] b _080FD684 _080FD5DE: movs r4, 0 add r6, sp, 0xC mov r7, sp adds r7, 0x6 adds r5, r6, 0 _080FD5E8: lsls r2, r4, 1 mov r1, sp adds r0, r1, r2 adds r1, r7, r2 ldrh r3, [r0] ldrh r0, [r1] cmp r3, r0 bls _080FD5FE adds r1, r5, r2 subs r0, r3, r0 b _080FD602 _080FD5FE: adds r1, r5, r2 subs r0, r3 _080FD602: strh r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _080FD5E8 adds r1, r6, 0 ldrh r0, [r1, 0x2] ldrh r3, [r1] cmp r3, r0 bcc _080FD628 ldrh r2, [r1, 0x4] cmp r3, r2 bcc _080FD622 adds r2, r3, 0 b _080FD63C _080FD622: cmp r0, r2 bcs _080FD62E b _080FD636 _080FD628: ldrh r2, [r1, 0x4] cmp r0, r2 bcc _080FD632 _080FD62E: ldrh r2, [r1, 0x2] b _080FD63C _080FD632: cmp r2, r3 bcc _080FD63A _080FD636: ldrh r2, [r1, 0x4] b _080FD63C _080FD63A: ldrh r2, [r6] _080FD63C: mov r0, sp ldrh r1, [r0, 0x6] lsrs r0, r2, 1 movs r6, 0x1F subs r6, r0 adds r0, r1, 0 muls r0, r6 movs r1, 0x1F bl __divsi3 adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 mov r0, sp ldrh r0, [r0, 0x8] muls r0, r6 movs r1, 0x1F bl __divsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, sp ldrh r0, [r0, 0xA] muls r0, r6 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r0, 6 lsls r4, 5 orrs r0, r4 orrs r5, r0 lsls r5, 16 lsrs r5, 16 adds r0, r5, 0 _080FD684: add sp, 0x14 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80FD568 thumb_func_start sub_80FD68C sub_80FD68C: @ 80FD68C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r3, r0, 0 mov r10, r1 str r2, [sp] ldrh r1, [r3] mov r0, r10 ldrh r0, [r0] cmp r1, r0 bne _080FD6B4 ldrh r0, [r2] cmp r0, r1 bne _080FD6B4 mov r1, r10 ldrh r0, [r1] b _080FD79C _080FD6B4: mov r2, r10 ldrh r0, [r2] movs r1, 0x1F mov r9, r1 movs r4, 0x1F adds r5, r4, 0 ands r5, r0 lsls r0, 16 lsrs r2, r0, 21 mov r1, r9 ands r1, r2 mov r8, r1 lsrs r0, 26 mov r2, r9 ands r2, r0 str r2, [sp, 0x4] ldrh r2, [r3] adds r0, r4, 0 ands r0, r2 lsls r2, 16 lsrs r1, r2, 21 mov r3, r9 ands r1, r3 adds r0, r1 lsrs r2, 26 ands r2, r3 adds r0, r2 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r7, r0, 16 mov r1, r8 adds r0, r5, r1 ldr r2, [sp, 0x4] adds r0, r2 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r6, r0, 16 ldr r3, [sp] ldrh r1, [r3] ands r4, r1 lsls r1, 16 lsrs r0, r1, 21 mov r2, r9 ands r0, r2 adds r4, r0 lsrs r1, 26 ands r1, r2 adds r4, r1 adds r0, r4, 0 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r1, r0, 16 cmp r7, r6 bne _080FD736 cmp r1, r6 bne _080FD736 mov r3, r10 ldrh r0, [r3] b _080FD79C _080FD736: cmp r7, r6 bls _080FD73E subs r0, r7, r6 b _080FD740 _080FD73E: subs r0, r6, r7 _080FD740: lsls r0, 16 lsrs r2, r0, 16 cmp r1, r6 bls _080FD74C subs r0, r1, r6 b _080FD74E _080FD74C: subs r0, r6, r1 _080FD74E: lsls r0, 16 lsrs r0, 16 cmp r2, r0 bcc _080FD758 adds r0, r2, 0 _080FD758: lsrs r0, 1 movs r4, 0x1F subs r4, r0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 muls r0, r4 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r5, r0, 16 mov r0, r8 muls r0, r4 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r1, [sp, 0x4] adds r0, r1, 0 muls r0, r4 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r0, 6 mov r2, r8 lsls r1, r2, 5 orrs r0, r1 orrs r5, r0 lsls r0, r5, 16 lsrs r0, 16 _080FD79C: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80FD68C thumb_func_start sub_80FD7AC sub_80FD7AC: @ 80FD7AC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r3, r0, 0 mov r10, r1 str r2, [sp] ldrh r1, [r3] mov r0, r10 ldrh r0, [r0] cmp r1, r0 bne _080FD7D4 ldrh r0, [r2] cmp r0, r1 bne _080FD7D4 mov r1, r10 ldrh r0, [r1] b _080FD8BA _080FD7D4: mov r2, r10 ldrh r0, [r2] movs r1, 0x1F mov r9, r1 movs r4, 0x1F adds r5, r4, 0 ands r5, r0 lsls r0, 16 lsrs r2, r0, 21 mov r1, r9 ands r1, r2 mov r8, r1 lsrs r0, 26 mov r2, r9 ands r2, r0 str r2, [sp, 0x4] ldrh r2, [r3] adds r0, r4, 0 ands r0, r2 lsls r2, 16 lsrs r1, r2, 21 mov r3, r9 ands r1, r3 adds r0, r1 lsrs r2, 26 ands r2, r3 adds r0, r2 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r7, r0, 16 mov r1, r8 adds r0, r5, r1 ldr r2, [sp, 0x4] adds r0, r2 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r6, r0, 16 ldr r3, [sp] ldrh r1, [r3] ands r4, r1 lsls r1, 16 lsrs r0, r1, 21 mov r2, r9 ands r0, r2 adds r4, r0 lsrs r1, 26 ands r1, r2 adds r4, r1 adds r0, r4, 0 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r1, r0, 16 cmp r7, r6 bne _080FD856 cmp r1, r6 bne _080FD856 mov r3, r10 ldrh r0, [r3] b _080FD8BA _080FD856: cmp r7, r6 bls _080FD85E subs r0, r7, r6 b _080FD860 _080FD85E: subs r0, r6, r7 _080FD860: lsls r0, 16 lsrs r2, r0, 16 cmp r1, r6 bls _080FD86C subs r0, r1, r6 b _080FD86E _080FD86C: subs r0, r6, r1 _080FD86E: lsls r0, 16 lsrs r0, 16 cmp r2, r0 bcc _080FD878 adds r0, r2, 0 _080FD878: movs r4, 0x1F subs r4, r0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 muls r0, r4 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r5, r0, 16 mov r0, r8 muls r0, r4 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r1, [sp, 0x4] adds r0, r1, 0 muls r0, r4 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r0, 6 mov r2, r8 lsls r1, r2, 5 orrs r0, r1 orrs r5, r0 lsls r0, r5, 16 lsrs r0, 16 _080FD8BA: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80FD7AC thumb_func_start sub_80FD8CC sub_80FD8CC: @ 80FD8CC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC ldrb r1, [r0, 0x1D] lsrs r5, r1, 3 ldrb r1, [r0, 0x1E] lsrs r1, 3 str r1, [sp, 0x8] ldr r1, [r0, 0x4] str r1, [sp] ldr r2, [r0, 0x10] str r2, [sp, 0x4] ldrh r0, [r0, 0x16] cmp r0, 0x2 bne _080FD97C movs r1, 0 ldr r0, [sp, 0x8] cmp r1, r0 bcc _080FD8FA b _080FDA08 _080FD8FA: movs r0, 0 adds r2, r1, 0x1 mov r10, r2 cmp r0, r5 bcs _080FD96E adds r2, r1, 0 muls r2, r5 mov r9, r2 lsls r1, 3 mov r8, r1 _080FD90E: movs r4, 0 lsls r6, r0, 4 adds r7, r0, 0x1 add r0, r9 lsls r0, 6 ldr r1, [sp, 0x4] adds r1, r0 mov r12, r1 _080FD91E: lsls r0, r4, 3 mov r2, r12 adds r3, r2, r0 mov r1, r8 adds r0, r1, r4 lsls r0, 3 muls r0, r5 lsls r0, 1 ldr r2, [sp] adds r0, r2, r0 adds r2, r0, r6 ldrh r0, [r2, 0x2] lsls r0, 8 ldrh r1, [r2] orrs r0, r1 strh r0, [r3] ldrh r0, [r2, 0x6] lsls r0, 8 ldrh r1, [r2, 0x4] orrs r0, r1 strh r0, [r3, 0x2] ldrh r0, [r2, 0xA] lsls r0, 8 ldrh r1, [r2, 0x8] orrs r0, r1 strh r0, [r3, 0x4] ldrh r0, [r2, 0xE] lsls r0, 8 ldrh r1, [r2, 0xC] orrs r0, r1 strh r0, [r3, 0x6] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x7 bls _080FD91E lsls r0, r7, 16 lsrs r0, 16 cmp r0, r5 bcc _080FD90E _080FD96E: mov r1, r10 lsls r0, r1, 16 lsrs r1, r0, 16 ldr r2, [sp, 0x8] cmp r1, r2 bcc _080FD8FA b _080FDA08 _080FD97C: movs r1, 0 ldr r0, [sp, 0x8] cmp r1, r0 bcs _080FDA08 _080FD984: movs r0, 0 adds r2, r1, 0x1 mov r10, r2 cmp r0, r5 bcs _080FD9FC adds r2, r1, 0 muls r2, r5 mov r9, r2 lsls r1, 3 mov r8, r1 _080FD998: movs r4, 0 lsls r6, r0, 4 adds r7, r0, 0x1 add r0, r9 lsls r0, 5 ldr r1, [sp, 0x4] adds r1, r0 mov r12, r1 _080FD9A8: lsls r0, r4, 2 mov r2, r12 adds r3, r2, r0 mov r1, r8 adds r0, r1, r4 lsls r0, 3 muls r0, r5 lsls r0, 1 ldr r2, [sp] adds r0, r2, r0 adds r2, r0, r6 ldrh r1, [r2, 0x2] lsls r1, 4 ldrh r0, [r2] orrs r1, r0 ldrh r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrh r0, [r2, 0x6] lsls r0, 12 orrs r1, r0 strh r1, [r3] ldrh r1, [r2, 0xA] lsls r1, 4 ldrh r0, [r2, 0x8] orrs r1, r0 ldrh r0, [r2, 0xC] lsls r0, 8 orrs r1, r0 ldrh r0, [r2, 0xE] lsls r0, 12 orrs r1, r0 strh r1, [r3, 0x2] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x7 bls _080FD9A8 lsls r0, r7, 16 lsrs r0, 16 cmp r0, r5 bcc _080FD998 _080FD9FC: mov r1, r10 lsls r0, r1, 16 lsrs r1, r0, 16 ldr r2, [sp, 0x8] cmp r1, r2 bcc _080FD984 _080FDA08: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80FD8CC thumb_func_start sub_80FDA18 sub_80FDA18: @ 80FDA18 push {lr} ldr r2, _080FDA68 ldrb r1, [r0, 0x18] lsls r1, 4 strh r1, [r2] ldr r3, _080FDA6C ldrh r2, [r2] lsls r2, 1 ldr r1, [r0, 0x8] adds r1, r2 str r1, [r3] ldr r2, _080FDA70 ldr r1, [r0, 0x4] str r1, [r2] ldr r2, _080FDA74 ldrb r1, [r0, 0x19] strb r1, [r2] ldr r2, _080FDA78 ldrb r1, [r0, 0x1A] strb r1, [r2] ldr r2, _080FDA7C ldrb r1, [r0, 0x1B] strb r1, [r2] ldr r2, _080FDA80 ldrb r1, [r0, 0x1C] strb r1, [r2] ldr r2, _080FDA84 ldrb r1, [r0, 0x1D] strb r1, [r2] ldr r2, _080FDA88 ldrb r1, [r0, 0x1E] strb r1, [r2] ldrh r0, [r0, 0x14] cmp r0, 0x5 bhi _080FDADE lsls r0, 2 ldr r1, _080FDA8C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FDA68: .4byte 0x03005e0c _080FDA6C: .4byte 0x03005e08 _080FDA70: .4byte 0x03005dec _080FDA74: .4byte 0x03005de8 _080FDA78: .4byte 0x03005dfc _080FDA7C: .4byte 0x03005df8 _080FDA80: .4byte 0x03005df0 _080FDA84: .4byte 0x03005e04 _080FDA88: .4byte 0x03005df4 _080FDA8C: .4byte _080FDA90 .align 2, 0 _080FDA90: .4byte _080FDAA8 .4byte _080FDAB0 .4byte _080FDAB8 .4byte _080FDAC2 .4byte _080FDACC .4byte _080FDAD6 _080FDAA8: movs r0, 0 bl sub_80FDC18 b _080FDADE _080FDAB0: movs r0, 0x1 bl sub_80FDC18 b _080FDADE _080FDAB8: bl sub_80FDAE4 bl sub_80FDF88 b _080FDADE _080FDAC2: bl sub_80FDBE4 bl sub_80FDED8 b _080FDADE _080FDACC: bl sub_80FDBA8 bl sub_80FDE28 b _080FDADE _080FDAD6: bl sub_80FDB8C bl sub_80FDD70 _080FDADE: pop {r0} bx r0 thumb_func_end sub_80FDA18 thumb_func_start sub_80FDAE4 sub_80FDAE4: @ 80FDAE4 ldr r2, _080FDB4C ldr r1, [r2] movs r0, 0 strh r0, [r1] ldr r0, [r2] ldr r2, _080FDB50 adds r1, r2, 0 strh r1, [r0, 0x2] ldr r2, _080FDB54 adds r1, r2, 0 strh r1, [r0, 0x4] ldr r2, _080FDB58 adds r1, r2, 0 strh r1, [r0, 0x6] ldr r2, _080FDB5C adds r1, r2, 0 strh r1, [r0, 0x8] ldr r2, _080FDB60 adds r1, r2, 0 strh r1, [r0, 0xA] ldr r2, _080FDB64 adds r1, r2, 0 strh r1, [r0, 0xC] ldr r2, _080FDB68 adds r1, r2, 0 strh r1, [r0, 0xE] ldr r2, _080FDB6C adds r1, r2, 0 strh r1, [r0, 0x10] ldr r2, _080FDB70 adds r1, r2, 0 strh r1, [r0, 0x12] ldr r2, _080FDB74 adds r1, r2, 0 strh r1, [r0, 0x14] ldr r2, _080FDB78 adds r1, r2, 0 strh r1, [r0, 0x16] ldr r2, _080FDB7C adds r1, r2, 0 strh r1, [r0, 0x18] ldr r2, _080FDB80 adds r1, r2, 0 strh r1, [r0, 0x1A] ldr r2, _080FDB84 adds r1, r2, 0 strh r1, [r0, 0x1C] ldr r2, _080FDB88 adds r1, r2, 0 strh r1, [r0, 0x1E] bx lr .align 2, 0 _080FDB4C: .4byte 0x03005e08 _080FDB50: .4byte 0x000018c6 _080FDB54: .4byte 0x000077bd _080FDB58: .4byte 0x00002d6b _080FDB5C: .4byte 0x000018dd _080FDB60: .4byte 0x00001ba6 _080FDB64: .4byte 0x000074c6 _080FDB68: .4byte 0x00001bbd _080FDB6C: .4byte 0x000074dd _080FDB70: .4byte 0x000077a6 _080FDB74: .4byte 0x0000197d _080FDB78: .4byte 0x00001bab _080FDB7C: .4byte 0x00007566 _080FDB80: .4byte 0x00002cdd _080FDB84: .4byte 0x00002fa6 _080FDB88: .4byte 0x000074cb thumb_func_end sub_80FDAE4 thumb_func_start sub_80FDB8C sub_80FDB8C: @ 80FDB8C ldr r2, _080FDBA0 ldr r0, [r2] movs r1, 0 strh r1, [r0] ldr r2, [r2] strh r1, [r2, 0x2] ldr r1, _080FDBA4 adds r0, r1, 0 strh r0, [r2, 0x4] bx lr .align 2, 0 _080FDBA0: .4byte 0x03005e08 _080FDBA4: .4byte 0x00007fff thumb_func_end sub_80FDB8C thumb_func_start sub_80FDBA8 sub_80FDBA8: @ 80FDBA8 push {r4,r5,lr} ldr r1, _080FDBE0 ldr r0, [r1] movs r2, 0 strh r2, [r0] ldr r0, [r1] strh r2, [r0, 0x2] movs r4, 0 adds r5, r1, 0 _080FDBBA: ldr r0, [r5] lsls r2, r4, 1 adds r2, r0 adds r0, r4, 0x2 lsls r3, r0, 1 lsls r1, r0, 11 lsls r0, 6 orrs r1, r0 orrs r1, r3 strh r1, [r2, 0x4] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xD bls _080FDBBA pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FDBE0: .4byte 0x03005e08 thumb_func_end sub_80FDBA8 thumb_func_start sub_80FDBE4 sub_80FDBE4: @ 80FDBE4 push {r4,lr} ldr r2, _080FDC14 ldr r1, [r2] movs r0, 0 strh r0, [r1] movs r3, 0 adds r4, r2, 0 _080FDBF2: ldr r0, [r4] lsls r2, r3, 1 adds r2, r0 lsls r0, r3, 10 lsls r1, r3, 5 orrs r0, r1 orrs r0, r3 strh r0, [r2, 0x2] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x1F bls _080FDBF2 pop {r4} pop {r0} bx r0 .align 2, 0 _080FDC14: .4byte 0x03005e08 thumb_func_end sub_80FDBE4 thumb_func_start sub_80FDC18 sub_80FDC18: @ 80FDC18 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 movs r1, 0xDF mov r9, r1 cmp r0, 0 bne _080FDC30 movs r2, 0xFF mov r9, r2 _080FDC30: movs r6, 0 ldr r3, _080FDCB4 mov r12, r3 mov r0, r9 lsls r4, r0, 1 ldr r5, _080FDCB8 cmp r6, r9 bcs _080FDC54 movs r2, 0 _080FDC42: ldr r0, [r3] lsls r1, r6, 1 adds r1, r0 strh r2, [r1] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, r9 bcc _080FDC42 _080FDC54: mov r1, r12 ldr r0, [r1] adds r0, r4, r0 ldr r2, _080FDCBC adds r1, r2, 0 strh r1, [r0] movs r3, 0 ldrb r5, [r5] cmp r3, r5 bcs _080FDD58 _080FDC68: ldr r2, _080FDCC0 ldr r0, _080FDCC4 ldrb r1, [r0] adds r1, r3 ldr r0, _080FDCC8 ldrb r0, [r0] muls r0, r1 lsls r0, 1 ldr r1, [r2] adds r1, r0 ldr r0, _080FDCCC ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r6, 0 ldr r0, _080FDCD0 adds r2, r0, 0 adds r3, 0x1 mov r10, r3 ldrb r3, [r2] cmp r6, r3 bcs _080FDD4A ldr r0, _080FDCD4 mov r8, r0 _080FDC98: ldrh r0, [r4] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 ands r0, r1 cmp r0, 0 beq _080FDCD8 mov r1, r8 ldrh r0, [r1] strh r0, [r4] adds r6, 0x1 adds r7, r4, 0x2 b _080FDD3E .align 2, 0 _080FDCB4: .4byte 0x03005e08 _080FDCB8: .4byte 0x03005df0 _080FDCBC: .4byte 0x00003def _080FDCC0: .4byte 0x03005dec _080FDCC4: .4byte 0x03005dfc _080FDCC8: .4byte 0x03005e04 _080FDCCC: .4byte 0x03005de8 _080FDCD0: .4byte 0x03005df8 _080FDCD4: .4byte 0x03005e0c _080FDCD8: adds r0, r4, 0 bl sub_80FE038 lsls r0, 16 lsrs r5, r0, 16 movs r3, 0x1 adds r6, 0x1 adds r7, r4, 0x2 cmp r3, r9 bcs _080FDD34 ldr r0, _080FDD04 ldr r2, [r0] ldrh r1, [r2, 0x2] mov r12, r0 cmp r1, 0 bne _080FDD08 strh r5, [r2, 0x2] mov r2, r8 ldrh r0, [r2] adds r0, 0x1 b _080FDD32 .align 2, 0 _080FDD04: .4byte 0x03005e08 _080FDD08: mov r2, r12 ldr r1, [r2] lsls r0, r3, 1 adds r0, r1 ldrh r0, [r0] cmp r0, r5 beq _080FDD2C adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, r9 bcs _080FDD34 lsls r0, r3, 1 adds r1, r0, r1 ldrh r0, [r1] cmp r0, 0 bne _080FDD08 strh r5, [r1] _080FDD2C: mov r1, r8 ldrh r0, [r1] adds r0, r3 _080FDD32: strh r0, [r4] _080FDD34: ldr r2, _080FDD68 cmp r3, r9 bne _080FDD3E mov r3, r9 strh r3, [r4] _080FDD3E: lsls r0, r6, 24 lsrs r6, r0, 24 adds r4, r7, 0 ldrb r0, [r2] cmp r6, r0 bcc _080FDC98 _080FDD4A: mov r1, r10 lsls r0, r1, 24 lsrs r3, r0, 24 ldr r0, _080FDD6C ldrb r0, [r0] cmp r3, r0 bcc _080FDC68 _080FDD58: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FDD68: .4byte 0x03005df8 _080FDD6C: .4byte 0x03005df0 thumb_func_end sub_80FDC18 thumb_func_start sub_80FDD70 sub_80FDD70: @ 80FDD70 push {r4-r7,lr} mov r7, r8 push {r7} movs r2, 0 ldr r0, _080FDDC4 ldrb r0, [r0] cmp r2, r0 bcs _080FDE14 ldr r0, _080FDDC8 mov r8, r0 _080FDD84: ldr r0, _080FDDCC ldrb r1, [r0] adds r1, r2 ldr r0, _080FDDD0 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080FDDD4 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r6, 0 ldr r0, _080FDDD8 adds r3, r0, 0 adds r7, r2, 0x1 ldrb r0, [r3] cmp r6, r0 bcs _080FDE08 ldr r5, _080FDDDC _080FDDB0: ldrh r0, [r4] movs r2, 0x80 lsls r2, 8 adds r1, r2, 0 ands r0, r1 cmp r0, 0 beq _080FDDE0 ldrh r0, [r5] strh r0, [r4] b _080FDDFA .align 2, 0 _080FDDC4: .4byte 0x03005df0 _080FDDC8: .4byte 0x03005dec _080FDDCC: .4byte 0x03005dfc _080FDDD0: .4byte 0x03005e04 _080FDDD4: .4byte 0x03005de8 _080FDDD8: .4byte 0x03005df8 _080FDDDC: .4byte 0x03005e0c _080FDDE0: adds r0, r4, 0 bl sub_80FD4DC lsls r0, 16 cmp r0, 0 bne _080FDDF2 ldrh r0, [r5] adds r0, 0x1 b _080FDDF6 _080FDDF2: ldrh r0, [r5] adds r0, 0x2 _080FDDF6: strh r0, [r4] ldr r3, _080FDE20 _080FDDFA: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r4, 0x2 ldrb r0, [r3] cmp r6, r0 bcc _080FDDB0 _080FDE08: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r0, _080FDE24 ldrb r0, [r0] cmp r2, r0 bcc _080FDD84 _080FDE14: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FDE20: .4byte 0x03005df8 _080FDE24: .4byte 0x03005df0 thumb_func_end sub_80FDD70 thumb_func_start sub_80FDE28 sub_80FDE28: @ 80FDE28 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080FDE7C ldrb r0, [r0] cmp r2, r0 bcs _080FDEC4 ldr r0, _080FDE80 mov r8, r0 _080FDE3E: ldr r0, _080FDE84 ldrb r1, [r0] adds r1, r2 ldr r0, _080FDE88 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080FDE8C ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 ldr r0, _080FDE90 adds r7, r2, 0x1 ldrb r0, [r0] cmp r5, r0 bcs _080FDEB8 ldr r6, _080FDE94 movs r0, 0x80 lsls r0, 8 adds r2, r0, 0 _080FDE6E: ldrh r0, [r4] ands r0, r2 cmp r0, 0 beq _080FDE98 ldrh r0, [r6] strh r0, [r4] b _080FDEA8 .align 2, 0 _080FDE7C: .4byte 0x03005df0 _080FDE80: .4byte 0x03005dec _080FDE84: .4byte 0x03005dfc _080FDE88: .4byte 0x03005e04 _080FDE8C: .4byte 0x03005de8 _080FDE90: .4byte 0x03005df8 _080FDE94: .4byte 0x03005e0c _080FDE98: adds r0, r4, 0 str r2, [sp] bl sub_80FE17C ldrh r1, [r6] adds r0, r1 strh r0, [r4] ldr r2, [sp] _080FDEA8: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldr r0, _080FDED0 ldrb r0, [r0] cmp r5, r0 bcc _080FDE6E _080FDEB8: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r0, _080FDED4 ldrb r0, [r0] cmp r2, r0 bcc _080FDE3E _080FDEC4: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FDED0: .4byte 0x03005df8 _080FDED4: .4byte 0x03005df0 thumb_func_end sub_80FDE28 thumb_func_start sub_80FDED8 sub_80FDED8: @ 80FDED8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080FDF2C ldrb r0, [r0] cmp r2, r0 bcs _080FDF74 ldr r0, _080FDF30 mov r8, r0 _080FDEEE: ldr r0, _080FDF34 ldrb r1, [r0] adds r1, r2 ldr r0, _080FDF38 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080FDF3C ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 ldr r0, _080FDF40 adds r7, r2, 0x1 ldrb r0, [r0] cmp r5, r0 bcs _080FDF68 ldr r6, _080FDF44 movs r0, 0x80 lsls r0, 8 adds r2, r0, 0 _080FDF1E: ldrh r0, [r4] ands r0, r2 cmp r0, 0 beq _080FDF48 ldrh r0, [r6] strh r0, [r4] b _080FDF58 .align 2, 0 _080FDF2C: .4byte 0x03005df0 _080FDF30: .4byte 0x03005dec _080FDF34: .4byte 0x03005dfc _080FDF38: .4byte 0x03005e04 _080FDF3C: .4byte 0x03005de8 _080FDF40: .4byte 0x03005df8 _080FDF44: .4byte 0x03005e0c _080FDF48: adds r0, r4, 0 str r2, [sp] bl sub_80FE1B0 ldrh r1, [r6] adds r0, r1 strh r0, [r4] ldr r2, [sp] _080FDF58: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldr r0, _080FDF80 ldrb r0, [r0] cmp r5, r0 bcc _080FDF1E _080FDF68: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r0, _080FDF84 ldrb r0, [r0] cmp r2, r0 bcc _080FDEEE _080FDF74: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FDF80: .4byte 0x03005df8 _080FDF84: .4byte 0x03005df0 thumb_func_end sub_80FDED8 thumb_func_start sub_80FDF88 sub_80FDF88: @ 80FDF88 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080FDFDC ldrb r0, [r0] cmp r2, r0 bcs _080FE024 ldr r0, _080FDFE0 mov r8, r0 _080FDF9E: ldr r0, _080FDFE4 ldrb r1, [r0] adds r1, r2 ldr r0, _080FDFE8 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080FDFEC ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 ldr r0, _080FDFF0 adds r7, r2, 0x1 ldrb r0, [r0] cmp r5, r0 bcs _080FE018 ldr r6, _080FDFF4 movs r0, 0x80 lsls r0, 8 adds r2, r0, 0 _080FDFCE: ldrh r0, [r4] ands r0, r2 cmp r0, 0 beq _080FDFF8 ldrh r0, [r6] strh r0, [r4] b _080FE008 .align 2, 0 _080FDFDC: .4byte 0x03005df0 _080FDFE0: .4byte 0x03005dec _080FDFE4: .4byte 0x03005dfc _080FDFE8: .4byte 0x03005e04 _080FDFEC: .4byte 0x03005de8 _080FDFF0: .4byte 0x03005df8 _080FDFF4: .4byte 0x03005e0c _080FDFF8: adds r0, r4, 0 str r2, [sp] bl sub_80FE0AC ldrh r1, [r6] adds r0, r1 strh r0, [r4] ldr r2, [sp] _080FE008: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldr r0, _080FE030 ldrb r0, [r0] cmp r5, r0 bcc _080FDFCE _080FE018: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r0, _080FE034 ldrb r0, [r0] cmp r2, r0 bcc _080FDF9E _080FE024: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FE030: .4byte 0x03005df8 _080FE034: .4byte 0x03005df0 thumb_func_end sub_80FDF88 thumb_func_start sub_80FE038 sub_80FE038: @ 80FE038 push {r4,lr} ldrh r0, [r0] movs r1, 0x1F movs r4, 0x1F ands r4, r0 lsls r0, 16 lsrs r3, r0, 21 ands r3, r1 lsrs r2, r0, 26 ands r2, r1 movs r1, 0x3 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _080FE05C movs r0, 0x1C ands r0, r4 adds r4, r0, 0x4 _080FE05C: adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080FE06A movs r0, 0x1C ands r0, r3 adds r3, r0, 0x4 _080FE06A: adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _080FE078 movs r0, 0x1C ands r0, r2 adds r2, r0, 0x4 _080FE078: cmp r4, 0x5 bhi _080FE07E movs r4, 0x6 _080FE07E: cmp r4, 0x1E bls _080FE084 movs r4, 0x1E _080FE084: cmp r3, 0x5 bhi _080FE08A movs r3, 0x6 _080FE08A: cmp r3, 0x1E bls _080FE090 movs r3, 0x1E _080FE090: cmp r2, 0x5 bhi _080FE096 movs r2, 0x6 _080FE096: cmp r2, 0x1E bls _080FE09C movs r2, 0x1E _080FE09C: lsls r0, r2, 10 lsls r1, r3, 5 orrs r0, r1 orrs r4, r0 adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80FE038 thumb_func_start sub_80FE0AC sub_80FE0AC: @ 80FE0AC push {lr} ldrh r0, [r0] movs r1, 0x1F movs r3, 0x1F ands r3, r0 lsls r0, 16 lsrs r2, r0, 21 ands r2, r1 lsrs r0, 26 ands r0, r1 cmp r3, 0xB bhi _080FE0D0 cmp r2, 0xA bhi _080FE0D0 cmp r0, 0xA bhi _080FE0D0 movs r0, 0x1 b _080FE176 _080FE0D0: cmp r3, 0x13 bls _080FE0F4 cmp r2, 0x13 bls _080FE0DC cmp r0, 0x13 bhi _080FE100 _080FE0DC: cmp r3, 0x13 bls _080FE0F4 cmp r2, 0x13 bls _080FE0EA cmp r0, 0xE bhi _080FE100 b _080FE138 _080FE0EA: cmp r0, 0x13 bls _080FE0F4 cmp r2, 0xE bhi _080FE100 b _080FE114 _080FE0F4: cmp r2, 0x13 bls _080FE104 cmp r0, 0x13 bls _080FE104 cmp r3, 0xE bls _080FE15C _080FE100: movs r0, 0x2 b _080FE176 _080FE104: cmp r3, 0x13 bls _080FE128 cmp r2, 0xB bls _080FE11C cmp r0, 0xB bls _080FE118 cmp r2, r0 bcs _080FE138 _080FE114: movs r0, 0x8 b _080FE176 _080FE118: movs r0, 0xA b _080FE176 _080FE11C: cmp r0, 0xB bls _080FE124 movs r0, 0xD b _080FE176 _080FE124: movs r0, 0x4 b _080FE176 _080FE128: cmp r2, 0x13 bls _080FE14C cmp r3, 0xB bls _080FE140 cmp r0, 0xB bls _080FE13C cmp r3, r0 bcc _080FE15C _080FE138: movs r0, 0x7 b _080FE176 _080FE13C: movs r0, 0xB b _080FE176 _080FE140: cmp r0, 0xB bls _080FE148 movs r0, 0xE b _080FE176 _080FE148: movs r0, 0x5 b _080FE176 _080FE14C: cmp r0, 0x13 bls _080FE174 cmp r3, 0xB bls _080FE160 cmp r2, 0xB bls _080FE168 cmp r3, r2 bcs _080FE114 _080FE15C: movs r0, 0x9 b _080FE176 _080FE160: cmp r2, 0xB bls _080FE168 movs r0, 0xC b _080FE176 _080FE168: cmp r0, 0xB bls _080FE170 movs r0, 0xF b _080FE176 _080FE170: movs r0, 0x6 b _080FE176 _080FE174: movs r0, 0x3 _080FE176: pop {r1} bx r1 thumb_func_end sub_80FE0AC thumb_func_start sub_80FE17C sub_80FE17C: @ 80FE17C push {lr} ldrh r1, [r0] movs r3, 0x1F movs r0, 0x1F ands r0, r1 lsls r1, 16 lsrs r2, r1, 21 ands r2, r3 lsrs r1, 26 ands r1, r3 adds r0, r2 adds r0, r1 movs r1, 0x3 bl __divsi3 movs r1, 0x1E ands r0, r1 lsls r0, 16 cmp r0, 0 beq _080FE1A8 lsrs r0, 17 b _080FE1AA _080FE1A8: movs r0, 0x1 _080FE1AA: pop {r1} bx r1 thumb_func_end sub_80FE17C thumb_func_start sub_80FE1B0 sub_80FE1B0: @ 80FE1B0 push {lr} ldrh r1, [r0] movs r3, 0x1F movs r0, 0x1F ands r0, r1 lsls r1, 16 lsrs r2, r1, 21 ands r2, r3 lsrs r1, 26 ands r1, r3 adds r0, r2 adds r0, r1 movs r1, 0x3 bl __divsi3 lsls r0, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_80FE1B0 thumb_func_start sub_80FE1DC sub_80FE1DC: @ 80FE1DC push {lr} sub sp, 0x8 bl sub_80FE2B4 movs r0, 0 movs r1, 0 movs r2, 0xA movs r3, 0x9 bl DrawDefaultWindow ldr r3, _080FE218 movs r0, 0x1 movs r1, 0x1 movs r2, 0x4 bl PrintStringArray ldr r0, _080FE21C ldrb r0, [r0] str r0, [sp] movs r0, 0x9 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0x4 bl InitMenu add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080FE218: .4byte gUnknown_083EC604 _080FE21C: .4byte 0x020388d4 thumb_func_end sub_80FE1DC thumb_func_start sub_80FE220 sub_80FE220: @ 80FE220 push {lr} ldr r1, _080FE238 movs r0, 0 strb r0, [r1] bl script_env_2_enable bl sub_80FE1DC bl sub_80FE394 pop {r0} bx r0 .align 2, 0 _080FE238: .4byte 0x020388d4 thumb_func_end sub_80FE220 thumb_func_start sub_80FE23C sub_80FE23C: @ 80FE23C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80FE220 ldr r1, _080FE25C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080FE260 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080FE25C: .4byte 0x03004b20 _080FE260: .4byte sub_80FE2EC thumb_func_end sub_80FE23C thumb_func_start sub_80FE264 sub_80FE264: @ 80FE264 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80FE23C ldr r1, _080FE284 ldr r0, _080FE288 str r0, [r1] adds r0, 0x10 str r0, [r1, 0x4] movs r2, 0 movs r0, 0x10 strb r0, [r1, 0x8] strb r2, [r1, 0x9] pop {r0} bx r0 .align 2, 0 _080FE284: .4byte 0x0201f000 _080FE288: .4byte 0x0202714e thumb_func_end sub_80FE264 thumb_func_start sub_80FE28C sub_80FE28C: @ 80FE28C push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80FE23C ldr r1, _080FE2AC ldr r0, _080FE2B0 str r0, [r1] adds r0, 0xC str r0, [r1, 0x4] movs r0, 0xC strb r0, [r1, 0x8] movs r0, 0x1 strb r0, [r1, 0x9] pop {r0} bx r0 .align 2, 0 _080FE2AC: .4byte 0x0201f000 _080FE2B0: .4byte 0x02027dbc thumb_func_end sub_80FE28C thumb_func_start sub_80FE2B4 sub_80FE2B4: @ 80FE2B4 push {lr} sub sp, 0x8 ldr r1, _080FE2E8 mov r0, sp movs r2, 0x6 bl memcpy add r0, sp, 0x4 movs r1, 0xDF movs r2, 0x2 bl LoadPalette mov r0, sp adds r0, 0x2 movs r1, 0xD1 movs r2, 0x2 bl LoadPalette mov r0, sp movs r1, 0xD8 movs r2, 0x2 bl LoadPalette add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080FE2E8: .4byte gUnknown_083EC654 thumb_func_end sub_80FE2B4 thumb_func_start sub_80FE2EC sub_80FE2EC: @ 80FE2EC push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 adds r7, r6, 0 ldr r0, _080FE368 ldrb r1, [r0, 0x7] movs r5, 0x80 adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _080FE38C ldr r4, _080FE36C ldrh r1, [r4, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080FE324 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 bl MoveMenuCursor ldr r1, _080FE370 strb r0, [r1] bl sub_80FE394 _080FE324: ldrh r1, [r4, 0x2E] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080FE342 movs r0, 0x5 bl audio_play movs r0, 0x1 bl MoveMenuCursor ldr r1, _080FE370 strb r0, [r1] bl sub_80FE394 _080FE342: ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080FE378 movs r0, 0x5 bl audio_play ldr r1, _080FE374 ldr r0, _080FE370 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r1, [r0] adds r0, r6, 0 bl _call_via_r1 b _080FE38C .align 2, 0 _080FE368: .4byte 0x0202f388 _080FE36C: .4byte 0x03001770 _080FE370: .4byte 0x020388d4 _080FE374: .4byte gUnknown_083EC604 _080FE378: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080FE38C movs r0, 0x5 bl audio_play adds r0, r7, 0 bl gpu_pal_decompress_alloc_tag_and_upload _080FE38C: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80FE2EC thumb_func_start sub_80FE394 sub_80FE394: @ 80FE394 push {lr} movs r0, 0x2 movs r1, 0xF movs r2, 0x1B movs r3, 0x12 bl sub_8071EBC ldr r1, _080FE3BC ldr r0, _080FE3C0 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x2 movs r2, 0xF bl Print pop {r0} bx r0 .align 2, 0 _080FE3BC: .4byte gUnknown_083EC624 _080FE3C0: .4byte 0x020388d4 thumb_func_end sub_80FE394 thumb_func_start gpu_pal_decompress_alloc_tag_and_upload gpu_pal_decompress_alloc_tag_and_upload: @ 80FE3C4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0xA movs r3, 0x9 bl Reset movs r0, 0x2 movs r1, 0xF movs r2, 0x1B movs r3, 0x12 bl sub_8071EBC movs r0, 0x6 bl FreeSpritePaletteByTag ldr r0, _080FE404 ldrb r0, [r0, 0x9] cmp r0, 0 bne _080FE40C ldr r0, _080FE408 bl script_env_1_execute_new_script adds r0, r4, 0 bl DestroyTask b _080FE412 .align 2, 0 _080FE404: .4byte 0x0201f000 _080FE408: .4byte gUnknown_0815F399 _080FE40C: adds r0, r4, 0 bl sub_8139E24 _080FE412: pop {r4} pop {r0} bx r0 thumb_func_end gpu_pal_decompress_alloc_tag_and_upload thumb_func_start sub_80FE418 sub_80FE418: @ 80FE418 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80FE5AC pop {r0} bx r0 thumb_func_end sub_80FE418 thumb_func_start sub_80FE428 sub_80FE428: @ 80FE428 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080FE464 ldrb r0, [r0] str r0, [sp] movs r0, 0x9 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0x4 bl InitMenu bl sub_80FE394 ldr r1, _080FE468 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080FE46C str r1, [r0] add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080FE464: .4byte 0x020388d4 _080FE468: .4byte 0x03004b20 _080FE46C: .4byte sub_80FE2EC thumb_func_end sub_80FE428 thumb_func_start sub_80FE470 sub_80FE470: @ 80FE470 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r4, r0, 0 mov r8, r1 mov r9, r2 adds r5, r3, 0 lsls r4, 24 lsrs r4, 24 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r5, 24 lsrs r5, 24 bl sub_8072CBC adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldr r7, _080FE51C movs r0, 0xFC strb r0, [r7] movs r0, 0x5 mov r10, r0 strb r0, [r7, 0x1] strb r5, [r7, 0x2] adds r7, 0x3 ldr r1, _080FE520 lsls r0, r4, 2 adds r0, r1 ldr r1, [r0] adds r0, r7, 0 bl StringCopy adds r7, r0, 0 adds r0, r4, 0 bl sub_8134194 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r7, 0 movs r2, 0x56 movs r3, 0x1 bl sub_8072C14 adds r7, r0, 0 movs r0, 0xBA strb r0, [r7] adds r7, 0x1 ldr r0, _080FE524 lsls r4, 3 adds r4, r0 ldrb r1, [r4, 0x4] adds r0, r7, 0 movs r2, 0x68 movs r3, 0x1 bl sub_8072C14 adds r7, r0, 0 movs r0, 0xFC strb r0, [r7] mov r0, r10 strb r0, [r7, 0x1] strb r6, [r7, 0x2] movs r0, 0xFF strb r0, [r7, 0x3] ldr r0, _080FE51C mov r1, r8 mov r2, r9 bl Print pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FE51C: .4byte 0x020234cc _080FE520: .4byte gUnknown_083EC5E4 _080FE524: .4byte gUnknown_08402E40 thumb_func_end sub_80FE470 thumb_func_start sub_80FE528 sub_80FE528: @ 80FE528 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0xE movs r3, 0x13 bl DrawDefaultWindow movs r5, 0 ldr r1, _080FE574 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r4, r0, r1 _080FE548: ldr r0, _080FE578 ldrb r0, [r0, 0x9] cmp r0, 0x1 bne _080FE57C movs r1, 0x1E ldrsh r0, [r4, r1] cmp r0, 0 bne _080FE57C cmp r5, 0x6 beq _080FE57C cmp r5, 0x7 beq _080FE57C lsls r2, r5, 1 adds r2, 0x1 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 movs r1, 0x1 movs r3, 0xD bl sub_80FE470 b _080FE58E .align 2, 0 _080FE574: .4byte 0x03004b20 _080FE578: .4byte 0x0201f000 _080FE57C: lsls r2, r5, 1 adds r2, 0x1 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 movs r1, 0x1 movs r3, 0xFF bl sub_80FE470 _080FE58E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x7 bls _080FE548 ldr r0, _080FE5A8 movs r1, 0x1 movs r2, 0x11 bl Print pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FE5A8: .4byte gUnknown_0840E640 thumb_func_end sub_80FE528 thumb_func_start sub_80FE5AC sub_80FE5AC: @ 80FE5AC push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset adds r0, r4, 0 bl sub_80FE528 ldr r0, _080FE5F8 ldrb r0, [r0] str r0, [sp] movs r0, 0xD str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0x9 bl InitMenu ldr r1, _080FE5FC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080FE600 str r1, [r0] add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080FE5F8: .4byte 0x020388f6 _080FE5FC: .4byte 0x03004b20 _080FE600: .4byte sub_80FE604 thumb_func_end sub_80FE5AC thumb_func_start sub_80FE604 sub_80FE604: @ 80FE604 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r4, r5, 0 ldr r0, _080FE638 ldrb r1, [r0, 0x7] movs r3, 0x80 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080FE61C b _080FE720 _080FE61C: ldr r2, _080FE63C ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080FE640 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 bl MoveMenuCursor b _080FE720 .align 2, 0 _080FE638: .4byte 0x0202f388 _080FE63C: .4byte 0x03001770 _080FE640: adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080FE656 movs r0, 0x5 bl audio_play movs r0, 0x1 bl MoveMenuCursor b _080FE720 _080FE656: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080FE70C movs r0, 0x5 bl audio_play bl GetMenuCursorPos ldr r4, _080FE6C0 strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, 0x8 beq _080FE704 ldrb r0, [r4] bl sub_8134194 ldr r1, _080FE6C4 strb r0, [r1] lsls r0, 24 cmp r0, 0 beq _080FE6DC ldrb r0, [r4] bl sub_8134104 ldr r2, _080FE6C8 ldr r1, _080FE6CC ldrb r0, [r4] lsls r0, 3 adds r0, r1 ldr r0, [r0] str r0, [r2] adds r0, r5, 0 bl sub_80FEF50 bl sub_80F944C ldr r0, _080FE6D0 movs r1, 0x8 bl sub_80F9480 bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed ldr r1, _080FE6D4 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080FE6D8 str r1, [r0] b _080FE720 .align 2, 0 _080FE6C0: .4byte 0x020388f6 _080FE6C4: .4byte 0x020388d5 _080FE6C8: .4byte 0x020388d0 _080FE6CC: .4byte gUnknown_08402E40 _080FE6D0: .4byte 0x020388f7 _080FE6D4: .4byte 0x03004b20 _080FE6D8: .4byte sub_80FE868 _080FE6DC: bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0xE movs r3, 0x13 bl Reset ldr r1, _080FE6FC ldr r2, _080FE700 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField b _080FE720 .align 2, 0 _080FE6FC: .4byte gUnknown_0840FA64 _080FE700: .4byte sub_80FE418 _080FE704: adds r0, r5, 0 bl sub_80FE728 b _080FE720 _080FE70C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080FE720 movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_80FE728 _080FE720: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80FE604 thumb_func_start sub_80FE728 sub_80FE728: @ 80FE728 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080FE748 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r1, 0x1E ldrsh r0, [r0, r1] cmp r0, 0x3 beq _080FE74C adds r0, r2, 0 bl sub_80FE758 b _080FE752 .align 2, 0 _080FE748: .4byte 0x03004b20 _080FE74C: adds r0, r2, 0 bl sub_8109DAC _080FE752: pop {r0} bx r0 thumb_func_end sub_80FE728 thumb_func_start sub_80FE758 sub_80FE758: @ 80FE758 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0xE movs r3, 0x13 bl Reset ldr r1, _080FE794 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r5, r0, r1 movs r1, 0x1E ldrsh r0, [r5, r1] cmp r0, 0x2 beq _080FE79C bl sub_80FE1DC bl sub_8071FFC bl sub_80FE394 ldr r0, _080FE798 str r0, [r5] b _080FE7A2 .align 2, 0 _080FE794: .4byte 0x03004b20 _080FE798: .4byte sub_80FE2EC _080FE79C: adds r0, r4, 0 bl sub_80B3068 _080FE7A2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80FE758 thumb_func_start sub_80FE7A8 sub_80FE7A8: @ 80FE7A8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080FE7CC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r3, 0 movs r2, 0x3 strh r2, [r1, 0x1E] ldr r1, _080FE7D0 strb r3, [r1] bl sub_80FE5AC pop {r0} bx r0 .align 2, 0 _080FE7CC: .4byte 0x03004b20 _080FE7D0: .4byte 0x020388f6 thumb_func_end sub_80FE7A8 thumb_func_start sub_80FE7D4 sub_80FE7D4: @ 80FE7D4 push {lr} lsls r1, 24 ldr r2, _080FE7E8 lsrs r1, 22 adds r1, r2 ldr r1, [r1] bl StringCopy pop {r0} bx r0 .align 2, 0 _080FE7E8: .4byte gUnknown_083EC5E4 thumb_func_end sub_80FE7D4 thumb_func_start sub_80FE7EC sub_80FE7EC: @ 80FE7EC push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset adds r0, r4, 0 bl sub_80FEC94 ldr r0, _080FE858 ldrb r0, [r0] bl sub_80FECB8 movs r0, 0xF movs r1, 0xC movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow ldr r4, _080FE85C ldr r0, _080FE860 ldrb r0, [r0] ldrb r1, [r4] adds r0, r1 lsls r0, 24 lsrs r0, 24 bl sub_80FECE0 ldr r0, _080FE864 ldrb r3, [r0] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 ldrb r0, [r4] str r0, [sp] movs r0, 0xD str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x2 bl InitMenu add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080FE858: .4byte 0x020388f6 _080FE85C: .4byte 0x020388f2 _080FE860: .4byte 0x020388f4 _080FE864: .4byte 0x020388f3 thumb_func_end sub_80FE7EC thumb_func_start sub_80FE868 sub_80FE868: @ 80FE868 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_80FE7EC ldr r1, _080FE88C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080FE890 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080FE88C: .4byte 0x03004b20 _080FE890: .4byte sub_80FE948 thumb_func_end sub_80FE868 thumb_func_start sub_80FE894 sub_80FE894: @ 80FE894 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r7, r2, 24 movs r0, 0 mov r10, r0 ldr r6, _080FE920 ldrb r1, [r6] ldr r4, _080FE924 ldrb r0, [r4] adds r1, r0 ldr r2, _080FE928 mov r9, r2 ldrb r0, [r2] cmp r1, r0 bne _080FE8C8 movs r1, 0x1 mov r10, r1 _080FE8C8: movs r0, 0x5 bl audio_play lsls r0, r5, 24 asrs r0, 24 cmp r0, 0 beq _080FE8DC bl MoveMenuCursor strb r0, [r6] _080FE8DC: cmp r7, 0 beq _080FE8EE ldrb r0, [r4] adds r0, r7 strb r0, [r4] mov r0, r8 movs r1, 0x1 bl sub_80FEABC _080FE8EE: ldrb r0, [r6] ldrb r1, [r4] adds r0, r1 mov r2, r9 ldrb r2, [r2] cmp r0, r2 beq _080FE92C mov r0, r10 cmp r0, 0 beq _080FE90E movs r0, 0xF movs r1, 0xC movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow _080FE90E: ldrb r0, [r4] ldrb r6, [r6] adds r0, r6 lsls r0, 24 lsrs r0, 24 bl sub_80FECE0 b _080FE938 .align 2, 0 _080FE920: .4byte 0x020388f2 _080FE924: .4byte 0x020388f4 _080FE928: .4byte 0x020388d5 _080FE92C: movs r0, 0xF movs r1, 0xC movs r2, 0x1D movs r3, 0x13 bl Reset _080FE938: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80FE894 thumb_func_start sub_80FE948 sub_80FE948: @ 80FE948 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080FE980 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080FE95C b _080FEAAC _080FE95C: ldr r0, _080FE984 ldrh r1, [r0, 0x30] movs r0, 0xF0 ands r0, r1 cmp r0, 0x40 bne _080FE9A0 ldr r0, _080FE988 ldrb r0, [r0] cmp r0, 0 beq _080FE98C movs r1, 0x1 negs r1, r1 adds r0, r4, 0 movs r2, 0 bl sub_80FE894 b _080FE9A0 .align 2, 0 _080FE980: .4byte 0x0202f388 _080FE984: .4byte 0x03001770 _080FE988: .4byte 0x020388f2 _080FE98C: ldr r0, _080FE9C4 ldrb r0, [r0] cmp r0, 0 beq _080FE9A0 movs r2, 0x1 negs r2, r2 adds r0, r4, 0 movs r1, 0 bl sub_80FE894 _080FE9A0: ldr r0, _080FE9C8 ldrh r1, [r0, 0x30] movs r0, 0xF0 ands r0, r1 cmp r0, 0x80 bne _080FE9EE ldr r2, _080FE9CC ldr r1, _080FE9D0 ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 beq _080FE9D4 adds r0, r4, 0 movs r1, 0x1 movs r2, 0 bl sub_80FE894 b _080FE9EE .align 2, 0 _080FE9C4: .4byte 0x020388f4 _080FE9C8: .4byte 0x03001770 _080FE9CC: .4byte 0x020388f2 _080FE9D0: .4byte 0x020388f3 _080FE9D4: ldr r0, _080FEA38 ldrb r0, [r0] ldrb r1, [r2] adds r0, r1 ldr r1, _080FEA3C ldrb r1, [r1] cmp r0, r1 beq _080FE9EE adds r0, r4, 0 movs r1, 0 movs r2, 0x1 bl sub_80FE894 _080FE9EE: ldr r0, _080FEA40 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080FEA7C bl sub_8072DEC movs r0, 0x5 bl audio_play ldr r2, _080FEA44 ldr r1, _080FEA48 ldr r0, _080FEA38 ldrb r0, [r0] ldrb r1, [r1] adds r0, r1 strb r0, [r2] ldr r1, _080FEA3C lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bne _080FEA54 ldr r1, _080FEA4C ldr r2, _080FEA50 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r2 movs r2, 0x1E ldrsh r0, [r0, r2] lsls r0, 3 adds r1, 0x4 adds r0, r1 b _080FEA68 .align 2, 0 _080FEA38: .4byte 0x020388f4 _080FEA3C: .4byte 0x020388d5 _080FEA40: .4byte 0x03001770 _080FEA44: .4byte 0x020388f5 _080FEA48: .4byte 0x020388f2 _080FEA4C: .4byte gUnknown_083EC634 _080FEA50: .4byte 0x03004b20 _080FEA54: ldr r2, _080FEA74 ldr r1, _080FEA78 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x1E ldrsh r0, [r0, r1] lsls r0, 3 adds r0, r2 _080FEA68: ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 b _080FEAAC .align 2, 0 _080FEA74: .4byte gUnknown_083EC634 _080FEA78: .4byte 0x03004b20 _080FEA7C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080FEAAC bl sub_8072DEC movs r0, 0x5 bl audio_play ldr r1, _080FEAB4 ldr r2, _080FEAB8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r2 movs r2, 0x1E ldrsh r0, [r0, r2] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 _080FEAAC: pop {r4} pop {r0} bx r0 .align 2, 0 _080FEAB4: .4byte gUnknown_083EC634 _080FEAB8: .4byte 0x03004b20 thumb_func_end sub_80FE948 thumb_func_start sub_80FEABC sub_80FEABC: @ 80FEABC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r4, _080FEB58 ldrb r0, [r4] cmp r0, 0 bne _080FEADE movs r0, 0 bl SetBgTilemapBuffer ldrb r0, [r4] cmp r0, 0 beq _080FEAE8 _080FEADE: movs r0, 0 movs r1, 0x3C movs r2, 0x8 bl sub_80F953C _080FEAE8: ldr r5, _080FEB58 ldrb r0, [r5] adds r0, 0x7 ldr r4, _080FEB5C ldrb r1, [r4] cmp r0, r1 bne _080FEAFC movs r0, 0x1 bl SetBgTilemapBuffer _080FEAFC: ldrb r0, [r5] adds r0, 0x7 ldrb r4, [r4] cmp r0, r4 bge _080FEB10 movs r0, 0x1 movs r1, 0x3C movs r2, 0x98 bl sub_80F953C _080FEB10: ldrb r4, [r5] adds r0, r4, 0 adds r0, 0x8 cmp r4, r0 blt _080FEB1C b _080FEC7E _080FEB1C: adds r7, r5, 0 _080FEB1E: ldrb r1, [r7] subs r1, r4, r1 lsls r0, r1, 25 movs r2, 0x80 lsls r2, 18 adds r0, r2 lsrs r6, r0, 24 ldr r0, _080FEB60 adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _080FEB3C adds r0, r1, 0 bl sub_80F94F8 _080FEB3C: ldr r0, _080FEB5C ldrb r0, [r0] cmp r4, r0 bne _080FEB68 lsls r2, r6, 3 movs r0, 0x1 str r0, [sp] ldr r0, _080FEB64 movs r1, 0x8 movs r3, 0x68 bl sub_8072A18 b _080FEC7E .align 2, 0 _080FEB58: .4byte 0x020388f4 _080FEB5C: .4byte 0x020388d5 _080FEB60: .4byte 0x020388f7 _080FEB64: .4byte gUnknown_0840E640 _080FEB68: ldr r0, _080FEBC0 ldr r1, [r0] adds r2, r1, r4 ldrb r1, [r2] mov r12, r0 adds r5, r4, 0x1 cmp r1, 0 bne _080FEB7A b _080FEC70 _080FEB7A: ldr r0, _080FEBC4 ldrb r5, [r0, 0x9] cmp r5, 0x1 bne _080FEBDC ldr r0, _080FEBC8 ldrb r0, [r0] cmp r0, 0x6 beq _080FEBDC cmp r0, 0x7 beq _080FEBDC ldr r0, _080FEBCC mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r3, 0x1E ldrsh r0, [r1, r3] cmp r0, 0 bne _080FEBDC ldrb r1, [r2] lsls r1, 5 ldr r0, _080FEBD0 adds r1, r0 ldr r0, _080FEBD4 bl StringCopy lsls r2, r6, 3 str r5, [sp] ldr r0, _080FEBD8 movs r1, 0x8 movs r3, 0x68 bl sub_8072A18 b _080FEBF8 .align 2, 0 _080FEBC0: .4byte 0x020388d0 _080FEBC4: .4byte 0x0201f000 _080FEBC8: .4byte 0x020388f6 _080FEBCC: .4byte 0x03004b20 _080FEBD0: .4byte gDecorations + 0x1 _080FEBD4: .4byte 0x020231cc _080FEBD8: .4byte gUnknown_083EC65A _080FEBDC: mov r1, r12 ldr r0, [r1] adds r0, r4 ldrb r0, [r0] lsls r0, 5 ldr r1, _080FEC00 adds r0, r1 lsls r2, r6, 3 movs r1, 0x1 str r1, [sp] movs r1, 0x8 movs r3, 0x68 bl sub_8072A18 _080FEBF8: movs r1, 0 adds r5, r4, 0x1 b _080FEC0A .align 2, 0 _080FEC00: .4byte gDecorations + 0x1 _080FEC04: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 _080FEC0A: cmp r1, 0xF bhi _080FEC34 ldr r0, _080FEC38 adds r0, r1, r0 ldrb r0, [r0] subs r0, 0x1 cmp r0, r4 bne _080FEC04 ldrb r3, [r7] subs r3, r4, r3 ldr r1, _080FEC3C adds r1, r3, r1 lsls r3, 20 movs r2, 0xC0 lsls r2, 13 adds r3, r2 asrs r3, 16 movs r0, 0x4 movs r2, 0x6C bl sub_80F94A4 _080FEC34: movs r1, 0 b _080FEC46 .align 2, 0 _080FEC38: .4byte 0x020388d6 _080FEC3C: .4byte 0x020388f7 _080FEC40: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 _080FEC46: cmp r1, 0xB bhi _080FEC70 ldr r0, _080FEC8C adds r0, r1, r0 ldrb r0, [r0] subs r0, 0x1 cmp r0, r4 bne _080FEC40 ldrb r3, [r7] subs r3, r4, r3 ldr r1, _080FEC90 adds r1, r3, r1 lsls r3, 20 movs r0, 0xC0 lsls r0, 13 adds r3, r0 asrs r3, 16 movs r0, 0x5 movs r2, 0x6C bl sub_80F94A4 _080FEC70: lsls r0, r5, 16 lsrs r4, r0, 16 ldrb r0, [r7] adds r0, 0x8 cmp r4, r0 bge _080FEC7E b _080FEB1E _080FEC7E: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FEC8C: .4byte 0x020388e6 _080FEC90: .4byte 0x020388f7 thumb_func_end sub_80FEABC thumb_func_start sub_80FEC94 sub_80FEC94: @ 80FEC94 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0xE movs r3, 0x13 bl DrawDefaultWindow adds r0, r4, 0 movs r1, 0 bl sub_80FEABC pop {r4} pop {r0} bx r0 thumb_func_end sub_80FEC94 thumb_func_start sub_80FECB8 sub_80FECB8: @ 80FECB8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0xF movs r1, 0 movs r2, 0x1D movs r3, 0x3 bl DrawDefaultWindow adds r0, r4, 0 movs r1, 0x10 movs r2, 0x1 movs r3, 0xFF bl sub_80FE470 pop {r4} pop {r0} bx r0 thumb_func_end sub_80FECB8 thumb_func_start sub_80FECE0 sub_80FECE0: @ 80FECE0 push {lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 ldr r2, _080FED14 ldr r1, _080FED18 ldr r1, [r1] adds r1, r0 ldrb r0, [r1] lsls r0, 5 adds r2, 0x18 adds r0, r2 ldr r0, [r0] movs r1, 0x30 str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] movs r1, 0x80 movs r2, 0x68 movs r3, 0x68 bl sub_8072AB0 add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080FED14: .4byte gDecorations _080FED18: .4byte 0x020388d0 thumb_func_end sub_80FECE0 thumb_func_start sub_80FED1C sub_80FED1C: @ 80FED1C push {lr} movs r0, 0xF movs r1, 0 movs r2, 0x1D movs r3, 0x3 bl Reset movs r0, 0xF movs r1, 0xC movs r2, 0x1D movs r3, 0x13 bl Reset pop {r0} bx r0 thumb_func_end sub_80FED1C thumb_func_start sub_80FED3C sub_80FED3C: @ 80FED3C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed ldr r1, _080FED5C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080FED60 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080FED5C: .4byte 0x03004b20 _080FED60: .4byte sub_80FE868 thumb_func_end sub_80FED3C thumb_func_start sub_80FED64 sub_80FED64: @ 80FED64 push {lr} lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 ldr r3, _080FED7C _080FED6E: adds r0, r1, r3 ldrb r0, [r0] cmp r0, r2 bne _080FED80 movs r0, 0x1 b _080FED8C .align 2, 0 _080FED7C: .4byte 0x020388d6 _080FED80: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bls _080FED6E movs r0, 0 _080FED8C: pop {r1} bx r1 thumb_func_end sub_80FED64 thumb_func_start sub_80FED90 sub_80FED90: @ 80FED90 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r6, 0 movs r3, 0 ldr r4, _080FEE30 movs r1, 0 ldr r2, _080FEE34 _080FEDA4: adds r0, r3, r4 strb r1, [r0] cmp r3, 0xB bhi _080FEDB0 adds r0, r3, r2 strb r1, [r0] _080FEDB0: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0xF bls _080FEDA4 movs r3, 0 ldr r0, _080FEE38 mov r10, r0 ldr r1, _080FEE3C mov r9, r1 ldr r2, _080FEE40 mov r8, r2 _080FEDC8: mov r1, r10 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 beq _080FEE5A movs r1, 0 mov r2, r8 ldrb r0, [r2] lsls r0, 3 add r0, r9 ldrb r0, [r0, 0x4] cmp r1, r0 bcs _080FEE5A ldr r0, _080FEE38 adds r0, r3 mov r12, r0 ldr r7, _080FEE30 _080FEDEA: ldr r0, _080FEE44 ldr r0, [r0] adds r0, r1 ldrb r0, [r0] adds r4, r1, 0x1 mov r1, r12 ldrb r1, [r1] cmp r0, r1 bne _080FEE48 movs r1, 0 cmp r1, r6 bcs _080FEE1E ldrb r0, [r7] cmp r0, r4 beq _080FEE1E ldr r5, _080FEE30 adds r2, r4, 0 _080FEE0C: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r6 bcs _080FEE1E adds r0, r1, r5 ldrb r0, [r0] cmp r0, r2 bne _080FEE0C _080FEE1E: cmp r1, r6 bne _080FEE48 adds r0, r6, r7 strb r4, [r0] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 b _080FEE5A .align 2, 0 _080FEE30: .4byte 0x020388d6 _080FEE34: .4byte 0x020388e6 _080FEE38: .4byte 0x0202714e _080FEE3C: .4byte gUnknown_08402E40 _080FEE40: .4byte 0x020388f6 _080FEE44: .4byte 0x020388d0 _080FEE48: lsls r0, r4, 16 lsrs r1, r0, 16 mov r2, r8 ldrb r0, [r2] lsls r0, 3 add r0, r9 ldrb r0, [r0, 0x4] cmp r1, r0 bcc _080FEDEA _080FEE5A: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0xF bls _080FEDC8 movs r6, 0 movs r3, 0 ldr r0, _080FEEE4 mov r8, r0 _080FEE6C: ldr r0, _080FEEE8 ldr r1, _080FEEEC adds r0, r1 adds r2, r3, r0 ldrb r0, [r2] adds r7, r3, 0x1 cmp r0, 0 beq _080FEF0E movs r1, 0 ldr r0, _080FEEF0 ldrb r0, [r0] lsls r0, 3 add r0, r8 ldrb r0, [r0, 0x4] cmp r1, r0 bcs _080FEF0E adds r5, r2, 0 _080FEE8E: ldr r0, _080FEEF4 ldr r0, [r0] adds r0, r1 ldrb r0, [r0] adds r4, r1, 0x1 ldrb r2, [r5] cmp r0, r2 bne _080FEEFC lsls r0, r4, 24 lsrs r0, 24 bl sub_80FED64 lsls r0, 24 cmp r0, 0 bne _080FEEFC movs r1, 0 cmp r1, r6 bcs _080FEED0 ldr r2, _080FEEF8 ldrb r0, [r2] cmp r0, r4 beq _080FEED0 adds r3, r2, 0 adds r2, r4, 0 _080FEEBE: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r6 bcs _080FEED0 adds r0, r1, r3 ldrb r0, [r0] cmp r0, r2 bne _080FEEBE _080FEED0: cmp r1, r6 bne _080FEEFC ldr r0, _080FEEF8 adds r0, r6, r0 strb r4, [r0] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 b _080FEF0E .align 2, 0 _080FEEE4: .4byte gUnknown_08402E40 _080FEEE8: .4byte 0x02025734 _080FEEEC: .4byte 0x00002688 _080FEEF0: .4byte 0x020388f6 _080FEEF4: .4byte 0x020388d0 _080FEEF8: .4byte 0x020388e6 _080FEEFC: lsls r0, r4, 16 lsrs r1, r0, 16 ldr r0, _080FEF24 ldrb r0, [r0] lsls r0, 3 add r0, r8 ldrb r0, [r0, 0x4] cmp r1, r0 bcc _080FEE8E _080FEF0E: lsls r0, r7, 16 lsrs r3, r0, 16 cmp r3, 0xB bls _080FEE6C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FEF24: .4byte 0x020388f6 thumb_func_end sub_80FED90 thumb_func_start sub_80FEF28 sub_80FEF28: @ 80FEF28 push {lr} ldr r0, _080FEF38 ldrb r1, [r0] cmp r1, 0x7 bhi _080FEF40 ldr r0, _080FEF3C strb r1, [r0] b _080FEF46 .align 2, 0 _080FEF38: .4byte 0x020388d5 _080FEF3C: .4byte 0x020388f3 _080FEF40: ldr r1, _080FEF4C movs r0, 0x7 strb r0, [r1] _080FEF46: pop {r0} bx r0 .align 2, 0 _080FEF4C: .4byte 0x020388f3 thumb_func_end sub_80FEF28 thumb_func_start sub_80FEF50 sub_80FEF50: @ 80FEF50 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80FED90 bl sub_80FEF28 ldr r0, _080FEF6C movs r1, 0 strb r1, [r0] ldr r0, _080FEF70 strb r1, [r0] pop {r0} bx r0 .align 2, 0 _080FEF6C: .4byte 0x020388f2 _080FEF70: .4byte 0x020388f4 thumb_func_end sub_80FEF50 thumb_func_start sub_80FEF74 sub_80FEF74: @ 80FEF74 push {lr} ldr r0, _080FEFA0 movs r1, 0x8 bl sub_80F9520 movs r0, 0 bl SetBgTilemapBuffer movs r0, 0x1 bl SetBgTilemapBuffer bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0xE movs r3, 0x13 bl Reset pop {r0} bx r0 .align 2, 0 _080FEFA0: .4byte 0x020388f7 thumb_func_end sub_80FEF74 thumb_func_start sub_80FEFA4 sub_80FEFA4: @ 80FEFA4 push {r4,lr} movs r2, 0 ldr r0, _080FEFD0 ldrb r0, [r0] ldr r1, _080FEFD4 ldrb r1, [r1] adds r0, r1 adds r1, r0, 0x1 ldr r4, _080FEFD8 ldr r3, _080FEFDC _080FEFB8: adds r0, r2, r4 ldrb r0, [r0] cmp r0, r1 beq _080FEFCC cmp r2, 0xB bhi _080FEFE0 adds r0, r2, r3 ldrb r0, [r0] cmp r0, r1 bne _080FEFE0 _080FEFCC: movs r0, 0 b _080FEFEC .align 2, 0 _080FEFD0: .4byte 0x020388f4 _080FEFD4: .4byte 0x020388f2 _080FEFD8: .4byte 0x020388d6 _080FEFDC: .4byte 0x020388e6 _080FEFE0: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0xF bls _080FEFB8 movs r0, 0x1 _080FEFEC: pop {r4} pop {r1} bx r1 thumb_func_end sub_80FEFA4 thumb_func_start sub_80FEFF4 sub_80FEFF4: @ 80FEFF4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080FF028 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080FF00E movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080FF020 _080FF00E: bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed ldr r0, _080FF02C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080FF030 str r0, [r1] _080FF020: pop {r4} pop {r0} bx r0 .align 2, 0 _080FF028: .4byte 0x03001770 _080FF02C: .4byte 0x03004b20 _080FF030: .4byte sub_80FE868 thumb_func_end sub_80FEFF4 thumb_func_start sub_80FF034 sub_80FF034: @ 80FF034 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0xE movs r3, 0x13 bl Reset adds r0, r4, 0 bl sub_80FE5AC pop {r4} pop {r0} bx r0 thumb_func_end sub_80FF034 thumb_func_start sub_80FF058 sub_80FF058: @ 80FF058 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _080FF08C movs r1, 0x8 bl sub_80F9520 movs r0, 0 bl SetBgTilemapBuffer movs r0, 0x1 bl SetBgTilemapBuffer bl BuyMenuFreeMemory ldr r1, _080FF090 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080FF094 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080FF08C: .4byte 0x020388f7 _080FF090: .4byte 0x03004b20 _080FF094: .4byte sub_80FF034 thumb_func_end sub_80FF058 thumb_func_start sub_80FF098 sub_80FF098: @ 80FF098 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080FF0D4 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] ldr r3, _080FF0D8 ldrb r2, [r3] adds r0, r2, 0x7 ldrb r1, [r1] cmp r0, r1 ble _080FF0BA cmp r2, 0 beq _080FF0BA subs r0, r2, 0x1 strb r0, [r3] _080FF0BA: ldr r0, _080FF0DC ldrb r0, [r0] bl sub_8134104 adds r0, r4, 0 bl sub_80FED90 bl sub_80FEF28 pop {r4} pop {r0} bx r0 .align 2, 0 _080FF0D4: .4byte 0x020388d5 _080FF0D8: .4byte 0x020388f4 _080FF0DC: .4byte 0x020388f6 thumb_func_end sub_80FF098 thumb_func_start sub_80FF0E0 sub_80FF0E0: @ 80FF0E0 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r3, _080FF10C lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r4, r2, r3 ldr r1, _080FF110 ldrh r0, [r1] strh r0, [r4, 0xE] ldrh r0, [r1, 0x2] strh r0, [r4, 0x10] adds r3, 0x8 adds r2, r3 adds r1, r2, 0x2 adds r0, r2, 0 bl PlayerGetDestCoords pop {r4} pop {r0} bx r0 .align 2, 0 _080FF10C: .4byte 0x03004b20 _080FF110: .4byte 0x02025734 thumb_func_end sub_80FF0E0 thumb_func_start sub_80FF114 sub_80FF114: @ 80FF114 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 bl DrawWholeMapView ldr r1, _080FF158 movs r0, 0x4 ldrsb r0, [r1, r0] ldrb r1, [r1, 0x5] lsls r1, 24 asrs r1, 24 movs r2, 0x1 negs r2, r2 ldr r3, _080FF15C lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r3 movs r3, 0xE ldrsb r3, [r4, r3] ldrb r4, [r4, 0x10] lsls r4, 24 asrs r4, 24 str r4, [sp] bl warp1_set bl warp_in add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FF158: .4byte 0x02025734 _080FF15C: .4byte 0x03004b20 thumb_func_end sub_80FF114 thumb_func_start sub_80FF160 sub_80FF160: @ 80FF160 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81341D4 lsls r0, 24 cmp r0, 0 bne _080FF188 ldr r1, _080FF180 ldr r2, _080FF184 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField b _080FF1A2 .align 2, 0 _080FF180: .4byte gUnknown_0840FA64 _080FF184: .4byte sub_80FE428 _080FF188: ldr r1, _080FF1A8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0 movs r1, 0 strh r1, [r0, 0x1E] ldr r0, _080FF1AC strb r2, [r0] adds r0, r4, 0 bl sub_80FE5AC _080FF1A2: pop {r4} pop {r0} bx r0 .align 2, 0 _080FF1A8: .4byte 0x03004b20 _080FF1AC: .4byte 0x020388f6 thumb_func_end sub_80FF160 thumb_func_start sub_80FF1B0 sub_80FF1B0: @ 80FF1B0 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r1, 24 ldr r0, _080FF1D0 cmp r2, 0x22 beq _080FF1D8 cmp r2, 0x26 bne _080FF1E2 ldr r0, _080FF1D4 adds r0, r1, r0 ldrb r0, [r0] lsls r0, 28 lsrs r0, 16 b _080FF1E2 .align 2, 0 _080FF1D0: .4byte 0x0000ffff _080FF1D4: .4byte gUnknown_083EC97C _080FF1D8: ldr r0, _080FF1E8 adds r0, r1, r0 ldrb r0, [r0] lsls r0, 28 lsrs r0, 16 _080FF1E2: pop {r1} bx r1 .align 2, 0 _080FF1E8: .4byte gUnknown_083EC984 thumb_func_end sub_80FF1B0 thumb_func_start sub_80FF1EC sub_80FF1EC: @ 80FF1EC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 ldr r4, [sp, 0x54] lsls r0, 16 lsrs r0, 16 str r0, [sp] lsls r1, 16 lsrs r1, 16 str r1, [sp, 0x4] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x8] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0xC] lsls r4, 16 lsrs r4, 16 str r4, [sp, 0x10] movs r2, 0 lsls r0, r3, 16 cmp r2, r3 bcc _080FF222 b _080FF384 _080FF222: ldr r1, [sp, 0x8] str r1, [sp, 0x28] str r0, [sp, 0x2C] _080FF228: ldr r3, [sp, 0x4] ldr r4, [sp, 0xC] subs r1, r3, r4 lsls r0, r2, 16 asrs r0, 16 adds r0, 0x1 adds r1, r0 lsls r1, 16 lsrs r1, 16 str r1, [sp, 0x14] movs r0, 0 mov r10, r0 adds r1, r2, 0x1 str r1, [sp, 0x30] ldr r3, [sp, 0x28] cmp r10, r3 bcc _080FF24C b _080FF374 _080FF24C: ldr r4, [sp, 0x10] lsls r4, 5 str r4, [sp, 0x18] ldr r0, _080FF2B4 adds r0, r4, r0 str r0, [sp, 0x1C] ldr r0, _080FF2B8 adds r0, r4, r0 str r0, [sp, 0x24] ldr r3, [sp, 0x8] adds r1, r2, 0 muls r1, r3 str r1, [sp, 0x20] _080FF266: ldr r0, [sp] add r0, r10 lsls r0, 16 lsrs r5, r0, 16 ldr r1, [sp, 0x20] add r1, r10 ldr r4, [sp, 0x1C] ldr r0, [r4] lsls r1, 1 adds r1, r0 movs r2, 0x80 lsls r2, 2 adds r0, r2, 0 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 bl GetBehaviorByMetatileId lsls r4, r0, 16 lsls r0, r4, 8 lsrs r0, 24 bl sub_8057288 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080FF2AC ldr r3, [sp, 0x24] ldrb r0, [r3, 0x11] cmp r0, 0x1 beq _080FF2BC lsrs r0, r4, 28 cmp r0, 0 beq _080FF2BC _080FF2AC: movs r4, 0xC0 lsls r4, 4 mov r8, r4 b _080FF2C0 .align 2, 0 _080FF2B4: .4byte gDecorations + 0x1C _080FF2B8: .4byte gDecorations _080FF2BC: movs r0, 0 mov r8, r0 _080FF2C0: ldr r1, [sp, 0x24] ldrb r0, [r1, 0x11] lsls r7, r5, 16 ldr r2, [sp, 0x14] lsls r2, 16 mov r9, r2 cmp r0, 0x3 beq _080FF2EA asrs r0, r7, 16 asrs r1, r2, 16 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl sub_80572B0 lsls r0, 24 lsrs r0, 24 movs r6, 0x1 cmp r0, 0x1 beq _080FF2EC _080FF2EA: movs r6, 0 _080FF2EC: ldr r3, [sp, 0x18] ldr r4, _080FF334 adds r0, r3, r4 ldrb r0, [r0] ldr r4, [sp, 0x20] add r4, r10 lsls r1, r4, 24 lsrs r1, 24 bl sub_80FF1B0 lsls r0, 16 lsrs r5, r0, 16 ldr r0, _080FF338 cmp r5, r0 beq _080FF33C asrs r0, r7, 16 mov r2, r9 asrs r1, r2, 16 ldr r3, [sp, 0x1C] ldr r2, [r3] lsls r3, r4, 1 adds r3, r2 movs r4, 0x80 lsls r4, 2 adds r2, r4, 0 orrs r6, r2 ldrh r3, [r3] adds r2, r6, r3 mov r3, r8 orrs r3, r2 orrs r3, r5 lsls r2, r3, 16 lsrs r2, 16 bl MapGridSetMetatileEntryAt b _080FF362 .align 2, 0 _080FF334: .4byte gDecorations _080FF338: .4byte 0x0000ffff _080FF33C: asrs r0, r7, 16 mov r2, r9 asrs r1, r2, 16 ldr r3, [sp, 0x1C] ldr r2, [r3] lsls r3, r4, 1 adds r3, r2 movs r4, 0x80 lsls r4, 2 adds r2, r4, 0 orrs r6, r2 ldrh r3, [r3] adds r2, r6, r3 mov r3, r8 orrs r3, r2 lsls r2, r3, 16 lsrs r2, 16 bl MapGridSetMetatileIdAt _080FF362: mov r0, r10 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r10, r0 ldr r4, [sp, 0x28] cmp r10, r4 bcs _080FF374 b _080FF266 _080FF374: ldr r1, [sp, 0x30] lsls r0, r1, 16 lsrs r2, r0, 16 ldr r3, [sp, 0x2C] lsrs r0, r3, 16 cmp r2, r0 bcs _080FF384 b _080FF228 _080FF384: add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80FF1EC thumb_func_start sub_80FF394 sub_80FF394: @ 80FF394 push {r4,lr} sub sp, 0x4 lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 lsrs r4, r1, 16 lsls r2, 16 lsrs r2, 16 ldr r1, _080FF3BC lsls r0, r2, 5 adds r0, r1 ldrb r0, [r0, 0x12] cmp r0, 0x9 bhi _080FF46C lsls r0, 2 ldr r1, _080FF3C0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FF3BC: .4byte gDecorations _080FF3C0: .4byte _080FF3C4 .align 2, 0 _080FF3C4: .4byte _080FF3EC .4byte _080FF3F6 .4byte _080FF400 .4byte _080FF410 .4byte _080FF41A .4byte _080FF424 .4byte _080FF434 .4byte _080FF43E .4byte _080FF44E .4byte _080FF45E _080FF3EC: str r2, [sp] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0x1 b _080FF408 _080FF3F6: str r2, [sp] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0x2 b _080FF408 _080FF400: str r2, [sp] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0x3 _080FF408: movs r3, 0x1 bl sub_80FF1EC b _080FF46C _080FF410: str r2, [sp] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0x4 b _080FF42C _080FF41A: str r2, [sp] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0x2 b _080FF42C _080FF424: str r2, [sp] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0x1 _080FF42C: movs r3, 0x2 bl sub_80FF1EC b _080FF46C _080FF434: str r2, [sp] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0x1 b _080FF456 _080FF43E: str r2, [sp] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0x2 movs r3, 0x4 bl sub_80FF1EC b _080FF46C _080FF44E: str r2, [sp] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0x3 _080FF456: movs r3, 0x3 bl sub_80FF1EC b _080FF46C _080FF45E: str r2, [sp] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0x3 movs r3, 0x2 bl sub_80FF1EC _080FF46C: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_80FF394 thumb_func_start sub_80FF474 sub_80FF474: @ 80FF474 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r6, 0 ldr r0, _080FF54C mov r8, r0 ldr r1, _080FF550 mov r9, r1 ldr r2, _080FF554 mov r10, r2 ldr r7, _080FF558 _080FF490: adds r5, r6, 0 adds r5, 0xAE adds r4, r5, 0 adds r0, r4, 0 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FF570 adds r0, r4, 0 bl FlagReset movs r2, 0 mov r4, r8 ldr r0, [r4, 0x4] ldrb r6, [r0] cmp r2, r6 bcs _080FF4E0 ldr r0, [r0, 0x4] ldrh r0, [r0, 0x14] cmp r0, r5 beq _080FF4E0 ldr r0, _080FF54C ldr r3, [r0, 0x4] ldrb r6, [r3] adds r4, r5, 0 _080FF4C6: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r6 bcs _080FF4E0 ldr r0, [r3, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x14] cmp r0, r4 bne _080FF4C6 _080FF4E0: mov r1, r8 ldr r0, [r1, 0x4] ldr r1, [r0, 0x4] lsls r4, r2, 1 adds r4, r2 lsls r4, 3 adds r1, r4, r1 ldr r2, _080FF55C adds r0, r2, 0 ldrb r1, [r1, 0x1] adds r0, r1 ldr r1, _080FF560 ldr r1, [r1] ldr r1, [r1, 0x1C] ldrh r1, [r1] bl VarSet mov r5, r8 ldr r0, [r5, 0x4] ldr r0, [r0, 0x4] adds r4, r0 ldrb r0, [r4] mov r6, r9 strh r0, [r6] ldr r1, _080FF564 ldrh r1, [r1] mov r2, r10 strh r1, [r2] ldr r1, _080FF568 ldrh r1, [r1] ldr r4, _080FF56C strh r1, [r4] ldrb r1, [r7, 0x5] ldrb r2, [r7, 0x4] bl show_sprite ldrb r0, [r6] ldrb r1, [r7, 0x5] ldrb r2, [r7, 0x4] mov r5, r10 movs r6, 0 ldrsh r3, [r5, r6] movs r5, 0 ldrsh r4, [r4, r5] str r4, [sp] bl sub_805C0F8 mov r6, r9 ldrb r0, [r6] ldrb r1, [r7, 0x5] ldrb r2, [r7, 0x4] bl sub_805C78C b _080FF57A .align 2, 0 _080FF54C: .4byte 0x0202e828 _080FF550: .4byte 0x0202e8ce _080FF554: .4byte 0x0202e8d0 _080FF558: .4byte 0x02025734 _080FF55C: .4byte 0x00003f20 _080FF560: .4byte 0x02038900 _080FF564: .4byte 0x020391a4 _080FF568: .4byte 0x020391a6 _080FF56C: .4byte 0x0202e8d2 _080FF570: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0xD bls _080FF490 _080FF57A: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80FF474 thumb_func_start sub_80FF58C sub_80FF58C: @ 80FF58C push {lr} movs r1, 0 ldr r0, _080FF5A8 ldrb r2, [r0, 0x8] cmp r1, r2 bcs _080FF5B6 ldr r3, [r0] _080FF59A: adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 bne _080FF5AC movs r0, 0x1 b _080FF5B8 .align 2, 0 _080FF5A8: .4byte 0x0201f000 _080FF5AC: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r2 bcc _080FF59A _080FF5B6: movs r0, 0 _080FF5B8: pop {r1} bx r1 thumb_func_end sub_80FF58C thumb_func_start sub_80FF5BC sub_80FF5BC: @ 80FF5BC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080FF5E4 ldrb r0, [r0, 0x9] cmp r0, 0x1 bne _080FF5F0 ldr r0, _080FF5E8 ldrb r0, [r0] cmp r0, 0x6 beq _080FF5F0 cmp r0, 0x7 beq _080FF5F0 bl sub_80FEF74 bl sub_80FED1C ldr r1, _080FF5EC b _080FF66E .align 2, 0 _080FF5E4: .4byte 0x0201f000 _080FF5E8: .4byte 0x020388f6 _080FF5EC: .4byte gUnknown_0840FBD3 _080FF5F0: bl sub_80FEFA4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FF688 bl sub_80FF58C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FF62C movs r0, 0x1 movs r1, 0 bl fade_screen ldr r1, _080FF624 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] ldr r1, _080FF628 str r1, [r0] b _080FF69C .align 2, 0 _080FF624: .4byte 0x03004b20 _080FF628: .4byte sub_80FF6AC _080FF62C: bl sub_80FEF74 bl sub_80FED1C ldr r0, _080FF654 ldr r4, _080FF658 ldrb r1, [r4, 0x8] movs r2, 0x1 movs r3, 0x2 bl ConvertIntToDecimalStringN ldrb r0, [r4, 0x9] cmp r0, 0 bne _080FF664 ldr r0, _080FF65C ldr r1, _080FF660 bl StringExpandPlaceholders b _080FF66C .align 2, 0 _080FF654: .4byte 0x020231cc _080FF658: .4byte 0x0201f000 _080FF65C: .4byte 0x020234cc _080FF660: .4byte gUnknown_0840FB11 _080FF664: ldr r0, _080FF67C ldr r1, _080FF680 bl StringExpandPlaceholders _080FF66C: ldr r1, _080FF67C _080FF66E: ldr r2, _080FF684 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField b _080FF69C .align 2, 0 _080FF67C: .4byte 0x020234cc _080FF680: .4byte gUnknown_0840FB57 _080FF684: .4byte sub_80FEFF4 _080FF688: bl sub_80FEF74 bl sub_80FED1C ldr r1, _080FF6A4 ldr r2, _080FF6A8 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField _080FF69C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FF6A4: .4byte gUnknown_0840FAF9 _080FF6A8: .4byte sub_80FEFF4 thumb_func_end sub_80FF5BC thumb_func_start sub_80FF6AC sub_80FF6AC: @ 80FF6AC push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _080FF6D0 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r7, r0, r1 movs r1, 0xC ldrsh r0, [r7, r1] cmp r0, 0x1 beq _080FF714 cmp r0, 0x1 bgt _080FF6D4 cmp r0, 0 beq _080FF6DA b _080FF77A .align 2, 0 _080FF6D0: .4byte 0x03004b20 _080FF6D4: cmp r0, 0x2 beq _080FF764 b _080FF77A _080FF6DA: ldr r0, _080FF70C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080FF77A adds r0, r6, 0 bl sub_80FF0E0 movs r0, 0 bl SetBgTilemapBuffer movs r0, 0x1 bl SetBgTilemapBuffer ldr r0, _080FF710 movs r1, 0x8 bl sub_80F9520 bl BuyMenuFreeMemory movs r0, 0x1 strh r0, [r7, 0xC] b _080FF77A .align 2, 0 _080FF70C: .4byte 0x0202f388 _080FF710: .4byte 0x020388f7 _080FF714: ldr r4, _080FF754 ldrb r0, [r4, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r4, 0x8] ldr r5, _080FF758 ldr r0, _080FF75C ldrb r1, [r0] ldr r0, _080FF760 ldr r0, [r0] adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 bl AddDecorationIconObjectFromFieldObject adds r0, r6, 0 bl sub_80FF960 adds r0, r6, 0 adds r1, r5, 0 bl SetUpPlacingDecorationPlayerAvatar bl pal_fill_black ldrb r1, [r4, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r4, 0x8] movs r0, 0x2 strh r0, [r7, 0xC] b _080FF77A .align 2, 0 _080FF754: .4byte 0x0202f388 _080FF758: .4byte 0x02038900 _080FF75C: .4byte 0x020388f5 _080FF760: .4byte 0x020388d0 _080FF764: bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FF77A movs r0, 0 strh r0, [r7, 0x20] adds r0, r6, 0 bl sub_810065C _080FF77A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80FF6AC thumb_func_start AddDecorationIconObjectFromFieldObject AddDecorationIconObjectFromFieldObject: @ 80FF780 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 lsls r4, r1, 24 lsrs r4, 24 bl sub_80FEF74 bl sub_80FED1C adds r0, r5, 0 bl sub_81006D0 lsls r4, 5 ldr r0, _080FF810 adds r4, r0 str r4, [r5] ldrb r0, [r4, 0x11] cmp r0, 0x4 beq _080FF834 adds r0, r5, 0 bl sub_81008BC ldr r0, [r5] ldrb r0, [r0, 0x12] bl sub_8100930 adds r0, r5, 0 bl sub_8100874 ldr r1, _080FF814 adds r0, r5, r1 ldr r1, _080FF818 ldr r1, [r1] ldr r2, [r1, 0x14] ldr r1, [r5] ldr r1, [r1, 0x1C] ldrh r1, [r1] ldr r2, [r2, 0xC] lsls r1, 4 adds r1, r2 ldrh r1, [r1, 0xE] lsrs r1, 12 bl sub_810070C ldr r0, _080FF81C bl LoadSpritePalette ldr r3, _080FF820 ldr r2, _080FF824 ldr r4, _080FF828 ldr r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x2E] strb r0, [r3] ldr r0, _080FF82C ldr r3, _080FF830 ldr r1, [r5] ldrb r2, [r1, 0x12] lsls r2, 2 adds r2, r3 ldrb r1, [r2, 0x2] ldrb r2, [r2, 0x3] movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 str r0, [r4, 0x4] b _080FF87E .align 2, 0 _080FF810: .4byte gDecorations _080FF814: .4byte 0x00000884 _080FF818: .4byte 0x0202e828 _080FF81C: .4byte gUnknown_083EC954 _080FF820: .4byte 0x020391a8 _080FF824: .4byte 0x02020004 _080FF828: .4byte 0x03004880 _080FF82C: .4byte gUnknown_083EC93C _080FF830: .4byte gUnknown_083EC900 _080FF834: ldr r2, _080FF888 ldr r6, _080FF88C ldr r5, _080FF890 ldr r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r0, [r0, 0x2E] strb r0, [r2] ldr r0, [r4, 0x1C] ldrh r0, [r0] ldr r1, _080FF894 ldr r2, _080FF898 ldrb r3, [r4, 0x12] lsls r3, 2 adds r3, r2 ldrb r2, [r3, 0x2] ldrb r3, [r3, 0x3] movs r4, 0x1 str r4, [sp] bl AddPseudoFieldObject lsls r0, 24 lsrs r0, 24 str r0, [r5, 0x4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 movs r2, 0x4 orrs r0, r2 strb r0, [r1, 0x5] _080FF87E: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080FF888: .4byte 0x020391a8 _080FF88C: .4byte 0x02020004 _080FF890: .4byte 0x03004880 _080FF894: .4byte sub_81009A8 _080FF898: .4byte gUnknown_083EC900 thumb_func_end AddDecorationIconObjectFromFieldObject thumb_func_start SetUpPlacingDecorationPlayerAvatar SetUpPlacingDecorationPlayerAvatar: @ 80FF89C push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r3, _080FF8F0 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r2, r3 ldrb r2, [r2, 0x12] ldr r3, _080FF8F4 ldr r0, [r1] ldrb r4, [r0, 0x12] lsls r1, r4, 2 adds r1, r3 lsls r0, r2, 4 ldrb r1, [r1, 0x2] adds r0, r1 subs r2, 0x1 lsls r2, 3 subs r0, r2 lsls r0, 24 lsrs r2, r0, 24 cmp r4, 0x2 beq _080FF8D6 cmp r4, 0x8 beq _080FF8D6 cmp r4, 0x9 bne _080FF8DE _080FF8D6: adds r0, r2, 0 subs r0, 0x8 lsls r0, 24 lsrs r2, r0, 24 _080FF8DE: ldr r0, _080FF8F8 ldrb r0, [r0, 0x8] cmp r0, 0 bne _080FF900 ldr r1, _080FF8FC str r0, [sp] movs r0, 0xC1 b _080FF908 .align 2, 0 _080FF8F0: .4byte 0x03004b20 _080FF8F4: .4byte gUnknown_083EC900 _080FF8F8: .4byte gSaveBlock2 _080FF8FC: .4byte SpriteCallbackDummy _080FF900: ldr r1, _080FF94C movs r0, 0 str r0, [sp] movs r0, 0xC2 _080FF908: movs r3, 0x48 bl AddPseudoFieldObject ldr r1, _080FF950 strb r0, [r1] ldr r3, _080FF954 ldr r0, _080FF950 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x5] ldr r4, _080FF958 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 bl DestroySprite ldr r0, _080FF95C ldr r0, [r0, 0x4] strb r0, [r4] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080FF94C: .4byte SpriteCallbackDummy _080FF950: .4byte 0x020391a9 _080FF954: .4byte 0x02020004 _080FF958: .4byte 0x020391a8 _080FF95C: .4byte 0x03004880 thumb_func_end SetUpPlacingDecorationPlayerAvatar thumb_func_start sub_80FF960 sub_80FF960: @ 80FF960 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r2, _080FF98C ldr r0, _080FF990 ldrb r1, [r0] ldr r0, _080FF994 ldr r0, [r0] adds r0, r1 ldrb r0, [r0] lsls r0, 5 adds r0, r2 ldrb r0, [r0, 0x12] cmp r0, 0x9 bls _080FF980 b _080FFAA6 _080FF980: lsls r0, 2 ldr r1, _080FF998 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FF98C: .4byte gDecorations _080FF990: .4byte 0x020388f5 _080FF994: .4byte 0x020388d0 _080FF998: .4byte _080FF99C .align 2, 0 _080FF99C: .4byte _080FF9C4 .4byte _080FF9D8 .4byte _080FF9F0 .4byte _080FFA08 .4byte _080FFA1C .4byte _080FFA30 .4byte _080FFA44 .4byte _080FFA64 .4byte _080FFA7C .4byte _080FFA94 _080FF9C4: ldr r0, _080FF9D4 lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 movs r0, 0x1 b _080FFA88 .align 2, 0 _080FF9D4: .4byte 0x03004b20 _080FF9D8: ldr r1, _080FF9EC lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r1, 0x2 strh r1, [r0, 0x12] movs r1, 0x1 b _080FFAA4 .align 2, 0 _080FF9EC: .4byte 0x03004b20 _080FF9F0: ldr r1, _080FFA04 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r1, 0x3 strh r1, [r0, 0x12] movs r1, 0x1 b _080FFAA4 .align 2, 0 _080FFA04: .4byte 0x03004b20 _080FFA08: ldr r1, _080FFA18 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r1, 0x4 b _080FFAA0 .align 2, 0 _080FFA18: .4byte 0x03004b20 _080FFA1C: ldr r0, _080FFA2C lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 movs r0, 0x2 b _080FFA88 .align 2, 0 _080FFA2C: .4byte 0x03004b20 _080FFA30: ldr r1, _080FFA40 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r1, 0x1 b _080FFAA0 .align 2, 0 _080FFA40: .4byte 0x03004b20 _080FFA44: ldr r0, _080FFA60 lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x12] movs r0, 0x3 strh r0, [r1, 0x14] ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] b _080FFAA6 .align 2, 0 _080FFA60: .4byte 0x03004b20 _080FFA64: ldr r1, _080FFA78 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r1, 0x2 strh r1, [r0, 0x12] movs r1, 0x4 b _080FFAA4 .align 2, 0 _080FFA78: .4byte 0x03004b20 _080FFA7C: ldr r0, _080FFA90 lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 movs r0, 0x3 _080FFA88: strh r0, [r1, 0x12] strh r0, [r1, 0x14] b _080FFAA6 .align 2, 0 _080FFA90: .4byte 0x03004b20 _080FFA94: ldr r1, _080FFAAC lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r1, 0x3 _080FFAA0: strh r1, [r0, 0x12] movs r1, 0x2 _080FFAA4: strh r1, [r0, 0x14] _080FFAA6: pop {r0} bx r0 .align 2, 0 _080FFAAC: .4byte 0x03004b20 thumb_func_end sub_80FF960 thumb_func_start sub_80FFAB0 sub_80FFAB0: @ 80FFAB0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080FFAF8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] ldr r3, _080FFAFC ldr r0, _080FFB00 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r2, 0x1 strh r2, [r0, 0x3C] ldr r0, _080FFB04 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r2, [r0, 0x3C] bl sub_810045C adds r0, r4, 0 bl sub_8100038 pop {r4} pop {r0} bx r0 .align 2, 0 _080FFAF8: .4byte 0x03004b20 _080FFAFC: .4byte 0x02020004 _080FFB00: .4byte 0x020391a8 _080FFB04: .4byte 0x020391a9 thumb_func_end sub_80FFAB0 thumb_func_start sub_80FFB08 sub_80FFB08: @ 80FFB08 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080FFB54 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] ldr r3, _080FFB58 ldr r0, _080FFB5C ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r2, 0x1 strh r2, [r0, 0x3C] ldr r0, _080FFB60 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r2, [r0, 0x3C] bl sub_810045C ldr r1, _080FFB64 ldr r2, _080FFB68 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField pop {r4} pop {r0} bx r0 .align 2, 0 _080FFB54: .4byte 0x03004b20 _080FFB58: .4byte 0x02020004 _080FFB5C: .4byte 0x020391a8 _080FFB60: .4byte 0x020391a9 _080FFB64: .4byte gUnknown_0840FAE6 _080FFB68: .4byte sub_8100248 thumb_func_end sub_80FFB08 thumb_func_start sub_80FFB6C sub_80FFB6C: @ 80FFB6C push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r4, r1, 16 bl sub_8057274 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FFB86 cmp r4, 0 beq _080FFB8A _080FFB86: movs r0, 0 b _080FFB8C _080FFB8A: movs r0, 0x1 _080FFB8C: pop {r4} pop {r1} bx r1 thumb_func_end sub_80FFB6C thumb_func_start sub_80FFB94 sub_80FFB94: @ 80FFB94 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r2, 16 lsrs r4, r2, 16 lsls r3, 16 lsrs r5, r3, 16 lsls r1, 16 asrs r1, 16 ldr r3, _080FFBD0 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r2, r3 movs r3, 0xE ldrsh r0, [r2, r3] adds r0, 0x7 cmp r1, r0 bne _080FFBD4 lsls r1, r4, 16 asrs r1, 16 movs r3, 0x10 ldrsh r0, [r2, r3] adds r0, 0x7 cmp r1, r0 bne _080FFBD4 cmp r5, 0 beq _080FFBD4 movs r0, 0 b _080FFBD6 .align 2, 0 _080FFBD0: .4byte 0x03004b20 _080FFBD4: movs r0, 0x1 _080FFBD6: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80FFB94 thumb_func_start sub_80FFBDC sub_80FFBDC: @ 80FFBDC push {r4-r6,lr} adds r5, r1, 0 lsls r0, 16 lsrs r6, r0, 16 lsls r0, r6, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_8057274 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080FFC1C ldrb r0, [r5] cmp r0, 0x21 bne _080FFC0A adds r0, r4, 0 bl sub_8057300 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080FFC18 _080FFC0A: lsls r0, r6, 24 lsrs r0, 24 bl sub_805729C lsls r0, 24 cmp r0, 0 beq _080FFC1C _080FFC18: movs r0, 0x1 b _080FFC1E _080FFC1C: movs r0, 0 _080FFC1E: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80FFBDC thumb_func_start sub_80FFC24 sub_80FFC24: @ 80FFC24 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 str r1, [sp] lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r1, _080FFC60 lsls r0, 2 add r0, r10 lsls r0, 3 adds r0, r1 ldrb r2, [r0, 0x14] str r2, [sp, 0x4] ldrb r0, [r0, 0x12] str r0, [sp, 0x8] ldr r3, [sp] ldrb r0, [r3, 0x11] adds r2, r1, 0 cmp r0, 0x4 bls _080FFC56 b _08100024 _080FFC56: lsls r0, 2 ldr r1, _080FFC64 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080FFC60: .4byte 0x03004b20 _080FFC64: .4byte _080FFC68 .align 2, 0 _080FFC68: .4byte _080FFC7C .4byte _080FFC7C .4byte _080FFD68 .4byte _080FFF1C .4byte _080FFFA0 _080FFC7C: movs r6, 0 ldr r0, [sp, 0x4] cmp r6, r0 bcc _080FFC86 b _08100024 _080FFC86: mov r1, r10 lsls r1, 2 str r1, [sp, 0x1C] _080FFC8C: mov r2, r10 lsls r0, r2, 2 add r0, r10 lsls r0, 3 ldr r3, _080FFD64 adds r0, r3 ldrh r0, [r0, 0xA] subs r0, r6 lsls r0, 16 lsrs r0, 16 mov r9, r0 movs r7, 0 adds r6, 0x1 str r6, [sp, 0x14] ldr r0, [sp, 0x8] cmp r7, r0 bcs _080FFD56 mov r1, r9 lsls r1, 16 str r1, [sp, 0xC] asrs r1, 16 mov r9, r1 _080FFCB8: ldr r0, [sp, 0x1C] add r0, r10 lsls r0, 3 ldr r2, _080FFD64 adds r0, r2 ldrh r0, [r0, 0x8] adds r0, r7 lsls r0, 16 mov r8, r0 asrs r6, r0, 16 adds r0, r6, 0 mov r1, r9 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 ldr r3, [sp, 0x4] ldr r1, [sp, 0x14] subs r0, r3, r1 ldr r2, [sp, 0x8] adds r1, r0, 0 muls r1, r2 adds r1, r7 ldr r3, [sp] ldr r0, [r3, 0x1C] lsls r1, 1 adds r1, r0 movs r2, 0x80 lsls r2, 2 adds r0, r2, 0 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 bl GetBehaviorByMetatileId movs r3, 0xF0 lsls r3, 8 adds r1, r3, 0 adds r5, r1, 0 ands r5, r0 adds r0, r4, 0 ldr r1, [sp] bl sub_80FFBDC lsls r0, 24 cmp r0, 0 bne _080FFD1A b _080FFFF4 _080FFD1A: mov r0, r10 adds r1, r6, 0 mov r2, r9 adds r3, r5, 0 bl sub_80FFB94 lsls r0, 24 cmp r0, 0 bne _080FFD2E b _080FFFF4 _080FFD2E: mov r1, r8 lsrs r0, r1, 16 ldr r2, [sp, 0xC] lsrs r1, r2, 16 movs r2, 0 bl GetFieldObjectIdByXYZ lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080FFD4A cmp r4, 0x10 beq _080FFD4A b _080FFFF4 _080FFD4A: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldr r3, [sp, 0x8] cmp r7, r3 bcc _080FFCB8 _080FFD56: ldr r1, [sp, 0x14] lsls r0, r1, 24 lsrs r6, r0, 24 ldr r2, [sp, 0x4] cmp r6, r2 bcc _080FFC8C b _08100024 .align 2, 0 _080FFD64: .4byte 0x03004b20 _080FFD68: movs r6, 0 mov r3, r10 lsls r3, 2 str r3, [sp, 0x1C] ldr r0, [sp, 0x4] subs r0, 0x1 str r0, [sp, 0x18] cmp r6, r0 bge _080FFE54 adds r0, r3, 0 add r0, r10 lsls r0, 3 str r0, [sp, 0x10] _080FFD82: ldr r1, [sp, 0x10] adds r0, r1, r2 ldrh r0, [r0, 0xA] subs r0, r6 lsls r0, 16 lsrs r0, 16 mov r9, r0 movs r7, 0 adds r6, 0x1 str r6, [sp, 0x14] ldr r3, [sp, 0x8] cmp r7, r3 bcs _080FFE48 lsls r0, 16 str r0, [sp, 0x20] _080FFDA0: ldr r1, [sp, 0x10] adds r0, r1, r2 ldrh r0, [r0, 0x8] adds r0, r7 lsls r0, 16 mov r8, r0 asrs r6, r0, 16 mov r2, r9 lsls r1, r2, 16 adds r0, r6, 0 asrs r1, 16 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 ldr r3, [sp, 0x4] ldr r1, [sp, 0x14] subs r0, r3, r1 ldr r2, [sp, 0x8] adds r1, r0, 0 muls r1, r2 adds r1, r7 ldr r3, [sp] ldr r0, [r3, 0x1C] lsls r1, 1 adds r1, r0 movs r2, 0x80 lsls r2, 2 adds r0, r2, 0 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 bl GetBehaviorByMetatileId movs r3, 0xF0 lsls r3, 8 adds r1, r3, 0 adds r5, r1, 0 ands r5, r0 adds r0, r4, 0 bl sub_805729C lsls r0, 24 cmp r0, 0 bne _080FFE0C adds r0, r4, 0 adds r1, r5, 0 bl sub_80FFB6C lsls r0, 24 cmp r0, 0 bne _080FFE0C b _080FFFF4 _080FFE0C: mov r0, r10 adds r1, r6, 0 ldr r3, [sp, 0x20] asrs r2, r3, 16 adds r3, r5, 0 bl sub_80FFB94 lsls r0, 24 cmp r0, 0 bne _080FFE22 b _080FFFF4 _080FFE22: mov r1, r8 lsrs r0, r1, 16 ldr r2, [sp, 0x20] lsrs r1, r2, 16 movs r2, 0 bl GetFieldObjectIdByXYZ lsls r0, 24 lsrs r0, 24 cmp r0, 0x10 beq _080FFE3A b _080FFFF4 _080FFE3A: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldr r2, _080FFF18 ldr r3, [sp, 0x8] cmp r7, r3 bcc _080FFDA0 _080FFE48: ldr r1, [sp, 0x14] lsls r0, r1, 24 lsrs r6, r0, 24 ldr r3, [sp, 0x18] cmp r6, r3 blt _080FFD82 _080FFE54: ldr r0, [sp, 0x1C] add r0, r10 lsls r0, 3 adds r0, r2 ldrh r0, [r0, 0xA] ldr r1, [sp, 0x4] subs r0, r1 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r9, r0 movs r7, 0 ldr r3, [sp, 0x8] cmp r7, r3 bcc _080FFE74 b _08100024 _080FFE74: lsls r0, 16 str r0, [sp, 0x20] _080FFE78: ldr r0, [sp, 0x1C] add r0, r10 lsls r0, 3 ldr r1, _080FFF18 adds r0, r1 ldrh r0, [r0, 0x8] adds r0, r7 lsls r0, 16 mov r8, r0 asrs r6, r0, 16 mov r2, r9 lsls r1, r2, 16 adds r0, r6, 0 asrs r1, 16 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 ldr r3, [sp] ldr r0, [r3, 0x1C] lsls r1, r7, 1 adds r1, r0 movs r2, 0x80 lsls r2, 2 adds r0, r2, 0 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 bl GetBehaviorByMetatileId movs r3, 0xF0 lsls r3, 8 adds r1, r3, 0 adds r5, r1, 0 ands r5, r0 adds r0, r4, 0 bl sub_805729C lsls r0, 24 cmp r0, 0 bne _080FFEDA adds r0, r4, 0 bl sub_80572B0 lsls r0, 24 cmp r0, 0 bne _080FFEDA b _080FFFF4 _080FFEDA: mov r0, r10 adds r1, r6, 0 ldr r3, [sp, 0x20] asrs r2, r3, 16 adds r3, r5, 0 bl sub_80FFB94 lsls r0, 24 cmp r0, 0 bne _080FFEF0 b _080FFFF4 _080FFEF0: mov r1, r8 lsrs r0, r1, 16 ldr r2, [sp, 0x20] lsrs r1, r2, 16 movs r2, 0 bl GetFieldObjectIdByXYZ lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080FFF0A cmp r4, 0x10 bne _080FFFF4 _080FFF0A: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldr r3, [sp, 0x8] cmp r7, r3 bcc _080FFE78 b _08100024 .align 2, 0 _080FFF18: .4byte 0x03004b20 _080FFF1C: movs r6, 0 ldr r0, [sp, 0x4] cmp r6, r0 bcc _080FFF26 b _08100024 _080FFF26: mov r1, r10 lsls r0, r1, 2 add r0, r10 lsls r1, r0, 3 ldr r2, _080FFF9C adds r0, r1, r2 ldrh r0, [r0, 0xA] subs r0, r6 lsls r0, 16 lsrs r0, 16 mov r9, r0 movs r7, 0 ldr r3, [sp, 0x8] cmp r7, r3 bcs _080FFF8C adds r0, r2, 0 adds r1, r0 mov r8, r1 mov r1, r9 lsls r0, r1, 16 asrs r5, r0, 16 _080FFF50: mov r2, r8 ldrh r0, [r2, 0x8] adds r0, r7 lsls r0, 16 asrs r4, r0, 16 adds r0, r4, 0 adds r1, r5, 0 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl sub_80572B0 lsls r0, 24 cmp r0, 0 beq _080FFFF4 adds r0, r4, 0 adds r1, r5, 0x1 bl MapGridGetMetatileIdAt movs r1, 0xA3 lsls r1, 2 cmp r0, r1 beq _080FFFF4 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldr r3, [sp, 0x8] cmp r7, r3 bcc _080FFF50 _080FFF8C: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldr r0, [sp, 0x4] cmp r6, r0 bcc _080FFF26 b _08100024 .align 2, 0 _080FFF9C: .4byte 0x03004b20 _080FFFA0: mov r3, r10 lsls r1, r3, 2 adds r0, r1, r3 lsls r0, 3 adds r0, r2 ldrh r0, [r0, 0xA] mov r9, r0 movs r7, 0 str r1, [sp, 0x1C] ldr r0, [sp, 0x8] cmp r7, r0 bcs _08100024 adds r6, r2, 0 mov r1, r9 lsls r1, 16 str r1, [sp, 0x20] _080FFFC0: ldr r0, [sp, 0x1C] add r0, r10 lsls r0, 3 adds r0, r6 ldrh r0, [r0, 0x8] adds r0, r7 lsls r0, 16 lsrs r5, r0, 16 asrs r0, 16 mov r2, r9 lsls r1, r2, 16 asrs r1, 16 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 ldr r3, [sp] ldrb r0, [r3, 0x12] cmp r0, 0x5 bne _080FFFF8 _080FFFE8: adds r0, r4, 0 bl sub_80572EC lsls r0, 24 cmp r0, 0 bne _08100004 _080FFFF4: movs r0, 0 b _08100026 _080FFFF8: adds r0, r4, 0 bl sub_80572D8 lsls r0, 24 cmp r0, 0 beq _080FFFE8 _08100004: adds r0, r5, 0 ldr r2, [sp, 0x20] lsrs r1, r2, 16 movs r2, 0 bl GetFieldObjectIdByXYZ lsls r0, 24 lsrs r0, 24 cmp r0, 0x10 bne _080FFFF4 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldr r3, [sp, 0x8] cmp r7, r3 bcc _080FFFC0 _08100024: movs r0, 0x1 _08100026: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80FFC24 thumb_func_start sub_8100038 sub_8100038: @ 8100038 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0810006C ldrb r1, [r0] ldr r0, _08100070 ldr r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r1, 5 ldr r0, _08100074 adds r1, r0 adds r0, r4, 0 bl sub_80FFC24 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08100080 ldr r1, _08100078 ldr r2, _0810007C adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField b _08100092 .align 2, 0 _0810006C: .4byte 0x020388f5 _08100070: .4byte 0x020388d0 _08100074: .4byte gDecorations _08100078: .4byte gUnknown_0840FABE _0810007C: .4byte sub_81000A0 _08100080: movs r0, 0x20 bl audio_play ldr r1, _08100098 ldr r2, _0810009C adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField _08100092: pop {r4} pop {r0} bx r0 .align 2, 0 _08100098: .4byte gUnknown_0840FACD _0810009C: .4byte sub_81006A8 thumb_func_end sub_8100038 thumb_func_start sub_81000A0 sub_81000A0: @ 81000A0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1 bl sub_8072974 ldr r1, _081000C0 adds r0, r4, 0 bl sub_80F914C pop {r4} pop {r0} bx r0 .align 2, 0 _081000C0: .4byte gUnknown_083EC95C thumb_func_end sub_81000A0 thumb_func_start sub_81000C4 sub_81000C4: @ 81000C4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset adds r0, r4, 0 bl sub_8100174 ldr r2, _0810010C ldr r0, _08100110 ldrb r1, [r0] ldr r0, _08100114 ldr r0, [r0] adds r0, r1 ldrb r3, [r0] lsls r0, r3, 5 adds r0, r2 ldrb r0, [r0, 0x11] cmp r0, 0x4 beq _0810011C ldr r0, _08100118 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] ldrh r1, [r1, 0xA] adds r2, r3, 0 bl sub_80FF394 b _0810013C .align 2, 0 _0810010C: .4byte gDecorations _08100110: .4byte 0x020388f5 _08100114: .4byte 0x020388d0 _08100118: .4byte 0x03004b20 _0810011C: ldr r2, _0810015C ldr r0, _08100160 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] subs r0, 0x7 strh r0, [r2] ldr r2, _08100164 ldrh r0, [r1, 0xA] subs r0, 0x7 strh r0, [r2] ldr r0, _08100168 bl script_env_1_execute_new_script _0810013C: ldr r2, _0810016C ldr r0, _08100170 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] adds r1, 0x2 strh r1, [r0, 0x22] adds r0, r4, 0 bl sub_810028C pop {r4} pop {r0} bx r0 .align 2, 0 _0810015C: .4byte 0x020391a4 _08100160: .4byte 0x03004b20 _08100164: .4byte 0x020391a6 _08100168: .4byte gUnknown_081A2F7B _0810016C: .4byte 0x02020004 _08100170: .4byte 0x020391a8 thumb_func_end sub_81000C4 thumb_func_start sub_8100174 sub_8100174: @ 8100174 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r3, 0 ldr r0, _081001B0 ldrb r1, [r0, 0x8] adds r5, r0, 0 cmp r3, r1 bcs _0810019A ldr r4, [r5] _08100188: adds r2, r4, r3 ldrb r0, [r2] cmp r0, 0 beq _081001B8 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r1 bcc _08100188 _0810019A: ldrb r0, [r5, 0x9] cmp r0, 0 bne _08100204 movs r3, 0 ldr r0, _081001B4 ldrb r1, [r0] adds r2, r0, 0 cmp r1, 0 bne _081001F0 b _08100210 .align 2, 0 _081001B0: .4byte 0x0201f000 _081001B4: .4byte 0x020388d6 _081001B8: ldr r0, _081001E4 ldrb r1, [r0] ldr r0, _081001E8 ldr r0, [r0] adds r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r2, [r5, 0x4] adds r2, r3 ldr r0, _081001EC lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldrb r0, [r1, 0x8] subs r0, 0x7 lsls r0, 4 ldrb r1, [r1, 0xA] subs r1, 0x7 adds r0, r1 strb r0, [r2] b _0810019A .align 2, 0 _081001E4: .4byte 0x020388f5 _081001E8: .4byte 0x020388d0 _081001EC: .4byte 0x03004b20 _081001F0: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0xF bhi _0810023E adds r1, r3, r2 ldrb r0, [r1] cmp r0, 0 bne _081001F0 b _08100236 _08100204: movs r3, 0 ldr r0, _0810021C ldrb r1, [r0] adds r2, r0, 0 cmp r1, 0 bne _08100224 _08100210: ldr r0, _08100220 ldrb r0, [r0] adds r0, 0x1 strb r0, [r2] b _0810023E .align 2, 0 _0810021C: .4byte 0x020388e6 _08100220: .4byte 0x020388f5 _08100224: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0xB bhi _0810023E adds r1, r3, r2 ldrb r0, [r1] cmp r0, 0 bne _08100224 _08100236: ldr r0, _08100244 ldrb r0, [r0] adds r0, 0x1 strb r0, [r1] _0810023E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08100244: .4byte 0x020388f5 thumb_func_end sub_8100174 thumb_func_start sub_8100248 sub_8100248: @ 8100248 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1 bl sub_8072974 ldr r1, _08100268 adds r0, r4, 0 bl sub_80F914C pop {r4} pop {r0} bx r0 .align 2, 0 _08100268: .4byte gUnknown_083EC964 thumb_func_end sub_8100248 thumb_func_start sub_810026C sub_810026C: @ 810026C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset adds r0, r4, 0 bl sub_810028C pop {r4} pop {r0} bx r0 thumb_func_end sub_810026C thumb_func_start sub_810028C sub_810028C: @ 810028C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 movs r1, 0 bl fade_screen ldr r1, _081002B4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] ldr r1, _081002B8 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _081002B4: .4byte 0x03004b20 _081002B8: .4byte c1_overworld_prev_quest thumb_func_end sub_810028C thumb_func_start c1_overworld_prev_quest c1_overworld_prev_quest: @ 81002BC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _081002DC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r5, r0, r1 movs r1, 0xC ldrsh r0, [r5, r1] cmp r0, 0 beq _081002E0 cmp r0, 0x1 beq _08100300 b _0810031C .align 2, 0 _081002DC: .4byte 0x03004b20 _081002E0: bl script_env_2_enable ldr r0, _081002FC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0810031C adds r0, r4, 0 bl sub_80FF114 movs r0, 0x1 strh r0, [r5, 0xC] b _0810031C .align 2, 0 _081002FC: .4byte 0x0202f388 _08100300: bl sub_81016F4 ldr r0, _08100324 bl FreeSpritePaletteByTag ldr r1, _08100328 ldr r0, _0810032C str r0, [r1] ldr r0, _08100330 bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _0810031C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08100324: .4byte 0x00000bb8 _08100328: .4byte 0x0300485c _0810032C: .4byte sub_8100364 _08100330: .4byte c2_exit_to_overworld_2_switch thumb_func_end c1_overworld_prev_quest thumb_func_start sub_8100334 sub_8100334: @ 8100334 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08100354 ldr r0, _0810035C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08100360 str r0, [r1] _08100354: pop {r4} pop {r0} bx r0 .align 2, 0 _0810035C: .4byte 0x03004b20 _08100360: .4byte sub_80FE948 thumb_func_end sub_8100334 thumb_func_start sub_8100364 sub_8100364: @ 8100364 push {lr} bl script_env_2_enable bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed bl pal_fill_black ldr r0, _08100388 movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 bl sub_80FE7EC pop {r0} bx r0 .align 2, 0 _08100388: .4byte sub_8100334 thumb_func_end sub_8100364 thumb_func_start sub_810038C sub_810038C: @ 810038C push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _081003BC adds r2, r1, r0 ldr r0, _081003C0 ldrb r1, [r0] adds r3, r0, 0 cmp r1, 0x1 bne _081003C4 movs r1, 0x2 ldrsh r0, [r2, r1] movs r4, 0xC ldrsh r1, [r2, r4] subs r0, r1 subs r0, 0x6 cmp r0, 0 bge _081003C4 ldrh r0, [r2, 0x2] adds r0, 0x1 b _081003DE .align 2, 0 _081003BC: .4byte 0x03004b28 _081003C0: .4byte 0x020391aa _081003C4: ldrb r0, [r3] cmp r0, 0x2 bne _081003E8 movs r0, 0x2 ldrsh r1, [r2, r0] subs r1, 0x7 ldr r0, _081003E4 ldr r0, [r0] ldr r0, [r0, 0x4] cmp r1, r0 blt _081003E8 ldrh r0, [r2, 0x2] subs r0, 0x1 _081003DE: strh r0, [r2, 0x2] movs r0, 0 b _0810042A .align 2, 0 _081003E4: .4byte 0x0202e828 _081003E8: ldrb r0, [r3] cmp r0, 0x3 bne _081003FE movs r1, 0 ldrsh r0, [r2, r1] subs r0, 0x7 cmp r0, 0 bge _081003FE ldrh r0, [r2] adds r0, 0x1 b _0810041E _081003FE: ldrb r0, [r3] cmp r0, 0x4 bne _08100428 movs r3, 0 ldrsh r1, [r2, r3] movs r4, 0xA ldrsh r0, [r2, r4] adds r1, r0 subs r1, 0x8 ldr r0, _08100424 ldr r0, [r0] ldr r0, [r0] cmp r1, r0 blt _08100428 ldrh r0, [r2] subs r0, 0x1 _0810041E: strh r0, [r2] movs r0, 0 b _0810042A .align 2, 0 _08100424: .4byte 0x0202e828 _08100428: movs r0, 0x1 _0810042A: pop {r4} pop {r1} bx r1 thumb_func_end sub_810038C thumb_func_start sub_8100430 sub_8100430: @ 8100430 push {lr} ldr r0, _08100450 ldrh r0, [r0, 0x2C] movs r1, 0xF0 ands r1, r0 cmp r1, 0x40 beq _08100454 cmp r1, 0x80 beq _08100454 cmp r1, 0x20 beq _08100454 cmp r1, 0x10 beq _08100454 movs r0, 0 b _08100456 .align 2, 0 _08100450: .4byte 0x03001770 _08100454: movs r0, 0x1 _08100456: pop {r1} bx r1 thumb_func_end sub_8100430 thumb_func_start sub_810045C sub_810045C: @ 810045C push {r4,lr} ldr r1, _08100488 movs r0, 0 strb r0, [r1] ldr r4, _0810048C ldr r3, _08100490 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r2, 0 strh r2, [r0, 0x32] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r2, [r0, 0x34] pop {r4} pop {r0} bx r0 .align 2, 0 _08100488: .4byte 0x020391aa _0810048C: .4byte 0x02020004 _08100490: .4byte 0x020391a8 thumb_func_end sub_810045C thumb_func_start sub_8100494 sub_8100494: @ 8100494 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r5, _081004D0 ldr r3, _081004D4 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x36 ldrsh r6, [r0, r1] cmp r6, 0 beq _081004B2 b _081005DE _081004B2: ldr r1, _081004D8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 movs r1, 0x1C ldrsh r0, [r2, r1] cmp r0, 0x1 bne _081004E0 ldr r0, _081004DC movs r3, 0x20 ldrsh r1, [r2, r3] lsls r1, 3 b _081004EE .align 2, 0 _081004D0: .4byte 0x02020004 _081004D4: .4byte 0x020391a8 _081004D8: .4byte 0x03004b20 _081004DC: .4byte gUnknown_083EC96C _081004E0: cmp r0, 0x2 bne _08100500 ldr r0, _081004FC movs r3, 0x20 ldrsh r1, [r2, r3] lsls r1, 3 adds r0, 0x4 _081004EE: adds r1, r0 ldr r1, [r1] adds r0, r4, 0 bl _call_via_r1 b _0810063C .align 2, 0 _081004FC: .4byte gUnknown_083EC96C _08100500: ldr r7, _08100644 ldrh r1, [r7, 0x2C] movs r0, 0xF0 mov r12, r0 ands r0, r1 cmp r0, 0x40 bne _08100534 ldr r1, _08100648 movs r0, 0x1 strb r0, [r1] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x32] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _0810064C strh r1, [r0, 0x34] ldrh r0, [r2, 0xA] subs r0, 0x1 strh r0, [r2, 0xA] _08100534: ldrh r1, [r7, 0x2C] mov r0, r12 ands r0, r1 cmp r0, 0x80 bne _08100564 ldr r1, _08100648 movs r0, 0x2 strb r0, [r1] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x32] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x2 strh r1, [r0, 0x34] ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] _08100564: ldrh r1, [r7, 0x2C] mov r0, r12 ands r0, r1 cmp r0, 0x20 bne _08100594 ldr r1, _08100648 movs r0, 0x3 strb r0, [r1] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _0810064C strh r1, [r0, 0x32] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x34] ldrh r0, [r2, 0x8] subs r0, 0x1 strh r0, [r2, 0x8] _08100594: ldrh r1, [r7, 0x2C] mov r0, r12 ands r0, r1 cmp r0, 0x10 bne _081005C4 ldr r1, _08100648 movs r0, 0x4 strb r0, [r1] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x2 strh r1, [r0, 0x32] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x34] ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] _081005C4: bl sub_8100430 lsls r0, 24 cmp r0, 0 beq _081005DA adds r0, r4, 0 bl sub_810038C lsls r0, 24 cmp r0, 0 bne _081005DE _081005DA: bl sub_810045C _081005DE: ldr r0, _08100648 ldrb r0, [r0] cmp r0, 0 beq _0810060C ldr r3, _08100650 ldr r2, _08100654 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x36] adds r1, 0x1 strh r1, [r0, 0x36] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrh r2, [r1, 0x36] movs r0, 0x7 ands r0, r2 strh r0, [r1, 0x36] _0810060C: ldr r0, _08100658 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r2, r1, r0 movs r1, 0x1C ldrsh r0, [r2, r1] cmp r0, 0 bne _0810063C ldr r4, _08100644 ldrh r1, [r4, 0x2E] movs r3, 0x1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0810062E strh r3, [r2, 0x1C] _0810062E: ldrh r1, [r4, 0x2E] movs r3, 0x2 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0810063C strh r3, [r2, 0x1C] _0810063C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08100644: .4byte 0x03001770 _08100648: .4byte 0x020391aa _0810064C: .4byte 0x0000fffe _08100650: .4byte 0x02020004 _08100654: .4byte 0x020391a8 _08100658: .4byte 0x03004b20 thumb_func_end sub_8100494 thumb_func_start sub_810065C sub_810065C: @ 810065C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset ldr r2, _08100698 ldr r0, _0810069C ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r2, 0 strh r2, [r0, 0x3C] ldr r1, _081006A0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x1C] ldr r1, _081006A4 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08100698: .4byte 0x02020004 _0810069C: .4byte 0x020391a8 _081006A0: .4byte 0x03004b20 _081006A4: .4byte sub_8100494 thumb_func_end sub_810065C thumb_func_start sub_81006A8 sub_81006A8: @ 81006A8 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _081006CC ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081006C2 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081006C8 _081006C2: adds r0, r2, 0 bl sub_810065C _081006C8: pop {r0} bx r0 .align 2, 0 _081006CC: .4byte 0x03001770 thumb_func_end sub_81006A8 thumb_func_start sub_81006D0 sub_81006D0: @ 81006D0 push {r4,r5,lr} adds r3, r0, 0 movs r1, 0 adds r2, r3, 0 adds r2, 0x84 movs r5, 0 ldr r4, _08100708 _081006DE: adds r0, r2, r1 strb r5, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r4 bls _081006DE movs r1, 0 adds r2, r3, 0x4 movs r3, 0 _081006F2: lsls r0, r1, 1 adds r0, r2, r0 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x3F bls _081006F2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08100708: .4byte 0x000007ff thumb_func_end sub_81006D0 thumb_func_start sub_810070C sub_810070C: @ 810070C push {r4,r5,lr} adds r5, r0, 0 lsls r1, 16 movs r2, 0 ldr r0, _0810073C ldr r0, [r0] ldr r0, [r0, 0x10] lsrs r4, r1, 12 ldr r3, [r0, 0x8] _0810071E: lsls r1, r2, 1 adds r1, r5 adds r0, r4, r2 lsls r0, 1 adds r0, r3 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0xF bls _0810071E pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810073C: .4byte 0x0202e828 thumb_func_end sub_810070C thumb_func_start sub_8100740 sub_8100740: @ 8100740 push {r4-r7,lr} sub sp, 0x20 adds r7, r0, 0 lsls r1, 16 lsrs r2, r1, 16 lsrs r3, r1, 26 cmp r2, 0 beq _08100754 ldr r0, _08100784 ands r2, r0 _08100754: movs r5, 0 ldr r0, _08100788 ldr r6, [r0] lsls r4, r2, 5 _0810075C: mov r0, sp adds r2, r0, r5 ldr r0, [r6, 0x10] ldr r0, [r0, 0x4] adds r1, r4, r5 adds r0, r1 ldrb r0, [r0] strb r0, [r2] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1F bls _0810075C cmp r3, 0x1 beq _081007AE cmp r3, 0x1 bgt _0810078C cmp r3, 0 beq _08100796 b _0810086A .align 2, 0 _08100784: .4byte 0x000003ff _08100788: .4byte 0x0202e828 _0810078C: cmp r3, 0x2 beq _0810080E cmp r3, 0x3 beq _08100846 b _0810086A _08100796: movs r5, 0 _08100798: adds r1, r7, r5 mov r2, sp adds r0, r2, r5 ldrb r0, [r0] strb r0, [r1] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1F bls _08100798 b _0810086A _081007AE: movs r5, 0 movs r6, 0xF _081007B2: lsls r4, r5, 2 adds r4, r7 adds r5, 0x1 lsls r3, r5, 2 subs r0, r3, 0x1 add r0, sp ldrb r2, [r0] lsrs r1, r2, 4 adds r0, r6, 0 ands r0, r2 lsls r0, 4 adds r1, r0 strb r1, [r4] subs r0, r3, 0x2 add r0, sp ldrb r2, [r0] lsrs r1, r2, 4 adds r0, r6, 0 ands r0, r2 lsls r0, 4 adds r1, r0 strb r1, [r4, 0x1] subs r0, r3, 0x3 add r0, sp ldrb r2, [r0] lsrs r1, r2, 4 adds r0, r6, 0 ands r0, r2 lsls r0, 4 adds r1, r0 strb r1, [r4, 0x2] subs r3, 0x4 mov r1, sp adds r0, r1, r3 ldrb r2, [r0] lsrs r1, r2, 4 adds r0, r6, 0 ands r0, r2 lsls r0, 4 adds r1, r0 strb r1, [r4, 0x3] lsls r5, 16 lsrs r5, 16 cmp r5, 0x7 bls _081007B2 b _0810086A _0810080E: movs r5, 0 movs r3, 0x7 _08100812: lsls r2, r5, 2 adds r2, r7 subs r1, r3, r5 lsls r1, 2 mov r4, sp adds r0, r4, r1 ldrb r0, [r0] strb r0, [r2] adds r0, r1, 0x1 add r0, sp ldrb r0, [r0] strb r0, [r2, 0x1] adds r0, r1, 0x2 add r0, sp ldrb r0, [r0] strb r0, [r2, 0x2] adds r1, 0x3 adds r0, r4, r1 ldrb r0, [r0] strb r0, [r2, 0x3] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x7 bls _08100812 b _0810086A _08100846: movs r5, 0 movs r4, 0x1F movs r6, 0xF _0810084C: adds r3, r7, r5 subs r0, r4, r5 add r0, sp ldrb r2, [r0] lsrs r1, r2, 4 adds r0, r6, 0 ands r0, r2 lsls r0, 4 adds r1, r0 strb r1, [r3] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1F bls _0810084C _0810086A: add sp, 0x20 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8100740 thumb_func_start sub_8100874 sub_8100874: @ 8100874 push {r4,r5,lr} adds r5, r0, 0 movs r4, 0 _0810087A: lsls r0, r4, 5 adds r0, 0x84 adds r0, r5, r0 lsls r2, r4, 1 adds r1, r5, 0x4 adds r1, r2 ldrh r1, [r1] bl sub_8100740 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3F bls _0810087A pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8100874 thumb_func_start sub_810089C sub_810089C: @ 810089C lsls r0, 16 ldr r1, _081008B4 ldr r1, [r1] ldr r1, [r1, 0x14] ldr r1, [r1, 0xC] lsrs r0, 15 adds r0, r1 ldrh r1, [r0] ldr r0, _081008B8 ands r0, r1 bx lr .align 2, 0 _081008B4: .4byte 0x0202e828 _081008B8: .4byte 0x00000fff thumb_func_end sub_810089C thumb_func_start sub_81008BC sub_81008BC: @ 81008BC push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 ldr r0, [r0] ldrb r0, [r0, 0x12] movs r6, 0 ldr r1, _0810092C lsls r5, r0, 4 adds r0, r5, r1 ldrb r0, [r0, 0xC] cmp r6, r0 bcs _08100920 adds r7, r1, 0 _081008D8: mov r4, r8 ldm r4!, {r1} adds r0, r7, 0x4 adds r0, r5, r0 ldr r0, [r0] adds r0, r6 ldrb r0, [r0] ldr r1, [r1, 0x1C] lsls r0, 1 adds r0, r1 ldrh r0, [r0] adds r1, r7, 0 adds r1, 0x8 adds r1, r5, r1 ldr r1, [r1] adds r1, r6 lsls r0, 3 ldrb r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 bl sub_810089C adds r2, r5, r7 ldr r1, [r2] adds r1, r6 ldrb r1, [r1] lsls r1, 1 adds r4, r1 strh r0, [r4] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldrb r2, [r2, 0xC] cmp r6, r2 bcc _081008D8 _08100920: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810092C: .4byte gUnknown_083EC860 thumb_func_end sub_81008BC thumb_func_start sub_8100930 sub_8100930: @ 8100930 push {r4,r5,lr} lsls r0, 24 ldr r3, _08100998 movs r1, 0 strb r1, [r3] ldrb r2, [r3, 0x1] subs r1, 0x4 ands r1, r2 movs r4, 0xD negs r4, r4 ands r1, r4 movs r2, 0x11 negs r2, r2 ands r1, r2 subs r2, 0x10 ands r1, r2 strb r1, [r3, 0x1] ldr r1, _0810099C lsrs r0, 22 adds r0, r1 ldrb r1, [r0] movs r5, 0x3F lsls r1, 6 strb r1, [r3, 0x1] ldrh r2, [r3, 0x2] ldr r1, _081009A0 ands r1, r2 strh r1, [r3, 0x2] ldrb r2, [r3, 0x3] movs r1, 0x3F negs r1, r1 ands r1, r2 strb r1, [r3, 0x3] ldrb r0, [r0, 0x1] lsls r0, 6 ands r5, r1 orrs r5, r0 strb r5, [r3, 0x3] ldrh r1, [r3, 0x4] ldr r0, _081009A4 ands r0, r1 strh r0, [r3, 0x4] ldrb r0, [r3, 0x5] ands r4, r0 movs r0, 0x4 orrs r4, r0 movs r0, 0xF ands r4, r0 strb r4, [r3, 0x5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08100998: .4byte 0x020391ac _0810099C: .4byte gUnknown_083EC900 _081009A0: .4byte 0xfffffe00 _081009A4: .4byte 0xfffffc00 thumb_func_end sub_8100930 thumb_func_start sub_81009A8 sub_81009A8: @ 81009A8 movs r1, 0 strh r1, [r0, 0x32] strh r1, [r0, 0x34] strh r1, [r0, 0x36] strh r1, [r0, 0x38] strh r1, [r0, 0x3A] strh r1, [r0, 0x3C] ldr r1, _081009BC str r1, [r0, 0x1C] bx lr .align 2, 0 _081009BC: .4byte sub_81009C0 thumb_func_end sub_81009A8 thumb_func_start sub_81009C0 sub_81009C0: @ 81009C0 push {lr} adds r2, r0, 0 movs r1, 0x3C ldrsh r0, [r2, r1] cmp r0, 0 bne _081009FA movs r1, 0x3A ldrsh r0, [r2, r1] cmp r0, 0xE bgt _081009E2 adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 b _081009EC _081009E2: adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 _081009EC: strb r0, [r3] ldrh r0, [r2, 0x3A] adds r0, 0x1 movs r1, 0x1F ands r0, r1 strh r0, [r2, 0x3A] b _08100A06 _081009FA: adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _08100A06: pop {r0} bx r0 thumb_func_end sub_81009C0 thumb_func_start sub_8100A0C sub_8100A0C: @ 8100A0C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_8100D38 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08100A44 movs r0, 0x1 movs r1, 0 bl fade_screen ldr r1, _08100A3C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] ldr r1, _08100A40 str r1, [r0] b _08100A50 .align 2, 0 _08100A3C: .4byte 0x03004b20 _08100A40: .4byte sub_8100E70 _08100A44: ldr r1, _08100A58 ldr r2, _08100A5C adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField _08100A50: pop {r4} pop {r0} bx r0 .align 2, 0 _08100A58: .4byte gUnknown_0840FD11 _08100A5C: .4byte sub_80FE428 thumb_func_end sub_8100A0C thumb_func_start sub_8100A60 sub_8100A60: @ 8100A60 lsls r0, 24 lsrs r0, 24 ldr r3, _08100A78 ldr r1, [r3] adds r1, r0 movs r2, 0 strb r2, [r1] ldr r1, [r3, 0x4] adds r1, r0 strb r2, [r1] bx lr .align 2, 0 _08100A78: .4byte 0x0201f000 thumb_func_end sub_8100A60 thumb_func_start sub_8100A7C sub_8100A7C: @ 8100A7C push {r4-r6,lr} ldr r6, _08100A9C movs r0, 0 strh r0, [r6] ldr r2, _08100AA0 strh r0, [r2] ldr r4, _08100AA4 ldr r1, _08100AA8 ldrh r0, [r4] ldrb r1, [r1] cmp r0, r1 bne _08100AB8 movs r0, 0x1 strh r0, [r2] b _08100B0A .align 2, 0 _08100A9C: .4byte 0x0202e8ce _08100AA0: .4byte 0x0202e8dc _08100AA4: .4byte 0x0202e8cc _08100AA8: .4byte 0x02039234 _08100AAC: ldr r1, _08100AB4 ldrb r0, [r2] strh r0, [r1] b _08100B0A .align 2, 0 _08100AB4: .4byte 0x0202e8d0 _08100AB8: ldr r3, _08100B10 ldr r2, _08100B14 ldr r1, _08100B18 ldrh r0, [r4] lsls r0, 3 adds r4, r0, r1 ldrb r1, [r4] ldr r0, [r2] adds r0, r1 ldrb r0, [r0] lsls r0, 5 adds r0, r3 ldrb r0, [r0, 0x11] cmp r0, 0x4 bne _08100B0A ldrh r0, [r4, 0x4] strh r0, [r6] ldrb r0, [r4] bl sub_8100A60 movs r1, 0 ldr r0, _08100B1C ldr r0, [r0, 0x4] ldrb r2, [r0] cmp r1, r2 bcs _08100B0A ldr r5, [r0, 0x4] ldrh r4, [r6] adds r3, r2, 0 _08100AF2: lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0, r5 ldrh r0, [r2, 0x14] cmp r0, r4 beq _08100AAC adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r3 bcc _08100AF2 _08100B0A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08100B10: .4byte gDecorations _08100B14: .4byte 0x0201f000 _08100B18: .4byte 0x020391b4 _08100B1C: .4byte 0x0202e828 thumb_func_end sub_8100A7C thumb_func_start sub_8100B20 sub_8100B20: @ 8100B20 push {r4-r6,lr} movs r2, 0 ldr r0, _08100B4C ldr r0, [r0, 0x4] ldrb r1, [r0] cmp r2, r1 bcs _08100B64 adds r3, r0, 0 ldr r5, [r3, 0x4] ldr r0, _08100B50 ldrh r4, [r0] ldr r6, _08100B54 _08100B38: lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0, r5 ldrh r0, [r1, 0x14] cmp r0, r4 bne _08100B58 ldrb r0, [r1] strh r0, [r6] b _08100B64 .align 2, 0 _08100B4C: .4byte 0x0202e828 _08100B50: .4byte 0x0202e8cc _08100B54: .4byte 0x0202e8ce _08100B58: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 ldrb r0, [r3] cmp r2, r0 bcc _08100B38 _08100B64: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8100B20 thumb_func_start sub_8100B6C sub_8100B6C: @ 8100B6C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC movs r7, 0 b _08100C64 _08100B7C: lsls r3, r7, 3 ldr r0, _08100BE0 adds r4, r3, r0 ldrb r1, [r4] ldr r2, _08100BE4 ldr r0, [r2] adds r0, r1 ldrb r6, [r0] lsls r0, r6, 5 ldr r5, _08100BE8 adds r0, r5 ldrb r2, [r0, 0x11] ldr r5, _08100BE4 ldr r0, [r5, 0x4] adds r0, r1 ldrb r0, [r0] lsrs r1, r0, 4 mov r9, r1 movs r5, 0xF mov r10, r5 mov r1, r10 ands r1, r0 mov r10, r1 adds r5, r3, 0 adds r3, r7, 0x1 str r3, [sp] cmp r2, 0x4 beq _08100C5E cmp r6, 0x29 bne _08100BD0 mov r0, r9 adds r0, 0x7 adds r1, 0x7 bl MapGridGetMetatileIdAt movs r1, 0xA3 lsls r1, 2 cmp r0, r1 bne _08100BD0 ldrb r0, [r4, 0x2] adds r0, 0x1 strb r0, [r4, 0x2] _08100BD0: movs r6, 0 ldr r1, _08100BE0 adds r2, r5, 0 adds r0, r5, r1 adds r3, r7, 0x1 str r3, [sp] b _08100C4E .align 2, 0 _08100BE0: .4byte 0x020391b4 _08100BE4: .4byte 0x0201f000 _08100BE8: .4byte gDecorations _08100BEC: movs r4, 0 adds r0, r2, r1 adds r7, r6, 0x1 str r7, [sp, 0x4] ldrb r0, [r0, 0x1] cmp r4, r0 bcs _08100C42 ldr r0, _08100C7C adds r0, r5 mov r8, r0 subs r1, r6, 0x7 str r1, [sp, 0x8] _08100C04: adds r0, r4, 0x7 add r0, r9 ldr r1, _08100C80 ldr r3, [r1] mov r7, r10 subs r2, r7, r6 ldr r1, [r3] muls r2, r1 mov r7, r9 adds r1, r7, r4 adds r1, r2 ldr r2, [r3, 0xC] lsls r1, 1 adds r1, r2 ldrh r1, [r1] movs r3, 0xC0 lsls r3, 6 adds r2, r3, 0 orrs r2, r1 mov r7, r10 ldr r3, [sp, 0x8] subs r1, r7, r3 bl MapGridSetMetatileEntryAt adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 mov r7, r8 ldrb r7, [r7, 0x1] cmp r4, r7 bcc _08100C04 _08100C42: ldr r1, [sp, 0x4] lsls r0, r1, 24 lsrs r6, r0, 24 ldr r1, _08100C7C adds r2, r5, 0 adds r0, r5, r1 _08100C4E: ldrb r0, [r0, 0x2] cmp r6, r0 bcc _08100BEC ldr r2, _08100C7C adds r0, r5, r2 ldrb r0, [r0] bl sub_8100A60 _08100C5E: ldr r3, [sp] lsls r0, r3, 24 lsrs r7, r0, 24 _08100C64: ldr r0, _08100C84 ldrb r0, [r0] cmp r7, r0 bcc _08100B7C add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08100C7C: .4byte 0x020391b4 _08100C80: .4byte 0x0202e828 _08100C84: .4byte 0x02039234 thumb_func_end sub_8100B6C thumb_func_start sub_8100C88 sub_8100C88: @ 8100C88 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08100CAC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r5, r0, r1 movs r1, 0xC ldrsh r0, [r5, r1] cmp r0, 0x1 beq _08100CC4 cmp r0, 0x1 bgt _08100CB0 cmp r0, 0 beq _08100CBA b _08100D24 .align 2, 0 _08100CAC: .4byte 0x03004b20 _08100CB0: cmp r0, 0x2 beq _08100CF4 cmp r0, 0x3 beq _08100D08 b _08100D24 _08100CBA: bl sub_8100B6C movs r0, 0x1 strh r0, [r5, 0xC] b _08100D24 _08100CC4: ldr r0, _08100CEC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08100D24 bl DrawWholeMapView ldr r0, _08100CF0 bl script_env_1_execute_new_script movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset movs r0, 0x2 strh r0, [r5, 0xC] b _08100D24 .align 2, 0 _08100CEC: .4byte 0x0202f388 _08100CF0: .4byte gUnknown_081A2F8A _08100CF4: bl script_env_2_enable adds r0, r4, 0 bl sub_80FED90 bl pal_fill_black movs r0, 0x3 strh r0, [r5, 0xC] b _08100D24 _08100D08: bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08100D24 ldr r0, _08100D2C strh r0, [r5, 0x22] ldr r1, _08100D30 ldr r2, _08100D34 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField _08100D24: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08100D2C: .4byte 0x0000ffff _08100D30: .4byte gUnknown_0840FCEA _08100D34: .4byte sub_81010F0 thumb_func_end sub_8100C88 thumb_func_start sub_8100D38 sub_8100D38: @ 8100D38 push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 movs r2, 0 ldr r0, _08100D68 adds r4, r0, 0 ldrb r0, [r4, 0x8] cmp r2, r0 bcs _08100D7C adds r5, r4, 0 ldr r1, _08100D6C lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r1, r0, r1 _08100D56: ldr r0, [r5] adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _08100D70 strh r2, [r1, 0x22] movs r0, 0x1 b _08100D7E .align 2, 0 _08100D68: .4byte 0x0201f000 _08100D6C: .4byte 0x03004b20 _08100D70: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldrb r0, [r4, 0x8] cmp r2, r0 bcc _08100D56 _08100D7C: movs r0, 0 _08100D7E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8100D38 thumb_func_start SetUpPuttingAwayDecorationPlayerAvatar SetUpPuttingAwayDecorationPlayerAvatar: @ 8100D84 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 bl player_get_direction_lower_nybble movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset ldr r3, _08100DD8 ldr r2, _08100DDC ldr r4, _08100DE0 ldr r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x2E] strb r0, [r3] bl sub_81016C8 ldr r0, _08100DE4 movs r1, 0x78 movs r2, 0x50 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 str r0, [r4, 0x4] ldr r0, _08100DE8 ldrb r0, [r0, 0x8] cmp r0, 0 bne _08100DF0 ldr r1, _08100DEC str r0, [sp] movs r0, 0xC1 b _08100DF8 .align 2, 0 _08100DD8: .4byte 0x020391a8 _08100DDC: .4byte 0x02020004 _08100DE0: .4byte 0x03004880 _08100DE4: .4byte gSpriteTemplate_83ECA88 _08100DE8: .4byte gSaveBlock2 _08100DEC: .4byte SpriteCallbackDummy _08100DF0: ldr r1, _08100E5C movs r0, 0 str r0, [sp] movs r0, 0xC2 _08100DF8: movs r2, 0x88 movs r3, 0x48 bl AddPseudoFieldObject ldr r1, _08100E60 strb r0, [r1] ldr r6, _08100E64 ldr r0, _08100E60 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r2, [r1, 0x5] movs r4, 0xD negs r4, r4 adds r0, r4, 0 ands r0, r2 movs r2, 0x4 mov r8, r2 mov r2, r8 orrs r0, r2 strb r0, [r1, 0x5] ldr r5, _08100E68 ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl DestroySprite ldr r0, _08100E6C ldr r0, [r0, 0x4] strb r0, [r5] ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r1, [r0, 0x5] ands r4, r1 mov r1, r8 orrs r4, r1 strb r4, [r0, 0x5] add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08100E5C: .4byte SpriteCallbackDummy _08100E60: .4byte 0x020391a9 _08100E64: .4byte 0x02020004 _08100E68: .4byte 0x020391a8 _08100E6C: .4byte 0x03004880 thumb_func_end SetUpPuttingAwayDecorationPlayerAvatar thumb_func_start sub_8100E70 sub_8100E70: @ 8100E70 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _08100E94 adds r4, r0, r1 movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08100EC4 cmp r0, 0x1 bgt _08100E98 cmp r0, 0 beq _08100E9E b _08100EE6 .align 2, 0 _08100E94: .4byte 0x03004b28 _08100E98: cmp r0, 0x2 beq _08100ED2 b _08100EE6 _08100E9E: ldr r0, _08100EC0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08100EE6 adds r0, r5, 0 bl sub_80FF0E0 movs r0, 0x1 strh r0, [r4, 0x4] strh r0, [r4, 0xC] strh r0, [r4, 0xA] bl sub_8072DEC b _08100EE6 .align 2, 0 _08100EC0: .4byte 0x0202f388 _08100EC4: bl SetUpPuttingAwayDecorationPlayerAvatar bl pal_fill_black movs r0, 0x2 strh r0, [r4, 0x4] b _08100EE6 _08100ED2: bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08100EE6 strh r0, [r4, 0x18] adds r0, r5, 0 bl sub_8100EEC _08100EE6: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8100E70 thumb_func_start sub_8100EEC sub_8100EEC: @ 8100EEC push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset ldr r4, _08100F70 ldr r3, _08100F74 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r6, 0 strh r6, [r0, 0x3C] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r4, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08100F78 str r1, [r0] ldr r2, _08100F7C ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x88 strh r1, [r0, 0x20] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x48 strh r1, [r0, 0x22] ldr r1, _08100F80 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r6, [r0, 0x1C] ldr r1, _08100F84 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08100F70: .4byte 0x02020004 _08100F74: .4byte 0x020391a8 _08100F78: .4byte sub_8101698 _08100F7C: .4byte 0x020391a9 _08100F80: .4byte 0x03004b20 _08100F84: .4byte sub_8100494 thumb_func_end sub_8100EEC thumb_func_start sub_8100F88 sub_8100F88: @ 8100F88 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _08100FB0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] bl sub_810045C adds r0, r4, 0 bl sub_8101024 pop {r4} pop {r0} bx r0 .align 2, 0 _08100FB0: .4byte 0x03004b20 thumb_func_end sub_8100F88 thumb_func_start sub_8100FB4 sub_8100FB4: @ 8100FB4 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _0810100C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] bl sub_810045C ldr r3, _08101010 ldr r5, _08101014 ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, 0x1C adds r0, r3 ldr r1, _08101018 str r1, [r0] ldr r1, _0810101C ldr r2, _08101020 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810100C: .4byte 0x03004b20 _08101010: .4byte 0x02020004 _08101014: .4byte 0x020391a8 _08101018: .4byte SpriteCallbackDummy _0810101C: .4byte gUnknown_0840FC87 _08101020: .4byte sub_810156C thumb_func_end sub_8100FB4 thumb_func_start sub_8101024 sub_8101024: @ 8101024 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl sub_8101460 ldr r0, _08101040 ldrb r0, [r0] cmp r0, 0 beq _0810104C ldr r1, _08101044 ldr r2, _08101048 b _081010B0 .align 2, 0 _08101040: .4byte 0x02039234 _08101044: .4byte gUnknown_0840FCC8 _08101048: .4byte sub_8101518 _0810104C: lsls r1, r5, 2 adds r1, r5 lsls r1, 3 ldr r0, _081010BC adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] movs r2, 0x2 ldrsh r1, [r1, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_8057238 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08101082 adds r0, r4, 0 bl sub_805738C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081010D4 _08101082: ldr r3, _081010C0 ldr r4, _081010C4 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, 0x1C adds r0, r3 ldr r1, _081010C8 str r1, [r0] ldr r1, _081010CC ldr r2, _081010D0 _081010B0: adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField b _081010E0 .align 2, 0 _081010BC: .4byte 0x03004b28 _081010C0: .4byte 0x02020004 _081010C4: .4byte 0x020391a8 _081010C8: .4byte SpriteCallbackDummy _081010CC: .4byte gUnknown_0840FC87 _081010D0: .4byte sub_810156C _081010D4: ldr r1, _081010E8 ldr r2, _081010EC adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField _081010E0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081010E8: .4byte gUnknown_0840FCA6 _081010EC: .4byte sub_81010F0 thumb_func_end sub_8101024 thumb_func_start sub_81010F0 sub_81010F0: @ 81010F0 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _08101114 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0810110A movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08101110 _0810110A: adds r0, r2, 0 bl sub_8100EEC _08101110: pop {r0} bx r0 .align 2, 0 _08101114: .4byte 0x03001770 thumb_func_end sub_81010F0 thumb_func_start sub_8101118 sub_8101118: @ 8101118 push {lr} adds r2, r1, 0 lsls r0, 24 ldr r1, _08101130 lsrs r0, 19 adds r0, r1 ldrb r1, [r0, 0x12] cmp r1, 0 bne _08101134 movs r0, 0x1 strb r0, [r2, 0x1] b _08101192 .align 2, 0 _08101130: .4byte gDecorations _08101134: cmp r1, 0x1 bne _08101140 movs r0, 0x2 strb r0, [r2, 0x1] strb r1, [r2, 0x2] b _08101194 _08101140: cmp r1, 0x2 bne _0810114C movs r0, 0x3 strb r0, [r2, 0x1] movs r0, 0x1 b _08101192 _0810114C: cmp r1, 0x3 bne _08101154 movs r0, 0x4 b _0810118E _08101154: cmp r1, 0x4 bne _0810115E movs r0, 0x2 strb r0, [r2, 0x1] b _08101192 _0810115E: cmp r1, 0x5 bne _08101166 movs r0, 0x1 b _0810118E _08101166: cmp r1, 0x6 bne _08101172 movs r0, 0x1 strb r0, [r2, 0x1] movs r0, 0x3 b _08101192 _08101172: cmp r1, 0x7 bne _0810117E movs r0, 0x2 strb r0, [r2, 0x1] movs r0, 0x4 b _08101192 _0810117E: cmp r1, 0x8 bne _08101188 movs r0, 0x3 strb r0, [r2, 0x1] b _08101192 _08101188: cmp r1, 0x9 bne _08101194 movs r0, 0x3 _0810118E: strb r0, [r2, 0x1] movs r0, 0x2 _08101192: strb r0, [r2, 0x2] _08101194: pop {r0} bx r0 thumb_func_end sub_8101118 thumb_func_start sub_8101198 sub_8101198: @ 8101198 push {r4-r6,lr} lsls r0, 24 lsls r1, 24 ldr r5, _081011F0 ldr r6, _081011F4 ldrb r3, [r6] lsls r2, r3, 4 adds r2, r3 lsls r2, 2 adds r2, r5 adds r2, 0x3E ldrb r3, [r2] movs r4, 0x4 orrs r3, r4 strb r3, [r2] ldrb r3, [r6] lsls r2, r3, 4 adds r2, r3 lsls r2, 2 adds r3, r5, 0 adds r3, 0x1C adds r2, r3 ldr r3, _081011F8 str r3, [r2] ldr r4, _081011FC ldrb r3, [r4] lsls r2, r3, 4 adds r2, r3 lsls r2, 2 adds r2, r5 lsrs r0, 20 adds r0, 0x88 strh r0, [r2, 0x20] ldrb r2, [r4] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r5 lsrs r1, 20 adds r1, 0x48 strh r1, [r0, 0x22] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081011F0: .4byte 0x02020004 _081011F4: .4byte 0x020391a8 _081011F8: .4byte SpriteCallbackDummy _081011FC: .4byte 0x020391a9 thumb_func_end sub_8101198 thumb_func_start sub_8101200 sub_8101200: @ 8101200 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r2, 0 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 ldr r3, _0810128C lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r2, r3 ldrb r0, [r2, 0x8] subs r0, 0x7 lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r2, 0xA] subs r0, 0x7 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r2, _08101290 ldr r0, [r2, 0x4] adds r0, r1 ldrb r0, [r0] lsrs r4, r0, 4 movs r5, 0xF ands r5, r0 ldr r0, [r2] adds r0, r1 ldrb r0, [r0] cmp r0, 0x29 bne _0810125A adds r0, r4, 0x7 adds r1, r5, 0x7 bl MapGridGetMetatileIdAt movs r1, 0xA3 lsls r1, 2 cmp r0, r1 bne _0810125A ldrb r0, [r6, 0x2] subs r0, 0x1 strb r0, [r6, 0x2] _0810125A: cmp r7, r4 bcc _08101294 ldrb r1, [r6, 0x1] adds r0, r4, r1 cmp r7, r0 bge _08101294 ldrb r0, [r6, 0x2] subs r0, r5, r0 cmp r8, r0 ble _08101294 cmp r8, r5 bhi _08101294 subs r0, r7, r4 adds r0, 0x1 subs r0, r1, r0 lsls r0, 24 lsrs r0, 24 mov r2, r8 subs r1, r5, r2 lsls r1, 24 lsrs r1, 24 bl sub_8101198 movs r0, 0x1 b _08101296 .align 2, 0 _0810128C: .4byte 0x03004b20 _08101290: .4byte 0x0201f000 _08101294: movs r0, 0 _08101296: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8101200 thumb_func_start sub_81012A0 sub_81012A0: @ 81012A0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r2, _0810130C ldr r3, _08101310 ldr r0, _08101314 ldrb r0, [r0] lsls r0, 3 adds r0, r3 ldrb r1, [r0] ldr r0, [r2, 0x4] adds r0, r1 ldrb r0, [r0] lsrs r7, r0, 4 movs r6, 0xF ands r6, r0 movs r5, 0 ldr r0, _08101318 mov r8, r0 mov r9, r3 _081012CA: lsls r0, r5, 1 adds r0, r5 lsls r0, 3 mov r2, r8 adds r1, r0, r2 ldr r2, _0810131C adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, r7 bne _08101328 ldr r2, _08101320 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, r6 bne _08101328 ldr r0, _08101324 adds r4, r1, r0 ldrh r0, [r4] bl FlagGet lsls r0, 24 cmp r0, 0 bne _08101328 ldr r0, _08101314 ldrb r0, [r0] lsls r0, 3 add r0, r9 ldrh r1, [r4] strh r1, [r0, 0x4] b _08101332 .align 2, 0 _0810130C: .4byte 0x0201f000 _08101310: .4byte 0x020391b4 _08101314: .4byte 0x02039234 _08101318: .4byte 0x02025734 _0810131C: .4byte 0x00000c24 _08101320: .4byte 0x00000c26 _08101324: .4byte 0x00000c34 _08101328: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3F bls _081012CA _08101332: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81012A0 thumb_func_start sub_8101340 sub_8101340: @ 8101340 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 movs r6, 0 b _081013A2 _0810134A: ldr r0, [r0] adds r1, r0, r6 ldrb r0, [r1] cmp r0, 0 beq _0810139C ldr r0, _08101390 ldrb r2, [r1] lsls r1, r2, 5 adds r1, r0 ldrb r0, [r1, 0x11] cmp r0, 0x4 bne _0810139C ldr r5, _08101394 adds r0, r2, 0 adds r1, r5, 0 bl sub_8101118 lsls r1, r6, 24 lsrs r1, 24 adds r0, r7, 0 adds r2, r5, 0 bl sub_8101200 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bne _0810139C strb r6, [r5] bl sub_81012A0 ldr r0, _08101398 strb r4, [r0] movs r0, 0x1 b _081013AC .align 2, 0 _08101390: .4byte gDecorations _08101394: .4byte 0x020391b4 _08101398: .4byte 0x02039234 _0810139C: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _081013A2: ldr r0, _081013B4 ldrb r1, [r0, 0x8] cmp r6, r1 bcc _0810134A movs r0, 0 _081013AC: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081013B4: .4byte 0x0201f000 thumb_func_end sub_8101340 thumb_func_start sub_81013B8 sub_81013B8: @ 81013B8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 str r0, [sp] lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 lsrs r2, 24 mov r9, r2 lsls r3, 24 lsrs r3, 24 mov r8, r3 movs r4, 0 ldr r7, _08101450 ldrb r0, [r7, 0x8] cmp r4, r0 bcs _0810143E adds r6, r7, 0 ldr r5, _08101454 _081013EA: ldr r0, [r6] adds r0, r4 ldrb r1, [r0] ldr r0, [r6, 0x4] adds r0, r4 ldrb r0, [r0] lsrs r3, r0, 4 movs r2, 0xF ands r2, r0 cmp r1, 0 beq _08101432 ldr r0, _08101458 lsls r1, 5 adds r1, r0 ldrb r0, [r1, 0x11] cmp r0, 0x4 bne _08101432 ldr r0, [sp] cmp r0, r3 bhi _08101432 cmp r10, r2 bhi _08101432 cmp r9, r3 bcc _08101432 cmp r8, r2 bcc _08101432 ldr r0, _0810145C ldrb r1, [r5] lsls r1, 3 adds r1, r0 strb r4, [r1] bl sub_81012A0 ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] _08101432: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r7, 0x8] cmp r4, r0 bcc _081013EA _0810143E: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08101450: .4byte 0x0201f000 _08101454: .4byte 0x02039234 _08101458: .4byte gDecorations _0810145C: .4byte 0x020391b4 thumb_func_end sub_81013B8 thumb_func_start sub_8101460 sub_8101460: @ 8101460 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r4, _081014B8 movs r0, 0 strb r0, [r4] adds r0, r6, 0 bl sub_8101340 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08101504 movs r5, 0 ldr r0, _081014BC ldrb r1, [r0, 0x8] cmp r5, r1 bcs _081014D2 adds r7, r4, 0 _08101486: ldr r0, [r0] adds r0, r5 ldrb r1, [r0] cmp r1, 0 beq _081014C4 ldr r4, _081014C0 adds r0, r1, 0 adds r1, r4, 0 bl sub_8101118 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_8101200 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081014C4 strb r5, [r4] ldrb r0, [r7] adds r0, 0x1 strb r0, [r7] b _081014D2 .align 2, 0 _081014B8: .4byte 0x02039234 _081014BC: .4byte 0x0201f000 _081014C0: .4byte 0x020391b4 _081014C4: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0810150C ldrb r1, [r0, 0x8] cmp r5, r1 bcc _08101486 _081014D2: ldr r0, _08101510 ldrb r0, [r0] cmp r0, 0 beq _08101504 ldr r0, _0810150C ldr r2, _08101514 ldrb r1, [r2] ldr r0, [r0, 0x4] adds r0, r1 ldrb r1, [r0] lsrs r0, r1, 4 movs r3, 0xF ands r3, r1 ldrb r1, [r2, 0x2] subs r1, r3, r1 adds r1, 0x1 lsls r1, 24 lsrs r1, 24 ldrb r2, [r2, 0x1] adds r2, r0 subs r2, 0x1 lsls r2, 24 lsrs r2, 24 bl sub_81013B8 _08101504: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810150C: .4byte 0x0201f000 _08101510: .4byte 0x02039234 _08101514: .4byte 0x020391b4 thumb_func_end sub_8101460 thumb_func_start sub_8101518 sub_8101518: @ 8101518 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1 bl sub_8072974 ldr r1, _08101538 adds r0, r4, 0 bl sub_80F914C pop {r4} pop {r0} bx r0 .align 2, 0 _08101538: .4byte gUnknown_083EC9CC thumb_func_end sub_8101518 thumb_func_start sub_810153C sub_810153C: @ 810153C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 movs r1, 0 bl fade_screen ldr r1, _08101564 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] ldr r1, _08101568 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08101564: .4byte 0x03004b20 _08101568: .4byte sub_8100C88 thumb_func_end sub_810153C thumb_func_start sub_810156C sub_810156C: @ 810156C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1 bl sub_8072974 ldr r1, _0810158C adds r0, r4, 0 bl sub_80F914C pop {r4} pop {r0} bx r0 .align 2, 0 _0810158C: .4byte gUnknown_083EC9D4 thumb_func_end sub_810156C thumb_func_start sub_8101590 sub_8101590: @ 8101590 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset adds r0, r4, 0 bl sub_81015B0 pop {r4} pop {r0} bx r0 thumb_func_end sub_8101590 thumb_func_start sub_81015B0 sub_81015B0: @ 81015B0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 movs r1, 0 bl fade_screen ldr r1, _081015D8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] ldr r1, _081015DC str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _081015D8: .4byte 0x03004b20 _081015DC: .4byte sub_81015E0 thumb_func_end sub_81015B0 thumb_func_start sub_81015E0 sub_81015E0: @ 81015E0 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08101600 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r5, r0, r1 movs r1, 0xC ldrsh r0, [r5, r1] cmp r0, 0 beq _08101604 cmp r0, 0x1 beq _08101620 b _08101636 .align 2, 0 _08101600: .4byte 0x03004b20 _08101604: ldr r0, _0810161C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08101636 adds r0, r4, 0 bl sub_80FF114 movs r0, 0x1 strh r0, [r5, 0xC] b _08101636 .align 2, 0 _0810161C: .4byte 0x0202f388 _08101620: bl sub_81016F4 ldr r0, _0810163C ldr r1, _08101640 str r1, [r0] ldr r0, _08101644 bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _08101636: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810163C: .4byte 0x0300485c _08101640: .4byte sub_8101678 _08101644: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_81015E0 thumb_func_start sub_8101648 sub_8101648: @ 8101648 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08101668 ldr r0, _08101670 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08101674 str r0, [r1] _08101668: pop {r4} pop {r0} bx r0 .align 2, 0 _08101670: .4byte 0x03004b20 _08101674: .4byte sub_80FE2EC thumb_func_end sub_8101648 thumb_func_start sub_8101678 sub_8101678: @ 8101678 push {lr} bl pal_fill_black bl sub_8071FFC bl sub_80FE220 ldr r0, _08101694 movs r1, 0x8 bl CreateTask pop {r0} bx r0 .align 2, 0 _08101694: .4byte sub_8101648 thumb_func_end sub_8101678 thumb_func_start sub_8101698 sub_8101698: @ 8101698 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] adds r0, 0x1 movs r1, 0x1F ands r0, r1 strh r0, [r2, 0x2E] cmp r0, 0xF ble _081016B8 adds r0, r2, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _081016C4 _081016B8: adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _081016C4: pop {r0} bx r0 thumb_func_end sub_8101698 thumb_func_start sub_81016C8 sub_81016C8: @ 81016C8 push {lr} ldr r0, _081016DC ldrb r0, [r0, 0x8] cmp r0, 0 bne _081016E4 ldr r0, _081016E0 bl LoadSpritePalette b _081016EA .align 2, 0 _081016DC: .4byte gSaveBlock2 _081016E0: .4byte gUnknown_083ECA5C _081016E4: ldr r0, _081016F0 bl LoadSpritePalette _081016EA: pop {r0} bx r0 .align 2, 0 _081016F0: .4byte gUnknown_083ECA64 thumb_func_end sub_81016C8 thumb_func_start sub_81016F4 sub_81016F4: @ 81016F4 push {lr} movs r0, 0x8 bl FreeSpritePaletteByTag pop {r0} bx r0 thumb_func_end sub_81016F4 thumb_func_start sub_8101700 sub_8101700: @ 8101700 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81341D4 lsls r0, 24 cmp r0, 0 bne _08101728 ldr r1, _08101720 ldr r2, _08101724 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField b _08101742 .align 2, 0 _08101720: .4byte gUnknown_0840FA64 _08101724: .4byte sub_80FE428 _08101728: ldr r1, _08101748 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0 movs r1, 0x1 strh r1, [r0, 0x1E] ldr r0, _0810174C strb r2, [r0] adds r0, r4, 0 bl sub_80FE5AC _08101742: pop {r4} pop {r0} bx r0 .align 2, 0 _08101748: .4byte 0x03004b20 _0810174C: .4byte 0x020388f6 thumb_func_end sub_8101700 thumb_func_start unref_sub_8101750 unref_sub_8101750: @ 8101750 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81341D4 lsls r0, 24 cmp r0, 0 bne _08101778 ldr r1, _08101770 ldr r2, _08101774 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField b _08101792 .align 2, 0 _08101770: .4byte gUnknown_0840FA64 _08101774: .4byte sub_80FE428 _08101778: ldr r1, _08101798 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0 movs r1, 0x2 strh r1, [r0, 0x1E] ldr r0, _0810179C strb r2, [r0] adds r0, r4, 0 bl sub_80FE5AC _08101792: pop {r4} pop {r0} bx r0 .align 2, 0 _08101798: .4byte 0x03004b20 _0810179C: .4byte 0x020388f6 thumb_func_end unref_sub_8101750 thumb_func_start sub_81017A0 sub_81017A0: @ 81017A0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl sub_80FEF74 bl sub_80FED1C bl sub_80FEFA4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08101808 ldr r0, _081017EC ldr r1, _081017F0 ldrb r2, [r1] ldr r1, _081017F4 ldr r1, [r1] adds r1, r2 ldrb r1, [r1] lsls r1, 5 ldr r2, _081017F8 adds r1, r2 bl StringCopy ldr r4, _081017FC ldr r1, _08101800 adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _08101804 adds r0, r5, 0 adds r1, r4, 0 movs r3, 0 bl DisplayItemMessageOnField b _08101814 .align 2, 0 _081017EC: .4byte 0x020231cc _081017F0: .4byte 0x020388f5 _081017F4: .4byte 0x020388d0 _081017F8: .4byte gDecorations + 0x1 _081017FC: .4byte 0x020234cc _08101800: .4byte gUnknown_0840FC39 _08101804: .4byte sub_8101824 _08101808: ldr r1, _0810181C ldr r2, _08101820 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField _08101814: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810181C: .4byte gUnknown_0840FC05 _08101820: .4byte sub_80FEFF4 thumb_func_end sub_81017A0 thumb_func_start sub_8101824 sub_8101824: @ 8101824 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1 bl sub_8072974 ldr r1, _08101844 adds r0, r4, 0 bl sub_80F914C pop {r4} pop {r0} bx r0 .align 2, 0 _08101844: .4byte gUnknown_083ECAA0 thumb_func_end sub_8101824 thumb_func_start sub_8101848 sub_8101848: @ 8101848 push {r4-r6,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1A movs r3, 0xE bl Reset ldr r6, _08101890 ldrb r1, [r6] ldr r5, _08101894 ldr r0, [r5] adds r0, r1 ldrb r0, [r0] bl sub_8109A30 ldrb r1, [r6] ldr r0, [r5] adds r0, r1 movs r1, 0 strb r1, [r0] adds r0, r4, 0 bl sub_80FF098 ldr r1, _08101898 ldr r2, _0810189C adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08101890: .4byte 0x020388f5 _08101894: .4byte 0x020388d0 _08101898: .4byte gUnknown_0840FC62 _0810189C: .4byte sub_80FEFF4 thumb_func_end sub_8101848 thumb_func_start sub_81018A0 sub_81018A0: @ 81018A0 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_81019B0 ldr r0, _081018B4 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _081018B4: .4byte sub_81018B8 thumb_func_end sub_81018A0 thumb_func_start sub_81018B8 sub_81018B8: @ 81018B8 push {lr} ldr r0, _081018D0 ldr r1, _081018D4 adds r0, r1 ldrb r0, [r0] cmp r0, 0x6 bhi _0810194A lsls r0, 2 ldr r1, _081018D8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081018D0: .4byte 0x03001770 _081018D4: .4byte 0x0000043c _081018D8: .4byte _081018DC .align 2, 0 _081018DC: .4byte _081018F8 .4byte _08101902 .4byte _08101908 .4byte _08101912 .4byte _08101918 .4byte _0810191E .4byte _08101938 _081018F8: bl sub_8101A28 bl sub_8101BA4 b _08101922 _08101902: bl sub_8101A8C b _08101922 _08101908: bl sub_8101AE0 bl sub_8101B04 b _08101922 _08101912: bl sub_8101C84 b _08101922 _08101918: bl sub_8101CA0 b _08101922 _0810191E: bl sub_8101CC0 _08101922: ldr r1, _08101930 ldr r0, _08101934 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0810194A .align 2, 0 _08101930: .4byte 0x03001770 _08101934: .4byte 0x0000043c _08101938: bl sub_8101CD4 bl sub_8101CEC bl sub_8101A44 ldr r0, _08101950 bl SetMainCallback2 _0810194A: pop {r0} bx r0 .align 2, 0 _08101950: .4byte sub_8101954 thumb_func_end sub_81018B8 thumb_func_start sub_8101954 sub_8101954: @ 8101954 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8101954 thumb_func_start sub_810196C sub_810196C: @ 810196C push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer ldr r1, _081019A8 ldr r2, _081019AC adds r0, r2, 0 adds r0, 0x58 ldrh r0, [r0] strh r0, [r1] adds r1, 0x4 adds r0, r2, 0 adds r0, 0x5A ldrh r0, [r0] strh r0, [r1] adds r1, 0x4 adds r0, r2, 0 adds r0, 0x5C ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 adds r0, r2, 0 adds r0, 0x5E ldrh r0, [r0] strh r0, [r1] pop {r0} bx r0 .align 2, 0 _081019A8: .4byte REG_WIN0H _081019AC: .4byte 0x02000000 thumb_func_end sub_810196C thumb_func_start sub_81019B0 sub_81019B0: @ 81019B0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _081019E4 movs r1, 0xFF bl CreateTask adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _081019E8 adds r0, r1 strh r4, [r0, 0x8] adds r0, 0xA adds r1, r5, 0 bl StoreWordInTwoHalfwords pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081019E4: .4byte nullsub_67 _081019E8: .4byte 0x03004b20 thumb_func_end sub_81019B0 thumb_func_start sub_81019EC sub_81019EC: @ 81019EC push {lr} ldr r0, _08101A18 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 ldr r0, _08101A1C adds r2, r0 ldr r1, _08101A20 ldrh r0, [r2, 0x8] strb r0, [r1, 0x1] adds r2, 0xA adds r1, 0x64 adds r0, r2, 0 bl LoadWordFromTwoHalfwords pop {r0} bx r0 .align 2, 0 _08101A18: .4byte nullsub_67 _08101A1C: .4byte 0x03004b20 _08101A20: .4byte 0x02000000 thumb_func_end sub_81019EC thumb_func_start nullsub_67 nullsub_67: @ 8101A24 bx lr thumb_func_end nullsub_67 thumb_func_start sub_8101A28 sub_8101A28: @ 8101A28 push {lr} movs r0, 0 bl SetVBlankCallback movs r0, 0 bl SetHBlankCallback movs r1, 0x80 lsls r1, 19 movs r0, 0 strh r0, [r1] pop {r0} bx r0 thumb_func_end sub_8101A28 thumb_func_start sub_8101A44 sub_8101A44: @ 8101A44 push {r4,lr} ldr r0, _08101A7C bl SetVBlankCallback ldr r3, _08101A80 ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _08101A84 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08101A88 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] movs r1, 0x80 lsls r1, 19 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08101A7C: .4byte sub_810196C _08101A80: .4byte 0x04000208 _08101A84: .4byte 0x04000200 _08101A88: .4byte REG_DISPSTAT thumb_func_end sub_8101A44 thumb_func_start sub_8101A8C sub_8101A8C: @ 8101A8C push {r4-r7,lr} sub sp, 0x4 movs r2, 0xC0 lsls r2, 19 movs r3, 0x80 lsls r3, 9 mov r4, sp movs r6, 0 ldr r1, _08101AD8 movs r5, 0x80 lsls r5, 5 ldr r7, _08101ADC movs r0, 0x81 lsls r0, 24 mov r12, r0 _08101AAA: strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r5 subs r3, r5 cmp r3, r5 bhi _08101AAA strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08101AD8: .4byte 0x040000d4 _08101ADC: .4byte 0x81000800 thumb_func_end sub_8101A8C thumb_func_start sub_8101AE0 sub_8101AE0: @ 8101AE0 sub sp, 0x4 movs r2, 0xE0 lsls r2, 19 mov r1, sp movs r0, 0 strh r0, [r1] ldr r0, _08101AFC str r1, [r0] str r2, [r0, 0x4] ldr r1, _08101B00 str r1, [r0, 0x8] ldr r0, [r0, 0x8] add sp, 0x4 bx lr .align 2, 0 _08101AFC: .4byte 0x040000d4 _08101B00: .4byte 0x81000200 thumb_func_end sub_8101AE0 thumb_func_start sub_8101B04 sub_8101B04: @ 8101B04 push {r4,r5,lr} ldr r5, _08101B70 movs r1, 0 strh r1, [r5] ldr r2, _08101B74 strh r1, [r2] ldr r3, _08101B78 strh r1, [r3] ldr r4, _08101B7C strh r1, [r4] ldr r0, _08101B80 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _08101B84 adds r0, r1, 0 strh r0, [r5] ldr r1, _08101B88 adds r0, r1, 0 strh r0, [r2] ldr r2, _08101B8C adds r0, r2, 0 strh r0, [r3] ldr r1, _08101B90 adds r0, r1, 0 strh r0, [r4] ldr r0, _08101B94 movs r1, 0x3F strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _08101B98 ldr r2, _08101B9C adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _08101BA0 adds r0, r2, 0 strh r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08101B70: .4byte REG_BG0CNT _08101B74: .4byte REG_BG1CNT _08101B78: .4byte REG_BG2CNT _08101B7C: .4byte REG_BG3CNT _08101B80: .4byte REG_BG0HOFS _08101B84: .4byte 0x00001f08 _08101B88: .4byte 0x00001c01 _08101B8C: .4byte 0x00001d02 _08101B90: .4byte 0x00001e02 _08101B94: .4byte REG_WININ _08101B98: .4byte REG_BLDCNT _08101B9C: .4byte 0x00001048 _08101BA0: .4byte 0x00000809 thumb_func_end sub_8101B04 thumb_func_start sub_8101BA4 sub_8101BA4: @ 8101BA4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} bl sub_81019EC ldr r5, _08101C74 movs r4, 0 strb r4, [r5] strb r4, [r5, 0x2] bl Random movs r1, 0x1 ands r1, r0 strb r1, [r5, 0x3] strb r4, [r5, 0x4] movs r0, 0 strh r4, [r5, 0x8] strb r0, [r5, 0xA] strb r0, [r5, 0xB] ldr r0, _08101C78 ldr r1, _08101C7C adds r0, r1 ldrh r0, [r0] strh r0, [r5, 0xC] strh r4, [r5, 0xE] strh r4, [r5, 0x10] strh r4, [r5, 0x12] strh r4, [r5, 0x18] movs r0, 0x8 strh r0, [r5, 0x1A] adds r1, r5, 0 adds r1, 0x58 movs r0, 0xF0 strh r0, [r1] adds r1, 0x2 movs r0, 0xA0 strh r0, [r1] adds r0, r5, 0 adds r0, 0x5C movs r1, 0x3F strh r1, [r0] adds r0, 0x2 strh r1, [r0] bl current_map_music_get adds r1, r5, 0 adds r1, 0x60 strh r0, [r1] movs r7, 0 adds r6, r5, 0 ldr r2, _08101C80 mov r9, r2 movs r0, 0x1C adds r0, r6 mov r8, r0 _08101C14: lsls r5, r7, 1 adds r0, r6, 0 adds r0, 0x22 adds r0, r5, r0 movs r1, 0 strh r1, [r0] adds r4, r6, 0 adds r4, 0x28 adds r4, r5, r4 ldrb r0, [r6, 0x3] lsls r0, 1 lsls r1, r7, 2 adds r0, r1 add r0, r9 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0x15 bl __modsi3 strh r0, [r4] add r5, r8 movs r2, 0 ldrsh r0, [r4, r2] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 movs r2, 0xFC lsls r2, 1 adds r0, r2, 0 subs r0, r1 strh r0, [r5] movs r1, 0 ldrsh r0, [r5, r1] adds r1, r2, 0 bl __modsi3 strh r0, [r5] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x2 bls _08101C14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08101C74: .4byte 0x02000000 _08101C78: .4byte 0x02025734 _08101C7C: .4byte 0x00000494 _08101C80: .4byte gUnknown_083ECCF8 thumb_func_end sub_8101BA4 thumb_func_start sub_8101C84 sub_8101C84: @ 8101C84 push {r4,lr} ldr r4, _08101C9C adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C pop {r4} pop {r0} bx r0 .align 2, 0 _08101C9C: .4byte gWindowConfig_81E7128 thumb_func_end sub_8101C84 thumb_func_start sub_8101CA0 sub_8101CA0: @ 8101CA0 push {lr} bl ResetPaletteFade bl ResetSpriteData ldr r1, _08101CBC movs r0, 0x80 strb r0, [r1] bl FreeAllSpritePalettes bl ResetTasks pop {r0} bx r0 .align 2, 0 _08101CBC: .4byte 0x030024d4 thumb_func_end sub_8101CA0 thumb_func_start sub_8101CC0 sub_8101CC0: @ 8101CC0 push {lr} bl sub_8106448 bl sub_81064B8 bl sub_81063C0 pop {r0} bx r0 thumb_func_end sub_8101CC0 thumb_func_start sub_8101CD4 sub_8101CD4: @ 8101CD4 push {lr} bl sub_8104EA8 bl sub_8104F8C bl sub_8103DC8 bl sub_81050C4 pop {r0} bx r0 thumb_func_end sub_8101CD4 thumb_func_start sub_8101CEC sub_8101CEC: @ 8101CEC push {lr} bl sub_8104048 bl sub_8102DA8 bl sub_8104C5C bl sub_8101D04 pop {r0} bx r0 thumb_func_end sub_8101CEC thumb_func_start sub_8101D04 sub_8101D04: @ 8101D04 push {r4,lr} ldr r4, _08101D20 adds r0, r4, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _08101D20: .4byte sub_8101D24 thumb_func_end sub_8101D04 thumb_func_start sub_8101D24 sub_8101D24: @ 8101D24 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 ldr r7, _08101D50 lsls r1, r0, 2 adds r1, r0 lsls r4, r1, 3 ldr r6, _08101D54 ldr r5, _08101D58 _08101D36: ldrb r0, [r6] lsls r0, 2 adds r0, r7 ldr r1, [r0] adds r0, r4, r5 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _08101D36 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08101D50: .4byte gUnknown_083ECAAC _08101D54: .4byte 0x02000000 _08101D58: .4byte 0x03004b20 thumb_func_end sub_8101D24 thumb_func_start sub_8101D5C sub_8101D5C: @ 8101D5C push {r4,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r4, _08101D88 ldrb r0, [r4, 0x2] bl sub_810423C ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r0, 0 add sp, 0x4 pop {r4} pop {r1} bx r1 .align 2, 0 _08101D88: .4byte 0x02000000 thumb_func_end sub_8101D5C thumb_func_start sub_8101D8C sub_8101D8C: @ 8101D8C push {lr} ldr r0, _08101DA8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08101DA2 ldr r1, _08101DAC ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08101DA2: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08101DA8: .4byte 0x0202f388 _08101DAC: .4byte 0x02000000 thumb_func_end sub_8101D8C thumb_func_start sub_8101DB0 sub_8101DB0: @ 8101DB0 push {lr} ldr r2, _08101DD8 movs r0, 0 strh r0, [r2, 0xE] strh r0, [r2, 0x12] strh r0, [r2, 0x18] ldrb r1, [r2, 0x4] movs r0, 0xC0 ands r0, r1 strb r0, [r2, 0x4] movs r0, 0x4 strb r0, [r2] movs r1, 0xC ldrsh r0, [r2, r1] cmp r0, 0 bgt _08101DDC movs r0, 0x19 strb r0, [r2] b _08101DEC .align 2, 0 _08101DD8: .4byte 0x02000000 _08101DDC: ldrb r0, [r2, 0xA] cmp r0, 0 beq _08101DEC movs r0, 0x3 strb r0, [r2] movs r0, 0x4 bl sub_8104CAC _08101DEC: movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8101DB0 thumb_func_start sub_8101DF4 sub_8101DF4: @ 8101DF4 push {lr} bl sub_8104E18 lsls r0, 24 cmp r0, 0 beq _08101E06 ldr r1, _08101E0C movs r0, 0x4 strb r0, [r1] _08101E06: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08101E0C: .4byte 0x02000000 thumb_func_end sub_8101DF4 thumb_func_start sub_8101E10 sub_8101E10: @ 8101E10 push {lr} movs r0, 0 bl sub_8104CAC ldr r2, _08101E34 movs r0, 0x5 strb r0, [r2] movs r0, 0xC ldrsh r1, [r2, r0] ldr r0, _08101E38 cmp r1, r0 ble _08101E2C movs r0, 0x17 strb r0, [r2] _08101E2C: movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _08101E34: .4byte 0x02000000 _08101E38: .4byte 0x0000270e thumb_func_end sub_8101E10 thumb_func_start sub_8101E3C sub_8101E3C: @ 8101E3C push {r4,lr} ldr r0, _08101E58 ldrh r1, [r0, 0x2E] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08101E60 movs r0, 0 bl sub_8104AB8 ldr r1, _08101E5C movs r0, 0x8 strb r0, [r1] b _08101F1A .align 2, 0 _08101E58: .4byte 0x03001770 _08101E5C: .4byte 0x02000000 _08101E60: movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08101EC2 ldr r2, _08101EB8 movs r1, 0xC ldrsh r0, [r2, r1] subs r0, 0x3 movs r3, 0x12 ldrsh r1, [r2, r3] adds r0, r1 cmp r0, 0 blt _08101EBC ldrh r4, [r2, 0x12] adds r0, r1, 0 cmp r0, 0x2 bgt _08101E9C _08101E84: lsls r0, r4, 24 lsrs r0, 24 bl sub_8103D50 lsls r0, r4, 16 movs r2, 0x80 lsls r2, 9 adds r0, r2 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x2 ble _08101E84 _08101E9C: ldr r1, _08101EB8 ldrh r0, [r1, 0xC] subs r0, 0x3 ldrh r3, [r1, 0x12] adds r0, r3 strh r0, [r1, 0xC] movs r0, 0x3 strh r0, [r1, 0x12] movs r0, 0x9 strb r0, [r1] movs r0, 0x5F bl audio_play b _08101F1A .align 2, 0 _08101EB8: .4byte 0x02000000 _08101EBC: movs r0, 0x6 strb r0, [r2] b _08101F1A _08101EC2: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08101EEC ldr r4, _08101F24 movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0 beq _08101EEC movs r0, 0x5F bl audio_play ldrb r0, [r4, 0x12] bl sub_8103D50 ldrh r0, [r4, 0xC] subs r0, 0x1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] _08101EEC: ldr r0, _08101F24 movs r2, 0x12 ldrsh r1, [r0, r2] ldr r2, _08101F28 adds r3, r0, 0 cmp r1, 0x2 bgt _08101F08 cmp r1, 0 beq _08101F0C ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08101F0C _08101F08: movs r0, 0x9 strb r0, [r3] _08101F0C: ldrh r1, [r2, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08101F1A movs r0, 0x15 strb r0, [r3] _08101F1A: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08101F24: .4byte 0x02000000 _08101F28: .4byte 0x03001770 thumb_func_end sub_8101E3C thumb_func_start sub_8101F2C sub_8101F2C: @ 8101F2C push {r4,lr} adds r4, r0, 0 bl sub_8071FFC adds r0, r4, 0 movs r1, 0x2 movs r2, 0xF bl Print pop {r4} pop {r0} bx r0 thumb_func_end sub_8101F2C thumb_func_start sub_8101F44 sub_8101F44: @ 8101F44 push {lr} ldr r0, _08101F58 bl sub_8101F2C ldr r1, _08101F5C movs r0, 0x7 strb r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _08101F58: .4byte gUnknown_0842CADB _08101F5C: .4byte 0x02000000 thumb_func_end sub_8101F44 thumb_func_start sub_8101F60 sub_8101F60: @ 8101F60 push {lr} ldr r0, _08101F80 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08101F78 bl sub_8071EF4 ldr r1, _08101F84 movs r0, 0x5 strb r0, [r1] _08101F78: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08101F80: .4byte 0x03001770 _08101F84: .4byte 0x02000000 thumb_func_end sub_8101F60 thumb_func_start sub_8101F88 sub_8101F88: @ 8101F88 push {lr} bl sub_8104AEC lsls r0, 24 cmp r0, 0 beq _08101F9A ldr r1, _08101FA0 movs r0, 0x5 strb r0, [r1] _08101F9A: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08101FA0: .4byte 0x02000000 thumb_func_end sub_8101F88 thumb_func_start sub_8101FA4 sub_8101FA4: @ 8101FA4 push {r4,lr} adds r4, r0, 0 bl sub_8102484 bl sub_8104DA4 movs r0, 0 bl sub_8102DEC movs r0, 0x1 bl sub_8102DEC movs r0, 0x2 bl sub_8102DEC movs r0, 0 strh r0, [r4, 0x8] ldr r4, _08101FDC ldrb r1, [r4, 0x4] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08101FE0 bl sub_810430C movs r0, 0xA b _08101FE8 .align 2, 0 _08101FDC: .4byte 0x02000000 _08101FE0: movs r0, 0x1 bl sub_8104CAC movs r0, 0xB _08101FE8: strb r0, [r4] ldr r4, _08102004 movs r0, 0x8 strh r0, [r4, 0x1A] ldrb r0, [r4, 0xA] cmp r0, 0 beq _08101FFC bl dp15_jump_random_unknown strh r0, [r4, 0x1A] _08101FFC: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08102004: .4byte 0x02000000 thumb_func_end sub_8101FA4 thumb_func_start sub_8102008 sub_8102008: @ 8102008 push {lr} bl sub_810432C lsls r0, 24 cmp r0, 0 beq _08102028 movs r0, 0x1 bl sub_8104CAC ldr r1, _08102030 ldrb r2, [r1, 0x4] movs r0, 0xDF ands r0, r2 strb r0, [r1, 0x4] movs r0, 0xB strb r0, [r1] _08102028: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08102030: .4byte 0x02000000 thumb_func_end sub_8102008 thumb_func_start sub_8102034 sub_8102034: @ 8102034 push {lr} ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] lsls r1, 16 asrs r1, 16 cmp r1, 0x1D ble _0810204E bl sub_81024F0 ldr r1, _08102054 movs r0, 0xC strb r0, [r1] _0810204E: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08102054: .4byte 0x02000000 thumb_func_end sub_8102034 thumb_func_start sub_8102058 sub_8102058: @ 8102058 push {r4,lr} ldr r0, _08102088 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0810207E movs r0, 0x18 bl audio_play ldr r4, _0810208C ldrb r0, [r4, 0x18] bl sub_8102E1C ldrb r0, [r4, 0x18] bl sub_8103C14 movs r0, 0xD strb r0, [r4] _0810207E: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08102088: .4byte 0x03001770 _0810208C: .4byte 0x02000000 thumb_func_end sub_8102058 thumb_func_start sub_8102090 sub_8102090: @ 8102090 push {r4,lr} ldr r4, _081020BC ldrb r0, [r4, 0x18] bl sub_8102E40 lsls r0, 24 cmp r0, 0 bne _081020C0 ldrh r0, [r4, 0x18] adds r0, 0x1 strh r0, [r4, 0x18] movs r1, 0xC strb r1, [r4] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _081020B6 movs r0, 0xE strb r0, [r4] _081020B6: movs r0, 0x1 b _081020C2 .align 2, 0 _081020BC: .4byte 0x02000000 _081020C0: movs r0, 0 _081020C2: pop {r4} pop {r1} bx r1 thumb_func_end sub_8102090 thumb_func_start sub_81020C8 sub_81020C8: @ 81020C8 push {r4,lr} ldr r4, _08102128 ldrb r1, [r4, 0x4] movs r0, 0xC0 ands r0, r1 strb r0, [r4, 0x4] bl sub_81027A0 ldrb r0, [r4, 0xA] cmp r0, 0 beq _081020E8 subs r0, 0x1 strb r0, [r4, 0xA] ldrb r0, [r4, 0xB] adds r0, 0x1 strb r0, [r4, 0xB] _081020E8: ldrh r0, [r4, 0x8] cmp r0, 0 beq _081021B4 movs r0, 0xF strb r0, [r4] bl sub_8102A24 bl sub_8103F70 ldrh r0, [r4, 0x10] ldrh r1, [r4, 0xE] subs r0, r1 strh r0, [r4, 0x10] lsls r0, 16 cmp r0, 0 bge _0810210C movs r0, 0 strh r0, [r4, 0x10] _0810210C: ldrh r1, [r4, 0x8] movs r0, 0xC0 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08102130 ldr r0, _0810212C bl fanfare_play movs r0, 0x6 bl sub_8104CAC b _0810215A .align 2, 0 _08102128: .4byte 0x02000000 _0810212C: .4byte 0x00000185 _08102130: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0810214C ldr r0, _08102148 bl fanfare_play movs r0, 0x5 bl sub_8104CAC b _0810215A .align 2, 0 _08102148: .4byte 0x00000185 _0810214C: movs r0, 0xC3 lsls r0, 1 bl fanfare_play movs r0, 0x2 bl sub_8104CAC _0810215A: ldr r1, _081021B0 ldrh r3, [r1, 0x8] movs r0, 0xE0 lsls r0, 1 ands r0, r3 adds r2, r1, 0 cmp r0, 0 beq _08102192 ldrb r1, [r2, 0x4] movs r0, 0x3F ands r0, r1 movs r1, 0 strb r0, [r2, 0x4] movs r0, 0xC0 lsls r0, 1 ands r0, r3 cmp r0, 0 beq _08102192 strb r1, [r2, 0xA] strb r1, [r2, 0xB] strb r1, [r2, 0x3] movs r0, 0x80 lsls r0, 1 ands r0, r3 cmp r0, 0 beq _08102192 movs r0, 0x1 strb r0, [r2, 0x3] _08102192: ldrh r1, [r2, 0x8] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _081021D2 ldrb r0, [r2, 0x2] cmp r0, 0xF bhi _081021D2 adds r0, 0x1 strb r0, [r2, 0x2] ldrb r0, [r2, 0x2] bl sub_8104064 b _081021D2 .align 2, 0 _081021B0: .4byte 0x02000000 _081021B4: movs r0, 0x3 bl sub_8104CAC movs r0, 0x14 strb r0, [r4] ldrh r0, [r4, 0x12] ldrh r1, [r4, 0x10] adds r0, r1 strh r0, [r4, 0x10] lsls r0, 16 asrs r0, 16 ldr r1, _081021DC cmp r0, r1 ble _081021D2 strh r1, [r4, 0x10] _081021D2: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _081021DC: .4byte 0x0000270f thumb_func_end sub_81020C8 thumb_func_start sub_81021E0 sub_81021E0: @ 81021E0 push {lr} bl sub_8102A44 lsls r0, 24 cmp r0, 0 beq _081021F2 ldr r1, _081021F8 movs r0, 0x10 strb r0, [r1] _081021F2: movs r0, 0 pop {r1} bx r1 .align 2, 0 _081021F8: .4byte 0x02000000 thumb_func_end sub_81021E0 thumb_func_start sub_81021FC sub_81021FC: @ 81021FC push {r4,lr} bl sub_8103FA0 lsls r0, 24 cmp r0, 0 beq _08102256 ldr r4, _08102260 movs r0, 0x13 strb r0, [r4] ldrh r1, [r4, 0x8] movs r0, 0xC0 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08102220 movs r0, 0x1C bl sav12_xor_increment _08102220: ldrh r1, [r4, 0x8] movs r0, 0x4 ands r0, r1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 beq _08102236 movs r0, 0 strh r0, [r4, 0x18] movs r0, 0x9 strb r0, [r4] _08102236: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08102242 movs r0, 0x11 strb r0, [r4] _08102242: ldrb r0, [r4, 0xA] cmp r0, 0 beq _08102256 cmp r2, 0 beq _08102256 movs r0, 0x4 bl sub_8104CAC movs r0, 0x12 strb r0, [r4] _08102256: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08102260: .4byte 0x02000000 thumb_func_end sub_81021FC thumb_func_start sub_8102264 sub_8102264: @ 8102264 push {r4,lr} bl sub_81040C8 lsls r0, 24 cmp r0, 0 bne _08102294 ldr r4, _0810229C movs r0, 0x13 strb r0, [r4] ldrh r1, [r4, 0x8] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08102294 movs r0, 0x9 strb r0, [r4] ldrb r0, [r4, 0xA] cmp r0, 0 beq _08102294 movs r0, 0x4 bl sub_8104CAC movs r0, 0x12 strb r0, [r4] _08102294: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0810229C: .4byte 0x02000000 thumb_func_end sub_8102264 thumb_func_start sub_81022A0 sub_81022A0: @ 81022A0 push {lr} bl sub_8104E18 lsls r0, 24 cmp r0, 0 beq _081022C0 ldr r2, _081022C8 movs r0, 0x13 strb r0, [r2] ldrh r1, [r2, 0x8] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _081022C0 movs r0, 0x9 strb r0, [r2] _081022C0: movs r0, 0 pop {r1} bx r1 .align 2, 0 _081022C8: .4byte 0x02000000 thumb_func_end sub_81022A0 thumb_func_start sub_81022CC sub_81022CC: @ 81022CC push {lr} movs r0, 0 bl sub_8103D8C movs r0, 0x1 bl sub_8103D8C movs r0, 0x2 bl sub_8103D8C ldr r1, _081022EC movs r0, 0x2 strb r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _081022EC: .4byte 0x02000000 thumb_func_end sub_81022CC thumb_func_start sub_81022F0 sub_81022F0: @ 81022F0 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x40 ble _0810230C movs r0, 0 strh r0, [r1, 0xA] ldr r1, _08102314 movs r0, 0x13 strb r0, [r1] _0810230C: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08102314: .4byte 0x02000000 thumb_func_end sub_81022F0 thumb_func_start sub_8102318 sub_8102318: @ 8102318 push {lr} ldr r0, _0810233C bl sub_8101F2C movs r0, 0x15 movs r1, 0x7 movs r2, 0x1 bl sub_8072974 bl sub_814AB84 ldr r1, _08102340 movs r0, 0x16 strb r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _0810233C: .4byte gUnknown_0842CA90 _08102340: .4byte 0x02000000 thumb_func_end sub_8102318 thumb_func_start sub_8102344 sub_8102344: @ 8102344 push {lr} bl FillWindowPixelBuffer lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 bne _0810237C bl sub_8071EF4 movs r0, 0 bl sub_8103D8C movs r0, 0x1 bl sub_8103D8C movs r0, 0x2 bl sub_8103D8C ldr r0, _08102378 ldrh r1, [r0, 0x12] ldrh r2, [r0, 0xC] adds r1, r2 strh r1, [r0, 0xC] movs r1, 0x1B strb r1, [r0] b _08102392 .align 2, 0 _08102378: .4byte 0x02000000 _0810237C: cmp r1, 0x1 beq _08102388 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _08102392 _08102388: bl sub_8071EF4 ldr r1, _08102398 movs r0, 0x5 strb r0, [r1] _08102392: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08102398: .4byte 0x02000000 thumb_func_end sub_8102344 thumb_func_start sub_810239C sub_810239C: @ 810239C push {lr} ldr r0, _081023B0 bl sub_8101F2C ldr r1, _081023B4 movs r0, 0x18 strb r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _081023B0: .4byte gUnknown_0842CA9F _081023B4: .4byte 0x02000000 thumb_func_end sub_810239C thumb_func_start sub_81023B8 sub_81023B8: @ 81023B8 push {lr} ldr r0, _081023D8 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _081023D0 bl sub_8071EF4 ldr r1, _081023DC movs r0, 0x5 strb r0, [r1] _081023D0: movs r0, 0 pop {r1} bx r1 .align 2, 0 _081023D8: .4byte 0x03001770 _081023DC: .4byte 0x02000000 thumb_func_end sub_81023B8 thumb_func_start sub_81023E0 sub_81023E0: @ 81023E0 push {lr} ldr r0, _081023F4 bl sub_8101F2C ldr r1, _081023F8 movs r0, 0x1A strb r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _081023F4: .4byte gUnknown_0842CAB7 _081023F8: .4byte 0x02000000 thumb_func_end sub_81023E0 thumb_func_start sub_81023FC sub_81023FC: @ 81023FC push {lr} ldr r0, _0810241C ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08102414 bl sub_8071EF4 ldr r1, _08102420 movs r0, 0x1B strb r0, [r1] _08102414: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0810241C: .4byte 0x03001770 _08102420: .4byte 0x02000000 thumb_func_end sub_81023FC thumb_func_start sub_8102424 sub_8102424: @ 8102424 push {r4,lr} sub sp, 0x4 ldr r0, _08102454 ldr r4, _08102458 ldrh r1, [r4, 0xC] ldr r2, _0810245C adds r0, r2 movs r2, 0 strh r1, [r0] movs r0, 0x1 negs r0, r0 str r2, [sp] movs r1, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r0, 0 add sp, 0x4 pop {r4} pop {r1} bx r1 .align 2, 0 _08102454: .4byte 0x02025734 _08102458: .4byte 0x02000000 _0810245C: .4byte 0x00000494 thumb_func_end sub_8102424 thumb_func_start sub_8102460 sub_8102460: @ 8102460 push {lr} ldr r0, _0810247C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08102476 ldr r0, _08102480 ldr r0, [r0, 0x64] bl SetMainCallback2 _08102476: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0810247C: .4byte 0x0202f388 _08102480: .4byte 0x02000000 thumb_func_end sub_8102460 thumb_func_start sub_8102484 sub_8102484: @ 8102484 push {r4,lr} ldr r4, _081024E4 ldrb r0, [r4, 0xA] cmp r0, 0 bne _081024DC ldrb r1, [r4, 0x4] movs r0, 0xC0 ands r0, r1 cmp r0, 0 bne _081024DC bl sub_8102540 lsls r0, 24 cmp r0, 0 beq _081024C0 bl sub_8102578 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 beq _081024C0 ldr r1, _081024E8 lsls r0, r3, 1 adds r0, r1 ldrb r1, [r0] ldrb r0, [r4, 0x4] orrs r0, r1 strb r0, [r4, 0x4] cmp r3, 0x1 bne _081024DC _081024C0: bl sub_81025BC lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x5 beq _081024DC ldr r2, _081024E4 ldr r1, _081024EC lsls r0, r3, 1 adds r0, r1 ldrb r1, [r0] ldrb r0, [r2, 0x4] orrs r0, r1 strb r0, [r2, 0x4] _081024DC: pop {r4} pop {r0} bx r0 .align 2, 0 _081024E4: .4byte 0x02000000 _081024E8: .4byte gUnknown_083ECE42 _081024EC: .4byte gUnknown_083ECE48 thumb_func_end sub_8102484 thumb_func_start sub_81024F0 sub_81024F0: @ 81024F0 push {lr} ldr r1, _08102508 movs r0, 0 strb r0, [r1, 0x6] ldrb r0, [r1, 0x4] cmp r0, 0 beq _08102502 movs r0, 0x1 strb r0, [r1, 0x6] _08102502: pop {r0} bx r0 .align 2, 0 _08102508: .4byte 0x02000000 thumb_func_end sub_81024F0 thumb_func_start sub_810250C sub_810250C: @ 810250C push {r4,lr} lsls r0, 24 lsrs r1, r0, 24 movs r2, 0 movs r3, 0x1 ldr r4, _08102528 _08102518: adds r0, r1, 0 ands r0, r3 cmp r0, 0 beq _0810252C adds r0, r2, r4 ldrb r0, [r0] b _0810253A .align 2, 0 _08102528: .4byte gUnknown_083ECE3A _0810252C: lsrs r1, 1 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x7 bls _08102518 movs r0, 0 _0810253A: pop {r4} pop {r1} bx r1 thumb_func_end sub_810250C thumb_func_start sub_8102540 sub_8102540: @ 8102540 push {r4,lr} bl Random lsls r0, 24 lsrs r0, 24 ldr r4, _08102568 ldr r1, _0810256C movs r3, 0x12 ldrsh r2, [r1, r3] ldrb r3, [r1, 0x1] lsls r1, r3, 1 adds r1, r3 subs r1, 0x1 adds r2, r1 adds r2, r4 ldrb r1, [r2] cmp r1, r0 bhi _08102570 movs r0, 0 b _08102572 .align 2, 0 _08102568: .4byte gUnknown_083ECD04 _0810256C: .4byte 0x02000000 _08102570: movs r0, 0x1 _08102572: pop {r4} pop {r1} bx r1 thumb_func_end sub_8102540 thumb_func_start sub_8102578 sub_8102578: @ 8102578 push {r4-r6,lr} movs r5, 0 ldr r6, _081025B4 _0810257E: bl Random movs r2, 0xFF ldr r3, _081025B8 lsls r1, r5, 16 asrs r4, r1, 16 lsls r1, r4, 1 adds r1, r4 lsls r1, 1 ldrb r3, [r3, 0x1] adds r1, r3 adds r1, r6 ldrb r1, [r1] ands r2, r0 cmp r1, r2 bgt _081025AA adds r0, r4, 0x1 lsls r0, 16 lsrs r5, r0, 16 asrs r0, 16 cmp r0, 0x2 ble _0810257E _081025AA: lsls r0, r5, 24 lsrs r0, 24 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081025B4: .4byte gUnknown_083ECD16 _081025B8: .4byte 0x02000000 thumb_func_end sub_8102578 thumb_func_start sub_81025BC sub_81025BC: @ 81025BC push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0 ldr r0, _08102600 mov r8, r0 ldr r5, _08102604 movs r7, 0x80 lsls r7, 17 _081025CE: bl Random movs r4, 0xFF ands r4, r0 lsls r2, r6, 16 asrs r1, r2, 16 lsls r0, r1, 1 adds r0, r1 lsls r0, 1 ldrb r3, [r5, 0x1] adds r0, r3 add r0, r8 ldrb r3, [r0] cmp r1, 0 bne _08102608 ldrb r0, [r5, 0x3] cmp r0, 0x1 bne _08102608 adds r3, 0xA asrs r0, r7, 16 cmp r3, r0 ble _08102622 adds r3, r0, 0 b _08102622 .align 2, 0 _08102600: .4byte gUnknown_083ECD28 _08102604: .4byte 0x02000000 _08102608: asrs r0, r2, 16 cmp r0, 0x4 bne _08102622 ldrb r0, [r5, 0x3] cmp r0, 0x1 bne _08102622 lsls r0, r3, 16 ldr r1, _08102648 adds r0, r1 lsrs r3, r0, 16 cmp r0, 0 bge _08102622 movs r3, 0 _08102622: lsls r0, r3, 16 asrs r0, 16 cmp r0, r4 bgt _08102638 movs r3, 0x80 lsls r3, 9 adds r0, r2, r3 lsrs r6, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _081025CE _08102638: lsls r0, r6, 24 lsrs r0, 24 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08102648: .4byte 0xfff60000 thumb_func_end sub_81025BC thumb_func_start sub_810264C sub_810264C: @ 810264C push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r3, _08102660 ldrb r0, [r3, 0x3] cmp r0, 0 beq _08102668 ldr r0, _08102664 b _0810266A .align 2, 0 _08102660: .4byte 0x02000000 _08102664: .4byte gUnknown_083ECDAC _08102668: ldr r0, _0810267C _0810266A: lsls r1, r2, 4 adds r1, r2 ldrb r3, [r3, 0x2] adds r1, r3 adds r1, r0 ldrb r0, [r1] pop {r1} bx r1 .align 2, 0 _0810267C: .4byte gUnknown_083ECD46 thumb_func_end sub_810264C thumb_func_start sub_8102680 sub_8102680: @ 8102680 push {r4-r6,lr} ldr r1, _081026A4 movs r0, 0 strb r0, [r1, 0x5] bl Random lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 bl sub_810264C lsls r0, 24 lsrs r0, 24 cmp r4, r0 bcc _081026D2 movs r6, 0x5 b _081026AE .align 2, 0 _081026A4: .4byte 0x02000000 _081026A8: subs r0, r5, 0x1 lsls r0, 16 lsrs r6, r0, 16 _081026AE: lsls r0, r6, 16 asrs r5, r0, 16 cmp r5, 0 ble _081026CE bl Random lsls r0, 24 lsrs r4, r0, 24 lsls r0, r6, 24 lsrs r0, 24 bl sub_810264C lsls r0, 24 lsrs r0, 24 cmp r4, r0 bcs _081026A8 _081026CE: ldr r0, _081026D8 strb r6, [r0, 0x5] _081026D2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081026D8: .4byte 0x02000000 thumb_func_end sub_8102680 thumb_func_start sub_81026DC sub_81026DC: @ 81026DC push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl Random movs r1, 0xFF ands r1, r0 ldr r0, _081026FC lsls r4, 1 adds r4, r0 ldrh r4, [r4] cmp r1, r4 bcc _08102700 movs r0, 0 b _08102702 .align 2, 0 _081026FC: .4byte gUnknown_083ECE12 _08102700: movs r0, 0x1 _08102702: pop {r4} pop {r1} bx r1 thumb_func_end sub_81026DC thumb_func_start dp15_jump_random_unknown dp15_jump_random_unknown: @ 8102708 push {r4,r5,lr} movs r4, 0 ldr r0, _0810271C movs r2, 0x10 ldrsh r1, [r0, r2] ldr r0, _08102720 cmp r1, r0 ble _08102724 movs r4, 0x4 b _0810273A .align 2, 0 _0810271C: .4byte 0x02000000 _08102720: .4byte 0x0000012b _08102724: cmp r1, 0xF9 ble _0810272C movs r4, 0x3 b _0810273A _0810272C: cmp r1, 0xC7 ble _08102734 movs r4, 0x2 b _0810273A _08102734: cmp r1, 0x95 ble _0810273A movs r4, 0x1 _0810273A: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 24 lsrs r1, r0, 24 ldr r5, _0810275C lsls r4, 2 adds r0, r4, r5 ldrb r0, [r0] cmp r1, r0 bcs _08102760 movs r0, 0x4 b _0810279A .align 2, 0 _0810275C: .4byte gUnknown_083ECE1C _08102760: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 24 adds r2, r5, 0x2 adds r2, r4, r2 ldr r3, _08102790 ldr r1, _08102794 ldrb r1, [r1, 0xB] lsls r1, 1 adds r1, r3 ldrb r1, [r1] ldrb r2, [r2] adds r1, r2 lsls r1, 24 cmp r0, r1 bcc _08102798 movs r0, 0x8 b _0810279A .align 2, 0 _08102790: .4byte gUnknown_083ECE30 _08102794: .4byte 0x02000000 _08102798: movs r0, 0x2 _0810279A: pop {r4,r5} pop {r1} bx r1 thumb_func_end dp15_jump_random_unknown thumb_func_start sub_81027A0 sub_81027A0: @ 81027A0 push {r4,lr} ldr r4, _081027CC movs r0, 0 strh r0, [r4, 0x8] bl sub_81027D0 movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0x1 ble _081027B8 bl sub_8102840 _081027B8: movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0x2 ble _081027C4 bl sub_810290C _081027C4: pop {r4} pop {r0} bx r0 .align 2, 0 _081027CC: .4byte 0x02000000 thumb_func_end sub_81027A0 thumb_func_start sub_81027D0 sub_81027D0: @ 81027D0 push {r4,r5,lr} movs r0, 0 movs r1, 0x2 bl sub_8102BA4 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0x1 movs r1, 0x2 bl sub_8102BA4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x2 movs r1, 0x2 bl sub_8102BA4 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 adds r1, r4, 0 bl sub_81029D4 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x9 beq _0810282E ldr r2, _08102834 ldr r0, _08102838 lsls r1, 1 adds r0, r1, r0 ldrh r0, [r0] ldrh r3, [r2, 0xE] adds r0, r3 strh r0, [r2, 0xE] ldr r0, _0810283C adds r1, r0 ldrh r0, [r2, 0x8] ldrh r1, [r1] orrs r0, r1 strh r0, [r2, 0x8] movs r0, 0 bl sub_8103E04 _0810282E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08102834: .4byte 0x02000000 _08102838: .4byte gUnknown_083ECE6C _0810283C: .4byte gUnknown_083ECE5A thumb_func_end sub_81027D0 thumb_func_start sub_8102840 sub_8102840: @ 8102840 push {r4,r5,lr} movs r0, 0 movs r1, 0x1 bl sub_8102BA4 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x1 movs r1, 0x1 bl sub_8102BA4 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x2 movs r1, 0x1 bl sub_8102BA4 lsls r0, 24 lsrs r2, r0, 24 adds r0, r5, 0 adds r1, r4, 0 bl sub_81029D4 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x9 beq _0810289E cmp r1, 0 bne _0810287C movs r1, 0x1 _0810287C: ldr r2, _08102900 ldr r0, _08102904 lsls r1, 1 adds r0, r1, r0 ldrh r0, [r0] ldrh r3, [r2, 0xE] adds r0, r3 strh r0, [r2, 0xE] ldr r0, _08102908 adds r1, r0 ldrh r0, [r2, 0x8] ldrh r1, [r1] orrs r0, r1 strh r0, [r2, 0x8] movs r0, 0x1 bl sub_8103E04 _0810289E: movs r0, 0 movs r1, 0x3 bl sub_8102BA4 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x1 movs r1, 0x3 bl sub_8102BA4 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x2 movs r1, 0x3 bl sub_8102BA4 lsls r0, 24 lsrs r2, r0, 24 adds r0, r5, 0 adds r1, r4, 0 bl sub_81029D4 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x9 beq _081028FA cmp r1, 0 bne _081028D8 movs r1, 0x1 _081028D8: ldr r2, _08102900 ldr r0, _08102904 lsls r1, 1 adds r0, r1, r0 ldrh r0, [r0] ldrh r3, [r2, 0xE] adds r0, r3 strh r0, [r2, 0xE] ldr r0, _08102908 adds r1, r0 ldrh r0, [r2, 0x8] ldrh r1, [r1] orrs r0, r1 strh r0, [r2, 0x8] movs r0, 0x2 bl sub_8103E04 _081028FA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08102900: .4byte 0x02000000 _08102904: .4byte gUnknown_083ECE6C _08102908: .4byte gUnknown_083ECE5A thumb_func_end sub_8102840 thumb_func_start sub_810290C sub_810290C: @ 810290C push {r4,r5,lr} movs r0, 0 movs r1, 0x1 bl sub_8102BA4 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x1 movs r1, 0x2 bl sub_8102BA4 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x2 movs r1, 0x3 bl sub_8102BA4 lsls r0, 24 lsrs r2, r0, 24 adds r0, r5, 0 adds r1, r4, 0 bl sub_81029D4 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x9 beq _08102968 cmp r1, 0 beq _08102962 ldr r2, _081029C8 ldr r0, _081029CC lsls r1, 1 adds r0, r1, r0 ldrh r0, [r0] ldrh r3, [r2, 0xE] adds r0, r3 strh r0, [r2, 0xE] ldr r0, _081029D0 adds r1, r0 ldrh r0, [r2, 0x8] ldrh r1, [r1] orrs r0, r1 strh r0, [r2, 0x8] _08102962: movs r0, 0x3 bl sub_8103E04 _08102968: movs r0, 0 movs r1, 0x3 bl sub_8102BA4 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x1 movs r1, 0x2 bl sub_8102BA4 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x2 movs r1, 0x1 bl sub_8102BA4 lsls r0, 24 lsrs r2, r0, 24 adds r0, r5, 0 adds r1, r4, 0 bl sub_81029D4 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x9 beq _081029C2 cmp r1, 0 beq _081029BC ldr r2, _081029C8 ldr r0, _081029CC lsls r1, 1 adds r0, r1, r0 ldrh r0, [r0] ldrh r3, [r2, 0xE] adds r0, r3 strh r0, [r2, 0xE] ldr r0, _081029D0 adds r1, r0 ldrh r0, [r2, 0x8] ldrh r1, [r1] orrs r0, r1 strh r0, [r2, 0x8] _081029BC: movs r0, 0x4 bl sub_8103E04 _081029C2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081029C8: .4byte 0x02000000 _081029CC: .4byte gUnknown_083ECE6C _081029D0: .4byte gUnknown_083ECE5A thumb_func_end sub_810290C thumb_func_start sub_81029D4 sub_81029D4: @ 81029D4 push {lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 cmp r3, r1 bne _081029F8 cmp r3, r2 bne _081029F8 ldr r0, _081029F4 adds r0, r3, r0 ldrb r0, [r0] b _08102A1E .align 2, 0 _081029F4: .4byte gUnknown_083ECE52 _081029F8: cmp r3, 0 bne _08102A04 cmp r1, 0 bne _08102A04 cmp r2, 0x1 beq _08102A10 _08102A04: cmp r3, 0x1 bne _08102A14 cmp r1, 0x1 bne _08102A14 cmp r2, 0 bne _08102A14 _08102A10: movs r0, 0x6 b _08102A1E _08102A14: cmp r3, 0x4 beq _08102A1C movs r0, 0x9 b _08102A1E _08102A1C: movs r0, 0 _08102A1E: pop {r1} bx r1 thumb_func_end sub_81029D4 thumb_func_start sub_8102A24 sub_8102A24: @ 8102A24 push {r4,lr} ldr r4, _08102A40 adds r0, r4, 0 movs r1, 0x4 bl CreateTask lsls r0, 24 lsrs r0, 24 bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _08102A40: .4byte sub_8102A64 thumb_func_end sub_8102A24 thumb_func_start sub_8102A44 sub_8102A44: @ 8102A44 push {lr} ldr r0, _08102A58 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _08102A5C movs r0, 0 b _08102A5E .align 2, 0 _08102A58: .4byte sub_8102A64 _08102A5C: movs r0, 0x1 _08102A5E: pop {r1} bx r1 thumb_func_end sub_8102A44 thumb_func_start sub_8102A64 sub_8102A64: @ 8102A64 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _08102A94 ldr r2, _08102A98 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _08102A76: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _08102A76 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08102A94: .4byte gUnknown_083ECB20 _08102A98: .4byte 0x03004b20 thumb_func_end sub_8102A64 thumb_func_start sub_8102A9C sub_8102A9C: @ 8102A9C push {r4,lr} adds r4, r0, 0 bl sub_8103E38 lsls r0, 24 cmp r0, 0 beq _08102AC8 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] ldr r0, _08102AC4 movs r1, 0xE ldrsh r0, [r0, r1] cmp r0, 0 bne _08102AC8 movs r0, 0x2 strh r0, [r4, 0x8] movs r0, 0x1 b _08102ACA .align 2, 0 _08102AC4: .4byte 0x02000000 _08102AC8: movs r0, 0 _08102ACA: pop {r4} pop {r1} bx r1 thumb_func_end sub_8102A9C thumb_func_start sub_8102AD0 sub_8102AD0: @ 8102AD0 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _08102B22 bl task_is_not_running_overworld_fanfare lsls r0, 24 cmp r0, 0 beq _08102AF6 movs r0, 0x15 bl audio_play _08102AF6: ldr r2, _08102B70 ldrh r0, [r2, 0xE] subs r0, 0x1 strh r0, [r2, 0xE] ldrh r3, [r2, 0xC] movs r0, 0xC ldrsh r1, [r2, r0] ldr r0, _08102B74 cmp r1, r0 bgt _08102B0E adds r0, r3, 0x1 strh r0, [r2, 0xC] _08102B0E: movs r0, 0x8 strh r0, [r4, 0xA] ldr r0, _08102B78 ldrh r1, [r0, 0x2C] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08102B22 movs r0, 0x4 strh r0, [r4, 0xA] _08102B22: bl task_is_not_running_overworld_fanfare lsls r0, 24 cmp r0, 0 beq _08102B58 ldr r0, _08102B78 ldrh r1, [r0, 0x2E] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08102B58 movs r0, 0x15 bl audio_play ldr r1, _08102B70 ldrh r0, [r1, 0xE] ldrh r2, [r1, 0xC] adds r0, r2 strh r0, [r1, 0xC] lsls r0, 16 asrs r0, 16 ldr r2, _08102B7C cmp r0, r2 ble _08102B54 strh r2, [r1, 0xC] _08102B54: movs r0, 0 strh r0, [r1, 0xE] _08102B58: ldr r0, _08102B70 movs r1, 0xE ldrsh r0, [r0, r1] cmp r0, 0 bne _08102B68 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _08102B68: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08102B70: .4byte 0x02000000 _08102B74: .4byte 0x0000270e _08102B78: .4byte 0x03001770 _08102B7C: .4byte 0x0000270f thumb_func_end sub_8102AD0 thumb_func_start sub_8102B80 sub_8102B80: @ 8102B80 push {lr} bl sub_8103E7C lsls r0, 24 cmp r0, 0 beq _08102B9A ldr r0, _08102BA0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _08102B9A: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08102BA0: .4byte sub_8102A64 thumb_func_end sub_8102B80 thumb_func_start sub_8102BA4 sub_8102BA4: @ 8102BA4 push {r4,lr} lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 ldr r0, _08102BF0 lsls r2, r4, 1 adds r0, 0x28 adds r2, r0 movs r3, 0 ldrsh r0, [r2, r3] lsls r1, 16 asrs r1, 16 adds r0, r1 movs r1, 0x15 bl __modsi3 lsls r0, 16 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0 bge _08102BD4 adds r0, 0x15 lsls r0, 16 lsrs r1, r0, 16 _08102BD4: ldr r2, _08102BF4 lsls r1, 16 asrs r1, 16 lsls r0, r4, 2 adds r0, r4 lsls r0, 2 adds r0, r4 adds r1, r0 adds r1, r2 ldrb r0, [r1] pop {r4} pop {r1} bx r1 .align 2, 0 _08102BF0: .4byte 0x02000000 _08102BF4: .4byte gUnknown_083ECCB2 thumb_func_end sub_8102BA4 thumb_func_start sub_8102BF8 sub_8102BF8: @ 8102BF8 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 lsls r1, 16 lsrs r4, r1, 16 movs r6, 0 ldr r0, _08102C40 lsls r1, r5, 1 adds r0, 0x1C adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] movs r1, 0x18 bl __modsi3 lsls r0, 16 cmp r0, 0 beq _08102C20 ldr r6, _08102C44 _08102C20: lsls r1, r4, 16 asrs r1, 16 lsls r0, r6, 16 asrs r0, 16 adds r1, r0 lsls r1, 16 asrs r1, 16 adds r0, r5, 0 bl sub_8102BA4 lsls r0, 24 lsrs r0, 24 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08102C40: .4byte 0x02000000 _08102C44: .4byte 0x0000ffff thumb_func_end sub_8102BF8 thumb_func_start sub_8102C48 sub_8102C48: @ 8102C48 push {lr} ldr r1, _08102C7C movs r2, 0x16 ldrsh r1, [r1, r2] lsls r0, 16 asrs r0, 16 adds r1, r0 adds r0, r1, 0 movs r1, 0x6 bl __modsi3 lsls r0, 16 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0 bge _08102C6E adds r0, 0x6 lsls r0, 16 lsrs r1, r0, 16 _08102C6E: ldr r0, _08102C80 lsls r1, 16 asrs r1, 16 adds r1, r0 ldrb r0, [r1] pop {r1} bx r1 .align 2, 0 _08102C7C: .4byte 0x02000000 _08102C80: .4byte gUnknown_083ECCF1 thumb_func_end sub_8102C48 thumb_func_start sub_8102C84 sub_8102C84: @ 8102C84 push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 ldr r6, _08102CC8 lsrs r5, 23 adds r4, r6, 0 adds r4, 0x1C adds r4, r5, r4 lsls r1, 16 asrs r1, 16 ldrh r0, [r4] adds r1, r0 strh r1, [r4] movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0xFC lsls r1, 1 bl __modsi3 strh r0, [r4] adds r6, 0x28 adds r5, r6 movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x18 bl __divsi3 movs r1, 0x15 subs r1, r0 strh r1, [r5] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08102CC8: .4byte 0x02000000 thumb_func_end sub_8102C84 thumb_func_start sub_8102CCC sub_8102CCC: @ 8102CCC push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 lsls r1, 16 lsrs r4, r1, 16 ldr r0, _08102D24 lsls r1, r6, 1 adds r0, 0x1C adds r5, r1, r0 movs r1, 0 ldrsh r0, [r5, r1] movs r1, 0x18 bl __modsi3 lsls r0, 16 lsrs r0, 16 lsls r2, r0, 16 asrs r1, r2, 16 cmp r1, 0 beq _08102D18 lsls r0, r4, 16 asrs r0, 16 cmp r1, r0 bge _08102D00 lsrs r4, r2, 16 _08102D00: lsls r1, r4, 16 asrs r1, 16 adds r0, r6, 0 bl sub_8102C84 movs r1, 0 ldrsh r0, [r5, r1] movs r1, 0x18 bl __modsi3 lsls r0, 16 lsrs r0, 16 _08102D18: lsls r0, 16 asrs r0, 16 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08102D24: .4byte 0x02000000 thumb_func_end sub_8102CCC thumb_func_start sub_8102D28 sub_8102D28: @ 8102D28 push {r4,lr} ldr r4, _08102D58 lsls r0, 16 asrs r0, 16 ldrh r1, [r4, 0x14] adds r0, r1 strh r0, [r4, 0x14] movs r1, 0x14 ldrsh r0, [r4, r1] movs r1, 0x78 bl __modsi3 strh r0, [r4, 0x14] movs r1, 0x14 ldrsh r0, [r4, r1] movs r1, 0x14 bl __divsi3 movs r1, 0x6 subs r1, r0 strh r1, [r4, 0x16] pop {r4} pop {r0} bx r0 .align 2, 0 _08102D58: .4byte 0x02000000 thumb_func_end sub_8102D28 thumb_func_start sub_8102D5C sub_8102D5C: @ 8102D5C push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 ldr r5, _08102DA4 movs r1, 0x14 ldrsh r0, [r5, r1] movs r1, 0x14 bl __modsi3 lsls r0, 16 lsrs r0, 16 lsls r2, r0, 16 asrs r1, r2, 16 cmp r1, 0 beq _08102D9A lsls r0, r4, 16 asrs r0, 16 cmp r1, r0 bge _08102D84 lsrs r4, r2, 16 _08102D84: lsls r0, r4, 16 asrs r0, 16 bl sub_8102D28 movs r1, 0x14 ldrsh r0, [r5, r1] movs r1, 0x14 bl __modsi3 lsls r0, 16 lsrs r0, 16 _08102D9A: lsls r0, 16 asrs r0, 16 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08102DA4: .4byte 0x02000000 thumb_func_end sub_8102D5C thumb_func_start sub_8102DA8 sub_8102DA8: @ 8102DA8 push {r4-r7,lr} movs r4, 0 ldr r5, _08102DE0 ldr r7, _08102DE4 ldr r6, _08102DE8 _08102DB2: adds r0, r5, 0 movs r1, 0x2 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r7 strh r4, [r1, 0x26] adds r1, r4, r6 strb r0, [r1] bl _call_via_r5 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _08102DB2 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08102DE0: .4byte sub_8102E68 _08102DE4: .4byte 0x03004b20 _08102DE8: .4byte 0x0200003a thumb_func_end sub_8102DA8 thumb_func_start sub_8102DEC sub_8102DEC: @ 8102DEC lsls r0, 24 lsrs r0, 24 ldr r3, _08102E14 ldr r1, _08102E18 adds r1, 0x3A adds r0, r1 ldrb r2, [r0] lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r3 movs r2, 0x1 strh r2, [r1, 0x8] ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r3 strh r2, [r0, 0x24] bx lr .align 2, 0 _08102E14: .4byte 0x03004b20 _08102E18: .4byte 0x02000000 thumb_func_end sub_8102DEC thumb_func_start sub_8102E1C sub_8102E1C: @ 8102E1C lsls r0, 24 lsrs r0, 24 ldr r2, _08102E38 ldr r1, _08102E3C adds r1, 0x3A adds r0, r1 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0x2 strh r1, [r0, 0x8] bx lr .align 2, 0 _08102E38: .4byte 0x03004b20 _08102E3C: .4byte 0x02000000 thumb_func_end sub_8102E1C thumb_func_start sub_8102E40 sub_8102E40: @ 8102E40 lsls r0, 24 lsrs r0, 24 ldr r2, _08102E60 ldr r1, _08102E64 adds r1, 0x3A adds r0, r1 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r0, [r0, 0x24] lsls r0, 24 lsrs r0, 24 bx lr .align 2, 0 _08102E60: .4byte 0x03004b20 _08102E64: .4byte 0x02000000 thumb_func_end sub_8102E40 thumb_func_start sub_8102E68 sub_8102E68: @ 8102E68 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _08102E98 ldr r2, _08102E9C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _08102E7A: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _08102E7A pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08102E98: .4byte gUnknown_083ECB2C _08102E9C: .4byte 0x03004b20 thumb_func_end sub_8102E68 thumb_func_start sub_8102EA0 sub_8102EA0: @ 8102EA0 movs r0, 0 bx lr thumb_func_end sub_8102EA0 thumb_func_start sub_8102EA4 sub_8102EA4: @ 8102EA4 push {lr} ldrh r0, [r0, 0x26] lsls r0, 24 lsrs r0, 24 ldr r1, _08102EBC movs r2, 0x1A ldrsh r1, [r1, r2] bl sub_8102C84 movs r0, 0 pop {r1} bx r1 .align 2, 0 _08102EBC: .4byte 0x02000000 thumb_func_end sub_8102EA4 thumb_func_start sub_8102EC0 sub_8102EC0: @ 8102EC0 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x8] adds r0, 0x1 movs r2, 0 strh r0, [r4, 0x8] ldr r3, _08102F40 movs r1, 0x26 ldrsh r0, [r4, r1] lsls r0, 1 adds r1, r3, 0 adds r1, 0x34 adds r0, r1 strh r2, [r0] movs r1, 0x26 ldrsh r0, [r4, r1] lsls r0, 1 adds r1, r3, 0 adds r1, 0x2E adds r0, r1 strh r2, [r0] ldrb r0, [r3, 0xA] cmp r0, 0 bne _08102F28 ldrb r0, [r3, 0x4] cmp r0, 0 beq _08102F12 ldrb r0, [r3, 0x6] cmp r0, 0 beq _08102F12 ldr r1, _08102F44 movs r2, 0x26 ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 lsls r0, 24 cmp r0, 0 bne _08102F28 _08102F12: ldr r1, _08102F40 movs r0, 0 strb r0, [r1, 0x6] ldr r1, _08102F48 movs r2, 0x26 ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 _08102F28: ldr r0, _08102F40 movs r2, 0x26 ldrsh r1, [r4, r2] lsls r1, 1 adds r0, 0x2E adds r1, r0 ldrh r0, [r1] strh r0, [r4, 0xA] movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _08102F40: .4byte 0x02000000 _08102F44: .4byte gUnknown_083ECB40 _08102F48: .4byte gUnknown_083ECB4C thumb_func_end sub_8102EC0 thumb_func_start sub_8102F4C sub_8102F4C: @ 8102F4C push {r4-r7,lr} sub sp, 0xC adds r4, r0, 0 ldr r1, _08102F8C mov r0, sp movs r2, 0xA bl memcpy ldr r5, _08102F90 movs r1, 0x26 ldrsh r0, [r4, r1] lsls r6, r0, 1 adds r7, r5, 0 adds r7, 0x1C adds r0, r6, r7 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0x18 bl __modsi3 lsls r0, 16 lsrs r2, r0, 16 cmp r0, 0 beq _08102F94 ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 movs r6, 0x1A ldrsh r1, [r5, r6] bl sub_8102CCC b _08102FC8 .align 2, 0 _08102F8C: .4byte gUnknown_083ECB58 _08102F90: .4byte 0x02000000 _08102F94: adds r0, r5, 0 adds r0, 0x2E adds r1, r6, r0 ldrh r3, [r1] movs r6, 0 ldrsh r0, [r1, r6] cmp r0, 0 beq _08102FCC subs r0, r3, 0x1 strh r0, [r1] ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 movs r2, 0x1A ldrsh r1, [r5, r2] bl sub_8102C84 movs r6, 0x26 ldrsh r0, [r4, r6] lsls r0, 1 adds r0, r7 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0x18 bl __modsi3 _08102FC8: lsls r0, 16 lsrs r2, r0, 16 _08102FCC: cmp r2, 0 bne _08102FF8 ldr r1, _08103004 movs r2, 0x26 ldrsh r0, [r4, r2] lsls r0, 1 adds r1, 0x2E adds r0, r1 movs r6, 0 ldrsh r1, [r0, r6] cmp r1, 0 bne _08102FF8 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 1 add r0, sp ldrh r0, [r0] strh r0, [r4, 0xA] strh r1, [r4, 0xC] _08102FF8: movs r0, 0 add sp, 0xC pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08103004: .4byte 0x02000000 thumb_func_end sub_8102F4C thumb_func_start sub_8103008 sub_8103008: @ 8103008 push {r4,lr} adds r2, r0, 0 ldr r1, _08103058 movs r3, 0x26 ldrsh r0, [r2, r3] lsls r0, 1 adds r4, r1, 0 adds r4, 0x22 adds r0, r4 ldrh r1, [r2, 0xA] strh r1, [r0] ldrh r0, [r2, 0xA] negs r3, r0 strh r3, [r2, 0xA] ldrh r0, [r2, 0xC] adds r0, 0x1 strh r0, [r2, 0xC] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _08103038 lsls r0, r3, 16 asrs r0, 17 strh r0, [r2, 0xA] _08103038: movs r0, 0xA ldrsh r3, [r2, r0] cmp r3, 0 bne _0810304E strh r3, [r2, 0x8] strh r3, [r2, 0x24] movs r1, 0x26 ldrsh r0, [r2, r1] lsls r0, 1 adds r0, r4 strh r3, [r0] _0810304E: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08103058: .4byte 0x02000000 thumb_func_end sub_8103008 thumb_func_start sub_810305C sub_810305C: @ 810305C push {r4,r5,lr} ldr r4, _0810309C ldrb r0, [r4, 0x4] bl sub_810250C lsls r0, 24 lsrs r3, r0, 24 adds r5, r3, 0 ldrb r1, [r4, 0x4] movs r0, 0xC0 ands r0, r1 cmp r0, 0 beq _0810307A movs r5, 0 movs r3, 0x1 _0810307A: ldr r1, _081030A0 movs r2, 0x12 ldrsh r0, [r4, r2] subs r0, 0x1 lsls r0, 2 adds r0, r1 ldr r2, [r0] adds r0, r5, 0 adds r1, r3, 0 bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0810309C: .4byte 0x02000000 _081030A0: .4byte gUnknown_083ECB64 thumb_func_end sub_810305C thumb_func_start sub_81030A4 sub_81030A4: @ 81030A4 push {r4,r5,lr} adds r3, r0, 0 adds r4, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r2, 24 lsrs r5, r2, 24 lsls r3, 16 asrs r3, 16 movs r0, 0 adds r1, r3, 0 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, r4 beq _081030CC cmp r0, r5 bne _081030D8 _081030CC: ldr r0, _081030D4 strb r1, [r0, 0x7] movs r0, 0x1 b _081030DA .align 2, 0 _081030D4: .4byte 0x02000000 _081030D8: movs r0, 0 _081030DA: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81030A4 thumb_func_start sub_81030E0 sub_81030E0: @ 81030E0 push {r4,lr} movs r1, 0x1 lsls r0, 16 asrs r4, r0, 16 subs r1, r4 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 beq _08103128 movs r1, 0x2 subs r1, r4 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 beq _08103128 movs r1, 0x3 subs r1, r4 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _0810312C _08103128: movs r0, 0x1 b _0810312E _0810312C: movs r0, 0 _0810312E: pop {r4} pop {r1} bx r1 thumb_func_end sub_81030E0 thumb_func_start sub_8103134 sub_8103134: @ 8103134 push {lr} ldr r0, _08103148 ldrb r1, [r0, 0x4] movs r0, 0xC2 ands r0, r1 cmp r0, 0 bne _0810314C movs r0, 0 b _0810314E .align 2, 0 _08103148: .4byte 0x02000000 _0810314C: movs r0, 0x1 _0810314E: pop {r1} bx r1 thumb_func_end sub_8103134 thumb_func_start sub_8103154 sub_8103154: @ 8103154 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r7, r1, 24 movs r5, 0 movs r0, 0x2 mov r9, r0 ldr r6, _08103194 _0810316E: lsls r0, r5, 16 asrs r4, r0, 16 mov r1, r9 subs r0, r1, r4 lsls r0, 16 asrs r0, 16 mov r1, r8 adds r2, r7, 0 bl sub_81030A4 lsls r0, 24 cmp r0, 0 beq _08103198 movs r0, 0x2 strh r0, [r6, 0x34] strh r5, [r6, 0x2E] movs r0, 0x1 b _081031A6 .align 2, 0 _08103194: .4byte 0x02000000 _08103198: adds r0, r4, 0x1 lsls r0, 16 lsrs r5, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _0810316E movs r0, 0 _081031A6: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8103154 thumb_func_start sub_81031B4 sub_81031B4: @ 81031B4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r1, 24 lsrs r1, 24 mov r9, r1 bl sub_8103134 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _081031E2 movs r0, 0 bl sub_81030E0 lsls r0, 24 cmp r0, 0 bne _0810321E _081031E2: movs r0, 0x1 mov r8, r0 ldr r5, _0810320C movs r7, 0 _081031EA: mov r1, r8 lsls r0, r1, 16 asrs r4, r0, 16 adds r0, r4, 0 mov r1, r10 mov r2, r9 bl sub_81030A4 lsls r0, 24 cmp r0, 0 beq _08103210 mov r0, r8 strh r0, [r5, 0x34] strh r7, [r5, 0x2E] movs r0, 0x1 b _081032B2 .align 2, 0 _0810320C: .4byte 0x02000000 _08103210: adds r0, r4, 0x1 lsls r0, 16 lsrs r1, r0, 16 mov r8, r1 asrs r0, 16 cmp r0, 0x3 ble _081031EA _0810321E: movs r0, 0x1 mov r8, r0 adds r7, r6, 0 ldr r6, _0810326C _08103226: mov r1, r8 lsls r5, r1, 16 cmp r7, 0 bne _0810323A asrs r0, r5, 16 bl sub_81030E0 lsls r0, 24 cmp r0, 0 bne _081032A0 _0810323A: movs r0, 0x1 asrs r4, r5, 16 subs r0, r4 lsls r0, 16 asrs r0, 16 mov r1, r10 mov r2, r9 bl sub_81030A4 lsls r0, 24 cmp r0, 0 beq _081032A0 cmp r4, 0x1 bne _08103270 cmp r7, 0 bne _08103266 movs r0, 0x3 bl sub_81030E0 lsls r0, 24 cmp r0, 0 bne _08103270 _08103266: movs r0, 0x3 strh r0, [r6, 0x34] b _0810329A .align 2, 0 _0810326C: .4byte 0x02000000 _08103270: asrs r0, r5, 16 cmp r0, 0x3 bgt _08103294 adds r4, r0, 0x1 cmp r7, 0 bne _0810328A lsls r0, r4, 16 asrs r0, 16 bl sub_81030E0 lsls r0, 24 cmp r0, 0 bne _08103294 _0810328A: movs r0, 0x2 strh r0, [r6, 0x34] strh r4, [r6, 0x2E] movs r0, 0x1 b _081032B2 _08103294: movs r0, 0x1 strh r0, [r6, 0x34] mov r0, r8 _0810329A: strh r0, [r6, 0x2E] movs r0, 0x1 b _081032B2 _081032A0: movs r1, 0x80 lsls r1, 9 adds r0, r5, r1 lsrs r1, r0, 16 mov r8, r1 asrs r0, 16 cmp r0, 0x4 ble _08103226 movs r0, 0 _081032B2: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81031B4 thumb_func_start sub_81032C0 sub_81032C0: @ 81032C0 push {lr} ldr r1, _081032E0 ldr r0, _081032E4 movs r2, 0x12 ldrsh r0, [r0, r2] subs r0, 0x1 lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _081032E0: .4byte gUnknown_083ECB70 _081032E4: .4byte 0x02000000 thumb_func_end sub_81032C0 thumb_func_start sub_81032E8 sub_81032E8: @ 81032E8 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _08103320 movs r6, 0 ldrh r1, [r0, 0x34] mov r8, r1 movs r1, 0x34 ldrsh r7, [r0, r1] adds r5, r0, 0 _081032FC: lsls r0, r6, 16 asrs r4, r0, 16 subs r1, r7, r4 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 ldrb r1, [r5, 0x7] cmp r0, r1 bne _08103324 mov r0, r8 strh r0, [r5, 0x36] strh r6, [r5, 0x30] movs r0, 0x1 b _08103332 .align 2, 0 _08103320: .4byte 0x02000000 _08103324: adds r0, r4, 0x1 lsls r0, 16 lsrs r6, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _081032FC movs r0, 0 _08103332: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81032E8 thumb_func_start sub_810333C sub_810333C: @ 810333C push {r4-r7,lr} bl sub_81032E8 lsls r0, 24 cmp r0, 0 beq _0810339A ldr r1, _0810338C movs r2, 0x34 ldrsh r0, [r1, r2] cmp r0, 0x2 beq _08103396 movs r2, 0x30 ldrsh r0, [r1, r2] cmp r0, 0x1 ble _08103396 cmp r0, 0x4 beq _08103396 movs r5, 0 movs r7, 0x2 adds r6, r1, 0 _08103364: lsls r0, r5, 16 asrs r4, r0, 16 subs r1, r7, r4 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 ldrb r1, [r6, 0x7] cmp r0, r1 beq _08103390 adds r0, r4, 0x1 lsls r0, 16 lsrs r5, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _08103364 b _08103396 .align 2, 0 _0810338C: .4byte 0x02000000 _08103390: movs r0, 0x2 strh r0, [r6, 0x36] strh r5, [r6, 0x30] _08103396: movs r0, 0x1 b _081033D2 _0810339A: ldr r1, _081033D8 movs r2, 0x34 ldrsh r0, [r1, r2] cmp r0, 0x2 beq _081033D0 movs r5, 0 movs r7, 0x2 adds r6, r1, 0 _081033AA: lsls r0, r5, 16 asrs r4, r0, 16 subs r1, r7, r4 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 ldrb r1, [r6, 0x7] cmp r0, r1 beq _08103390 adds r0, r4, 0x1 lsls r0, 16 lsrs r5, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _081033AA _081033D0: movs r0, 0 _081033D2: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081033D8: .4byte 0x02000000 thumb_func_end sub_810333C thumb_func_start sub_81033DC sub_81033DC: @ 81033DC push {r4,lr} ldr r0, _08103414 ldrb r3, [r0, 0x7] adds r4, r3, 0 ldrb r2, [r0, 0x4] movs r1, 0x40 ands r1, r2 cmp r1, 0 beq _081033F6 movs r3, 0 cmp r4, 0 bne _081033F6 movs r3, 0x1 _081033F6: ldr r1, _08103418 movs r2, 0x12 ldrsh r0, [r0, r2] subs r0, 0x1 lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r3, 0 bl _call_via_r1 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _08103414: .4byte 0x02000000 _08103418: .4byte gUnknown_083ECB7C thumb_func_end sub_81033DC thumb_func_start sub_810341C sub_810341C: @ 810341C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r0, _0810345C movs r5, 0 ldrh r1, [r0, 0x36] mov r8, r1 movs r1, 0x36 ldrsh r7, [r0, r1] adds r6, r0, 0 _08103438: lsls r0, r5, 16 asrs r4, r0, 16 subs r1, r7, r4 lsls r1, 16 asrs r1, 16 movs r0, 0x2 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 cmp r0, r9 bne _08103460 mov r0, r8 strh r0, [r6, 0x38] strh r5, [r6, 0x32] movs r0, 0x1 b _0810346E .align 2, 0 _0810345C: .4byte 0x02000000 _08103460: adds r0, r4, 0x1 lsls r0, 16 lsrs r5, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _08103438 movs r0, 0 _0810346E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_810341C thumb_func_start sub_810347C sub_810347C: @ 810347C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _081034A0 movs r2, 0x34 ldrsh r1, [r0, r2] movs r2, 0x36 ldrsh r0, [r0, r2] cmp r1, r0 bne _081034B4 adds r0, r6, 0 bl sub_810341C lsls r0, 24 lsrs r0, 24 b _081034EA .align 2, 0 _081034A0: .4byte 0x02000000 _081034A4: ldr r0, _081034B0 strh r5, [r0, 0x32] mov r1, r8 strh r1, [r0, 0x38] movs r0, 0x1 b _081034EA .align 2, 0 _081034B0: .4byte 0x02000000 _081034B4: movs r2, 0x1 mov r8, r2 cmp r1, 0x1 bne _081034C0 movs r0, 0x3 mov r8, r0 _081034C0: movs r5, 0 mov r7, r8 _081034C4: lsls r0, r5, 16 asrs r4, r0, 16 subs r1, r7, r4 lsls r1, 16 asrs r1, 16 movs r0, 0x2 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 cmp r0, r6 beq _081034A4 adds r0, r4, 0x1 lsls r0, 16 lsrs r5, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _081034C4 movs r0, 0 _081034EA: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_810347C thumb_func_start sub_81034F4 sub_81034F4: @ 81034F4 push {r4,r5,lr} movs r5, 0 b _08103500 _081034FA: adds r0, r4, 0x1 lsls r0, 16 lsrs r5, r0, 16 _08103500: lsls r0, r5, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_81030E0 lsls r0, 24 cmp r0, 0 bne _081034FA ldr r0, _0810351C strh r5, [r0, 0x2E] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810351C: .4byte 0x02000000 thumb_func_end sub_81034F4 thumb_func_start sub_8103520 sub_8103520: @ 8103520 push {lr} adds r1, r0, 0 ldrb r0, [r1] cmp r0, 0 bne _0810352E movs r0, 0x1 b _08103538 _0810352E: cmp r0, 0x1 beq _08103536 movs r0, 0 b _0810353C _08103536: movs r0, 0 _08103538: strb r0, [r1] movs r0, 0x1 _0810353C: pop {r1} bx r1 thumb_func_end sub_8103520 thumb_func_start sub_8103540 sub_8103540: @ 8103540 push {lr} ldr r1, _0810355C ldr r0, _08103560 movs r2, 0x12 ldrsh r0, [r0, r2] subs r0, 0x1 lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .align 2, 0 _0810355C: .4byte gUnknown_083ECB88 _08103560: .4byte 0x02000000 thumb_func_end sub_8103540 thumb_func_start sub_8103564 sub_8103564: @ 8103564 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r4, _081035D0 movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 beq _081035E0 ldrb r1, [r4, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081035E0 ldrh r0, [r4, 0x2E] movs r1, 0x2 subs r1, r0 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 mov r1, sp strb r0, [r1] mov r0, sp bl sub_8103520 lsls r0, 24 cmp r0, 0 beq _081035E0 movs r5, 0 mov r7, sp movs r0, 0x2 mov r8, r0 adds r6, r4, 0 _081035AA: lsls r0, r5, 16 asrs r4, r0, 16 mov r0, r8 subs r1, r0, r4 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 ldrb r1, [r7] lsls r0, 24 lsrs r0, 24 cmp r1, r0 bne _081035D4 movs r0, 0x2 strh r0, [r6, 0x36] strh r5, [r6, 0x30] b _081035E0 .align 2, 0 _081035D0: .4byte 0x02000000 _081035D4: adds r0, r4, 0x1 lsls r0, 16 lsrs r5, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _081035AA _081035E0: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8103564 thumb_func_start j5_08111E84 j5_08111E84: @ 81035EC push {r4-r7,lr} sub sp, 0x4 ldr r4, _08103650 ldrh r2, [r4, 0x34] movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 beq _08103660 ldrb r1, [r4, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08103660 ldrh r1, [r4, 0x2E] subs r1, r2, r1 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 mov r1, sp strb r0, [r1] mov r0, sp bl sub_8103520 lsls r0, 24 cmp r0, 0 beq _08103660 movs r6, 0 mov r7, sp adds r5, r4, 0 _0810362A: ldrh r1, [r5, 0x34] lsls r0, r6, 16 asrs r4, r0, 16 subs r1, r4 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 ldrb r1, [r7] lsls r0, 24 lsrs r0, 24 cmp r1, r0 bne _08103654 ldrh r0, [r5, 0x34] strh r0, [r5, 0x36] strh r6, [r5, 0x30] b _08103660 .align 2, 0 _08103650: .4byte 0x02000000 _08103654: adds r0, r4, 0x1 lsls r0, 16 lsrs r6, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _0810362A _08103660: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end j5_08111E84 thumb_func_start sub_8103668 sub_8103668: @ 8103668 push {r4-r7,lr} sub sp, 0x4 ldr r4, _0810368C ldrh r3, [r4, 0x34] movs r0, 0x34 ldrsh r2, [r4, r0] cmp r2, 0 beq _0810375A ldrb r1, [r4, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0810375A cmp r2, 0x2 bne _081036AE bl j5_08111E84 b _0810375A .align 2, 0 _0810368C: .4byte 0x02000000 _08103690: ldr r0, _0810369C movs r1, 0 strh r6, [r0, 0x36] strh r1, [r0, 0x30] b _0810375A .align 2, 0 _0810369C: .4byte 0x02000000 _081036A0: movs r0, 0x2 strh r0, [r5, 0x36] adds r0, r4, 0x1 strh r0, [r5, 0x30] b _0810375A _081036AA: movs r0, 0x3 b _08103736 _081036AE: ldrh r1, [r4, 0x2E] subs r1, r3, r1 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 mov r1, sp strb r0, [r1] mov r0, sp bl sub_8103520 lsls r0, 24 cmp r0, 0 beq _0810375A movs r6, 0x2 movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0x3 bne _081036D8 movs r6, 0x3 _081036D8: movs r5, 0 mov r7, sp _081036DC: lsls r0, r6, 16 asrs r4, r0, 16 movs r0, 0x1 adds r1, r4, 0 bl sub_8102BF8 ldrb r1, [r7] lsls r0, 24 lsrs r0, 24 cmp r1, r0 beq _08103690 lsls r1, r5, 16 movs r0, 0x80 lsls r0, 9 adds r1, r0 subs r0, r4, 0x1 lsls r0, 16 lsrs r6, r0, 16 lsrs r5, r1, 16 asrs r1, 16 cmp r1, 0x1 ble _081036DC movs r6, 0x1 mov r7, sp ldr r5, _0810373C _0810370E: ldrh r1, [r5, 0x34] lsls r0, r6, 16 asrs r4, r0, 16 subs r1, r4 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 ldrb r1, [r7] lsls r0, 24 lsrs r0, 24 cmp r1, r0 bne _0810374E movs r1, 0x34 ldrsh r0, [r5, r1] cmp r0, 0x1 bne _08103740 cmp r4, 0x2 ble _081036A0 _08103736: strh r0, [r5, 0x36] strh r6, [r5, 0x30] b _0810375A .align 2, 0 _0810373C: .4byte 0x02000000 _08103740: cmp r4, 0x2 ble _081036AA movs r0, 0x2 strh r0, [r5, 0x36] subs r0, r4, 0x1 strh r0, [r5, 0x30] b _0810375A _0810374E: adds r0, r4, 0x1 lsls r0, 16 lsrs r6, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _0810370E _0810375A: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8103668 thumb_func_start sub_8103764 sub_8103764: @ 8103764 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 adds r2, r1, 0 cmp r0, 0 bne _08103778 cmp r1, 0x1 beq _08103780 _08103778: cmp r0, 0x1 bne _08103784 cmp r2, 0 bne _08103784 _08103780: movs r0, 0x1 b _08103786 _08103784: movs r0, 0 _08103786: pop {r1} bx r1 thumb_func_end sub_8103764 thumb_func_start sub_810378C sub_810378C: @ 810378C push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 cmp r0, 0 bne _081037A6 cmp r1, 0x1 bne _081037A6 cmp r2, 0 beq _081037B2 _081037A6: cmp r0, 0x1 bne _081037B6 cmp r1, 0 bne _081037B6 cmp r2, 0x1 bne _081037B6 _081037B2: movs r0, 0x1 b _081037B8 _081037B6: movs r0, 0 _081037B8: pop {r1} bx r1 thumb_func_end sub_810378C thumb_func_start sub_81037BC sub_81037BC: @ 81037BC push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 cmp r0, 0 bne _081037D6 cmp r1, 0x1 bne _081037D6 cmp r2, 0 beq _08103802 _081037D6: cmp r0, 0x1 bne _081037E2 cmp r1, 0 bne _081037E2 cmp r2, 0x1 beq _08103802 _081037E2: cmp r0, 0 bne _081037EE cmp r1, 0 bne _081037EE cmp r2, 0x1 beq _08103802 _081037EE: cmp r0, 0x1 bne _081037FA cmp r1, 0x1 bne _081037FA cmp r2, 0 beq _08103802 _081037FA: cmp r0, r1 bne _08103806 cmp r0, r2 bne _08103806 _08103802: movs r0, 0 b _08103808 _08103806: movs r0, 0x1 _08103808: pop {r1} bx r1 thumb_func_end sub_81037BC thumb_func_start sub_810380C sub_810380C: @ 810380C push {lr} ldr r1, _08103828 ldr r0, _0810382C movs r2, 0x12 ldrsh r0, [r0, r2] subs r0, 0x1 lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .align 2, 0 _08103828: .4byte gUnknown_083ECB94 _0810382C: .4byte 0x02000000 thumb_func_end sub_810380C thumb_func_start sub_8103830 sub_8103830: @ 8103830 push {r4-r7,lr} movs r6, 0 ldr r7, _08103868 ldrh r1, [r7, 0x2E] movs r4, 0x2 subs r1, r4, r1 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r7, 0x30] subs r4, r0 lsls r4, 16 asrs r4, 16 movs r0, 0x1 adds r1, r4, 0 bl sub_8102BF8 lsls r0, 24 lsrs r1, r0, 24 cmp r5, r1 bne _081038A0 movs r4, 0x2 b _08103876 .align 2, 0 _08103868: .4byte 0x02000000 _0810386C: lsls r0, r6, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r6, r0, 16 _08103876: lsls r1, r6, 16 asrs r1, 16 subs r1, r4, r1 lsls r1, 16 asrs r1, 16 movs r0, 0x2 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 cmp r5, r0 beq _0810386C cmp r5, 0 bne _08103896 cmp r0, 0x1 beq _0810386C _08103896: cmp r5, 0x1 bne _08103900 cmp r0, 0 beq _0810386C b _08103900 _081038A0: adds r0, r5, 0 bl sub_8103764 lsls r0, 24 cmp r0, 0 beq _08103900 ldrb r1, [r7, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081038DC movs r7, 0x2 _081038B8: lsls r0, r6, 16 asrs r4, r0, 16 subs r1, r7, r4 lsls r1, 16 asrs r1, 16 movs r0, 0x2 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 cmp r5, r0 beq _08103900 adds r0, r4, 0x1 lsls r0, 16 lsrs r6, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _081038B8 _081038DC: movs r6, 0 movs r7, 0x2 b _081038E8 _081038E2: adds r0, r4, 0x1 lsls r0, 16 lsrs r6, r0, 16 _081038E8: lsls r0, r6, 16 asrs r4, r0, 16 subs r1, r7, r4 lsls r1, 16 asrs r1, 16 movs r0, 0x2 bl sub_8102BF8 lsls r0, 24 lsrs r0, 24 cmp r5, r0 beq _081038E2 _08103900: ldr r0, _0810390C strh r6, [r0, 0x32] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810390C: .4byte 0x02000000 thumb_func_end sub_8103830 thumb_func_start sub_8103910 sub_8103910: @ 8103910 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r4, _08103978 movs r2, 0x36 ldrsh r1, [r4, r2] cmp r1, 0 beq _081039A6 ldrh r2, [r4, 0x34] movs r3, 0x34 ldrsh r0, [r4, r3] cmp r0, r1 bne _081039A6 ldrb r1, [r4, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081039A6 ldrh r1, [r4, 0x2E] subs r1, r2, r1 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 lsls r0, 24 lsrs r7, r0, 24 ldrh r1, [r4, 0x36] ldrh r0, [r4, 0x30] subs r1, r0 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 lsls r0, 24 lsrs r6, r0, 24 adds r0, r7, 0 adds r1, r6, 0 bl sub_8103764 lsls r0, 24 cmp r0, 0 beq _081039A6 movs r5, 0 b _08103982 .align 2, 0 _08103978: .4byte 0x02000000 _0810397C: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _08103982: lsls r6, r5, 16 asrs r5, r6, 16 cmp r5, 0x4 bgt _081039A6 ldr r0, _08103A34 ldrh r1, [r0, 0x36] subs r1, r5 lsls r1, 16 asrs r1, 16 movs r0, 0x2 bl sub_8102BF8 lsls r0, 24 lsrs r4, r0, 24 cmp r7, r4 bne _0810397C lsrs r6, 16 str r6, [sp] _081039A6: ldr r0, _08103A34 mov r9, r0 _081039AA: movs r5, 0x1 movs r1, 0 mov r8, r1 ldr r2, [sp] lsls r2, 16 mov r10, r2 _081039B6: mov r3, r9 ldrh r1, [r3, 0x2E] lsls r5, 16 asrs r4, r5, 16 subs r1, r4, r1 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 lsls r0, 24 lsrs r7, r0, 24 mov r0, r9 ldrh r1, [r0, 0x30] subs r1, r4, r1 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 lsls r0, 24 lsrs r6, r0, 24 mov r1, r10 asrs r0, r1, 16 subs r4, r0 lsls r4, 16 asrs r4, 16 movs r0, 0x2 adds r1, r4, 0 bl sub_8102BF8 lsls r0, 24 lsrs r4, r0, 24 adds r0, r7, 0 adds r1, r6, 0 adds r2, r4, 0 bl sub_81037BC lsls r0, 24 cmp r0, 0 bne _08103A38 adds r0, r7, 0 adds r1, r6, 0 adds r2, r4, 0 bl sub_810378C lsls r0, 24 cmp r0, 0 beq _08103A24 mov r2, r9 ldrb r1, [r2, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08103A38 _08103A24: mov r3, r8 lsls r0, r3, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r0, 16 mov r8, r0 b _08103A46 .align 2, 0 _08103A34: .4byte 0x02000000 _08103A38: movs r2, 0x80 lsls r2, 9 adds r0, r5, r2 lsrs r5, r0, 16 asrs r0, 16 cmp r0, 0x3 ble _081039B6 _08103A46: mov r3, r8 cmp r3, 0 beq _08103A5C ldr r1, [sp] lsls r0, r1, 16 movs r2, 0x80 lsls r2, 9 adds r0, r2 lsrs r0, 16 str r0, [sp] b _081039AA _08103A5C: ldr r0, _08103A74 mov r3, sp ldrh r3, [r3] strh r3, [r0, 0x32] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08103A74: .4byte 0x02000000 thumb_func_end sub_8103910 thumb_func_start sub_8103A78 sub_8103A78: @ 8103A78 push {r4-r7,lr} mov r7, r8 push {r7} bl sub_8103910 ldr r4, _08103B10 movs r0, 0x36 ldrsh r1, [r4, r0] cmp r1, 0 beq _08103B20 ldrh r2, [r4, 0x34] movs r3, 0x34 ldrsh r0, [r4, r3] cmp r0, r1 beq _08103B20 ldrb r1, [r4, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08103B20 ldrh r1, [r4, 0x2E] subs r1, r2, r1 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 lsls r0, 24 lsrs r6, r0, 24 ldrh r1, [r4, 0x36] ldrh r0, [r4, 0x30] subs r1, r0 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 lsls r0, 24 lsrs r5, r0, 24 adds r0, r6, 0 adds r1, r5, 0 bl sub_8103764 lsls r0, 24 cmp r0, 0 beq _08103B20 movs r1, 0x1 movs r2, 0x34 ldrsh r0, [r4, r2] cmp r0, 0x1 bne _08103AE0 movs r1, 0x3 _08103AE0: movs r3, 0 lsls r1, 16 mov r8, r1 adds r7, r4, 0 _08103AE8: ldrh r2, [r7, 0x32] lsls r0, r3, 16 asrs r5, r0, 16 adds r2, r5, r2 mov r3, r8 asrs r1, r3, 16 subs r1, r2 lsls r1, 16 asrs r1, 16 movs r0, 0x2 bl sub_8102BF8 lsls r0, 24 lsrs r4, r0, 24 cmp r6, r4 bne _08103B14 ldrh r0, [r7, 0x32] adds r0, r5, r0 strh r0, [r7, 0x32] b _08103B20 .align 2, 0 _08103B10: .4byte 0x02000000 _08103B14: adds r0, r5, 0x1 lsls r0, 16 lsrs r3, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _08103AE8 _08103B20: ldr r7, _08103B90 _08103B22: ldrh r0, [r7, 0x2E] movs r1, 0x1 subs r1, r0 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 lsls r0, 24 lsrs r6, r0, 24 ldrh r0, [r7, 0x30] movs r1, 0x2 subs r1, r0 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r7, 0x32] movs r1, 0x3 subs r1, r0 lsls r1, 16 asrs r1, 16 movs r0, 0x2 bl sub_8102BF8 lsls r0, 24 lsrs r4, r0, 24 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_81037BC lsls r0, 24 cmp r0, 0 bne _08103B94 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_810378C lsls r0, 24 cmp r0, 0 beq _08103B88 ldrb r1, [r7, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08103B94 _08103B88: ldrh r0, [r7, 0x32] adds r0, 0x1 strh r0, [r7, 0x32] b _08103B22 .align 2, 0 _08103B90: .4byte 0x02000000 _08103B94: ldr r7, _08103C04 _08103B96: ldrh r0, [r7, 0x2E] movs r1, 0x3 subs r1, r0 lsls r1, 16 asrs r1, 16 movs r0, 0 bl sub_8102BF8 lsls r0, 24 lsrs r6, r0, 24 ldrh r0, [r7, 0x30] movs r1, 0x2 subs r1, r0 lsls r1, 16 asrs r1, 16 movs r0, 0x1 bl sub_8102BF8 lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r7, 0x32] movs r1, 0x1 subs r1, r0 lsls r1, 16 asrs r1, 16 movs r0, 0x2 bl sub_8102BF8 lsls r0, 24 lsrs r4, r0, 24 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_81037BC lsls r0, 24 cmp r0, 0 bne _08103C08 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_810378C lsls r0, 24 cmp r0, 0 beq _08103BFC ldrb r1, [r7, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08103C08 _08103BFC: ldrh r0, [r7, 0x32] adds r0, 0x1 strh r0, [r7, 0x32] b _08103B96 .align 2, 0 _08103C04: .4byte 0x02000000 _08103C08: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8103A78 thumb_func_start sub_8103C14 sub_8103C14: @ 8103C14 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _08103C40 adds r0, r5, 0 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08103C44 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x26] bl _call_via_r5 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08103C40: .4byte sub_8103C48 _08103C44: .4byte 0x03004b20 thumb_func_end sub_8103C14 thumb_func_start sub_8103C48 sub_8103C48: @ 8103C48 push {r4,lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _08103C70 ldr r2, _08103C74 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r4, 0x8 ldrsh r2, [r0, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 pop {r4} pop {r0} bx r0 .align 2, 0 _08103C70: .4byte gUnknown_083ECBA0 _08103C74: .4byte 0x03004b20 thumb_func_end sub_8103C48 thumb_func_start sub_8103C78 sub_8103C78: @ 8103C78 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 ldr r1, _08103CA8 movs r2, 0x26 ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0x73 str r1, [sp] movs r1, 0x62 movs r2, 0x63 movs r3, 0x72 bl sub_81065A8 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08103CA8: .4byte gUnknown_083ECBAC thumb_func_end sub_8103C78 thumb_func_start sub_8103CAC sub_8103CAC: @ 8103CAC push {lr} adds r1, r0, 0 ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xB ble _08103CC4 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _08103CC4: pop {r0} bx r0 thumb_func_end sub_8103CAC thumb_func_start sub_8103CC8 sub_8103CC8: @ 8103CC8 push {r4,lr} sub sp, 0x4 lsls r4, r1, 24 lsrs r4, 24 ldr r1, _08103CFC movs r2, 0x26 ldrsh r0, [r0, r2] lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0x53 str r1, [sp] movs r1, 0x42 movs r2, 0x43 movs r3, 0x52 bl sub_81065A8 adds r0, r4, 0 bl DestroyTask add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08103CFC: .4byte gUnknown_083ECBAC thumb_func_end sub_8103CC8 thumb_func_start sub_8103D00 sub_8103D00: @ 8103D00 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _08103D20 lsls r1, r0, 2 adds r1, r2 ldr r2, [r1] ldr r1, _08103D24 adds r0, r1 ldrb r1, [r0] adds r0, r2, 0 movs r2, 0x2 bl LoadPalette pop {r0} bx r0 .align 2, 0 _08103D20: .4byte gUnknown_083EDD08 _08103D24: .4byte gUnknown_083EDD30 thumb_func_end sub_8103D00 thumb_func_start sub_8103D28 sub_8103D28: @ 8103D28 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _08103D48 lsls r1, r0, 2 adds r1, r2 ldr r2, [r1] ldr r1, _08103D4C adds r0, r1 ldrb r1, [r0] adds r0, r2, 0 movs r2, 0x2 bl LoadPalette pop {r0} bx r0 .align 2, 0 _08103D48: .4byte gUnknown_083EDD1C _08103D4C: .4byte gUnknown_083EDD30 thumb_func_end sub_8103D28 thumb_func_start sub_8103D50 sub_8103D50: @ 8103D50 push {r4-r7,lr} lsls r0, 24 lsrs r1, r0, 24 movs r4, 0 ldr r0, _08103D84 adds r0, r1, r0 ldrb r0, [r0] cmp r4, r0 bcs _08103D7C ldr r7, _08103D88 adds r6, r0, 0 lsls r5, r1, 1 _08103D68: adds r0, r4, r5 adds r0, r7 ldrb r0, [r0] bl sub_8103D00 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r6 bcc _08103D68 _08103D7C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08103D84: .4byte gUnknown_083EDD3B _08103D88: .4byte gUnknown_083EDD35 thumb_func_end sub_8103D50 thumb_func_start sub_8103D8C sub_8103D8C: @ 8103D8C push {r4-r7,lr} lsls r0, 24 lsrs r1, r0, 24 movs r4, 0 ldr r0, _08103DC0 adds r0, r1, r0 ldrb r0, [r0] cmp r4, r0 bcs _08103DB8 ldr r7, _08103DC4 adds r6, r0, 0 lsls r5, r1, 1 _08103DA4: adds r0, r4, r5 adds r0, r7 ldrb r0, [r0] bl sub_8103D28 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r6 bcc _08103DA4 _08103DB8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08103DC0: .4byte gUnknown_083EDD3B _08103DC4: .4byte gUnknown_083EDD35 thumb_func_end sub_8103D8C thumb_func_start sub_8103DC8 sub_8103DC8: @ 8103DC8 push {r4-r6,lr} movs r4, 0 ldr r6, _08103DF8 ldr r5, _08103DFC _08103DD0: ldr r0, _08103E00 bl CreateInvisibleSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 strh r4, [r1, 0x2E] adds r1, r4, r5 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _08103DD0 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08103DF8: .4byte 0x02020004 _08103DFC: .4byte 0x02000044 _08103E00: .4byte sub_8103EE4 thumb_func_end sub_8103DC8 thumb_func_start sub_8103E04 sub_8103E04: @ 8103E04 lsls r0, 24 lsrs r0, 24 ldr r1, _08103E30 adds r1, 0x44 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08103E34 adds r0, r1 movs r2, 0 movs r1, 0x1 strh r1, [r0, 0x30] movs r1, 0x4 strh r1, [r0, 0x32] strh r2, [r0, 0x34] strh r2, [r0, 0x36] movs r1, 0x2 strh r1, [r0, 0x38] strh r2, [r0, 0x3C] bx lr .align 2, 0 _08103E30: .4byte 0x02000000 _08103E34: .4byte 0x02020004 thumb_func_end sub_8103E04 thumb_func_start sub_8103E38 sub_8103E38: @ 8103E38 push {r4,r5,lr} movs r2, 0 ldr r4, _08103E60 ldr r3, _08103E64 _08103E40: adds r0, r2, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r3 movs r5, 0x30 ldrsh r0, [r1, r5] cmp r0, 0 beq _08103E68 movs r5, 0x32 ldrsh r0, [r1, r5] cmp r0, 0 beq _08103E68 movs r0, 0 b _08103E74 .align 2, 0 _08103E60: .4byte 0x02000044 _08103E64: .4byte 0x02020004 _08103E68: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x4 bls _08103E40 movs r0, 0x1 _08103E74: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8103E38 thumb_func_start sub_8103E7C sub_8103E7C: @ 8103E7C push {r4,r5,lr} movs r4, 0 ldr r5, _08103E94 _08103E82: adds r0, r4, r5 ldrb r0, [r0] bl sub_8103EAC lsls r0, 24 cmp r0, 0 bne _08103E98 movs r0, 0 b _08103EA4 .align 2, 0 _08103E94: .4byte 0x02000044 _08103E98: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _08103E82 movs r0, 0x1 _08103EA4: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8103E7C thumb_func_start sub_8103EAC sub_8103EAC: @ 8103EAC push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08103EC8 adds r1, r0 movs r2, 0x30 ldrsh r0, [r1, r2] cmp r0, 0 bne _08103ECC movs r0, 0x1 b _08103EDE .align 2, 0 _08103EC8: .4byte 0x02020004 _08103ECC: ldrh r2, [r1, 0x3C] movs r3, 0x3C ldrsh r0, [r1, r3] cmp r0, 0 beq _08103EDA movs r0, 0 strh r0, [r1, 0x30] _08103EDA: lsls r0, r2, 24 lsrs r0, 24 _08103EDE: pop {r1} bx r1 thumb_func_end sub_8103EAC thumb_func_start sub_8103EE4 sub_8103EE4: @ 8103EE4 push {r4-r7,lr} adds r2, r0, 0 movs r1, 0x30 ldrsh r0, [r2, r1] cmp r0, 0 beq _08103F66 ldrh r0, [r2, 0x34] subs r0, 0x1 strh r0, [r2, 0x34] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _08103F4E movs r0, 0 strh r0, [r2, 0x3C] movs r6, 0x1 strh r6, [r2, 0x34] ldrh r1, [r2, 0x38] ldrh r3, [r2, 0x36] adds r0, r1, r3 strh r0, [r2, 0x36] movs r4, 0x4 ldrh r5, [r2, 0x32] movs r7, 0x32 ldrsh r3, [r2, r7] cmp r3, 0 beq _08103F20 movs r4, 0x8 _08103F20: lsls r0, 16 asrs r0, 16 cmp r0, 0 bgt _08103F38 strh r6, [r2, 0x3C] negs r0, r1 strh r0, [r2, 0x38] cmp r3, 0 beq _08103F4E subs r0, r5, 0x1 strh r0, [r2, 0x32] b _08103F40 _08103F38: cmp r0, r4 blt _08103F40 negs r0, r1 strh r0, [r2, 0x38] _08103F40: movs r1, 0x32 ldrsh r0, [r2, r1] cmp r0, 0 beq _08103F4E ldrh r0, [r2, 0x34] lsls r0, 1 strh r0, [r2, 0x34] _08103F4E: ldr r1, _08103F6C movs r3, 0x2E ldrsh r0, [r2, r3] adds r0, r1 ldrb r0, [r0] ldrh r3, [r2, 0x36] lsls r3, 24 lsrs r3, 24 adds r1, r3, 0 adds r2, r3, 0 bl sub_8085D08 _08103F66: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08103F6C: .4byte gUnknown_083EDD30 thumb_func_end sub_8103EE4 thumb_func_start sub_8103F70 sub_8103F70: @ 8103F70 push {r4,lr} ldr r4, _08103F98 adds r0, r4, 0 movs r1, 0x6 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08103F9C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0x1 strh r2, [r1, 0xE] bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _08103F98: .4byte sub_8103FE8 _08103F9C: .4byte 0x03004b20 thumb_func_end sub_8103F70 thumb_func_start sub_8103FA0 sub_8103FA0: @ 8103FA0 push {lr} ldr r0, _08103FC4 bl FindTaskIdByFunc lsls r0, 24 lsrs r2, r0, 24 ldr r1, _08103FC8 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0 beq _08103FCC movs r0, 0 b _08103FE0 .align 2, 0 _08103FC4: .4byte sub_8103FE8 _08103FC8: .4byte 0x03004b20 _08103FCC: adds r0, r2, 0 bl DestroyTask ldr r0, _08103FE4 ldr r0, [r0] movs r1, 0x10 movs r2, 0x20 bl LoadPalette movs r0, 0x1 _08103FE0: pop {r1} bx r1 .align 2, 0 _08103FE4: .4byte gUnknown_083EDDAC thumb_func_end sub_8103FA0 thumb_func_start sub_8103FE8 sub_8103FE8: @ 8103FE8 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08104040 adds r2, r1, r0 ldrh r0, [r2, 0xA] subs r0, 0x1 strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _08104026 movs r0, 0x4 strh r0, [r2, 0xA] ldrh r1, [r2, 0xE] ldrh r3, [r2, 0xC] adds r0, r1, r3 strh r0, [r2, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0 beq _08104022 cmp r0, 0x2 bne _08104026 _08104022: negs r0, r1 strh r0, [r2, 0xE] _08104026: ldr r0, _08104044 movs r3, 0xC ldrsh r1, [r2, r3] lsls r1, 2 adds r1, r0 ldr r0, [r1] movs r1, 0x10 movs r2, 0x20 bl LoadPalette pop {r0} bx r0 .align 2, 0 _08104040: .4byte 0x03004b20 _08104044: .4byte gUnknown_083EDDA0 thumb_func_end sub_8103FE8 thumb_func_start sub_8104048 sub_8104048: @ 8104048 push {lr} ldr r0, _0810405C movs r1, 0x8 bl CreateTask ldr r1, _08104060 adds r1, 0x3E strb r0, [r1] pop {r0} bx r0 .align 2, 0 _0810405C: .4byte sub_81040E8 _08104060: .4byte 0x02000000 thumb_func_end sub_8104048 thumb_func_start sub_8104064 sub_8104064: @ 8104064 push {r4,lr} ldr r0, _08104090 adds r0, 0x3E ldrb r0, [r0] lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _08104094 adds r4, r0 adds r0, r4, 0 bl sub_810421C movs r1, 0x1 strh r1, [r4, 0x8] ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] strh r1, [r4, 0x26] pop {r4} pop {r0} bx r0 .align 2, 0 _08104090: .4byte 0x02000000 _08104094: .4byte 0x03004b20 thumb_func_end sub_8104064 thumb_func_start sub_8104098 sub_8104098: @ 8104098 push {r4,lr} ldr r0, _081040C0 adds r0, 0x3E ldrb r0, [r0] lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _081040C4 adds r4, r0 adds r0, r4, 0 bl sub_810421C movs r0, 0x3 strh r0, [r4, 0x8] movs r0, 0x1 strh r0, [r4, 0x26] pop {r4} pop {r0} bx r0 .align 2, 0 _081040C0: .4byte 0x02000000 _081040C4: .4byte 0x03004b20 thumb_func_end sub_8104098 thumb_func_start sub_81040C8 sub_81040C8: @ 81040C8 ldr r2, _081040E0 ldr r0, _081040E4 adds r0, 0x3E ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r0, [r0, 0x26] lsls r0, 24 lsrs r0, 24 bx lr .align 2, 0 _081040E0: .4byte 0x03004b20 _081040E4: .4byte 0x02000000 thumb_func_end sub_81040C8 thumb_func_start sub_81040E8 sub_81040E8: @ 81040E8 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _08104110 ldr r2, _08104114 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _08104110: .4byte gUnknown_083ECBB4 _08104114: .4byte 0x03004b20 thumb_func_end sub_81040E8 thumb_func_start nullsub_68 nullsub_68: @ 8104118 bx lr thumb_func_end nullsub_68 thumb_func_start sub_810411C sub_810411C: @ 810411C push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0xA] lsls r0, 19 movs r1, 0xA0 lsls r1, 13 adds r0, r1 asrs r0, 16 movs r1, 0x14 bl sub_8105B1C lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xC] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] pop {r4} pop {r0} bx r0 thumb_func_end sub_810411C thumb_func_start sub_8104144 sub_8104144: @ 8104144 push {r4,lr} adds r4, r0, 0 ldr r2, _08104174 movs r0, 0xC ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x3C ldrsh r0, [r0, r1] cmp r0, 0 beq _0810419E ldrh r1, [r4, 0xA] adds r0, r1, 0x2 lsls r0, 16 lsrs r2, r0, 16 movs r0, 0 lsls r1, 16 asrs r1, 16 cmp r1, 0x1 bne _08104178 movs r0, 0x1 b _0810417E .align 2, 0 _08104174: .4byte 0x02020004 _08104178: cmp r1, 0x10 bne _0810417E movs r0, 0x2 _0810417E: lsls r1, r2, 16 asrs r1, 15 ldr r2, _081041A4 adds r1, r2 adds r1, 0x80 ldr r2, _081041A8 lsls r0, 2 adds r0, r2 ldrh r0, [r0] strh r0, [r1] ldrb r0, [r4, 0xC] bl sub_8105B88 movs r0, 0 strh r0, [r4, 0x8] strh r0, [r4, 0x26] _0810419E: pop {r4} pop {r0} bx r0 .align 2, 0 _081041A4: .4byte 0x0600e800 _081041A8: .4byte gUnknown_083ECBC4 thumb_func_end sub_8104144 thumb_func_start sub_81041AC sub_81041AC: @ 81041AC push {r4,lr} adds r3, r0, 0 ldrh r1, [r3, 0xA] adds r0, r1, 0x2 lsls r0, 16 lsrs r4, r0, 16 movs r2, 0 lsls r1, 16 asrs r1, 16 cmp r1, 0x1 bne _081041C6 movs r2, 0x1 b _081041CC _081041C6: cmp r1, 0x10 bne _081041CC movs r2, 0x2 _081041CC: movs r1, 0xC ldrsh r0, [r3, r1] cmp r0, 0 bne _081041F0 lsls r0, r4, 16 asrs r0, 15 ldr r1, _08104214 adds r0, r1 adds r0, 0x80 ldr r1, _08104218 lsls r2, 2 adds r1, 0x2 adds r2, r1 ldrh r1, [r2] strh r1, [r0] ldrh r0, [r3, 0xA] subs r0, 0x1 strh r0, [r3, 0xA] _081041F0: ldrh r0, [r3, 0xC] adds r0, 0x1 strh r0, [r3, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x13 ble _08104202 movs r0, 0 strh r0, [r3, 0xC] _08104202: movs r1, 0xA ldrsh r0, [r3, r1] cmp r0, 0 bne _0810420E strh r0, [r3, 0x8] strh r0, [r3, 0x26] _0810420E: pop {r4} pop {r0} bx r0 .align 2, 0 _08104214: .4byte 0x0600e800 _08104218: .4byte gUnknown_083ECBC4 thumb_func_end sub_81041AC thumb_func_start sub_810421C sub_810421C: @ 810421C push {lr} movs r1, 0x2 adds r2, r0, 0 adds r2, 0x8 movs r3, 0 _08104226: lsls r0, r1, 1 adds r0, r2, r0 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bls _08104226 pop {r0} bx r0 thumb_func_end sub_810421C thumb_func_start sub_810423C sub_810423C: @ 810423C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 movs r2, 0x3 ldr r6, _08104268 movs r4, 0 ldr r0, _0810426C mov r8, r0 ldr r1, _08104270 mov r12, r1 cmp r4, r5 bge _081042A6 ldr r7, _08104274 _0810425A: movs r3, 0 lsls r0, r4, 16 asrs r0, 16 cmp r0, 0 bne _08104278 movs r3, 0x1 b _0810427E .align 2, 0 _08104268: .4byte 0x0600e800 _0810426C: .4byte 0x03004b20 _08104270: .4byte 0x02000000 _08104274: .4byte gUnknown_083ECBC4 _08104278: cmp r0, 0xF bne _0810427E movs r3, 0x2 _0810427E: lsls r2, 16 asrs r2, 16 lsls r1, r2, 1 adds r1, r6 adds r1, 0x80 lsls r0, r3, 2 adds r0, r7 ldrh r0, [r0] strh r0, [r1] lsls r0, r4, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 adds r2, 0x1 lsls r2, 16 lsrs r2, 16 lsrs r4, r0, 16 asrs r0, 16 cmp r0, r5 blt _0810425A _081042A6: lsls r1, r4, 16 asrs r0, r1, 16 cmp r0, 0xF bgt _081042F0 ldr r7, _081042BC _081042B0: movs r3, 0 asrs r0, r1, 16 cmp r0, 0 bne _081042C0 movs r3, 0x1 b _081042C6 .align 2, 0 _081042BC: .4byte gUnknown_083ECBC4 + 0x2 _081042C0: cmp r0, 0xF bne _081042C6 movs r3, 0x2 _081042C6: lsls r2, 16 asrs r2, 16 lsls r1, r2, 1 adds r1, r6 adds r1, 0x80 lsls r0, r3, 2 adds r0, r7 ldrh r0, [r0] strh r0, [r1] lsls r0, r4, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r4, r0, 16 adds r2, 0x1 lsls r2, 16 lsrs r2, 16 lsls r1, r4, 16 asrs r0, r1, 16 cmp r0, 0xF ble _081042B0 _081042F0: mov r0, r12 adds r0, 0x3E ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 add r0, r8 strh r5, [r0, 0xA] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_810423C thumb_func_start sub_810430C sub_810430C: @ 810430C push {r4,lr} ldr r4, _08104328 adds r0, r4, 0 movs r1, 0x7 bl CreateTask lsls r0, 24 lsrs r0, 24 bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _08104328: .4byte sub_810434C thumb_func_end sub_810430C thumb_func_start sub_810432C sub_810432C: @ 810432C push {lr} ldr r0, _08104340 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _08104344 movs r0, 0 b _08104346 .align 2, 0 _08104340: .4byte sub_810434C _08104344: movs r0, 0x1 _08104346: pop {r1} bx r1 thumb_func_end sub_810432C thumb_func_start sub_810434C sub_810434C: @ 810434C push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _08104374 ldr r2, _08104378 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _08104374: .4byte gUnknown_083ECBD0 _08104378: .4byte 0x03004b20 thumb_func_end sub_810434C thumb_func_start sub_810437C sub_810437C: @ 810437C push {lr} ldr r1, _081043DC movs r2, 0 strb r2, [r1, 0xA] strh r2, [r1, 0x14] strh r2, [r1, 0x16] ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] strh r2, [r0, 0xA] movs r1, 0x1E strh r1, [r0, 0xC] movs r1, 0xA0 lsls r1, 3 strh r1, [r0, 0x10] ldr r0, _081043E0 strh r2, [r0] ldr r0, _081043E4 strh r2, [r0] ldr r0, _081043E8 strh r2, [r0] adds r0, 0x2 strh r2, [r0] movs r0, 0x1E movs r1, 0 bl sub_8104A40 bl sub_81051C0 bl sub_8105100 bl sub_81052EC bl sub_81053A0 bl sub_810545C bl sub_8102680 bl sub_8074D08 movs r0, 0xC4 lsls r0, 1 bl current_map_music_set pop {r0} bx r0 .align 2, 0 _081043DC: .4byte 0x02000000 _081043E0: .4byte 0x030024d0 _081043E4: .4byte 0x030027e0 _081043E8: .4byte REG_BG1HOFS thumb_func_end sub_810437C thumb_func_start sub_81043EC sub_81043EC: @ 81043EC push {r4,lr} adds r4, r0, 0 ldr r1, _0810445C ldrh r0, [r1] subs r0, 0x8 strh r0, [r1] ldrh r2, [r4, 0xA] adds r2, 0x8 strh r2, [r4, 0xA] movs r1, 0xA ldrsh r0, [r4, r1] adds r0, 0xF0 movs r1, 0xFF ands r0, r1 lsrs r3, r0, 3 ldr r1, _08104460 ldr r0, _08104464 ands r2, r0 strh r2, [r1] adds r2, r3, 0 movs r1, 0xC ldrsh r0, [r4, r1] cmp r2, r0 beq _08104438 movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0x12 bgt _08104438 strh r3, [r4, 0xC] ldrh r0, [r4, 0xA] lsls r0, 16 asrs r0, 19 strh r0, [r4, 0xE] movs r0, 0xE ldrsh r1, [r4, r0] adds r0, r2, 0 bl sub_8104A40 _08104438: movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0xC7 ble _0810444A ldrh r0, [r4, 0x8] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0x8] strh r1, [r4, 0xE] _0810444A: ldrh r0, [r4, 0x10] lsls r0, 16 asrs r0, 24 bl sub_8102D28 pop {r4} pop {r0} bx r0 .align 2, 0 _0810445C: .4byte 0x030024d0 _08104460: .4byte REG_BG1HOFS _08104464: .4byte 0x000001ff thumb_func_end sub_81043EC thumb_func_start sub_8104468 sub_8104468: @ 8104468 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x10] lsls r0, 16 asrs r0, 24 bl sub_8102D28 ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x3B ble _08104492 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] bl sub_8105578 bl sub_81056F0 _08104492: pop {r4} pop {r0} bx r0 thumb_func_end sub_8104468 thumb_func_start sub_8104498 sub_8104498: @ 8104498 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 adds r7, r0, 0 ldr r1, _08104534 mov r0, sp movs r2, 0x4 bl memcpy add r0, sp, 0x4 mov r8, r0 ldr r1, _08104538 movs r2, 0x8 bl memcpy add r6, sp, 0xC ldr r1, _0810453C adds r0, r6, 0 movs r2, 0x8 bl memcpy ldrh r0, [r7, 0x10] lsls r0, 16 asrs r0, 24 bl sub_8102D28 ldrh r0, [r7, 0x10] subs r0, 0x4 strh r0, [r7, 0x10] lsls r0, 16 asrs r0, 24 movs r5, 0x4 subs r5, r0 lsls r4, r5, 1 add r8, r4 mov r1, r8 movs r2, 0 ldrsh r0, [r1, r2] bl sub_8105688 adds r6, r4 movs r1, 0 ldrsh r0, [r6, r1] bl sub_81057E8 ldr r0, _08104540 adds r0, 0x3F ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08104544 adds r0, r1 mov r2, sp adds r1, r2, r5 ldrb r1, [r1] bl StartSpriteAnimIfDifferent movs r1, 0x10 ldrsh r0, [r7, r1] movs r1, 0x80 lsls r1, 1 cmp r0, r1 bgt _08104526 ldrh r0, [r7, 0x8] adds r0, 0x1 strh r0, [r7, 0x8] strh r1, [r7, 0x10] movs r0, 0 strh r0, [r7, 0x12] _08104526: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08104534: .4byte gUnknown_083ECC1C _08104538: .4byte gUnknown_083ECC20 _0810453C: .4byte gUnknown_083ECC28 _08104540: .4byte 0x02000000 _08104544: .4byte 0x02020004 thumb_func_end sub_8104498 thumb_func_start sub_8104548 sub_8104548: @ 8104548 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x10] lsls r0, 16 asrs r0, 24 bl sub_8102D28 ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x4F ble _0810458A ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 strh r0, [r4, 0x12] movs r0, 0x2 bl sub_81057E8 ldr r0, _08104590 adds r0, 0x3F ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08104594 adds r0, r1 movs r1, 0x3 bl StartSpriteAnimIfDifferent _0810458A: pop {r4} pop {r0} bx r0 .align 2, 0 _08104590: .4byte 0x02000000 _08104594: .4byte 0x02020004 thumb_func_end sub_8104548 thumb_func_start sub_8104598 sub_8104598: @ 8104598 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x10] lsls r0, 16 asrs r0, 24 bl sub_8102D28 ldrb r0, [r4, 0x10] adds r0, 0x80 strh r0, [r4, 0x10] ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x4F ble _081045C4 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 strh r0, [r4, 0x12] _081045C4: pop {r4} pop {r0} bx r0 thumb_func_end sub_8104598 thumb_func_start sub_81045CC sub_81045CC: @ 81045CC push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x10] lsls r0, 16 asrs r0, 24 bl sub_8102D28 ldrb r0, [r4, 0x10] adds r0, 0x40 strh r0, [r4, 0x10] ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x27 ble _08104634 movs r0, 0 strh r0, [r4, 0x12] ldr r1, _0810460C ldrb r0, [r1, 0x5] cmp r0, 0 beq _08104610 ldrb r1, [r1, 0xA] movs r2, 0x14 ldrsh r0, [r4, r2] cmp r1, r0 bgt _0810462E ldrh r0, [r4, 0x8] adds r0, 0x1 b _0810462C .align 2, 0 _0810460C: .4byte 0x02000000 _08104610: movs r1, 0x14 ldrsh r0, [r4, r1] cmp r0, 0x3 ble _0810461E ldrh r0, [r4, 0x8] adds r0, 0x1 b _0810462C _0810461E: ldrh r0, [r4, 0x14] bl sub_81026DC lsls r0, 24 cmp r0, 0 beq _0810462E movs r0, 0xE _0810462C: strh r0, [r4, 0x8] _0810462E: ldrh r0, [r4, 0x14] adds r0, 0x1 strh r0, [r4, 0x14] _08104634: pop {r4} pop {r0} bx r0 thumb_func_end sub_81045CC thumb_func_start sub_810463C sub_810463C: @ 810463C push {r4-r6,lr} adds r4, r0, 0 ldr r6, _08104660 movs r1, 0x14 ldrsh r0, [r6, r1] movs r1, 0x14 bl __modsi3 lsls r0, 16 lsrs r5, r0, 16 cmp r0, 0 beq _08104664 ldrh r0, [r4, 0x10] lsls r0, 16 asrs r0, 24 bl sub_8102D5C b _08104688 .align 2, 0 _08104660: .4byte 0x02000000 _08104664: movs r0, 0x1 bl sub_8102C48 lsls r0, 24 lsrs r0, 24 ldrb r1, [r6, 0x5] cmp r0, r1 beq _08104692 ldrh r0, [r4, 0x10] lsls r0, 16 asrs r0, 24 bl sub_8102D28 movs r1, 0x14 ldrsh r0, [r6, r1] movs r1, 0x14 bl __modsi3 _08104688: lsls r0, 16 lsrs r5, r0, 16 ldrb r0, [r4, 0x10] adds r0, 0x40 strh r0, [r4, 0x10] _08104692: lsls r0, r5, 16 asrs r5, r0, 16 cmp r5, 0 bne _081046B4 movs r0, 0x1 bl sub_8102C48 ldr r1, _081046BC lsls r0, 24 lsrs r0, 24 ldrb r1, [r1, 0x5] cmp r0, r1 bne _081046B4 strh r5, [r4, 0x10] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _081046B4: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081046BC: .4byte 0x02000000 thumb_func_end sub_810463C thumb_func_start sub_81046C0 sub_81046C0: @ 81046C0 push {r4-r7,lr} adds r4, r0, 0 ldrh r0, [r4, 0x10] adds r0, 0x1 movs r7, 0 strh r0, [r4, 0x10] lsls r0, 16 asrs r0, 16 cmp r0, 0x3B ble _08104758 bl sub_8074D08 bl sub_81056C0 bl sub_8105804 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] ldr r5, _08104710 ldrb r0, [r5, 0x5] cmp r0, 0 bne _0810471C movs r0, 0xA0 strh r0, [r4, 0x10] adds r0, r5, 0 adds r0, 0x3F ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08104714 adds r0, r1 movs r1, 0x5 bl StartSpriteAnimIfDifferent ldr r0, _08104718 bl fanfare_play b _08104758 .align 2, 0 _08104710: .4byte 0x02000000 _08104714: .4byte 0x02020004 _08104718: .4byte 0x00000187 _0810471C: movs r0, 0xC0 strh r0, [r4, 0x10] adds r6, r5, 0 adds r6, 0x3F ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08104760 adds r0, r4 movs r1, 0x4 bl StartSpriteAnimIfDifferent ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x2B strb r7, [r0] ldrb r0, [r5, 0x2] cmp r0, 0 beq _08104750 bl sub_8104098 strb r7, [r5, 0x2] _08104750: movs r0, 0xC3 lsls r0, 1 bl fanfare_play _08104758: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08104760: .4byte 0x02020004 thumb_func_end sub_81046C0 thumb_func_start sub_8104764 sub_8104764: @ 8104764 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x10] movs r2, 0x10 ldrsh r0, [r4, r2] cmp r0, 0 beq _0810477C subs r0, r1, 0x1 strh r0, [r4, 0x10] lsls r0, 16 cmp r0, 0 bne _0810478C _0810477C: bl sub_81040C8 lsls r0, 24 cmp r0, 0 bne _0810478C ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0810478C: pop {r4} pop {r0} bx r0 thumb_func_end sub_8104764 thumb_func_start sub_8104794 sub_8104794: @ 8104794 push {r4,lr} adds r3, r0, 0 ldr r1, _081047D4 ldrh r0, [r1] subs r0, 0x8 strh r0, [r1] ldrh r2, [r3, 0xA] adds r2, 0x8 strh r2, [r3, 0xA] ldrh r0, [r3, 0xE] adds r0, 0x8 strh r0, [r3, 0xE] movs r1, 0xA ldrsh r0, [r3, r1] subs r0, 0x8 movs r1, 0xFF ands r0, r1 lsrs r4, r0, 3 ldr r1, _081047D8 ldr r0, _081047DC ands r2, r0 strh r2, [r1] ldrh r0, [r3, 0xE] lsls r0, 16 asrs r0, 19 cmp r0, 0x19 bgt _081047E0 adds r0, r4, 0 bl sub_8104A88 b _081047E6 .align 2, 0 _081047D4: .4byte 0x030024d0 _081047D8: .4byte REG_BG1HOFS _081047DC: .4byte 0x000001ff _081047E0: ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] _081047E6: pop {r4} pop {r0} bx r0 thumb_func_end sub_8104794 thumb_func_start sub_81047EC sub_81047EC: @ 81047EC push {r4-r6,lr} adds r5, r0, 0 ldr r4, _08104834 movs r6, 0 strb r6, [r4, 0xB] ldrb r0, [r4, 0x5] strb r0, [r4, 0xA] ldr r0, _08104838 strh r6, [r0] ldr r0, _0810483C strh r6, [r0] movs r0, 0x8 strh r0, [r4, 0x1A] bl sub_810514C bl sub_81054B8 bl sub_8105524 adds r0, r4, 0 adds r0, 0x60 ldrh r0, [r0] bl current_map_music_set ldrb r0, [r4, 0xA] cmp r0, 0 bne _08104844 ldr r0, _08104840 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask b _0810485A .align 2, 0 _08104834: .4byte 0x02000000 _08104838: .4byte 0x030024d0 _0810483C: .4byte REG_BG1HOFS _08104840: .4byte sub_810434C _08104844: movs r0, 0x4 bl sub_8104CAC bl dp15_jump_random_unknown strh r0, [r5, 0xA] strh r6, [r5, 0xC] strh r6, [r5, 0xE] ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] _0810485A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81047EC thumb_func_start sub_8104860 sub_8104860: @ 8104860 push {r4-r6,lr} adds r4, r0, 0 ldr r5, _0810487C ldrh r0, [r5, 0x1A] lsls r6, r0, 16 asrs r1, r6, 16 movs r2, 0xA ldrsh r0, [r4, r2] cmp r1, r0 bne _08104880 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _081048A2 .align 2, 0 _0810487C: .4byte 0x02000000 _08104880: movs r1, 0x1C ldrsh r0, [r5, r1] movs r1, 0x18 bl __modsi3 lsls r0, 16 cmp r0, 0 bne _081048A2 ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _081048A2 asrs r0, r6, 17 strh r0, [r5, 0x1A] _081048A2: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8104860 thumb_func_start sub_81048A8 sub_81048A8: @ 81048A8 push {lr} bl sub_8104E18 lsls r0, 24 cmp r0, 0 beq _081048C2 ldr r0, _081048C8 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _081048C2: pop {r0} bx r0 .align 2, 0 _081048C8: .4byte sub_810434C thumb_func_end sub_81048A8 thumb_func_start sub_81048CC sub_81048CC: @ 81048CC push {r4,r5,lr} adds r4, r0, 0 bl sub_81054B8 bl sub_81056C0 bl sub_8105804 bl sub_8105854 ldr r5, _08104934 ldr r3, _08104938 adds r0, r3, 0 adds r0, 0x4E ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r3, 0x3F ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x5 bl StartSpriteAnimIfDifferent ldrh r0, [r4, 0x8] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0x8] movs r0, 0x4 strh r0, [r4, 0x10] strh r1, [r4, 0x12] bl sub_8074D08 ldr r0, _0810493C bl fanfare_play movs r0, 0xB2 bl audio_play pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08104934: .4byte 0x02020004 _08104938: .4byte 0x02000000 _0810493C: .4byte 0x00000187 thumb_func_end sub_81048CC thumb_func_start sub_8104940 sub_8104940: @ 8104940 push {r4,r5,lr} adds r4, r0, 0 ldr r0, _081049B8 ldrh r1, [r4, 0x10] strh r1, [r0] ldr r0, _081049BC strh r1, [r0] ldrh r1, [r4, 0x12] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0810495E ldrh r0, [r4, 0x10] negs r0, r0 strh r0, [r4, 0x10] _0810495E: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] movs r1, 0x1F ands r0, r1 cmp r0, 0 bne _08104974 ldrh r0, [r4, 0x10] lsls r0, 16 asrs r0, 17 strh r0, [r4, 0x10] _08104974: movs r0, 0x10 ldrsh r5, [r4, r0] cmp r5, 0 bne _081049B0 bl sub_81058A0 bl sub_81058C4 bl sub_8105284 bl sub_81059E8 ldr r2, _081049C0 ldr r0, _081049C4 adds r0, 0x4E ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] strh r5, [r4, 0x12] _081049B0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081049B8: .4byte 0x030027e0 _081049BC: .4byte REG_BG1VOFS _081049C0: .4byte 0x02020004 _081049C4: .4byte 0x02000000 thumb_func_end sub_8104940 thumb_func_start sub_81049C8 sub_81049C8: @ 81049C8 push {r4,lr} adds r4, r0, 0 ldr r0, _081049F0 movs r1, 0 strh r1, [r0] ldr r0, _081049F4 strh r1, [r0] bl sub_8105ACC lsls r0, 24 cmp r0, 0 beq _081049EA ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] bl sub_8105AEC _081049EA: pop {r4} pop {r0} bx r0 .align 2, 0 _081049F0: .4byte 0x030027e0 _081049F4: .4byte REG_BG1VOFS thumb_func_end sub_81049C8 thumb_func_start sub_81049F8 sub_81049F8: @ 81049F8 push {lr} ldr r0, _08104A30 movs r1, 0 strh r1, [r0] ldr r0, _08104A34 strh r1, [r0] ldr r0, _08104A38 adds r0, 0x60 ldrh r0, [r0] bl current_map_music_set bl sub_810514C bl sub_8105554 bl sub_8105524 bl sub_81059B8 ldr r0, _08104A3C bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask pop {r0} bx r0 .align 2, 0 _08104A30: .4byte 0x030024d0 _08104A34: .4byte REG_BG1HOFS _08104A38: .4byte 0x02000000 _08104A3C: .4byte sub_810434C thumb_func_end sub_81049F8 thumb_func_start sub_8104A40 sub_8104A40: @ 8104A40 push {r4-r7,lr} movs r3, 0x4 ldr r7, _08104A80 lsls r1, 16 asrs r5, r1, 16 lsls r0, 16 asrs r4, r0, 16 ldr r6, _08104A84 _08104A50: lsls r2, r3, 16 asrs r2, 16 subs r1, r2, 0x4 lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r5, r0 lsls r0, 1 adds r0, r7 ldrh r1, [r0] lsls r0, r2, 5 adds r0, r4 lsls r0, 1 adds r0, r6 strh r1, [r0] adds r2, 0x1 lsls r2, 16 lsrs r3, r2, 16 asrs r2, 16 cmp r2, 0xE ble _08104A50 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08104A80: .4byte gUnknown_083EEFE0 _08104A84: .4byte 0x0600e000 thumb_func_end sub_8104A40 thumb_func_start sub_8104A88 sub_8104A88: @ 8104A88 push {r4,r5,lr} movs r2, 0x4 lsls r0, 16 asrs r3, r0, 16 ldr r5, _08104AB4 movs r4, 0 _08104A94: lsls r1, r2, 16 asrs r1, 16 lsls r0, r1, 5 adds r0, r3 lsls r0, 1 adds r0, r5 strh r4, [r0] adds r1, 0x1 lsls r1, 16 lsrs r2, r1, 16 asrs r1, 16 cmp r1, 0xE ble _08104A94 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08104AB4: .4byte 0x0600e000 thumb_func_end sub_8104A88 thumb_func_start sub_8104AB8 sub_8104AB8: @ 8104AB8 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _08104AE4 adds r0, r5, 0 movs r1, 0x1 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08104AE8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0xA] bl _call_via_r5 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08104AE4: .4byte sub_8104B0C _08104AE8: .4byte 0x03004b20 thumb_func_end sub_8104AB8 thumb_func_start sub_8104AEC sub_8104AEC: @ 8104AEC push {lr} ldr r0, _08104B00 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _08104B04 movs r0, 0 b _08104B06 .align 2, 0 _08104B00: .4byte sub_8104B0C _08104B04: movs r0, 0x1 _08104B06: pop {r1} bx r1 thumb_func_end sub_8104AEC thumb_func_start sub_8104B0C sub_8104B0C: @ 8104B0C push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _08104B34 ldr r2, _08104B38 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _08104B34: .4byte gUnknown_083ECC30 _08104B38: .4byte 0x03004b20 thumb_func_end sub_8104B0C thumb_func_start sub_8104B3C sub_8104B3C: @ 8104B3C push {r4,lr} sub sp, 0x4 adds r4, r0, 0 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8104B3C thumb_func_start sub_8104B60 sub_8104B60: @ 8104B60 push {lr} adds r2, r0, 0 ldr r0, _08104B7C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08104B76 ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] _08104B76: pop {r0} bx r0 .align 2, 0 _08104B7C: .4byte 0x0202f388 thumb_func_end sub_8104B60 thumb_func_start sub_8104B80 sub_8104B80: @ 8104B80 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 bl sub_8104DA4 bl sub_81065DC ldr r0, _08104BC0 bl sub_8071E2C ldr r0, _08104BC4 movs r1, 0xA movs r2, 0x20 movs r3, 0x1 bl sub_80729D8 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08104BC0: .4byte gWindowConfig_81E7144 _08104BC4: .4byte gUnknown_0842CAF7 thumb_func_end sub_8104B80 thumb_func_start sub_8104BC8 sub_8104BC8: @ 8104BC8 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 ldr r0, _08104BF8 ldrh r1, [r0, 0x2E] movs r0, 0x6 ands r0, r1 cmp r0, 0 beq _08104BF0 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _08104BF0: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08104BF8: .4byte 0x03001770 thumb_func_end sub_8104BC8 thumb_func_start sub_8104BFC sub_8104BFC: @ 8104BFC push {r4,lr} sub sp, 0x4 adds r4, r0, 0 bl sub_8071EF4 ldr r0, _08104C3C bl sub_8071E2C bl sub_81064B8 ldrb r0, [r4, 0xA] bl sub_8104CAC ldr r0, _08104C40 ldrb r0, [r0, 0x2] bl sub_810423C movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08104C3C: .4byte gWindowConfig_81E7128 _08104C40: .4byte 0x02000000 thumb_func_end sub_8104BFC thumb_func_start sub_8104C44 sub_8104C44: @ 8104C44 push {lr} ldr r0, _08104C58 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask pop {r0} bx r0 .align 2, 0 _08104C58: .4byte sub_8104B0C thumb_func_end sub_8104C44 thumb_func_start sub_8104C5C sub_8104C5C: @ 8104C5C push {lr} ldr r0, _08104C9C movs r1, 0x3 bl CreateTask lsls r0, 24 lsrs r1, r0, 24 ldr r0, _08104CA0 adds r0, 0x3D strb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _08104CA4 adds r0, r1 ldr r1, _08104CA8 strh r1, [r0, 0xA] movs r1, 0x4 adds r2, r0, 0 adds r2, 0x8 movs r3, 0x40 _08104C86: lsls r0, r1, 1 adds r0, r2, r0 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bls _08104C86 pop {r0} bx r0 .align 2, 0 _08104C9C: .4byte sub_8104E74 _08104CA0: .4byte 0x02000000 _08104CA4: .4byte 0x03004b20 _08104CA8: .4byte 0x0000ffff thumb_func_end sub_8104C5C thumb_func_start sub_8104CAC sub_8104CAC: @ 8104CAC push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8104DA4 ldr r0, _08104D24 adds r0, 0x3D ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _08104D28 adds r7, r0, r1 strh r4, [r7, 0xA] movs r6, 0 ldr r1, _08104D2C lsls r5, r4, 2 adds r0, r5, r1 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0xFF beq _08104D18 mov r8, r1 _08104CE0: mov r0, r8 adds r4, r5, r0 ldr r0, [r4] lsls r2, r6, 2 adds r2, r0 ldrb r0, [r2] ldrb r1, [r2, 0x1] movs r3, 0x2 ldrsh r2, [r2, r3] bl sub_8105BB4 lsls r0, 24 lsrs r0, 24 adds r2, r6, 0x4 lsls r2, 1 adds r1, r7, 0 adds r1, 0x8 adds r1, r2 strh r0, [r1] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldr r1, [r4] lsls r0, r6, 2 adds r0, r1 ldrb r0, [r0] cmp r0, 0xFF bne _08104CE0 _08104D18: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08104D24: .4byte 0x02000000 _08104D28: .4byte 0x03004b20 _08104D2C: .4byte gUnknown_083ED048 thumb_func_end sub_8104CAC thumb_func_start sub_8104D30 sub_8104D30: @ 8104D30 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 mov r8, r1 ldr r4, [sp, 0x1C] lsls r0, 24 lsrs r7, r0, 24 ldr r0, _08104D84 adds r0, 0x3D ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _08104D88 adds r0, r1 mov r12, r0 movs r5, 0x4 lsls r4, 16 asrs r6, r4, 16 lsls r2, 16 lsls r3, 16 _08104D5C: lsls r0, r5, 1 mov r1, r12 adds r1, 0x8 adds r4, r1, r0 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x40 bne _08104D8C str r6, [sp] adds r0, r7, 0 mov r1, r8 asrs r2, 16 asrs r3, 16 bl sub_8105BF8 lsls r0, 24 lsrs r0, 24 strh r0, [r4] b _08104D96 .align 2, 0 _08104D84: .4byte 0x02000000 _08104D88: .4byte 0x03004b20 _08104D8C: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xF bls _08104D5C _08104D96: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8104D30 thumb_func_start sub_8104DA4 sub_8104DA4: @ 8104DA4 push {r4-r6,lr} ldr r0, _08104E04 adds r0, 0x3D ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _08104E08 adds r4, r0, r1 ldrh r1, [r4, 0xA] ldr r0, _08104E0C cmp r1, r0 beq _08104DCE ldr r0, _08104E10 movs r2, 0xA ldrsh r1, [r4, r2] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl _call_via_r0 _08104DCE: movs r5, 0x4 adds r6, r4, 0 adds r6, 0x8 _08104DD4: lsls r0, r5, 1 adds r4, r6, r0 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x40 beq _08104DF4 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08104E14 adds r0, r1 bl DestroySprite movs r0, 0x40 strh r0, [r4] _08104DF4: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xF bls _08104DD4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08104E04: .4byte 0x02000000 _08104E08: .4byte 0x03004b20 _08104E0C: .4byte 0x0000ffff _08104E10: .4byte gUnknown_083ED064 _08104E14: .4byte 0x02020004 thumb_func_end sub_8104DA4 thumb_func_start sub_8104E18 sub_8104E18: @ 8104E18 push {r4,r5,lr} ldr r0, _08104E54 adds r0, 0x3D ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _08104E58 adds r0, r1 movs r2, 0x4 adds r3, r0, 0 adds r3, 0x8 ldr r4, _08104E5C _08104E32: lsls r0, r2, 1 adds r1, r3, r0 movs r5, 0 ldrsh r0, [r1, r5] cmp r0, 0x40 beq _08104E60 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 movs r5, 0x3C ldrsh r0, [r1, r5] cmp r0, 0 beq _08104E60 movs r0, 0 b _08104E6C .align 2, 0 _08104E54: .4byte 0x02000000 _08104E58: .4byte 0x03004b20 _08104E5C: .4byte 0x02020004 _08104E60: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xF bls _08104E32 movs r0, 0x1 _08104E6C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8104E18 thumb_func_start sub_8104E74 sub_8104E74: @ 8104E74 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _08104E9C ldr r2, _08104EA0 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _08104E9C: .4byte gUnknown_083ECC54 _08104EA0: .4byte 0x03004b20 thumb_func_end sub_8104E74 thumb_func_start nullsub_69 nullsub_69: @ 8104EA4 bx lr thumb_func_end nullsub_69 thumb_func_start sub_8104EA8 sub_8104EA8: @ 8104EA8 push {r4-r7,lr} movs r6, 0 movs r0, 0x30 _08104EAE: movs r4, 0 lsls r5, r0, 16 lsls r7, r6, 16 _08104EB4: ldr r0, _08104F0C asrs r1, r5, 16 movs r2, 0 movs r3, 0xE bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08104F10 adds r1, r0 ldrb r0, [r1, 0x5] movs r2, 0xC orrs r0, r2 strb r0, [r1, 0x5] strh r6, [r1, 0x2E] strh r4, [r1, 0x30] ldr r0, _08104F14 strh r0, [r1, 0x34] lsls r0, r4, 16 movs r1, 0xC0 lsls r1, 13 adds r0, r1 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x77 ble _08104EB4 movs r2, 0x80 lsls r2, 9 adds r1, r7, r2 movs r2, 0xA0 lsls r2, 14 adds r0, r5, r2 lsrs r0, 16 lsrs r6, r1, 16 asrs r1, 16 cmp r1, 0x2 ble _08104EAE pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08104F0C: .4byte gSpriteTemplate_83ED414 _08104F10: .4byte 0x02020004 _08104F14: .4byte 0x0000ffff thumb_func_end sub_8104EA8 thumb_func_start sub_8104F18 sub_8104F18: @ 8104F18 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _08104F88 movs r0, 0x2E ldrsh r1, [r5, r0] lsls r1, 1 adds r0, r4, 0 adds r0, 0x1C adds r1, r0 ldrh r0, [r5, 0x30] ldrh r1, [r1] adds r0, r1 strh r0, [r5, 0x32] movs r1, 0x32 ldrsh r0, [r5, r1] movs r1, 0x78 bl __modsi3 strh r0, [r5, 0x32] movs r2, 0x2E ldrsh r1, [r5, r2] lsls r1, 1 adds r4, 0x22 adds r1, r4 ldrh r1, [r1] adds r1, 0x1C adds r0, r1 strh r0, [r5, 0x22] ldrh r4, [r5, 0x2E] lsls r4, 24 lsrs r4, 24 movs r1, 0x32 ldrsh r0, [r5, r1] movs r1, 0x18 bl __divsi3 adds r1, r0, 0 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_8102BA4 lsls r0, 24 lsrs r0, 24 bl GetSpriteTileStartByTag adds r1, r5, 0 adds r1, 0x40 strh r0, [r1] adds r0, r5, 0 bl SetSpriteSheetFrameTileNum pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08104F88: .4byte 0x02000000 thumb_func_end sub_8104F18 thumb_func_start sub_8104F8C sub_8104F8C: @ 8104F8C push {r4-r6,lr} movs r4, 0xCB movs r5, 0x1 ldr r6, _08104FF0 _08104F94: lsls r4, 16 asrs r4, 16 lsls r5, 16 asrs r5, 16 adds r0, r4, 0 movs r1, 0x17 movs r2, 0 adds r3, r5, 0 bl sub_8104FF4 lsls r0, r5, 2 adds r0, r5 lsls r0, 17 subs r4, 0x7 lsls r4, 16 lsrs r4, 16 lsrs r5, r0, 16 asrs r0, 16 cmp r0, r6 ble _08104F94 movs r4, 0xEB movs r5, 0x1 ldr r6, _08104FF0 _08104FC2: lsls r4, 16 asrs r4, 16 lsls r5, 16 asrs r5, 16 adds r0, r4, 0 movs r1, 0x17 movs r2, 0x1 adds r3, r5, 0 bl sub_8104FF4 lsls r0, r5, 2 adds r0, r5 lsls r0, 17 subs r4, 0x7 lsls r4, 16 lsrs r4, 16 lsrs r5, r0, 16 asrs r0, 16 cmp r0, r6 ble _08104FC2 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08104FF0: .4byte 0x0000270f thumb_func_end sub_8104F8C thumb_func_start sub_8104FF4 sub_8104FF4: @ 8104FF4 push {r4-r6,lr} mov r6, r8 push {r6} adds r5, r0, 0 adds r6, r1, 0 mov r8, r2 adds r4, r3, 0 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r4, 16 lsrs r4, 16 ldr r0, _08105060 lsls r5, 16 asrs r5, 16 lsls r6, 16 asrs r6, 16 adds r1, r5, 0 adds r2, r6, 0 movs r3, 0xD bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _08105064 adds r2, r0 ldrb r1, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r2, 0x5] mov r0, r8 strh r0, [r2, 0x2E] strh r4, [r2, 0x30] lsls r4, 16 asrs r4, 16 lsls r0, r4, 2 adds r0, r4 lsls r0, 1 strh r0, [r2, 0x32] ldr r0, _08105068 strh r0, [r2, 0x34] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08105060: .4byte gSpriteTemplate_83ED42C _08105064: .4byte 0x02020004 _08105068: .4byte 0x0000ffff thumb_func_end sub_8104FF4 thumb_func_start sub_810506C sub_810506C: @ 810506C push {r4,lr} adds r4, r0, 0 ldr r1, _081050C0 ldrh r2, [r1, 0xC] movs r3, 0x2E ldrsh r0, [r4, r3] cmp r0, 0 beq _0810507E ldrh r2, [r1, 0xE] _0810507E: movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, r2 beq _081050B8 strh r2, [r4, 0x34] ldrh r1, [r4, 0x32] adds r0, r2, 0 bl __umodsi3 lsls r0, 16 lsrs r2, r0, 16 ldrh r1, [r4, 0x30] adds r0, r2, 0 bl __udivsi3 lsls r0, 16 movs r3, 0xE0 lsls r3, 11 adds r0, r3 lsrs r2, r0, 16 adds r0, r2, 0 bl GetSpriteTileStartByTag adds r1, r4, 0 adds r1, 0x40 strh r0, [r1] adds r0, r4, 0 bl SetSpriteSheetFrameTileNum _081050B8: pop {r4} pop {r0} bx r0 .align 2, 0 _081050C0: .4byte 0x02000000 thumb_func_end sub_810506C thumb_func_start sub_81050C4 sub_81050C4: @ 81050C4 push {lr} ldr r0, _081050F4 movs r1, 0x58 movs r2, 0x48 movs r3, 0xF bl CreateSprite adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _081050F8 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x5] movs r2, 0xC orrs r1, r2 strb r1, [r0, 0x5] ldr r1, _081050FC bl SetSubspriteTables pop {r0} bx r0 .align 2, 0 _081050F4: .4byte gSpriteTemplate_83ED444 _081050F8: .4byte 0x02020004 _081050FC: .4byte gUnknown_083ED704 thumb_func_end sub_81050C4 thumb_func_start sub_8105100 sub_8105100: @ 8105100 push {lr} ldr r0, _08105140 movs r1, 0x8C lsls r1, 1 movs r2, 0x50 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _08105144 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 ldrb r3, [r2, 0x5] movs r1, 0xD negs r1, r1 ands r1, r3 movs r3, 0x4 orrs r1, r3 strb r1, [r2, 0x5] adds r2, 0x3E ldrb r1, [r2] movs r3, 0x2 orrs r1, r3 strb r1, [r2] ldr r1, _08105148 adds r1, 0x3F strb r0, [r1] pop {r0} bx r0 .align 2, 0 _08105140: .4byte gSpriteTemplate_83ED45C _08105144: .4byte 0x02020004 _08105148: .4byte 0x02000000 thumb_func_end sub_8105100 thumb_func_start sub_810514C sub_810514C: @ 810514C push {lr} ldr r0, _08105168 adds r0, 0x3F ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0810516C adds r0, r1 bl DestroySprite pop {r0} bx r0 .align 2, 0 _08105168: .4byte 0x02000000 _0810516C: .4byte 0x02020004 thumb_func_end sub_810514C thumb_func_start sub_8105170 sub_8105170: @ 8105170 push {lr} adds r2, r0, 0 movs r0, 0 strh r0, [r2, 0x24] strh r0, [r2, 0x26] adds r0, r2, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0x4 bne _081051B6 movs r0, 0x8 strh r0, [r2, 0x24] strh r0, [r2, 0x26] adds r0, r2, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0 beq _081051A4 adds r0, r2, 0 adds r0, 0x2C ldrb r1, [r0] movs r0, 0x3F ands r0, r1 cmp r0, 0 bne _081051B2 b _081051B6 _081051A4: adds r0, r2, 0 adds r0, 0x2C ldrb r1, [r0] movs r0, 0x3F ands r0, r1 cmp r0, 0 bne _081051B6 _081051B2: ldr r0, _081051BC strh r0, [r2, 0x26] _081051B6: pop {r0} bx r0 .align 2, 0 _081051BC: .4byte 0x0000fff8 thumb_func_end sub_8105170 thumb_func_start sub_81051C0 sub_81051C0: @ 81051C0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _0810526C movs r7, 0xB8 lsls r7, 1 adds r1, r7, 0 movs r2, 0x34 movs r3, 0x7 bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, _08105270 mov r10, r1 adds r2, r0, r1 ldrb r1, [r2, 0x5] movs r5, 0xD negs r5, r5 adds r0, r5, 0 ands r0, r1 movs r3, 0x4 mov r9, r3 mov r1, r9 orrs r0, r1 strb r0, [r2, 0x5] adds r1, r2, 0 adds r1, 0x3E ldrb r0, [r1] movs r3, 0x2 mov r8, r3 mov r3, r8 orrs r0, r3 strb r0, [r1] ldr r1, _08105274 adds r0, r2, 0 bl SetSubspriteTables ldr r6, _08105278 adds r0, r6, 0 adds r0, 0x49 strb r4, [r0] ldr r0, _0810527C adds r1, r7, 0 movs r2, 0x54 movs r3, 0x7 bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 mov r1, r10 adds r2, r0, r1 ldrb r0, [r2, 0x5] ands r5, r0 mov r3, r9 orrs r5, r3 strb r5, [r2, 0x5] adds r1, r2, 0 adds r1, 0x3E ldrb r0, [r1] mov r3, r8 orrs r0, r3 strb r0, [r1] ldr r1, _08105280 adds r0, r2, 0 bl SetSubspriteTables adds r6, 0x4A strb r4, [r6] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810526C: .4byte gSpriteTemplate_83ED474 _08105270: .4byte 0x02020004 _08105274: .4byte gUnknown_083ED73C _08105278: .4byte 0x02000000 _0810527C: .4byte gSpriteTemplate_83ED48C _08105280: .4byte gUnknown_083ED75C thumb_func_end sub_81051C0 thumb_func_start sub_8105284 sub_8105284: @ 8105284 push {r4,lr} ldr r0, _081052D8 ldr r1, _081052DC ldrh r2, [r1] movs r1, 0xA8 subs r1, r2 lsls r1, 16 asrs r1, 16 movs r2, 0x50 movs r3, 0x7 bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, _081052E0 adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x5] adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x2 orrs r1, r2 strb r1, [r3] ldr r1, _081052E4 bl SetSubspriteTables ldr r0, _081052E8 adds r0, 0x42 strb r4, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _081052D8: .4byte gSpriteTemplate_83ED4A4 _081052DC: .4byte 0x030024d0 _081052E0: .4byte 0x02020004 _081052E4: .4byte gUnknown_083ED78C _081052E8: .4byte 0x02000000 thumb_func_end sub_8105284 thumb_func_start sub_81052EC sub_81052EC: @ 81052EC push {r4-r7,lr} movs r4, 0 movs r5, 0 ldr r6, _08105350 _081052F4: ldr r0, _08105354 movs r1, 0xB8 lsls r1, 1 movs r2, 0 movs r3, 0xA bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r3, r0, 4 adds r3, r0 lsls r3, 2 ldr r1, _08105358 adds r3, r1 ldrb r2, [r3, 0x5] movs r7, 0xD negs r7, r7 adds r1, r7, 0 ands r2, r1 movs r1, 0x4 orrs r2, r1 strb r2, [r3, 0x5] movs r1, 0x3E adds r1, r3 mov r12, r1 ldrb r1, [r1] movs r2, 0x2 orrs r1, r2 mov r2, r12 strb r1, [r2] strh r5, [r3, 0x3C] adds r1, r4, r6 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r5, 16 movs r7, 0xA0 lsls r7, 13 adds r0, r7 lsrs r5, r0, 16 cmp r4, 0x2 bls _081052F4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08105350: .4byte 0x0200004b _08105354: .4byte gSpriteTemplate_83ED4BC _08105358: .4byte 0x02020004 thumb_func_end sub_81052EC thumb_func_start sub_810535C sub_810535C: @ 810535C push {r4,lr} adds r4, r0, 0 ldr r1, _0810539C ldrh r0, [r4, 0x3C] ldrh r1, [r1, 0x14] adds r0, r1 lsls r0, 16 asrs r0, 16 movs r1, 0x28 bl __modsi3 lsls r0, 16 asrs r0, 16 adds r1, r0, 0 adds r1, 0x3B strh r1, [r4, 0x22] movs r1, 0x14 bl __divsi3 lsls r0, 16 asrs r0, 16 bl sub_8102C48 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnimIfDifferent pop {r4} pop {r0} bx r0 .align 2, 0 _0810539C: .4byte 0x02000000 thumb_func_end sub_810535C thumb_func_start sub_81053A0 sub_81053A0: @ 81053A0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r1, 0xB8 lsls r1, 1 ldr r0, _0810544C movs r2, 0x64 movs r3, 0x9 bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r7, _08105450 adds r2, r0, r7 adds r1, r2, 0 adds r1, 0x3E ldrb r0, [r1] movs r3, 0x2 mov r10, r3 mov r3, r10 orrs r0, r3 strb r0, [r1] ldrb r1, [r2, 0x5] movs r5, 0xD negs r5, r5 adds r0, r5, 0 ands r0, r1 movs r1, 0x4 mov r8, r1 mov r3, r8 orrs r0, r3 strb r0, [r2, 0x5] ldr r0, _08105454 mov r9, r0 adds r0, r2, 0 mov r1, r9 bl SetSubspriteTables ldr r6, _08105458 adds r0, r6, 0 adds r0, 0x4E strb r4, [r0] movs r1, 0x90 lsls r1, 1 ldr r0, _0810544C movs r2, 0x68 movs r3, 0x4 bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r2, r0, r7 adds r1, r2, 0 adds r1, 0x3E ldrb r0, [r1] mov r3, r10 orrs r0, r3 strb r0, [r1] ldrb r0, [r2, 0x5] ands r5, r0 mov r0, r8 orrs r5, r0 strb r5, [r2, 0x5] adds r0, r2, 0 mov r1, r9 bl SetSubspriteTables adds r6, 0x4F strb r4, [r6] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810544C: .4byte gSpriteTemplate_83ED4D4 _08105450: .4byte 0x02020004 _08105454: .4byte gUnknown_083ED7B4 _08105458: .4byte 0x02000000 thumb_func_end sub_81053A0 thumb_func_start sub_810545C sub_810545C: @ 810545C push {r4,lr} ldr r0, _081054A8 movs r1, 0xB8 lsls r1, 1 movs r2, 0x4C movs r3, 0xB bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, _081054AC adds r0, r1 adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x2 orrs r1, r2 strb r1, [r3] ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x5] ldr r1, _081054B0 bl SetSubspriteTables ldr r0, _081054B4 adds r0, 0x40 strb r4, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _081054A8: .4byte gSpriteTemplate_83ED4EC _081054AC: .4byte 0x02020004 _081054B0: .4byte gUnknown_083ED7D4 _081054B4: .4byte 0x02000000 thumb_func_end sub_810545C thumb_func_start sub_81054B8 sub_81054B8: @ 81054B8 push {r4,r5,lr} ldr r4, _08105518 adds r0, r4, 0 adds r0, 0x40 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0810551C adds r0, r1 bl DestroySprite movs r5, 0 adds r4, 0x49 _081054D4: adds r0, r5, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0810551C adds r0, r1 bl DestroySprite adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bls _081054D4 movs r5, 0 ldr r4, _08105520 _081054F4: adds r0, r5, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0810551C adds r0, r1 bl DestroySprite adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _081054F4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08105518: .4byte 0x02000000 _0810551C: .4byte 0x02020004 _08105520: .4byte 0x0200004b thumb_func_end sub_81054B8 thumb_func_start sub_8105524 sub_8105524: @ 8105524 push {r4,r5,lr} movs r4, 0 ldr r5, _0810554C _0810552A: adds r0, r4, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08105550 adds r0, r1 bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bls _0810552A pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810554C: .4byte 0x0200004e _08105550: .4byte 0x02020004 thumb_func_end sub_8105524 thumb_func_start sub_8105554 sub_8105554: @ 8105554 push {lr} ldr r0, _08105570 adds r0, 0x42 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08105574 adds r0, r1 bl DestroySprite pop {r0} bx r0 .align 2, 0 _08105570: .4byte 0x02000000 _08105574: .4byte 0x02020004 thumb_func_end sub_8105554 thumb_func_start sub_8105578 sub_8105578: @ 8105578 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} ldr r0, _0810561C mov r10, r0 movs r1, 0x98 movs r2, 0x20 movs r3, 0x5 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r2, _08105620 mov r9, r2 adds r3, r1, r2 ldrb r2, [r3, 0x5] movs r4, 0xD negs r4, r4 adds r1, r4, 0 ands r1, r2 movs r2, 0x4 mov r8, r2 mov r2, r8 orrs r1, r2 strb r1, [r3, 0x5] adds r5, r3, 0 adds r5, 0x3F ldrb r1, [r5] movs r2, 0x1 orrs r1, r2 strb r1, [r5] ldr r5, _08105624 adds r1, r5, 0 adds r1, 0x50 strb r0, [r1] movs r0, 0x8 strh r0, [r3, 0x2E] ldr r0, _08105628 strh r0, [r3, 0x30] movs r0, 0x1 negs r0, r0 strh r0, [r3, 0x32] movs r6, 0x20 strh r6, [r3, 0x3C] mov r0, r10 movs r1, 0xB8 movs r2, 0x20 movs r3, 0x5 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 mov r2, r9 adds r3, r1, r2 ldrb r1, [r3, 0x5] ands r4, r1 mov r1, r8 orrs r4, r1 strb r4, [r3, 0x5] adds r5, 0x51 strb r0, [r5] movs r0, 0x1 strh r0, [r3, 0x30] subs r0, 0x2 strh r0, [r3, 0x32] strh r6, [r3, 0x3C] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810561C: .4byte gSpriteTemplate_83ED504 _08105620: .4byte 0x02020004 _08105624: .4byte 0x02000000 _08105628: .4byte 0x0000ffff thumb_func_end sub_8105578 thumb_func_start sub_810562C sub_810562C: @ 810562C push {r4,lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] movs r1, 0x2E ldrsh r4, [r2, r1] cmp r4, 0 beq _08105650 subs r0, 0x1 movs r1, 0 strh r0, [r2, 0x2E] strh r1, [r2, 0x24] strh r1, [r2, 0x26] adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] b _08105682 _08105650: adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] ldrh r0, [r2, 0x30] ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x24] ldrh r0, [r2, 0x32] ldrh r1, [r2, 0x26] adds r0, r1 strh r0, [r2, 0x26] ldrh r0, [r2, 0x34] adds r0, 0x1 strh r0, [r2, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _08105682 ldrh r0, [r2, 0x3C] strh r0, [r2, 0x2E] strh r4, [r2, 0x34] _08105682: pop {r4} pop {r0} bx r0 thumb_func_end sub_810562C thumb_func_start sub_8105688 sub_8105688: @ 8105688 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, _081056B8 ldr r3, _081056BC adds r1, r3, 0 adds r1, 0x50 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 strh r0, [r1, 0x3C] adds r3, 0x51 ldrb r2, [r3] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 strh r0, [r1, 0x3C] pop {r4} pop {r0} bx r0 .align 2, 0 _081056B8: .4byte 0x02020004 _081056BC: .4byte 0x02000000 thumb_func_end sub_8105688 thumb_func_start sub_81056C0 sub_81056C0: @ 81056C0 push {r4,r5,lr} movs r4, 0 ldr r5, _081056E8 _081056C6: adds r0, r4, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081056EC adds r0, r1 bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bls _081056C6 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081056E8: .4byte 0x02000050 _081056EC: .4byte 0x02020004 thumb_func_end sub_81056C0 thumb_func_start sub_81056F0 sub_81056F0: @ 81056F0 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} ldr r0, _08105778 mov r8, r0 movs r1, 0x48 movs r2, 0x50 movs r3, 0x3 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _0810577C mov r9, r1 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 add r2, r9 ldrb r3, [r2, 0x5] movs r4, 0xD negs r4, r4 adds r1, r4, 0 ands r1, r3 movs r6, 0x4 orrs r1, r6 strb r1, [r2, 0x5] movs r3, 0 movs r1, 0x1 strh r1, [r2, 0x2E] strh r3, [r2, 0x38] movs r1, 0x10 strh r1, [r2, 0x3A] movs r1, 0x8 strh r1, [r2, 0x3C] ldr r5, _08105780 adds r1, r5, 0 adds r1, 0x52 strb r0, [r1] mov r0, r8 movs r1, 0x68 movs r2, 0x50 movs r3, 0x3 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r9 ldrb r2, [r1, 0x5] ands r4, r2 orrs r4, r6 strb r4, [r1, 0x5] adds r1, 0x3F ldrb r2, [r1] movs r3, 0x1 orrs r2, r3 strb r2, [r1] adds r5, 0x53 strb r0, [r5] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08105778: .4byte gSpriteTemplate_83ED51C _0810577C: .4byte 0x02020004 _08105780: .4byte 0x02000000 thumb_func_end sub_81056F0 thumb_func_start sub_8105784 sub_8105784: @ 8105784 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 ldr r1, _081057E0 mov r0, sp movs r2, 0x2 bl memcpy movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _081057D6 ldrh r0, [r4, 0x3A] subs r0, 0x1 strh r0, [r4, 0x3A] lsls r0, 16 cmp r0, 0 bgt _081057D6 movs r0, 0x7 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 ldr r2, _081057E4 adds r0, r2 lsrs r0, 16 movs r2, 0x38 ldrsh r1, [r4, r2] add r1, sp ldrb r3, [r1] adds r1, r3, 0 adds r2, r3, 0 bl sub_8085C7C ldrh r0, [r4, 0x38] adds r0, 0x1 movs r1, 0x1 ands r0, r1 strh r0, [r4, 0x38] ldrh r0, [r4, 0x3C] strh r0, [r4, 0x3A] _081057D6: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _081057E0: .4byte gUnknown_083ECC58 _081057E4: .4byte 0x01030000 thumb_func_end sub_8105784 thumb_func_start sub_81057E8 sub_81057E8: @ 81057E8 ldr r3, _081057FC ldr r1, _08105800 adds r1, 0x52 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r3 strh r0, [r1, 0x3C] bx lr .align 2, 0 _081057FC: .4byte 0x02020004 _08105800: .4byte 0x02000000 thumb_func_end sub_81057E8 thumb_func_start sub_8105804 sub_8105804: @ 8105804 push {r4,r5,lr} movs r0, 0x7 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 ldr r1, _08105848 adds r0, r1 lsrs r0, 16 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_8085C7C movs r4, 0 ldr r5, _0810584C _08105824: adds r0, r4, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08105850 adds r0, r1 bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bls _08105824 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08105848: .4byte 0x01030000 _0810584C: .4byte 0x02000052 _08105850: .4byte 0x02020004 thumb_func_end sub_8105804 thumb_func_start sub_8105854 sub_8105854: @ 8105854 push {lr} ldr r0, _08105888 movs r1, 0xA8 movs r2, 0x50 movs r3, 0x6 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _0810588C lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r3, [r1, 0x5] movs r2, 0xD negs r2, r2 ands r2, r3 movs r3, 0x4 orrs r2, r3 strb r2, [r1, 0x5] ldr r1, _08105890 adds r1, 0x41 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _08105888: .4byte gSpriteTemplate_83ED534 _0810588C: .4byte 0x02020004 _08105890: .4byte 0x02000000 thumb_func_end sub_8105854 thumb_func_start sub_8105894 sub_8105894: @ 8105894 ldr r1, _0810589C ldrh r1, [r1] strh r1, [r0, 0x26] bx lr .align 2, 0 _0810589C: .4byte 0x030027e0 thumb_func_end sub_8105894 thumb_func_start sub_81058A0 sub_81058A0: @ 81058A0 push {lr} ldr r0, _081058BC adds r0, 0x41 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081058C0 adds r0, r1 bl DestroySprite pop {r0} bx r0 .align 2, 0 _081058BC: .4byte 0x02000000 _081058C0: .4byte 0x02020004 thumb_func_end sub_81058A0 thumb_func_start sub_81058C4 sub_81058C4: @ 81058C4 push {r4-r6,lr} sub sp, 0x8 ldr r1, _08105938 mov r0, sp movs r2, 0x8 bl memcpy movs r4, 0 ldr r5, _0810593C _081058D6: ldr r0, _08105940 ldrh r0, [r0] movs r1, 0x50 subs r1, r0 lsls r1, 16 asrs r1, 16 ldr r0, _08105944 movs r2, 0x44 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r3, r0, 4 adds r3, r0 lsls r3, 2 ldr r1, _08105948 adds r3, r1 ldrb r2, [r3, 0x5] movs r6, 0xD negs r6, r6 adds r1, r6, 0 ands r2, r1 movs r1, 0x4 orrs r2, r1 strb r2, [r3, 0x5] movs r1, 0x3E adds r1, r3 mov r12, r1 ldrb r1, [r1] movs r2, 0x2 orrs r1, r2 mov r2, r12 strb r1, [r2] lsls r1, r4, 1 add r1, sp ldrh r1, [r1] strh r1, [r3, 0x2E] adds r1, r4, r5 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081058D6 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08105938: .4byte gUnknown_083ECC5A _0810593C: .4byte 0x02000054 _08105940: .4byte 0x030024d0 _08105944: .4byte gSpriteTemplate_83ED54C _08105948: .4byte 0x02020004 thumb_func_end sub_81058C4 thumb_func_start sub_810594C sub_810594C: @ 810594C push {r4,r5,lr} adds r5, r0, 0 ldrh r0, [r5, 0x2E] subs r0, 0x2 movs r4, 0 movs r1, 0xFF ands r0, r1 strh r0, [r5, 0x2E] movs r1, 0x2E ldrsh r0, [r5, r1] movs r1, 0x14 bl cosine strh r0, [r5, 0x24] movs r2, 0x2E ldrsh r0, [r5, r2] movs r1, 0x6 bl sine strh r0, [r5, 0x26] adds r1, r5, 0 adds r1, 0x43 strb r4, [r1] movs r2, 0x2E ldrsh r0, [r5, r2] cmp r0, 0x7F ble _08105986 movs r0, 0x2 strb r0, [r1] _08105986: ldrh r0, [r5, 0x30] adds r0, 0x1 strh r0, [r5, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0xF ble _081059B0 adds r3, r5, 0 adds r3, 0x3F ldrb r2, [r3] lsls r0, r2, 31 lsrs r0, 31 movs r1, 0x1 eors r1, r0 movs r0, 0x2 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] movs r0, 0 strh r0, [r5, 0x30] _081059B0: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_810594C thumb_func_start sub_81059B8 sub_81059B8: @ 81059B8 push {r4,r5,lr} movs r4, 0 ldr r5, _081059E0 _081059BE: adds r0, r4, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081059E4 adds r0, r1 bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081059BE pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081059E0: .4byte 0x02000054 _081059E4: .4byte 0x02020004 thumb_func_end sub_81059B8 thumb_func_start sub_81059E8 sub_81059E8: @ 81059E8 push {r4,lr} ldr r0, _08105A2C movs r1, 0xA8 movs r2, 0x3C movs r3, 0x8 bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, _08105A30 adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x5] ldrb r1, [r0, 0x1] movs r2, 0x3 orrs r1, r2 strb r1, [r0, 0x1] bl InitSpriteAffineAnim ldr r0, _08105A34 adds r0, 0x43 strb r4, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08105A2C: .4byte gSpriteTemplate_83ED564 _08105A30: .4byte 0x02020004 _08105A34: .4byte 0x02000000 thumb_func_end sub_81059E8 thumb_func_start sub_8105A38 sub_8105A38: @ 8105A38 push {lr} adds r3, r0, 0 ldrh r2, [r3, 0x2E] movs r1, 0x2E ldrsh r0, [r3, r1] cmp r0, 0 bne _08105A5A adds r0, r3, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08105AB4 adds r0, r2, 0x1 strh r0, [r3, 0x2E] b _08105AB4 _08105A5A: cmp r0, 0x1 bne _08105A96 movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrh r0, [r3, 0x32] adds r0, 0x1 strh r0, [r3, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x17 ble _08105AB4 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] movs r0, 0 strh r0, [r3, 0x32] b _08105AB4 _08105A96: adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r3, 0x32] adds r0, 0x1 strh r0, [r3, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0xF ble _08105AB4 movs r0, 0x1 strh r0, [r3, 0x3C] _08105AB4: ldrh r0, [r3, 0x30] movs r1, 0xFF ands r1, r0 adds r1, 0x10 strh r1, [r3, 0x30] lsrs r1, 8 ldrh r0, [r3, 0x26] subs r0, r1 strh r0, [r3, 0x26] pop {r0} bx r0 thumb_func_end sub_8105A38 thumb_func_start sub_8105ACC sub_8105ACC: @ 8105ACC ldr r2, _08105AE4 ldr r0, _08105AE8 adds r0, 0x43 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x3C] lsls r0, 24 lsrs r0, 24 bx lr .align 2, 0 _08105AE4: .4byte 0x02020004 _08105AE8: .4byte 0x02000000 thumb_func_end sub_8105ACC thumb_func_start sub_8105AEC sub_8105AEC: @ 8105AEC push {r4,lr} ldr r0, _08105B14 adds r0, 0x43 ldrb r0, [r0] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _08105B18 adds r4, r0 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl DestroySprite pop {r4} pop {r0} bx r0 .align 2, 0 _08105B14: .4byte 0x02000000 _08105B18: .4byte 0x02020004 thumb_func_end sub_8105AEC thumb_func_start sub_8105B1C sub_8105B1C: @ 8105B1C push {r4,lr} adds r3, r0, 0 adds r2, r1, 0 ldr r0, _08105B68 lsls r3, 16 asrs r3, 16 lsls r2, 16 asrs r2, 16 adds r1, r3, 0 movs r3, 0xC bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, _08105B6C adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x8 orrs r1, r2 strb r1, [r0, 0x5] ldrb r1, [r0, 0x1] movs r2, 0x3 orrs r1, r2 strb r1, [r0, 0x1] bl InitSpriteAffineAnim adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08105B68: .4byte gSpriteTemplate_83ED6CC _08105B6C: .4byte 0x02020004 thumb_func_end sub_8105B1C thumb_func_start sub_8105B70 sub_8105B70: @ 8105B70 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08105B84 movs r0, 0x1 strh r0, [r2, 0x3C] _08105B84: pop {r0} bx r0 thumb_func_end sub_8105B70 thumb_func_start sub_8105B88 sub_8105B88: @ 8105B88 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _08105BB0 adds r4, r0 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl DestroySprite pop {r4} pop {r0} bx r0 .align 2, 0 _08105BB0: .4byte 0x02020004 thumb_func_end sub_8105B88 thumb_func_start sub_8105BB4 sub_8105BB4: @ 8105BB4 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, 24 ldr r3, _08105BF0 lsrs r1, 22 adds r3, r1, r3 ldr r5, [r3] ldr r3, _08105BF4 adds r4, r1, r3 movs r6, 0 ldrsh r4, [r4, r6] adds r3, 0x2 adds r1, r3 movs r6, 0 ldrsh r3, [r1, r6] lsls r2, 16 asrs r2, 16 str r2, [sp] adds r1, r5, 0 adds r2, r4, 0 bl sub_8105BF8 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08105BF0: .4byte gUnknown_083ECF0C _08105BF4: .4byte gUnknown_083ECE7E thumb_func_end sub_8105BB4 thumb_func_start sub_8105BF8 sub_8105BF8: @ 8105BF8 push {r4-r7,lr} adds r4, r0, 0 adds r6, r1, 0 adds r1, r2, 0 adds r2, r3, 0 ldr r5, [sp, 0x14] lsls r4, 24 lsls r5, 16 lsrs r5, 16 ldr r0, _08105C58 lsrs r4, 22 adds r0, r4, r0 ldr r0, [r0] lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 movs r3, 0x10 bl CreateSprite lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r1, _08105C5C adds r2, r0, r1 ldrb r0, [r2, 0x5] movs r1, 0xC orrs r0, r1 strb r0, [r2, 0x5] str r6, [r2, 0x1C] strh r5, [r2, 0x3A] movs r0, 0x1 strh r0, [r2, 0x3C] ldr r0, _08105C60 adds r4, r0 ldr r1, [r4] cmp r1, 0 beq _08105C50 adds r0, r2, 0 bl SetSubspriteTables _08105C50: adds r0, r7, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08105C58: .4byte gUnknown_083EDB5C _08105C5C: .4byte 0x02020004 _08105C60: .4byte gUnknown_083EDBC4 thumb_func_end sub_8105BF8 thumb_func_start sub_8105C64 sub_8105C64: @ 8105C64 movs r1, 0 strh r1, [r0, 0x3C] bx lr thumb_func_end sub_8105C64 thumb_func_start sub_8105C6C sub_8105C6C: @ 8105C6C push {r4,r5,lr} sub sp, 0x10 adds r4, r0, 0 ldr r1, _08105CE8 mov r0, sp movs r2, 0x8 bl memcpy add r5, sp, 0x8 ldr r1, _08105CEC adds r0, r5, 0 movs r2, 0x8 bl memcpy ldrh r0, [r4, 0x30] adds r1, r0, 0x1 strh r1, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0xF ble _08105CB2 adds r3, r4, 0 adds r3, 0x42 ldrb r2, [r3] lsls r0, r2, 26 lsrs r0, 26 movs r1, 0x1 eors r1, r0 movs r0, 0x40 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] movs r0, 0 strh r0, [r4, 0x30] _08105CB2: movs r0, 0 strh r0, [r4, 0x24] strh r0, [r4, 0x26] adds r0, r4, 0 adds r0, 0x42 ldrb r1, [r0] movs r0, 0x3F ands r0, r1 cmp r0, 0 beq _08105CDE movs r1, 0x3A ldrsh r0, [r4, r1] lsls r0, 1 add r0, sp ldrh r0, [r0] strh r0, [r4, 0x24] movs r1, 0x3A ldrsh r0, [r4, r1] lsls r0, 1 adds r0, r5, r0 ldrh r0, [r0] strh r0, [r4, 0x26] _08105CDE: add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08105CE8: .4byte gUnknown_083ECC62 _08105CEC: .4byte gUnknown_083ECC6A thumb_func_end sub_8105C6C thumb_func_start sub_8105CF0 sub_8105CF0: @ 8105CF0 push {lr} adds r3, r0, 0 adds r3, 0x3F ldrb r1, [r3] movs r2, 0x1 orrs r1, r2 strb r1, [r3] bl sub_8105C6C pop {r0} bx r0 thumb_func_end sub_8105CF0 thumb_func_start sub_8105D08 sub_8105D08: @ 8105D08 push {lr} adds r3, r0, 0 adds r3, 0x3F ldrb r1, [r3] movs r2, 0x2 orrs r1, r2 strb r1, [r3] bl sub_8105C6C pop {r0} bx r0 thumb_func_end sub_8105D08 thumb_func_start sub_8105D20 sub_8105D20: @ 8105D20 push {lr} adds r3, r0, 0 adds r3, 0x3F ldrb r1, [r3] movs r2, 0x1 orrs r1, r2 movs r2, 0x2 orrs r1, r2 strb r1, [r3] bl sub_8105C6C pop {r0} bx r0 thumb_func_end sub_8105D20 thumb_func_start sub_8105D3C sub_8105D3C: @ 8105D3C push {lr} adds r2, r0, 0 movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0x1 beq _08105D70 cmp r0, 0x1 bgt _08105D52 cmp r0, 0 beq _08105D5C b _08105DA0 _08105D52: cmp r0, 0x2 beq _08105D80 cmp r0, 0x3 beq _08105D9C b _08105DA0 _08105D5C: ldrh r0, [r2, 0x20] adds r0, 0x4 strh r0, [r2, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0xCF ble _08105DA0 movs r0, 0xD0 strh r0, [r2, 0x20] b _08105D8E _08105D70: ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x5A ble _08105DA0 b _08105D8E _08105D80: ldrh r0, [r2, 0x20] adds r0, 0x4 strh r0, [r2, 0x20] lsls r0, 16 ldr r1, _08105D98 cmp r0, r1 ble _08105DA0 _08105D8E: ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] b _08105DA0 .align 2, 0 _08105D98: .4byte 0x010f0000 _08105D9C: movs r0, 0 strh r0, [r2, 0x3C] _08105DA0: pop {r0} bx r0 thumb_func_end sub_8105D3C thumb_func_start sub_8105DA4 sub_8105DA4: @ 8105DA4 push {lr} adds r1, r0, 0 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0x1 beq _08105DD8 cmp r0, 0x1 bgt _08105DBA cmp r0, 0 beq _08105DC4 b _08105E02 _08105DBA: cmp r0, 0x2 beq _08105DE8 cmp r0, 0x3 beq _08105DFE b _08105E02 _08105DC4: ldrh r0, [r1, 0x20] subs r0, 0x4 strh r0, [r1, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0xD0 bgt _08105E02 movs r0, 0xD0 strh r0, [r1, 0x20] b _08105DF6 _08105DD8: ldrh r0, [r1, 0x30] adds r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x5A ble _08105E02 b _08105DF6 _08105DE8: ldrh r0, [r1, 0x20] subs r0, 0x4 strh r0, [r1, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0x90 bgt _08105E02 _08105DF6: ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] b _08105E02 _08105DFE: movs r0, 0 strh r0, [r1, 0x3C] _08105E02: pop {r0} bx r0 thumb_func_end sub_8105DA4 thumb_func_start sub_8105E08 sub_8105E08: @ 8105E08 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x5 bhi _08105EAE lsls r0, 2 ldr r1, _08105E20 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08105E20: .4byte _08105E24 .align 2, 0 _08105E24: .4byte _08105E3C .4byte _08105E52 .4byte _08105E70 .4byte _08105E84 .4byte _08105E94 .4byte _08105EAA _08105E3C: ldr r0, _08105E6C ldrb r1, [r0, 0xA] subs r1, 0x1 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] _08105E52: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _08105EAE ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] movs r0, 0 strh r0, [r4, 0x30] b _08105EAE .align 2, 0 _08105E6C: .4byte 0x02000000 _08105E70: ldrh r0, [r4, 0x20] adds r0, 0x4 strh r0, [r4, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0xCF ble _08105EAE movs r0, 0xD0 strh r0, [r4, 0x20] b _08105EA2 _08105E84: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x5A ble _08105EAE b _08105EA2 _08105E94: ldrh r0, [r4, 0x20] adds r0, 0x4 strh r0, [r4, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0xF7 ble _08105EAE _08105EA2: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _08105EAE _08105EAA: movs r0, 0 strh r0, [r4, 0x3C] _08105EAE: pop {r4} pop {r0} bx r0 thumb_func_end sub_8105E08 thumb_func_start sub_8105EB4 sub_8105EB4: @ 8105EB4 push {lr} adds r3, r0, 0 movs r1, 0x2E ldrsh r0, [r3, r1] cmp r0, 0x1 beq _08105EE2 cmp r0, 0x1 bgt _08105ECA cmp r0, 0 beq _08105ED0 b _08105F50 _08105ECA: cmp r0, 0x2 beq _08105F00 b _08105F50 _08105ED0: adds r2, r3, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] _08105EE2: ldrh r0, [r3, 0x22] adds r0, 0x8 strh r0, [r3, 0x22] lsls r0, 16 asrs r0, 16 cmp r0, 0x6F ble _08105F50 movs r0, 0x70 strh r0, [r3, 0x22] movs r0, 0x10 strh r0, [r3, 0x30] ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] b _08105F50 _08105F00: movs r0, 0x32 ldrsh r2, [r3, r0] cmp r2, 0 bne _08105F46 ldrh r0, [r3, 0x22] ldrh r1, [r3, 0x30] subs r0, r1 strh r0, [r3, 0x22] negs r1, r1 strh r1, [r3, 0x30] ldrh r0, [r3, 0x34] adds r0, 0x1 strh r0, [r3, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _08105F46 lsls r0, r1, 16 asrs r0, 18 strh r0, [r3, 0x30] strh r2, [r3, 0x34] adds r1, r0, 0 cmp r1, 0 bne _08105F46 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] strh r1, [r3, 0x3C] adds r2, r3, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] _08105F46: ldrh r0, [r3, 0x32] adds r0, 0x1 movs r1, 0x7 ands r0, r1 strh r0, [r3, 0x32] _08105F50: pop {r0} bx r0 thumb_func_end sub_8105EB4 thumb_func_start sub_8105F54 sub_8105F54: @ 8105F54 push {lr} adds r1, r0, 0 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0 beq _08105F66 cmp r0, 0x1 beq _08105F7C b _08105F98 _08105F66: ldrh r0, [r1, 0x30] adds r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _08105F98 ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] b _08105F98 _08105F7C: ldrh r0, [r1, 0x22] adds r0, 0x2 strh r0, [r1, 0x22] lsls r0, 16 asrs r0, 16 cmp r0, 0x2F ble _08105F98 movs r0, 0x30 strh r0, [r1, 0x22] ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] movs r0, 0 strh r0, [r1, 0x3C] _08105F98: pop {r0} bx r0 thumb_func_end sub_8105F54 thumb_func_start sub_8105F9C sub_8105F9C: @ 8105F9C push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _08105FAE cmp r0, 0x1 beq _08106000 b _0810604E _08105FAE: adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x20 ble _0810604E ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] movs r0, 0x5 strh r0, [r4, 0x30] ldrb r0, [r4, 0x1] movs r1, 0x10 orrs r0, r1 strb r0, [r4, 0x1] ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim ldr r2, _08105FFC ldrh r1, [r4, 0x30] lsls r0, r1, 4 orrs r0, r1 lsls r0, 8 strh r0, [r2] b _0810604E .align 2, 0 _08105FFC: .4byte REG_MOSAIC _08106000: ldrh r1, [r4, 0x32] lsls r1, 16 asrs r1, 24 ldrh r0, [r4, 0x30] subs r0, r1 strh r0, [r4, 0x30] lsls r0, 16 cmp r0, 0 bge _08106016 movs r0, 0 strh r0, [r4, 0x30] _08106016: ldr r2, _08106054 ldrh r1, [r4, 0x30] lsls r0, r1, 4 orrs r0, r1 lsls r0, 8 strh r0, [r2] ldrh r1, [r4, 0x32] movs r0, 0xFF ands r0, r1 adds r0, 0x80 strh r0, [r4, 0x32] movs r0, 0x30 ldrsh r1, [r4, r0] cmp r1, 0 bne _0810604E ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] strh r1, [r4, 0x3C] ldrb r1, [r4, 0x1] movs r0, 0x11 negs r0, r0 ands r0, r1 strb r0, [r4, 0x1] adds r0, r4, 0 movs r1, 0 bl StartSpriteAnim _0810604E: pop {r4} pop {r0} bx r0 .align 2, 0 _08106054: .4byte REG_MOSAIC thumb_func_end sub_8105F9C thumb_func_start sub_8106058 sub_8106058: @ 8106058 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x30 ldrsh r0, [r5, r1] cmp r0, 0x2 bgt _081060A8 ldr r1, _081060A4 lsls r0, 2 adds r0, r1 ldr r4, [r0] movs r0, 0x6 bl IndexOfSpritePaletteTag adds r1, r0, 0 lsls r1, 24 lsrs r1, 4 movs r0, 0x80 lsls r0, 17 adds r1, r0 lsrs r1, 16 adds r0, r4, 0 movs r2, 0x20 bl LoadPalette ldrh r0, [r5, 0x32] adds r0, 0x1 strh r0, [r5, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _081060E4 ldrh r0, [r5, 0x30] adds r0, 0x1 strh r0, [r5, 0x30] movs r0, 0 strh r0, [r5, 0x32] b _081060E4 .align 2, 0 _081060A4: .4byte gUnknown_083EDE10 _081060A8: ldr r1, _081060F8 movs r2, 0x30 ldrsh r0, [r5, r2] lsls r0, 2 adds r0, r1 ldr r4, [r0] movs r0, 0x6 bl IndexOfSpritePaletteTag adds r1, r0, 0 lsls r1, 24 lsrs r1, 4 movs r0, 0x80 lsls r0, 17 adds r1, r0 lsrs r1, 16 adds r0, r4, 0 movs r2, 0x20 bl LoadPalette ldrh r0, [r5, 0x32] adds r0, 0x1 movs r1, 0 strh r0, [r5, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x18 ble _081060E4 strh r1, [r5, 0x30] strh r1, [r5, 0x32] _081060E4: adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnimIfDifferent movs r0, 0 strh r0, [r5, 0x3C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081060F8: .4byte gUnknown_083EDE10 thumb_func_end sub_8106058 thumb_func_start sub_81060FC sub_81060FC: @ 81060FC push {r4-r6,lr} sub sp, 0x30 adds r4, r0, 0 ldr r1, _08106138 mov r0, sp movs r2, 0x10 bl memcpy add r6, sp, 0x10 ldr r1, _0810613C adds r0, r6, 0 movs r2, 0x10 bl memcpy add r5, sp, 0x20 ldr r1, _08106140 adds r0, r5, 0 movs r2, 0x10 bl memcpy movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08106174 cmp r0, 0x1 bgt _08106144 cmp r0, 0 beq _0810614A b _081061C0 .align 2, 0 _08106138: .4byte gUnknown_083ECC72 _0810613C: .4byte gUnknown_083ECC82 _08106140: .4byte gUnknown_083ECC92 _08106144: cmp r0, 0x2 beq _08106188 b _081061C0 _0810614A: movs r2, 0x3A ldrsh r0, [r4, r2] lsls r0, 1 add r0, sp ldrh r0, [r0] strh r0, [r4, 0x24] movs r1, 0x3A ldrsh r0, [r4, r1] lsls r0, 1 adds r0, r6, r0 ldrh r0, [r0] strh r0, [r4, 0x26] movs r2, 0x3A ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r5, r0 ldrh r0, [r0] strh r0, [r4, 0x30] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] _08106174: ldrh r0, [r4, 0x30] subs r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _081061C0 b _081061BA _08106188: ldrh r0, [r4, 0x24] movs r2, 0x24 ldrsh r1, [r4, r2] cmp r1, 0 ble _08106196 subs r0, 0x4 b _0810619C _08106196: cmp r1, 0 bge _0810619E adds r0, 0x4 _0810619C: strh r0, [r4, 0x24] _0810619E: ldrh r0, [r4, 0x26] movs r2, 0x26 ldrsh r1, [r4, r2] cmp r1, 0 ble _081061AC subs r0, 0x4 b _081061B2 _081061AC: cmp r1, 0 bge _081061B4 adds r0, 0x4 _081061B2: strh r0, [r4, 0x26] _081061B4: ldr r0, [r4, 0x24] cmp r0, 0 bne _081061C0 _081061BA: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] _081061C0: add sp, 0x30 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81060FC thumb_func_start sub_81061C8 sub_81061C8: @ 81061C8 push {r4,lr} sub sp, 0x10 adds r4, r0, 0 ldr r1, _0810622C mov r0, sp movs r2, 0x10 bl memcpy ldrh r1, [r4, 0x2E] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 bne _081061EA adds r0, r1, 0x1 strh r0, [r4, 0x2E] movs r0, 0xC strh r0, [r4, 0x30] _081061EA: movs r1, 0x3A ldrsh r0, [r4, r1] lsls r0, 1 add r0, sp movs r2, 0 ldrsh r0, [r0, r2] movs r2, 0x30 ldrsh r1, [r4, r2] bl cosine strh r0, [r4, 0x24] movs r1, 0x3A ldrsh r0, [r4, r1] lsls r0, 1 add r0, sp movs r2, 0 ldrsh r0, [r0, r2] movs r2, 0x30 ldrsh r1, [r4, r2] bl sine strh r0, [r4, 0x26] ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0 beq _08106224 subs r0, r1, 0x1 strh r0, [r4, 0x30] _08106224: add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _0810622C: .4byte gUnknown_083ECCA2 thumb_func_end sub_81061C8 thumb_func_start sub_8106230 sub_8106230: @ 8106230 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0x1 beq _0810627A cmp r0, 0x1 bgt _08106248 cmp r0, 0 beq _08106252 b _0810634A _08106248: cmp r0, 0x2 beq _081062C4 cmp r0, 0x3 beq _081062FC b _0810634A _08106252: ldr r2, _081062BC adds r1, r2, 0 adds r1, 0x5C movs r0, 0x2F strh r0, [r1] adds r1, 0x2 movs r0, 0x3F strh r0, [r1] subs r1, 0x4 ldr r0, _081062C0 strh r0, [r1] adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] _0810627A: ldrh r0, [r5, 0x30] adds r2, r0, 0x2 strh r2, [r5, 0x30] adds r0, 0xB2 strh r0, [r5, 0x32] movs r1, 0xF0 subs r1, r2 strh r1, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0xD0 ble _08106296 movs r0, 0xD0 strh r0, [r5, 0x32] _08106296: movs r1, 0x34 ldrsh r0, [r5, r1] cmp r0, 0xCF bgt _081062A2 movs r0, 0xD0 strh r0, [r5, 0x34] _081062A2: ldr r2, _081062BC ldrh r0, [r5, 0x32] lsls r0, 8 ldrh r1, [r5, 0x34] orrs r0, r1 adds r1, r2, 0 adds r1, 0x58 strh r0, [r1] movs r1, 0x30 ldrsh r0, [r5, r1] cmp r0, 0x33 ble _0810634A b _0810633C .align 2, 0 _081062BC: .4byte 0x02000000 _081062C0: .4byte 0x00002088 _081062C4: ldr r6, _08106354 movs r1, 0x12 ldrsh r0, [r6, r1] cmp r0, 0 beq _0810634A ldr r1, _08106358 movs r4, 0 str r4, [sp] movs r0, 0x5 movs r2, 0xD0 movs r3, 0x74 bl sub_8104D30 adds r1, r6, 0 adds r1, 0x58 ldr r0, _0810635C strh r0, [r1] adds r1, 0x2 movs r0, 0xD1 lsls r0, 7 strh r0, [r1] adds r1, 0x2 movs r0, 0x2F strh r0, [r1] ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] strh r4, [r5, 0x30] _081062FC: ldrh r0, [r5, 0x30] adds r2, r0, 0x2 strh r2, [r5, 0x30] adds r0, 0xC2 strh r0, [r5, 0x32] movs r1, 0xE0 subs r1, r2 strh r1, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0xD0 ble _08106318 movs r0, 0xD0 strh r0, [r5, 0x32] _08106318: movs r1, 0x34 ldrsh r0, [r5, r1] cmp r0, 0xCF bgt _08106324 movs r0, 0xD0 strh r0, [r5, 0x34] _08106324: ldr r2, _08106354 ldrh r0, [r5, 0x32] lsls r0, 8 ldrh r1, [r5, 0x34] orrs r0, r1 adds r1, r2, 0 adds r1, 0x58 strh r0, [r1] movs r1, 0x30 ldrsh r0, [r5, r1] cmp r0, 0xF ble _0810634A _0810633C: ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] adds r1, r2, 0 adds r1, 0x5C movs r0, 0x3F strh r0, [r1] _0810634A: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08106354: .4byte 0x02000000 _08106358: .4byte SpriteCallbackDummy _0810635C: .4byte 0x0000c0e0 thumb_func_end sub_8106230 thumb_func_start nullsub_70 nullsub_70: @ 8106360 bx lr thumb_func_end nullsub_70 thumb_func_start sub_8106364 sub_8106364: @ 8106364 ldr r1, _0810636C movs r0, 0 strh r0, [r1] bx lr .align 2, 0 _0810636C: .4byte REG_MOSAIC thumb_func_end sub_8106364 thumb_func_start sub_8106370 sub_8106370: @ 8106370 push {r4,lr} ldr r0, _08106398 ldr r4, [r0] movs r0, 0x6 bl IndexOfSpritePaletteTag adds r1, r0, 0 lsls r1, 24 lsrs r1, 4 movs r0, 0x80 lsls r0, 17 adds r1, r0 lsrs r1, 16 adds r0, r4, 0 movs r2, 0x20 bl LoadPalette pop {r4} pop {r0} bx r0 .align 2, 0 _08106398: .4byte gUnknown_083EDE20 thumb_func_end sub_8106370 thumb_func_start sub_810639C sub_810639C: @ 810639C ldr r2, _081063BC adds r1, r2, 0 adds r1, 0x58 movs r0, 0xF0 strh r0, [r1] adds r1, 0x2 movs r0, 0xA0 strh r0, [r1] adds r0, r2, 0 adds r0, 0x5C movs r1, 0x3F strh r1, [r0] adds r0, 0x2 strh r1, [r0] bx lr .align 2, 0 _081063BC: .4byte 0x02000000 thumb_func_end sub_810639C thumb_func_start sub_81063C0 sub_81063C0: @ 81063C0 push {r4,lr} bl sub_8106404 ldr r0, _081063F0 ldr r4, _081063F4 adds r1, r4, 0 bl sub_800D238 ldr r0, _081063F8 movs r1, 0xC8 lsls r1, 6 adds r4, r1 adds r1, r4, 0 bl sub_800D238 ldr r0, _081063FC bl LoadSpriteSheets ldr r0, _08106400 bl LoadSpritePalettes pop {r4} pop {r0} bx r0 .align 2, 0 _081063F0: .4byte gUnknown_08E99848 _081063F4: .4byte 0x02010000 _081063F8: .4byte gUnknown_083EDE8C _081063FC: .4byte gUnknown_083EDC2C _08106400: .4byte gSlotMachineSpritePalettes thumb_func_end sub_81063C0 thumb_func_start sub_8106404 sub_8106404: @ 8106404 push {r4,r5,lr} ldr r3, _0810643C movs r2, 0 ldr r5, _08106440 ldr r0, _08106444 ldr r4, [r0] _08106410: movs r1, 0 adds r2, 0x1 _08106414: adds r0, r4, r1 ldrb r0, [r0] strb r0, [r3] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 adds r3, 0x1 cmp r1, 0x1F bls _08106414 lsls r0, r2, 24 lsrs r2, r0, 24 cmp r2, 0x3F bls _08106410 adds r0, r5, 0 bl LoadSpriteSheet pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810643C: .4byte 0x02010000 _08106440: .4byte gUnknown_083EDCDC _08106444: .4byte gUnknown_083EDCE4 thumb_func_end sub_8106404 thumb_func_start sub_8106448 sub_8106448: @ 8106448 push {r4-r7,lr} ldr r0, _081064A0 ldr r4, _081064A4 adds r1, r4, 0 bl sub_800D238 movs r3, 0xC0 lsls r3, 19 movs r5, 0xE9 lsls r5, 5 ldr r1, _081064A8 ldr r6, _081064AC movs r2, 0x80 lsls r2, 5 movs r7, 0x80 lsls r7, 24 _08106468: str r4, [r1] str r3, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r4, r2 adds r3, r2 subs r5, r2 cmp r5, r2 bhi _08106468 str r4, [r1] str r3, [r1, 0x4] lsrs r0, r5, 1 orrs r0, r7 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r0, _081064B0 movs r1, 0 movs r2, 0xA0 bl LoadPalette ldr r0, _081064B4 movs r1, 0xD0 movs r2, 0x20 bl LoadPalette pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081064A0: .4byte gUnknown_08E8F844 _081064A4: .4byte 0x02010000 _081064A8: .4byte 0x040000d4 _081064AC: .4byte 0x80000800 _081064B0: .4byte gUnknown_08E95A18 _081064B4: .4byte gUnknown_083EDE24 thumb_func_end sub_8106448 thumb_func_start sub_81064B8 sub_81064B8: @ 81064B8 push {lr} ldr r0, _081064D0 ldr r1, _081064D4 movs r2, 0xA0 lsls r2, 2 bl CpuSet bl sub_81064D8 pop {r0} bx r0 .align 2, 0 _081064D0: .4byte gUnknown_08E95AB8 _081064D4: .4byte 0x0600e800 thumb_func_end sub_81064B8 thumb_func_start sub_81064D8 sub_81064D8: @ 81064D8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r6, _0810658C movs r3, 0x4 movs r0, 0xC0 lsls r0, 1 mov r12, r0 movs r1, 0xC0 lsls r1, 2 mov r9, r1 movs r2, 0xA0 lsls r2, 1 mov r8, r2 _081064F6: movs r0, 0 lsls r4, r3, 16 asrs r5, r4, 16 _081064FC: lsls r2, r0, 16 asrs r2, 16 adds r1, r5, r2 lsls r1, 1 adds r1, r6 mov r7, r8 adds r3, r1, r7 ldr r7, _08106590 adds r0, r7, 0 strh r0, [r3] movs r0, 0xD0 lsls r0, 2 adds r3, r1, r0 ldr r7, _08106594 adds r0, r7, 0 strh r0, [r3] mov r0, r12 adds r3, r1, r0 ldr r7, _08106598 adds r0, r7, 0 strh r0, [r3] add r1, r9 ldr r3, _0810659C adds r0, r3, 0 strh r0, [r1] adds r2, 0x1 lsls r2, 16 lsrs r0, r2, 16 asrs r2, 16 cmp r2, 0x3 ble _081064FC asrs r3, r4, 16 lsls r1, r3, 1 adds r1, r6 mov r5, r12 adds r2, r1, r5 adds r7, 0x5D adds r0, r7, 0 strh r0, [r2] add r1, r9 ldr r2, _081065A0 adds r0, r2, 0 strh r0, [r1] movs r0, 0x7 ldr r5, _081065A4 adds r2, r5, 0 _08106558: lsls r1, r0, 16 asrs r1, 16 lsls r0, r1, 5 adds r0, r3 lsls r0, 1 adds r0, r6 strh r2, [r0] adds r1, 0x1 lsls r1, 16 lsrs r0, r1, 16 asrs r1, 16 cmp r1, 0xB ble _08106558 movs r7, 0xA0 lsls r7, 11 adds r0, r4, r7 lsrs r3, r0, 16 asrs r0, 16 cmp r0, 0x11 ble _081064F6 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810658C: .4byte 0x0600f000 _08106590: .4byte 0x00002051 _08106594: .4byte 0x00002851 _08106598: .4byte 0x00002061 _0810659C: .4byte 0x00002861 _081065A0: .4byte 0x000028be _081065A4: .4byte 0x000020bf thumb_func_end sub_81064D8 thumb_func_start sub_81065A8 sub_81065A8: @ 81065A8 push {r4-r6,lr} ldr r5, [sp, 0x10] lsls r0, 16 asrs r0, 15 ldr r6, _081065D0 adds r4, r0, r6 strh r1, [r4] ldr r4, _081065D4 adds r1, r0, r4 strh r2, [r1] adds r6, 0x40 adds r1, r0, r6 strh r3, [r1] ldr r1, _081065D8 adds r0, r1 strh r5, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081065D0: .4byte 0x0600ebc0 _081065D4: .4byte 0x0600ebc2 _081065D8: .4byte 0x0600ec02 thumb_func_end sub_81065A8 thumb_func_start sub_81065DC sub_81065DC: @ 81065DC push {r4,r5,lr} ldr r0, _08106624 ldr r1, _08106628 movs r2, 0xA0 lsls r2, 2 bl CpuSet ldr r5, _0810662C movs r1, 0 movs r4, 0 _081065F0: movs r0, 0 lsls r3, r1, 16 asrs r2, r3, 11 _081065F6: lsls r1, r0, 16 asrs r1, 16 adds r0, r2, r1 lsls r0, 1 adds r0, r5 strh r4, [r0] adds r1, 0x1 lsls r1, 16 lsrs r0, r1, 16 asrs r1, 16 cmp r1, 0x1D ble _081065F6 movs r1, 0x80 lsls r1, 9 adds r0, r3, r1 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _081065F0 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08106624: .4byte gUnknown_08E95FB8 _08106628: .4byte 0x0600e800 _0810662C: .4byte 0x0600f000 thumb_func_end sub_81065DC thumb_func_start sub_8106630 sub_8106630: @ 8106630 push {r4-r7,lr} ldr r2, _0810665C subs r4, r2, 0x2 subs r5, r2, 0x1 ldr r3, _08106660 subs r0, 0x1 lsls r1, r0, 5 adds r1, r3 ldr r3, _08106664 adds r1, r3 ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldm r1!, {r6,r7} stm r2!, {r6,r7} strb r0, [r4] movs r0, 0 strb r0, [r5] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810665C: .4byte 0x02015de0 _08106660: .4byte 0x02025734 _08106664: .4byte 0x00002dfc thumb_func_end sub_8106630 thumb_func_start sub_8106668 sub_8106668: @ 8106668 push {lr} bl sub_8106674 pop {r0} bx r0 thumb_func_end sub_8106668 thumb_func_start sub_8106674 sub_8106674: @ 8106674 push {r4-r7,lr} sub sp, 0x4 ldr r1, _08106694 ldr r2, _08106698 adds r0, r1, r2 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0x4 bls _08106688 b _081067E0 _08106688: lsls r0, 2 ldr r1, _0810669C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08106694: .4byte 0x03001770 _08106698: .4byte 0x0000043c _0810669C: .4byte _081066A0 .align 2, 0 _081066A0: .4byte _081066B4 .4byte _081066D8 .4byte _08106734 .4byte _0810675C .4byte _0810678C _081066B4: bl remove_some_task movs r0, 0 bl SetVBlankCallback ldr r1, _081066D0 ldr r0, _081066D4 str r0, [r1] movs r0, 0x1 bl sub_8106A10 bl sub_81069CC b _0810676E .align 2, 0 _081066D0: .4byte 0x03005e8c _081066D4: .4byte 0x02015de0 _081066D8: bl ResetPaletteFade movs r2, 0xC0 lsls r2, 19 movs r3, 0xC0 lsls r3, 9 movs r5, 0 ldr r1, _08106724 movs r4, 0x80 lsls r4, 5 ldr r6, _08106728 movs r7, 0x85 lsls r7, 24 _081066F2: str r5, [sp] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _081066F2 str r5, [sp] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 orrs r0, r7 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetSpriteData ldr r1, _0810672C ldr r2, _08106730 adds r1, r2 b _08106774 .align 2, 0 _08106724: .4byte 0x040000d4 _08106728: .4byte 0x85000400 _0810672C: .4byte 0x03001770 _08106730: .4byte 0x0000043c _08106734: ldrh r0, [r4, 0x20] bl SeedRng bl InitKeys ldr r0, _08106750 ldr r1, _08106754 adds r0, r1 ldrb r0, [r0] bl sub_81068FC ldr r2, _08106758 adds r1, r4, r2 b _08106774 .align 2, 0 _08106750: .4byte 0x02000000 _08106754: .4byte 0x00015ddf _08106758: .4byte 0x0000043c _0810675C: ldr r1, _0810677C ldr r2, _08106780 adds r0, r1, r2 ldrb r0, [r0] adds r2, 0x1 adds r1, r2 ldrb r1, [r1] bl sub_8107090 _0810676E: ldr r1, _08106784 ldr r0, _08106788 adds r1, r0 _08106774: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _081067E0 .align 2, 0 _0810677C: .4byte 0x02000000 _08106780: .4byte 0x00015dde _08106784: .4byte 0x03001770 _08106788: .4byte 0x0000043c _0810678C: ldr r1, _081067E8 ldr r2, _081067EC adds r0, r1, r2 ldrb r0, [r0] adds r2, 0x1 adds r1, r2 ldrb r1, [r1] bl sub_8106918 ldr r0, _081067F0 movs r1, 0 movs r2, 0x2 bl LoadPalette movs r1, 0xA0 lsls r1, 19 movs r4, 0 str r4, [sp] ldr r0, _081067F4 mov r2, sp str r2, [r0] str r1, [r0, 0x4] ldr r1, _081067F8 str r1, [r0, 0x8] ldr r0, [r0, 0x8] movs r0, 0x2 bl BeginFastPaletteFade ldr r0, _081067FC bl SetVBlankCallback ldr r0, _08106800 strb r4, [r0] movs r1, 0x80 lsls r1, 19 movs r2, 0x9A lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _08106804 bl SetMainCallback2 _081067E0: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081067E8: .4byte 0x02000000 _081067EC: .4byte 0x00015dde _081067F0: .4byte gUnknown_083F6140 _081067F4: .4byte 0x040000d4 _081067F8: .4byte 0x85000100 _081067FC: .4byte sub_8106AAC _08106800: .4byte 0x03000750 _08106804: .4byte sub_8106808 thumb_func_end sub_8106674 thumb_func_start sub_8106808 sub_8106808: @ 8106808 push {lr} bl sub_810682C bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8106808 thumb_func_start sub_8106818 sub_8106818: @ 8106818 push {lr} ldr r0, _08106828 ldr r0, [r0, 0x8] bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _08106828: .4byte 0x03001770 thumb_func_end sub_8106818 thumb_func_start sub_810682C sub_810682C: @ 810682C push {lr} sub sp, 0x4 ldr r3, _08106844 ldrb r1, [r3] cmp r1, 0x1 beq _08106880 cmp r1, 0x1 bgt _08106848 cmp r1, 0 beq _0810684E b _081068E6 .align 2, 0 _08106844: .4byte 0x03000750 _08106848: cmp r1, 0x2 beq _081068C0 b _081068E6 _0810684E: ldr r0, _08106874 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0810685E movs r0, 0x1 strb r0, [r3] _0810685E: ldr r0, _08106878 ldrb r0, [r0] cmp r0, 0 beq _081068E6 ldr r1, _0810687C ldrh r0, [r1] cmp r0, 0 beq _081068E6 subs r0, 0x1 b _081068E4 .align 2, 0 _08106874: .4byte 0x0202f388 _08106878: .4byte 0x03000756 _0810687C: .4byte 0x03000754 _08106880: ldr r0, _081068B4 ldrh r2, [r0, 0x2E] ands r1, r2 cmp r1, 0 bne _08106892 movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _081068A4 _08106892: movs r0, 0x2 strb r0, [r3] subs r0, 0x3 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _081068A4: ldr r0, _081068B8 ldrb r0, [r0] cmp r0, 0 beq _081068E6 ldr r1, _081068BC movs r0, 0 b _081068E4 .align 2, 0 _081068B4: .4byte 0x03001770 _081068B8: .4byte 0x03000756 _081068BC: .4byte 0x03000754 _081068C0: ldr r0, _081068EC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081068D2 ldr r0, _081068F0 bl SetMainCallback2 _081068D2: ldr r0, _081068F4 ldrb r0, [r0] cmp r0, 0 beq _081068E6 ldr r1, _081068F8 ldrh r0, [r1] cmp r0, 0x1D bhi _081068E6 adds r0, 0x1 _081068E4: strh r0, [r1] _081068E6: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _081068EC: .4byte 0x0202f388 _081068F0: .4byte sub_8106818 _081068F4: .4byte 0x03000756 _081068F8: .4byte 0x03000754 thumb_func_end sub_810682C thumb_func_start sub_81068FC sub_81068FC: @ 81068FC push {r4,lr} ldr r4, _08106914 adds r0, r4, 0 bl sub_8071C4C adds r0, r4, 0 bl SetUpWindowConfig pop {r4} pop {r0} bx r0 .align 2, 0 _08106914: .4byte gWindowConfig_81E7160 thumb_func_end sub_81068FC thumb_func_start sub_8106918 sub_8106918: @ 8106918 push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r1, 24 cmp r1, 0x1 beq _081069BE ldr r2, _08106974 ldr r6, _08106978 ldr r0, [r6] ldrb r0, [r0, 0xA] cmp r3, 0x7 bhi _08106988 ldr r1, _0810697C lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r2, 0 bl StringCopy adds r2, r0, 0 ldr r1, _08106980 bl StringCopy adds r2, r0, 0 ldr r1, [r6] adds r1, 0x16 bl StringCopy adds r2, r0, 0 movs r0, 0xFC strb r0, [r2] movs r0, 0x16 strb r0, [r2, 0x1] adds r2, 0x2 ldr r1, _08106984 adds r0, r2, 0 bl StringCopy adds r2, r0, 0 ldr r1, [r6] adds r1, 0xB bl StringCopy10 movs r1, 0x6 b _081069AE .align 2, 0 _08106974: .4byte 0x03005e40 _08106978: .4byte 0x03005e8c _0810697C: .4byte gUnknown_083F60AC _08106980: .4byte gUnknown_0840FF65 _08106984: .4byte gUnknown_0840FF75 _08106988: ldr r4, _081069C4 lsls r5, r0, 3 adds r0, r5, r4 ldr r1, [r0] adds r0, r2, 0 bl StringCopy adds r2, r0, 0 ldr r1, [r6] adds r1, 0xB bl StringCopy10 adds r2, r0, 0 adds r4, 0x4 adds r5, r4 ldr r1, [r5] bl StringCopy movs r1, 0x3 _081069AE: movs r2, 0xE ldr r0, _081069C8 lsls r1, 3 adds r1, 0x1 lsls r2, 3 movs r3, 0x1 bl sub_80729D8 _081069BE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081069C4: .4byte gUnknown_083F60C0 _081069C8: .4byte 0x03005e40 thumb_func_end sub_8106918 thumb_func_start sub_81069CC sub_81069CC: @ 81069CC movs r0, 0x80 lsls r0, 19 movs r3, 0 strh r3, [r0] ldr r2, _081069FC ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] ldr r1, _08106A00 ldr r2, _08106A04 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _08106A08 adds r0, r2, 0 strh r0, [r1] ldr r0, _08106A0C strh r3, [r0] adds r0, 0x2 strh r3, [r0] adds r0, 0x2 strh r3, [r0] bx lr .align 2, 0 _081069FC: .4byte 0x04000200 _08106A00: .4byte REG_BG0CNT _08106A04: .4byte 0x00000c42 _08106A08: .4byte 0x00000a45 _08106A0C: .4byte REG_BLDCNT thumb_func_end sub_81069CC thumb_func_start sub_8106A10 sub_8106A10: @ 8106A10 push {lr} lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _08106A34 ldr r0, _08106A28 strb r1, [r0] ldr r0, _08106A2C strh r1, [r0] ldr r0, _08106A30 strh r1, [r0] b _08106A46 .align 2, 0 _08106A28: .4byte 0x03000756 _08106A2C: .4byte 0x03000752 _08106A30: .4byte 0x03000754 _08106A34: ldr r1, _08106A4C movs r0, 0x1 strb r0, [r1] ldr r1, _08106A50 movs r0, 0xF strh r0, [r1] ldr r1, _08106A54 movs r0, 0x1E strh r0, [r1] _08106A46: pop {r0} bx r0 .align 2, 0 _08106A4C: .4byte 0x03000756 _08106A50: .4byte 0x03000752 _08106A54: .4byte 0x03000754 thumb_func_end sub_8106A10 thumb_func_start sub_8106A58 sub_8106A58: @ 8106A58 push {lr} ldr r0, _08106A68 ldrb r1, [r0] cmp r1, 0 bne _08106A70 ldr r0, _08106A6C strh r1, [r0] b _08106A92 .align 2, 0 _08106A68: .4byte 0x03000756 _08106A6C: .4byte REG_MOSAIC _08106A70: ldr r1, _08106A98 ldr r2, _08106A9C adds r0, r2, 0 strh r0, [r1] ldr r2, _08106AA0 ldr r0, _08106AA4 ldrh r1, [r0] lsrs r1, 1 strh r1, [r2] ldr r3, _08106AA8 lsls r0, r1, 12 lsls r2, r1, 8 orrs r0, r2 lsls r2, r1, 4 orrs r0, r2 orrs r0, r1 strh r0, [r3] _08106A92: pop {r0} bx r0 .align 2, 0 _08106A98: .4byte REG_BG1CNT _08106A9C: .4byte 0x00000a45 _08106AA0: .4byte 0x03000752 _08106AA4: .4byte 0x03000754 _08106AA8: .4byte REG_MOSAIC thumb_func_end sub_8106A58 thumb_func_start sub_8106AAC sub_8106AAC: @ 8106AAC push {lr} bl sub_8106A58 bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8106AAC thumb_func_start sub_8106AC4 sub_8106AC4: @ 8106AC4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r4, r1, 0 lsls r0, 16 lsrs r6, r0, 16 lsls r4, 24 lsrs r4, 24 ldr r7, _08106B28 ldr r0, [r7] ldr r1, [r0, 0x4] ldr r2, [r0] adds r0, r6, 0 bl species_and_otid_get_pal ldr r1, _08106B2C mov r8, r1 ldr r1, [r1] bl LZDecompressVram cmp r4, 0 bne _08106B40 lsls r0, r6, 3 ldr r1, _08106B30 adds r0, r1 ldr r1, _08106B34 lsls r2, r6, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08106B38 ldr r5, [r4, 0x4] str r5, [sp] str r6, [sp, 0x4] ldr r4, [r7] ldr r4, [r4] str r4, [sp, 0x8] bl sub_800D334 mov r2, r8 ldr r1, [r2] ldr r0, _08106B3C ldr r2, [r0] adds r0, r5, 0 bl sub_8106B90 b _08106B74 .align 2, 0 _08106B28: .4byte 0x03005e8c _08106B2C: .4byte 0x03005e90 _08106B30: .4byte gMonFrontPicTable _08106B34: .4byte gMonFrontPicCoords _08106B38: .4byte gUnknown_081FAF4C _08106B3C: .4byte 0x03005e10 _08106B40: lsls r0, r6, 3 ldr r1, _08106B80 adds r0, r1 ldr r1, _08106B84 lsls r2, r6, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08106B88 ldr r5, [r4] str r5, [sp] str r6, [sp, 0x4] ldr r4, [r7] ldr r4, [r4] str r4, [sp, 0x8] bl sub_800D334 mov r0, r8 ldr r1, [r0] ldr r0, _08106B8C ldr r2, [r0] adds r0, r5, 0 bl sub_8106B90 _08106B74: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08106B80: .4byte gMonBackPicTable _08106B84: .4byte gMonBackPicCoords _08106B88: .4byte gUnknown_081FAF4C _08106B8C: .4byte 0x03005e10 thumb_func_end sub_8106AC4 thumb_func_start sub_8106B90 sub_8106B90: @ 8106B90 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r10, r0 mov r9, r1 str r2, [sp] movs r0, 0 _08106BA4: movs r3, 0 adds r1, r0, 0x1 str r1, [sp, 0x4] lsls r0, 3 str r0, [sp, 0x8] _08106BAE: movs r1, 0 adds r2, r3, 0x1 mov r8, r2 ldr r7, [sp, 0x8] adds r0, r7, r3 lsls r0, 5 mov r12, r0 lsls r4, r3, 3 _08106BBE: movs r3, 0 lsls r0, r1, 2 adds r6, r1, 0x1 mov r2, r12 adds r5, r2, r0 ldr r7, [sp, 0x8] adds r0, r7, r1 lsls r0, 7 ldr r1, [sp] adds r2, r0, r1 _08106BD2: lsrs r0, r3, 1 adds r0, r5, r0 add r0, r10 ldrb r1, [r0] movs r0, 0x1 ands r0, r3 cmp r0, 0 beq _08106BE6 lsrs r1, 4 b _08106BEA _08106BE6: movs r0, 0xF ands r1, r0 _08106BEA: cmp r1, 0 bne _08106BFC adds r0, r4, r3 lsls r0, 1 adds r0, r2 movs r7, 0x80 lsls r7, 8 adds r1, r7, 0 b _08106C08 _08106BFC: adds r0, r4, r3 lsls r0, 1 adds r0, r2 lsls r1, 1 add r1, r9 ldrh r1, [r1] _08106C08: strh r1, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x7 bls _08106BD2 lsls r0, r6, 16 lsrs r1, r0, 16 cmp r1, 0x7 bls _08106BBE mov r1, r8 lsls r0, r1, 16 lsrs r3, r0, 16 cmp r3, 0x7 bls _08106BAE ldr r2, [sp, 0x4] lsls r0, r2, 16 lsrs r0, 16 cmp r0, 0x7 bls _08106BA4 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8106B90 thumb_func_start sub_8106C40 sub_8106C40: @ 8106C40 push {r4-r7,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r4, 24 lsrs r4, 24 ldr r0, _08106C7C movs r2, 0x80 lsls r2, 1 movs r1, 0 bl LoadPalette cmp r4, 0x1 beq _08106C5E b _08106DB4 _08106C5E: ldr r0, _08106C80 ldr r0, [r0] ldrb r0, [r0, 0xA] movs r1, 0x3 bl __udivsi3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _08106D1C lsls r0, 2 ldr r1, _08106C84 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08106C7C: .4byte gPictureFramePalettes _08106C80: .4byte 0x03005e8c _08106C84: .4byte _08106C88 .align 2, 0 _08106C88: .4byte _08106C9C .4byte _08106CB4 .4byte _08106CCC .4byte _08106CE4 .4byte _08106D08 _08106C9C: ldr r0, _08106CAC movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106CB0 b _08106CF0 .align 2, 0 _08106CAC: .4byte gPictureFrameTiles_0 _08106CB0: .4byte gPictureFrameTilemap_0 _08106CB4: ldr r0, _08106CC4 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106CC8 b _08106CF0 .align 2, 0 _08106CC4: .4byte gPictureFrameTiles_1 _08106CC8: .4byte gPictureFrameTilemap_1 _08106CCC: ldr r0, _08106CDC movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106CE0 b _08106CF0 .align 2, 0 _08106CDC: .4byte gPictureFrameTiles_2 _08106CE0: .4byte gPictureFrameTilemap_2 _08106CE4: ldr r0, _08106CFC movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106D00 _08106CF0: ldr r1, _08106D04 ldr r1, [r1] bl RLUnCompWram b _08106D1C .align 2, 0 _08106CFC: .4byte gPictureFrameTiles_3 _08106D00: .4byte gPictureFrameTilemap_3 _08106D04: .4byte 0x03005e10 _08106D08: ldr r0, _08106D98 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106D9C ldr r1, _08106DA0 ldr r1, [r1] bl RLUnCompWram _08106D1C: movs r1, 0 ldr r5, _08106DA4 ldr r0, _08106DA8 adds r4, r0, 0 _08106D24: movs r3, 0 lsls r2, r1, 5 _08106D28: adds r0, r2, r3 lsls r0, 1 adds r0, r5 strh r4, [r0] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x1F bls _08106D28 adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x13 bls _08106D24 movs r1, 0 ldr r0, _08106DAC mov r12, r0 ldr r7, _08106DA0 _08106D4C: movs r3, 0 adds r6, r1, 0x1 lsls r5, r1, 5 lsls r4, r1, 6 _08106D54: adds r2, r5, r3 lsls r2, 1 add r2, r12 ldr r0, [r7] adds r0, r4, r0 lsls r1, r3, 1 adds r0, r1 adds r0, 0x8C ldrh r0, [r0] strh r0, [r2] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x11 bls _08106D54 lsls r0, r6, 24 lsrs r1, r0, 24 cmp r1, 0x9 bls _08106D4C movs r3, 0 ldr r4, _08106DB0 ldr r2, _08106DA0 _08106D80: lsls r1, r3, 1 adds r1, r4 ldr r0, [r2] adds r0, 0x8E ldrh r0, [r0] strh r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xF bls _08106D80 b _08106E86 .align 2, 0 _08106D98: .4byte gPictureFrameTiles_4 _08106D9C: .4byte gPictureFrameTilemap_4 _08106DA0: .4byte 0x03005e10 _08106DA4: .4byte 0x06006000 _08106DA8: .4byte 0x00001015 _08106DAC: .4byte 0x0600608c _08106DB0: .4byte 0x0600608e _08106DB4: cmp r5, 0x7 bhi _08106DD0 ldr r0, _08106DC8 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106DCC b _08106E60 .align 2, 0 _08106DC8: .4byte gPictureFrameTiles_5 _08106DCC: .4byte gPictureFrameTilemap_5 _08106DD0: ldr r0, _08106DF0 ldr r0, [r0] ldrb r0, [r0, 0xA] movs r1, 0x3 bl __udivsi3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _08106E86 lsls r0, 2 ldr r1, _08106DF4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08106DF0: .4byte 0x03005e8c _08106DF4: .4byte _08106DF8 .align 2, 0 _08106DF8: .4byte _08106E0C .4byte _08106E24 .4byte _08106E3C .4byte _08106E54 .4byte _08106E74 _08106E0C: ldr r0, _08106E1C movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106E20 b _08106E60 .align 2, 0 _08106E1C: .4byte gPictureFrameTiles_0 _08106E20: .4byte gPictureFrameTilemap_0 _08106E24: ldr r0, _08106E34 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106E38 b _08106E60 .align 2, 0 _08106E34: .4byte gPictureFrameTiles_1 _08106E38: .4byte gPictureFrameTilemap_1 _08106E3C: ldr r0, _08106E4C movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106E50 b _08106E60 .align 2, 0 _08106E4C: .4byte gPictureFrameTiles_2 _08106E50: .4byte gPictureFrameTilemap_2 _08106E54: ldr r0, _08106E68 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106E6C _08106E60: ldr r1, _08106E70 bl RLUnCompVram b _08106E86 .align 2, 0 _08106E68: .4byte gPictureFrameTiles_3 _08106E6C: .4byte gPictureFrameTilemap_3 _08106E70: .4byte 0x06006000 _08106E74: ldr r0, _08106E8C movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106E90 ldr r1, _08106E94 bl RLUnCompVram _08106E86: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08106E8C: .4byte gPictureFrameTiles_4 _08106E90: .4byte gPictureFrameTilemap_4 _08106E94: .4byte 0x06006000 thumb_func_end sub_8106C40 thumb_func_start sub_8106E98 sub_8106E98: @ 8106E98 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r4, _08106ED0 ldr r1, _08106ED4 ldr r2, [r1, 0x4] ldr r1, [r1] str r1, [r4, 0x3C] str r2, [r4, 0x40] adds r3, r4, 0 adds r3, 0x40 ldrh r2, [r3] ldr r1, _08106ED8 ands r1, r2 strh r1, [r3] ldrh r1, [r4, 0x3E] ldr r0, _08106EDC ands r0, r1 movs r1, 0x58 orrs r0, r1 strh r0, [r4, 0x3E] adds r1, r4, 0 adds r1, 0x3C movs r0, 0x18 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08106ED0: .4byte 0x03001770 _08106ED4: .4byte gOamData_83F6138 _08106ED8: .4byte 0xfffffc00 _08106EDC: .4byte 0xfffffe00 thumb_func_end sub_8106E98 thumb_func_start sub_8106EE0 sub_8106EE0: @ 8106EE0 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x7 bhi _08106EF8 ldr r0, _08106EF4 ldr r0, [r0] ldrb r0, [r0, 0xA] b _08106F08 .align 2, 0 _08106EF4: .4byte 0x03005e8c _08106EF8: ldr r0, _08106F18 ldr r0, [r0] ldrb r0, [r0, 0xA] movs r1, 0x3 bl __udivsi3 lsls r0, 24 lsrs r0, 24 _08106F08: cmp r0, 0x4 bhi _08106F46 lsls r0, 2 ldr r1, _08106F1C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08106F18: .4byte 0x03005e8c _08106F1C: .4byte _08106F20 .align 2, 0 _08106F20: .4byte _08106F34 .4byte _08106F38 .4byte _08106F3C .4byte _08106F40 .4byte _08106F44 _08106F34: movs r0, 0x9 b _08106F46 _08106F38: movs r0, 0xD b _08106F46 _08106F3C: movs r0, 0x2 b _08106F46 _08106F40: movs r0, 0x24 b _08106F46 _08106F44: movs r0, 0x6 _08106F46: pop {r1} bx r1 thumb_func_end sub_8106EE0 thumb_func_start sub_8106F4C sub_8106F4C: @ 8106F4C ldr r0, _08106F5C ldr r1, _08106F60 str r1, [r0] ldr r0, _08106F64 ldr r2, _08106F68 adds r1, r2 str r1, [r0] bx lr .align 2, 0 _08106F5C: .4byte 0x03005e90 _08106F60: .4byte 0x02017e00 _08106F64: .4byte 0x03005e10 _08106F68: .4byte 0xffffe000 thumb_func_end sub_8106F4C thumb_func_start sub_8106F6C sub_8106F6C: @ 8106F6C push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r1, _08106FAC ldr r0, _08106FB0 ldr r0, [r0] str r0, [r1, 0x4] ldr r0, _08106FB4 ldr r0, [r0] str r0, [r1, 0x8] movs r2, 0 strb r2, [r1, 0x18] ldr r0, _08106FB8 ldr r0, [r0] ldrb r0, [r0] strb r0, [r1, 0x1F] strb r2, [r1, 0x19] strb r2, [r1, 0x1A] movs r0, 0x40 strb r0, [r1, 0x1B] strb r0, [r1, 0x1C] strb r0, [r1, 0x1D] strb r0, [r1, 0x1E] subs r0, r3, 0x2 adds r4, r1, 0 cmp r0, 0x22 bhi _08107050 lsls r0, 2 ldr r1, _08106FBC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08106FAC: .4byte 0x03005e20 _08106FB0: .4byte 0x03005e10 _08106FB4: .4byte 0x03005e90 _08106FB8: .4byte 0x03005e8c _08106FBC: .4byte _08106FC0 .align 2, 0 _08106FC0: .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _0810704C .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _08107050 .4byte _0810704C _0810704C: movs r0, 0x3 b _08107052 _08107050: movs r0, 0x1 _08107052: strh r0, [r4, 0x14] movs r0, 0x2 strh r0, [r4, 0x16] strb r3, [r4] ldr r0, _08107088 str r0, [r4, 0x10] adds r0, r4, 0 bl sub_80FC7A0 adds r0, r4, 0 bl sub_80FDA18 adds r0, r4, 0 bl sub_80FD8CC ldr r0, _0810708C ldr r0, [r0] movs r1, 0x80 lsls r1, 1 movs r2, 0x80 lsls r2, 2 bl LoadPalette pop {r4} pop {r0} bx r0 .align 2, 0 _08107088: .4byte 0x06010000 _0810708C: .4byte 0x03005e90 thumb_func_end sub_8106F6C thumb_func_start sub_8107090 sub_8107090: @ 8107090 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 bl sub_8106F4C ldr r0, _081070D0 ldr r0, [r0] ldrh r0, [r0, 0x8] movs r1, 0 bl sub_8106AC4 adds r0, r4, 0 bl sub_8106EE0 lsls r0, 24 lsrs r0, 24 bl sub_8106F6C adds r0, r4, 0 bl sub_8106E98 adds r0, r4, 0 adds r1, r5, 0 bl sub_8106C40 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081070D0: .4byte 0x03005e8c thumb_func_end sub_8107090 thumb_func_start sub_81070D4 sub_81070D4: @ 81070D4 push {r4-r7,lr} ldr r2, _08107144 movs r3, 0 ldr r4, _08107148 movs r1, 0 _081070DE: adds r0, r2, r3 strb r1, [r0] adds r3, 0x1 cmp r3, 0x2F bls _081070DE ldrh r2, [r4] movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _08107138 ldr r5, _0810714C ldrh r1, [r5] movs r0, 0x80 lsls r0, 3 cmp r1, r0 beq _08107138 ldr r0, _08107150 ands r0, r2 cmp r0, 0 bne _08107138 movs r3, 0 ldr r7, _08107154 ldr r4, _08107158 adds r6, r4, 0 subs r6, 0x8 _08107110: lsls r2, r3, 1 ldrh r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, r0 adds r2, r7 ldrh r2, [r2] cmp r2, 0 beq _08107132 ldrb r0, [r4] lsls r0, 1 adds r0, r6 strh r2, [r0] ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _08107132: adds r3, 0x1 cmp r3, 0x3 ble _08107110 _08107138: bl sub_810715C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08107144: .4byte 0x02016a00 _08107148: .4byte 0x020239f8 _0810714C: .4byte 0x0202ff5e _08107150: .4byte 0x00000982 _08107154: .4byte gTrainers + 0x10 _08107158: .4byte 0x02016a2c thumb_func_end sub_81070D4 thumb_func_start sub_810715C sub_810715C: @ 810715C push {r4-r7,lr} ldr r2, _08107204 movs r4, 0 ldr r3, _08107208 movs r1, 0 _08107166: adds r0, r2, r4 strb r1, [r0] adds r4, 0x1 cmp r4, 0x1B bls _08107166 ldr r0, _08107204 movs r1, 0x64 movs r4, 0x3 adds r0, 0x7 _08107178: strb r1, [r0] subs r0, 0x1 subs r4, 0x1 cmp r4, 0 bge _08107178 ldrb r0, [r3] movs r1, 0 movs r2, 0xFF bl sub_8015A98 lsls r0, 24 lsrs r7, r0, 24 movs r4, 0 ldr r0, _08107204 adds r5, r0, 0x4 ldr r6, _0810720C _08107198: ldr r0, [r6] ands r0, r7 cmp r0, 0 beq _081071A4 movs r0, 0 strb r0, [r5] _081071A4: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xF ands r0, r1 movs r1, 0x64 subs r1, r0 strb r1, [r5, 0x14] adds r5, 0x1 adds r6, 0x4 adds r4, 0x1 cmp r4, 0x3 ble _08107198 ldr r0, _08107210 adds r0, 0x20 movs r1, 0 strb r1, [r0] ldr r1, _08107214 ldr r0, _08107208 ldrb r2, [r0] strb r2, [r1] ldr r0, _08107218 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08107224 ldr r4, _0810721C bl Random movs r5, 0x2 ands r0, r5 strb r0, [r4] ldr r0, _08107220 ldrb r1, [r0] ldr r2, _0810720C ldrb r3, [r4] lsls r0, r3, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0810722C eors r3, r5 strb r3, [r4] b _0810722C .align 2, 0 _08107204: .4byte 0x02016800 _08107208: .4byte 0x02024a60 _0810720C: .4byte gBitTable _08107210: .4byte 0x02016c00 _08107214: .4byte 0x02024c07 _08107218: .4byte 0x020239f8 _0810721C: .4byte 0x02024c08 _08107220: .4byte 0x02024c0c _08107224: ldr r0, _08107244 movs r1, 0x1 eors r1, r2 strb r1, [r0] _0810722C: ldr r0, _08107248 ldrh r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08107250 ldr r1, _0810724C movs r0, 0x80 lsls r0, 23 str r0, [r1, 0xC] b _08107296 .align 2, 0 _08107244: .4byte 0x02024c08 _08107248: .4byte 0x020239f8 _0810724C: .4byte 0x02016800 _08107250: movs r0, 0x80 lsls r0, 3 ands r0, r1 cmp r0, 0 beq _08107268 ldr r1, _08107264 movs r0, 0x80 lsls r0, 22 str r0, [r1, 0xC] b _08107296 .align 2, 0 _08107264: .4byte 0x02016800 _08107268: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08107280 ldr r1, _0810727C movs r0, 0x80 lsls r0, 24 str r0, [r1, 0xC] b _08107296 .align 2, 0 _0810727C: .4byte 0x02016800 _08107280: ldr r3, _0810729C ldr r2, _081072A0 ldr r0, _081072A4 ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x1C adds r0, r2 ldr r0, [r0] str r0, [r3, 0xC] _08107296: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810729C: .4byte 0x02016800 _081072A0: .4byte gTrainers _081072A4: .4byte 0x0202ff5e thumb_func_end sub_810715C thumb_func_start sub_81072A8 sub_81072A8: @ 81072A8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 bl sub_810745C ldr r1, _081072F4 ldr r0, [r1, 0xC] cmp r0, 0 beq _081072E2 adds r4, r1, 0 movs r5, 0 _081072C0: ldr r0, [r4, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _081072D0 strb r5, [r4] bl sub_8107374 _081072D0: ldr r1, [r4, 0xC] lsrs r1, 1 str r1, [r4, 0xC] ldrb r0, [r4, 0x11] adds r0, 0x1 strb r0, [r4, 0x11] strb r5, [r4, 0x1] cmp r1, 0 bne _081072C0 _081072E2: ldr r7, _081072F4 ldrb r1, [r7, 0x10] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081072F8 movs r0, 0x4 b _08107368 .align 2, 0 _081072F4: .4byte 0x02016800 _081072F8: movs r0, 0x4 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _08107308 movs r0, 0x5 b _08107368 _08107308: movs r5, 0x1 mov r0, sp ldrb r1, [r7, 0x4] strb r1, [r0] add r0, sp, 0x4 strb r2, [r0] movs r3, 0x1 mov r8, r0 mov r4, sp mov r6, r8 adds r2, r7, 0x5 _0810731E: ldrb r1, [r4] movs r0, 0 ldrsb r0, [r2, r0] cmp r1, r0 bge _08107330 movs r5, 0x1 ldrb r0, [r2] strb r0, [r4] strb r3, [r6] _08107330: ldrb r1, [r4] movs r0, 0 ldrsb r0, [r2, r0] cmp r1, r0 bne _0810734E mov r0, sp adds r1, r0, r5 ldrb r0, [r2] strb r0, [r1] adds r1, r5, 0 adds r0, r1, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r1, r6, r1 strb r3, [r1] _0810734E: adds r2, 0x1 adds r3, 0x1 cmp r3, 0x3 ble _0810731E bl Random lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 bl __modsi3 add r0, r8 ldrb r0, [r0] _08107368: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81072A8 thumb_func_start sub_8107374 sub_8107374: @ 8107374 push {r4-r7,lr} ldr r1, _081073D0 ldrb r0, [r1] adds r6, r1, 0 cmp r0, 0x2 beq _08107456 adds r4, r1, 0 ldr r7, _081073D4 _08107384: ldrb r0, [r4] cmp r0, 0x1 beq _081073E4 cmp r0, 0x1 bgt _0810744E cmp r0, 0 bne _0810744E ldr r1, _081073D8 ldrb r0, [r4, 0x11] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [r7] ldr r5, _081073DC ldrb r3, [r4, 0x1] ldr r0, _081073E0 ldrb r1, [r0] movs r0, 0x58 adds r2, r1, 0 muls r2, r0 adds r0, r3, r2 adds r1, r5, 0 adds r1, 0x24 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _081073C6 lsls r0, r3, 1 adds r0, r2 adds r1, r5, 0 adds r1, 0xC adds r0, r1 ldrh r0, [r0] _081073C6: strh r0, [r4, 0x2] ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0810744E .align 2, 0 _081073D0: .4byte 0x02016800 _081073D4: .4byte 0x02039238 _081073D8: .4byte BattleAIs _081073DC: .4byte 0x02024a80 _081073E0: .4byte 0x02024c07 _081073E4: ldrh r1, [r1, 0x2] cmp r1, 0 beq _08107400 ldr r1, _081073FC ldr r0, [r7] ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 b _08107410 .align 2, 0 _081073FC: .4byte gUnknown_083F6144 _08107400: adds r0, r4, 0x4 ldrb r2, [r4, 0x1] adds r0, r2 strb r1, [r0] ldrb r1, [r4, 0x10] movs r0, 0x1 orrs r0, r1 strb r0, [r4, 0x10] _08107410: ldr r1, _0810743C ldrb r2, [r1, 0x10] movs r0, 0x1 ands r0, r2 adds r6, r1, 0 cmp r0, 0 beq _0810744E ldrb r0, [r6, 0x1] adds r0, 0x1 strb r0, [r6, 0x1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bhi _08107440 movs r0, 0x8 ands r0, r2 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08107440 strb r0, [r6] b _08107446 .align 2, 0 _0810743C: .4byte 0x02016800 _08107440: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _08107446: ldrb r1, [r4, 0x10] movs r0, 0xFE ands r0, r1 strb r0, [r4, 0x10] _0810744E: adds r1, r6, 0 ldrb r0, [r1] cmp r0, 0x2 bne _08107384 _08107456: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8107374 thumb_func_start sub_810745C sub_810745C: @ 810745C push {r4-r6,lr} movs r2, 0 ldr r3, _08107488 ldr r5, _0810748C ldr r6, _08107490 adds r4, r3, 0 _08107468: lsls r0, r2, 1 ldrb r1, [r4] lsrs r1, 1 lsls r1, 4 adds r0, r1 adds r1, r0, r5 ldrh r0, [r1] cmp r0, 0 bne _08107494 ldrb r0, [r3] lsls r0, 1 adds r0, r6 ldrh r0, [r0] strh r0, [r1] b _0810749A .align 2, 0 _08107488: .4byte 0x02024c08 _0810748C: .4byte 0x02016a00 _08107490: .4byte 0x02024c34 _08107494: adds r2, 0x1 cmp r2, 0x7 ble _08107468 _0810749A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_810745C thumb_func_start unref_sub_81074A0 unref_sub_81074A0: @ 81074A0 push {lr} lsls r0, 24 ldr r1, _081074C0 lsrs r0, 25 movs r2, 0x7 lsls r0, 4 adds r0, r1 adds r0, 0xE movs r1, 0 _081074B2: strh r1, [r0] subs r0, 0x2 subs r2, 0x1 cmp r2, 0 bge _081074B2 pop {r0} bx r0 .align 2, 0 _081074C0: .4byte 0x02016a00 thumb_func_end unref_sub_81074A0 thumb_func_start sub_81074C4 sub_81074C4: @ 81074C4 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _081074EC adds r0, r4, 0 bl battle_get_per_side_status ldr r2, _081074F4 movs r1, 0x1 ands r1, r0 adds r2, 0x20 adds r1, r2 strb r5, [r1] _081074EC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081074F4: .4byte 0x02016a00 thumb_func_end sub_81074C4 thumb_func_start sub_81074F8 sub_81074F8: @ 81074F8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08107520 adds r0, r4, 0 bl battle_get_per_side_status ldr r2, _08107528 movs r1, 0x1 ands r1, r0 adds r2, 0x22 adds r1, r2 strb r5, [r1] _08107520: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08107528: .4byte 0x02016a00 thumb_func_end sub_81074F8 thumb_func_start sub_810752C sub_810752C: @ 810752C push {lr} bl Random lsls r0, 16 movs r1, 0xFF lsls r1, 16 ldr r3, _08107560 ldr r2, [r3] ands r1, r0 lsrs r1, 16 ldrb r0, [r2, 0x1] cmp r1, r0 bcs _08107564 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107568 .align 2, 0 _08107560: .4byte 0x02039238 _08107564: adds r0, r2, 0x6 str r0, [r3] _08107568: pop {r0} bx r0 thumb_func_end sub_810752C thumb_func_start sub_810756C sub_810756C: @ 810756C push {lr} bl Random lsls r0, 16 movs r1, 0xFF lsls r1, 16 ldr r3, _081075A0 ldr r2, [r3] ands r1, r0 lsrs r1, 16 ldrb r0, [r2, 0x1] cmp r1, r0 bls _081075A4 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081075A8 .align 2, 0 _081075A0: .4byte 0x02039238 _081075A4: adds r0, r2, 0x6 str r0, [r3] _081075A8: pop {r0} bx r0 thumb_func_end sub_810756C thumb_func_start sub_81075AC sub_81075AC: @ 81075AC push {lr} bl Random lsls r0, 16 movs r1, 0xFF lsls r1, 16 ldr r3, _081075E0 ldr r2, [r3] ands r1, r0 lsrs r1, 16 ldrb r0, [r2, 0x1] cmp r1, r0 bne _081075E4 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081075E8 .align 2, 0 _081075E0: .4byte 0x02039238 _081075E4: adds r0, r2, 0x6 str r0, [r3] _081075E8: pop {r0} bx r0 thumb_func_end sub_81075AC thumb_func_start sub_81075EC sub_81075EC: @ 81075EC push {lr} bl Random lsls r0, 16 movs r1, 0xFF lsls r1, 16 ldr r3, _08107620 ldr r2, [r3] ands r1, r0 lsrs r1, 16 ldrb r0, [r2, 0x1] cmp r1, r0 beq _08107624 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107628 .align 2, 0 _08107620: .4byte 0x02039238 _08107624: adds r0, r2, 0x6 str r0, [r3] _08107628: pop {r0} bx r0 thumb_func_end sub_81075EC thumb_func_start sub_810762C sub_810762C: @ 810762C push {r4,r5,lr} ldr r2, _08107660 ldrb r1, [r2, 0x1] adds r3, r2, 0x4 adds r1, r3 ldr r4, _08107664 ldr r0, [r4] ldrb r0, [r0, 0x1] ldrb r5, [r1] adds r0, r5 strb r0, [r1] ldrb r0, [r2, 0x1] adds r1, r0, r3 movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0 bge _08107652 movs r0, 0 strb r0, [r1] _08107652: ldr r0, [r4] adds r0, 0x2 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08107660: .4byte 0x02016800 _08107664: .4byte 0x02039238 thumb_func_end sub_810762C thumb_func_start sub_8107668 sub_8107668: @ 8107668 push {r4,lr} ldr r0, _0810767C ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _08107684 ldr r0, _08107680 b _08107686 .align 2, 0 _0810767C: .4byte 0x02039238 _08107680: .4byte 0x02024c07 _08107684: ldr r0, _081076BC _08107686: ldrb r1, [r0] ldr r2, _081076C0 movs r0, 0x58 muls r1, r0 adds r1, r2 ldrh r2, [r1, 0x28] movs r0, 0x64 muls r0, r2 ldrh r1, [r1, 0x2C] bl __divsi3 ldr r2, [r4] ldrb r1, [r2, 0x2] cmp r0, r1 bcs _081076C4 ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _081076C8 .align 2, 0 _081076BC: .4byte 0x02024c08 _081076C0: .4byte 0x02024a80 _081076C4: adds r0, r2, 0x7 str r0, [r4] _081076C8: pop {r4} pop {r0} bx r0 thumb_func_end sub_8107668 thumb_func_start sub_81076D0 sub_81076D0: @ 81076D0 push {r4,lr} ldr r0, _081076E4 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _081076EC ldr r0, _081076E8 b _081076EE .align 2, 0 _081076E4: .4byte 0x02039238 _081076E8: .4byte 0x02024c07 _081076EC: ldr r0, _08107724 _081076EE: ldrb r1, [r0] ldr r2, _08107728 movs r0, 0x58 muls r1, r0 adds r1, r2 ldrh r2, [r1, 0x28] movs r0, 0x64 muls r0, r2 ldrh r1, [r1, 0x2C] bl __divsi3 ldr r2, [r4] ldrb r1, [r2, 0x2] cmp r0, r1 bls _0810772C ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08107730 .align 2, 0 _08107724: .4byte 0x02024c08 _08107728: .4byte 0x02024a80 _0810772C: adds r0, r2, 0x7 str r0, [r4] _08107730: pop {r4} pop {r0} bx r0 thumb_func_end sub_81076D0 thumb_func_start sub_8107738 sub_8107738: @ 8107738 push {r4,lr} ldr r0, _0810774C ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _08107754 ldr r0, _08107750 b _08107756 .align 2, 0 _0810774C: .4byte 0x02039238 _08107750: .4byte 0x02024c07 _08107754: ldr r0, _0810778C _08107756: ldrb r1, [r0] ldr r2, _08107790 movs r0, 0x58 muls r1, r0 adds r1, r2 ldrh r2, [r1, 0x28] movs r0, 0x64 muls r0, r2 ldrh r1, [r1, 0x2C] bl __divsi3 ldr r2, [r4] ldrb r1, [r2, 0x2] cmp r0, r1 bne _08107794 ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08107798 .align 2, 0 _0810778C: .4byte 0x02024c08 _08107790: .4byte 0x02024a80 _08107794: adds r0, r2, 0x7 str r0, [r4] _08107798: pop {r4} pop {r0} bx r0 thumb_func_end sub_8107738 thumb_func_start sub_81077A0 sub_81077A0: @ 81077A0 push {r4,lr} ldr r0, _081077B4 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _081077BC ldr r0, _081077B8 b _081077BE .align 2, 0 _081077B4: .4byte 0x02039238 _081077B8: .4byte 0x02024c07 _081077BC: ldr r0, _081077F4 _081077BE: ldrb r1, [r0] ldr r2, _081077F8 movs r0, 0x58 muls r1, r0 adds r1, r2 ldrh r2, [r1, 0x28] movs r0, 0x64 muls r0, r2 ldrh r1, [r1, 0x2C] bl __divsi3 ldr r2, [r4] ldrb r1, [r2, 0x2] cmp r0, r1 beq _081077FC ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08107800 .align 2, 0 _081077F4: .4byte 0x02024c08 _081077F8: .4byte 0x02024a80 _081077FC: adds r0, r2, 0x7 str r0, [r4] _08107800: pop {r4} pop {r0} bx r0 thumb_func_end sub_81077A0 thumb_func_start sub_8107808 sub_8107808: @ 8107808 push {r4,r5,lr} ldr r0, _0810781C ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _08107824 ldr r0, _08107820 b _08107826 .align 2, 0 _0810781C: .4byte 0x02039238 _08107820: .4byte 0x02024c07 _08107824: ldr r0, _08107868 _08107826: ldrb r4, [r0] ldr r3, [r5] ldrb r2, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r2, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r2, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r2, r0 ldr r1, _0810786C movs r0, 0x58 muls r0, r4 adds r1, 0x4C adds r0, r1 ldr r0, [r0] ands r0, r2 cmp r0, 0 beq _08107870 ldrb r1, [r3, 0x6] ldrb r0, [r3, 0x7] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x8] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x9] lsls r0, 24 orrs r1, r0 str r1, [r5] b _08107876 .align 2, 0 _08107868: .4byte 0x02024c08 _0810786C: .4byte 0x02024a80 _08107870: adds r0, r3, 0 adds r0, 0xA str r0, [r5] _08107876: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8107808 thumb_func_start sub_810787C sub_810787C: @ 810787C push {r4,r5,lr} ldr r0, _08107890 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _08107898 ldr r0, _08107894 b _0810789A .align 2, 0 _08107890: .4byte 0x02039238 _08107894: .4byte 0x02024c07 _08107898: ldr r0, _081078DC _0810789A: ldrb r4, [r0] ldr r3, [r5] ldrb r2, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r2, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r2, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r2, r0 ldr r1, _081078E0 movs r0, 0x58 muls r0, r4 adds r1, 0x4C adds r0, r1 ldr r0, [r0] ands r0, r2 cmp r0, 0 bne _081078E4 ldrb r1, [r3, 0x6] ldrb r0, [r3, 0x7] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x8] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x9] lsls r0, 24 orrs r1, r0 str r1, [r5] b _081078EA .align 2, 0 _081078DC: .4byte 0x02024c08 _081078E0: .4byte 0x02024a80 _081078E4: adds r0, r3, 0 adds r0, 0xA str r0, [r5] _081078EA: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_810787C thumb_func_start sub_81078F0 sub_81078F0: @ 81078F0 push {r4,r5,lr} ldr r0, _08107904 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _0810790C ldr r0, _08107908 b _0810790E .align 2, 0 _08107904: .4byte 0x02039238 _08107908: .4byte 0x02024c07 _0810790C: ldr r0, _08107950 _0810790E: ldrb r4, [r0] ldr r3, [r5] ldrb r2, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r2, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r2, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r2, r0 ldr r1, _08107954 movs r0, 0x58 muls r0, r4 adds r1, 0x50 adds r0, r1 ldr r0, [r0] ands r0, r2 cmp r0, 0 beq _08107958 ldrb r1, [r3, 0x6] ldrb r0, [r3, 0x7] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x8] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x9] lsls r0, 24 orrs r1, r0 str r1, [r5] b _0810795E .align 2, 0 _08107950: .4byte 0x02024c08 _08107954: .4byte 0x02024a80 _08107958: adds r0, r3, 0 adds r0, 0xA str r0, [r5] _0810795E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81078F0 thumb_func_start sub_8107964 sub_8107964: @ 8107964 push {r4,r5,lr} ldr r0, _08107978 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _08107980 ldr r0, _0810797C b _08107982 .align 2, 0 _08107978: .4byte 0x02039238 _0810797C: .4byte 0x02024c07 _08107980: ldr r0, _081079C4 _08107982: ldrb r4, [r0] ldr r3, [r5] ldrb r2, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r2, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r2, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r2, r0 ldr r1, _081079C8 movs r0, 0x58 muls r0, r4 adds r1, 0x50 adds r0, r1 ldr r0, [r0] ands r0, r2 cmp r0, 0 bne _081079CC ldrb r1, [r3, 0x6] ldrb r0, [r3, 0x7] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x8] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x9] lsls r0, 24 orrs r1, r0 str r1, [r5] b _081079D2 .align 2, 0 _081079C4: .4byte 0x02024c08 _081079C8: .4byte 0x02024a80 _081079CC: adds r0, r3, 0 adds r0, 0xA str r0, [r5] _081079D2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8107964 thumb_func_start sub_81079D8 sub_81079D8: @ 81079D8 push {r4,r5,lr} ldr r0, _081079EC ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _081079F4 ldr r0, _081079F0 b _081079F6 .align 2, 0 _081079EC: .4byte 0x02039238 _081079F0: .4byte 0x02024c07 _081079F4: ldr r0, _08107A34 _081079F6: ldrb r4, [r0] ldr r3, [r5] ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 ldr r2, _08107A38 lsls r0, r4, 2 adds r0, r2 ldr r0, [r0] ands r0, r1 cmp r0, 0 beq _08107A3C ldrb r1, [r3, 0x6] ldrb r0, [r3, 0x7] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x8] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x9] lsls r0, 24 orrs r1, r0 str r1, [r5] b _08107A42 .align 2, 0 _08107A34: .4byte 0x02024c08 _08107A38: .4byte 0x02024c98 _08107A3C: adds r0, r3, 0 adds r0, 0xA str r0, [r5] _08107A42: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81079D8 thumb_func_start sub_8107A48 sub_8107A48: @ 8107A48 push {r4,r5,lr} ldr r0, _08107A5C ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _08107A64 ldr r0, _08107A60 b _08107A66 .align 2, 0 _08107A5C: .4byte 0x02039238 _08107A60: .4byte 0x02024c07 _08107A64: ldr r0, _08107AA4 _08107A66: ldrb r4, [r0] ldr r3, [r5] ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 ldr r2, _08107AA8 lsls r0, r4, 2 adds r0, r2 ldr r0, [r0] ands r0, r1 cmp r0, 0 bne _08107AAC ldrb r1, [r3, 0x6] ldrb r0, [r3, 0x7] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x8] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x9] lsls r0, 24 orrs r1, r0 str r1, [r5] b _08107AB2 .align 2, 0 _08107AA4: .4byte 0x02024c08 _08107AA8: .4byte 0x02024c98 _08107AAC: adds r0, r3, 0 adds r0, 0xA str r0, [r5] _08107AB2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8107A48 thumb_func_start sub_8107AB8 sub_8107AB8: @ 8107AB8 push {r4,lr} ldr r0, _08107AC8 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 bne _08107AD0 ldr r0, _08107ACC b _08107AD2 .align 2, 0 _08107AC8: .4byte 0x02039238 _08107ACC: .4byte 0x02024c07 _08107AD0: ldr r0, _08107B1C _08107AD2: ldrb r0, [r0] bl battle_get_per_side_status movs r2, 0x1 ands r2, r0 ldr r4, _08107B20 ldr r3, [r4] ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 ldr r0, _08107B24 lsls r2, 1 adds r2, r0 ldrh r0, [r2] ands r0, r1 cmp r0, 0 beq _08107B28 ldrb r1, [r3, 0x6] ldrb r0, [r3, 0x7] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x8] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x9] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08107B2E .align 2, 0 _08107B1C: .4byte 0x02024c08 _08107B20: .4byte 0x02039238 _08107B24: .4byte 0x02024c7a _08107B28: adds r0, r3, 0 adds r0, 0xA str r0, [r4] _08107B2E: pop {r4} pop {r0} bx r0 thumb_func_end sub_8107AB8 thumb_func_start sub_8107B34 sub_8107B34: @ 8107B34 push {r4,lr} ldr r0, _08107B44 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 bne _08107B4C ldr r0, _08107B48 b _08107B4E .align 2, 0 _08107B44: .4byte 0x02039238 _08107B48: .4byte 0x02024c07 _08107B4C: ldr r0, _08107B98 _08107B4E: ldrb r0, [r0] bl battle_get_per_side_status movs r2, 0x1 ands r2, r0 ldr r4, _08107B9C ldr r3, [r4] ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 ldr r0, _08107BA0 lsls r2, 1 adds r2, r0 ldrh r0, [r2] ands r0, r1 cmp r0, 0 bne _08107BA4 ldrb r1, [r3, 0x6] ldrb r0, [r3, 0x7] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x8] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x9] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08107BAA .align 2, 0 _08107B98: .4byte 0x02024c08 _08107B9C: .4byte 0x02039238 _08107BA0: .4byte 0x02024c7a _08107BA4: adds r0, r3, 0 adds r0, 0xA str r0, [r4] _08107BAA: pop {r4} pop {r0} bx r0 thumb_func_end sub_8107B34 thumb_func_start sub_8107BB0 sub_8107BB0: @ 8107BB0 push {lr} ldr r0, _08107BD8 ldr r3, _08107BDC ldr r2, [r3] ldr r0, [r0, 0x8] ldrb r1, [r2, 0x1] cmp r0, r1 bcs _08107BE0 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107BE4 .align 2, 0 _08107BD8: .4byte 0x02016800 _08107BDC: .4byte 0x02039238 _08107BE0: adds r0, r2, 0x6 str r0, [r3] _08107BE4: pop {r0} bx r0 thumb_func_end sub_8107BB0 thumb_func_start sub_8107BE8 sub_8107BE8: @ 8107BE8 push {lr} ldr r0, _08107C10 ldr r3, _08107C14 ldr r2, [r3] ldr r0, [r0, 0x8] ldrb r1, [r2, 0x1] cmp r0, r1 bls _08107C18 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107C1C .align 2, 0 _08107C10: .4byte 0x02016800 _08107C14: .4byte 0x02039238 _08107C18: adds r0, r2, 0x6 str r0, [r3] _08107C1C: pop {r0} bx r0 thumb_func_end sub_8107BE8 thumb_func_start sub_8107C20 sub_8107C20: @ 8107C20 push {lr} ldr r0, _08107C48 ldr r3, _08107C4C ldr r2, [r3] ldr r0, [r0, 0x8] ldrb r1, [r2, 0x1] cmp r0, r1 bne _08107C50 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107C54 .align 2, 0 _08107C48: .4byte 0x02016800 _08107C4C: .4byte 0x02039238 _08107C50: adds r0, r2, 0x6 str r0, [r3] _08107C54: pop {r0} bx r0 thumb_func_end sub_8107C20 thumb_func_start sub_8107C58 sub_8107C58: @ 8107C58 push {lr} ldr r0, _08107C80 ldr r3, _08107C84 ldr r2, [r3] ldr r0, [r0, 0x8] ldrb r1, [r2, 0x1] cmp r0, r1 beq _08107C88 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107C8C .align 2, 0 _08107C80: .4byte 0x02016800 _08107C84: .4byte 0x02039238 _08107C88: adds r0, r2, 0x6 str r0, [r3] _08107C8C: pop {r0} bx r0 thumb_func_end sub_8107C58 thumb_func_start sub_8107C90 sub_8107C90: @ 8107C90 push {lr} ldr r3, _08107CCC ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 ldr r0, _08107CD0 ldr r0, [r0, 0x8] ldrb r1, [r1] cmp r0, r1 bcs _08107CD4 ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x8] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107CDA .align 2, 0 _08107CCC: .4byte 0x02039238 _08107CD0: .4byte 0x02016800 _08107CD4: adds r0, r2, 0 adds r0, 0x9 str r0, [r3] _08107CDA: pop {r0} bx r0 thumb_func_end sub_8107C90 thumb_func_start sub_8107CE0 sub_8107CE0: @ 8107CE0 push {lr} ldr r3, _08107D1C ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 ldr r0, _08107D20 ldr r0, [r0, 0x8] ldrb r1, [r1] cmp r0, r1 bls _08107D24 ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x8] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107D2A .align 2, 0 _08107D1C: .4byte 0x02039238 _08107D20: .4byte 0x02016800 _08107D24: adds r0, r2, 0 adds r0, 0x9 str r0, [r3] _08107D2A: pop {r0} bx r0 thumb_func_end sub_8107CE0 thumb_func_start sub_8107D30 sub_8107D30: @ 8107D30 push {lr} ldr r3, _08107D6C ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 ldr r0, _08107D70 ldr r0, [r0, 0x8] ldrb r1, [r1] cmp r0, r1 bne _08107D74 ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x8] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107D7A .align 2, 0 _08107D6C: .4byte 0x02039238 _08107D70: .4byte 0x02016800 _08107D74: adds r0, r2, 0 adds r0, 0x9 str r0, [r3] _08107D7A: pop {r0} bx r0 thumb_func_end sub_8107D30 thumb_func_start sub_8107D80 sub_8107D80: @ 8107D80 push {lr} ldr r3, _08107DBC ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 ldr r0, _08107DC0 ldr r0, [r0, 0x8] ldrb r1, [r1] cmp r0, r1 beq _08107DC4 ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x8] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107DCA .align 2, 0 _08107DBC: .4byte 0x02039238 _08107DC0: .4byte 0x02016800 _08107DC4: adds r0, r2, 0 adds r0, 0x9 str r0, [r3] _08107DCA: pop {r0} bx r0 thumb_func_end sub_8107D80 thumb_func_start sub_8107DD0 sub_8107DD0: @ 8107DD0 push {lr} ldr r3, _08107E00 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldr r0, _08107E04 ldrh r0, [r0, 0x2] cmp r0, r1 bne _08107E08 ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107E0C .align 2, 0 _08107E00: .4byte 0x02039238 _08107E04: .4byte 0x02016800 _08107E08: adds r0, r2, 0x7 str r0, [r3] _08107E0C: pop {r0} bx r0 thumb_func_end sub_8107DD0 thumb_func_start sub_8107E10 sub_8107E10: @ 8107E10 push {lr} ldr r3, _08107E40 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldr r0, _08107E44 ldrh r0, [r0, 0x2] cmp r0, r1 beq _08107E48 ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107E4C .align 2, 0 _08107E40: .4byte 0x02039238 _08107E44: .4byte 0x02016800 _08107E48: adds r0, r2, 0x7 str r0, [r3] _08107E4C: pop {r0} bx r0 thumb_func_end sub_8107E10 thumb_func_start sub_8107E50 sub_8107E50: @ 8107E50 push {r4,lr} ldr r2, _08107E98 ldr r1, [r2] ldrb r3, [r1, 0x1] ldrb r0, [r1, 0x2] lsls r0, 8 orrs r3, r0 ldrb r0, [r1, 0x3] lsls r0, 16 orrs r3, r0 ldrb r0, [r1, 0x4] lsls r0, 24 orrs r3, r0 ldrb r0, [r3] cmp r0, 0xFF beq _08107EA8 ldr r0, _08107E9C ldr r1, [r0, 0x8] adds r4, r2, 0 _08107E76: ldrb r0, [r3] cmp r1, r0 bne _08107EA0 ldr r2, [r4] ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x8] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08107EAE .align 2, 0 _08107E98: .4byte 0x02039238 _08107E9C: .4byte 0x02016800 _08107EA0: adds r3, 0x1 ldrb r0, [r3] cmp r0, 0xFF bne _08107E76 _08107EA8: ldr r0, [r2] adds r0, 0x9 str r0, [r2] _08107EAE: pop {r4} pop {r0} bx r0 thumb_func_end sub_8107E50 thumb_func_start sub_8107EB4 sub_8107EB4: @ 8107EB4 push {r4,lr} ldr r2, _08107EEC ldr r1, [r2] ldrb r3, [r1, 0x1] ldrb r0, [r1, 0x2] lsls r0, 8 orrs r3, r0 ldrb r0, [r1, 0x3] lsls r0, 16 orrs r3, r0 ldrb r0, [r1, 0x4] lsls r0, 24 orrs r3, r0 ldrb r0, [r3] adds r4, r2, 0 cmp r0, 0xFF beq _08107EFC ldr r0, _08107EF0 ldr r2, [r0, 0x8] adds r1, r4, 0 _08107EDC: ldrb r0, [r3] cmp r2, r0 bne _08107EF4 ldr r0, [r1] adds r0, 0x9 str r0, [r1] b _08107F14 .align 2, 0 _08107EEC: .4byte 0x02039238 _08107EF0: .4byte 0x02016800 _08107EF4: adds r3, 0x1 ldrb r0, [r3] cmp r0, 0xFF bne _08107EDC _08107EFC: ldr r2, [r4] ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x8] lsls r0, 24 orrs r1, r0 str r1, [r4] _08107F14: pop {r4} pop {r0} bx r0 thumb_func_end sub_8107EB4 thumb_func_start sub_8107F1C sub_8107F1C: @ 8107F1C push {r4,r5,lr} ldr r2, _08107F64 ldr r1, [r2] ldrb r3, [r1, 0x1] ldrb r0, [r1, 0x2] lsls r0, 8 orrs r3, r0 ldrb r0, [r1, 0x3] lsls r0, 16 orrs r3, r0 ldrb r0, [r1, 0x4] lsls r0, 24 orrs r3, r0 ldrh r0, [r3] ldr r5, _08107F68 cmp r0, r5 beq _08107F78 ldr r0, _08107F6C ldr r1, [r0, 0x8] adds r4, r2, 0 _08107F44: ldrh r0, [r3] cmp r1, r0 bne _08107F70 ldr r2, [r4] ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x8] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08107F7E .align 2, 0 _08107F64: .4byte 0x02039238 _08107F68: .4byte 0x0000ffff _08107F6C: .4byte 0x02016800 _08107F70: adds r3, 0x2 ldrh r0, [r3] cmp r0, r5 bne _08107F44 _08107F78: ldr r0, [r2] adds r0, 0x9 str r0, [r2] _08107F7E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8107F1C thumb_func_start sub_8107F84 sub_8107F84: @ 8107F84 push {r4,r5,lr} ldr r2, _08107FBC ldr r1, [r2] ldrb r3, [r1, 0x1] ldrb r0, [r1, 0x2] lsls r0, 8 orrs r3, r0 ldrb r0, [r1, 0x3] lsls r0, 16 orrs r3, r0 ldrb r0, [r1, 0x4] lsls r0, 24 orrs r3, r0 ldrh r0, [r3] ldr r4, _08107FC0 adds r5, r2, 0 cmp r0, r4 beq _08107FD0 ldr r0, _08107FC4 ldr r2, [r0, 0x8] adds r1, r5, 0 _08107FAE: ldrh r0, [r3] cmp r2, r0 bne _08107FC8 ldr r0, [r1] adds r0, 0x9 str r0, [r1] b _08107FE8 .align 2, 0 _08107FBC: .4byte 0x02039238 _08107FC0: .4byte 0x0000ffff _08107FC4: .4byte 0x02016800 _08107FC8: adds r3, 0x2 ldrh r0, [r3] cmp r0, r4 bne _08107FAE _08107FD0: ldr r2, [r5] ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x8] lsls r0, 24 orrs r1, r0 str r1, [r5] _08107FE8: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8107F84 thumb_func_start sub_8107FF0 sub_8107FF0: @ 8107FF0 push {r4,r5,lr} movs r3, 0 ldr r4, _08108030 ldr r1, _08108034 ldr r0, _08108038 ldrb r2, [r0] ldr r5, _0810803C movs r0, 0x58 muls r0, r2 adds r1, 0xC adds r2, r0, r1 _08108006: ldrh r0, [r2] cmp r0, 0 beq _0810801A lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r0, [r1, 0x1] cmp r0, 0 bne _08108022 _0810801A: adds r2, 0x2 adds r3, 0x1 cmp r3, 0x3 ble _08108006 _08108022: cmp r3, 0x4 bne _08108040 ldr r0, [r4] adds r0, 0x5 str r0, [r4] b _08108058 .align 2, 0 _08108030: .4byte 0x02039238 _08108034: .4byte 0x02024a80 _08108038: .4byte 0x02024c07 _0810803C: .4byte gBattleMoves _08108040: ldr r2, [r4] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r4] _08108058: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8107FF0 thumb_func_start sub_8108060 sub_8108060: @ 8108060 push {r4,r5,lr} movs r3, 0 ldr r4, _081080A0 ldr r1, _081080A4 ldr r0, _081080A8 ldrb r2, [r0] ldr r5, _081080AC movs r0, 0x58 muls r0, r2 adds r1, 0xC adds r2, r0, r1 _08108076: ldrh r0, [r2] cmp r0, 0 beq _0810808A lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r0, [r1, 0x1] cmp r0, 0 bne _08108092 _0810808A: adds r2, 0x2 adds r3, 0x1 cmp r3, 0x3 ble _08108076 _08108092: cmp r3, 0x4 beq _081080B0 ldr r0, [r4] adds r0, 0x5 str r0, [r4] b _081080C8 .align 2, 0 _081080A0: .4byte 0x02039238 _081080A4: .4byte 0x02024a80 _081080A8: .4byte 0x02024c07 _081080AC: .4byte gBattleMoves _081080B0: ldr r2, [r4] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r4] _081080C8: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8108060 thumb_func_start sub_81080D0 sub_81080D0: @ 81080D0 ldr r1, _081080E4 ldr r0, _081080E8 ldrb r0, [r0, 0x13] str r0, [r1, 0x8] ldr r1, _081080EC ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _081080E4: .4byte 0x02016800 _081080E8: .4byte 0x030042e0 _081080EC: .4byte 0x02039238 thumb_func_end sub_81080D0 thumb_func_start sub_81080F0 sub_81080F0: @ 81080F0 push {r4,lr} ldr r1, _08108108 ldr r0, [r1] ldrb r0, [r0, 0x1] adds r4, r1, 0 cmp r0, 0x4 bhi _081081B6 lsls r0, 2 ldr r1, _0810810C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08108108: .4byte 0x02039238 _0810810C: .4byte _08108110 .align 2, 0 _08108110: .4byte _08108144 .4byte _08108124 .4byte _08108184 .4byte _08108164 .4byte _081081A4 _08108124: ldr r3, _08108138 ldr r2, _0810813C ldr r0, _08108140 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x21 ldrb r0, [r0] b _081081B4 .align 2, 0 _08108138: .4byte 0x02016800 _0810813C: .4byte 0x02024a80 _08108140: .4byte 0x02024c07 _08108144: ldr r3, _08108158 ldr r2, _0810815C ldr r0, _08108160 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x21 ldrb r0, [r0] b _081081B4 .align 2, 0 _08108158: .4byte 0x02016800 _0810815C: .4byte 0x02024a80 _08108160: .4byte 0x02024c08 _08108164: ldr r3, _08108178 ldr r2, _0810817C ldr r0, _08108180 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x22 ldrb r0, [r0] b _081081B4 .align 2, 0 _08108178: .4byte 0x02016800 _0810817C: .4byte 0x02024a80 _08108180: .4byte 0x02024c07 _08108184: ldr r3, _08108198 ldr r2, _0810819C ldr r0, _081081A0 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x22 ldrb r0, [r0] b _081081B4 .align 2, 0 _08108198: .4byte 0x02016800 _0810819C: .4byte 0x02024a80 _081081A0: .4byte 0x02024c08 _081081A4: ldr r3, _081081C4 ldr r2, _081081C8 ldrh r1, [r3, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] _081081B4: str r0, [r3, 0x8] _081081B6: ldr r0, [r4] adds r0, 0x2 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _081081C4: .4byte 0x02016800 _081081C8: .4byte gBattleMoves thumb_func_end sub_81080F0 thumb_func_start sub_81081CC sub_81081CC: @ 81081CC ldr r3, _081081E8 ldr r2, _081081EC ldrh r1, [r3, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] str r0, [r3, 0x8] ldr r1, _081081F0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _081081E8: .4byte 0x02016800 _081081EC: .4byte gBattleMoves _081081F0: .4byte 0x02039238 thumb_func_end sub_81081CC thumb_func_start sub_81081F4 sub_81081F4: @ 81081F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 movs r3, 0 ldr r0, _08108328 ldrh r1, [r0] ldr r4, _0810832C ldr r6, _08108330 ldr r5, _08108334 cmp r1, r4 beq _0810822E ldrh r1, [r5, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r2, [r0] ldr r1, _08108328 _0810821E: ldrh r0, [r1] cmp r2, r0 beq _0810822E adds r1, 0x2 adds r3, 0x1 ldrh r0, [r1] cmp r0, r4 bne _0810821E _0810822E: ldrh r0, [r5, 0x2] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r0, [r1, 0x1] cmp r0, 0x1 bhi _08108240 b _081083B2 _08108240: lsls r0, r3, 1 ldr r1, _08108328 adds r0, r1 ldrh r3, [r0] ldr r0, _0810832C cmp r3, r0 beq _08108250 b _081083B2 _08108250: ldr r0, _08108338 movs r1, 0 strh r1, [r0] ldr r2, _0810833C adds r0, r5, r2 strb r1, [r0] adds r2, 0x3 adds r0, r5, r2 movs r2, 0x1 strb r2, [r0] ldr r0, _08108340 strb r1, [r0] ldr r0, _08108344 strb r2, [r0] movs r6, 0 mov r9, r3 ldr r0, _08108328 ldrh r0, [r0] str r0, [sp, 0x10] _08108276: movs r3, 0 ldr r5, _08108348 lsls r4, r6, 1 ldr r7, _0810834C lsls r1, r6, 2 mov r8, r1 adds r2, r6, 0x1 mov r10, r2 ldr r0, [sp, 0x10] cmp r0, r9 beq _081082BA ldr r2, _08108330 ldrb r1, [r7] movs r0, 0x58 muls r0, r1 adds r0, r4, r0 adds r1, r5, 0 adds r1, 0xC adds r0, r1 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r2, [r0] ldr r1, _08108328 _081082AA: ldrh r0, [r1] cmp r2, r0 beq _081082BA adds r1, 0x2 adds r3, 0x1 ldrh r0, [r1] cmp r0, r9 bne _081082AA _081082BA: ldrb r1, [r7] movs r0, 0x58 muls r0, r1 adds r0, r4, r0 adds r1, r5, 0 adds r1, 0xC adds r1, r0, r1 ldrh r0, [r1] cmp r0, 0 beq _0810835C lsls r0, r3, 1 ldr r2, _08108328 adds r0, r2 ldrh r0, [r0] cmp r0, r9 bne _0810835C ldr r0, _08108330 ldrh r2, [r1] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0x1 bls _0810835C ldr r5, _08108350 strh r2, [r5] ldrb r0, [r7] ldr r4, _08108354 ldrb r1, [r4] bl sub_801CAF8 ldrh r0, [r5] ldrb r1, [r7] ldrb r2, [r4] bl move_effectiveness_something mov r4, sp add r4, r8 ldr r2, _08108358 ldr r0, _08108334 adds r0, 0x18 adds r0, r6, r0 ldrb r1, [r0] ldr r0, [r2] muls r0, r1 movs r1, 0x64 bl __divsi3 str r0, [r4] cmp r0, 0 bne _08108364 movs r0, 0x1 str r0, [r4] b _08108364 .align 2, 0 _08108328: .4byte gUnknown_083F62BC _0810832C: .4byte 0x0000ffff _08108330: .4byte gBattleMoves _08108334: .4byte 0x02016800 _08108338: .4byte 0x02024dec _0810833C: .4byte 0xfffff81c _08108340: .4byte 0x02024c68 _08108344: .4byte 0x02024c0d _08108348: .4byte 0x02024a80 _0810834C: .4byte 0x02024c07 _08108350: .4byte 0x02024be6 _08108354: .4byte 0x02024c08 _08108358: .4byte 0x02024bec _0810835C: mov r1, sp add r1, r8 movs r0, 0 str r0, [r1] _08108364: mov r6, r10 cmp r6, 0x3 ble _08108276 movs r6, 0 ldr r1, _081083A4 ldrb r0, [r1, 0x1] lsls r0, 2 add r0, sp ldr r2, [sp] ldr r0, [r0] adds r5, r1, 0 ldr r4, _081083A8 cmp r2, r0 bgt _0810839A adds r3, r5, 0 mov r2, sp _08108384: adds r2, 0x4 adds r6, 0x1 cmp r6, 0x3 bgt _0810839A ldrb r0, [r3, 0x1] lsls r0, 2 add r0, sp ldr r1, [r2] ldr r0, [r0] cmp r1, r0 ble _08108384 _0810839A: cmp r6, 0x4 bne _081083AC movs r0, 0x2 str r0, [r5, 0x8] b _081083B8 .align 2, 0 _081083A4: .4byte 0x02016800 _081083A8: .4byte 0x02039238 _081083AC: movs r0, 0x1 str r0, [r5, 0x8] b _081083B8 _081083B2: movs r0, 0 str r0, [r5, 0x8] ldr r4, _081083D0 _081083B8: ldr r0, [r4] adds r0, 0x1 str r0, [r4] add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081083D0: .4byte 0x02039238 thumb_func_end sub_81081F4 thumb_func_start sub_81083D4 sub_81083D4: @ 81083D4 push {lr} ldr r0, _081083EC ldr r1, [r0] ldrb r1, [r1, 0x1] adds r3, r0, 0 cmp r1, 0x1 bne _081083FC ldr r2, _081083F0 ldr r1, _081083F4 ldr r0, _081083F8 b _08108402 .align 2, 0 _081083EC: .4byte 0x02039238 _081083F0: .4byte 0x02016800 _081083F4: .4byte 0x02024c34 _081083F8: .4byte 0x02024c07 _081083FC: ldr r2, _08108418 ldr r1, _0810841C ldr r0, _08108420 _08108402: ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r0, [r0] str r0, [r2, 0x8] ldr r0, [r3] adds r0, 0x2 str r0, [r3] pop {r0} bx r0 .align 2, 0 _08108418: .4byte 0x02016800 _0810841C: .4byte 0x02024c34 _08108420: .4byte 0x02024c08 thumb_func_end sub_81083D4 thumb_func_start sub_8108424 sub_8108424: @ 8108424 push {lr} ldr r3, _0810844C ldr r2, [r3] ldrb r0, [r2, 0x1] ldr r1, _08108450 ldr r1, [r1, 0x8] cmp r0, r1 bne _08108454 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08108458 .align 2, 0 _0810844C: .4byte 0x02039238 _08108450: .4byte 0x02016800 _08108454: adds r0, r2, 0x6 str r0, [r3] _08108458: pop {r0} bx r0 thumb_func_end sub_8108424 thumb_func_start sub_810845C sub_810845C: @ 810845C push {lr} ldr r3, _08108484 ldr r2, [r3] ldrb r0, [r2, 0x1] ldr r1, _08108488 ldr r1, [r1, 0x8] cmp r0, r1 beq _0810848C ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08108490 .align 2, 0 _08108484: .4byte 0x02039238 _08108488: .4byte 0x02016800 _0810848C: adds r0, r2, 0x6 str r0, [r3] _08108490: pop {r0} bx r0 thumb_func_end sub_810845C thumb_func_start tai28_unk tai28_unk: @ 8108494 push {lr} ldr r0, _081084CC ldrb r0, [r0] ldr r1, _081084D0 ldrb r1, [r1] movs r2, 0x1 bl b_first_side ldr r3, _081084D4 ldr r2, [r3] lsls r0, 24 lsrs r0, 24 ldrb r1, [r2, 0x1] cmp r0, r1 bne _081084D8 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081084DC .align 2, 0 _081084CC: .4byte 0x02024c07 _081084D0: .4byte 0x02024c08 _081084D4: .4byte 0x02039238 _081084D8: adds r0, r2, 0x6 str r0, [r3] _081084DC: pop {r0} bx r0 thumb_func_end tai28_unk thumb_func_start tai29_unk tai29_unk: @ 81084E0 push {lr} ldr r0, _08108518 ldrb r0, [r0] ldr r1, _0810851C ldrb r1, [r1] movs r2, 0x1 bl b_first_side ldr r3, _08108520 ldr r2, [r3] lsls r0, 24 lsrs r0, 24 ldrb r1, [r2, 0x1] cmp r0, r1 beq _08108524 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08108528 .align 2, 0 _08108518: .4byte 0x02024c07 _0810851C: .4byte 0x02024c08 _08108520: .4byte 0x02039238 _08108524: adds r0, r2, 0x6 str r0, [r3] _08108528: pop {r0} bx r0 thumb_func_end tai29_unk thumb_func_start nullsub_25 nullsub_25: @ 810852C bx lr thumb_func_end nullsub_25 thumb_func_start nullsub_26 nullsub_26: @ 8108530 bx lr thumb_func_end nullsub_26 thumb_func_start tai2C_unk tai2C_unk: @ 8108534 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r1, _08108550 movs r0, 0 str r0, [r1, 0x8] ldr r0, _08108554 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 bne _0810855C ldr r0, _08108558 b _0810855E .align 2, 0 _08108550: .4byte 0x02016800 _08108554: .4byte 0x02039238 _08108558: .4byte 0x02024c07 _0810855C: ldr r0, _081085A8 _0810855E: ldrb r5, [r0] adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 ldr r1, _081085AC mov r9, r1 cmp r0, 0 bne _08108574 ldr r0, _081085B0 mov r9, r0 _08108574: ldr r0, _081085B4 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081085BC ldr r4, _081085B8 lsls r0, r5, 1 adds r0, r4 ldrb r0, [r0] mov r8, r0 adds r0, r5, 0 bl battle_get_per_side_status movs r1, 0x2 eors r0, r1 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 23 adds r0, r4 ldrb r6, [r0] b _081085C6 .align 2, 0 _081085A8: .4byte 0x02024c08 _081085AC: .4byte 0x030045c0 _081085B0: .4byte 0x03004360 _081085B4: .4byte 0x020239f8 _081085B8: .4byte 0x02024a6a _081085BC: ldr r1, _08108624 lsls r0, r5, 1 adds r0, r1 ldrb r6, [r0] mov r8, r6 _081085C6: movs r5, 0 ldr r7, _08108628 _081085CA: cmp r5, r8 beq _08108608 cmp r5, r6 beq _08108608 movs r0, 0x64 muls r0, r5 mov r1, r9 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _08108608 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField cmp r0, 0 beq _08108608 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _08108608 ldr r0, [r7, 0x8] adds r0, 0x1 str r0, [r7, 0x8] _08108608: adds r5, 0x1 cmp r5, 0x5 ble _081085CA ldr r1, _0810862C ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08108624: .4byte 0x02024a6a _08108628: .4byte 0x02016800 _0810862C: .4byte 0x02039238 thumb_func_end tai2C_unk thumb_func_start sub_8108630 sub_8108630: @ 8108630 ldr r1, _08108640 ldrh r0, [r1, 0x2] str r0, [r1, 0x8] ldr r1, _08108644 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08108640: .4byte 0x02016800 _08108644: .4byte 0x02039238 thumb_func_end sub_8108630 thumb_func_start sub_8108648 sub_8108648: @ 8108648 ldr r3, _08108664 ldr r2, _08108668 ldrh r1, [r3, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] str r0, [r3, 0x8] ldr r1, _0810866C ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08108664: .4byte 0x02016800 _08108668: .4byte gBattleMoves _0810866C: .4byte 0x02039238 thumb_func_end sub_8108648 thumb_func_start sub_8108670 sub_8108670: @ 8108670 push {r4-r7,lr} ldr r0, _08108680 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 bne _08108688 ldr r0, _08108684 b _0810868A .align 2, 0 _08108680: .4byte 0x02039238 _08108684: .4byte 0x02024c07 _08108688: ldr r0, _081086BC _0810868A: ldrb r4, [r0] adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08108774 adds r0, r4, 0 bl battle_get_per_side_status movs r7, 0x1 adds r1, r7, 0 ands r1, r0 ldr r6, _081086C0 adds r0, r6, 0 adds r0, 0x20 adds r3, r1, r0 ldrb r0, [r3] cmp r0, 0 beq _081086C8 ldr r0, _081086C4 adds r1, r6, r0 ldrb r0, [r3] str r0, [r1, 0x8] b _08108784 .align 2, 0 _081086BC: .4byte 0x02024c08 _081086C0: .4byte 0x02016a00 _081086C4: .4byte 0xfffffe00 _081086C8: ldr r1, _081086F4 movs r0, 0x58 muls r0, r4 adds r5, r0, r1 adds r0, r5, 0 adds r0, 0x20 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x17 beq _081086E4 cmp r0, 0x2A beq _081086E4 cmp r0, 0x47 bne _081086FC _081086E4: ldr r1, _081086F8 movs r0, 0x58 muls r0, r4 adds r0, r2 adds r0, 0x20 ldrb r0, [r0] str r0, [r1, 0x8] b _08108784 .align 2, 0 _081086F4: .4byte 0x02024a80 _081086F8: .4byte 0x02016800 _081086FC: ldr r4, _08108734 ldrh r0, [r5] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r3, r1, r4 ldrb r0, [r3, 0x16] cmp r0, 0 beq _08108764 ldrb r0, [r3, 0x17] cmp r0, 0 beq _08108754 bl Random adds r1, r7, 0 ands r1, r0 cmp r1, 0 beq _0810873C ldr r0, _08108738 adds r2, r6, r0 ldrh r1, [r5] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x16] b _08108782 .align 2, 0 _08108734: .4byte gBaseStats _08108738: .4byte 0xfffffe00 _0810873C: ldr r0, _08108750 adds r2, r6, r0 ldrh r1, [r5] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x17] b _08108782 .align 2, 0 _08108750: .4byte 0xfffffe00 _08108754: ldr r0, _08108760 adds r1, r6, r0 ldrb r0, [r3, 0x16] str r0, [r1, 0x8] b _08108784 .align 2, 0 _08108760: .4byte 0xfffffe00 _08108764: ldr r0, _08108770 adds r1, r6, r0 ldrb r0, [r3, 0x17] str r0, [r1, 0x8] b _08108784 .align 2, 0 _08108770: .4byte 0xfffffe00 _08108774: ldr r2, _08108794 ldr r1, _08108798 movs r0, 0x58 muls r0, r4 adds r0, r1 adds r0, 0x20 ldrb r0, [r0] _08108782: str r0, [r2, 0x8] _08108784: ldr r1, _0810879C ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08108794: .4byte 0x02016800 _08108798: .4byte 0x02024a80 _0810879C: .4byte 0x02039238 thumb_func_end sub_8108670 thumb_func_start tai30_unk tai30_unk: @ 81087A0 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _0810885C movs r2, 0 strh r2, [r0] ldr r1, _08108860 ldr r3, _08108864 adds r0, r1, r3 movs r4, 0 strb r2, [r0] adds r3, 0x3 adds r0, r1, r3 movs r3, 0x1 strb r3, [r0] ldr r0, _08108868 strb r2, [r0] ldr r0, _0810886C strb r3, [r0] movs r0, 0xB4 lsls r0, 9 adds r1, r0 str r4, [r1, 0x8] movs r5, 0 ldr r4, _08108870 ldr r7, _08108874 ldr r3, _08108878 mov r8, r3 ldr r6, _0810887C _081087DA: movs r0, 0x28 str r0, [r4] lsls r1, r5, 1 ldrb r2, [r6] movs r0, 0x58 muls r0, r2 adds r1, r0 add r1, r8 ldrh r0, [r1] strh r0, [r7] lsls r0, 16 cmp r0, 0 beq _08108844 ldrh r0, [r7] ldrb r1, [r6] ldr r2, _08108880 ldrb r2, [r2] bl move_effectiveness_something ldr r0, [r4] cmp r0, 0x78 bne _0810880A movs r0, 0x50 str r0, [r4] _0810880A: ldr r0, [r4] cmp r0, 0xF0 bne _08108814 movs r0, 0xA0 str r0, [r4] _08108814: ldr r0, [r4] cmp r0, 0x1E bne _0810881E movs r0, 0x14 str r0, [r4] _0810881E: ldr r0, [r4] cmp r0, 0xF bne _08108828 movs r0, 0xA str r0, [r4] _08108828: ldr r0, _08108868 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08108838 movs r0, 0 str r0, [r4] _08108838: ldr r2, _08108884 ldr r0, [r2, 0x8] ldr r1, [r4] cmp r0, r1 bcs _08108844 str r1, [r2, 0x8] _08108844: adds r5, 0x1 cmp r5, 0x3 ble _081087DA ldr r1, _08108888 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810885C: .4byte 0x02024dec _08108860: .4byte 0x02000000 _08108864: .4byte 0x0001601c _08108868: .4byte 0x02024c68 _0810886C: .4byte 0x02024c0d _08108870: .4byte 0x02024bec _08108874: .4byte 0x02024be6 _08108878: .4byte 0x02024a8c _0810887C: .4byte 0x02024c07 _08108880: .4byte 0x02024c08 _08108884: .4byte 0x02016800 _08108888: .4byte 0x02039238 thumb_func_end tai30_unk thumb_func_start dp15_simulate_damage_bonus_jump_if_eq dp15_simulate_damage_bonus_jump_if_eq: @ 810888C push {r4,r5,lr} ldr r0, _08108928 movs r1, 0 strh r1, [r0] ldr r2, _0810892C ldr r3, _08108930 adds r0, r2, r3 strb r1, [r0] adds r3, 0x3 adds r0, r2, r3 movs r3, 0x1 strb r3, [r0] ldr r5, _08108934 strb r1, [r5] ldr r0, _08108938 strb r3, [r0] ldr r4, _0810893C movs r0, 0x28 str r0, [r4] ldr r1, _08108940 movs r0, 0xB4 lsls r0, 9 adds r2, r0 ldrh r0, [r2, 0x2] strh r0, [r1] ldrh r0, [r1] ldr r1, _08108944 ldrb r1, [r1] ldr r2, _08108948 ldrb r2, [r2] bl move_effectiveness_something ldr r0, [r4] cmp r0, 0x78 bne _081088D6 movs r0, 0x50 str r0, [r4] _081088D6: ldr r0, [r4] cmp r0, 0xF0 bne _081088E0 movs r0, 0xA0 str r0, [r4] _081088E0: ldr r0, [r4] cmp r0, 0x1E bne _081088EA movs r0, 0x14 str r0, [r4] _081088EA: ldr r0, [r4] cmp r0, 0xF bne _081088F4 movs r0, 0xA str r0, [r4] _081088F4: ldrb r1, [r5] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08108902 movs r0, 0 str r0, [r4] _08108902: ldrb r0, [r4] ldr r3, _0810894C ldr r2, [r3] ldrb r1, [r2, 0x1] cmp r0, r1 bne _08108950 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08108954 .align 2, 0 _08108928: .4byte 0x02024dec _0810892C: .4byte 0x02000000 _08108930: .4byte 0x0001601c _08108934: .4byte 0x02024c68 _08108938: .4byte 0x02024c0d _0810893C: .4byte 0x02024bec _08108940: .4byte 0x02024be6 _08108944: .4byte 0x02024c07 _08108948: .4byte 0x02024c08 _0810894C: .4byte 0x02039238 _08108950: adds r0, r2, 0x6 str r0, [r3] _08108954: pop {r4,r5} pop {r0} bx r0 thumb_func_end dp15_simulate_damage_bonus_jump_if_eq thumb_func_start nullsub_71 nullsub_71: @ 810895C bx lr thumb_func_end nullsub_71 thumb_func_start nullsub_90 nullsub_90: @ 8108960 bx lr thumb_func_end nullsub_90 thumb_func_start sub_8108964 sub_8108964: @ 8108964 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _0810897C ldr r1, [r0] ldrb r1, [r1, 0x1] cmp r1, 0x1 bne _081089A4 ldr r1, _08108980 b _081089A6 .align 2, 0 _0810897C: .4byte 0x02039238 _08108980: .4byte 0x030045c0 _08108984: ldr r3, _081089A0 ldr r2, [r3] ldrb r1, [r2, 0x6] ldrb r0, [r2, 0x7] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x8] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x9] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08108A12 .align 2, 0 _081089A0: .4byte 0x02039238 _081089A4: ldr r1, _08108A20 _081089A6: mov r9, r1 ldr r1, [r0] ldrb r7, [r1, 0x2] ldrb r0, [r1, 0x3] lsls r0, 8 orrs r7, r0 ldrb r0, [r1, 0x4] lsls r0, 16 orrs r7, r0 ldrb r0, [r1, 0x5] lsls r0, 24 orrs r7, r0 movs r0, 0 mov r8, r0 movs r1, 0xCE lsls r1, 1 mov r10, r1 _081089C8: movs r0, 0x64 mov r4, r8 muls r4, r0 add r4, r9 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField lsls r0, 16 lsrs r6, r0, 16 adds r0, r4, 0 movs r1, 0x37 bl PokemonGetField cmp r5, 0 beq _08108A00 cmp r5, r10 beq _08108A00 cmp r6, 0 beq _08108A00 cmp r0, r7 beq _08108984 _08108A00: movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x5 ble _081089C8 ldr r1, _08108A24 ldr r0, [r1] adds r0, 0xA str r0, [r1] _08108A12: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08108A20: .4byte 0x03004360 _08108A24: .4byte 0x02039238 thumb_func_end sub_8108964 thumb_func_start sub_8108A28 sub_8108A28: @ 8108A28 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _08108A44 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r2, r0, 0 cmp r1, 0x1 bne _08108A4C ldr r0, _08108A48 mov r10, r0 b _08108A50 .align 2, 0 _08108A44: .4byte 0x02039238 _08108A48: .4byte 0x030045c0 _08108A4C: ldr r1, _08108AE4 mov r10, r1 _08108A50: ldr r1, [r2] ldrb r7, [r1, 0x2] ldrb r0, [r1, 0x3] lsls r0, 8 orrs r7, r0 ldrb r0, [r1, 0x4] lsls r0, 16 orrs r7, r0 ldrb r0, [r1, 0x5] lsls r0, 24 orrs r7, r0 movs r0, 0 mov r8, r0 mov r9, r2 _08108A6C: movs r0, 0x64 mov r4, r8 muls r4, r0 add r4, r10 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField lsls r0, 16 lsrs r6, r0, 16 adds r0, r4, 0 movs r1, 0x37 bl PokemonGetField cmp r5, 0 beq _08108AB0 movs r1, 0xCE lsls r1, 1 cmp r5, r1 beq _08108AB0 cmp r6, 0 beq _08108AB0 cmp r0, r7 bne _08108AB0 mov r1, r9 ldr r0, [r1] adds r0, 0xA str r0, [r1] _08108AB0: movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x5 ble _08108A6C ldr r3, _08108AE8 ldr r2, [r3] ldrb r1, [r2, 0x6] ldrb r0, [r2, 0x7] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x8] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x9] lsls r0, 24 orrs r1, r0 str r1, [r3] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08108AE4: .4byte 0x03004360 _08108AE8: .4byte 0x02039238 thumb_func_end sub_8108A28 thumb_func_start sub_8108AEC sub_8108AEC: @ 8108AEC push {lr} ldr r2, _08108B3C ldrh r1, [r2] movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _08108B00 ldr r1, _08108B40 movs r0, 0x1 str r0, [r1, 0x8] _08108B00: ldrh r2, [r2] movs r0, 0x18 ands r0, r2 adds r3, r2, 0 cmp r0, 0 beq _08108B12 ldr r1, _08108B40 movs r0, 0x2 str r0, [r1, 0x8] _08108B12: movs r0, 0x60 ands r0, r3 cmp r0, 0 beq _08108B20 ldr r1, _08108B40 movs r0, 0 str r0, [r1, 0x8] _08108B20: movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _08108B2E ldr r1, _08108B40 movs r0, 0x3 str r0, [r1, 0x8] _08108B2E: ldr r1, _08108B44 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08108B3C: .4byte 0x02024db8 _08108B40: .4byte 0x02016800 _08108B44: .4byte 0x02039238 thumb_func_end sub_8108AEC thumb_func_start sub_8108B48 sub_8108B48: @ 8108B48 push {lr} ldr r2, _08108B7C ldr r0, _08108B80 ldrh r1, [r0, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r3, _08108B84 ldr r2, [r3] ldrb r0, [r0] ldrb r1, [r2, 0x1] cmp r0, r1 bne _08108B88 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08108B8C .align 2, 0 _08108B7C: .4byte gBattleMoves _08108B80: .4byte 0x02016800 _08108B84: .4byte 0x02039238 _08108B88: adds r0, r2, 0x6 str r0, [r3] _08108B8C: pop {r0} bx r0 thumb_func_end sub_8108B48 thumb_func_start sub_8108B90 sub_8108B90: @ 8108B90 push {lr} ldr r2, _08108BC4 ldr r0, _08108BC8 ldrh r1, [r0, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r3, _08108BCC ldr r2, [r3] ldrb r0, [r0] ldrb r1, [r2, 0x1] cmp r0, r1 beq _08108BD0 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08108BD4 .align 2, 0 _08108BC4: .4byte gBattleMoves _08108BC8: .4byte 0x02016800 _08108BCC: .4byte 0x02039238 _08108BD0: adds r0, r2, 0x6 str r0, [r3] _08108BD4: pop {r0} bx r0 thumb_func_end sub_8108B90 thumb_func_start sub_8108BD8 sub_8108BD8: @ 8108BD8 push {r4,lr} ldr r0, _08108BEC ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _08108BF4 ldr r0, _08108BF0 b _08108BF6 .align 2, 0 _08108BEC: .4byte 0x02039238 _08108BF0: .4byte 0x02024c07 _08108BF4: ldr r0, _08108C2C _08108BF6: ldrb r3, [r0] ldr r1, _08108C30 ldr r2, [r4] movs r0, 0x58 muls r0, r3 ldrb r3, [r2, 0x2] adds r0, r3 adds r1, 0x18 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrb r1, [r2, 0x3] cmp r0, r1 bge _08108C34 ldrb r1, [r2, 0x4] ldrb r0, [r2, 0x5] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08108C3A .align 2, 0 _08108C2C: .4byte 0x02024c08 _08108C30: .4byte 0x02024a80 _08108C34: adds r0, r2, 0 adds r0, 0x8 str r0, [r4] _08108C3A: pop {r4} pop {r0} bx r0 thumb_func_end sub_8108BD8 thumb_func_start sub_8108C40 sub_8108C40: @ 8108C40 push {r4,lr} ldr r0, _08108C54 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _08108C5C ldr r0, _08108C58 b _08108C5E .align 2, 0 _08108C54: .4byte 0x02039238 _08108C58: .4byte 0x02024c07 _08108C5C: ldr r0, _08108C94 _08108C5E: ldrb r3, [r0] ldr r1, _08108C98 ldr r2, [r4] movs r0, 0x58 muls r0, r3 ldrb r3, [r2, 0x2] adds r0, r3 adds r1, 0x18 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrb r1, [r2, 0x3] cmp r0, r1 ble _08108C9C ldrb r1, [r2, 0x4] ldrb r0, [r2, 0x5] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08108CA2 .align 2, 0 _08108C94: .4byte 0x02024c08 _08108C98: .4byte 0x02024a80 _08108C9C: adds r0, r2, 0 adds r0, 0x8 str r0, [r4] _08108CA2: pop {r4} pop {r0} bx r0 thumb_func_end sub_8108C40 thumb_func_start sub_8108CA8 sub_8108CA8: @ 8108CA8 push {r4,lr} ldr r0, _08108CBC ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _08108CC4 ldr r0, _08108CC0 b _08108CC6 .align 2, 0 _08108CBC: .4byte 0x02039238 _08108CC0: .4byte 0x02024c07 _08108CC4: ldr r0, _08108CFC _08108CC6: ldrb r3, [r0] ldr r1, _08108D00 ldr r2, [r4] movs r0, 0x58 muls r0, r3 ldrb r3, [r2, 0x2] adds r0, r3 adds r1, 0x18 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrb r1, [r2, 0x3] cmp r0, r1 bne _08108D04 ldrb r1, [r2, 0x4] ldrb r0, [r2, 0x5] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08108D0A .align 2, 0 _08108CFC: .4byte 0x02024c08 _08108D00: .4byte 0x02024a80 _08108D04: adds r0, r2, 0 adds r0, 0x8 str r0, [r4] _08108D0A: pop {r4} pop {r0} bx r0 thumb_func_end sub_8108CA8 thumb_func_start sub_8108D10 sub_8108D10: @ 8108D10 push {r4,lr} ldr r0, _08108D24 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _08108D2C ldr r0, _08108D28 b _08108D2E .align 2, 0 _08108D24: .4byte 0x02039238 _08108D28: .4byte 0x02024c07 _08108D2C: ldr r0, _08108D64 _08108D2E: ldrb r3, [r0] ldr r1, _08108D68 ldr r2, [r4] movs r0, 0x58 muls r0, r3 ldrb r3, [r2, 0x2] adds r0, r3 adds r1, 0x18 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrb r1, [r2, 0x3] cmp r0, r1 beq _08108D6C ldrb r1, [r2, 0x4] ldrb r0, [r2, 0x5] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08108D72 .align 2, 0 _08108D64: .4byte 0x02024c08 _08108D68: .4byte 0x02024a80 _08108D6C: adds r0, r2, 0 adds r0, 0x8 str r0, [r4] _08108D72: pop {r4} pop {r0} bx r0 thumb_func_end sub_8108D10 thumb_func_start tai3D_unk tai3D_unk: @ 8108D78 push {r4-r7,lr} mov r7, r8 push {r7} ldr r2, _08108E1C ldr r6, _08108E20 ldrh r1, [r6, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0x1 bls _08108E4C ldr r0, _08108E24 movs r1, 0 strh r1, [r0] ldr r2, _08108E28 adds r0, r6, r2 strb r1, [r0] adds r2, 0x3 adds r0, r6, r2 movs r2, 0x1 mov r8, r2 mov r2, r8 strb r2, [r0] ldr r0, _08108E2C strb r1, [r0] ldr r0, _08108E30 strb r2, [r0] ldr r5, _08108E34 ldrh r0, [r6, 0x2] strh r0, [r5] ldr r4, _08108E38 ldrb r0, [r4] ldr r7, _08108E3C ldrb r1, [r7] bl sub_801CAF8 ldrh r0, [r5] ldrb r1, [r4] ldrb r2, [r7] bl move_effectiveness_something ldr r4, _08108E40 adds r0, r6, 0 adds r0, 0x18 ldrb r6, [r6, 0x1] adds r0, r6 ldrb r1, [r0] ldr r0, [r4] muls r0, r1 movs r1, 0x64 bl __divsi3 str r0, [r4] cmp r0, 0 bne _08108DEE mov r0, r8 str r0, [r4] _08108DEE: ldr r2, _08108E44 ldrb r1, [r7] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r1, [r0, 0x28] ldr r0, [r4] cmp r1, r0 bgt _08108E4C ldr r3, _08108E48 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08108E54 .align 2, 0 _08108E1C: .4byte gBattleMoves _08108E20: .4byte 0x02016800 _08108E24: .4byte 0x02024dec _08108E28: .4byte 0xfffff81c _08108E2C: .4byte 0x02024c68 _08108E30: .4byte 0x02024c0d _08108E34: .4byte 0x02024be6 _08108E38: .4byte 0x02024c07 _08108E3C: .4byte 0x02024c08 _08108E40: .4byte 0x02024bec _08108E44: .4byte 0x02024a80 _08108E48: .4byte 0x02039238 _08108E4C: ldr r1, _08108E60 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08108E54: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08108E60: .4byte 0x02039238 thumb_func_end tai3D_unk thumb_func_start dp15_determine_move_damage_jump_if_not_fatal dp15_determine_move_damage_jump_if_not_fatal: @ 8108E64 push {r4-r7,lr} ldr r2, _08108EF8 ldr r7, _08108EFC ldrh r1, [r7, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0x1 bls _08108F28 ldr r0, _08108F00 movs r1, 0 strh r1, [r0] ldr r2, _08108F04 adds r0, r7, r2 strb r1, [r0] adds r2, 0x3 adds r0, r7, r2 movs r2, 0x1 strb r2, [r0] ldr r0, _08108F08 strb r1, [r0] ldr r0, _08108F0C strb r2, [r0] ldr r6, _08108F10 ldrh r0, [r7, 0x2] strh r0, [r6] ldr r4, _08108F14 ldrb r0, [r4] ldr r5, _08108F18 ldrb r1, [r5] bl sub_801CAF8 ldrh r0, [r6] ldrb r1, [r4] ldrb r2, [r5] bl move_effectiveness_something ldr r4, _08108F1C adds r0, r7, 0 adds r0, 0x18 ldrb r7, [r7, 0x1] adds r0, r7 ldrb r1, [r0] ldr r0, [r4] muls r0, r1 movs r1, 0x64 bl __divsi3 str r0, [r4] ldr r3, _08108F20 ldrb r2, [r5] movs r1, 0x58 muls r1, r2 adds r1, r3 ldrh r1, [r1, 0x28] cmp r1, r0 ble _08108F28 ldr r3, _08108F24 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08108F30 .align 2, 0 _08108EF8: .4byte gBattleMoves _08108EFC: .4byte 0x02016800 _08108F00: .4byte 0x02024dec _08108F04: .4byte 0xfffff81c _08108F08: .4byte 0x02024c68 _08108F0C: .4byte 0x02024c0d _08108F10: .4byte 0x02024be6 _08108F14: .4byte 0x02024c07 _08108F18: .4byte 0x02024c08 _08108F1C: .4byte 0x02024bec _08108F20: .4byte 0x02024a80 _08108F24: .4byte 0x02039238 _08108F28: ldr r1, _08108F38 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08108F30: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08108F38: .4byte 0x02039238 thumb_func_end dp15_determine_move_damage_jump_if_not_fatal thumb_func_start tai40_unk tai40_unk: @ 8108F3C push {r4-r7,lr} ldr r1, _08108F58 ldr r0, [r1] adds r6, r0, 0x2 ldrb r0, [r0, 0x1] adds r4, r1, 0 cmp r0, 0x1 beq _08108F64 cmp r0, 0x1 bgt _08108F5C cmp r0, 0 beq _08108FA8 b _08109008 .align 2, 0 _08108F58: .4byte 0x02039238 _08108F5C: cmp r0, 0x2 beq _08108FA8 cmp r0, 0x3 bne _08109008 _08108F64: movs r3, 0 ldr r2, _08108FA0 ldr r5, _08108FA4 ldrb r1, [r5] movs r0, 0x58 muls r0, r1 adds r2, 0xC adds r0, r2 ldrh r0, [r0] ldrh r1, [r6] cmp r0, r1 beq _08108F9A adds r7, r5, 0 movs r6, 0x58 adds r5, r2, 0 adds r2, r1, 0 _08108F84: adds r3, 0x1 cmp r3, 0x3 bgt _08108F9A lsls r1, r3, 1 ldrb r0, [r7] muls r0, r6 adds r1, r0 adds r1, r5 ldrh r0, [r1] cmp r0, r2 bne _08108F84 _08108F9A: cmp r3, 0x4 beq _08108FDE b _08108FF0 .align 2, 0 _08108FA0: .4byte 0x02024a80 _08108FA4: .4byte 0x02024c07 _08108FA8: movs r3, 0 ldr r5, _08108FE8 ldr r1, _08108FEC ldrb r0, [r1] lsrs r0, 1 lsls r0, 4 adds r0, r5 ldrh r0, [r0] ldrh r2, [r6] cmp r0, r2 beq _08108FDA adds r6, r5, 0 adds r5, r1, 0 _08108FC2: adds r3, 0x1 cmp r3, 0x7 bgt _08108FDA lsls r0, r3, 1 ldrb r1, [r5] lsrs r1, 1 lsls r1, 4 adds r0, r1 adds r0, r6 ldrh r0, [r0] cmp r0, r2 bne _08108FC2 _08108FDA: cmp r3, 0x8 bne _08108FF0 _08108FDE: ldr r0, [r4] adds r0, 0x8 str r0, [r4] b _08109008 .align 2, 0 _08108FE8: .4byte 0x02016a00 _08108FEC: .4byte 0x02024c08 _08108FF0: ldr r2, [r4] ldrb r1, [r2, 0x4] ldrb r0, [r2, 0x5] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 24 orrs r1, r0 str r1, [r4] _08109008: pop {r4-r7} pop {r0} bx r0 thumb_func_end tai40_unk thumb_func_start sub_8109010 sub_8109010: @ 8109010 push {r4-r7,lr} ldr r1, _0810902C ldr r0, [r1] adds r6, r0, 0x2 ldrb r0, [r0, 0x1] adds r4, r1, 0 cmp r0, 0x1 beq _08109038 cmp r0, 0x1 bgt _08109030 cmp r0, 0 beq _0810907C b _081090DC .align 2, 0 _0810902C: .4byte 0x02039238 _08109030: cmp r0, 0x2 beq _0810907C cmp r0, 0x3 bne _081090DC _08109038: movs r3, 0 ldr r2, _08109074 ldr r5, _08109078 ldrb r1, [r5] movs r0, 0x58 muls r0, r1 adds r2, 0xC adds r0, r2 ldrh r0, [r0] ldrh r1, [r6] cmp r0, r1 beq _0810906E adds r7, r5, 0 movs r6, 0x58 adds r5, r2, 0 adds r2, r1, 0 _08109058: adds r3, 0x1 cmp r3, 0x3 bgt _0810906E lsls r1, r3, 1 ldrb r0, [r7] muls r0, r6 adds r1, r0 adds r1, r5 ldrh r0, [r1] cmp r0, r2 bne _08109058 _0810906E: cmp r3, 0x4 bne _081090B2 b _081090C4 .align 2, 0 _08109074: .4byte 0x02024a80 _08109078: .4byte 0x02024c07 _0810907C: movs r3, 0 ldr r5, _081090BC ldr r1, _081090C0 ldrb r0, [r1] lsrs r0, 1 lsls r0, 4 adds r0, r5 ldrh r0, [r0] ldrh r2, [r6] cmp r0, r2 beq _081090AE adds r6, r5, 0 adds r5, r1, 0 _08109096: adds r3, 0x1 cmp r3, 0x7 bgt _081090AE lsls r0, r3, 1 ldrb r1, [r5] lsrs r1, 1 lsls r1, 4 adds r0, r1 adds r0, r6 ldrh r0, [r0] cmp r0, r2 bne _08109096 _081090AE: cmp r3, 0x8 beq _081090C4 _081090B2: ldr r0, [r4] adds r0, 0x8 str r0, [r4] b _081090DC .align 2, 0 _081090BC: .4byte 0x02016a00 _081090C0: .4byte 0x02024c08 _081090C4: ldr r2, [r4] ldrb r1, [r2, 0x4] ldrb r0, [r2, 0x5] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 24 orrs r1, r0 str r1, [r4] _081090DC: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8109010 thumb_func_start sub_81090E4 sub_81090E4: @ 81090E4 push {r4-r7,lr} ldr r1, _081090FC ldr r0, [r1] ldrb r0, [r0, 0x1] adds r4, r1, 0 cmp r0, 0x1 beq _08109108 cmp r0, 0x1 bgt _08109100 cmp r0, 0 beq _0810915C b _081091B8 .align 2, 0 _081090FC: .4byte 0x02039238 _08109100: cmp r0, 0x2 beq _0810915C cmp r0, 0x3 bne _081091B8 _08109108: movs r3, 0 ldr r1, _0810914C ldr r0, _08109150 ldrb r2, [r0] ldr r6, _08109154 movs r0, 0x58 muls r0, r2 adds r1, 0xC adds r2, r0, r1 ldr r5, _08109158 _0810911C: ldrh r0, [r2] cmp r0, 0 beq _08109136 adds r1, r0, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 ldr r1, [r5] ldrb r0, [r0] ldrb r1, [r1, 0x2] cmp r0, r1 beq _0810913E _08109136: adds r2, 0x2 adds r3, 0x1 cmp r3, 0x3 ble _0810911C _0810913E: cmp r3, 0x4 bne _081091A0 ldr r0, [r4] adds r0, 0x7 str r0, [r4] b _081091B8 .align 2, 0 _0810914C: .4byte 0x02024a80 _08109150: .4byte 0x02024c07 _08109154: .4byte gBattleMoves _08109158: .4byte 0x02039238 _0810915C: movs r3, 0 ldr r1, _081091C0 ldr r0, _081091C4 ldrb r2, [r0] ldr r7, _081091C8 ldr r6, _081091CC ldr r5, _081091D0 movs r0, 0x58 muls r0, r2 adds r1, 0xC adds r2, r0, r1 _08109172: lsls r1, r3, 1 ldrh r0, [r2] cmp r0, 0 beq _08109198 ldrb r0, [r5] lsrs r0, 1 lsls r0, 4 adds r0, r1, r0 adds r0, r6 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r7 ldr r1, [r4] ldrb r0, [r0] ldrb r1, [r1, 0x2] cmp r0, r1 beq _081091A0 _08109198: adds r2, 0x2 adds r3, 0x1 cmp r3, 0x7 ble _08109172 _081091A0: ldr r2, [r4] ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] _081091B8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081091C0: .4byte 0x02024a80 _081091C4: .4byte 0x02024c07 _081091C8: .4byte gBattleMoves _081091CC: .4byte 0x02016a00 _081091D0: .4byte 0x02024c08 thumb_func_end sub_81090E4 thumb_func_start sub_81091D4 sub_81091D4: @ 81091D4 push {r4-r6,lr} ldr r1, _081091EC ldr r0, [r1] ldrb r0, [r0, 0x1] adds r4, r1, 0 cmp r0, 0x1 beq _081091F8 cmp r0, 0x1 bgt _081091F0 cmp r0, 0 beq _0810925C b _08109294 .align 2, 0 _081091EC: .4byte 0x02039238 _081091F0: cmp r0, 0x2 beq _0810925C cmp r0, 0x3 bne _08109294 _081091F8: movs r3, 0 ldr r1, _0810924C ldr r0, _08109250 ldrb r2, [r0] ldr r6, _08109254 movs r0, 0x58 muls r0, r2 adds r1, 0xC adds r2, r0, r1 ldr r5, _08109258 _0810920C: ldrh r0, [r2] cmp r0, 0 beq _08109226 adds r1, r0, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 ldr r1, [r5] ldrb r0, [r0] ldrb r1, [r1, 0x2] cmp r0, r1 beq _0810922E _08109226: adds r2, 0x2 adds r3, 0x1 cmp r3, 0x3 ble _0810920C _0810922E: cmp r3, 0x4 bne _0810928E ldr r2, [r4] ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08109294 .align 2, 0 _0810924C: .4byte 0x02024a80 _08109250: .4byte 0x02024c07 _08109254: .4byte gBattleMoves _08109258: .4byte 0x02039238 _0810925C: movs r3, 0 ldr r1, _0810929C ldr r0, _081092A0 ldrb r0, [r0] lsrs r0, 1 lsls r0, 4 adds r2, r0, r1 ldr r5, _081092A4 _0810926C: ldrh r0, [r2] cmp r0, 0 beq _08109286 adds r1, r0, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, [r4] ldrb r0, [r0] ldrb r1, [r1, 0x2] cmp r0, r1 beq _0810928E _08109286: adds r2, 0x2 adds r3, 0x1 cmp r3, 0x7 ble _0810926C _0810928E: ldr r0, [r4] adds r0, 0x7 str r0, [r4] _08109294: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810929C: .4byte 0x02016a00 _081092A0: .4byte 0x02024c08 _081092A4: .4byte gBattleMoves thumb_func_end sub_81091D4 thumb_func_start tai43_unk tai43_unk: @ 81092A8 push {r4,r5,lr} ldr r0, _081092BC ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _081092C4 ldr r0, _081092C0 b _081092C6 .align 2, 0 _081092BC: .4byte 0x02039238 _081092C0: .4byte 0x02024c07 _081092C4: ldr r0, _081092E4 _081092C6: ldrb r3, [r0] adds r4, r5, 0 ldr r2, [r4] ldrb r0, [r2, 0x2] cmp r0, 0 bne _081092EC ldr r0, _081092E8 lsls r1, r3, 3 subs r1, r3 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x4] cmp r0, 0 beq _081092F0 b _08109306 .align 2, 0 _081092E4: .4byte 0x02024c08 _081092E8: .4byte 0x02024ca8 _081092EC: cmp r0, 0x1 beq _081092F6 _081092F0: adds r0, r2, 0x7 str r0, [r4] b _08109328 _081092F6: ldr r0, _08109320 lsls r1, r3, 3 subs r1, r3 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x6] cmp r0, 0 beq _08109324 _08109306: ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08109328 .align 2, 0 _08109320: .4byte 0x02024ca8 _08109324: adds r0, r2, 0x7 str r0, [r5] _08109328: pop {r4,r5} pop {r0} bx r0 thumb_func_end tai43_unk thumb_func_start sub_8109330 sub_8109330: @ 8109330 push {r4,lr} ldr r4, _08109344 ldr r3, [r4] ldrb r0, [r3, 0x1] cmp r0, 0 beq _08109348 cmp r0, 0x1 beq _08109370 b _081093AC .align 2, 0 _08109344: .4byte 0x02039238 _08109348: ldr r2, _08109364 ldr r0, _08109368 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _0810936C ldrh r0, [r0, 0x4] ldrh r1, [r1, 0x2] cmp r0, r1 beq _08109388 b _081093AC .align 2, 0 _08109364: .4byte 0x02024ca8 _08109368: .4byte 0x02024a60 _0810936C: .4byte 0x02016800 _08109370: ldr r2, _081093A0 ldr r0, _081093A4 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _081093A8 ldrh r0, [r0, 0x6] ldrh r1, [r1, 0x2] cmp r0, r1 bne _081093AC _08109388: ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _081093B0 .align 2, 0 _081093A0: .4byte 0x02024ca8 _081093A4: .4byte 0x02024a60 _081093A8: .4byte 0x02016800 _081093AC: adds r0, r3, 0x6 str r0, [r4] _081093B0: pop {r4} pop {r0} bx r0 thumb_func_end sub_8109330 thumb_func_start sub_81093B8 sub_81093B8: @ 81093B8 ldr r2, _081093C4 ldrb r1, [r2, 0x10] movs r0, 0xB orrs r0, r1 strb r0, [r2, 0x10] bx lr .align 2, 0 _081093C4: .4byte 0x02016800 thumb_func_end sub_81093B8 thumb_func_start sub_81093C8 sub_81093C8: @ 81093C8 push {r4,lr} ldr r0, _0810940C ldr r1, _08109410 adds r0, r1 ldrb r0, [r0] lsls r4, r0, 2 adds r4, r0 lsls r4, 24 lsrs r4, 24 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 24 lsrs r0, 24 cmp r0, r4 bcs _08109418 ldr r3, _08109414 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08109420 .align 2, 0 _0810940C: .4byte 0x02000000 _08109410: .4byte 0x00016088 _08109414: .4byte 0x02039238 _08109418: ldr r1, _08109428 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08109420: pop {r4} pop {r0} bx r0 .align 2, 0 _08109428: .4byte 0x02039238 thumb_func_end sub_81093C8 thumb_func_start sub_810942C sub_810942C: @ 810942C ldr r2, _08109438 ldrb r1, [r2, 0x10] movs r0, 0xD orrs r0, r1 strb r0, [r2, 0x10] bx lr .align 2, 0 _08109438: .4byte 0x02016800 thumb_func_end sub_810942C thumb_func_start dp15_get_held_item_x12__8 dp15_get_held_item_x12__8: @ 810943C push {r4,lr} ldr r0, _0810944C ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 bne _08109454 ldr r0, _08109450 b _08109456 .align 2, 0 _0810944C: .4byte 0x02039238 _08109450: .4byte 0x02024c07 _08109454: ldr r0, _0810947C _08109456: ldrb r4, [r0] adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08109488 adds r0, r4, 0 bl battle_get_per_side_status movs r1, 0x1 ands r1, r0 ldr r2, _08109480 ldr r3, _08109484 adds r0, r2, r3 adds r1, r0 ldrb r0, [r1] str r0, [r2, 0x8] b _0810949E .align 2, 0 _0810947C: .4byte 0x02024c08 _08109480: .4byte 0x02016800 _08109484: .4byte 0x00000222 _08109488: ldr r1, _081094AC movs r0, 0x58 muls r0, r4 adds r0, r1 ldrh r0, [r0, 0x2E] bl itemid_get_x12 ldr r1, _081094B0 lsls r0, 24 lsrs r0, 24 str r0, [r1, 0x8] _0810949E: ldr r1, _081094B4 ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _081094AC: .4byte 0x02024a80 _081094B0: .4byte 0x02016800 _081094B4: .4byte 0x02039238 thumb_func_end dp15_get_held_item_x12__8 thumb_func_start tai49_unk tai49_unk: @ 81094B8 push {lr} ldr r0, _081094C8 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 bne _081094D0 ldr r0, _081094CC b _081094D2 .align 2, 0 _081094C8: .4byte 0x02039238 _081094CC: .4byte 0x02024c07 _081094D0: ldr r0, _081094FC _081094D2: ldrb r1, [r0] ldr r2, _08109500 movs r0, 0x58 muls r1, r0 adds r0, r1, r2 ldrh r0, [r0] adds r2, 0x48 adds r1, r2 ldr r1, [r1] bl pokemon_species_get_gender_info ldr r1, _08109504 lsls r0, 24 lsrs r0, 24 str r0, [r1, 0x8] ldr r1, _08109508 ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r0} bx r0 .align 2, 0 _081094FC: .4byte 0x02024c08 _08109500: .4byte 0x02024a80 _08109504: .4byte 0x02016800 _08109508: .4byte 0x02039238 thumb_func_end tai49_unk thumb_func_start sub_810950C sub_810950C: @ 810950C push {r4,lr} ldr r0, _08109520 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _08109528 ldr r0, _08109524 b _0810952A .align 2, 0 _08109520: .4byte 0x02039238 _08109524: .4byte 0x02024c07 _08109528: ldr r0, _08109548 _0810952A: ldrb r3, [r0] ldr r2, _0810954C ldr r1, _08109550 lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x16] str r0, [r2, 0x8] ldr r0, [r4] adds r0, 0x2 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _08109548: .4byte 0x02024c08 _0810954C: .4byte 0x02016800 _08109550: .4byte 0x02024ca8 thumb_func_end sub_810950C thumb_func_start sub_8109554 sub_8109554: @ 8109554 push {r4,lr} ldr r0, _08109568 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _08109570 ldr r0, _0810956C b _08109572 .align 2, 0 _08109568: .4byte 0x02039238 _0810956C: .4byte 0x02024c07 _08109570: ldr r0, _08109590 _08109572: ldrb r3, [r0] ldr r2, _08109594 ldr r1, _08109598 lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x9] str r0, [r2, 0x8] ldr r0, [r4] adds r0, 0x2 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _08109590: .4byte 0x02024c08 _08109594: .4byte 0x02016800 _08109598: .4byte 0x02024ca8 thumb_func_end sub_8109554 thumb_func_start sub_810959C sub_810959C: @ 810959C ldr r2, _081095B4 ldr r0, _081095B8 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 str r0, [r2, 0x8] ldr r1, _081095BC ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _081095B4: .4byte 0x02016800 _081095B8: .4byte 0x020239f8 _081095BC: .4byte 0x02039238 thumb_func_end sub_810959C thumb_func_start sub_81095C0 sub_81095C0: @ 81095C0 push {lr} ldr r0, _081095D4 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r2, r0, 0 cmp r1, 0x1 bne _081095DC ldr r0, _081095D8 b _081095DE .align 2, 0 _081095D4: .4byte 0x02039238 _081095D8: .4byte 0x02024c07 _081095DC: ldr r0, _081095F8 _081095DE: ldrb r0, [r0] ldr r1, _081095FC lsls r0, 1 adds r0, r1 ldr r3, _08109600 adds r0, r3 ldrb r0, [r0] str r0, [r1, 0x8] ldr r0, [r2] adds r0, 0x2 str r0, [r2] pop {r0} bx r0 .align 2, 0 _081095F8: .4byte 0x02024c08 _081095FC: .4byte 0x02016800 _08109600: .4byte 0xfffff8cc thumb_func_end sub_81095C0 thumb_func_start sub_8109604 sub_8109604: @ 8109604 ldr r3, _08109620 ldr r2, _08109624 ldr r1, [r3, 0x8] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] str r0, [r3, 0x8] ldr r1, _08109628 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08109620: .4byte 0x02016800 _08109624: .4byte gBattleMoves _08109628: .4byte 0x02039238 thumb_func_end sub_8109604 thumb_func_start sub_810962C sub_810962C: @ 810962C ldr r3, _08109648 ldr r2, _0810964C ldr r1, [r3, 0x8] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] str r0, [r3, 0x8] ldr r1, _08109650 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08109648: .4byte 0x02016800 _0810964C: .4byte gBattleMoves _08109650: .4byte 0x02039238 thumb_func_end sub_810962C thumb_func_start sub_8109654 sub_8109654: @ 8109654 ldr r3, _08109670 ldr r2, _08109674 ldr r1, [r3, 0x8] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] str r0, [r3, 0x8] ldr r1, _08109678 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08109670: .4byte 0x02016800 _08109674: .4byte gBattleMoves _08109678: .4byte 0x02039238 thumb_func_end sub_8109654 thumb_func_start sub_810967C sub_810967C: @ 810967C push {r4,lr} ldr r0, _08109690 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _08109698 ldr r0, _08109694 b _0810969A .align 2, 0 _08109690: .4byte 0x02039238 _08109694: .4byte 0x02024c07 _08109698: ldr r0, _081096B8 _0810969A: ldrb r3, [r0] ldr r2, _081096BC ldr r1, _081096C0 lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x8] str r0, [r2, 0x8] ldr r0, [r4] adds r0, 0x2 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _081096B8: .4byte 0x02024c08 _081096BC: .4byte 0x02016800 _081096C0: .4byte 0x02024ca8 thumb_func_end sub_810967C thumb_func_start nullsub_27 nullsub_27: @ 81096C4 bx lr thumb_func_end nullsub_27 thumb_func_start nullsub_28 nullsub_28: @ 81096C8 bx lr thumb_func_end nullsub_28 thumb_func_start nullsub_29 nullsub_29: @ 81096CC bx lr thumb_func_end nullsub_29 thumb_func_start nullsub_30 nullsub_30: @ 81096D0 bx lr thumb_func_end nullsub_30 thumb_func_start nullsub_31 nullsub_31: @ 81096D4 bx lr thumb_func_end nullsub_31 thumb_func_start nullsub_32 nullsub_32: @ 81096D8 bx lr thumb_func_end nullsub_32 thumb_func_start sub_81096DC sub_81096DC: @ 81096DC push {r4,lr} ldr r4, _08109708 ldr r0, [r4] adds r0, 0x5 bl sub_81098C4 ldr r2, [r4] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _08109708: .4byte 0x02039238 thumb_func_end sub_81096DC thumb_func_start sub_810970C sub_810970C: @ 810970C ldr r3, _08109728 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] bx lr .align 2, 0 _08109728: .4byte 0x02039238 thumb_func_end sub_810970C thumb_func_start sub_810972C sub_810972C: @ 810972C push {lr} bl sub_8109908 lsls r0, 24 cmp r0, 0 bne _08109742 ldr r2, _08109748 ldrb r1, [r2, 0x10] movs r0, 0x1 orrs r0, r1 strb r0, [r2, 0x10] _08109742: pop {r0} bx r0 .align 2, 0 _08109748: .4byte 0x02016800 thumb_func_end sub_810972C thumb_func_start dp15_compare_attacker_defender_levels dp15_compare_attacker_defender_levels: @ 810974C push {r4,r5,lr} ldr r5, _08109764 ldr r4, [r5] ldrb r0, [r4, 0x1] cmp r0, 0x1 beq _081097A0 cmp r0, 0x1 bgt _08109768 cmp r0, 0 beq _0810976E b _0810981C .align 2, 0 _08109764: .4byte 0x02039238 _08109768: cmp r0, 0x2 beq _081097D0 b _0810981C _0810976E: ldr r3, _08109794 ldr r0, _08109798 ldrb r0, [r0] movs r2, 0x58 adds r1, r0, 0 muls r1, r2 adds r1, r3 adds r1, 0x2A ldr r0, _0810979C ldrb r0, [r0] muls r0, r2 adds r0, r3 adds r0, 0x2A ldrb r1, [r1] ldrb r0, [r0] cmp r1, r0 bhi _081097F2 b _08109818 .align 2, 0 _08109794: .4byte 0x02024a80 _08109798: .4byte 0x02024c07 _0810979C: .4byte 0x02024c08 _081097A0: ldr r3, _081097C4 ldr r0, _081097C8 ldrb r0, [r0] movs r2, 0x58 adds r1, r0, 0 muls r1, r2 adds r1, r3 adds r1, 0x2A ldr r0, _081097CC ldrb r0, [r0] muls r0, r2 adds r0, r3 adds r0, 0x2A ldrb r1, [r1] ldrb r0, [r0] cmp r1, r0 bcc _081097F2 b _08109818 .align 2, 0 _081097C4: .4byte 0x02024a80 _081097C8: .4byte 0x02024c07 _081097CC: .4byte 0x02024c08 _081097D0: ldr r3, _0810980C ldr r0, _08109810 ldrb r0, [r0] movs r2, 0x58 adds r1, r0, 0 muls r1, r2 adds r1, r3 adds r1, 0x2A ldr r0, _08109814 ldrb r0, [r0] muls r0, r2 adds r0, r3 adds r0, 0x2A ldrb r1, [r1] ldrb r0, [r0] cmp r1, r0 bne _08109818 _081097F2: ldrb r1, [r4, 0x2] ldrb r0, [r4, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r4, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r4, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r5] b _0810981C .align 2, 0 _0810980C: .4byte 0x02024a80 _08109810: .4byte 0x02024c07 _08109814: .4byte 0x02024c08 _08109818: adds r0, r4, 0x6 str r0, [r5] _0810981C: pop {r4,r5} pop {r0} bx r0 thumb_func_end dp15_compare_attacker_defender_levels thumb_func_start sub_8109824 sub_8109824: @ 8109824 push {lr} ldr r2, _08109858 ldr r0, _0810985C ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x13] lsls r0, 28 cmp r0, 0 beq _08109864 ldr r3, _08109860 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0810986C .align 2, 0 _08109858: .4byte 0x02024ca8 _0810985C: .4byte 0x02024c08 _08109860: .4byte 0x02039238 _08109864: ldr r1, _08109870 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0810986C: pop {r0} bx r0 .align 2, 0 _08109870: .4byte 0x02039238 thumb_func_end sub_8109824 thumb_func_start sub_8109874 sub_8109874: @ 8109874 push {lr} ldr r2, _081098A8 ldr r0, _081098AC ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x13] lsls r0, 28 cmp r0, 0 bne _081098B4 ldr r3, _081098B0 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081098BC .align 2, 0 _081098A8: .4byte 0x02024ca8 _081098AC: .4byte 0x02024c08 _081098B0: .4byte 0x02039238 _081098B4: ldr r1, _081098C0 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _081098BC: pop {r0} bx r0 .align 2, 0 _081098C0: .4byte 0x02039238 thumb_func_end sub_8109874 thumb_func_start sub_81098C4 sub_81098C4: @ 81098C4 push {r4,lr} ldr r4, _081098E0 adds r3, r4, 0 adds r3, 0x20 ldrb r1, [r3] adds r2, r1, 0x1 strb r2, [r3] lsls r1, 24 lsrs r1, 22 adds r1, r4 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _081098E0: .4byte 0x02016c00 thumb_func_end sub_81098C4 thumb_func_start unref_sub_81098E4 unref_sub_81098E4: @ 81098E4 ldr r3, _08109900 adds r2, r3, 0 adds r2, 0x20 ldrb r0, [r2] adds r1, r0, 0x1 strb r1, [r2] lsls r0, 24 lsrs r0, 22 adds r0, r3 ldr r1, _08109904 ldr r1, [r1] str r1, [r0] bx lr .align 2, 0 _08109900: .4byte 0x02016c00 _08109904: .4byte 0x02039238 thumb_func_end unref_sub_81098E4 thumb_func_start sub_8109908 sub_8109908: @ 8109908 push {lr} ldr r3, _0810991C adds r2, r3, 0 adds r2, 0x20 ldrb r0, [r2] cmp r0, 0 bne _08109920 movs r0, 0 b _08109932 .align 2, 0 _0810991C: .4byte 0x02016c00 _08109920: subs r0, 0x1 strb r0, [r2] ldr r1, _08109938 ldrb r0, [r2] lsls r0, 2 adds r0, r3 ldr r0, [r0] str r0, [r1] movs r0, 0x1 _08109932: pop {r1} bx r1 .align 2, 0 _08109938: .4byte 0x02039238 thumb_func_end sub_8109908 thumb_func_start sub_810993C sub_810993C: @ 810993C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 ldr r0, _081099C8 mov r9, r0 movs r2, 0 _0810994E: adds r1, r2, 0x1 lsls r0, r1, 24 lsrs r5, r0, 24 str r1, [sp, 0xC] cmp r5, 0x3 bhi _081099AC movs r1, 0x1 add r1, r9 mov r8, r1 adds r6, r1, r2 movs r0, 0xB mov r10, r0 mov r0, r10 muls r0, r2 adds r0, 0x5 mov r1, r9 adds r7, r1, r0 _08109970: ldrb r0, [r6] cmp r0, 0 bne _081099A2 adds r2, r0, 0 mov r0, r8 adds r1, r0, r5 ldrb r0, [r1] strb r0, [r6] strb r2, [r1] mov r0, sp adds r1, r7, 0 bl StringCopy mov r4, r10 muls r4, r5 adds r4, 0x5 add r4, r9 adds r0, r7, 0 adds r1, r4, 0 bl StringCopy adds r0, r4, 0 mov r1, sp bl StringCopy _081099A2: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _08109970 _081099AC: ldr r1, [sp, 0xC] lsls r0, r1, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _0810994E add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081099C8: .4byte 0x020284c8 thumb_func_end sub_810993C thumb_func_start sub_81099CC sub_81099CC: @ 81099CC push {r4-r6,lr} ldr r5, _08109A14 movs r1, 0 movs r0, 0x2 strb r0, [r5] adds r0, r5, 0 adds r0, 0x31 strb r1, [r0] movs r4, 0 ldr r6, _08109A18 _081099E0: movs r0, 0xB muls r0, r4 adds r0, 0x5 adds r0, r5, r0 lsls r1, r4, 2 adds r1, r6 ldr r1, [r1] bl StringCopy adds r1, r5, 0x1 adds r1, r4 ldr r0, _08109A1C adds r0, r4, r0 ldrb r0, [r0] strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081099E0 bl sub_810993C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08109A14: .4byte 0x020284c8 _08109A18: .4byte gUnknown_083F62D8 _08109A1C: .4byte gUnknown_083F62E8 thumb_func_end sub_81099CC thumb_func_start sub_8109A20 sub_8109A20: @ 8109A20 ldr r0, _08109A2C adds r0, 0x31 movs r1, 0 strb r1, [r0] bx lr .align 2, 0 _08109A2C: .4byte 0x020284c8 thumb_func_end sub_8109A20 thumb_func_start sub_8109A30 sub_8109A30: @ 8109A30 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r0, _08109A44 bl VarSet pop {r0} bx r0 .align 2, 0 _08109A44: .4byte 0x00004020 thumb_func_end sub_8109A30 thumb_func_start sub_8109A48 sub_8109A48: @ 8109A48 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r6, 0x1 movs r5, 0 ldr r0, _08109AB8 movs r4, 0 adds r7, r0, 0x1 adds r1, r7, 0 _08109A64: adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 beq _08109A72 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _08109A72: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _08109A64 lsls r3, r6, 25 movs r0, 0x80 lsls r0, 18 adds r3, r0 lsrs r3, 24 movs r0, 0 movs r1, 0x1 movs r2, 0xC bl DrawDefaultWindow movs r4, 0 mov r1, r9 lsls r1, 2 mov r8, r1 _08109A98: adds r1, r7, r4 ldrb r0, [r1] cmp r0, 0 beq _08109ADE cmp r0, 0x78 bls _08109AC0 lsls r2, r5, 25 movs r0, 0x80 lsls r0, 18 adds r2, r0 lsrs r2, 24 ldr r0, _08109ABC movs r1, 0x1 bl Print b _08109AD8 .align 2, 0 _08109AB8: .4byte 0x020284c8 _08109ABC: .4byte gUnknown_0840E678 _08109AC0: ldrb r0, [r1] lsls r0, 5 ldr r1, _08109B28 adds r0, r1 lsls r2, r5, 25 movs r1, 0x80 lsls r1, 18 adds r2, r1 lsrs r2, 24 movs r1, 0x1 bl Print _08109AD8: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _08109ADE: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _08109A98 ldr r0, _08109B2C lsls r2, r5, 25 movs r1, 0x80 lsls r1, 18 adds r2, r1 lsrs r2, 24 movs r1, 0x1 bl Print movs r0, 0 str r0, [sp] movs r0, 0xB str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x2 adds r3, r6, 0 bl InitMenu ldr r1, _08109B30 mov r0, r8 add r0, r9 lsls r0, 3 adds r0, r1 strh r5, [r0, 0xA] add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08109B28: .4byte gDecorations + 0x1 _08109B2C: .4byte gUnknown_0840E645 _08109B30: .4byte 0x03004b20 thumb_func_end sub_8109A48 thumb_func_start sub_8109B34 sub_8109B34: @ 8109B34 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r1, 24 cmp r1, 0x78 bls _08109B54 ldr r1, _08109B4C ldr r2, _08109B50 adds r0, r2, 0 strh r0, [r1] b _08109B58 .align 2, 0 _08109B4C: .4byte 0x0202e8cc _08109B50: .4byte 0x0000ffff _08109B54: ldr r0, _08109B78 strh r1, [r0] _08109B58: bl sub_8072DEC movs r0, 0 movs r1, 0x1 movs r2, 0xC movs r3, 0xC bl Reset adds r0, r4, 0 bl DestroyTask bl script_env_2_enable_and_set_ctx_running pop {r4} pop {r0} bx r0 .align 2, 0 _08109B78: .4byte 0x0202e8cc thumb_func_end sub_8109B34 thumb_func_start sub_8109B7C sub_8109B7C: @ 8109B7C push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 ldr r6, _08109BA4 ldr r0, _08109BA8 ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08109BAC movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 bl MoveMenuCursor b _08109C3E .align 2, 0 _08109BA4: .4byte 0x020284c8 _08109BA8: .4byte 0x03001770 _08109BAC: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08109BC2 movs r0, 0x5 bl audio_play movs r0, 0x1 bl MoveMenuCursor b _08109C3E _08109BC2: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08109C28 movs r0, 0x5 bl audio_play ldr r5, _08109BFC bl GetMenuCursorPos lsls r0, 24 lsrs r0, 24 strh r0, [r5] ldr r1, _08109C00 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0xA ldrsh r0, [r0, r1] ldrh r2, [r5] cmp r0, r2 bne _08109C04 adds r0, r4, 0 movs r1, 0 bl sub_8109B34 b _08109C3E .align 2, 0 _08109BFC: .4byte 0x0202e8ce _08109C00: .4byte 0x03004b20 _08109C04: ldr r0, _08109C24 movs r1, 0xB muls r1, r2 adds r1, 0x5 adds r1, r6 bl StringCopy adds r0, r6, 0x1 ldrh r5, [r5] adds r0, r5 ldrb r1, [r0] adds r0, r4, 0 bl sub_8109B34 b _08109C3E .align 2, 0 _08109C24: .4byte 0x020231cc _08109C28: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08109C3E movs r0, 0x5 bl audio_play adds r0, r5, 0 movs r1, 0 bl sub_8109B34 _08109C3E: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8109B7C thumb_func_start sub_8109C44 sub_8109C44: @ 8109C44 ldr r0, _08109C50 ldr r1, _08109C54 adds r0, 0x31 ldrb r0, [r0] strh r0, [r1] bx lr .align 2, 0 _08109C50: .4byte 0x020284c8 _08109C54: .4byte 0x0202e8dc thumb_func_end sub_8109C44 thumb_func_start sub_8109C58 sub_8109C58: @ 8109C58 push {r4,r5,lr} movs r4, 0 ldr r5, _08109C70 _08109C5E: adds r0, r4, 0 bl sub_8134194 lsls r0, 24 cmp r0, 0 beq _08109C74 movs r0, 0 strh r0, [r5] b _08109C84 .align 2, 0 _08109C70: .4byte 0x0202e8dc _08109C74: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _08109C5E ldr r1, _08109C8C movs r0, 0x1 strh r0, [r1] _08109C84: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08109C8C: .4byte 0x0202e8dc thumb_func_end sub_8109C58 thumb_func_start sub_8109C90 sub_8109C90: @ 8109C90 push {r4-r6,lr} ldr r6, _08109CDC movs r0, 0 strh r0, [r6] ldr r4, _08109CE0 ldr r5, _08109CE4 ldrh r0, [r5] lsls r0, 5 adds r2, r0, r4 ldr r0, _08109CE8 ldrh r0, [r0] lsls r0, 5 adds r0, r4 ldrb r1, [r2, 0x13] ldrb r0, [r0, 0x13] cmp r1, r0 beq _08109CD6 adds r0, r1, 0 bl sub_8133F9C lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _08109CD6 ldr r0, _08109CEC ldrh r1, [r5] lsls r1, 5 adds r1, r4 ldrb r1, [r1, 0x13] bl sub_80FE7D4 movs r0, 0x1 strh r0, [r6] _08109CD6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08109CDC: .4byte 0x0202e8dc _08109CE0: .4byte gDecorations _08109CE4: .4byte 0x0202e8cc _08109CE8: .4byte 0x0202e8d0 _08109CEC: .4byte 0x020232cc thumb_func_end sub_8109C90 thumb_func_start sub_8109CF0 sub_8109CF0: @ 8109CF0 push {lr} ldr r0, _08109D00 movs r1, 0 bl CreateTask pop {r0} bx r0 .align 2, 0 _08109D00: .4byte sub_80FE7A8 thumb_func_end sub_8109CF0 thumb_func_start sub_8109D04 sub_8109D04: @ 8109D04 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset movs r0, 0 bl SetBgTilemapBuffer movs r0, 0x1 bl SetBgTilemapBuffer ldr r0, _08109D6C movs r1, 0x8 bl sub_80F9520 bl BuyMenuFreeMemory bl sub_80FEFA4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08109D8C ldr r5, _08109D70 ldr r0, _08109D74 ldrb r1, [r0] ldr r0, _08109D78 ldr r0, [r0] adds r0, r1 ldrb r0, [r0] strh r0, [r5] ldr r0, _08109D7C ldr r1, _08109D80 ldrh r1, [r1] lsls r1, 5 ldr r4, _08109D84 adds r1, r4 bl StringCopy ldr r0, _08109D88 ldrh r1, [r5] lsls r1, 5 adds r1, r4 bl StringCopy b _08109D94 .align 2, 0 _08109D6C: .4byte 0x020388f7 _08109D70: .4byte 0x0202e8d0 _08109D74: .4byte 0x020388f5 _08109D78: .4byte 0x020388d0 _08109D7C: .4byte 0x020233cc _08109D80: .4byte 0x0202e8cc _08109D84: .4byte gDecorations + 0x1 _08109D88: .4byte 0x020232cc _08109D8C: ldr r1, _08109DA4 ldr r2, _08109DA8 adds r0, r2, 0 strh r0, [r1] _08109D94: adds r0, r6, 0 bl DestroyTask bl script_env_2_enable_and_set_ctx_running pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08109DA4: .4byte 0x0202e8d0 _08109DA8: .4byte 0x0000ffff thumb_func_end sub_8109D04 thumb_func_start sub_8109DAC sub_8109DAC: @ 8109DAC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset ldr r1, _08109DDC movs r0, 0 strh r0, [r1] adds r0, r4, 0 bl DestroyTask bl script_env_2_enable_and_set_ctx_running pop {r4} pop {r0} bx r0 .align 2, 0 _08109DDC: .4byte 0x0202e8d0 thumb_func_end sub_8109DAC thumb_func_start sub_8109DE0 sub_8109DE0: @ 8109DE0 push {r4-r6,lr} ldr r4, _08109E20 ldr r6, _08109E24 ldrb r0, [r6] bl sub_81340A8 ldr r0, _08109E28 ldrb r0, [r0] bl IsThereStorageSpaceForDecoration ldr r5, _08109E2C ldrh r1, [r5] movs r0, 0xB muls r0, r1 adds r0, 0x5 adds r0, r4 ldr r1, _08109E30 bl StringCopy adds r0, r4, 0x1 ldrh r5, [r5] adds r0, r5 ldrh r1, [r6] strb r1, [r0] bl sub_810993C adds r4, 0x31 movs r0, 0x1 strb r0, [r4] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08109E20: .4byte 0x020284c8 _08109E24: .4byte 0x0202e8d0 _08109E28: .4byte 0x0202e8cc _08109E2C: .4byte 0x0202e8ce _08109E30: .4byte gSaveBlock2 thumb_func_end sub_8109DE0 thumb_func_start sub_8109E34 sub_8109E34: @ 8109E34 push {lr} ldr r0, _08109E4C movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 bl sub_8109A48 pop {r0} bx r0 .align 2, 0 _08109E4C: .4byte sub_8109B7C thumb_func_end sub_8109E34 thumb_func_start sub_8109E50 sub_8109E50: @ 8109E50 push {lr} lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x3 bls _08109E5C movs r1, 0 _08109E5C: ldr r0, _08109E68 lsls r1, 1 adds r1, r0 ldrh r0, [r1] pop {r1} bx r1 .align 2, 0 _08109E68: .4byte gUnknown_083F76C4 thumb_func_end sub_8109E50 thumb_func_start sub_8109E6C sub_8109E6C: @ 8109E6C push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8109E6C thumb_func_start sub_8109E80 sub_8109E80: @ 8109E80 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0xC movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 19 mov r10, r0 movs r1, 0 strh r1, [r0] ldr r6, _0810A08C strh r1, [r6] ldr r3, _0810A090 mov r8, r3 strh r1, [r3] adds r0, 0xA strh r1, [r0] ldr r5, _0810A094 strh r1, [r5] adds r0, 0x12 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] add r0, sp, 0x4 strh r1, [r0] ldr r2, _0810A098 str r0, [r2] movs r1, 0xC0 lsls r1, 19 str r1, [r2, 0x4] ldr r0, _0810A09C str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r0, 0 mov r9, r0 str r0, [sp, 0x8] add r0, sp, 0x8 str r0, [r2] movs r0, 0xE0 lsls r0, 19 str r0, [r2, 0x4] ldr r0, _0810A0A0 str r0, [r2, 0x8] ldr r0, [r2, 0x8] add r0, sp, 0x4 mov r3, r9 strh r3, [r0] str r0, [r2] movs r0, 0xA0 lsls r0, 19 str r0, [r2, 0x4] ldr r0, _0810A0A4 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _0810A0A8 bl LZ77UnCompVram ldr r0, _0810A0AC ldr r1, _0810A0B0 bl LZ77UnCompVram ldr r0, _0810A0B4 ldr r1, _0810A0B8 bl LZ77UnCompVram bl remove_some_task bl ResetTasks bl ResetSpriteData bl ResetPaletteFade bl FreeAllSpritePalettes ldr r0, _0810A0BC movs r1, 0 movs r2, 0x40 bl LoadPalette ldr r0, _0810A0C0 bl LoadCompressedObjectPic ldr r0, _0810A0C4 bl LoadCompressedObjectPic ldr r0, _0810A0C8 bl LoadSpritePalettes ldr r0, _0810A0CC bl SetUpWindowConfig ldr r0, _0810A0D0 bl sub_8071C4C movs r0, 0x1 negs r0, r0 mov r1, r9 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r3, _0810A0D4 ldrh r2, [r3] mov r0, r9 strh r0, [r3] ldr r4, _0810A0D8 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _0810A0DC ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _0810A0E0 bl SetVBlankCallback ldr r0, _0810A0E4 bl SetMainCallback2 ldr r1, _0810A0E8 movs r0, 0x3F strh r0, [r1] adds r1, 0x2 movs r0, 0x1F strh r0, [r1] ldr r0, _0810A0EC mov r1, r9 strh r1, [r0] adds r0, 0x4 strh r1, [r0] ldr r1, _0810A0F0 movs r0, 0xFE strh r0, [r1] ldr r0, _0810A0F4 mov r3, r9 strh r3, [r0] adds r1, 0x4 movs r0, 0x7 strh r0, [r1] ldr r1, _0810A0F8 adds r0, r1, 0 strh r0, [r6] ldr r3, _0810A0FC adds r0, r3, 0 mov r1, r8 strh r0, [r1] ldr r3, _0810A100 adds r0, r3, 0 strh r0, [r5] movs r1, 0xF5 lsls r1, 6 adds r0, r1, 0 mov r3, r10 strh r0, [r3] ldr r0, _0810A104 movs r1, 0 bl CreateTask adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _0810A108 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x1 mov r10, r1 mov r3, r10 strh r3, [r0, 0x8] ldr r0, _0810A10C movs r1, 0x78 movs r2, 0x38 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _0810A110 mov r8, r1 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 strh r4, [r1, 0x2E] ldr r6, _0810A114 ldr r5, _0810A118 ldrb r1, [r5] ldrb r2, [r5, 0x1] adds r0, r6, 0 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 strh r4, [r1, 0x2E] mov r3, r9 strh r3, [r1, 0x30] ldrb r1, [r5, 0x2] ldrb r2, [r5, 0x3] adds r0, r6, 0 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 strh r4, [r1, 0x2E] mov r0, r10 strh r0, [r1, 0x30] ldrb r1, [r5, 0x4] ldrb r2, [r5, 0x5] adds r0, r6, 0 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 strh r4, [r1, 0x2E] movs r0, 0x2 strh r0, [r1, 0x30] add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810A08C: .4byte REG_BG3CNT _0810A090: .4byte REG_BG2CNT _0810A094: .4byte REG_BG0CNT _0810A098: .4byte 0x040000d4 _0810A09C: .4byte 0x8100c000 _0810A0A0: .4byte 0x85000100 _0810A0A4: .4byte 0x81000200 _0810A0A8: .4byte gUnknown_083F66F0 _0810A0AC: .4byte gUnknown_083F636C _0810A0B0: .4byte 0x06003000 _0810A0B4: .4byte gUnknown_083F64F8 _0810A0B8: .4byte 0x06003800 _0810A0BC: .4byte gUnknown_083F62EC _0810A0C0: .4byte gUnknown_083F7794 _0810A0C4: .4byte gUnknown_083F77A4 _0810A0C8: .4byte gUnknown_083F77B4 _0810A0CC: .4byte gWindowConfig_81E6C3C _0810A0D0: .4byte gWindowConfig_81E6CE4 _0810A0D4: .4byte 0x04000208 _0810A0D8: .4byte 0x04000200 _0810A0DC: .4byte REG_DISPSTAT _0810A0E0: .4byte sub_8109E6C _0810A0E4: .4byte sub_810A11C _0810A0E8: .4byte REG_WININ _0810A0EC: .4byte REG_WIN0H _0810A0F0: .4byte REG_BLDCNT _0810A0F4: .4byte REG_BLDALPHA _0810A0F8: .4byte 0x00000703 _0810A0FC: .4byte 0x00000602 _0810A100: .4byte 0x00001f08 _0810A104: .4byte sub_810A134 _0810A108: .4byte 0x03004b20 _0810A10C: .4byte gSpriteTemplate_83F77CC _0810A110: .4byte 0x02020004 _0810A114: .4byte gSpriteTemplate_83F77E4 _0810A118: .4byte gUnknown_083F76B8 thumb_func_end sub_8109E80 thumb_func_start sub_810A11C sub_810A11C: @ 810A11C push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_810A11C thumb_func_start sub_810A134 sub_810A134: @ 810A134 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0810A16C lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldrb r1, [r4, 0x8] movs r0, 0xFF bl sub_810A42C movs r0, 0x2 movs r1, 0xE movs r2, 0x1B movs r3, 0x13 bl DrawDefaultWindow ldr r0, _0810A170 movs r1, 0x3 movs r2, 0xF bl Print ldr r0, _0810A174 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0810A16C: .4byte 0x03004b20 _0810A170: .4byte gUnknown_0840E568 _0810A174: .4byte sub_810A178 thumb_func_end sub_810A134 thumb_func_start sub_810A178 sub_810A178: @ 810A178 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r2, _0810A218 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r6, r0, r2 ldrh r7, [r6, 0x8] ldrb r4, [r6, 0x8] ldr r1, _0810A21C ldrh r3, [r1, 0x2E] movs r0, 0x1 ands r0, r3 cmp r0, 0 beq _0810A240 ldr r1, _0810A220 lsls r4, 1 adds r0, r4, r1 ldrb r0, [r0] adds r1, 0x1 adds r1, r4, r1 ldrb r1, [r1] adds r2, r0, 0 adds r2, 0xD lsls r2, 24 lsrs r2, 24 adds r3, r1, 0x3 lsls r3, 24 lsrs r3, 24 bl Reset ldr r0, _0810A224 movs r1, 0 strh r1, [r0] adds r0, 0x4 strh r1, [r0] ldr r0, _0810A228 ldr r1, _0810A22C adds r2, r4, r1 ldrb r5, [r2] adds r1, 0x1 adds r4, r1 ldrb r4, [r4] adds r1, r5, 0 adds r2, r4, 0 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0xC] ldrh r0, [r6, 0x8] bl sub_8109E50 lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 adds r2, r4, 0 bl sub_810A580 lsls r0, 24 lsrs r0, 24 ldr r4, _0810A230 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r2, r4, 0 adds r2, 0x10 adds r2, r1, r2 ldr r3, _0810A234 str r3, [r2] adds r4, 0x1C adds r1, r4 ldr r2, _0810A238 str r2, [r1] strh r0, [r6, 0xA] ldr r0, _0810A23C str r0, [r6] b _0810A282 .align 2, 0 _0810A218: .4byte 0x03004b20 _0810A21C: .4byte 0x03001770 _0810A220: .4byte gUnknown_083F76BE _0810A224: .4byte REG_WIN0H _0810A228: .4byte gSpriteTemplate_83F77FC _0810A22C: .4byte gUnknown_083F76B8 _0810A230: .4byte 0x02020004 _0810A234: .4byte gUnknown_083F778C _0810A238: .4byte sub_810A6C4 _0810A23C: .4byte sub_810A288 _0810A240: movs r0, 0x20 ands r0, r3 cmp r0, 0 beq _0810A25C cmp r4, 0 beq _0810A25C subs r1, r7, 0x1 strh r1, [r6, 0x8] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_810A42C b _0810A282 _0810A25C: ldrh r1, [r1, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0810A282 cmp r4, 0x1 bhi _0810A282 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r2 ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_810A42C _0810A282: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_810A178 thumb_func_start sub_810A288 sub_810A288: @ 810A288 push {lr} lsls r0, 24 lsrs r0, 24 ldr r3, _0810A2CC ldr r2, _0810A2D0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r2, r1, r2 movs r0, 0xC ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r3 adds r0, r1, 0 adds r0, 0x3F ldrb r0, [r0] lsls r0, 26 cmp r0, 0 bge _0810A2C6 movs r3, 0x20 ldrsh r0, [r1, r3] cmp r0, 0x78 bne _0810A2C6 movs r3, 0x22 ldrsh r0, [r1, r3] cmp r0, 0x40 bne _0810A2C6 ldr r0, _0810A2D4 str r0, [r2] _0810A2C6: pop {r0} bx r0 .align 2, 0 _0810A2CC: .4byte 0x02020004 _0810A2D0: .4byte 0x03004b20 _0810A2D4: .4byte sub_810A2D8 thumb_func_end sub_810A288 thumb_func_start sub_810A2D8 sub_810A2D8: @ 810A2D8 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0810A324 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldrh r0, [r4, 0x8] bl sub_8109E50 lsls r0, 16 lsrs r0, 16 movs r1, 0 bl cry_related movs r0, 0x2 movs r1, 0xE movs r2, 0x1B movs r3, 0x13 bl DrawDefaultWindow ldr r0, _0810A328 movs r1, 0x3 movs r2, 0xF bl Print movs r0, 0x15 movs r1, 0x7 movs r2, 0x1 bl sub_8072974 ldr r0, _0810A32C str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0810A324: .4byte 0x03004b20 _0810A328: .4byte gUnknown_0840E5AB _0810A32C: .4byte sub_810A330 thumb_func_end sub_810A2D8 thumb_func_start sub_810A330 sub_810A330: @ 810A330 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 bl FillWindowPixelBuffer lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _0810A356 cmp r1, 0 bgt _0810A350 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0810A37C b _0810A3E2 _0810A350: cmp r1, 0x1 beq _0810A37C b _0810A3E2 _0810A356: ldr r2, _0810A370 ldr r1, _0810A374 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x8] strh r0, [r2] ldr r0, _0810A378 ldr r0, [r0, 0x8] bl SetMainCallback2 b _0810A3E2 .align 2, 0 _0810A370: .4byte 0x0202e8dc _0810A374: .4byte 0x03004b20 _0810A378: .4byte 0x03001770 _0810A37C: movs r0, 0x5 bl audio_play movs r0, 0x15 movs r1, 0x7 movs r2, 0x1B movs r3, 0xC bl Reset ldr r0, _0810A3E8 lsls r5, r4, 2 adds r5, r4 lsls r5, 3 adds r5, r0 ldrb r0, [r5, 0xA] ldr r6, _0810A3EC lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r4, r6 ldrb r0, [r4, 0x5] lsrs r0, 4 bl GetSpritePaletteTagByPaletteNum lsls r0, 16 lsrs r0, 16 bl FreeSpritePaletteByTag ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl DestroySprite ldrb r0, [r5, 0xC] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r4, r6 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl DestroySprite ldr r0, _0810A3F0 str r0, [r5] _0810A3E2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810A3E8: .4byte 0x03004b20 _0810A3EC: .4byte 0x02020004 _0810A3F0: .4byte sub_810A3F4 thumb_func_end sub_810A330 thumb_func_start sub_810A3F4 sub_810A3F4: @ 810A3F4 lsls r0, 24 lsrs r0, 24 ldr r2, _0810A408 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _0810A40C str r0, [r1] bx lr .align 2, 0 _0810A408: .4byte 0x03004b20 _0810A40C: .4byte sub_810A134 thumb_func_end sub_810A3F4 thumb_func_start sub_810A410 sub_810A410: @ 810A410 push {r4,lr} movs r4, 0xFC strb r4, [r0] adds r0, 0x1 movs r4, 0x4 strb r4, [r0] adds r0, 0x1 strb r2, [r0] adds r0, 0x1 strb r1, [r0] strb r3, [r0, 0x1] pop {r4} pop {r0} bx r0 thumb_func_end sub_810A410 thumb_func_start sub_810A42C sub_810A42C: @ 810A42C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x48 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r6, r1, 24 cmp r0, 0xFF beq _0810A46A ldr r1, _0810A568 lsls r2, r0, 1 adds r0, r2, r1 ldrb r0, [r0] adds r1, 0x1 adds r2, r1 ldrb r1, [r2] adds r2, r0, 0 adds r2, 0xD lsls r2, 24 lsrs r2, 24 adds r3, r1, 0x3 lsls r3, 24 lsrs r3, 24 bl Reset ldr r0, _0810A56C movs r1, 0 strh r1, [r0] adds r0, 0x4 strh r1, [r0] _0810A46A: adds r0, r6, 0 bl sub_8109E50 lsls r0, 16 lsrs r7, r0, 16 adds r0, r7, 0 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 bl sub_8090D3C adds r5, r0, 0 mov r0, sp movs r1, 0 movs r2, 0xF movs r3, 0x8 bl sub_810A410 movs r4, 0x5 mov r2, sp adds r2, 0x5 movs r0, 0xFC strb r0, [r2] mov r1, sp adds r1, 0x6 movs r0, 0x11 strb r0, [r1] mov r0, sp adds r0, 0x7 strb r4, [r0] movs r4, 0x8 movs r3, 0 ldrb r0, [r5] mov r8, r2 lsls r6, 1 cmp r0, 0xFF beq _0810A4D8 _0810A4B6: mov r0, sp adds r1, r0, r4 adds r0, r5, r3 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r5, r3 ldrb r0, [r0] cmp r0, 0xFF beq _0810A4D8 cmp r3, 0xA bls _0810A4B6 _0810A4D8: adds r1, r4, 0 adds r0, r1, 0x1 lsls r0, 24 lsrs r4, r0, 24 add r1, sp movs r0, 0 strb r0, [r1] mov r1, sp adds r0, r1, r4 ldr r1, _0810A570 bl StringCopy ldr r0, _0810A568 adds r1, r6, r0 ldrb r4, [r1] adds r0, 0x1 adds r0, r6, r0 ldrb r5, [r0] mov r0, sp adds r1, r4, 0 adds r2, r5, 0 bl Print mov r0, sp movs r1, 0 movs r2, 0xF movs r3, 0x8 bl sub_810A410 movs r0, 0xB adds r1, r7, 0 muls r1, r0 ldr r0, _0810A574 adds r1, r0 mov r0, r8 movs r2, 0x6B movs r3, 0x1 bl sub_8072C74 adds r2, r5, 0x2 lsls r2, 24 lsrs r2, 24 mov r0, sp adds r1, r4, 0 bl Print lsls r0, r4, 3 adds r0, 0x4 lsls r0, 24 adds r4, 0xD lsls r4, 3 adds r4, 0x4 lsls r4, 24 lsrs r4, 24 lsls r1, r5, 27 adds r5, 0x4 lsls r5, 27 lsrs r5, 24 ldr r2, _0810A56C lsrs r0, 16 orrs r0, r4 strh r0, [r2] ldr r0, _0810A578 lsrs r1, 16 orrs r1, r5 strh r1, [r0] add sp, 0x48 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810A568: .4byte gUnknown_083F76BE _0810A56C: .4byte REG_WIN0H _0810A570: .4byte gUnknown_0840E5CD _0810A574: .4byte gSpeciesNames _0810A578: .4byte REG_WIN0V thumb_func_end sub_810A42C thumb_func_start nullsub_72 nullsub_72: @ 810A57C bx lr thumb_func_end nullsub_72 thumb_func_start sub_810A580 sub_810A580: @ 810A580 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 adds r5, r0, 0 mov r8, r1 mov r9, r2 lsls r5, 16 lsrs r5, 16 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r6, r5, 3 ldr r0, _0810A610 adds r0, r6, r0 ldr r1, _0810A614 lsls r2, r5, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] ldr r4, _0810A618 ldr r3, [r4] ldr r4, [r4, 0x4] str r4, [sp] str r5, [sp, 0x4] bl DecompressPicFromTable_2 ldr r0, _0810A61C adds r6, r0 adds r0, r6, 0 bl LoadCompressedObjectPalette adds r0, r5, 0 movs r1, 0x1 bl gpu_pal_obj_decompress_and_apply ldr r0, _0810A620 mov r1, r8 mov r2, r9 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r4, _0810A624 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r1, r4, 0 adds r1, 0x1C adds r1, r2, r1 ldr r3, _0810A628 str r3, [r1] adds r2, r4 ldrb r3, [r2, 0x5] movs r1, 0xD negs r1, r1 ands r1, r3 strb r1, [r2, 0x5] add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0810A610: .4byte gMonFrontPicTable _0810A614: .4byte gMonFrontPicCoords _0810A618: .4byte gUnknown_081FAF4C _0810A61C: .4byte gMonPaletteTable _0810A620: .4byte 0x02024e8c _0810A624: .4byte 0x02020004 _0810A628: .4byte nullsub_72 thumb_func_end sub_810A580 thumb_func_start sub_810A62C sub_810A62C: @ 810A62C push {r4,lr} adds r4, r0, 0 ldr r2, _0810A684 ldr r3, _0810A688 movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r3 movs r1, 0x8 ldrsh r0, [r0, r1] lsls r0, 1 adds r0, r2 ldrb r0, [r0] strh r0, [r4, 0x20] movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r3 movs r1, 0x8 ldrsh r0, [r0, r1] lsls r0, 1 adds r2, 0x1 adds r0, r2 ldrb r0, [r0] strh r0, [r4, 0x22] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x8 bl sine strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 adds r0, 0x4 strh r0, [r4, 0x30] pop {r4} pop {r0} bx r0 .align 2, 0 _0810A684: .4byte gUnknown_083F76E4 _0810A688: .4byte 0x03004b20 thumb_func_end sub_810A62C thumb_func_start sub_810A68C sub_810A68C: @ 810A68C push {lr} adds r3, r0, 0 ldr r2, _0810A6B4 movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] movs r2, 0x30 ldrsh r0, [r3, r2] cmp r1, r0 bne _0810A6B8 adds r0, r3, 0 movs r1, 0x1 bl StartSpriteAnimIfDifferent b _0810A6C0 .align 2, 0 _0810A6B4: .4byte 0x03004b20 _0810A6B8: adds r0, r3, 0 movs r1, 0 bl StartSpriteAnimIfDifferent _0810A6C0: pop {r0} bx r0 thumb_func_end sub_810A68C thumb_func_start sub_810A6C4 sub_810A6C4: @ 810A6C4 push {lr} adds r1, r0, 0 ldrh r2, [r1, 0x20] movs r3, 0x20 ldrsh r0, [r1, r3] cmp r0, 0x78 ble _0810A6D6 subs r0, r2, 0x4 strh r0, [r1, 0x20] _0810A6D6: ldrh r2, [r1, 0x20] movs r3, 0x20 ldrsh r0, [r1, r3] cmp r0, 0x77 bgt _0810A6E4 adds r0, r2, 0x4 strh r0, [r1, 0x20] _0810A6E4: ldrh r2, [r1, 0x22] movs r3, 0x22 ldrsh r0, [r1, r3] cmp r0, 0x40 ble _0810A6F2 subs r0, r2, 0x2 strh r0, [r1, 0x22] _0810A6F2: ldrh r2, [r1, 0x22] movs r3, 0x22 ldrsh r0, [r1, r3] cmp r0, 0x3F bgt _0810A700 adds r0, r2, 0x2 strh r0, [r1, 0x22] _0810A700: pop {r0} bx r0 thumb_func_end sub_810A6C4 thumb_func_start sub_810A704 sub_810A704: @ 810A704 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_810A704 thumb_func_start LoadWallClockGraphics LoadWallClockGraphics: @ 810A718 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 19 movs r1, 0 strh r1, [r0] adds r0, 0xE strh r1, [r0] subs r0, 0x2 strh r1, [r0] subs r0, 0x2 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x14 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 add r0, sp, 0x4 mov r8, r0 mov r2, sp movs r6, 0 ldr r1, _0810A7F8 movs r5, 0x80 lsls r5, 5 ldr r7, _0810A7FC movs r0, 0x81 lsls r0, 24 mov r12, r0 _0810A77C: strh r6, [r2] mov r0, sp str r0, [r1] str r3, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r5 subs r4, r5 cmp r4, r5 bhi _0810A77C strh r6, [r2] mov r2, sp str r2, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0xE0 lsls r0, 19 movs r3, 0x80 lsls r3, 3 movs r4, 0 str r4, [sp, 0x4] ldr r2, _0810A7F8 mov r1, r8 str r1, [r2] str r0, [r2, 0x4] lsrs r0, r3, 2 movs r1, 0x85 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xA0 lsls r1, 19 mov r0, sp strh r4, [r0] str r0, [r2] str r1, [r2, 0x4] lsrs r3, 1 movs r0, 0x81 lsls r0, 24 orrs r3, r0 str r3, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _0810A800 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _0810A804 ldrh r0, [r0] cmp r0, 0 bne _0810A80C ldr r0, _0810A808 movs r1, 0 movs r2, 0x20 bl LoadPalette b _0810A816 .align 2, 0 _0810A7F8: .4byte 0x040000d4 _0810A7FC: .4byte 0x81000800 _0810A800: .4byte gUnknown_08E8F1B8 _0810A804: .4byte 0x0202e8cc _0810A808: .4byte gUnknown_08E8F804 _0810A80C: ldr r0, _0810A850 movs r1, 0 movs r2, 0x20 bl LoadPalette _0810A816: bl remove_some_task bl ResetTasks bl ResetSpriteData bl ResetPaletteFade bl FreeAllSpritePalettes ldr r0, _0810A854 bl LoadCompressedObjectPic ldr r0, _0810A858 bl LoadSpritePalettes ldr r0, _0810A85C bl SetUpWindowConfig ldr r0, _0810A860 bl sub_8071C4C add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810A850: .4byte gUnknown_08E8F824 _0810A854: .4byte gUnknown_083F7A90 _0810A858: .4byte gUnknown_083F7AA0 _0810A85C: .4byte gWindowConfig_81E6C3C _0810A860: .4byte gWindowConfig_81E6CE4 thumb_func_end LoadWallClockGraphics thumb_func_start sub_810A864 sub_810A864: @ 810A864 push {r4,r5,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 movs r5, 0 str r5, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r3, _0810A8D0 ldrh r2, [r3] strh r5, [r3] ldr r4, _0810A8D4 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _0810A8D8 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _0810A8DC bl SetVBlankCallback ldr r0, _0810A8E0 bl SetMainCallback2 ldr r0, _0810A8E4 strh r5, [r0] adds r0, 0x2 strh r5, [r0] adds r0, 0x2 strh r5, [r0] ldr r1, _0810A8E8 ldr r2, _0810A8EC adds r0, r2, 0 strh r0, [r1] subs r1, 0x6 ldr r2, _0810A8F0 adds r0, r2, 0 strh r0, [r1] subs r1, 0x8 movs r2, 0xCA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810A8D0: .4byte 0x04000208 _0810A8D4: .4byte 0x04000200 _0810A8D8: .4byte REG_DISPSTAT _0810A8DC: .4byte sub_810A704 _0810A8E0: .4byte sub_810AB3C _0810A8E4: .4byte REG_BLDCNT _0810A8E8: .4byte REG_BG3CNT _0810A8EC: .4byte 0x00000701 _0810A8F0: .4byte 0x00001f08 thumb_func_end sub_810A864 thumb_func_start Cb2_StartWallClock Cb2_StartWallClock: @ 810A8F4 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} bl LoadWallClockGraphics ldr r0, _0810A9F0 ldr r1, _0810A9F4 bl LZ77UnCompVram ldr r0, _0810A9F8 movs r1, 0 bl CreateTask adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldr r1, _0810A9FC lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 movs r2, 0 movs r1, 0xA strh r1, [r0, 0xC] strh r2, [r0, 0xE] strh r2, [r0, 0x10] strh r2, [r0, 0x12] strh r2, [r0, 0x14] strh r2, [r0, 0x8] movs r1, 0x96 lsls r1, 1 strh r1, [r0, 0xA] ldr r0, _0810AA00 movs r1, 0x78 movs r2, 0x50 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _0810AA04 mov r8, r1 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 strh r6, [r1, 0x2E] ldrb r2, [r1, 0x1] movs r5, 0x4 negs r5, r5 adds r0, r5, 0 ands r0, r2 movs r2, 0x1 mov r9, r2 mov r2, r9 orrs r0, r2 strb r0, [r1, 0x1] ldrb r2, [r1, 0x3] movs r4, 0x3F negs r4, r4 adds r0, r4, 0 ands r0, r2 strb r0, [r1, 0x3] ldr r0, _0810AA08 movs r1, 0x78 movs r2, 0x50 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 strh r6, [r1, 0x2E] ldrb r0, [r1, 0x1] ands r5, r0 mov r0, r9 orrs r5, r0 strb r5, [r1, 0x1] ldrb r0, [r1, 0x3] ands r4, r0 movs r0, 0x2 orrs r4, r0 strb r4, [r1, 0x3] ldr r0, _0810AA0C movs r1, 0x78 movs r2, 0x50 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 strh r6, [r1, 0x2E] movs r0, 0x2D strh r0, [r1, 0x30] ldr r0, _0810AA10 movs r1, 0x78 movs r2, 0x50 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 strh r6, [r1, 0x2E] movs r0, 0x5A strh r0, [r1, 0x30] bl sub_810A864 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810A9F0: .4byte gUnknown_08E954B0 _0810A9F4: .4byte 0x06003800 _0810A9F8: .4byte sub_810AB54 _0810A9FC: .4byte 0x03004b20 _0810AA00: .4byte gSpriteTemplate_83F7AD8 _0810AA04: .4byte 0x02020004 _0810AA08: .4byte gSpriteTemplate_83F7AF0 _0810AA0C: .4byte gSpriteTemplate_83F7B28 _0810AA10: .4byte gSpriteTemplate_83F7B40 thumb_func_end Cb2_StartWallClock thumb_func_start Cb2_ViewWallClock Cb2_ViewWallClock: @ 810AA14 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} bl LoadWallClockGraphics ldr r0, _0810AA58 ldr r1, _0810AA5C bl LZ77UnCompVram ldr r0, _0810AA60 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r7, r0, 24 adds r0, r7, 0 bl sub_810AFE0 ldr r1, _0810AA64 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 movs r1, 0x12 ldrsh r0, [r0, r1] cmp r0, 0 bne _0810AA68 movs r2, 0x2D mov r9, r2 movs r0, 0x5A mov r10, r0 b _0810AA70 .align 2, 0 _0810AA58: .4byte gUnknown_08E95774 _0810AA5C: .4byte 0x06003800 _0810AA60: .4byte sub_810ADC0 _0810AA64: .4byte 0x03004b20 _0810AA68: movs r1, 0x5A mov r9, r1 movs r2, 0x87 mov r10, r2 _0810AA70: ldr r0, _0810AB28 movs r1, 0x78 movs r2, 0x50 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r6, _0810AB2C lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 strh r7, [r1, 0x2E] ldrb r2, [r1, 0x1] movs r5, 0x4 negs r5, r5 adds r0, r5, 0 ands r0, r2 movs r2, 0x1 mov r8, r2 mov r2, r8 orrs r0, r2 strb r0, [r1, 0x1] ldrb r2, [r1, 0x3] movs r4, 0x3F negs r4, r4 adds r0, r4, 0 ands r0, r2 strb r0, [r1, 0x3] ldr r0, _0810AB30 movs r1, 0x78 movs r2, 0x50 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 strh r7, [r1, 0x2E] ldrb r0, [r1, 0x1] ands r5, r0 mov r0, r8 orrs r5, r0 strb r5, [r1, 0x1] ldrb r0, [r1, 0x3] ands r4, r0 movs r0, 0x2 orrs r4, r0 strb r4, [r1, 0x3] ldr r0, _0810AB34 movs r1, 0x78 movs r2, 0x50 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 strh r7, [r1, 0x2E] mov r2, r9 strh r2, [r1, 0x30] ldr r0, _0810AB38 movs r1, 0x78 movs r2, 0x50 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 strh r7, [r1, 0x2E] mov r0, r10 strh r0, [r1, 0x30] bl sub_810A864 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810AB28: .4byte gSpriteTemplate_83F7AD8 _0810AB2C: .4byte 0x02020004 _0810AB30: .4byte gSpriteTemplate_83F7AF0 _0810AB34: .4byte gSpriteTemplate_83F7B28 _0810AB38: .4byte gSpriteTemplate_83F7B40 thumb_func_end Cb2_ViewWallClock thumb_func_start sub_810AB3C sub_810AB3C: @ 810AB3C push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_810AB3C thumb_func_start sub_810AB54 sub_810AB54: @ 810AB54 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0810AB78 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0810AB74 ldr r0, _0810AB7C lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _0810AB80 str r0, [r1] _0810AB74: pop {r0} bx r0 .align 2, 0 _0810AB78: .4byte 0x0202f388 _0810AB7C: .4byte 0x03004b20 _0810AB80: .4byte sub_810AB84 thumb_func_end sub_810AB54 thumb_func_start sub_810AB84 sub_810AB84: @ 810AB84 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _0810ABB4 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] movs r1, 0x6 bl __modsi3 lsls r0, 16 cmp r0, 0 beq _0810ABB8 ldrh r0, [r5, 0x8] ldrb r1, [r5, 0x10] ldrb r2, [r5, 0x14] bl sub_810AEAC strh r0, [r5, 0x8] b _0810AC5A .align 2, 0 _0810ABB4: .4byte 0x03004b20 _0810ABB8: movs r2, 0xE ldrsh r1, [r5, r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 1 strh r0, [r5, 0x8] movs r3, 0xC ldrsh r0, [r5, r3] movs r1, 0xC bl __modsi3 lsls r0, 16 asrs r0, 16 lsls r4, r0, 4 subs r4, r0 lsls r4, 1 movs r1, 0xE ldrsh r0, [r5, r1] movs r1, 0xA bl __divsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 2 adds r1, r0 adds r4, r1 strh r4, [r5, 0xA] ldr r2, _0810AC04 ldrh r0, [r2, 0x2E] movs r3, 0x1 adds r1, r3, 0 ands r1, r0 cmp r1, 0 beq _0810AC0C ldr r0, _0810AC08 str r0, [r5] b _0810AC5A .align 2, 0 _0810AC04: .4byte 0x03001770 _0810AC08: .4byte sub_810AC60 _0810AC0C: strh r1, [r5, 0x10] ldrh r1, [r2, 0x2C] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0810AC1A strh r3, [r5, 0x10] _0810AC1A: ldrh r1, [r2, 0x2C] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0810AC28 movs r0, 0x2 strh r0, [r5, 0x10] _0810AC28: ldrh r1, [r5, 0x10] movs r2, 0x10 ldrsh r0, [r5, r2] cmp r0, 0 beq _0810AC58 ldrh r2, [r5, 0x14] movs r3, 0x14 ldrsh r0, [r5, r3] cmp r0, 0xFE bgt _0810AC40 adds r0, r2, 0x1 strh r0, [r5, 0x14] _0810AC40: ldrh r0, [r5, 0x8] lsls r1, 24 lsrs r1, 24 ldrb r2, [r5, 0x14] bl sub_810AEAC strh r0, [r5, 0x8] ldrb r1, [r5, 0x10] adds r0, r6, 0 bl sub_810AEFC b _0810AC5A _0810AC58: strh r0, [r5, 0x14] _0810AC5A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_810AB84 thumb_func_start sub_810AC60 sub_810AC60: @ 810AC60 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x2 movs r1, 0x10 movs r2, 0x1B movs r3, 0x13 bl DrawDefaultWindow ldr r0, _0810ACC4 movs r1, 0x3 movs r2, 0x11 bl Print movs r0, 0x17 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl DrawDefaultWindow ldr r3, _0810ACC8 movs r0, 0x18 movs r1, 0x9 movs r2, 0x2 bl PrintStringArray movs r0, 0x1 str r0, [sp] movs r0, 0x5 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x18 movs r2, 0x9 movs r3, 0x2 bl InitMenu ldr r1, _0810ACCC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0810ACD0 str r1, [r0] add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _0810ACC4: .4byte gUnknown_0842D4FF _0810ACC8: .4byte gUnknown_08376D74 _0810ACCC: .4byte 0x03004b20 _0810ACD0: .4byte c3_80BF560 thumb_func_end sub_810AC60 thumb_func_start c3_80BF560 c3_80BF560: @ 810ACD4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl FillWindowPixelBuffer lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _0810ACFA cmp r1, 0 bgt _0810ACF4 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0810AD18 b _0810AD48 _0810ACF4: cmp r1, 0x1 beq _0810AD18 b _0810AD48 _0810ACFA: movs r0, 0x5 bl audio_play ldr r0, _0810AD10 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0810AD14 b _0810AD46 .align 2, 0 _0810AD10: .4byte 0x03004b20 _0810AD14: .4byte sub_810AD58 _0810AD18: bl sub_8072DEC movs r0, 0x5 bl audio_play movs r0, 0x17 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl Reset movs r0, 0x2 movs r1, 0x10 movs r2, 0x1B movs r3, 0x13 bl Reset ldr r0, _0810AD50 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0810AD54 _0810AD46: str r0, [r1] _0810AD48: pop {r4} pop {r0} bx r0 .align 2, 0 _0810AD50: .4byte 0x03004b20 _0810AD54: .4byte sub_810AB84 thumb_func_end c3_80BF560 thumb_func_start sub_810AD58 sub_810AD58: @ 810AD58 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r1, _0810AD94 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r1, 0xC ldrsh r0, [r4, r1] movs r2, 0xE ldrsh r1, [r4, r2] bl RtcInitLocalTimeOffset movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0810AD98 str r0, [r4] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0810AD94: .4byte 0x03004b20 _0810AD98: .4byte sub_810AD9C thumb_func_end sub_810AD58 thumb_func_start sub_810AD9C sub_810AD9C: @ 810AD9C push {lr} ldr r0, _0810ADB8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0810ADB2 ldr r0, _0810ADBC ldr r0, [r0, 0x8] bl SetMainCallback2 _0810ADB2: pop {r0} bx r0 .align 2, 0 _0810ADB8: .4byte 0x0202f388 _0810ADBC: .4byte 0x03001770 thumb_func_end sub_810AD9C thumb_func_start sub_810ADC0 sub_810ADC0: @ 810ADC0 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0810ADE4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0810ADE0 ldr r0, _0810ADE8 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _0810ADEC str r0, [r1] _0810ADE0: pop {r0} bx r0 .align 2, 0 _0810ADE4: .4byte 0x0202f388 _0810ADE8: .4byte 0x03004b20 _0810ADEC: .4byte sub_810ADF0 thumb_func_end sub_810ADC0 thumb_func_start sub_810ADF0 sub_810ADF0: @ 810ADF0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_810AFE0 ldr r0, _0810AE1C ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _0810AE16 ldr r0, _0810AE20 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0810AE24 str r0, [r1] _0810AE16: pop {r4} pop {r0} bx r0 .align 2, 0 _0810AE1C: .4byte 0x03001770 _0810AE20: .4byte 0x03004b20 _0810AE24: .4byte sub_810AE28 thumb_func_end sub_810ADF0 thumb_func_start sub_810AE28 sub_810AE28: @ 810AE28 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, _0810AE58 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0810AE5C str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0810AE58: .4byte 0x03004b20 _0810AE5C: .4byte sub_810AE60 thumb_func_end sub_810AE28 thumb_func_start sub_810AE60 sub_810AE60: @ 810AE60 push {lr} ldr r0, _0810AE7C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0810AE76 ldr r0, _0810AE80 ldr r0, [r0, 0x8] bl SetMainCallback2 _0810AE76: pop {r0} bx r0 .align 2, 0 _0810AE7C: .4byte 0x0202f388 _0810AE80: .4byte 0x03001770 thumb_func_end sub_810AE60 thumb_func_start sub_810AE84 sub_810AE84: @ 810AE84 push {lr} lsls r0, 16 lsrs r0, 16 adds r1, r0, 0 cmp r0, 0x3C bls _0810AE94 movs r0, 0x6 b _0810AEA6 _0810AE94: cmp r0, 0x1E bls _0810AE9C movs r0, 0x3 b _0810AEA6 _0810AE9C: cmp r1, 0xA bhi _0810AEA4 movs r0, 0x1 b _0810AEA6 _0810AEA4: movs r0, 0x2 _0810AEA6: pop {r1} bx r1 thumb_func_end sub_810AE84 thumb_func_start sub_810AEAC sub_810AEAC: @ 810AEAC push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r2, 24 adds r0, r2, 0 bl sub_810AE84 lsls r0, 24 lsrs r1, r0, 24 cmp r5, 0x1 beq _0810AECE cmp r5, 0x2 beq _0810AEE0 b _0810AEF4 _0810AECE: cmp r4, 0 beq _0810AED6 subs r0, r4, r1 b _0810AEEC _0810AED6: movs r2, 0xB4 lsls r2, 1 adds r0, r2, 0 subs r0, r1 b _0810AEEC _0810AEE0: movs r0, 0xB4 lsls r0, 1 subs r0, r1 cmp r4, r0 bge _0810AEF2 adds r0, r4, r1 _0810AEEC: lsls r0, 16 lsrs r4, r0, 16 b _0810AEF4 _0810AEF2: movs r4, 0 _0810AEF4: adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_810AEAC thumb_func_start sub_810AEFC sub_810AEFC: @ 810AEFC push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r4, r1, 24 cmp r4, 0x1 beq _0810AF10 cmp r4, 0x2 beq _0810AF50 b _0810AF8E _0810AF10: ldr r0, _0810AF2C lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 ldrh r2, [r1, 0xE] movs r5, 0xE ldrsh r0, [r1, r5] cmp r0, 0 ble _0810AF30 subs r0, r2, 0x1 strh r0, [r1, 0xE] b _0810AF8E .align 2, 0 _0810AF2C: .4byte 0x03004b20 _0810AF30: movs r0, 0x3B strh r0, [r1, 0xE] ldrh r2, [r1, 0xC] movs r6, 0xC ldrsh r0, [r1, r6] cmp r0, 0 ble _0810AF42 subs r0, r2, 0x1 b _0810AF44 _0810AF42: movs r0, 0x17 _0810AF44: strh r0, [r1, 0xC] adds r0, r3, 0 adds r1, r4, 0 bl sub_810AF98 b _0810AF8E _0810AF50: ldr r0, _0810AF6C lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 ldrh r2, [r1, 0xE] movs r5, 0xE ldrsh r0, [r1, r5] cmp r0, 0x3A bgt _0810AF70 adds r0, r2, 0x1 strh r0, [r1, 0xE] b _0810AF8E .align 2, 0 _0810AF6C: .4byte 0x03004b20 _0810AF70: movs r5, 0 strh r5, [r1, 0xE] ldrh r2, [r1, 0xC] movs r6, 0xC ldrsh r0, [r1, r6] cmp r0, 0x16 bgt _0810AF84 adds r0, r2, 0x1 strh r0, [r1, 0xC] b _0810AF86 _0810AF84: strh r5, [r1, 0xC] _0810AF86: adds r0, r3, 0 adds r1, r4, 0 bl sub_810AF98 _0810AF8E: movs r0, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_810AEFC thumb_func_start sub_810AF98 sub_810AF98: @ 810AF98 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r3, r1, 24 ldr r2, _0810AFB8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0xC] cmp r3, 0x1 beq _0810AFBC cmp r3, 0x2 beq _0810AFCE b _0810AFDA .align 2, 0 _0810AFB8: .4byte 0x03004b20 _0810AFBC: cmp r0, 0xB beq _0810AFC6 cmp r0, 0x17 beq _0810AFCA b _0810AFDA _0810AFC6: movs r0, 0 b _0810AFD8 _0810AFCA: strh r3, [r1, 0x12] b _0810AFDA _0810AFCE: cmp r0, 0 beq _0810AFD8 cmp r0, 0xC bne _0810AFDA movs r0, 0x1 _0810AFD8: strh r0, [r1, 0x12] _0810AFDA: pop {r0} bx r0 thumb_func_end sub_810AF98 thumb_func_start sub_810AFE0 sub_810AFE0: @ 810AFE0 push {r4-r6,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl RtcCalcLocalTime ldr r1, _0810B048 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r6, r0, r1 ldr r5, _0810B04C movs r0, 0x2 ldrsb r0, [r5, r0] strh r0, [r6, 0xC] movs r0, 0x3 ldrsb r0, [r5, r0] strh r0, [r6, 0xE] movs r0, 0xE ldrsh r1, [r6, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 1 strh r0, [r6, 0x8] movs r1, 0xC ldrsh r0, [r6, r1] movs r1, 0xC bl __modsi3 lsls r0, 16 asrs r0, 16 lsls r4, r0, 4 subs r4, r0 lsls r4, 1 movs r1, 0xE ldrsh r0, [r6, r1] movs r1, 0xA bl __divsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 2 adds r1, r0 adds r4, r1 strh r4, [r6, 0xA] movs r0, 0x2 ldrsb r0, [r5, r0] cmp r0, 0xB bgt _0810B050 movs r0, 0 b _0810B052 .align 2, 0 _0810B048: .4byte 0x03004b20 _0810B04C: .4byte 0x03004038 _0810B050: movs r0, 0x1 _0810B052: strh r0, [r6, 0x12] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_810AFE0 thumb_func_start sub_810B05C sub_810B05C: @ 810B05C push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 ldr r2, _0810B0EC movs r0, 0x2E ldrsh r1, [r6, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r4, [r0, 0x8] adds r7, r4, 0 adds r0, r4, 0 bl sine2 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _0810B084 adds r0, 0xF _0810B084: lsls r0, 12 lsrs r5, r0, 16 adds r0, r4, 0 bl cosine2 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _0810B098 adds r0, 0xF _0810B098: lsls r1, r0, 12 lsrs r1, 16 lsls r3, r5, 16 lsrs r2, r3, 16 negs r3, r3 lsrs r3, 16 str r1, [sp] movs r0, 0 bl SetOamMatrix ldr r1, _0810B0F0 lsls r2, r7, 1 adds r0, r2, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r3, r0, 16 adds r1, 0x1 adds r2, r1 movs r0, 0 ldrsb r0, [r2, r0] lsls r0, 16 lsrs r2, r0, 16 cmp r3, 0x80 bls _0810B0D4 movs r1, 0xFF lsls r1, 8 adds r0, r1, 0 orrs r3, r0 _0810B0D4: cmp r2, 0x80 bls _0810B0E0 movs r1, 0xFF lsls r1, 8 adds r0, r1, 0 orrs r2, r0 _0810B0E0: strh r3, [r6, 0x24] strh r2, [r6, 0x26] add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810B0EC: .4byte 0x03004b20 _0810B0F0: .4byte gUnknown_083F7B58 thumb_func_end sub_810B05C thumb_func_start sub_810B0F4 sub_810B0F4: @ 810B0F4 push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 ldr r2, _0810B184 movs r0, 0x2E ldrsh r1, [r6, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r4, [r0, 0xA] adds r7, r4, 0 adds r0, r4, 0 bl sine2 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _0810B11C adds r0, 0xF _0810B11C: lsls r0, 12 lsrs r5, r0, 16 adds r0, r4, 0 bl cosine2 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _0810B130 adds r0, 0xF _0810B130: lsls r1, r0, 12 lsrs r1, 16 lsls r3, r5, 16 lsrs r2, r3, 16 negs r3, r3 lsrs r3, 16 str r1, [sp] movs r0, 0x1 bl SetOamMatrix ldr r1, _0810B188 lsls r2, r7, 1 adds r0, r2, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r3, r0, 16 adds r1, 0x1 adds r2, r1 movs r0, 0 ldrsb r0, [r2, r0] lsls r0, 16 lsrs r2, r0, 16 cmp r3, 0x80 bls _0810B16C movs r1, 0xFF lsls r1, 8 adds r0, r1, 0 orrs r3, r0 _0810B16C: cmp r2, 0x80 bls _0810B178 movs r1, 0xFF lsls r1, 8 adds r0, r1, 0 orrs r2, r0 _0810B178: strh r3, [r6, 0x24] strh r2, [r6, 0x26] add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810B184: .4byte 0x03004b20 _0810B188: .4byte gUnknown_083F7B58 thumb_func_end sub_810B0F4 thumb_func_start sub_810B18C sub_810B18C: @ 810B18C push {r4,lr} adds r4, r0, 0 ldr r2, _0810B1C8 movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0x12 ldrsh r0, [r0, r1] cmp r0, 0 beq _0810B1CC ldrh r1, [r4, 0x30] adds r0, r1, 0 subs r0, 0x3C lsls r0, 16 lsrs r0, 16 cmp r0, 0x1D bhi _0810B1B8 adds r0, r1, 0x5 strh r0, [r4, 0x30] _0810B1B8: ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0x3B bgt _0810B1EC adds r0, r1, 0x1 b _0810B1EA .align 2, 0 _0810B1C8: .4byte 0x03004b20 _0810B1CC: ldrh r1, [r4, 0x30] adds r0, r1, 0 subs r0, 0x2E lsls r0, 16 lsrs r0, 16 cmp r0, 0x1D bhi _0810B1DE subs r0, r1, 0x5 strh r0, [r4, 0x30] _0810B1DE: ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0x4B ble _0810B1EC subs r0, r1, 0x1 _0810B1EA: strh r0, [r4, 0x30] _0810B1EC: ldrh r0, [r4, 0x30] bl cosine2 lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 subs r1, r0 lsls r0, r1, 1 cmp r0, 0 bge _0810B204 ldr r1, _0810B22C adds r0, r1 _0810B204: asrs r0, 12 strh r0, [r4, 0x24] ldrh r0, [r4, 0x30] bl sine2 lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 subs r1, r0 lsls r0, r1, 1 cmp r0, 0 bge _0810B220 ldr r2, _0810B22C adds r0, r2 _0810B220: asrs r0, 12 strh r0, [r4, 0x26] pop {r4} pop {r0} bx r0 .align 2, 0 _0810B22C: .4byte 0x00000fff thumb_func_end sub_810B18C thumb_func_start sub_810B230 sub_810B230: @ 810B230 push {r4,lr} adds r4, r0, 0 ldr r2, _0810B26C movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0x12 ldrsh r0, [r0, r1] cmp r0, 0 beq _0810B270 ldrh r1, [r4, 0x30] adds r0, r1, 0 subs r0, 0x69 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1D bhi _0810B25C adds r0, r1, 0x5 strh r0, [r4, 0x30] _0810B25C: ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0x68 bgt _0810B290 adds r0, r1, 0x1 b _0810B28E .align 2, 0 _0810B26C: .4byte 0x03004b20 _0810B270: ldrh r1, [r4, 0x30] adds r0, r1, 0 subs r0, 0x5B lsls r0, 16 lsrs r0, 16 cmp r0, 0x1D bhi _0810B282 subs r0, r1, 0x5 strh r0, [r4, 0x30] _0810B282: ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0x78 ble _0810B290 subs r0, r1, 0x1 _0810B28E: strh r0, [r4, 0x30] _0810B290: ldrh r0, [r4, 0x30] bl cosine2 lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 subs r1, r0 lsls r0, r1, 1 cmp r0, 0 bge _0810B2A8 ldr r1, _0810B2D0 adds r0, r1 _0810B2A8: asrs r0, 12 strh r0, [r4, 0x24] ldrh r0, [r4, 0x30] bl sine2 lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 subs r1, r0 lsls r0, r1, 1 cmp r0, 0 bge _0810B2C4 ldr r2, _0810B2D0 adds r0, r2 _0810B2C4: asrs r0, 12 strh r0, [r4, 0x26] pop {r4} pop {r0} bx r0 .align 2, 0 _0810B2D0: .4byte 0x00000fff thumb_func_end sub_810B230 thumb_func_start npc_before_player_of_type npc_before_player_of_type: @ 810B2D4 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r4, _0810B314 adds r1, r4, 0x2 adds r0, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer bl PlayerGetZCoord strb r0, [r4, 0x4] ldrh r0, [r4] ldrh r1, [r4, 0x2] ldrb r2, [r4, 0x4] bl GetFieldObjectIdByXYZ lsls r0, 24 lsrs r0, 24 ldr r2, _0810B318 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r2, r1, r2 ldrb r0, [r2, 0x5] cmp r0, r5 bne _0810B320 ldr r1, _0810B31C ldrb r0, [r2, 0x8] strh r0, [r1] movs r0, 0x1 b _0810B322 .align 2, 0 _0810B314: .4byte 0x0203923c _0810B318: .4byte 0x030048a0 _0810B31C: .4byte 0x0202e8de _0810B320: movs r0, 0 _0810B322: pop {r4,r5} pop {r1} bx r1 thumb_func_end npc_before_player_of_type thumb_func_start oei_task_add oei_task_add: @ 810B328 push {lr} ldr r0, _0810B344 adds r1, r0, 0x2 bl GetXYCoordsOneStepInFrontOfPlayer ldr r0, _0810B348 movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0810B344: .4byte 0x0203923c _0810B348: .4byte task08_080C9820 thumb_func_end oei_task_add thumb_func_start task08_080C9820 task08_080C9820: @ 810B34C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 bl script_env_2_enable ldr r1, _0810B3A0 movs r0, 0x1 strb r0, [r1, 0x6] ldrb r1, [r1, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0810B3A4 adds r4, r0, r1 adds r0, r4, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 beq _0810B382 adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _0810B3CE _0810B382: ldr r0, _0810B3A8 ldrb r0, [r0, 0x17] cmp r0, 0x5 bne _0810B3B4 movs r0, 0x3B bl FieldEffectStart ldr r0, _0810B3AC lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _0810B3B0 b _0810B3CC .align 2, 0 _0810B3A0: .4byte 0x0202e858 _0810B3A4: .4byte 0x030048a0 _0810B3A8: .4byte 0x0202e828 _0810B3AC: .4byte 0x03004b20 _0810B3B0: .4byte sub_810B428 _0810B3B4: bl sub_8059BF4 adds r0, r4, 0 movs r1, 0x39 bl FieldObjectSetSpecialAnim ldr r0, _0810B3D4 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, _0810B3D8 _0810B3CC: str r0, [r1] _0810B3CE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810B3D4: .4byte 0x03004b20 _0810B3D8: .4byte sub_810B3DC thumb_func_end task08_080C9820 thumb_func_start sub_810B3DC sub_810B3DC: @ 810B3DC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0810B418 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0810B41C adds r0, r1 bl FieldObjectCheckIfSpecialAnimFinishedOrInactive lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0810B410 movs r0, 0x3B bl FieldEffectStart ldr r0, _0810B420 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0810B424 str r0, [r1] _0810B410: pop {r4} pop {r0} bx r0 .align 2, 0 _0810B418: .4byte 0x0202e858 _0810B41C: .4byte 0x030048a0 _0810B420: .4byte 0x03004b20 _0810B424: .4byte sub_810B428 thumb_func_end sub_810B3DC thumb_func_start sub_810B428 sub_810B428: @ 810B428 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 movs r0, 0x6 bl FieldEffectActiveListContains lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0810B4AC bl player_get_direction_lower_nybble ldr r6, _0810B4B4 lsls r0, 24 lsrs r0, 24 str r0, [r6, 0x4] cmp r0, 0x1 bne _0810B44E str r4, [r6, 0x8] _0810B44E: ldr r1, [r6, 0x4] cmp r1, 0x2 bne _0810B458 movs r0, 0x1 str r0, [r6, 0x8] _0810B458: cmp r1, 0x3 bne _0810B460 movs r0, 0x2 str r0, [r6, 0x8] _0810B460: cmp r1, 0x4 bne _0810B468 movs r0, 0x3 str r0, [r6, 0x8] _0810B468: ldr r5, _0810B4B8 ldrb r0, [r5, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _0810B4BC adds r4, r0 bl GetPlayerAvatarGraphicsIdByCurrentState adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805B980 ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0810B4C0 adds r0, r1 ldrb r1, [r6, 0x8] bl StartSpriteAnim movs r0, 0x6 bl FieldEffectActiveListRemove ldr r1, _0810B4C4 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, _0810B4C8 str r1, [r0] _0810B4AC: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810B4B4: .4byte 0x0202ff84 _0810B4B8: .4byte 0x0202e858 _0810B4BC: .4byte 0x030048a0 _0810B4C0: .4byte 0x02020004 _0810B4C4: .4byte 0x03004b20 _0810B4C8: .4byte sub_810B4CC thumb_func_end sub_810B428 thumb_func_start sub_810B4CC sub_810B4CC: @ 810B4CC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _0810B4FC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x18] lsls r1, 16 ldrh r0, [r0, 0x1A] orrs r1, r0 bl _call_via_r1 ldr r1, _0810B500 movs r0, 0 strb r0, [r1, 0x6] adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 .align 2, 0 _0810B4FC: .4byte 0x03004b20 _0810B500: .4byte 0x0202e858 thumb_func_end sub_810B4CC thumb_func_start hm_prepare_rocksmash hm_prepare_rocksmash: @ 810B504 push {lr} movs r0, 0x56 bl npc_before_player_of_type lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810B518 movs r0, 0 b _0810B526 _0810B518: ldr r1, _0810B52C ldr r0, _0810B530 str r0, [r1] ldr r1, _0810B534 ldr r0, _0810B538 str r0, [r1] movs r0, 0x1 _0810B526: pop {r1} bx r1 .align 2, 0 _0810B52C: .4byte 0x0300485c _0810B530: .4byte sub_808AB90 _0810B534: .4byte 0x03005ce4 _0810B538: .4byte sub_810B53C thumb_func_end hm_prepare_rocksmash thumb_func_start sub_810B53C sub_810B53C: @ 810B53C push {lr} ldr r1, _0810B550 ldr r0, _0810B554 ldrb r0, [r0] str r0, [r1] ldr r0, _0810B558 bl script_env_1_execute_new_script pop {r0} bx r0 .align 2, 0 _0810B550: .4byte 0x0202ff84 _0810B554: .4byte 0x03005ce0 _0810B558: .4byte UseRockSmashScript thumb_func_end sub_810B53C thumb_func_start oei_rocksmash oei_rocksmash: @ 810B55C push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _0810B584 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _0810B588 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0x13 bl sav12_xor_increment movs r0, 0 pop {r1} bx r1 .align 2, 0 _0810B584: .4byte 0x03004b20 _0810B588: .4byte sub_810B58C thumb_func_end oei_rocksmash thumb_func_start sub_810B58C sub_810B58C: @ 810B58C push {lr} movs r0, 0x83 bl audio_play movs r0, 0x25 bl FieldEffectActiveListRemove bl script_env_2_enable_and_set_ctx_running pop {r0} bx r0 thumb_func_end sub_810B58C thumb_func_start sub_810B5A4 sub_810B5A4: @ 810B5A4 push {lr} bl sub_80CA1C8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810B5B6 movs r0, 0 b _0810B5C4 _0810B5B6: ldr r1, _0810B5C8 ldr r0, _0810B5CC str r0, [r1] ldr r1, _0810B5D0 ldr r0, _0810B5D4 str r0, [r1] movs r0, 0x1 _0810B5C4: pop {r1} bx r1 .align 2, 0 _0810B5C8: .4byte 0x0300485c _0810B5CC: .4byte sub_808AB90 _0810B5D0: .4byte 0x03005ce4 _0810B5D4: .4byte sub_810B5D8 thumb_func_end sub_810B5A4 thumb_func_start sub_810B5D8 sub_810B5D8: @ 810B5D8 push {lr} bl sub_8053014 movs r0, 0x26 bl FieldEffectStart ldr r0, _0810B5F0 ldr r1, _0810B5F4 ldrb r1, [r1] str r1, [r0] pop {r0} bx r0 .align 2, 0 _0810B5F0: .4byte 0x0202ff84 _0810B5F4: .4byte 0x03005ce0 thumb_func_end sub_810B5D8 thumb_func_start sub_810B5F8 sub_810B5F8: @ 810B5F8 push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _0810B62C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _0810B630 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] bl sub_81473B8 lsls r0, 24 cmp r0, 0 bne _0810B624 movs r0, 0x1 bl SetPlayerAvatarTransitionFlags _0810B624: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0810B62C: .4byte 0x03004b20 _0810B630: .4byte sub_810B634 thumb_func_end sub_810B5F8 thumb_func_start sub_810B634 sub_810B634: @ 810B634 push {r4,lr} movs r0, 0x26 bl FieldEffectActiveListRemove bl sub_81473B8 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0810B64E bl sub_8147408 b _0810B666 _0810B64E: ldr r0, _0810B66C movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0810B670 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] _0810B666: pop {r4} pop {r0} bx r0 .align 2, 0 _0810B66C: .4byte task08_080A1C44 _0810B670: .4byte 0x03004b20 thumb_func_end sub_810B634 thumb_func_start sub_810B674 sub_810B674: @ 810B674 push {lr} bl AnimateSprites bl BuildOamBuffer bl RunTasks bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_810B674 thumb_func_start sub_810B68C sub_810B68C: @ 810B68C push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer ldr r1, _0810B6B0 ldr r2, _0810B6B4 ldr r0, _0810B6B8 str r1, [r0] str r2, [r0, 0x4] ldr r1, _0810B6BC str r1, [r0, 0x8] ldr r0, [r0, 0x8] pop {r0} bx r0 .align 2, 0 _0810B6B0: .4byte 0x020221cc _0810B6B4: .4byte 0x06007800 _0810B6B8: .4byte 0x040000d4 _0810B6BC: .4byte 0x80000400 thumb_func_end sub_810B68C thumb_func_start sub_810B6C0 sub_810B6C0: @ 810B6C0 push {r4,lr} sub sp, 0x4 ldr r0, _0810B6DC ldr r1, _0810B6E0 adds r0, r1 ldrb r0, [r0] cmp r0, 0x12 bls _0810B6D2 b _0810B960 _0810B6D2: lsls r0, 2 ldr r1, _0810B6E4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0810B6DC: .4byte 0x03001770 _0810B6E0: .4byte 0x0000043c _0810B6E4: .4byte _0810B6E8 .align 2, 0 _0810B6E8: .4byte _0810B734 .4byte _0810B764 .4byte _0810B76A .4byte _0810B78C .4byte _0810B792 .4byte _0810B7B4 .4byte _0810B7C0 .4byte _0810B7DC .4byte _0810B7E8 .4byte _0810B804 .4byte _0810B810 .4byte _0810B830 .4byte _0810B84C .4byte _0810B86A .4byte _0810B894 .4byte _0810B89E .4byte _0810B8C4 .4byte _0810B914 .4byte _0810B934 _0810B734: bl sub_80F9438 bl sub_80F9368 ldr r1, _0810B754 ldr r2, _0810B758 adds r0, r2, 0 strh r0, [r1] adds r1, 0x44 movs r0, 0 strh r0, [r1] ldr r1, _0810B75C ldr r0, _0810B760 adds r1, r0 b _0810B922 .align 2, 0 _0810B754: .4byte REG_BG2CNT _0810B758: .4byte 0x00000f0a _0810B75C: .4byte 0x03001770 _0810B760: .4byte 0x0000043c _0810B764: bl remove_some_task b _0810B91C _0810B76A: bl ResetPaletteFade ldr r2, _0810B780 ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r1, _0810B784 ldr r0, _0810B788 adds r1, r0 b _0810B922 .align 2, 0 _0810B780: .4byte 0x0202f388 _0810B784: .4byte 0x03001770 _0810B788: .4byte 0x0000043c _0810B78C: bl ResetSpriteData b _0810B91C _0810B792: ldr r0, _0810B7A8 ldrb r0, [r0] cmp r0, 0x2 beq _0810B79E bl ResetTasks _0810B79E: ldr r1, _0810B7AC ldr r0, _0810B7B0 adds r1, r0 b _0810B922 .align 2, 0 _0810B7A8: .4byte 0x02039244 _0810B7AC: .4byte 0x03001770 _0810B7B0: .4byte 0x0000043c _0810B7B4: ldr r0, _0810B7BC bl SetUpWindowConfig b _0810B91C .align 2, 0 _0810B7BC: .4byte gWindowConfig_81E6E34 _0810B7C0: ldr r0, _0810B7D0 bl SetUpWindowConfig ldr r1, _0810B7D4 ldr r0, _0810B7D8 adds r1, r0 b _0810B922 .align 2, 0 _0810B7D0: .4byte gWindowConfig_81E6E50 _0810B7D4: .4byte 0x03001770 _0810B7D8: .4byte 0x0000043c _0810B7DC: ldr r0, _0810B7E4 bl sub_8071C58 b _0810B91C .align 2, 0 _0810B7E4: .4byte gWindowConfig_81E6E34 _0810B7E8: bl sub_8071C94 cmp r0, 0 bne _0810B7F2 b _0810B960 _0810B7F2: ldr r1, _0810B7FC ldr r0, _0810B800 adds r1, r0 b _0810B922 .align 2, 0 _0810B7FC: .4byte 0x03001770 _0810B800: .4byte 0x0000043c _0810B804: ldr r0, _0810B80C bl sub_8071C58 b _0810B91C .align 2, 0 _0810B80C: .4byte gWindowConfig_81E6E50 _0810B810: bl sub_8071C94 cmp r0, 0 bne _0810B81A b _0810B960 _0810B81A: ldr r0, _0810B828 ldr r1, _0810B82C adds r0, r1 movs r1, 0 strb r1, [r0] b _0810B91C .align 2, 0 _0810B828: .4byte 0x02000000 _0810B82C: .4byte 0x0001ffff _0810B830: bl sub_810B998 lsls r0, 24 cmp r0, 0 bne _0810B83C b _0810B960 _0810B83C: ldr r1, _0810B844 ldr r0, _0810B848 adds r1, r0 b _0810B922 .align 2, 0 _0810B844: .4byte 0x03001770 _0810B848: .4byte 0x0000043c _0810B84C: bl sub_80F944C bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed movs r0, 0 movs r1, 0xB0 movs r2, 0x8 bl sub_80F953C movs r0, 0x1 movs r1, 0xB0 movs r2, 0x98 bl sub_80F953C b _0810B91C _0810B86A: movs r0, 0x38 movs r1, 0x40 movs r2, 0 bl sub_810BA50 ldr r1, _0810B884 ldr r2, _0810B888 adds r1, r2 strb r0, [r1] ldr r1, _0810B88C ldr r0, _0810B890 adds r1, r0 b _0810B922 .align 2, 0 _0810B884: .4byte 0x02000000 _0810B888: .4byte 0x0001fffe _0810B88C: .4byte 0x03001770 _0810B890: .4byte 0x0000043c _0810B894: bl sub_810BC98 bl sub_810BD08 b _0810B91C _0810B89E: bl sub_810BB0C bl sub_810BB30 ldr r0, _0810B8B8 ldrb r0, [r0, 0x1] bl sub_810BC84 ldr r1, _0810B8BC ldr r0, _0810B8C0 adds r1, r0 b _0810B922 .align 2, 0 _0810B8B8: .4byte 0x02039248 _0810B8BC: .4byte 0x03001770 _0810B8C0: .4byte 0x0000043c _0810B8C4: ldr r3, _0810B8FC ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _0810B900 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _0810B904 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _0810B908 bl SetVBlankCallback movs r1, 0x80 lsls r1, 19 movs r2, 0xBA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r1, _0810B90C ldr r0, _0810B910 adds r1, r0 b _0810B922 .align 2, 0 _0810B8FC: .4byte 0x04000208 _0810B900: .4byte 0x04000200 _0810B904: .4byte REG_DISPSTAT _0810B908: .4byte sub_810B68C _0810B90C: .4byte 0x03001770 _0810B910: .4byte 0x0000043c _0810B914: bl sub_8055870 cmp r0, 0x1 beq _0810B960 _0810B91C: ldr r1, _0810B92C ldr r2, _0810B930 adds r1, r2 _0810B922: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0810B960 .align 2, 0 _0810B92C: .4byte 0x03001770 _0810B930: .4byte 0x0000043c _0810B934: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r2, _0810B958 ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] ldr r0, _0810B95C bl SetMainCallback2 movs r0, 0x1 b _0810B962 .align 2, 0 _0810B958: .4byte 0x0202f388 _0810B95C: .4byte sub_810B674 _0810B960: movs r0, 0 _0810B962: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_810B6C0 thumb_func_start sub_810B96C sub_810B96C: @ 810B96C push {lr} _0810B96E: bl sub_810B6C0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0810B988 ldr r0, _0810B984 movs r1, 0 bl CreateTask b _0810B994 .align 2, 0 _0810B984: .4byte sub_810BF7C _0810B988: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0810B96E _0810B994: pop {r0} bx r0 thumb_func_end sub_810B96C thumb_func_start sub_810B998 sub_810B998: @ 810B998 push {lr} ldr r0, _0810B9B0 ldr r1, _0810B9B4 adds r0, r1 ldrb r0, [r0] cmp r0, 0x4 bhi _0810BA48 lsls r0, 2 ldr r1, _0810B9B8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0810B9B0: .4byte 0x02000000 _0810B9B4: .4byte 0x0001ffff _0810B9B8: .4byte _0810B9BC .align 2, 0 _0810B9BC: .4byte _0810B9D0 .4byte _0810B9E4 .4byte _0810B9F8 .4byte _0810BA08 .4byte _0810BA28 _0810B9D0: ldr r0, _0810B9DC ldr r1, _0810B9E0 bl LZDecompressVram b _0810BA0E .align 2, 0 _0810B9DC: .4byte gUnknown_08E77AE4 _0810B9E0: .4byte 0x06008000 _0810B9E4: ldr r0, _0810B9F0 ldr r1, _0810B9F4 bl sub_800D238 b _0810BA0E .align 2, 0 _0810B9F0: .4byte gUnknown_08E78078 _0810B9F4: .4byte 0x020221cc _0810B9F8: ldr r0, _0810BA04 movs r1, 0 movs r2, 0xC0 bl LoadCompressedPalette b _0810BA0E .align 2, 0 _0810BA04: .4byte gUnknown_08E77D20 _0810BA08: ldr r0, _0810BA1C bl LoadCompressedObjectPic _0810BA0E: ldr r1, _0810BA20 ldr r0, _0810BA24 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0810BA48 .align 2, 0 _0810BA1C: .4byte gUnknown_083F7F74 _0810BA20: .4byte 0x02000000 _0810BA24: .4byte 0x0001ffff _0810BA28: ldr r0, _0810BA3C bl LoadCompressedObjectPalette ldr r0, _0810BA40 ldr r1, _0810BA44 adds r0, r1 movs r1, 0 strb r1, [r0] movs r0, 0x1 b _0810BA4A .align 2, 0 _0810BA3C: .4byte gUnknown_083F7F7C _0810BA40: .4byte 0x02000000 _0810BA44: .4byte 0x0001ffff _0810BA48: movs r0, 0 _0810BA4A: pop {r1} bx r1 thumb_func_end sub_810B998 thumb_func_start sub_810BA50 sub_810BA50: @ 810BA50 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r3, r2, 0 lsls r3, 24 lsrs r3, 24 ldr r0, _0810BA78 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 .align 2, 0 _0810BA78: .4byte gSpriteTemplate_83F7F84 thumb_func_end sub_810BA50 thumb_func_start sub_810BA7C sub_810BA7C: @ 810BA7C push {lr} ldr r1, _0810BA98 strb r0, [r1] ldrb r2, [r1] cmp r2, 0x2 beq _0810BAA8 cmp r2, 0x3 beq _0810BAC0 ldr r1, _0810BA9C ldr r0, _0810BAA0 str r0, [r1] ldr r1, _0810BAA4 movs r0, 0x3 b _0810BACA .align 2, 0 _0810BA98: .4byte 0x02039244 _0810BA9C: .4byte 0x03000758 _0810BAA0: .4byte gUnknown_083F7F1C _0810BAA4: .4byte 0x0203924c _0810BAA8: ldr r0, _0810BAB4 ldr r1, _0810BAB8 str r1, [r0] ldr r0, _0810BABC strb r2, [r0] b _0810BACC .align 2, 0 _0810BAB4: .4byte 0x03000758 _0810BAB8: .4byte gUnknown_083F7F1F _0810BABC: .4byte 0x0203924c _0810BAC0: ldr r1, _0810BAD0 ldr r0, _0810BAD4 str r0, [r1] ldr r1, _0810BAD8 movs r0, 0x2 _0810BACA: strb r0, [r1] _0810BACC: pop {r0} bx r0 .align 2, 0 _0810BAD0: .4byte 0x03000758 _0810BAD4: .4byte gUnknown_083F7F21 _0810BAD8: .4byte 0x0203924c thumb_func_end sub_810BA7C thumb_func_start sub_810BADC sub_810BADC: @ 810BADC push {lr} movs r0, 0x2 bl sub_810BA7C ldr r0, _0810BAF0 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0810BAF0: .4byte sub_810B96C thumb_func_end sub_810BADC thumb_func_start sub_810BAF4 sub_810BAF4: @ 810BAF4 push {lr} movs r0, 0x3 bl sub_810BA7C ldr r0, _0810BB08 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0810BB08: .4byte sub_810B96C thumb_func_end sub_810BAF4 thumb_func_start sub_810BB0C sub_810BB0C: @ 810BB0C push {lr} ldr r0, _0810BB28 bl sub_8071E2C ldr r0, _0810BB2C bl itemid_get_item movs r1, 0x2 movs r2, 0x1 movs r3, 0x48 bl Free pop {r0} bx r0 .align 2, 0 _0810BB28: .4byte gWindowConfig_81E6E34 _0810BB2C: .4byte 0x00000111 thumb_func_end sub_810BB0C thumb_func_start sub_810BB30 sub_810BB30: @ 810BB30 push {lr} ldr r0, _0810BB70 bl sub_8071E2C ldr r0, _0810BB74 movs r1, 0x2 movs r2, 0xD bl Print ldr r0, _0810BB78 movs r1, 0x2 movs r2, 0xF bl Print ldr r0, _0810BB7C movs r1, 0x2 movs r2, 0x11 bl Print ldr r0, _0810BB80 movs r1, 0x8 movs r2, 0xD bl Print ldr r0, _0810BB84 movs r1, 0x8 movs r2, 0xF bl Print pop {r0} bx r0 .align 2, 0 _0810BB70: .4byte gWindowConfig_81E6E34 _0810BB74: .4byte gUnknown_0840EBED _0810BB78: .4byte gUnknown_0840EBF3 _0810BB7C: .4byte gUnknown_0840EBF7 _0810BB80: .4byte gUnknown_0840EBFD _0810BB84: .4byte gUnknown_0840EC04 thumb_func_end sub_810BB30 thumb_func_start sub_810BB88 sub_810BB88: @ 810BB88 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _0810BBF4 bl sub_8071E2C mov r6, r8 adds r0, r6, 0 adds r0, 0x8 cmp r6, r0 bgt _0810BC6C ldr r0, _0810BBF8 mov r9, r0 ldr r1, _0810BBFC mov r10, r1 _0810BBB0: mov r1, r8 subs r0, r6, r1 lsls r0, 25 lsrs r7, r0, 24 ldr r0, _0810BC00 ldrb r0, [r0, 0x2] cmp r6, r0 bne _0810BC08 mov r0, r9 ldr r1, _0810BC04 movs r2, 0x78 movs r3, 0 bl sub_8072C74 movs r2, 0x1 orrs r2, r7 mov r0, r9 movs r1, 0xF bl Print mov r0, r8 adds r0, 0x8 cmp r6, r0 beq _0810BC6C adds r1, r7, 0x3 lsls r1, 24 lsrs r1, 24 movs r0, 0xF movs r2, 0x1D movs r3, 0x12 bl Reset b _0810BC6C .align 2, 0 _0810BBF4: .4byte gWindowConfig_81E6E34 _0810BBF8: .4byte 0x020231cc _0810BBFC: .4byte 0x02025734 _0810BC00: .4byte 0x02039248 _0810BC04: .4byte gUnknown_0840EC14 _0810BC08: lsls r5, r6, 3 mov r1, r10 adds r0, r5, r1 movs r1, 0xFF lsls r1, 3 adds r0, r1 ldrb r0, [r0] lsls r0, 2 ldr r1, _0810BC7C adds r0, r1 ldr r1, [r0] mov r0, r9 movs r2, 0x5E movs r3, 0 bl sub_8072C74 adds r4, r0, 0 movs r0, 0xFC strb r0, [r4] movs r0, 0x14 strb r0, [r4, 0x1] movs r0, 0x6 strb r0, [r4, 0x2] adds r4, 0x3 ldr r0, _0810BC80 adds r5, r0 adds r0, r5, 0 bl sub_810C9B0 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN movs r2, 0x1 orrs r2, r7 mov r0, r9 movs r1, 0xF bl Print adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 mov r0, r8 adds r0, 0x8 cmp r6, r0 ble _0810BBB0 _0810BC6C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810BC7C: .4byte gUnknown_083F7EB8 _0810BC80: .4byte 0x02025f2c thumb_func_end sub_810BB88 thumb_func_start sub_810BC84 sub_810BC84: @ 810BC84 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_810BB88 movs r0, 0 bl sub_810BDAC pop {r0} bx r0 thumb_func_end sub_810BC84 thumb_func_start sub_810BC98 sub_810BC98: @ 810BC98 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r2, 0 ldr r0, _0810BD00 mov r9, r0 _0810BCA6: adds r1, r2, 0x1 lsls r0, r1, 16 lsrs r5, r0, 16 mov r8, r1 cmp r5, 0x27 bhi _0810BCE8 lsls r1, r2, 3 mov r2, r9 adds r0, r1, r2 movs r2, 0xFF lsls r2, 3 adds r7, r0, r2 ldr r0, _0810BD04 mov r12, r0 adds r6, r1, r0 _0810BCC4: ldrb r0, [r7] cmp r0, 0 bne _0810BCDE ldr r3, [r6] ldr r4, [r6, 0x4] lsls r2, r5, 3 add r2, r12 ldr r0, [r2] ldr r1, [r2, 0x4] str r0, [r6] str r1, [r6, 0x4] str r3, [r2] str r4, [r2, 0x4] _0810BCDE: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x27 bls _0810BCC4 _0810BCE8: mov r1, r8 lsls r0, r1, 16 lsrs r2, r0, 16 cmp r2, 0x26 bls _0810BCA6 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810BD00: .4byte 0x02025734 _0810BD04: .4byte 0x02025f2c thumb_func_end sub_810BC98 thumb_func_start sub_810BD08 sub_810BD08: @ 810BD08 push {r4,r5,lr} ldr r1, _0810BD5C movs r0, 0 strb r0, [r1, 0x2] movs r2, 0 ldr r5, _0810BD60 movs r4, 0xFF lsls r4, 3 adds r3, r1, 0 _0810BD1A: lsls r0, r2, 3 adds r0, r5 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _0810BD2C ldrb r0, [r3, 0x2] adds r0, 0x1 strb r0, [r3, 0x2] _0810BD2C: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x27 bls _0810BD1A ldrb r0, [r1, 0x2] cmp r0, 0x7 bls _0810BD3E movs r0, 0x8 _0810BD3E: strb r0, [r1, 0x3] ldrb r2, [r1, 0x1] adds r0, r2, 0 adds r0, 0x8 ldrb r3, [r1, 0x2] cmp r0, r3 ble _0810BD54 cmp r2, 0 beq _0810BD54 subs r0, r2, 0x1 strb r0, [r1, 0x1] _0810BD54: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810BD5C: .4byte 0x02039248 _0810BD60: .4byte 0x02025734 thumb_func_end sub_810BD08 thumb_func_start sub_810BD64 sub_810BD64: @ 810BD64 push {r4,r5,lr} lsls r0, 16 lsrs r3, r0, 16 movs r2, 0 ldr r5, _0810BDA4 ldr r4, _0810BDA8 _0810BD70: ldrb r0, [r5] lsls r0, 1 adds r0, 0x1 lsls r0, 5 adds r1, r2, 0 adds r1, 0xF adds r0, r1 lsls r0, 1 adds r0, r4 strh r3, [r0] ldrb r0, [r5] lsls r0, 6 adds r0, 0x40 adds r0, r1 lsls r0, 1 adds r0, r4 strh r3, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xD bls _0810BD70 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810BDA4: .4byte 0x02039248 _0810BDA8: .4byte 0x020221cc thumb_func_end sub_810BD64 thumb_func_start sub_810BDAC sub_810BDAC: @ 810BDAC push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 cmp r0, 0 bne _0810BDCC ldr r0, _0810BDC4 ldr r1, _0810BDC8 bl sub_810BD64 b _0810BDD4 .align 2, 0 _0810BDC4: .4byte 0x00001005 _0810BDC8: .4byte 0x00001014 _0810BDCC: ldr r0, _0810BDE8 ldr r1, _0810BDEC bl sub_810BD64 _0810BDD4: ldr r0, _0810BDF0 ldrb r0, [r0, 0x1] cmp r0, 0 beq _0810BDF4 movs r0, 0 movs r1, 0 bl sub_80F979C b _0810BDFC .align 2, 0 _0810BDE8: .4byte 0x00002005 _0810BDEC: .4byte 0x00002014 _0810BDF0: .4byte 0x02039248 _0810BDF4: movs r0, 0 movs r1, 0x1 bl sub_80F979C _0810BDFC: ldr r2, _0810BE1C ldrb r0, [r2, 0x2] ldrb r1, [r2, 0x3] cmp r0, r1 bls _0810BE20 ldrb r0, [r2, 0x1] ldrb r1, [r2, 0x3] adds r0, r1 ldrb r2, [r2, 0x2] cmp r0, r2 beq _0810BE20 movs r0, 0x1 movs r1, 0 bl sub_80F979C b _0810BE28 .align 2, 0 _0810BE1C: .4byte 0x02039248 _0810BE20: movs r0, 0x1 movs r1, 0x1 bl sub_80F979C _0810BE28: movs r6, 0 ldr r7, _0810BE94 movs r0, 0xF mov r8, r0 _0810BE30: adds r0, r6, 0 movs r1, 0x3 bl __umodsi3 adds r4, r0, 0 lsls r4, 24 lsrs r4, 18 ldr r1, _0810BE98 adds r4, r1 adds r0, r6, 0 movs r1, 0x3 bl __udivsi3 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 1 adds r5, r4, r1 ldr r1, _0810BE9C ldrb r2, [r1] ldrb r0, [r1, 0x1] adds r0, r2, r0 ldrb r1, [r1, 0x2] cmp r0, r1 beq _0810BEB8 lsls r0, 3 ldr r1, _0810BEA0 adds r0, r1 adds r4, r6, 0x1 lsls r1, r4, 24 lsrs r1, 24 bl sub_810CA9C lsls r0, 16 cmp r0, 0 ble _0810BEA4 lsls r1, r5, 1 adds r1, r7 lsls r2, r6, 12 adds r0, r2, 0 adds r0, 0x17 strh r0, [r1] adds r0, r5, 0 adds r0, 0x20 lsls r0, 1 adds r0, r7 adds r2, 0x18 strh r2, [r0] b _0810BECC .align 2, 0 _0810BE94: .4byte 0x020221cc _0810BE98: .4byte 0x000001a1 _0810BE9C: .4byte 0x02039248 _0810BEA0: .4byte 0x02025f2c _0810BEA4: lsls r0, r5, 1 adds r0, r7 mov r1, r8 strh r1, [r0] adds r0, r5, 0 adds r0, 0x20 lsls r0, 1 adds r0, r7 strh r1, [r0] b _0810BECC _0810BEB8: lsls r0, r5, 1 adds r0, r7 mov r1, r8 strh r1, [r0] adds r0, r5, 0 adds r0, 0x20 lsls r0, 1 adds r0, r7 strh r1, [r0] adds r4, r6, 0x1 _0810BECC: lsls r0, r4, 24 lsrs r6, r0, 24 cmp r6, 0x4 bls _0810BE30 ldr r0, _0810BF10 bl sub_8071E2C ldr r0, _0810BF14 ldrb r2, [r0] ldrb r1, [r0, 0x1] adds r2, r1 ldrb r0, [r0, 0x2] cmp r2, r0 beq _0810BF20 ldr r4, _0810BF18 lsls r0, r2, 3 ldr r1, _0810BF1C adds r0, r1 bl sub_810C9E8 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0x10 movs r3, 0x1 bl sub_8072C14 adds r0, r4, 0 movs r1, 0xB movs r2, 0x11 bl Print b _0810BF2C .align 2, 0 _0810BF10: .4byte gWindowConfig_81E6E34 _0810BF14: .4byte 0x02039248 _0810BF18: .4byte 0x020231cc _0810BF1C: .4byte 0x02025f2c _0810BF20: movs r0, 0xB movs r1, 0x11 movs r2, 0xC movs r3, 0x12 bl Reset _0810BF2C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_810BDAC thumb_func_start sub_810BF38 sub_810BF38: @ 810BF38 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl audio_play ldr r2, _0810BF6C ldr r0, _0810BF70 ldr r1, _0810BF74 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _0810BF78 str r1, [r0] adds r0, r4, 0 bl sub_810BDAC pop {r4} pop {r0} bx r0 .align 2, 0 _0810BF6C: .4byte 0x02020004 _0810BF70: .4byte 0x02000000 _0810BF74: .4byte 0x0001fffe _0810BF78: .4byte sub_810C8D4 thumb_func_end sub_810BF38 thumb_func_start sub_810BF7C sub_810BF7C: @ 810BF7C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r4, r5, 0 ldr r0, _0810BFB8 ldrb r1, [r0, 0x7] movs r3, 0x80 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0810BF94 b _0810C0B8 _0810BF94: ldr r2, _0810BFBC ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0810BFCE ldr r4, _0810BFC0 ldrb r0, [r4] cmp r0, 0 beq _0810BFC4 movs r0, 0x5 movs r1, 0x14 bl sub_810BD64 ldrb r0, [r4] subs r0, 0x1 strb r0, [r4] b _0810C00A .align 2, 0 _0810BFB8: .4byte 0x0202f388 _0810BFBC: .4byte 0x03001770 _0810BFC0: .4byte 0x02039248 _0810BFC4: ldrb r0, [r4, 0x1] cmp r0, 0 beq _0810C0B8 subs r0, 0x1 b _0810C002 _0810BFCE: adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0810C012 ldr r4, _0810BFF0 ldrb r0, [r4] ldrb r1, [r4, 0x3] cmp r0, r1 beq _0810BFF4 movs r0, 0x5 movs r1, 0x14 bl sub_810BD64 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0810C00A .align 2, 0 _0810BFF0: .4byte 0x02039248 _0810BFF4: ldrb r1, [r4, 0x1] ldrb r0, [r4] adds r0, r1, r0 ldrb r2, [r4, 0x2] cmp r0, r2 beq _0810C0B8 adds r0, r1, 0x1 _0810C002: strb r0, [r4, 0x1] ldrb r0, [r4, 0x1] bl sub_810BB88 _0810C00A: movs r0, 0 bl sub_810BF38 b _0810C0B8 _0810C012: ldrh r1, [r2, 0x2E] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0810C05C ldr r4, _0810C050 ldrb r0, [r4, 0x1] ldrb r1, [r4] adds r0, r1 ldrb r1, [r4, 0x2] cmp r0, r1 beq _0810C0B8 movs r0, 0x5 bl audio_play movs r0, 0x1 bl sub_810BDAC ldr r1, _0810C054 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldrb r1, [r4, 0x1] ldrb r2, [r4] adds r1, r2 strh r1, [r0, 0x8] ldr r1, _0810C058 str r1, [r0] b _0810C0B8 .align 2, 0 _0810C050: .4byte 0x02039248 _0810C054: .4byte 0x03004b20 _0810C058: .4byte sub_810C0C8 _0810C05C: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0810C09C movs r0, 0x5 bl audio_play ldr r0, _0810C088 ldrb r1, [r0, 0x1] ldrb r2, [r0] adds r1, r2 ldrb r0, [r0, 0x2] cmp r1, r0 bne _0810C094 ldr r1, _0810C08C ldr r2, _0810C090 adds r0, r2, 0 strh r0, [r1] adds r0, r5, 0 bl sub_810C31C b _0810C0B8 .align 2, 0 _0810C088: .4byte 0x02039248 _0810C08C: .4byte 0x0202e8dc _0810C090: .4byte 0x0000ffff _0810C094: adds r0, r5, 0 bl sub_810C368 b _0810C0B8 _0810C09C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0810C0B8 movs r0, 0x5 bl audio_play ldr r1, _0810C0C0 ldr r2, _0810C0C4 adds r0, r2, 0 strh r0, [r1] adds r0, r4, 0 bl sub_810C31C _0810C0B8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810C0C0: .4byte 0x0202e8dc _0810C0C4: .4byte 0x0000ffff thumb_func_end sub_810BF7C thumb_func_start sub_810C0C8 sub_810C0C8: @ 810C0C8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r2, _0810C0F4 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0810C110 ldr r4, _0810C0F8 ldrb r0, [r4] cmp r0, 0 beq _0810C0FC movs r0, 0x5 movs r1, 0x14 bl sub_810BD64 ldrb r0, [r4] subs r0, 0x1 strb r0, [r4] b _0810C158 .align 2, 0 _0810C0F4: .4byte 0x03001770 _0810C0F8: .4byte 0x02039248 _0810C0FC: ldrb r0, [r4, 0x1] cmp r0, 0 beq _0810C1BA adds r0, r5, 0 movs r1, 0 bl sub_810C1C8 ldrb r0, [r4, 0x1] subs r0, 0x1 b _0810C150 _0810C110: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0810C168 ldr r4, _0810C134 ldrb r0, [r4] ldrb r1, [r4, 0x3] cmp r0, r1 beq _0810C138 movs r0, 0x5 movs r1, 0x14 bl sub_810BD64 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0810C158 .align 2, 0 _0810C134: .4byte 0x02039248 _0810C138: ldrb r0, [r4, 0x1] ldrb r1, [r4] adds r0, r1 ldrb r1, [r4, 0x2] cmp r0, r1 beq _0810C1BA adds r0, r5, 0 movs r1, 0 bl sub_810C1C8 ldrb r0, [r4, 0x1] adds r0, 0x1 _0810C150: strb r0, [r4, 0x1] ldrb r0, [r4, 0x1] bl sub_810BB88 _0810C158: movs r0, 0x1 bl sub_810BF38 adds r0, r5, 0 movs r1, 0x1 bl sub_810C1C8 b _0810C1BA _0810C168: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0810C17A movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0810C190 _0810C17A: movs r0, 0x5 bl audio_play adds r0, r5, 0 movs r1, 0 bl sub_810C1C8 adds r0, r5, 0 bl sub_810C23C b _0810C1AC _0810C190: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0810C1BA movs r0, 0x5 bl audio_play adds r0, r5, 0 movs r1, 0 bl sub_810C1C8 movs r0, 0 bl sub_810BDAC _0810C1AC: ldr r0, _0810C1C0 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _0810C1C4 str r0, [r1] _0810C1BA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810C1C0: .4byte 0x03004b20 _0810C1C4: .4byte sub_810BF7C thumb_func_end sub_810C0C8 thumb_func_start sub_810C1C8 sub_810C1C8: @ 810C1C8 push {r4-r6,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 ldr r6, _0810C22C cmp r1, 0 bne _0810C1D8 movs r6, 0x5 _0810C1D8: ldr r1, _0810C230 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 ldr r2, _0810C234 ldrb r1, [r2, 0x1] ldrh r0, [r0, 0x8] subs r0, r1 lsls r1, r0, 16 lsrs r0, r1, 16 cmp r0, 0x8 bhi _0810C226 asrs r0, r1, 16 ldrb r2, [r2] cmp r0, r2 beq _0810C226 movs r2, 0 lsls r0, 1 adds r1, r0, 0x1 lsls r5, r1, 5 ldr r3, _0810C238 adds r0, 0x2 lsls r4, r0, 5 _0810C208: adds r0, r2, 0 adds r0, 0xF adds r1, r5, r0 lsls r1, 1 adds r1, r3 strh r6, [r1] adds r0, r4, r0 lsls r0, 1 adds r0, r3 strh r6, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xD bls _0810C208 _0810C226: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810C22C: .4byte 0x00001005 _0810C230: .4byte 0x03004b20 _0810C234: .4byte 0x02039248 _0810C238: .4byte 0x020221cc thumb_func_end sub_810C1C8 thumb_func_start sub_810C23C sub_810C23C: @ 810C23C push {r4-r7,lr} lsls r0, 24 lsrs r1, r0, 24 ldr r7, _0810C25C ldrb r0, [r7] ldrb r2, [r7, 0x1] adds r0, r2 lsls r0, 24 lsrs r0, 24 ldrb r2, [r7, 0x2] cmp r0, r2 bne _0810C260 movs r0, 0 bl sub_810BDAC b _0810C2A2 .align 2, 0 _0810C25C: .4byte 0x02039248 _0810C260: ldr r4, _0810C2A8 lsls r3, r0, 3 movs r0, 0xFF lsls r0, 3 adds r4, r0 adds r3, r4 ldr r5, [r3] ldr r6, [r3, 0x4] ldr r0, _0810C2AC lsls r2, r1, 2 adds r2, r1 lsls r2, 3 adds r2, r0 movs r1, 0x8 ldrsh r0, [r2, r1] lsls r0, 3 adds r0, r4 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r3] str r1, [r3, 0x4] movs r1, 0x8 ldrsh r0, [r2, r1] lsls r0, 3 adds r0, r4 str r5, [r0] str r6, [r0, 0x4] ldrb r0, [r7, 0x1] bl sub_810BB88 movs r0, 0 bl sub_810BDAC _0810C2A2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810C2A8: .4byte 0x02025734 _0810C2AC: .4byte 0x03004b20 thumb_func_end sub_810C23C thumb_func_start sub_810C2B0 sub_810C2B0: @ 810C2B0 push {lr} movs r0, 0 bl SetBgTilemapBuffer movs r0, 0x1 bl SetBgTilemapBuffer bl BuyMenuFreeMemory pop {r0} bx r0 thumb_func_end sub_810C2B0 thumb_func_start sub_810C2C8 sub_810C2C8: @ 810C2C8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0810C308 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0810C300 ldr r4, _0810C30C ldrb r0, [r4] cmp r0, 0x3 bne _0810C2E8 ldr r1, _0810C310 ldr r0, _0810C314 str r0, [r1] _0810C2E8: bl sub_810C2B0 ldr r0, _0810C318 ldrb r1, [r4] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl SetMainCallback2 adds r0, r5, 0 bl DestroyTask _0810C300: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810C308: .4byte 0x0202f388 _0810C30C: .4byte 0x02039244 _0810C310: .4byte 0x0300485c _0810C314: .4byte sub_8080990 _0810C318: .4byte gUnknown_083F7EA8 thumb_func_end sub_810C2C8 thumb_func_start sub_810C31C sub_810C31C: @ 810C31C push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x1 negs r0, r0 movs r5, 0 str r5, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0810C358 ldrb r0, [r0] cmp r0, 0x1 bls _0810C342 ldr r0, _0810C35C strh r5, [r0] _0810C342: ldr r0, _0810C360 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0810C364 str r0, [r1] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810C358: .4byte 0x02039244 _0810C35C: .4byte 0x0203855e _0810C360: .4byte 0x03004b20 _0810C364: .4byte sub_810C2C8 thumb_func_end sub_810C31C thumb_func_start sub_810C368 sub_810C368: @ 810C368 push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r0, _0810C3E8 ldrb r0, [r0] cmp r0, 0x1 bls _0810C37C movs r4, 0x2 _0810C37C: movs r0, 0 bl sub_80F98A4 movs r0, 0x1 bl sub_80F98A4 ldr r0, _0810C3EC bl sub_8071E2C adds r1, r4, 0x4 movs r0, 0x7 movs r2, 0xD movs r3, 0xB bl DrawDefaultWindow adds r4, 0x5 ldr r5, _0810C3F0 ldrb r2, [r5] ldr r3, _0810C3F4 ldr r0, _0810C3F8 ldr r0, [r0] str r0, [sp] movs r0, 0x8 adds r1, r4, 0 bl sub_80728E4 ldrb r3, [r5] movs r0, 0 str r0, [sp] movs r0, 0x5 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x8 adds r2, r4, 0 bl InitMenu ldr r2, _0810C3FC ldr r1, _0810C400 ldrb r0, [r1] ldrb r1, [r1, 0x1] adds r0, r1 strh r0, [r2] ldr r1, _0810C404 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _0810C408 str r1, [r0] add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810C3E8: .4byte 0x02039244 _0810C3EC: .4byte gWindowConfig_81E6E50 _0810C3F0: .4byte 0x0203924c _0810C3F4: .4byte gUnknown_083F7EF4 _0810C3F8: .4byte 0x03000758 _0810C3FC: .4byte 0x0203855e _0810C400: .4byte 0x02039248 _0810C404: .4byte 0x03004b20 _0810C408: .4byte sub_810C40C thumb_func_end sub_810C368 thumb_func_start sub_810C40C sub_810C40C: @ 810C40C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r4, r5, 0 ldr r2, _0810C43C ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0810C440 bl GetMenuCursorPos lsls r0, 24 cmp r0, 0 beq _0810C4BC movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 bl MoveMenuCursor b _0810C4BC .align 2, 0 _0810C43C: .4byte 0x03001770 _0810C440: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0810C46C bl GetMenuCursorPos lsls r0, 24 lsrs r0, 24 ldr r1, _0810C468 ldrb r1, [r1] subs r1, 0x1 cmp r0, r1 beq _0810C4BC movs r0, 0x5 bl audio_play movs r0, 0x1 bl MoveMenuCursor b _0810C4BC .align 2, 0 _0810C468: .4byte 0x0203924c _0810C46C: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0810C4A8 movs r0, 0x5 bl audio_play ldr r4, _0810C4A0 bl GetMenuCursorPos lsls r0, 24 lsrs r0, 24 ldr r1, _0810C4A4 ldr r1, [r1] adds r1, r0 ldrb r0, [r1] lsls r0, 3 adds r4, 0x4 adds r0, r4 ldr r1, [r0] adds r0, r5, 0 bl _call_via_r1 b _0810C4BC .align 2, 0 _0810C4A0: .4byte gUnknown_083F7EF4 _0810C4A4: .4byte 0x03000758 _0810C4A8: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0810C4BC movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_810C748 _0810C4BC: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_810C40C thumb_func_start sub_810C4C4 sub_810C4C4: @ 810C4C4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0810C4F8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0810C4F0 bl sub_810C2B0 ldr r0, _0810C4FC ldrh r0, [r0] lsls r0, 3 ldr r1, _0810C500 adds r0, r1 ldr r1, _0810C504 bl sub_8136130 adds r0, r4, 0 bl DestroyTask _0810C4F0: pop {r4} pop {r0} bx r0 .align 2, 0 _0810C4F8: .4byte 0x0202f388 _0810C4FC: .4byte 0x0203855e _0810C500: .4byte 0x02025f2c _0810C504: .4byte sub_810B96C thumb_func_end sub_810C4C4 thumb_func_start sub_810C508 sub_810C508: @ 810C508 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, _0810C538 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0810C53C str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0810C538: .4byte 0x03004b20 _0810C53C: .4byte sub_810C4C4 thumb_func_end sub_810C508 thumb_func_start sub_810C540 sub_810C540: @ 810C540 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, _0810C5A0 bl sub_8071E2C bl sub_8072DEC movs r0, 0x7 movs r1, 0x4 movs r2, 0xD movs r3, 0xB bl Reset ldr r0, _0810C5A4 ldr r4, _0810C5A8 ldr r3, _0810C5AC ldr r2, _0810C5B0 ldrb r1, [r2] ldrb r2, [r2, 0x1] adds r1, r2 lsls r1, 3 adds r1, r3 movs r2, 0xFF lsls r2, 3 adds r1, r2 ldrb r1, [r1] lsls r1, 2 adds r1, r4 ldr r1, [r1] bl StringCopy ldr r4, _0810C5B4 ldr r1, _0810C5B8 adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _0810C5BC adds r0, r5, 0 adds r1, r4, 0 movs r3, 0 bl DisplayItemMessageOnField pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810C5A0: .4byte gWindowConfig_81E6E50 _0810C5A4: .4byte 0x020231cc _0810C5A8: .4byte gUnknown_083F7EB8 _0810C5AC: .4byte 0x02025734 _0810C5B0: .4byte 0x02039248 _0810C5B4: .4byte 0x020234cc _0810C5B8: .4byte gUnknown_0840EC1F _0810C5BC: .4byte sub_810C5EC thumb_func_end sub_810C540 thumb_func_start sub_810C5C0 sub_810C5C0: @ 810C5C0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 movs r1, 0x1 bl sub_80F979C ldr r1, _0810C5E4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0810C5E8 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0810C5E4: .4byte 0x03004b20 _0810C5E8: .4byte sub_810C540 thumb_func_end sub_810C5C0 thumb_func_start sub_810C5EC sub_810C5EC: @ 810C5EC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x7 movs r1, 0x6 movs r2, 0x1 bl sub_8072974 ldr r1, _0810C60C adds r0, r4, 0 bl sub_80F914C pop {r4} pop {r0} bx r0 .align 2, 0 _0810C60C: .4byte gUnknown_083F7F24 thumb_func_end sub_810C5EC thumb_func_start sub_810C610 sub_810C610: @ 810C610 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x7 movs r1, 0x6 movs r2, 0xD movs r3, 0xB bl Reset ldr r1, _0810C658 ldrb r0, [r1, 0x1] ldrb r1, [r1] adds r0, r1 lsls r0, 24 lsrs r0, 24 bl sub_810CA6C ldr r5, _0810C65C ldr r1, _0810C660 adds r0, r5, 0 bl StringExpandPlaceholders ldr r2, _0810C664 adds r0, r4, 0 adds r1, r5, 0 movs r3, 0 bl DisplayItemMessageOnField bl sub_810BC98 bl sub_810BD08 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810C658: .4byte 0x02039248 _0810C65C: .4byte 0x020234cc _0810C660: .4byte gUnknown_0840EC33 _0810C664: .4byte sub_810C704 thumb_func_end sub_810C610 thumb_func_start sub_810C668 sub_810C668: @ 810C668 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 bl sub_80F98DC movs r0, 0x1 bl sub_80F98DC ldr r2, _0810C6CC ldrb r0, [r2, 0x2] ldrb r1, [r2, 0x3] cmp r0, r1 bls _0810C698 ldrb r0, [r2, 0x1] ldrb r1, [r2, 0x3] adds r0, r1 ldrb r2, [r2, 0x2] cmp r0, r2 beq _0810C698 movs r0, 0x1 movs r1, 0 bl sub_80F979C _0810C698: ldr r0, _0810C6D0 bl sub_8071E2C movs r0, 0x7 movs r1, 0x6 movs r2, 0xD movs r3, 0xB bl Reset movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl Reset ldr r1, _0810C6D4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0810C6D8 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0810C6CC: .4byte 0x02039248 _0810C6D0: .4byte gWindowConfig_81E6E50 _0810C6D4: .4byte 0x03004b20 _0810C6D8: .4byte sub_810BF7C thumb_func_end sub_810C668 thumb_func_start sub_810C6DC sub_810C6DC: @ 810C6DC push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0810C700 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0810C6F6 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0810C6FC _0810C6F6: adds r0, r2, 0 bl sub_810C668 _0810C6FC: pop {r0} bx r0 .align 2, 0 _0810C700: .4byte 0x03001770 thumb_func_end sub_810C6DC thumb_func_start sub_810C704 sub_810C704: @ 810C704 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0810C738 bl sub_8071E2C ldr r0, _0810C73C ldrb r0, [r0, 0x1] bl sub_810BC84 movs r0, 0x1 movs r1, 0x1 bl sub_80F979C ldr r1, _0810C740 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0810C744 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0810C738: .4byte gWindowConfig_81E6E34 _0810C73C: .4byte 0x02039248 _0810C740: .4byte 0x03004b20 _0810C744: .4byte sub_810C6DC thumb_func_end sub_810C704 thumb_func_start sub_810C748 sub_810C748: @ 810C748 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl sub_80F98DC movs r0, 0x1 bl sub_80F98DC bl sub_8072DEC movs r0, 0x7 movs r1, 0x4 movs r2, 0xD movs r3, 0xB bl Reset ldr r1, _0810C780 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0810C784 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0810C780: .4byte 0x03004b20 _0810C784: .4byte sub_810BF7C thumb_func_end sub_810C748 thumb_func_start sub_810C788 sub_810C788: @ 810C788 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _0810C834 bl GetNature lsls r0, 24 lsrs r0, 24 ldr r7, _0810C838 ldrh r1, [r7] lsls r1, 3 ldr r5, _0810C83C adds r1, r5 bl sub_810CAE4 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _0810C840 ldr r2, _0810C844 ldr r1, _0810C848 adds r5, r1 ldrh r1, [r7] lsls r1, 3 adds r1, r5 movs r6, 0xFF lsls r6, 3 adds r1, r6 ldrb r1, [r1] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl StringCopy ldrb r0, [r7] bl sub_810CA6C ldrh r0, [r7] lsls r0, 3 adds r0, r5 adds r0, r6 ldrb r0, [r0] lsls r0, 8 strh r0, [r7] lsls r4, 16 asrs r4, 16 cmp r4, 0 bne _0810C7F4 adds r0, 0x1 strh r0, [r7] _0810C7F4: cmp r4, 0 ble _0810C7FE ldrh r0, [r7] adds r0, 0x2 strh r0, [r7] _0810C7FE: cmp r4, 0 bge _0810C808 ldrh r0, [r7] adds r0, 0x3 strh r0, [r7] _0810C808: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0810C84C mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 ldr r1, _0810C850 str r1, [r0] add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810C834: .4byte 0x030045c0 _0810C838: .4byte 0x0203855e _0810C83C: .4byte 0x02025f2c _0810C840: .4byte 0x030041c0 _0810C844: .4byte gUnknown_083F7EB8 _0810C848: .4byte 0xfffff808 _0810C84C: .4byte 0x03004b20 _0810C850: .4byte sub_810C2C8 thumb_func_end sub_810C788 thumb_func_start sub_810C854 sub_810C854: @ 810C854 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r4, _0810C8B8 ldrb r0, [r4] bl sub_80C8478 ldr r0, _0810C8BC ldr r3, _0810C8C0 ldr r2, _0810C8C4 ldrh r1, [r4] lsls r1, 3 adds r1, r2 movs r2, 0xFF lsls r2, 3 adds r1, r2 ldrb r1, [r1] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl StringCopy ldr r1, _0810C8C8 ldrh r0, [r4] strh r0, [r1] lsls r0, 24 lsrs r0, 24 bl sub_810CA6C movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0810C8CC lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0810C8D0 str r1, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810C8B8: .4byte 0x0203855e _0810C8BC: .4byte 0x020231cc _0810C8C0: .4byte gUnknown_083F7EB8 _0810C8C4: .4byte 0x02025734 _0810C8C8: .4byte 0x0202e8dc _0810C8CC: .4byte 0x03004b20 _0810C8D0: .4byte sub_810C2C8 thumb_func_end sub_810C854 thumb_func_start sub_810C8D4 sub_810C8D4: @ 810C8D4 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 ble _0810C8E4 movs r0, 0 strh r0, [r4, 0x2E] _0810C8E4: movs r0, 0x2E ldrsh r5, [r4, r0] cmp r5, 0 beq _0810C8F2 cmp r5, 0x1 beq _0810C918 b _0810C944 _0810C8F2: 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, _0810C914 str r0, [r4, 0x10] adds r0, r4, 0 bl InitSpriteAffineAnim movs r0, 0x1 strh r0, [r4, 0x2E] strh r5, [r4, 0x30] b _0810C944 .align 2, 0 _0810C914: .4byte gUnknown_083F7F70 _0810C918: ldrh r0, [r4, 0x30] adds r0, 0x1 movs r2, 0 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0xB ble _0810C944 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, _0810C94C str r0, [r4, 0x1C] _0810C944: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810C94C: .4byte SpriteCallbackDummy thumb_func_end sub_810C8D4 thumb_func_start sub_810C950 sub_810C950: @ 810C950 lsls r0, 24 ldr r1, _0810C988 lsrs r0, 21 adds r0, r1 movs r2, 0xFF lsls r2, 3 adds r1, r0, r2 movs r2, 0 strb r2, [r1] ldr r3, _0810C98C adds r1, r0, r3 strb r2, [r1] adds r3, 0x1 adds r1, r0, r3 strb r2, [r1] adds r3, 0x1 adds r1, r0, r3 strb r2, [r1] adds r3, 0x1 adds r1, r0, r3 strb r2, [r1] adds r3, 0x1 adds r1, r0, r3 strb r2, [r1] ldr r1, _0810C990 adds r0, r1 strb r2, [r0] bx lr .align 2, 0 _0810C988: .4byte 0x02025734 _0810C98C: .4byte 0x000007f9 _0810C990: .4byte 0x000007fe thumb_func_end sub_810C950 thumb_func_start sub_810C994 sub_810C994: @ 810C994 push {r4,lr} movs r4, 0 _0810C998: adds r0, r4, 0 bl sub_810C950 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x27 bls _0810C998 pop {r4} pop {r0} bx r0 thumb_func_end sub_810C994 thumb_func_start sub_810C9B0 sub_810C9B0: @ 810C9B0 push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x1 bl sub_810CA9C lsls r0, 24 lsrs r5, r0, 24 movs r1, 0x1 _0810C9C0: adds r0, r1, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r6, 0 adds r1, r4, 0 bl sub_810CA9C lsls r0, 24 lsrs r0, 24 cmp r5, r0 bcs _0810C9D8 adds r5, r0, 0 _0810C9D8: adds r1, r4, 0 cmp r1, 0x4 bls _0810C9C0 adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_810C9B0 thumb_func_start sub_810C9E8 sub_810C9E8: @ 810C9E8 push {lr} movs r1, 0x6 bl sub_810CA9C lsls r0, 24 lsrs r0, 24 cmp r0, 0x63 bls _0810C9FA movs r0, 0x63 _0810C9FA: pop {r1} bx r1 thumb_func_end sub_810C9E8 thumb_func_start sub_810CA00 sub_810CA00: @ 810CA00 push {lr} movs r1, 0 ldr r3, _0810CA1C movs r2, 0xFF lsls r2, 3 _0810CA0A: lsls r0, r1, 3 adds r0, r3 adds r0, r2 ldrb r0, [r0] cmp r0, 0 bne _0810CA20 lsls r0, r1, 24 asrs r0, 24 b _0810CA2E .align 2, 0 _0810CA1C: .4byte 0x02025734 _0810CA20: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x27 bls _0810CA0A movs r0, 0x1 negs r0, r0 _0810CA2E: pop {r1} bx r1 thumb_func_end sub_810CA00 thumb_func_start sub_810CA34 sub_810CA34: @ 810CA34 push {r4,lr} adds r4, r0, 0 bl sub_810CA00 lsls r0, 24 asrs r2, r0, 24 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _0810CA64 ldr r0, _0810CA60 lsls r2, 3 movs r1, 0xFF lsls r1, 3 adds r0, r1 adds r2, r0 ldr r0, [r4] ldr r1, [r4, 0x4] str r0, [r2] str r1, [r2, 0x4] movs r0, 0x1 b _0810CA66 .align 2, 0 _0810CA60: .4byte 0x02025734 _0810CA64: movs r0, 0 _0810CA66: pop {r4} pop {r1} bx r1 thumb_func_end sub_810CA34 thumb_func_start sub_810CA6C sub_810CA6C: @ 810CA6C push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _0810CA90 lsls r0, r2, 3 adds r0, r1 movs r1, 0xFF lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0810CA94 adds r0, r2, 0 bl sub_810C950 movs r0, 0x1 b _0810CA96 .align 2, 0 _0810CA90: .4byte 0x02025734 _0810CA94: movs r0, 0 _0810CA96: pop {r1} bx r1 thumb_func_end sub_810CA6C thumb_func_start sub_810CA9C sub_810CA9C: @ 810CA9C push {lr} lsls r1, 24 lsrs r1, 24 adds r2, r1, 0 cmp r1, 0 bne _0810CAAC ldrb r0, [r0] b _0810CADE _0810CAAC: cmp r1, 0x1 bne _0810CAB4 ldrb r0, [r0, 0x1] b _0810CADE _0810CAB4: cmp r1, 0x2 bne _0810CABC ldrb r0, [r0, 0x2] b _0810CADE _0810CABC: cmp r1, 0x3 bne _0810CAC4 ldrb r0, [r0, 0x3] b _0810CADE _0810CAC4: cmp r1, 0x4 bne _0810CACC ldrb r0, [r0, 0x4] b _0810CADE _0810CACC: cmp r1, 0x5 bne _0810CAD4 ldrb r0, [r0, 0x5] b _0810CADE _0810CAD4: cmp r2, 0x6 beq _0810CADC movs r0, 0 b _0810CADE _0810CADC: ldrb r0, [r0, 0x6] _0810CADE: pop {r1} bx r1 thumb_func_end sub_810CA9C thumb_func_start sub_810CAE4 sub_810CAE4: @ 810CAE4 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, _0810CB40 mov r9, r1 lsls r1, r0, 2 adds r7, r1, r0 _0810CAFE: adds r0, r4, 0x1 lsls r0, 24 lsrs r5, r0, 24 mov r0, r8 adds r1, r5, 0 bl sub_810CA9C lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 ble _0810CB2A 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 _0810CB2A: adds r4, r5, 0 cmp r4, 0x4 bls _0810CAFE lsls r0, r6, 16 asrs r0, 16 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0810CB40: .4byte gUnknown_083F7E28 thumb_func_end sub_810CAE4 thumb_func_start sub_810CB44 sub_810CB44: @ 810CB44 push {r4,lr} adds r4, r1, 0 movs r1, 0 bl sub_810CA9C lsls r0, 24 ldr r1, _0810CB64 lsrs r0, 22 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl StringCopy pop {r4} pop {r0} bx r0 .align 2, 0 _0810CB64: .4byte gUnknown_083F7EB8 thumb_func_end sub_810CB44 thumb_func_start sub_810CB68 sub_810CB68: @ 810CB68 push {r4-r7,lr} adds r6, r1, 0 lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r7, _0810CB98 _0810CB74: lsls r1, r4, 3 ldr r0, _0810CB9C adds r1, r0 adds r0, r5, 0 bl sub_810CAE4 lsls r0, 16 cmp r0, 0 ble _0810CBA0 adds r0, r4, 0x1 lsls r0, 2 adds r0, r7 ldr r1, [r0] adds r0, r6, 0 bl StringCopy movs r0, 0x1 b _0810CBAC .align 2, 0 _0810CB98: .4byte gUnknown_083F7EB8 _0810CB9C: .4byte gUnknown_083F7F9C _0810CBA0: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _0810CB74 movs r0, 0 _0810CBAC: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_810CB68 thumb_func_start sub_810CBB4 sub_810CBB4: @ 810CBB4 push {lr} ldr r0, _0810CBDC ldrb r0, [r0, 0x15] cmp r0, 0x1 bne _0810CBF4 ldr r0, _0810CBE0 bl FlagGet lsls r0, 24 cmp r0, 0 bne _0810CBF4 ldr r1, _0810CBE4 ldr r0, _0810CBE8 str r0, [r1] ldr r1, _0810CBEC ldr r0, _0810CBF0 str r0, [r1] movs r0, 0x1 b _0810CBF6 .align 2, 0 _0810CBDC: .4byte 0x0202e828 _0810CBE0: .4byte 0x00000828 _0810CBE4: .4byte 0x0300485c _0810CBE8: .4byte sub_808AB90 _0810CBEC: .4byte 0x03005ce4 _0810CBF0: .4byte sub_810CBFC _0810CBF4: movs r0, 0 _0810CBF6: pop {r1} bx r1 thumb_func_end sub_810CBB4 thumb_func_start sub_810CBFC sub_810CBFC: @ 810CBFC push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _0810CC24 ldr r1, _0810CC28 ldrb r1, [r1] str r1, [r2] ldr r2, _0810CC2C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _0810CC30 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] pop {r0} bx r0 .align 2, 0 _0810CC24: .4byte 0x0202ff84 _0810CC28: .4byte 0x03005ce0 _0810CC2C: .4byte 0x03004b20 _0810CC30: .4byte sub_810CC34 thumb_func_end sub_810CBFC thumb_func_start sub_810CC34 sub_810CC34: @ 810CC34 push {lr} movs r0, 0xCF bl audio_play ldr r0, _0810CC4C bl FlagSet ldr r0, _0810CC50 bl script_env_1_execute_new_script pop {r0} bx r0 .align 2, 0 _0810CC4C: .4byte 0x00000828 _0810CC50: .4byte gUnknown_081B694A thumb_func_end sub_810CC34 thumb_func_start sub_810CC54 sub_810CC54: @ 810CC54 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_810CC54 thumb_func_start sub_810CC6C sub_810CC6C: @ 810CC6C push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_810CC6C thumb_func_start sub_810CC80 sub_810CC80: @ 810CC80 push {r4,lr} sub sp, 0x8 movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 19 movs r1, 0 strh r1, [r0] adds r0, 0xC strh r1, [r0] subs r0, 0x2 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x10 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] mov r0, sp strh r1, [r0] ldr r1, _0810CD34 str r0, [r1] movs r0, 0xC0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _0810CD38 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, _0810CD3C str r0, [r1, 0x8] ldr r0, [r1, 0x8] mov r0, sp strh r4, [r0] str r0, [r1] ldr r0, _0810CD40 str r0, [r1, 0x4] ldr r0, _0810CD44 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetPaletteFade bl ResetTasks bl ResetSpriteData ldr r3, _0810CD48 ldrh r2, [r3] strh r4, [r3] ldr r4, _0810CD4C ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r0, _0810CD50 bl SetVBlankCallback ldr r0, _0810CD54 bl SetMainCallback2 bl sub_810CD5C lsls r0, 24 cmp r0, 0 bne _0810CD2A ldr r0, _0810CD58 ldr r0, [r0, 0x8] bl SetMainCallback2 _0810CD2A: add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _0810CD34: .4byte 0x040000d4 _0810CD38: .4byte 0x8100c000 _0810CD3C: .4byte 0x85000100 _0810CD40: .4byte 0x05000002 _0810CD44: .4byte 0x810001ff _0810CD48: .4byte 0x04000208 _0810CD4C: .4byte 0x04000200 _0810CD50: .4byte sub_810CC6C _0810CD54: .4byte sub_810CC54 _0810CD58: .4byte 0x03001770 thumb_func_end sub_810CC80 thumb_func_start sub_810CD5C sub_810CD5C: @ 810CD5C 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, _0810CD9C ldrb r0, [r4] cmp r0, 0 beq _0810CDB0 adds r7, r4, 0 adds r0, r4, 0x4 mov r12, r0 _0810CD7E: lsls r2, r3, 3 adds r1, r2, r7 ldrb r0, [r1] cmp r0, r6 bne _0810CDA0 ldrb r0, [r1, 0x1] cmp r0, r5 bne _0810CDA0 mov r1, r12 adds r0, r2, r1 ldr r0, [r0] bl _call_via_r0 movs r0, 0x1 b _0810CDB2 .align 2, 0 _0810CD9C: .4byte gUnknown_083F7FC4 _0810CDA0: 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 _0810CD7E _0810CDB0: movs r0, 0 _0810CDB2: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_810CD5C thumb_func_start sub_810CDB8 sub_810CDB8: @ 810CDB8 push {r4-r6,lr} lsls r0, 24 lsls r1, 24 lsrs r5, r0, 24 lsrs r4, r1, 24 movs r3, 0 ldr r1, _0810CDE4 ldrb r0, [r1] cmp r0, 0 beq _0810CDF8 adds r6, r1, 0 _0810CDCE: lsls r0, r3, 3 adds r2, r0, r6 ldrb r0, [r2] cmp r0, r5 bne _0810CDE8 ldrb r0, [r2, 0x1] cmp r0, r4 bne _0810CDE8 ldrb r0, [r2, 0x2] b _0810CDFA .align 2, 0 _0810CDE4: .4byte gUnknown_083F7FC4 _0810CDE8: 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 _0810CDCE _0810CDF8: movs r0, 0 _0810CDFA: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_810CDB8 thumb_func_start fade_type_for_given_maplight_pair fade_type_for_given_maplight_pair: @ 810CE00 push {r4-r6,lr} lsls r0, 24 lsls r1, 24 lsrs r5, r0, 24 lsrs r4, r1, 24 movs r3, 0 ldr r1, _0810CE2C ldrb r0, [r1] cmp r0, 0 beq _0810CE40 adds r6, r1, 0 _0810CE16: lsls r0, r3, 3 adds r2, r0, r6 ldrb r0, [r2] cmp r0, r5 bne _0810CE30 ldrb r0, [r2, 0x1] cmp r0, r4 bne _0810CE30 ldrb r0, [r2, 0x3] b _0810CE42 .align 2, 0 _0810CE2C: .4byte gUnknown_083F7FC4 _0810CE30: 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 _0810CE16 _0810CE40: movs r0, 0 _0810CE42: pop {r4-r6} pop {r1} bx r1 thumb_func_end fade_type_for_given_maplight_pair thumb_func_start sub_810CE48 sub_810CE48: @ 810CE48 push {lr} ldr r0, _0810CE58 movs r1, 0 bl CreateTask pop {r0} bx r0 .align 2, 0 _0810CE58: .4byte sub_810CE5C thumb_func_end sub_810CE48 thumb_func_start sub_810CE5C sub_810CE5C: @ 810CE5C lsls r0, 24 lsrs r0, 24 ldr r2, _0810CE70 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _0810CE74 str r0, [r1] bx lr .align 2, 0 _0810CE70: .4byte 0x03004b20 _0810CE74: .4byte sub_810CE78 thumb_func_end sub_810CE5C thumb_func_start sub_810CE78 sub_810CE78: @ 810CE78 push {r4-r6,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r6, 0x80 lsls r6, 19 movs r5, 0 strh r5, [r6] ldr r0, _0810CEE8 ldr r1, _0810CEEC bl LZ77UnCompVram ldr r0, _0810CEF0 ldr r1, _0810CEF4 bl LZ77UnCompVram ldr r0, _0810CEF8 movs r1, 0xE0 movs r2, 0x20 bl LoadPalette ldr r0, _0810CEFC movs r1, 0xE0 movs r2, 0x10 bl LoadPalette ldr r1, _0810CF00 ldr r2, _0810CF04 adds r0, r2, 0 strh r0, [r1] ldr r0, _0810CF08 strh r5, [r0] adds r0, 0x2 strh r5, [r0] subs r1, 0x48 ldr r2, _0810CF0C adds r0, r2, 0 strh r0, [r1] movs r1, 0x8A lsls r1, 5 adds r0, r1, 0 strh r0, [r6] ldr r1, _0810CF10 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0810CF14 str r1, [r0] movs r2, 0 movs r1, 0x10 strh r1, [r0, 0x8] strh r2, [r0, 0xA] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810CEE8: .4byte gUnknown_083F828C _0810CEEC: .4byte 0x0600c000 _0810CEF0: .4byte gUnknown_083F80AC _0810CEF4: .4byte 0x0600f800 _0810CEF8: .4byte gUnknown_083F804C _0810CEFC: .4byte gUnknown_083F809C _0810CF00: .4byte REG_BLDCNT _0810CF04: .4byte 0x00003e41 _0810CF08: .4byte REG_BLDALPHA _0810CF0C: .4byte 0x00001f0c _0810CF10: .4byte 0x03004b20 _0810CF14: .4byte sub_810CF18 thumb_func_end sub_810CE78 thumb_func_start sub_810CF18 sub_810CF18: @ 810CF18 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0810CF44 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r3, r1, r2 ldrh r2, [r3, 0xA] movs r1, 0x80 lsls r1, 5 adds r0, r2, r1 lsls r0, 16 lsrs r0, 16 ldr r1, _0810CF48 strh r0, [r1] cmp r2, 0x10 bhi _0810CF4C ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] b _0810CF54 .align 2, 0 _0810CF44: .4byte 0x03004b20 _0810CF48: .4byte REG_BLDALPHA _0810CF4C: movs r0, 0 strh r0, [r3, 0xC] ldr r0, _0810CF58 str r0, [r3] _0810CF54: pop {r0} bx r0 .align 2, 0 _0810CF58: .4byte sub_810CF5C thumb_func_end sub_810CF18 thumb_func_start sub_810CF5C sub_810CF5C: @ 810CF5C push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0810CF94 ldr r3, _0810CF98 adds r1, r3, 0 strh r1, [r2] ldr r2, _0810CF9C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r1, [r4, 0xC] cmp r1, 0x7 bhi _0810CFA4 adds r0, r1, 0x1 strh r0, [r4, 0xC] lsls r1, 1 ldr r0, _0810CFA0 adds r0, r1, r0 movs r2, 0x10 subs r2, r1 lsls r2, 16 lsrs r2, 16 movs r1, 0xE0 bl LoadPalette b _0810CFB6 .align 2, 0 _0810CF94: .4byte REG_BLDALPHA _0810CF98: .4byte 0x00001010 _0810CF9C: .4byte 0x03004b20 _0810CFA0: .4byte gUnknown_083F809C _0810CFA4: ldr r0, _0810CFBC movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r0, _0810CFC0 str r0, [r4] movs r0, 0x8 strh r0, [r4, 0xC] _0810CFB6: pop {r4} pop {r0} bx r0 .align 2, 0 _0810CFBC: .4byte gUnknown_083F804C _0810CFC0: .4byte sub_810CFC4 thumb_func_end sub_810CF5C thumb_func_start sub_810CFC4 sub_810CFC4: @ 810CFC4 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0810CFE4 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 _0810CFE8 subs r0, r2, 0x1 strh r0, [r1, 0xC] b _0810CFF0 .align 2, 0 _0810CFE4: .4byte 0x03004b20 _0810CFE8: ldr r0, _0810CFF4 ldr r0, [r0, 0x8] bl SetMainCallback2 _0810CFF0: pop {r0} bx r0 .align 2, 0 _0810CFF4: .4byte 0x03001770 thumb_func_end sub_810CFC4 thumb_func_start sub_810CFF8 sub_810CFF8: @ 810CFF8 push {lr} ldr r0, _0810D008 movs r1, 0 bl CreateTask pop {r0} bx r0 .align 2, 0 _0810D008: .4byte sub_810D00C thumb_func_end sub_810CFF8 thumb_func_start sub_810D00C sub_810D00C: @ 810D00C lsls r0, 24 lsrs r0, 24 ldr r2, _0810D020 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _0810D024 str r0, [r1] bx lr .align 2, 0 _0810D020: .4byte 0x03004b20 _0810D024: .4byte sub_810D028 thumb_func_end sub_810D00C thumb_func_start sub_810D028 sub_810D028: @ 810D028 push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r6, 0x80 lsls r6, 19 movs r4, 0 strh r4, [r6] ldr r0, _0810D098 ldr r1, _0810D09C bl LZ77UnCompVram ldr r0, _0810D0A0 ldr r1, _0810D0A4 bl LZ77UnCompVram ldr r0, _0810D0A8 strh r4, [r0] adds r0, 0x2 strh r4, [r0] adds r0, 0x2 strh r4, [r0] ldr r1, _0810D0AC ldr r2, _0810D0B0 adds r0, r2, 0 strh r0, [r1] movs r1, 0x8A lsls r1, 5 adds r0, r1, 0 strh r0, [r6] ldr r0, _0810D0B4 movs r1, 0xE0 movs r2, 0x20 bl LoadPalette ldr r0, _0810D0B8 movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r1, _0810D0BC lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0810D0C0 str r1, [r0] movs r2, 0 movs r1, 0x10 strh r1, [r0, 0x8] strh r2, [r0, 0xA] strh r2, [r0, 0xC] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810D098: .4byte gUnknown_083F828C _0810D09C: .4byte 0x0600c000 _0810D0A0: .4byte gUnknown_083F80AC _0810D0A4: .4byte 0x0600f800 _0810D0A8: .4byte REG_BLDCNT _0810D0AC: .4byte REG_BG0CNT _0810D0B0: .4byte 0x00001f0c _0810D0B4: .4byte gUnknown_083F804C _0810D0B8: .4byte gUnknown_083F806C _0810D0BC: .4byte 0x03004b20 _0810D0C0: .4byte sub_810D0C4 thumb_func_end sub_810D028 thumb_func_start sub_810D0C4 sub_810D0C4: @ 810D0C4 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0810D0F8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r3, r1, r2 ldrh r1, [r3, 0xC] cmp r1, 0xF bhi _0810D100 adds r2, r1, 0x1 adds r0, r2, 0x1 strh r0, [r3, 0xC] movs r0, 0xF subs r0, r1 lsls r0, 1 ldr r1, _0810D0FC adds r0, r1 lsls r2, 17 lsrs r2, 16 movs r1, 0xE0 bl LoadPalette b _0810D114 .align 2, 0 _0810D0F8: .4byte 0x03004b20 _0810D0FC: .4byte gUnknown_083F808C _0810D100: ldr r1, _0810D118 ldr r2, _0810D11C adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 ldr r2, _0810D120 adds r0, r2, 0 strh r0, [r1] ldr r0, _0810D124 str r0, [r3] _0810D114: pop {r0} bx r0 .align 2, 0 _0810D118: .4byte REG_BLDALPHA _0810D11C: .4byte 0x00001010 _0810D120: .4byte 0x00003e41 _0810D124: .4byte sub_810D128 thumb_func_end sub_810D0C4 thumb_func_start sub_810D128 sub_810D128: @ 810D128 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0810D158 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r3, r1, r2 ldrh r0, [r3, 0xA] movs r1, 0x10 subs r1, r0 lsls r1, 16 movs r2, 0x80 lsls r2, 21 adds r0, r1, r2 lsrs r0, 16 ldr r2, _0810D15C strh r0, [r2] cmp r1, 0 beq _0810D160 ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] b _0810D172 .align 2, 0 _0810D158: .4byte 0x03004b20 _0810D15C: .4byte REG_BLDALPHA _0810D160: ldr r0, _0810D178 movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r0, _0810D17C ldr r0, [r0, 0x8] bl SetMainCallback2 _0810D172: pop {r0} bx r0 .align 2, 0 _0810D178: .4byte gUnknown_083F806C _0810D17C: .4byte 0x03001770 thumb_func_end sub_810D128 thumb_func_start sub_810D180 sub_810D180: @ 810D180 push {r4-r7,lr} sub sp, 0x4 bl sp000_heal_pokemon ldr r4, _0810D1A0 adds r0, r4, 0 bl FlagGet lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 bne _0810D1A8 ldr r0, _0810D1A4 strb r1, [r0] b _0810D1B4 .align 2, 0 _0810D1A0: .4byte 0x00000804 _0810D1A4: .4byte 0x02039324 _0810D1A8: ldr r1, _0810D1E8 movs r0, 0 strb r0, [r1] adds r0, r4, 0 bl FlagSet _0810D1B4: movs r0, 0x1 bl sub_8053108 cmp r0, 0 bne _0810D1D4 ldr r2, _0810D1EC 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 _0810D1D4: bl sub_8047A10 ldr r0, _0810D1EC ldrb r0, [r0, 0x8] cmp r0, 0 bne _0810D1F0 movs r0, 0x1 bl sub_80537CC b _0810D1F6 .align 2, 0 _0810D1E8: .4byte 0x02039324 _0810D1EC: .4byte gSaveBlock2 _0810D1F0: movs r0, 0x2 bl sub_80537CC _0810D1F6: movs r6, 0 movs r5, 0 mov r7, sp _0810D1FC: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _0810D260 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x5 bl PokemonGetField cmp r0, 0 beq _0810D23A adds r0, r4, 0 movs r1, 0x6 bl PokemonGetField cmp r0, 0 bne _0810D23A adds r0, r4, 0 movs r1, 0x43 bl PokemonGetField cmp r0, 0 bne _0810D23A movs r0, 0x1 strb r0, [r7] adds r0, r4, 0 movs r1, 0x43 mov r2, sp bl pokemon_setattr movs r6, 0x1 _0810D23A: adds r5, 0x1 cmp r5, 0x5 ble _0810D1FC cmp r6, 0x1 bne _0810D250 movs r0, 0x2A bl sav12_xor_increment ldr r0, _0810D264 bl FlagSet _0810D250: ldr r0, _0810D268 bl SetMainCallback2 movs r0, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0810D260: .4byte 0x03004360 _0810D264: .4byte 0x0000083b _0810D268: .4byte sub_8141F90 thumb_func_end sub_810D180 thumb_func_start sp0C8_whiteout_maybe sp0C8_whiteout_maybe: @ 810D26C push {lr} ldr r0, _0810D27C bl SetMainCallback2 movs r0, 0 pop {r1} bx r1 .align 2, 0 _0810D27C: .4byte c2_whiteout thumb_func_end sp0C8_whiteout_maybe thumb_func_start sub_810D280 sub_810D280: @ 810D280 push {r4,lr} ldr r0, _0810D2A4 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _0810D2A8 bl VarGet lsls r0, 16 lsrs r0, 16 lsls r4, 16 orrs r4, r0 adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0810D2A4: .4byte 0x00004024 _0810D2A8: .4byte 0x00004025 thumb_func_end sub_810D280 thumb_func_start sub_810D2AC sub_810D2AC: @ 810D2AC push {r4,lr} adds r4, r0, 0 ldr r0, _0810D2CC lsrs r1, r4, 16 bl VarSet ldr r0, _0810D2D0 lsls r4, 16 lsrs r4, 16 adds r1, r4, 0 bl VarSet pop {r4} pop {r0} bx r0 .align 2, 0 _0810D2CC: .4byte 0x00004024 _0810D2D0: .4byte 0x00004025 thumb_func_end sub_810D2AC thumb_func_start unref_sub_810D2D4 unref_sub_810D2D4: @ 810D2D4 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_810D2AC pop {r4} pop {r0} bx r0 thumb_func_end unref_sub_810D2D4 thumb_func_start sub_810D2F4 sub_810D2F4: @ 810D2F4 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 bl sub_810D280 adds r1, r0, 0 cmp r4, 0 beq _0810D318 ldr r3, _0810D324 ldr r2, _0810D328 _0810D308: 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 _0810D308 _0810D318: adds r0, r1, 0 bl sub_810D2AC pop {r4} pop {r0} bx r0 .align 2, 0 _0810D324: .4byte 0x41c64e6d _0810D328: .4byte 0x00003039 thumb_func_end sub_810D2F4 thumb_func_start sub_810D32C sub_810D32C: @ 810D32C push {r4-r6,lr} bl sub_810D280 lsrs r6, r0, 16 movs r5, 0 _0810D336: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _0810D360 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0810D368 adds r0, r4, 0 movs r1, 0 bl PokemonGetField ldr r1, _0810D364 ands r1, r0 cmp r1, r6 bne _0810D368 movs r0, 0x1 b _0810D370 .align 2, 0 _0810D360: .4byte 0x03004360 _0810D364: .4byte 0x0000ffff _0810D368: adds r5, 0x1 cmp r5, 0x5 ble _0810D336 movs r0, 0 _0810D370: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_810D32C thumb_func_start sub_810D378 sub_810D378: @ 810D378 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 _0810D3BE bl RtcCalcLocalTime ldr r1, _0810D3AC ldr r0, _0810D3B0 ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0810D3B8 ldr r0, _0810D3B4 bl FlagSet b _0810D3BE .align 2, 0 _0810D3AC: .4byte gUnknown_083F8340 _0810D3B0: .4byte 0x03004038 _0810D3B4: .4byte 0x0000083a _0810D3B8: ldr r0, _0810D3C4 bl FlagReset _0810D3BE: pop {r0} bx r0 .align 2, 0 _0810D3C4: .4byte 0x0000083a thumb_func_end sub_810D378 thumb_func_start sub_810D3C8 sub_810D3C8: @ 810D3C8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_807DDFC lsls r0, 24 cmp r0, 0 beq _0810D3E2 bl script_env_2_enable_and_set_ctx_running adds r0, r4, 0 bl DestroyTask _0810D3E2: pop {r4} pop {r0} bx r0 thumb_func_end sub_810D3C8 thumb_func_start sub_810D3E8 sub_810D3E8: @ 810D3E8 push {lr} ldr r0, _0810D3F8 movs r1, 0x50 bl CreateTask pop {r0} bx r0 .align 2, 0 _0810D3F8: .4byte sub_810D3C8 thumb_func_end sub_810D3E8 thumb_func_start sub_810D3FC sub_810D3FC: @ 810D3FC push {lr} ldr r0, _0810D40C bl GetVarPointer movs r1, 0 strh r1, [r0] pop {r0} bx r0 .align 2, 0 _0810D40C: .4byte 0x00004049 thumb_func_end sub_810D3FC thumb_func_start sub_810D410 sub_810D410: @ 810D410 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _0810D438 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 .align 2, 0 _0810D438: .4byte 0x00004049 thumb_func_end sub_810D410 thumb_func_start sub_810D43C sub_810D43C: @ 810D43C push {lr} ldr r0, _0810D458 ldrh r0, [r0] cmp r0, 0 bne _0810D460 movs r0, 0 bl sub_8090F68 ldr r1, _0810D45C strh r0, [r1] movs r0, 0x1 bl sub_8090F68 b _0810D470 .align 2, 0 _0810D458: .4byte 0x0202e8cc _0810D45C: .4byte 0x0202e8ce _0810D460: movs r0, 0 bl pokedex_count ldr r1, _0810D480 strh r0, [r1] movs r0, 0x1 bl pokedex_count _0810D470: ldr r1, _0810D484 strh r0, [r1] bl sub_806912C lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .align 2, 0 _0810D480: .4byte 0x0202e8ce _0810D484: .4byte 0x0202e8d0 thumb_func_end sub_810D43C thumb_func_start sub_810D488 sub_810D488: @ 810D488 push {lr} lsls r0, 16 lsrs r0, 16 cmp r0, 0x9 bhi _0810D494 b _0810D5EC _0810D494: cmp r0, 0x13 bhi _0810D4A0 ldr r0, _0810D49C b _0810D5F6 .align 2, 0 _0810D49C: .4byte gUnknown_081C456A _0810D4A0: cmp r0, 0x1D bhi _0810D4AC ldr r0, _0810D4A8 b _0810D5F6 .align 2, 0 _0810D4A8: .4byte gUnknown_081C45B0 _0810D4AC: cmp r0, 0x27 bhi _0810D4B8 ldr r0, _0810D4B4 b _0810D5F6 .align 2, 0 _0810D4B4: .4byte gUnknown_081C45F9 _0810D4B8: cmp r0, 0x31 bhi _0810D4C4 ldr r0, _0810D4C0 b _0810D5F6 .align 2, 0 _0810D4C0: .4byte gUnknown_081C4648 _0810D4C4: cmp r0, 0x3B bhi _0810D4D0 ldr r0, _0810D4CC b _0810D5F6 .align 2, 0 _0810D4CC: .4byte gUnknown_081C467E _0810D4D0: cmp r0, 0x45 bhi _0810D4DC ldr r0, _0810D4D8 b _0810D5F6 .align 2, 0 _0810D4D8: .4byte gUnknown_081C46B9 _0810D4DC: cmp r0, 0x4F bhi _0810D4E8 ldr r0, _0810D4E4 b _0810D5F6 .align 2, 0 _0810D4E4: .4byte gUnknown_081C46FE _0810D4E8: cmp r0, 0x59 bhi _0810D4F4 ldr r0, _0810D4F0 b _0810D5F6 .align 2, 0 _0810D4F0: .4byte gUnknown_081C4747 _0810D4F4: cmp r0, 0x63 bhi _0810D500 ldr r0, _0810D4FC b _0810D5F6 .align 2, 0 _0810D4FC: .4byte gUnknown_081C4780 _0810D500: cmp r0, 0x6D bhi _0810D50C ldr r0, _0810D508 b _0810D5F6 .align 2, 0 _0810D508: .4byte gUnknown_081C47DF _0810D50C: cmp r0, 0x77 bhi _0810D518 ldr r0, _0810D514 b _0810D5F6 .align 2, 0 _0810D514: .4byte gUnknown_081C4828 _0810D518: cmp r0, 0x81 bhi _0810D524 ldr r0, _0810D520 b _0810D5F6 .align 2, 0 _0810D520: .4byte gUnknown_081C4863 _0810D524: cmp r0, 0x8B bhi _0810D530 ldr r0, _0810D52C b _0810D5F6 .align 2, 0 _0810D52C: .4byte gUnknown_081C489C _0810D530: cmp r0, 0x95 bhi _0810D53C ldr r0, _0810D538 b _0810D5F6 .align 2, 0 _0810D538: .4byte gUnknown_081C48EB _0810D53C: cmp r0, 0x9F bhi _0810D548 ldr r0, _0810D544 b _0810D5F6 .align 2, 0 _0810D544: .4byte gUnknown_081C4936 _0810D548: cmp r0, 0xA9 bhi _0810D554 ldr r0, _0810D550 b _0810D5F6 .align 2, 0 _0810D550: .4byte gUnknown_081C49A2 _0810D554: cmp r0, 0xB3 bhi _0810D560 ldr r0, _0810D55C b _0810D5F6 .align 2, 0 _0810D55C: .4byte gUnknown_081C4A06 _0810D560: cmp r0, 0xBD bhi _0810D56C ldr r0, _0810D568 b _0810D5F6 .align 2, 0 _0810D568: .4byte gUnknown_081C4A4F _0810D56C: cmp r0, 0xC7 bls _0810D5DA cmp r0, 0xC8 bne _0810D5A8 ldr r0, _0810D5A4 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl sub_8090D90 lsls r0, 24 cmp r0, 0 bne _0810D5DA movs r0, 0xCD lsls r0, 1 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl sub_8090D90 lsls r0, 24 cmp r0, 0 bne _0810D5DA b _0810D5F4 .align 2, 0 _0810D5A4: .4byte 0x00000199 _0810D5A8: cmp r0, 0xC9 bne _0810D5E8 ldr r0, _0810D5E0 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl sub_8090D90 lsls r0, 24 cmp r0, 0 beq _0810D5F4 movs r0, 0xCD lsls r0, 1 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl sub_8090D90 lsls r0, 24 cmp r0, 0 beq _0810D5F4 _0810D5DA: ldr r0, _0810D5E4 b _0810D5F6 .align 2, 0 _0810D5E0: .4byte 0x00000199 _0810D5E4: .4byte gUnknown_081C4A91 _0810D5E8: cmp r0, 0xCA beq _0810D5F4 _0810D5EC: ldr r0, _0810D5F0 b _0810D5F6 .align 2, 0 _0810D5F0: .4byte gUnknown_081C4520 _0810D5F4: ldr r0, _0810D5FC _0810D5F6: pop {r1} bx r1 .align 2, 0 _0810D5FC: .4byte gUnknown_081C4ADA thumb_func_end sub_810D488 thumb_func_start sub_810D600 sub_810D600: @ 810D600 push {lr} ldr r0, _0810D614 ldrh r0, [r0] bl sub_810D488 bl box_related_two__2 pop {r0} bx r0 .align 2, 0 _0810D614: .4byte 0x0202e8cc thumb_func_end sub_810D600 thumb_func_start sub_810D618 sub_810D618: @ 810D618 push {lr} ldr r0, _0810D628 bl SetMainCallback2 bl script_env_2_enable pop {r0} bx r0 .align 2, 0 _0810D628: .4byte sub_81428CC thumb_func_end sub_810D618 thumb_func_start sub_810D62C sub_810D62C: @ 810D62C push {lr} ldr r0, _0810D640 bl SetMainCallback2 ldr r1, _0810D644 ldr r0, _0810D648 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0810D640: .4byte c2_exit_to_overworld_2_switch _0810D644: .4byte 0x0300485c _0810D648: .4byte mapldr_080CA5C0 thumb_func_end sub_810D62C thumb_func_start mapldr_080CA5C0 mapldr_080CA5C0: @ 810D64C push {lr} sub sp, 0x4 bl script_env_2_enable bl sub_8053E90 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade bl sp109_CreatePCMenu bl sub_80B5838 ldr r0, _0810D680 movs r1, 0xA bl CreateTask add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0810D680: .4byte sub_810D684 thumb_func_end mapldr_080CA5C0 thumb_func_start sub_810D684 sub_810D684: @ 810D684 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0810D6A0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0810D69C adds r0, r2, 0 bl DestroyTask _0810D69C: pop {r0} bx r0 .align 2, 0 _0810D6A0: .4byte 0x0202f388 thumb_func_end sub_810D684 thumb_func_start sub_810D6A4 sub_810D6A4: @ 810D6A4 push {lr} ldr r0, _0810D6B4 bl SetMainCallback2 bl script_env_2_enable pop {r0} bx r0 .align 2, 0 _0810D6B4: .4byte sub_8145D88 thumb_func_end sub_810D6A4 thumb_func_start sub_810D6B8 sub_810D6B8: @ 810D6B8 push {lr} ldr r0, _0810D6D0 ldr r1, _0810D6D4 str r1, [r0, 0x8] ldr r0, _0810D6D8 bl SetMainCallback2 bl script_env_2_enable pop {r0} bx r0 .align 2, 0 _0810D6D0: .4byte 0x03001770 _0810D6D4: .4byte c2_exit_to_overworld_2_switch _0810D6D8: .4byte Cb2_ViewWallClock thumb_func_end sub_810D6B8 thumb_func_start wild_pokemon_reroll wild_pokemon_reroll: @ 810D6DC ldr r0, _0810D6F0 movs r1, 0 strb r1, [r0] ldr r0, _0810D6F4 strb r1, [r0] ldr r1, _0810D6F8 movs r0, 0 str r0, [r1] bx lr .align 2, 0 _0810D6F0: .4byte 0x02039250 _0810D6F4: .4byte 0x02039251 _0810D6F8: .4byte 0x02039254 thumb_func_end wild_pokemon_reroll thumb_func_start sub_810D6FC sub_810D6FC: @ 810D6FC ldr r1, _0810D714 movs r0, 0x1 strb r0, [r1] ldr r1, _0810D718 movs r0, 0 strb r0, [r1] ldr r1, _0810D71C ldr r0, _0810D720 ldr r0, [r0, 0x20] str r0, [r1] bx lr .align 2, 0 _0810D714: .4byte 0x02039250 _0810D718: .4byte 0x02039251 _0810D71C: .4byte 0x02039254 _0810D720: .4byte 0x03001770 thumb_func_end sub_810D6FC thumb_func_start sp0E3_walkrun_bitfield_interpretation sp0E3_walkrun_bitfield_interpretation: @ 810D724 push {lr} movs r0, 0x4 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _0810D736 movs r0, 0x1 b _0810D748 _0810D736: movs r0, 0x2 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 bne _0810D746 movs r0, 0 b _0810D748 _0810D746: movs r0, 0x2 _0810D748: pop {r1} bx r1 thumb_func_end sp0E3_walkrun_bitfield_interpretation thumb_func_start sub_810D74C sub_810D74C: @ 810D74C push {r4-r7,lr} adds r7, r0, 0 lsls r1, 24 lsrs r6, r1, 24 cmp r6, 0x63 bhi _0810D778 ldr r4, _0810D770 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r1, _0810D774 adds r0, r4, 0 bl StringAppend b _0810D780 .align 2, 0 _0810D770: .4byte 0x020231cc _0810D774: .4byte gUnknown_084107A9 _0810D778: ldr r0, _0810D7CC ldr r1, _0810D7D0 bl StringCopy _0810D780: ldr r0, _0810D7D4 cmp r7, r0 bhi _0810D7E0 ldr r4, _0810D7D8 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, _0810D7DC adds r0, r4, 0 bl StringAppend b _0810D7E8 .align 2, 0 _0810D7CC: .4byte 0x020231cc _0810D7D0: .4byte gUnknown_0841078A _0810D7D4: .4byte 0x00000e0f _0810D7D8: .4byte 0x020232cc _0810D7DC: .4byte gUnknown_084107A0 _0810D7E0: ldr r0, _0810D7F4 ldr r1, _0810D7F8 bl StringCopy _0810D7E8: movs r4, 0 cmp r6, 0 bne _0810D7FC movs r4, 0x5 b _0810D81A .align 2, 0 _0810D7F4: .4byte 0x020232cc _0810D7F8: .4byte gUnknown_08410795 _0810D7FC: cmp r6, 0x3 bhi _0810D804 movs r4, 0x4 b _0810D81A _0810D804: cmp r6, 0x9 bhi _0810D80C movs r4, 0x3 b _0810D81A _0810D80C: cmp r6, 0x13 bhi _0810D814 movs r4, 0x2 b _0810D81A _0810D814: cmp r6, 0x63 bhi _0810D81A movs r4, 0x1 _0810D81A: adds r0, r7, 0 movs r1, 0x3C bl __udivsi3 cmp r0, 0xA bhi _0810D82A adds r0, r4, 0x5 b _0810D848 _0810D82A: cmp r0, 0xF bhi _0810D832 adds r0, r4, 0x4 b _0810D848 _0810D832: cmp r0, 0x14 bhi _0810D83A adds r0, r4, 0x3 b _0810D848 _0810D83A: cmp r0, 0x28 bhi _0810D842 adds r0, r4, 0x2 b _0810D848 _0810D842: cmp r0, 0x3B bhi _0810D84C adds r0, r4, 0x1 _0810D848: lsls r0, 24 lsrs r4, r0, 24 _0810D84C: ldr r0, _0810D858 strh r4, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810D858: .4byte 0x0202e8dc thumb_func_end sub_810D74C thumb_func_start sub_810D85C sub_810D85C: @ 810D85C push {r4,r5,lr} ldr r0, _0810D880 ldr r1, _0810D884 ldr r4, [r0, 0x20] ldr r0, [r1] subs r4, r0 ldr r5, _0810D888 ldrb r1, [r5] adds r0, r4, 0 bl sub_810D74C ldrb r1, [r5] adds r0, r4, 0 bl sub_810D88C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810D880: .4byte 0x03001770 _0810D884: .4byte 0x02039254 _0810D888: .4byte 0x02039251 thumb_func_end sub_810D85C thumb_func_start sub_810D88C sub_810D88C: @ 810D88C push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 lsls r1, 24 lsrs r1, 24 mov r8, r1 ldr r6, _0810D8E0 adds r0, r6, 0 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r7, _0810D8E4 adds r0, r7, 0 bl VarGet lsls r0, 16 adds r4, r0 cmp r4, r5 bhi _0810D8BC cmp r4, 0 bne _0810D8D6 _0810D8BC: 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, _0810D8E8 mov r1, r8 bl VarSet _0810D8D6: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810D8E0: .4byte 0x00004028 _0810D8E4: .4byte 0x00004029 _0810D8E8: .4byte 0x00004027 thumb_func_end sub_810D88C thumb_func_start sub_810D8EC sub_810D8EC: @ 810D8EC push {r4,lr} ldr r0, _0810D920 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _0810D924 bl VarGet lsls r0, 16 adds r4, r0 cmp r4, 0 beq _0810D92C ldr r0, _0810D928 bl VarGet adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_810D74C movs r0, 0x1 b _0810D92E .align 2, 0 _0810D920: .4byte 0x00004028 _0810D924: .4byte 0x00004029 _0810D928: .4byte 0x00004027 _0810D92C: movs r0, 0 _0810D92E: pop {r4} pop {r1} bx r1 thumb_func_end sub_810D8EC thumb_func_start sub_810D934 sub_810D934: @ 810D934 push {r4,lr} ldr r0, _0810D974 ldrh r1, [r0] ldr r0, _0810D978 cmp r1, r0 beq _0810D96C ldr r4, _0810D97C adds r0, r4, 0 bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 beq _0810D95E adds r0, r4, 0 bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x3 bne _0810D96C _0810D95E: adds r0, r4, 0 movs r1, 0 bl VarSet movs r0, 0 bl sav1_set_battle_music_maybe _0810D96C: pop {r4} pop {r0} bx r0 .align 2, 0 _0810D974: .4byte 0x020297f0 _0810D978: .4byte 0x00000c1d _0810D97C: .4byte 0x000040a9 thumb_func_end sub_810D934 thumb_func_start sub_810D980 sub_810D980: @ 810D980 push {lr} ldr r0, _0810D998 bl FlagSet ldr r0, _0810D99C bl GetVarPointer movs r1, 0 strh r1, [r0] pop {r0} bx r0 .align 2, 0 _0810D998: .4byte 0x0000082d _0810D99C: .4byte 0x0000404a thumb_func_end sub_810D980 thumb_func_start sub_810D9A0 sub_810D9A0: @ 810D9A0 push {lr} ldr r0, _0810D9AC bl FlagReset pop {r0} bx r0 .align 2, 0 _0810D9AC: .4byte 0x0000082d thumb_func_end sub_810D9A0 thumb_func_start sub_810D9B0 sub_810D9B0: @ 810D9B0 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 ldr r0, _0810D9DC bl FlagGet lsls r0, 24 cmp r0, 0 beq _0810D9D6 ldr r0, _0810D9E0 bl GetVarPointer ldrh r1, [r0] adds r1, r4, r1 strh r1, [r0] lsls r1, 16 lsrs r1, 16 cmp r1, 0xCC bhi _0810D9E4 _0810D9D6: movs r0, 0 b _0810D9E6 .align 2, 0 _0810D9DC: .4byte 0x0000082d _0810D9E0: .4byte 0x0000404a _0810D9E4: movs r0, 0x1 _0810D9E6: pop {r4} pop {r1} bx r1 thumb_func_end sub_810D9B0 thumb_func_start sub_810D9EC sub_810D9EC: @ 810D9EC 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, _0810DA1C bl GetVarPointer adds r4, r0, 0 ldr r0, _0810DA20 bl GetVarPointer ldrh r0, [r0] subs r0, 0x1 cmp r0, 0x9 bhi _0810DAB2 lsls r0, 2 ldr r1, _0810DA24 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0810DA1C: .4byte 0x0000404a _0810DA20: .4byte 0x000040b4 _0810DA24: .4byte _0810DA28 .align 2, 0 _0810DA28: .4byte _0810DA50 .4byte _0810DA60 .4byte _0810DA54 .4byte _0810DA58 .4byte _0810DA58 .4byte _0810DA5C .4byte _0810DA88 .4byte _0810DA50 .4byte _0810DA54 .4byte _0810DA5C _0810DA50: movs r0, 0x1 b _0810DABE _0810DA54: movs r0, 0x4 b _0810DABE _0810DA58: movs r0, 0x2 b _0810DABE _0810DA5C: movs r0, 0x3 b _0810DABE _0810DA60: ldrh r0, [r4] cmp r0, 0x3B bhi _0810DA70 movs r0, 0x31 strb r0, [r5] ldrh r0, [r4] adds r0, 0x13 b _0810DAB0 _0810DA70: cmp r0, 0x8B bhi _0810DA7E movs r0, 0x30 strb r0, [r5] ldrh r0, [r4] subs r0, 0x3C b _0810DAB0 _0810DA7E: movs r0, 0x2F strb r0, [r5] ldrh r0, [r4] subs r0, 0x8C b _0810DAB0 _0810DA88: ldrh r0, [r4] cmp r0, 0x41 bhi _0810DA98 movs r0, 0x2F strb r0, [r5] ldrh r1, [r4] movs r0, 0x41 b _0810DAAE _0810DA98: cmp r0, 0x91 bhi _0810DAA6 movs r0, 0x30 strb r0, [r5] ldrh r1, [r4] movs r0, 0x91 b _0810DAAE _0810DAA6: movs r0, 0x31 strb r0, [r5] ldrh r1, [r4] movs r0, 0xE0 _0810DAAE: subs r0, r1 _0810DAB0: strh r0, [r6] _0810DAB2: movs r0, 0 mov r1, r8 strb r0, [r1] movs r0, 0x14 strh r0, [r7] movs r0, 0 _0810DABE: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_810D9EC thumb_func_start sub_810DAC8 sub_810DAC8: @ 810DAC8 push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0 bl sub_8008218 lsls r0, 24 lsrs r7, r0, 24 bl sub_800820C lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 cmp r4, r5 bcs _0810DB12 ldr r0, _0810DB20 mov r8, r0 _0810DAEA: cmp r7, r4 beq _0810DB08 lsls r0, r6, 2 add r0, r8 ldr r0, [r0] lsls r1, r4, 3 subs r1, r4 lsls r1, 2 ldr r2, _0810DB24 adds r1, r2 bl StringCopy adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0810DB08: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _0810DAEA _0810DB12: adds r0, r5, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0810DB20: .4byte gUnknown_083D1464 _0810DB24: .4byte 0x03002978 thumb_func_end sub_810DAC8 thumb_func_start sub_810DB28 sub_810DB28: @ 810DB28 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, _0810DB74 add r0, sp, 0x8 movs r2, 0x4 bl memcpy add r4, sp, 0xC ldr r1, _0810DB78 adds r0, r4, 0 movs r2, 0x8 bl memcpy bl sub_8008218 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 _0810DB94 cmp r0, 0x2 bgt _0810DB7C cmp r0, 0x1 beq _0810DBC0 b _0810DBD2 .align 2, 0 _0810DB74: .4byte gUnknown_083F8358 _0810DB78: .4byte gUnknown_083F835C _0810DB7C: cmp r1, 0x3 beq _0810DB86 cmp r1, 0x4 beq _0810DBA8 b _0810DBD2 _0810DB86: movs r7, 0x2 ldr r1, _0810DB90 ldrh r0, [r1] subs r0, 0x1 b _0810DBAE .align 2, 0 _0810DB90: .4byte 0x02025734 _0810DB94: movs r7, 0x1 ldr r0, _0810DBA4 ldrh r1, [r0] mov r9, r1 ldrh r0, [r0, 0x2] subs r0, 0x1 b _0810DBCC .align 2, 0 _0810DBA4: .4byte 0x02025734 _0810DBA8: ldr r1, _0810DBBC ldrh r0, [r1] adds r0, 0x1 _0810DBAE: lsls r0, 16 lsrs r0, 16 mov r9, r0 ldrh r1, [r1, 0x2] mov r8, r1 b _0810DBD2 .align 2, 0 _0810DBBC: .4byte 0x02025734 _0810DBC0: movs r7, 0x3 ldr r0, _0810DBD8 ldrh r4, [r0] mov r9, r4 ldrh r0, [r0, 0x2] adds r0, 0x1 _0810DBCC: lsls r0, 16 lsrs r0, 16 mov r8, r0 _0810DBD2: movs r6, 0 b _0810DC5C .align 2, 0 _0810DBD8: .4byte 0x02025734 _0810DBDC: cmp r10, r6 beq _0810DC56 ldr r1, _0810DC74 lsls r0, r6, 3 subs r0, r6 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x13] movs r0, 0 bl sub_805983C lsls r0, 24 lsrs r0, 24 mov r1, sp adds r1, r7 adds r1, 0x8 ldrb r1, [r1] movs r2, 0xF0 subs r2, r6 lsls r2, 24 lsrs r2, 24 lsls r5, r7, 1 mov r3, sp adds r3, r5 adds r3, 0xC ldrb r3, [r3] lsls r3, 24 asrs r3, 24 mov r12, r3 mov r4, r9 lsls r3, r4, 16 asrs r3, 16 add r3, r12 adds r3, 0x7 lsls r3, 16 asrs r3, 16 mov r4, sp adds r4, 0xD adds r4, r5 ldrb r4, [r4] lsls r4, 24 asrs r4, 24 mov r12, r4 mov r5, r8 lsls r4, r5, 16 asrs r4, 16 add r4, r12 adds r4, 0x7 lsls r4, 16 asrs r4, 16 str r4, [sp] movs r4, 0 str r4, [sp, 0x4] bl SpawnSpecialFieldObjectParametrized adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x4 bne _0810DC56 movs r7, 0 _0810DC56: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0810DC5C: ldr r0, _0810DC78 ldrh r0, [r0] cmp r6, r0 bcc _0810DBDC add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810DC74: .4byte 0x03002970 _0810DC78: .4byte 0x0202e8cc thumb_func_end sub_810DB28 thumb_func_start sub_810DC7C sub_810DC7C: @ 810DC7C push {r4,r5,lr} movs r4, 0 ldr r5, _0810DC9C _0810DC82: ldr r0, _0810DCA0 ldrh r0, [r0] cmp r4, r0 bne _0810DCA8 lsls r1, r4, 2 adds r1, r5 ldrb r0, [r1] ldrb r1, [r1, 0x1] ldr r2, _0810DCA4 bl MapGridSetMetatileIdAt b _0810DCB6 .align 2, 0 _0810DC9C: .4byte gUnknown_083F8364 _0810DCA0: .4byte 0x0202e8cc _0810DCA4: .4byte 0x00000206 _0810DCA8: lsls r1, r4, 2 adds r1, r5 ldrb r0, [r1] ldrb r1, [r1, 0x1] ldr r2, _0810DCC8 bl MapGridSetMetatileIdAt _0810DCB6: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _0810DC82 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810DCC8: .4byte 0x00000205 thumb_func_end sub_810DC7C thumb_func_start sub_810DCCC sub_810DCCC: @ 810DCCC push {r4-r6,lr} movs r5, 0xC _0810DCD0: movs r4, 0x7 adds r6, r5, 0x1 _0810DCD4: adds r0, r4, 0 adds r1, r5, 0 bl MapGridGetMetatileIdAt ldr r1, _0810DCF0 adds r0, r1 cmp r0, 0x37 bls _0810DCE6 b _0810DEC0 _0810DCE6: lsls r0, 2 ldr r1, _0810DCF4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0810DCF0: .4byte 0xfffffde6 _0810DCF4: .4byte _0810DCF8 .align 2, 0 _0810DCF8: .4byte _0810DE7E .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DDD8 .4byte _0810DDDE .4byte _0810DE18 .4byte _0810DE20 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DDE8 .4byte _0810DDEE .4byte _0810DE28 .4byte _0810DE30 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DDF8 .4byte _0810DDFE .4byte _0810DE38 .4byte _0810DE40 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DE08 .4byte _0810DE10 .4byte _0810DE48 .4byte _0810DE50 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DE58 .4byte _0810DE68 .4byte _0810DE78 .4byte _0810DEA0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DE60 .4byte _0810DE70 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEC0 .4byte _0810DEB6 .4byte _0810DEA8 _0810DDD8: movs r2, 0x8C lsls r2, 2 b _0810DEAC _0810DDDE: ldr r2, _0810DDE4 b _0810DEAC .align 2, 0 _0810DDE4: .4byte 0x00000231 _0810DDE8: movs r2, 0x8E lsls r2, 2 b _0810DEAC _0810DDEE: ldr r2, _0810DDF4 b _0810DEAC .align 2, 0 _0810DDF4: .4byte 0x00000239 _0810DDF8: movs r2, 0x88 lsls r2, 2 b _0810DEAC _0810DDFE: ldr r2, _0810DE04 b _0810DEAC .align 2, 0 _0810DE04: .4byte 0x00000221 _0810DE08: ldr r2, _0810DE0C b _0810DEAC .align 2, 0 _0810DE0C: .4byte 0x00000e28 _0810DE10: ldr r2, _0810DE14 b _0810DEAC .align 2, 0 _0810DE14: .4byte 0x00000e29 _0810DE18: ldr r2, _0810DE1C b _0810DEAC .align 2, 0 _0810DE1C: .4byte 0x00000232 _0810DE20: ldr r2, _0810DE24 b _0810DEAC .align 2, 0 _0810DE24: .4byte 0x00000233 _0810DE28: ldr r2, _0810DE2C b _0810DEAC .align 2, 0 _0810DE2C: .4byte 0x0000023a _0810DE30: ldr r2, _0810DE34 b _0810DEAC .align 2, 0 _0810DE34: .4byte 0x0000023b _0810DE38: ldr r2, _0810DE3C b _0810DEAC .align 2, 0 _0810DE3C: .4byte 0x00000222 _0810DE40: ldr r2, _0810DE44 b _0810DEAC .align 2, 0 _0810DE44: .4byte 0x00000223 _0810DE48: ldr r2, _0810DE4C b _0810DEAC .align 2, 0 _0810DE4C: .4byte 0x00000e2a _0810DE50: ldr r2, _0810DE54 b _0810DEAC .align 2, 0 _0810DE54: .4byte 0x00000e2b _0810DE58: ldr r2, _0810DE5C b _0810DEAC .align 2, 0 _0810DE5C: .4byte 0x00000e42 _0810DE60: ldr r2, _0810DE64 b _0810DEAC .align 2, 0 _0810DE64: .4byte 0x0000021a _0810DE68: ldr r2, _0810DE6C b _0810DEAC .align 2, 0 _0810DE6C: .4byte 0x00000e43 _0810DE70: ldr r2, _0810DE74 b _0810DEAC .align 2, 0 _0810DE74: .4byte 0x0000021a _0810DE78: movs r2, 0xE4 lsls r2, 4 b _0810DEAC _0810DE7E: subs r1, r5, 0x1 adds r0, r4, 0 bl MapGridGetMetatileIdAt movs r1, 0x90 lsls r1, 2 cmp r0, r1 bne _0810DE98 ldr r2, _0810DE94 b _0810DEAC .align 2, 0 _0810DE94: .4byte 0x00000e48 _0810DE98: ldr r2, _0810DE9C b _0810DEAC .align 2, 0 _0810DE9C: .4byte 0x00000e49 _0810DEA0: ldr r2, _0810DEA4 b _0810DEAC .align 2, 0 _0810DEA4: .4byte 0x00000e41 _0810DEA8: movs r2, 0xE5 lsls r2, 4 _0810DEAC: adds r0, r4, 0 adds r1, r5, 0 bl MapGridSetMetatileIdAt b _0810DEC0 _0810DEB6: ldr r2, _0810DED8 adds r0, r4, 0 adds r1, r5, 0 bl MapGridSetMetatileIdAt _0810DEC0: adds r4, 0x1 cmp r4, 0xF bgt _0810DEC8 b _0810DCD4 _0810DEC8: adds r5, r6, 0 cmp r5, 0x17 bgt _0810DED0 b _0810DCD0 _0810DED0: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810DED8: .4byte 0x00000251 thumb_func_end sub_810DCCC thumb_func_start sub_810DEDC sub_810DEDC: @ 810DEDC push {r4-r6,lr} ldr r4, _0810DF18 movs r5, 0x2 _0810DEE2: ldrb r0, [r4] ldrb r1, [r4, 0x1] ldr r2, _0810DF1C bl MapGridSetMetatileIdAt adds r4, 0x4 subs r5, 0x1 cmp r5, 0 bge _0810DEE2 movs r5, 0xC _0810DEF6: movs r4, 0x7 adds r6, r5, 0x1 _0810DEFA: adds r0, r4, 0 adds r1, r5, 0 bl MapGridGetMetatileIdAt ldr r1, _0810DF20 adds r0, r1 cmp r0, 0x30 bls _0810DF0C b _0810E056 _0810DF0C: lsls r0, 2 ldr r1, _0810DF24 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0810DF18: .4byte gUnknown_083F8364 _0810DF1C: .4byte 0x00000206 _0810DF20: .4byte 0xfffffde0 _0810DF24: .4byte _0810DF28 .align 2, 0 _0810DF28: .4byte _0810DFEC .4byte _0810DFF2 .4byte _0810E00C .4byte _0810E014 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810DFFC .4byte _0810E002 .4byte _0810E01C .4byte _0810E024 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E02C .4byte _0810E034 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E03C .4byte _0810E03C .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E056 .4byte _0810E04C _0810DFEC: movs r2, 0x8C lsls r2, 2 b _0810E03E _0810DFF2: ldr r2, _0810DFF8 b _0810E03E .align 2, 0 _0810DFF8: .4byte 0x00000231 _0810DFFC: movs r2, 0x8E lsls r2, 2 b _0810E03E _0810E002: ldr r2, _0810E008 b _0810E03E .align 2, 0 _0810E008: .4byte 0x00000239 _0810E00C: ldr r2, _0810E010 b _0810E03E .align 2, 0 _0810E010: .4byte 0x00000232 _0810E014: ldr r2, _0810E018 b _0810E03E .align 2, 0 _0810E018: .4byte 0x00000233 _0810E01C: ldr r2, _0810E020 b _0810E03E .align 2, 0 _0810E020: .4byte 0x0000023a _0810E024: ldr r2, _0810E028 b _0810E03E .align 2, 0 _0810E028: .4byte 0x0000023b _0810E02C: ldr r2, _0810E030 b _0810E03E .align 2, 0 _0810E030: .4byte 0x00000e42 _0810E034: ldr r2, _0810E038 b _0810E03E .align 2, 0 _0810E038: .4byte 0x00000e43 _0810E03C: ldr r2, _0810E048 _0810E03E: adds r0, r4, 0 adds r1, r5, 0 bl MapGridSetMetatileIdAt b _0810E056 .align 2, 0 _0810E048: .4byte 0x0000021a _0810E04C: ldr r2, _0810E06C adds r0, r4, 0 adds r1, r5, 0 bl MapGridSetMetatileIdAt _0810E056: adds r4, 0x1 cmp r4, 0xF bgt _0810E05E b _0810DEFA _0810E05E: adds r5, r6, 0 cmp r5, 0x17 bgt _0810E066 b _0810DEF6 _0810E066: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810E06C: .4byte 0x00000251 thumb_func_end sub_810DEDC thumb_func_start sub_810E070 sub_810E070: @ 810E070 push {lr} ldr r0, _0810E090 movs r1, 0 strb r1, [r0] ldr r0, _0810E094 strb r1, [r0] movs r0, 0x2C bl audio_play ldr r0, _0810E098 movs r1, 0x8 bl CreateTask pop {r0} bx r0 .align 2, 0 _0810E090: .4byte 0x02039258 _0810E094: .4byte 0x02039259 _0810E098: .4byte sub_810E09C thumb_func_end sub_810E070 thumb_func_start sub_810E09C sub_810E09C: @ 810E09C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0810E0E4 ldr r5, _0810E0E8 ldrb r1, [r5] adds r0, r1, r0 ldr r4, _0810E0EC ldrb r2, [r4] ldrb r0, [r0] cmp r0, r2 bne _0810E0F8 ldr r0, _0810E0F0 ldrb r0, [r0] ldr r2, _0810E0F4 lsls r1, 1 adds r1, r2 ldrh r1, [r1] bl sub_810E104 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 _0810E0FC adds r0, r6, 0 bl DestroyTask bl script_env_2_enable_and_set_ctx_running b _0810E0FC .align 2, 0 _0810E0E4: .4byte gUnknown_083F8370 _0810E0E8: .4byte 0x02039259 _0810E0EC: .4byte 0x02039258 _0810E0F0: .4byte 0x0202e8cc _0810E0F4: .4byte gUnknown_083F8376 _0810E0F8: adds r0, r2, 0x1 strb r0, [r4] _0810E0FC: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_810E09C thumb_func_start sub_810E104 sub_810E104: @ 810E104 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 _0810E1CC lsls r0, 2 ldr r1, _0810E128 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0810E128: .4byte _0810E12C .align 2, 0 _0810E12C: .4byte _0810E14C .4byte _0810E15E .4byte _0810E170 .4byte _0810E182 .4byte _0810E190 .4byte _0810E1A6 .4byte _0810E1B2 .4byte _0810E1C0 _0810E14C: 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 _0810E1A0 _0810E15E: 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 _0810E1A0 _0810E170: 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 _0810E1A0 _0810E182: movs r7, 0x1 mov r1, sp movs r0, 0x7 strh r0, [r1] add r1, sp, 0x8 movs r0, 0x27 b _0810E1CA _0810E190: 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 _0810E1A0: strh r0, [r1] strh r0, [r1, 0x2] b _0810E1CC _0810E1A6: movs r7, 0x1 mov r0, sp strh r7, [r0] add r1, sp, 0x8 movs r0, 0x41 b _0810E1CA _0810E1B2: movs r7, 0x1 mov r1, sp movs r0, 0x7 strh r0, [r1] add r1, sp, 0x8 movs r0, 0xD b _0810E1CA _0810E1C0: movs r7, 0x1 mov r0, sp strh r7, [r0] add r1, sp, 0x8 movs r0, 0x1A _0810E1CA: strh r0, [r1] _0810E1CC: movs r6, 0 cmp r6, r7 bcs _0810E21E 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 _0810E1EA: 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 _0810E1EA _0810E21E: 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_810E104 thumb_func_start sub_810E230 sub_810E230: @ 810E230 push {lr} ldr r0, _0810E244 ldrb r0, [r0] ldr r1, _0810E248 ldrh r1, [r1, 0x8] bl sub_810E104 pop {r0} bx r0 .align 2, 0 _0810E244: .4byte 0x0202e8cc _0810E248: .4byte gUnknown_083F8376 thumb_func_end sub_810E230 thumb_func_start sub_810E24C sub_810E24C: @ 810E24C push {lr} ldr r0, _0810E258 bl box_related_two__2 pop {r0} bx r0 .align 2, 0 _0810E258: .4byte 0x020234cc thumb_func_end sub_810E24C thumb_func_start sub_810E25C sub_810E25C: @ 810E25C ldr r1, _0810E26C ldr r2, _0810E270 ldrh r0, [r2] strh r0, [r1] ldr r1, _0810E274 ldrh r0, [r2, 0x2] strh r0, [r1] bx lr .align 2, 0 _0810E26C: .4byte 0x0202e8cc _0810E270: .4byte 0x02025734 _0810E274: .4byte 0x0202e8ce thumb_func_end sub_810E25C thumb_func_start sub_810E278 sub_810E278: @ 810E278 push {lr} ldr r0, _0810E294 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 .align 2, 0 _0810E294: .4byte gSaveBlock2 thumb_func_end sub_810E278 thumb_func_start sub_810E298 sub_810E298: @ 810E298 push {lr} ldr r0, _0810E2AC ldrb r0, [r0, 0x8] cmp r0, 0 bne _0810E2B8 ldr r0, _0810E2B0 ldr r1, _0810E2B4 bl StringCopy b _0810E2C0 .align 2, 0 _0810E2AC: .4byte gSaveBlock2 _0810E2B0: .4byte 0x020231cc _0810E2B4: .4byte gUnknown_084107B2 _0810E2B8: ldr r0, _0810E2C4 ldr r1, _0810E2C8 bl StringCopy _0810E2C0: pop {r0} bx r0 .align 2, 0 _0810E2C4: .4byte 0x020231cc _0810E2C8: .4byte gUnknown_084107BA thumb_func_end sub_810E298 thumb_func_start sub_810E2CC sub_810E2CC: @ 810E2CC push {lr} ldr r0, _0810E2E0 ldrb r0, [r0, 0x8] cmp r0, 0 bne _0810E2EC ldr r0, _0810E2E4 ldr r1, _0810E2E8 bl StringCopy b _0810E2F4 .align 2, 0 _0810E2E0: .4byte gSaveBlock2 _0810E2E4: .4byte 0x020231cc _0810E2E8: .4byte gUnknown_084107C7 _0810E2EC: ldr r0, _0810E2F8 ldr r1, _0810E2FC bl StringCopy _0810E2F4: pop {r0} bx r0 .align 2, 0 _0810E2F8: .4byte 0x020231cc _0810E2FC: .4byte gUnknown_084107C3 thumb_func_end sub_810E2CC thumb_func_start sub_810E300 sub_810E300: @ 810E300 ldr r0, _0810E308 ldrb r0, [r0] bx lr .align 2, 0 _0810E308: .4byte 0x02024d26 thumb_func_end sub_810E300 thumb_func_start sub_810E30C sub_810E30C: @ 810E30C push {lr} sub sp, 0x4 ldr r0, _0810E32C ldrh r0, [r0] cmp r0, 0 beq _0810E330 movs r2, 0x1 negs r2, r2 movs r0, 0x4 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r3, 0x6 bl warp1_set b _0810E342 .align 2, 0 _0810E32C: .4byte 0x0202e8cc _0810E330: movs r2, 0x1 negs r2, r2 movs r0, 0x4 str r0, [sp] movs r0, 0x13 movs r1, 0x1 movs r3, 0x6 bl warp1_set _0810E342: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_810E30C thumb_func_start sub_810E348 sub_810E348: @ 810E348 push {lr} ldr r0, _0810E358 ldrh r0, [r0] bl FlagSet pop {r0} bx r0 .align 2, 0 _0810E358: .4byte 0x0202e8cc thumb_func_end sub_810E348 thumb_func_start sub_810E35C sub_810E35C: @ 810E35C push {lr} ldr r0, _0810E37C movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0x7 bl __divsi3 lsls r0, 16 lsrs r0, 16 ldr r1, _0810E380 cmp r0, r1 bls _0810E376 adds r0, r1, 0 _0810E376: pop {r1} bx r1 .align 2, 0 _0810E37C: .4byte 0x03004038 _0810E380: .4byte 0x0000270f thumb_func_end sub_810E35C thumb_func_start sub_810E384 sub_810E384: @ 810E384 push {r4,lr} bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r1, r0 ldr r0, _0810E3A8 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x20 bl PokemonGetField cmp r0, 0xFF bne _0810E3AC movs r0, 0x6 b _0810E3FE .align 2, 0 _0810E3A8: .4byte 0x03004360 _0810E3AC: adds r0, r4, 0 movs r1, 0x20 bl PokemonGetField cmp r0, 0xC7 bls _0810E3BC movs r0, 0x5 b _0810E3FE _0810E3BC: adds r0, r4, 0 movs r1, 0x20 bl PokemonGetField cmp r0, 0x95 bls _0810E3CC movs r0, 0x4 b _0810E3FE _0810E3CC: adds r0, r4, 0 movs r1, 0x20 bl PokemonGetField cmp r0, 0x63 bls _0810E3DC movs r0, 0x3 b _0810E3FE _0810E3DC: adds r0, r4, 0 movs r1, 0x20 bl PokemonGetField cmp r0, 0x31 bls _0810E3EC movs r0, 0x2 b _0810E3FE _0810E3EC: adds r0, r4, 0 movs r1, 0x20 bl PokemonGetField cmp r0, 0 bne _0810E3FC movs r0, 0 b _0810E3FE _0810E3FC: movs r0, 0x1 _0810E3FE: pop {r4} pop {r1} bx r1 thumb_func_end sub_810E384 thumb_func_start sub_810E404 sub_810E404: @ 810E404 push {lr} ldr r0, _0810E410 bl sub_813EEB4 pop {r0} bx r0 .align 2, 0 _0810E410: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end sub_810E404 thumb_func_start sub_810E414 sub_810E414: @ 810E414 push {lr} ldr r0, _0810E420 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0810E420: .4byte sub_810E404 thumb_func_end sub_810E414 thumb_func_start sub_810E424 sub_810E424: @ 810E424 push {r4,lr} ldr r4, _0810E460 adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810E458 adds r0, r4, 0 movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0810E464 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] _0810E458: pop {r4} pop {r0} bx r0 .align 2, 0 _0810E460: .4byte sub_810E468 _0810E464: .4byte 0x03004b20 thumb_func_end sub_810E424 thumb_func_start sub_810E468 sub_810E468: @ 810E468 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0810E48C adds r1, r0 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _0810E486 adds r0, r1, 0 bl sub_810E490 _0810E486: pop {r0} bx r0 .align 2, 0 _0810E48C: .4byte 0x03004b20 thumb_func_end sub_810E468 thumb_func_start sub_810E490 sub_810E490: @ 810E490 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 _0810E4FC strh r5, [r4, 0xE] bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x3 beq _0810E4C4 cmp r0, 0x3 bgt _0810E4BA cmp r0, 0x2 beq _0810E4C0 b _0810E4CC _0810E4BA: cmp r1, 0x4 beq _0810E4C8 b _0810E4CC _0810E4C0: movs r6, 0 b _0810E4CA _0810E4C4: movs r6, 0xFF b _0810E4CA _0810E4C8: movs r6, 0x1 _0810E4CA: movs r5, 0xFF _0810E4CC: movs r1, 0x10 ldrsh r0, [r4, r1] lsls r1, r6, 24 asrs r1, 24 lsls r2, r5, 24 asrs r2, 24 bl sub_810E508 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 _0810E4FC ldrb r0, [r4, 0xA] bl DestroyTask _0810E4FC: ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_810E490 thumb_func_start sub_810E508 sub_810E508: @ 810E508 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 _0810E544 ldr r0, _0810E528 ldrh r0, [r0] cmp r0, 0 bne _0810E52C movs r3, 0x4 b _0810E566 .align 2, 0 _0810E528: .4byte 0x0202e8cc _0810E52C: cmp r0, 0x1 bne _0810E538 ldr r3, _0810E534 b _0810E566 .align 2, 0 _0810E534: .4byte 0x0000025a _0810E538: cmp r0, 0x2 bne _0810E566 ldr r3, _0810E540 b _0810E566 .align 2, 0 _0810E540: .4byte 0x00000259 _0810E544: ldr r0, _0810E550 ldrh r0, [r0] cmp r0, 0 bne _0810E554 movs r3, 0x5 b _0810E566 .align 2, 0 _0810E550: .4byte 0x0202e8cc _0810E554: cmp r0, 0x1 bne _0810E560 ldr r3, _0810E55C b _0810E566 .align 2, 0 _0810E55C: .4byte 0x0000027f _0810E560: cmp r0, 0x2 bne _0810E566 ldr r3, _0810E594 _0810E566: ldr r2, _0810E598 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 .align 2, 0 _0810E594: .4byte 0x0000027e _0810E598: .4byte 0x02025734 thumb_func_end sub_810E508 thumb_func_start sub_810E59C sub_810E59C: @ 810E59C push {lr} bl sub_810E5A8 pop {r0} bx r0 thumb_func_end sub_810E59C thumb_func_start sub_810E5A8 sub_810E5A8: @ 810E5A8 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 _0810E5D2 cmp r0, 0x3 bgt _0810E5C8 cmp r0, 0x2 beq _0810E5CE b _0810E5DA _0810E5C8: cmp r1, 0x4 beq _0810E5D6 b _0810E5DA _0810E5CE: movs r6, 0 b _0810E5D8 _0810E5D2: movs r6, 0xFF b _0810E5D8 _0810E5D6: movs r6, 0x1 _0810E5D8: movs r5, 0xFF _0810E5DA: ldr r0, _0810E5E8 ldrh r0, [r0] cmp r0, 0 bne _0810E5EC movs r4, 0x4 b _0810E5FE .align 2, 0 _0810E5E8: .4byte 0x0202e8cc _0810E5EC: cmp r0, 0x1 bne _0810E5F8 ldr r4, _0810E5F4 b _0810E5FE .align 2, 0 _0810E5F4: .4byte 0x0000025a _0810E5F8: cmp r0, 0x2 bne _0810E5FE ldr r4, _0810E630 _0810E5FE: ldr r2, _0810E634 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 .align 2, 0 _0810E630: .4byte 0x00000259 _0810E634: .4byte 0x02025734 thumb_func_end sub_810E5A8 thumb_func_start sub_810E638 sub_810E638: @ 810E638 push {r4,lr} ldr r4, _0810E674 adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810E66C adds r0, r4, 0 movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0810E678 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] _0810E66C: pop {r4} pop {r0} bx r0 .align 2, 0 _0810E674: .4byte sub_810E67C _0810E678: .4byte 0x03004b20 thumb_func_end sub_810E638 thumb_func_start sub_810E67C sub_810E67C: @ 810E67C push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0810E6A0 adds r1, r0 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _0810E69A adds r0, r1, 0 bl sub_810E6A4 _0810E69A: pop {r0} bx r0 .align 2, 0 _0810E6A0: .4byte 0x03004b20 thumb_func_end sub_810E67C thumb_func_start sub_810E6A4 sub_810E6A4: @ 810E6A4 push {r4,lr} adds r4, r0, 0 movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0x6 bne _0810E712 movs r0, 0 strh r0, [r4, 0xE] movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0 beq _0810E6DC ldr r2, _0810E6D4 movs r0, 0x12 movs r1, 0x8 bl MapGridSetMetatileIdAt ldr r2, _0810E6D8 movs r0, 0x12 movs r1, 0x9 bl MapGridSetMetatileIdAt b _0810E6F2 .align 2, 0 _0810E6D4: .4byte 0x00000e9d _0810E6D8: .4byte 0x00000ea5 _0810E6DC: ldr r2, _0810E720 movs r0, 0x12 movs r1, 0x8 bl MapGridSetMetatileIdAt movs r2, 0xE6 lsls r2, 4 movs r0, 0x12 movs r1, 0x9 bl MapGridSetMetatileIdAt _0810E6F2: 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 _0810E712 ldrb r0, [r4, 0xA] bl DestroyTask _0810E712: ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] pop {r4} pop {r0} bx r0 .align 2, 0 _0810E720: .4byte 0x00000e58 thumb_func_end sub_810E6A4 thumb_func_start sub_810E724 sub_810E724: @ 810E724 push {lr} ldr r2, _0810E744 movs r0, 0x12 movs r1, 0x8 bl MapGridSetMetatileIdAt ldr r2, _0810E748 movs r0, 0x12 movs r1, 0x9 bl MapGridSetMetatileIdAt bl DrawWholeMapView pop {r0} bx r0 .align 2, 0 _0810E744: .4byte 0x00000e9d _0810E748: .4byte 0x00000ea5 thumb_func_end sub_810E724 thumb_func_start sub_810E74C sub_810E74C: @ 810E74C push {lr} ldr r0, _0810E768 ldrb r0, [r0, 0x15] subs r0, 0x11 lsls r0, 24 asrs r0, 24 cmp r0, 0x5 bhi _0810E79C lsls r0, 2 ldr r1, _0810E76C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0810E768: .4byte 0x02025734 _0810E76C: .4byte _0810E770 .align 2, 0 _0810E770: .4byte _0810E79C .4byte _0810E788 .4byte _0810E78C .4byte _0810E790 .4byte _0810E794 .4byte _0810E798 _0810E788: movs r1, 0x1 b _0810E79E _0810E78C: movs r1, 0x2 b _0810E79E _0810E790: movs r1, 0x3 b _0810E79E _0810E794: movs r1, 0x4 b _0810E79E _0810E798: movs r1, 0xF b _0810E79E _0810E79C: movs r1, 0 _0810E79E: ldr r0, _0810E7A8 bl VarSet pop {r0} bx r0 .align 2, 0 _0810E7A8: .4byte 0x00004043 thumb_func_end sub_810E74C thumb_func_start sub_810E7AC sub_810E7AC: @ 810E7AC push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r2, 24 mov r12, r2 lsls r3, 24 lsrs r3, 24 mov r8, r3 ldr r0, _0810E81C ldrh r1, [r0] adds r2, r0, 0 ldr r3, _0810E820 cmp r1, 0 bne _0810E7E8 movs r1, 0 adds r5, r3, 0 movs r4, 0x10 _0810E7D8: lsls r0, r1, 2 adds r0, r5 strb r4, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x13 bls _0810E7D8 _0810E7E8: ldrh r0, [r2] lsls r0, 2 adds r0, r3 strb r6, [r0] ldrh r0, [r2] lsls r0, 2 adds r0, r3 strb r7, [r0, 0x1] ldrh r0, [r2] lsls r0, 2 adds r0, r3 mov r1, r12 strb r1, [r0, 0x2] ldrh r0, [r2] lsls r0, 2 adds r0, r3 mov r1, r8 strb r1, [r0, 0x3] ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810E81C: .4byte 0x0202e8cc _0810E820: .4byte 0x03000760 thumb_func_end sub_810E7AC thumb_func_start sub_810E824 sub_810E824: @ 810E824 push {r4,r5,lr} movs r4, 0 ldr r5, _0810E868 strb r4, [r5] ldr r0, _0810E86C strb r4, [r0] movs r0, 0x10 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_810E7AC ldr r2, _0810E870 ldrb r0, [r2] cmp r0, 0x10 beq _0810E85C adds r1, r5, 0 _0810E846: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0x10 bne _0810E846 _0810E85C: bl sub_810E874 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810E868: .4byte 0x0203925a _0810E86C: .4byte 0x0203925b _0810E870: .4byte 0x03000760 thumb_func_end sub_810E824 thumb_func_start sub_810E874 sub_810E874: @ 810E874 push {r4-r6,lr} sub sp, 0x8 bl script_env_2_enable ldr r4, _0810E8B8 ldrb r0, [r4] cmp r0, 0x5 bls _0810E8C0 movs r0, 0 movs r1, 0 movs r2, 0x8 movs r3, 0xB bl DrawDefaultWindow movs r4, 0 str r4, [sp] movs r0, 0x7 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0x5 bl InitMenu ldr r0, _0810E8BC strb r4, [r0] bl sub_80F944C bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed bl sub_810ECD4 b _0810E8E8 .align 2, 0 _0810E8B8: .4byte 0x0203925a _0810E8BC: .4byte 0x0203925c _0810E8C0: ldrb r3, [r4] lsls r3, 1 adds r3, 0x1 lsls r3, 24 lsrs r3, 24 movs r0, 0 movs r1, 0 movs r2, 0x8 bl DrawDefaultWindow ldrb r3, [r4] movs r0, 0 str r0, [sp] movs r0, 0x7 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl InitMenu _0810E8E8: movs r4, 0 ldr r1, _0810E938 ldrb r0, [r1] cmp r0, 0x10 beq _0810E924 ldr r6, _0810E93C adds r5, r1, 0 _0810E8F6: lsls r0, r4, 2 adds r0, r5 ldrb r0, [r0] lsls r0, 2 adds r0, r6 ldr r0, [r0] lsls r2, r4, 1 adds r2, 0x1 lsls r2, 24 lsrs r2, 24 movs r1, 0x1 bl Print adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bhi _0810E924 lsls r0, r4, 2 adds r0, r5 ldrb r0, [r0] cmp r0, 0x10 bne _0810E8F6 _0810E924: bl sub_810E944 ldr r0, _0810E940 movs r1, 0x8 bl CreateTask add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810E938: .4byte 0x03000760 _0810E93C: .4byte gUnknown_083F8380 _0810E940: .4byte sub_810E984 thumb_func_end sub_810E874 thumb_func_start sub_810E944 sub_810E944: @ 810E944 push {lr} movs r0, 0x14 movs r1, 0 movs r2, 0x1D movs r3, 0x5 bl DrawDefaultWindow ldr r0, _0810E978 movs r1, 0x15 movs r2, 0x1 movs r3, 0x40 bl Free ldr r1, _0810E97C ldr r0, _0810E980 ldrh r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x15 movs r2, 0x3 movs r3, 0x40 bl Free pop {r0} bx r0 .align 2, 0 _0810E978: .4byte gUnknown_0841085E _0810E97C: .4byte gUnknown_083F8380 _0810E980: .4byte 0x0202e8ce thumb_func_end sub_810E944 thumb_func_start sub_810E984 sub_810E984: @ 810E984 push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0810EA44 ldrh r0, [r0, 0x2E] cmp r0, 0x40 bne _0810E9B8 ldr r1, _0810EA48 ldrb r0, [r1] cmp r0, 0 beq _0810E9B8 subs r0, 0x1 strb r0, [r1] bl GetMenuCursorPos lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x1 negs r0, r0 bl MoveMenuCursorNoWrapAround adds r0, r4, 0 movs r1, 0x40 bl sub_810EAC8 _0810E9B8: ldr r0, _0810EA44 ldrh r0, [r0, 0x2E] cmp r0, 0x80 bne _0810E9E8 ldr r2, _0810EA48 ldrb r1, [r2] ldr r0, _0810EA4C ldrb r0, [r0] subs r0, 0x1 cmp r1, r0 beq _0810E9E8 adds r0, r1, 0x1 strb r0, [r2] bl GetMenuCursorPos lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x1 bl MoveMenuCursorNoWrapAround adds r0, r4, 0 movs r1, 0x80 bl sub_810EAC8 _0810E9E8: ldr r0, _0810EA44 ldrh r2, [r0, 0x2E] movs r5, 0x1 adds r1, r5, 0 ands r1, r2 cmp r1, 0 beq _0810EA94 ldr r1, _0810EA50 ldr r4, _0810EA48 ldrb r0, [r4] lsls r0, 2 adds r0, r1 movs r1, 0x1 ldrsb r1, [r0, r1] movs r2, 0x2 ldrsb r2, [r0, r2] movs r3, 0x1 negs r3, r3 movs r0, 0x2 str r0, [sp] str r5, [sp, 0x4] movs r0, 0 bl saved_warp2_set_2 ldr r1, _0810EA54 ldrh r0, [r1] ldrb r2, [r4] cmp r0, r2 bne _0810EA5C ldr r1, _0810EA58 movs r0, 0 strh r0, [r1] movs r0, 0x5 bl audio_play movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0xC bl Reset adds r0, r6, 0 bl sub_810EC9C b _0810EABC .align 2, 0 _0810EA44: .4byte 0x03001770 _0810EA48: .4byte 0x0203925b _0810EA4C: .4byte 0x0203925a _0810EA50: .4byte 0x03000760 _0810EA54: .4byte 0x0202e8ce _0810EA58: .4byte 0x0202e8dc _0810EA5C: ldr r0, _0810EA88 strh r5, [r0] ldrb r0, [r4] strh r0, [r1] bl sub_810EBEC ldr r0, _0810EA8C ldrb r0, [r0] ldr r2, _0810EA90 ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] movs r3, 0x1 bl FieldObjectTurnByLocalIdAndMap bl sub_810EEDC bl sub_8071EF4 adds r0, r6, 0 bl DestroyTask b _0810EABC .align 2, 0 _0810EA88: .4byte 0x0202e8dc _0810EA8C: .4byte 0x0202e8de _0810EA90: .4byte 0x02025734 _0810EA94: movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _0810EABC ldr r0, _0810EAC4 strh r1, [r0] movs r0, 0x5 bl audio_play bl sub_810EEDC movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0xC bl Reset adds r0, r6, 0 bl sub_810EC9C _0810EABC: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810EAC4: .4byte 0x0202e8dc thumb_func_end sub_810E984 thumb_func_start sub_810EAC8 sub_810EAC8: @ 810EAC8 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r2, r0, 24 adds r5, r2, 0 lsls r1, 24 lsrs r1, 24 adds r3, r1, 0 movs r7, 0 movs r4, 0 ldr r0, _0810EAEC ldrb r0, [r0] cmp r0, 0x4 bhi _0810EAF0 movs r0, 0 b _0810EB78 .align 2, 0 _0810EAEC: .4byte 0x0203925a _0810EAF0: cmp r1, 0x40 bne _0810EB04 cmp r2, 0 bne _0810EB18 ldr r0, _0810EB00 ldrb r4, [r0] movs r7, 0x1 b _0810EB1C .align 2, 0 _0810EB00: .4byte 0x0203925b _0810EB04: cmp r3, 0x80 bne _0810EB18 cmp r5, 0x4 bne _0810EB18 ldr r0, _0810EB84 ldrb r0, [r0] subs r0, 0x4 lsls r0, 24 lsrs r4, r0, 24 movs r7, 0x1 _0810EB18: cmp r7, 0 beq _0810EB76 _0810EB1C: adds r0, r4, 0 movs r1, 0x5 bl sub_810EB90 movs r0, 0x2 movs r1, 0x1 movs r2, 0x7 movs r3, 0xA bl sub_8071EBC movs r5, 0 ldr r2, _0810EB88 lsls r1, r4, 2 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x10 beq _0810EB76 ldr r0, _0810EB8C mov r8, r0 adds r6, r2, 0 _0810EB44: adds r0, r1, r6 ldrb r0, [r0] lsls r0, 2 add r0, r8 ldr r0, [r0] lsls r2, r5, 1 adds r2, 0x1 lsls r2, 24 lsrs r2, 24 movs r1, 0x1 bl Print adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x4 bhi _0810EB76 lsls r1, r4, 2 adds r0, r1, r6 ldrb r0, [r0] cmp r0, 0x10 bne _0810EB44 _0810EB76: adds r0, r7, 0 _0810EB78: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0810EB84: .4byte 0x0203925b _0810EB88: .4byte 0x03000760 _0810EB8C: .4byte gUnknown_083F8380 thumb_func_end sub_810EAC8 thumb_func_start sub_810EB90 sub_810EB90: @ 810EB90 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 cmp r4, 0 bne _0810EBB4 ldr r0, _0810EBB0 ldrb r1, [r0] movs r2, 0x2 eors r1, r2 strb r1, [r0] movs r0, 0 bl SetBgTilemapBuffer b _0810EBB8 .align 2, 0 _0810EBB0: .4byte 0x0203925c _0810EBB4: bl sub_810ECB0 _0810EBB8: adds r1, r4, r5 ldr r0, _0810EBC8 ldrb r0, [r0] cmp r1, r0 bge _0810EBCC bl sub_810ECD4 b _0810EBE0 .align 2, 0 _0810EBC8: .4byte 0x0203925a _0810EBCC: cmp r1, r0 bne _0810EBE0 ldr r0, _0810EBE8 ldrb r1, [r0] movs r2, 0x1 eors r1, r2 strb r1, [r0] movs r0, 0x1 bl SetBgTilemapBuffer _0810EBE0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810EBE8: .4byte 0x0203925c thumb_func_end sub_810EB90 thumb_func_start sub_810EBEC sub_810EBEC: @ 810EBEC push {lr} ldr r0, _0810EC2C movs r1, 0x9 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0810EC30 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 movs r2, 0x1 strh r2, [r1, 0x8] strh r0, [r1, 0xA] strh r0, [r1, 0xC] strh r0, [r1, 0xE] strh r2, [r1, 0x10] movs r0, 0x3 strh r0, [r1, 0x12] movs r0, 0 bl SetCameraPanningCallback bl sub_810ECFC movs r0, 0x59 bl audio_play pop {r0} bx r0 .align 2, 0 _0810EC2C: .4byte sub_810EC34 _0810EC30: .4byte 0x03004b20 thumb_func_end sub_810EBEC thumb_func_start sub_810EC34 sub_810EC34: @ 810EC34 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0810EC98 adds r4, r0, r1 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] movs r1, 0xA ldrsh r0, [r4, r1] movs r2, 0x12 ldrsh r1, [r4, r2] bl __modsi3 cmp r0, 0 bne _0810EC92 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0 bne _0810EC92 ldrh r0, [r4, 0x10] negs r0, r0 strh r0, [r4, 0x10] movs r2, 0x10 ldrsh r1, [r4, r2] movs r0, 0 bl SetCameraPanning movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0x17 bne _0810EC92 movs r0, 0x49 bl audio_play adds r0, r5, 0 bl sub_810EC9C bl InstallCameraPanAheadCallback _0810EC92: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810EC98: .4byte 0x03004b20 thumb_func_end sub_810EC34 thumb_func_start sub_810EC9C sub_810EC9C: @ 810EC9C push {lr} lsls r0, 24 lsrs r0, 24 bl DestroyTask bl script_env_2_enable_and_set_ctx_running pop {r0} bx r0 thumb_func_end sub_810EC9C thumb_func_start sub_810ECB0 sub_810ECB0: @ 810ECB0 push {lr} ldr r2, _0810ECD0 ldrb r1, [r2] lsrs r0, r1, 1 cmp r0, 0x1 beq _0810ECCC movs r0, 0x2 orrs r0, r1 strb r0, [r2] movs r0, 0 movs r1, 0x24 movs r2, 0x8 bl sub_80F953C _0810ECCC: pop {r0} bx r0 .align 2, 0 _0810ECD0: .4byte 0x0203925c thumb_func_end sub_810ECB0 thumb_func_start sub_810ECD4 sub_810ECD4: @ 810ECD4 push {lr} ldr r2, _0810ECF8 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0810ECF2 movs r0, 0x1 orrs r0, r1 strb r0, [r2] movs r0, 0x1 movs r1, 0x24 movs r2, 0x48 bl sub_80F953C _0810ECF2: pop {r0} bx r0 .align 2, 0 _0810ECF8: .4byte 0x0203925c thumb_func_end sub_810ECD4 thumb_func_start sub_810ECFC sub_810ECFC: @ 810ECFC push {r4,lr} ldr r4, _0810ED38 adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810ED30 adds r0, r4, 0 movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0810ED3C 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] _0810ED30: pop {r4} pop {r0} bx r0 .align 2, 0 _0810ED38: .4byte sub_810ED40 _0810ED3C: .4byte 0x03004b20 thumb_func_end sub_810ECFC thumb_func_start sub_810ED40 sub_810ED40: @ 810ED40 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _0810ED5C adds r0, r1 bl sub_810ED60 pop {r0} bx r0 .align 2, 0 _0810ED5C: .4byte 0x03004b20 thumb_func_end sub_810ED40 thumb_func_start sub_810ED60 sub_810ED60: @ 810ED60 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0xE ldrsh r0, [r5, r1] cmp r0, 0x8 beq _0810ED6E b _0810EEB2 _0810ED6E: movs r0, 0 strh r0, [r5, 0xE] movs r1, 0x10 ldrsh r0, [r5, r1] cmp r0, 0 beq _0810EE14 ldr r2, _0810EDFC movs r0, 0x7 movs r1, 0x7 bl MapGridSetMetatileIdAt ldr r4, _0810EE00 movs r0, 0x8 movs r1, 0x7 adds r2, r4, 0 bl MapGridSetMetatileIdAt movs r0, 0x9 movs r1, 0x7 adds r2, r4, 0 bl MapGridSetMetatileIdAt ldr r2, _0810EE04 movs r0, 0xA movs r1, 0x7 bl MapGridSetMetatileIdAt movs r2, 0xE7 lsls r2, 4 movs r0, 0x7 movs r1, 0x8 bl MapGridSetMetatileIdAt adds r4, 0x8 movs r0, 0x8 movs r1, 0x8 adds r2, r4, 0 bl MapGridSetMetatileIdAt movs r0, 0x9 movs r1, 0x8 adds r2, r4, 0 bl MapGridSetMetatileIdAt ldr r2, _0810EE08 movs r0, 0xA movs r1, 0x8 bl MapGridSetMetatileIdAt ldr r2, _0810EE0C movs r0, 0x7 movs r1, 0x9 bl MapGridSetMetatileIdAt adds r4, 0x8 movs r0, 0x8 movs r1, 0x9 adds r2, r4, 0 bl MapGridSetMetatileIdAt movs r0, 0x9 movs r1, 0x9 adds r2, r4, 0 bl MapGridSetMetatileIdAt ldr r2, _0810EE10 movs r0, 0xA movs r1, 0x9 bl MapGridSetMetatileIdAt b _0810EE92 .align 2, 0 _0810EDFC: .4byte 0x00000e68 _0810EE00: .4byte 0x00000e69 _0810EE04: .4byte 0x00000e6a _0810EE08: .4byte 0x00000e72 _0810EE0C: .4byte 0x00000e78 _0810EE10: .4byte 0x00000e7a _0810EE14: ldr r2, _0810EEC0 movs r0, 0x7 movs r1, 0x7 bl MapGridSetMetatileIdAt ldr r4, _0810EEC4 movs r0, 0x8 movs r1, 0x7 adds r2, r4, 0 bl MapGridSetMetatileIdAt movs r0, 0x9 movs r1, 0x7 adds r2, r4, 0 bl MapGridSetMetatileIdAt ldr r2, _0810EEC8 movs r0, 0xA movs r1, 0x7 bl MapGridSetMetatileIdAt ldr r2, _0810EECC movs r0, 0x7 movs r1, 0x8 bl MapGridSetMetatileIdAt adds r4, 0x8 movs r0, 0x8 movs r1, 0x8 adds r2, r4, 0 bl MapGridSetMetatileIdAt movs r0, 0x9 movs r1, 0x8 adds r2, r4, 0 bl MapGridSetMetatileIdAt ldr r2, _0810EED0 movs r0, 0xA movs r1, 0x8 bl MapGridSetMetatileIdAt ldr r2, _0810EED4 movs r0, 0x7 movs r1, 0x9 bl MapGridSetMetatileIdAt adds r4, 0x8 movs r0, 0x8 movs r1, 0x9 adds r2, r4, 0 bl MapGridSetMetatileIdAt movs r0, 0x9 movs r1, 0x9 adds r2, r4, 0 bl MapGridSetMetatileIdAt ldr r2, _0810EED8 movs r0, 0xA movs r1, 0x9 bl MapGridSetMetatileIdAt _0810EE92: bl DrawWholeMapView ldrh r0, [r5, 0x10] movs r1, 0x1 eors r0, r1 strh r0, [r5, 0x10] ldrh r0, [r5, 0xC] adds r0, 0x1 strh r0, [r5, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 bne _0810EEB2 ldrb r0, [r5, 0xA] bl DestroyTask _0810EEB2: ldrh r0, [r5, 0xE] adds r0, 0x1 strh r0, [r5, 0xE] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810EEC0: .4byte 0x00000e6b _0810EEC4: .4byte 0x00000e6c _0810EEC8: .4byte 0x00000e6d _0810EECC: .4byte 0x00000e73 _0810EED0: .4byte 0x00000e75 _0810EED4: .4byte 0x00000e7b _0810EED8: .4byte 0x00000e7d thumb_func_end sub_810ED60 thumb_func_start sub_810EEDC sub_810EEDC: @ 810EEDC push {r4,lr} ldr r4, _0810EF08 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0810EEF0 movs r0, 0x1 bl SetBgTilemapBuffer _0810EEF0: ldrb r0, [r4] lsrs r0, 1 cmp r0, 0x1 bne _0810EEFE movs r0, 0 bl SetBgTilemapBuffer _0810EEFE: bl BuyMenuFreeMemory pop {r4} pop {r0} bx r0 .align 2, 0 _0810EF08: .4byte 0x0203925c thumb_func_end sub_810EEDC thumb_func_start sub_810EF0C sub_810EF0C: @ 810EF0C push {lr} ldr r1, _0810EF1C ldr r0, _0810EF20 strh r0, [r1] bl FlagSet pop {r0} bx r0 .align 2, 0 _0810EF1C: .4byte 0x0202e8cc _0810EF20: .4byte 0x00000259 thumb_func_end sub_810EF0C thumb_func_start sub_810EF24 sub_810EF24: @ 810EF24 push {lr} ldr r1, _0810EF34 ldr r0, _0810EF38 strh r0, [r1] bl FlagReset pop {r0} bx r0 .align 2, 0 _0810EF34: .4byte 0x0202e8cc _0810EF38: .4byte 0x00000259 thumb_func_end sub_810EF24 thumb_func_start sub_810EF3C sub_810EF3C: @ 810EF3C push {lr} bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810EF5C adds r0, r1 movs r1, 0x16 bl PokemonGetField cmp r0, 0xC7 bls _0810EF60 movs r0, 0x1 b _0810EF62 .align 2, 0 _0810EF5C: .4byte 0x03004360 _0810EF60: movs r0, 0 _0810EF62: pop {r1} bx r1 thumb_func_end sub_810EF3C thumb_func_start sub_810EF68 sub_810EF68: @ 810EF68 push {lr} bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810EF88 adds r0, r1 movs r1, 0x17 bl PokemonGetField cmp r0, 0xC7 bls _0810EF8C movs r0, 0x1 b _0810EF8E .align 2, 0 _0810EF88: .4byte 0x03004360 _0810EF8C: movs r0, 0 _0810EF8E: pop {r1} bx r1 thumb_func_end sub_810EF68 thumb_func_start sub_810EF94 sub_810EF94: @ 810EF94 push {lr} bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810EFB4 adds r0, r1 movs r1, 0x18 bl PokemonGetField cmp r0, 0xC7 bls _0810EFB8 movs r0, 0x1 b _0810EFBA .align 2, 0 _0810EFB4: .4byte 0x03004360 _0810EFB8: movs r0, 0 _0810EFBA: pop {r1} bx r1 thumb_func_end sub_810EF94 thumb_func_start sub_810EFC0 sub_810EFC0: @ 810EFC0 push {lr} bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810EFE0 adds r0, r1 movs r1, 0x21 bl PokemonGetField cmp r0, 0xC7 bls _0810EFE4 movs r0, 0x1 b _0810EFE6 .align 2, 0 _0810EFE0: .4byte 0x03004360 _0810EFE4: movs r0, 0 _0810EFE6: pop {r1} bx r1 thumb_func_end sub_810EFC0 thumb_func_start sub_810EFEC sub_810EFEC: @ 810EFEC push {lr} bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810F00C adds r0, r1 movs r1, 0x2F bl PokemonGetField cmp r0, 0xC7 bls _0810F010 movs r0, 0x1 b _0810F012 .align 2, 0 _0810F00C: .4byte 0x03004360 _0810F010: movs r0, 0 _0810F012: pop {r1} bx r1 thumb_func_end sub_810EFEC thumb_func_start sub_810F018 sub_810F018: @ 810F018 push {r4-r6,lr} movs r5, 0 ldr r6, _0810F068 _0810F01E: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _0810F06C adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x5 bl PokemonGetField cmp r0, 0 beq _0810F074 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _0810F074 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField 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 _0810F060 ldrb r0, [r1, 0x7] cmp r0, 0xC bne _0810F074 _0810F060: ldr r1, _0810F070 movs r0, 0x1 b _0810F082 .align 2, 0 _0810F068: .4byte gBaseStats _0810F06C: .4byte 0x03004360 _0810F070: .4byte 0x0202e8dc _0810F074: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _0810F01E ldr r1, _0810F08C movs r0, 0 _0810F082: strh r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810F08C: .4byte 0x0202e8dc thumb_func_end sub_810F018 thumb_func_start sub_810F090 sub_810F090: @ 810F090 push {r4,r5,lr} sub sp, 0x8 bl script_env_2_enable movs r0, 0 movs r1, 0 movs r2, 0xA movs r3, 0xB bl DrawDefaultWindow movs r4, 0 str r4, [sp] movs r0, 0x9 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0x5 bl InitMenu ldr r0, _0810F104 strb r4, [r0] bl sub_80F944C bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed bl sub_810F2B4 ldr r5, _0810F108 _0810F0CA: lsls r0, r4, 2 adds r0, r5 ldr r0, [r0] lsls r2, r4, 1 adds r2, 0x1 lsls r2, 24 lsrs r2, 24 movs r1, 0x1 bl Print adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _0810F0CA ldr r1, _0810F10C movs r0, 0 strb r0, [r1] ldr r1, _0810F110 movs r0, 0x8 strb r0, [r1] ldr r0, _0810F114 movs r1, 0x8 bl CreateTask add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810F104: .4byte 0x0203925c _0810F108: .4byte gUnknown_083F83C0 _0810F10C: .4byte 0x0203925b _0810F110: .4byte 0x0203925a _0810F114: .4byte sub_810F118 thumb_func_end sub_810F090 thumb_func_start sub_810F118 sub_810F118: @ 810F118 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0810F1E4 ldrh r0, [r0, 0x2E] cmp r0, 0x40 bne _0810F14A ldr r1, _0810F1E8 ldrb r0, [r1] cmp r0, 0 beq _0810F14A subs r0, 0x1 strb r0, [r1] bl GetMenuCursorPos lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x1 negs r0, r0 bl MoveMenuCursorNoWrapAround adds r0, r4, 0 movs r1, 0x40 bl sub_810F1F4 _0810F14A: ldr r0, _0810F1E4 ldrh r0, [r0, 0x2E] cmp r0, 0x80 bne _0810F17A ldr r2, _0810F1E8 ldrb r1, [r2] ldr r0, _0810F1EC ldrb r0, [r0] subs r0, 0x1 cmp r1, r0 beq _0810F17A adds r0, r1, 0x1 strb r0, [r2] bl GetMenuCursorPos lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x1 bl MoveMenuCursorNoWrapAround adds r0, r4, 0 movs r1, 0x80 bl sub_810F1F4 _0810F17A: ldr r4, _0810F1E4 ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0810F1AE bl sub_8072DEC ldr r0, _0810F1F0 ldr r1, _0810F1E8 ldrb r1, [r1] strh r1, [r0] movs r0, 0x5 bl audio_play bl sub_810EEDC movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0xC bl Reset adds r0, r5, 0 bl sub_810EC9C _0810F1AE: ldrh r1, [r4, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0810F1DE bl sub_8072DEC ldr r1, _0810F1F0 movs r0, 0x7F strh r0, [r1] movs r0, 0x5 bl audio_play bl sub_810EEDC movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0xC bl Reset adds r0, r5, 0 bl sub_810EC9C _0810F1DE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810F1E4: .4byte 0x03001770 _0810F1E8: .4byte 0x0203925b _0810F1EC: .4byte 0x0203925a _0810F1F0: .4byte 0x0202e8dc thumb_func_end sub_810F118 thumb_func_start sub_810F1F4 sub_810F1F4: @ 810F1F4 push {r4-r7,lr} lsls r0, 24 lsrs r2, r0, 24 adds r5, r2, 0 lsls r1, 24 lsrs r1, 24 adds r3, r1, 0 movs r6, 0 movs r4, 0 ldr r0, _0810F214 ldrb r0, [r0] cmp r0, 0x4 bhi _0810F218 movs r0, 0 b _0810F282 .align 2, 0 _0810F214: .4byte 0x0203925a _0810F218: cmp r1, 0x40 bne _0810F22C cmp r2, 0 bne _0810F240 ldr r0, _0810F228 ldrb r4, [r0] movs r6, 0x1 b _0810F244 .align 2, 0 _0810F228: .4byte 0x0203925b _0810F22C: cmp r3, 0x80 bne _0810F240 cmp r5, 0x4 bne _0810F240 ldr r0, _0810F288 ldrb r0, [r0] subs r0, 0x4 lsls r0, 24 lsrs r4, r0, 24 movs r6, 0x1 _0810F240: cmp r6, 0 beq _0810F280 _0810F244: adds r0, r4, 0 movs r1, 0x5 bl sub_810F2DC movs r0, 0x2 movs r1, 0x1 movs r2, 0x9 movs r3, 0xA bl sub_8071EBC movs r5, 0 ldr r7, _0810F28C _0810F25C: lsls r0, r4, 2 adds r0, r7 ldr r0, [r0] lsls r2, r5, 1 adds r2, 0x1 lsls r2, 24 lsrs r2, 24 movs r1, 0x1 bl Print adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _0810F25C _0810F280: adds r0, r6, 0 _0810F282: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0810F288: .4byte 0x0203925b _0810F28C: .4byte gUnknown_083F83C0 thumb_func_end sub_810F1F4 thumb_func_start sub_810F290 sub_810F290: @ 810F290 push {lr} ldr r2, _0810F2B0 ldrb r1, [r2] lsrs r0, r1, 1 cmp r0, 0x1 beq _0810F2AC movs r0, 0x2 orrs r0, r1 strb r0, [r2] movs r0, 0 movs r1, 0x2C movs r2, 0x8 bl sub_80F953C _0810F2AC: pop {r0} bx r0 .align 2, 0 _0810F2B0: .4byte 0x0203925c thumb_func_end sub_810F290 thumb_func_start sub_810F2B4 sub_810F2B4: @ 810F2B4 push {lr} ldr r2, _0810F2D8 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0810F2D2 movs r0, 0x1 orrs r0, r1 strb r0, [r2] movs r0, 0x1 movs r1, 0x2C movs r2, 0x58 bl sub_80F953C _0810F2D2: pop {r0} bx r0 .align 2, 0 _0810F2D8: .4byte 0x0203925c thumb_func_end sub_810F2B4 thumb_func_start sub_810F2DC sub_810F2DC: @ 810F2DC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 cmp r4, 0 bne _0810F300 ldr r0, _0810F2FC ldrb r1, [r0] movs r2, 0x2 eors r1, r2 strb r1, [r0] movs r0, 0 bl SetBgTilemapBuffer b _0810F304 .align 2, 0 _0810F2FC: .4byte 0x0203925c _0810F300: bl sub_810F290 _0810F304: adds r1, r4, r5 ldr r0, _0810F314 ldrb r0, [r0] cmp r1, r0 bge _0810F318 bl sub_810F2B4 b _0810F32C .align 2, 0 _0810F314: .4byte 0x0203925a _0810F318: cmp r1, r0 bne _0810F32C ldr r0, _0810F334 ldrb r1, [r0] movs r2, 0x1 eors r1, r2 strb r1, [r0] movs r0, 0x1 bl SetBgTilemapBuffer _0810F32C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810F334: .4byte 0x0203925c thumb_func_end sub_810F2DC thumb_func_start SpawnScriptFieldObject SpawnScriptFieldObject: @ 810F338 push {lr} sub sp, 0x8 ldr r0, _0810F380 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, _0810F384 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 .align 2, 0 _0810F380: .4byte 0x02025734 _0810F384: .4byte 0x030048a0 thumb_func_end SpawnScriptFieldObject thumb_func_start sub_810F388 sub_810F388: @ 810F388 push {lr} bl GetPlayerAvatarObjectId lsls r0, 24 lsrs r0, 24 bl CameraObjectSetFollowedObjectId ldr r0, _0810F3A8 ldrb r1, [r0, 0x5] ldrb r2, [r0, 0x4] movs r0, 0x7F bl RemoveFieldObjectByLocalIdAndMap pop {r0} bx r0 .align 2, 0 _0810F3A8: .4byte 0x02025734 thumb_func_end sub_810F388 thumb_func_start sub_810F3AC sub_810F3AC: @ 810F3AC push {lr} bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810F3D4 adds r0, r1 bl GetNature lsls r0, 24 lsrs r0, 24 ldr r1, _0810F3D8 bl sub_810CB68 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0810F3D4: .4byte 0x03004360 _0810F3D8: .4byte 0x020231cc thumb_func_end sub_810F3AC thumb_func_start sub_810F3DC sub_810F3DC: @ 810F3DC push {r4,lr} ldr r4, _0810F3FC ldr r0, _0810F400 bl VarGet adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 movs r2, 0 bl sub_80FBFB4 pop {r4} pop {r0} bx r0 .align 2, 0 _0810F3FC: .4byte 0x020231cc _0810F400: .4byte 0x00004026 thumb_func_end sub_810F3DC thumb_func_start sub_810F404 sub_810F404: @ 810F404 push {lr} movs r0, 0x20 bl sub_8053108 lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_810F404 thumb_func_start sub_810F414 sub_810F414: @ 810F414 push {lr} ldr r0, _0810F420 bl sub_8135FF4 pop {r0} bx r0 .align 2, 0 _0810F420: .4byte 0x020231cc thumb_func_end sub_810F414 thumb_func_start sub_810F424 sub_810F424: @ 810F424 push {r4,r5,lr} ldr r2, _0810F458 ldr r1, _0810F45C adds r0, r2, r1 ldrb r1, [r0] lsls r1, 25 ldr r0, _0810F460 adds r2, r0 lsrs r1, 25 ldrh r2, [r2] adds r1, r2 ldr r2, _0810F464 ldr r0, _0810F468 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 _0810F470 ldr r4, _0810F46C b _0810F472 .align 2, 0 _0810F458: .4byte 0x02025734 _0810F45C: .4byte 0x00002dd4 _0810F460: .4byte 0x00002dd6 _0810F464: .4byte gUnknown_083F83E0 _0810F468: .4byte 0x0202e8cc _0810F46C: .4byte gUnknown_083F83EC _0810F470: ldr r4, _0810F484 _0810F472: adds r0, r5, 0 movs r1, 0xC bl __umodsi3 adds r0, r4 ldrb r0, [r0] pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0810F484: .4byte gUnknown_083F83F8 thumb_func_end sub_810F424 thumb_func_start sub_810F488 sub_810F488: @ 810F488 push {lr} ldr r1, _0810F4A0 ldr r0, _0810F4A4 strh r0, [r1] bl FlagGet lsls r0, 24 cmp r0, 0 beq _0810F4A8 movs r0, 0x1 b _0810F4AA .align 2, 0 _0810F4A0: .4byte 0x0202e8cc _0810F4A4: .4byte 0x00000277 _0810F4A8: movs r0, 0 _0810F4AA: pop {r1} bx r1 thumb_func_end sub_810F488 thumb_func_start sub_810F4B0 sub_810F4B0: @ 810F4B0 push {lr} ldr r1, _0810F4C8 movs r0, 0x9E lsls r0, 2 strh r0, [r1] bl FlagGet lsls r0, 24 cmp r0, 0 beq _0810F4CC movs r0, 0x1 b _0810F4CE .align 2, 0 _0810F4C8: .4byte 0x0202e8cc _0810F4CC: movs r0, 0 _0810F4CE: pop {r1} bx r1 thumb_func_end sub_810F4B0 thumb_func_start sub_810F4D4 sub_810F4D4: @ 810F4D4 push {lr} ldr r1, _0810F4EC ldr r0, _0810F4F0 strh r0, [r1] bl FlagGet lsls r0, 24 cmp r0, 0 beq _0810F4F4 movs r0, 0x1 b _0810F4F6 .align 2, 0 _0810F4EC: .4byte 0x0202e8cc _0810F4F0: .4byte 0x00000279 _0810F4F4: movs r0, 0 _0810F4F6: pop {r1} bx r1 thumb_func_end sub_810F4D4 thumb_func_start sub_810F4FC sub_810F4FC: @ 810F4FC push {lr} ldr r1, _0810F514 ldr r0, _0810F518 strh r0, [r1] bl FlagGet lsls r0, 24 cmp r0, 0 beq _0810F51C movs r0, 0x1 b _0810F51E .align 2, 0 _0810F514: .4byte 0x0202e8cc _0810F518: .4byte 0x0000027a _0810F51C: movs r0, 0 _0810F51E: pop {r1} bx r1 thumb_func_end sub_810F4FC thumb_func_start sub_810F524 sub_810F524: @ 810F524 push {lr} bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810F548 adds r0, r1 movs r1, 0x47 movs r2, 0 bl PokemonGetField lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0810F548: .4byte 0x03004360 thumb_func_end sub_810F524 thumb_func_start sub_810F54C sub_810F54C: @ 810F54C push {lr} sub sp, 0x4 movs r0, 0x2A bl sav12_xor_increment ldr r0, _0810F580 bl FlagSet movs r1, 0x1 mov r0, sp strb r1, [r0] bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810F584 adds r0, r1 movs r1, 0x47 mov r2, sp bl pokemon_setattr add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0810F580: .4byte 0x0000083b _0810F584: .4byte 0x03004360 thumb_func_end sub_810F54C thumb_func_start sub_810F588 sub_810F588: @ 810F588 push {lr} bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0810F5AC adds r0, r1 bl sub_8040020 lsls r0, 16 ldr r1, _0810F5B0 cmp r0, r1 bhi _0810F5B4 movs r0, 0 b _0810F5B6 .align 2, 0 _0810F5AC: .4byte 0x03004360 _0810F5B0: .4byte 0x01fd0000 _0810F5B4: movs r0, 0x1 _0810F5B6: pop {r1} bx r1 thumb_func_end sub_810F588 thumb_func_start sub_810F5BC sub_810F5BC: @ 810F5BC push {lr} movs r0, 0xC7 bl FlagGet lsls r0, 24 cmp r0, 0 bne _0810F610 ldr r0, _0810F5E8 ldrh r1, [r0, 0x4] movs r0, 0x83 lsls r0, 3 cmp r1, r0 bne _0810F610 subs r0, 0x75 bl FlagGet lsls r0, 24 cmp r0, 0 beq _0810F5F0 ldr r0, _0810F5EC movs r1, 0x4 b _0810F602 .align 2, 0 _0810F5E8: .4byte 0x02025734 _0810F5EC: .4byte 0x0000409a _0810F5F0: movs r0, 0xE9 lsls r0, 2 bl FlagGet lsls r0, 24 cmp r0, 0 beq _0810F610 ldr r0, _0810F60C movs r1, 0x5 _0810F602: bl VarSet movs r0, 0x1 b _0810F612 .align 2, 0 _0810F60C: .4byte 0x0000409a _0810F610: movs r0, 0 _0810F612: pop {r1} bx r1 thumb_func_end sub_810F5BC thumb_func_start sub_810F618 sub_810F618: @ 810F618 push {lr} ldr r0, _0810F624 bl FlagSet pop {r0} bx r0 .align 2, 0 _0810F624: .4byte 0x0000085f thumb_func_end sub_810F618 thumb_func_start sub_810F628 sub_810F628: @ 810F628 push {r4,r5,lr} sub sp, 0x14 ldr r5, _0810F690 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 create_pokemon_set_level movs r1, 0x1 add r0, sp, 0x10 strh r1, [r0] adds r0, r5, 0 movs r1, 0x2E add r2, sp, 0x10 bl pokemon_setattr add r1, sp, 0x10 movs r0, 0x21 strh r0, [r1] adds r0, r5, 0 movs r1, 0xD add r2, sp, 0x10 bl pokemon_setattr add r0, sp, 0x10 strh r4, [r0] adds r0, r5, 0 movs r1, 0xE add r2, sp, 0x10 bl pokemon_setattr adds r0, r5, 0 movs r1, 0xF add r2, sp, 0x10 bl pokemon_setattr adds r0, r5, 0 movs r1, 0x10 add r2, sp, 0x10 bl pokemon_setattr add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810F690: .4byte 0x03004360 thumb_func_end sub_810F628 thumb_func_start sub_810F694 sub_810F694: @ 810F694 push {r4-r6,lr} ldr r0, _0810F6D0 bl VarGet lsls r0, 16 lsrs r0, 16 bl sub_8109E50 lsls r0, 16 lsrs r6, r0, 16 bl calc_player_party_count lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 cmp r4, r5 bcs _0810F6E2 _0810F6B6: movs r0, 0x64 muls r0, r4 ldr r1, _0810F6D4 adds r0, r1 movs r1, 0x41 movs r2, 0 bl PokemonGetField cmp r0, r6 bne _0810F6D8 movs r0, 0x1 b _0810F6E4 .align 2, 0 _0810F6D0: .4byte 0x00004023 _0810F6D4: .4byte 0x03004360 _0810F6D8: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _0810F6B6 _0810F6E2: movs r0, 0 _0810F6E4: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_810F694 thumb_func_start sub_810F6EC sub_810F6EC: @ 810F6EC push {r4-r6,lr} movs r5, 0 _0810F6F0: movs r4, 0 lsls r1, r5, 2 adds r1, r5 lsls r0, r1, 4 subs r0, r1 lsls r6, r0, 5 _0810F6FC: lsls r0, r4, 2 adds r0, r4 lsls r0, 4 ldr r1, _0810F718 adds r0, r1 adds r0, r6, r0 movs r1, 0xB movs r2, 0 bl PokemonGetEncryptedField cmp r0, 0 bne _0810F71C movs r0, 0x1 b _0810F732 .align 2, 0 _0810F718: .4byte 0x020300a4 _0810F71C: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1D bls _0810F6FC adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0xD bls _0810F6F0 movs r0, 0 _0810F732: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_810F6EC thumb_func_start sub_810F738 sub_810F738: @ 810F738 push {lr} ldr r0, _0810F74C movs r1, 0x3F bl sub_8040110 lsls r0, 24 cmp r0, 0 beq _0810F750 movs r0, 0x1 b _0810F752 .align 2, 0 _0810F74C: .4byte 0x03004360 _0810F750: movs r0, 0 _0810F752: pop {r1} bx r1 thumb_func_end sub_810F738 thumb_func_start sub_810F758 sub_810F758: @ 810F758 push {lr} ldr r0, _0810F798 movs r1, 0x9 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0810F79C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _0810F7A0 ldrh r2, [r0] movs r0, 0 strh r2, [r1, 0x8] strh r0, [r1, 0xA] strh r0, [r1, 0xC] strh r0, [r1, 0xE] ldr r0, _0810F7A4 ldrh r0, [r0] strh r0, [r1, 0x10] movs r0, 0x5 strh r0, [r1, 0x12] movs r0, 0 bl SetCameraPanningCallback movs r0, 0xD6 bl audio_play pop {r0} bx r0 .align 2, 0 _0810F798: .4byte sub_810F7A8 _0810F79C: .4byte 0x03004b20 _0810F7A0: .4byte 0x0202e8ce _0810F7A4: .4byte 0x0202e8cc thumb_func_end sub_810F758 thumb_func_start sub_810F7A8 sub_810F7A8: @ 810F7A8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0810F810 adds r4, r0, r1 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] movs r1, 0xA ldrsh r0, [r4, r1] movs r2, 0x12 ldrsh r1, [r4, r2] bl __modsi3 cmp r0, 0 bne _0810F808 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0 bne _0810F808 ldrh r0, [r4, 0x8] negs r0, r0 strh r0, [r4, 0x8] ldrh r0, [r4, 0x10] negs r0, r0 strh r0, [r4, 0x10] movs r2, 0x8 ldrsh r0, [r4, r2] movs r2, 0x10 ldrsh r1, [r4, r2] bl SetCameraPanning movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0x8 bne _0810F808 adds r0, r5, 0 bl sub_810F814 bl InstallCameraPanAheadCallback _0810F808: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810F810: .4byte 0x03004b20 thumb_func_end sub_810F7A8 thumb_func_start sub_810F814 sub_810F814: @ 810F814 push {lr} lsls r0, 24 lsrs r0, 24 bl DestroyTask bl script_env_2_enable_and_set_ctx_running pop {r0} bx r0 thumb_func_end sub_810F814 thumb_func_start sub_810F828 sub_810F828: @ 810F828 push {lr} movs r0, 0xAE lsls r0, 2 bl FlagGet lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_810F828 thumb_func_start sub_810F83C sub_810F83C: @ 810F83C 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 _0810F858 movs r0, 0x14 bl sub_80806B4 _0810F858: pop {r0} bx r0 thumb_func_end sub_810F83C thumb_func_start sub_810F85C sub_810F85C: @ 810F85C 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 _0810F878 movs r0, 0x15 bl sub_80806B4 _0810F878: pop {r0} bx r0 thumb_func_end sub_810F85C thumb_func_start sub_810F87C sub_810F87C: @ 810F87C push {r4-r6,lr} bl calc_player_party_count lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 cmp r5, r6 bcs _0810F8CA _0810F88C: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _0810F8BC adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x41 movs r2, 0 bl PokemonGetField movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _0810F8C0 adds r0, r4, 0 movs r1, 0x41 movs r2, 0 bl PokemonGetField cmp r0, 0 beq _0810F8C0 adds r0, r5, 0 b _0810F8CC .align 2, 0 _0810F8BC: .4byte 0x03004360 _0810F8C0: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r6 bcc _0810F88C _0810F8CA: movs r0, 0 _0810F8CC: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_810F87C thumb_func_start sub_810F8D4 sub_810F8D4: @ 810F8D4 push {lr} ldr r0, _0810F8F4 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0810F8F8 adds r0, r1 movs r1, 0x41 movs r2, 0 bl PokemonGetField lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .align 2, 0 _0810F8F4: .4byte 0x0202e8cc _0810F8F8: .4byte 0x03004360 thumb_func_end sub_810F8D4 thumb_func_start sub_810F8FC sub_810F8FC: @ 810F8FC push {lr} movs r0, 0x6 bl sub_805ADDC pop {r0} bx r0 thumb_func_end sub_810F8FC thumb_func_start sub_810F908 sub_810F908: @ 810F908 push {r4,lr} ldr r0, _0810F928 bl VarGet lsls r0, 16 lsrs r0, 16 adds r3, r0, 0 ldr r2, _0810F92C movs r1, 0 ldrsh r0, [r2, r1] subs r0, r3 cmp r0, 0x6 ble _0810F930 movs r0, 0 b _0810F948 .align 2, 0 _0810F928: .4byte 0x000040c2 _0810F92C: .4byte 0x03004038 _0810F930: ldrh r1, [r2] movs r4, 0 ldrsh r0, [r2, r4] cmp r0, 0 blt _0810F946 subs r1, r3 movs r0, 0x7 subs r0, r1 lsls r0, 16 lsrs r0, 16 b _0810F948 _0810F946: movs r0, 0x8 _0810F948: pop {r4} pop {r1} bx r1 thumb_func_end sub_810F908 thumb_func_start sub_810F950 sub_810F950: @ 810F950 push {r4,lr} ldr r0, _0810F964 ldr r4, _0810F968 ldrh r1, [r4] bl VarSet ldrh r0, [r4] pop {r4} pop {r1} bx r1 .align 2, 0 _0810F964: .4byte 0x000040c2 _0810F968: .4byte 0x03004038 thumb_func_end sub_810F950 thumb_func_start sub_810F96C sub_810F96C: @ 810F96C push {r4,lr} ldr r0, _0810F994 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0810F998 adds r0, r1 ldr r4, _0810F99C movs r1, 0x7 adds r2, r4, 0 bl PokemonGetField ldr r0, _0810F9A0 adds r1, r4, 0 bl StringCompareWithoutExtCtrlCodes cmp r0, 0 beq _0810F9A4 movs r0, 0x1 b _0810F9A6 .align 2, 0 _0810F994: .4byte 0x0202e8cc _0810F998: .4byte 0x03004360 _0810F99C: .4byte 0x020231cc _0810F9A0: .4byte gSaveBlock2 _0810F9A4: movs r0, 0 _0810F9A6: pop {r4} pop {r1} bx r1 thumb_func_end sub_810F96C thumb_func_start sub_810F9AC sub_810F9AC: @ 810F9AC push {r4,r5,lr} ldr r2, _0810F9C0 ldrh r1, [r2] ldr r0, _0810F9C4 cmp r1, r0 bls _0810F9C8 movs r0, 0 bl sub_80BF088 b _0810FA4A .align 2, 0 _0810F9C0: .4byte 0x0202e8dc _0810F9C4: .4byte 0x0000270f _0810F9C8: ldr r0, _0810F9D8 cmp r1, r0 bls _0810F9E0 ldr r4, _0810F9DC movs r0, 0xA1 strb r0, [r4] adds r4, 0x1 b _0810FA04 .align 2, 0 _0810F9D8: .4byte 0x000003e7 _0810F9DC: .4byte 0x020231cc _0810F9E0: cmp r1, 0x63 bls _0810F9F4 ldr r4, _0810F9F0 movs r0, 0xA1 strb r0, [r4] strb r0, [r4, 0x1] adds r4, 0x2 b _0810FA04 .align 2, 0 _0810F9F0: .4byte 0x020231cc _0810F9F4: cmp r1, 0x9 bls _0810FA24 ldr r4, _0810FA20 movs r0, 0xA1 strb r0, [r4] strb r0, [r4, 0x1] strb r0, [r4, 0x2] adds r4, 0x3 _0810FA04: ldrh r5, [r2] adds r0, r5, 0 bl sub_80BF0B8 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl ConvertIntToDecimalStringN b _0810FA4A .align 2, 0 _0810FA20: .4byte 0x020231cc _0810FA24: ldr r4, _0810FA50 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_80BF0B8 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl ConvertIntToDecimalStringN _0810FA4A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810FA50: .4byte 0x020231cc thumb_func_end sub_810F9AC thumb_func_start sub_810FA54 sub_810FA54: @ 810FA54 ldr r0, _0810FA68 ldr r2, _0810FA6C adds r1, r0, r2 movs r2, 0 strh r2, [r1] ldr r1, _0810FA70 adds r0, r1 strh r2, [r0] bx lr .align 2, 0 _0810FA68: .4byte 0x02025734 _0810FA6C: .4byte 0x000013c2 _0810FA70: .4byte 0x000013c4 thumb_func_end sub_810FA54 thumb_func_start sub_810FA74 sub_810FA74: @ 810FA74 push {lr} bl sub_810FF30 lsls r0, 24 cmp r0, 0 beq _0810FA90 bl sub_810FCE8 ldr r0, _0810FA94 ldr r1, _0810FA98 ldrh r1, [r1, 0xE] ldr r2, _0810FA9C adds r0, r2 strh r1, [r0] _0810FA90: pop {r0} bx r0 .align 2, 0 _0810FA94: .4byte 0x02025734 _0810FA98: .4byte gSaveBlock2 _0810FA9C: .4byte 0x000013c4 thumb_func_end sub_810FA74 thumb_func_start sub_810FAA0 sub_810FAA0: @ 810FAA0 push {r4,lr} ldr r4, _0810FAF0 ldr r1, _0810FAF4 adds r0, r4, r1 ldrh r0, [r0] lsrs r0, 7 movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _0810FAE8 bl sub_810FF48 bl sub_810FD80 ldr r0, _0810FAF8 ldrh r1, [r0, 0xE] ldr r2, _0810FAFC adds r0, r4, r2 strh r1, [r0] ldr r0, _0810FB00 bl FlagReset ldr r0, _0810FB04 bl FlagReset ldr r0, _0810FB08 bl FlagReset movs r0, 0xC6 lsls r0, 2 bl FlagReset ldr r0, _0810FB0C movs r1, 0x1 bl VarSet _0810FAE8: pop {r4} pop {r0} bx r0 .align 2, 0 _0810FAF0: .4byte 0x02025734 _0810FAF4: .4byte 0x000013c2 _0810FAF8: .4byte gSaveBlock2 _0810FAFC: .4byte 0x000013c4 _0810FB00: .4byte 0x00000315 _0810FB04: .4byte 0x00000316 _0810FB08: .4byte 0x00000317 _0810FB0C: .4byte 0x00004095 thumb_func_end sub_810FAA0 thumb_func_start sub_810FB10 sub_810FB10: @ 810FB10 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0810FB54 bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bne _0810FB80 ldr r0, _0810FB58 ldr r1, _0810FB5C adds r4, r0, r1 ldrh r2, [r4] movs r1, 0x7F ands r1, r2 ldr r0, _0810FB60 adds r0, r5, r0 ldrb r0, [r0] adds r1, r0 cmp r1, 0x13 ble _0810FB7C bl sub_810FCB0 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bhi _0810FB68 bl sub_810FB9C ldrh r1, [r4] ldr r0, _0810FB64 ands r0, r1 b _0810FB7E .align 2, 0 _0810FB54: .4byte 0x00004095 _0810FB58: .4byte 0x02025734 _0810FB5C: .4byte 0x000013c2 _0810FB60: .4byte gUnknown_083F8404 _0810FB64: .4byte 0x0000ff80 _0810FB68: ldrh r0, [r4] ldr r1, _0810FB78 ands r1, r0 movs r0, 0x14 orrs r1, r0 strh r1, [r4] b _0810FB80 .align 2, 0 _0810FB78: .4byte 0x0000ff80 _0810FB7C: adds r0, r2, r0 _0810FB7E: strh r0, [r4] _0810FB80: ldr r0, _0810FB94 ldr r1, _0810FB98 adds r0, r1 ldrb r1, [r0] movs r0, 0x7F ands r0, r1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0810FB94: .4byte 0x02025734 _0810FB98: .4byte 0x000013c2 thumb_func_end sub_810FB10 thumb_func_start sub_810FB9C sub_810FB9C: @ 810FB9C push {r4-r7,lr} sub sp, 0x4 movs r3, 0 movs r5, 0 ldr r7, _0810FBD8 movs r6, 0x1 _0810FBA8: ldrh r1, [r7] ldr r0, _0810FBDC adds r0, r5, r0 ldrb r4, [r0] asrs r1, r4 ands r1, r6 cmp r1, 0 bne _0810FBE0 adds r3, r5, 0 str r3, [sp] bl Random adds r1, r6, 0 ands r1, r0 ldr r3, [sp] cmp r1, 0 beq _0810FBE0 adds r0, r6, 0 lsls r0, r4 ldrh r1, [r7] orrs r0, r1 strh r0, [r7] b _0810FC00 .align 2, 0 _0810FBD8: .4byte 0x02026af6 _0810FBDC: .4byte gUnknown_083F8408 _0810FBE0: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x7 bls _0810FBA8 ldr r2, _0810FC0C ldr r0, _0810FC10 adds r2, r0 ldr r1, _0810FC14 adds r1, r3, r1 movs r0, 0x1 ldrb r1, [r1] lsls r0, r1 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] _0810FC00: adds r0, r3, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0810FC0C: .4byte 0x02025734 _0810FC10: .4byte 0x000013c2 _0810FC14: .4byte gUnknown_083F8408 thumb_func_end sub_810FB9C thumb_func_start sub_810FC18 sub_810FC18: @ 810FC18 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r0, 0 mov r8, r0 bl sub_810FCB0 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bne _0810FC3E movs r0, 0 b _0810FC94 _0810FC34: lsls r4, r6 ldrh r0, [r2] eors r4, r0 strh r4, [r2] b _0810FC92 _0810FC3E: movs r5, 0 ldr r2, _0810FCA0 movs r4, 0x1 _0810FC44: ldrh r1, [r2] ldr r7, _0810FCA4 adds r0, r5, r7 ldrb r6, [r0] asrs r1, r6 ands r1, r4 cmp r1, 0 beq _0810FC66 mov r8, r5 str r2, [sp] bl Random adds r1, r4, 0 ands r1, r0 ldr r2, [sp] cmp r1, 0 bne _0810FC34 _0810FC66: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x7 bls _0810FC44 ldr r0, _0810FCA8 ldr r1, _0810FCAC adds r4, r0, r1 ldrh r1, [r4] mov r2, r8 adds r0, r2, r7 ldrb r2, [r0] adds r0, r1, 0 asrs r0, r2 movs r3, 0x1 ands r0, r3 cmp r0, 0 beq _0810FC92 adds r0, r3, 0 lsls r0, r2 eors r1, r0 strh r1, [r4] _0810FC92: mov r0, r8 _0810FC94: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0810FCA0: .4byte 0x02026af6 _0810FCA4: .4byte gUnknown_083F8410 _0810FCA8: .4byte 0x02025734 _0810FCAC: .4byte 0x000013c2 thumb_func_end sub_810FC18 thumb_func_start sub_810FCB0 sub_810FCB0: @ 810FCB0 push {r4,r5,lr} movs r3, 0 movs r2, 0 ldr r0, _0810FCE4 ldrh r4, [r0] movs r5, 0x1 _0810FCBC: adds r1, r2, 0 adds r1, 0x8 adds r0, r4, 0 asrs r0, r1 ands r0, r5 cmp r0, 0 beq _0810FCD0 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 _0810FCD0: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x7 bls _0810FCBC adds r0, r3, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0810FCE4: .4byte 0x02026af6 thumb_func_end sub_810FCB0 thumb_func_start sub_810FCE8 sub_810FCE8: @ 810FCE8 push {r4-r7,lr} mov r7, r8 push {r7} movs r5, 0 ldr r2, _0810FD08 ldrh r1, [r2, 0xE] ldr r0, _0810FD0C cmp r1, r0 bhi _0810FD54 ldr r7, _0810FD10 adds r6, r2, 0 ldr r0, _0810FD14 adds r0, r7 mov r8, r0 b _0810FD36 .align 2, 0 _0810FD08: .4byte gSaveBlock2 _0810FD0C: .4byte 0x000003e6 _0810FD10: .4byte 0x02025734 _0810FD14: .4byte 0x000013c4 _0810FD18: ldrh r1, [r6, 0xE] ldr r0, _0810FD4C adds r4, r7, r0 ldrh r0, [r4] subs r1, r0 cmp r1, 0xB ble _0810FD54 bl sub_810FC18 ldrh r0, [r4] adds r0, 0xC strh r0, [r4] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _0810FD36: bl sub_810FCB0 lsls r0, 16 lsrs r0, 16 cmp r0, 0x4 bhi _0810FD50 ldrh r0, [r6, 0xE] mov r1, r8 strh r0, [r1] b _0810FD54 .align 2, 0 _0810FD4C: .4byte 0x000013c4 _0810FD50: cmp r5, 0x8 bne _0810FD18 _0810FD54: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_810FCE8 thumb_func_start sub_810FD60 sub_810FD60: @ 810FD60 ldr r0, _0810FD74 ldr r1, _0810FD78 adds r0, r1 ldrh r0, [r0] ldr r1, _0810FD7C ldrh r1, [r1] asrs r0, r1 movs r1, 0x1 ands r0, r1 bx lr .align 2, 0 _0810FD74: .4byte 0x02025734 _0810FD78: .4byte 0x000013c2 _0810FD7C: .4byte 0x0202e8cc thumb_func_end sub_810FD60 thumb_func_start sub_810FD80 sub_810FD80: @ 810FD80 ldr r2, _0810FDA4 ldr r0, _0810FDA8 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 .align 2, 0 _0810FDA4: .4byte 0x02025734 _0810FDA8: .4byte 0x000013c2 thumb_func_end sub_810FD80 thumb_func_start sub_810FDAC sub_810FDAC: @ 810FDAC push {lr} movs r3, 0 movs r2, 0 ldr r0, _0810FDC8 ldrh r0, [r0] subs r0, 0x8 cmp r0, 0x7 bhi _0810FE0C lsls r0, 2 ldr r1, _0810FDCC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0810FDC8: .4byte 0x0202e8cc _0810FDCC: .4byte _0810FDD0 .align 2, 0 _0810FDD0: .4byte _0810FE0C .4byte _0810FE0C .4byte _0810FDF0 .4byte _0810FDF6 .4byte _0810FDFC .4byte _0810FE02 .4byte _0810FE08 .4byte _0810FE0C _0810FDF0: movs r3, 0 movs r2, 0x3 b _0810FE0C _0810FDF6: movs r3, 0 movs r2, 0x1 b _0810FE0C _0810FDFC: movs r3, 0x1 movs r2, 0 b _0810FE0C _0810FE02: movs r3, 0 movs r2, 0x4 b _0810FE0C _0810FE08: movs r3, 0x1 movs r2, 0x5 _0810FE0C: ldr r0, _0810FE18 adds r1, r3, 0 bl sub_810FE1C pop {r0} bx r0 .align 2, 0 _0810FE18: .4byte 0x020287ec thumb_func_end sub_810FDAC thumb_func_start sub_810FE1C sub_810FE1C: @ 810FE1C push {r4,lr} lsls r1, 24 lsls r2, 24 lsrs r2, 24 lsrs r1, 20 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0xFF bne _0810FED0 cmp r2, 0x5 bhi _0810FEBC lsls r0, r2, 2 ldr r1, _0810FE3C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0810FE3C: .4byte _0810FE40 .align 2, 0 _0810FE40: .4byte _0810FEBC .4byte _0810FE58 .4byte _0810FE6C .4byte _0810FE80 .4byte _0810FE94 .4byte _0810FEA8 _0810FE58: ldr r0, _0810FE64 ldr r1, _0810FE68 bl StringCopy b _0810FEF2 .align 2, 0 _0810FE64: .4byte 0x020231cc _0810FE68: .4byte gUnknown_0840FF42 _0810FE6C: ldr r0, _0810FE78 ldr r1, _0810FE7C bl StringCopy b _0810FEF2 .align 2, 0 _0810FE78: .4byte 0x020231cc _0810FE7C: .4byte gUnknown_0840FF49 _0810FE80: ldr r0, _0810FE8C ldr r1, _0810FE90 bl StringCopy b _0810FEF2 .align 2, 0 _0810FE8C: .4byte 0x020231cc _0810FE90: .4byte gUnknown_0840FF50 _0810FE94: ldr r0, _0810FEA0 ldr r1, _0810FEA4 bl StringCopy b _0810FEF2 .align 2, 0 _0810FEA0: .4byte 0x020231cc _0810FEA4: .4byte gUnknown_0840FF57 _0810FEA8: ldr r0, _0810FEB4 ldr r1, _0810FEB8 bl StringCopy b _0810FEF2 .align 2, 0 _0810FEB4: .4byte 0x020231cc _0810FEB8: .4byte gUnknown_0840FF5E _0810FEBC: ldr r0, _0810FEC8 ldr r1, _0810FECC bl StringCopy b _0810FEF2 .align 2, 0 _0810FEC8: .4byte 0x020231cc _0810FECC: .4byte gUnknown_0840FF3A _0810FED0: ldr r4, _0810FEF8 adds r0, r4, 0 movs r2, 0x7 bl StringCopyN movs r0, 0xFF strb r0, [r4, 0x7] ldrb r0, [r4] cmp r0, 0xFC bne _0810FEF2 ldrb r0, [r4, 0x1] cmp r0, 0x15 bne _0810FEF2 adds r0, r4, 0 movs r1, 0x1 bl ConvertInternationalString _0810FEF2: pop {r4} pop {r0} bx r0 .align 2, 0 _0810FEF8: .4byte 0x020231cc thumb_func_end sub_810FE1C thumb_func_start sub_810FEFC sub_810FEFC: @ 810FEFC push {lr} ldr r0, _0810FF20 bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bne _0810FF2C bl sub_810FA74 ldr r0, _0810FF24 ldrb r0, [r0] cmp r0, 0x1 bne _0810FF28 bl sub_810FB9C b _0810FF2C .align 2, 0 _0810FF20: .4byte 0x00004095 _0810FF24: .4byte 0x02024d26 _0810FF28: bl sub_810FC18 _0810FF2C: pop {r0} bx r0 thumb_func_end sub_810FEFC thumb_func_start sub_810FF30 sub_810FF30: @ 810FF30 ldr r0, _0810FF40 ldr r1, _0810FF44 adds r0, r1 ldrh r0, [r0] lsrs r0, 7 movs r1, 0x1 ands r0, r1 bx lr .align 2, 0 _0810FF40: .4byte 0x02025734 _0810FF44: .4byte 0x000013c2 thumb_func_end sub_810FF30 thumb_func_start sub_810FF48 sub_810FF48: @ 810FF48 ldr r0, _0810FF58 ldr r1, _0810FF5C adds r0, r1 ldrh r2, [r0] movs r1, 0x80 orrs r1, r2 strh r1, [r0] bx lr .align 2, 0 _0810FF58: .4byte 0x02025734 _0810FF5C: .4byte 0x000013c2 thumb_func_end sub_810FF48 thumb_func_start sub_810FF60 sub_810FF60: @ 810FF60 push {lr} ldr r0, _0810FF74 ldrb r0, [r0] bl sub_810FB10 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0810FF74: .4byte 0x0202e8cc thumb_func_end sub_810FF60 thumb_func_start sub_810FF78 sub_810FF78: @ 810FF78 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 mov r1, sp movs r0, 0 strh r0, [r1] ldr r2, _0810FFA4 mov r0, sp adds r1, r4, 0 bl CpuSet movs r0, 0xFF strb r0, [r4] movs r0, 0 strh r0, [r4, 0x8] strh r0, [r4, 0xA] strh r0, [r4, 0xC] strh r0, [r4, 0xE] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0810FFA4: .4byte 0x01000008 thumb_func_end sub_810FF78 thumb_func_start sub_810FFA8 sub_810FFA8: @ 810FFA8 push {r4,r5,lr} adds r4, r0, 0 movs r5, 0x4 _0810FFAE: adds r0, r4, 0 bl sub_810FF78 adds r4, 0x10 subs r5, 0x1 cmp r5, 0 bge _0810FFAE movs r0, 0x17 movs r1, 0 bl sav12_xor_set movs r0, 0x18 movs r1, 0 bl sav12_xor_set movs r0, 0x19 movs r1, 0 bl sav12_xor_set pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_810FFA8 thumb_func_start sub_810FFDC sub_810FFDC: @ 810FFDC adds r1, r0, 0 ldrh r0, [r1, 0xA] ldrh r2, [r1, 0xC] adds r0, r2 ldrh r1, [r1, 0xE] adds r0, r1 bx lr thumb_func_end sub_810FFDC thumb_func_start sub_810FFEC sub_810FFEC: @ 810FFEC push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r1 lsls r2, 16 lsrs r7, r2, 16 movs r5, 0 ldr r6, _08110024 adds r4, r0, 0 _0810FFFE: adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x7 bl memcpy movs r0, 0xFF strb r0, [r6, 0x7] adds r0, r6, 0 mov r1, r8 bl StringCompareWithoutExtCtrlCodes cmp r0, 0 bne _08110028 ldrh r0, [r4, 0x8] cmp r0, r7 bne _08110028 adds r0, r5, 0 b _08110032 .align 2, 0 _08110024: .4byte 0x020231cc _08110028: adds r4, 0x10 adds r5, 0x1 cmp r5, 0x4 ble _0810FFFE movs r0, 0x5 _08110032: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_810FFEC thumb_func_start sub_811003C sub_811003C: @ 811003C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 mov r8, r0 movs r0, 0x4 _0811004A: subs r2, r0, 0x1 mov r9, r2 cmp r2, 0 blt _081100A4 lsls r0, 4 mov r1, r8 adds r6, r1, r0 lsls r0, r2, 4 adds r5, r0, r1 _0811005C: adds r0, r6, 0 str r2, [sp, 0x10] bl sub_810FFDC adds r4, r0, 0 adds r0, r5, 0 bl sub_810FFDC ldr r2, [sp, 0x10] cmp r4, r0 ble _08110096 mov r1, sp adds r0, r6, 0 ldm r0!, {r3,r4,r7} stm r1!, {r3,r4,r7} ldr r0, [r0] str r0, [r1] adds r1, r6, 0 adds r0, r5, 0 ldm r0!, {r3,r4,r7} stm r1!, {r3,r4,r7} ldr r0, [r0] str r0, [r1] adds r1, r5, 0 mov r0, sp ldm r0!, {r3,r4,r7} stm r1!, {r3,r4,r7} ldr r0, [r0] str r0, [r1] _08110096: subs r5, 0x10 movs r0, 0x1 negs r0, r0 add r9, r0 mov r1, r9 cmp r1, 0 bge _0811005C _081100A4: adds r0, r2, 0 cmp r0, 0 bgt _0811004A add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_811003C thumb_func_start sub_81100B8 sub_81100B8: @ 81100B8 push {lr} adds r2, r0, 0 cmp r1, 0x2 beq _081100E8 cmp r1, 0x2 bgt _081100CA cmp r1, 0x1 beq _081100D0 b _08110112 _081100CA: cmp r1, 0x3 beq _08110100 b _08110112 _081100D0: ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] lsls r0, 16 lsrs r0, 16 ldr r1, _081100E4 cmp r0, r1 bls _08110112 strh r1, [r2, 0xA] b _08110112 .align 2, 0 _081100E4: .4byte 0x0000270f _081100E8: ldrh r0, [r2, 0xC] adds r0, 0x1 strh r0, [r2, 0xC] lsls r0, 16 lsrs r0, 16 ldr r1, _081100FC cmp r0, r1 bls _08110112 strh r1, [r2, 0xC] b _08110112 .align 2, 0 _081100FC: .4byte 0x0000270f _08110100: ldrh r0, [r2, 0xE] adds r0, 0x1 strh r0, [r2, 0xE] lsls r0, 16 lsrs r0, 16 ldr r1, _08110118 cmp r0, r1 bls _08110112 strh r1, [r2, 0xE] _08110112: pop {r0} bx r0 .align 2, 0 _08110118: .4byte 0x0000270f thumb_func_end sub_81100B8 thumb_func_start sub_811011C sub_811011C: @ 811011C push {r4,lr} cmp r0, 0x2 beq _08110136 cmp r0, 0x2 bgt _0811012C cmp r0, 0x1 beq _08110132 b _0811014E _0811012C: cmp r0, 0x3 beq _0811013A b _0811014E _08110132: movs r4, 0x17 b _0811013C _08110136: movs r4, 0x18 b _0811013C _0811013A: movs r4, 0x19 _0811013C: adds r0, r4, 0 bl sub_8053108 ldr r1, _08110154 cmp r0, r1 bhi _0811014E adds r0, r4, 0 bl sav12_xor_increment _0811014E: pop {r4} pop {r0} bx r0 .align 2, 0 _08110154: .4byte 0x0000270e thumb_func_end sub_811011C thumb_func_start sub_8110158 sub_8110158: @ 8110158 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r5, r0, 0 adds r7, r1, 0 mov r10, r3 ldr r0, [sp, 0x20] lsls r2, 16 lsrs r2, 16 mov r9, r2 lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r10 bl sub_811011C adds r0, r5, 0 bl sub_811003C adds r0, r5, 0 adds r1, r7, 0 mov r2, r9 bl sub_810FFEC adds r6, r0, 0 cmp r6, 0x5 bne _081101CC movs r6, 0x4 adds r4, r5, 0 adds r4, 0x40 adds r0, r4, 0 bl sub_810FF78 mov r0, r8 cmp r0, 0x1 bne _081101BA movs r0, 0xFC strb r0, [r4] movs r0, 0x15 strb r0, [r4, 0x1] adds r0, r5, 0 adds r0, 0x42 adds r1, r7, 0 movs r2, 0x5 bl StringCopyN b _081101C4 _081101BA: adds r0, r4, 0 adds r1, r7, 0 movs r2, 0x7 bl StringCopyN _081101C4: lsls r0, r6, 4 adds r0, r5, r0 mov r1, r9 strh r1, [r0, 0x8] _081101CC: lsls r0, r6, 4 adds r0, r5, r0 mov r1, r10 bl sub_81100B8 adds r0, r5, 0 bl sub_811003C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8110158 thumb_func_start GameFreakRTC_Reset GameFreakRTC_Reset: @ 81101EC push {lr} ldr r0, _081101F8 bl sub_810FFA8 pop {r0} bx r0 .align 2, 0 _081101F8: .4byte 0x020287ec thumb_func_end GameFreakRTC_Reset thumb_func_start sub_81101FC sub_81101FC: @ 81101FC push {lr} lsls r1, r0, 3 subs r1, r0 lsls r1, 3 ldr r0, _08110220 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 ldr r2, _08110224 cmp r0, r2 bls _0811021A strh r2, [r1] _0811021A: pop {r0} bx r0 .align 2, 0 _08110220: .4byte 0x0202ffd4 _08110224: .4byte 0x0000270f thumb_func_end sub_81101FC thumb_func_start sub_8110228 sub_8110228: @ 8110228 push {lr} lsls r1, r0, 3 subs r1, r0 lsls r1, 3 ldr r0, _0811024C adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 ldr r2, _08110250 cmp r0, r2 bls _08110246 strh r2, [r1] _08110246: pop {r0} bx r0 .align 2, 0 _0811024C: .4byte 0x0202ffd6 _08110250: .4byte 0x0000270f thumb_func_end sub_8110228 thumb_func_start sub_8110254 sub_8110254: @ 8110254 push {r4,lr} adds r4, r0, 0 ldr r0, _08110268 ldrb r0, [r0] cmp r0, 0x1 beq _0811026C cmp r0, 0x2 beq _0811027A b _08110288 .align 2, 0 _08110268: .4byte 0x02024d26 _0811026C: eors r0, r4 bl sub_81101FC adds r0, r4, 0 bl sub_8110228 b _08110288 _0811027A: movs r0, 0x1 eors r0, r4 bl sub_8110228 adds r0, r4, 0 bl sub_81101FC _08110288: pop {r4} pop {r0} bx r0 thumb_func_end sub_8110254 thumb_func_start sub_8110290 sub_8110290: @ 8110290 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 bl sub_8110254 ldr r0, _081102D4 lsls r2, r4, 3 subs r2, r4 lsls r2, 3 ldr r3, _081102D8 adds r1, r2, r3 subs r3, 0x30 adds r2, r3 ldrh r2, [r2, 0xE] ldr r3, _081102DC ldrb r3, [r3] ldr r6, _081102E0 ldr r5, _081102E4 lsls r4, 2 adds r4, r5 ldrb r5, [r4, 0x1] lsls r4, r5, 3 subs r4, r5 lsls r4, 2 adds r4, r6 ldrb r4, [r4, 0x1A] str r4, [sp] bl sub_8110158 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081102D4: .4byte 0x020287ec _081102D8: .4byte 0x0202fff0 _081102DC: .4byte 0x02024d26 _081102E0: .4byte 0x03002970 _081102E4: .4byte 0x02029818 thumb_func_end sub_8110290 thumb_func_start sub_81102E8 sub_81102E8: @ 81102E8 push {r4,lr} ldr r4, _08110338 movs r0, 0x17 bl sub_8053108 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN_DigitWidth6 ldr r4, _0811033C movs r0, 0x18 bl sub_8053108 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN_DigitWidth6 ldr r4, _08110340 movs r0, 0x19 bl sub_8053108 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN_DigitWidth6 ldr r0, _08110344 movs r1, 0x3 movs r2, 0x3 bl Print pop {r4} pop {r0} bx r0 .align 2, 0 _08110338: .4byte 0x020231cc _0811033C: .4byte 0x020232cc _08110340: .4byte 0x020233cc _08110344: .4byte gUnknown_0842CA04 thumb_func_end sub_81102E8 thumb_func_start sub_8110348 sub_8110348: @ 8110348 push {r4-r7,lr} sub sp, 0x10 adds r7, r0, 0 lsls r1, 24 lsrs r6, r1, 24 ldrh r0, [r7, 0xA] cmp r0, 0 bne _081103C0 ldr r0, [r7, 0xC] cmp r0, 0 bne _081103C0 mov r0, sp movs r2, 0xFC strb r2, [r0] mov r1, sp movs r0, 0x14 strb r0, [r1, 0x1] movs r0, 0x6 strb r0, [r1, 0x2] mov r0, sp strb r2, [r0, 0x3] movs r0, 0x11 strb r0, [r1, 0x4] movs r0, 0x1 strb r0, [r1, 0x5] mov r4, sp adds r4, 0x6 ldr r1, _081103B8 adds r0, r4, 0 bl StringCopy mov r0, sp movs r1, 0x3 adds r2, r6, 0 bl Print ldr r1, _081103BC adds r0, r4, 0 bl StringCopy mov r0, sp movs r1, 0xB adds r2, r6, 0 bl Print mov r0, sp movs r1, 0x11 adds r2, r6, 0 bl Print mov r0, sp movs r1, 0x17 adds r2, r6, 0 bl Print b _0811042E .align 2, 0 _081103B8: .4byte gUnknown_0842CA3C _081103BC: .4byte gUnknown_0842CA44 _081103C0: ldr r4, _08110438 adds r0, r4, 0 movs r1, 0x8 bl StringFillWithTerminator adds r0, r4, 0 adds r1, r7, 0 movs r2, 0x7 bl StringCopyN adds r0, r4, 0 movs r1, 0x3 adds r2, r6, 0 bl Print movs r0, 0xFC strb r0, [r4] movs r0, 0x14 strb r0, [r4, 0x1] movs r0, 0x6 strb r0, [r4, 0x2] adds r5, r4, 0x3 ldrh r1, [r7, 0xA] adds r0, r5, 0 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN adds r0, r4, 0 movs r1, 0xB adds r2, r6, 0 bl Print ldrh r1, [r7, 0xC] adds r0, r5, 0 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN adds r0, r4, 0 movs r1, 0x11 adds r2, r6, 0 bl Print ldrh r1, [r7, 0xE] adds r0, r5, 0 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN adds r0, r4, 0 movs r1, 0x17 adds r2, r6, 0 bl Print _0811042E: add sp, 0x10 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08110438: .4byte 0x020231cc thumb_func_end sub_8110348 thumb_func_start sub_811043C sub_811043C: @ 811043C push {r4,lr} movs r0, 0x1 movs r1, 0 movs r2, 0x1C movs r3, 0x12 bl DrawDefaultWindow ldr r0, _08110488 movs r1, 0 movs r2, 0x1 movs r3, 0xF0 bl Free ldr r0, _0811048C bl sub_81102E8 ldr r0, _08110490 movs r1, 0xC movs r2, 0x6 bl Print movs r4, 0 _08110468: lsls r0, r4, 4 ldr r1, _0811048C adds r0, r1 adds r4, 0x1 lsls r1, r4, 25 movs r2, 0xC0 lsls r2, 19 adds r1, r2 lsrs r1, 24 bl sub_8110348 cmp r4, 0x4 ble _08110468 pop {r4} pop {r0} bx r0 .align 2, 0 _08110488: .4byte gUnknown_0842C9F0 _0811048C: .4byte 0x020287ec _08110490: .4byte gUnknown_0842CA20 thumb_func_end sub_811043C thumb_func_start sub_8110494 sub_8110494: @ 8110494 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _081104B4 ldr r2, _081104B8 adds r1, r2 adds r0, r1 ldrb r0, [r0] cmp r0, 0x6 bhi _081104E0 lsls r0, 2 ldr r1, _081104BC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081104B4: .4byte 0x02024f4c _081104B8: .4byte 0x000004ae _081104BC: .4byte _081104C0 .align 2, 0 _081104C0: .4byte _081104E0 .4byte _081104E0 .4byte _081104DC .4byte _081104DC .4byte _081104E0 .4byte _081104E0 .4byte _081104DC _081104DC: movs r0, 0x1 b _081104E2 _081104E0: movs r0, 0 _081104E2: pop {r1} bx r1 thumb_func_end sub_8110494 thumb_func_start sub_81104E8 sub_81104E8: @ 81104E8 push {r4-r6,lr} lsls r1, 16 lsrs r4, r1, 16 lsls r2, 24 lsrs r2, 24 adds r5, r2, 0 lsls r3, 24 lsrs r3, 24 adds r6, r3, 0 adds r1, r5, 0 adds r2, r6, 0 bl Print ldr r0, _0811052C cmp r4, r0 bls _0811050A adds r4, r0, 0 _0811050A: ldr r0, _08110530 adds r1, r4, 0 movs r2, 0x18 movs r3, 0x1 bl sub_8072C14 ldr r0, _08110534 adds r1, r5, 0x7 lsls r1, 24 lsrs r1, 24 adds r2, r6, 0 bl Print pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811052C: .4byte 0x0000270f _08110530: .4byte 0x020231cc _08110534: .4byte gUnknown_0842CA70 thumb_func_end sub_81104E8 thumb_func_start sub_8110538 sub_8110538: @ 8110538 push {r4,lr} adds r4, r1, 0 adds r3, r2, 0 lsls r0, 24 lsls r4, 24 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 ldr r1, _08110564 lsrs r0, 23 movs r2, 0x97 lsls r2, 3 adds r1, r2 adds r0, r1 ldrh r1, [r0] ldr r0, _08110568 adds r2, r4, 0 bl sub_81104E8 pop {r4} pop {r0} bx r0 .align 2, 0 _08110564: .4byte 0x02024f4c _08110568: .4byte gUnknown_0842CA83 thumb_func_end sub_8110538 thumb_func_start sub_811056C sub_811056C: @ 811056C push {lr} lsls r0, 24 ldr r1, _08110588 lsrs r0, 23 ldr r2, _0811058C adds r1, r2 adds r0, r1 ldrh r0, [r0] ldr r1, _08110590 cmp r0, r1 bls _08110584 adds r0, r1, 0 _08110584: pop {r1} bx r1 .align 2, 0 _08110588: .4byte gSaveBlock2 _0811058C: .4byte 0x00000574 _08110590: .4byte 0x0000270f thumb_func_end sub_811056C thumb_func_start sub_8110594 sub_8110594: @ 8110594 push {r4-r7,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r7, r2, 24 adds r0, r4, 0 bl sub_811056C lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 bl sub_8110494 cmp r0, 0x1 bne _081105CC ldr r0, _081105C8 adds r1, r5, 0 adds r2, r6, 0 adds r3, r7, 0 bl sub_81104E8 b _081105D8 .align 2, 0 _081105C8: .4byte gUnknown_0842CA7B _081105CC: ldr r0, _081105E0 adds r1, r5, 0 adds r2, r6, 0 adds r3, r7, 0 bl sub_81104E8 _081105D8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081105E0: .4byte gUnknown_0842CA8A thumb_func_end sub_8110594 thumb_func_start sub_81105E4 sub_81105E4: @ 81105E4 push {r4,lr} movs r0, 0x3 movs r1, 0x1 movs r2, 0x1B movs r3, 0x11 bl DrawDefaultWindow ldr r0, _08110658 movs r1, 0x3 movs r2, 0x2 movs r3, 0xC8 bl Free ldr r0, _0811065C movs r1, 0x5 movs r2, 0x6 bl Print ldr r0, _08110660 movs r1, 0x5 movs r2, 0xC bl Print movs r4, 0x5 _08110614: lsls r1, r4, 24 lsrs r1, 24 movs r0, 0xAE movs r2, 0xA bl sub_8071F60 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x19 bls _08110614 movs r0, 0 movs r1, 0xA movs r2, 0x6 bl sub_8110594 movs r0, 0 movs r1, 0xA movs r2, 0x8 bl sub_8110538 movs r0, 0x1 movs r1, 0xA movs r2, 0xC bl sub_8110594 movs r0, 0x1 movs r1, 0xA movs r2, 0xE bl sub_8110538 pop {r4} pop {r0} bx r0 .align 2, 0 _08110658: .4byte gUnknown_0842CA49 _0811065C: .4byte gUnknown_0842CA63 _08110660: .4byte gUnknown_0842CA69 thumb_func_end sub_81105E4 thumb_func_start unref_sub_8110664 unref_sub_8110664: @ 8110664 push {lr} ldr r3, _08110678 str r1, [r3, 0x4] str r2, [r3, 0x8] strh r0, [r3, 0xE] ldr r0, _0811067C bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _08110678: .4byte 0x02000000 _0811067C: .4byte sub_8110680 thumb_func_end unref_sub_8110664 thumb_func_start sub_8110680 sub_8110680: @ 8110680 push {r4,lr} sub sp, 0x4 ldr r0, _0811069C ldr r1, _081106A0 adds r0, r1 ldrb r0, [r0] cmp r0, 0x7 bls _08110692 b _081107C0 _08110692: lsls r0, 2 ldr r1, _081106A4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0811069C: .4byte 0x03001770 _081106A0: .4byte 0x0000043c _081106A4: .4byte _081106A8 .align 2, 0 _081106A8: .4byte _081106C8 .4byte _08110720 .4byte _08110740 .4byte _08110746 .4byte _08110752 .4byte _08110770 .4byte _08110782 .4byte _081107A8 _081106C8: movs r0, 0 bl SetVBlankCallback movs r1, 0x80 lsls r1, 19 movs r2, 0xC4 lsls r2, 7 adds r0, r2, 0 strh r0, [r1] bl ResetPaletteFade bl ResetSpriteData bl ResetTasks bl FreeSpriteTileRanges bl FreeAllSpritePalettes ldr r0, _08110710 movs r1, 0 strh r1, [r0] ldr r2, _08110714 ldr r3, _08110718 adds r0, r3, 0 strh r0, [r2] ldr r0, _0811071C strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] b _081107C0 .align 2, 0 _08110710: .4byte REG_BG0HOFS _08110714: .4byte REG_BG0VOFS _08110718: .4byte 0x0000fff8 _0811071C: .4byte REG_BG2VOFS _08110720: ldr r4, _0811073C adds r0, r4, 0 movs r1, 0 bl sub_80FA8EC movs r0, 0x88 lsls r0, 4 adds r4, r0 adds r0, r4, 0 movs r1, 0 movs r2, 0x10 bl StringFill b _081107C0 .align 2, 0 _0811073C: .4byte 0x020006e8 _08110740: bl sub_8110824 b _081107C0 _08110746: bl sub_8110838 lsls r0, 24 cmp r0, 0 bne _081107CC b _081107C0 _08110752: movs r0, 0x1 movs r1, 0x1 bl sub_80FBCF0 movs r1, 0x8 negs r1, r1 movs r0, 0 bl sub_80FB2A4 ldr r0, _0811076C bl SetVBlankCallback b _081107C0 .align 2, 0 _0811076C: .4byte sub_81107DC _08110770: movs r0, 0x15 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _081107C0 _08110782: ldr r1, _0811079C ldr r2, _081107A0 adds r0, r2, 0 strh r0, [r1] bl sub_8111084 movs r1, 0x80 lsls r1, 19 ldr r3, _081107A4 adds r0, r3, 0 strh r0, [r1] b _081107C0 .align 2, 0 _0811079C: .4byte REG_BLDCNT _081107A0: .4byte 0x00003f41 _081107A4: .4byte 0x00007741 _081107A8: ldr r0, _081107B8 bl sub_8110814 ldr r0, _081107BC bl SetMainCallback2 b _081107CC .align 2, 0 _081107B8: .4byte sub_8111288 _081107BC: .4byte sub_81107F0 _081107C0: ldr r1, _081107D4 ldr r0, _081107D8 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _081107CC: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _081107D4: .4byte 0x03001770 _081107D8: .4byte 0x0000043c thumb_func_end sub_8110680 thumb_func_start sub_81107DC sub_81107DC: @ 81107DC push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_81107DC thumb_func_start sub_81107F0 sub_81107F0: @ 81107F0 push {lr} ldr r0, _08110810 ldr r0, [r0] bl _call_via_r0 bl sub_8111110 bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 .align 2, 0 _08110810: .4byte 0x02000000 thumb_func_end sub_81107F0 thumb_func_start sub_8110814 sub_8110814: @ 8110814 ldr r1, _08110820 str r0, [r1] movs r0, 0 strh r0, [r1, 0xC] bx lr .align 2, 0 _08110820: .4byte 0x02000000 thumb_func_end sub_8110814 thumb_func_start sub_8110824 sub_8110824: @ 8110824 ldr r0, _08110834 movs r1, 0x8A lsls r1, 1 adds r0, r1 movs r1, 0 strh r1, [r0] bx lr .align 2, 0 _08110834: .4byte 0x02000000 thumb_func_end sub_8110824 thumb_func_start sub_8110838 sub_8110838: @ 8110838 push {lr} ldr r1, _08110854 movs r2, 0x8A lsls r2, 1 adds r0, r1, r2 ldrh r0, [r0] adds r2, r1, 0 cmp r0, 0x5 bhi _081108E4 lsls r0, 2 ldr r1, _08110858 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08110854: .4byte 0x02000000 _08110858: .4byte _0811085C .align 2, 0 _0811085C: .4byte _08110874 .4byte _08110884 .4byte _0811088A .4byte _0811089C .4byte _081108C0 .4byte _081108D0 _08110874: ldr r0, _08110880 ldrh r0, [r0, 0xE] bl sub_8110908 b _081108F0 .align 2, 0 _08110880: .4byte 0x02000000 _08110884: bl sub_8110C34 b _081108F0 _0811088A: ldr r0, _08110894 ldr r1, _08110898 bl LZ77UnCompVram b _081108F0 .align 2, 0 _08110894: .4byte gUnknown_083F8438 _08110898: .4byte 0x0600c000 _0811089C: ldr r1, _081108B0 ldr r0, _081108B4 str r0, [r1] ldr r0, _081108B8 str r0, [r1, 0x4] ldr r0, _081108BC str r0, [r1, 0x8] ldr r0, [r1, 0x8] b _081108F0 .align 2, 0 _081108B0: .4byte 0x040000d4 _081108B4: .4byte 0x02000116 _081108B8: .4byte 0x0600f000 _081108BC: .4byte 0x80000280 _081108C0: ldr r0, _081108CC movs r1, 0 movs r2, 0x20 bl LoadPalette b _081108F0 .align 2, 0 _081108CC: .4byte gUnknown_083F8418 _081108D0: ldr r1, _081108E8 ldr r3, _081108EC adds r0, r3, 0 strh r0, [r1] movs r0, 0x8A lsls r0, 1 adds r1, r2, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _081108E4: movs r0, 0 b _08110900 .align 2, 0 _081108E8: .4byte REG_BG0CNT _081108EC: .4byte 0x00001e0d _081108F0: ldr r1, _08110904 movs r2, 0x8A lsls r2, 1 adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0x1 _08110900: pop {r1} bx r1 .align 2, 0 _08110904: .4byte 0x02000000 thumb_func_end sub_8110838 thumb_func_start sub_8110908 sub_8110908: @ 8110908 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 16 lsrs r7, r0, 16 .ifdef SAPPHIRE ldr r0, _sub_8110908_Latias .else @ Latios movs r0, 0xCC lsls r0, 1 .endif cmp r7, r0 bne _0811091E b _08110A44 _0811091E: ldr r2, _08110988 movs r1, 0x88 lsls r1, 1 adds r0, r2, r1 movs r1, 0 strh r1, [r0] movs r3, 0x89 lsls r3, 1 adds r0, r2, r3 strh r1, [r0] movs r6, 0 ldr r1, _0811098C _08110936: lsls r0, r6, 1 adds r0, r1 ldrh r0, [r0] cmp r0, r7 bne _08110942 b _08110A8C _08110942: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0 beq _08110936 movs r6, 0 ldr r4, _08110990 ldrh r0, [r4] movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _081109D0 mov r8, r4 adds r5, r4, 0x4 mov r9, r1 _08110960: lsls r0, r6, 1 adds r1, r0, r6 lsls r2, r1, 1 mov r3, r8 adds r1, r2, r3 adds r3, r0, 0 ldrh r1, [r1] cmp r7, r1 bne _081109BA adds r0, r4, 0x2 adds r0, r2, r0 ldrh r0, [r0] cmp r0, 0x18 beq _081109A6 cmp r0, 0x18 bgt _08110994 cmp r0, 0 beq _0811099A b _081109BA .align 2, 0 .ifdef SAPPHIRE _sub_8110908_Latias: .4byte 407 .endif _08110988: .4byte 0x02000000 _0811098C: .4byte gUnknown_083F856C _08110990: .4byte gUnknown_083F856E _08110994: cmp r0, 0x1A beq _081109A6 b _081109BA _0811099A: adds r0, r2, r5 ldrh r1, [r0] movs r0, 0 bl sub_8110A98 b _081109BA _081109A6: adds r1, r3, r6 lsls r1, 1 mov r0, r8 adds r0, 0x2 adds r0, r1, r0 ldrh r0, [r0] adds r1, r5 ldrh r1, [r1] bl sub_8110AE4 _081109BA: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 ldr r4, _08110A00 lsls r0, r6, 1 adds r0, r6 lsls r0, 1 adds r0, r4 ldrh r0, [r0] cmp r0, r9 bne _08110960 _081109D0: movs r6, 0 ldr r1, _08110A04 ldrb r0, [r1] cmp r0, 0xFF beq _08110A8C _081109DA: lsls r4, r6, 2 adds r0, r4, r6 lsls r0, 2 adds r5, r0, r1 adds r0, r5, 0 adds r1, r7, 0 bl sub_8110BA4 lsls r0, 24 cmp r0, 0 beq _08110A28 ldrb r0, [r5] cmp r0, 0x18 beq _08110A18 cmp r0, 0x18 bgt _08110A08 cmp r0, 0 beq _08110A0E b _08110A28 .align 2, 0 _08110A00: .4byte gUnknown_083F856E _08110A04: .4byte gWildMonHeaders _08110A08: cmp r0, 0x1A beq _08110A18 b _08110A28 _08110A0E: ldrb r1, [r5, 0x1] movs r0, 0 bl sub_8110A98 b _08110A28 _08110A18: ldr r0, _08110A40 adds r1, r4, r6 lsls r1, 2 adds r1, r0 ldrb r0, [r1] ldrb r1, [r1, 0x1] bl sub_8110AE4 _08110A28: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 ldr r1, _08110A40 lsls r0, r6, 2 adds r0, r6 lsls r0, 2 adds r0, r1 ldrb r0, [r0] cmp r0, 0xFF bne _081109DA b _08110A8C .align 2, 0 _08110A40: .4byte gWildMonHeaders _08110A44: ldr r4, _08110A7C movs r0, 0x89 lsls r0, 1 adds r1, r4, r0 movs r0, 0 strh r0, [r1] ldr r0, _08110A80 ldrb r2, [r0, 0x13] cmp r2, 0 beq _08110A84 adds r0, r4, 0 adds r0, 0x10 adds r1, r4, 0 adds r1, 0x11 bl sub_8134538 ldrb r0, [r4, 0x10] ldrb r1, [r4, 0x11] bl get_mapheader_by_bank_and_number ldrb r0, [r0, 0x14] strh r0, [r4, 0x12] movs r3, 0x88 lsls r3, 1 adds r1, r4, r3 movs r0, 0x1 strh r0, [r1] b _08110A8C .align 2, 0 _08110A7C: .4byte 0x02000000 _08110A80: .4byte 0x02028878 _08110A84: movs r1, 0x88 lsls r1, 1 adds r0, r4, r1 strh r2, [r0] _08110A8C: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8110908 thumb_func_start sub_8110A98 sub_8110A98: @ 8110A98 push {r4,r5,lr} lsls r0, 16 lsrs r2, r0, 16 lsls r1, 16 lsrs r1, 16 ldr r5, _08110AE0 movs r0, 0x88 lsls r0, 1 adds r4, r5, r0 ldrh r0, [r4] cmp r0, 0x3F bhi _08110AD8 lsls r0, 2 adds r0, r5 strb r2, [r0, 0x10] ldrh r0, [r4] lsls r0, 2 adds r0, r5 strb r1, [r0, 0x11] adds r0, r2, 0 bl get_mapheader_by_bank_and_number ldrb r0, [r0, 0x14] bl sub_80FBA04 ldrh r1, [r4] lsls r1, 2 adds r1, r5 strh r0, [r1, 0x12] ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _08110AD8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08110AE0: .4byte 0x02000000 thumb_func_end sub_8110A98 thumb_func_start sub_8110AE4 sub_8110AE4: @ 8110AE4 push {r4-r6,lr} lsls r0, 16 lsrs r2, r0, 16 lsls r1, 16 lsrs r1, 16 ldr r0, _08110B9C movs r3, 0x89 lsls r3, 1 adds r0, r3 ldrh r0, [r0] cmp r0, 0x1F bhi _08110B96 adds r0, r2, 0 bl get_mapheader_by_bank_and_number adds r6, r0, 0 ldrb r0, [r6, 0x14] cmp r0, 0x57 bhi _08110B96 movs r4, 0 ldr r1, _08110BA0 ldrh r0, [r1] cmp r0, 0x58 beq _08110B42 adds r5, r1, 0 _08110B16: lsls r2, r4, 2 adds r1, r2, r5 ldrb r0, [r6, 0x14] ldrh r1, [r1] cmp r0, r1 bne _08110B32 adds r0, r5, 0x2 adds r0, r2, r0 ldrh r0, [r0] bl FlagGet lsls r0, 24 cmp r0, 0 beq _08110B96 _08110B32: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 lsls r0, r4, 2 adds r0, r5 ldrh r0, [r0] cmp r0, 0x58 bne _08110B16 _08110B42: movs r4, 0 ldr r0, _08110B9C movs r1, 0x89 lsls r1, 1 adds r2, r0, r1 ldrh r3, [r2] adds r1, r0, 0 cmp r4, r3 bcs _08110B76 movs r0, 0xC4 lsls r0, 3 adds r5, r1, r0 ldrh r0, [r5] ldrb r2, [r6, 0x14] cmp r0, r2 beq _08110B76 _08110B62: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r3 bcs _08110B76 lsls r0, r4, 1 adds r0, r5 ldrh r0, [r0] cmp r0, r2 bne _08110B62 _08110B76: movs r3, 0x89 lsls r3, 1 adds r2, r1, r3 ldrh r0, [r2] cmp r4, r0 bne _08110B96 lsls r0, r4, 1 movs r3, 0xC4 lsls r3, 3 adds r1, r3 adds r0, r1 ldrb r1, [r6, 0x14] strh r1, [r0] ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] _08110B96: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08110B9C: .4byte 0x02000000 _08110BA0: .4byte gUnknown_083F857A thumb_func_end sub_8110AE4 thumb_func_start sub_8110BA4 sub_8110BA4: @ 8110BA4 push {r4-r6,lr} adds r5, r0, 0 lsls r1, 16 lsrs r4, r1, 16 adds r6, r4, 0 ldr r0, [r5, 0x4] adds r1, r4, 0 movs r2, 0xC bl sub_8110BFC lsls r0, 24 cmp r0, 0 bne _08110BF2 ldr r0, [r5, 0x8] adds r1, r4, 0 movs r2, 0x5 bl sub_8110BFC lsls r0, 24 cmp r0, 0 bne _08110BF2 ldr r0, [r5, 0x10] adds r1, r4, 0 movs r2, 0xC bl sub_8110BFC lsls r0, 24 cmp r0, 0 bne _08110BF2 ldr r0, [r5, 0xC] adds r1, r6, 0 movs r2, 0x5 bl sub_8110BFC lsls r0, 24 cmp r0, 0 bne _08110BF2 movs r0, 0 b _08110BF4 _08110BF2: movs r0, 0x1 _08110BF4: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8110BA4 thumb_func_start sub_8110BFC sub_8110BFC: @ 8110BFC push {r4,lr} lsls r1, 16 lsrs r4, r1, 16 lsls r2, 16 lsrs r2, 16 cmp r0, 0 beq _08110C2A movs r3, 0 cmp r3, r2 bcs _08110C2A ldr r1, [r0, 0x4] _08110C12: lsls r0, r3, 2 adds r0, r1 ldrh r0, [r0, 0x2] cmp r0, r4 bne _08110C20 movs r0, 0x1 b _08110C2C _08110C20: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r2 bcc _08110C12 _08110C2A: movs r0, 0 _08110C2C: pop {r4} pop {r1} bx r1 thumb_func_end sub_8110BFC thumb_func_start sub_8110C34 sub_8110C34: @ 8110C34 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC ldr r1, _08110E5C movs r0, 0 strh r0, [r1] mov r9, r1 ldr r0, _08110E60 mov r8, r0 ldr r1, _08110E64 mov r12, r1 mov r1, r9 movs r4, 0x8B lsls r4, 1 add r4, r8 ldr r3, _08110E68 movs r2, 0 _08110C5C: ldrh r0, [r1] lsls r0, 1 adds r0, r4 strh r2, [r0] ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, r3 bls _08110C5C movs r0, 0 mov r3, r9 strh r0, [r3] movs r1, 0x88 lsls r1, 1 add r1, r8 ldrh r0, [r1] cmp r0, 0 beq _08110D04 ldr r4, _08110E6C movs r2, 0 ldr r5, _08110E64 mov r0, r8 str r0, [sp, 0x8] movs r1, 0x8B lsls r1, 1 add r1, r8 mov r10, r1 ldr r6, _08110E70 mov r7, r9 _08110C9A: strh r2, [r4] ldr r3, _08110E70 strh r2, [r3] _08110CA0: mov r0, r12 strh r2, [r0] _08110CA4: ldrh r0, [r5] ldrh r1, [r6] str r2, [sp] bl sub_80FB9A8 ldrh r1, [r7] lsls r1, 2 ldr r3, [sp, 0x8] adds r1, r3 lsls r0, 16 lsrs r0, 16 ldr r2, [sp] ldrh r1, [r1, 0x12] cmp r0, r1 bne _08110CCC ldrh r0, [r4] lsls r0, 1 add r0, r10 ldr r1, _08110E74 strh r1, [r0] _08110CCC: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1F bls _08110CA4 ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] lsls r0, 16 lsrs r0, 16 ldr r1, _08110E64 mov r12, r1 cmp r0, 0x13 bls _08110CA0 ldrh r0, [r7] adds r0, 0x1 strh r0, [r7] lsls r0, 16 lsrs r0, 16 ldr r3, _08110E78 ldrh r3, [r3] cmp r0, r3 bcc _08110C9A _08110D04: movs r0, 0 ldr r1, _08110E6C strh r0, [r1] ldr r3, _08110E70 strh r0, [r3] ldr r6, _08110E64 mov r10, r0 adds r3, r1, 0 ldr r5, _08110E7C ldr r4, _08110E74 ldr r7, _08110E70 _08110D1A: mov r0, r10 strh r0, [r6] _08110D1E: ldrh r1, [r3] lsls r0, r1, 1 adds r0, r5 ldrh r0, [r0] cmp r0, r4 bne _08110E10 ldrh r0, [r6] cmp r0, 0 beq _08110D42 subs r0, r1, 0x1 lsls r0, 1 adds r2, r0, r5 ldrh r1, [r2] cmp r1, r4 beq _08110D42 movs r0, 0x2 orrs r0, r1 strh r0, [r2] _08110D42: ldrh r0, [r6] cmp r0, 0x1F beq _08110D5C ldrh r0, [r3] adds r0, 0x1 lsls r0, 1 adds r2, r0, r5 ldrh r1, [r2] cmp r1, r4 beq _08110D5C movs r0, 0x1 orrs r0, r1 strh r0, [r2] _08110D5C: ldrh r0, [r7] cmp r0, 0 beq _08110D76 ldrh r0, [r3] subs r0, 0x20 lsls r0, 1 adds r2, r0, r5 ldrh r1, [r2] cmp r1, r4 beq _08110D76 movs r0, 0x8 orrs r0, r1 strh r0, [r2] _08110D76: ldrh r0, [r7] cmp r0, 0x13 beq _08110D90 ldrh r0, [r3] adds r0, 0x20 lsls r0, 1 adds r2, r0, r5 ldrh r1, [r2] cmp r1, r4 beq _08110D90 movs r0, 0x4 orrs r0, r1 strh r0, [r2] _08110D90: ldrh r0, [r6] cmp r0, 0 beq _08110DB0 ldrh r0, [r7] cmp r0, 0 beq _08110DB0 ldrh r0, [r3] subs r0, 0x21 lsls r0, 1 adds r2, r0, r5 ldrh r1, [r2] cmp r1, r4 beq _08110DB0 movs r0, 0x10 orrs r0, r1 strh r0, [r2] _08110DB0: ldrh r0, [r6] cmp r0, 0x1F beq _08110DD0 ldrh r0, [r7] cmp r0, 0 beq _08110DD0 ldrh r0, [r3] subs r0, 0x1F lsls r0, 1 adds r2, r0, r5 ldrh r1, [r2] cmp r1, r4 beq _08110DD0 movs r0, 0x40 orrs r0, r1 strh r0, [r2] _08110DD0: ldrh r0, [r6] cmp r0, 0 beq _08110DF0 ldrh r0, [r7] cmp r0, 0x13 beq _08110DF0 ldrh r0, [r3] adds r0, 0x1F lsls r0, 1 adds r2, r0, r5 ldrh r1, [r2] cmp r1, r4 beq _08110DF0 movs r0, 0x20 orrs r0, r1 strh r0, [r2] _08110DF0: ldrh r0, [r6] cmp r0, 0x1F beq _08110E10 ldrh r0, [r7] cmp r0, 0x13 beq _08110E10 ldrh r0, [r3] adds r0, 0x21 lsls r0, 1 adds r2, r0, r5 ldrh r1, [r2] cmp r1, r4 beq _08110E10 movs r0, 0x80 orrs r0, r1 strh r0, [r2] _08110E10: ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1F bhi _08110E26 b _08110D1E _08110E26: ldrh r0, [r7] adds r0, 0x1 strh r0, [r7] lsls r0, 16 lsrs r0, 16 cmp r0, 0x13 bhi _08110E36 b _08110D1A _08110E36: movs r0, 0 mov r1, r9 strh r0, [r1] _08110E3C: mov r3, r9 ldrh r0, [r3] lsls r0, 1 movs r4, 0x8B lsls r4, 1 add r4, r8 adds r3, r0, r4 ldrh r2, [r3] adds r1, r2, 0 ldr r0, _08110E74 cmp r1, r0 bne _08110E80 movs r0, 0x10 strh r0, [r3] b _0811105E .align 2, 0 _08110E5C: .4byte 0x02039260 _08110E60: .4byte 0x02000000 _08110E64: .4byte 0x02039262 _08110E68: .4byte 0x0000027f _08110E6C: .4byte 0x02039266 _08110E70: .4byte 0x02039264 _08110E74: .4byte 0x0000ffff _08110E78: .4byte 0x02000110 _08110E7C: .4byte 0x02000116 _08110E80: cmp r1, 0 bne _08110E86 b _0811105E _08110E86: movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _08110E94 ldr r0, _08110F28 ands r0, r2 strh r0, [r3] _08110E94: mov r1, r9 ldrh r0, [r1] lsls r0, 1 adds r2, r0, r4 ldrh r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08110EAC ldr r0, _08110F2C ands r0, r1 strh r0, [r2] _08110EAC: mov r3, r9 ldrh r0, [r3] lsls r0, 1 adds r2, r0, r4 ldrh r1, [r2] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08110EC4 ldr r0, _08110F30 ands r0, r1 strh r0, [r2] _08110EC4: mov r1, r9 ldrh r0, [r1] lsls r0, 1 adds r2, r0, r4 ldrh r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08110EDC ldr r0, _08110F34 ands r0, r1 strh r0, [r2] _08110EDC: ldr r6, _08110F38 mov r3, r9 ldrh r0, [r3] lsls r0, 1 adds r0, r4 ldrh r1, [r0] movs r5, 0xF adds r0, r5, 0 ands r0, r1 strh r0, [r6] ldr r2, _08110F3C ldrh r0, [r3] lsls r0, 1 adds r0, r4 ldrh r1, [r0] movs r0, 0xF0 ands r0, r1 strh r0, [r2] ldrh r1, [r3] adds r3, r2, 0 cmp r0, 0 bne _08110F0A b _0811105E _08110F0A: lsls r0, r1, 1 adds r0, r4 ldrh r2, [r0] adds r1, r5, 0 ands r1, r2 strh r1, [r0] ldrh r0, [r6] cmp r0, 0xA bls _08110F1E b _0811105E _08110F1E: lsls r0, 2 ldr r1, _08110F40 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08110F28: .4byte 0x0000ffcf _08110F2C: .4byte 0x0000ff3f _08110F30: .4byte 0x0000ffaf _08110F34: .4byte 0x0000ff5f _08110F38: .4byte 0x02039268 _08110F3C: .4byte 0x0203926a _08110F40: .4byte _08110F44 .align 2, 0 _08110F44: .4byte _08110F70 .4byte _08110FAC .4byte _08110F8E .4byte _0811105E .4byte _08111002 .4byte _08111036 .4byte _08111036 .4byte _0811105E .4byte _08110FCE .4byte _0811104A .4byte _0811104A _08110F70: ldrh r0, [r3] lsls r1, r0, 16 cmp r1, 0 beq _0811105E mov r0, r9 ldrh r2, [r0] lsls r2, 1 movs r0, 0x8B lsls r0, 1 add r0, r8 adds r2, r0 ldrh r0, [r2] adds r0, 0x10 lsrs r1, 20 b _08110FC8 _08110F8E: ldrh r0, [r3] lsls r1, r0, 16 cmp r1, 0 beq _0811105E mov r3, r9 ldrh r2, [r3] lsls r2, 1 movs r0, 0x8B lsls r0, 1 add r0, r8 adds r2, r0 ldrh r0, [r2] adds r0, 0x1E lsrs r1, 20 b _08110FC8 _08110FAC: ldrh r0, [r3] lsls r1, r0, 16 cmp r1, 0 beq _0811105E mov r0, r9 ldrh r2, [r0] lsls r2, 1 movs r0, 0x8B lsls r0, 1 add r0, r8 adds r2, r0 ldrh r0, [r2] adds r0, 0x20 lsrs r1, 22 _08110FC8: adds r0, r1 strh r0, [r2] b _0811105E _08110FCE: ldrh r2, [r3] cmp r2, 0 beq _0811105E movs r0, 0x80 ands r0, r2 lsls r0, 16 lsrs r0, 16 negs r0, r0 lsrs r3, r0, 31 movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _08110FEC movs r0, 0x2 orrs r3, r0 _08110FEC: mov r0, r9 ldrh r1, [r0] lsls r1, 1 movs r0, 0x8B lsls r0, 1 add r0, r8 adds r1, r0 ldrh r0, [r1] adds r0, 0x20 adds r0, r3 b _0811105C _08111002: ldrh r2, [r3] cmp r2, 0 beq _0811105E movs r0, 0x40 ands r0, r2 lsls r0, 16 lsrs r0, 16 negs r0, r0 lsrs r3, r0, 31 movs r0, 0x10 ands r0, r2 cmp r0, 0 beq _08111020 movs r0, 0x2 orrs r3, r0 _08111020: mov r0, r9 ldrh r1, [r0] lsls r1, 1 movs r0, 0x8B lsls r0, 1 add r0, r8 adds r1, r0 ldrh r0, [r1] adds r0, 0x21 adds r0, r3 b _0811105C _08111036: mov r3, r9 ldrh r1, [r3] lsls r1, 1 movs r0, 0x8B lsls r0, 1 add r0, r8 adds r1, r0 ldrh r0, [r1] adds r0, 0x27 b _0811105C _0811104A: mov r0, r9 ldrh r1, [r0] lsls r1, 1 movs r0, 0x8B lsls r0, 1 add r0, r8 adds r1, r0 ldrh r0, [r1] adds r0, 0x25 _0811105C: strh r0, [r1] _0811105E: mov r3, r9 ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] lsls r0, 16 ldr r1, _08111080 cmp r0, r1 bhi _08111070 b _08110E3C _08111070: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08111080: .4byte 0x027f0000 thumb_func_end sub_8110C34 thumb_func_start sub_8111084 sub_8111084: @ 8111084 push {lr} ldr r0, _081110AC movs r2, 0x89 lsls r2, 1 adds r1, r0, r2 ldrh r1, [r1] adds r2, r0, 0 cmp r1, 0 beq _081110B4 movs r3, 0x88 lsls r3, 1 adds r0, r2, r3 ldrh r0, [r0] cmp r0, 0 bne _081110B4 ldr r0, _081110B0 adds r1, r2, r0 movs r0, 0x1 b _081110BA .align 2, 0 _081110AC: .4byte 0x02000000 _081110B0: .4byte 0x0000061e _081110B4: ldr r3, _081110FC adds r1, r2, r3 movs r0, 0 _081110BA: strb r0, [r1] ldr r1, _08111100 adds r0, r2, r1 movs r1, 0 strh r1, [r0] movs r3, 0xC3 lsls r3, 3 adds r0, r2, r3 strh r1, [r0] adds r3, 0x2 adds r0, r2, r3 strh r1, [r0] ldr r0, _08111104 adds r1, r2, r0 movs r0, 0x40 strh r0, [r1] adds r3, 0x5 adds r1, r2, r3 movs r0, 0x1 strb r0, [r1] ldr r1, _08111108 ldr r2, _0811110C adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r3, 0x80 lsls r3, 5 adds r0, r3, 0 strh r0, [r1] bl sub_8111110 pop {r0} bx r0 .align 2, 0 _081110FC: .4byte 0x0000061e _08111100: .4byte 0x00000616 _08111104: .4byte 0x0000061c _08111108: .4byte REG_BLDCNT _0811110C: .4byte 0x00003f41 thumb_func_end sub_8111084 thumb_func_start sub_8111110 sub_8111110: @ 8111110 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _0811114C ldr r2, _08111150 adds r1, r0, r2 ldrb r1, [r1] adds r5, r0, 0 cmp r1, 0 bne _081111DE ldr r3, _08111154 adds r1, r5, r3 ldrh r0, [r1] cmp r0, 0 bne _081111D8 movs r1, 0xC3 lsls r1, 3 adds r0, r5, r1 ldrh r1, [r0] adds r1, 0x1 strh r1, [r0] movs r0, 0x1 ands r1, r0 cmp r1, 0 beq _08111158 subs r2, 0x4 adds r0, r5, r2 b _0811115C .align 2, 0 _0811114C: .4byte 0x02000000 _08111150: .4byte 0x0000061e _08111154: .4byte 0x00000616 _08111158: ldr r3, _081111C0 adds r0, r5, r3 _0811115C: ldrh r1, [r0] adds r1, 0x4 movs r2, 0x7F ands r1, r2 strh r1, [r0] ldr r2, _081111C4 ldr r1, _081111C8 adds r0, r5, r1 ldrh r0, [r0] lsls r0, 1 adds r0, r2 ldrh r1, [r0] lsls r1, 16 asrs r1, 20 lsls r1, 16 lsrs r1, 16 ldr r3, _081111C0 adds r0, r5, r3 ldrh r0, [r0] lsls r0, 1 adds r0, r2 ldrh r0, [r0] lsls r0, 16 asrs r0, 20 lsls r0, 16 ldr r2, _081111CC lsrs r0, 8 orrs r1, r0 strh r1, [r2] ldr r1, _081111D0 adds r0, r5, r1 movs r2, 0 strh r2, [r0] subs r3, 0x4 adds r1, r5, r3 ldrh r0, [r1] cmp r0, 0x40 bne _0811126E strh r2, [r1] movs r1, 0x89 lsls r1, 1 adds r0, r5, r1 ldrh r0, [r0] cmp r0, 0 beq _0811126E ldr r2, _081111D4 adds r1, r5, r2 movs r0, 0x1 b _0811126C .align 2, 0 _081111C0: .4byte 0x0000061c _081111C4: .4byte gSineTable _081111C8: .4byte 0x0000061a _081111CC: .4byte REG_BLDALPHA _081111D0: .4byte 0x00000616 _081111D4: .4byte 0x0000061e _081111D8: subs r0, 0x1 strh r0, [r1] b _0811126E _081111DE: ldr r3, _0811127C adds r1, r5, r3 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0xC bls _0811126E movs r0, 0 strh r0, [r1] ldr r0, _08111280 adds r1, r5, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r4, 0 movs r2, 0x89 lsls r2, 1 adds r0, r5, r2 ldrh r3, [r0] cmp r4, r3 bcs _0811124C movs r2, 0xCC lsls r2, 3 adds r2, r5 mov r9, r2 mov r8, r1 movs r3, 0x1 mov r12, r3 adds r6, r0, 0 movs r7, 0x5 negs r7, r7 _08111220: lsls r0, r4, 2 add r0, r9 ldr r3, [r0] mov r1, r8 ldrb r0, [r1] movs r1, 0x1 adds r3, 0x3E ands r1, r0 mov r2, r12 ands r1, r2 lsls r1, 2 ldrb r2, [r3] adds r0, r7, 0 ands r0, r2 orrs r0, r1 strb r0, [r3] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldrh r3, [r6] cmp r4, r3 bcc _08111220 _0811124C: ldr r0, _08111280 adds r1, r5, r0 ldrb r0, [r1] cmp r0, 0x4 bls _0811126E movs r0, 0x1 strb r0, [r1] movs r1, 0x88 lsls r1, 1 adds r0, r5, r1 ldrh r0, [r0] cmp r0, 0 beq _0811126E ldr r2, _08111284 adds r1, r5, r2 movs r0, 0 _0811126C: strb r0, [r1] _0811126E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811127C: .4byte 0x00000616 _08111280: .4byte 0x0000061f _08111284: .4byte 0x0000061e thumb_func_end sub_8111110 thumb_func_start sub_8111288 sub_8111288: @ 8111288 push {lr} ldr r1, _08111298 ldrh r0, [r1, 0xC] cmp r0, 0 beq _0811129C cmp r0, 0x1 beq _081112A2 b _081112B2 .align 2, 0 _08111298: .4byte 0x02000000 _0811129C: movs r0, 0x1 strh r0, [r1, 0xC] b _081112B2 _081112A2: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _081112B2 ldr r0, _081112B8 bl sub_8110814 _081112B2: pop {r0} bx r0 .align 2, 0 _081112B8: .4byte sub_81112BC thumb_func_end sub_8111288 thumb_func_start sub_81112BC sub_81112BC: @ 81112BC push {lr} ldr r0, _081112DC ldrh r0, [r0, 0xC] cmp r0, 0 bne _08111308 ldr r0, _081112E0 ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081112E8 ldr r0, _081112E4 bl sub_8110814 b _08111308 .align 2, 0 _081112DC: .4byte 0x02000000 _081112E0: .4byte 0x03001770 _081112E4: .4byte sub_8111314 _081112E8: movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08111302 movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08111308 ldr r0, _0811130C ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _08111308 _08111302: ldr r0, _08111310 bl sub_8110814 _08111308: pop {r0} bx r0 .align 2, 0 _0811130C: .4byte gSaveBlock2 _08111310: .4byte sub_8111360 thumb_func_end sub_81112BC thumb_func_start sub_8111314 sub_8111314: @ 8111314 push {r4,lr} sub sp, 0x4 ldr r4, _08111328 ldrh r1, [r4, 0xC] cmp r1, 0 beq _0811132C cmp r1, 0x1 beq _08111344 b _08111358 .align 2, 0 _08111328: .4byte 0x02000000 _0811132C: movs r0, 0x15 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] b _08111358 _08111344: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _08111358 bl sub_80FAB10 ldr r0, [r4, 0x4] bl SetMainCallback2 _08111358: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8111314 thumb_func_start sub_8111360 sub_8111360: @ 8111360 push {r4,lr} sub sp, 0x4 ldr r4, _08111374 ldrh r1, [r4, 0xC] cmp r1, 0 beq _08111378 cmp r1, 0x1 beq _08111390 b _081113A4 .align 2, 0 _08111374: .4byte 0x02000000 _08111378: movs r0, 0x15 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] b _081113A4 _08111390: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _081113A4 bl sub_80FAB10 ldr r0, [r4, 0x8] bl SetMainCallback2 _081113A4: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8111360 thumb_func_start sub_81113AC sub_81113AC: @ 81113AC push {r4,lr} ldr r2, _081113DC movs r3, 0 movs r4, 0 strh r0, [r2, 0xE] ldr r0, _081113E0 adds r2, r0 str r1, [r2] strb r3, [r1] ldr r0, _081113E4 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _081113E8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _081113DC: .4byte 0x02000000 _081113E0: .4byte 0x000006e4 _081113E4: .4byte sub_81113EC _081113E8: .4byte 0x03004b20 thumb_func_end sub_81113AC thumb_func_start sub_81113EC sub_81113EC: @ 81113EC push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _08111414 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0xB bls _0811140A b _08111540 _0811140A: lsls r0, 2 ldr r1, _08111418 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08111414: .4byte 0x03004b20 _08111418: .4byte _0811141C .align 2, 0 _0811141C: .4byte _0811144C .4byte _08111488 .4byte _08111496 .4byte _081114B8 .4byte _081114BE .4byte _081114CA .4byte _081114DE .4byte _081114E4 .4byte _081114EA .4byte _081114F0 .4byte _08111502 .4byte _08111528 _0811144C: movs r1, 0x80 lsls r1, 19 movs r3, 0xC4 lsls r3, 7 adds r0, r3, 0 strh r0, [r1] ldr r0, _08111478 movs r1, 0 strh r1, [r0] ldr r2, _0811147C ldr r3, _08111480 adds r0, r3, 0 strh r0, [r2] ldr r0, _08111484 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] b _08111540 .align 2, 0 _08111478: .4byte REG_BG0HOFS _0811147C: .4byte REG_BG0VOFS _08111480: .4byte 0x0000fff8 _08111484: .4byte REG_BG2VOFS _08111488: bl ResetPaletteFade bl ResetSpriteData bl FreeAllSpritePalettes b _08111540 _08111496: ldr r4, _081114B4 adds r0, r4, 0 movs r1, 0 bl sub_80FA8EC movs r0, 0x88 lsls r0, 4 adds r4, r0 adds r0, r4, 0 movs r1, 0 movs r2, 0x10 bl StringFill b _08111540 .align 2, 0 _081114B4: .4byte 0x020006e8 _081114B8: bl sub_8110824 b _08111540 _081114BE: bl sub_8110838 lsls r0, 24 cmp r0, 0 bne _08111550 b _08111540 _081114CA: movs r0, 0x1 movs r1, 0x1 bl sub_80FBCF0 movs r1, 0x8 negs r1, r1 movs r0, 0 bl sub_80FB2A4 b _08111540 _081114DE: bl sub_8111658 b _08111540 _081114E4: bl sub_81117AC b _08111540 _081114EA: bl sub_81117E4 b _08111540 _081114F0: movs r0, 0x15 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _08111540 _08111502: ldr r1, _0811151C ldr r2, _08111520 adds r0, r2, 0 strh r0, [r1] bl sub_8111084 movs r1, 0x80 lsls r1, 19 ldr r3, _08111524 adds r0, r3, 0 strh r0, [r1] b _08111540 .align 2, 0 _0811151C: .4byte REG_BLDCNT _08111520: .4byte 0x00003f41 _08111524: .4byte 0x00007741 _08111528: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r2 ldr r1, _0811153C str r1, [r0] movs r1, 0 strh r1, [r0, 0x8] b _08111550 .align 2, 0 _0811153C: .4byte sub_811155C _08111540: ldr r0, _08111558 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _08111550: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08111558: .4byte 0x03004b20 thumb_func_end sub_81113EC thumb_func_start sub_811155C sub_811155C: @ 811155C push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 bl sub_8111110 ldr r1, _08111584 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r5, r0, r1 movs r0, 0x8 ldrsh r1, [r5, r0] cmp r1, 0x1 beq _081115B4 cmp r1, 0x1 bgt _08111588 cmp r1, 0 beq _0811159E b _08111590 .align 2, 0 _08111584: .4byte 0x03004b20 _08111588: cmp r1, 0x2 beq _081115F8 cmp r1, 0x3 beq _0811160A _08111590: ldr r0, _081115AC lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0 strh r0, [r1, 0x8] _0811159E: ldr r0, _081115B0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0811164C b _0811163C .align 2, 0 _081115AC: .4byte 0x03004b20 _081115B0: .4byte 0x0202f388 _081115B4: ldr r0, _081115CC ldrh r2, [r0, 0x2E] movs r3, 0x2 adds r0, r3, 0 ands r0, r2 cmp r0, 0 beq _081115D0 strh r1, [r5, 0xA] movs r0, 0x3 bl audio_play b _0811163C .align 2, 0 _081115CC: .4byte 0x03001770 _081115D0: movs r0, 0x10 ands r0, r2 cmp r0, 0 bne _081115EA movs r0, 0x80 lsls r0, 1 ands r0, r2 cmp r0, 0 beq _0811164C ldr r0, _081115F4 ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _0811164C _081115EA: strh r3, [r5, 0xA] movs r0, 0x6D bl audio_play b _0811163C .align 2, 0 _081115F4: .4byte gSaveBlock2 _081115F8: movs r0, 0x15 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _0811163C _0811160A: ldr r0, _08111630 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0811164C bl sub_8111738 ldr r0, _08111634 ldr r1, _08111638 adds r0, r1 ldr r1, [r0] ldrh r0, [r5, 0xA] strb r0, [r1] adds r0, r4, 0 bl DestroyTask b _0811164C .align 2, 0 _08111630: .4byte 0x0202f388 _08111634: .4byte 0x02000000 _08111638: .4byte 0x000006e4 _0811163C: ldr r0, _08111654 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _0811164C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08111654: .4byte 0x03004b20 thumb_func_end sub_811155C thumb_func_start sub_8111658 sub_8111658: @ 8111658 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _08111720 bl LoadSpriteSheet ldr r0, _08111724 bl LoadSpritePalette movs r5, 0 movs r1, 0 ldr r0, _08111728 movs r3, 0x89 lsls r3, 1 adds r2, r0, r3 ldrh r7, [r2] cmp r5, r7 bge _0811170C adds r6, r0, 0 mov r8, r2 _08111680: lsls r0, r1, 16 asrs r4, r0, 16 lsls r1, r4, 1 movs r2, 0xC4 lsls r2, 3 adds r0, r6, r2 adds r1, r0 ldr r2, _0811172C movs r3, 0 ldrsh r0, [r1, r3] lsls r0, 3 adds r0, r2 ldrb r1, [r0] adds r1, 0x1 lsls r1, 3 adds r1, 0x4 ldrb r2, [r0, 0x1] lsls r2, 19 ldrb r3, [r0, 0x2] subs r3, 0x1 lsls r3, 2 ldrb r0, [r0, 0x3] subs r0, 0x1 lsls r0, 2 movs r7, 0xE0 lsls r7, 13 adds r2, r7 asrs r2, 16 adds r1, r3 adds r2, r0 ldr r0, _08111730 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _081116FC ldr r0, _08111734 lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] adds r1, r5, 0 lsls r0, r1, 16 movs r3, 0x80 lsls r3, 9 adds r0, r3 lsrs r5, r0, 16 lsls r1, 16 asrs r1, 14 movs r7, 0xCC lsls r7, 3 adds r0, r6, r7 adds r1, r0 str r2, [r1] _081116FC: adds r0, r4, 0x1 lsls r0, 16 lsrs r1, r0, 16 asrs r0, 16 mov r2, r8 ldrh r2, [r2] cmp r0, r2 blt _08111680 _0811170C: ldr r0, _08111728 movs r3, 0xDC lsls r3, 3 adds r0, r3 strh r5, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08111720: .4byte gUnknown_083F858C _08111724: .4byte gUnknown_083F8594 _08111728: .4byte 0x02000000 _0811172C: .4byte gRegionMapLocations _08111730: .4byte gSpriteTemplate_83F85A4 _08111734: .4byte 0x02020004 thumb_func_end sub_8111658 thumb_func_start sub_8111738 sub_8111738: @ 8111738 push {r4-r6,lr} movs r0, 0x2 bl FreeSpriteTilesByTag movs r0, 0x2 bl FreeSpritePaletteByTag movs r4, 0 ldr r1, _081117A4 movs r2, 0xDC lsls r2, 3 adds r0, r1, r2 ldrh r2, [r0] cmp r4, r2 bcs _08111776 adds r6, r1, 0 adds r5, r0, 0 _0811175A: lsls r0, r4, 2 movs r2, 0xCC lsls r2, 3 adds r1, r6, r2 adds r0, r1 ldr r0, [r0] bl DestroySprite adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldrh r0, [r5] cmp r4, r0 bcc _0811175A _08111776: movs r0, 0x3 bl FreeSpriteTilesByTag movs r0, 0x3 bl FreeSpritePaletteByTag movs r4, 0 ldr r5, _081117A8 _08111786: lsls r0, r4, 2 adds r0, r5 ldr r0, [r0] cmp r0, 0 beq _08111794 bl DestroySprite _08111794: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x2 bls _08111786 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081117A4: .4byte 0x02000000 _081117A8: .4byte 0x02000fa8 thumb_func_end sub_8111738 thumb_func_start sub_81117AC sub_81117AC: @ 81117AC push {lr} sub sp, 0x8 ldr r0, _081117D4 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] ldr r0, _081117D8 ldr r1, _081117DC bl LZ77UnCompWram mov r0, sp bl LoadSpriteSheet ldr r0, _081117E0 bl LoadSpritePalette add sp, 0x8 pop {r0} bx r0 .align 2, 0 _081117D4: .4byte gUnknown_083F8664 _081117D8: .4byte gAreaUnknownTiles _081117DC: .4byte 0x02000fb4 _081117E0: .4byte gUnknown_083F865C thumb_func_end sub_81117AC thumb_func_start sub_81117E4 sub_81117E4: @ 81117E4 push {r4-r7,lr} ldr r1, _08111810 movs r2, 0x88 lsls r2, 1 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0 beq _08111818 movs r4, 0 ldr r7, _08111814 adds r2, r1, r7 movs r1, 0 _081117FC: lsls r0, r4, 2 adds r0, r2 str r1, [r0] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x2 bls _081117FC b _0811188E .align 2, 0 _08111810: .4byte 0x02000000 _08111814: .4byte 0x00000fa8 _08111818: movs r4, 0 ldr r6, _08111868 ldr r0, _0811186C adds r5, r1, r0 _08111820: lsls r1, r4, 21 movs r2, 0xA0 lsls r2, 16 adds r1, r2 asrs r1, 16 ldr r0, _08111870 movs r2, 0x8C movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0811187C lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r6 ldrh r3, [r2, 0x4] lsls r0, r3, 22 lsrs r0, 22 lsls r1, r4, 4 adds r0, r1 ldr r7, _08111874 adds r1, r7, 0 ands r0, r1 ldr r7, _08111878 adds r1, r7, 0 ands r3, r1 orrs r3, r0 strh r3, [r2, 0x4] lsls r0, r4, 2 adds r0, r5 str r2, [r0] b _08111884 .align 2, 0 _08111868: .4byte 0x02020004 _0811186C: .4byte 0x00000fa8 _08111870: .4byte gSpriteTemplate_83F8674 _08111874: .4byte 0x000003ff _08111878: .4byte 0xfffffc00 _0811187C: lsls r0, r4, 2 adds r0, r5 movs r1, 0 str r1, [r0] _08111884: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x2 bls _08111820 _0811188E: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81117E4 thumb_func_start sub_8111894 sub_8111894: @ 8111894 push {lr} bl UpdatePaletteFade bl RunTasks pop {r0} bx r0 thumb_func_end sub_8111894 thumb_func_start sub_81118A4 sub_81118A4: @ 81118A4 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r2, r0, 24 movs r7, 0 ldr r1, _081118C8 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _081118CC cmp r0, 0x1 beq _081118E4 b _08111918 .align 2, 0 _081118C8: .4byte 0x03004b20 _081118CC: movs r0, 0x1 negs r0, r0 str r7, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08111918 _081118E4: ldr r0, _08111920 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08111918 movs r0, 0xA ldrsh r7, [r4, r0] movs r1, 0xC ldrsh r0, [r4, r1] lsls r0, 16 orrs r7, r0 ldrh r5, [r4, 0x10] ldrb r6, [r4, 0x12] ldrh r4, [r4, 0x20] lsls r4, 24 lsrs r4, 24 adds r0, r2, 0 bl DestroyTask adds r0, r7, 0 adds r1, r5, 0 adds r2, r6, 0 adds r3, r4, 0 bl evolution_cutscene _08111918: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08111920: .4byte 0x0202f388 thumb_func_end sub_81118A4 thumb_func_start sub_8111924 sub_8111924: @ 8111924 push {r4-r6,lr} mov r6, r8 push {r6} mov r8, r0 adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 ldr r0, _08111978 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0811197C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0x8] mov r0, r8 strh r0, [r1, 0xA] mov r0, r8 lsrs r0, 16 strh r0, [r1, 0xC] strh r4, [r1, 0x10] strh r5, [r1, 0x12] strh r6, [r1, 0x20] ldr r0, _08111980 bl SetMainCallback2 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08111978: .4byte sub_81118A4 _0811197C: .4byte 0x03004b20 _08111980: .4byte sub_8111894 thumb_func_end sub_8111924 thumb_func_start evolution_cutscene evolution_cutscene: @ 8111984 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x38 str r0, [sp, 0x20] mov r10, r1 mov r0, r10 lsls r0, 16 lsrs r0, 16 mov r10, r0 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x24] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x28] movs r0, 0 bl SetHBlankCallback movs r0, 0 bl SetVBlankCallback movs r5, 0 str r5, [sp, 0x1C] add r0, sp, 0x1C movs r1, 0xC0 lsls r1, 19 ldr r2, _08111C10 bl CpuSet ldr r0, _08111C14 strh r5, [r0] subs r0, 0xC strh r5, [r0] adds r0, 0x4 strh r5, [r0] subs r0, 0x2 strh r5, [r0] adds r0, 0x4 strh r5, [r0] adds r0, 0x2 strh r5, [r0] adds r0, 0x2 strh r5, [r0] ldr r4, _08111C18 adds r0, r4, 0 bl SetUpWindowConfig bl ResetPaletteFade ldr r0, _08111C1C strh r5, [r0] ldr r0, _08111C20 strh r5, [r0] ldr r0, _08111C24 strh r5, [r0] ldr r0, _08111C28 strh r5, [r0] ldr r0, _08111C2C strh r5, [r0] ldr r0, _08111C30 strh r5, [r0] ldr r1, _08111C34 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] ldr r0, _08111C38 strh r5, [r0] ldr r0, _08111C3C adds r1, r4, 0 bl InitWindowFromConfig ldr r1, _08111C40 movs r0, 0x9 strb r0, [r1] bl sub_800D6D4 bl sub_800DAB8 bl ResetSpriteData bl remove_some_task bl ResetTasks bl FreeAllSpritePalettes ldr r0, _08111C44 movs r3, 0x4 strb r3, [r0] ldr r0, [sp, 0x20] movs r1, 0x2 add r2, sp, 0x8 bl PokemonGetField ldr r0, _08111C48 add r1, sp, 0x8 bl StringCopy10 ldr r0, _08111C4C movs r1, 0xB mov r4, r10 muls r4, r1 adds r1, r4, 0 ldr r2, _08111C50 adds r1, r2 bl StringCopy ldr r0, [sp, 0x20] movs r1, 0xB bl PokemonGetField adds r6, r0, 0 lsls r6, 16 lsrs r6, 16 ldr r0, [sp, 0x20] movs r1, 0x1 bl PokemonGetField str r0, [sp, 0x2C] ldr r0, [sp, 0x20] movs r1, 0 bl PokemonGetField str r0, [sp, 0x30] lsls r0, r6, 3 ldr r1, _08111C54 adds r0, r1 lsls r2, r6, 2 ldr r3, _08111C58 adds r2, r3 ldrb r1, [r2] ldrb r2, [r2, 0x1] ldr r4, _08111C5C ldr r3, [r4, 0x4] str r3, [sp] str r6, [sp, 0x4] movs r3, 0x80 lsls r3, 18 bl DecompressPicFromTable_2 adds r0, r6, 0 ldr r1, [sp, 0x2C] ldr r2, [sp, 0x30] bl sub_80409C8 ldr r0, [r0] movs r1, 0x88 lsls r1, 1 movs r2, 0x20 bl LoadCompressedPalette adds r0, r6, 0 movs r1, 0x1 bl gpu_pal_obj_decompress_and_apply ldr r0, _08111C60 mov r9, r0 ldr r1, _08111C64 str r1, [r0, 0x10] movs r1, 0x78 movs r2, 0x40 movs r3, 0x1E bl CreateSprite lsls r1, r0, 24 lsrs r2, r1, 24 ldr r3, _08111C68 strb r0, [r3] ldr r7, _08111C6C lsls r1, r2, 4 adds r1, r2 lsls r1, 2 movs r4, 0x1C adds r4, r7 mov r8, r4 adds r0, r1, r4 ldr r2, _08111C70 str r2, [r0] adds r1, r7 ldrb r2, [r1, 0x5] movs r4, 0xF adds r0, r4, 0 ands r0, r2 movs r2, 0x10 orrs r0, r2 strb r0, [r1, 0x5] adds r1, 0x3E ldrb r0, [r1] movs r3, 0x4 orrs r0, r3 strb r0, [r1] mov r1, r10 lsls r0, r1, 3 ldr r2, _08111C54 adds r0, r2 lsls r2, r1, 2 ldr r3, _08111C58 adds r2, r3 ldrb r1, [r2] ldrb r2, [r2, 0x1] str r2, [sp, 0x34] ldr r2, _08111C5C ldr r2, [r2, 0xC] str r2, [sp] mov r3, r10 str r3, [sp, 0x4] ldr r2, [sp, 0x34] movs r3, 0x80 lsls r3, 18 bl DecompressPicFromTable_2 mov r0, r10 ldr r1, [sp, 0x2C] ldr r2, [sp, 0x30] bl sub_80409C8 ldr r0, [r0] movs r1, 0x90 lsls r1, 1 movs r2, 0x20 bl LoadCompressedPalette mov r0, r10 movs r1, 0x3 bl gpu_pal_obj_decompress_and_apply ldr r0, _08111C64 mov r1, r9 str r0, [r1, 0x10] mov r0, r9 movs r1, 0x78 movs r2, 0x40 movs r3, 0x1E bl CreateSprite lsls r1, r0, 24 lsrs r2, r1, 24 ldr r3, _08111C68 strb r0, [r3, 0x1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r8, r1 ldr r0, _08111C70 mov r2, r8 str r0, [r2] adds r1, r7 ldrb r0, [r1, 0x5] ands r4, r0 movs r0, 0x20 orrs r4, r0 strb r4, [r1, 0x5] adds r1, 0x3E ldrb r0, [r1] movs r3, 0x4 orrs r0, r3 strb r0, [r1] bl sub_8149954 ldr r0, _08111C74 movs r1, 0 bl CreateTask lsls r1, r0, 24 lsrs r2, r1, 24 ldr r4, _08111C68 strb r0, [r4, 0x2] ldr r1, _08111C78 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x8] strh r6, [r0, 0xE] mov r1, r10 strh r1, [r0, 0x10] mov r2, sp ldrh r2, [r2, 0x20] strh r2, [r0, 0xA] ldr r3, [sp, 0x20] lsrs r1, r3, 16 strh r1, [r0, 0xC] mov r4, sp ldrh r4, [r4, 0x24] strh r4, [r0, 0x12] movs r1, 0x1 strh r1, [r0, 0x14] strh r5, [r0, 0x1E] mov r1, sp ldrh r1, [r1, 0x28] strh r1, [r0, 0x20] ldr r0, _08111C7C ldr r1, _08111C80 movs r2, 0x60 bl memcpy movs r1, 0x80 lsls r1, 19 movs r2, 0xFA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _08111C84 bl SetHBlankCallback ldr r0, _08111C88 bl SetVBlankCallback bl m4aMPlayAllStop ldr r0, _08111C8C bl SetMainCallback2 add sp, 0x38 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08111C10: .4byte 0x05006000 _08111C14: .4byte REG_MOSAIC _08111C18: .4byte gWindowConfig_81E6C58 _08111C1C: .4byte 0x030042a4 _08111C20: .4byte 0x030042a0 _08111C24: .4byte 0x030042c0 _08111C28: .4byte 0x030041b4 _08111C2C: .4byte 0x03004288 _08111C30: .4byte 0x03004280 _08111C34: .4byte 0x030041b0 _08111C38: .4byte 0x030041b8 _08111C3C: .4byte 0x03004210 _08111C40: .4byte 0x0300428c _08111C44: .4byte 0x030028f8 _08111C48: .4byte 0x020231cc _08111C4C: .4byte 0x020232cc _08111C50: .4byte gSpeciesNames _08111C54: .4byte gMonFrontPicTable _08111C58: .4byte gMonFrontPicCoords _08111C5C: .4byte gUnknown_081FAF4C _08111C60: .4byte 0x02024e8c _08111C64: .4byte gDummySpriteAffineAnimTable _08111C68: .4byte 0x02014800 _08111C6C: .4byte 0x02020004 _08111C70: .4byte nullsub_37 _08111C74: .4byte sub_811240C _08111C78: .4byte 0x03004b20 _08111C7C: .4byte 0x02009000 _08111C80: .4byte 0x0202eb08 _08111C84: .4byte nullsub_73 _08111C88: .4byte sub_8114FD4 _08111C8C: .4byte sub_8112270 thumb_func_end evolution_cutscene thumb_func_start sub_8111C90 sub_8111C90: @ 8111C90 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0xC ldr r2, _08111E14 ldr r0, _08111E18 mov r9, r0 ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0x20 ldrsh r2, [r0, r1] movs r1, 0x64 adds r4, r2, 0 muls r4, r1 ldr r1, _08111E1C adds r4, r1 ldrh r6, [r0, 0x10] adds r0, r4, 0 movs r1, 0x1 bl PokemonGetField mov r10, r0 adds r0, r4, 0 movs r1, 0 bl PokemonGetField mov r8, r0 movs r0, 0 bl SetHBlankCallback movs r0, 0 bl SetVBlankCallback movs r5, 0 str r5, [sp, 0x8] movs r1, 0xC0 lsls r1, 19 ldr r2, _08111E20 add r0, sp, 0x8 bl CpuSet ldr r0, _08111E24 strh r5, [r0] subs r0, 0xC strh r5, [r0] adds r0, 0x4 strh r5, [r0] subs r0, 0x2 strh r5, [r0] adds r0, 0x4 strh r5, [r0] adds r0, 0x2 strh r5, [r0] adds r0, 0x2 strh r5, [r0] ldr r4, _08111E28 adds r0, r4, 0 bl SetUpWindowConfig bl ResetPaletteFade ldr r0, _08111E2C strh r5, [r0] ldr r0, _08111E30 strh r5, [r0] ldr r0, _08111E34 strh r5, [r0] ldr r0, _08111E38 strh r5, [r0] ldr r0, _08111E3C strh r5, [r0] ldr r0, _08111E40 strh r5, [r0] ldr r1, _08111E44 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] ldr r0, _08111E48 strh r5, [r0] ldr r0, _08111E4C adds r1, r4, 0 bl InitWindowFromConfig ldr r1, _08111E50 movs r0, 0x9 strb r0, [r1] bl sub_800D6D4 bl sub_800DAB8 bl ResetSpriteData bl FreeAllSpritePalettes ldr r1, _08111E54 movs r0, 0x4 strb r0, [r1] lsls r0, r6, 3 ldr r1, _08111E58 adds r0, r1 ldr r1, _08111E5C lsls r2, r6, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08111E60 ldr r4, [r4, 0xC] str r4, [sp] str r6, [sp, 0x4] bl DecompressPicFromTable_2 adds r0, r6, 0 mov r1, r10 mov r2, r8 bl sub_80409C8 ldr r0, [r0] movs r1, 0x90 lsls r1, 1 movs r2, 0x20 bl LoadCompressedPalette adds r0, r6, 0 movs r1, 0x3 bl gpu_pal_obj_decompress_and_apply ldr r0, _08111E64 ldr r1, _08111E68 str r1, [r0, 0x10] movs r1, 0x78 movs r2, 0x40 movs r3, 0x1E bl CreateSprite lsls r2, r0, 24 lsrs r2, 24 mov r1, r9 strb r0, [r1, 0x1] ldr r3, _08111E6C lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r0, r3, 0 adds r0, 0x1C adds r0, r1, r0 ldr r2, _08111E70 str r2, [r0] adds r1, r3 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 movs r2, 0x20 orrs r0, r2 strb r0, [r1, 0x5] movs r1, 0x80 lsls r1, 19 movs r2, 0xFA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _08111E74 bl SetHBlankCallback ldr r0, _08111E78 bl SetVBlankCallback ldr r0, _08111E7C bl SetMainCallback2 movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08111E14: .4byte 0x03004b20 _08111E18: .4byte 0x02014800 _08111E1C: .4byte 0x03004360 _08111E20: .4byte 0x05006000 _08111E24: .4byte REG_MOSAIC _08111E28: .4byte gWindowConfig_81E6C58 _08111E2C: .4byte 0x030042a4 _08111E30: .4byte 0x030042a0 _08111E34: .4byte 0x030042c0 _08111E38: .4byte 0x030041b4 _08111E3C: .4byte 0x03004288 _08111E40: .4byte 0x03004280 _08111E44: .4byte 0x030041b0 _08111E48: .4byte 0x030041b8 _08111E4C: .4byte 0x03004210 _08111E50: .4byte 0x0300428c _08111E54: .4byte 0x030028f8 _08111E58: .4byte gMonFrontPicTable _08111E5C: .4byte gMonFrontPicCoords _08111E60: .4byte gUnknown_081FAF4C _08111E64: .4byte 0x02024e8c _08111E68: .4byte gDummySpriteAffineAnimTable _08111E6C: .4byte 0x02020004 _08111E70: .4byte nullsub_37 _08111E74: .4byte nullsub_73 _08111E78: .4byte sub_8114FD4 _08111E7C: .4byte sub_8112270 thumb_func_end sub_8111C90 thumb_func_start sub_8111E80 sub_8111E80: @ 8111E80 push {r4-r7,lr} sub sp, 0x8 ldr r2, _08111EB8 ldr r0, _08111EBC ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0x20 ldrsh r2, [r0, r1] movs r1, 0x64 muls r2, r1 ldr r1, _08111EC0 adds r4, r2, r1 ldrh r7, [r0, 0x10] ldr r0, _08111EC4 ldr r2, _08111EC8 adds r0, r2 ldrb r0, [r0] cmp r0, 0x6 bls _08111EAE b _081120D6 _08111EAE: lsls r0, 2 ldr r1, _08111ECC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08111EB8: .4byte 0x03004b20 _08111EBC: .4byte 0x02014800 _08111EC0: .4byte 0x03004360 _08111EC4: .4byte 0x03001770 _08111EC8: .4byte 0x0000043c _08111ECC: .4byte _08111ED0 .align 2, 0 _08111ED0: .4byte _08111EEC .4byte _08111F68 .4byte _08111F88 .4byte _08111FDC .4byte _08111FE2 .4byte _08112048 .4byte _081120B4 _08111EEC: movs r0, 0x80 lsls r0, 19 movs r4, 0 strh r4, [r0] movs r0, 0 bl SetHBlankCallback movs r0, 0 bl SetVBlankCallback bl ResetSpriteData bl FreeAllSpritePalettes ldr r1, _08111F3C movs r0, 0x4 strb r0, [r1] ldr r0, _08111F40 strh r4, [r0] ldr r0, _08111F44 strh r4, [r0] ldr r0, _08111F48 strh r4, [r0] ldr r0, _08111F4C strh r4, [r0] ldr r0, _08111F50 strh r4, [r0] ldr r0, _08111F54 strh r4, [r0] ldr r1, _08111F58 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] ldr r0, _08111F5C strh r4, [r0] ldr r1, _08111F60 ldr r0, _08111F64 adds r1, r0 b _0811208E .align 2, 0 _08111F3C: .4byte 0x030028f8 _08111F40: .4byte 0x030042a4 _08111F44: .4byte 0x030042a0 _08111F48: .4byte 0x030042c0 _08111F4C: .4byte 0x030041b4 _08111F50: .4byte 0x03004288 _08111F54: .4byte 0x03004280 _08111F58: .4byte 0x030041b0 _08111F5C: .4byte 0x030041b8 _08111F60: .4byte 0x03001770 _08111F64: .4byte 0x0000043c _08111F68: ldr r4, _08111F80 adds r0, r4, 0 bl SetUpWindowConfig ldr r0, _08111F84 ldr r0, [r0] adds r0, 0x4 adds r1, r4, 0 bl InitWindowFromConfig b _08112088 .align 2, 0 _08111F80: .4byte gWindowConfig_81E6F84 _08111F84: .4byte 0x03004828 _08111F88: ldr r4, _08111FC8 ldr r0, [r4] adds r0, 0x4 bl sub_8064F08 movs r0, 0x2 bl sub_8064EF4 ldr r1, [r4] adds r1, 0x34 strb r0, [r1] ldr r0, [r4] adds r0, 0x4 bl sub_8064F08 bl sub_8071EF4 bl ResetPaletteFade ldr r1, _08111FCC ldr r0, _08111FD0 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, _08111FD4 bl SetHBlankCallback ldr r0, _08111FD8 bl SetVBlankCallback b _081120D6 .align 2, 0 _08111FC8: .4byte 0x03004828 _08111FCC: .4byte 0x03001770 _08111FD0: .4byte 0x0000043c _08111FD4: .4byte nullsub_73 _08111FD8: .4byte sub_811505C _08111FDC: bl sub_804E22C b _08112088 _08111FE2: adds r0, r4, 0 movs r1, 0x1 bl PokemonGetField adds r6, r0, 0 adds r0, r4, 0 movs r1, 0 bl PokemonGetField adds r5, r0, 0 lsls r0, r7, 3 ldr r1, _08112034 adds r0, r1 ldr r1, _08112038 lsls r2, r7, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _0811203C ldr r4, [r4, 0xC] str r4, [sp] str r7, [sp, 0x4] bl DecompressPicFromTable_2 adds r0, r7, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_80409C8 ldr r0, [r0] movs r1, 0x90 lsls r1, 1 movs r2, 0x20 bl LoadCompressedPalette ldr r1, _08112040 ldr r0, _08112044 adds r1, r0 b _0811208E .align 2, 0 _08112034: .4byte gMonFrontPicTable _08112038: .4byte gMonFrontPicCoords _0811203C: .4byte gUnknown_081FAF4C _08112040: .4byte 0x03001770 _08112044: .4byte 0x0000043c _08112048: adds r0, r7, 0 movs r1, 0x3 bl gpu_pal_obj_decompress_and_apply ldr r0, _08112098 ldr r1, _0811209C str r1, [r0, 0x10] movs r1, 0x78 movs r2, 0x40 movs r3, 0x1E bl CreateSprite ldr r1, _081120A0 lsls r2, r0, 24 lsrs r2, 24 strb r0, [r1, 0x1] ldr r3, _081120A4 lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r0, r3, 0 adds r0, 0x1C adds r0, r1, r0 ldr r2, _081120A8 str r2, [r0] adds r1, r3 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 movs r2, 0x20 orrs r0, r2 strb r0, [r1, 0x5] _08112088: ldr r1, _081120AC ldr r2, _081120B0 adds r1, r2 _0811208E: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _081120D6 .align 2, 0 _08112098: .4byte 0x02024e8c _0811209C: .4byte gDummySpriteAffineAnimTable _081120A0: .4byte 0x02014800 _081120A4: .4byte 0x02020004 _081120A8: .4byte nullsub_37 _081120AC: .4byte 0x03001770 _081120B0: .4byte 0x0000043c _081120B4: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _081120E0 bl SetMainCallback2 movs r1, 0x80 lsls r1, 19 movs r2, 0x9A lsls r2, 5 adds r0, r2, 0 strh r0, [r1] _081120D6: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081120E0: .4byte sub_8112290 thumb_func_end sub_8111E80 thumb_func_start sub_81120E4 sub_81120E4: @ 81120E4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 str r0, [sp, 0x1C] adds r5, r1, 0 adds r4, r2, 0 mov r10, r3 lsls r5, 16 lsrs r5, 16 lsls r4, 24 lsrs r4, 24 mov r0, r10 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r0, [sp, 0x1C] movs r1, 0x2 add r2, sp, 0x8 bl PokemonGetField ldr r0, _08112234 add r1, sp, 0x8 bl StringCopy10 ldr r0, _08112238 movs r1, 0xB muls r1, r5 ldr r2, _0811223C adds r1, r2 bl StringCopy ldr r1, _08112240 movs r0, 0x1 strb r0, [r1] ldr r0, [sp, 0x1C] movs r1, 0xB bl PokemonGetField mov r8, r0 mov r1, r8 lsls r1, 16 lsrs r1, 16 mov r8, r1 ldr r0, [sp, 0x1C] movs r1, 0 bl PokemonGetField adds r6, r0, 0 ldr r0, [sp, 0x1C] movs r1, 0x1 bl PokemonGetField adds r7, r0, 0 ldr r2, _08112244 mov r9, r2 strb r4, [r2] lsls r0, r5, 3 ldr r1, _08112248 adds r0, r1 ldr r1, _0811224C lsls r2, r5, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08112250 ldr r4, [r4, 0x4] str r4, [sp] str r5, [sp, 0x4] bl DecompressPicFromTable_2 adds r0, r5, 0 adds r1, r7, 0 adds r2, r6, 0 bl sub_80409C8 ldr r0, [r0] movs r1, 0x90 lsls r1, 1 movs r2, 0x20 bl LoadCompressedPalette adds r0, r5, 0 movs r1, 0x1 bl gpu_pal_obj_decompress_and_apply ldr r0, _08112254 ldr r1, _08112258 str r1, [r0, 0x10] movs r1, 0x78 movs r2, 0x40 movs r3, 0x1E bl CreateSprite lsls r1, r0, 24 lsrs r2, r1, 24 mov r1, r9 strb r0, [r1, 0x1] ldr r3, _0811225C lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r0, r3, 0 adds r0, 0x1C adds r0, r1, r0 ldr r2, _08112260 str r2, [r0] adds r1, r3 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 movs r2, 0x20 orrs r0, r2 strb r0, [r1, 0x5] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] bl sub_8149954 ldr r0, _08112264 movs r1, 0 bl CreateTask lsls r1, r0, 24 lsrs r2, r1, 24 mov r1, r9 strb r0, [r1, 0x2] ldr r1, _08112268 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r2, 0 strh r2, [r0, 0x8] mov r1, r8 strh r1, [r0, 0xE] strh r5, [r0, 0x10] mov r2, sp ldrh r2, [r2, 0x1C] strh r2, [r0, 0xA] ldr r1, [sp, 0x1C] lsrs r1, 16 str r1, [sp, 0x20] strh r1, [r0, 0xC] movs r1, 0x1 strh r1, [r0, 0x14] movs r1, 0 strh r1, [r0, 0x1E] mov r2, r10 strh r2, [r0, 0x20] ldr r0, _0811226C bl SetMainCallback2 add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08112234: .4byte 0x020231cc _08112238: .4byte 0x020232cc _0811223C: .4byte gSpeciesNames _08112240: .4byte 0x020211c8 _08112244: .4byte 0x02014800 _08112248: .4byte gMonFrontPicTable _0811224C: .4byte gMonFrontPicCoords _08112250: .4byte gUnknown_081FAF4C _08112254: .4byte 0x02024e8c _08112258: .4byte gDummySpriteAffineAnimTable _0811225C: .4byte 0x02020004 _08112260: .4byte nullsub_37 _08112264: .4byte sub_8112FE8 _08112268: .4byte 0x03004b20 _0811226C: .4byte sub_8112290 thumb_func_end sub_81120E4 thumb_func_start sub_8112270 sub_8112270: @ 8112270 push {lr} bl AnimateSprites bl BuildOamBuffer ldr r0, _0811228C bl sub_800374C bl UpdatePaletteFade bl RunTasks pop {r0} bx r0 .align 2, 0 _0811228C: .4byte 0x03004210 thumb_func_end sub_8112270 thumb_func_start sub_8112290 sub_8112290: @ 8112290 push {lr} bl AnimateSprites bl BuildOamBuffer ldr r0, _081122B0 ldr r0, [r0] adds r0, 0x4 bl sub_80035AC bl UpdatePaletteFade bl RunTasks pop {r0} bx r0 .align 2, 0 _081122B0: .4byte 0x03004828 thumb_func_end sub_8112290 thumb_func_start sub_81122B4 sub_81122B4: @ 81122B4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r10, r1 lsls r0, 16 lsrs r7, r0, 16 movs r0, 0 str r0, [sp] ldr r0, _081123F4 mov r8, r0 lsls r1, r7, 2 mov r9, r1 adds r0, r1, r7 lsls r4, r0, 3 mov r0, r8 adds r6, r4, r0 ldrh r0, [r6] cmp r0, 0xD beq _081122E2 b _081123E2 _081122E2: ldr r1, _081123F8 ldrb r0, [r1] cmp r0, 0x5 bhi _081123E2 adds r1, r0, 0 movs r0, 0x64 muls r1, r0 ldr r0, _081123FC adds r5, r1, r0 adds r0, r5, 0 mov r1, r10 movs r2, 0x64 bl memcpy_pokemon mov r1, r8 adds r2, r1, r4 adds r2, 0xC adds r0, r5, 0 movs r1, 0xB bl pokemon_setattr ldrh r1, [r6, 0xC] movs r0, 0xB adds r2, r1, 0 muls r2, r0 ldr r0, _08112400 adds r2, r0 adds r0, r5, 0 movs r1, 0x2 bl pokemon_setattr adds r0, r5, 0 movs r1, 0xC mov r2, sp bl pokemon_setattr adds r0, r5, 0 movs r1, 0x8 mov r2, sp bl pokemon_setattr adds r0, r5, 0 movs r1, 0xA mov r2, sp bl pokemon_setattr movs r4, 0x32 mov r6, r9 _08112342: adds r0, r5, 0 adds r1, r4, 0 mov r2, sp bl pokemon_setattr adds r4, 0x1 cmp r4, 0x36 ble _08112342 movs r4, 0x43 _08112354: adds r0, r5, 0 adds r1, r4, 0 mov r2, sp bl pokemon_setattr adds r4, 0x1 cmp r4, 0x4F ble _08112354 adds r0, r5, 0 movs r1, 0x37 mov r2, sp bl pokemon_setattr movs r0, 0xFF str r0, [sp] adds r0, r5, 0 movs r1, 0x40 mov r2, sp bl pokemon_setattr adds r0, r5, 0 bl pokemon_calc_effective_stats bl calc_player_party_count ldr r0, _081123F4 adds r4, r6, r7 lsls r4, 3 adds r4, r0 ldrh r0, [r4, 0xC] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x2 bl sub_8090D90 ldrh r0, [r4, 0xC] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl sub_8090D90 adds r0, r5, 0 movs r1, 0xB bl PokemonGetField ldr r1, _08112404 cmp r0, r1 bne _081123E2 adds r0, r5, 0 movs r1, 0x3 bl PokemonGetField cmp r0, 0x1 bne _081123E2 mov r0, r10 movs r1, 0xB bl PokemonGetField movs r1, 0x97 lsls r1, 1 cmp r0, r1 bne _081123E2 ldr r2, _08112408 adds r0, r5, 0 movs r1, 0x2 bl pokemon_setattr _081123E2: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081123F4: .4byte gEvolutionTable _081123F8: .4byte 0x03004350 _081123FC: .4byte 0x03004360 _08112400: .4byte gSpeciesNames _08112404: .4byte 0x0000012f _08112408: .4byte gUnknown_083F868C thumb_func_end sub_81122B4 thumb_func_start sub_811240C sub_811240C: @ 811240C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x18 lsls r0, 24 lsrs r7, r0, 24 ldr r2, _08112490 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r3, r0, r2 movs r1, 0xA ldrsh r0, [r3, r1] mov r9, r0 movs r1, 0xC ldrsh r0, [r3, r1] lsls r0, 16 mov r1, r9 orrs r1, r0 mov r9, r1 ldr r0, _08112494 ldrh r1, [r0, 0x2C] adds r6, r2, 0 adds r4, r0, 0 cmp r1, 0x2 bne _0811246E movs r2, 0x8 ldrsh r0, [r3, r2] cmp r0, 0x8 bne _0811246E ldrh r1, [r3, 0x12] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0811246E movs r0, 0x10 strh r0, [r3, 0x8] ldr r0, _08112498 ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r1, r0, r6 ldrb r0, [r1, 0x4] cmp r0, 0 beq _0811246E strh r2, [r1, 0x18] _0811246E: lsls r1, r7, 2 adds r0, r1, r7 lsls r0, 3 adds r0, r6 movs r3, 0x8 ldrsh r0, [r0, r3] mov r8, r1 cmp r0, 0x15 bls _08112484 bl _08112FD0 _08112484: lsls r0, 2 ldr r1, _0811249C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08112490: .4byte 0x03004b20 _08112494: .4byte 0x03001770 _08112498: .4byte 0x02024d1e _0811249C: .4byte _081124A0 .align 2, 0 _081124A0: .4byte _081124F8 .4byte _0811253C .4byte _08112588 .4byte _08112594 .4byte _081125BC .4byte _081125FC .4byte _08112630 .4byte _0811266C .4byte _081126A0 .4byte _081126E0 .4byte _081126FC .4byte _08112728 .4byte _08112754 .4byte _081127A0 .4byte _0811284C .4byte _081128E4 .4byte _08112934 .4byte _08112974 .4byte _081129A0 .4byte _081129E8 .4byte _08112A4C .4byte _08112A88 _081124F8: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r2, _08112530 ldr r0, _08112534 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldr r0, _08112538 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 b _08112A2E .align 2, 0 _08112530: .4byte 0x02020004 _08112534: .4byte 0x02014800 _08112538: .4byte 0x03004b20 _0811253C: ldr r0, _08112574 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0811254C bl _08112FD0 _0811254C: ldr r4, _08112578 ldr r1, _0811257C adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _08112580 movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r0, _08112584 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 b _08112A2E .align 2, 0 _08112574: .4byte 0x0202f388 _08112578: .4byte 0x020234cc _0811257C: .4byte gUnknown_08400C4A _08112580: .4byte 0x03004210 _08112584: .4byte 0x03004b20 _08112588: ldr r0, _08112590 ldrh r0, [r0, 0x16] b _0811297C .align 2, 0 _08112590: .4byte 0x03004210 _08112594: bl sub_8075374 lsls r0, 24 cmp r0, 0 bne _081125A2 bl _08112FD0 _081125A2: movs r0, 0xBC lsls r0, 1 bl audio_play ldr r0, _081125B8 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 b _08112A2E .align 2, 0 _081125B8: .4byte 0x03004b20 _081125BC: bl mplay_has_finished_maybe lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _081125CC bl _08112FD0 _081125CC: ldr r0, _081125F4 bl current_map_music_set ldr r0, _081125F8 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] str r4, [sp] movs r0, 0x1C movs r1, 0x4 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade bl _08112FD0 .align 2, 0 _081125F4: .4byte 0x00000179 _081125F8: .4byte 0x03004b20 _081125FC: ldr r0, _08112624 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0811260C bl _08112FD0 _0811260C: movs r0, 0x11 bl sub_8149970 ldr r1, _08112628 strb r0, [r1, 0x2] ldr r0, _0811262C mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 b _08112A2E .align 2, 0 _08112624: .4byte 0x0202f388 _08112628: .4byte 0x02024d1e _0811262C: .4byte 0x03004b20 _08112630: ldr r4, _08112664 ldrb r0, [r4, 0x2] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r6 ldrb r0, [r1, 0x4] cmp r0, 0 beq _08112646 bl _08112FD0 _08112646: mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r6 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] ldr r1, _08112668 movs r0, 0x1 strb r0, [r1, 0x3] bl sub_8149A90 strb r0, [r4, 0x2] bl _08112FD0 .align 2, 0 _08112664: .4byte 0x02024d1e _08112668: .4byte 0x02014800 _0811266C: ldr r4, _08112698 ldrb r0, [r4, 0x2] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r6 ldrb r0, [r1, 0x4] cmp r0, 0 beq _08112682 bl _08112FD0 _08112682: ldr r1, _0811269C ldrb r0, [r1] ldrb r1, [r1, 0x1] bl sub_8149E7C strb r0, [r4, 0x2] mov r0, r8 adds r1, r0, r7 lsls r1, 3 adds r1, r6 b _08112A2E .align 2, 0 _08112698: .4byte 0x02024d1e _0811269C: .4byte 0x02014800 _081126A0: ldr r1, _081126D8 ldrb r0, [r1, 0x3] subs r0, 0x1 strb r0, [r1, 0x3] lsls r0, 24 cmp r0, 0 beq _081126B2 bl _08112FD0 _081126B2: movs r0, 0x3 strb r0, [r1, 0x3] ldr r0, _081126DC ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 ldrb r0, [r0, 0x4] cmp r0, 0 beq _081126CC bl _08112FD0 _081126CC: mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r6 b _08112A2E .align 2, 0 _081126D8: .4byte 0x02014800 _081126DC: .4byte 0x02024d1e _081126E0: bl sub_8149B44 ldr r1, _081126F4 strb r0, [r1, 0x2] ldr r0, _081126F8 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 b _08112A2E .align 2, 0 _081126F4: .4byte 0x02024d1e _081126F8: .4byte 0x03004b20 _081126FC: ldr r5, _08112724 ldrb r0, [r5, 0x2] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r6 ldrb r0, [r1, 0x4] cmp r0, 0 beq _08112712 bl _08112FD0 _08112712: mov r0, r8 adds r4, r0, r7 lsls r4, 3 adds r4, r6 ldrh r0, [r4, 0x10] bl sub_8149C20 strb r0, [r5, 0x2] b _08112992 .align 2, 0 _08112724: .4byte 0x02024d1e _08112728: ldr r0, _08112750 ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 ldrb r0, [r0, 0x4] cmp r0, 0 beq _0811273E bl _08112FD0 _0811273E: movs r0, 0x21 bl audio_play mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r6 b _08112A2E .align 2, 0 _08112750: .4byte 0x02024d1e _08112754: bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 bne _08112762 bl _08112FD0 _08112762: bl m4aMPlayAllStop ldr r0, _08112794 mov r3, r8 adds r4, r3, r7 lsls r4, 3 adds r4, r0 ldrh r0, [r4, 0x10] movs r1, 0 bl cry_related ldr r0, _08112798 ldr r1, _0811279C movs r2, 0x60 bl memcpy movs r0, 0 str r0, [sp] movs r0, 0x1C movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _08112992 .align 2, 0 _08112794: .4byte 0x03004b20 _08112798: .4byte 0x0202eb08 _0811279C: .4byte 0x02009000 _081127A0: bl sub_8075374 lsls r0, 24 cmp r0, 0 bne _081127AE bl _08112FD0 _081127AE: ldr r0, _08112834 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081127BE bl _08112FD0 _081127BE: ldr r4, _08112838 ldr r1, _0811283C adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _08112840 movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r0, _08112844 bl sub_8075474 ldr r2, _08112848 mov r0, r8 adds r1, r0, r7 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] adds r2, r1 adds r2, 0x10 mov r0, r9 movs r1, 0xB bl pokemon_setattr mov r0, r9 bl pokemon_calc_effective_stats ldrh r1, [r4, 0xE] ldrh r2, [r4, 0x10] mov r0, r9 bl sub_803FB68 ldrh r0, [r4, 0x10] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x2 bl sub_8090D90 ldrh r0, [r4, 0x10] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl sub_8090D90 movs r0, 0xE bl sav12_xor_increment b _08112FD0 .align 2, 0 _08112834: .4byte 0x0202f388 _08112838: .4byte 0x020234cc _0811283C: .4byte gUnknown_08400C60 _08112840: .4byte 0x03004210 _08112844: .4byte 0x00000173 _08112848: .4byte 0x03004b20 _0811284C: ldr r0, _081128A4 ldrh r0, [r0, 0x16] cmp r0, 0 beq _08112856 b _08112FD0 _08112856: mov r1, r8 adds r0, r1, r7 lsls r0, 3 adds r5, r0, r6 ldrb r1, [r5, 0x14] mov r0, r9 bl sub_803B7C8 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0 beq _081128C4 movs r2, 0x1E ldrsh r4, [r5, r2] cmp r4, 0 bne _081128C4 bl sub_8053E90 ldrh r1, [r5, 0x12] movs r0, 0x80 orrs r0, r1 strh r0, [r5, 0x12] strh r4, [r5, 0x14] strh r4, [r5, 0x18] mov r0, r9 movs r1, 0x2 add r2, sp, 0x4 bl PokemonGetField ldr r0, _081128A8 add r1, sp, 0x4 bl StringCopy10 ldr r0, _081128AC cmp r6, r0 bne _081128B0 movs r0, 0x15 strh r0, [r5, 0x8] b _08112FD0 .align 2, 0 _081128A4: .4byte 0x03004210 _081128A8: .4byte 0x030041c0 _081128AC: .4byte 0x0000ffff _081128B0: ldr r0, _081128C0 cmp r6, r0 bne _081128B8 b _08112FD0 _081128B8: movs r0, 0x13 strh r0, [r5, 0x8] b _08112FD0 .align 2, 0 _081128C0: .4byte 0x0000fffe _081128C4: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _081128E0 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 b _08112A2E .align 2, 0 _081128E0: .4byte 0x03004b20 _081128E4: ldr r0, _0811292C ldrb r1, [r0, 0x7] movs r2, 0x80 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _081128F4 b _08112FD0 _081128F4: mov r1, r8 adds r0, r1, r7 lsls r0, 3 adds r4, r0, r6 ldrh r1, [r4, 0x12] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0811290A bl sub_8053E90 _0811290A: movs r2, 0x1E ldrsh r0, [r4, r2] cmp r0, 0 bne _0811291A ldrh r0, [r4, 0xE] mov r1, r9 bl sub_81122B4 _0811291A: adds r0, r7, 0 bl DestroyTask ldr r0, _08112930 ldr r0, [r0] bl SetMainCallback2 b _08112FD0 .align 2, 0 _0811292C: .4byte 0x0202f388 _08112930: .4byte 0x03005e94 _08112934: ldr r0, _08112968 ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 ldrb r0, [r0, 0x4] cmp r0, 0 beq _08112948 b _08112FD0 _08112948: bl m4aMPlayAllStop ldr r0, _0811296C ldr r1, _08112970 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r6 b _08112A2E .align 2, 0 _08112968: .4byte 0x02024d1e _0811296C: .4byte 0x0006001c _08112970: .4byte 0x00007fff _08112974: ldr r0, _0811299C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 _0811297C: cmp r0, 0 beq _08112982 b _08112FD0 _08112982: mov r0, r8 adds r4, r0, r7 lsls r4, 3 adds r4, r6 ldrh r0, [r4, 0xE] movs r1, 0 bl cry_related _08112992: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08112FD0 .align 2, 0 _0811299C: .4byte 0x0202f388 _081129A0: bl sub_8075374 lsls r0, 24 cmp r0, 0 bne _081129AC b _08112FD0 _081129AC: ldr r4, _081129D8 ldr r1, _081129DC adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _081129E0 movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r1, _081129E4 mov r2, r8 adds r0, r2, r7 lsls r0, 3 adds r0, r1 movs r1, 0x1 strh r1, [r0, 0x1E] b _08112F9A .align 2, 0 _081129D8: .4byte 0x020234cc _081129DC: .4byte gUnknown_08400C8D _081129E0: .4byte 0x03004210 _081129E4: .4byte 0x03004b20 _081129E8: ldr r4, _08112A38 ldrh r0, [r4, 0x16] cmp r0, 0 beq _081129F2 b _08112FD0 _081129F2: bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 beq _081129FE b _08112FD0 _081129FE: bl sub_8024CEC ldr r0, _08112A3C bl fanfare_play ldr r0, _08112A40 ldr r0, [r0, 0xC] bl get_battle_strings_ ldr r1, _08112A44 movs r0, 0xF str r0, [sp] adds r0, r4, 0 movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r0, _08112A48 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 movs r0, 0x40 strh r0, [r1, 0x14] _08112A2E: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _08112FD0 .align 2, 0 _08112A38: .4byte 0x03004210 _08112A3C: .4byte 0x0000016f _08112A40: .4byte gUnknown_08400F8C _08112A44: .4byte 0x020238cc _08112A48: .4byte 0x03004b20 _08112A4C: ldr r0, _08112A80 ldrh r0, [r0, 0x16] cmp r0, 0 beq _08112A56 b _08112FD0 _08112A56: bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 beq _08112A62 b _08112FD0 _08112A62: ldr r0, _08112A84 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x14] subs r0, 0x1 strh r0, [r1, 0x14] lsls r0, 16 cmp r0, 0 beq _08112A7A b _08112FD0 _08112A7A: movs r0, 0xE strh r0, [r1, 0x8] b _08112FD0 .align 2, 0 _08112A80: .4byte 0x03004210 _08112A84: .4byte 0x03004b20 _08112A88: mov r3, r8 adds r0, r3, r7 lsls r0, 3 adds r0, r6 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0xB bls _08112A9A b _08112FD0 _08112A9A: lsls r0, 2 ldr r1, _08112AA4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08112AA4: .4byte _08112AA8 .align 2, 0 _08112AA8: .4byte _08112AD8 .4byte _08112B2C .4byte _08112B7C .4byte _08112BC0 .4byte _08112C0C .4byte _08112D3C .4byte _08112D8C .4byte _08112E98 .4byte _08112EE8 .4byte _08112F38 .4byte _08112F78 .4byte _08112FB0 _08112AD8: ldr r4, _08112B1C ldrh r0, [r4, 0x16] cmp r0, 0 beq _08112AE2 b _08112FD0 _08112AE2: bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 beq _08112AEE b _08112FD0 _08112AEE: bl sub_8024CEC ldr r0, _08112B20 ldr r0, [r0, 0x10] bl get_battle_strings_ ldr r1, _08112B24 movs r0, 0xF str r0, [sp] adds r0, r4, 0 movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r0, _08112B28 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 b _08112FCE .align 2, 0 _08112B1C: .4byte 0x03004210 _08112B20: .4byte gUnknown_08400F8C _08112B24: .4byte 0x020238cc _08112B28: .4byte 0x03004b20 _08112B2C: ldr r4, _08112B6C ldrh r0, [r4, 0x16] cmp r0, 0 beq _08112B36 b _08112FD0 _08112B36: bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 beq _08112B42 b _08112FD0 _08112B42: ldr r0, _08112B70 ldr r0, [r0, 0x14] bl get_battle_strings_ ldr r1, _08112B74 movs r0, 0xF str r0, [sp] adds r0, r4, 0 movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r0, _08112B78 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 b _08112FCE .align 2, 0 _08112B6C: .4byte 0x03004210 _08112B70: .4byte gUnknown_08400F8C _08112B74: .4byte 0x020238cc _08112B78: .4byte 0x03004b20 _08112B7C: ldr r4, _08112BF8 ldrh r0, [r4, 0x16] cmp r0, 0 beq _08112B86 b _08112FD0 _08112B86: bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 bne _08112BC0 ldr r0, _08112BFC ldr r0, [r0, 0x18] bl get_battle_strings_ ldr r1, _08112C00 movs r0, 0xF str r0, [sp] adds r0, r4, 0 movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r0, _08112C04 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 movs r0, 0x5 strh r0, [r1, 0x1A] movs r0, 0x9 strh r0, [r1, 0x1C] ldrh r0, [r1, 0x18] adds r0, 0x1 strh r0, [r1, 0x18] _08112BC0: ldr r0, _08112BF8 ldrh r0, [r0, 0x16] cmp r0, 0 beq _08112BCA b _08112FD0 _08112BCA: bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 beq _08112BD6 b _08112FD0 _08112BD6: bl sub_8023A80 ldr r0, _08112C04 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 movs r2, 0 strh r0, [r1, 0x18] ldr r0, _08112C08 strb r2, [r0, 0x1] bl sub_802BC6C b _08112FD0 .align 2, 0 _08112BF8: .4byte 0x03004210 _08112BFC: .4byte gUnknown_08400F8C _08112C00: .4byte 0x020238cc _08112C04: .4byte 0x03004b20 _08112C08: .4byte 0x02024d1e _08112C0C: ldr r0, _08112CA4 ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08112C32 ldr r4, _08112CA8 ldrb r0, [r4, 0x1] cmp r0, 0 beq _08112C32 movs r0, 0x5 bl audio_play bl nullsub_6 movs r0, 0 strb r0, [r4, 0x1] bl sub_802BC6C _08112C32: ldr r0, _08112CA4 ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08112C58 ldr r4, _08112CA8 ldrb r0, [r4, 0x1] cmp r0, 0 bne _08112C58 movs r0, 0x5 bl audio_play bl nullsub_6 movs r0, 0x1 strb r0, [r4, 0x1] bl sub_802BC6C _08112C58: ldr r0, _08112CA4 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08112CE2 bl sub_8023AD8 ldr r0, _08112CAC movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] bl get_battle_strings_ ldr r0, _08112CB0 ldr r1, _08112CB4 movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 movs r0, 0x5 bl audio_play ldr r0, _08112CA8 ldrb r2, [r0, 0x1] cmp r2, 0 beq _08112CBC ldr r0, _08112CB8 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x1C] strh r0, [r1, 0x18] b _08112CE2 .align 2, 0 _08112CA4: .4byte 0x03001770 _08112CA8: .4byte 0x02024d1e _08112CAC: .4byte gUnknown_08400F8C _08112CB0: .4byte 0x03004210 _08112CB4: .4byte 0x020238cc _08112CB8: .4byte 0x03004b20 _08112CBC: ldr r0, _08112D28 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x1A] strh r0, [r1, 0x18] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _08112CE2 movs r0, 0x1 negs r0, r0 str r2, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _08112CE2: ldr r0, _08112D2C ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08112CF0 b _08112FD0 _08112CF0: bl sub_8023AD8 ldr r0, _08112D30 movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] bl get_battle_strings_ ldr r0, _08112D34 ldr r1, _08112D38 movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 movs r0, 0x5 bl audio_play ldr r1, _08112D28 mov r2, r8 adds r0, r2, r7 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x1C] strh r1, [r0, 0x18] b _08112FD0 .align 2, 0 _08112D28: .4byte 0x03004b20 _08112D2C: .4byte 0x03001770 _08112D30: .4byte gUnknown_08400F8C _08112D34: .4byte 0x03004210 _08112D38: .4byte 0x020238cc _08112D3C: ldr r0, _08112D78 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08112D4A b _08112FD0 _08112D4A: ldr r0, _08112D7C mov r3, r8 adds r5, r3, r7 lsls r5, 3 adds r5, r6 ldrh r1, [r5, 0x20] lsls r1, 24 lsrs r1, 24 ldr r2, _08112D80 ldrb r2, [r2] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, _08112D84 ldr r4, _08112D88 ldrh r4, [r4] str r4, [sp] bl sub_809D9F0 ldrh r0, [r5, 0x18] adds r0, 0x1 strh r0, [r5, 0x18] b _08112FD0 .align 2, 0 _08112D78: .4byte 0x0202f388 _08112D7C: .4byte 0x03004360 _08112D80: .4byte 0x03004350 _08112D84: .4byte sub_8111C90 _08112D88: .4byte 0x02024e82 _08112D8C: ldr r0, _08112DC0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08112D9A b _08112FD0 _08112D9A: ldr r1, [r4, 0x4] ldr r0, _08112DC4 cmp r1, r0 beq _08112DA4 b _08112FD0 _08112DA4: bl sub_809FA30 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x4 bne _08112DCC ldr r0, _08112DC8 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 movs r0, 0x9 b _08112FCE .align 2, 0 _08112DC0: .4byte 0x0202f388 _08112DC4: .4byte sub_8112270 _08112DC8: .4byte 0x03004b20 _08112DCC: adds r1, r6, 0 adds r1, 0xD mov r0, r9 bl PokemonGetField lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl sub_8040A00 cmp r0, 0 beq _08112E24 ldr r0, _08112E10 ldr r3, _08112E14 adds r0, r3 ldr r0, [r0] bl get_battle_strings_ ldr r0, _08112E18 ldr r1, _08112E1C movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r1, _08112E20 mov r2, r8 adds r0, r2, r7 lsls r0, 3 adds r0, r1 movs r1, 0xB strh r1, [r0, 0x18] b _08112FD0 .align 2, 0 _08112E10: .4byte gUnknown_08400F8C _08112E14: .4byte 0x000004cc _08112E18: .4byte 0x03004210 _08112E1C: .4byte 0x020238cc _08112E20: .4byte 0x03004b20 _08112E24: ldr r1, _08112E80 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 strb r0, [r1, 0x1] strb r4, [r1, 0x2] lsrs r0, r4, 8 strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] lsls r4, r6, 24 lsrs r4, 24 mov r0, r9 adds r1, r4, 0 bl sub_803DE34 ldr r0, _08112E84 ldrh r1, [r0] mov r0, r9 adds r2, r4, 0 bl sub_803B6A4 ldr r0, _08112E88 movs r3, 0xCF lsls r3, 2 adds r0, r3 ldr r0, [r0] bl get_battle_strings_ ldr r0, _08112E8C ldr r1, _08112E90 movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r0, _08112E94 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 b _08112FCE .align 2, 0 _08112E80: .4byte 0x03004290 _08112E84: .4byte 0x02024e82 _08112E88: .4byte gUnknown_08400F8C _08112E8C: .4byte 0x03004210 _08112E90: .4byte 0x020238cc _08112E94: .4byte 0x03004b20 _08112E98: ldr r4, _08112ED8 ldrh r0, [r4, 0x16] cmp r0, 0 beq _08112EA2 b _08112FD0 _08112EA2: bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 beq _08112EAE b _08112FD0 _08112EAE: ldr r0, _08112EDC ldr r0, [r0, 0x1C] bl get_battle_strings_ ldr r1, _08112EE0 movs r0, 0xF str r0, [sp] adds r0, r4, 0 movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r0, _08112EE4 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 b _08112FCE .align 2, 0 _08112ED8: .4byte 0x03004210 _08112EDC: .4byte gUnknown_08400F8C _08112EE0: .4byte 0x020238cc _08112EE4: .4byte 0x03004b20 _08112EE8: ldr r4, _08112F28 ldrh r0, [r4, 0x16] cmp r0, 0 bne _08112FD0 bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 bne _08112FD0 ldr r0, _08112F2C movs r1, 0xD0 lsls r1, 2 adds r0, r1 ldr r0, [r0] bl get_battle_strings_ ldr r1, _08112F30 movs r0, 0xF str r0, [sp] adds r0, r4, 0 movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r1, _08112F34 mov r2, r8 adds r0, r2, r7 lsls r0, 3 adds r0, r1 movs r1, 0x13 strh r1, [r0, 0x8] b _08112FD0 .align 2, 0 _08112F28: .4byte 0x03004210 _08112F2C: .4byte gUnknown_08400F8C _08112F30: .4byte 0x020238cc _08112F34: .4byte 0x03004b20 _08112F38: ldr r0, _08112F68 ldr r0, [r0, 0x20] bl get_battle_strings_ ldr r0, _08112F6C ldr r1, _08112F70 movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r1, _08112F74 mov r3, r8 adds r0, r3, r7 lsls r0, 3 adds r0, r1 movs r2, 0 movs r1, 0xA strh r1, [r0, 0x1A] strh r2, [r0, 0x1C] movs r1, 0x3 strh r1, [r0, 0x18] b _08112FD0 .align 2, 0 _08112F68: .4byte gUnknown_08400F8C _08112F6C: .4byte 0x03004210 _08112F70: .4byte 0x020238cc _08112F74: .4byte 0x03004b20 _08112F78: ldr r0, _08112FA0 ldr r0, [r0, 0x24] bl get_battle_strings_ ldr r0, _08112FA4 ldr r1, _08112FA8 movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r1, _08112FAC mov r2, r8 adds r0, r2, r7 lsls r0, 3 adds r0, r1 _08112F9A: movs r1, 0xE strh r1, [r0, 0x8] b _08112FD0 .align 2, 0 _08112FA0: .4byte gUnknown_08400F8C _08112FA4: .4byte 0x03004210 _08112FA8: .4byte 0x020238cc _08112FAC: .4byte 0x03004b20 _08112FB0: ldr r0, _08112FE0 ldrh r0, [r0, 0x16] cmp r0, 0 bne _08112FD0 bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 bne _08112FD0 ldr r0, _08112FE4 mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r1, r0 movs r0, 0x5 _08112FCE: strh r0, [r1, 0x18] _08112FD0: add sp, 0x18 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08112FE0: .4byte 0x03004210 _08112FE4: .4byte 0x03004b20 thumb_func_end sub_811240C thumb_func_start sub_8112FE8 sub_8112FE8: @ 8112FE8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x18 lsls r0, 24 lsrs r7, r0, 24 ldr r2, _0811302C lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r2 movs r3, 0xA ldrsh r0, [r1, r3] mov r8, r0 movs r3, 0xC ldrsh r0, [r1, r3] lsls r0, 16 mov r3, r8 orrs r3, r0 mov r8, r3 movs r3, 0x8 ldrsh r0, [r1, r3] adds r6, r2, 0 cmp r0, 0x11 bls _08113020 bl _08113B3A _08113020: lsls r0, 2 ldr r1, _08113030 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0811302C: .4byte 0x03004b20 _08113030: .4byte _08113034 .align 2, 0 _08113034: .4byte _0811307C .4byte _081130B8 .4byte _081130DC .4byte _0811310C .4byte _0811314C .4byte _0811318C .4byte _081131C8 .4byte _081131F4 .4byte _0811322C .4byte _08113248 .4byte _08113274 .4byte _081132A8 .4byte _081132F8 .4byte _081133A8 .4byte _0811346C .4byte _08113490 .4byte _081134F8 .4byte _08113538 _0811307C: ldr r4, _081130A8 ldr r1, _081130AC adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _081130B0 ldr r1, [r0] adds r0, r1, 0x4 adds r1, 0x34 ldrb r2, [r1] movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r3, 0x2 bl sub_8002EB0 ldr r1, _081130B4 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 b _08113298 .align 2, 0 _081130A8: .4byte 0x020234cc _081130AC: .4byte gUnknown_08400C4A _081130B0: .4byte 0x03004828 _081130B4: .4byte 0x03004b20 _081130B8: ldr r0, _081130D8 ldr r0, [r0] ldrh r0, [r0, 0x1A] cmp r0, 0 beq _081130C6 bl _08113B3A _081130C6: lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r6 ldrh r0, [r4, 0xE] movs r1, 0 bl cry_related b _081132E2 .align 2, 0 _081130D8: .4byte 0x03004828 _081130DC: bl sub_8075374 lsls r0, 24 cmp r0, 0 bne _081130EA bl _08113B3A _081130EA: ldr r0, _08113104 bl m4aSongNumStop movs r0, 0xBC lsls r0, 1 bl audio_play ldr r1, _08113108 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 b _08113298 .align 2, 0 _08113104: .4byte 0x00000179 _08113108: .4byte 0x03004b20 _0811310C: bl mplay_has_finished_maybe lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _0811311C bl _08113B3A _0811311C: ldr r0, _08113144 bl sub_8075474 ldr r1, _08113148 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] str r5, [sp] movs r0, 0x1C movs r1, 0x4 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade bl _08113B3A .align 2, 0 _08113144: .4byte 0x00000179 _08113148: .4byte 0x03004b20 _0811314C: ldr r0, _08113180 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0811315C bl _08113B3A _0811315C: movs r1, 0x80 lsls r1, 19 movs r2, 0x9A lsls r2, 5 adds r0, r2, 0 strh r0, [r1] movs r0, 0x11 bl sub_8149970 ldr r1, _08113184 strb r0, [r1, 0x2] ldr r1, _08113188 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 b _08113298 .align 2, 0 _08113180: .4byte 0x0202f388 _08113184: .4byte 0x02024d1e _08113188: .4byte 0x03004b20 _0811318C: ldr r4, _081131C0 ldrb r0, [r4, 0x2] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r6 ldrb r0, [r1, 0x4] cmp r0, 0 beq _081131A2 bl _08113B3A _081131A2: lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r6 ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] ldr r1, _081131C4 movs r0, 0x1 strb r0, [r1, 0x3] bl sub_8149A90 strb r0, [r4, 0x2] bl _08113B3A .align 2, 0 _081131C0: .4byte 0x02024d1e _081131C4: .4byte 0x02014800 _081131C8: ldr r4, _081131EC ldrb r0, [r4, 0x2] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r6 ldrb r0, [r1, 0x4] cmp r0, 0 beq _081131DE bl _08113B3A _081131DE: ldr r1, _081131F0 ldrb r0, [r1] ldrb r1, [r1, 0x1] bl sub_8149E7C strb r0, [r4, 0x2] b _08113290 .align 2, 0 _081131EC: .4byte 0x02024d1e _081131F0: .4byte 0x02014800 _081131F4: ldr r1, _08113224 ldrb r0, [r1, 0x3] subs r0, 0x1 strb r0, [r1, 0x3] lsls r0, 24 cmp r0, 0 beq _08113206 bl _08113B3A _08113206: movs r0, 0x3 strb r0, [r1, 0x3] ldr r0, _08113228 ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 ldrb r0, [r0, 0x4] cmp r0, 0 beq _08113220 bl _08113B3A _08113220: b _08113290 .align 2, 0 _08113224: .4byte 0x02014800 _08113228: .4byte 0x02024d1e _0811322C: bl sub_8149B44 ldr r1, _08113240 strb r0, [r1, 0x2] ldr r1, _08113244 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 b _08113298 .align 2, 0 _08113240: .4byte 0x02024d1e _08113244: .4byte 0x03004b20 _08113248: ldr r5, _08113270 ldrb r0, [r5, 0x2] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r6 ldrb r0, [r1, 0x4] cmp r0, 0 beq _0811325E bl _08113B3A _0811325E: lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r6 ldrh r0, [r4, 0x10] bl sub_8149D5C strb r0, [r5, 0x2] b _081132E2 .align 2, 0 _08113270: .4byte 0x02024d1e _08113274: ldr r0, _081132A4 ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 ldrb r0, [r0, 0x4] cmp r0, 0 beq _0811328A bl _08113B3A _0811328A: movs r0, 0x21 bl audio_play _08113290: lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r6 _08113298: ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] bl _08113B3A .align 2, 0 _081132A4: .4byte 0x02024d1e _081132A8: bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 bne _081132B6 bl _08113B3A _081132B6: ldr r0, _081132EC lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 ldrh r0, [r4, 0x10] movs r1, 0 bl cry_related ldr r0, _081132F0 ldr r1, _081132F4 movs r2, 0x60 bl memcpy movs r0, 0 str r0, [sp] movs r0, 0x1 movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade _081132E2: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] bl _08113B3A .align 2, 0 _081132EC: .4byte 0x03004b20 _081132F0: .4byte 0x0202eb08 _081132F4: .4byte 0x02009000 _081132F8: bl sub_8075374 lsls r0, 24 cmp r0, 0 bne _08113306 bl _08113B3A _08113306: ldr r0, _08113390 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08113316 bl _08113B3A _08113316: ldr r4, _08113394 ldr r1, _08113398 adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _0811339C ldr r1, [r0] adds r0, r1, 0x4 adds r1, 0x34 ldrb r2, [r1] movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r3, 0x2 bl sub_8002EB0 ldr r0, _081133A0 bl fanfare_play ldr r2, _081133A4 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] adds r2, r1 adds r2, 0x10 mov r0, r8 movs r1, 0xB bl pokemon_setattr mov r0, r8 bl pokemon_calc_effective_stats ldrh r1, [r4, 0xE] ldrh r2, [r4, 0x10] mov r0, r8 bl sub_803FB68 ldrh r0, [r4, 0x10] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x2 bl sub_8090D90 ldrh r0, [r4, 0x10] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl sub_8090D90 movs r0, 0xE bl sav12_xor_increment b _08113B3A .align 2, 0 _08113390: .4byte 0x0202f388 _08113394: .4byte 0x020234cc _08113398: .4byte gUnknown_08400C60 _0811339C: .4byte 0x03004828 _081133A0: .4byte 0x00000173 _081133A4: .4byte 0x03004b20 _081133A8: ldr r0, _08113410 ldr r0, [r0] ldrh r0, [r0, 0x1A] cmp r0, 0 beq _081133B4 b _08113B3A _081133B4: bl task_is_not_running_overworld_fanfare lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081133C2 b _08113B3A _081133C2: ldr r1, _08113414 lsls r4, r7, 2 adds r0, r4, r7 lsls r0, 3 adds r5, r0, r1 ldrb r1, [r5, 0x14] mov r0, r8 bl sub_803B7C8 lsls r0, 16 lsrs r6, r0, 16 mov r9, r4 cmp r6, 0 beq _08113434 movs r3, 0x1E ldrsh r2, [r5, r3] cmp r2, 0 bne _08113434 ldrh r1, [r5, 0x12] movs r0, 0x80 orrs r0, r1 strh r0, [r5, 0x12] strh r2, [r5, 0x14] strh r2, [r5, 0x18] mov r0, r8 movs r1, 0x2 add r2, sp, 0x4 bl PokemonGetField ldr r0, _08113418 add r1, sp, 0x4 bl StringCopy10 ldr r0, _0811341C cmp r6, r0 bne _08113420 movs r0, 0x11 strh r0, [r5, 0x8] b _08113B3A .align 2, 0 _08113410: .4byte 0x03004828 _08113414: .4byte 0x03004b20 _08113418: .4byte 0x030041c0 _0811341C: .4byte 0x0000ffff _08113420: ldr r0, _08113430 cmp r6, r0 bne _08113428 b _08113B3A _08113428: movs r0, 0xF strh r0, [r5, 0x8] b _08113B3A .align 2, 0 _08113430: .4byte 0x0000fffe _08113434: ldr r0, _0811345C bl sub_8075474 ldr r0, _08113460 ldr r2, [r0] adds r0, r2, 0x4 ldr r1, _08113464 adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r0, _08113468 mov r2, r9 adds r1, r2, r7 lsls r1, 3 adds r1, r0 b _081134DC .align 2, 0 _0811345C: .4byte 0x00000179 _08113460: .4byte 0x03004828 _08113464: .4byte gUnknown_0842D1EE _08113468: .4byte 0x03004b20 _0811346C: ldr r0, _08113488 ldr r0, [r0] ldrh r0, [r0, 0x1A] cmp r0, 0 beq _08113478 b _08113B3A _08113478: adds r0, r7, 0 bl DestroyTask ldr r0, _0811348C ldr r0, [r0] bl SetMainCallback2 b _08113B3A .align 2, 0 _08113488: .4byte 0x03004828 _0811348C: .4byte 0x03005e94 _08113490: ldr r4, _081134E4 ldr r0, [r4] ldrh r0, [r0, 0x1A] cmp r0, 0 beq _0811349C b _08113B3A _0811349C: bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 beq _081134A8 b _08113B3A _081134A8: bl sub_8024CEC ldr r0, _081134E8 bl fanfare_play ldr r0, _081134EC ldr r0, [r0, 0xC] bl get_battle_strings_ ldr r2, [r4] adds r0, r2, 0x4 ldr r1, _081134F0 adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r0, _081134F4 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 movs r0, 0x40 strh r0, [r1, 0x14] _081134DC: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _08113B3A .align 2, 0 _081134E4: .4byte 0x03004828 _081134E8: .4byte 0x0000016f _081134EC: .4byte gUnknown_08400F8C _081134F0: .4byte 0x020238cc _081134F4: .4byte 0x03004b20 _081134F8: ldr r0, _08113530 ldr r0, [r0] ldrh r0, [r0, 0x1A] cmp r0, 0 beq _08113504 b _08113B3A _08113504: bl task_is_not_running_overworld_fanfare lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08113512 b _08113B3A _08113512: ldr r0, _08113534 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x14] subs r0, 0x1 strh r0, [r1, 0x14] lsls r0, 16 cmp r0, 0 beq _0811352A b _08113B3A _0811352A: movs r0, 0xD strh r0, [r1, 0x8] b _08113B3A .align 2, 0 _08113530: .4byte 0x03004828 _08113534: .4byte 0x03004b20 _08113538: lsls r1, r7, 2 adds r0, r1, r7 lsls r0, 3 adds r0, r6 movs r3, 0x18 ldrsh r0, [r0, r3] mov r9, r1 cmp r0, 0xB bls _0811354C b _08113B3A _0811354C: lsls r0, 2 ldr r1, _08113558 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08113558: .4byte _0811355C .align 2, 0 _0811355C: .4byte _0811358C .4byte _081135E4 .4byte _08113638 .4byte _08113682 .4byte _0811371C .4byte _0811387C .4byte _081138CC .4byte _081139E8 .4byte _08113A3C .4byte _08113A90 .4byte _08113AD8 .4byte _08113B18 _0811358C: ldr r4, _081135D4 ldr r0, [r4] ldrh r0, [r0, 0x1A] cmp r0, 0 beq _08113598 b _08113B3A _08113598: bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 beq _081135A4 b _08113B3A _081135A4: bl sub_8024CEC ldr r0, _081135D8 ldr r0, [r0, 0x10] bl get_battle_strings_ ldr r2, [r4] adds r0, r2, 0x4 ldr r1, _081135DC adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r0, _081135E0 mov r2, r9 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 b _08113B38 .align 2, 0 _081135D4: .4byte 0x03004828 _081135D8: .4byte gUnknown_08400F8C _081135DC: .4byte 0x020238cc _081135E0: .4byte 0x03004b20 _081135E4: ldr r4, _08113628 ldr r0, [r4] ldrh r0, [r0, 0x1A] cmp r0, 0 beq _081135F0 b _08113B3A _081135F0: bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 beq _081135FC b _08113B3A _081135FC: ldr r0, _0811362C ldr r0, [r0, 0x14] bl get_battle_strings_ ldr r2, [r4] adds r0, r2, 0x4 ldr r1, _08113630 adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r0, _08113634 mov r3, r9 adds r1, r3, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 b _08113B38 .align 2, 0 _08113628: .4byte 0x03004828 _0811362C: .4byte gUnknown_08400F8C _08113630: .4byte 0x020238cc _08113634: .4byte 0x03004b20 _08113638: ldr r4, _081136FC ldr r0, [r4] ldrh r0, [r0, 0x1A] cmp r0, 0 beq _08113644 b _08113B3A _08113644: bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 bne _08113682 ldr r0, _08113700 ldr r0, [r0, 0x18] bl get_battle_strings_ ldr r2, [r4] adds r0, r2, 0x4 ldr r1, _08113704 adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r0, _08113708 mov r2, r9 adds r1, r2, r7 lsls r1, 3 adds r1, r0 movs r0, 0x5 strh r0, [r1, 0x1A] movs r0, 0x9 strh r0, [r1, 0x1C] ldrh r0, [r1, 0x18] adds r0, 0x1 strh r0, [r1, 0x18] _08113682: ldr r5, _081136FC ldr r0, [r5] ldrh r0, [r0, 0x1A] cmp r0, 0 beq _0811368E b _08113B3A _0811368E: bl mplay_has_finished_maybe lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _0811369C b _08113B3A _0811369C: ldr r0, [r5] adds r0, 0x4 movs r1, 0xD str r1, [sp] movs r1, 0x18 movs r2, 0x8 movs r3, 0x1D bl AddTextPrinterParametrized ldr r4, _0811370C strb r6, [r4, 0x1] ldr r2, [r5] adds r0, r2, 0x4 ldr r1, _08113710 adds r2, 0x34 ldrb r2, [r2] adds r2, 0x80 movs r3, 0x9 str r3, [sp] movs r3, 0x19 bl InitWindow ldr r0, [r5] adds r0, 0x4 bl sub_8002F44 ldr r1, _08113714 ldr r3, _08113718 movs r0, 0x20 str r0, [sp] movs r0, 0 movs r2, 0xC bl sub_814A5C0 bl sub_81150D8 ldr r0, _08113708 mov r3, r9 adds r1, r3, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 movs r2, 0 strh r0, [r1, 0x18] strb r2, [r4, 0x1] b _08113B3A .align 2, 0 _081136FC: .4byte 0x03004828 _08113700: .4byte gUnknown_08400F8C _08113704: .4byte 0x020238cc _08113708: .4byte 0x03004b20 _0811370C: .4byte 0x02024d1e _08113710: .4byte gUnknown_0842D1FE _08113714: .4byte 0x0000ffff _08113718: .4byte 0x00002d9f _0811371C: ldr r0, _081137CC ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08113742 ldr r4, _081137D0 ldrb r0, [r4, 0x1] cmp r0, 0 beq _08113742 movs r0, 0x5 bl audio_play bl nullsub_24 movs r0, 0 strb r0, [r4, 0x1] bl sub_81150D8 _08113742: ldr r0, _081137CC ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08113768 ldr r4, _081137D0 ldrb r0, [r4, 0x1] cmp r0, 0 bne _08113768 movs r0, 0x5 bl audio_play bl nullsub_24 movs r0, 0x1 strb r0, [r4, 0x1] bl sub_81150D8 _08113768: ldr r0, _081137CC ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0811380A ldr r4, _081137D4 ldr r0, [r4] adds r0, 0x4 movs r1, 0xD str r1, [sp] movs r1, 0x18 movs r2, 0x8 movs r3, 0x1D bl ZeroFillWindowRect bl sub_814A7FC ldr r0, _081137D8 movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] bl get_battle_strings_ ldr r2, [r4] adds r0, r2, 0x4 ldr r1, _081137DC adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 movs r0, 0x5 bl audio_play ldr r0, _081137D0 ldrb r2, [r0, 0x1] cmp r2, 0 beq _081137E4 ldr r0, _081137E0 mov r2, r9 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x1C] strh r0, [r1, 0x18] b _0811380A .align 2, 0 _081137CC: .4byte 0x03001770 _081137D0: .4byte 0x02024d1e _081137D4: .4byte 0x03004828 _081137D8: .4byte gUnknown_08400F8C _081137DC: .4byte 0x020238cc _081137E0: .4byte 0x03004b20 _081137E4: ldr r0, _08113868 mov r3, r9 adds r1, r3, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x1A] strh r0, [r1, 0x18] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _0811380A movs r0, 0x1 negs r0, r0 str r2, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _0811380A: ldr r0, _0811386C ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08113818 b _08113B3A _08113818: ldr r4, _08113870 ldr r0, [r4] adds r0, 0x4 movs r1, 0xD str r1, [sp] movs r1, 0x18 movs r2, 0x8 movs r3, 0x1D bl ZeroFillWindowRect bl sub_814A7FC ldr r0, _08113874 movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] bl get_battle_strings_ ldr r2, [r4] adds r0, r2, 0x4 ldr r1, _08113878 adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 movs r0, 0x5 bl audio_play ldr r1, _08113868 mov r2, r9 adds r0, r2, r7 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x1C] strh r1, [r0, 0x18] b _08113B3A .align 2, 0 _08113868: .4byte 0x03004b20 _0811386C: .4byte 0x03001770 _08113870: .4byte 0x03004828 _08113874: .4byte gUnknown_08400F8C _08113878: .4byte 0x020238cc _0811387C: ldr r0, _081138B8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0811388A b _08113B3A _0811388A: ldr r0, _081138BC mov r3, r9 adds r5, r3, r7 lsls r5, 3 adds r5, r6 ldrh r1, [r5, 0x20] lsls r1, 24 lsrs r1, 24 ldr r2, _081138C0 ldrb r2, [r2] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, _081138C4 ldr r4, _081138C8 ldrh r4, [r4] str r4, [sp] bl sub_809D9F0 ldrh r0, [r5, 0x18] adds r0, 0x1 strh r0, [r5, 0x18] b _08113B3A .align 2, 0 _081138B8: .4byte 0x0202f388 _081138BC: .4byte 0x03004360 _081138C0: .4byte 0x03004350 _081138C4: .4byte sub_8111E80 _081138C8: .4byte 0x02024e82 _081138CC: ldr r0, _08113900 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081138DA b _08113B3A _081138DA: ldr r0, _08113904 ldr r1, [r0, 0x4] ldr r0, _08113908 cmp r1, r0 beq _081138E6 b _08113B3A _081138E6: bl sub_809FA30 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x4 bne _08113910 ldr r0, _0811390C mov r2, r9 adds r1, r2, r7 lsls r1, 3 adds r1, r0 movs r0, 0x9 b _08113B38 .align 2, 0 _08113900: .4byte 0x0202f388 _08113904: .4byte 0x03001770 _08113908: .4byte sub_8112290 _0811390C: .4byte 0x03004b20 _08113910: adds r1, r6, 0 adds r1, 0xD mov r0, r8 bl PokemonGetField lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl sub_8040A00 cmp r0, 0 beq _08113970 ldr r0, _0811395C ldr r3, _08113960 adds r0, r3 ldr r0, [r0] bl get_battle_strings_ ldr r0, _08113964 ldr r2, [r0] adds r0, r2, 0x4 ldr r1, _08113968 adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r1, _0811396C mov r2, r9 adds r0, r2, r7 lsls r0, 3 adds r0, r1 movs r1, 0xB strh r1, [r0, 0x18] b _08113B3A .align 2, 0 _0811395C: .4byte gUnknown_08400F8C _08113960: .4byte 0x000004cc _08113964: .4byte 0x03004828 _08113968: .4byte 0x020238cc _0811396C: .4byte 0x03004b20 _08113970: ldr r1, _081139D0 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 strb r0, [r1, 0x1] strb r4, [r1, 0x2] lsrs r0, r4, 8 strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] lsls r4, r6, 24 lsrs r4, 24 mov r0, r8 adds r1, r4, 0 bl sub_803DE34 ldr r0, _081139D4 ldrh r1, [r0] mov r0, r8 adds r2, r4, 0 bl sub_803B6A4 ldr r0, _081139D8 movs r3, 0xCF lsls r3, 2 adds r0, r3 ldr r0, [r0] bl get_battle_strings_ ldr r0, _081139DC ldr r2, [r0] adds r0, r2, 0x4 ldr r1, _081139E0 adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r0, _081139E4 mov r2, r9 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 b _08113B38 .align 2, 0 _081139D0: .4byte 0x03004290 _081139D4: .4byte 0x02024e82 _081139D8: .4byte gUnknown_08400F8C _081139DC: .4byte 0x03004828 _081139E0: .4byte 0x020238cc _081139E4: .4byte 0x03004b20 _081139E8: ldr r4, _08113A2C ldr r0, [r4] ldrh r0, [r0, 0x1A] cmp r0, 0 beq _081139F4 b _08113B3A _081139F4: bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 beq _08113A00 b _08113B3A _08113A00: ldr r0, _08113A30 ldr r0, [r0, 0x1C] bl get_battle_strings_ ldr r2, [r4] adds r0, r2, 0x4 ldr r1, _08113A34 adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r0, _08113A38 mov r3, r9 adds r1, r3, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 b _08113B38 .align 2, 0 _08113A2C: .4byte 0x03004828 _08113A30: .4byte gUnknown_08400F8C _08113A34: .4byte 0x020238cc _08113A38: .4byte 0x03004b20 _08113A3C: ldr r4, _08113A80 ldr r0, [r4] ldrh r0, [r0, 0x1A] cmp r0, 0 bne _08113B3A bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 bne _08113B3A ldr r0, _08113A84 movs r1, 0xD0 lsls r1, 2 adds r0, r1 ldr r0, [r0] bl get_battle_strings_ ldr r2, [r4] adds r0, r2, 0x4 ldr r1, _08113A88 adds r2, 0x34 ldrb r2, [r2] movs r4, 0xF str r4, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r1, _08113A8C mov r2, r9 adds r0, r2, r7 lsls r0, 3 adds r0, r1 strh r4, [r0, 0x8] b _08113B3A .align 2, 0 _08113A80: .4byte 0x03004828 _08113A84: .4byte gUnknown_08400F8C _08113A88: .4byte 0x020238cc _08113A8C: .4byte 0x03004b20 _08113A90: ldr r0, _08113AC8 ldr r0, [r0, 0x20] bl get_battle_strings_ ldr r0, _08113ACC ldr r2, [r0] adds r0, r2, 0x4 ldr r1, _08113AD0 adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r1, _08113AD4 mov r3, r9 adds r0, r3, r7 lsls r0, 3 adds r0, r1 movs r2, 0 movs r1, 0xA strh r1, [r0, 0x1A] strh r2, [r0, 0x1C] movs r1, 0x3 strh r1, [r0, 0x18] b _08113B3A .align 2, 0 _08113AC8: .4byte gUnknown_08400F8C _08113ACC: .4byte 0x03004828 _08113AD0: .4byte 0x020238cc _08113AD4: .4byte 0x03004b20 _08113AD8: ldr r0, _08113B08 ldr r0, [r0, 0x24] bl get_battle_strings_ ldr r0, _08113B0C ldr r2, [r0] adds r0, r2, 0x4 ldr r1, _08113B10 adds r2, 0x34 ldrb r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 ldr r1, _08113B14 mov r2, r9 adds r0, r2, r7 lsls r0, 3 adds r0, r1 movs r1, 0xD strh r1, [r0, 0x8] b _08113B3A .align 2, 0 _08113B08: .4byte gUnknown_08400F8C _08113B0C: .4byte 0x03004828 _08113B10: .4byte 0x020238cc _08113B14: .4byte 0x03004b20 _08113B18: ldr r0, _08113B48 ldr r0, [r0] ldrh r0, [r0, 0x1A] cmp r0, 0 bne _08113B3A bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 bne _08113B3A ldr r0, _08113B4C mov r3, r9 adds r1, r3, r7 lsls r1, 3 adds r1, r0 movs r0, 0x5 _08113B38: strh r0, [r1, 0x18] _08113B3A: add sp, 0x18 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08113B48: .4byte 0x03004828 _08113B4C: .4byte 0x03004b20 thumb_func_end sub_8112FE8 thumb_func_start unref_sub_8113B50 unref_sub_8113B50: @ 8113B50 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x3C str r0, [sp] str r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] movs r1, 0 str r1, [sp, 0x10] movs r2, 0 str r2, [sp, 0x8] ldr r3, _08113C60 mov r12, r3 ldr r4, _08113C64 add r4, r12 mov r10, r4 ldr r5, _08113C68 add r5, r12 mov r8, r5 _08113B7C: adds r0, r3, 0 adds r0, 0x84 ldr r1, [sp, 0x8] adds r0, r1, r0 strb r2, [r0] adds r0, r3, 0x4 adds r0, r1, r0 strb r2, [r0] ldr r4, _08113C6C adds r0, r1, r4 strb r2, [r0] movs r6, 0 lsls r1, 5 mov r9, r1 ldr r5, [sp, 0x8] lsls r4, r5, 6 _08113B9C: mov r0, r9 adds r1, r6, r0 ldr r5, _08113C70 adds r0, r1, r5 strb r2, [r0] mov r5, r10 adds r0, r1, r5 strb r2, [r0] mov r5, r8 adds r0, r1, r5 strb r2, [r0] ldr r5, _08113C74 adds r0, r1, r5 strb r2, [r0] adds r7, r3, 0 adds r7, 0xC4 adds r0, r1, r7 strb r2, [r0] ldr r5, _08113C78 adds r0, r3, r5 adds r0, r1, r0 strb r2, [r0] ldr r5, _08113C7C adds r0, r3, r5 adds r0, r1, r0 strb r2, [r0] ldr r5, _08113C80 adds r0, r3, r5 adds r1, r0 strb r2, [r1] lsls r1, r6, 1 adds r1, r4 ldr r5, _08113C84 adds r0, r3, r5 adds r0, r1, r0 strh r2, [r0] ldr r5, _08113C88 adds r0, r3, r5 adds r0, r1, r0 strh r2, [r0] ldr r5, _08113C8C adds r0, r3, r5 adds r0, r1, r0 strh r2, [r0] ldr r5, _08113C90 adds r0, r3, r5 adds r1, r0 strh r2, [r1] adds r6, 0x1 cmp r6, 0x1F ble _08113B9C ldr r0, [sp, 0x8] adds r0, 0x1 str r0, [sp, 0x8] cmp r0, 0x3F ble _08113B7C ldr r1, _08113C94 add r1, r12 movs r0, 0x40 strb r0, [r1] movs r1, 0 mov r8, r1 movs r2, 0 str r2, [sp, 0x8] movs r3, 0x80 lsls r3, 5 adds r3, r7 mov r12, r3 movs r4, 0xC0 lsls r4, 5 adds r4, r7 mov r9, r4 movs r5, 0 adds r4, r7, 0 subs r4, 0xC0 _08113C32: movs r3, 0 ldr r2, [sp] add r2, r8 movs r6, 0 ldr r0, [sp, 0x8] adds r0, 0x1 str r0, [sp, 0x30] ldr r1, [sp, 0x8] lsls r1, 7 mov r10, r1 movs r7, 0x1 negs r7, r7 _08113C4A: asrs r0, r6, 1 lsls r0, 2 add r0, r10 ldr r1, _08113C98 adds r0, r1 str r2, [r0] cmp r3, 0 beq _08113C9C cmp r3, 0x1 beq _08113CC6 b _08113CF4 .align 2, 0 _08113C60: .4byte 0x02014800 _08113C64: .4byte 0x000018c4 _08113C68: .4byte 0x000020c4 _08113C6C: .4byte 0x02014844 _08113C70: .4byte 0x020158c4 _08113C74: .4byte 0x020170c4 _08113C78: .4byte 0x000008c4 _08113C7C: .4byte 0x000030c4 _08113C80: .4byte 0x000038c4 _08113C84: .4byte 0x000060c4 _08113C88: .4byte 0x000070c4 _08113C8C: .4byte 0x000080c4 _08113C90: .4byte 0x000090c4 _08113C94: .4byte 0x0000a0c4 _08113C98: .4byte 0x020188c4 _08113C9C: movs r0, 0x1 ands r0, r6 cmp r0, 0 beq _08113CAA cmp r0, 0x1 beq _08113CB0 b _08113CF4 _08113CAA: ldrb r1, [r2] movs r0, 0xF b _08113CB4 _08113CB0: ldrb r1, [r2] movs r0, 0xF0 _08113CB4: ands r0, r1 cmp r0, 0 beq _08113CF4 ldrb r0, [r4] adds r0, r5 add r0, r12 strb r6, [r0] movs r3, 0x1 b _08113CF4 _08113CC6: adds r0, r6, 0 ands r0, r3 cmp r0, 0 beq _08113CD4 cmp r0, 0x1 beq _08113CDA b _08113CF4 _08113CD4: ldrb r1, [r2] movs r0, 0xF b _08113CDE _08113CDA: ldrb r1, [r2] movs r0, 0xF0 _08113CDE: ands r0, r1 cmp r0, 0 bne _08113CF4 ldrb r0, [r4] adds r0, r5 add r0, r9 strb r7, [r0] ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r3, 0 _08113CF4: adds r0, r6, 0x1 movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _08113D02 adds r2, 0x1D b _08113D0C _08113D02: movs r0, 0x1 ands r0, r6 cmp r0, 0 beq _08113D0C adds r2, 0x1 _08113D0C: adds r7, 0x1 adds r6, 0x1 cmp r6, 0x3F ble _08113C4A cmp r3, 0 beq _08113D26 ldrb r0, [r4] adds r0, r5 add r0, r9 strb r6, [r0] ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _08113D26: movs r0, 0x7 ldr r2, [sp, 0x30] ands r2, r0 cmp r2, 0 bne _08113D36 movs r3, 0xE4 add r8, r3 b _08113D3A _08113D36: movs r0, 0x4 add r8, r0 _08113D3A: adds r5, 0x20 adds r4, 0x1 ldr r1, [sp, 0x8] adds r1, 0x1 str r1, [sp, 0x8] cmp r1, 0x3F bgt _08113D4A b _08113C32 _08113D4A: movs r2, 0 mov r8, r2 movs r3, 0 str r3, [sp, 0x8] ldr r0, _08113D84 movs r4, 0x82 lsls r4, 6 adds r4, r0 mov r10, r4 movs r5, 0xA2 lsls r5, 6 adds r7, r0, r5 movs r5, 0 adds r4, r0, 0 movs r0, 0x1 mov r9, r0 _08113D6A: movs r3, 0 ldr r2, [sp, 0x4] add r2, r8 movs r6, 0 ldr r1, [sp, 0x8] adds r1, 0x1 str r1, [sp, 0x30] _08113D78: cmp r3, 0 beq _08113D88 cmp r3, 0x1 beq _08113DB4 b _08113DE4 .align 2, 0 _08113D84: .4byte 0x02014844 _08113D88: adds r0, r6, 0 mov r1, r9 ands r0, r1 cmp r0, 0 beq _08113D98 cmp r0, 0x1 beq _08113D9E b _08113DE4 _08113D98: ldrb r1, [r2] movs r0, 0xF b _08113DA2 _08113D9E: ldrb r1, [r2] movs r0, 0xF0 _08113DA2: ands r0, r1 cmp r0, 0 beq _08113DE4 ldrb r0, [r4] adds r0, r5 add r0, r10 strb r6, [r0] movs r3, 0x1 b _08113DE4 _08113DB4: adds r0, r6, 0 ands r0, r3 cmp r0, 0 beq _08113DC2 cmp r0, 0x1 beq _08113DC8 b _08113DE4 _08113DC2: ldrb r1, [r2] movs r0, 0xF b _08113DCC _08113DC8: ldrb r1, [r2] movs r0, 0xF0 _08113DCC: ands r0, r1 cmp r0, 0 bne _08113DE4 ldrb r0, [r4] adds r0, r5 adds r0, r7 subs r1, r6, 0x1 strb r1, [r0] ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r3, 0 _08113DE4: adds r1, r6, 0x1 movs r0, 0x7 ands r0, r1 cmp r0, 0 bne _08113DF2 adds r2, 0x1D b _08113DFC _08113DF2: mov r0, r9 ands r6, r0 cmp r6, 0 beq _08113DFC adds r2, 0x1 _08113DFC: adds r6, r1, 0 cmp r6, 0x3F ble _08113D78 cmp r3, 0 beq _08113E14 ldrb r0, [r4] adds r0, r5 adds r0, r7 strb r6, [r0] ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _08113E14: movs r0, 0x7 ldr r1, [sp, 0x30] ands r1, r0 cmp r1, 0 bne _08113E24 movs r2, 0xE4 add r8, r2 b _08113E28 _08113E24: movs r3, 0x4 add r8, r3 _08113E28: adds r5, 0x20 adds r4, 0x1 ldr r0, [sp, 0x8] adds r0, 0x1 str r0, [sp, 0x8] cmp r0, 0x3F ble _08113D6A movs r1, 0 str r1, [sp, 0x8] _08113E3A: ldr r3, [sp, 0x8] ldr r4, _08113EBC adds r2, r3, r4 ldr r5, _08113EC0 adds r1, r3, r5 ldrb r0, [r2] adds r3, 0x1 str r3, [sp, 0x30] ldrb r1, [r1] cmp r0, r1 bcc _08113E52 b _08113F9E _08113E52: movs r0, 0 str r0, [sp, 0xC] ldrb r2, [r2] cmp r0, r2 bge _08113F54 ldr r0, _08113EC4 adds r0, 0x4 ldr r1, [sp, 0x8] adds r0, r1, r0 str r0, [sp, 0x18] _08113E66: movs r2, 0x80 lsls r2, 1 str r2, [sp, 0x14] movs r6, 0 ldr r3, [sp, 0x8] ldr r4, _08113EC0 adds r0, r3, r4 ldr r5, [sp, 0xC] adds r5, 0x1 str r5, [sp, 0x34] ldrb r0, [r0] cmp r6, r0 bge _08113F3E ldr r0, _08113EC4 mov r10, r0 lsls r0, r3, 5 ldr r2, [sp, 0xC] adds r1, r2, r0 mov r9, r0 ldr r0, _08113EC4 adds r0, 0xC4 mov r3, r9 adds r7, r3, r0 mov r5, r9 ldr r4, _08113EC4 ldr r2, _08113EC8 adds r0, r4, r2 adds r1, r0 mov r8, r1 ldrb r3, [r1] str r3, [sp, 0x1C] _08113EA4: ldr r0, _08113ECC add r0, r10 adds r0, r5, r0 ldr r4, [sp, 0x1C] ldrb r1, [r0] cmp r4, r1 bls _08113ED0 mov r2, r8 ldrb r1, [r2] ldrb r0, [r0] b _08113ED6 .align 2, 0 _08113EBC: .4byte 0x02014804 _08113EC0: .4byte 0x02014844 _08113EC4: .4byte 0x02014800 _08113EC8: .4byte 0x000010c4 _08113ECC: .4byte 0x000020c4 _08113ED0: ldrb r1, [r0] mov r3, r8 ldrb r0, [r3] _08113ED6: subs r3, r1, r0 ldr r1, [sp, 0xC] add r1, r9 ldr r0, _08113EFC add r0, r10 adds r4, r1, r0 ldr r0, _08113F00 add r0, r10 adds r2, r5, r0 ldrb r0, [r4] ldr r1, _08113F04 mov r12, r1 ldrb r1, [r2] cmp r0, r1 bls _08113F08 adds r1, r0, 0 ldrb r0, [r2] b _08113F0C .align 2, 0 _08113EFC: .4byte 0x000018c4 _08113F00: .4byte 0x000028c4 _08113F04: .4byte 0x02014800 _08113F08: ldrb r1, [r2] ldrb r0, [r4] _08113F0C: subs r1, r0 adds r3, r1 ldr r2, [sp, 0x14] cmp r2, r3 ble _08113F2C ldrb r0, [r7] cmp r0, 0 bne _08113F2C ldr r0, _08114050 add r0, r12 adds r0, r5, r0 ldrb r0, [r0] cmp r0, 0 bne _08113F2C str r6, [sp, 0x10] str r3, [sp, 0x14] _08113F2C: adds r7, 0x1 adds r5, 0x1 adds r6, 0x1 ldr r3, [sp, 0x8] ldr r4, _08114054 adds r0, r3, r4 ldrb r0, [r0] cmp r6, r0 blt _08113EA4 _08113F3E: ldr r0, [sp, 0xC] ldr r1, [sp, 0x10] ldr r2, [sp, 0x8] bl sub_81141F0 ldr r5, [sp, 0x34] str r5, [sp, 0xC] ldr r0, [sp, 0x18] ldrb r0, [r0] cmp r5, r0 blt _08113E66 _08113F54: movs r6, 0 ldr r2, _08114058 ldr r1, [sp, 0x8] ldr r3, _08114054 adds r0, r1, r3 adds r4, r2, 0 mov r12, r4 ldrb r0, [r0] cmp r6, r0 bge _08113F9E mov r0, r12 adds r0, 0x44 adds r4, r1, r0 _08113F6E: ldr r5, [sp, 0x8] lsls r0, r5, 5 adds r1, r6, r0 adds r0, r2, 0 adds r0, 0xC4 adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0 bne _08113F94 ldr r3, _08114050 adds r0, r2, r3 adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0 bne _08113F94 adds r0, r6, 0 adds r1, r5, 0 bl sub_811430C _08113F94: adds r6, 0x1 ldr r2, _08114058 ldrb r5, [r4] cmp r6, r5 blt _08113F6E _08113F9E: ldr r0, [sp, 0x8] ldr r1, _0811405C adds r2, r0, r1 ldr r3, _08114054 adds r1, r0, r3 ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 bne _08113FCC movs r6, 0 ldrb r4, [r2] cmp r6, r4 bge _08113FCC adds r4, r2, 0 _08113FBA: adds r0, r6, 0 adds r1, r6, 0 ldr r2, [sp, 0x8] bl sub_81141F0 adds r6, 0x1 ldrb r5, [r4] cmp r6, r5 blt _08113FBA _08113FCC: ldr r0, [sp, 0x8] ldr r1, _0811405C adds r2, r0, r1 ldr r3, _08114054 adds r1, r0, r3 ldrb r0, [r2] ldr r4, _08114058 ldrb r5, [r1] cmp r0, r5 bhi _08113FE2 b _081141C4 _08113FE2: movs r0, 0 str r0, [sp, 0x10] ldrb r1, [r1] cmp r0, r1 blt _08113FEE b _08114104 _08113FEE: str r2, [sp, 0x2C] ldr r1, [sp, 0x8] lsls r1, 5 mov r9, r1 adds r0, r4, 0 adds r0, 0x44 ldr r2, [sp, 0x8] adds r0, r2, r0 str r0, [sp, 0x20] mov r3, r9 str r3, [sp, 0x24] _08114004: movs r4, 0x80 lsls r4, 1 str r4, [sp, 0x14] movs r6, 0 ldr r5, [sp, 0x10] adds r5, 0x1 str r5, [sp, 0x38] ldr r0, [sp, 0x2C] ldrb r0, [r0] cmp r6, r0 bge _081140C4 ldr r1, [sp, 0x10] ldr r2, [sp, 0x24] adds r1, r2 mov r10, r1 ldr r0, _08114058 adds r0, 0xC4 adds r2, r0 mov r8, r2 ldr r7, [sp, 0x24] ldr r3, _08114058 ldr r4, _08114060 adds r0, r3, r4 adds r5, r7, r0 ldr r0, _08114064 add r0, r10 mov r12, r0 ldrb r1, [r0] str r1, [sp, 0x28] _0811403E: ldrb r0, [r5] ldr r2, [sp, 0x28] cmp r0, r2 bls _08114068 adds r1, r0, 0 mov r3, r12 ldrb r0, [r3] b _0811406E .align 2, 0 _08114050: .4byte 0x000008c4 _08114054: .4byte 0x02014844 _08114058: .4byte 0x02014800 _0811405C: .4byte 0x02014804 _08114060: .4byte 0x000010c4 _08114064: .4byte 0x020168c4 _08114068: mov r4, r12 ldrb r1, [r4] ldrb r0, [r5] _0811406E: subs r3, r1, r0 ldr r1, _0811408C ldr r2, _08114090 adds r0, r1, r2 adds r4, r7, r0 ldr r2, _08114094 add r2, r10 ldrb r0, [r4] ldrb r1, [r2] cmp r0, r1 bls _08114098 adds r1, r0, 0 ldrb r0, [r2] b _0811409C .align 2, 0 _0811408C: .4byte 0x02014800 _08114090: .4byte 0x000018c4 _08114094: .4byte 0x020170c4 _08114098: ldrb r1, [r2] ldrb r0, [r4] _0811409C: subs r1, r0 adds r3, r1 ldr r2, [sp, 0x14] cmp r2, r3 ble _081140B2 mov r4, r8 ldrb r0, [r4] cmp r0, 0 bne _081140B2 str r6, [sp, 0xC] str r3, [sp, 0x14] _081140B2: movs r0, 0x1 add r8, r0 adds r7, 0x1 adds r5, 0x1 adds r6, 0x1 ldr r1, [sp, 0x2C] ldrb r1, [r1] cmp r6, r1 blt _0811403E _081140C4: ldr r3, [sp, 0xC] add r3, r9 ldr r2, _08114164 ldr r4, _08114168 adds r1, r2, r4 adds r1, r3, r1 ldr r2, [sp, 0x10] add r2, r9 ldr r5, _0811416C adds r0, r2, r5 ldrb r0, [r0] strb r0, [r1] ldr r0, _08114164 ldr r4, _08114170 adds r1, r0, r4 adds r1, r3, r1 ldr r5, _08114174 adds r2, r5 ldrb r0, [r2] strb r0, [r1] ldr r0, _08114164 adds r0, 0xC4 adds r3, r0 movs r0, 0x1 strb r0, [r3] ldr r0, [sp, 0x38] str r0, [sp, 0x10] ldr r1, [sp, 0x20] ldrb r1, [r1] cmp r0, r1 bge _08114104 b _08114004 _08114104: movs r6, 0 ldr r4, _08114164 ldr r2, [sp, 0x8] ldr r3, _08114178 adds r0, r2, r3 ldrb r0, [r0] cmp r6, r0 bge _081141C4 adds r7, r4, 0 mov r9, r6 movs r5, 0xC4 adds r5, r7 mov r8, r5 _0811411E: ldr r1, [sp, 0x8] lsls r0, r1, 5 adds r2, r6, r0 ldr r3, _0811417C adds r0, r7, r3 adds r0, r2 mov r10, r0 ldr r5, _08114168 adds r0, r7, r5 adds r0, r2, r0 ldrb r0, [r0] mov r1, r10 strb r0, [r1] ldr r3, _08114180 adds r0, r7, r3 adds r3, r2, r0 ldr r5, _08114170 adds r0, r7, r5 adds r0, r2, r0 ldrb r0, [r0] strb r0, [r3] mov r0, r8 adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0 beq _08114184 mov r2, r9 strb r2, [r1] adds r0, r6, 0 adds r1, r6, 0 ldr r2, [sp, 0x8] bl sub_81141F0 b _081141B4 .align 2, 0 _08114164: .4byte 0x02014800 _08114168: .4byte 0x000030c4 _0811416C: .4byte 0x020168c4 _08114170: .4byte 0x000038c4 _08114174: .4byte 0x020170c4 _08114178: .4byte 0x02014804 _0811417C: .4byte 0x000020c4 _08114180: .4byte 0x000028c4 _08114184: ldr r5, _081141E0 adds r1, r4, r5 adds r1, r2, r1 ldr r5, _081141E4 adds r0, r4, r5 adds r0, r2, r0 ldrb r0, [r0] ldrb r2, [r1] subs r0, r2 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r2, r0 strb r2, [r3] mov r0, r10 strb r2, [r0] ldrb r0, [r3] subs r0, 0x1 strb r0, [r3] adds r0, r6, 0 adds r1, r6, 0 ldr r2, [sp, 0x8] bl sub_81141F0 _081141B4: adds r6, 0x1 ldr r4, _081141E8 ldr r1, [sp, 0x8] ldr r2, _081141EC adds r0, r1, r2 ldrb r0, [r0] cmp r6, r0 blt _0811411E _081141C4: ldr r3, [sp, 0x30] str r3, [sp, 0x8] cmp r3, 0x3F bgt _081141CE b _08113E3A _081141CE: add sp, 0x3C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081141E0: .4byte 0x000010c4 _081141E4: .4byte 0x000018c4 _081141E8: .4byte 0x02014800 _081141EC: .4byte 0x02014804 thumb_func_end unref_sub_8113B50 thumb_func_start sub_81141F0 sub_81141F0: @ 81141F0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r6, r0, 0 mov r8, r1 mov r9, r2 ldr r3, _0811424C lsls r1, r2, 5 mov r0, r8 adds r4, r0, r1 ldr r5, _08114250 adds r2, r3, r5 adds r2, r4, r2 adds r1, r6, r1 ldr r7, _08114254 adds r0, r3, r7 adds r5, r1, r0 ldrb r0, [r5] strb r0, [r2] ldr r0, _08114258 adds r2, r3, r0 adds r2, r4, r2 ldr r7, _0811425C adds r0, r3, r7 adds r1, r0 ldrb r0, [r1] strb r0, [r2] movs r7, 0 ldr r1, _08114260 adds r0, r3, r1 adds r2, r4, r0 ldrb r1, [r5] ldrb r0, [r2] mov r12, r3 cmp r1, r0 bcs _08114264 mov r0, r12 adds r0, 0xC4 adds r0, r4, r0 movs r1, 0x4 strb r1, [r0] ldrb r1, [r2] ldrb r0, [r5] b _08114276 .align 2, 0 _0811424C: .4byte 0x02014800 _08114250: .4byte 0x000030c4 _08114254: .4byte 0x000010c4 _08114258: .4byte 0x000038c4 _0811425C: .4byte 0x000018c4 _08114260: .4byte 0x000020c4 _08114264: cmp r1, r0 bls _08114278 mov r0, r12 adds r0, 0xC4 adds r0, r4, r0 movs r1, 0x1 strb r1, [r0] ldrb r1, [r5] ldrb r0, [r2] _08114276: subs r7, r1, r0 _08114278: mov r5, r8 lsls r3, r5, 1 mov r0, r9 lsls r4, r0, 6 adds r0, r3, r4 ldr r1, _081142BC add r1, r12 adds r0, r1 lsls r1, r7, 4 strh r1, [r0] movs r7, 0 mov r1, r9 lsls r2, r1, 5 adds r1, r6, r2 ldr r0, _081142C0 add r0, r12 adds r6, r1, r0 adds r1, r5, r2 ldr r0, _081142C4 add r0, r12 adds r5, r1, r0 ldrb r2, [r6] ldrb r0, [r5] cmp r2, r0 bcs _081142CC ldr r0, _081142C8 add r0, r12 adds r0, r1, r0 movs r1, 0x3 strb r1, [r0] ldrb r1, [r5] ldrb r0, [r6] b _081142DE .align 2, 0 _081142BC: .4byte 0x000080c4 _081142C0: .4byte 0x000018c4 _081142C4: .4byte 0x000028c4 _081142C8: .4byte 0x000008c4 _081142CC: cmp r2, r0 bls _081142E0 ldr r0, _08114304 add r0, r12 adds r0, r1, r0 movs r1, 0x2 strb r1, [r0] ldrb r1, [r6] ldrb r0, [r5] _081142DE: subs r7, r1, r0 _081142E0: adds r0, r3, r4 ldr r1, _08114308 add r1, r12 adds r0, r1 lsls r1, r7, 4 strh r1, [r0] mov r1, r12 adds r1, 0x84 add r1, r9 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08114304: .4byte 0x000008c4 _08114308: .4byte 0x000090c4 thumb_func_end sub_81141F0 thumb_func_start sub_811430C sub_811430C: @ 811430C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r5, _081143AC lsls r4, r1, 5 adds r4, r0, r4 ldr r2, _081143B0 adds r2, r5 mov r10, r2 add r10, r4 mov r3, r10 ldrb r2, [r3] ldr r6, _081143B4 adds r6, r5 mov r8, r6 add r8, r4 mov r6, r8 ldrb r3, [r6] subs r7, r2, r3 ldr r2, _081143B8 adds r6, r5, r2 adds r6, r4, r6 ldr r2, _081143BC adds r2, r5 mov r9, r2 add r9, r4 lsrs r2, r7, 31 adds r2, r7, r2 asrs r2, 1 adds r3, r2 mov r2, r9 strb r3, [r2] strb r3, [r6] adds r2, r5, 0 adds r2, 0xC4 adds r2, r4, r2 movs r3, 0x5 strb r3, [r2] ldr r3, _081143C0 adds r2, r5, r3 adds r4, r2 movs r2, 0x7 strb r2, [r4] adds r3, r5, 0 adds r3, 0x84 adds r3, r1, r3 ldrb r2, [r3] adds r2, 0x1 strb r2, [r3] ldrb r3, [r6] mov r4, r8 ldrb r2, [r4] subs r7, r3, r2 lsls r0, 1 lsls r1, 6 adds r0, r1 ldr r6, _081143C4 adds r1, r5, r6 adds r1, r0, r1 lsls r2, r7, 4 strh r2, [r1] mov r1, r10 ldrb r2, [r1] mov r3, r9 ldrb r1, [r3] subs r7, r2, r1 ldr r4, _081143C8 adds r5, r4 adds r0, r5 lsls r1, r7, 4 strh r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081143AC: .4byte 0x02014800 _081143B0: .4byte 0x000028c4 _081143B4: .4byte 0x000020c4 _081143B8: .4byte 0x000030c4 _081143BC: .4byte 0x000038c4 _081143C0: .4byte 0x000008c4 _081143C4: .4byte 0x000080c4 _081143C8: .4byte 0x000090c4 thumb_func_end sub_811430C thumb_func_start unref_sub_81143CC unref_sub_81143CC: @ 81143CC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 movs r0, 0x1 str r0, [sp, 0x4] ldr r0, _08114408 ldr r2, _0811440C adds r1, r0, r2 ldrb r3, [r1] adds r4, r0, 0 cmp r3, 0 beq _081143EE subs r0, r3, 0x1 strb r0, [r1] _081143EE: movs r5, 0 str r5, [sp] _081143F2: movs r3, 0 adds r2, r4, 0 adds r0, r4, 0 adds r0, 0x84 ldr r1, [sp] adds r0, r1, r0 adds r1, 0x1 str r1, [sp, 0x8] bl _08114D84 .align 2, 0 _08114408: .4byte 0x02014800 _0811440C: .4byte 0x0000a0c4 _08114410: ldr r5, [sp] lsls r0, r5, 5 adds r1, r3, r0 adds r2, 0xC4 adds r1, r2 ldrb r2, [r1] mov r8, r0 adds r0, r3, 0x1 mov r10, r0 cmp r2, 0xC bls _08114428 b _081148D2 _08114428: lsls r0, r2, 2 ldr r1, _08114434 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08114434: .4byte _08114438 .align 2, 0 _08114438: .4byte _081148D2 .4byte _0811446C .4byte _081144F0 .4byte _0811457C .4byte _08114600 .4byte _0811468C .4byte _081146C8 .4byte _08114704 .4byte _08114740 .4byte _0811477C .4byte _081147D0 .4byte _08114810 .4byte _08114858 _0811446C: movs r1, 0 str r1, [sp, 0x4] lsls r0, r3, 1 ldr r2, [sp] lsls r1, r2, 6 adds r0, r1 ldr r5, _081144E0 adds r2, r4, r5 adds r2, r0, r2 ldr r5, _081144E4 adds r1, r4, r5 adds r0, r1 ldrh r1, [r0] ldrh r0, [r2] adds r1, r0 movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r5, r0, 8 movs r0, 0xFF ands r1, r0 strh r1, [r2] movs r6, 0 adds r1, r3, 0x1 mov r10, r1 ldr r2, [sp, 0x4] cmp r2, r5 blt _081144A6 b _081148D2 _081144A6: mov r9, r4 mov r4, r8 adds r7, r3, r4 ldr r0, _081144E8 add r0, r9 adds r4, r7, r0 ldr r0, _081144EC add r0, r9 adds r2, r7, r0 _081144B8: ldrb r0, [r4] subs r0, 0x1 strb r0, [r4] ldrb r1, [r4] ldr r0, [sp] str r2, [sp, 0xC] str r3, [sp, 0x10] bl sub_8114DB4 ldrb r0, [r4] ldr r2, [sp, 0xC] ldr r3, [sp, 0x10] ldrb r1, [r2] cmp r0, r1 bne _081144D8 b _081148A0 _081144D8: adds r6, 0x1 cmp r6, r5 blt _081144B8 b _081148D2 .align 2, 0 _081144E0: .4byte 0x000060c4 _081144E4: .4byte 0x000080c4 _081144E8: .4byte 0x000030c4 _081144EC: .4byte 0x000020c4 _081144F0: movs r2, 0 str r2, [sp, 0x4] ldr r4, _08114568 lsls r0, r3, 1 ldr r5, [sp] lsls r1, r5, 6 adds r0, r1 ldr r1, _0811456C adds r2, r4, r1 adds r2, r0, r2 ldr r5, _08114570 adds r1, r4, r5 adds r0, r1 ldrh r1, [r0] ldrh r0, [r2] adds r1, r0 movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r5, r0, 8 movs r0, 0xFF ands r1, r0 strh r1, [r2] movs r6, 0 adds r1, r3, 0x1 mov r10, r1 ldr r2, [sp, 0x4] cmp r2, r5 blt _0811452C b _081148D2 _0811452C: mov r9, r4 mov r4, r8 adds r7, r3, r4 ldr r0, _08114574 add r0, r9 adds r4, r7, r0 ldr r0, _08114578 add r0, r9 adds r2, r7, r0 _0811453E: ldrb r0, [r4] ldrb r1, [r2] cmp r0, r1 bne _08114548 b _081148B8 _08114548: adds r1, r0, 0 ldr r0, [sp] str r2, [sp, 0xC] str r3, [sp, 0x10] bl sub_8114DF0 ldrb r0, [r4] subs r0, 0x1 strb r0, [r4] adds r6, 0x1 ldr r2, [sp, 0xC] ldr r3, [sp, 0x10] cmp r6, r5 blt _0811453E b _081148D2 .align 2, 0 _08114568: .4byte 0x02014800 _0811456C: .4byte 0x000060c4 _08114570: .4byte 0x000080c4 _08114574: .4byte 0x000030c4 _08114578: .4byte 0x000020c4 _0811457C: movs r2, 0 str r2, [sp, 0x4] lsls r0, r3, 1 ldr r5, [sp] lsls r1, r5, 6 adds r0, r1 ldr r1, _081145F0 adds r2, r4, r1 adds r2, r0, r2 ldr r5, _081145F4 adds r1, r4, r5 adds r0, r1 ldrh r1, [r0] ldrh r0, [r2] adds r1, r0 movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r5, r0, 8 movs r0, 0xFF ands r1, r0 strh r1, [r2] movs r6, 0 adds r1, r3, 0x1 mov r10, r1 ldr r2, [sp, 0x4] cmp r2, r5 blt _081145B6 b _081148D2 _081145B6: mov r9, r4 mov r4, r8 adds r7, r3, r4 ldr r0, _081145F8 add r0, r9 adds r4, r7, r0 ldr r0, _081145FC add r0, r9 adds r2, r7, r0 _081145C8: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldrb r1, [r4] ldr r0, [sp] str r2, [sp, 0xC] str r3, [sp, 0x10] bl sub_8114DB4 ldrb r0, [r4] ldr r2, [sp, 0xC] ldr r3, [sp, 0x10] ldrb r1, [r2] cmp r0, r1 bne _081145E8 b _081148AC _081145E8: adds r6, 0x1 cmp r6, r5 blt _081145C8 b _081148D2 .align 2, 0 _081145F0: .4byte 0x000060c4 _081145F4: .4byte 0x000080c4 _081145F8: .4byte 0x000030c4 _081145FC: .4byte 0x000020c4 _08114600: movs r2, 0 str r2, [sp, 0x4] ldr r4, _08114678 lsls r0, r3, 1 ldr r5, [sp] lsls r1, r5, 6 adds r0, r1 ldr r1, _0811467C adds r2, r4, r1 adds r2, r0, r2 ldr r5, _08114680 adds r1, r4, r5 adds r0, r1 ldrh r1, [r0] ldrh r0, [r2] adds r1, r0 movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r5, r0, 8 movs r0, 0xFF ands r1, r0 strh r1, [r2] movs r6, 0 adds r1, r3, 0x1 mov r10, r1 ldr r2, [sp, 0x4] cmp r2, r5 blt _0811463C b _081148D2 _0811463C: mov r9, r4 mov r4, r8 adds r7, r3, r4 ldr r0, _08114684 add r0, r9 adds r4, r7, r0 ldr r0, _08114688 add r0, r9 adds r2, r7, r0 _0811464E: ldrb r0, [r4] ldrb r1, [r2] cmp r0, r1 bne _08114658 b _081148B8 _08114658: adds r1, r0, 0 ldr r0, [sp] str r2, [sp, 0xC] str r3, [sp, 0x10] bl sub_8114DF0 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] adds r6, 0x1 ldr r2, [sp, 0xC] ldr r3, [sp, 0x10] cmp r6, r5 blt _0811464E b _081148D2 .align 2, 0 _08114678: .4byte 0x02014800 _0811467C: .4byte 0x000060c4 _08114680: .4byte 0x000080c4 _08114684: .4byte 0x000030c4 _08114688: .4byte 0x000020c4 _0811468C: movs r2, 0 str r2, [sp, 0x4] ldr r5, _081146C0 mov r0, r8 adds r4, r3, r0 ldr r1, _081146C4 adds r0, r5, r1 adds r0, r4, r0 ldrb r1, [r0] ldr r0, [sp] str r3, [sp, 0x10] bl sub_8114E48 lsls r0, 24 ldr r3, [sp, 0x10] adds r2, r3, 0x1 mov r10, r2 cmp r0, 0 bne _081146B4 b _081148D2 _081146B4: adds r0, r5, 0 adds r0, 0xC4 adds r0, r4, r0 movs r1, 0x9 strb r1, [r0] b _081148D2 .align 2, 0 _081146C0: .4byte 0x02014800 _081146C4: .4byte 0x000030c4 _081146C8: movs r4, 0 str r4, [sp, 0x4] ldr r5, _081146FC mov r0, r8 adds r4, r3, r0 ldr r1, _08114700 adds r0, r5, r1 adds r0, r4, r0 ldrb r1, [r0] ldr r0, [sp] str r3, [sp, 0x10] bl sub_8114E48 lsls r0, 24 ldr r3, [sp, 0x10] adds r2, r3, 0x1 mov r10, r2 cmp r0, 0 bne _081146F0 b _081148D2 _081146F0: adds r0, r5, 0 adds r0, 0xC4 adds r0, r4, r0 movs r1, 0xA strb r1, [r0] b _081148D2 .align 2, 0 _081146FC: .4byte 0x02014800 _08114700: .4byte 0x000030c4 _08114704: movs r4, 0 str r4, [sp, 0x4] ldr r5, _08114738 mov r0, r8 adds r4, r3, r0 ldr r1, _0811473C adds r0, r5, r1 adds r0, r4, r0 ldrb r1, [r0] ldr r0, [sp] str r3, [sp, 0x10] bl sub_8114E48 lsls r0, 24 ldr r3, [sp, 0x10] adds r2, r3, 0x1 mov r10, r2 cmp r0, 0 bne _0811472C b _081148D2 _0811472C: adds r0, r5, 0 adds r0, 0xC4 adds r0, r4, r0 movs r1, 0xB strb r1, [r0] b _081148D2 .align 2, 0 _08114738: .4byte 0x02014800 _0811473C: .4byte 0x000030c4 _08114740: movs r4, 0 str r4, [sp, 0x4] ldr r5, _08114774 mov r0, r8 adds r4, r3, r0 ldr r1, _08114778 adds r0, r5, r1 adds r0, r4, r0 ldrb r1, [r0] ldr r0, [sp] str r3, [sp, 0x10] bl sub_8114E48 lsls r0, 24 ldr r3, [sp, 0x10] adds r2, r3, 0x1 mov r10, r2 cmp r0, 0 bne _08114768 b _081148D2 _08114768: adds r0, r5, 0 adds r0, 0xC4 adds r0, r4, r0 movs r1, 0xC strb r1, [r0] b _081148D2 .align 2, 0 _08114774: .4byte 0x02014800 _08114778: .4byte 0x000030c4 _0811477C: movs r4, 0 str r4, [sp, 0x4] ldr r6, _081147B4 mov r0, r8 adds r5, r3, r0 ldr r1, _081147B8 adds r4, r6, r1 adds r4, r5, r4 ldrb r1, [r4] ldr r0, [sp] str r3, [sp, 0x10] bl sub_8114DB4 ldr r2, _081147BC adds r0, r6, r2 adds r0, r5, r0 ldrb r1, [r4] ldr r3, [sp, 0x10] ldrb r0, [r0] cmp r1, r0 bne _081147C0 adds r0, r6, 0 adds r0, 0xC4 adds r0, r5, r0 mov r4, sp ldrb r4, [r4, 0x4] strb r4, [r0] b _08114844 .align 2, 0 _081147B4: .4byte 0x02014800 _081147B8: .4byte 0x000030c4 _081147BC: .4byte 0x000020c4 _081147C0: adds r0, r6, 0 adds r0, 0xC4 adds r0, r5, r0 movs r1, 0x1 strb r1, [r0] adds r0, r3, 0x1 mov r10, r0 b _081148D2 _081147D0: movs r1, 0 str r1, [sp, 0x4] ldr r6, _08114804 mov r2, r8 adds r5, r3, r2 ldr r0, _08114808 adds r4, r6, r0 adds r4, r5, r4 ldrb r1, [r4] ldr r0, [sp] str r3, [sp, 0x10] bl sub_8114DF0 ldr r1, _0811480C adds r0, r6, r1 adds r0, r5, r0 ldrb r1, [r4] ldr r3, [sp, 0x10] ldrb r0, [r0] cmp r1, r0 beq _08114882 adds r0, r6, 0 adds r0, 0xC4 adds r0, r5, r0 movs r1, 0x2 b _08114842 .align 2, 0 _08114804: .4byte 0x02014800 _08114808: .4byte 0x000030c4 _0811480C: .4byte 0x000020c4 _08114810: movs r0, 0 str r0, [sp, 0x4] ldr r6, _0811484C mov r1, r8 adds r5, r3, r1 ldr r2, _08114850 adds r4, r6, r2 adds r4, r5, r4 ldrb r1, [r4] ldr r0, [sp] str r3, [sp, 0x10] bl sub_8114DB4 ldr r1, _08114854 adds r0, r6, r1 adds r0, r5, r0 ldrb r1, [r4] ldr r3, [sp, 0x10] ldrb r0, [r0] cmp r1, r0 beq _08114882 adds r0, r6, 0 adds r0, 0xC4 adds r0, r5, r0 movs r1, 0x3 _08114842: strb r1, [r0] _08114844: adds r5, r3, 0x1 mov r10, r5 b _081148D2 .align 2, 0 _0811484C: .4byte 0x02014800 _08114850: .4byte 0x000030c4 _08114854: .4byte 0x000020c4 _08114858: movs r0, 0 str r0, [sp, 0x4] ldr r6, _08114894 mov r1, r8 adds r5, r3, r1 ldr r2, _08114898 adds r4, r6, r2 adds r4, r5, r4 ldrb r1, [r4] ldr r0, [sp] str r3, [sp, 0x10] bl sub_8114DF0 ldr r1, _0811489C adds r0, r6, r1 adds r0, r5, r0 ldrb r1, [r4] ldr r3, [sp, 0x10] ldrb r0, [r0] cmp r1, r0 bne _081148C4 _08114882: adds r0, r6, 0 adds r0, 0xC4 adds r0, r5, r0 mov r2, sp ldrb r2, [r2, 0x4] strb r2, [r0] adds r4, r3, 0x1 mov r10, r4 b _081148D2 .align 2, 0 _08114894: .4byte 0x02014800 _08114898: .4byte 0x000030c4 _0811489C: .4byte 0x000020c4 _081148A0: mov r0, r9 adds r0, 0xC4 adds r0, r7, r0 movs r5, 0 strb r5, [r0] b _081148D2 _081148AC: mov r0, r9 adds r0, 0xC4 adds r0, r7, r0 movs r1, 0 strb r1, [r0] b _081148D2 _081148B8: mov r0, r9 adds r0, 0xC4 adds r0, r7, r0 movs r1, 0 strb r1, [r0] b _081148D2 _081148C4: adds r0, r6, 0 adds r0, 0xC4 adds r0, r5, r0 movs r1, 0x4 strb r1, [r0] adds r2, r3, 0x1 mov r10, r2 _081148D2: ldr r0, _081148F4 mov r4, r8 adds r1, r3, r4 ldr r5, _081148F8 adds r2, r0, r5 adds r1, r2 ldrb r1, [r1] adds r4, r0, 0 cmp r1, 0xC bls _081148E8 b _08114D76 _081148E8: lsls r0, r1, 2 ldr r1, _081148FC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081148F4: .4byte 0x02014800 _081148F8: .4byte 0x000008c4 _081148FC: .4byte _08114900 .align 2, 0 _08114900: .4byte _08114D76 .4byte _08114934 .4byte _081149B8 .4byte _08114A3C .4byte _08114AC0 .4byte _08114B44 .4byte _08114B7C .4byte _08114BB4 .4byte _08114BEC .4byte _08114C24 .4byte _08114C78 .4byte _08114CB8 .4byte _08114CF8 _08114934: movs r0, 0 str r0, [sp, 0x4] lsls r0, r3, 1 ldr r2, [sp] lsls r1, r2, 6 adds r0, r1 ldr r5, _081149A8 adds r2, r4, r5 adds r2, r0, r2 ldr r5, _081149AC adds r1, r4, r5 adds r0, r1 ldrh r1, [r0] ldrh r0, [r2] adds r1, r0 movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r5, r0, 8 movs r0, 0xFF ands r1, r0 strh r1, [r2] movs r6, 0 ldr r1, [sp, 0x4] cmp r1, r5 blt _0811496A b _08114D76 _0811496A: mov r9, r4 mov r2, r8 adds r7, r3, r2 ldr r0, _081149B0 add r0, r9 adds r4, r7, r0 movs r3, 0 ldr r0, _081149B4 add r0, r9 adds r2, r7, r0 _0811497E: ldrb r0, [r4] subs r0, 0x1 strb r0, [r4] ldrb r1, [r4] ldr r0, [sp] str r2, [sp, 0xC] str r3, [sp, 0x10] bl sub_8114DB4 ldrb r0, [r4] ldr r2, [sp, 0xC] ldr r3, [sp, 0x10] ldrb r1, [r2] cmp r0, r1 bne _0811499E b _08114D4C _0811499E: adds r6, 0x1 cmp r6, r5 blt _0811497E b _08114D76 .align 2, 0 _081149A8: .4byte 0x000070c4 _081149AC: .4byte 0x000090c4 _081149B0: .4byte 0x000038c4 _081149B4: .4byte 0x000028c4 _081149B8: movs r2, 0 str r2, [sp, 0x4] ldr r4, _08114A28 lsls r0, r3, 1 ldr r5, [sp] lsls r1, r5, 6 adds r0, r1 ldr r1, _08114A2C adds r2, r4, r1 adds r2, r0, r2 ldr r5, _08114A30 adds r1, r4, r5 adds r0, r1 ldrh r1, [r0] ldrh r0, [r2] adds r1, r0 movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r5, r0, 8 movs r0, 0xFF ands r1, r0 strh r1, [r2] movs r6, 0 ldr r1, [sp, 0x4] cmp r1, r5 blt _081149F0 b _08114D76 _081149F0: mov r9, r4 mov r2, r8 adds r7, r3, r2 ldr r0, _08114A34 add r0, r9 adds r4, r7, r0 ldr r0, _08114A38 add r0, r9 adds r2, r7, r0 _08114A02: ldrb r0, [r4] ldrb r1, [r2] cmp r0, r1 bne _08114A0C b _08114D3C _08114A0C: adds r1, r0, 0 ldr r0, [sp] str r2, [sp, 0xC] bl sub_8114DF0 ldrb r0, [r4] subs r0, 0x1 strb r0, [r4] adds r6, 0x1 ldr r2, [sp, 0xC] cmp r6, r5 blt _08114A02 b _08114D76 .align 2, 0 _08114A28: .4byte 0x02014800 _08114A2C: .4byte 0x000070c4 _08114A30: .4byte 0x000090c4 _08114A34: .4byte 0x000038c4 _08114A38: .4byte 0x000028c4 _08114A3C: movs r2, 0 str r2, [sp, 0x4] lsls r0, r3, 1 ldr r5, [sp] lsls r1, r5, 6 adds r0, r1 ldr r1, _08114AB0 adds r2, r4, r1 adds r2, r0, r2 ldr r5, _08114AB4 adds r1, r4, r5 adds r0, r1 ldrh r1, [r0] ldrh r0, [r2] adds r1, r0 movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r5, r0, 8 movs r0, 0xFF ands r1, r0 strh r1, [r2] movs r6, 0 ldr r1, [sp, 0x4] cmp r1, r5 blt _08114A72 b _08114D76 _08114A72: mov r9, r4 mov r2, r8 adds r7, r3, r2 ldr r0, _08114AB8 add r0, r9 adds r4, r7, r0 movs r3, 0 ldr r0, _08114ABC add r0, r9 adds r2, r7, r0 _08114A86: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldrb r1, [r4] ldr r0, [sp] str r2, [sp, 0xC] str r3, [sp, 0x10] bl sub_8114DB4 ldrb r0, [r4] ldr r2, [sp, 0xC] ldr r3, [sp, 0x10] ldrb r1, [r2] cmp r0, r1 bne _08114AA6 b _08114D4C _08114AA6: adds r6, 0x1 cmp r6, r5 blt _08114A86 b _08114D76 .align 2, 0 _08114AB0: .4byte 0x000070c4 _08114AB4: .4byte 0x000090c4 _08114AB8: .4byte 0x000038c4 _08114ABC: .4byte 0x000028c4 _08114AC0: movs r2, 0 str r2, [sp, 0x4] ldr r4, _08114B30 lsls r0, r3, 1 ldr r5, [sp] lsls r1, r5, 6 adds r0, r1 ldr r1, _08114B34 adds r2, r4, r1 adds r2, r0, r2 ldr r5, _08114B38 adds r1, r4, r5 adds r0, r1 ldrh r1, [r0] ldrh r0, [r2] adds r1, r0 movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r5, r0, 8 movs r0, 0xFF ands r1, r0 strh r1, [r2] movs r6, 0 ldr r1, [sp, 0x4] cmp r1, r5 blt _08114AF8 b _08114D76 _08114AF8: mov r9, r4 mov r2, r8 adds r7, r3, r2 ldr r0, _08114B3C add r0, r9 adds r4, r7, r0 ldr r0, _08114B40 add r0, r9 adds r2, r7, r0 _08114B0A: ldrb r0, [r4] ldrb r1, [r2] cmp r0, r1 bne _08114B14 b _08114D5C _08114B14: adds r1, r0, 0 ldr r0, [sp] str r2, [sp, 0xC] bl sub_8114DF0 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] adds r6, 0x1 ldr r2, [sp, 0xC] cmp r6, r5 blt _08114B0A b _08114D76 .align 2, 0 _08114B30: .4byte 0x02014800 _08114B34: .4byte 0x000070c4 _08114B38: .4byte 0x000090c4 _08114B3C: .4byte 0x000038c4 _08114B40: .4byte 0x000028c4 _08114B44: movs r2, 0 str r2, [sp, 0x4] ldr r5, _08114B70 mov r0, r8 adds r4, r3, r0 ldr r1, _08114B74 adds r0, r5, r1 adds r0, r4, r0 ldrb r1, [r0] ldr r0, [sp] bl sub_8114E48 lsls r0, 24 cmp r0, 0 bne _08114B64 b _08114D76 _08114B64: ldr r2, _08114B78 adds r0, r5, r2 adds r0, r4, r0 movs r1, 0x9 b _08114D74 .align 2, 0 _08114B70: .4byte 0x02014800 _08114B74: .4byte 0x000038c4 _08114B78: .4byte 0x000008c4 _08114B7C: movs r4, 0 str r4, [sp, 0x4] ldr r5, _08114BA8 mov r0, r8 adds r4, r3, r0 ldr r1, _08114BAC adds r0, r5, r1 adds r0, r4, r0 ldrb r1, [r0] ldr r0, [sp] bl sub_8114E48 lsls r0, 24 cmp r0, 0 bne _08114B9C b _08114D76 _08114B9C: ldr r2, _08114BB0 adds r0, r5, r2 adds r0, r4, r0 movs r1, 0xA b _08114D74 .align 2, 0 _08114BA8: .4byte 0x02014800 _08114BAC: .4byte 0x000038c4 _08114BB0: .4byte 0x000008c4 _08114BB4: movs r4, 0 str r4, [sp, 0x4] ldr r5, _08114BE0 mov r0, r8 adds r4, r3, r0 ldr r1, _08114BE4 adds r0, r5, r1 adds r0, r4, r0 ldrb r1, [r0] ldr r0, [sp] bl sub_8114E48 lsls r0, 24 cmp r0, 0 bne _08114BD4 b _08114D76 _08114BD4: ldr r2, _08114BE8 adds r0, r5, r2 adds r0, r4, r0 movs r1, 0xB b _08114D74 .align 2, 0 _08114BE0: .4byte 0x02014800 _08114BE4: .4byte 0x000038c4 _08114BE8: .4byte 0x000008c4 _08114BEC: movs r4, 0 str r4, [sp, 0x4] ldr r5, _08114C18 mov r0, r8 adds r4, r3, r0 ldr r1, _08114C1C adds r0, r5, r1 adds r0, r4, r0 ldrb r1, [r0] ldr r0, [sp] bl sub_8114E48 lsls r0, 24 cmp r0, 0 bne _08114C0C b _08114D76 _08114C0C: ldr r2, _08114C20 adds r0, r5, r2 adds r0, r4, r0 movs r1, 0xC b _08114D74 .align 2, 0 _08114C18: .4byte 0x02014800 _08114C1C: .4byte 0x000038c4 _08114C20: .4byte 0x000008c4 _08114C24: movs r4, 0 str r4, [sp, 0x4] ldr r6, _08114C58 mov r0, r8 adds r5, r3, r0 ldr r1, _08114C5C adds r4, r6, r1 adds r4, r5, r4 ldrb r1, [r4] ldr r0, [sp] bl sub_8114DB4 ldr r2, _08114C60 adds r0, r6, r2 adds r0, r5, r0 ldrb r1, [r4] ldrb r0, [r0] cmp r1, r0 bne _08114C68 ldr r4, _08114C64 adds r0, r6, r4 adds r0, r5, r0 mov r5, sp ldrb r5, [r5, 0x4] strb r5, [r0] b _08114D76 .align 2, 0 _08114C58: .4byte 0x02014800 _08114C5C: .4byte 0x000038c4 _08114C60: .4byte 0x000028c4 _08114C64: .4byte 0x000008c4 _08114C68: ldr r1, _08114C74 adds r0, r6, r1 adds r0, r5, r0 movs r1, 0x1 b _08114D74 .align 2, 0 _08114C74: .4byte 0x000008c4 _08114C78: movs r2, 0 str r2, [sp, 0x4] ldr r6, _08114CA8 mov r4, r8 adds r5, r3, r4 ldr r0, _08114CAC adds r4, r6, r0 adds r4, r5, r4 ldrb r1, [r4] ldr r0, [sp] bl sub_8114DF0 ldr r1, _08114CB0 adds r0, r6, r1 adds r0, r5, r0 ldrb r1, [r4] ldrb r0, [r0] cmp r1, r0 beq _08114D1E ldr r1, _08114CB4 adds r0, r6, r1 adds r0, r5, r0 movs r1, 0x2 b _08114D74 .align 2, 0 _08114CA8: .4byte 0x02014800 _08114CAC: .4byte 0x000038c4 _08114CB0: .4byte 0x000028c4 _08114CB4: .4byte 0x000008c4 _08114CB8: movs r2, 0 str r2, [sp, 0x4] ldr r6, _08114CE8 mov r4, r8 adds r5, r3, r4 ldr r0, _08114CEC adds r4, r6, r0 adds r4, r5, r4 ldrb r1, [r4] ldr r0, [sp] bl sub_8114DB4 ldr r1, _08114CF0 adds r0, r6, r1 adds r0, r5, r0 ldrb r1, [r4] ldrb r0, [r0] cmp r1, r0 beq _08114D1E ldr r1, _08114CF4 adds r0, r6, r1 adds r0, r5, r0 movs r1, 0x3 b _08114D74 .align 2, 0 _08114CE8: .4byte 0x02014800 _08114CEC: .4byte 0x000038c4 _08114CF0: .4byte 0x000028c4 _08114CF4: .4byte 0x000008c4 _08114CF8: movs r2, 0 str r2, [sp, 0x4] ldr r6, _08114D2C mov r4, r8 adds r5, r3, r4 ldr r0, _08114D30 adds r4, r6, r0 adds r4, r5, r4 ldrb r1, [r4] ldr r0, [sp] bl sub_8114DF0 ldr r1, _08114D34 adds r0, r6, r1 adds r0, r5, r0 ldrb r1, [r4] ldrb r0, [r0] cmp r1, r0 bne _08114D6C _08114D1E: ldr r2, _08114D38 adds r0, r6, r2 adds r0, r5, r0 mov r4, sp ldrb r4, [r4, 0x4] strb r4, [r0] b _08114D76 .align 2, 0 _08114D2C: .4byte 0x02014800 _08114D30: .4byte 0x000038c4 _08114D34: .4byte 0x000028c4 _08114D38: .4byte 0x000008c4 _08114D3C: ldr r0, _08114D48 add r0, r9 adds r0, r7, r0 movs r1, 0 b _08114D74 .align 2, 0 _08114D48: .4byte 0x000008c4 _08114D4C: ldr r0, _08114D58 add r0, r9 adds r0, r7, r0 strb r3, [r0] b _08114D76 .align 2, 0 _08114D58: .4byte 0x000008c4 _08114D5C: ldr r0, _08114D68 add r0, r9 adds r0, r7, r0 movs r1, 0 b _08114D74 .align 2, 0 _08114D68: .4byte 0x000008c4 _08114D6C: ldr r1, _08114DAC adds r0, r6, r1 adds r0, r5, r0 movs r1, 0x4 _08114D74: strb r1, [r0] _08114D76: mov r3, r10 ldr r2, _08114DB0 adds r0, r2, 0 adds r0, 0x84 ldr r4, [sp] adds r0, r4, r0 adds r4, r2, 0 _08114D84: ldrb r0, [r0] cmp r3, r0 bge _08114D8E bl _08114410 _08114D8E: ldr r5, [sp, 0x8] str r5, [sp] cmp r5, 0x3F bgt _08114D9A bl _081143F2 _08114D9A: ldr r0, [sp, 0x4] add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08114DAC: .4byte 0x000008c4 _08114DB0: .4byte 0x02014800 thumb_func_end unref_sub_81143CC thumb_func_start sub_8114DB4 sub_8114DB4: @ 8114DB4 push {lr} lsls r1, 24 lsrs r3, r1, 24 ldr r2, _08114DDC lsrs r1, 25 lsls r1, 2 lsls r0, 7 adds r1, r0 ldr r0, _08114DE0 adds r2, r0 adds r1, r2 ldr r2, [r1] movs r0, 0x1 ands r3, r0 cmp r3, 0 beq _08114DE4 ldrb r0, [r2] movs r1, 0xF0 b _08114DE8 .align 2, 0 _08114DDC: .4byte 0x02014800 _08114DE0: .4byte 0x000040c4 _08114DE4: ldrb r0, [r2] movs r1, 0xF _08114DE8: orrs r0, r1 strb r0, [r2] pop {r0} bx r0 thumb_func_end sub_8114DB4 thumb_func_start sub_8114DF0 sub_8114DF0: @ 8114DF0 push {lr} lsls r1, 24 lsrs r3, r1, 24 ldr r2, _08114E28 lsrs r1, 25 lsls r1, 2 lsls r0, 7 adds r1, r0 ldr r0, _08114E2C adds r2, r0 adds r1, r2 ldr r2, [r1] movs r0, 0xC0 lsls r0, 7 adds r1, r2, r0 movs r0, 0x1 ands r3, r0 cmp r3, 0 beq _08114E30 ldrb r1, [r1] movs r0, 0xF0 ands r0, r1 cmp r0, 0 bne _08114E42 ldrb r1, [r2] movs r0, 0xF b _08114E3E .align 2, 0 _08114E28: .4byte 0x02014800 _08114E2C: .4byte 0x000040c4 _08114E30: ldrb r1, [r1] movs r0, 0xF ands r0, r1 cmp r0, 0 bne _08114E42 ldrb r1, [r2] movs r0, 0xF0 _08114E3E: ands r0, r1 strb r0, [r2] _08114E42: pop {r0} bx r0 thumb_func_end sub_8114DF0 thumb_func_start sub_8114E48 sub_8114E48: @ 8114E48 push {r4-r7,lr} adds r4, r0, 0 lsls r1, 24 lsrs r6, r1, 24 ldr r1, _08114E6C ldr r2, _08114E70 adds r0, r1, r2 ldrb r0, [r0] adds r5, r1, 0 cmp r0, 0 bne _08114E60 b _08114F5E _08114E60: movs r1, 0 movs r3, 0 cmp r4, 0 bne _08114E74 movs r1, 0x1 b _08114EA6 .align 2, 0 _08114E6C: .4byte 0x02014800 _08114E70: .4byte 0x0000a0c4 _08114E74: subs r0, r4, 0x1 lsls r0, 5 adds r2, r3, r0 adds r0, r5, 0 adds r0, 0xC4 adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 bne _08114EA6 ldr r7, _08114EC4 adds r0, r5, r7 adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 bne _08114EA6 adds r3, 0x1 cmp r3, 0x1F bgt _08114EA6 cmp r4, 0 bne _08114E74 lsls r0, r1, 24 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r1, r0, 24 _08114EA6: cmp r3, 0x20 bne _08114EB4 lsls r0, r1, 24 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r1, r0, 24 _08114EB4: movs r3, 0 cmp r4, 0x3F bne _08114EC8 lsls r0, r1, 24 movs r7, 0x80 lsls r7, 17 adds r0, r7 b _08114EF8 .align 2, 0 _08114EC4: .4byte 0x000008c4 _08114EC8: adds r0, r4, 0x1 lsls r0, 5 adds r2, r3, r0 adds r0, r5, 0 adds r0, 0xC4 adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 bne _08114EFA ldr r7, _08114F64 adds r0, r5, r7 adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 bne _08114EFA adds r3, 0x1 cmp r3, 0x1F bgt _08114EFA cmp r4, 0x3F bne _08114EC8 lsls r0, r1, 24 movs r1, 0x80 lsls r1, 17 adds r0, r1 _08114EF8: lsrs r1, r0, 24 _08114EFA: cmp r3, 0x20 bne _08114F08 lsls r0, r1, 24 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r1, r0, 24 _08114F08: cmp r1, 0x2 beq _08114F5E subs r0, r6, 0x2 lsls r0, 24 lsrs r1, r0, 24 cmp r0, 0 bge _08114F18 movs r1, 0 _08114F18: adds r0, r6, 0x2 lsls r0, 24 lsrs r2, r0, 24 asrs r0, 24 cmp r0, 0x3F ble _08114F26 movs r2, 0x3F _08114F26: lsls r1, 24 asrs r3, r1, 24 lsls r0, r2, 24 asrs r2, r0, 24 adds r6, r1, 0 adds r7, r0, 0 cmp r3, r2 bge _08114F7C cmp r4, 0 beq _08114F7C subs r0, r4, 0x1 lsls r5, r0, 7 ldr r0, _08114F68 mov r12, r0 _08114F42: asrs r0, r3, 1 lsls r0, 2 adds r0, r5 add r0, r12 ldr r1, [r0] movs r0, 0x1 ands r0, r3 cmp r0, 0 beq _08114F6C ldrb r1, [r1] movs r0, 0xF0 _08114F58: ands r0, r1 cmp r0, 0 beq _08114F72 _08114F5E: movs r0, 0x1 b _08114FCA .align 2, 0 _08114F64: .4byte 0x000008c4 _08114F68: .4byte 0x020188c4 _08114F6C: ldrb r1, [r1] movs r0, 0xF b _08114F58 _08114F72: adds r3, 0x1 cmp r3, r2 bge _08114F7C cmp r4, 0 bne _08114F42 _08114F7C: asrs r3, r6, 24 asrs r1, r7, 24 cmp r3, r1 bge _08114FC8 cmp r4, 0x3F beq _08114FC8 adds r0, r4, 0x1 lsls r5, r0, 7 ldr r6, _08114FB0 adds r2, r1, 0 _08114F90: asrs r0, r3, 1 lsls r0, 2 adds r0, r5 adds r0, r6 ldr r1, [r0] movs r0, 0x1 ands r0, r3 cmp r0, 0 beq _08114FB4 ldrb r1, [r1] movs r0, 0xF0 ands r0, r1 cmp r0, 0 beq _08114FBE b _08114F5E .align 2, 0 _08114FB0: .4byte 0x020188c4 _08114FB4: ldrb r1, [r1] movs r0, 0xF ands r0, r1 cmp r0, 0 bne _08114F5E _08114FBE: adds r3, 0x1 cmp r3, r2 bge _08114FC8 cmp r4, 0x3F bne _08114F90 _08114FC8: movs r0, 0 _08114FCA: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8114E48 thumb_func_start nullsub_73 nullsub_73: @ 8114FD0 bx lr thumb_func_end nullsub_73 thumb_func_start sub_8114FD4 sub_8114FD4: @ 8114FD4 push {lr} ldr r1, _08115034 ldr r2, _08115038 adds r0, r2, 0 strh r0, [r1] adds r1, 0x8 ldr r0, _0811503C ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _08115040 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _08115044 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _08115048 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _0811504C ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _08115050 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _08115054 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _08115058 ldrh r0, [r0] strh r0, [r1] bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_8089668 pop {r0} bx r0 .align 2, 0 _08115034: .4byte REG_BG0CNT _08115038: .4byte 0x00009803 _0811503C: .4byte 0x030042a4 _08115040: .4byte 0x030042a0 _08115044: .4byte 0x030042c0 _08115048: .4byte 0x030041b4 _0811504C: .4byte 0x03004288 _08115050: .4byte 0x03004280 _08115054: .4byte 0x030041b0 _08115058: .4byte 0x030041b8 thumb_func_end sub_8114FD4 thumb_func_start sub_811505C sub_811505C: @ 811505C push {lr} ldr r1, _081150B4 ldr r0, _081150B8 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _081150BC ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _081150C0 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _081150C4 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _081150C8 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _081150CC ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _081150D0 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _081150D4 ldrh r0, [r0] strh r0, [r1] bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_8089668 pop {r0} bx r0 .align 2, 0 _081150B4: .4byte REG_BG0HOFS _081150B8: .4byte 0x030042a4 _081150BC: .4byte 0x030042a0 _081150C0: .4byte 0x030042c0 _081150C4: .4byte 0x030041b4 _081150C8: .4byte 0x03004288 _081150CC: .4byte 0x03004280 _081150D0: .4byte 0x030041b0 _081150D4: .4byte 0x030041b8 thumb_func_end sub_811505C thumb_func_start sub_81150D8 sub_81150D8: @ 81150D8 push {lr} ldr r0, _081150F4 ldrb r1, [r0, 0x1] lsls r1, 28 movs r0, 0x90 lsls r0, 23 adds r1, r0 lsrs r1, 24 movs r0, 0xC8 bl sub_814A880 pop {r0} bx r0 .align 2, 0 _081150F4: .4byte 0x02024d1e thumb_func_end sub_81150D8 thumb_func_start nullsub_24 nullsub_24: @ 81150F8 bx lr thumb_func_end nullsub_24 thumb_func_start sub_81150FC sub_81150FC: @ 81150FC push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer ldr r0, _08115120 adds r1, r0, 0 adds r1, 0xB8 ldrb r0, [r1] cmp r0, 0 beq _0811511C adds r0, r1, 0 bl task_tutorial_controls_fadein _0811511C: pop {r0} bx r0 .align 2, 0 _08115120: .4byte 0x02019000 thumb_func_end sub_81150FC thumb_func_start sub_8115124 sub_8115124: @ 8115124 push {r4,lr} sub sp, 0x4 bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_8117434 ldr r2, _08115188 ldr r3, _0811518C ldrh r1, [r3, 0x26] movs r4, 0x80 lsls r4, 2 adds r0, r4, 0 subs r0, r1 strh r0, [r2] ldrb r0, [r3, 0x1] cmp r0, 0 beq _08115154 ldr r1, _08115190 ldrh r0, [r3, 0x34] strh r0, [r1] _08115154: movs r1, 0x2A ldrsh r0, [r3, r1] cmp r0, 0 beq _08115170 ldr r1, _08115194 ldr r0, _08115198 str r0, [r1] ldr r0, _0811519C str r0, [r1, 0x4] ldr r0, _081151A0 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0 strh r0, [r3, 0x2A] _08115170: movs r2, 0x28 ldrsh r0, [r3, r2] cmp r0, 0x1 beq _081151A4 cmp r0, 0x1 ble _0811521A cmp r0, 0x2 beq _081151D4 cmp r0, 0xFF beq _081151F8 b _0811521A .align 2, 0 _08115188: .4byte REG_BG1HOFS _0811518C: .4byte 0x02019000 _08115190: .4byte REG_BLDALPHA _08115194: .4byte 0x040000d4 _08115198: .4byte 0x02021b8c _0811519C: .4byte 0x060021c0 _081151A0: .4byte 0x800001a0 _081151A4: ldr r1, _081151C4 movs r4, 0xF8 lsls r4, 5 adds r0, r4, 0 strh r0, [r1] adds r1, 0xCC ldr r0, _081151C8 str r0, [r1] ldr r0, _081151CC str r0, [r1, 0x4] ldr r0, _081151D0 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0x2 b _08115218 .align 2, 0 _081151C4: .4byte REG_BG0CNT _081151C8: .4byte 0x0202238c _081151CC: .4byte 0x0600f9c0 _081151D0: .4byte 0x800001a0 _081151D4: ldr r1, _081151E8 ldr r0, _081151EC str r0, [r1] ldr r0, _081151F0 str r0, [r1, 0x4] ldr r0, _081151F4 str r0, [r1, 0x8] ldr r0, [r1, 0x8] b _0811521A .align 2, 0 _081151E8: .4byte 0x040000d4 _081151EC: .4byte 0x0202238c _081151F0: .4byte 0x0600f9c0 _081151F4: .4byte 0x800001a0 _081151F8: ldr r1, _08115224 ldr r2, _08115228 adds r0, r2, 0 strh r0, [r1] mov r1, sp movs r0, 0 strh r0, [r1] ldr r1, _0811522C mov r4, sp str r4, [r1] ldr r0, _08115230 str r0, [r1, 0x4] ldr r0, _08115234 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0 _08115218: strh r0, [r3, 0x28] _0811521A: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08115224: .4byte REG_BG0CNT _08115228: .4byte 0x00001f08 _0811522C: .4byte 0x040000d4 _08115230: .4byte 0x0600f9c0 _08115234: .4byte 0x810001a0 thumb_func_end sub_8115124 thumb_func_start sub_8115238 sub_8115238: @ 8115238 push {r4-r6,lr} sub sp, 0x8 ldr r1, _081152C0 mov r0, sp movs r2, 0x6 bl memcpy ldr r5, _081152C4 movs r2, 0xBE lsls r2, 1 adds r0, r5, 0 movs r1, 0 bl memset ldr r0, _081152C8 ldrh r2, [r0] movs r0, 0x1 ands r0, r2 ldrb r1, [r5, 0x4] movs r3, 0x4 negs r3, r3 ands r3, r1 orrs r3, r0 strb r3, [r5, 0x4] movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _08115276 movs r0, 0x80 orrs r3, r0 strb r3, [r5, 0x4] _08115276: ldr r3, _081152CC ldrb r2, [r5, 0x4] lsls r1, r2, 30 lsrs r0, r1, 25 adds r0, r3 ldrb r0, [r0, 0x3] adds r4, r5, 0 adds r4, 0x22 strb r0, [r4] lsrs r0, r1, 25 adds r0, r3 ldrb r0, [r0, 0x4] adds r3, r5, 0 adds r3, 0x23 strb r0, [r3] ldr r0, _081152D0 lsrs r1, 30 lsls r2, 24 lsrs r2, 31 lsls r2, 1 adds r1, r2 adds r1, r0 ldrb r2, [r1] strb r2, [r5, 0x19] ldrb r1, [r5, 0x1A] movs r0, 0xF ands r0, r1 movs r1, 0x10 orrs r0, r1 strb r0, [r5, 0x1A] cmp r2, 0x1 bne _081152DC ldr r4, _081152D4 ldr r3, _081152D8 mov r0, sp ldrh r2, [r0] b _081152E4 .align 2, 0 _081152C0: .4byte gUnknown_083F8EC4 _081152C4: .4byte 0x02019000 _081152C8: .4byte 0x0202e8cc _081152CC: .4byte gUnknown_083F8DF4 _081152D0: .4byte gUnknown_083F8DF0 _081152D4: .4byte 0x0202eac8 _081152D8: .4byte 0x0202eec8 _081152DC: ldr r4, _08115348 ldr r3, _0811534C mov r0, sp ldrh r2, [r0, 0x2] _081152E4: adds r0, r3, 0 adds r0, 0xA2 strh r2, [r0] ldr r1, _08115350 adds r0, r1, 0 ands r0, r2 strh r0, [r3] ands r0, r1 adds r2, r4, 0 adds r2, 0xA2 strh r0, [r2] ands r0, r1 strh r0, [r4] ldr r0, _08115354 bl sub_8124918 movs r4, 0 ldr r5, _08115358 _08115308: lsls r2, r4, 3 adds r2, r5 ldr r0, _08115354 adds r1, r4, 0 bl sub_812492C adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xC bls _08115308 movs r4, 0 ldr r5, _0811535C _08115322: movs r0, 0x64 muls r0, r4 ldr r1, _08115360 adds r0, r1 movs r1, 0x41 bl PokemonGetField adds r1, r0, 0 movs r0, 0x98 lsls r0, 1 cmp r1, r0 beq _08115364 adds r0, 0x2 cmp r1, r0 bne _0811536C ldrb r0, [r5, 0x2] movs r1, 0x1 b _08115368 .align 2, 0 _08115348: .4byte 0x0202eac8 _0811534C: .4byte 0x0202eec8 _08115350: .4byte 0x0000ffff _08115354: .4byte 0x020190b8 _08115358: .4byte gUnknown_083F8E34 _0811535C: .4byte 0x02019000 _08115360: .4byte 0x03004360 _08115364: ldrb r0, [r5, 0x2] movs r1, 0x2 _08115368: orrs r0, r1 strb r0, [r5, 0x2] _0811536C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _08115322 bl RtcCalcLocalTime add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8115238 thumb_func_start sub_8115384 sub_8115384: @ 8115384 push {r4,lr} sub sp, 0x4 ldr r1, _081153A4 ldr r2, _081153A8 adds r0, r1, r2 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x7 bls _08115398 b _081155FE _08115398: lsls r0, 2 ldr r1, _081153AC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081153A4: .4byte 0x03001770 _081153A8: .4byte 0x0000043c _081153AC: .4byte _081153B0 .align 2, 0 _081153B0: .4byte _081153D0 .4byte _08115444 .4byte _08115460 .4byte _08115494 .4byte _081154CC .4byte _081154FC .4byte _0811556C .4byte _0811558C _081153D0: movs r0, 0 bl SetVBlankCallback bl remove_some_task bl sub_80F9438 bl sub_80F9368 ldr r1, _08115420 ldr r3, _08115424 adds r0, r3, 0 strh r0, [r1] subs r1, 0x2 ldr r2, _08115428 adds r0, r2, 0 strh r0, [r1] adds r1, 0x46 movs r3, 0x90 lsls r3, 6 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0811542C adds r0, r2, 0 strh r0, [r1] ldr r0, _08115430 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _08115434 ldr r1, _08115438 bl LZ77UnCompVram ldr r1, _0811543C ldr r3, _08115440 adds r1, r3 b _0811557A .align 2, 0 _08115420: .4byte REG_BG2CNT _08115424: .4byte 0x00004686 _08115428: .4byte 0x00004401 _0811542C: .4byte 0x0000060a _08115430: .4byte gUnknown_08E8096C _08115434: .4byte gUnknown_08E81098 _08115438: .4byte 0x06004000 _0811543C: .4byte 0x03001770 _08115440: .4byte 0x0000043c _08115444: bl ResetPaletteFade bl ResetSpriteData bl ResetTasks ldr r1, _08115458 ldr r0, _0811545C adds r1, r0 b _0811557A .align 2, 0 _08115458: .4byte 0x03001770 _0811545C: .4byte 0x0000043c _08115460: ldr r0, _08115480 bl SetUpWindowConfig ldr r0, _08115484 bl sub_8071C4C ldr r0, _08115488 movs r2, 0xE0 lsls r2, 1 movs r1, 0 bl LoadPalette ldr r1, _0811548C ldr r2, _08115490 adds r1, r2 b _0811557A .align 2, 0 _08115480: .4byte gWindowConfig_81E6C3C _08115484: .4byte gWindowConfig_81E6CE4 _08115488: .4byte gUnknown_083F86BC _0811548C: .4byte 0x03001770 _08115490: .4byte 0x0000043c _08115494: bl sub_8115238 bl sub_80F9020 ldr r0, _081154B4 ldr r1, _081154B8 bl LZ77UnCompWram ldr r0, _081154BC ldr r1, _081154C0 bl LZ77UnCompVram ldr r1, _081154C4 ldr r3, _081154C8 adds r1, r3 b _0811557A .align 2, 0 _081154B4: .4byte gUnknown_083F88BC _081154B8: .4byte 0x02018800 _081154BC: .4byte gUnknown_083F8A60 _081154C0: .4byte 0x06003000 _081154C4: .4byte 0x03001770 _081154C8: .4byte 0x0000043c _081154CC: movs r0, 0 bl sub_8117838 bl sub_811857C bl sub_81184D8 bl sub_8117F2C bl sub_8117900 bl sub_8117BBC bl sub_8117DF4 ldr r1, _081154F4 ldr r0, _081154F8 adds r1, r0 b _0811557A .align 2, 0 _081154F4: .4byte 0x03001770 _081154F8: .4byte 0x0000043c _081154FC: bl AnimateSprites bl BuildOamBuffer ldr r0, _08115550 ldr r1, _08115554 adds r0, r1 ldrh r0, [r0] bl sub_81180F4 movs r0, 0x6 bl sub_81182F8 movs r0, 0 bl sub_811829C movs r0, 0 bl sub_8117158 movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow ldr r0, _08115558 movs r1, 0x1 movs r2, 0xF bl Print ldr r1, _0811555C movs r2, 0x3C negs r2, r2 adds r0, r2, 0 strh r0, [r1] ldr r1, _08115560 movs r0, 0 strh r0, [r1] ldr r1, _08115564 ldr r3, _08115568 adds r1, r3 b _0811557A .align 2, 0 _08115550: .4byte 0x02025734 _08115554: .4byte 0x00000494 _08115558: .4byte gUnknown_081C4157 _0811555C: .4byte 0x030024d0 _08115560: .4byte 0x030027e0 _08115564: .4byte 0x03001770 _08115568: .4byte 0x0000043c _0811556C: movs r1, 0x80 lsls r1, 19 ldr r3, _08115584 adds r0, r3, 0 strh r0, [r1] ldr r0, _08115588 adds r1, r2, r0 _0811557A: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _081155FE .align 2, 0 _08115584: .4byte 0x00001741 _08115588: .4byte 0x0000043c _0811558C: ldr r3, _08115608 ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _0811560C ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08115610 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _08115614 bl SetVBlankCallback movs r0, 0x1 str r0, [sp] movs r0, 0xFF movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginHardwarePaletteFade ldr r0, _08115618 movs r1, 0 bl CreateTask ldr r4, _0811561C adds r1, r4, 0 adds r1, 0xA4 strb r0, [r1] lsls r0, 24 lsrs r0, 24 ldr r2, _08115620 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0x6 strh r0, [r1, 0x14] ldr r0, _08115624 ldr r2, _08115628 adds r0, r2 ldrh r0, [r0] strh r0, [r1, 0x22] ldr r0, _0811562C movs r1, 0x1 bl CreateTask adds r4, 0xA5 strb r0, [r4] ldr r0, _08115630 bl SetMainCallback2 _081155FE: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08115608: .4byte 0x04000208 _0811560C: .4byte 0x04000200 _08115610: .4byte REG_DISPSTAT _08115614: .4byte sub_8115124 _08115618: .4byte sub_81156BC _0811561C: .4byte 0x02019000 _08115620: .4byte 0x03004b20 _08115624: .4byte 0x02025734 _08115628: .4byte 0x00000494 _0811562C: .4byte sub_8115634 _08115630: .4byte sub_81150FC thumb_func_end sub_8115384 thumb_func_start sub_8115634 sub_8115634: @ 8115634 push {r4-r6,lr} ldr r0, _081156B8 adds r3, r0, 0 adds r3, 0x21 ldrb r1, [r3] adds r2, r1, 0x1 strb r2, [r3] adds r2, r0, 0 adds r2, 0x23 lsls r1, 24 lsrs r1, 24 adds r6, r0, 0 ldrb r2, [r2] cmp r1, r2 bne _08115674 movs r0, 0 strb r0, [r3] adds r2, r6, 0 adds r2, 0x22 ldrb r1, [r2] ldrh r0, [r6, 0x24] subs r0, r1 strh r0, [r6, 0x24] lsls r0, 16 cmp r0, 0 bge _08115674 ldrb r1, [r2] movs r2, 0xB4 lsls r2, 1 adds r0, r2, 0 subs r0, r1 strh r0, [r6, 0x24] _08115674: adds r4, r6, 0 ldrh r0, [r4, 0x24] bl sine2 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r4, 0x24] bl cosine2 lsls r0, 16 lsrs r1, r0, 16 lsls r0, r5, 16 asrs r0, 16 cmp r0, 0 bge _08115694 adds r0, 0xF _08115694: lsls r0, 12 lsrs r5, r0, 16 lsls r0, r1, 16 asrs r0, 16 cmp r0, 0 bge _081156A2 adds r0, 0xF _081156A2: asrs r0, 4 strh r0, [r6, 0x32] strh r0, [r6, 0x2C] strh r5, [r6, 0x2E] lsls r0, r5, 16 asrs r0, 16 negs r0, r0 strh r0, [r6, 0x30] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081156B8: .4byte 0x02019000 thumb_func_end sub_8115634 thumb_func_start sub_81156BC sub_81156BC: @ 81156BC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 bl UpdatePaletteFade lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 bne _08115716 ldr r2, _0811571C ldrh r0, [r2] movs r5, 0x90 lsls r5, 6 adds r1, r5, 0 orrs r0, r1 strh r0, [r2] ldr r1, _08115720 ldr r2, _08115724 adds r0, r2, 0 strh r0, [r1] ldr r1, _08115728 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r3, [r0, 0x14] adds r0, r4, 0 bl sub_8116CAC bl sub_8116CF8 bl sub_81185E8 movs r0, 0 bl sub_8117158 movs r0, 0x6 bl sub_81182F8 ldr r1, _0811572C ldr r2, _08115730 adds r0, r4, 0 movs r3, 0x3 bl sub_8116C34 _08115716: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811571C: .4byte REG_BLDCNT _08115720: .4byte REG_BLDALPHA _08115724: .4byte 0x00000808 _08115728: .4byte 0x03004b20 _0811572C: .4byte sub_81159BC _08115730: .4byte 0x0000ffff thumb_func_end sub_81156BC thumb_func_start sub_8115734 sub_8115734: @ 8115734 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1 bl sub_8072974 ldr r0, _08115770 bl sub_814AAF8 movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow ldr r0, _08115774 movs r1, 0x1 movs r2, 0xF bl Print ldr r1, _08115778 adds r0, r4, 0 bl sub_80F914C pop {r4} pop {r0} bx r0 .align 2, 0 _08115770: .4byte 0x00002d9e _08115774: .4byte gUnknown_081C41E3 _08115778: .4byte gUnknown_083F8EBC thumb_func_end sub_8115734 thumb_func_start sub_811577C sub_811577C: @ 811577C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1A movs r3, 0xD bl Reset ldr r1, _081157A4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _081157A8 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _081157A4: .4byte 0x03004b20 _081157A8: .4byte sub_81159BC thumb_func_end sub_811577C thumb_func_start sub_81157AC sub_81157AC: @ 81157AC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _081157CC adds r0, 0xA5 ldrb r0, [r0] bl DestroyTask adds r0, r4, 0 bl sub_8116AB0 pop {r4} pop {r0} bx r0 .align 2, 0 _081157CC: .4byte 0x02019000 thumb_func_end sub_81157AC thumb_func_start sub_81157D0 sub_81157D0: @ 81157D0 push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bhi _081158C8 lsls r0, r4, 2 ldr r1, _081157E8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081157E8: .4byte _081157EC .align 2, 0 _081157EC: .4byte _0811582C .4byte _08115848 .4byte _08115848 .4byte _08115848 .4byte _08115848 .4byte _08115884 .4byte _081158C8 .4byte _081158C8 .4byte _081158C8 .4byte _081158C8 .4byte _08115884 .4byte _081158C8 .4byte _081158C8 .4byte _081158C8 .4byte _081158C8 .4byte _08115884 _0811582C: ldr r0, _08115844 movs r1, 0x10 str r1, [sp] movs r1, 0xD str r1, [sp, 0x4] movs r1, 0 movs r2, 0xE movs r3, 0x7 bl sub_8124DDC b _08115918 .align 2, 0 _08115844: .4byte 0x020221cc _08115848: lsls r0, r4, 1 adds r0, r4 adds r0, 0xE lsls r0, 24 lsrs r7, r0, 24 ldr r5, _0811587C movs r0, 0x10 str r0, [sp] movs r4, 0xD str r4, [sp, 0x4] adds r0, r5, 0 movs r1, 0 movs r2, 0xE movs r3, 0x7 bl sub_8124DDC ldr r1, _08115880 movs r0, 0x3 str r0, [sp] str r4, [sp, 0x4] adds r0, r5, 0 adds r2, r7, 0 movs r3, 0x7 bl sub_8124E2C b _08115918 .align 2, 0 _0811587C: .4byte 0x020221cc _08115880: .4byte 0x02018a32 _08115884: subs r0, r4, 0x1 movs r1, 0x5 bl __divsi3 lsls r1, r0, 1 adds r1, r0 adds r1, 0xA lsls r1, 24 lsrs r6, r1, 24 ldr r5, _081158C0 movs r4, 0x10 str r4, [sp] movs r0, 0xD str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0 movs r2, 0xE movs r3, 0x7 bl sub_8124DDC ldr r1, _081158C4 str r4, [sp] movs r0, 0x3 str r0, [sp, 0x4] adds r0, r5, 0 movs r2, 0xE adds r3, r6, 0 bl sub_8124E2C b _08115918 .align 2, 0 _081158C0: .4byte 0x020221cc _081158C4: .4byte 0x02018a80 _081158C8: adds r0, r4, 0 movs r1, 0x5 bl __umodsi3 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 adds r1, 0xE lsls r1, 24 lsrs r7, r1, 24 subs r0, r4, 0x1 movs r1, 0x5 bl __divsi3 lsls r1, r0, 1 adds r1, r0 adds r1, 0x7 lsls r1, 24 lsrs r6, r1, 24 ldr r4, _08115920 movs r0, 0x10 str r0, [sp] movs r0, 0xD str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0 movs r2, 0xE movs r3, 0x7 bl sub_8124DDC ldr r1, _08115924 movs r0, 0x3 str r0, [sp] str r0, [sp, 0x4] adds r0, r4, 0 adds r2, r7, 0 adds r3, r6, 0 bl sub_8124E2C _08115918: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08115920: .4byte 0x020221cc _08115924: .4byte 0x02018a20 thumb_func_end sub_81157D0 thumb_func_start sub_8115928 sub_8115928: @ 8115928 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 cmp r1, 0 bne _0811594C ldr r1, _08115948 lsls r4, r5, 2 adds r0, r4, r5 lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x10] bl sub_811829C b _08115960 .align 2, 0 _08115948: .4byte 0x03004b20 _0811594C: ldr r0, _08115974 ldrb r1, [r0, 0x1A] lsls r1, 28 lsrs r1, 28 adds r0, 0x1B adds r1, r0 ldrb r0, [r1] bl sub_811829C lsls r4, r5, 2 _08115960: ldr r0, _08115978 adds r1, r4, r5 lsls r1, 3 adds r1, r0 ldrb r0, [r1, 0x10] bl sub_81157D0 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08115974: .4byte 0x02019000 _08115978: .4byte 0x03004b20 thumb_func_end sub_8115928 thumb_func_start sub_811597C sub_811597C: @ 811597C push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _081159B0 movs r6, 0 movs r1, 0x1 strh r1, [r5, 0x28] ldr r1, _081159B4 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldrb r0, [r4, 0x10] bl sub_81157D0 adds r1, r5, 0 adds r1, 0x23 movs r0, 0x2 strb r0, [r1] adds r5, 0x21 strb r6, [r5] ldr r0, _081159B8 str r0, [r4] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081159B0: .4byte 0x02019000 _081159B4: .4byte 0x03004b20 _081159B8: .4byte sub_8115E14 thumb_func_end sub_811597C thumb_func_start sub_81159BC sub_81159BC: @ 81159BC push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r3, _08115A10 ldr r1, [r3, 0x8] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08115A1C movs r2, 0xB ldr r5, _08115A14 adds r0, r5, 0 adds r0, 0xE4 ldr r0, [r0] ands r1, r0 ldr r0, _08115A18 mov r12, r0 lsls r7, r6, 2 cmp r1, 0 beq _08115A5A adds r4, r3, 0 adds r3, r5, 0 adds r3, 0x8 _081159EA: lsls r0, r2, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r2, r0, 16 asrs r1, r0, 16 cmp r1, 0xD bgt _08115A5A lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r3 ldr r1, [r4, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _081159EA b _08115A5A .align 2, 0 _08115A10: .4byte 0x02019000 _08115A14: .4byte gUnknown_083F8C00 _08115A18: .4byte 0x03004b20 _08115A1C: movs r2, 0x6 ldr r5, _08115A88 adds r0, r5, 0 adds r0, 0x80 ldr r0, [r0] ands r1, r0 ldr r0, _08115A8C mov r12, r0 lsls r7, r6, 2 cmp r1, 0 beq _08115A5A adds r4, r3, 0 adds r3, r5, 0 adds r3, 0x8 _08115A38: lsls r0, r2, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r2, r0, 16 asrs r1, r0, 16 cmp r1, 0x9 bgt _08115A5A lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r3 ldr r1, [r4, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08115A38 _08115A5A: adds r4, r7, r6 lsls r4, 3 add r4, r12 movs r5, 0 strh r2, [r4, 0x10] adds r0, r6, 0 bl sub_8116CAC ldrb r0, [r4, 0x10] bl sub_8117158 ldrb r0, [r4, 0x10] bl sub_811829C ldrb r0, [r4, 0x10] bl sub_8116EF8 strh r5, [r4, 0xA] ldr r0, _08115A90 str r0, [r4] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08115A88: .4byte gUnknown_083F8C00 _08115A8C: .4byte 0x03004b20 _08115A90: .4byte sub_811597C thumb_func_end sub_81159BC thumb_func_start sub_8115A94 sub_8115A94: @ 8115A94 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 movs r6, 0 movs r7, 0 ldr r1, _08115ADC mov r0, sp movs r2, 0x4 bl memcpy ldrb r0, [r4] mov r8, r0 cmp r5, 0 blt _08115B08 cmp r5, 0x1 bgt _08115AE0 movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x5 bl __modsi3 lsls r0, 24 lsrs r6, r0, 24 movs r2, 0xF0 lsls r2, 20 adds r1, r0, r2 lsrs r7, r1, 24 cmp r0, 0 bne _08115B08 movs r6, 0x5 b _08115B08 .align 2, 0 _08115ADC: .4byte gUnknown_083F8ECA _08115AE0: cmp r5, 0x3 bgt _08115B08 movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x5 bl __divsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 2 adds r1, r0 lsls r1, 24 lsrs r6, r1, 24 movs r2, 0x80 lsls r2, 19 adds r0, r1, r2 lsrs r7, r0, 24 cmp r1, 0 bne _08115B08 movs r6, 0x1 _08115B08: mov r1, sp adds r0, r1, r5 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrh r2, [r4] adds r0, r2 strh r0, [r4] lsls r1, r6, 24 asrs r3, r1, 24 lsls r0, 16 asrs r0, 16 lsls r2, r7, 24 cmp r0, r3 bge _08115B2A asrs r0, r2, 24 strh r0, [r4] _08115B2A: movs r0, 0 ldrsh r1, [r4, r0] asrs r0, r2, 24 cmp r1, r0 ble _08115B36 strh r3, [r4] _08115B36: mov r1, r8 lsls r0, r1, 24 movs r2, 0 ldrsh r1, [r4, r2] asrs r0, 24 cmp r1, r0 bne _08115B48 movs r0, 0 b _08115B4A _08115B48: movs r0, 0x1 _08115B4A: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8115A94 thumb_func_start sub_8115B58 sub_8115B58: @ 8115B58 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r7, r0, 24 movs r0, 0 mov r8, r0 movs r5, 0 ldr r4, _08115D30 ldrh r1, [r4, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08115B94 movs r5, 0x1 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, _08115D34 adds r0, r1 adds r0, 0x8 movs r1, 0 bl sub_8115A94 lsls r0, 24 cmp r0, 0 bne _08115B94 b _08115D20 _08115B94: ldrh r1, [r4, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08115BBA movs r5, 0x1 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, _08115D34 adds r0, r1 adds r0, 0x8 movs r1, 0x1 bl sub_8115A94 lsls r0, 24 cmp r0, 0 bne _08115BBA b _08115D20 _08115BBA: ldrh r1, [r4, 0x2E] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08115BE0 movs r5, 0x1 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, _08115D34 adds r0, r1 adds r0, 0x8 movs r1, 0x2 bl sub_8115A94 lsls r0, 24 cmp r0, 0 bne _08115BE0 b _08115D20 _08115BE0: ldrh r1, [r4, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08115C06 movs r5, 0x1 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, _08115D34 adds r0, r1 adds r0, 0x8 movs r1, 0x3 bl sub_8115A94 lsls r0, 24 cmp r0, 0 bne _08115C06 b _08115D20 _08115C06: cmp r5, 0 bne _08115C0C b _08115D20 _08115C0C: ldr r0, _08115D38 lsls r6, r7, 2 adds r4, r6, r7 lsls r4, 3 adds r4, r0 ldrb r0, [r4, 0x10] bl sub_8117158 adds r0, r7, 0 movs r1, 0 bl sub_8115928 mov r1, r8 strh r1, [r4, 0xA] movs r0, 0x5 bl audio_play ldr r5, _08115D3C ldr r1, _08115D40 adds r0, r5, 0 bl sub_8124D3C adds r3, r5, 0 adds r3, 0xB8 ldrb r2, [r3] movs r1, 0x7F adds r0, r1, 0 ands r0, r2 strb r0, [r3] subs r3, 0xC ldrb r2, [r3] adds r0, r1, 0 ands r0, r2 strb r0, [r3] adds r2, r5, 0 adds r2, 0xA0 ldrb r0, [r2] ands r1, r0 strb r1, [r2] ldrb r0, [r4, 0x10] bl sub_8116EF8 movs r4, 0 mov r12, r6 ldr r6, _08115D44 movs r2, 0x7C negs r2, r2 adds r2, r5 mov r10, r2 movs r0, 0x8 adds r0, r6 mov r8, r0 ldr r1, _08115D48 mov r9, r1 ldr r2, _08115D4C adds r5, r2, 0 _08115C7C: adds r0, r4, 0 adds r0, 0x29 add r0, r10 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r6 adds r2, r3, 0 adds r2, 0x40 add r0, r8 ldr r0, [r0] ldr r0, [r0] ldrh r1, [r0] ldrh r2, [r2] adds r1, r2 ands r1, r5 ldrh r2, [r3, 0x4] mov r0, r9 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _08115C7C ldr r0, _08115D38 mov r2, r12 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldrh r3, [r1, 0x10] subs r0, r3, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x3 bhi _08115D20 ldr r2, _08115D50 movs r0, 0x10 ldrsh r1, [r1, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0x8 adds r0, r2 ldr r2, _08115D54 ldr r1, [r2, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08115D20 subs r0, r3, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 adds r0, r2, 0 add r0, r8 adds r0, 0x65 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08115D44 adds r3, r0, r1 adds r2, r3, 0 adds r2, 0x40 adds r1, 0x8 adds r0, r1 ldr r0, [r0] ldr r0, [r0] ldrh r1, [r0, 0x4] ldrh r2, [r2] adds r1, r2 ldr r2, _08115D4C adds r0, r2, 0 ands r1, r0 ldrh r2, [r3, 0x4] ldr r0, _08115D48 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] _08115D20: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08115D30: .4byte 0x03001770 _08115D34: .4byte 0x03004b28 _08115D38: .4byte 0x03004b20 _08115D3C: .4byte 0x020190b8 _08115D40: .4byte 0x0000ffff _08115D44: .4byte 0x02020004 _08115D48: .4byte 0xfffffc00 _08115D4C: .4byte 0x000003ff _08115D50: .4byte gUnknown_083F8C00 _08115D54: .4byte 0x02019000 thumb_func_end sub_8115B58 thumb_func_start sub_8115D58 sub_8115D58: @ 8115D58 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r1, _08115D70 movs r0, 0xFF strh r0, [r1, 0x28] ldrb r0, [r1, 0x19] cmp r0, 0x1 bne _08115D74 adds r2, r1, 0 adds r2, 0x23 b _08115D7A .align 2, 0 _08115D70: .4byte 0x02019000 _08115D74: adds r2, r1, 0 adds r2, 0x23 movs r0, 0 _08115D7A: strb r0, [r2] adds r1, 0x21 movs r0, 0 strb r0, [r1] ldr r1, _08115D98 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r1, 0x20 strh r1, [r0, 0xA] ldr r1, _08115D9C str r1, [r0] pop {r0} bx r0 .align 2, 0 _08115D98: .4byte 0x03004b20 _08115D9C: .4byte sub_8115ECC thumb_func_end sub_8115D58 thumb_func_start sub_8115DA0 sub_8115DA0: @ 8115DA0 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r4, _08115E08 ldrb r2, [r4, 0x1A] lsls r2, 28 lsrs r2, 28 adds r5, r4, 0 adds r5, 0x1B adds r2, r5 ldr r3, _08115E0C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r6, r1, r3 ldrh r0, [r6, 0x10] strb r0, [r2] ldrb r0, [r4, 0x1A] lsls r0, 28 lsrs r0, 28 adds r0, r5 ldrb r0, [r0] bl sub_8117380 lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0xC] ldrb r0, [r4, 0x1A] lsls r0, 28 lsrs r0, 28 adds r0, r5 ldrb r0, [r0] bl sub_811829C ldrb r1, [r4, 0x19] ldrh r0, [r6, 0x22] subs r0, r1 strh r0, [r6, 0x22] lsls r0, 16 cmp r0, 0 bge _08115DF6 movs r0, 0 strh r0, [r6, 0x22] _08115DF6: ldrh r0, [r6, 0x22] bl sub_81180F4 ldr r0, _08115E10 str r0, [r6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08115E08: .4byte 0x02019000 _08115E0C: .4byte 0x03004b20 _08115E10: .4byte sub_8115D58 thumb_func_end sub_8115DA0 thumb_func_start sub_8115E14 sub_8115E14: @ 8115E14 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl sub_8115B58 ldr r1, _08115E3C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x1E beq _08115E4A cmp r0, 0x1E bgt _08115E40 cmp r0, 0 beq _08115E46 b _08115E5E .align 2, 0 _08115E3C: .4byte 0x03004b20 _08115E40: cmp r0, 0x3B beq _08115E58 b _08115E5E _08115E46: ldrb r0, [r4, 0x10] b _08115E4C _08115E4A: movs r0, 0 _08115E4C: bl sub_81157D0 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] b _08115E6E _08115E58: movs r0, 0 strh r0, [r4, 0xA] b _08115E6E _08115E5E: ldr r0, _08115EA8 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] _08115E6E: ldr r0, _08115EAC ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08115EC2 ldr r3, _08115EB0 ldr r2, _08115EB4 ldr r1, _08115EA8 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r0, 0x10 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0x8 adds r0, r2 ldr r1, [r3, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08115EB8 movs r0, 0x16 bl audio_play b _08115EC2 .align 2, 0 _08115EA8: .4byte 0x03004b20 _08115EAC: .4byte 0x03001770 _08115EB0: .4byte 0x02019000 _08115EB4: .4byte gUnknown_083F8C00 _08115EB8: movs r0, 0x5F bl m4aSongNumStart ldr r0, _08115EC8 str r0, [r4] _08115EC2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08115EC8: .4byte sub_8115DA0 thumb_func_end sub_8115E14 thumb_func_start sub_8115ECC sub_8115ECC: @ 8115ECC push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _08115F20 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0xA] subs r1, r0, 0x1 strh r1, [r4, 0xA] lsls r0, 16 cmp r0, 0 ble _08115F34 lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x2 ble _08115EF8 ldr r1, _08115F24 ldrh r0, [r1] adds r0, 0x2 strh r0, [r1] _08115EF8: ldr r1, _08115F28 ldrh r0, [r1, 0x26] adds r0, 0x4 strh r0, [r1, 0x26] lsls r0, 16 asrs r0, 16 cmp r0, 0x68 bne _08115F4C ldr r2, _08115F2C adds r0, r1, 0 adds r0, 0x55 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _08115F30 str r1, [r0] b _08115F4C .align 2, 0 _08115F20: .4byte 0x03004b20 _08115F24: .4byte 0x030024d0 _08115F28: .4byte 0x02019000 _08115F2C: .4byte 0x02020004 _08115F30: .4byte SpriteCallbackDummy _08115F34: movs r0, 0x1 movs r1, 0xFF bl sub_8117AA8 movs r0, 0x1 movs r1, 0xFF bl sub_8117C60 ldr r0, _08115F54 str r0, [r4] movs r0, 0 strh r0, [r4, 0xA] _08115F4C: pop {r4} pop {r0} bx r0 .align 2, 0 _08115F54: .4byte sub_8116100 thumb_func_end sub_8115ECC thumb_func_start sub_8115F58 sub_8115F58: @ 8115F58 push {r4,lr} lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 lsrs r1, 16 ldr r0, _08115F74 ldrb r2, [r0, 0x2] adds r4, r0, 0 cmp r2, 0x2 bgt _08115F78 cmp r2, 0x1 bge _08115F7E b _08116048 .align 2, 0 _08115F74: .4byte 0x02019000 _08115F78: cmp r2, 0x3 beq _08115FE0 b _08116048 _08115F7E: ldr r0, _08115FA8 ldrb r0, [r0, 0x2] subs r0, 0x4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bhi _08115FB0 cmp r3, 0xB bls _08115F98 movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0811605E _08115F98: ldr r0, _08115FAC ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] lsrs r0, 1 b _081160F4 .align 2, 0 _08115FA8: .4byte 0x03004038 _08115FAC: .4byte gUnknown_083F8DF4 _08115FB0: movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _08115FCC ldr r0, _08115FC8 ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] lsrs r0, 1 b _081160F4 .align 2, 0 _08115FC8: .4byte gUnknown_083F8DF4 _08115FCC: ldr r0, _08115FDC ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] b _081160F4 .align 2, 0 _08115FDC: .4byte gUnknown_083F8DF4 _08115FE0: ldr r0, _0811600C ldrb r0, [r0, 0x2] subs r0, 0x4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bhi _08116014 cmp r3, 0x5 bls _08115FFA movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0811605E _08115FFA: ldr r0, _08116010 ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] lsrs r0, 1 b _081160F4 .align 2, 0 _0811600C: .4byte 0x03004038 _08116010: .4byte gUnknown_083F8DF4 _08116014: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08116034 cmp r3, 0x6 bls _08116034 ldr r0, _08116030 ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] lsrs r0, 2 b _081160F4 .align 2, 0 _08116030: .4byte gUnknown_083F8DF4 _08116034: ldr r0, _08116044 ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] lsrs r0, 1 b _081160F4 .align 2, 0 _08116044: .4byte gUnknown_083F8DF4 _08116048: ldr r0, _08116064 ldrb r0, [r0, 0x2] subs r0, 0x4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bhi _0811607C movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _08116068 _0811605E: movs r0, 0x1 b _081160F4 .align 2, 0 _08116064: .4byte 0x03004038 _08116068: ldr r0, _08116078 ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] lsrs r0, 1 b _081160F4 .align 2, 0 _08116078: .4byte gUnknown_083F8DF4 _0811607C: movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _081160B0 cmp r3, 0xC bls _0811609C ldr r0, _08116098 ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] lsrs r0, 1 b _081160F4 .align 2, 0 _08116098: .4byte gUnknown_083F8DF4 _0811609C: ldr r0, _081160AC ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] b _081160F4 .align 2, 0 _081160AC: .4byte gUnknown_083F8DF4 _081160B0: movs r0, 0x80 lsls r0, 8 ands r0, r1 cmp r0, 0 beq _081160E4 cmp r3, 0xC bls _081160D0 ldr r0, _081160CC ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] b _081160F4 .align 2, 0 _081160CC: .4byte gUnknown_083F8DF4 _081160D0: ldr r0, _081160E0 ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x1] b _081160F4 .align 2, 0 _081160E0: .4byte gUnknown_083F8DF4 _081160E4: ldr r0, _081160FC ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x1] lsls r0, 25 lsrs r0, 24 _081160F4: pop {r4} pop {r1} bx r1 .align 2, 0 _081160FC: .4byte gUnknown_083F8DF4 thumb_func_end sub_8115F58 thumb_func_start sub_8116100 sub_8116100: @ 8116100 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r4, 0 ldr r1, _08116188 mov r0, sp movs r2, 0x8 bl memcpy bl Random lsls r0, 16 lsrs r7, r0, 16 adds r0, r7, 0 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r6, r0, 16 ldr r3, _0811618C ldr r1, _08116190 mov r2, r9 lsls r0, r2, 2 add r0, r9 lsls r0, 3 adds r0, r1 ldrh r2, [r0, 0x14] adds r1, r3, 0 adds r1, 0x7C strb r2, [r1] adds r1, 0x3 strb r4, [r1] subs r1, 0x1 strb r4, [r1] subs r1, 0x1 strb r4, [r1] ldrh r0, [r0, 0x18] adds r1, r7, 0 bl sub_8115F58 adds r4, r0, 0 lsls r4, 24 lsrs r1, r4, 24 adds r0, r7, 0 bl __modsi3 lsrs r4, 25 subs r0, r4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08116194 ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 movs r5, 0x1 cmp r0, 0xC bgt _08116180 movs r5, 0 _08116180: cmp r6, 0x4F bhi _08116198 lsls r0, r5, 25 b _081161A2 .align 2, 0 _08116188: .4byte gUnknown_083F8ECE _0811618C: .4byte 0x02019000 _08116190: .4byte 0x03004b20 _08116194: .4byte 0x03004038 _08116198: lsls r1, r5, 24 asrs r1, 24 movs r0, 0x1 subs r0, r1 lsls r0, 25 _081161A2: lsrs r5, r0, 24 ldr r6, _081162D8 ldrb r0, [r6, 0x4] lsls r0, 30 mov r10, r0 lsrs r0, 25 ldr r1, _081162DC adds r0, r1 lsls r4, 24 asrs r4, 24 ldrh r0, [r0, 0x1A] adds r4, r0 adds r0, r6, 0 adds r0, 0x80 strh r4, [r0] lsls r4, 16 asrs r4, 16 adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _081161D4 ldr r1, _081162E0 bl __addsf3 _081161D4: ldr r1, _081162E4 bl __divsf3 bl __fixunssfsi lsls r0, 16 lsrs r4, r0, 16 lsls r0, r4, 1 adds r0, r4 mov r8, r0 adds r0, r6, 0 adds r0, 0x82 mov r2, r8 strh r2, [r0] adds r0, 0x2 strh r4, [r0] adds r0, 0x2 strh r4, [r0] movs r0, 0x1 ands r0, r7 lsls r1, r5, 24 asrs r1, 24 adds r0, r1 lsls r0, 1 add r0, sp movs r1, 0 ldrsh r4, [r0, r1] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _0811621A ldr r1, _081162E0 bl __addsf3 _0811621A: ldr r2, _081162E8 str r0, [r2] adds r7, r6, 0 adds r7, 0x8C mov r1, r10 lsrs r0, r1, 25 ldr r2, _081162DC adds r0, r2 movs r1, 0x18 ldrsh r4, [r0, r1] adds r0, r4, 0 bl __floatsisf adds r5, r0, 0 cmp r4, 0 bge _08116242 ldr r1, _081162E0 bl __addsf3 adds r5, r0, 0 _08116242: str r5, [r7] adds r7, r6, 0 adds r7, 0x90 ldr r1, _081162EC adds r0, r5, 0 bl __mulsf3 adds r1, r5, 0 bl __subsf3 adds r5, r0, 0 mov r2, r8 lsls r0, r2, 16 asrs r4, r0, 16 adds r0, r4, 0 bl __floatsisf adds r2, r0, 0 cmp r4, 0 bge _08116272 ldr r1, _081162E0 bl __addsf3 adds r2, r0, 0 _08116272: adds r0, r5, 0 adds r1, r2, 0 bl __divsf3 str r0, [r7] adds r1, r6, 0 adds r1, 0x94 ldr r0, _081162F0 str r0, [r1] adds r1, 0x8 ldr r0, _081162F4 str r0, [r1] adds r5, r6, 0 adds r5, 0x98 adds r0, r4, 0 bl __floatsisf adds r2, r0, 0 cmp r4, 0 bge _081162A2 ldr r1, _081162E0 bl __addsf3 adds r2, r0, 0 _081162A2: ldr r0, _081162F8 adds r1, r2, 0 bl __divsf3 bl __negsf2 str r0, [r5] adds r1, r6, 0 adds r1, 0xA0 ldr r0, _081162FC str r0, [r1] ldr r1, _08116300 mov r2, r9 lsls r0, r2, 2 add r0, r9 lsls r0, 3 adds r0, r1 ldr r1, _08116304 str r1, [r0] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081162D8: .4byte 0x02019000 _081162DC: .4byte gUnknown_083F8DF4 _081162E0: .4byte 0x47800000 _081162E4: .4byte 0x40a00000 _081162E8: .4byte 0x02019088 _081162EC: .4byte 0x3f000000 _081162F0: .4byte 0x42880000 _081162F4: .4byte 0x00000000 _081162F8: .4byte 0x41000000 _081162FC: .4byte 0x42100000 _08116300: .4byte 0x03004b20 _08116304: .4byte sub_8116308 thumb_func_end sub_8116100 thumb_func_start sub_8116308 sub_8116308: @ 8116308 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r3, _08116368 ldrb r1, [r3, 0x3] movs r2, 0x80 orrs r1, r2 strb r1, [r3, 0x3] adds r2, r3, 0 adds r2, 0x7C adds r1, r3, 0 adds r1, 0x3C ldrb r2, [r2] adds r1, r2 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 ldr r2, _0811636C adds r1, r2 str r1, [r3, 0x38] ldr r2, _08116370 str r2, [r1, 0x1C] ldr r1, _08116374 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldrh r1, [r4, 0x14] adds r1, 0x1 strh r1, [r4, 0x14] ldrh r0, [r4, 0x18] adds r0, 0x1 strh r0, [r4, 0x18] movs r0, 0x6 subs r0, r1 lsls r0, 24 lsrs r0, 24 bl sub_81182F8 movs r0, 0x5C bl m4aSongNumStart ldr r0, _08116378 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _08116368: .4byte 0x02019000 _0811636C: .4byte 0x02020004 _08116370: .4byte sub_81191F4 _08116374: .4byte 0x03004b20 _08116378: .4byte sub_811637C thumb_func_end sub_8116308 thumb_func_start sub_811637C sub_811637C: @ 811637C push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, _081163B0 adds r0, r4, 0 adds r0, 0x7D ldrb r0, [r0] cmp r0, 0 beq _08116464 ldrb r1, [r4, 0x3] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _081163B4 movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08116464 movs r0, 0x41 negs r0, r0 ands r0, r1 movs r1, 0x21 negs r1, r1 ands r0, r1 strb r0, [r4, 0x3] b _08116464 .align 2, 0 _081163B0: .4byte 0x02019000 _081163B4: ldr r2, _08116428 lsls r1, r5, 2 adds r0, r1, r5 lsls r0, 3 adds r6, r0, r2 movs r2, 0xA ldrsh r0, [r6, r2] adds r7, r1, 0 cmp r0, 0 bne _08116400 adds r0, r4, 0 adds r0, 0x7E ldrb r1, [r0] adds r0, r5, 0 bl sub_8116D54 lsls r0, 24 lsrs r0, 24 ldrb r1, [r4, 0x1A] lsls r1, 28 lsrs r1, 28 adds r2, r4, 0 adds r2, 0x1B adds r1, r2 ldrb r1, [r1] bl sub_8116E5C lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x12] cmp r0, 0x1 bne _08116400 adds r0, r4, 0 adds r0, 0xB8 movs r1, 0x80 lsls r1, 5 bl sub_8124CE8 _08116400: ldr r0, _08116428 adds r1, r7, r5 lsls r1, 3 adds r4, r1, r0 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x3C bgt _08116430 ldr r0, _0811642C ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08116420 movs r0, 0x3C strh r0, [r4, 0xA] _08116420: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] b _08116464 .align 2, 0 _08116428: .4byte 0x03004b20 _0811642C: .4byte 0x03001770 _08116430: ldr r1, _0811646C ldrb r0, [r1, 0x1A] lsls r0, 28 lsrs r0, 28 adds r1, 0x1B adds r0, r1 ldrb r0, [r0] bl sub_8117158 ldrh r1, [r4, 0x20] lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_8117AA8 ldrb r1, [r4, 0x14] subs r1, 0x1 lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_8117C60 movs r0, 0x20 strh r0, [r4, 0xA] ldr r0, _08116470 str r0, [r4] _08116464: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811646C: .4byte 0x02019000 _08116470: .4byte sub_8116474 thumb_func_end sub_811637C thumb_func_start sub_8116474 sub_8116474: @ 8116474 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _081164C8 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0xA] subs r1, r0, 0x1 strh r1, [r4, 0xA] lsls r0, 16 cmp r0, 0 ble _081164DC lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x2 ble _081164A0 ldr r1, _081164CC ldrh r0, [r1] subs r0, 0x2 strh r0, [r1] _081164A0: ldr r1, _081164D0 ldrh r0, [r1, 0x26] subs r0, 0x4 strh r0, [r1, 0x26] lsls r0, 16 asrs r0, 16 cmp r0, 0x68 bne _08116504 ldr r2, _081164D4 adds r0, r1, 0 adds r0, 0x55 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _081164D8 str r1, [r0] b _08116504 .align 2, 0 _081164C8: .4byte 0x03004b20 _081164CC: .4byte 0x030024d0 _081164D0: .4byte 0x02019000 _081164D4: .4byte 0x02020004 _081164D8: .4byte sub_81184CC _081164DC: ldrh r0, [r4, 0x20] lsls r0, 24 lsrs r0, 24 bl sub_8117D68 movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _081164F2 movs r0, 0x79 b _081164F4 _081164F2: movs r0, 0x3D _081164F4: strh r0, [r4, 0xA] ldr r0, _0811650C lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _08116510 str r0, [r1] _08116504: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811650C: .4byte 0x03004b20 _08116510: .4byte sub_8116514 thumb_func_end sub_8116474 thumb_func_start sub_8116514 sub_8116514: @ 8116514 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _08116564 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0xA] subs r1, r0, 0x1 strh r1, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _08116584 movs r0, 0xA ldrsh r1, [r4, r0] adds r0, r1, 0 cmp r1, 0 bge _0811653E adds r0, 0xF _0811653E: asrs r0, 4 lsls r0, 4 subs r0, r1, r0 lsls r0, 16 asrs r0, 16 cmp r0, 0 beq _08116568 cmp r0, 0x8 bne _08116590 movs r0, 0 movs r1, 0xFF bl sub_8117AA8 movs r0, 0 movs r1, 0xFF bl sub_8117C60 b _08116590 .align 2, 0 _08116564: .4byte 0x03004b20 _08116568: ldrh r1, [r4, 0x20] lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_8117AA8 ldrb r1, [r4, 0x14] subs r1, 0x1 lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_8117C60 b _08116590 _08116584: ldr r1, _08116598 adds r0, r2, 0 movs r2, 0x1E movs r3, 0 bl sub_8116C34 _08116590: pop {r4} pop {r0} bx r0 .align 2, 0 _08116598: .4byte sub_8116638 thumb_func_end sub_8116514 thumb_func_start sub_811659C sub_811659C: @ 811659C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _081165F4 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 beq _08116600 cmp r0, 0 blt _08116600 cmp r0, 0x2 bgt _08116600 bl task_is_not_running_overworld_fanfare lsls r0, 24 cmp r0, 0 beq _08116624 movs r0, 0x1D bl sub_8053108 ldrh r1, [r4, 0x1E] adds r1, 0x1 strh r1, [r4, 0x1E] lsls r1, 16 asrs r1, 16 cmp r0, r1 bcs _081165E4 movs r0, 0x1E ldrsh r1, [r4, r0] movs r0, 0x1D bl sav12_xor_set _081165E4: ldr r1, _081165F8 ldr r2, _081165FC adds r0, r5, 0 movs r3, 0x3 bl sub_8116C34 b _08116624 .align 2, 0 _081165F4: .4byte 0x03004b20 _081165F8: .4byte sub_811677C _081165FC: .4byte 0x0000ffff _08116600: bl mplay_has_finished_maybe lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _08116624 ldr r1, _0811662C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x1E] ldr r1, _08116630 ldr r2, _08116634 adds r0, r5, 0 movs r3, 0x3 bl sub_8116C34 _08116624: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811662C: .4byte 0x03004b20 _08116630: .4byte sub_81167F4 _08116634: .4byte 0x0000ffff thumb_func_end sub_811659C thumb_func_start sub_8116638 sub_8116638: @ 8116638 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08116678 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0x12 ldrsh r1, [r0, r2] cmp r1, 0 beq _081166A8 cmp r1, 0 blt _081166A8 cmp r1, 0x2 bgt _081166A8 movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0xC bne _08116684 ldr r0, _0811667C bl fanfare_play movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow ldr r0, _08116680 b _0811669A .align 2, 0 _08116678: .4byte 0x03004b20 _0811667C: .4byte 0x00000185 _08116680: .4byte gUnknown_081C41A5 _08116684: movs r0, 0xC3 lsls r0, 1 bl fanfare_play movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow ldr r0, _081166A4 _0811669A: movs r1, 0x1 movs r2, 0xF bl Print b _081166C4 .align 2, 0 _081166A4: .4byte gUnknown_081C4199 _081166A8: movs r0, 0x20 bl m4aSongNumStart movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow ldr r0, _081166DC movs r1, 0x1 movs r2, 0xF bl Print _081166C4: ldr r1, _081166E0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xA] ldr r1, _081166E4 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _081166DC: .4byte gUnknown_081C41AE _081166E0: .4byte 0x03004b20 _081166E4: .4byte sub_811659C thumb_func_end sub_8116638 thumb_func_start sub_81166E8 sub_81166E8: @ 81166E8 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _0811670C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 movs r0, 0x16 ldrsh r5, [r4, r0] cmp r5, 0 beq _08116710 cmp r5, 0x3 beq _08116740 ldrh r0, [r4, 0x16] adds r0, 0x1 b _08116748 .align 2, 0 _0811670C: .4byte 0x03004b20 _08116710: ldrh r0, [r4, 0x22] adds r0, 0x1 strh r0, [r4, 0x22] movs r0, 0x15 bl m4aSongNumStart ldrh r0, [r4, 0x22] bl sub_81180F4 movs r2, 0x22 ldrsh r1, [r4, r2] ldr r0, _08116730 cmp r1, r0 ble _08116734 strh r5, [r4, 0xA] b _0811674A .align 2, 0 _08116730: .4byte 0x0000270e _08116734: ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] ldrh r0, [r4, 0x16] adds r0, 0x1 b _08116748 _08116740: movs r0, 0x15 bl m4aSongNumStop movs r0, 0 _08116748: strh r0, [r4, 0x16] _0811674A: ldr r0, _08116770 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 movs r2, 0xA ldrsh r0, [r1, r2] cmp r0, 0 bne _08116768 ldr r1, _08116774 ldr r2, _08116778 adds r0, r6, 0 movs r3, 0x3 bl sub_8116C34 _08116768: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08116770: .4byte 0x03004b20 _08116774: .4byte sub_81167F4 _08116778: .4byte 0x0000ffff thumb_func_end sub_81166E8 thumb_func_start sub_811677C sub_811677C: @ 811677C push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r3, _081167DC ldr r6, _081167E0 ldrb r2, [r6, 0x19] ldr r1, _081167E4 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r1, 0xC ldrsh r0, [r4, r1] adds r1, r2, 0 muls r1, r0 adds r0, r3, 0 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r5, _081167E8 ldr r1, _081167EC adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow adds r0, r5, 0 movs r1, 0x1 movs r2, 0xF bl Print ldrb r1, [r6, 0x19] movs r2, 0xC ldrsh r0, [r4, r2] muls r0, r1 movs r1, 0 strh r0, [r4, 0xA] strh r1, [r4, 0x16] ldr r0, _081167F0 str r0, [r4] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081167DC: .4byte 0x020231cc _081167E0: .4byte 0x02019000 _081167E4: .4byte 0x03004b20 _081167E8: .4byte 0x020234cc _081167EC: .4byte gUnknown_081C41BD _081167F0: .4byte sub_81166E8 thumb_func_end sub_811677C thumb_func_start sub_81167F4 sub_81167F4: @ 81167F4 push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r4, _08116868 ldr r1, _0811686C adds r0, r4, 0 bl sub_8124D3C adds r3, r4, 0 adds r3, 0xB8 ldrb r2, [r3] movs r1, 0x7F adds r0, r1, 0 ands r0, r2 strb r0, [r3] subs r3, 0xC ldrb r2, [r3] adds r0, r1, 0 ands r0, r2 strb r0, [r3] adds r2, r4, 0 adds r2, 0xA0 ldrb r0, [r2] ands r1, r0 strb r1, [r2] ldr r6, _08116870 ldr r2, _08116874 ldr r0, _08116878 lsls r3, r5, 2 adds r3, r5 lsls r3, 3 adds r3, r0 movs r0, 0x20 ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] adds r4, r0 subs r4, 0x75 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldr r0, _0811687C str r0, [r3] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08116868: .4byte 0x020190b8 _0811686C: .4byte 0x0000ffff _08116870: .4byte 0x02020004 _08116874: .4byte gUnknown_083F8C00 _08116878: .4byte 0x03004b20 _0811687C: .4byte sub_8116880 thumb_func_end sub_81167F4 thumb_func_start sub_8116880 sub_8116880: @ 8116880 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 ldr r1, _08116954 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 movs r2, 0 strh r5, [r0, 0x10] ldr r4, _08116958 ldrb r0, [r4, 0x1A] lsls r0, 28 lsrs r0, 28 adds r1, r4, 0 adds r1, 0x1B adds r0, r1 strb r2, [r0] movs r0, 0 bl sub_8117158 ldr r3, _0811695C adds r0, r4, 0 adds r0, 0x6C ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r7, r3, 0 movs r0, 0x3C adds r0, r4 mov r10, r0 movs r1, 0x8 adds r1, r7 mov r8, r1 ldr r0, _08116960 mov r9, r0 ldr r1, _08116964 mov r12, r1 _081168E4: adds r0, r5, 0 adds r0, 0x29 add r0, r10 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r7 adds r2, r3, 0 adds r2, 0x40 add r0, r8 ldr r0, [r0] ldr r0, [r0] ldrh r1, [r0] ldrh r2, [r2] adds r1, r2 mov r0, r12 ands r1, r0 ldrh r2, [r3, 0x4] mov r0, r9 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _081168E4 ldr r0, _08116954 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r2, r1, r0 movs r1, 0x22 ldrsh r0, [r2, r1] ldrb r4, [r4, 0x19] cmp r0, r4 blt _081169BC movs r1, 0x14 ldrsh r0, [r2, r1] cmp r0, 0x6 bne _08116970 movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow ldr r0, _08116968 movs r1, 0x1 movs r2, 0xF bl Print ldr r1, _0811696C b _08116992 .align 2, 0 _08116954: .4byte 0x03004b20 _08116958: .4byte 0x02019000 _0811695C: .4byte 0x02020004 _08116960: .4byte 0xfffffc00 _08116964: .4byte 0x000003ff _08116968: .4byte gUnknown_081C41F1 _0811696C: .4byte dp01t_12_3_battle_menu _08116970: movs r0, 0x22 ldrsh r1, [r2, r0] ldr r0, _081169A0 cmp r1, r0 bne _081169B0 movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow ldr r0, _081169A4 movs r1, 0x1 movs r2, 0xF bl Print ldr r1, _081169A8 _08116992: ldr r2, _081169AC adds r0, r6, 0 movs r3, 0x3 bl sub_8116C34 b _081169DE .align 2, 0 _081169A0: .4byte 0x0000270f _081169A4: .4byte gUnknown_081C4231 _081169A8: .4byte sub_8115734 _081169AC: .4byte 0x0000ffff _081169B0: ldr r0, _081169B8 str r0, [r2] b _081169DE .align 2, 0 _081169B8: .4byte sub_8115734 _081169BC: movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow ldr r0, _081169EC movs r1, 0x1 movs r2, 0xF bl Print ldr r1, _081169F0 adds r0, r6, 0 movs r2, 0x3C movs r3, 0x3 bl sub_8116C34 _081169DE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081169EC: .4byte gUnknown_081C41D2 _081169F0: .4byte sub_81157AC thumb_func_end sub_8116880 thumb_func_start dp01t_12_3_battle_menu dp01t_12_3_battle_menu: @ 81169F4 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r1, _08116A84 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r4, [r0, 0x14] adds r0, r5, 0 bl sub_8116CAC bl sub_8116CF8 bl sub_81185E8 movs r0, 0 bl sub_8117158 movs r0, 0x6 bl sub_81182F8 ldr r7, _08116A88 ldr r3, _08116A8C movs r6, 0x5 negs r6, r6 _08116A2A: adds r0, r4, 0x7 adds r0, r3 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 adds r1, 0x3E ldrb r2, [r1] adds r0, r6, 0 ands r0, r2 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xB bls _08116A2A ldr r1, _08116A84 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r2, r0, r1 movs r0, 0x22 ldrsh r1, [r2, r0] ldr r0, _08116A90 cmp r1, r0 bne _08116AA0 movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow ldr r0, _08116A94 movs r1, 0x1 movs r2, 0xF bl Print ldr r1, _08116A98 ldr r2, _08116A9C adds r0, r5, 0 movs r3, 0x3 bl sub_8116C34 b _08116AA4 .align 2, 0 _08116A84: .4byte 0x03004b20 _08116A88: .4byte 0x02020004 _08116A8C: .4byte 0x0201903c _08116A90: .4byte 0x0000270f _08116A94: .4byte gUnknown_081C4231 _08116A98: .4byte sub_8115734 _08116A9C: .4byte 0x0000ffff _08116AA0: ldr r0, _08116AAC str r0, [r2] _08116AA4: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08116AAC: .4byte sub_8115734 thumb_func_end dp01t_12_3_battle_menu thumb_func_start sub_8116AB0 sub_8116AB0: @ 8116AB0 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r4, _08116AF0 ldr r1, _08116AF4 adds r0, r4, 0 bl sub_8124D3C adds r0, r4, 0 bl sub_8124918 ldr r1, _08116AF8 ldr r2, _08116AFC lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r2 ldrh r0, [r0, 0x22] ldr r2, _08116B00 adds r1, r2 strh r0, [r1] subs r4, 0xB8 lsls r0, 16 lsrs r0, 16 ldrb r4, [r4, 0x19] cmp r0, r4 bcs _08116B08 ldr r1, _08116B04 movs r0, 0x1 b _08116B0C .align 2, 0 _08116AF0: .4byte 0x020190b8 _08116AF4: .4byte 0x0000ffff _08116AF8: .4byte 0x02025734 _08116AFC: .4byte 0x03004b20 _08116B00: .4byte 0x00000494 _08116B04: .4byte 0x0202e8cc _08116B08: ldr r1, _08116B34 movs r0, 0 _08116B0C: strh r0, [r1] movs r0, 0 str r0, [sp] movs r0, 0xFF movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginHardwarePaletteFade ldr r1, _08116B38 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _08116B3C str r1, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08116B34: .4byte 0x0202e8cc _08116B38: .4byte 0x03004b20 _08116B3C: .4byte sub_8116B40 thumb_func_end sub_8116AB0 thumb_func_start sub_8116B40 sub_8116B40: @ 8116B40 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl UpdatePaletteFade lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08116B9E movs r0, 0 bl SetVBlankCallback ldr r0, _08116BA4 movs r2, 0xBE lsls r2, 1 movs r1, 0 bl memset ldr r1, _08116BA8 ldr r0, _08116BAC strh r4, [r0] strh r4, [r1] bl sub_80F9368 bl FreeAllSpritePalettes bl ResetPaletteFade bl ResetSpriteData bl sub_80F9020 ldr r0, _08116BB0 strh r4, [r0] adds r0, 0x2 strh r4, [r0] adds r0, 0x2 strh r4, [r0] ldr r1, _08116BB4 ldr r0, _08116BB8 str r0, [r1] ldr r0, _08116BBC bl SetMainCallback2 adds r0, r5, 0 bl DestroyTask _08116B9E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08116BA4: .4byte 0x02019000 _08116BA8: .4byte 0x030024d0 _08116BAC: .4byte 0x030027e0 _08116BB0: .4byte REG_BLDCNT _08116BB4: .4byte 0x0300485c _08116BB8: .4byte sub_8080990 _08116BBC: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_8116B40 thumb_func_start sub_8116BC0 sub_8116BC0: @ 8116BC0 push {r4-r7,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, _08116C24 adds r7, r0, 0 adds r7, 0xA8 ldrh r1, [r7] adds r6, r0, 0 cmp r1, 0 beq _08116BE4 ldr r0, _08116C28 adds r2, r6, 0 adds r2, 0xAA ldrh r1, [r0, 0x2E] ldrh r0, [r2] ands r0, r1 cmp r0, 0 beq _08116C0E _08116BE4: ldr r1, _08116C2C lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 adds r5, r6, 0 adds r5, 0xAC ldr r1, [r5] str r1, [r0] adds r4, r6, 0 adds r4, 0xAA ldrh r0, [r4] cmp r0, 0 beq _08116C06 movs r0, 0x5 bl audio_play _08116C06: movs r0, 0 str r0, [r5] strh r0, [r4] strh r0, [r7] _08116C0E: adds r2, r6, 0 adds r2, 0xA8 ldrh r1, [r2] ldr r0, _08116C30 cmp r1, r0 beq _08116C1E subs r0, r1, 0x1 strh r0, [r2] _08116C1E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08116C24: .4byte 0x02019000 _08116C28: .4byte 0x03001770 _08116C2C: .4byte 0x03004b20 _08116C30: .4byte 0x0000ffff thumb_func_end sub_8116BC0 thumb_func_start sub_8116C34 sub_8116C34: @ 8116C34 push {r4-r7,lr} adds r5, r1, 0 lsls r0, 24 lsrs r6, r0, 24 lsls r2, 16 lsrs r4, r2, 16 lsls r3, 16 lsrs r3, 16 ldr r0, _08116C84 mov r12, r0 mov r2, r12 adds r2, 0xB4 ldr r1, _08116C88 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r0, [r0] str r0, [r2] mov r2, r12 adds r7, r1, 0 cmp r5, 0 bne _08116C64 adds r5, r0, 0 _08116C64: adds r0, r2, 0 adds r0, 0xAC str r5, [r0] subs r0, 0x4 strh r4, [r0] ldr r0, _08116C8C cmp r4, r0 bne _08116C90 cmp r3, 0 bne _08116C90 adds r1, r2, 0 adds r1, 0xAA ldrh r0, [r1] orrs r4, r0 strh r4, [r1] b _08116C96 .align 2, 0 _08116C84: .4byte 0x02019000 _08116C88: .4byte 0x03004b20 _08116C8C: .4byte 0x0000ffff _08116C90: adds r0, r2, 0 adds r0, 0xAA strh r3, [r0] _08116C96: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r7 ldr r1, _08116CA8 str r1, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08116CA8: .4byte sub_8116BC0 thumb_func_end sub_8116C34 thumb_func_start sub_8116CAC sub_8116CAC: @ 8116CAC push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r2, 0 ldr r0, _08116CF0 strb r2, [r0] movs r1, 0 strb r1, [r0, 0x3] adds r3, r0, 0 ldr r6, _08116CF4 adds r4, r3, 0 adds r4, 0x1B _08116CC4: adds r0, r2, r4 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x5 bls _08116CC4 ldrb r1, [r3, 0x1A] movs r0, 0x10 negs r0, r0 ands r0, r1 strb r0, [r3, 0x1A] lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r6 movs r1, 0 strh r1, [r0, 0xA] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08116CF0: .4byte 0x02019000 _08116CF4: .4byte 0x03004b20 thumb_func_end sub_8116CAC thumb_func_start sub_8116CF8 sub_8116CF8: @ 8116CF8 push {lr} ldr r1, _08116D48 movs r0, 0 str r0, [r1, 0x8] movs r2, 0 adds r1, 0xC movs r3, 0 _08116D06: adds r0, r2, r1 strb r3, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x5 bls _08116D06 movs r2, 0 ldr r3, _08116D4C movs r1, 0 _08116D1A: adds r0, r2, r3 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _08116D1A movs r2, 0 ldr r3, _08116D50 movs r1, 0 _08116D2E: adds r0, r2, r3 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _08116D2E movs r0, 0x1 movs r1, 0xFF bl sub_8117C60 pop {r0} bx r0 .align 2, 0 _08116D48: .4byte 0x02019000 _08116D4C: .4byte 0x02019012 _08116D50: .4byte 0x02019016 thumb_func_end sub_8116CF8 thumb_func_start sub_8116D54 sub_8116D54: @ 8116D54 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x1C lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r5, r1, 24 mov r1, sp ldr r0, _08116D88 ldm r0!, {r2,r4,r6} stm r1!, {r2,r4,r6} ldr r0, [r0] str r0, [r1] add r2, sp, 0x10 adds r1, r2, 0 ldr r0, _08116D8C ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} mov r9, r2 cmp r5, 0xB bls _08116D90 movs r0, 0 b _08116E38 .align 2, 0 _08116D88: .4byte gUnknown_083F8ED8 _08116D8C: .4byte gUnknown_083F8EE8 _08116D90: ldr r6, _08116E48 ldr r1, _08116E4C lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r7, 0x14 ldrsh r2, [r0, r7] adds r2, r6, r2 ldr r4, _08116E50 lsls r5, 3 adds r3, r5, r4 ldrb r1, [r3, 0x2] strb r1, [r2, 0xB] ldrb r1, [r3, 0x2] strh r1, [r0, 0x20] adds r0, r4, 0x4 adds r0, r5, r0 ldr r1, [r6, 0x8] ldr r0, [r0] orrs r1, r0 str r1, [r6, 0x8] movs r3, 0 mov r8, r4 mov r12, r5 adds r5, r0, 0 adds r4, r6, 0 adds r4, 0x12 _08116DC8: lsls r0, r3, 2 mov r1, sp adds r2, r1, r0 ldr r0, [r2] ands r0, r5 cmp r0, 0 beq _08116DDE adds r1, r3, r4 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08116DDE: adds r0, r3, r4 ldrb r0, [r0] cmp r0, 0x2 bls _08116DEE ldr r0, [r6, 0x8] ldr r1, [r2] orrs r0, r1 str r0, [r6, 0x8] _08116DEE: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _08116DC8 movs r2, 0 ldr r0, _08116E54 add r0, r12 ldr r7, [r0] ldr r4, _08116E58 mov r5, r9 _08116E04: lsls r0, r2, 2 adds r3, r5, r0 ldr r0, [r3] ands r0, r7 cmp r0, 0 beq _08116E18 adds r1, r2, r4 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08116E18: adds r0, r2, r4 ldrb r0, [r0] cmp r0, 0x3 bls _08116E28 ldr r0, [r6, 0x8] ldr r1, [r3] orrs r0, r1 str r0, [r6, 0x8] _08116E28: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _08116E04 mov r0, r12 add r0, r8 ldrb r0, [r0, 0x2] _08116E38: add sp, 0x1C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08116E48: .4byte 0x02019000 _08116E4C: .4byte 0x03004b20 _08116E50: .4byte gUnknown_083F8D90 _08116E54: .4byte gUnknown_083F8D94 _08116E58: .4byte 0x02019016 thumb_func_end sub_8116D54 thumb_func_start sub_8116E5C sub_8116E5C: @ 8116E5C push {lr} lsls r0, 24 lsls r1, 24 lsrs r2, r1, 24 lsrs r3, r0, 24 movs r1, 0xFF lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0x12 bhi _08116EF0 cmp r2, 0xF bhi _08116EEC lsls r0, r2, 2 ldr r1, _08116E80 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08116E80: .4byte _08116E84 .align 2, 0 _08116E84: .4byte _08116EC4 .4byte _08116EC8 .4byte _08116EC8 .4byte _08116EC8 .4byte _08116EC8 .4byte _08116EDC .4byte _08116EEC .4byte _08116EEC .4byte _08116EEC .4byte _08116EEC .4byte _08116EDC .4byte _08116EEC .4byte _08116EEC .4byte _08116EEC .4byte _08116EEC .4byte _08116EDC _08116EC4: movs r0, 0x3 b _08116EF2 _08116EC8: adds r0, r2, 0x5 cmp r3, r0 beq _08116EE8 adds r0, 0x5 cmp r3, r0 beq _08116EE8 adds r0, 0x5 cmp r3, r0 bne _08116EF0 b _08116EE8 _08116EDC: adds r0, r2, 0x1 cmp r3, r0 blt _08116EF0 adds r0, r2, 0x4 cmp r3, r0 bgt _08116EF0 _08116EE8: movs r0, 0x1 b _08116EF2 _08116EEC: cmp r3, r2 beq _08116EE8 _08116EF0: movs r0, 0 _08116EF2: pop {r1} bx r1 thumb_func_end sub_8116E5C thumb_func_start sub_8116EF8 sub_8116EF8: @ 8116EF8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 str r0, [sp, 0x18] cmp r6, 0xA beq _08116F1E cmp r6, 0xA bgt _08116F1A cmp r6, 0x5 beq _08116F1E b _08116F7C _08116F1A: cmp r6, 0xF bne _08116F7C _08116F1E: adds r0, r6, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r6, 0x5 ldr r7, _08116F70 cmp r4, r0 bge _08116F5E adds r1, r7, 0 subs r1, 0xB8 ldr r3, _08116F74 ldr r5, [r1, 0x8] adds r6, r3, 0 adds r6, 0x8 adds r2, r0, 0 _08116F3A: lsls r0, r4, 2 adds r0, r4 lsls r1, r0, 2 adds r0, r1, r6 ldr r0, [r0] ands r0, r5 cmp r0, 0 bne _08116F54 adds r0, r1, r3 ldrh r0, [r0, 0x10] ldr r1, [sp, 0x18] orrs r1, r0 str r1, [sp, 0x18] _08116F54: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r2 blt _08116F3A _08116F5E: ldr r0, _08116F78 ldr r2, [sp, 0x18] ands r2, r0 str r2, [sp, 0x18] adds r0, r7, 0 adds r1, r2, 0 bl sub_8124CE8 b _0811713C .align 2, 0 _08116F70: .4byte 0x020190b8 _08116F74: .4byte gUnknown_083F8C00 _08116F78: .4byte 0x0000dfff _08116F7C: mov r0, sp ldr r1, _08116FC8 ldm r1!, {r2-r4} stm r0!, {r2-r4} ldm r1!, {r2-r4} stm r0!, {r2-r4} subs r0, r6, 0x1 lsls r0, 24 lsrs r0, 24 movs r3, 0x1 mov r10, r3 cmp r0, 0x3 bhi _08116F9A movs r4, 0x3 mov r10, r4 _08116F9A: adds r0, r6, 0 movs r1, 0x5 bl __udivsi3 lsls r0, 24 lsrs r0, 8 ldr r1, _08116FCC adds r0, r1 lsrs r7, r0, 16 adds r0, r6, 0 movs r1, 0x5 bl __umodsi3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _08116FF8 cmp r0, 0x2 bgt _08116FD4 cmp r0, 0x1 beq _08116FE4 ldr r4, _08116FD0 b _0811703A .align 2, 0 _08116FC8: .4byte gUnknown_083F8E9C _08116FCC: .4byte 0xffff0000 _08116FD0: .4byte 0x02019000 _08116FD4: cmp r0, 0x3 beq _0811700C cmp r0, 0x4 beq _08117020 ldr r4, _08116FE0 b _0811703A .align 2, 0 _08116FE0: .4byte 0x02019000 _08116FE4: ldr r3, _08116FF0 ldr r2, _08116FF4 adds r0, r2, 0 adds r0, 0x43 b _08117028 .align 2, 0 _08116FF0: .4byte 0x02020004 _08116FF4: .4byte 0x02019000 _08116FF8: ldr r3, _08117004 ldr r2, _08117008 adds r0, r2, 0 adds r0, 0x44 b _08117028 .align 2, 0 _08117004: .4byte 0x02020004 _08117008: .4byte 0x02019000 _0811700C: ldr r3, _08117018 ldr r2, _0811701C adds r0, r2, 0 adds r0, 0x45 b _08117028 .align 2, 0 _08117018: .4byte 0x02020004 _0811701C: .4byte 0x02019000 _08117020: ldr r3, _08117088 ldr r2, _0811708C adds r0, r2, 0 adds r0, 0x46 _08117028: ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x5] lsrs r0, 4 lsls r7, r0, 4 adds r4, r2, 0 _0811703A: mov r2, r10 cmp r2, 0x1 bne _08117094 ldr r1, _08117090 lsls r2, r6, 2 adds r0, r2, r6 lsls r0, 2 adds r1, 0x8 adds r0, r1 ldr r1, [r4, 0x8] ldr r0, [r0] ands r1, r0 str r2, [sp, 0x1C] cmp r1, 0 bne _0811713C adds r0, r6, 0 movs r1, 0x5 bl __udivsi3 lsls r0, 24 lsrs r0, 24 subs r1, r0, 0x1 lsls r1, 3 mov r3, sp adds r2, r3, r1 ldrh r1, [r2, 0x2] adds r1, r7, r1 strh r1, [r2, 0x2] adds r1, r4, 0 adds r1, 0xB8 lsls r0, 3 subs r0, 0x8 adds r2, r3, r0 adds r0, r1, 0 movs r1, 0xD bl sub_812492C b _08117122 .align 2, 0 _08117088: .4byte 0x02020004 _0811708C: .4byte 0x02019000 _08117090: .4byte gUnknown_083F8C00 _08117094: movs r4, 0 lsls r0, r6, 2 str r0, [sp, 0x1C] ldr r1, _0811714C mov r8, r1 ldr r2, _08117150 mov r9, r2 _081170A2: lsls r0, r4, 2 adds r0, r4 adds r0, r6, r0 adds r0, 0x5 lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r5, r0, 2 mov r0, r9 adds r0, 0x8 adds r0, r5, r0 mov r3, r8 ldr r1, [r3, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0811710E adds r0, r2, 0 movs r1, 0x5 bl __udivsi3 lsls r0, 24 lsrs r0, 24 subs r1, r0, 0x1 lsls r1, 3 mov r3, sp adds r2, r3, r1 ldrh r1, [r2, 0x2] adds r1, r7, r1 strh r1, [r2, 0x2] adds r1, r4, 0 adds r1, 0xD lsls r1, 24 lsrs r1, 24 lsls r0, 3 subs r0, 0x8 adds r2, r3, r0 mov r0, r8 adds r0, 0xB8 bl sub_812492C mov r0, r10 cmp r0, 0x3 bne _08117104 mov r1, r9 adds r0, r5, r1 ldrh r0, [r0, 0x10] str r0, [sp, 0x18] _08117104: mov r0, r10 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 _0811710E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _081170A2 mov r2, r10 cmp r2, 0x2 beq _08117122 movs r3, 0 str r3, [sp, 0x18] _08117122: ldr r0, _08117154 ldr r2, _08117150 ldr r4, [sp, 0x1C] adds r1, r4, r6 lsls r1, 2 adds r1, r2 ldrh r1, [r1, 0x10] ldr r2, [sp, 0x18] orrs r2, r1 str r2, [sp, 0x18] adds r1, r2, 0 bl sub_8124CE8 _0811713C: add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811714C: .4byte 0x02019000 _08117150: .4byte gUnknown_083F8C00 _08117154: .4byte 0x020190b8 thumb_func_end sub_8116EF8 thumb_func_start sub_8117158 sub_8117158: @ 8117158 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 lsls r0, 24 lsrs r5, r0, 24 ldr r4, _0811719C movs r0, 0x1 strh r0, [r4, 0x2A] movs r0, 0 movs r1, 0 bl sub_8117AA8 ldr r0, _081171A0 ldr r1, _081171A4 adds r4, r1 movs r1, 0x10 str r1, [sp] movs r1, 0xD str r1, [sp, 0x4] adds r1, r4, 0 movs r2, 0xE movs r3, 0x7 bl sub_8124E2C cmp r5, 0xF bhi _08117250 lsls r0, r5, 2 ldr r1, _081171A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0811719C: .4byte 0x02019000 _081171A0: .4byte 0x020219cc _081171A4: .4byte 0xfffff800 _081171A8: .4byte _081171AC .align 2, 0 _081171AC: .4byte _08117360 .4byte _081171EC .4byte _081171EC .4byte _081171EC .4byte _081171EC .4byte _08117220 .4byte _08117250 .4byte _08117250 .4byte _08117250 .4byte _08117250 .4byte _08117220 .4byte _08117250 .4byte _08117250 .4byte _08117250 .4byte _08117250 .4byte _08117220 _081171EC: movs r0, 0x4 str r0, [sp, 0x18] add r1, sp, 0x8 movs r0, 0 strb r0, [r1] adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0x3 bhi _08117258 add r4, sp, 0x10 adds r3, r1, 0 _08117202: ldrb r2, [r3] adds r2, r4 ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 adds r0, r5, r0 strb r0, [r2] ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] ldrb r0, [r3] ldr r1, [sp, 0x18] cmp r0, r1 bcc _08117202 b _08117258 _08117220: movs r0, 0x5 str r0, [sp, 0x18] add r1, sp, 0x8 movs r0, 0 strb r0, [r1] adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0x4 bhi _08117258 add r3, sp, 0x10 adds r2, r1, 0 _08117236: ldrb r1, [r2] adds r1, r3 ldrb r0, [r2] adds r0, r5, r0 strb r0, [r1] ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] ldrb r0, [r2] ldr r1, [sp, 0x18] cmp r0, r1 bcc _08117236 b _08117258 _08117250: movs r0, 0x1 str r0, [sp, 0x18] add r0, sp, 0x10 strb r5, [r0] _08117258: add r1, sp, 0x8 movs r0, 0 strb r0, [r1] adds r0, r1, 0 ldrb r0, [r0] ldr r1, [sp, 0x18] cmp r0, r1 bcs _08117360 mov r0, sp adds r0, 0xE str r0, [sp, 0x1C] add r1, sp, 0x10 mov r9, r1 add r0, sp, 0x8 mov r12, r0 mov r1, sp adds r1, 0xA str r1, [sp, 0x20] _0811727C: mov r1, r12 ldrb r0, [r1] add r0, r9 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r1, _08117370 adds r0, r1 ldrb r0, [r0, 0x6] ldr r1, [sp, 0x1C] strb r0, [r1] mov r1, r12 ldrb r0, [r1] add r0, r9 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r1, _08117370 adds r0, r1 ldrb r0, [r0, 0x3] ldr r1, [sp, 0x20] strh r0, [r1] mov r4, sp adds r4, 0x9 movs r0, 0 strb r0, [r4] ldrb r0, [r4] cmp r0, 0x2 bhi _08117350 add r5, sp, 0xC ldr r7, [sp, 0x20] ldr r0, _08117374 mov r8, r0 ldr r6, [sp, 0x1C] ldr r1, _08117378 mov r10, r1 _081172C8: mov r1, r12 ldrb r0, [r1] add r0, r9 ldrb r0, [r0] lsls r1, r0, 2 adds r1, r0 lsls r1, 2 ldr r0, _08117370 adds r1, r0 adds r3, r4, 0 ldrb r0, [r4] ldrb r1, [r1, 0x4] adds r0, r1 lsls r0, 5 strh r0, [r5] ldrh r0, [r7] ldrh r2, [r5] adds r2, r0 lsls r2, 1 add r2, r8 ldrb r0, [r6] ldrb r1, [r4] adds r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 1 add r0, r10 ldrh r0, [r0] strh r0, [r2] ldrh r0, [r7] ldrh r2, [r5] adds r2, r0 adds r2, 0x1 lsls r2, 1 add r2, r8 ldrb r0, [r6] ldrb r1, [r4] adds r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 1 mov r1, r10 adds r1, 0x2 adds r0, r1 ldrh r0, [r0] strh r0, [r2] ldrh r0, [r7] ldrh r2, [r5] adds r2, r0 adds r2, 0x2 lsls r2, 1 add r2, r8 ldrb r0, [r6] ldrb r1, [r4] adds r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 1 ldr r1, _0811737C adds r0, r1 ldrh r0, [r0] strh r0, [r2] ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldrb r0, [r3] cmp r0, 0x2 bls _081172C8 _08117350: mov r1, r12 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldrb r0, [r1] ldr r1, [sp, 0x18] cmp r0, r1 bcc _0811727C _08117360: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08117370: .4byte gUnknown_083F8C00 _08117374: .4byte 0x020219cc _08117378: .4byte 0x020189a0 _0811737C: .4byte 0x020189a4 thumb_func_end sub_8117158 thumb_func_start sub_8117380 sub_8117380: @ 8117380 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _081173B8 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x13 bls _08117398 movs r4, 0 _08117398: ldr r3, _081173BC lsls r0, r4, 2 adds r0, r4 lsls r2, r0, 2 adds r0, r2, r3 ldrb r0, [r0, 0x1] lsls r0, 28 lsrs r0, 28 cmp r0, 0x4 beq _081173EC cmp r0, 0x4 bgt _081173C0 cmp r0, 0x3 beq _081173C6 b _08117428 .align 2, 0 _081173B8: .4byte gUnknown_083F8EF4 _081173BC: .4byte gUnknown_083F8C00 _081173C0: cmp r0, 0xC beq _0811740C b _08117428 _081173C6: adds r0, r4, 0 movs r1, 0x5 bl __udivsi3 subs r0, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _081173E8 adds r0, 0x16 adds r1, r4, r0 ldrb r0, [r1] cmp r0, 0x3 bhi _08117428 ldrb r0, [r1] adds r0, 0x1 b _08117402 .align 2, 0 _081173E8: .4byte 0x02019000 _081173EC: subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08117408 adds r0, 0x12 adds r1, r4, r0 ldrb r0, [r1] cmp r0, 0x2 bhi _08117428 ldrb r0, [r1] adds r0, 0x2 _08117402: add r0, sp ldrb r0, [r0] b _0811742A .align 2, 0 _08117408: .4byte 0x02019000 _0811740C: ldr r1, _08117424 adds r0, r3, 0 adds r0, 0x8 adds r0, r2, r0 ldr r1, [r1, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08117428 mov r0, sp ldrb r0, [r0, 0x4] b _0811742A .align 2, 0 _08117424: .4byte 0x02019000 _08117428: movs r0, 0 _0811742A: add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end sub_8117380 thumb_func_start sub_8117434 sub_8117434: @ 8117434 push {r4-r6,lr} ldr r1, _081174AC ldr r4, _081174B0 ldrh r0, [r4, 0x2C] strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0x2E] strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0x30] strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0x32] strh r0, [r1] movs r0, 0x2E ldrsh r2, [r4, r0] ldr r0, _081174B4 movs r3, 0 ldrsh r1, [r0, r3] adds r1, 0x50 adds r0, r2, 0 muls r0, r1 movs r2, 0xE8 lsls r2, 7 subs r2, r0 movs r6, 0x2C ldrsh r5, [r4, r6] ldr r0, _081174B8 movs r6, 0 ldrsh r3, [r0, r6] adds r3, 0x74 adds r0, r5, 0 muls r0, r3 subs r2, r0 movs r5, 0x32 ldrsh r0, [r4, r5] muls r0, r1 movs r1, 0xA8 lsls r1, 7 subs r1, r0 movs r6, 0x30 ldrsh r0, [r4, r6] muls r0, r3 subs r1, r0 ldr r0, _081174BC strh r2, [r0] adds r0, 0x2 ldr r3, _081174C0 ands r2, r3 asrs r2, 16 strh r2, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 ands r1, r3 asrs r1, 16 strh r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081174AC: .4byte REG_BG2PA _081174B0: .4byte 0x02019000 _081174B4: .4byte 0x030027e0 _081174B8: .4byte 0x030024d0 _081174BC: .4byte REG_BG2X_L _081174C0: .4byte 0x0fff0000 thumb_func_end sub_8117434 thumb_func_start sub_81174C4 sub_81174C4: @ 81174C4 push {lr} lsls r0, 16 asrs r0, 16 lsls r1, 16 asrs r1, 16 muls r0, r1 adds r1, r0, 0 cmp r0, 0 bge _081174D8 adds r1, 0xFF _081174D8: lsls r0, r1, 8 asrs r0, 16 pop {r1} bx r1 thumb_func_end sub_81174C4 thumb_func_start sub_81174E0 sub_81174E0: @ 81174E0 push {lr} adds r1, r0, 0 movs r0, 0x80 lsls r0, 9 lsls r1, 16 asrs r1, 16 bl __divsi3 lsls r0, 16 asrs r0, 16 pop {r1} bx r1 thumb_func_end sub_81174E0 thumb_func_start sub_81174F8 sub_81174F8: @ 81174F8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1 bl sub_8072974 ldr r0, _08117520 bl sub_814AAF8 ldr r1, _08117524 adds r0, r4, 0 bl sub_80F914C pop {r4} pop {r0} bx r0 .align 2, 0 _08117520: .4byte 0x00002d9e _08117524: .4byte gUnknown_083F8EB4 thumb_func_end sub_81174F8 thumb_func_start sub_8117528 sub_8117528: @ 8117528 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08117554 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0811754C movs r0, 0 bl SetVBlankCallback ldr r0, _08117558 bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _0811754C: pop {r4} pop {r0} bx r0 .align 2, 0 _08117554: .4byte 0x0202f388 _08117558: .4byte sub_8115384 thumb_func_end sub_8117528 thumb_func_start sub_811755C sub_811755C: @ 811755C push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1A movs r3, 0xD bl Reset bl sub_8071EF4 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r2, _081175B4 ldrb r1, [r2, 0x8] lsls r1, 26 lsrs r1, 26 ldrb r3, [r2, 0x4] movs r0, 0x40 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x4] bl UpdatePaletteFade ldr r1, _081175B8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _081175BC str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _081175B4: .4byte 0x0202f388 _081175B8: .4byte 0x03004b20 _081175BC: .4byte sub_8117528 thumb_func_end sub_811755C thumb_func_start sub_81175C0 sub_81175C0: @ 81175C0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8071EF4 bl script_env_2_disable adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 thumb_func_end sub_81175C0 thumb_func_start sub_81175DC sub_81175DC: @ 81175DC push {r4,lr} lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 ldr r1, _08117624 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x8] adds r2, r1, 0x1 strh r2, [r0, 0x8] ldr r0, _08117628 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _08117608 lsls r0, r2, 16 asrs r0, 16 cmp r0, 0x3C ble _0811761C _08117608: ldr r1, _0811762C movs r0, 0x1 strh r0, [r1] bl sub_8071EF4 bl script_env_2_disable adds r0, r4, 0 bl DestroyTask _0811761C: pop {r4} pop {r0} bx r0 .align 2, 0 _08117624: .4byte 0x03004b20 _08117628: .4byte 0x03001770 _0811762C: .4byte 0x0202e8cc thumb_func_end sub_81175DC thumb_func_start sub_8117630 sub_8117630: @ 8117630 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r2, _0811768C ldr r0, _08117690 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 lsrs r1, 7 lsls r1, 1 adds r0, r1 adds r0, r2 ldrb r1, [r0] ldr r0, _08117694 movs r2, 0x2 movs r3, 0x1 bl ConvertIntToDecimalStringN ldr r5, _08117698 ldr r1, _0811769C adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow adds r0, r5, 0 movs r1, 0x1 movs r2, 0xF bl Print ldr r1, _081176A0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _081176A4 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811768C: .4byte gUnknown_083F8DF0 _08117690: .4byte 0x0202e8cc _08117694: .4byte 0x020231cc _08117698: .4byte 0x020234cc _0811769C: .4byte gUnknown_081C40DF _081176A0: .4byte 0x03004b20 _081176A4: .4byte sub_81174F8 thumb_func_end sub_8117630 thumb_func_start sub_81176A8 sub_81176A8: @ 81176A8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r7, r0, 24 ldr r0, _08117758 mov r10, r0 ldr r1, _0811775C lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r6, r0, r1 movs r0, 0x22 ldrsh r1, [r6, r0] mov r0, r10 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r5, _08117760 ldr r1, _08117764 adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0 movs r1, 0 movs r2, 0x9 movs r3, 0x3 bl DrawDefaultWindow adds r0, r5, 0 movs r1, 0x9 movs r2, 0x1 bl PrintCoinsString ldr r2, _08117768 ldr r1, _0811776C mov r8, r1 ldrh r1, [r1] movs r0, 0x1 mov r9, r0 ands r0, r1 lsrs r1, 7 lsls r1, 1 adds r0, r1 adds r0, r2 ldrb r4, [r0] mov r0, r10 adds r1, r4, 0 movs r2, 0x2 movs r3, 0x1 bl ConvertIntToDecimalStringN movs r1, 0x22 ldrsh r0, [r6, r1] cmp r0, r4 blt _081177BC mov r0, r8 ldrh r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0811777C mov r0, r9 ands r0, r1 cmp r0, 0 beq _0811777C movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow ldr r0, _08117770 movs r1, 0x1 movs r2, 0xF bl Print ldr r1, _08117774 ldr r2, _08117778 adds r0, r7, 0 movs r3, 0x3 bl sub_8116C34 b _081177E4 .align 2, 0 _08117758: .4byte 0x020231cc _0811775C: .4byte 0x03004b20 _08117760: .4byte 0x020234cc _08117764: .4byte gUnknown_0842C9E7 _08117768: .4byte gUnknown_083F8DF0 _0811776C: .4byte 0x0202e8cc _08117770: .4byte gUnknown_081C4139 _08117774: .4byte sub_8117630 _08117778: .4byte 0x0000ffff _0811777C: ldr r4, _081177AC ldr r1, _081177B0 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow adds r0, r4, 0 movs r1, 0x1 movs r2, 0xF bl Print ldr r1, _081177B4 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, _081177B8 str r1, [r0] b _081177E4 .align 2, 0 _081177AC: .4byte 0x020234cc _081177B0: .4byte gUnknown_081C40DF _081177B4: .4byte 0x03004b20 _081177B8: .4byte sub_81174F8 _081177BC: ldr r1, _081177F4 adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow adds r0, r5, 0 movs r1, 0x1 movs r2, 0xF bl Print ldr r0, _081177F8 str r0, [r6] movs r0, 0 strh r0, [r6, 0x22] strh r0, [r6, 0x8] _081177E4: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081177F4: .4byte gUnknown_081C411C _081177F8: .4byte sub_81175DC thumb_func_end sub_81176A8 thumb_func_start sub_81177FC sub_81177FC: @ 81177FC push {lr} bl script_env_2_enable ldr r0, _08117828 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0811782C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _08117830 ldr r2, _08117834 adds r0, r2 ldrh r0, [r0] strh r0, [r1, 0x22] pop {r0} bx r0 .align 2, 0 _08117828: .4byte sub_81176A8 _0811782C: .4byte 0x03004b20 _08117830: .4byte 0x02025734 _08117834: .4byte 0x00000494 thumb_func_end sub_81177FC thumb_func_start sub_8117838 sub_8117838: @ 8117838 push {r4,lr} lsls r0, 24 cmp r0, 0 bne _08117884 bl FreeAllSpritePalettes ldr r0, _08117870 bl LoadSpritePalettes ldr r0, _08117874 ldr r4, _08117878 adds r1, r4, 0 bl LZ77UnCompWram ldr r0, _0811787C movs r2, 0xE0 lsls r2, 4 adds r1, r4, r2 bl LZ77UnCompWram ldr r0, _08117880 movs r1, 0x80 lsls r1, 5 adds r4, r1 adds r1, r4, 0 bl LZ77UnCompWram b _08117888 .align 2, 0 _08117870: .4byte gUnknown_083F9E30 _08117874: .4byte gUnknown_083F92A8 _08117878: .4byte 0x02017000 _0811787C: .4byte gUnknown_083F90FC _08117880: .4byte gUnknown_083F9D3C _08117884: bl FreeAllSpritePalettes _08117888: pop {r4} pop {r0} bx r0 thumb_func_end sub_8117838 thumb_func_start sub_8117890 sub_8117890: @ 8117890 push {r4-r6,lr} adds r4, r1, 0 adds r6, r2, 0 lsls r4, 24 lsrs r4, 24 ldr r1, [r0, 0x4] ldrb r3, [r1] movs r1, 0x74 movs r2, 0x50 bl CreateSprite lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r0, _081178F4 lsls r1, r5, 4 adds r1, r5 lsls r1, 2 adds r1, r0 ldrh r0, [r6] strh r0, [r1, 0x2E] strh r4, [r1, 0x30] adds r3, r1, 0 adds r3, 0x3E ldrb r0, [r3] movs r2, 0x2 orrs r0, r2 strb r0, [r3] adds r1, 0x2C ldrb r0, [r1] movs r2, 0x40 orrs r0, r2 movs r2, 0x80 orrs r0, r2 strb r0, [r1] ldrh r2, [r6] adds r0, r2, 0 adds r0, 0x1E strh r0, [r6] lsls r0, 16 ldr r1, _081178F8 cmp r0, r1 bls _081178EC ldr r1, _081178FC adds r0, r2, r1 strh r0, [r6] _081178EC: adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081178F4: .4byte 0x02020004 _081178F8: .4byte 0x01670000 _081178FC: .4byte 0xfffffeb6 thumb_func_end sub_8117890 thumb_func_start sub_8117900 sub_8117900: @ 8117900 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 ldr r4, _08117A50 ldr r0, [r4] ldr r5, _08117A54 adds r1, r5, 0 bl LZ77UnCompWram str r5, [sp] mov r6, sp ldrh r1, [r4, 0x6] lsls r1, 16 ldrh r0, [r4, 0x4] orrs r0, r1 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet ldr r4, _08117A58 ldr r0, [r4] adds r1, r5, 0 bl LZ77UnCompWram str r5, [sp] ldrh r0, [r4, 0x4] strh r0, [r6, 0x4] ldrh r0, [r4, 0x6] strh r0, [r6, 0x6] mov r0, sp bl LoadSpriteSheet movs r7, 0 ldr r0, _08117A5C adds r0, r5 mov r9, r0 ldr r0, _08117A60 mov r8, r0 _08117950: lsls r0, r7, 1 adds r0, r7 lsls r0, 27 lsrs r4, r0, 24 movs r6, 0 lsls r5, r7, 2 _0811795C: lsls r1, r6, 1 adds r1, r6 lsls r1, 3 ldr r0, _08117A64 adds r0, r1, r0 adds r1, 0x94 adds r2, r4, 0 adds r2, 0x5C movs r3, 0x1E bl CreateSprite adds r1, r6, 0 adds r1, 0x1D adds r1, r5, r1 add r1, r9 strb r0, [r1] lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] adds r0, r4, 0 adds r0, 0x18 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x47 bls _081179A0 movs r4, 0 _081179A0: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 bls _0811795C adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x2 bls _08117950 movs r7, 0 ldr r5, _08117A68 ldr r4, _08117A60 _081179BA: lsls r1, r7, 1 adds r1, r7 lsls r1, 3 ldr r0, _08117A6C adds r0, r1, r0 adds r1, 0x94 lsls r1, 16 asrs r1, 16 movs r2, 0x46 movs r3, 0x1E bl CreateSprite adds r1, r7, 0 adds r1, 0x29 adds r1, r5 strb r0, [r1] lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x3 bls _081179BA movs r7, 0 ldr r5, _08117A68 ldr r4, _08117A60 _08117A00: lsls r2, r7, 1 adds r2, r7 lsls r2, 3 ldr r0, _08117A70 adds r0, r2, r0 adds r2, 0x5C lsls r2, 16 asrs r2, 16 movs r1, 0x7E movs r3, 0x1E bl CreateSprite adds r1, r7, 0 adds r1, 0x2D adds r1, r5 strb r0, [r1] lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x2 bls _08117A00 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08117A50: .4byte gUnknown_083F9F54 _08117A54: .4byte 0x02000000 _08117A58: .4byte gUnknown_083F9F5C _08117A5C: .4byte 0x0001903c _08117A60: .4byte 0x02020004 _08117A64: .4byte gSpriteTemplate_83FA07C _08117A68: .4byte 0x0201903c _08117A6C: .4byte gSpriteTemplate_83F9FD4 _08117A70: .4byte gSpriteTemplate_83FA034 thumb_func_end sub_8117900 thumb_func_start unref_sub_8117A74 unref_sub_8117A74: @ 8117A74 push {r4,r5,lr} movs r4, 0 ldr r5, _08117AA0 _08117A7A: adds r0, r4, 0 adds r0, 0x1D adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08117AA4 adds r0, r1 bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xB bls _08117A7A pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08117AA0: .4byte 0x0201903c _08117AA4: .4byte 0x02020004 thumb_func_end unref_sub_8117A74 thumb_func_start sub_8117AA8 sub_8117AA8: @ 8117AA8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 cmp r0, 0 beq _08117AF8 cmp r0, 0x1 bne _08117BA8 movs r3, 0 ldr r5, _08117AF0 ldr r4, _08117AF4 movs r2, 0x4 _08117ACA: adds r0, r3, 0 adds r0, 0x1D adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x12 bls _08117ACA b _08117BA8 .align 2, 0 _08117AF0: .4byte 0x02020004 _08117AF4: .4byte 0x0201903c _08117AF8: movs r3, 0 ldr r0, _08117B48 mov r12, r0 ldr r7, _08117B4C movs r1, 0x4 add r1, r12 mov r9, r1 ldr r5, _08117B50 adds r4, r7, 0 adds r4, 0x3C movs r6, 0x5 negs r6, r6 _08117B10: lsls r2, r3, 3 mov r1, r9 adds r0, r2, r1 ldr r1, [r7, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08117B54 mov r1, r12 adds r0, r2, r1 ldrb r0, [r0, 0x2] cmp r0, r8 beq _08117B54 adds r0, r3, 0 adds r0, 0x1D adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _08117B6E .align 2, 0 _08117B48: .4byte gUnknown_083F8D90 _08117B4C: .4byte 0x02019000 _08117B50: .4byte 0x02020004 _08117B54: adds r0, r3, 0 adds r0, 0x1D adds r0, r4 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r2, [r1] adds r0, r6, 0 ands r0, r2 strb r0, [r1] _08117B6E: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xB bls _08117B10 cmp r3, 0x12 bhi _08117BA8 ldr r6, _08117BB4 ldr r4, _08117BB8 movs r5, 0x5 negs r5, r5 _08117B84: adds r0, r3, 0 adds r0, 0x1D adds r0, r4 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 adds r1, 0x3E ldrb r2, [r1] adds r0, r5, 0 ands r0, r2 strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x12 bls _08117B84 _08117BA8: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08117BB4: .4byte 0x02020004 _08117BB8: .4byte 0x0201903c thumb_func_end sub_8117AA8 thumb_func_start sub_8117BBC sub_8117BBC: @ 8117BBC push {r4-r7,lr} mov r7, r8 push {r7} movs r5, 0 ldr r0, _08117C50 mov r8, r0 ldr r4, _08117C54 movs r6, 0x4 _08117BCC: ldr r0, _08117C58 movs r1, 0x74 movs r2, 0x14 movs r3, 0xA bl CreateSprite adds r3, r5, 0 adds r3, 0x31 add r3, r8 strb r0, [r3] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] orrs r1, r6 strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x1 strh r1, [r0, 0x2E] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r4, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08117C5C str r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x5] movs r7, 0xD negs r7, r7 adds r2, r7, 0 ands r1, r2 orrs r1, r6 strb r1, [r0, 0x5] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x8 bl StartSpriteAnim adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _08117BCC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08117C50: .4byte 0x0201903c _08117C54: .4byte 0x02020004 _08117C58: .4byte gSpriteTemplate_83FA40C _08117C5C: .4byte sub_81184CC thumb_func_end sub_8117BBC thumb_func_start sub_8117C60 sub_8117C60: @ 8117C60 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsls r1, 24 lsrs r1, 24 mov r9, r1 movs r5, 0 cmp r0, 0 beq _08117CAC ldr r4, _08117CA4 ldr r3, _08117CA8 movs r2, 0x4 _08117C7E: adds r0, r5, 0 adds r0, 0x31 adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _08117C7E b _08117D58 .align 2, 0 _08117CA4: .4byte 0x02020004 _08117CA8: .4byte 0x0201903c _08117CAC: ldr r0, _08117CEC mov r12, r0 ldr r6, _08117CF0 movs r0, 0x3C add r0, r12 mov r8, r0 ldr r7, _08117CF4 movs r0, 0x5 negs r0, r0 mov r10, r0 _08117CC0: mov r0, r12 adds r0, 0xC adds r4, r5, r0 ldrb r0, [r4] cmp r0, 0 beq _08117CD0 cmp r5, r9 bne _08117CF8 _08117CD0: adds r0, r5, 0 adds r0, 0x31 add r0, r8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _08117D4E .align 2, 0 _08117CEC: .4byte 0x02019000 _08117CF0: .4byte 0x02020004 _08117CF4: .4byte gUnknown_083F8C00 _08117CF8: adds r3, r5, 0 adds r3, 0x31 add r3, r8 ldrb r0, [r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 adds r1, 0x3E ldrb r2, [r1] mov r0, r10 ands r0, r2 strb r0, [r1] ldrb r0, [r3] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r6 ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r7 ldrb r0, [r0, 0x3] adds r0, 0x1 lsls r0, 3 adds r0, 0x4 strh r0, [r2, 0x20] ldrb r0, [r3] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r6 ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r7 ldrb r0, [r0, 0x4] adds r0, 0x1 lsls r0, 3 adds r0, 0x3 strh r0, [r2, 0x22] _08117D4E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _08117CC0 _08117D58: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8117C60 thumb_func_start sub_8117D68 sub_8117D68: @ 8117D68 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08117D98 ldr r2, _08117D90 ldr r0, _08117D94 adds r0, 0x6C ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _08117DE2 .align 2, 0 _08117D90: .4byte 0x02020004 _08117D94: .4byte 0x02019000 _08117D98: ldr r4, _08117DE8 ldr r3, _08117DEC adds r3, 0x6C ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldrb r0, [r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldr r0, _08117DF0 lsls r2, r5, 2 adds r2, r5 lsls r2, 2 adds r2, r0 ldrb r0, [r2, 0x3] adds r0, 0x2 lsls r0, 3 strh r0, [r1, 0x20] ldrb r0, [r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r2, 0x4] adds r0, 0x2 lsls r0, 3 strh r0, [r1, 0x22] _08117DE2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08117DE8: .4byte 0x02020004 _08117DEC: .4byte 0x02019000 _08117DF0: .4byte gUnknown_083F8C00 thumb_func_end sub_8117D68 thumb_func_start sub_8117DF4 sub_8117DF4: @ 8117DF4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC ldr r4, _08117E84 ldr r0, [r4] ldr r5, _08117E88 adds r1, r5, 0 bl LZ77UnCompWram str r5, [sp, 0x4] add r0, sp, 0x4 ldrh r2, [r4, 0x6] lsls r2, 16 ldrh r1, [r4, 0x4] orrs r1, r2 str r1, [r0, 0x4] bl LoadSpriteSheet movs r1, 0xF mov r0, sp strh r1, [r0] movs r0, 0 ldr r1, _08117E8C adds r1, r5 mov r8, r1 ldr r7, _08117E90 _08117E2A: movs r4, 0 adds r6, r0, 0x1 lsls r5, r0, 2 _08117E30: adds r1, r5, r4 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 ldr r1, _08117E94 adds r0, r1 movs r1, 0x28 mov r2, sp bl sub_8117890 adds r1, r4, 0x7 adds r1, r5, r1 add r1, r8 strb r0, [r1] lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 adds r1, 0x2C ldrb r0, [r1] movs r2, 0x40 orrs r0, r2 movs r2, 0x80 orrs r0, r2 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _08117E30 lsls r0, r6, 24 lsrs r0, 24 cmp r0, 0x2 bls _08117E2A add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08117E84: .4byte gUnknown_083F9EE8 _08117E88: .4byte 0x02000000 _08117E8C: .4byte 0x0001903c _08117E90: .4byte 0x02020004 _08117E94: .4byte gSpriteTemplate_83FA0DC thumb_func_end sub_8117DF4 thumb_func_start sub_8117E98 sub_8117E98: @ 8117E98 push {r4-r6,lr} adds r6, r0, 0 ldr r0, _08117F1C ldrh r1, [r6, 0x2E] ldrh r0, [r0, 0x24] adds r1, r0 lsls r1, 16 lsrs r4, r1, 16 asrs r1, 16 ldr r0, _08117F20 cmp r1, r0 ble _08117EB8 ldr r2, _08117F24 adds r0, r1, r2 lsls r0, 16 lsrs r4, r0, 16 _08117EB8: adds r0, r4, 0 bl sine2 lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 bl cosine2 lsls r2, r5, 16 asrs r2, 16 movs r3, 0x30 ldrsh r1, [r6, r3] muls r1, r2 asrs r1, 12 strh r1, [r6, 0x24] lsls r0, 16 asrs r4, r0, 16 negs r1, r4 movs r3, 0x30 ldrsh r0, [r6, r3] muls r0, r1 asrs r0, 12 strh r0, [r6, 0x26] ldrb r0, [r6, 0x3] lsls r0, 26 lsrs r3, r0, 27 cmp r2, 0 bge _08117EF2 adds r2, 0xF _08117EF2: lsls r0, r2, 12 lsrs r5, r0, 16 ldr r1, _08117F28 lsls r0, r3, 3 adds r1, r0, r1 adds r0, r4, 0 cmp r0, 0 bge _08117F04 adds r0, 0xF _08117F04: asrs r0, 4 strh r0, [r1, 0x6] strh r0, [r1] strh r5, [r1, 0x2] lsls r0, r5, 16 asrs r0, 16 negs r0, r0 strh r0, [r1, 0x4] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08117F1C: .4byte 0x02019000 _08117F20: .4byte 0x00000167 _08117F24: .4byte 0xfffffe98 _08117F28: .4byte 0x030027f0 thumb_func_end sub_8117E98 thumb_func_start sub_8117F2C sub_8117F2C: @ 8117F2C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r5, 0 ldr r7, _081180C8 mov r6, sp _08117F3A: ldr r0, _081180CC lsls r4, r5, 3 adds r4, r0 ldr r0, [r4] adds r1, r7, 0 bl LZ77UnCompWram str r7, [sp] ldrh r2, [r4, 0x4] ldr r0, _081180D0 ldr r1, [r6, 0x4] ands r1, r0 orrs r1, r2 str r1, [r6, 0x4] ldrh r2, [r4, 0x6] lsls r2, 16 ldr r0, _081180D4 ands r0, r1 orrs r0, r2 str r0, [r6, 0x4] mov r0, sp bl LoadSpriteSheet adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _08117F3A ldr r0, _081180D8 movs r1, 0xD0 movs r2, 0x10 movs r3, 0x4 bl CreateSprite ldr r4, _081180DC adds r1, r4, 0 adds r1, 0x50 strb r0, [r1] ldr r3, _081180E0 ldrb r1, [r1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] movs r5, 0 adds r4, 0x3C adds r7, r3, 0 _08117FA2: lsls r1, r5, 19 movs r0, 0xC4 lsls r0, 16 adds r1, r0 asrs r1, 16 ldr r0, _081180E4 movs r2, 0x18 movs r3, 0 bl CreateSprite adds r3, r5, 0 adds r3, 0x15 adds r3, r4 strb r0, [r3] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 adds r0, 0x2C ldrb r1, [r0] movs r6, 0x40 orrs r1, r6 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _08117FA2 ldr r0, _081180E8 movs r1, 0x78 movs r2, 0x44 movs r3, 0x4 bl CreateSprite ldr r3, _081180DC adds r1, r3, 0 adds r1, 0x55 strb r0, [r1] ldr r2, _081180E0 ldrb r1, [r1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x2C ldrb r1, [r0] orrs r1, r6 strb r1, [r0] movs r5, 0 adds r3, 0x3C mov r8, r3 adds r4, r2, 0 _08118020: lsls r1, r5, 20 movs r0, 0xC0 lsls r0, 16 adds r1, r0 asrs r1, 16 ldr r0, _081180EC movs r2, 0x24 movs r3, 0x4 bl CreateSprite adds r2, r5, 0 adds r2, 0x1A add r2, r8 strb r0, [r2] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] movs r7, 0x4 orrs r1, r7 strb r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x2C ldrb r1, [r0] movs r6, 0x40 orrs r1, r6 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _08118020 ldr r0, _081180F0 movs r1, 0x98 movs r2, 0x60 movs r3, 0x9 bl CreateSprite ldr r3, _081180DC adds r3, 0x6C strb r0, [r3] ldr r4, _081180E0 ldrb r0, [r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r7 strb r0, [r1, 0x5] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x2C ldrb r1, [r0] orrs r1, r6 strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] orrs r1, r7 strb r1, [r0] add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081180C8: .4byte 0x02000000 _081180CC: .4byte gUnknown_083FA21C _081180D0: .4byte 0xffff0000 _081180D4: .4byte 0x0000ffff _081180D8: .4byte gSpriteTemplate_83FA2B0 _081180DC: .4byte 0x02019000 _081180E0: .4byte 0x02020004 _081180E4: .4byte gSpriteTemplate_83FA2C8 _081180E8: .4byte gSpriteTemplate_83FA2E0 _081180EC: .4byte gSpriteTemplate_83FA2F8 _081180F0: .4byte gSpriteTemplate_83FA310 thumb_func_end sub_8117F2C thumb_func_start sub_81180F4 sub_81180F4: @ 81180F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 lsrs r7, r0, 16 movs r0, 0xFA lsls r0, 2 mov r8, r0 movs r4, 0 movs r6, 0 ldr r1, _081181D4 mov r9, r1 ldr r0, _081181D8 mov r10, r0 _08118114: adds r0, r7, 0 mov r1, r8 bl __udivsi3 lsls r0, 24 lsrs r5, r0, 24 adds r3, r6, 0 adds r3, 0x15 mov r0, r9 adds r0, 0x3C adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081181D8 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r0, r3, 0 cmp r5, 0 bne _0811814E cmp r4, 0 bne _0811814E cmp r6, 0x3 bne _081181A2 _0811814E: mov r3, r9 adds r3, 0x3C adds r3, r0, r3 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r10 adds r0, 0x3E ldrb r1, [r0] movs r4, 0x5 negs r4, r4 adds r2, r4, 0 ands r1, r2 strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 mov r1, r10 adds r3, r0, r1 adds r4, r3, 0 adds r4, 0x40 ldr r1, _081181DC adds r0, r1 ldr r0, [r0] ldr r1, [r0] lsls r0, r5, 2 adds r0, r1 ldrh r2, [r0] ldrh r4, [r4] adds r2, r4 ldr r4, _081181E0 adds r0, r4, 0 ands r2, r0 ldrh r0, [r3, 0x4] ldr r4, _081181E4 adds r1, r4, 0 ands r0, r1 orrs r0, r2 strh r0, [r3, 0x4] movs r4, 0x1 _081181A2: adds r0, r7, 0 mov r1, r8 bl __umodsi3 lsls r0, 16 lsrs r7, r0, 16 mov r0, r8 movs r1, 0xA bl __udivsi3 lsls r0, 16 lsrs r0, 16 mov r8, r0 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 bls _08118114 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081181D4: .4byte 0x02019000 _081181D8: .4byte 0x02020004 _081181DC: .4byte 0x0202000c _081181E0: .4byte 0x000003ff _081181E4: .4byte 0xfffffc00 thumb_func_end sub_81180F4 thumb_func_start sub_81181E8 sub_81181E8: @ 81181E8 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08118220 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x13 bls _08118200 movs r4, 0 _08118200: ldr r3, _08118224 lsls r0, r4, 2 adds r0, r4 lsls r2, r0, 2 adds r0, r2, r3 ldrb r0, [r0, 0x1] lsls r0, 28 lsrs r0, 28 cmp r0, 0x4 beq _08118254 cmp r0, 0x4 bgt _08118228 cmp r0, 0x3 beq _0811822E b _08118290 .align 2, 0 _08118220: .4byte gUnknown_083FA608 _08118224: .4byte gUnknown_083F8C00 _08118228: cmp r0, 0xC beq _08118274 b _08118290 _0811822E: adds r0, r4, 0 movs r1, 0x5 bl __udivsi3 subs r0, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08118250 adds r0, 0x16 adds r1, r4, r0 ldrb r0, [r1] cmp r0, 0x3 bhi _08118290 ldrb r0, [r1] adds r0, 0x1 b _0811826A .align 2, 0 _08118250: .4byte 0x02019000 _08118254: subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08118270 adds r0, 0x12 adds r1, r4, r0 ldrb r0, [r1] cmp r0, 0x2 bhi _08118290 ldrb r0, [r1] adds r0, 0x2 _0811826A: add r0, sp ldrb r0, [r0] b _08118292 .align 2, 0 _08118270: .4byte 0x02019000 _08118274: ldr r1, _0811828C adds r0, r3, 0 adds r0, 0x8 adds r0, r2, r0 ldr r1, [r1, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08118290 mov r0, sp ldrb r0, [r0, 0x4] b _08118292 .align 2, 0 _0811828C: .4byte 0x02019000 _08118290: movs r0, 0 _08118292: add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end sub_81181E8 thumb_func_start sub_811829C sub_811829C: @ 811829C push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _081182E8 adds r1, 0x55 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 ldr r2, _081182EC adds r4, r1, r2 bl sub_81181E8 adds r3, r4, 0 adds r3, 0x2B strb r0, [r3] adds r2, r4, 0 adds r2, 0x40 ldr r1, [r4, 0x8] ldrb r0, [r3] ldr r1, [r1] lsls r0, 2 adds r0, r1 ldrh r1, [r0] ldrh r2, [r2] adds r1, r2 ldr r2, _081182F0 adds r0, r2, 0 ands r1, r0 ldrh r2, [r4, 0x4] ldr r0, _081182F4 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] pop {r4} pop {r0} bx r0 .align 2, 0 _081182E8: .4byte 0x02019000 _081182EC: .4byte 0x02020004 _081182F0: .4byte 0x000003ff _081182F4: .4byte 0xfffffc00 thumb_func_end sub_811829C thumb_func_start sub_81182F8 sub_81182F8: @ 81182F8 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r2, r0, 24 movs r5, 0 ldr r0, _08118320 ldrb r1, [r0, 0x19] adds r3, r0, 0 cmp r1, 0x1 bne _08118310 movs r5, 0x2 _08118310: cmp r2, 0x6 bls _08118316 b _08118464 _08118316: lsls r0, r2, 2 ldr r1, _08118324 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08118320: .4byte 0x02019000 _08118324: .4byte _08118328 .align 2, 0 _08118328: .4byte _08118464 .4byte _08118420 .4byte _081183F8 .4byte _081183EC .4byte _081183C4 .4byte _081183B8 .4byte _08118344 _08118344: movs r4, 0 ldr r5, _081183A8 ldr r0, _081183AC mov r8, r0 movs r2, 0x5 negs r2, r2 mov r12, r2 adds r6, r5, 0 adds r6, 0x8 ldr r7, _081183B0 _08118358: adds r3, r4, 0 adds r3, 0x1A add r3, r8 ldrb r0, [r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r2, [r1] mov r0, r12 ands r0, r2 strb r0, [r1] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r5 adds r2, r3, 0 adds r2, 0x40 adds r0, r6 ldr r0, [r0] ldr r0, [r0] ldrh r1, [r0] ldrh r2, [r2] adds r1, r2 ldr r2, _081183B4 adds r0, r2, 0 ands r1, r0 ldrh r2, [r3, 0x4] adds r0, r7, 0 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _08118358 b _081184B2 .align 2, 0 _081183A8: .4byte 0x02020004 _081183AC: .4byte 0x0201903c _081183B0: .4byte 0xfffffc00 _081183B4: .4byte 0x000003ff _081183B8: ldr r2, _081183C0 adds r0, r3, 0 adds r0, 0x58 b _08118426 .align 2, 0 _081183C0: .4byte 0x02020004 _081183C4: ldr r2, _081183E8 adds r0, r3, 0 adds r0, 0x58 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r2 adds r4, r3, 0 adds r4, 0x40 adds r2, 0x8 adds r0, r2 ldr r0, [r0] ldr r1, [r0] lsls r0, r5, 2 adds r0, r1 ldrh r1, [r0, 0x8] b _08118442 .align 2, 0 _081183E8: .4byte 0x02020004 _081183EC: ldr r2, _081183F4 adds r0, r3, 0 adds r0, 0x57 b _08118426 .align 2, 0 _081183F4: .4byte 0x02020004 _081183F8: ldr r2, _0811841C adds r0, r3, 0 adds r0, 0x57 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r2 adds r4, r3, 0 adds r4, 0x40 adds r2, 0x8 adds r0, r2 ldr r0, [r0] ldr r1, [r0] lsls r0, r5, 2 adds r0, r1 ldrh r1, [r0, 0x8] b _08118442 .align 2, 0 _0811841C: .4byte 0x02020004 _08118420: ldr r2, _08118458 adds r0, r3, 0 adds r0, 0x56 _08118426: ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r2 adds r4, r3, 0 adds r4, 0x40 adds r2, 0x8 adds r0, r2 ldr r0, [r0] ldr r1, [r0] lsls r0, r5, 2 adds r0, r1 ldrh r1, [r0, 0x4] _08118442: ldrh r4, [r4] adds r1, r4 ldr r2, _0811845C adds r0, r2, 0 ands r1, r0 ldrh r2, [r3, 0x4] ldr r0, _08118460 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] b _081184B2 .align 2, 0 _08118458: .4byte 0x02020004 _0811845C: .4byte 0x000003ff _08118460: .4byte 0xfffffc00 _08118464: movs r4, 0 lsls r6, r5, 2 ldr r5, _081184BC ldr r0, _081184C0 mov r8, r0 adds r7, r5, 0 adds r7, 0x8 ldr r2, _081184C4 mov r12, r2 _08118476: adds r0, r4, 0 adds r0, 0x1A add r0, r8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r5 adds r2, r3, 0 adds r2, 0x40 adds r0, r7 ldr r0, [r0] ldr r0, [r0] adds r0, r6, r0 ldrh r1, [r0, 0x8] ldrh r2, [r2] adds r1, r2 ldr r2, _081184C8 adds r0, r2, 0 ands r1, r0 ldrh r2, [r3, 0x4] mov r0, r12 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _08118476 _081184B2: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081184BC: .4byte 0x02020004 _081184C0: .4byte 0x0201903c _081184C4: .4byte 0xfffffc00 _081184C8: .4byte 0x000003ff thumb_func_end sub_81182F8 thumb_func_start sub_81184CC sub_81184CC: @ 81184CC ldr r1, _081184D4 ldrh r1, [r1, 0x26] strh r1, [r0, 0x24] bx lr .align 2, 0 _081184D4: .4byte 0x02019000 thumb_func_end sub_81184CC thumb_func_start sub_81184D8 sub_81184D8: @ 81184D8 push {r4,r5,lr} sub sp, 0x8 ldr r4, _08118544 ldr r0, [r4] ldr r5, _08118548 adds r1, r5, 0 bl LZ77UnCompWram str r5, [sp] ldrh r1, [r4, 0x6] lsls r1, 16 ldrh r0, [r4, 0x4] orrs r0, r1 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet ldr r0, _0811854C movs r1, 0x74 movs r2, 0x50 movs r3, 0x51 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _08118550 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0xC8 lsls r0, 9 adds r5, r0 ldrh r0, [r5, 0x24] movs r2, 0 strh r0, [r1, 0x2E] strh r2, [r1, 0x30] adds r3, r1, 0 adds r3, 0x2C ldrb r0, [r3] movs r2, 0x40 orrs r0, r2 movs r2, 0x80 orrs r0, r2 strb r0, [r3] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x2 orrs r0, r2 strb r0, [r1] add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08118544: .4byte gUnknown_083FA42C _08118548: .4byte 0x02000000 _0811854C: .4byte gSpriteTemplate_83FA434 _08118550: .4byte 0x02020004 thumb_func_end sub_81184D8 thumb_func_start sub_8118554 sub_8118554: @ 8118554 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 ldr r1, _08118574 lsls r0, 3 adds r0, r1 ldr r2, _08118578 ldrh r1, [r2, 0x2C] strh r1, [r0, 0x6] ldrh r1, [r2, 0x2C] strh r1, [r0] ldrh r1, [r2, 0x2E] strh r1, [r0, 0x2] ldrh r1, [r2, 0x30] strh r1, [r0, 0x4] bx lr .align 2, 0 _08118574: .4byte 0x030027f0 _08118578: .4byte 0x02019000 thumb_func_end sub_8118554 thumb_func_start sub_811857C sub_811857C: @ 811857C push {r4-r6,lr} movs r4, 0 ldr r6, _081185DC ldr r5, _081185E0 _08118584: movs r3, 0x39 subs r3, r4 lsls r3, 24 lsrs r3, 24 ldr r0, _081185E4 movs r1, 0x74 movs r2, 0x50 bl CreateSprite adds r3, r4, r6 strb r0, [r3] lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _081185CA ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x2 orrs r1, r2 strb r1, [r0] _081185CA: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _08118584 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081185DC: .4byte 0x0201903c _081185E0: .4byte 0x02020004 _081185E4: .4byte gSpriteTemplate_83FA40C thumb_func_end sub_811857C thumb_func_start sub_81185E8 sub_81185E8: @ 81185E8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _08118660 adds r0, 0x3C ldrb r5, [r0] movs r6, 0 ldr r7, _08118664 movs r0, 0x1C adds r0, r7 mov r10, r0 movs r1, 0x2E adds r1, r7 mov r9, r1 mov r8, r6 _0811860A: lsls r4, r5, 4 adds r4, r5 lsls r4, 2 adds r0, r4, r7 adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x4 orrs r1, r2 strb r1, [r3] mov r1, r10 adds r2, r4, r1 ldr r1, _08118668 str r1, [r2] movs r1, 0 bl StartSpriteAnim movs r1, 0 adds r2, r5, 0x1 adds r3, r6, 0x1 _08118632: lsls r0, r1, 1 adds r0, r4 add r0, r9 mov r5, r8 strh r5, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x7 bls _08118632 lsls r0, r2, 24 lsrs r5, r0, 24 lsls r0, r3, 24 lsrs r6, r0, 24 cmp r6, 0x5 bls _0811860A pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08118660: .4byte 0x02019000 _08118664: .4byte 0x02020004 _08118668: .4byte SpriteCallbackDummy thumb_func_end sub_81185E8 thumb_func_start sub_811866C sub_811866C: @ 811866C push {r4,r5,lr} adds r3, r0, 0 ldr r0, _0811869C ldrh r4, [r0, 0x24] movs r2, 0x24 ldrsh r1, [r0, r2] ldrh r2, [r3, 0x34] movs r5, 0x34 ldrsh r0, [r3, r5] cmp r1, r0 ble _081186A8 movs r1, 0xB4 lsls r1, 1 adds r0, r2, r1 subs r2, r0, r4 strh r2, [r3, 0x3A] lsls r1, r2, 16 ldr r0, _081186A0 cmp r1, r0 ble _081186AC ldr r5, _081186A4 adds r0, r2, r5 b _081186AA .align 2, 0 _0811869C: .4byte 0x02019000 _081186A0: .4byte 0x01670000 _081186A4: .4byte 0xfffffe98 _081186A8: subs r0, r2, r4 _081186AA: strh r0, [r3, 0x3A] _081186AC: movs r1, 0x3A ldrsh r0, [r3, r1] pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_811866C thumb_func_start sub_81186B8 sub_81186B8: @ 81186B8 push {r4,lr} bl sub_811866C ldr r4, _081186E0 lsls r0, 16 asrs r0, 16 bl __floatsisf ldr r1, _081186E4 bl __divsf3 bl __fixunssfsi adds r4, 0x7E strb r0, [r4] ldrb r0, [r4] pop {r4} pop {r1} bx r1 .align 2, 0 _081186E0: .4byte 0x02019000 _081186E4: .4byte 0x41f00000 thumb_func_end sub_81186B8 thumb_func_start sub_81186E8 sub_81186E8: @ 81186E8 push {r4,lr} adds r4, r0, 0 bl sub_811866C lsls r0, 16 asrs r0, 16 movs r1, 0x1E bl __modsi3 lsls r0, 16 asrs r1, r0, 16 cmp r1, 0xE bne _08118708 movs r0, 0 strh r0, [r4, 0x32] b _0811871E _08118708: cmp r1, 0xD bgt _08118710 movs r0, 0xE b _08118712 _08118710: movs r0, 0x2B _08118712: subs r0, r1 lsls r0, 16 lsrs r0, 16 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 _0811871E: pop {r4} pop {r1} bx r1 thumb_func_end sub_81186E8 thumb_func_start sub_8118724 sub_8118724: @ 8118724 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 ldr r5, _08118770 adds r4, r5, 0 adds r4, 0x8C adds r1, r5, 0 adds r1, 0x90 ldr r0, [r4] ldr r1, [r1] bl __addsf3 adds r1, r0, 0 str r1, [r4] movs r0, 0x88 adds r0, r5 mov r8, r0 ldr r0, [r0] bl __addsf3 adds r4, r0, 0 mov r1, r8 str r4, [r1] ldr r7, _08118774 adds r1, r7, 0 bl __gesf2 cmp r0, 0 blt _08118778 adds r0, r4, 0 adds r1, r7, 0 bl __subsf3 mov r2, r8 str r0, [r2] b _08118790 .align 2, 0 _08118770: .4byte 0x02019000 _08118774: .4byte 0x43b40000 _08118778: ldr r1, _08118824 adds r0, r4, 0 bl __ltsf2 cmp r0, 0 bge _08118790 adds r0, r4, 0 adds r1, r7, 0 bl __addsf3 mov r1, r8 str r0, [r1] _08118790: adds r0, r5, 0 adds r0, 0x88 ldr r0, [r0] bl __fixsfsi strh r0, [r6, 0x34] adds r4, r5, 0 adds r4, 0x98 adds r1, r5, 0 adds r1, 0x9C ldr r0, [r4] ldr r1, [r1] bl __addsf3 adds r1, r0, 0 str r1, [r4] subs r4, 0x4 ldr r0, [r4] bl __addsf3 str r0, [r4] bl __fixsfsi strh r0, [r6, 0x36] ldrh r0, [r6, 0x34] bl sine2 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrh r0, [r6, 0x34] bl cosine2 lsls r4, 16 asrs r4, 16 movs r2, 0x36 ldrsh r1, [r6, r2] muls r1, r4 asrs r1, 12 strh r1, [r6, 0x24] lsls r0, 16 asrs r0, 16 negs r0, r0 movs r2, 0x36 ldrsh r1, [r6, r2] muls r0, r1 asrs r0, 12 strh r0, [r6, 0x26] bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 beq _08118818 ldr r0, _08118828 ldr r4, _0811882C ldrh r2, [r6, 0x24] lsls r2, 24 asrs r2, 24 adds r1, r4, 0 bl m4aMPlayPanpotControl ldr r0, _08118830 ldrh r2, [r6, 0x24] lsls r2, 24 asrs r2, 24 adds r1, r4, 0 bl m4aMPlayPanpotControl _08118818: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08118824: .4byte 0x00000000 _08118828: .4byte 0x030073c0 _0811882C: .4byte 0x0000ffff _08118830: .4byte 0x03007400 thumb_func_end sub_8118724 thumb_func_start sub_8118834 sub_8118834: @ 8118834 push {r4,r5,lr} adds r5, r0, 0 ldr r1, _0811888C ldrh r0, [r5, 0x3A] ldrh r1, [r1, 0x24] adds r2, r0, r1 strh r2, [r5, 0x34] lsls r1, r2, 16 ldr r0, _08118890 cmp r1, r0 ble _08118850 ldr r1, _08118894 adds r0, r2, r1 strh r0, [r5, 0x34] _08118850: ldrh r0, [r5, 0x34] bl sine2 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrh r0, [r5, 0x34] bl cosine2 lsls r4, 16 asrs r4, 16 movs r2, 0x36 ldrsh r1, [r5, r2] muls r1, r4 asrs r1, 12 strh r1, [r5, 0x24] lsls r0, 16 asrs r0, 16 negs r0, r0 movs r2, 0x36 ldrsh r1, [r5, r2] muls r0, r1 ldr r1, _08118898 asrs r0, 12 ldrh r1, [r1] adds r0, r1 strh r0, [r5, 0x26] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811888C: .4byte 0x02019000 _08118890: .4byte 0x01670000 _08118894: .4byte 0xfffffe98 _08118898: .4byte 0x030027e0 thumb_func_end sub_8118834 thumb_func_start sub_811889C sub_811889C: @ 811889C push {r4-r6,lr} adds r5, r0, 0 bl sub_8118724 ldrh r0, [r5, 0x32] adds r0, 0x1 strh r0, [r5, 0x32] ldrh r0, [r5, 0x36] adds r0, 0x84 lsls r0, 16 lsrs r0, 16 cmp r0, 0xD4 bls _081188C2 adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 b _081188CE _081188C2: adds r2, r5, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 _081188CE: strb r0, [r2] movs r1, 0x32 ldrsh r0, [r5, r1] cmp r0, 0x1D ble _0811898E movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 bne _08118908 ldr r6, _08118900 adds r4, r6, 0 adds r4, 0x94 adds r0, r6, 0 adds r0, 0xA0 ldr r0, [r0] ldr r1, _08118904 bl __subsf3 adds r1, r0, 0 ldr r0, [r4] bl __lesf2 cmp r0, 0 bgt _0811898E b _08118926 .align 2, 0 _08118900: .4byte 0x02019000 _08118904: .4byte 0x40000000 _08118908: ldr r6, _08118994 adds r4, r6, 0 adds r4, 0x94 adds r0, r6, 0 adds r0, 0xA0 ldr r0, [r0] ldr r1, _08118998 bl __subsf3 adds r1, r0, 0 ldr r0, [r4] bl __gesf2 cmp r0, 0 blt _0811898E _08118926: adds r1, r6, 0 adds r1, 0x7D movs r0, 0xFF strb r0, [r1] ldrb r1, [r6, 0x3] movs r0, 0x7F ands r0, r1 strb r0, [r6, 0x3] adds r0, r5, 0 adds r0, 0x2B ldrb r1, [r0] adds r1, 0x3 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnim adds r0, r5, 0 bl sub_81186B8 movs r0, 0x1E strh r0, [r5, 0x36] adds r0, r5, 0 bl sub_811866C movs r1, 0x3A ldrsh r0, [r5, r1] movs r1, 0x1E bl __divsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 subs r1, r0 lsls r1, 1 adds r1, 0xF strh r1, [r5, 0x3A] ldr r0, _0811899C str r0, [r5, 0x1C] movs r0, 0x47 bl m4aSongNumStartOrChange adds r2, r6, 0 adds r2, 0x9C adds r1, r6, 0 adds r1, 0x98 ldr r0, _081189A0 str r0, [r1] str r0, [r2] subs r1, 0xC ldr r0, _081189A4 str r0, [r1] _0811898E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08118994: .4byte 0x02019000 _08118998: .4byte 0x40000000 _0811899C: .4byte sub_8118834 _081189A0: .4byte 0x00000000 _081189A4: .4byte 0xbf800000 thumb_func_end sub_811889C thumb_func_start sub_81189A8 sub_81189A8: @ 81189A8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r7, r0, 0 bl sub_8118724 movs r1, 0x34 ldrsh r0, [r7, r1] cmp r0, 0 beq _081189C6 cmp r0, 0xB4 beq _08118A2C b _08118B0C _081189C6: movs r1, 0x2E ldrsh r0, [r7, r1] cmp r0, 0x1 bne _081189D0 b _08118B0C _081189D0: movs r1, 0x3C ldrsh r0, [r7, r1] bl __floatsisf mov r8, r0 ldr r0, _08118A24 mov r9, r0 ldr r1, _08118A28 mov r10, r1 ldrb r4, [r1, 0x4] lsls r4, 30 lsrs r0, r4, 25 add r0, r9 ldrb r0, [r0, 0x1] bl __floatsisf adds r1, r0, 0 mov r0, r8 bl __mulsf3 adds r6, r0, 0 lsrs r0, r4, 25 add r0, r9 ldrb r0, [r0, 0x2] subs r0, 0x1 bl __floatsisf adds r1, r0, 0 adds r0, r6, 0 bl __addsf3 adds r5, r0, 0 lsrs r4, 25 add r4, r9 ldrh r0, [r4, 0xC] bl __floatsisf adds r1, r0, 0 mov r0, r8 bl __divsf3 b _08118A8A .align 2, 0 _08118A24: .4byte gUnknown_083F8DF4 _08118A28: .4byte 0x02019000 _08118A2C: movs r1, 0x2E ldrsh r0, [r7, r1] cmp r0, 0 beq _08118B0C movs r1, 0x3C ldrsh r0, [r7, r1] bl __floatsisf mov r8, r0 ldr r0, _08118B1C mov r9, r0 ldr r1, _08118B20 mov r10, r1 ldrb r4, [r1, 0x4] lsls r4, 30 lsrs r0, r4, 25 add r0, r9 ldrb r0, [r0, 0x1] bl __floatsisf adds r1, r0, 0 mov r0, r8 bl __mulsf3 adds r6, r0, 0 lsrs r0, r4, 25 add r0, r9 ldrb r0, [r0, 0x2] subs r0, 0x1 bl __floatsisf adds r1, r0, 0 adds r0, r6, 0 bl __addsf3 adds r5, r0, 0 lsrs r4, 25 add r4, r9 ldrh r0, [r4, 0xC] bl __floatsisf adds r1, r0, 0 mov r0, r8 bl __divsf3 bl __negsf2 _08118A8A: adds r2, r0, 0 mov r6, r10 adds r1, r6, 0 adds r1, 0xA0 adds r0, r6, 0 adds r0, 0x94 ldr r0, [r0] str r0, [r1] adds r0, r6, 0 adds r0, 0x98 str r2, [r0] movs r0, 0x9C adds r0, r6 mov r8, r0 adds r0, r2, 0 adds r1, r2, 0 bl __addsf3 adds r1, r5, 0 bl __divsf3 adds r4, r0, 0 adds r0, r5, 0 adds r1, r5, 0 bl __mulsf3 adds r1, r0, 0 ldr r0, _08118B24 bl __divsf3 adds r1, r0, 0 adds r0, r4, 0 bl __addsf3 bl __negsf2 mov r1, r8 str r0, [r1] adds r1, r6, 0 adds r1, 0x8C ldr r0, _08118B28 str r0, [r1] adds r2, r7, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] adds r0, r7, 0 adds r0, 0x2A movs r2, 0 strb r2, [r0] adds r3, r7, 0 adds r3, 0x3F ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r3] ldr r0, _08118B2C str r0, [r7, 0x1C] strh r2, [r7, 0x32] _08118B0C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08118B1C: .4byte gUnknown_083F8DF4 _08118B20: .4byte 0x02019000 _08118B24: .4byte 0x40000000 _08118B28: .4byte 0x00000000 _08118B2C: .4byte sub_811889C thumb_func_end sub_81189A8 thumb_func_start sub_8118B30 sub_8118B30: @ 8118B30 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x32 ldrsh r0, [r5, r1] bl __floatsisf adds r4, r0, 0 ldr r1, _08118BCC bl __mulsf3 adds r1, r4, 0 bl __mulsf3 bl __fixsfsi adds r1, r0, 0 subs r1, 0x2D strh r1, [r5, 0x26] ldrh r0, [r5, 0x32] adds r0, 0x1 strh r0, [r5, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x1D ble _08118BC6 lsls r0, r1, 16 cmp r0, 0 blt _08118BC6 ldr r4, _08118BD0 adds r1, r4, 0 adds r1, 0x7D movs r0, 0xFF strb r0, [r1] ldrb r1, [r4, 0x3] movs r0, 0x7F ands r0, r1 strb r0, [r4, 0x3] adds r0, r5, 0 adds r0, 0x2B ldrb r1, [r0] adds r1, 0x3 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnim adds r0, r5, 0 bl sub_81186B8 movs r0, 0x1E strh r0, [r5, 0x36] adds r0, r5, 0 bl sub_811866C movs r1, 0x3A ldrsh r0, [r5, r1] movs r1, 0x1E bl __divsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 subs r1, r0 lsls r1, 1 adds r1, 0xF strh r1, [r5, 0x3A] ldr r0, _08118BD4 str r0, [r5, 0x1C] movs r0, 0x47 bl m4aSongNumStartOrChange ldrb r0, [r4, 0x3] movs r1, 0x40 orrs r0, r1 strb r0, [r4, 0x3] _08118BC6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08118BCC: .4byte 0x3d4ccccd _08118BD0: .4byte 0x02019000 _08118BD4: .4byte sub_8118834 thumb_func_end sub_8118B30 thumb_func_start sub_8118BD8 sub_8118BD8: @ 8118BD8 push {r4,lr} adds r3, r0, 0 ldrh r0, [r3, 0x32] adds r1, r0, 0x1 strh r1, [r3, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x2C bgt _08118C1C ldrh r4, [r3, 0x26] subs r0, r4, 0x1 strh r0, [r3, 0x26] lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x2D bne _08118CA2 ldr r2, _08118C14 ldr r0, _08118C18 adds r0, 0x73 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0x1 bne _08118CA2 strh r4, [r3, 0x26] b _08118CA2 .align 2, 0 _08118C14: .4byte 0x02020004 _08118C18: .4byte 0x02019000 _08118C1C: lsls r0, r1, 16 asrs r0, 16 movs r2, 0x3C ldrsh r1, [r3, r2] cmp r0, r1 bge _08118C68 ldr r2, _08118C58 ldr r0, _08118C5C adds r0, 0x73 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x2C ldrb r0, [r0] lsls r0, 26 cmp r0, 0 bne _08118CA2 adds r0, r1, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0x1 bne _08118C60 ldrh r0, [r3, 0x26] adds r0, 0x1 strh r0, [r3, 0x26] b _08118CA2 .align 2, 0 _08118C58: .4byte 0x02020004 _08118C5C: .4byte 0x02019000 _08118C60: ldrh r0, [r3, 0x26] subs r0, 0x1 strh r0, [r3, 0x26] b _08118CA2 _08118C68: adds r2, r3, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r2, 0 movs r0, 0x1 strb r0, [r1] movs r0, 0x3F adds r0, r3 mov r12, r0 ldrb r0, [r0] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 mov r1, r12 strb r0, [r1] strh r2, [r3, 0x32] ldr r0, _08118CA8 str r0, [r3, 0x1C] movs r0, 0x3D bl m4aSongNumStart _08118CA2: pop {r4} pop {r0} bx r0 .align 2, 0 _08118CA8: .4byte sub_8118B30 thumb_func_end sub_8118BD8 thumb_func_start sub_8118CAC sub_8118CAC: @ 8118CAC push {r4,lr} adds r4, r0, 0 bl sub_8118724 movs r0, 0x34 ldrsh r1, [r4, r0] cmp r1, 0x5A beq _08118CC6 movs r0, 0x87 lsls r0, 1 cmp r1, r0 beq _08118CD0 b _08118CE0 _08118CC6: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08118CE0 b _08118CD8 _08118CD0: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _08118CE0 _08118CD8: ldr r0, _08118CE8 str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x32] _08118CE0: pop {r4} pop {r0} bx r0 .align 2, 0 _08118CE8: .4byte sub_8118BD8 thumb_func_end sub_8118CAC thumb_func_start sub_8118CEC sub_8118CEC: @ 8118CEC push {r4,lr} adds r4, r0, 0 bl sub_8118724 ldr r0, _08118D10 ldrb r0, [r0, 0x3] lsls r0, 27 lsrs r0, 27 cmp r0, 0 beq _08118D04 cmp r0, 0x1 beq _08118D18 _08118D04: adds r0, r4, 0 bl sub_8119224 ldr r0, _08118D14 b _08118D20 .align 2, 0 _08118D10: .4byte 0x02019000 _08118D14: .4byte sub_81189A8 _08118D18: adds r0, r4, 0 bl sub_81193D4 ldr r0, _08118D28 _08118D20: str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _08118D28: .4byte sub_8118CAC thumb_func_end sub_8118CEC thumb_func_start prev_quest_read_x24_hm_usage prev_quest_read_x24_hm_usage: @ 8118D2C push {r4,r5,lr} adds r5, r0, 0 bl sub_8118724 ldrh r0, [r5, 0x32] subs r0, 0x1 strh r0, [r5, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0xF bne _08118D50 ldr r4, _08118DB8 adds r4, 0x98 ldr r0, [r4] ldr r1, _08118DBC bl __mulsf3 str r0, [r4] _08118D50: movs r1, 0x32 ldrsh r0, [r5, r1] cmp r0, 0 bne _08118DDC movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 bne _08118DC4 ldr r1, _08118DB8 adds r2, r1, 0 adds r2, 0x7D movs r0, 0xFF strb r0, [r2] ldrb r2, [r1, 0x3] movs r0, 0x7F ands r0, r2 strb r0, [r1, 0x3] adds r0, r5, 0 adds r0, 0x2B ldrb r1, [r0] adds r1, 0x3 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnim adds r0, r5, 0 bl sub_81186B8 movs r0, 0x1E strh r0, [r5, 0x36] adds r0, r5, 0 bl sub_811866C movs r1, 0x3A ldrsh r0, [r5, r1] movs r1, 0x1E bl __divsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 subs r1, r0 lsls r1, 1 adds r1, 0xF strh r1, [r5, 0x3A] ldr r0, _08118DC0 str r0, [r5, 0x1C] movs r0, 0x47 bl m4aSongNumStartOrChange b _08118DDC .align 2, 0 _08118DB8: .4byte 0x02019000 _08118DBC: .4byte 0xbf800000 _08118DC0: .4byte sub_8118834 _08118DC4: adds r0, r5, 0 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] movs r0, 0x38 bl m4aSongNumStart adds r0, r5, 0 bl sub_811952C _08118DDC: pop {r4,r5} pop {r0} bx r0 thumb_func_end prev_quest_read_x24_hm_usage thumb_func_start sub_8118DE4 sub_8118DE4: @ 8118DE4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 bl sub_8118724 movs r0, 0 strh r0, [r7, 0x32] adds r0, r7, 0 bl sub_81186B8 ldr r1, _08118E70 ldr r6, _08118E74 movs r0, 0x7E adds r0, r6 mov r8, r0 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r0, [r0] ldr r1, [r6, 0x8] ands r0, r1 cmp r0, 0 bne _08118E7C adds r1, r6, 0 adds r1, 0x7D movs r0, 0xFF strb r0, [r1] ldrb r1, [r6, 0x3] movs r0, 0x7F ands r0, r1 strb r0, [r6, 0x3] adds r0, r7, 0 adds r0, 0x2B ldrb r1, [r0] adds r1, 0x3 lsls r1, 24 lsrs r1, 24 adds r0, r7, 0 bl StartSpriteAnim adds r0, r7, 0 bl sub_81186B8 movs r0, 0x1E strh r0, [r7, 0x36] adds r0, r7, 0 bl sub_811866C movs r1, 0x3A ldrsh r0, [r7, r1] movs r1, 0x1E bl __divsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 subs r1, r0 lsls r1, 1 adds r1, 0xF strh r1, [r7, 0x3A] ldr r0, _08118E78 str r0, [r7, 0x1C] movs r0, 0x47 bl m4aSongNumStartOrChange b _08118F74 .align 2, 0 _08118E70: .4byte gUnknown_083F8D90 _08118E74: .4byte 0x02019000 _08118E78: .4byte sub_8118834 _08118E7C: movs r0, 0x38 bl m4aSongNumStart bl Random movs r2, 0x1 mov r9, r2 mov r1, r9 ands r1, r0 mov r9, r1 cmp r1, 0 beq _08118EC0 adds r1, r6, 0 adds r1, 0x8C ldr r0, _08118EB8 str r0, [r1] mov r2, r8 ldrb r0, [r2] adds r0, 0x1 movs r1, 0xC bl __modsi3 lsls r1, r0, 24 lsrs r2, r1, 24 adds r1, r6, 0 adds r1, 0x7F strb r0, [r1] ldr r5, _08118EBC b _08118EF4 .align 2, 0 _08118EB8: .4byte 0x00000000 _08118EBC: .4byte gUnknown_083F8DF4 _08118EC0: adds r4, r6, 0 adds r4, 0x8C ldr r5, _08118F1C ldrb r0, [r6, 0x4] lsls r0, 30 lsrs r0, 25 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, [r0] adds r0, r1, 0 bl __addsf3 str r0, [r4] mov r0, r8 ldrb r4, [r0] adds r0, r4, 0 adds r0, 0xB movs r1, 0xC bl __modsi3 lsls r0, 24 lsrs r2, r0, 24 adds r0, r6, 0 adds r0, 0x7F strb r4, [r0] _08118EF4: ldr r0, _08118F20 lsls r1, r2, 3 adds r0, 0x4 adds r1, r0 ldr r2, _08118F24 ldr r1, [r1] ldr r0, [r2, 0x8] ands r1, r0 cmp r1, 0 beq _08118F28 movs r0, 0x1 strh r0, [r7, 0x2E] ldrb r0, [r2, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r5 ldrb r0, [r0, 0x2] strh r0, [r7, 0x32] b _08118F64 .align 2, 0 _08118F1C: .4byte gUnknown_083F8DF4 _08118F20: .4byte gUnknown_083F8D90 _08118F24: .4byte 0x02019000 _08118F28: strh r1, [r7, 0x2E] ldrb r1, [r2, 0x4] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08118F40 lsls r0, r1, 30 lsrs r0, 25 adds r0, r5 ldrb r0, [r0, 0x1] strh r0, [r7, 0x32] b _08118F64 _08118F40: lsls r0, r1, 30 lsrs r0, 25 adds r0, r5 ldrb r0, [r0, 0x2] strh r0, [r7, 0x32] mov r1, r9 cmp r1, 0 beq _08118F5C adds r1, r2, 0 adds r1, 0x8C ldr r0, _08118F58 b _08118F62 .align 2, 0 _08118F58: .4byte 0x3f000000 _08118F5C: adds r1, r2, 0 adds r1, 0x8C ldr r0, _08118F80 _08118F62: str r0, [r1] _08118F64: adds r1, r2, 0 adds r1, 0x98 ldr r0, _08118F84 str r0, [r1] ldr r0, _08118F88 str r0, [r7, 0x1C] movs r0, 0x5 strh r0, [r7, 0x30] _08118F74: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08118F80: .4byte 0xbfc00000 _08118F84: .4byte 0x3dae147b _08118F88: .4byte prev_quest_read_x24_hm_usage thumb_func_end sub_8118DE4 thumb_func_start sub_8118F8C sub_8118F8C: @ 8118F8C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r6, r0, 0 bl sub_8118724 ldr r5, _08119018 movs r0, 0x8C adds r0, r5 mov r8, r0 ldr r0, [r0] ldr r1, _0811901C bl __gtsf2 cmp r0, 0 bgt _0811906E adds r0, r6, 0 bl sub_81186B8 adds r0, r6, 0 bl sub_81186E8 lsls r0, 16 cmp r0, 0 bne _08119030 adds r1, r5, 0 adds r1, 0x90 ldr r0, _08119020 str r0, [r1] ldr r1, _08119024 mov r9, r1 ldrb r0, [r5, 0x4] lsls r7, r0, 30 lsrs r0, r7, 25 add r0, r9 movs r4, 0x3 ldrsb r4, [r0, r4] adds r0, r4, 0 bl __floatsisf adds r5, r0, 0 cmp r4, 0 bge _08118FEC ldr r1, _08119028 bl __addsf3 adds r5, r0, 0 _08118FEC: lsrs r0, r7, 25 add r0, r9 ldrb r0, [r0, 0x4] adds r0, 0x1 bl __floatsisf adds r1, r0, 0 adds r0, r5, 0 bl __divsf3 adds r1, r0, 0 mov r2, r8 ldr r0, [r2] bl __subsf3 mov r1, r8 str r0, [r1] movs r0, 0x4 strh r0, [r6, 0x30] ldr r0, _0811902C str r0, [r6, 0x1C] b _0811906E .align 2, 0 _08119018: .4byte 0x02019000 _0811901C: .4byte 0x3f000000 _08119020: .4byte 0x00000000 _08119024: .4byte gUnknown_083F8DF4 _08119028: .4byte 0x43800000 _0811902C: .4byte sub_8118DE4 _08119030: adds r6, r5, 0 adds r6, 0x90 ldr r0, [r6] ldr r4, _0811907C adds r1, r4, 0 bl __nesf2 cmp r0, 0 beq _0811906E mov r2, r8 ldr r0, [r2] adds r1, r4, 0 bl __ltsf2 cmp r0, 0 bge _0811906E str r4, [r6] mov r0, r8 str r4, [r0] adds r4, r5, 0 adds r4, 0x98 ldr r0, [r4] bl __extendsfdf2 ldr r2, _08119080 ldr r3, _08119084 bl __divdf3 bl __truncdfsf2 str r0, [r4] _0811906E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811907C: .4byte 0x00000000 _08119080: .4byte 0x3ff33333 _08119084: .4byte 0x33333333 thumb_func_end sub_8118F8C thumb_func_start sub_8119088 sub_8119088: @ 8119088 push {r4-r7,lr} adds r6, r0, 0 bl sub_8118724 ldr r5, _08119120 adds r0, r5, 0 adds r0, 0x94 ldr r0, [r0] ldr r1, _08119124 bl __gtsf2 cmp r0, 0 bgt _0811911A adds r7, r5, 0 adds r7, 0x98 adds r0, r5, 0 adds r0, 0x86 movs r1, 0 ldrsh r4, [r0, r1] adds r0, r4, 0 bl __floatsisf adds r2, r0, 0 cmp r4, 0 bge _081190C2 ldr r1, _08119128 bl __addsf3 adds r2, r0, 0 _081190C2: ldr r0, _0811912C adds r1, r2, 0 bl __divsf3 bl __negsf2 str r0, [r7] adds r7, r5, 0 adds r7, 0x90 adds r5, 0x8C adds r0, r4, 0 bl __floatsisf adds r2, r0, 0 cmp r4, 0 bge _081190EA ldr r1, _08119128 bl __addsf3 adds r2, r0, 0 _081190EA: ldr r0, [r5] adds r1, r2, 0 bl __divsf3 bl __negsf2 str r0, [r7] adds r1, r6, 0 adds r1, 0x2A movs r0, 0x2 strb r0, [r1] adds r2, r6, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r2] movs r0, 0x3 strh r0, [r6, 0x30] ldr r0, _08119130 str r0, [r6, 0x1C] _0811911A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08119120: .4byte 0x02019000 _08119124: .4byte 0x42200000 _08119128: .4byte 0x47800000 _0811912C: .4byte 0x40800000 _08119130: .4byte sub_8118F8C thumb_func_end sub_8119088 thumb_func_start sub_8119134 sub_8119134: @ 8119134 push {r4-r7,lr} adds r6, r0, 0 bl sub_8118724 ldr r4, _081191DC adds r0, r4, 0 adds r0, 0x94 ldr r0, [r0] ldr r1, _081191E0 bl __gtsf2 cmp r0, 0 bgt _081191D4 movs r0, 0x5D bl m4aSongNumStartOrChange adds r7, r4, 0 adds r7, 0x98 adds r0, r4, 0 adds r0, 0x84 movs r1, 0 ldrsh r5, [r0, r1] adds r0, r5, 0 bl __floatsisf adds r2, r0, 0 cmp r5, 0 bge _08119174 ldr r1, _081191E4 bl __addsf3 adds r2, r0, 0 _08119174: ldr r0, _081191E8 adds r1, r2, 0 bl __divsf3 bl __negsf2 str r0, [r7] adds r7, r4, 0 adds r7, 0x90 adds r0, r4, 0 adds r0, 0x8C ldr r1, [r0] ldr r0, _081191EC bl __subsf3 adds r4, r0, 0 adds r0, r5, 0 bl __floatsisf adds r2, r0, 0 cmp r5, 0 bge _081191A8 ldr r1, _081191E4 bl __addsf3 adds r2, r0, 0 _081191A8: adds r0, r4, 0 adds r1, r2, 0 bl __divsf3 str r0, [r7] adds r1, r6, 0 adds r1, 0x2A movs r0, 0x1 strb r0, [r1] adds r2, r6, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r2] movs r0, 0x2 strh r0, [r6, 0x30] ldr r0, _081191F0 str r0, [r6, 0x1C] _081191D4: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081191DC: .4byte 0x02019000 _081191E0: .4byte 0x42700000 _081191E4: .4byte 0x47800000 _081191E8: .4byte 0x41a00000 _081191EC: .4byte 0x3f800000 _081191F0: .4byte sub_8119088 thumb_func_end sub_8119134 thumb_func_start sub_81191F4 sub_81191F4: @ 81191F4 push {r4,lr} adds r4, r0, 0 movs r1, 0 movs r0, 0x1 strh r0, [r4, 0x30] strh r1, [r4, 0x32] adds r0, r4, 0 bl sub_8118724 adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, _08119220 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _08119220: .4byte sub_8119134 thumb_func_end sub_81191F4 thumb_func_start sub_8119224 sub_8119224: @ 8119224 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r7, r0, 0 ldr r1, _081193B8 mov r0, sp movs r2, 0x8 bl memcpy ldrh r0, [r7, 0x3C] subs r0, 0x2 lsls r0, 16 lsrs r0, 16 mov r9, r0 ldr r5, _081193BC ldr r0, _081193C0 movs r2, 0xC negs r2, r2 movs r1, 0x24 movs r3, 0x32 bl CreateSprite adds r1, r5, 0 adds r1, 0x73 strb r0, [r1] ldr r4, _081193C4 movs r0, 0x2E ldrsh r2, [r7, r0] lsls r2, 2 mov r1, sp adds r0, r1, r2 movs r3, 0 ldrsh r1, [r0, r3] mov r0, sp adds r0, 0x2 adds r0, r2 movs r3, 0 ldrsh r2, [r0, r3] adds r0, r4, 0 movs r3, 0x3B bl CreateSprite adds r1, r5, 0 adds r1, 0x74 strb r0, [r1] adds r4, 0x18 adds r0, r4, 0 movs r1, 0x24 movs r2, 0x8C movs r3, 0x33 bl CreateSprite adds r1, r5, 0 adds r1, 0x75 strb r0, [r1] ldr r3, _081193C8 ldrb r1, [r1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r2, [r0, 0x1] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x1] movs r6, 0 adds r4, r3, 0 mov r12, r5 ldr r0, _081193CC mov r8, r0 mov r10, r12 _081192BE: mov r1, r12 adds r3, r1, r6 adds r3, 0x73 ldrb r0, [r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 adds r1, 0x3E ldrb r2, [r1] movs r0, 0x3 negs r0, r0 ands r0, r2 strb r0, [r1] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 mov r1, r12 adds r1, 0x73 ldrb r1, [r1] strh r1, [r0, 0x36] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 mov r5, r12 adds r5, 0x74 ldrb r1, [r5] strh r1, [r0, 0x38] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 mov r1, r12 adds r1, 0x75 ldrb r1, [r1] strh r1, [r0, 0x3A] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 mov r1, r9 strh r1, [r0, 0x32] ldrb r0, [r3] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r4 movs r0, 0x3C ldrsh r3, [r7, r0] mov r0, r12 ldrb r1, [r0, 0x4] lsls r1, 30 lsrs r0, r1, 25 add r0, r8 ldrb r0, [r0, 0x1] muls r3, r0 lsrs r1, 25 add r1, r8 ldrb r0, [r1, 0x2] ldr r1, _081193D0 adds r0, r1 adds r3, r0 strh r3, [r2, 0x34] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldr r2, _081193C8 cmp r6, 0x2 bls _081192BE ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x2 orrs r1, r2 strb r1, [r0] mov r3, r10 str r7, [r3, 0x38] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081193B8: .4byte gUnknown_083FA60E _081193BC: .4byte 0x02019000 _081193C0: .4byte gSpriteTemplate_83FA50C _081193C4: .4byte gSpriteTemplate_83FA5C0 _081193C8: .4byte 0x02020004 _081193CC: .4byte gUnknown_083F8DF4 _081193D0: .4byte 0x0000ffff thumb_func_end sub_8119224 thumb_func_start sub_81193D4 sub_81193D4: @ 81193D4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 adds r7, r0, 0 movs r0, 0 mov r8, r0 ldr r1, _08119514 mov r0, sp movs r2, 0x8 bl memcpy ldrh r0, [r7, 0x3C] subs r0, 0x2 lsls r0, 16 lsrs r0, 16 mov r9, r0 ldr r0, _08119518 movs r1, 0x2E ldrsh r2, [r7, r1] lsls r2, 2 mov r3, sp adds r1, r3, r2 movs r3, 0 ldrsh r1, [r1, r3] mov r4, sp adds r4, 0x2 adds r2, r4, r2 movs r3, 0 ldrsh r2, [r2, r3] movs r3, 0x32 bl CreateSprite ldr r6, _0811951C adds r1, r6, 0 adds r1, 0x73 strb r0, [r1] ldrb r1, [r1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _08119520 adds r0, r5 ldrh r1, [r7, 0x2E] lsls r1, 24 lsrs r1, 24 bl StartSpriteAnim ldr r0, _08119524 movs r1, 0x2E ldrsh r2, [r7, r1] lsls r2, 2 mov r3, sp adds r1, r3, r2 movs r3, 0 ldrsh r1, [r1, r3] adds r4, r2 movs r3, 0 ldrsh r2, [r4, r3] movs r3, 0x33 bl CreateSprite adds r4, r6, 0 adds r4, 0x74 strb r0, [r4] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] mov r0, r9 lsls r2, r0, 16 asrs r2, 16 ldr r3, _08119528 ldrb r1, [r6, 0x4] lsls r1, 30 lsrs r0, r1, 25 adds r0, r3 ldrb r0, [r0, 0x1] muls r2, r0 lsrs r1, 25 adds r1, r3 ldrh r0, [r1, 0x10] adds r0, 0x2D adds r2, r0 strh r2, [r7, 0x3C] adds r3, r6, 0 _081194A2: mov r1, r8 adds r2, r6, r1 adds r2, 0x73 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r1, r6, 0 adds r1, 0x73 ldrb r1, [r1] strh r1, [r0, 0x36] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r4] strh r1, [r0, 0x38] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r4] strh r1, [r0, 0x3A] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r9 strh r1, [r0, 0x32] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldrh r0, [r7, 0x3C] subs r0, 0x2D strh r0, [r1, 0x34] mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x1 bls _081194A2 str r7, [r3, 0x38] add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08119514: .4byte gUnknown_083FA616 _08119518: .4byte gSpriteTemplate_83FA524 _0811951C: .4byte 0x02019000 _08119520: .4byte 0x02020004 _08119524: .4byte gSpriteTemplate_83FA5F0 _08119528: .4byte gUnknown_083F8DF4 thumb_func_end sub_81193D4 thumb_func_start sub_811952C sub_811952C: @ 811952C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 mov r8, r0 movs r0, 0 mov r10, r0 movs r1, 0x5 mov r9, r1 movs r2, 0 str r2, [sp, 0xC] mov r0, sp movs r1, 0 movs r2, 0xA bl memset bl Random lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x10] ldr r7, _08119610 adds r0, r7, 0 adds r0, 0x7D movs r6, 0x1 strb r6, [r0] ldrb r4, [r7, 0x3] movs r0, 0x20 orrs r4, r0 movs r0, 0x41 negs r0, r0 ands r4, r0 strb r4, [r7, 0x3] adds r1, r7, 0 adds r1, 0x7E movs r0, 0xFF strb r0, [r1] adds r5, r7, 0 adds r5, 0x88 mov r3, r8 movs r1, 0x34 ldrsh r0, [r3, r1] bl __floatsisf str r0, [r5] adds r1, r7, 0 adds r1, 0x98 ldr r0, _08119614 str r0, [r1] adds r3, r7, 0 adds r3, 0x8C ldr r2, _08119618 ldrb r0, [r7, 0x4] lsls r0, 30 lsrs r1, r0, 25 adds r2, 0x1C adds r1, r2 ldr r1, [r1] str r1, [r3] lsrs r0, 30 lsls r1, r0, 4 subs r1, r0 lsls r1, 1 adds r1, 0x21 lsls r4, 27 lsrs r4, 27 subs r6, r4 lsls r0, r6, 4 subs r0, r6 adds r1, r0 lsls r1, 16 lsrs r1, 16 mov r5, r10 mov r3, r8 movs r0, 0x34 ldrsh r2, [r3, r0] _081195C8: cmp r1, r2 bge _081195D4 adds r0, r1, 0 adds r0, 0x5A cmp r2, r0 ble _08119638 _081195D4: cmp r5, 0x3 beq _0811961C adds r0, r1, 0 adds r0, 0x5A lsls r0, 16 lsrs r1, r0, 16 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _081195C8 _081195EA: ldr r0, _08119610 ldrb r1, [r0, 0x3] movs r0, 0x1F ands r0, r1 cmp r0, 0 beq _08119664 mov r1, r8 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0 beq _08119658 movs r0, 0x98 lsls r0, 1 movs r1, 0x3F negs r1, r1 bl cry_related b _08119670 .align 2, 0 _08119610: .4byte 0x02019000 _08119614: .4byte 0x00000000 _08119618: .4byte gUnknown_083F8DF4 _0811961C: movs r0, 0x1 mov r3, r8 strh r0, [r3, 0x2E] ldr r2, _08119634 ldrb r1, [r2, 0x3] subs r0, 0x21 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x3] b _081195EA .align 2, 0 _08119634: .4byte 0x02019000 _08119638: lsrs r0, r5, 1 mov r1, r8 strh r0, [r1, 0x2E] ldr r3, _08119654 movs r1, 0x1 ands r1, r5 ldrb r2, [r3, 0x3] movs r0, 0x20 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x3] b _081195EA .align 2, 0 _08119654: .4byte 0x02019000 _08119658: movs r0, 0x98 lsls r0, 1 movs r1, 0x3F bl cry_related b _08119670 _08119664: movs r0, 0x99 lsls r0, 1 movs r1, 0x3F negs r1, r1 bl cry_related _08119670: movs r5, 0x2 ldr r4, _081196A0 adds r0, r4, 0 adds r0, 0x7F ldrb r0, [r0] adds r0, 0x2 movs r1, 0xC bl __modsi3 lsls r0, 24 lsrs r3, r0, 24 ldrb r1, [r4, 0x3] movs r0, 0x1F ands r0, r1 cmp r0, 0x1 bne _081196A4 ldrb r1, [r4, 0x4] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _081196A4 mov r0, r9 adds r0, 0x6 b _081196A8 .align 2, 0 _081196A0: .4byte 0x02019000 _081196A4: mov r2, r9 adds r0, r2, r5 _081196A8: lsls r0, 24 lsrs r0, 24 mov r9, r0 cmp r5, r9 bcs _0811970E ldr r6, _08119734 ldr r7, _08119738 _081196B6: lsls r0, r3, 3 ldr r1, _0811973C adds r0, r1 ldr r1, [r6, 0x8] ldr r2, [r0] ands r1, r2 cmp r1, 0 bne _081196F8 mov r0, r10 adds r1, r0, 0x1 lsls r1, 24 lsrs r1, 24 mov r10, r1 add r0, sp strb r5, [r0] ldr r0, [sp, 0xC] cmp r0, 0 bne _081196F8 ldrb r0, [r6, 0x1A] lsls r0, 28 lsrs r0, 28 ldr r1, _08119740 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r7 ldr r0, [r0] ands r2, r0 cmp r2, 0 beq _081196F8 str r5, [sp, 0xC] _081196F8: adds r0, r3, 0x1 movs r1, 0xC bl __modsi3 lsls r0, 24 lsrs r3, r0, 24 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r9 bcc _081196B6 _0811970E: ldrb r0, [r4, 0x3] lsls r0, 27 lsrs r0, 27 adds r0, 0x1 ldrb r1, [r4, 0x2] ands r0, r1 cmp r0, 0 beq _08119756 ldr r2, [sp, 0xC] cmp r2, 0 beq _08119744 movs r0, 0xFF ldr r3, [sp, 0x10] ands r0, r3 cmp r0, 0xBF bhi _08119744 mov r0, r8 strh r2, [r0, 0x3C] b _08119766 .align 2, 0 _08119734: .4byte 0x02019000 _08119738: .4byte gUnknown_083F8C0C _0811973C: .4byte gUnknown_083F8D94 _08119740: .4byte 0x0201901b _08119744: ldr r0, [sp, 0x10] mov r1, r10 bl __modsi3 add r0, sp ldrb r0, [r0] mov r1, r8 strh r0, [r1, 0x3C] b _08119766 _08119756: ldr r0, [sp, 0x10] mov r1, r10 bl __modsi3 add r0, sp ldrb r0, [r0] mov r2, r8 strh r0, [r2, 0x3C] _08119766: ldr r3, _0811977C mov r0, r8 str r3, [r0, 0x1C] add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811977C: .4byte sub_8118CEC thumb_func_end sub_811952C thumb_func_start sub_8119780 sub_8119780: @ 8119780 push {r4,lr} adds r2, r0, 0 ldrh r0, [r2, 0x30] adds r1, r0, 0x1 strh r1, [r2, 0x30] lsls r0, 16 asrs r0, 16 movs r3, 0x34 ldrsh r1, [r2, r3] cmp r0, r1 blt _081197CA ldrh r0, [r2, 0x20] subs r0, 0x2 strh r0, [r2, 0x20] lsls r0, 16 asrs r0, 16 movs r1, 0x10 negs r1, r1 cmp r0, r1 bge _081197CA ldr r4, _081197D0 ldrb r1, [r4, 0x3] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _081197BA movs r0, 0x40 orrs r0, r1 strb r0, [r4, 0x3] _081197BA: adds r0, r2, 0 bl DestroySprite movs r0, 0 strb r0, [r4, 0x1] ldr r0, _081197D4 ldrh r0, [r0] strh r0, [r4, 0x34] _081197CA: pop {r4} pop {r0} bx r0 .align 2, 0 _081197D0: .4byte 0x02019000 _081197D4: .4byte gUnknown_083FA61E thumb_func_end sub_8119780 thumb_func_start sub_81197D8 sub_81197D8: @ 81197D8 push {r4,lr} sub sp, 0x18 adds r4, r0, 0 ldr r1, _08119854 mov r0, sp movs r2, 0x18 bl memcpy ldrh r0, [r4, 0x30] adds r2, r0, 0x1 strh r2, [r4, 0x30] lsls r0, 16 asrs r0, 16 movs r3, 0x34 ldrsh r1, [r4, r3] cmp r0, r1 bge _0811985C movs r0, 0x1 ands r2, r0 cmp r2, 0 beq _08119836 ldr r3, _08119858 movs r0, 0x3C ldrsh r2, [r4, r0] lsls r2, 1 movs r1, 0x32 ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 lsls r0, 3 adds r2, r0 mov r1, sp adds r0, r1, r2 ldrh r0, [r0] strh r0, [r3] movs r3, 0x3C ldrsh r2, [r4, r3] adds r1, r2, 0x1 adds r0, r1, 0 cmp r1, 0 bge _0811982E adds r0, r2, 0x4 _0811982E: asrs r0, 2 lsls r0, 2 subs r0, r1, r0 strh r0, [r4, 0x3C] _08119836: adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] b _08119884 .align 2, 0 _08119854: .4byte gUnknown_083FA632 _08119858: .4byte 0x030027e0 _0811985C: ldr r1, _0811988C movs r0, 0 strh r0, [r1] ldr r2, _08119890 ldr r0, _08119894 adds r0, 0x73 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x2C ldrb r2, [r0] movs r1, 0x41 negs r1, r1 ands r1, r2 strb r1, [r0] adds r0, r4, 0 bl DestroySprite _08119884: add sp, 0x18 pop {r4} pop {r0} bx r0 .align 2, 0 _0811988C: .4byte 0x030027e0 _08119890: .4byte 0x02020004 _08119894: .4byte 0x02019000 thumb_func_end sub_81197D8 thumb_func_start sub_8119898 sub_8119898: @ 8119898 push {r4,r5,lr} adds r5, r0, 0 ldrh r0, [r5, 0x30] adds r0, 0x1 strh r0, [r5, 0x30] movs r1, 0x30 ldrsh r0, [r5, r1] bl __floatsisf adds r4, r0, 0 ldr r1, _08119948 bl __mulsf3 adds r1, r4, 0 bl __mulsf3 bl __fixsfsi strh r0, [r5, 0x26] ldr r3, _0811994C ldr r2, _08119950 ldrb r0, [r3, 0x1] subs r0, 0x1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 lsls r0, 1 adds r0, r2 ldrh r0, [r0] strh r0, [r3, 0x34] ldrb r0, [r3, 0x1] cmp r0, 0x12 bhi _081198DE adds r0, 0x1 strb r0, [r3, 0x1] _081198DE: movs r1, 0x30 ldrsh r0, [r5, r1] cmp r0, 0x3C ble _08119940 movs r0, 0 strh r0, [r5, 0x30] ldr r3, _08119954 str r3, [r5, 0x1C] ldr r2, _08119958 movs r0, 0x3A ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r2, 0 adds r4, 0x1C adds r0, r4 str r3, [r0] movs r0, 0x3A ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _0811995C strh r1, [r0, 0x30] movs r0, 0x38 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] movs r0, 0x38 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _08119960 str r1, [r0] movs r0, 0xD6 bl m4aSongNumStart _08119940: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08119948: .4byte 0x3d1fbe77 _0811994C: .4byte 0x02019000 _08119950: .4byte gUnknown_083FA61E _08119954: .4byte sub_8119780 _08119958: .4byte 0x02020004 _0811995C: .4byte 0x0000fffe _08119960: .4byte sub_81197D8 thumb_func_end sub_8119898 thumb_func_start sub_8119964 sub_8119964: @ 8119964 push {r4,lr} adds r4, r0, 0 movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0 bne _081199E4 ldr r3, _08119990 ldr r1, [r3, 0x38] movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0 bne _08119998 movs r0, 0x34 ldrsh r2, [r1, r0] ldr r1, _08119994 ldrb r0, [r3, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrh r0, [r0, 0x8] b _081199AA .align 2, 0 _08119990: .4byte 0x02019000 _08119994: .4byte gUnknown_083F8DF4 _08119998: movs r0, 0x34 ldrsh r2, [r1, r0] ldr r1, _081199D8 ldrb r0, [r3, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrh r0, [r0, 0x8] adds r0, 0xB4 _081199AA: cmp r2, r0 bne _08119A78 adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] movs r0, 0x2B bl m4aSongNumStart ldr r1, _081199DC movs r0, 0x1 strb r0, [r1, 0x1] ldr r0, _081199E0 ldrh r0, [r0] strh r0, [r1, 0x34] b _08119A78 .align 2, 0 _081199D8: .4byte gUnknown_083F8DF4 _081199DC: .4byte 0x02019000 _081199E0: .4byte gUnknown_083FA61E _081199E4: ldr r3, _08119A20 ldr r2, _08119A24 ldrb r0, [r3, 0x1] subs r0, 0x1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 lsls r0, 1 adds r0, r2 ldrh r0, [r0] strh r0, [r3, 0x34] ldrb r0, [r3, 0x1] cmp r0, 0x12 bhi _08119A04 adds r0, 0x1 strb r0, [r3, 0x1] _08119A04: ldr r1, [r3, 0x38] movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0 bne _08119A2C movs r0, 0x34 ldrsh r2, [r1, r0] ldr r1, _08119A28 ldrb r0, [r3, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrh r0, [r0, 0xA] b _08119A3E .align 2, 0 _08119A20: .4byte 0x02019000 _08119A24: .4byte gUnknown_083FA61E _08119A28: .4byte gUnknown_083F8DF4 _08119A2C: movs r0, 0x34 ldrsh r2, [r1, r0] ldr r1, _08119A80 ldrb r0, [r3, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrh r0, [r0, 0xA] adds r0, 0xB4 _08119A3E: cmp r2, r0 bne _08119A78 ldr r2, _08119A84 movs r0, 0x36 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r2, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08119A88 str r1, [r0] movs r0, 0x36 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldr r0, _08119A8C str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x3C] _08119A78: pop {r4} pop {r0} bx r0 .align 2, 0 _08119A80: .4byte gUnknown_083F8DF4 _08119A84: .4byte 0x02020004 _08119A88: .4byte sub_8119898 _08119A8C: .4byte SpriteCallbackDummy thumb_func_end sub_8119964 thumb_func_start sub_8119A90 sub_8119A90: @ 8119A90 adds r0, 0x3E ldrb r3, [r0] lsls r1, r3, 29 lsrs r1, 31 movs r2, 0x1 eors r2, r1 lsls r2, 2 movs r1, 0x5 negs r1, r1 ands r1, r3 orrs r1, r2 strb r1, [r0] bx lr thumb_func_end sub_8119A90 thumb_func_start sub_8119AAC sub_8119AAC: @ 8119AAC push {r4,r5,lr} adds r4, r0, 0 ldrh r2, [r4, 0x22] movs r0, 0x22 ldrsh r1, [r4, r0] movs r0, 0x10 negs r0, r0 cmp r1, r0 ble _08119AC4 subs r0, r2, 0x1 strh r0, [r4, 0x22] b _08119B12 _08119AC4: ldr r0, _08119B18 str r0, [r4, 0x1C] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] subs r2, 0x12 ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] movs r0, 0x5E bl m4aSongNumStop adds r0, r4, 0 bl DestroySprite ldr r5, _08119B1C ldr r4, _08119B20 adds r4, 0x74 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite _08119B12: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08119B18: .4byte SpriteCallbackDummy _08119B1C: .4byte 0x02020004 _08119B20: .4byte 0x02019000 thumb_func_end sub_8119AAC thumb_func_start sub_8119B24 sub_8119B24: @ 8119B24 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0 blt _08119B4E subs r1, 0x1 strh r1, [r4, 0x30] ldrh r0, [r4, 0x22] subs r0, 0x1 strh r0, [r4, 0x22] lsls r1, 16 cmp r1, 0 bne _08119BB8 adds r0, r4, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0x1 bne _08119BB8 b _08119B74 _08119B4E: ldrh r1, [r4, 0x34] movs r2, 0x34 ldrsh r0, [r4, r2] cmp r0, 0 blt _08119B84 subs r0, r1, 0x1 strh r0, [r4, 0x34] adds r0, r4, 0 adds r0, 0x2C ldrb r1, [r0] movs r0, 0x3F ands r0, r1 cmp r0, 0 bne _08119BB8 adds r0, r4, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0x1 bne _08119B7C _08119B74: ldrh r0, [r4, 0x26] adds r0, 0x1 strh r0, [r4, 0x26] b _08119BB8 _08119B7C: ldrh r0, [r4, 0x26] subs r0, 0x1 strh r0, [r4, 0x26] b _08119BB8 _08119B84: movs r0, 0x2B bl m4aSongNumStart ldr r0, _08119BC0 ldr r0, [r0, 0x38] ldrh r1, [r0, 0x2E] adds r1, 0x4 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim ldr r0, _08119BC4 str r0, [r4, 0x1C] ldr r2, _08119BC8 movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x2C ldrb r2, [r0] movs r1, 0x7F ands r1, r2 strb r1, [r0] _08119BB8: pop {r4} pop {r0} bx r0 .align 2, 0 _08119BC0: .4byte 0x02019000 _08119BC4: .4byte sub_8119AAC _08119BC8: .4byte 0x02020004 thumb_func_end sub_8119B24 thumb_func_start sub_8119BCC sub_8119BCC: @ 8119BCC push {r4,r5,lr} sub sp, 0x14 adds r4, r0, 0 ldr r1, _08119C44 mov r0, sp movs r2, 0x2 bl memcpy add r5, sp, 0x4 ldr r1, _08119C48 adds r0, r5, 0 movs r2, 0x10 bl memcpy ldrh r0, [r4, 0x30] subs r1, r0, 0x1 strh r1, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _08119C5C ldr r0, _08119C4C ldr r0, [r0, 0x38] movs r1, 0x2E ldrsh r0, [r0, r1] add r0, sp ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 1 ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 beq _08119CF6 movs r1, 0x20 ldrsh r0, [r4, r1] movs r4, 0x74 subs r4, r0 lsrs r0, r4, 31 adds r4, r0 asrs r4, 1 negs r4, r4 ldr r0, _08119C50 ldr r5, _08119C54 lsls r4, 24 asrs r4, 24 adds r1, r5, 0 adds r2, r4, 0 bl m4aMPlayPanpotControl ldr r0, _08119C58 adds r1, r5, 0 adds r2, r4, 0 bl m4aMPlayPanpotControl b _08119CF6 .align 2, 0 _08119C44: .4byte gUnknown_083FA64A _08119C48: .4byte gUnknown_083FA64C _08119C4C: .4byte 0x02019000 _08119C50: .4byte 0x030073c0 _08119C54: .4byte 0x0000ffff _08119C58: .4byte 0x03007400 _08119C5C: lsls r0, r1, 16 cmp r0, 0 blt _08119CAC ldr r0, _08119CA8 ldr r0, [r0, 0x38] movs r2, 0x2E ldrsh r0, [r0, r2] add r0, sp movs r2, 0 ldrsb r2, [r0, r2] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x7 subs r0, r1, r0 lsls r0, 1 adds r0, r5, r0 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 muls r0, r2 ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] movs r2, 0x30 ldrsh r0, [r4, r2] subs r1, r0 lsls r1, 1 mov r0, sp adds r0, 0x5 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] b _08119CF6 .align 2, 0 _08119CA8: .4byte 0x02019000 _08119CAC: movs r0, 0x5E bl m4aSongNumStartOrChange ldr r0, _08119CCC ldr r0, [r0, 0x38] movs r2, 0x2E ldrsh r0, [r0, r2] cmp r0, 0 bne _08119CD0 movs r0, 0x98 lsls r0, 1 movs r1, 0x3F bl cry_related b _08119CDC .align 2, 0 _08119CCC: .4byte 0x02019000 _08119CD0: movs r0, 0x98 lsls r0, 1 movs r1, 0x3F negs r1, r1 bl cry_related _08119CDC: ldr r0, _08119D00 ldr r0, [r0, 0x38] ldrh r1, [r0, 0x2E] adds r1, 0x2 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim movs r0, 0x2D strh r0, [r4, 0x30] ldr r0, _08119D04 str r0, [r4, 0x1C] _08119CF6: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08119D00: .4byte 0x02019000 _08119D04: .4byte sub_8119B24 thumb_func_end sub_8119BCC thumb_func_start sub_8119D08 sub_8119D08: @ 8119D08 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 ldr r1, _08119D64 mov r0, sp movs r2, 0x2 bl memcpy ldrh r0, [r4, 0x30] subs r1, r0, 0x1 strh r1, [r4, 0x30] lsls r0, 16 cmp r0, 0 blt _08119D70 ldr r0, _08119D68 ldr r0, [r0, 0x38] movs r1, 0x2E ldrsh r0, [r0, r1] add r0, sp ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 1 ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldr r1, _08119D6C movs r2, 0x3A ldrsh r0, [r4, r2] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 adds r2, 0x3E ldrb r3, [r2] lsls r0, r3, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] b _08119D74 .align 2, 0 _08119D64: .4byte gUnknown_083FA64A _08119D68: .4byte 0x02019000 _08119D6C: .4byte 0x02020004 _08119D70: ldr r0, _08119D7C str r0, [r4, 0x1C] _08119D74: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08119D7C: .4byte sub_8119A90 thumb_func_end sub_8119D08 thumb_func_start sub_8119D80 sub_8119D80: @ 8119D80 push {r4,lr} adds r4, r0, 0 ldr r3, _08119DB8 ldr r1, [r3, 0x38] movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0 bne _08119DC4 movs r0, 0x34 ldrsh r2, [r1, r0] ldr r1, _08119DBC ldrb r0, [r3, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrh r0, [r0, 0x12] adds r0, 0x5A cmp r2, r0 bne _08119E26 ldr r2, _08119DC0 movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r3, 0x34 b _08119DEE .align 2, 0 _08119DB8: .4byte 0x02019000 _08119DBC: .4byte gUnknown_083F8DF4 _08119DC0: .4byte 0x02020004 _08119DC4: movs r0, 0x34 ldrsh r2, [r1, r0] ldr r1, _08119E2C ldrb r0, [r3, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrh r0, [r0, 0x14] movs r1, 0x87 lsls r1, 1 adds r0, r1 cmp r2, r0 bne _08119E26 ldr r2, _08119E30 movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r3, 0x2E _08119DEE: strh r3, [r0, 0x30] movs r0, 0x36 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r3, [r0, 0x30] movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _08119E34 str r1, [r0] movs r0, 0x36 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _08119E38 str r1, [r0] movs r0, 0x2B bl m4aSongNumStart _08119E26: pop {r4} pop {r0} bx r0 .align 2, 0 _08119E2C: .4byte gUnknown_083F8DF4 _08119E30: .4byte 0x02020004 _08119E34: .4byte sub_8119D08 _08119E38: .4byte sub_8119BCC thumb_func_end sub_8119D80 thumb_func_start sub_8119E3C sub_8119E3C: @ 8119E3C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 lsls r1, 24 lsrs r2, r1, 24 movs r0, 0 mov r9, r0 ldr r6, _08119E60 ldrb r0, [r6] cmp r0, 0x1 beq _08119EE0 cmp r0, 0x1 bgt _08119E64 cmp r0, 0 beq _08119E6A b _08119F74 .align 2, 0 _08119E60: .4byte 0x03005e98 _08119E64: cmp r0, 0x2 beq _08119F60 b _08119F74 _08119E6A: ldr r4, _08119ECC ldrh r0, [r5] movs r1, 0 strh r0, [r4, 0x14] ldrb r0, [r5, 0x5] strb r0, [r4, 0x16] strb r1, [r4, 0x1A] strb r1, [r4, 0x1B] strb r1, [r4, 0x10] movs r0, 0x1C strb r0, [r4, 0x12] strb r1, [r4, 0x11] ldrb r1, [r5, 0x4] lsls r1, 19 negs r1, r1 asrs r1, 16 adds r0, r2, 0 movs r2, 0x1 bl sub_811A350 movs r0, 0 mov r12, r6 ldr r1, _08119ED0 ldr r7, _08119ED4 ldr r2, _08119ED8 adds r6, r4, r2 ldr r5, _08119EDC _08119EA0: movs r3, 0 adds r4, r0, 0x1 lsls r2, r0, 5 _08119EA6: str r7, [r1] adds r0, r2, r3 lsls r0, 5 adds r0, r6 str r0, [r1, 0x4] str r5, [r1, 0x8] ldr r0, [r1, 0x8] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x1F bls _08119EA6 lsls r0, r4, 24 lsrs r0, 24 cmp r0, 0x6 bls _08119EA0 mov r1, r12 b _08119F50 .align 2, 0 _08119ECC: .4byte 0x0201c000 _08119ED0: .4byte 0x040000d4 _08119ED4: .4byte gUnknown_083FB718 _08119ED8: .4byte 0xfffe4000 _08119EDC: .4byte 0x80000010 _08119EE0: ldrb r0, [r5, 0x2] lsls r0, 27 lsrs r7, r0, 16 ldrb r1, [r5, 0x3] lsls r1, 12 ldrh r0, [r5] lsls r0, 18 lsrs r0, 23 adds r1, r0 lsls r1, 16 lsrs r6, r1, 16 movs r0, 0 ldr r2, _08119F58 mov r8, r2 movs r1, 0xC0 lsls r1, 19 mov r12, r1 _08119F02: movs r3, 0 adds r4, r0, 0x1 lsls r5, r0, 6 _08119F08: lsls r1, r3, 1 adds r1, r5 adds r1, r7 add r1, r12 adds r2, r6, 0 adds r0, r2, 0x1 lsls r0, 16 lsrs r6, r0, 16 strh r2, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x1F bls _08119F08 lsls r0, r4, 24 lsrs r0, 24 cmp r0, 0x6 bls _08119F02 mov r2, r8 ldrb r0, [r2, 0x16] movs r4, 0 cmp r0, 0 beq _08119F4E mov r5, r8 _08119F38: adds r0, r4, 0 movs r1, 0 bl sub_811A1C8 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r5, 0x16] lsls r0, 3 cmp r4, r0 blt _08119F38 _08119F4E: ldr r1, _08119F5C _08119F50: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08119F74 .align 2, 0 _08119F58: .4byte 0x0201c000 _08119F5C: .4byte 0x03005e98 _08119F60: bl sub_811A324 ldr r0, _08119F84 ldrb r1, [r5, 0x3] lsls r1, 4 movs r2, 0x20 bl LoadPalette movs r0, 0x1 mov r9, r0 _08119F74: mov r0, r9 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08119F84: .4byte gUnknown_083FB6F8 thumb_func_end sub_8119E3C thumb_func_start sub_8119F88 sub_8119F88: @ 8119F88 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_811A324 adds r0, r4, 0 bl sub_811A15C ldr r1, _08119FC4 ldrb r0, [r1, 0x1B] cmp r0, 0 beq _08119FA6 subs r0, 0x1 strb r0, [r1, 0x1B] _08119FA6: ldrb r0, [r1, 0x1A] cmp r0, 0 beq _08119FC8 subs r0, 0x1 strb r0, [r1, 0x1A] lsls r0, 24 cmp r0, 0 bne _08119FC8 ldrh r0, [r1, 0x18] bl sub_811A0A0 bl sub_811A124 b _0811A044 .align 2, 0 _08119FC4: .4byte 0x0201c000 _08119FC8: ldr r5, _08119FD8 ldrb r0, [r5, 0x10] cmp r0, 0 bne _08119FDC bl sub_811A124 b _0811A044 .align 2, 0 _08119FD8: .4byte 0x0201c000 _08119FDC: cmp r0, 0x1 bne _08119FE6 bl sub_811A0C0 b _0811A006 _08119FE6: cmp r0, 0x8 bls _0811A006 bl sub_80753E8 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08119FFE bl sub_811A124 strb r4, [r5, 0x10] b _0811A044 _08119FFE: bl sub_811A0C0 movs r0, 0x1 strb r0, [r5, 0x10] _0811A006: ldr r5, _0811A04C ldrb r4, [r5, 0x10] subs r4, 0x1 lsls r4, 25 lsrs r4, 24 ldrb r0, [r5, 0x16] lsls r0, 3 ldrb r1, [r5, 0x11] adds r0, r1 subs r0, 0x2 lsls r0, 24 lsrs r0, 24 adds r1, r4, r5 ldrb r1, [r1] bl sub_811A1C8 ldrb r0, [r5, 0x16] lsls r0, 3 ldrb r1, [r5, 0x11] adds r0, r1 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 adds r4, 0x1 adds r4, r5 ldrb r1, [r4] bl sub_811A1C8 ldrb r0, [r5, 0x10] adds r0, 0x1 strb r0, [r5, 0x10] _0811A044: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811A04C: .4byte 0x0201c000 thumb_func_end sub_8119F88 thumb_func_start sub_811A050 sub_811A050: @ 811A050 push {r4-r6,lr} lsls r0, 16 lsrs r5, r0, 16 adds r6, r5, 0 ldr r0, _0811A08C ldr r0, [r0, 0x4] cmp r0, 0 bge _0811A09A ldr r4, _0811A090 ldrb r0, [r4, 0x1A] cmp r0, 0 bne _0811A09A ldrb r0, [r4, 0x1B] cmp r0, 0 bne _0811A09A movs r0, 0x4 strb r0, [r4, 0x1B] bl sub_80753E8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0811A094 bl sub_80753B0 strh r5, [r4, 0x18] movs r0, 0x2 strb r0, [r4, 0x1A] b _0811A09A .align 2, 0 _0811A08C: .4byte 0x03007380 _0811A090: .4byte 0x0201c000 _0811A094: adds r0, r6, 0 bl sub_811A0A0 _0811A09A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_811A050 thumb_func_start sub_811A0A0 sub_811A0A0: @ 811A0A0 push {lr} lsls r0, 16 lsrs r0, 16 movs r1, 0 movs r2, 0x7D movs r3, 0xA bl sub_8075090 ldr r1, _0811A0BC movs r0, 0x1 strb r0, [r1, 0x10] pop {r0} bx r0 .align 2, 0 _0811A0BC: .4byte 0x0201c000 thumb_func_end sub_811A0A0 thumb_func_start sub_811A0C0 sub_811A0C0: @ 811A0C0 push {r4,lr} ldr r3, _0811A0D0 movs r0, 0 ldrsb r0, [r3, r0] cmp r0, 0x1 bgt _0811A0D8 ldr r0, _0811A0D4 b _0811A0F0 .align 2, 0 _0811A0D0: .4byte 0x03002400 _0811A0D4: .4byte 0x03006320 _0811A0D8: ldr r2, _0811A11C ldrb r1, [r2, 0xB] movs r0, 0 ldrsb r0, [r3, r0] subs r0, 0x1 subs r1, r0 ldr r0, [r2, 0x10] muls r0, r1 movs r1, 0xD4 lsls r1, 2 adds r2, r1 adds r0, r2 _0811A0F0: movs r1, 0xC6 lsls r1, 3 adds r3, r0, r1 movs r2, 0 ldr r4, _0811A120 _0811A0FA: adds r1, r2, r4 lsls r0, r2, 1 adds r0, r3 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 1 strb r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xF bls _0811A0FA pop {r4} pop {r0} bx r0 .align 2, 0 _0811A11C: .4byte 0x03005fd0 _0811A120: .4byte 0x0201c000 thumb_func_end sub_811A0C0 thumb_func_start sub_811A124 sub_811A124: @ 811A124 push {r4,lr} ldr r4, _0811A158 ldrb r0, [r4, 0x16] lsls r0, 3 ldrb r1, [r4, 0x11] adds r0, r1 subs r0, 0x2 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_811A1C8 ldrb r0, [r4, 0x16] lsls r0, 3 ldrb r4, [r4, 0x11] adds r0, r4 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_811A1C8 pop {r4} pop {r0} bx r0 .align 2, 0 _0811A158: .4byte 0x0201c000 thumb_func_end sub_811A124 thumb_func_start sub_811A15C sub_811A15C: @ 811A15C push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r4, _0811A1B4 ldrb r1, [r4, 0x11] movs r2, 0 bl sub_811A350 ldrb r0, [r4, 0x11] adds r0, 0x2 strb r0, [r4, 0x11] ldrb r0, [r4, 0x11] lsrs r0, 3 ldrb r2, [r4, 0x16] adds r1, r0, r2 adds r2, r1, 0x1 adds r0, r2, 0 asrs r0, 5 lsls r0, 5 subs r0, r2, r0 lsls r0, 16 lsrs r3, r0, 16 movs r1, 0 ldr r2, _0811A1B8 ldr r6, _0811A1BC ldr r0, _0811A1C0 adds r5, r4, r0 ldr r4, _0811A1C4 _0811A194: str r6, [r2] lsls r0, r1, 5 adds r0, r3 lsls r0, 5 adds r0, r5 str r0, [r2, 0x4] str r4, [r2, 0x8] ldr r0, [r2, 0x8] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x6 bls _0811A194 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811A1B4: .4byte 0x0201c000 _0811A1B8: .4byte 0x040000d4 _0811A1BC: .4byte gUnknown_083FB718 _0811A1C0: .4byte 0xfffe4000 _0811A1C4: .4byte 0x80000010 thumb_func_end sub_811A15C thumb_func_start sub_811A1C8 sub_811A1C8: @ 811A1C8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r5, r0, 24 lsrs r4, r5, 24 lsls r1, 24 movs r0, 0xFE lsls r0, 23 adds r1, r0 lsrs r1, 16 adds r0, r1, 0 bl __floatsidf ldr r3, _0811A280 ldr r2, _0811A27C bl __divdf3 bl __fixunsdfsi lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x37 bls _0811A1FE movs r6, 0x37 _0811A1FE: str r6, [sp] movs r7, 0x1 ands r7, r4 ldr r0, _0811A284 mov r10, r0 lsrs r5, 27 mov r8, r5 ldr r0, _0811A288 mov r1, r10 ldrb r1, [r1, 0x12] cmp r6, r1 bls _0811A298 adds r0, r7, r0 ldrb r0, [r0] mov r9, r0 movs r2, 0x7 ands r2, r4 _0811A220: lsls r1, r6, 1 lsls r0, r2, 3 adds r0, r2 lsls r0, 4 adds r1, r0 ldr r3, _0811A28C adds r1, r3 mov r3, r8 lsls r0, r3, 5 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r1, _0811A290 adds r5, r0, r1 ldrb r4, [r5] mov r3, r9 ands r4, r3 strb r4, [r5] adds r0, r6, 0 movs r1, 0x3 str r2, [sp, 0x8] bl __udivsi3 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 movs r1, 0xF ands r0, r1 lsls r1, r7, 4 adds r0, r1 ldr r1, _0811A294 adds r0, r1 ldrb r0, [r0] orrs r4, r0 strb r4, [r5] subs r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldr r2, [sp, 0x8] ldr r3, _0811A284 ldrb r3, [r3, 0x12] cmp r6, r3 bhi _0811A220 b _0811A2FA .align 2, 0 _0811A27C: .4byte 0x40920000 _0811A280: .4byte 0x00000000 _0811A284: .4byte 0x0201c000 _0811A288: .4byte gUnknown_083FB738 _0811A28C: .4byte gUnknown_083FB274 _0811A290: .4byte 0x02000000 _0811A294: .4byte gUnknown_083FB73A _0811A298: lsls r1, r7, 4 str r1, [sp, 0x4] adds r0, r7, r0 ldrb r0, [r0] mov r9, r0 movs r7, 0x7 ands r7, r4 _0811A2A6: lsls r1, r6, 1 lsls r0, r7, 3 adds r0, r7 lsls r0, 4 adds r1, r0 ldr r2, _0811A314 adds r1, r2 mov r3, r8 lsls r0, r3, 5 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r1, _0811A318 adds r5, r0, r1 ldrb r4, [r5] mov r2, r9 ands r4, r2 strb r4, [r5] adds r0, r6, 0 movs r1, 0x3 bl __udivsi3 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 movs r1, 0xF ands r0, r1 ldr r3, [sp, 0x4] adds r0, r3 ldr r1, _0811A31C adds r0, r1 ldrb r0, [r0] orrs r4, r0 strb r4, [r5] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldr r2, _0811A320 ldrb r2, [r2, 0x12] cmp r6, r2 bcc _0811A2A6 _0811A2FA: mov r3, sp ldrb r0, [r3] mov r3, r10 strb r0, [r3, 0x12] add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811A314: .4byte gUnknown_083FB274 _0811A318: .4byte 0x02000000 _0811A31C: .4byte gUnknown_083FB73A _0811A320: .4byte 0x0201c000 thumb_func_end sub_811A1C8 thumb_func_start sub_811A324 sub_811A324: @ 811A324 ldr r2, _0811A344 ldr r0, _0811A348 str r0, [r2] movs r1, 0xE0 lsls r1, 9 adds r0, r1 ldrh r0, [r0, 0x14] movs r1, 0xC0 lsls r1, 19 adds r0, r1 str r0, [r2, 0x4] ldr r0, _0811A34C str r0, [r2, 0x8] ldr r0, [r2, 0x8] bx lr .align 2, 0 _0811A344: .4byte 0x040000d4 _0811A348: .4byte 0x02000000 _0811A34C: .4byte 0x80000e00 thumb_func_end sub_811A324 thumb_func_start sub_811A350 sub_811A350: @ 811A350 push {lr} lsls r0, 24 lsrs r0, 24 adds r3, r0, 0 lsls r1, 16 lsrs r1, 16 lsls r2, 24 lsrs r2, 24 cmp r0, 0x1 beq _0811A38C cmp r0, 0x1 bgt _0811A36E cmp r0, 0 beq _0811A378 b _0811A3C4 _0811A36E: cmp r3, 0x2 beq _0811A3A0 cmp r3, 0x3 beq _0811A3B4 b _0811A3C4 _0811A378: cmp r2, 0 beq _0811A384 ldr r0, _0811A380 b _0811A3C2 .align 2, 0 _0811A380: .4byte REG_BG0VOFS _0811A384: ldr r0, _0811A388 b _0811A3C2 .align 2, 0 _0811A388: .4byte REG_BG0HOFS _0811A38C: cmp r2, 0 beq _0811A398 ldr r0, _0811A394 b _0811A3C2 .align 2, 0 _0811A394: .4byte REG_BG1VOFS _0811A398: ldr r0, _0811A39C b _0811A3C2 .align 2, 0 _0811A39C: .4byte REG_BG1HOFS _0811A3A0: cmp r2, 0 beq _0811A3AC ldr r0, _0811A3A8 b _0811A3C2 .align 2, 0 _0811A3A8: .4byte REG_BG2VOFS _0811A3AC: ldr r0, _0811A3B0 b _0811A3C2 .align 2, 0 _0811A3B0: .4byte REG_BG2HOFS _0811A3B4: cmp r2, 0 beq _0811A3C0 ldr r0, _0811A3BC b _0811A3C2 .align 2, 0 _0811A3BC: .4byte REG_BG3VOFS _0811A3C0: ldr r0, _0811A3C8 _0811A3C2: strh r1, [r0] _0811A3C4: pop {r0} bx r0 .align 2, 0 _0811A3C8: .4byte REG_BG3HOFS thumb_func_end sub_811A350 thumb_func_start sub_811A3CC sub_811A3CC: @ 811A3CC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r4, r0, 0 movs r0, 0 str r0, [sp] ldr r0, _0811A3F4 ldrb r1, [r0] mov r10, r0 cmp r1, 0x1 beq _0811A42C cmp r1, 0x1 bgt _0811A3F8 cmp r1, 0 beq _0811A3FE b _0811A4D6 .align 2, 0 _0811A3F4: .4byte 0x03005e98 _0811A3F8: cmp r1, 0x2 beq _0811A494 b _0811A4D6 _0811A3FE: ldr r0, _0811A424 ldrh r1, [r4] movs r2, 0xC0 lsls r2, 19 adds r1, r2 bl LZ77UnCompVram ldr r0, _0811A428 ldrb r1, [r4, 0x3] lsls r1, 4 movs r2, 0x20 bl LoadPalette mov r1, r10 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0811A4D6 .align 2, 0 _0811A424: .4byte gUnknown_083FAF3C _0811A428: .4byte gUnknown_083FAF1C _0811A42C: ldrb r0, [r4, 0x2] lsls r0, 11 movs r1, 0xC0 lsls r1, 19 adds r0, r1 mov r8, r0 ldrh r0, [r4] lsls r0, 18 lsrs r0, 23 mov r12, r0 movs r5, 0 ldr r2, _0811A490 mov r9, r2 _0811A446: movs r3, 0 lsls r0, r5, 2 adds r7, r5, 0x1 adds r0, r5 lsls r6, r0, 1 _0811A450: ldrb r0, [r4, 0x5] adds r0, r5, r0 ldrb r2, [r4, 0x4] adds r2, r3, r2 lsls r2, 1 lsls r0, 6 adds r2, r0 add r2, r8 adds r1, r6, r3 lsls r1, 1 add r1, r9 ldrb r0, [r4, 0x3] lsls r0, 12 ldrh r1, [r1] orrs r0, r1 add r0, r12 strh r0, [r2] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x9 bls _0811A450 lsls r0, r7, 24 lsrs r5, r0, 24 cmp r5, 0x7 bls _0811A446 mov r3, r10 ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] b _0811A4D6 .align 2, 0 _0811A490: .4byte gUnknown_083FAE7C _0811A494: ldr r0, _0811A4E8 bl LoadSpriteSheets ldr r0, _0811A4EC bl LoadSpritePalettes ldr r0, _0811A4F0 ldrb r1, [r4, 0x4] lsls r1, 19 movs r2, 0xA0 lsls r2, 14 adds r1, r2 asrs r1, 16 ldrb r2, [r4, 0x5] lsls r2, 19 movs r3, 0xE0 lsls r3, 14 adds r2, r3 asrs r2, 16 movs r3, 0x1 bl CreateSprite ldr r1, _0811A4F4 lsls r0, 24 lsrs r0, 24 movs r2, 0 strh r0, [r1, 0x4] movs r0, 0x20 strb r0, [r1] strb r0, [r1, 0x1] strb r2, [r1, 0x2] movs r0, 0x1 str r0, [sp] _0811A4D6: ldr r0, [sp] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811A4E8: .4byte gCryMeterNeedleSpriteSheets _0811A4EC: .4byte gCryMeterNeedleSpritePalettes _0811A4F0: .4byte gSpriteTemplate_83FB774 _0811A4F4: .4byte 0x0201c800 thumb_func_end sub_811A3CC thumb_func_start sub_811A4F8 sub_811A4F8: @ 811A4F8 push {r4,r5,lr} ldr r5, _0811A52C ldr r4, _0811A530 ldrh r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r0, [r0, 0x5] lsrs r0, 4 bl GetSpritePaletteTagByPaletteNum lsls r0, 16 lsrs r0, 16 bl FreeSpritePaletteByTag ldrh r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811A52C: .4byte 0x02020004 _0811A530: .4byte 0x0201c800 thumb_func_end sub_811A4F8 thumb_func_start sub_811A534 sub_811A534: @ 811A534 push {r4-r7,lr} sub sp, 0x14 adds r7, r0, 0 ldr r3, _0811A578 ldr r5, _0811A57C ldrh r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r2, [r0, 0x1] movs r1, 0x4 negs r1, r1 ands r1, r2 movs r2, 0x1 orrs r1, r2 strb r1, [r0, 0x1] ldrh r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0 strh r1, [r0, 0x6] ldr r0, _0811A580 adds r1, r5, r0 ldrb r0, [r1, 0x10] cmp r0, 0x2 beq _0811A5AA cmp r0, 0x2 bgt _0811A584 cmp r0, 0 beq _0811A58A b _0811A5F4 .align 2, 0 _0811A578: .4byte 0x02020004 _0811A57C: .4byte 0x0201c800 _0811A580: .4byte 0xfffff800 _0811A584: cmp r0, 0x6 beq _0811A5E2 b _0811A5F4 _0811A58A: movs r0, 0x20 strb r0, [r5, 0x1] movs r0, 0 ldrsb r0, [r5, r0] cmp r0, 0 ble _0811A5A4 ldrb r0, [r5, 0x2] add r4, sp, 0xC cmp r0, 0x1 beq _0811A5F6 subs r0, 0x1 strb r0, [r5, 0x2] b _0811A5F6 _0811A5A4: movs r0, 0x5 strb r0, [r5, 0x2] b _0811A5F4 _0811A5AA: movs r3, 0 movs r2, 0 add r4, sp, 0xC adds r5, r1, 0 _0811A5B2: lsls r1, r3, 24 asrs r1, 24 adds r0, r2, r5 ldrb r0, [r0] cmp r1, r0 bge _0811A5C0 adds r3, r0, 0 _0811A5C0: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0xF bls _0811A5B2 lsls r0, r3, 24 asrs r0, 24 movs r1, 0xD0 muls r0, r1 cmp r0, 0 bge _0811A5D8 adds r0, 0xFF _0811A5D8: lsls r0, 16 asrs r0, 24 bl sub_811A6D8 b _0811A5F6 _0811A5E2: ldr r1, _0811A620 adds r0, r5, r1 ldrb r1, [r0] movs r0, 0xD0 muls r0, r1 lsls r0, 16 asrs r0, 24 bl sub_811A6D8 _0811A5F4: add r4, sp, 0xC _0811A5F6: ldr r0, _0811A624 ldrb r3, [r0] movs r2, 0 ldrsb r2, [r0, r2] ldrb r6, [r0, 0x1] movs r1, 0x1 ldrsb r1, [r0, r1] adds r5, r0, 0 cmp r2, r1 beq _0811A63C cmp r2, r1 bge _0811A628 ldrb r0, [r5, 0x2] adds r0, r3, r0 strb r0, [r5] lsls r0, 24 asrs r0, 24 cmp r0, r1 ble _0811A63C b _0811A636 .align 2, 0 _0811A620: .4byte 0xfffff80a _0811A624: .4byte 0x0201c800 _0811A628: ldrb r0, [r5, 0x2] subs r0, r3, r0 strb r0, [r5] lsls r0, 24 asrs r0, 24 cmp r0, r1 bge _0811A63C _0811A636: strb r6, [r5] movs r0, 0 strb r0, [r5, 0x1] _0811A63C: ldr r2, _0811A6CC ldr r0, [sp, 0x4] ands r0, r2 movs r1, 0x80 lsls r1, 1 orrs r0, r1 ldr r1, _0811A6D0 ands r0, r1 movs r1, 0x80 lsls r1, 17 orrs r0, r1 str r0, [sp, 0x4] movs r1, 0 ldrsb r1, [r5, r1] lsls r1, 24 lsrs r1, 16 ldr r0, [sp, 0x8] ands r0, r2 orrs r0, r1 str r0, [sp, 0x8] add r0, sp, 0x4 adds r1, r4, 0 movs r2, 0x1 movs r3, 0x2 bl ObjAffineSet add r0, sp, 0xC ldrh r1, [r0] ldrh r2, [r4, 0x2] ldrh r3, [r4, 0x4] ldrh r0, [r4, 0x6] str r0, [sp] movs r0, 0 bl SetOamMatrix ldr r2, _0811A6D4 movs r0, 0 ldrsb r0, [r5, r0] adds r0, 0x7F movs r1, 0xFF ands r0, r1 lsls r1, r0, 1 adds r1, r2 adds r0, 0x40 lsls r0, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0 ldrsh r1, [r1, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 cmp r0, 0 bge _0811A6AA adds r0, 0xFF _0811A6AA: asrs r0, 8 strh r0, [r7, 0x24] lsls r1, r2, 16 asrs r1, 16 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 cmp r0, 0 bge _0811A6BE adds r0, 0xFF _0811A6BE: asrs r0, 8 strh r0, [r7, 0x26] add sp, 0x14 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811A6CC: .4byte 0xffff0000 _0811A6D0: .4byte 0x0000ffff _0811A6D4: .4byte gSineTable thumb_func_end sub_811A534 thumb_func_start sub_811A6D8 sub_811A6D8: @ 811A6D8 push {lr} lsls r0, 24 asrs r0, 24 movs r1, 0x20 subs r2, r1, r0 movs r0, 0xFF ands r2, r0 adds r0, r2, 0 subs r0, 0x21 lsls r0, 16 lsrs r0, 16 cmp r0, 0xBE bhi _0811A6F4 movs r2, 0xE0 _0811A6F4: ldr r1, _0811A700 strb r2, [r1, 0x1] movs r0, 0x5 strb r0, [r1, 0x2] pop {r0} bx r0 .align 2, 0 _0811A700: .4byte 0x0201c800 thumb_func_end sub_811A6D8 thumb_func_start sub_811A704 sub_811A704: @ 811A704 push {r4,lr} adds r4, r1, 0 adds r3, r2, 0 lsls r4, 24 lsls r3, 24 movs r1, 0x80 lsls r1, 18 adds r4, r1 lsrs r4, 24 movs r1, 0x80 lsls r1, 17 adds r3, r1 lsrs r3, 24 movs r1, 0x4 adds r2, r4, 0 bl sub_811A798 pop {r4} pop {r0} bx r0 thumb_func_end sub_811A704 thumb_func_start sub_811A72C sub_811A72C: @ 811A72C push {r4-r6,lr} mov r6, r8 push {r6} mov r8, r0 adds r4, r1, 0 adds r3, r2, 0 lsls r4, 24 lsls r3, 24 lsrs r6, r4, 24 movs r0, 0x90 lsls r0, 20 adds r4, r0 lsrs r4, 24 lsrs r5, r3, 24 movs r0, 0xC0 lsls r0, 18 adds r3, r0 lsrs r3, 24 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl DrawDefaultWindow mov r0, r8 adds r1, r6, 0 adds r2, r5, 0 bl sub_811A704 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_811A72C thumb_func_start sub_811A770 sub_811A770: @ 811A770 push {r4,lr} adds r2, r0, 0 adds r3, r1, 0 lsls r2, 24 lsls r3, 24 lsrs r0, r2, 24 movs r1, 0x90 lsls r1, 20 adds r2, r1 lsrs r2, 24 lsrs r1, r3, 24 movs r4, 0xC0 lsls r4, 18 adds r3, r4 lsrs r3, 24 bl Reset pop {r4} pop {r0} bx r0 thumb_func_end sub_811A770 thumb_func_start sub_811A798 sub_811A798: @ 811A798 push {r4-r7,lr} sub sp, 0x10 adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 adds r5, r1, 0 lsls r2, 24 lsrs r6, r2, 24 lsls r3, 24 lsrs r7, r3, 24 mov r0, sp adds r1, r4, 0 bl ConvertIntToDecimalString lsls r1, r5, 1 adds r1, r5 lsls r1, 1 adds r1, 0x21 adds r0, r5, 0x2 lsls r0, 3 subs r1, r0 lsls r1, 24 lsrs r0, r1, 27 subs r0, r6, r0 lsls r0, 24 lsrs r6, r0, 24 movs r0, 0xE0 lsls r0, 19 ands r0, r1 lsrs r1, r0, 24 ldr r4, _0811A824 cmp r1, 0 beq _0811A7EA movs r0, 0xFC strb r0, [r4] movs r0, 0x11 strb r0, [r4, 0x1] movs r0, 0x8 subs r0, r1 strb r0, [r4, 0x2] adds r4, 0x3 _0811A7EA: movs r0, 0xFC strb r0, [r4] movs r0, 0x11 strb r0, [r4, 0x1] mov r0, sp bl StringLength lsls r0, 16 lsrs r0, 16 subs r0, r5, r0 lsls r1, r0, 1 adds r1, r0 lsls r1, 1 strb r1, [r4, 0x2] adds r4, 0x3 adds r0, r4, 0 mov r1, sp bl StringCopy ldr r0, _0811A828 adds r1, r6, 0 adds r2, r7, 0 bl Print add sp, 0x10 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811A824: .4byte 0x020231cc _0811A828: .4byte gUnknown_0840E6DB thumb_func_end sub_811A798 thumb_func_start GetCoins GetCoins: @ 811A82C ldr r0, _0811A838 ldr r1, _0811A83C adds r0, r1 ldrh r0, [r0] bx lr .align 2, 0 _0811A838: .4byte 0x02025734 _0811A83C: .4byte 0x00000494 thumb_func_end GetCoins thumb_func_start sub_811A840 sub_811A840: @ 811A840 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 bl GetCoins lsls r0, 16 ldr r1, _0811A858 cmp r0, r1 bls _0811A85C movs r0, 0 b _0811A88C .align 2, 0 _0811A858: .4byte 0x270e0000 _0811A85C: ldr r0, _0811A874 ldr r1, _0811A878 adds r3, r0, r1 ldrh r1, [r3] adds r2, r4, r1 lsls r0, r2, 16 lsrs r0, 16 cmp r1, r0 bls _0811A880 ldr r0, _0811A87C strh r0, [r3] b _0811A88A .align 2, 0 _0811A874: .4byte 0x02025734 _0811A878: .4byte 0x00000494 _0811A87C: .4byte 0x0000270f _0811A880: strh r2, [r3] ldr r1, _0811A894 cmp r0, r1 bls _0811A88A strh r1, [r3] _0811A88A: movs r0, 0x1 _0811A88C: pop {r4} pop {r1} bx r1 .align 2, 0 _0811A894: .4byte 0x0000270f thumb_func_end sub_811A840 thumb_func_start sub_811A898 sub_811A898: @ 811A898 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 bl GetCoins lsls r0, 16 lsrs r0, 16 cmp r0, r4 bcs _0811A8AE movs r0, 0 b _0811A8BC _0811A8AE: ldr r1, _0811A8C4 ldr r0, _0811A8C8 adds r1, r0 ldrh r0, [r1] subs r0, r4 strh r0, [r1] movs r0, 0x1 _0811A8BC: pop {r4} pop {r1} bx r1 .align 2, 0 _0811A8C4: .4byte 0x02025734 _0811A8C8: .4byte 0x00000494 thumb_func_end sub_811A898 thumb_func_start sub_811A8CC sub_811A8CC: @ 811A8CC push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r5, r2, 24 bl sub_811A920 adds r4, r0, 0 cmp r4, 0 bne _0811A8E8 _0811A8E4: movs r0, 0 b _0811A91A _0811A8E8: ldr r6, _0811A8EC b _0811A8FE .align 2, 0 _0811A8EC: .4byte 0x0000ffff _0811A8F0: subs r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _0811A8F6: adds r4, 0x4 ldr r0, [r4] cmp r0, 0 beq _0811A8E4 _0811A8FE: ldr r1, [r4] ldrh r0, [r1, 0x4] cmp r0, r6 beq _0811A912 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0811A8F6 _0811A912: cmp r5, 0 bne _0811A8F0 ldr r0, [r4] ldr r0, [r0] _0811A91A: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_811A8CC thumb_func_start sub_811A920 sub_811A920: @ 811A920 push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r6, r1, 24 movs r2, 0 ldr r0, _0811A964 ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0x58 beq _0811A990 adds r1, r4, 0 _0811A938: lsls r0, r2, 3 adds r0, r1 ldrb r0, [r0] cmp r0, r3 bhi _0811A990 cmp r0, r3 beq _0811A956 adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 lsls r0, r2, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x58 bne _0811A938 _0811A956: lsls r0, r2, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x58 bne _0811A970 b _0811A990 .align 2, 0 _0811A964: .4byte gLandmarkLists _0811A968: adds r0, r4, 0x4 adds r0, r1, r0 ldr r0, [r0] b _0811A992 _0811A970: cmp r0, r3 bne _0811A990 ldr r5, _0811A998 _0811A976: lsls r1, r2, 3 adds r0, r1, r5 ldrb r0, [r0, 0x1] cmp r0, r6 beq _0811A968 adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 lsls r0, r2, 3 adds r0, r4 ldrb r0, [r0] cmp r0, r3 beq _0811A976 _0811A990: movs r0, 0 _0811A992: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0811A998: .4byte gLandmarkLists thumb_func_end sub_811A920 thumb_func_start sub_811A99C sub_811A99C: @ 811A99C push {lr} bl sub_81474C8 lsls r0, 24 cmp r0, 0 beq _0811A9D4 ldr r1, _0811A9BC ldr r0, _0811A9C0 ldrb r0, [r0] strh r0, [r1] ldr r1, _0811A9C4 ldr r0, _0811A9C8 str r0, [r1] ldr r1, _0811A9CC ldr r0, _0811A9D0 b _0811A9F8 .align 2, 0 _0811A9BC: .4byte 0x0202e8dc _0811A9C0: .4byte 0x03005ce0 _0811A9C4: .4byte 0x0300485c _0811A9C8: .4byte sub_808AB90 _0811A9CC: .4byte 0x03005ce4 _0811A9D0: .4byte sub_811AA38 _0811A9D4: movs r0, 0x57 bl npc_before_player_of_type lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0811A9E6 movs r0, 0 b _0811A9FC _0811A9E6: ldr r1, _0811AA00 ldr r0, _0811AA04 ldrb r0, [r0] strh r0, [r1] ldr r1, _0811AA08 ldr r0, _0811AA0C str r0, [r1] ldr r1, _0811AA10 ldr r0, _0811AA14 _0811A9F8: str r0, [r1] movs r0, 0x1 _0811A9FC: pop {r1} bx r1 .align 2, 0 _0811AA00: .4byte 0x0202e8dc _0811AA04: .4byte 0x03005ce0 _0811AA08: .4byte 0x0300485c _0811AA0C: .4byte sub_808AB90 _0811AA10: .4byte 0x03005ce4 _0811AA14: .4byte sub_811AA18 thumb_func_end sub_811A99C thumb_func_start sub_811AA18 sub_811AA18: @ 811AA18 push {lr} ldr r1, _0811AA2C ldr r0, _0811AA30 ldrb r0, [r0] str r0, [r1] ldr r0, _0811AA34 bl script_env_1_execute_new_script pop {r0} bx r0 .align 2, 0 _0811AA2C: .4byte 0x0202ff84 _0811AA30: .4byte 0x03005ce0 _0811AA34: .4byte UseStrengthScript thumb_func_end sub_811AA18 thumb_func_start sub_811AA38 sub_811AA38: @ 811AA38 push {lr} ldr r0, _0811AA4C ldr r1, _0811AA50 ldrb r1, [r1] str r1, [r0] movs r0, 0x28 bl FieldEffectStart pop {r0} bx r0 .align 2, 0 _0811AA4C: .4byte 0x0202ff84 _0811AA50: .4byte 0x03005ce0 thumb_func_end sub_811AA38 thumb_func_start sub_811AA54 sub_811AA54: @ 811AA54 push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _0811AA88 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _0811AA8C lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] ldr r0, _0811AA90 ldr r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0811AA94 adds r0, r1 ldr r1, _0811AA98 bl GetMonNickname movs r0, 0 pop {r1} bx r1 .align 2, 0 _0811AA88: .4byte 0x03004b20 _0811AA8C: .4byte sub_811AA9C _0811AA90: .4byte 0x0202ff84 _0811AA94: .4byte 0x03004360 _0811AA98: .4byte 0x020231cc thumb_func_end sub_811AA54 thumb_func_start sub_811AA9C sub_811AA9C: @ 811AA9C push {lr} bl sub_81474C8 lsls r0, 24 cmp r0, 0 beq _0811AAAE bl sub_8147514 b _0811AAB8 _0811AAAE: movs r0, 0x28 bl FieldEffectActiveListRemove bl script_env_2_enable_and_set_ctx_running _0811AAB8: pop {r0} bx r0 thumb_func_end sub_811AA9C thumb_func_start sub_811AABC sub_811AABC: @ 811AABC push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0811AAD0 ldr r1, _0811AAD4 str r1, [r2, 0x4] bl sub_811AB20 pop {r0} bx r0 .align 2, 0 _0811AAD0: .4byte 0x03001770 _0811AAD4: .4byte sub_8054398 thumb_func_end sub_811AABC thumb_func_start sub_811AAD8 sub_811AAD8: @ 811AAD8 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_811AB20 pop {r0} bx r0 thumb_func_end sub_811AAD8 thumb_func_start sub_811AAE8 sub_811AAE8: @ 811AAE8 push {lr} ldr r0, _0811AB0C bl FindTaskIdByFunc lsls r0, 24 lsrs r2, r0, 24 ldr r1, _0811AB10 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r1, 0x26 ldrsh r0, [r0, r1] cmp r0, 0 bne _0811AB14 movs r0, 0 b _0811AB1C .align 2, 0 _0811AB0C: .4byte sub_811AB50 _0811AB10: .4byte 0x03004b20 _0811AB14: adds r0, r2, 0 bl DestroyTask movs r0, 0x1 _0811AB1C: pop {r1} bx r1 thumb_func_end sub_811AAE8 thumb_func_start sub_811AB20 sub_811AB20: @ 811AB20 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0811AB48 movs r1, 0x2 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0811AB4C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0xA] pop {r4} pop {r0} bx r0 .align 2, 0 _0811AB48: .4byte sub_811AB50 _0811AB4C: .4byte 0x03004b20 thumb_func_end sub_811AB20 thumb_func_start sub_811AB50 sub_811AB50: @ 811AB50 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811AB80 ldr r2, _0811AB84 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811AB62: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811AB62 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811AB80: .4byte gUnknown_083FD794 _0811AB84: .4byte 0x03004b20 thumb_func_end sub_811AB50 thumb_func_start sub_811AB88 sub_811AB88: @ 811AB88 push {r4,lr} adds r4, r0, 0 bl sub_807DE10 ldr r0, _0811ABB4 ldr r1, _0811ABB8 ldr r2, _0811ABBC bl CpuSet ldr r1, _0811ABC0 movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] cmp r0, 0 bne _0811ABC4 movs r0, 0x2 strh r0, [r4, 0x8] movs r0, 0x1 b _0811ABD2 .align 2, 0 _0811ABB4: .4byte 0x0202eec8 _0811ABB8: .4byte 0x0202eac8 _0811ABBC: .4byte 0x04000100 _0811ABC0: .4byte gUnknown_083FD70C _0811ABC4: movs r1, 0x4 bl CreateTask ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 _0811ABD2: pop {r4} pop {r1} bx r1 thumb_func_end sub_811AB88 thumb_func_start sub_811ABD8 sub_811ABD8: @ 811ABD8 push {r4,lr} adds r4, r0, 0 ldr r1, _0811ABF8 movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _0811ABFC movs r0, 0 b _0811AC04 .align 2, 0 _0811ABF8: .4byte gUnknown_083FD70C _0811ABFC: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x1 _0811AC04: pop {r4} pop {r1} bx r1 thumb_func_end sub_811ABD8 thumb_func_start sub_811AC0C sub_811AC0C: @ 811AC0C push {r4,lr} adds r4, r0, 0 ldr r1, _0811AC30 movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0 bl CreateTask ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0811AC30: .4byte gBattleTransitionFuncs thumb_func_end sub_811AC0C thumb_func_start sub_811AC34 sub_811AC34: @ 811AC34 push {r4,lr} adds r4, r0, 0 movs r0, 0 strh r0, [r4, 0x26] ldr r1, _0811AC60 movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _0811AC58 movs r0, 0x1 strh r0, [r4, 0x26] _0811AC58: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0811AC60: .4byte gBattleTransitionFuncs thumb_func_end sub_811AC34 thumb_func_start sub_811AC64 sub_811AC64: @ 811AC64 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 ldr r1, _0811AC98 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 ldrh r2, [r1, 0x8] movs r3, 0x8 ldrsh r0, [r1, r3] cmp r0, 0 bne _0811AC9C adds r0, r2, 0x1 strh r0, [r1, 0x8] movs r0, 0x2 str r0, [sp] movs r0, 0 movs r1, 0 movs r2, 0x3 movs r3, 0x2 bl sub_811D4C8 b _0811ACAC .align 2, 0 _0811AC98: .4byte 0x03004b20 _0811AC9C: bl sub_811D52C lsls r0, 24 cmp r0, 0 beq _0811ACAC adds r0, r4, 0 bl DestroyTask _0811ACAC: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_811AC64 thumb_func_start sub_811ACB4 sub_811ACB4: @ 811ACB4 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811ACE4 ldr r2, _0811ACE8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811ACC6: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811ACC6 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811ACE4: .4byte gUnknown_083FD7A4 _0811ACE8: .4byte 0x03004b20 thumb_func_end sub_811ACB4 thumb_func_start sub_811ACEC sub_811ACEC: @ 811ACEC ldr r2, _0811AD18 movs r1, 0 strh r1, [r2] subs r2, 0x42 ldrh r1, [r2] movs r3, 0x40 orrs r1, r3 strh r1, [r2] adds r2, 0x2 ldrh r1, [r2] orrs r1, r3 strh r1, [r2] adds r2, 0x2 ldrh r1, [r2] orrs r1, r3 strh r1, [r2] ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] movs r0, 0x1 bx lr .align 2, 0 _0811AD18: .4byte REG_MOSAIC thumb_func_end sub_811ACEC thumb_func_start sub_811AD1C sub_811AD1C: @ 811AD1C push {r4,lr} sub sp, 0x4 adds r4, r0, 0 ldrh r0, [r4, 0xA] movs r1, 0xA ldrsh r2, [r4, r1] cmp r2, 0 beq _0811AD32 subs r0, 0x1 strh r0, [r4, 0xA] b _0811AD70 _0811AD32: movs r0, 0x4 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _0811AD54 movs r1, 0x1 negs r1, r1 str r2, [sp] adds r0, r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _0811AD54: ldr r2, _0811AD7C ldrh r0, [r4, 0xC] movs r1, 0xF ands r1, r0 lsls r0, r1, 4 adds r0, r1 strh r0, [r2] movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0xE ble _0811AD70 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0811AD70: movs r0, 0 add sp, 0x4 pop {r4} pop {r1} bx r1 .align 2, 0 _0811AD7C: .4byte REG_MOSAIC thumb_func_end sub_811AD1C thumb_func_start sub_811AD80 sub_811AD80: @ 811AD80 push {lr} ldr r0, _0811ADA4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0811AD9C ldr r0, _0811ADA8 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0811AD9C: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0811ADA4: .4byte 0x0202f388 _0811ADA8: .4byte sub_811ACB4 thumb_func_end sub_811AD80 thumb_func_start sub_811ADAC sub_811ADAC: @ 811ADAC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811ADDC ldr r2, _0811ADE0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811ADBE: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811ADBE pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811ADDC: .4byte gUnknown_083FD7B0 _0811ADE0: .4byte 0x03004b20 thumb_func_end sub_811ADAC thumb_func_start sub_811ADE4 sub_811ADE4: @ 811ADE4 push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 bl sub_811D658 bl dp12_8087EA4 movs r0, 0x1 negs r0, r0 movs r4, 0 str r4, [sp] movs r1, 0x4 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0811AE54 ldr r1, _0811AE58 movs r2, 0x14 ldrsh r1, [r1, r2] str r4, [sp] movs r2, 0xA0 str r2, [sp, 0x4] movs r2, 0 movs r3, 0x2 bl sub_811D6E8 ldr r0, _0811AE5C bl SetVBlankCallback ldr r0, _0811AE60 bl SetHBlankCallback ldr r3, _0811AE64 ldrh r2, [r3] strh r4, [r3] ldr r4, _0811AE68 ldrh r0, [r4] movs r1, 0x3 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _0811AE6C ldrh r0, [r2] movs r1, 0x18 orrs r0, r1 strh r0, [r2] ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811AE54: .4byte 0x03005560 _0811AE58: .4byte 0x0200c000 _0811AE5C: .4byte sub_811AEE0 _0811AE60: .4byte sub_811AF18 _0811AE64: .4byte 0x04000208 _0811AE68: .4byte 0x04000200 _0811AE6C: .4byte REG_DISPSTAT thumb_func_end sub_811ADE4 thumb_func_start sub_811AE70 sub_811AE70: @ 811AE70 push {r4,r5,lr} sub sp, 0x8 ldr r4, _0811AED0 ldrb r1, [r4] movs r1, 0 strb r1, [r4] ldrh r1, [r0, 0xA] adds r1, 0x4 strh r1, [r0, 0xA] ldrh r1, [r0, 0xC] adds r1, 0x8 strh r1, [r0, 0xC] ldr r3, _0811AED4 movs r2, 0x14 ldrsh r1, [r4, r2] movs r5, 0xA ldrsh r2, [r0, r5] movs r5, 0xC ldrsh r0, [r0, r5] str r0, [sp] movs r0, 0xA0 str r0, [sp, 0x4] adds r0, r3, 0 movs r3, 0x2 bl sub_811D6E8 ldr r0, _0811AED8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0811AEBE ldr r0, _0811AEDC bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0811AEBE: ldrb r0, [r4] adds r0, 0x1 ldrb r1, [r4] strb r0, [r4] movs r0, 0 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811AED0: .4byte 0x0200c000 _0811AED4: .4byte 0x03004de0 _0811AED8: .4byte 0x0202f388 _0811AEDC: .4byte sub_811ADAC thumb_func_end sub_811AE70 thumb_func_start sub_811AEE0 sub_811AEE0: @ 811AEE0 push {lr} bl sub_811D67C ldr r0, _0811AF08 ldrb r0, [r0] cmp r0, 0 beq _0811AF02 ldr r1, _0811AF0C ldr r0, _0811AF10 str r0, [r1] movs r2, 0xF0 lsls r2, 3 adds r0, r2 str r0, [r1, 0x4] ldr r0, _0811AF14 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811AF02: pop {r0} bx r0 .align 2, 0 _0811AF08: .4byte 0x0200c000 _0811AF0C: .4byte 0x040000d4 _0811AF10: .4byte 0x03004de0 _0811AF14: .4byte 0x800000a0 thumb_func_end sub_811AEE0 thumb_func_start sub_811AF18 sub_811AF18: @ 811AF18 ldr r1, _0811AF38 ldr r0, _0811AF3C ldrh r0, [r0] lsls r0, 1 movs r2, 0xF0 lsls r2, 3 adds r1, r2 adds r0, r1 ldrh r1, [r0] ldr r0, _0811AF40 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x4 strh r1, [r0] bx lr .align 2, 0 _0811AF38: .4byte 0x03004de0 _0811AF3C: .4byte REG_VCOUNT _0811AF40: .4byte REG_BG1HOFS thumb_func_end sub_811AF18 thumb_func_start sub_811AF44 sub_811AF44: @ 811AF44 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811AF74 ldr r2, _0811AF78 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811AF56: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811AF56 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811AF74: .4byte gUnknown_083FD7B8 _0811AF78: .4byte 0x03004b20 thumb_func_end sub_811AF44 thumb_func_start sub_811AF7C sub_811AF7C: @ 811AF7C push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 bl sub_811D658 bl dp12_8087EA4 movs r0, 0x1 negs r0, r0 movs r4, 0 str r4, [sp] movs r1, 0x4 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0811AFE4 ldr r0, _0811AFE8 movs r2, 0x16 ldrsh r1, [r1, r2] movs r2, 0xA0 lsls r2, 1 bl memset ldr r0, _0811AFEC bl SetVBlankCallback ldr r0, _0811AFF0 bl SetHBlankCallback ldr r3, _0811AFF4 ldrh r2, [r3] strh r4, [r3] ldr r4, _0811AFF8 ldrh r0, [r4] movs r1, 0x3 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _0811AFFC ldrh r0, [r2] movs r1, 0x18 orrs r0, r1 strh r0, [r2] ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811AFE4: .4byte 0x0200c000 _0811AFE8: .4byte 0x03005560 _0811AFEC: .4byte sub_811B08C _0811AFF0: .4byte sub_811B0C4 _0811AFF4: .4byte 0x04000208 _0811AFF8: .4byte 0x04000200 _0811AFFC: .4byte REG_DISPSTAT thumb_func_end sub_811AF7C thumb_func_start sub_811B000 sub_811B000: @ 811B000 push {r4-r7,lr} ldr r2, _0811B07C ldrb r1, [r2] movs r1, 0 strb r1, [r2] ldrh r4, [r0, 0xA] ldrh r2, [r0, 0xC] lsls r3, r2, 16 asrs r3, 24 movs r5, 0x84 lsls r5, 5 adds r1, r4, r5 strh r1, [r0, 0xA] movs r1, 0xC0 lsls r1, 1 adds r2, r1 strh r2, [r0, 0xC] movs r5, 0 lsls r7, r3, 16 _0811B026: lsrs r0, r4, 8 asrs r1, r7, 16 bl sine ldr r2, _0811B080 lsls r1, r5, 1 adds r1, r2 ldr r6, _0811B07C ldrh r2, [r6, 0x16] adds r0, r2 strh r0, [r1] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 movs r1, 0x84 lsls r1, 5 adds r0, r4, r1 lsls r0, 16 lsrs r4, r0, 16 cmp r5, 0x9F bls _0811B026 ldr r0, _0811B084 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0811B06A ldr r0, _0811B088 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0811B06A: ldrb r0, [r6] adds r0, 0x1 ldrb r1, [r6] strb r0, [r6] movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811B07C: .4byte 0x0200c000 _0811B080: .4byte 0x03004de0 _0811B084: .4byte 0x0202f388 _0811B088: .4byte sub_811AF44 thumb_func_end sub_811B000 thumb_func_start sub_811B08C sub_811B08C: @ 811B08C push {lr} bl sub_811D67C ldr r0, _0811B0B4 ldrb r0, [r0] cmp r0, 0 beq _0811B0AE ldr r1, _0811B0B8 ldr r0, _0811B0BC str r0, [r1] movs r2, 0xF0 lsls r2, 3 adds r0, r2 str r0, [r1, 0x4] ldr r0, _0811B0C0 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811B0AE: pop {r0} bx r0 .align 2, 0 _0811B0B4: .4byte 0x0200c000 _0811B0B8: .4byte 0x040000d4 _0811B0BC: .4byte 0x03004de0 _0811B0C0: .4byte 0x800000a0 thumb_func_end sub_811B08C thumb_func_start sub_811B0C4 sub_811B0C4: @ 811B0C4 ldr r1, _0811B0E4 ldr r0, _0811B0E8 ldrh r0, [r0] lsls r0, 1 movs r2, 0xF0 lsls r2, 3 adds r1, r2 adds r0, r1 ldrh r1, [r0] ldr r0, _0811B0EC strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x4 strh r1, [r0] bx lr .align 2, 0 _0811B0E4: .4byte 0x03004de0 _0811B0E8: .4byte REG_VCOUNT _0811B0EC: .4byte REG_BG1VOFS thumb_func_end sub_811B0C4 thumb_func_start sub_811B0F0 sub_811B0F0: @ 811B0F0 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811B120 ldr r2, _0811B124 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811B102: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811B102 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811B120: .4byte gUnknown_083FD7C0 _0811B124: .4byte 0x03004b20 thumb_func_end sub_811B0F0 thumb_func_start sub_811B128 sub_811B128: @ 811B128 push {r4-r6,lr} sub sp, 0xC adds r4, r0, 0 bl sub_811D658 bl dp12_8087EA4 movs r2, 0 movs r3, 0x10 strh r3, [r4, 0xA] strh r2, [r4, 0xC] strh r2, [r4, 0x10] movs r0, 0x80 lsls r0, 7 strh r0, [r4, 0x12] ldr r1, _0811B1BC movs r0, 0x3F strh r0, [r1, 0x2] strh r2, [r1, 0x4] movs r0, 0xF0 strh r0, [r1, 0x6] movs r0, 0xA0 strh r0, [r1, 0x8] ldr r0, _0811B1C0 strh r0, [r1, 0xE] lsls r3, 8 strh r3, [r1, 0x10] movs r1, 0 add r5, sp, 0x4 add r6, sp, 0x8 ldr r3, _0811B1C4 movs r2, 0xF0 _0811B168: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x9F bls _0811B168 ldr r0, _0811B1C8 bl SetVBlankCallback adds r0, r5, 0 adds r1, r6, 0 bl sub_811D6A8 mov r1, sp movs r0, 0 strh r0, [r1] ldr r1, [sp, 0x4] ldr r2, _0811B1CC mov r0, sp bl CpuSet ldr r0, _0811B1D0 ldr r1, [sp, 0x8] movs r2, 0xB0 lsls r2, 2 bl CpuSet ldr r0, _0811B1D4 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 add sp, 0xC pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0811B1BC: .4byte 0x0200c000 _0811B1C0: .4byte 0x00003f41 _0811B1C4: .4byte 0x03005560 _0811B1C8: .4byte sub_811B520 _0811B1CC: .4byte 0x01000400 _0811B1D0: .4byte gUnknown_083FBB88 _0811B1D4: .4byte gFieldEffectObjectPalette10 thumb_func_end sub_811B128 thumb_func_start sub_811B1D8 sub_811B1D8: @ 811B1D8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 adds r7, r0, 0 ldr r5, _0811B260 add r1, sp, 0xC add r0, sp, 0x8 bl sub_811D6A8 movs r1, 0 ldr r0, [sp, 0x8] mov r9, r0 ldr r6, _0811B264 mov r8, r6 movs r0, 0xF0 lsls r0, 8 mov r12, r0 _0811B1FE: movs r0, 0 lsls r3, r1, 16 asrs r4, r3, 11 _0811B204: lsls r2, r0, 16 asrs r2, 16 adds r1, r4, r2 lsls r1, 1 add r1, r9 ldrh r0, [r5] mov r6, r12 orrs r0, r6 strh r0, [r1] adds r2, 0x1 lsls r2, 16 adds r5, 0x2 lsrs r0, r2, 16 asrs r2, 16 cmp r2, 0x1D ble _0811B204 movs r1, 0x80 lsls r1, 9 adds r0, r3, r1 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _0811B1FE movs r6, 0x10 ldrsh r2, [r7, r6] movs r1, 0x12 ldrsh r0, [r7, r1] str r0, [sp] movs r0, 0xA0 str r0, [sp, 0x4] mov r0, r8 movs r1, 0 movs r3, 0x84 bl sub_811D6E8 ldrh r0, [r7, 0x8] adds r0, 0x1 strh r0, [r7, 0x8] movs r0, 0x1 add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811B260: .4byte gUnknown_083FDB44 _0811B264: .4byte 0x03004de0 thumb_func_end sub_811B1D8 thumb_func_start sub_811B268 sub_811B268: @ 811B268 push {r4,lr} sub sp, 0x8 adds r2, r0, 0 ldr r1, _0811B2E8 ldrb r0, [r1] movs r0, 0 strb r0, [r1] ldrh r3, [r2, 0xE] movs r4, 0xE ldrsh r0, [r2, r4] adds r4, r1, 0 cmp r0, 0 beq _0811B28C subs r0, r3, 0x1 strh r0, [r2, 0xE] lsls r0, 16 cmp r0, 0 bne _0811B296 _0811B28C: ldrh r0, [r2, 0xC] adds r0, 0x1 strh r0, [r2, 0xC] movs r0, 0x2 strh r0, [r2, 0xE] _0811B296: ldrh r0, [r2, 0xA] lsls r0, 8 ldrh r1, [r2, 0xC] orrs r0, r1 strh r0, [r4, 0x10] lsls r1, 16 asrs r1, 16 cmp r1, 0xF ble _0811B2AE ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] _0811B2AE: ldrh r0, [r2, 0x10] adds r0, 0x8 strh r0, [r2, 0x10] ldr r0, _0811B2EC adds r1, r0, 0 ldrh r3, [r2, 0x12] adds r1, r3 strh r1, [r2, 0x12] ldr r0, _0811B2F0 movs r3, 0x10 ldrsh r2, [r2, r3] lsls r1, 16 asrs r1, 24 str r1, [sp] movs r1, 0xA0 str r1, [sp, 0x4] movs r1, 0 movs r3, 0x84 bl sub_811D6E8 ldrb r0, [r4] adds r0, 0x1 ldrb r1, [r4] strb r0, [r4] movs r0, 0 add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _0811B2E8: .4byte 0x0200c000 _0811B2EC: .4byte 0xffffff00 _0811B2F0: .4byte 0x03004de0 thumb_func_end sub_811B268 thumb_func_start sub_811B2F4 sub_811B2F4: @ 811B2F4 push {r4,r5,lr} sub sp, 0x8 adds r3, r0, 0 ldr r1, _0811B374 ldrb r0, [r1] movs r0, 0 strb r0, [r1] ldrh r2, [r3, 0xE] movs r4, 0xE ldrsh r0, [r3, r4] adds r4, r1, 0 cmp r0, 0 beq _0811B318 subs r0, r2, 0x1 strh r0, [r3, 0xE] lsls r0, 16 cmp r0, 0 bne _0811B322 _0811B318: ldrh r0, [r3, 0xA] subs r0, 0x1 strh r0, [r3, 0xA] movs r0, 0x2 strh r0, [r3, 0xE] _0811B322: ldrh r0, [r3, 0xA] lsls r1, r0, 8 ldrh r2, [r3, 0xC] orrs r1, r2 strh r1, [r4, 0x10] lsls r0, 16 cmp r0, 0 bne _0811B338 ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] _0811B338: ldrh r0, [r3, 0x10] adds r0, 0x8 strh r0, [r3, 0x10] ldr r5, _0811B378 adds r1, r5, 0 ldrh r0, [r3, 0x12] adds r1, r0 strh r1, [r3, 0x12] ldr r0, _0811B37C movs r5, 0x10 ldrsh r2, [r3, r5] lsls r1, 16 asrs r1, 24 str r1, [sp] movs r1, 0xA0 str r1, [sp, 0x4] movs r1, 0 movs r3, 0x84 bl sub_811D6E8 ldrb r0, [r4] adds r0, 0x1 ldrb r1, [r4] strb r0, [r4] movs r0, 0 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811B374: .4byte 0x0200c000 _0811B378: .4byte 0xffffff00 _0811B37C: .4byte 0x03004de0 thumb_func_end sub_811B2F4 thumb_func_start sub_811B380 sub_811B380: @ 811B380 push {r4-r7,lr} sub sp, 0x8 adds r4, r0, 0 ldr r5, _0811B3E0 ldrb r0, [r5] movs r7, 0 strb r7, [r5] ldrh r0, [r4, 0x10] adds r0, 0x8 strh r0, [r4, 0x10] ldr r0, _0811B3E4 adds r1, r0, 0 ldrh r3, [r4, 0x12] adds r1, r3 strh r1, [r4, 0x12] ldr r0, _0811B3E8 movs r3, 0x10 ldrsh r2, [r4, r3] lsls r1, 16 asrs r1, 24 str r1, [sp] movs r6, 0xA0 str r6, [sp, 0x4] movs r1, 0 movs r3, 0x84 bl sub_811D6E8 movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 bgt _0811B3CE ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] strh r6, [r4, 0xA] movs r0, 0x80 lsls r0, 1 strh r0, [r4, 0xC] strh r7, [r4, 0xE] _0811B3CE: ldrb r0, [r5] adds r0, 0x1 ldrb r1, [r5] strb r0, [r5] movs r0, 0 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811B3E0: .4byte 0x0200c000 _0811B3E4: .4byte 0xffffff00 _0811B3E8: .4byte 0x03004de0 thumb_func_end sub_811B380 thumb_func_start sub_811B3EC sub_811B3EC: @ 811B3EC push {r4,lr} adds r4, r0, 0 ldr r0, _0811B488 ldrb r1, [r0] movs r3, 0 strb r3, [r0] ldrh r2, [r4, 0xC] movs r0, 0xC ldrsh r1, [r4, r0] ldr r0, _0811B48C cmp r1, r0 bgt _0811B40A adds r0, r2, 0 adds r0, 0x80 strh r0, [r4, 0xC] _0811B40A: ldrh r1, [r4, 0xA] movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0 beq _0811B426 ldrh r0, [r4, 0xC] lsls r0, 16 asrs r0, 24 subs r0, r1, r0 strh r0, [r4, 0xA] lsls r0, 16 cmp r0, 0 bge _0811B426 strh r3, [r4, 0xA] _0811B426: ldr r0, _0811B490 movs r1, 0xA ldrsh r3, [r4, r1] movs r1, 0x78 movs r2, 0x50 bl sub_811D764 movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0 bne _0811B462 ldr r1, _0811B494 ldrh r2, [r1, 0xA] ldr r0, _0811B498 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _0811B49C ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] bl sub_811D6D4 ldr r0, _0811B4A0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0811B462: ldrh r1, [r4, 0xE] movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0 bne _0811B476 adds r0, r1, 0x1 strh r0, [r4, 0xE] ldr r0, _0811B4A4 bl SetVBlankCallback _0811B476: ldr r0, _0811B488 ldrb r1, [r0] adds r1, 0x1 ldrb r2, [r0] strb r1, [r0] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0811B488: .4byte 0x0200c000 _0811B48C: .4byte 0x000003ff _0811B490: .4byte 0x03004de0 _0811B494: .4byte 0x040000b0 _0811B498: .4byte 0x0000c5ff _0811B49C: .4byte 0x00007fff _0811B4A0: .4byte sub_811B0F0 _0811B4A4: .4byte sub_811B54C thumb_func_end sub_811B3EC thumb_func_start sub_811B4A8 sub_811B4A8: @ 811B4A8 push {lr} ldr r1, _0811B500 ldrh r2, [r1, 0xA] ldr r0, _0811B504 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _0811B508 ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] bl sub_811D67C ldr r2, _0811B50C ldrb r0, [r2] cmp r0, 0 beq _0811B4DE ldr r1, _0811B510 ldr r0, _0811B514 str r0, [r1] movs r3, 0xF0 lsls r3, 3 adds r0, r3 str r0, [r1, 0x4] ldr r0, _0811B518 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811B4DE: ldr r1, _0811B51C ldrh r0, [r2, 0x2] strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x4] strh r0, [r1] subs r1, 0x6 ldrh r0, [r2, 0x8] strh r0, [r1] adds r1, 0xC ldrh r0, [r2, 0xE] strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x10] strh r0, [r1] pop {r0} bx r0 .align 2, 0 _0811B500: .4byte 0x040000b0 _0811B504: .4byte 0x0000c5ff _0811B508: .4byte 0x00007fff _0811B50C: .4byte 0x0200c000 _0811B510: .4byte 0x040000d4 _0811B514: .4byte 0x03004de0 _0811B518: .4byte 0x800000a0 _0811B51C: .4byte REG_WININ thumb_func_end sub_811B4A8 thumb_func_start sub_811B520 sub_811B520: @ 811B520 push {lr} bl sub_811B4A8 ldr r1, _0811B53C ldr r0, _0811B540 str r0, [r1] ldr r0, _0811B544 str r0, [r1, 0x4] ldr r0, _0811B548 str r0, [r1, 0x8] ldr r0, [r1, 0x8] pop {r0} bx r0 .align 2, 0 _0811B53C: .4byte 0x040000b0 _0811B540: .4byte 0x03005560 _0811B544: .4byte REG_BG0HOFS _0811B548: .4byte 0xa2400001 thumb_func_end sub_811B520 thumb_func_start sub_811B54C sub_811B54C: @ 811B54C push {lr} bl sub_811B4A8 ldr r1, _0811B568 ldr r0, _0811B56C str r0, [r1] ldr r0, _0811B570 str r0, [r1, 0x4] ldr r0, _0811B574 str r0, [r1, 0x8] ldr r0, [r1, 0x8] pop {r0} bx r0 .align 2, 0 _0811B568: .4byte 0x040000b0 _0811B56C: .4byte 0x03005560 _0811B570: .4byte REG_WIN0H _0811B574: .4byte 0xa2400001 thumb_func_end sub_811B54C thumb_func_start sub_811B578 sub_811B578: @ 811B578 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811B5A8 ldr r2, _0811B5AC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811B58A: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811B58A pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811B5A8: .4byte gUnknown_083FD7D8 _0811B5AC: .4byte 0x03004b20 thumb_func_end sub_811B578 thumb_func_start sub_811B5B0 sub_811B5B0: @ 811B5B0 push {r4,lr} sub sp, 0xC adds r4, r0, 0 add r0, sp, 0x4 add r1, sp, 0x8 bl sub_811D6A8 ldr r0, _0811B5F0 ldr r1, [sp, 0x8] movs r2, 0x20 bl CpuSet movs r0, 0 str r0, [sp] ldr r1, [sp, 0x4] ldr r2, _0811B5F4 mov r0, sp bl CpuSet ldr r0, _0811B5F8 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 add sp, 0xC pop {r4} pop {r1} bx r1 .align 2, 0 _0811B5F0: .4byte gUnknown_083FC108 _0811B5F4: .4byte 0x05000200 _0811B5F8: .4byte gFieldEffectObjectPalette10 thumb_func_end sub_811B5B0 thumb_func_start sub_811B5FC sub_811B5FC: @ 811B5FC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 adds r7, r0, 0 ldr r1, _0811B67C mov r0, sp movs r2, 0x4 bl memcpy add r4, sp, 0x4 ldr r1, _0811B680 adds r0, r4, 0 movs r2, 0xA bl memcpy bl Random movs r5, 0x1 ands r5, r0 movs r1, 0 mov r8, r4 ldr r6, _0811B684 _0811B62A: lsls r5, 16 asrs r5, 16 lsls r0, r5, 1 add r0, sp movs r2, 0 ldrsh r0, [r0, r2] str r0, [r6] lsls r4, r1, 16 asrs r4, 16 lsls r0, r4, 5 adds r0, 0x10 str r0, [r6, 0x4] str r5, [r6, 0x8] lsls r0, r4, 1 add r0, r8 movs r1, 0 ldrsh r0, [r0, r1] str r0, [r6, 0xC] movs r0, 0x2D bl FieldEffectStart adds r4, 0x1 lsls r4, 16 movs r0, 0x1 eors r5, r0 lsls r5, 16 lsrs r5, 16 lsrs r1, r4, 16 asrs r4, 16 cmp r4, 0x4 ble _0811B62A ldrh r0, [r7, 0x8] adds r0, 0x1 strh r0, [r7, 0x8] movs r0, 0 add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811B67C: .4byte gUnknown_083FD7E4 _0811B680: .4byte gUnknown_083FD7E8 _0811B684: .4byte 0x0202ff84 thumb_func_end sub_811B5FC thumb_func_start sub_811B688 sub_811B688: @ 811B688 push {lr} movs r0, 0x2D bl FieldEffectActiveListContains lsls r0, 24 cmp r0, 0 bne _0811B6A8 bl sub_811D6D4 ldr r0, _0811B6B0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0811B6A8: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0811B6B0: .4byte sub_811B578 thumb_func_end sub_811B688 thumb_func_start sub_811B6B4 sub_811B6B4: @ 811B6B4 push {r4,r5,lr} ldr r0, _0811B710 ldr r5, _0811B714 movs r2, 0 ldrsh r1, [r5, r2] movs r3, 0x4 ldrsh r2, [r5, r3] movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 ldr r1, _0811B718 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r4, r1 ldrb r1, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r4, 0x5] 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, [r5, 0x8] strh r0, [r4, 0x2E] ldr r0, [r5, 0xC] strh r0, [r4, 0x30] ldr r0, _0811B71C strh r0, [r4, 0x32] adds r0, r4, 0 bl InitSpriteAffineAnim ldrb r1, [r5, 0x8] adds r0, r4, 0 bl StartSpriteAffineAnim movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811B710: .4byte gSpriteTemplate_83FD98C _0811B714: .4byte 0x0202ff84 _0811B718: .4byte 0x02020004 _0811B71C: .4byte 0x0000ffff thumb_func_end sub_811B6B4 thumb_func_start sub_811B720 sub_811B720: @ 811B720 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 ldr r1, _0811B740 mov r0, sp movs r2, 0x4 bl memcpy ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0 beq _0811B744 subs r0, r1, 0x1 strh r0, [r4, 0x30] b _0811B7D6 .align 2, 0 _0811B740: .4byte gUnknown_083FD7F2 _0811B744: ldrh r0, [r4, 0x20] lsls r1, r0, 16 lsrs r0, r1, 16 cmp r0, 0xF0 bhi _0811B7B2 asrs r0, r1, 19 lsls r0, 16 ldrh r1, [r4, 0x22] lsls r1, 16 asrs r1, 19 lsls r1, 16 lsrs r1, 16 lsrs r2, r0, 16 asrs r5, r0, 16 movs r3, 0x32 ldrsh r0, [r4, r3] cmp r5, r0 beq _0811B7B2 strh r2, [r4, 0x32] ldr r0, _0811B7E0 ldrh r2, [r0] lsrs r2, 8 movs r0, 0x1F ands r2, r0 lsls r2, 11 movs r0, 0xC0 lsls r0, 19 adds r2, r0 lsls r1, 16 asrs r1, 16 subs r0, r1, 0x2 lsls r0, 5 adds r0, r5 lsls r0, 1 adds r0, r2 ldr r6, _0811B7E4 adds r3, r6, 0 strh r3, [r0] subs r0, r1, 0x1 lsls r0, 5 adds r0, r5 lsls r0, 1 adds r0, r2 strh r3, [r0] lsls r0, r1, 5 adds r0, r5 lsls r0, 1 adds r0, r2 strh r3, [r0] adds r1, 0x1 lsls r1, 5 adds r1, r5 lsls r1, 1 adds r1, r2 strh r3, [r1] _0811B7B2: movs r1, 0x2E ldrsh r0, [r4, r1] lsls r0, 1 add r0, sp ldrh r0, [r0] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] adds r0, 0xF lsls r0, 16 movs r1, 0x87 lsls r1, 17 cmp r0, r1 bls _0811B7D6 adds r0, r4, 0 movs r1, 0x2D bl FieldEffectStop _0811B7D6: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811B7E0: .4byte REG_BG0CNT _0811B7E4: .4byte 0x0000f001 thumb_func_end sub_811B720 thumb_func_start sub_811B7E8 sub_811B7E8: @ 811B7E8 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811B818 ldr r2, _0811B81C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811B7FA: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811B7FA pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811B818: .4byte gUnknown_083FD7F8 _0811B81C: .4byte 0x03004b20 thumb_func_end sub_811B7E8 thumb_func_start sub_811B820 sub_811B820: @ 811B820 push {r4,lr} adds r4, r0, 0 bl sub_811D658 bl dp12_8087EA4 ldr r1, _0811B870 movs r0, 0 strh r0, [r1, 0x2] movs r0, 0x3F strh r0, [r1, 0x4] ldr r0, _0811B874 strh r0, [r1, 0x6] movs r0, 0xA0 strh r0, [r1, 0x8] movs r1, 0 ldr r3, _0811B878 ldr r2, _0811B87C _0811B844: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x9F bls _0811B844 ldr r0, _0811B880 bl SetVBlankCallback ldr r1, _0811B870 movs r0, 0x78 strh r0, [r1, 0x2C] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0811B870: .4byte 0x0200c000 _0811B874: .4byte 0x0000f0f1 _0811B878: .4byte 0x03005560 _0811B87C: .4byte 0x0000f3f4 _0811B880: .4byte sub_811BC2C thumb_func_end sub_811B820 thumb_func_start sub_811B884 sub_811B884: @ 811B884 push {r4-r6,lr} sub sp, 0xC adds r6, r0, 0 ldr r4, _0811B904 ldrb r0, [r4] movs r0, 0 strb r0, [r4] adds r0, r4, 0 adds r0, 0x24 movs r1, 0x2C ldrsh r3, [r4, r1] movs r1, 0x1 negs r1, r1 str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0x78 movs r2, 0x50 bl sub_811D8FC ldr r5, _0811B908 _0811B8B0: movs r3, 0x2A ldrsh r2, [r4, r3] lsls r2, 1 adds r2, r5 ldrh r0, [r4, 0x28] adds r0, 0x1 movs r3, 0xF0 lsls r3, 7 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] adds r0, r4, 0 adds r0, 0x24 movs r1, 0x1 movs r2, 0x1 bl sub_811D978 lsls r0, 24 cmp r0, 0 beq _0811B8B0 ldr r2, _0811B904 ldrh r0, [r2, 0x2C] adds r0, 0x10 strh r0, [r2, 0x2C] lsls r0, 16 asrs r0, 16 cmp r0, 0xEF ble _0811B8F2 movs r0, 0 strh r0, [r2, 0x2E] ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] _0811B8F2: ldrb r0, [r2] adds r0, 0x1 ldrb r1, [r2] strb r0, [r2] movs r0, 0 add sp, 0xC pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0811B904: .4byte 0x0200c000 _0811B908: .4byte 0x03004de0 thumb_func_end sub_811B884 thumb_func_start sub_811B90C sub_811B90C: @ 811B90C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 adds r7, r0, 0 add r1, sp, 0xC movs r0, 0 strb r0, [r1] ldr r4, _0811B988 ldrb r0, [r4] movs r0, 0 strb r0, [r4] adds r0, r4, 0 adds r0, 0x24 movs r2, 0x2E ldrsh r1, [r4, r2] str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0x78 movs r2, 0x50 movs r3, 0xF0 bl sub_811D8FC adds r6, r4, 0 ldr r5, _0811B98C mov r8, r5 add r5, sp, 0xC _0811B946: movs r1, 0x78 ldrh r0, [r4, 0x28] adds r0, 0x1 lsls r0, 16 lsrs r3, r0, 16 movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0x4F ble _0811B95C ldrh r1, [r4, 0x28] movs r3, 0xF0 _0811B95C: movs r0, 0x2A ldrsh r2, [r4, r0] lsls r2, 1 add r2, r8 lsls r1, 16 asrs r1, 8 lsls r0, r3, 16 asrs r3, r0, 16 orrs r3, r1 strh r3, [r2] ldrb r0, [r5] cmp r0, 0 bne _0811B990 adds r0, r4, 0 adds r0, 0x24 movs r1, 0x1 movs r2, 0x1 bl sub_811D978 strb r0, [r5] b _0811B946 .align 2, 0 _0811B988: .4byte 0x0200c000 _0811B98C: .4byte 0x03004de0 _0811B990: ldrh r0, [r4, 0x2E] adds r0, 0x8 strh r0, [r4, 0x2E] lsls r0, 16 asrs r1, r0, 16 cmp r1, 0x9F ble _0811B9AA movs r0, 0xF0 strh r0, [r4, 0x2C] ldrh r0, [r7, 0x8] adds r0, 0x1 strh r0, [r7, 0x8] b _0811B9D0 _0811B9AA: movs r2, 0x2A ldrsh r0, [r4, r2] cmp r0, r1 bge _0811B9D0 ldr r4, _0811B9E8 ldr r2, _0811B9EC _0811B9B6: ldrh r0, [r2, 0x2A] adds r0, 0x1 strh r0, [r2, 0x2A] lsls r0, 16 asrs r0, 15 adds r0, r4 strh r3, [r0] movs r5, 0x2A ldrsh r1, [r2, r5] movs r5, 0x2E ldrsh r0, [r2, r5] cmp r1, r0 blt _0811B9B6 _0811B9D0: ldrb r0, [r6] adds r0, 0x1 ldrb r1, [r6] strb r0, [r6] movs r0, 0 add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811B9E8: .4byte 0x03004de0 _0811B9EC: .4byte 0x0200c000 thumb_func_end sub_811B90C thumb_func_start sub_811B9F0 sub_811B9F0: @ 811B9F0 push {r4-r6,lr} sub sp, 0xC adds r6, r0, 0 ldr r4, _0811BA68 ldrb r0, [r4] movs r0, 0 strb r0, [r4] adds r0, r4, 0 adds r0, 0x24 movs r1, 0x2C ldrsh r3, [r4, r1] movs r1, 0xA0 str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0x78 movs r2, 0x50 bl sub_811D8FC ldr r5, _0811BA6C _0811BA1A: movs r0, 0x2A ldrsh r2, [r4, r0] lsls r2, 1 adds r2, r5 ldrh r0, [r4, 0x28] lsls r0, 8 movs r1, 0xF0 orrs r0, r1 strh r0, [r2] adds r0, r4, 0 adds r0, 0x24 movs r1, 0x1 movs r2, 0x1 bl sub_811D978 lsls r0, 24 cmp r0, 0 beq _0811BA1A ldr r2, _0811BA68 ldrh r0, [r2, 0x2C] subs r0, 0x10 strh r0, [r2, 0x2C] lsls r0, 16 cmp r0, 0 bgt _0811BA56 movs r0, 0xA0 strh r0, [r2, 0x2E] ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] _0811BA56: ldrb r0, [r2] adds r0, 0x1 ldrb r1, [r2] strb r0, [r2] movs r0, 0 add sp, 0xC pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0811BA68: .4byte 0x0200c000 _0811BA6C: .4byte 0x03004de0 thumb_func_end sub_811B9F0 thumb_func_start sub_811BA70 sub_811BA70: @ 811BA70 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 mov r8, r0 add r1, sp, 0xC movs r0, 0 strb r0, [r1] ldr r4, _0811BAF0 ldrb r0, [r4] movs r0, 0 strb r0, [r4] adds r0, r4, 0 adds r0, 0x24 movs r2, 0x2E ldrsh r1, [r4, r2] str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0x78 movs r2, 0x50 movs r3, 0 bl sub_811D8FC ldr r3, _0811BAF4 mov r9, r3 mov r10, r4 add r6, sp, 0xC _0811BAAE: movs r5, 0x2A ldrsh r0, [r4, r5] lsls r0, 1 mov r7, r9 adds r5, r0, r7 ldrb r1, [r5] ldrh r2, [r4, 0x28] adds r3, r2, 0 movs r7, 0x2E ldrsh r0, [r4, r7] cmp r0, 0x50 bgt _0811BACA movs r2, 0x78 adds r1, r3, 0 _0811BACA: lsls r0, r2, 16 asrs r0, 8 lsls r1, 16 asrs r1, 16 orrs r1, r0 movs r3, 0 strh r1, [r5] ldrb r0, [r6] cmp r0, 0 bne _0811BAF8 adds r0, r4, 0 adds r0, 0x24 movs r1, 0x1 movs r2, 0x1 bl sub_811D978 strb r0, [r6] b _0811BAAE .align 2, 0 _0811BAF0: .4byte 0x0200c000 _0811BAF4: .4byte 0x03004de0 _0811BAF8: ldrh r0, [r4, 0x2E] subs r0, 0x8 strh r0, [r4, 0x2E] lsls r0, 16 asrs r2, r0, 16 cmp r2, 0 bgt _0811BB12 strh r3, [r4, 0x2C] mov r1, r8 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0811BB3A _0811BB12: movs r3, 0x2A ldrsh r0, [r4, r3] cmp r0, r2 ble _0811BB3A ldr r4, _0811BB58 ldr r2, _0811BB5C adds r3, r1, 0 _0811BB20: ldrh r0, [r2, 0x2A] subs r0, 0x1 strh r0, [r2, 0x2A] lsls r0, 16 asrs r0, 15 adds r0, r4 strh r3, [r0] movs r5, 0x2A ldrsh r1, [r2, r5] movs r7, 0x2E ldrsh r0, [r2, r7] cmp r1, r0 bgt _0811BB20 _0811BB3A: mov r1, r10 ldrb r0, [r1] adds r0, 0x1 ldrb r1, [r1] mov r2, r10 strb r0, [r2] movs r0, 0 add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811BB58: .4byte 0x03004de0 _0811BB5C: .4byte 0x0200c000 thumb_func_end sub_811BA70 thumb_func_start sub_811BB60 sub_811BB60: @ 811BB60 push {r4-r6,lr} sub sp, 0xC adds r6, r0, 0 ldr r4, _0811BBE4 ldrb r0, [r4] movs r1, 0 strb r1, [r4] adds r0, r4, 0 adds r0, 0x24 movs r2, 0x2C ldrsh r3, [r4, r2] str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0x78 movs r2, 0x50 bl sub_811D8FC ldr r5, _0811BBE8 _0811BB88: movs r2, 0x78 ldrh r3, [r4, 0x28] movs r1, 0x28 ldrsh r0, [r4, r1] cmp r0, 0x77 ble _0811BB98 movs r2, 0 movs r3, 0xF0 _0811BB98: movs r0, 0x2A ldrsh r1, [r4, r0] lsls r1, 1 adds r1, r5 lsls r2, 8 lsls r0, r3, 16 asrs r0, 16 orrs r0, r2 strh r0, [r1] adds r0, r4, 0 adds r0, 0x24 movs r1, 0x1 movs r2, 0x1 bl sub_811D978 lsls r0, 24 cmp r0, 0 beq _0811BB88 ldr r2, _0811BBE4 ldrh r0, [r2, 0x2C] adds r0, 0x10 strh r0, [r2, 0x2C] movs r1, 0x28 ldrsh r0, [r2, r1] cmp r0, 0x78 ble _0811BBD2 ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] _0811BBD2: ldrb r0, [r2] adds r0, 0x1 ldrb r1, [r2] strb r0, [r2] movs r0, 0 add sp, 0xC pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0811BBE4: .4byte 0x0200c000 _0811BBE8: .4byte 0x03004de0 thumb_func_end sub_811BB60 thumb_func_start sub_811BBEC sub_811BBEC: @ 811BBEC push {lr} ldr r1, _0811BC1C ldrh r2, [r1, 0xA] ldr r0, _0811BC20 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _0811BC24 ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] bl sub_811D6D4 ldr r0, _0811BC28 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 pop {r1} bx r1 .align 2, 0 _0811BC1C: .4byte 0x040000b0 _0811BC20: .4byte 0x0000c5ff _0811BC24: .4byte 0x00007fff _0811BC28: .4byte sub_811B7E8 thumb_func_end sub_811BBEC thumb_func_start sub_811BC2C sub_811BC2C: @ 811BC2C push {r4,lr} ldr r4, _0811BC94 ldrh r1, [r4, 0xA] ldr r0, _0811BC98 ands r0, r1 strh r0, [r4, 0xA] ldrh r1, [r4, 0xA] ldr r0, _0811BC9C ands r0, r1 strh r0, [r4, 0xA] ldrh r0, [r4, 0xA] bl sub_811D67C ldr r2, _0811BCA0 ldrb r0, [r2] cmp r0, 0 beq _0811BC62 ldr r1, _0811BCA4 ldr r0, _0811BCA8 str r0, [r1] movs r3, 0xF0 lsls r3, 3 adds r0, r3 str r0, [r1, 0x4] ldr r0, _0811BCAC str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811BC62: ldr r1, _0811BCB0 ldrh r0, [r2, 0x2] strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x4] strh r0, [r1] subs r1, 0x6 ldrh r0, [r2, 0x8] strh r0, [r1] ldr r2, _0811BCB4 ldr r0, _0811BCA8 movs r1, 0xF0 lsls r1, 3 adds r0, r1 ldrh r1, [r0] strh r1, [r2] str r0, [r4] str r2, [r4, 0x4] ldr r0, _0811BCB8 str r0, [r4, 0x8] ldr r0, [r4, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _0811BC94: .4byte 0x040000b0 _0811BC98: .4byte 0x0000c5ff _0811BC9C: .4byte 0x00007fff _0811BCA0: .4byte 0x0200c000 _0811BCA4: .4byte 0x040000d4 _0811BCA8: .4byte 0x03004de0 _0811BCAC: .4byte 0x800000a0 _0811BCB0: .4byte REG_WININ _0811BCB4: .4byte REG_WIN0H _0811BCB8: .4byte 0xa2400001 thumb_func_end sub_811BC2C thumb_func_start sub_811BCBC sub_811BCBC: @ 811BCBC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811BCEC ldr r2, _0811BCF0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811BCCE: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811BCCE pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811BCEC: .4byte gUnknown_083FD814 _0811BCF0: .4byte 0x03004b20 thumb_func_end sub_811BCBC thumb_func_start sub_811BCF4 sub_811BCF4: @ 811BCF4 push {r4,r5,lr} adds r5, r0, 0 bl sub_811D658 bl dp12_8087EA4 movs r2, 0 ldr r4, _0811BD48 ldr r3, _0811BD4C _0811BD06: lsls r0, r2, 1 adds r0, r4 ldrh r1, [r3, 0x16] strh r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x9F bls _0811BD06 ldr r0, _0811BD50 bl SetVBlankCallback ldr r0, _0811BD54 bl SetHBlankCallback ldr r2, _0811BD58 ldrh r0, [r2] movs r1, 0x2 orrs r0, r1 strh r0, [r2] ldr r2, _0811BD5C ldrh r0, [r2] movs r1, 0x10 orrs r0, r1 strh r0, [r2] ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811BD48: .4byte 0x03005560 _0811BD4C: .4byte 0x0200c000 _0811BD50: .4byte sub_811BE3C _0811BD54: .4byte sub_811BE74 _0811BD58: .4byte 0x04000200 _0811BD5C: .4byte REG_DISPSTAT thumb_func_end sub_811BCF4 thumb_func_start sub_811BD60 sub_811BD60: @ 811BD60 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r6, r0, 0 ldr r1, _0811BE28 ldrb r0, [r1] movs r0, 0 strb r0, [r1] ldrh r2, [r6, 0xC] lsls r1, r2, 16 asrs r0, r1, 24 lsls r0, 16 lsrs r3, r0, 16 ldrh r4, [r6, 0xA] movs r0, 0xC0 lsls r0, 1 mov r8, r0 movs r5, 0x80 lsls r5, 3 adds r0, r4, r5 strh r0, [r6, 0xA] ldr r0, _0811BE2C cmp r1, r0 bgt _0811BD9A movs r1, 0xC0 lsls r1, 1 adds r0, r2, r1 strh r0, [r6, 0xC] _0811BD9A: movs r5, 0 lsls r7, r3, 16 _0811BD9E: lsrs r0, r4, 8 asrs r1, r7, 16 bl sine ldr r1, _0811BE30 lsls r2, r5, 1 adds r2, r1 ldr r1, _0811BE28 ldrh r1, [r1, 0x16] adds r0, r1 strh r0, [r2] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 mov r1, r8 adds r0, r4, r1 lsls r0, 16 lsrs r4, r0, 16 cmp r5, 0x9F bls _0811BD9E ldrh r0, [r6, 0xE] adds r0, 0x1 strh r0, [r6, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x51 bne _0811BDEC ldrh r0, [r6, 0x10] adds r0, 0x1 strh r0, [r6, 0x10] movs r0, 0x1 negs r0, r0 movs r1, 0x2 negs r1, r1 movs r2, 0 str r2, [sp] movs r3, 0x10 bl BeginNormalPaletteFade _0811BDEC: movs r5, 0x10 ldrsh r0, [r6, r5] cmp r0, 0 beq _0811BE0E ldr r0, _0811BE34 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0811BE0E ldr r0, _0811BE38 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0811BE0E: ldr r0, _0811BE28 ldrb r1, [r0] adds r1, 0x1 ldrb r2, [r0] strb r1, [r0] movs r0, 0 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811BE28: .4byte 0x0200c000 _0811BE2C: .4byte 0x1fff0000 _0811BE30: .4byte 0x03004de0 _0811BE34: .4byte 0x0202f388 _0811BE38: .4byte sub_811BCBC thumb_func_end sub_811BD60 thumb_func_start sub_811BE3C sub_811BE3C: @ 811BE3C push {lr} bl sub_811D67C ldr r0, _0811BE64 ldrb r0, [r0] cmp r0, 0 beq _0811BE5E ldr r1, _0811BE68 ldr r0, _0811BE6C str r0, [r1] movs r2, 0xF0 lsls r2, 3 adds r0, r2 str r0, [r1, 0x4] ldr r0, _0811BE70 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811BE5E: pop {r0} bx r0 .align 2, 0 _0811BE64: .4byte 0x0200c000 _0811BE68: .4byte 0x040000d4 _0811BE6C: .4byte 0x03004de0 _0811BE70: .4byte 0x800000a0 thumb_func_end sub_811BE3C thumb_func_start sub_811BE74 sub_811BE74: @ 811BE74 ldr r1, _0811BE94 ldr r0, _0811BE98 ldrh r0, [r0] lsls r0, 1 movs r2, 0xF0 lsls r2, 3 adds r1, r2 adds r0, r1 ldrh r1, [r0] ldr r0, _0811BE9C strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x4 strh r1, [r0] bx lr .align 2, 0 _0811BE94: .4byte 0x03004de0 _0811BE98: .4byte REG_VCOUNT _0811BE9C: .4byte REG_BG1VOFS thumb_func_end sub_811BE74 thumb_func_start sub_811BEA0 sub_811BEA0: @ 811BEA0 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811BED0 ldr r2, _0811BED4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811BEB2: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811BEB2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811BED0: .4byte gUnknown_083FD81C _0811BED4: .4byte 0x03004b20 thumb_func_end sub_811BEA0 thumb_func_start sub_811BED8 sub_811BED8: @ 811BED8 push {r4,lr} adds r4, r0, 0 bl sub_811D658 bl dp12_8087EA4 ldr r1, _0811BF20 movs r2, 0 movs r0, 0x3F strh r0, [r1, 0x2] strh r2, [r1, 0x4] movs r0, 0xF0 strh r0, [r1, 0x6] movs r0, 0xA0 strh r0, [r1, 0x8] movs r1, 0 ldr r3, _0811BF24 movs r2, 0xF2 _0811BEFC: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x9F bls _0811BEFC ldr r0, _0811BF28 bl SetVBlankCallback ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0811BF20: .4byte 0x0200c000 _0811BF24: .4byte 0x03005560 _0811BF28: .4byte sub_811C004 thumb_func_end sub_811BED8 thumb_func_start sub_811BF2C sub_811BF2C: @ 811BF2C push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 ldr r1, _0811BFBC ldrb r0, [r1] movs r0, 0 strb r0, [r1] ldr r7, _0811BFC0 ldrh r0, [r4, 0xC] ldrb r5, [r4, 0xC] adds r0, 0x10 strh r0, [r4, 0xC] ldrh r0, [r4, 0xA] adds r0, 0x8 strh r0, [r4, 0xA] movs r6, 0 movs r0, 0x1 mov r8, r0 _0811BF52: adds r0, r5, 0 movs r1, 0x28 bl sine ldrh r1, [r4, 0xA] adds r0, r1 lsls r0, 16 lsrs r1, r0, 16 cmp r0, 0 bge _0811BF68 movs r1, 0 _0811BF68: lsls r0, r1, 16 asrs r0, 16 cmp r0, 0xF0 ble _0811BF72 movs r1, 0xF0 _0811BF72: lsls r0, r1, 16 asrs r0, 16 lsls r1, r0, 8 movs r2, 0xF1 orrs r1, r2 strh r1, [r7] cmp r0, 0xEF bgt _0811BF86 movs r0, 0 mov r8, r0 _0811BF86: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r0, r5, 0x4 lsls r0, 24 lsrs r5, r0, 24 adds r7, 0x2 cmp r6, 0x9F bls _0811BF52 mov r1, r8 cmp r1, 0 beq _0811BFA4 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0811BFA4: ldr r0, _0811BFBC ldrb r1, [r0] adds r1, 0x1 ldrb r2, [r0] strb r1, [r0] movs r0, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811BFBC: .4byte 0x0200c000 _0811BFC0: .4byte 0x03004de0 thumb_func_end sub_811BF2C thumb_func_start sub_811BFC4 sub_811BFC4: @ 811BFC4 push {lr} ldr r1, _0811BFF4 ldrh r2, [r1, 0xA] ldr r0, _0811BFF8 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _0811BFFC ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] bl sub_811D6D4 ldr r0, _0811C000 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 pop {r1} bx r1 .align 2, 0 _0811BFF4: .4byte 0x040000b0 _0811BFF8: .4byte 0x0000c5ff _0811BFFC: .4byte 0x00007fff _0811C000: .4byte sub_811BEA0 thumb_func_end sub_811BFC4 thumb_func_start sub_811C004 sub_811C004: @ 811C004 push {r4,lr} ldr r4, _0811C060 ldrh r1, [r4, 0xA] ldr r0, _0811C064 ands r0, r1 strh r0, [r4, 0xA] ldrh r1, [r4, 0xA] ldr r0, _0811C068 ands r0, r1 strh r0, [r4, 0xA] ldrh r0, [r4, 0xA] bl sub_811D67C ldr r2, _0811C06C ldrb r0, [r2] cmp r0, 0 beq _0811C03A ldr r1, _0811C070 ldr r0, _0811C074 str r0, [r1] movs r3, 0xF0 lsls r3, 3 adds r0, r3 str r0, [r1, 0x4] ldr r0, _0811C078 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811C03A: ldr r1, _0811C07C ldrh r0, [r2, 0x2] strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x4] strh r0, [r1] subs r1, 0x6 ldrh r0, [r2, 0x8] strh r0, [r1] ldr r0, _0811C080 str r0, [r4] ldr r0, _0811C084 str r0, [r4, 0x4] ldr r0, _0811C088 str r0, [r4, 0x8] ldr r0, [r4, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _0811C060: .4byte 0x040000b0 _0811C064: .4byte 0x0000c5ff _0811C068: .4byte 0x00007fff _0811C06C: .4byte 0x0200c000 _0811C070: .4byte 0x040000d4 _0811C074: .4byte 0x03004de0 _0811C078: .4byte 0x800000a0 _0811C07C: .4byte REG_WININ _0811C080: .4byte 0x03005560 _0811C084: .4byte REG_WIN0H _0811C088: .4byte 0xa2400001 thumb_func_end sub_811C004 thumb_func_start sub_811C08C sub_811C08C: @ 811C08C push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0811C0A8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0 strh r2, [r1, 0x26] bl sub_811C12C pop {r0} bx r0 .align 2, 0 _0811C0A8: .4byte 0x03004b20 thumb_func_end sub_811C08C thumb_func_start sub_811C0AC sub_811C0AC: @ 811C0AC push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0811C0C8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0x1 strh r2, [r1, 0x26] bl sub_811C12C pop {r0} bx r0 .align 2, 0 _0811C0C8: .4byte 0x03004b20 thumb_func_end sub_811C0AC thumb_func_start sub_811C0CC sub_811C0CC: @ 811C0CC push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0811C0E8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0x2 strh r2, [r1, 0x26] bl sub_811C12C pop {r0} bx r0 .align 2, 0 _0811C0E8: .4byte 0x03004b20 thumb_func_end sub_811C0CC thumb_func_start sub_811C0EC sub_811C0EC: @ 811C0EC push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0811C108 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0x3 strh r2, [r1, 0x26] bl sub_811C12C pop {r0} bx r0 .align 2, 0 _0811C108: .4byte 0x03004b20 thumb_func_end sub_811C0EC thumb_func_start sub_811C10C sub_811C10C: @ 811C10C push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0811C128 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0x4 strh r2, [r1, 0x26] bl sub_811C12C pop {r0} bx r0 .align 2, 0 _0811C128: .4byte 0x03004b20 thumb_func_end sub_811C10C thumb_func_start sub_811C12C sub_811C12C: @ 811C12C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811C15C ldr r2, _0811C160 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811C13E: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811C13E pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811C15C: .4byte gUnknown_083FD828 _0811C160: .4byte 0x03004b20 thumb_func_end sub_811C12C thumb_func_start sub_811C164 sub_811C164: @ 811C164 push {r4,lr} adds r4, r0, 0 bl sub_811D658 bl dp12_8087EA4 adds r0, r4, 0 bl sub_811C7B0 movs r0, 0 strh r0, [r4, 0xA] movs r0, 0x1 strh r0, [r4, 0xC] movs r0, 0xEF strh r0, [r4, 0xE] ldr r1, _0811C1BC movs r0, 0x3F strh r0, [r1, 0x2] movs r0, 0x3E strh r0, [r1, 0x4] movs r0, 0xA0 strh r0, [r1, 0x8] movs r1, 0 ldr r3, _0811C1C0 ldr r2, _0811C1C4 _0811C196: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x9F bls _0811C196 ldr r0, _0811C1C8 bl SetVBlankCallback ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0811C1BC: .4byte 0x0200c000 _0811C1C0: .4byte 0x03005560 _0811C1C4: .4byte 0x0000f0f1 _0811C1C8: .4byte sub_811C670 thumb_func_end sub_811C164 thumb_func_start sub_811C1CC sub_811C1CC: @ 811C1CC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 mov r8, r0 ldr r6, _0811C284 add r1, sp, 0x4 mov r0, sp bl sub_811D6A8 ldr r0, _0811C288 ldr r1, [sp, 0x4] movs r2, 0xF0 bl CpuSet ldr r1, _0811C28C mov r2, r8 movs r3, 0x26 ldrsh r0, [r2, r3] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r1, _0811C290 ldr r0, _0811C294 ldrb r0, [r0, 0x8] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0xFA movs r2, 0xC bl LoadPalette movs r1, 0 ldr r5, [sp] ldr r0, _0811C298 mov r12, r0 movs r2, 0xF0 lsls r2, 8 adds r7, r2, 0 _0811C222: movs r0, 0 lsls r3, r1, 16 asrs r4, r3, 11 _0811C228: lsls r2, r0, 16 asrs r2, 16 adds r1, r4, r2 lsls r1, 1 adds r1, r5 ldrh r0, [r6] orrs r0, r7 strh r0, [r1] adds r2, 0x1 lsls r2, 16 adds r6, 0x2 lsrs r0, r2, 16 asrs r2, 16 cmp r2, 0x1F ble _0811C228 movs r1, 0x80 lsls r1, 9 adds r0, r3, r1 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _0811C222 ldr r2, _0811C29C ldrh r0, [r2] movs r1, 0x2 orrs r0, r1 strh r0, [r2] ldr r2, _0811C2A0 ldrh r0, [r2] movs r1, 0x10 orrs r0, r1 strh r0, [r2] mov r0, r12 bl SetHBlankCallback mov r2, r8 ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] movs r0, 0 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811C284: .4byte gUnknown_083FDFF4 _0811C288: .4byte gUnknown_083FC348 _0811C28C: .4byte gUnknown_083FDB00 _0811C290: .4byte gUnknown_083FDB14 _0811C294: .4byte gSaveBlock2 _0811C298: .4byte sub_811C77C _0811C29C: .4byte 0x04000200 _0811C2A0: .4byte REG_DISPSTAT thumb_func_end sub_811C1CC thumb_func_start sub_811C2A4 sub_811C2A4: @ 811C2A4 push {r4-r7,lr} adds r4, r0, 0 ldr r1, _0811C384 ldrb r0, [r1] movs r0, 0 strb r0, [r1] ldr r7, _0811C388 ldrh r0, [r4, 0xA] ldrb r5, [r4, 0xA] adds r0, 0x10 strh r0, [r4, 0xA] movs r6, 0 _0811C2BC: adds r0, r5, 0 movs r1, 0x10 bl sine ldrh r1, [r4, 0xC] adds r0, r1 lsls r0, 16 lsrs r2, r0, 16 cmp r0, 0 bge _0811C2D2 movs r2, 0x1 _0811C2D2: lsls r0, r2, 16 asrs r0, 16 cmp r0, 0xF0 ble _0811C2DC movs r2, 0xF0 _0811C2DC: strh r2, [r7] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r7, 0x2 adds r0, r5, 0 adds r0, 0x10 lsls r0, 24 lsrs r5, r0, 24 cmp r6, 0x4F bls _0811C2BC cmp r6, 0x9F bhi _0811C334 _0811C2F6: adds r0, r5, 0 movs r1, 0x10 bl sine ldrh r1, [r4, 0xE] subs r1, r0 lsls r1, 16 lsrs r2, r1, 16 cmp r1, 0 bge _0811C30C movs r2, 0 _0811C30C: lsls r0, r2, 16 asrs r0, 16 cmp r0, 0xEF ble _0811C316 movs r2, 0xEF _0811C316: lsls r0, r2, 16 asrs r0, 8 movs r1, 0xF0 orrs r0, r1 strh r0, [r7] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r7, 0x2 adds r0, r5, 0 adds r0, 0x10 lsls r0, 24 lsrs r5, r0, 24 cmp r6, 0x9F bls _0811C2F6 _0811C334: ldrh r1, [r4, 0xC] adds r1, 0x8 strh r1, [r4, 0xC] ldrh r0, [r4, 0xE] subs r0, 0x8 strh r0, [r4, 0xE] lsls r1, 16 asrs r1, 16 cmp r1, 0xF0 ble _0811C34C movs r0, 0xF0 strh r0, [r4, 0xC] _0811C34C: movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0 bge _0811C358 movs r0, 0 strh r0, [r4, 0xE] _0811C358: ldr r0, [r4, 0xC] cmp r0, 0xF0 bne _0811C364 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0811C364: ldr r1, _0811C384 ldrh r0, [r1, 0x18] subs r0, 0x8 strh r0, [r1, 0x18] ldrh r0, [r1, 0x1A] adds r0, 0x8 strh r0, [r1, 0x1A] ldrb r0, [r1] adds r0, 0x1 ldrb r2, [r1] strb r0, [r1] movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811C384: .4byte 0x0200c000 _0811C388: .4byte 0x03004de0 thumb_func_end sub_811C2A4 thumb_func_start sub_811C38C sub_811C38C: @ 811C38C push {r4,r5,lr} adds r4, r0, 0 ldr r0, _0811C3F8 ldrb r1, [r0] movs r1, 0 strb r1, [r0] ldr r2, _0811C3FC adds r5, r0, 0 movs r3, 0xF0 _0811C39E: strh r3, [r2] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 adds r2, 0x2 cmp r1, 0x9F bls _0811C39E ldrh r0, [r4, 0x8] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0x8] strh r1, [r4, 0xA] strh r1, [r4, 0xC] strh r1, [r4, 0xE] ldrh r0, [r5, 0x18] subs r0, 0x8 strh r0, [r5, 0x18] ldrh r0, [r5, 0x1A] adds r0, 0x8 strh r0, [r5, 0x1A] movs r1, 0x22 ldrsh r0, [r4, r1] movs r1, 0 bl sub_811CA10 movs r1, 0x24 ldrsh r0, [r4, r1] movs r1, 0x1 bl sub_811CA10 movs r1, 0x22 ldrsh r0, [r4, r1] bl sub_811CA28 movs r0, 0x68 bl audio_play ldrb r0, [r5] adds r0, 0x1 ldrb r1, [r5] strb r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811C3F8: .4byte 0x0200c000 _0811C3FC: .4byte 0x03004de0 thumb_func_end sub_811C38C thumb_func_start sub_811C400 sub_811C400: @ 811C400 push {r4,lr} adds r4, r0, 0 ldr r1, _0811C438 ldrh r0, [r1, 0x18] subs r0, 0x8 strh r0, [r1, 0x18] ldrh r0, [r1, 0x1A] adds r0, 0x8 strh r0, [r1, 0x1A] movs r1, 0x22 ldrsh r0, [r4, r1] bl sub_811CA44 lsls r0, 16 cmp r0, 0 beq _0811C42E ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r1, 0x24 ldrsh r0, [r4, r1] bl sub_811CA28 _0811C42E: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0811C438: .4byte 0x0200c000 thumb_func_end sub_811C400 thumb_func_start sub_811C43C sub_811C43C: @ 811C43C push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 ldr r7, _0811C4D0 ldrh r0, [r7, 0x18] subs r0, 0x8 movs r1, 0 mov r8, r1 strh r0, [r7, 0x18] ldrh r0, [r7, 0x1A] adds r0, 0x8 strh r0, [r7, 0x1A] movs r1, 0x24 ldrsh r0, [r6, r1] bl sub_811CA44 lsls r0, 16 cmp r0, 0 beq _0811C4C4 ldrb r0, [r7] movs r0, 0 strb r0, [r7] movs r0, 0 bl SetVBlankCallback ldr r1, _0811C4D4 ldrh r2, [r1, 0xA] ldr r0, _0811C4D8 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _0811C4DC ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] ldr r4, _0811C4E0 movs r5, 0xA0 lsls r5, 1 adds r0, r4, 0 movs r1, 0 adds r2, r5, 0 bl memset movs r0, 0xF0 lsls r0, 3 adds r4, r0 adds r0, r4, 0 movs r1, 0 adds r2, r5, 0 bl memset ldr r1, _0811C4E4 movs r0, 0xF0 strh r0, [r1] ldr r0, _0811C4E8 mov r1, r8 strh r1, [r0] ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] strh r1, [r6, 0xE] strh r1, [r6, 0x10] movs r0, 0xBF strh r0, [r7, 0xE] ldr r0, _0811C4EC bl SetVBlankCallback _0811C4C4: movs r0, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811C4D0: .4byte 0x0200c000 _0811C4D4: .4byte 0x040000b0 _0811C4D8: .4byte 0x0000c5ff _0811C4DC: .4byte 0x00007fff _0811C4E0: .4byte 0x03004de0 _0811C4E4: .4byte REG_WIN0H _0811C4E8: .4byte REG_BLDY _0811C4EC: .4byte sub_811C700 thumb_func_end sub_811C43C thumb_func_start sub_811C4F0 sub_811C4F0: @ 811C4F0 push {r4-r7,lr} adds r4, r0, 0 ldr r1, _0811C5AC ldrb r0, [r1] movs r0, 0 strb r0, [r1] movs r6, 0x1 ldrh r0, [r1, 0x18] subs r0, 0x8 strh r0, [r1, 0x18] ldrh r0, [r1, 0x1A] adds r0, 0x8 strh r0, [r1, 0x1A] ldrh r2, [r4, 0x10] movs r3, 0x10 ldrsh r0, [r4, r3] adds r7, r1, 0 cmp r0, 0x4F bgt _0811C51A adds r0, r2, 0x2 strh r0, [r4, 0x10] _0811C51A: movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0x50 ble _0811C526 movs r0, 0x50 strh r0, [r4, 0x10] _0811C526: ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] movs r1, 0x1 ands r0, r1 ldrh r2, [r4, 0x10] cmp r0, 0 beq _0811C58C movs r3, 0 lsls r0, r2, 16 movs r6, 0 cmp r0, 0 blt _0811C58C movs r2, 0x50 mov r12, r2 ldr r5, _0811C5B0 _0811C546: lsls r0, r3, 16 asrs r2, r0, 16 mov r3, r12 subs r1, r3, r2 adds r0, r2, 0 adds r0, 0x50 lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 asrs r1, 15 adds r1, r5 ldrh r0, [r1] cmp r0, 0xF bhi _0811C568 movs r6, 0x1 adds r0, 0x1 strh r0, [r1] _0811C568: lsls r0, r3, 16 asrs r0, 15 adds r1, r0, r5 ldrh r0, [r1] cmp r0, 0xF bhi _0811C57A movs r6, 0x1 adds r0, 0x1 strh r0, [r1] _0811C57A: adds r0, r2, 0x1 lsls r0, 16 lsrs r3, r0, 16 asrs r0, 16 movs r2, 0x10 ldrsh r1, [r4, r2] ldrh r2, [r4, 0x10] cmp r0, r1 ble _0811C546 _0811C58C: cmp r2, 0x50 bne _0811C59A cmp r6, 0 bne _0811C59A ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0811C59A: ldrb r0, [r7] adds r0, 0x1 ldrb r1, [r7] strb r0, [r7] movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811C5AC: .4byte 0x0200c000 _0811C5B0: .4byte 0x03004de0 thumb_func_end sub_811C4F0 thumb_func_start sub_811C5B4 sub_811C5B4: @ 811C5B4 push {r4-r6,lr} adds r5, r0, 0 ldr r4, _0811C5E0 ldrb r0, [r4] movs r6, 0 strb r6, [r4] movs r0, 0x1 negs r0, r0 ldr r2, _0811C5E4 movs r1, 0x10 bl BlendPalettes movs r0, 0xFF strh r0, [r4, 0xE] strh r6, [r5, 0xE] ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0811C5E0: .4byte 0x0200c000 _0811C5E4: .4byte 0x00007fff thumb_func_end sub_811C5B4 thumb_func_start sub_811C5E8 sub_811C5E8: @ 811C5E8 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _0811C628 ldrb r0, [r5] movs r0, 0 strb r0, [r5] ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] ldr r0, _0811C62C movs r2, 0xE ldrsh r1, [r4, r2] movs r2, 0xA0 lsls r2, 1 bl memset movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0xF ble _0811C616 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0811C616: ldrb r0, [r5] adds r0, 0x1 ldrb r1, [r5] strb r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811C628: .4byte 0x0200c000 _0811C62C: .4byte 0x03004de0 thumb_func_end sub_811C5E8 thumb_func_start sub_811C630 sub_811C630: @ 811C630 push {r4,lr} adds r4, r0, 0 ldr r1, _0811C664 ldrh r2, [r1, 0xA] ldr r0, _0811C668 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _0811C66C ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] bl sub_811D6D4 ldr r0, [r4] bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0811C664: .4byte 0x040000b0 _0811C668: .4byte 0x0000c5ff _0811C66C: .4byte 0x00007fff thumb_func_end sub_811C630 thumb_func_start sub_811C670 sub_811C670: @ 811C670 push {r4,lr} ldr r4, _0811C6D4 ldrh r1, [r4, 0xA] ldr r0, _0811C6D8 ands r0, r1 strh r0, [r4, 0xA] ldrh r1, [r4, 0xA] ldr r0, _0811C6DC ands r0, r1 strh r0, [r4, 0xA] ldrh r0, [r4, 0xA] bl sub_811D67C ldr r2, _0811C6E0 ldrb r0, [r2] cmp r0, 0 beq _0811C6A6 ldr r1, _0811C6E4 ldr r0, _0811C6E8 str r0, [r1] movs r3, 0xF0 lsls r3, 3 adds r0, r3 str r0, [r1, 0x4] ldr r0, _0811C6EC str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811C6A6: ldr r1, _0811C6F0 ldrh r0, [r2, 0x1C] strh r0, [r1] adds r1, 0x36 ldrh r0, [r2, 0x2] strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x4] strh r0, [r1] subs r1, 0x6 ldrh r0, [r2, 0x8] strh r0, [r1] ldr r0, _0811C6F4 str r0, [r4] ldr r0, _0811C6F8 str r0, [r4, 0x4] ldr r0, _0811C6FC str r0, [r4, 0x8] ldr r0, [r4, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _0811C6D4: .4byte 0x040000b0 _0811C6D8: .4byte 0x0000c5ff _0811C6DC: .4byte 0x00007fff _0811C6E0: .4byte 0x0200c000 _0811C6E4: .4byte 0x040000d4 _0811C6E8: .4byte 0x03004de0 _0811C6EC: .4byte 0x800000a0 _0811C6F0: .4byte REG_BG0VOFS _0811C6F4: .4byte 0x03005560 _0811C6F8: .4byte REG_WIN0H _0811C6FC: .4byte 0xa2400001 thumb_func_end sub_811C670 thumb_func_start sub_811C700 sub_811C700: @ 811C700 push {r4,lr} ldr r4, _0811C750 ldrh r1, [r4, 0xA] ldr r0, _0811C754 ands r0, r1 strh r0, [r4, 0xA] ldrh r1, [r4, 0xA] ldr r0, _0811C758 ands r0, r1 strh r0, [r4, 0xA] ldrh r0, [r4, 0xA] bl sub_811D67C ldr r2, _0811C75C ldrb r0, [r2] cmp r0, 0 beq _0811C736 ldr r1, _0811C760 ldr r0, _0811C764 str r0, [r1] movs r3, 0xF0 lsls r3, 3 adds r0, r3 str r0, [r1, 0x4] ldr r0, _0811C768 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811C736: ldr r1, _0811C76C ldrh r0, [r2, 0xE] strh r0, [r1] ldr r0, _0811C770 str r0, [r4] ldr r0, _0811C774 str r0, [r4, 0x4] ldr r0, _0811C778 str r0, [r4, 0x8] ldr r0, [r4, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _0811C750: .4byte 0x040000b0 _0811C754: .4byte 0x0000c5ff _0811C758: .4byte 0x00007fff _0811C75C: .4byte 0x0200c000 _0811C760: .4byte 0x040000d4 _0811C764: .4byte 0x03004de0 _0811C768: .4byte 0x800000a0 _0811C76C: .4byte REG_BLDCNT _0811C770: .4byte 0x03005560 _0811C774: .4byte REG_BLDY _0811C778: .4byte 0xa2400001 thumb_func_end sub_811C700 thumb_func_start sub_811C77C sub_811C77C: @ 811C77C push {lr} ldr r0, _0811C790 ldrh r0, [r0] cmp r0, 0x4F bhi _0811C79C ldr r0, _0811C794 ldr r1, _0811C798 ldrh r1, [r1, 0x18] b _0811C7A2 .align 2, 0 _0811C790: .4byte REG_VCOUNT _0811C794: .4byte REG_BG0HOFS _0811C798: .4byte 0x0200c000 _0811C79C: ldr r0, _0811C7A8 ldr r1, _0811C7AC ldrh r1, [r1, 0x1A] _0811C7A2: strh r1, [r0] pop {r0} bx r0 .align 2, 0 _0811C7A8: .4byte REG_BG0HOFS _0811C7AC: .4byte 0x0200c000 thumb_func_end sub_811C77C thumb_func_start sub_811C7B0 sub_811C7B0: @ 811C7B0 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r4, r0, 0 ldr r0, _0811C8EC movs r2, 0x26 ldrsh r1, [r4, r2] mov r8, r1 add r0, r8 ldrb r0, [r0] ldr r2, _0811C8F0 lsls r1, 2 mov r8, r1 adds r1, r2 ldrh r1, [r1] subs r1, 0x20 lsls r1, 16 asrs r1, 16 adds r2, 0x2 add r2, r8 ldrh r2, [r2] adds r2, 0x2A lsls r2, 16 asrs r2, 16 ldr r5, _0811C8F4 str r5, [sp] movs r3, 0 bl sub_80859BC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] ldr r0, _0811C8F8 ldrb r0, [r0, 0x8] movs r1, 0x88 lsls r1, 1 str r5, [sp] movs r2, 0x6A movs r3, 0 bl sub_80859BC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x24] movs r3, 0x22 ldrsh r0, [r4, r3] lsls r5, r0, 4 adds r5, r0 lsls r5, 2 ldr r1, _0811C8FC adds r5, r1 movs r2, 0x24 ldrsh r0, [r4, r2] lsls r6, r0, 4 adds r6, r0 lsls r6, 2 adds r6, r1 ldr r0, _0811C900 str r0, [r5, 0x1C] str r0, [r6, 0x1C] ldrb r0, [r5, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r5, 0x1] ldrb r0, [r6, 0x1] orrs r0, r1 strb r0, [r6, 0x1] bl AllocOamMatrix lsls r0, 24 lsrs r0, 24 movs r3, 0x1F mov r9, r3 mov r4, r9 ands r0, r4 lsls r0, 1 ldrb r2, [r5, 0x3] movs r4, 0x3F negs r4, r4 adds r1, r4, 0 ands r1, r2 orrs r1, r0 strb r1, [r5, 0x3] bl AllocOamMatrix lsls r0, 24 lsrs r0, 24 mov r1, r9 ands r0, r1 lsls r0, 1 ldrb r1, [r6, 0x3] ands r4, r1 orrs r4, r0 strb r4, [r6, 0x3] ldrb r2, [r5, 0x1] movs r1, 0x3F adds r0, r1, 0 ands r0, r2 movs r2, 0x40 orrs r0, r2 strb r0, [r5, 0x1] ldrb r0, [r6, 0x1] ands r1, r0 orrs r1, r2 strb r1, [r6, 0x1] ldrb r0, [r5, 0x3] movs r1, 0xC0 orrs r0, r1 strb r0, [r5, 0x3] ldrb r0, [r6, 0x3] orrs r0, r1 strb r0, [r6, 0x3] adds r0, r5, 0 movs r1, 0x1 movs r2, 0x3 movs r3, 0x3 bl CalcCenterToCornerVec adds r0, r6, 0 movs r1, 0x1 movs r2, 0x3 movs r3, 0x3 bl CalcCenterToCornerVec ldrb r0, [r5, 0x3] lsls r0, 26 lsrs r0, 27 ldr r2, _0811C904 mov r3, r8 adds r1, r3, r2 movs r4, 0 ldrsh r1, [r1, r4] adds r2, 0x2 add r8, r2 mov r3, r8 movs r4, 0 ldrsh r2, [r3, r4] movs r3, 0 bl SetOamMatrixRotationScaling ldrb r0, [r6, 0x3] lsls r0, 26 lsrs r0, 27 ldr r1, _0811C908 movs r2, 0x80 lsls r2, 2 movs r3, 0 bl SetOamMatrixRotationScaling add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811C8EC: .4byte gUnknown_083FD850 _0811C8F0: .4byte gUnknown_083FD86A _0811C8F4: .4byte 0x0200c03c _0811C8F8: .4byte gSaveBlock2 _0811C8FC: .4byte 0x02020004 _0811C900: .4byte sub_811C90C _0811C904: .4byte gUnknown_083FD856 _0811C908: .4byte 0xfffffe00 thumb_func_end sub_811C7B0 thumb_func_start sub_811C90C sub_811C90C: @ 811C90C push {r4,r5,lr} adds r4, r0, 0 ldr r5, _0811C930 _0811C912: movs r1, 0x2E ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811C912 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811C930: .4byte gUnknown_083FD880 thumb_func_end sub_811C90C thumb_func_start sub_811C934 sub_811C934: @ 811C934 movs r0, 0 bx lr thumb_func_end sub_811C934 thumb_func_start sub_811C938 sub_811C938: @ 811C938 push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 ldr r1, _0811C97C mov r0, sp movs r2, 0x4 bl memcpy add r4, sp, 0x4 ldr r1, _0811C980 adds r0, r4, 0 movs r2, 0x4 bl memcpy ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] movs r1, 0x3C ldrsh r0, [r5, r1] lsls r0, 1 add r0, sp ldrh r0, [r0] strh r0, [r5, 0x30] movs r1, 0x3C ldrsh r0, [r5, r1] lsls r0, 1 adds r4, r0 ldrh r0, [r4] strh r0, [r5, 0x32] movs r0, 0x1 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811C97C: .4byte gUnknown_083FD89C _0811C980: .4byte gUnknown_083FD8A0 thumb_func_end sub_811C938 thumb_func_start sub_811C984 sub_811C984: @ 811C984 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x30] ldrh r3, [r1, 0x20] adds r2, r0, r3 strh r2, [r1, 0x20] movs r3, 0x3C ldrsh r0, [r1, r3] cmp r0, 0 beq _0811C9A2 lsls r0, r2, 16 asrs r0, 16 cmp r0, 0x84 bgt _0811C9B0 b _0811C9AA _0811C9A2: lsls r0, r2, 16 asrs r0, 16 cmp r0, 0x67 ble _0811C9B0 _0811C9AA: ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] _0811C9B0: movs r0, 0 pop {r1} bx r1 thumb_func_end sub_811C984 thumb_func_start sub_811C9B8 sub_811C9B8: @ 811C9B8 push {lr} adds r2, r0, 0 ldrh r3, [r2, 0x32] ldrh r0, [r2, 0x30] adds r1, r3, r0 strh r1, [r2, 0x30] ldrh r0, [r2, 0x20] adds r0, r1 strh r0, [r2, 0x20] lsls r1, 16 cmp r1, 0 bne _0811C9DE ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] negs r0, r3 strh r0, [r2, 0x32] movs r0, 0x1 strh r0, [r2, 0x3A] _0811C9DE: movs r0, 0 pop {r1} bx r1 thumb_func_end sub_811C9B8 thumb_func_start sub_811C9E4 sub_811C9E4: @ 811C9E4 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x32] ldrh r1, [r2, 0x30] adds r0, r1 strh r0, [r2, 0x30] ldrh r1, [r2, 0x20] adds r1, r0 strh r1, [r2, 0x20] adds r1, 0x1F lsls r1, 16 movs r0, 0x97 lsls r0, 17 cmp r1, r0 bls _0811CA08 ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] _0811CA08: movs r0, 0 pop {r1} bx r1 thumb_func_end sub_811C9E4 thumb_func_start sub_811CA10 sub_811CA10: @ 811CA10 ldr r3, _0811CA24 lsls r0, 16 asrs r0, 16 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 strh r1, [r2, 0x3C] bx lr .align 2, 0 _0811CA24: .4byte 0x02020004 thumb_func_end sub_811CA10 thumb_func_start sub_811CA28 sub_811CA28: @ 811CA28 ldr r2, _0811CA40 lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] bx lr .align 2, 0 _0811CA40: .4byte 0x02020004 thumb_func_end sub_811CA28 thumb_func_start sub_811CA44 sub_811CA44: @ 811CA44 ldr r2, _0811CA58 lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r2, 0x3A ldrsh r0, [r1, r2] bx lr .align 2, 0 _0811CA58: .4byte 0x02020004 thumb_func_end sub_811CA44 thumb_func_start sub_811CA5C sub_811CA5C: @ 811CA5C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811CA8C ldr r2, _0811CA90 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811CA6E: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811CA6E pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811CA8C: .4byte gUnknown_083FD8A4 _0811CA90: .4byte 0x03004b20 thumb_func_end sub_811CA5C thumb_func_start sub_811CA94 sub_811CA94: @ 811CA94 push {r4-r6,lr} adds r4, r0, 0 bl sub_811D658 bl dp12_8087EA4 movs r2, 0 movs r0, 0x80 lsls r0, 1 strh r0, [r4, 0xC] movs r0, 0x1 strh r0, [r4, 0xE] ldr r1, _0811CB08 movs r0, 0x3F strh r0, [r1, 0x2] strh r2, [r1, 0x4] movs r0, 0xA0 strh r0, [r1, 0x8] ldr r3, _0811CB0C adds r6, r1, 0 movs r5, 0xF0 _0811CABE: lsls r0, r2, 1 adds r0, r3 ldrh r1, [r6, 0x14] strh r1, [r0] adds r0, r2, 0 adds r0, 0xA0 lsls r0, 1 adds r0, r3 strh r5, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x9F bls _0811CABE ldr r2, _0811CB10 ldrh r0, [r2] movs r1, 0x2 orrs r0, r1 strh r0, [r2] ldr r2, _0811CB14 ldrh r0, [r2] movs r1, 0x10 orrs r0, r1 strh r0, [r2] ldr r0, _0811CB18 bl SetVBlankCallback ldr r0, _0811CB1C bl SetHBlankCallback ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0811CB08: .4byte 0x0200c000 _0811CB0C: .4byte 0x03005560 _0811CB10: .4byte 0x04000200 _0811CB14: .4byte REG_DISPSTAT _0811CB18: .4byte sub_811CC28 _0811CB1C: .4byte sub_811CCB0 thumb_func_end sub_811CA94 thumb_func_start sub_811CB20 sub_811CB20: @ 811CB20 push {r4-r7,lr} mov r7, r8 push {r7} adds r2, r0, 0 ldr r1, _0811CB98 ldrb r0, [r1] movs r0, 0 strb r0, [r1] ldrh r0, [r2, 0xC] lsls r0, 16 asrs r0, 24 ldrh r3, [r2, 0xA] adds r0, r3 strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 mov r12, r1 cmp r0, 0xF0 ble _0811CB4A movs r0, 0xF0 strh r0, [r2, 0xA] _0811CB4A: ldrh r4, [r2, 0xC] movs r0, 0xC ldrsh r1, [r2, r0] ldr r0, _0811CB9C ldrh r3, [r2, 0xE] cmp r1, r0 bgt _0811CB5C adds r0, r4, r3 strh r0, [r2, 0xC] _0811CB5C: lsls r0, r3, 16 asrs r0, 16 cmp r0, 0x7F bgt _0811CB68 lsls r0, r3, 1 strh r0, [r2, 0xE] _0811CB68: movs r5, 0 ldr r7, _0811CBA0 movs r1, 0xA0 lsls r1, 1 adds r1, r7 mov r8, r1 mov r6, r12 _0811CB76: lsls r0, r5, 1 adds r3, r0, r7 mov r1, r8 adds r4, r0, r1 movs r0, 0x1 ands r0, r5 cmp r0, 0 beq _0811CBA4 ldrh r0, [r2, 0xA] ldrh r1, [r6, 0x14] adds r0, r1 strh r0, [r3] ldrh r1, [r2, 0xA] movs r0, 0xF0 subs r0, r1 b _0811CBB4 .align 2, 0 _0811CB98: .4byte 0x0200c000 _0811CB9C: .4byte 0x00000fff _0811CBA0: .4byte 0x03004de0 _0811CBA4: ldrh r0, [r6, 0x14] ldrh r1, [r2, 0xA] subs r0, r1 strh r0, [r3] ldrh r0, [r2, 0xA] lsls r0, 8 movs r1, 0xF1 orrs r0, r1 _0811CBB4: strh r0, [r4] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x9F bls _0811CB76 movs r3, 0xA ldrsh r0, [r2, r3] cmp r0, 0xEF ble _0811CBCE ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] _0811CBCE: mov r1, r12 ldrb r0, [r1] adds r0, 0x1 ldrb r1, [r1] mov r2, r12 strb r0, [r2] movs r0, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_811CB20 thumb_func_start sub_811CBE8 sub_811CBE8: @ 811CBE8 push {lr} ldr r1, _0811CC18 ldrh r2, [r1, 0xA] ldr r0, _0811CC1C ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _0811CC20 ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] bl sub_811D6D4 ldr r0, _0811CC24 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 pop {r1} bx r1 .align 2, 0 _0811CC18: .4byte 0x040000b0 _0811CC1C: .4byte 0x0000c5ff _0811CC20: .4byte 0x00007fff _0811CC24: .4byte sub_811CA5C thumb_func_end sub_811CBE8 thumb_func_start sub_811CC28 sub_811CC28: @ 811CC28 push {r4,lr} ldr r4, _0811CC84 ldrh r1, [r4, 0xA] ldr r0, _0811CC88 ands r0, r1 strh r0, [r4, 0xA] ldrh r1, [r4, 0xA] ldr r0, _0811CC8C ands r0, r1 strh r0, [r4, 0xA] ldrh r0, [r4, 0xA] bl sub_811D67C ldr r2, _0811CC90 ldr r1, _0811CC94 ldrh r0, [r1, 0x2] strh r0, [r2] adds r2, 0x2 ldrh r0, [r1, 0x4] strh r0, [r2] subs r2, 0x6 ldrh r0, [r1, 0x8] strh r0, [r2] ldrb r0, [r1] cmp r0, 0 beq _0811CC70 ldr r1, _0811CC98 ldr r0, _0811CC9C str r0, [r1] movs r2, 0xF0 lsls r2, 3 adds r0, r2 str r0, [r1, 0x4] ldr r0, _0811CCA0 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811CC70: ldr r0, _0811CCA4 str r0, [r4] ldr r0, _0811CCA8 str r0, [r4, 0x4] ldr r0, _0811CCAC str r0, [r4, 0x8] ldr r0, [r4, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _0811CC84: .4byte 0x040000b0 _0811CC88: .4byte 0x0000c5ff _0811CC8C: .4byte 0x00007fff _0811CC90: .4byte REG_WININ _0811CC94: .4byte 0x0200c000 _0811CC98: .4byte 0x040000d4 _0811CC9C: .4byte 0x03004de0 _0811CCA0: .4byte 0x80000140 _0811CCA4: .4byte 0x030056a0 _0811CCA8: .4byte REG_WIN0H _0811CCAC: .4byte 0xa2400001 thumb_func_end sub_811CC28 thumb_func_start sub_811CCB0 sub_811CCB0: @ 811CCB0 ldr r1, _0811CCD0 ldr r0, _0811CCD4 ldrh r0, [r0] lsls r0, 1 movs r2, 0xF0 lsls r2, 3 adds r1, r2 adds r0, r1 ldrh r1, [r0] ldr r0, _0811CCD8 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x4 strh r1, [r0] bx lr .align 2, 0 _0811CCD0: .4byte 0x03004de0 _0811CCD4: .4byte REG_VCOUNT _0811CCD8: .4byte REG_BG1HOFS thumb_func_end sub_811CCB0 thumb_func_start sub_811CCDC sub_811CCDC: @ 811CCDC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811CD0C ldr r2, _0811CD10 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811CCEE: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811CCEE pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811CD0C: .4byte gUnknown_083FD8B0 _0811CD10: .4byte 0x03004b20 thumb_func_end sub_811CCDC thumb_func_start sub_811CD14 sub_811CD14: @ 811CD14 push {r4,r5,lr} adds r5, r0, 0 bl sub_811D658 bl dp12_8087EA4 ldr r1, _0811CD88 movs r2, 0 movs r0, 0xBF strh r0, [r1, 0xE] strh r2, [r1, 0x12] movs r0, 0x1E strh r0, [r1, 0x2] movs r0, 0x3F strh r0, [r1, 0x4] movs r0, 0xA0 strh r0, [r1, 0x8] movs r1, 0 ldr r2, _0811CD8C movs r4, 0 movs r3, 0xF0 _0811CD3E: lsls r0, r1, 1 adds r0, r2 strh r4, [r0] adds r0, r1, 0 adds r0, 0xA0 lsls r0, 1 adds r0, r2 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x9F bls _0811CD3E ldr r2, _0811CD90 ldrh r0, [r2] movs r1, 0x2 orrs r0, r1 strh r0, [r2] ldr r2, _0811CD94 ldrh r0, [r2] movs r1, 0x10 orrs r0, r1 strh r0, [r2] ldr r0, _0811CD98 bl SetHBlankCallback ldr r0, _0811CD9C bl SetVBlankCallback ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811CD88: .4byte 0x0200c000 _0811CD8C: .4byte 0x03005560 _0811CD90: .4byte 0x04000200 _0811CD94: .4byte REG_DISPSTAT _0811CD98: .4byte sub_811CFAC _0811CD9C: .4byte sub_811CEE4 thumb_func_end sub_811CD14 thumb_func_start sub_811CDA0 sub_811CDA0: @ 811CDA0 push {r4-r6,lr} sub sp, 0x10 adds r6, r0, 0 ldr r1, _0811CE08 mov r0, sp movs r2, 0x10 bl memcpy movs r5, 0 movs r4, 0 _0811CDB4: ldr r0, _0811CE0C bl CreateInvisibleSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _0811CE10 adds r2, r1, r0 movs r0, 0xF0 strh r0, [r2, 0x20] strh r4, [r2, 0x22] lsls r1, r5, 16 asrs r1, 16 lsls r0, r1, 1 add r0, sp ldrh r0, [r0] strh r0, [r2, 0x38] adds r1, 0x1 lsls r1, 16 lsls r0, r4, 16 movs r3, 0xA0 lsls r3, 13 adds r0, r3 lsrs r4, r0, 16 lsrs r5, r1, 16 asrs r1, 16 cmp r1, 0x7 ble _0811CDB4 ldrh r0, [r2, 0x3A] adds r0, 0x1 strh r0, [r2, 0x3A] ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] movs r0, 0 add sp, 0x10 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0811CE08: .4byte gUnknown_083FD8C4 _0811CE0C: .4byte sub_811CFD0 _0811CE10: .4byte 0x02020004 thumb_func_end sub_811CDA0 thumb_func_start sub_811CE14 sub_811CE14: @ 811CE14 push {r4,lr} adds r4, r0, 0 ldr r0, _0811CE44 ldrb r1, [r0] movs r1, 0 strb r1, [r0] movs r1, 0x20 ldrsh r0, [r0, r1] cmp r0, 0x7 ble _0811CE3A movs r0, 0x1 negs r0, r0 ldr r2, _0811CE48 movs r1, 0x10 bl BlendPalettes ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0811CE3A: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0811CE44: .4byte 0x0200c000 _0811CE48: .4byte 0x00007fff thumb_func_end sub_811CE14 thumb_func_start sub_811CE4C sub_811CE4C: @ 811CE4C push {r4-r6,lr} adds r6, r0, 0 ldr r4, _0811CE9C ldrb r0, [r4] movs r5, 0 strb r5, [r4] ldr r1, _0811CEA0 ldrh r2, [r1, 0xA] ldr r0, _0811CEA4 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _0811CEA8 ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] movs r0, 0 bl SetVBlankCallback movs r0, 0 bl SetHBlankCallback movs r0, 0xF0 strh r0, [r4, 0x6] strh r5, [r4, 0x12] movs r0, 0xFF strh r0, [r4, 0xE] movs r0, 0x3F strh r0, [r4, 0x2] ldr r0, _0811CEAC bl SetVBlankCallback ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0811CE9C: .4byte 0x0200c000 _0811CEA0: .4byte 0x040000b0 _0811CEA4: .4byte 0x0000c5ff _0811CEA8: .4byte 0x00007fff _0811CEAC: .4byte sub_811CF74 thumb_func_end sub_811CE4C thumb_func_start sub_811CEB0 sub_811CEB0: @ 811CEB0 push {lr} ldr r1, _0811CEDC ldrh r0, [r1, 0x12] adds r0, 0x1 strh r0, [r1, 0x12] lsls r0, 16 lsrs r0, 16 cmp r0, 0x10 bls _0811CED4 bl sub_811D6D4 ldr r0, _0811CEE0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0811CED4: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0811CEDC: .4byte 0x0200c000 _0811CEE0: .4byte sub_811CCDC thumb_func_end sub_811CEB0 thumb_func_start sub_811CEE4 sub_811CEE4: @ 811CEE4 push {r4,lr} ldr r4, _0811CF48 ldrh r1, [r4, 0xA] ldr r0, _0811CF4C ands r0, r1 strh r0, [r4, 0xA] ldrh r1, [r4, 0xA] ldr r0, _0811CF50 ands r0, r1 strh r0, [r4, 0xA] ldrh r0, [r4, 0xA] bl sub_811D67C ldr r2, _0811CF54 ldr r1, _0811CF58 ldrh r0, [r1, 0xE] strh r0, [r2] subs r2, 0x8 ldrh r0, [r1, 0x2] strh r0, [r2] adds r2, 0x2 ldrh r0, [r1, 0x4] strh r0, [r2] subs r2, 0x6 ldrh r0, [r1, 0x6] strh r0, [r2] ldrb r0, [r1] cmp r0, 0 beq _0811CF32 ldr r1, _0811CF5C ldr r0, _0811CF60 str r0, [r1] movs r2, 0xF0 lsls r2, 3 adds r0, r2 str r0, [r1, 0x4] ldr r0, _0811CF64 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811CF32: ldr r0, _0811CF68 str r0, [r4] ldr r0, _0811CF6C str r0, [r4, 0x4] ldr r0, _0811CF70 str r0, [r4, 0x8] ldr r0, [r4, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _0811CF48: .4byte 0x040000b0 _0811CF4C: .4byte 0x0000c5ff _0811CF50: .4byte 0x00007fff _0811CF54: .4byte REG_BLDCNT _0811CF58: .4byte 0x0200c000 _0811CF5C: .4byte 0x040000d4 _0811CF60: .4byte 0x03004de0 _0811CF64: .4byte 0x80000140 _0811CF68: .4byte 0x030056a0 _0811CF6C: .4byte REG_WIN0H _0811CF70: .4byte 0xa2400001 thumb_func_end sub_811CEE4 thumb_func_start sub_811CF74 sub_811CF74: @ 811CF74 push {lr} bl sub_811D67C ldr r1, _0811CFA4 ldr r2, _0811CFA8 ldrh r0, [r2, 0x12] strh r0, [r1] subs r1, 0x4 ldrh r0, [r2, 0xE] strh r0, [r1] subs r1, 0x8 ldrh r0, [r2, 0x2] strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x4] strh r0, [r1] subs r1, 0xA ldrh r0, [r2, 0x6] strh r0, [r1] adds r1, 0x4 ldrh r0, [r2, 0x8] strh r0, [r1] pop {r0} bx r0 .align 2, 0 _0811CFA4: .4byte REG_BLDY _0811CFA8: .4byte 0x0200c000 thumb_func_end sub_811CF74 thumb_func_start sub_811CFAC sub_811CFAC: @ 811CFAC ldr r2, _0811CFC4 ldr r1, _0811CFC8 ldr r0, _0811CFCC ldrh r0, [r0] lsls r0, 1 movs r3, 0xF0 lsls r3, 3 adds r1, r3 adds r0, r1 ldrh r0, [r0] strh r0, [r2] bx lr .align 2, 0 _0811CFC4: .4byte REG_BLDY _0811CFC8: .4byte 0x03004de0 _0811CFCC: .4byte REG_VCOUNT thumb_func_end sub_811CFAC thumb_func_start sub_811CFD0 sub_811CFD0: @ 811CFD0 push {r4-r6,lr} adds r3, r0, 0 ldrh r1, [r3, 0x38] movs r2, 0x38 ldrsh r0, [r3, r2] cmp r0, 0 beq _0811CFF8 subs r0, r1, 0x1 strh r0, [r3, 0x38] movs r1, 0x3A ldrsh r0, [r3, r1] cmp r0, 0 beq _0811D0AA ldr r0, _0811CFF4 ldrb r1, [r0] movs r1, 0x1 strb r1, [r0] b _0811D0AA .align 2, 0 _0811CFF4: .4byte 0x0200c000 _0811CFF8: movs r2, 0x22 ldrsh r1, [r3, r2] lsls r1, 1 ldr r0, _0811D0B0 adds r6, r1, r0 movs r2, 0xA0 lsls r2, 1 adds r0, r2 adds r5, r1, r0 movs r4, 0 _0811D00C: lsls r1, r4, 1 adds r2, r1, r6 ldrh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 24 strh r0, [r2] adds r1, r5 ldrh r0, [r3, 0x20] lsls r0, 24 lsrs r0, 24 strh r0, [r1] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x13 bls _0811D00C movs r1, 0x20 ldrsh r0, [r3, r1] ldrh r2, [r3, 0x20] cmp r0, 0 bne _0811D046 movs r0, 0x2E ldrsh r1, [r3, r0] movs r0, 0x80 lsls r0, 5 cmp r1, r0 bne _0811D046 movs r0, 0x1 strh r0, [r3, 0x30] _0811D046: adds r1, r2, 0 subs r1, 0x10 strh r1, [r3, 0x20] ldrh r0, [r3, 0x2E] adds r0, 0x80 strh r0, [r3, 0x2E] lsls r1, 16 cmp r1, 0 bge _0811D05C movs r0, 0 strh r0, [r3, 0x20] _0811D05C: movs r1, 0x2E ldrsh r0, [r3, r1] movs r1, 0x80 lsls r1, 5 cmp r0, r1 ble _0811D06A strh r1, [r3, 0x2E] _0811D06A: movs r0, 0x3A ldrsh r2, [r3, r0] cmp r2, 0 beq _0811D07A ldr r0, _0811D0B4 ldrb r1, [r0] movs r1, 0x1 strb r1, [r0] _0811D07A: movs r1, 0x30 ldrsh r0, [r3, r1] cmp r0, 0 beq _0811D0AA ldr r4, _0811D0B4 cmp r2, 0 beq _0811D09E movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x6 ble _0811D0AA ldrh r0, [r3, 0x32] adds r1, r0, 0x1 strh r1, [r3, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _0811D0AA _0811D09E: ldrh r0, [r4, 0x20] adds r0, 0x1 strh r0, [r4, 0x20] adds r0, r3, 0 bl DestroySprite _0811D0AA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811D0B0: .4byte 0x03004de0 _0811D0B4: .4byte 0x0200c000 thumb_func_end sub_811CFD0 thumb_func_start sub_811D0B8 sub_811D0B8: @ 811D0B8 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811D0E8 ldr r2, _0811D0EC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811D0CA: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811D0CA pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811D0E8: .4byte gUnknown_083FD8D4 _0811D0EC: .4byte 0x03004b20 thumb_func_end sub_811D0B8 thumb_func_start sub_811D0F0 sub_811D0F0: @ 811D0F0 push {r4,lr} sub sp, 0xC adds r4, r0, 0 add r0, sp, 0x4 add r1, sp, 0x8 bl sub_811D6A8 ldr r0, _0811D138 ldr r1, [sp, 0x8] movs r2, 0x10 bl CpuSet mov r1, sp movs r2, 0xF0 lsls r2, 8 adds r0, r2, 0 strh r0, [r1] ldr r1, [sp, 0x4] ldr r2, _0811D13C mov r0, sp bl CpuSet ldr r0, _0811D140 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 add sp, 0xC pop {r4} pop {r1} bx r1 .align 2, 0 _0811D138: .4byte gUnknown_083FD528 _0811D13C: .4byte 0x01000400 _0811D140: .4byte gFieldEffectObjectPalette10 thumb_func_end sub_811D0F0 thumb_func_start sub_811D144 sub_811D144: @ 811D144 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 bne _0811D186 mov r0, sp bl sub_811D690 movs r0, 0x3 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] movs r1, 0xC ldrsh r0, [r4, r1] lsls r0, 5 ldr r1, _0811D198 adds r0, r1 ldr r1, [sp] movs r2, 0x10 bl CpuSet movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0xD ble _0811D186 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x10 strh r0, [r4, 0xA] _0811D186: ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] movs r0, 0 add sp, 0x4 pop {r4} pop {r1} bx r1 .align 2, 0 _0811D198: .4byte gUnknown_083FD528 thumb_func_end sub_811D144 thumb_func_start sub_811D19C sub_811D19C: @ 811D19C push {lr} ldrh r1, [r0, 0xA] subs r1, 0x1 strh r1, [r0, 0xA] lsls r1, 16 cmp r1, 0 bne _0811D1BC bl sub_811D6D4 ldr r0, _0811D1C4 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0811D1BC: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0811D1C4: .4byte sub_811D0B8 thumb_func_end sub_811D19C thumb_func_start sub_811D1C8 sub_811D1C8: @ 811D1C8 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811D1F8 ldr r2, _0811D1FC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811D1DA: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811D1DA pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811D1F8: .4byte gUnknown_083FD8E0 _0811D1FC: .4byte 0x03004b20 thumb_func_end sub_811D1C8 thumb_func_start sub_811D200 sub_811D200: @ 811D200 push {r4,r5,lr} adds r5, r0, 0 bl sub_811D658 bl dp12_8087EA4 ldr r1, _0811D254 movs r2, 0 movs r0, 0x3F strh r0, [r1, 0x2] strh r2, [r1, 0x4] movs r0, 0xA0 strh r0, [r1, 0x8] movs r1, 0 ldr r2, _0811D258 movs r3, 0xF0 adds r4, r2, 0 _0811D222: lsls r0, r1, 1 adds r0, r2 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x9F bls _0811D222 movs r0, 0xF0 lsls r0, 3 adds r1, r4, r0 adds r0, r4, 0 movs r2, 0xA0 bl CpuSet ldr r0, _0811D25C bl SetVBlankCallback ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0811D254: .4byte 0x0200c000 _0811D258: .4byte 0x03004de0 _0811D25C: .4byte sub_811D438 thumb_func_end sub_811D200 thumb_func_start sub_811D260 sub_811D260: @ 811D260 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0xC mov r8, r0 ldr r0, _0811D2D0 ldr r6, _0811D2D4 mov r2, r8 movs r3, 0xA ldrsh r1, [r2, r3] lsls r4, r1, 2 adds r4, r1 lsls r4, 1 adds r1, r4, r6 movs r5, 0 ldrsh r1, [r1, r5] adds r2, r6, 0x2 adds r2, r4, r2 movs r3, 0 ldrsh r2, [r2, r3] adds r3, r6, 0x4 adds r3, r4, r3 movs r5, 0 ldrsh r3, [r3, r5] adds r5, r6, 0x6 adds r4, r5 movs r5, 0 ldrsh r4, [r4, r5] str r4, [sp] movs r4, 0x1 str r4, [sp, 0x4] str r4, [sp, 0x8] bl sub_811D8FC mov r0, r8 movs r2, 0xA ldrsh r1, [r0, r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 1 adds r6, 0x8 adds r0, r6 ldrh r0, [r0] mov r3, r8 strh r0, [r3, 0xC] ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] movs r0, 0x1 add sp, 0xC pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0811D2D0: .4byte 0x0200c024 _0811D2D4: .4byte gUnknown_083FD8F4 thumb_func_end sub_811D260 thumb_func_start sub_811D2D8 sub_811D2D8: @ 811D2D8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 ldr r0, _0811D324 ldrb r1, [r0] movs r1, 0 strb r1, [r0] mov r8, r1 mov r12, r1 adds r6, r0, 0 ldr r0, _0811D328 mov r9, r0 _0811D2F4: ldr r1, _0811D328 movs r2, 0x2A ldrsh r0, [r6, r2] lsls r0, 1 adds r0, r1 ldrh r0, [r0] lsrs r3, r0, 8 movs r4, 0xFF ands r4, r0 movs r1, 0xC ldrsh r0, [r7, r1] cmp r0, 0 bne _0811D32C movs r2, 0x28 ldrsh r0, [r6, r2] cmp r3, r0 bge _0811D318 ldrh r3, [r6, 0x28] _0811D318: lsls r0, r3, 16 lsls r1, r4, 16 cmp r0, r1 ble _0811D344 lsrs r3, r1, 16 b _0811D344 .align 2, 0 _0811D324: .4byte 0x0200c000 _0811D328: .4byte 0x03004de0 _0811D32C: lsls r0, r4, 16 asrs r0, 16 movs r2, 0x28 ldrsh r1, [r6, r2] cmp r0, r1 ble _0811D33A ldrh r4, [r6, 0x28] _0811D33A: lsls r0, r4, 16 lsls r1, r3, 16 cmp r0, r1 bgt _0811D344 lsrs r4, r1, 16 _0811D344: ldr r5, _0811D368 movs r0, 0x2A ldrsh r2, [r5, r0] lsls r2, 1 add r2, r9 lsls r1, r3, 16 asrs r1, 8 lsls r0, r4, 16 asrs r0, 16 orrs r0, r1 strh r0, [r2] mov r1, r12 cmp r1, 0 beq _0811D36C ldrh r0, [r7, 0x8] adds r0, 0x1 strh r0, [r7, 0x8] b _0811D392 .align 2, 0 _0811D368: .4byte 0x0200c000 _0811D36C: adds r0, r5, 0 adds r0, 0x24 movs r1, 0x1 movs r2, 0x1 bl sub_811D978 lsls r0, 24 lsrs r0, 24 mov r12, r0 mov r2, r8 lsls r0, r2, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r2, r0, 16 mov r8, r2 asrs r0, 16 cmp r0, 0xF ble _0811D2F4 _0811D392: ldr r0, _0811D3AC ldrb r1, [r0] adds r1, 0x1 ldrb r2, [r0] strb r1, [r0] movs r0, 0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811D3AC: .4byte 0x0200c000 thumb_func_end sub_811D2D8 thumb_func_start sub_811D3B0 sub_811D3B0: @ 811D3B0 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 ble _0811D3FC ldr r1, _0811D3EC ldrh r2, [r1, 0xA] ldr r0, _0811D3F0 ands r0, r2 strh r0, [r1, 0xA] ldrh r2, [r1, 0xA] ldr r0, _0811D3F4 ands r0, r2 strh r0, [r1, 0xA] ldrh r0, [r1, 0xA] bl sub_811D6D4 ldr r0, _0811D3F8 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 b _0811D414 .align 2, 0 _0811D3EC: .4byte 0x040000b0 _0811D3F0: .4byte 0x0000c5ff _0811D3F4: .4byte 0x00007fff _0811D3F8: .4byte sub_811D1C8 _0811D3FC: ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] ldr r1, _0811D418 movs r3, 0xA ldrsh r0, [r2, r3] subs r0, 0x1 lsls r0, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r2, 0xE] movs r0, 0x1 _0811D414: pop {r1} bx r1 .align 2, 0 _0811D418: .4byte gUnknown_083FD93A thumb_func_end sub_811D3B0 thumb_func_start sub_811D41C sub_811D41C: @ 811D41C push {lr} adds r1, r0, 0 ldrh r0, [r1, 0xE] subs r0, 0x1 strh r0, [r1, 0xE] lsls r0, 16 cmp r0, 0 beq _0811D430 movs r0, 0 b _0811D434 _0811D430: movs r0, 0x1 strh r0, [r1, 0x8] _0811D434: pop {r1} bx r1 thumb_func_end sub_811D41C thumb_func_start sub_811D438 sub_811D438: @ 811D438 push {r4,lr} ldr r4, _0811D4A0 ldrh r1, [r4, 0xA] ldr r0, _0811D4A4 ands r0, r1 strh r0, [r4, 0xA] ldrh r1, [r4, 0xA] ldr r0, _0811D4A8 ands r0, r1 strh r0, [r4, 0xA] ldrh r0, [r4, 0xA] bl sub_811D67C ldr r2, _0811D4AC ldrb r0, [r2] cmp r0, 0 beq _0811D46E ldr r1, _0811D4B0 ldr r0, _0811D4B4 str r0, [r1] movs r3, 0xF0 lsls r3, 3 adds r0, r3 str r0, [r1, 0x4] ldr r0, _0811D4B8 str r0, [r1, 0x8] ldr r0, [r1, 0x8] _0811D46E: ldr r1, _0811D4BC ldrh r0, [r2, 0x2] strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x4] strh r0, [r1] subs r1, 0x6 ldrh r0, [r2, 0x8] strh r0, [r1] ldr r2, _0811D4C0 ldr r0, _0811D4B4 movs r1, 0xF0 lsls r1, 3 adds r0, r1 ldrh r1, [r0] strh r1, [r2] str r0, [r4] str r2, [r4, 0x4] ldr r0, _0811D4C4 str r0, [r4, 0x8] ldr r0, [r4, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _0811D4A0: .4byte 0x040000b0 _0811D4A4: .4byte 0x0000c5ff _0811D4A8: .4byte 0x00007fff _0811D4AC: .4byte 0x0200c000 _0811D4B0: .4byte 0x040000d4 _0811D4B4: .4byte 0x03004de0 _0811D4B8: .4byte 0x800000a0 _0811D4BC: .4byte REG_WININ _0811D4C0: .4byte REG_WIN0H _0811D4C4: .4byte 0xa2400001 thumb_func_end sub_811D438 thumb_func_start sub_811D4C8 sub_811D4C8: @ 811D4C8 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 mov r8, r0 adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 ldr r3, [sp, 0x18] lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 lsls r6, 16 lsrs r6, 16 lsls r3, 16 lsrs r3, 16 ldr r0, _0811D524 movs r1, 0x3 str r3, [sp] bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0811D528 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 mov r0, r8 strh r0, [r1, 0xA] strh r4, [r1, 0xC] strh r5, [r1, 0xE] strh r6, [r1, 0x10] ldr r3, [sp] strh r3, [r1, 0x12] strh r0, [r1, 0x14] add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811D524: .4byte sub_811D54C _0811D528: .4byte 0x03004b20 thumb_func_end sub_811D4C8 thumb_func_start sub_811D52C sub_811D52C: @ 811D52C push {lr} ldr r0, _0811D540 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _0811D544 movs r0, 0 b _0811D546 .align 2, 0 _0811D540: .4byte sub_811D54C _0811D544: movs r0, 0x1 _0811D546: pop {r1} bx r1 thumb_func_end sub_811D52C thumb_func_start sub_811D54C sub_811D54C: @ 811D54C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0811D57C ldr r2, _0811D580 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0811D55E: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0811D55E pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811D57C: .4byte gUnknown_083FD948 _0811D580: .4byte 0x03004b20 thumb_func_end sub_811D54C thumb_func_start sub_811D584 sub_811D584: @ 811D584 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x14] movs r2, 0x14 ldrsh r0, [r4, r2] cmp r0, 0 beq _0811D59C subs r0, r1, 0x1 strh r0, [r4, 0x14] lsls r0, 16 cmp r0, 0 bne _0811D5C0 _0811D59C: ldrh r0, [r4, 0xA] strh r0, [r4, 0x14] ldrh r0, [r4, 0x10] ldrh r1, [r4, 0x16] adds r0, r1 strh r0, [r4, 0x16] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _0811D5B4 movs r0, 0x10 strh r0, [r4, 0x16] _0811D5B4: movs r0, 0x1 negs r0, r0 ldrb r1, [r4, 0x16] ldr r2, _0811D5DC bl BlendPalettes _0811D5C0: movs r2, 0x16 ldrsh r0, [r4, r2] cmp r0, 0xF ble _0811D5D2 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] ldrh r0, [r4, 0xC] strh r0, [r4, 0x14] _0811D5D2: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0811D5DC: .4byte 0x00002d6b thumb_func_end sub_811D584 thumb_func_start sub_811D5E0 sub_811D5E0: @ 811D5E0 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x14] movs r2, 0x14 ldrsh r0, [r4, r2] cmp r0, 0 beq _0811D5F8 subs r0, r1, 0x1 strh r0, [r4, 0x14] lsls r0, 16 cmp r0, 0 bne _0811D61A _0811D5F8: ldrh r0, [r4, 0xC] strh r0, [r4, 0x14] ldrh r0, [r4, 0x16] ldrh r1, [r4, 0x12] subs r0, r1 strh r0, [r4, 0x16] lsls r0, 16 cmp r0, 0 bge _0811D60E movs r0, 0 strh r0, [r4, 0x16] _0811D60E: movs r0, 0x1 negs r0, r0 ldrb r1, [r4, 0x16] ldr r2, _0811D640 bl BlendPalettes _0811D61A: movs r0, 0x16 ldrsh r1, [r4, r0] cmp r1, 0 bne _0811D64E ldrh r0, [r4, 0xE] subs r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 cmp r0, 0 bne _0811D648 ldr r0, _0811D644 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask b _0811D64E .align 2, 0 _0811D640: .4byte 0x00002d6b _0811D644: .4byte sub_811D54C _0811D648: ldrh r0, [r4, 0xA] strh r0, [r4, 0x14] strh r1, [r4, 0x8] _0811D64E: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_811D5E0 thumb_func_start sub_811D658 sub_811D658: @ 811D658 push {lr} ldr r0, _0811D674 ldr r0, [r0] movs r1, 0 movs r2, 0x3C bl memset ldr r0, _0811D678 adds r1, r0, 0x2 bl sub_8057B14 pop {r0} bx r0 .align 2, 0 _0811D674: .4byte gUnknown_083FD708 _0811D678: .4byte 0x0200c014 thumb_func_end sub_811D658 thumb_func_start sub_811D67C sub_811D67C: @ 811D67C push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_811D67C thumb_func_start sub_811D690 sub_811D690: @ 811D690 ldr r1, _0811D6A4 ldrh r1, [r1] lsrs r1, 2 lsls r1, 30 lsrs r1, 16 movs r2, 0xC0 lsls r2, 19 adds r1, r2 str r1, [r0] bx lr .align 2, 0 _0811D6A4: .4byte REG_BG0CNT thumb_func_end sub_811D690 thumb_func_start sub_811D6A8 sub_811D6A8: @ 811D6A8 push {r4,lr} ldr r3, _0811D6D0 ldrh r2, [r3] lsrs r2, 8 ldrh r3, [r3] lsrs r3, 2 lsls r2, 27 lsrs r2, 16 lsls r3, 30 lsrs r3, 16 movs r4, 0xC0 lsls r4, 19 adds r2, r4 str r2, [r0] adds r3, r4 str r3, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0811D6D0: .4byte REG_BG0CNT thumb_func_end sub_811D6A8 thumb_func_start sub_811D6D4 sub_811D6D4: @ 811D6D4 push {lr} movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes pop {r0} bx r0 thumb_func_end sub_811D6D4 thumb_func_start sub_811D6E8 sub_811D6E8: @ 811D6E8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r10, r0 ldr r0, [sp, 0x20] ldr r4, [sp, 0x24] lsls r1, 16 lsrs r7, r1, 16 lsls r2, 16 lsrs r2, 16 lsls r3, 16 lsrs r3, 16 lsls r0, 16 lsrs r1, r0, 16 lsls r4, 16 movs r6, 0 lsrs r5, r4, 16 cmp r4, 0 ble _0811D750 lsls r0, r7, 16 asrs r0, 16 mov r9, r0 lsls r1, 16 mov r8, r1 lsls r0, r3, 16 asrs r7, r0, 16 _0811D720: lsls r4, r2, 16 asrs r4, 16 movs r0, 0xFF ands r0, r4 mov r2, r8 asrs r1, r2, 16 bl sine lsls r1, r6, 1 add r1, r10 add r0, r9 strh r0, [r1] lsls r1, r5, 16 ldr r0, _0811D760 adds r1, r0 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r4, r7 lsls r4, 16 lsrs r2, r4, 16 lsrs r5, r1, 16 cmp r1, 0 bgt _0811D720 _0811D750: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811D760: .4byte 0xffff0000 thumb_func_end sub_811D6E8 thumb_func_start sub_811D764 sub_811D764: @ 811D764 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 mov r9, r0 adds r5, r2, 0 adds r4, r3, 0 lsls r1, 16 lsrs r1, 16 str r1, [sp] lsls r5, 16 lsrs r5, 16 lsls r4, 16 lsrs r4, 16 movs r2, 0xA0 lsls r2, 1 movs r1, 0xA bl memset movs r1, 0 lsls r4, 16 asrs r4, 16 str r4, [sp, 0x4] lsls r5, 16 asrs r5, 16 str r5, [sp, 0x8] _0811D79C: lsls r5, r1, 16 asrs r0, r5, 16 mov r10, r0 ldr r1, [sp, 0x4] bl sine adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, r10 ldr r1, [sp, 0x4] bl cosine ldr r2, [sp] lsls r1, r2, 16 asrs r1, 16 lsls r4, 16 asrs r4, 16 subs r2, r1, r4 lsls r2, 16 adds r1, r4 lsls r1, 16 lsrs r6, r1, 16 lsls r0, 16 asrs r0, 16 ldr r3, [sp, 0x8] subs r1, r3, r0 lsls r1, 16 lsrs r7, r1, 16 adds r0, r3, r0 lsls r0, 16 lsrs r0, 16 mov r8, r0 lsrs r1, r2, 16 str r5, [sp, 0x10] cmp r2, 0 bge _0811D7E8 movs r1, 0 _0811D7E8: lsls r0, r6, 16 asrs r0, 16 cmp r0, 0xF0 ble _0811D7F2 movs r6, 0xF0 _0811D7F2: lsls r0, r7, 16 cmp r0, 0 bge _0811D7FA movs r7, 0 _0811D7FA: mov r2, r8 lsls r0, r2, 16 asrs r0, 16 cmp r0, 0x9F ble _0811D808 movs r3, 0x9F mov r8, r3 _0811D808: lsls r0, r1, 24 lsrs r0, 16 orrs r6, r0 lsls r0, r7, 16 asrs r0, 16 str r0, [sp, 0xC] lsls r0, 1 add r0, r9 strh r6, [r0] mov r0, r8 lsls r4, r0, 16 asrs r0, r4, 15 add r0, r9 strh r6, [r0] mov r0, r10 adds r0, 0x1 lsls r0, 16 asrs r0, 16 ldr r1, [sp, 0x4] bl cosine lsls r0, 16 asrs r0, 16 ldr r2, [sp, 0x8] subs r1, r2, r0 lsls r1, 16 adds r0, r2, r0 lsls r0, 16 lsrs r2, r0, 16 lsrs r3, r1, 16 cmp r1, 0 bge _0811D84A movs r3, 0 _0811D84A: lsls r0, r2, 16 asrs r0, 16 cmp r0, 0x9F ble _0811D854 movs r2, 0x9F _0811D854: lsls r0, r3, 16 asrs r1, r0, 16 adds r3, r0, 0 lsls r5, r2, 16 ldr r0, [sp, 0xC] cmp r0, r1 ble _0811D878 adds r2, r1, 0 _0811D864: lsls r1, r7, 16 ldr r0, _0811D8F8 adds r1, r0 asrs r0, r1, 15 add r0, r9 strh r6, [r0] lsrs r7, r1, 16 asrs r1, 16 cmp r1, r2 bgt _0811D864 _0811D878: lsls r1, r7, 16 asrs r0, r3, 16 cmp r1, r3 bge _0811D896 adds r2, r0, 0 _0811D882: movs r3, 0x80 lsls r3, 9 adds r0, r1, r3 asrs r1, r0, 15 add r1, r9 strh r6, [r1] adds r1, r0, 0 asrs r0, r1, 16 cmp r0, r2 blt _0811D882 _0811D896: asrs r0, r5, 16 cmp r4, r5 ble _0811D8B4 adds r1, r0, 0 _0811D89E: ldr r2, _0811D8F8 adds r0, r4, r2 lsrs r3, r0, 16 mov r8, r3 asrs r0, 15 add r0, r9 strh r6, [r0] lsls r4, r3, 16 asrs r0, r4, 16 cmp r0, r1 bgt _0811D89E _0811D8B4: mov r0, r8 lsls r4, r0, 16 asrs r0, r5, 16 cmp r4, r5 bge _0811D8D4 adds r2, r0, 0 _0811D8C0: movs r1, 0x80 lsls r1, 9 adds r0, r4, r1 asrs r1, r0, 15 add r1, r9 strh r6, [r1] adds r4, r0, 0 asrs r0, r4, 16 cmp r0, r2 blt _0811D8C0 _0811D8D4: ldr r2, [sp, 0x10] movs r3, 0x80 lsls r3, 9 adds r0, r2, r3 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0x3F bgt _0811D8E6 b _0811D79C _0811D8E6: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811D8F8: .4byte 0xffff0000 thumb_func_end sub_811D764 thumb_func_start sub_811D8FC sub_811D8FC: @ 811D8FC push {r4-r7,lr} adds r6, r0, 0 ldr r0, [sp, 0x14] ldr r5, [sp, 0x18] ldr r4, [sp, 0x1C] lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 lsls r3, 16 lsrs r3, 16 lsls r0, 16 lsrs r0, 16 adds r7, r0, 0 lsls r5, 16 lsrs r5, 16 lsls r4, 16 lsrs r4, 16 strh r1, [r6] strh r2, [r6, 0x2] strh r1, [r6, 0x4] strh r2, [r6, 0x6] strh r3, [r6, 0x8] strh r7, [r6, 0xA] strh r5, [r6, 0xC] strh r4, [r6, 0xE] lsls r3, 16 asrs r3, 16 lsls r1, 16 asrs r1, 16 subs r3, r1 strh r3, [r6, 0x10] lsls r0, r3, 16 cmp r0, 0 bge _0811D94E negs r0, r3 strh r0, [r6, 0x10] lsls r0, r5, 16 asrs r0, 16 negs r0, r0 strh r0, [r6, 0xC] _0811D94E: lsls r0, r7, 16 asrs r0, 16 lsls r1, r2, 16 asrs r1, 16 subs r1, r0, r1 strh r1, [r6, 0x12] lsls r0, r1, 16 cmp r0, 0 bge _0811D96C negs r0, r1 strh r0, [r6, 0x12] lsls r0, r4, 16 asrs r0, 16 negs r0, r0 strh r0, [r6, 0xE] _0811D96C: movs r0, 0 strh r0, [r6, 0x14] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_811D8FC thumb_func_start sub_811D978 sub_811D978: @ 811D978 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r3, r0, 0 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r2, 24 lsrs r2, 24 mov r10, r2 ldrh r0, [r3, 0x10] mov r8, r0 movs r1, 0x10 ldrsh r6, [r3, r1] ldrh r2, [r3, 0x12] mov r12, r2 movs r4, 0x12 ldrsh r5, [r3, r4] cmp r6, r5 ble _0811D9C8 ldrh r0, [r3, 0xC] ldrh r2, [r3, 0x4] adds r1, r0, r2 strh r1, [r3, 0x4] ldrh r2, [r3, 0x14] add r2, r12 strh r2, [r3, 0x14] lsls r1, r2, 16 asrs r1, 16 adds r4, r0, 0 ldrh r7, [r3, 0xE] cmp r1, r6 ble _0811D9EE ldrh r1, [r3, 0x6] adds r0, r7, r1 strh r0, [r3, 0x6] mov r1, r8 b _0811D9EA _0811D9C8: ldrh r0, [r3, 0xE] ldrh r2, [r3, 0x6] adds r1, r0, r2 strh r1, [r3, 0x6] ldrh r2, [r3, 0x14] add r2, r8 strh r2, [r3, 0x14] lsls r1, r2, 16 asrs r1, 16 ldrh r4, [r3, 0xC] adds r7, r0, 0 cmp r1, r5 ble _0811D9EE ldrh r1, [r3, 0x4] adds r0, r4, r1 strh r0, [r3, 0x4] mov r1, r12 _0811D9EA: subs r0, r2, r1 strh r0, [r3, 0x14] _0811D9EE: movs r5, 0 lsls r0, r4, 16 asrs r2, r0, 16 cmp r2, 0 ble _0811DA06 movs r4, 0x4 ldrsh r1, [r3, r4] movs r4, 0x8 ldrsh r0, [r3, r4] ldrh r4, [r3, 0x8] cmp r1, r0 bge _0811DA18 _0811DA06: cmp r2, 0 bge _0811DA26 movs r0, 0x4 ldrsh r1, [r3, r0] movs r2, 0x8 ldrsh r0, [r3, r2] ldrh r4, [r3, 0x8] cmp r1, r0 bgt _0811DA26 _0811DA18: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 mov r0, r9 cmp r0, 0 beq _0811DA26 strh r4, [r3, 0x4] _0811DA26: lsls r0, r7, 16 asrs r2, r0, 16 cmp r2, 0 ble _0811DA3C movs r4, 0x6 ldrsh r1, [r3, r4] movs r4, 0xA ldrsh r0, [r3, r4] ldrh r4, [r3, 0xA] cmp r1, r0 bge _0811DA4E _0811DA3C: cmp r2, 0 bge _0811DA5C movs r0, 0x6 ldrsh r1, [r3, r0] movs r2, 0xA ldrsh r0, [r3, r2] ldrh r4, [r3, 0xA] cmp r1, r0 bgt _0811DA5C _0811DA4E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 mov r0, r10 cmp r0, 0 beq _0811DA5C strh r4, [r3, 0x6] _0811DA5C: cmp r5, 0x2 beq _0811DA64 movs r0, 0 b _0811DA66 _0811DA64: movs r0, 0x1 _0811DA66: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_811D978 thumb_func_start nullsub_74 nullsub_74: @ 811DA74 bx lr thumb_func_end nullsub_74 thumb_func_start sub_811DA78 sub_811DA78: @ 811DA78 ldr r1, _0811DA88 ldr r0, _0811DA8C ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _0811DA90 str r1, [r0] bx lr .align 2, 0 _0811DA88: .4byte 0x03004330 _0811DA8C: .4byte 0x02024a60 _0811DA90: .4byte sub_811DA94 thumb_func_end sub_811DA78 thumb_func_start sub_811DA94 sub_811DA94: @ 811DA94 push {lr} ldr r2, _0811DAC8 ldr r1, _0811DACC ldr r0, _0811DAD0 ldrb r3, [r0] lsls r0, r3, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0811DAE0 ldr r0, _0811DAD4 lsls r1, r3, 9 adds r1, r0 ldrb r0, [r1] cmp r0, 0x38 bhi _0811DADC ldr r0, _0811DAD8 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl _call_via_r0 b _0811DAE0 .align 2, 0 _0811DAC8: .4byte 0x02024a64 _0811DACC: .4byte gBitTable _0811DAD0: .4byte 0x02024a60 _0811DAD4: .4byte 0x02023a60 _0811DAD8: .4byte gUnknown_083FE4F4 _0811DADC: bl dp01_tbl3_exec_completed _0811DAE0: pop {r0} bx r0 thumb_func_end sub_811DA94 thumb_func_start sub_811DAE4 sub_811DAE4: @ 811DAE4 push {lr} ldr r2, _0811DB0C ldr r1, _0811DB10 ldr r0, _0811DB14 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _0811DB18 cmp r1, r0 bne _0811DB08 bl dp01_tbl3_exec_completed _0811DB08: pop {r0} bx r0 .align 2, 0 _0811DB0C: .4byte 0x02020004 _0811DB10: .4byte 0x02024be0 _0811DB14: .4byte 0x02024a60 _0811DB18: .4byte SpriteCallbackDummy thumb_func_end sub_811DAE4 thumb_func_start sub_811DB1C sub_811DB1C: @ 811DB1C push {r4-r6,lr} ldr r6, _0811DB74 ldr r5, _0811DB78 ldr r4, _0811DB7C ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r6, 0 adds r1, 0x1C adds r0, r1 ldr r1, [r0] ldr r0, _0811DB80 cmp r1, r0 bne _0811DB6C movs r0, 0 bl nullsub_10 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl FreeSpriteOamMatrix ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl DestroySprite bl dp01_tbl3_exec_completed _0811DB6C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811DB74: .4byte 0x02020004 _0811DB78: .4byte 0x02024be0 _0811DB7C: .4byte 0x02024a60 _0811DB80: .4byte SpriteCallbackDummy thumb_func_end sub_811DB1C thumb_func_start sub_811DB84 sub_811DB84: @ 811DB84 push {lr} ldr r3, _0811DBB8 ldrb r0, [r3] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r2, _0811DBBC adds r1, r2 ldrb r0, [r1, 0x9] subs r0, 0x1 strb r0, [r1, 0x9] lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _0811DBB4 ldrb r0, [r3] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0 strb r0, [r1, 0x9] bl dp01_tbl3_exec_completed _0811DBB4: pop {r0} bx r0 .align 2, 0 _0811DBB8: .4byte 0x02024a60 _0811DBBC: .4byte 0x02017810 thumb_func_end sub_811DB84 thumb_func_start sub_811DBC0 sub_811DBC0: @ 811DBC0 push {r4-r6,lr} movs r6, 0 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0811DBE4 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0811DC18 ldr r0, _0811DC04 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0811DC18 _0811DBE4: ldr r2, _0811DC08 ldr r1, _0811DC0C ldr r0, _0811DC10 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _0811DC14 cmp r1, r0 bne _0811DC50 b _0811DC4E .align 2, 0 _0811DC04: .4byte 0x020239f8 _0811DC08: .4byte 0x02020004 _0811DC0C: .4byte 0x03004340 _0811DC10: .4byte 0x02024a60 _0811DC14: .4byte SpriteCallbackDummy _0811DC18: ldr r2, _0811DC84 ldr r5, _0811DC88 ldr r0, _0811DC8C ldrb r3, [r0] adds r0, r3, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r2, 0 adds r4, 0x1C adds r0, r4 ldr r2, [r0] ldr r0, _0811DC90 cmp r2, r0 bne _0811DC50 movs r0, 0x2 eors r3, r0 adds r0, r3, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r0, [r0] cmp r0, r2 bne _0811DC50 _0811DC4E: movs r6, 0x1 _0811DC50: bl sub_80753C4 lsls r0, 24 cmp r0, 0 beq _0811DC5C movs r6, 0 _0811DC5C: cmp r6, 0 beq _0811DC7E ldr r2, _0811DC8C ldrb r1, [r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0811DC94 adds r0, r1 movs r1, 0x3 strb r1, [r0, 0x9] ldr r1, _0811DC98 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _0811DC9C str r1, [r0] _0811DC7E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811DC84: .4byte 0x02020004 _0811DC88: .4byte 0x03004340 _0811DC8C: .4byte 0x02024a60 _0811DC90: .4byte SpriteCallbackDummy _0811DC94: .4byte 0x02017810 _0811DC98: .4byte 0x03004330 _0811DC9C: .4byte sub_811DB84 thumb_func_end sub_811DBC0 thumb_func_start sub_811DCA0 sub_811DCA0: @ 811DCA0 push {r4-r7,lr} ldr r6, _0811DDBC ldrb r2, [r6] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r4, _0811DDC0 adds r3, r0, r4 ldrb r1, [r3] movs r5, 0x8 adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _0811DDB4 movs r7, 0x2 adds r1, r7, 0 eors r1, r2 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0] adds r0, r5, 0 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _0811DDB4 ldrb r0, [r3, 0x9] adds r0, 0x1 strb r0, [r3, 0x9] lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0811DDB4 ldrb r0, [r6] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r4 strb r2, [r1, 0x9] bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0811DD56 ldr r0, _0811DDC4 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0811DD56 ldr r1, _0811DDC8 ldrb r0, [r6] eors r0, r7 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0811DDCC adds r0, r1 bl DestroySprite ldr r4, _0811DDD0 ldrb r0, [r6] adds r1, r7, 0 eors r1, r0 adds r0, r1, r4 ldrb r0, [r0] ldr r2, _0811DDD4 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _0811DDD8 adds r1, r2 movs r2, 0 bl sub_8045A5C ldrb r0, [r6] eors r0, r7 bl sub_804777C ldrb r0, [r6] eors r0, r7 adds r0, r4 ldrb r0, [r0] bl sub_8043DFC _0811DD56: ldr r1, _0811DDC8 ldr r4, _0811DDBC ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0811DDCC adds r0, r1 bl DestroySprite ldr r5, _0811DDD0 ldrb r1, [r4] adds r0, r1, r5 ldrb r0, [r0] ldr r2, _0811DDD4 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _0811DDD8 adds r1, r2 movs r2, 0 bl sub_8045A5C ldrb r0, [r4] bl sub_804777C ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl sub_8043DFC ldr r2, _0811DDDC ldrb r1, [r2, 0x9] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2, 0x9] ldr r1, _0811DDE0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0811DDE4 str r1, [r0] _0811DDB4: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811DDBC: .4byte 0x02024a60 _0811DDC0: .4byte 0x02017810 _0811DDC4: .4byte 0x020239f8 _0811DDC8: .4byte 0x0300434c _0811DDCC: .4byte 0x02020004 _0811DDD0: .4byte 0x03004340 _0811DDD4: .4byte 0x02024a6a _0811DDD8: .4byte 0x03004360 _0811DDDC: .4byte 0x02017840 _0811DDE0: .4byte 0x03004330 _0811DDE4: .4byte sub_811DBC0 thumb_func_end sub_811DCA0 thumb_func_start sub_811DDE8 sub_811DDE8: @ 811DDE8 push {lr} ldr r2, _0811DE1C ldr r1, _0811DE20 ldr r0, _0811DE24 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x3F ldrb r0, [r0] lsls r0, 27 cmp r0, 0 bge _0811DE16 movs r2, 0x24 ldrsh r0, [r1, r2] cmp r0, 0 bne _0811DE16 bl dp01_tbl3_exec_completed _0811DE16: pop {r0} bx r0 .align 2, 0 _0811DE1C: .4byte 0x02020004 _0811DE20: .4byte 0x02024be0 _0811DE24: .4byte 0x02024a60 thumb_func_end sub_811DDE8 thumb_func_start bx_t3_healthbar_update bx_t3_healthbar_update: @ 811DE28 push {r4-r6,lr} ldr r5, _0811DE68 ldrb r0, [r5] ldr r6, _0811DE6C adds r1, r0, r6 ldrb r1, [r1] movs r2, 0 movs r3, 0 bl sub_8045C78 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] bl sub_8043DFC lsls r4, 16 asrs r1, r4, 16 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0811DE70 ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] movs r2, 0 bl sub_80440EC b _0811DE8A .align 2, 0 _0811DE68: .4byte 0x02024a60 _0811DE6C: .4byte 0x03004340 _0811DE70: ldr r2, _0811DE90 ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _0811DE94 adds r0, r2 bl sub_80324F8 bl dp01_tbl3_exec_completed _0811DE8A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811DE90: .4byte 0x02024a6a _0811DE94: .4byte 0x03004360 thumb_func_end bx_t3_healthbar_update thumb_func_start sub_811DE98 sub_811DE98: @ 811DE98 push {r4-r6,lr} ldr r6, _0811DF1C ldr r5, _0811DF20 ldr r4, _0811DF24 ldrb r2, [r4] adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r3, 0x22 ldrsh r1, [r0, r3] movs r3, 0x26 ldrsh r0, [r0, r3] adds r1, r0 cmp r1, 0xA0 ble _0811DF14 ldr r1, _0811DF28 lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0811DF2C adds r0, r1 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r0, 16 bl nullsub_9 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl DestroySprite ldr r1, _0811DF30 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 bl dp01_tbl3_exec_completed _0811DF14: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811DF1C: .4byte 0x02020004 _0811DF20: .4byte 0x02024be0 _0811DF24: .4byte 0x02024a60 _0811DF28: .4byte 0x02024a6a _0811DF2C: .4byte 0x03004360 _0811DF30: .4byte 0x03004340 thumb_func_end sub_811DE98 thumb_func_start sub_811DF34 sub_811DF34: @ 811DF34 push {r4-r6,lr} ldr r6, _0811DF8C ldrb r2, [r6] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r1, _0811DF90 adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0811DF84 ldr r5, _0811DF94 adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _0811DF98 adds r0, r4 bl FreeSpriteOamMatrix ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldr r1, _0811DF9C ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 bl dp01_tbl3_exec_completed _0811DF84: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811DF8C: .4byte 0x02024a60 _0811DF90: .4byte 0x02017810 _0811DF94: .4byte 0x02024be0 _0811DF98: .4byte 0x02020004 _0811DF9C: .4byte 0x03004340 thumb_func_end sub_811DF34 thumb_func_start sub_811DFA0 sub_811DFA0: @ 811DFA0 push {lr} ldr r0, _0811DFB4 ldrh r0, [r0, 0x16] cmp r0, 0 bne _0811DFAE bl dp01_tbl3_exec_completed _0811DFAE: pop {r0} bx r0 .align 2, 0 _0811DFB4: .4byte 0x03004210 thumb_func_end sub_811DFA0 thumb_func_start bx_blink_t3 bx_blink_t3: @ 811DFB8 push {r4,lr} ldr r1, _0811DFF4 ldr r0, _0811DFF8 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] ldr r2, _0811DFFC lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r0, r2 movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x20 bne _0811E004 movs r3, 0 movs r0, 0 strh r0, [r4, 0x30] adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] subs r0, 0x5 ands r0, r1 strb r0, [r2] ldr r0, _0811E000 strb r3, [r0] bl dp01_tbl3_exec_completed b _0811E02E .align 2, 0 _0811DFF4: .4byte 0x02024be0 _0811DFF8: .4byte 0x02024a60 _0811DFFC: .4byte 0x02020004 _0811E000: .4byte 0x02024e6d _0811E004: ldrh r0, [r4, 0x30] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _0811E028 adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _0811E028: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] _0811E02E: pop {r4} pop {r0} bx r0 thumb_func_end bx_blink_t3 thumb_func_start sub_811E034 sub_811E034: @ 811E034 push {r4,lr} ldr r2, _0811E084 ldr r0, _0811E088 ldr r4, _0811E08C ldrb r3, [r4] adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _0811E090 cmp r1, r0 bne _0811E07C lsls r0, r3, 2 ldr r1, _0811E094 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0811E070 adds r0, r3, 0 adds r1, r3, 0 adds r2, r3, 0 movs r3, 0x6 bl move_anim_start_t4 _0811E070: ldr r0, _0811E098 ldrb r1, [r4] lsls r1, 2 adds r1, r0 ldr r0, _0811E09C str r0, [r1] _0811E07C: pop {r4} pop {r0} bx r0 .align 2, 0 _0811E084: .4byte 0x02020004 _0811E088: .4byte 0x03004340 _0811E08C: .4byte 0x02024a60 _0811E090: .4byte SpriteCallbackDummy _0811E094: .4byte 0x02017800 _0811E098: .4byte 0x03004330 _0811E09C: .4byte sub_811E0A0 thumb_func_end sub_811E034 thumb_func_start sub_811E0A0 sub_811E0A0: @ 811E0A0 push {lr} ldr r0, _0811E0C4 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0811E0C8 adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0811E0BE bl dp01_tbl3_exec_completed _0811E0BE: pop {r0} bx r0 .align 2, 0 _0811E0C4: .4byte 0x02024a60 _0811E0C8: .4byte 0x02017810 thumb_func_end sub_811E0A0 thumb_func_start sub_811E0CC sub_811E0CC: @ 811E0CC push {r4-r7,lr} mov r7, r8 push {r7} ldr r7, _0811E190 ldrb r1, [r7] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r3, _0811E194 adds r2, r0, r3 ldrb r1, [r2, 0x1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0811E186 ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] ldrb r0, [r7] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r1, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r4, _0811E198 adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag ldr r0, _0811E19C movs r1, 0xA bl CreateTask ldr r0, _0811E1A0 mov r8, r0 ldrb r1, [r7] lsls r0, r1, 1 add r0, r8 ldrh r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, _0811E1A4 adds r0, r5 bl sub_80324F8 ldr r1, _0811E1A8 ldrb r0, [r7] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0811E1AC adds r0, r1 movs r1, 0 bl StartSpriteAnim ldr r4, _0811E1B0 ldrb r1, [r7] adds r0, r1, r4 ldrb r0, [r0] lsls r1, 1 add r1, r8 ldrh r1, [r1] muls r1, r6 adds r1, r5 movs r2, 0 bl sub_8045A5C ldrb r0, [r7] bl sub_804777C ldrb r0, [r7] adds r0, r4 ldrb r0, [r0] bl sub_8043DFC ldrb r0, [r7] bl sub_8031F88 ldr r1, _0811E1B4 ldrb r0, [r7] lsls r0, 2 adds r0, r1 ldr r1, _0811E1B8 str r1, [r0] _0811E186: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811E190: .4byte 0x02024a60 _0811E194: .4byte 0x02017810 _0811E198: .4byte 0x000027f9 _0811E19C: .4byte c3_0802FDF4 _0811E1A0: .4byte 0x02024a6a _0811E1A4: .4byte 0x03004360 _0811E1A8: .4byte 0x02024be0 _0811E1AC: .4byte 0x02020004 _0811E1B0: .4byte 0x03004340 _0811E1B4: .4byte 0x03004330 _0811E1B8: .4byte sub_811E034 thumb_func_end sub_811E0CC thumb_func_start sub_811E1BC sub_811E1BC: @ 811E1BC push {r4-r6,lr} ldr r4, _0811E234 ldrb r2, [r4] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 ldr r6, _0811E238 adds r0, r6 ldrb r1, [r0] movs r0, 0x88 ands r0, r1 cmp r0, 0 bne _0811E1EA ldr r0, _0811E23C adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _0811E240 adds r1, r0 adds r0, r2, 0 bl sub_8141828 _0811E1EA: ldr r5, _0811E244 ldr r0, _0811E248 ldrb r2, [r4] adds r0, r2, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r3, r0, 2 adds r0, r5, 0 adds r0, 0x1C adds r0, r3, r0 ldr r1, [r0] ldr r0, _0811E24C cmp r1, r0 bne _0811E22C lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r6 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _0811E22C adds r0, r3, r5 bl DestroySprite ldr r1, _0811E250 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0811E254 str r1, [r0] _0811E22C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811E234: .4byte 0x02024a60 _0811E238: .4byte 0x02017810 _0811E23C: .4byte 0x02024a6a _0811E240: .4byte 0x03004360 _0811E244: .4byte 0x02020004 _0811E248: .4byte 0x0300434c _0811E24C: .4byte SpriteCallbackDummy _0811E250: .4byte 0x03004330 _0811E254: .4byte sub_811E0CC thumb_func_end sub_811E1BC thumb_func_start sub_811E258 sub_811E258: @ 811E258 push {lr} ldr r0, _0811E288 ldrb r0, [r0] cmp r0, 0 bne _0811E284 movs r0, 0x5A bl m4aSongNumStop ldr r3, _0811E28C ldr r0, _0811E290 adds r2, r3, r0 ldrb r1, [r2] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, _0811E294 ldr r0, [r0] str r0, [r3] ldr r0, _0811E298 bl SetMainCallback2 _0811E284: pop {r0} bx r0 .align 2, 0 _0811E288: .4byte 0x03002fa4 _0811E28C: .4byte 0x03001770 _0811E290: .4byte 0x0000043d _0811E294: .4byte 0x030042d0 _0811E298: .4byte c2_8011A1C thumb_func_end sub_811E258 thumb_func_start sub_811E29C sub_811E29C: @ 811E29C push {lr} ldr r0, _0811E2CC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0811E302 ldr r0, _0811E2D0 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0811E2E0 bl sub_800832C ldr r1, _0811E2D4 ldr r0, _0811E2D8 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _0811E2DC str r1, [r0] b _0811E302 .align 2, 0 _0811E2CC: .4byte 0x0202f388 _0811E2D0: .4byte 0x020239f8 _0811E2D4: .4byte 0x03004330 _0811E2D8: .4byte 0x02024a60 _0811E2DC: .4byte sub_811E258 _0811E2E0: movs r0, 0x5A bl m4aSongNumStop ldr r2, _0811E308 ldr r0, _0811E30C adds r3, r2, r0 ldrb r1, [r3] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r3] ldr r0, _0811E310 ldr r0, [r0] str r0, [r2] ldr r0, [r2, 0x8] bl SetMainCallback2 _0811E302: pop {r0} bx r0 .align 2, 0 _0811E308: .4byte 0x03001770 _0811E30C: .4byte 0x0000043d _0811E310: .4byte 0x030042d0 thumb_func_end sub_811E29C thumb_func_start dp01_tbl3_exec_completed dp01_tbl3_exec_completed: @ 811E314 push {r4,lr} sub sp, 0x4 ldr r1, _0811E354 ldr r4, _0811E358 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0811E35C str r1, [r0] ldr r0, _0811E360 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0811E368 bl GetMultiplayerId mov r1, sp strb r0, [r1] movs r0, 0x2 movs r1, 0x4 mov r2, sp bl dp01_prepare_buffer_wireless_probably ldr r1, _0811E364 ldrb r0, [r4] lsls r0, 9 adds r0, r1 movs r1, 0x38 strb r1, [r0] b _0811E37A .align 2, 0 _0811E354: .4byte 0x03004330 _0811E358: .4byte 0x02024a60 _0811E35C: .4byte sub_811DA94 _0811E360: .4byte 0x020239f8 _0811E364: .4byte 0x02023a60 _0811E368: ldr r2, _0811E384 ldr r1, _0811E388 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, [r2] bics r0, r1 str r0, [r2] _0811E37A: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0811E384: .4byte 0x02024a64 _0811E388: .4byte gBitTable thumb_func_end dp01_tbl3_exec_completed thumb_func_start sub_811E38C sub_811E38C: @ 811E38C push {lr} ldr r0, _0811E3B0 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0811E3B4 adds r0, r1 ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0811E3AA bl dp01_tbl3_exec_completed _0811E3AA: pop {r0} bx r0 .align 2, 0 _0811E3B0: .4byte 0x02024a60 _0811E3B4: .4byte 0x02017810 thumb_func_end sub_811E38C thumb_func_start sub_811E3B8 sub_811E3B8: @ 811E3B8 push {lr} ldr r0, _0811E3DC ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0811E3E0 adds r0, r1 ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0811E3D6 bl dp01_tbl3_exec_completed _0811E3D6: pop {r0} bx r0 .align 2, 0 _0811E3DC: .4byte 0x02024a60 _0811E3E0: .4byte 0x02017810 thumb_func_end sub_811E3B8 thumb_func_start dp01t_00_3_getattr dp01t_00_3_getattr: @ 811E3E4 push {r4-r6,lr} sub sp, 0x100 movs r6, 0 ldr r1, _0811E410 ldr r0, _0811E414 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _0811E41C ldr r0, _0811E418 lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] mov r1, sp bl dp01_getattr_by_ch1_for_player_pokemon adds r6, r0, 0 b _0811E43E .align 2, 0 _0811E410: .4byte 0x02023a60 _0811E414: .4byte 0x02024a60 _0811E418: .4byte 0x02024a6a _0811E41C: ldrb r4, [r1] movs r5, 0 _0811E420: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _0811E436 lsls r0, r5, 24 lsrs r0, 24 mov r2, sp adds r1, r2, r6 bl dp01_getattr_by_ch1_for_player_pokemon adds r6, r0 _0811E436: lsrs r4, 1 adds r5, 0x1 cmp r5, 0x5 ble _0811E420 _0811E43E: lsls r1, r6, 16 lsrs r1, 16 movs r0, 0x1 mov r2, sp bl dp01_build_cmdbuf_x1D_1D_numargs_varargs bl dp01_tbl3_exec_completed add sp, 0x100 pop {r4-r6} pop {r0} bx r0 thumb_func_end dp01t_00_3_getattr thumb_func_start dp01_getattr_by_ch1_for_player_pokemon dp01_getattr_by_ch1_for_player_pokemon: @ 811E458 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x90 adds r7, r1, 0 lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 ldr r2, _0811E48C ldr r3, _0811E490 ldrb r0, [r3] lsls r0, 9 adds r1, r2, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0x3B bls _0811E482 bl _0811EBEE _0811E482: lsls r0, 2 ldr r1, _0811E494 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0811E48C: .4byte 0x02023a60 _0811E490: .4byte 0x02024a60 _0811E494: .4byte _0811E498 .align 2, 0 _0811E498: .4byte _0811E588 .4byte _0811E7AC .4byte _0811E7BC .4byte _0811E7CC .4byte _0811E834 .4byte _0811E834 .4byte _0811E834 .4byte _0811E834 .4byte _0811E850 .4byte _0811E88C .4byte _0811E88C .4byte _0811E88C .4byte _0811E88C .4byte _0811EBEE .4byte _0811EBEE .4byte _0811EBEE .4byte _0811EBEE .4byte _0811E8A8 .4byte _0811E8B8 .4byte _0811E8E8 .4byte _0811E8F8 .4byte _0811E908 .4byte _0811E918 .4byte _0811E928 .4byte _0811E938 .4byte _0811E948 .4byte _0811E958 .4byte _0811E968 .4byte _0811E978 .4byte _0811E988 .4byte _0811E998 .4byte _0811E9A8 .4byte _0811E9F8 .4byte _0811EA08 .4byte _0811EA18 .4byte _0811EA28 .4byte _0811EA38 .4byte _0811EA48 .4byte _0811EA58 .4byte _0811EA68 .4byte _0811EA78 .4byte _0811EAAC .4byte _0811EABC .4byte _0811EACC .4byte _0811EADC .4byte _0811EAEC .4byte _0811EAFC .4byte _0811EB0C .4byte _0811EB1C .4byte _0811EB3C .4byte _0811EB4C .4byte _0811EB5C .4byte _0811EB6C .4byte _0811EB7C .4byte _0811EB8C .4byte _0811EB9C .4byte _0811EBAC .4byte _0811EBBC .4byte _0811EBCC .4byte _0811EBDC _0811E588: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0811E79C adds r4, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField mov r1, sp strh r0, [r1] adds r0, r4, 0 movs r1, 0xC bl PokemonGetField mov r1, sp strh r0, [r1, 0x2E] movs r6, 0 add r0, sp, 0x24 mov r9, r0 movs r1, 0x3B add r1, sp mov r10, r1 mov r2, sp adds r2, 0x2B str r2, [sp, 0x80] mov r0, sp adds r0, 0x2A str r0, [sp, 0x7C] mov r1, sp adds r1, 0x68 str r1, [sp, 0x8C] adds r2, 0x5 str r2, [sp, 0x84] adds r0, 0x12 str r0, [sp, 0x88] mov r8, r4 add r4, sp, 0xC _0811E5D4: adds r1, r6, 0 adds r1, 0xD mov r0, r8 bl PokemonGetField strh r0, [r4] adds r1, r6, 0 adds r1, 0x11 mov r0, r8 bl PokemonGetField mov r2, r9 adds r1, r2, r6 strb r0, [r1] adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _0811E5D4 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0811E79C adds r4, r0 adds r0, r4, 0 movs r1, 0x15 bl PokemonGetField mov r1, r10 strb r0, [r1] adds r0, r4, 0 movs r1, 0x20 bl PokemonGetField ldr r2, [sp, 0x80] strb r0, [r2] adds r0, r4, 0 movs r1, 0x19 bl PokemonGetField str r0, [sp, 0x44] adds r0, r4, 0 movs r1, 0x27 bl PokemonGetField mov r3, sp movs r5, 0x1F ands r0, r5 ldrb r2, [r3, 0x14] movs r1, 0x20 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x14] adds r0, r4, 0 movs r1, 0x28 bl PokemonGetField mov r3, sp movs r6, 0x1F ands r0, r6 lsls r0, 5 ldrh r2, [r3, 0x14] ldr r1, _0811E7A0 ands r1, r2 orrs r1, r0 strh r1, [r3, 0x14] adds r0, r4, 0 movs r1, 0x29 bl PokemonGetField mov r3, sp ands r0, r5 lsls r0, 2 ldrb r2, [r3, 0x15] movs r1, 0x7D negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x15] adds r0, r4, 0 movs r1, 0x2A bl PokemonGetField movs r1, 0x1F ands r1, r0 lsls r1, 15 ldr r0, [sp, 0x14] ldr r2, _0811E7A4 ands r0, r2 orrs r0, r1 str r0, [sp, 0x14] adds r0, r4, 0 movs r1, 0x2B bl PokemonGetField mov r3, sp ands r0, r6 lsls r0, 4 ldrh r2, [r3, 0x16] ldr r1, _0811E7A8 ands r1, r2 orrs r1, r0 strh r1, [r3, 0x16] adds r0, r4, 0 movs r1, 0x2C bl PokemonGetField mov r3, sp ands r0, r5 lsls r0, 1 ldrb r2, [r3, 0x17] movs r1, 0x3F negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0 bl PokemonGetField str r0, [sp, 0x48] adds r0, r4, 0 movs r1, 0x37 bl PokemonGetField str r0, [sp, 0x4C] adds r0, r4, 0 movs r1, 0x38 bl PokemonGetField ldr r1, [sp, 0x7C] strb r0, [r1] adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField mov r1, sp strh r0, [r1, 0x28] adds r0, r4, 0 movs r1, 0x3A bl PokemonGetField mov r1, sp strh r0, [r1, 0x2C] adds r0, r4, 0 movs r1, 0x3B bl PokemonGetField mov r1, sp strh r0, [r1, 0x2] adds r0, r4, 0 movs r1, 0x3C bl PokemonGetField mov r1, sp strh r0, [r1, 0x4] adds r0, r4, 0 movs r1, 0x3D bl PokemonGetField mov r1, sp strh r0, [r1, 0x6] adds r0, r4, 0 movs r1, 0x3E bl PokemonGetField mov r1, sp strh r0, [r1, 0x8] adds r0, r4, 0 movs r1, 0x3F bl PokemonGetField mov r1, sp strh r0, [r1, 0xA] adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField mov r3, sp movs r1, 0x1 ands r0, r1 lsls r0, 6 ldrb r2, [r3, 0x17] movs r1, 0x41 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0x2E bl PokemonGetField mov r3, sp lsls r0, 7 ldrb r2, [r3, 0x17] movs r1, 0x7F ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0x1 bl PokemonGetField str r0, [sp, 0x54] adds r0, r4, 0 movs r1, 0x2 ldr r2, [sp, 0x8C] bl PokemonGetField ldr r0, [sp, 0x84] ldr r1, [sp, 0x8C] bl StringCopy10 adds r0, r4, 0 movs r1, 0x7 ldr r2, [sp, 0x88] bl PokemonGetField mov r2, sp movs r6, 0 _0811E78C: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0x57 bls _0811E78C b _0811EBEE .align 2, 0 _0811E79C: .4byte 0x03004360 _0811E7A0: .4byte 0xfffffc1f _0811E7A4: .4byte 0xfff07fff _0811E7A8: .4byte 0xfffffe0f _0811E7AC: movs r0, 0x64 muls r0, r5 ldr r1, _0811E7B8 adds r0, r1 movs r1, 0xB b _0811EB26 .align 2, 0 _0811E7B8: .4byte 0x03004360 _0811E7BC: movs r0, 0x64 muls r0, r5 ldr r1, _0811E7C8 adds r0, r1 movs r1, 0xC b _0811EB26 .align 2, 0 _0811E7C8: .4byte 0x03004360 _0811E7CC: movs r6, 0 add r2, sp, 0x58 mov r9, r2 add r0, sp, 0x60 mov r10, r0 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _0811E830 adds r4, r1, r0 mov r8, r9 _0811E7E2: adds r1, r6, 0 adds r1, 0xD adds r0, r4, 0 bl PokemonGetField mov r1, r8 strh r0, [r1] adds r1, r6, 0 adds r1, 0x11 adds r0, r4, 0 bl PokemonGetField mov r2, r10 adds r1, r2, r6 strb r0, [r1] movs r0, 0x2 add r8, r0 adds r6, 0x1 cmp r6, 0x3 ble _0811E7E2 movs r0, 0x64 muls r0, r5 ldr r1, _0811E830 adds r0, r1 movs r1, 0x15 bl PokemonGetField mov r1, r9 strb r0, [r1, 0xC] mov r2, r9 movs r6, 0 _0811E820: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0xF bls _0811E820 b _0811EBEE .align 2, 0 _0811E830: .4byte 0x03004360 _0811E834: movs r0, 0x64 muls r0, r5 ldr r1, _0811E84C adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x9 b _0811EB26 .align 2, 0 _0811E84C: .4byte 0x03004360 _0811E850: movs r6, 0 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r2, _0811E888 mov r8, r2 _0811E85C: adds r1, r6, 0 adds r1, 0x11 mov r2, r8 adds r0, r4, r2 bl PokemonGetField adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 cmp r6, 0x3 ble _0811E85C movs r0, 0x64 muls r0, r5 ldr r1, _0811E888 adds r0, r1 movs r1, 0x15 bl PokemonGetField adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 b _0811EBEE .align 2, 0 _0811E888: .4byte 0x03004360 _0811E88C: movs r0, 0x64 muls r0, r5 ldr r1, _0811E8A4 adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x8 b _0811EBE6 .align 2, 0 _0811E8A4: .4byte 0x03004360 _0811E8A8: movs r0, 0x64 muls r0, r5 ldr r1, _0811E8B4 adds r0, r1 movs r1, 0x1 b _0811E8C2 .align 2, 0 _0811E8B4: .4byte 0x03004360 _0811E8B8: movs r0, 0x64 muls r0, r5 ldr r1, _0811E8E4 adds r0, r1 movs r1, 0x19 _0811E8C2: bl PokemonGetField adds r1, r0, 0 strb r1, [r7] movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r0, 8 strb r0, [r7, 0x1] movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r0, 16 strb r0, [r7, 0x2] movs r6, 0x3 b _0811EBEE .align 2, 0 _0811E8E4: .4byte 0x03004360 _0811E8E8: movs r0, 0x64 muls r0, r5 ldr r1, _0811E8F4 adds r0, r1 movs r1, 0x1A b _0811EBE6 .align 2, 0 _0811E8F4: .4byte 0x03004360 _0811E8F8: movs r0, 0x64 muls r0, r5 ldr r1, _0811E904 adds r0, r1 movs r1, 0x1B b _0811EBE6 .align 2, 0 _0811E904: .4byte 0x03004360 _0811E908: movs r0, 0x64 muls r0, r5 ldr r1, _0811E914 adds r0, r1 movs r1, 0x1C b _0811EBE6 .align 2, 0 _0811E914: .4byte 0x03004360 _0811E918: movs r0, 0x64 muls r0, r5 ldr r1, _0811E924 adds r0, r1 movs r1, 0x1D b _0811EBE6 .align 2, 0 _0811E924: .4byte 0x03004360 _0811E928: movs r0, 0x64 muls r0, r5 ldr r1, _0811E934 adds r0, r1 movs r1, 0x1E b _0811EBE6 .align 2, 0 _0811E934: .4byte 0x03004360 _0811E938: movs r0, 0x64 muls r0, r5 ldr r1, _0811E944 adds r0, r1 movs r1, 0x1F b _0811EBE6 .align 2, 0 _0811E944: .4byte 0x03004360 _0811E948: movs r0, 0x64 muls r0, r5 ldr r1, _0811E954 adds r0, r1 movs r1, 0x20 b _0811EBE6 .align 2, 0 _0811E954: .4byte 0x03004360 _0811E958: movs r0, 0x64 muls r0, r5 ldr r1, _0811E964 adds r0, r1 movs r1, 0x22 b _0811EBE6 .align 2, 0 _0811E964: .4byte 0x03004360 _0811E968: movs r0, 0x64 muls r0, r5 ldr r1, _0811E974 adds r0, r1 movs r1, 0x23 b _0811EBE6 .align 2, 0 _0811E974: .4byte 0x03004360 _0811E978: movs r0, 0x64 muls r0, r5 ldr r1, _0811E984 adds r0, r1 movs r1, 0x24 b _0811EBE6 .align 2, 0 _0811E984: .4byte 0x03004360 _0811E988: movs r0, 0x64 muls r0, r5 ldr r1, _0811E994 adds r0, r1 movs r1, 0x25 b _0811EBE6 .align 2, 0 _0811E994: .4byte 0x03004360 _0811E998: movs r0, 0x64 muls r0, r5 ldr r1, _0811E9A4 adds r0, r1 movs r1, 0x26 b _0811EBE6 .align 2, 0 _0811E9A4: .4byte 0x03004360 _0811E9A8: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0811E9F4 adds r4, r0 adds r0, r4, 0 movs r1, 0x27 bl PokemonGetField strb r0, [r7] adds r0, r4, 0 movs r1, 0x28 bl PokemonGetField strb r0, [r7, 0x1] adds r0, r4, 0 movs r1, 0x29 bl PokemonGetField strb r0, [r7, 0x2] adds r0, r4, 0 movs r1, 0x2A bl PokemonGetField strb r0, [r7, 0x3] adds r0, r4, 0 movs r1, 0x2B bl PokemonGetField strb r0, [r7, 0x4] adds r0, r4, 0 movs r1, 0x2C bl PokemonGetField strb r0, [r7, 0x5] movs r6, 0x6 b _0811EBEE .align 2, 0 _0811E9F4: .4byte 0x03004360 _0811E9F8: movs r0, 0x64 muls r0, r5 ldr r1, _0811EA04 adds r0, r1 movs r1, 0x27 b _0811EBE6 .align 2, 0 _0811EA04: .4byte 0x03004360 _0811EA08: movs r0, 0x64 muls r0, r5 ldr r1, _0811EA14 adds r0, r1 movs r1, 0x28 b _0811EBE6 .align 2, 0 _0811EA14: .4byte 0x03004360 _0811EA18: movs r0, 0x64 muls r0, r5 ldr r1, _0811EA24 adds r0, r1 movs r1, 0x29 b _0811EBE6 .align 2, 0 _0811EA24: .4byte 0x03004360 _0811EA28: movs r0, 0x64 muls r0, r5 ldr r1, _0811EA34 adds r0, r1 movs r1, 0x2A b _0811EBE6 .align 2, 0 _0811EA34: .4byte 0x03004360 _0811EA38: movs r0, 0x64 muls r0, r5 ldr r1, _0811EA44 adds r0, r1 movs r1, 0x2B b _0811EBE6 .align 2, 0 _0811EA44: .4byte 0x03004360 _0811EA48: movs r0, 0x64 muls r0, r5 ldr r1, _0811EA54 adds r0, r1 movs r1, 0x2C b _0811EBE6 .align 2, 0 _0811EA54: .4byte 0x03004360 _0811EA58: movs r0, 0x64 muls r0, r5 ldr r1, _0811EA64 adds r0, r1 movs r1, 0 b _0811EA82 .align 2, 0 _0811EA64: .4byte 0x03004360 _0811EA68: movs r0, 0x64 muls r0, r5 ldr r1, _0811EA74 adds r0, r1 movs r1, 0x9 b _0811EB26 .align 2, 0 _0811EA74: .4byte 0x03004360 _0811EA78: movs r0, 0x64 muls r0, r5 ldr r1, _0811EAA8 adds r0, r1 movs r1, 0x37 _0811EA82: bl PokemonGetField adds r1, r0, 0 strb r1, [r7] movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r0, 8 strb r0, [r7, 0x1] movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r0, 16 strb r0, [r7, 0x2] lsrs r0, r1, 24 strb r0, [r7, 0x3] movs r6, 0x4 b _0811EBEE .align 2, 0 _0811EAA8: .4byte 0x03004360 _0811EAAC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EAB8 adds r0, r1 movs r1, 0x38 b _0811EBE6 .align 2, 0 _0811EAB8: .4byte 0x03004360 _0811EABC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EAC8 adds r0, r1 movs r1, 0x39 b _0811EB26 .align 2, 0 _0811EAC8: .4byte 0x03004360 _0811EACC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EAD8 adds r0, r1 movs r1, 0x3A b _0811EB26 .align 2, 0 _0811EAD8: .4byte 0x03004360 _0811EADC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EAE8 adds r0, r1 movs r1, 0x3B b _0811EB26 .align 2, 0 _0811EAE8: .4byte 0x03004360 _0811EAEC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EAF8 adds r0, r1 movs r1, 0x3C b _0811EB26 .align 2, 0 _0811EAF8: .4byte 0x03004360 _0811EAFC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EB08 adds r0, r1 movs r1, 0x3D b _0811EB26 .align 2, 0 _0811EB08: .4byte 0x03004360 _0811EB0C: movs r0, 0x64 muls r0, r5 ldr r1, _0811EB18 adds r0, r1 movs r1, 0x3E b _0811EB26 .align 2, 0 _0811EB18: .4byte 0x03004360 _0811EB1C: movs r0, 0x64 muls r0, r5 ldr r1, _0811EB38 adds r0, r1 movs r1, 0x3F _0811EB26: bl PokemonGetField lsls r0, 16 lsrs r0, 16 strb r0, [r7] lsrs r0, 8 strb r0, [r7, 0x1] movs r6, 0x2 b _0811EBEE .align 2, 0 _0811EB38: .4byte 0x03004360 _0811EB3C: movs r0, 0x64 muls r0, r5 ldr r1, _0811EB48 adds r0, r1 movs r1, 0x16 b _0811EBE6 .align 2, 0 _0811EB48: .4byte 0x03004360 _0811EB4C: movs r0, 0x64 muls r0, r5 ldr r1, _0811EB58 adds r0, r1 movs r1, 0x17 b _0811EBE6 .align 2, 0 _0811EB58: .4byte 0x03004360 _0811EB5C: movs r0, 0x64 muls r0, r5 ldr r1, _0811EB68 adds r0, r1 movs r1, 0x18 b _0811EBE6 .align 2, 0 _0811EB68: .4byte 0x03004360 _0811EB6C: movs r0, 0x64 muls r0, r5 ldr r1, _0811EB78 adds r0, r1 movs r1, 0x21 b _0811EBE6 .align 2, 0 _0811EB78: .4byte 0x03004360 _0811EB7C: movs r0, 0x64 muls r0, r5 ldr r1, _0811EB88 adds r0, r1 movs r1, 0x2F b _0811EBE6 .align 2, 0 _0811EB88: .4byte 0x03004360 _0811EB8C: movs r0, 0x64 muls r0, r5 ldr r1, _0811EB98 adds r0, r1 movs r1, 0x30 b _0811EBE6 .align 2, 0 _0811EB98: .4byte 0x03004360 _0811EB9C: movs r0, 0x64 muls r0, r5 ldr r1, _0811EBA8 adds r0, r1 movs r1, 0x32 b _0811EBE6 .align 2, 0 _0811EBA8: .4byte 0x03004360 _0811EBAC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EBB8 adds r0, r1 movs r1, 0x33 b _0811EBE6 .align 2, 0 _0811EBB8: .4byte 0x03004360 _0811EBBC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EBC8 adds r0, r1 movs r1, 0x34 b _0811EBE6 .align 2, 0 _0811EBC8: .4byte 0x03004360 _0811EBCC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EBD8 adds r0, r1 movs r1, 0x35 b _0811EBE6 .align 2, 0 _0811EBD8: .4byte 0x03004360 _0811EBDC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EC00 adds r0, r1 movs r1, 0x36 _0811EBE6: bl PokemonGetField strb r0, [r7] movs r6, 0x1 _0811EBEE: adds r0, r6, 0 add sp, 0x90 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0811EC00: .4byte 0x03004360 thumb_func_end dp01_getattr_by_ch1_for_player_pokemon thumb_func_start sub_811EC04 sub_811EC04: @ 811EC04 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_811EC04 thumb_func_start sub_811EC10 sub_811EC10: @ 811EC10 push {r4,r5,lr} ldr r1, _0811EC34 ldr r0, _0811EC38 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _0811EC40 ldr r0, _0811EC3C lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] bl sub_811EC68 b _0811EC5E .align 2, 0 _0811EC34: .4byte 0x02023a60 _0811EC38: .4byte 0x02024a60 _0811EC3C: .4byte 0x02024a6a _0811EC40: ldrb r4, [r1] movs r5, 0 _0811EC44: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _0811EC52 adds r0, r5, 0 bl sub_811EC68 _0811EC52: lsrs r4, 1 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _0811EC44 _0811EC5E: bl dp01_tbl3_exec_completed pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_811EC10 thumb_func_start sub_811EC68 sub_811EC68: @ 811EC68 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0811ECA0 ldrb r0, [r0] lsls r0, 9 ldr r2, _0811ECA4 adds r3, r0, r2 adds r6, r3, 0 subs r1, r2, 0x2 adds r0, r1 ldrb r0, [r0] adds r7, r2, 0 cmp r0, 0x3B bls _0811EC94 bl _0811F62E _0811EC94: lsls r0, 2 ldr r1, _0811ECA8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0811ECA0: .4byte 0x02024a60 _0811ECA4: .4byte 0x02023a63 _0811ECA8: .4byte _0811ECAC .align 2, 0 _0811ECAC: .4byte _0811ED9C .4byte _0811EF34 .4byte _0811EF54 .4byte _0811EF74 .4byte _0811EFCC .4byte _0811EFCC .4byte _0811EFCC .4byte _0811EFCC .4byte _0811EFF4 .4byte _0811F058 .4byte _0811F058 .4byte _0811F058 .4byte _0811F058 .4byte _0811F62E .4byte _0811F62E .4byte _0811F62E .4byte _0811F62E .4byte _0811F088 .4byte _0811F0A8 .4byte _0811F0C8 .4byte _0811F0E8 .4byte _0811F108 .4byte _0811F128 .4byte _0811F148 .4byte _0811F168 .4byte _0811F188 .4byte _0811F1A8 .4byte _0811F1C8 .4byte _0811F1E8 .4byte _0811F208 .4byte _0811F228 .4byte _0811F248 .4byte _0811F2B8 .4byte _0811F2D8 .4byte _0811F2F8 .4byte _0811F318 .4byte _0811F338 .4byte _0811F358 .4byte _0811F378 .4byte _0811F398 .4byte _0811F3B8 .4byte _0811F3D8 .4byte _0811F3F8 .4byte _0811F418 .4byte _0811F438 .4byte _0811F458 .4byte _0811F478 .4byte _0811F498 .4byte _0811F4B8 .4byte _0811F4D8 .4byte _0811F4F8 .4byte _0811F518 .4byte _0811F538 .4byte _0811F558 .4byte _0811F578 .4byte _0811F598 .4byte _0811F5B8 .4byte _0811F5D8 .4byte _0811F5F8 .4byte _0811F618 _0811ED9C: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0811EF30 adds r4, r0 adds r0, r4, 0 movs r1, 0xB adds r2, r6, 0 bl pokemon_setattr adds r2, r6, 0 adds r2, 0x2E adds r0, r4, 0 movs r1, 0xC bl pokemon_setattr movs r0, 0 mov r8, r0 movs r0, 0x3B adds r0, r6 mov r10, r0 adds r0, r6, 0 adds r0, 0x2B str r0, [sp, 0x20] adds r0, 0x19 str r0, [sp, 0x28] adds r0, 0x4 str r0, [sp, 0x2C] adds r0, 0x4 str r0, [sp, 0x30] subs r0, 0x22 str r0, [sp, 0x1C] subs r0, 0x2 str r0, [sp, 0x18] adds r0, 0x4 str r0, [sp, 0x24] adds r0, r6, 0x2 str r0, [sp, 0x4] adds r0, r6, 0x4 str r0, [sp, 0x8] adds r0, r6, 0x6 str r0, [sp, 0xC] adds r0, 0x2 str r0, [sp, 0x10] adds r0, 0x2 str r0, [sp, 0x14] mov r9, r4 adds r7, r6, 0 adds r7, 0x24 adds r4, r6, 0 adds r4, 0xC _0811EE02: mov r1, r8 adds r1, 0xD mov r0, r9 adds r2, r4, 0 bl pokemon_setattr mov r1, r8 adds r1, 0x11 mov r0, r9 adds r2, r7, 0 bl pokemon_setattr adds r7, 0x1 adds r4, 0x2 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x3 ble _0811EE02 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0811EF30 adds r4, r0 adds r0, r4, 0 movs r1, 0x15 mov r2, r10 bl pokemon_setattr adds r0, r4, 0 movs r1, 0x20 ldr r2, [sp, 0x20] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x19 ldr r2, [sp, 0x28] bl pokemon_setattr ldrb r0, [r6, 0x14] lsls r0, 27 lsrs r0, 27 mov r1, sp strb r0, [r1] adds r0, r4, 0 movs r1, 0x27 mov r2, sp bl pokemon_setattr mov r1, sp ldrh r0, [r6, 0x14] lsls r0, 22 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x28 mov r2, sp bl pokemon_setattr mov r1, sp ldrb r0, [r6, 0x15] lsls r0, 25 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x29 mov r2, sp bl pokemon_setattr mov r1, sp ldr r0, [r6, 0x14] lsls r0, 12 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2A mov r2, sp bl pokemon_setattr mov r1, sp ldrh r0, [r6, 0x16] lsls r0, 23 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2B mov r2, sp bl pokemon_setattr mov r1, sp ldrb r0, [r6, 0x17] lsls r0, 26 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2C mov r2, sp bl pokemon_setattr adds r0, r4, 0 movs r1, 0 ldr r2, [sp, 0x2C] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x37 ldr r2, [sp, 0x30] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x38 ldr r2, [sp, 0x1C] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x39 ldr r2, [sp, 0x18] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3A ldr r2, [sp, 0x24] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3B ldr r2, [sp, 0x4] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3C ldr r2, [sp, 0x8] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3D ldr r2, [sp, 0xC] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3E ldr r2, [sp, 0x10] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3F ldr r2, [sp, 0x14] bl pokemon_setattr b _0811F62E .align 2, 0 _0811EF30: .4byte 0x03004360 _0811EF34: movs r0, 0x64 muls r0, r5 ldr r1, _0811EF4C adds r0, r1 ldr r1, _0811EF50 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0xB bl pokemon_setattr b _0811F62E .align 2, 0 _0811EF4C: .4byte 0x03004360 _0811EF50: .4byte 0x02024a60 _0811EF54: movs r0, 0x64 muls r0, r5 ldr r1, _0811EF6C adds r0, r1 ldr r1, _0811EF70 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0xC bl pokemon_setattr b _0811F62E .align 2, 0 _0811EF6C: .4byte 0x03004360 _0811EF70: .4byte 0x02024a60 _0811EF74: movs r0, 0 mov r8, r0 movs r0, 0xC adds r0, r3 mov r9, r0 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _0811EFC8 adds r7, r1, r0 adds r6, r3, 0 adds r6, 0x8 adds r4, r3, 0 _0811EF8E: mov r1, r8 adds r1, 0xD adds r0, r7, 0 adds r2, r4, 0 bl pokemon_setattr mov r1, r8 adds r1, 0x11 adds r0, r7, 0 adds r2, r6, 0 bl pokemon_setattr adds r6, 0x1 adds r4, 0x2 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x3 ble _0811EF8E movs r0, 0x64 muls r0, r5 ldr r1, _0811EFC8 adds r0, r1 movs r1, 0x15 mov r2, r9 bl pokemon_setattr b _0811F62E .align 2, 0 _0811EFC8: .4byte 0x03004360 _0811EFCC: movs r0, 0x64 muls r0, r5 ldr r1, _0811EFE8 adds r0, r1 ldr r3, _0811EFEC ldr r1, _0811EFF0 ldrb r2, [r1] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x9 b _0811F070 .align 2, 0 _0811EFE8: .4byte 0x03004360 _0811EFEC: .4byte 0x02023a60 _0811EFF0: .4byte 0x02024a60 _0811EFF4: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0811F050 adds r4, r0 ldr r5, _0811F054 ldrb r2, [r5] lsls r2, 9 adds r2, r7 adds r0, r4, 0 movs r1, 0x11 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x1 adds r2, r0 adds r0, r4, 0 movs r1, 0x12 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x2 adds r2, r0 adds r0, r4, 0 movs r1, 0x13 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x3 adds r2, r0 adds r0, r4, 0 movs r1, 0x14 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x4 adds r2, r0 adds r0, r4, 0 movs r1, 0x15 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F050: .4byte 0x03004360 _0811F054: .4byte 0x02024a60 _0811F058: movs r0, 0x64 muls r0, r5 ldr r1, _0811F07C adds r0, r1 ldr r3, _0811F080 ldr r1, _0811F084 ldrb r2, [r1] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x8 _0811F070: adds r3, 0x3 adds r2, r3 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F07C: .4byte 0x03004360 _0811F080: .4byte 0x02023a60 _0811F084: .4byte 0x02024a60 _0811F088: movs r0, 0x64 muls r0, r5 ldr r1, _0811F0A0 adds r0, r1 ldr r1, _0811F0A4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F0A0: .4byte 0x03004360 _0811F0A4: .4byte 0x02024a60 _0811F0A8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F0C0 adds r0, r1 ldr r1, _0811F0C4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x19 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F0C0: .4byte 0x03004360 _0811F0C4: .4byte 0x02024a60 _0811F0C8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F0E0 adds r0, r1 ldr r1, _0811F0E4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1A bl pokemon_setattr b _0811F62E .align 2, 0 _0811F0E0: .4byte 0x03004360 _0811F0E4: .4byte 0x02024a60 _0811F0E8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F100 adds r0, r1 ldr r1, _0811F104 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1B bl pokemon_setattr b _0811F62E .align 2, 0 _0811F100: .4byte 0x03004360 _0811F104: .4byte 0x02024a60 _0811F108: movs r0, 0x64 muls r0, r5 ldr r1, _0811F120 adds r0, r1 ldr r1, _0811F124 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1C bl pokemon_setattr b _0811F62E .align 2, 0 _0811F120: .4byte 0x03004360 _0811F124: .4byte 0x02024a60 _0811F128: movs r0, 0x64 muls r0, r5 ldr r1, _0811F140 adds r0, r1 ldr r1, _0811F144 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1D bl pokemon_setattr b _0811F62E .align 2, 0 _0811F140: .4byte 0x03004360 _0811F144: .4byte 0x02024a60 _0811F148: movs r0, 0x64 muls r0, r5 ldr r1, _0811F160 adds r0, r1 ldr r1, _0811F164 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1E bl pokemon_setattr b _0811F62E .align 2, 0 _0811F160: .4byte 0x03004360 _0811F164: .4byte 0x02024a60 _0811F168: movs r0, 0x64 muls r0, r5 ldr r1, _0811F180 adds r0, r1 ldr r1, _0811F184 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1F bl pokemon_setattr b _0811F62E .align 2, 0 _0811F180: .4byte 0x03004360 _0811F184: .4byte 0x02024a60 _0811F188: movs r0, 0x64 muls r0, r5 ldr r1, _0811F1A0 adds r0, r1 ldr r1, _0811F1A4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x20 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F1A0: .4byte 0x03004360 _0811F1A4: .4byte 0x02024a60 _0811F1A8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F1C0 adds r0, r1 ldr r1, _0811F1C4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x22 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F1C0: .4byte 0x03004360 _0811F1C4: .4byte 0x02024a60 _0811F1C8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F1E0 adds r0, r1 ldr r1, _0811F1E4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x23 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F1E0: .4byte 0x03004360 _0811F1E4: .4byte 0x02024a60 _0811F1E8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F200 adds r0, r1 ldr r1, _0811F204 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x24 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F200: .4byte 0x03004360 _0811F204: .4byte 0x02024a60 _0811F208: movs r0, 0x64 muls r0, r5 ldr r1, _0811F220 adds r0, r1 ldr r1, _0811F224 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x25 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F220: .4byte 0x03004360 _0811F224: .4byte 0x02024a60 _0811F228: movs r0, 0x64 muls r0, r5 ldr r1, _0811F240 adds r0, r1 ldr r1, _0811F244 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x26 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F240: .4byte 0x03004360 _0811F244: .4byte 0x02024a60 _0811F248: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0811F2B0 adds r4, r0 ldr r5, _0811F2B4 ldrb r2, [r5] lsls r2, 9 adds r2, r7 adds r0, r4, 0 movs r1, 0x27 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x1 adds r2, r0 adds r0, r4, 0 movs r1, 0x28 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x2 adds r2, r0 adds r0, r4, 0 movs r1, 0x29 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x3 adds r2, r0 adds r0, r4, 0 movs r1, 0x2A bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x4 adds r2, r0 adds r0, r4, 0 movs r1, 0x2B bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x5 adds r2, r0 adds r0, r4, 0 b _0811F368 .align 2, 0 _0811F2B0: .4byte 0x03004360 _0811F2B4: .4byte 0x02024a60 _0811F2B8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F2D0 adds r0, r1 ldr r1, _0811F2D4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x27 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F2D0: .4byte 0x03004360 _0811F2D4: .4byte 0x02024a60 _0811F2D8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F2F0 adds r0, r1 ldr r1, _0811F2F4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x28 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F2F0: .4byte 0x03004360 _0811F2F4: .4byte 0x02024a60 _0811F2F8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F310 adds r0, r1 ldr r1, _0811F314 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x29 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F310: .4byte 0x03004360 _0811F314: .4byte 0x02024a60 _0811F318: movs r0, 0x64 muls r0, r5 ldr r1, _0811F330 adds r0, r1 ldr r1, _0811F334 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2A bl pokemon_setattr b _0811F62E .align 2, 0 _0811F330: .4byte 0x03004360 _0811F334: .4byte 0x02024a60 _0811F338: movs r0, 0x64 muls r0, r5 ldr r1, _0811F350 adds r0, r1 ldr r1, _0811F354 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2B bl pokemon_setattr b _0811F62E .align 2, 0 _0811F350: .4byte 0x03004360 _0811F354: .4byte 0x02024a60 _0811F358: movs r0, 0x64 muls r0, r5 ldr r1, _0811F370 adds r0, r1 ldr r1, _0811F374 ldrb r2, [r1] lsls r2, 9 adds r2, r7 _0811F368: movs r1, 0x2C bl pokemon_setattr b _0811F62E .align 2, 0 _0811F370: .4byte 0x03004360 _0811F374: .4byte 0x02024a60 _0811F378: movs r0, 0x64 muls r0, r5 ldr r1, _0811F390 adds r0, r1 ldr r1, _0811F394 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F390: .4byte 0x03004360 _0811F394: .4byte 0x02024a60 _0811F398: movs r0, 0x64 muls r0, r5 ldr r1, _0811F3B0 adds r0, r1 ldr r1, _0811F3B4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x9 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F3B0: .4byte 0x03004360 _0811F3B4: .4byte 0x02024a60 _0811F3B8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F3D0 adds r0, r1 ldr r1, _0811F3D4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x37 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F3D0: .4byte 0x03004360 _0811F3D4: .4byte 0x02024a60 _0811F3D8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F3F0 adds r0, r1 ldr r1, _0811F3F4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x38 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F3F0: .4byte 0x03004360 _0811F3F4: .4byte 0x02024a60 _0811F3F8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F410 adds r0, r1 ldr r1, _0811F414 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x39 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F410: .4byte 0x03004360 _0811F414: .4byte 0x02024a60 _0811F418: movs r0, 0x64 muls r0, r5 ldr r1, _0811F430 adds r0, r1 ldr r1, _0811F434 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3A bl pokemon_setattr b _0811F62E .align 2, 0 _0811F430: .4byte 0x03004360 _0811F434: .4byte 0x02024a60 _0811F438: movs r0, 0x64 muls r0, r5 ldr r1, _0811F450 adds r0, r1 ldr r1, _0811F454 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3B bl pokemon_setattr b _0811F62E .align 2, 0 _0811F450: .4byte 0x03004360 _0811F454: .4byte 0x02024a60 _0811F458: movs r0, 0x64 muls r0, r5 ldr r1, _0811F470 adds r0, r1 ldr r1, _0811F474 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3C bl pokemon_setattr b _0811F62E .align 2, 0 _0811F470: .4byte 0x03004360 _0811F474: .4byte 0x02024a60 _0811F478: movs r0, 0x64 muls r0, r5 ldr r1, _0811F490 adds r0, r1 ldr r1, _0811F494 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3D bl pokemon_setattr b _0811F62E .align 2, 0 _0811F490: .4byte 0x03004360 _0811F494: .4byte 0x02024a60 _0811F498: movs r0, 0x64 muls r0, r5 ldr r1, _0811F4B0 adds r0, r1 ldr r1, _0811F4B4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3E bl pokemon_setattr b _0811F62E .align 2, 0 _0811F4B0: .4byte 0x03004360 _0811F4B4: .4byte 0x02024a60 _0811F4B8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F4D0 adds r0, r1 ldr r1, _0811F4D4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3F bl pokemon_setattr b _0811F62E .align 2, 0 _0811F4D0: .4byte 0x03004360 _0811F4D4: .4byte 0x02024a60 _0811F4D8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F4F0 adds r0, r1 ldr r1, _0811F4F4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x16 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F4F0: .4byte 0x03004360 _0811F4F4: .4byte 0x02024a60 _0811F4F8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F510 adds r0, r1 ldr r1, _0811F514 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x17 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F510: .4byte 0x03004360 _0811F514: .4byte 0x02024a60 _0811F518: movs r0, 0x64 muls r0, r5 ldr r1, _0811F530 adds r0, r1 ldr r1, _0811F534 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x18 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F530: .4byte 0x03004360 _0811F534: .4byte 0x02024a60 _0811F538: movs r0, 0x64 muls r0, r5 ldr r1, _0811F550 adds r0, r1 ldr r1, _0811F554 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x21 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F550: .4byte 0x03004360 _0811F554: .4byte 0x02024a60 _0811F558: movs r0, 0x64 muls r0, r5 ldr r1, _0811F570 adds r0, r1 ldr r1, _0811F574 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2F bl pokemon_setattr b _0811F62E .align 2, 0 _0811F570: .4byte 0x03004360 _0811F574: .4byte 0x02024a60 _0811F578: movs r0, 0x64 muls r0, r5 ldr r1, _0811F590 adds r0, r1 ldr r1, _0811F594 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x30 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F590: .4byte 0x03004360 _0811F594: .4byte 0x02024a60 _0811F598: movs r0, 0x64 muls r0, r5 ldr r1, _0811F5B0 adds r0, r1 ldr r1, _0811F5B4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x32 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F5B0: .4byte 0x03004360 _0811F5B4: .4byte 0x02024a60 _0811F5B8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F5D0 adds r0, r1 ldr r1, _0811F5D4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x33 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F5D0: .4byte 0x03004360 _0811F5D4: .4byte 0x02024a60 _0811F5D8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F5F0 adds r0, r1 ldr r1, _0811F5F4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x34 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F5F0: .4byte 0x03004360 _0811F5F4: .4byte 0x02024a60 _0811F5F8: movs r0, 0x64 muls r0, r5 ldr r1, _0811F610 adds r0, r1 ldr r1, _0811F614 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x35 bl pokemon_setattr b _0811F62E .align 2, 0 _0811F610: .4byte 0x03004360 _0811F614: .4byte 0x02024a60 _0811F618: movs r0, 0x64 muls r0, r5 ldr r1, _0811F658 adds r0, r1 ldr r1, _0811F65C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x36 bl pokemon_setattr _0811F62E: ldr r2, _0811F660 ldr r0, _0811F65C ldrb r1, [r0] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _0811F658 adds r0, r2 bl sub_80324F8 add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811F658: .4byte 0x03004360 _0811F65C: .4byte 0x02024a60 _0811F660: .4byte 0x02024a6a thumb_func_end sub_811EC68 thumb_func_start sub_811F664 sub_811F664: @ 811F664 push {r4-r7,lr} ldr r1, _0811F6C8 ldr r7, _0811F6CC ldrb r2, [r7] lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 adds r3, r1, 0 muls r3, r0 ldr r4, _0811F6D0 lsls r2, 9 adds r0, r4, 0x1 adds r0, r2, r0 ldrb r0, [r0] ldr r1, _0811F6D4 adds r0, r1 adds r5, r3, r0 movs r3, 0 adds r0, r4, 0x2 adds r2, r0 ldrb r2, [r2] cmp r3, r2 bcs _0811F6BC adds r6, r4, 0 adds r2, r7, 0 adds r4, r0, 0 _0811F69A: adds r1, r5, r3 ldrb r0, [r2] lsls r0, 9 adds r0, 0x3 adds r0, r3, r0 adds r0, r6 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 ldrb r0, [r2] lsls r0, 9 adds r0, r4 ldrb r0, [r0] cmp r3, r0 bcc _0811F69A _0811F6BC: bl dp01_tbl3_exec_completed pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0811F6C8: .4byte 0x02024a6a _0811F6CC: .4byte 0x02024a60 _0811F6D0: .4byte 0x02023a60 _0811F6D4: .4byte 0x03004360 thumb_func_end sub_811F664 thumb_func_start sub_811F6D8 sub_811F6D8: @ 811F6D8 push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, _0811F7CC mov r8, r0 ldr r6, _0811F7D0 ldrb r1, [r6] lsls r0, r1, 1 add r0, r8 ldrh r0, [r0] movs r5, 0x64 muls r0, r5 ldr r4, _0811F7D4 adds r0, r4 bl sub_80318FC ldrb r0, [r6] lsls r0, 1 add r0, r8 ldrh r0, [r0] muls r0, r5 adds r0, r4 movs r1, 0xB bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r6] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl gpu_pal_obj_decompress_and_apply ldr r0, _0811F7D8 mov r8, r0 ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldrb r0, [r6] bl sub_8077F68 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r6] bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r8 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite ldr r4, _0811F7DC ldrb r1, [r6] adds r1, r4 strb r0, [r1] ldr r5, _0811F7E0 ldrb r0, [r6] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _0811F7E4 strh r1, [r0, 0x24] ldrb r2, [r6] adds r0, r2, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x2E] ldrb r3, [r6] adds r0, r3, r4 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 lsls r3, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r2, [r6] adds r4, r2, r4 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _0811F7E8 adds r2, r1 ldrb r1, [r2] bl StartSpriteAnim ldr r1, _0811F7EC ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _0811F7F0 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811F7CC: .4byte 0x02024a6a _0811F7D0: .4byte 0x02024a60 _0811F7D4: .4byte 0x03004360 _0811F7D8: .4byte 0x02024e8c _0811F7DC: .4byte 0x02024be0 _0811F7E0: .4byte 0x02020004 _0811F7E4: .4byte 0x0000ff10 _0811F7E8: .4byte 0x02024e84 _0811F7EC: .4byte 0x03004330 _0811F7F0: .4byte sub_811DDE8 thumb_func_end sub_811F6D8 thumb_func_start sub_811F7F4 sub_811F7F4: @ 811F7F4 push {r4-r6,lr} ldr r5, _0811F84C ldrb r0, [r5] ldr r4, _0811F850 lsls r1, r0, 9 adds r6, r4, 0x2 adds r1, r6 ldrb r1, [r1] bl sub_8032AA8 ldr r2, _0811F854 ldrb r0, [r5] lsls r1, r0, 1 adds r1, r2 lsls r0, 9 adds r4, 0x1 adds r0, r4 ldrb r0, [r0] strh r0, [r1] ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _0811F858 adds r0, r2 bl sub_80318FC ldrb r0, [r5] lsls r1, r0, 9 adds r1, r6 ldrb r1, [r1] bl sub_811F864 ldr r1, _0811F85C ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _0811F860 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811F84C: .4byte 0x02024a60 _0811F850: .4byte 0x02023a60 _0811F854: .4byte 0x02024a6a _0811F858: .4byte 0x03004360 _0811F85C: .4byte 0x03004330 _0811F860: .4byte sub_811E1BC thumb_func_end sub_811F7F4 thumb_func_start sub_811F864 sub_811F864: @ 811F864 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_8032AA8 ldr r0, _0811F9A8 lsls r2, r6, 1 adds r2, r0 ldr r0, _0811F9AC lsls r1, r6, 9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] strh r0, [r2] ldrh r1, [r2] movs r0, 0x64 muls r0, r1 ldr r1, _0811F9B0 adds r0, r1 movs r1, 0xB bl PokemonGetField mov r8, r0 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r0, _0811F9B4 bl object_new_hidden_with_callback ldr r1, _0811F9B8 mov r9, r1 add r9, r6 mov r1, r9 strb r0, [r1] adds r0, r6, 0 bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl gpu_pal_obj_decompress_and_apply ldr r0, _0811F9BC mov r10, r0 adds r0, r6, 0 movs r1, 0x2 bl sub_8077ABC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 bl sub_8077F68 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r10 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite ldr r4, _0811F9C0 adds r4, r6, r4 strb r0, [r4] ldr r5, _0811F9C4 mov r0, r9 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r4] strh r1, [r0, 0x30] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x2E] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x32] ldrb r0, [r4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 lsls r3, r6, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _0811F9C8 adds r6, r1 ldrb r1, [r6] bl StartSpriteAnim ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _0811F9CC str r1, [r0] movs r0, 0 movs r1, 0xFF bl sub_8046400 mov r1, r9 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x2E] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811F9A8: .4byte 0x02024a6a _0811F9AC: .4byte 0x02023a60 _0811F9B0: .4byte 0x03004360 _0811F9B4: .4byte sub_80312F0 _0811F9B8: .4byte 0x0300434c _0811F9BC: .4byte 0x02024e8c _0811F9C0: .4byte 0x02024be0 _0811F9C4: .4byte 0x02020004 _0811F9C8: .4byte 0x02024e84 _0811F9CC: .4byte SpriteCallbackDummy thumb_func_end sub_811F864 thumb_func_start sub_811F9D0 sub_811F9D0: @ 811F9D0 push {r4-r6,lr} ldr r1, _0811FA00 ldr r6, _0811FA04 ldrb r2, [r6] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r3, [r0] cmp r3, 0 bne _0811FA14 lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r1, _0811FA08 adds r0, r1 strb r3, [r0, 0x4] ldr r1, _0811FA0C ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _0811FA10 str r1, [r0] b _0811FA4A .align 2, 0 _0811FA00: .4byte 0x02023a60 _0811FA04: .4byte 0x02024a60 _0811FA08: .4byte 0x02017810 _0811FA0C: .4byte 0x03004330 _0811FA10: .4byte sub_811FA5C _0811FA14: ldr r5, _0811FA50 adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _0811FA54 adds r0, r4 bl FreeSpriteOamMatrix ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldr r1, _0811FA58 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 bl dp01_tbl3_exec_completed _0811FA4A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811FA50: .4byte 0x02024be0 _0811FA54: .4byte 0x02020004 _0811FA58: .4byte 0x03004340 thumb_func_end sub_811F9D0 thumb_func_start sub_811FA5C sub_811FA5C: @ 811FA5C push {r4,r5,lr} ldr r5, _0811FA78 ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r4, _0811FA7C adds r3, r0, r4 ldrb r0, [r3, 0x4] cmp r0, 0 beq _0811FA80 cmp r0, 0x1 beq _0811FAAC b _0811FAD4 .align 2, 0 _0811FA78: .4byte 0x02024a60 _0811FA7C: .4byte 0x02017810 _0811FA80: lsls r0, r2, 2 adds r1, r4, 0 subs r1, 0x10 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0811FA9C adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _0811FA9C: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r4 movs r0, 0x1 strb r0, [r1, 0x4] b _0811FAD4 _0811FAAC: ldrb r1, [r3] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0811FAD4 strb r0, [r3, 0x4] ldrb r2, [r5] adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x1 bl move_anim_start_t4 ldr r1, _0811FADC ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _0811FAE0 str r1, [r0] _0811FAD4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811FADC: .4byte 0x03004330 _0811FAE0: .4byte sub_811DF34 thumb_func_end sub_811FA5C thumb_func_start sub_811FAE4 sub_811FAE4: @ 811FAE4 push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, _0811FB14 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0811FB24 ldr r6, _0811FB18 ldrb r0, [r6] bl battle_get_per_side_status movs r1, 0x2 ands r1, r0 ldr r5, _0811FB1C cmp r1, 0 beq _0811FB0A movs r5, 0x10 _0811FB0A: ldr r4, _0811FB20 ldrb r0, [r6] bl sub_803FC34 b _0811FB34 .align 2, 0 _0811FB14: .4byte 0x020239f8 _0811FB18: .4byte 0x02024a60 _0811FB1C: .4byte 0x0000fff0 _0811FB20: .4byte 0x03002970 _0811FB24: movs r5, 0 ldr r4, _0811FC08 bl GetMultiplayerId movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 _0811FB34: lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r4 ldrb r4, [r1, 0x13] ldr r6, _0811FC0C ldrb r1, [r6] adds r0, r4, 0 bl sub_8031AF4 ldrb r0, [r6] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_803C5A0 ldr r0, _0811FC10 mov r8, r0 lsls r5, 16 movs r0, 0xA0 lsls r0, 15 adds r5, r0 asrs r5, 16 ldr r0, _0811FC14 lsls r4, 2 adds r4, r0 ldrb r0, [r4] movs r4, 0x8 subs r4, r0 lsls r4, 18 movs r0, 0xA0 lsls r0, 15 adds r4, r0 asrs r4, 16 ldrb r0, [r6] bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r8 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite ldr r5, _0811FC18 ldrb r1, [r6] adds r1, r5 strb r0, [r1] ldr r4, _0811FC1C ldrb r3, [r6] adds r0, r3, r5 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 lsls r3, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xF0 strh r1, [r0, 0x24] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _0811FC20 strh r1, [r0, 0x2E] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _0811FC24 str r1, [r0] ldr r1, _0811FC28 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _0811FC2C str r1, [r0] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811FC08: .4byte 0x03002970 _0811FC0C: .4byte 0x02024a60 _0811FC10: .4byte 0x02024e8c _0811FC14: .4byte gTrainerBackPicCoords _0811FC18: .4byte 0x02024be0 _0811FC1C: .4byte 0x02020004 _0811FC20: .4byte 0x0000fffe _0811FC24: .4byte sub_80313A0 _0811FC28: .4byte 0x03004330 _0811FC2C: .4byte sub_811DAE4 thumb_func_end sub_811FAE4 thumb_func_start sub_811FC30 sub_811FC30: @ 811FC30 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_811FC30 thumb_func_start sub_811FC3C sub_811FC3C: @ 811FC3C push {r4-r6,lr} ldr r6, _0811FCC8 ldr r4, _0811FCCC ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _0811FCD0 adds r0, r5 bl oamt_add_pos2_onto_pos1 ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x23 strh r1, [r0, 0x2E] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _0811FCD4 strh r1, [r0, 0x32] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r0, 0x22] strh r1, [r0, 0x36] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _0811FCD8 str r1, [r0] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _0811FCDC bl oamt_set_x3A_32 ldr r1, _0811FCE0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0811FCE4 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811FCC8: .4byte 0x02024be0 _0811FCCC: .4byte 0x02024a60 _0811FCD0: .4byte 0x02020004 _0811FCD4: .4byte 0x0000ffd8 _0811FCD8: .4byte sub_8078B34 _0811FCDC: .4byte SpriteCallbackDummy _0811FCE0: .4byte 0x03004330 _0811FCE4: .4byte sub_811DB1C thumb_func_end sub_811FC3C thumb_func_start sub_811FCE8 sub_811FCE8: @ 811FCE8 push {r4,r5,lr} ldr r5, _0811FD2C ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r4, _0811FD30 adds r3, r0, r4 ldrb r0, [r3, 0x4] cmp r0, 0 bne _0811FD34 lsls r0, r2, 2 adds r1, r4, 0 subs r1, 0x10 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0811FD1A adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _0811FD1A: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r1, 0x4] adds r0, 0x1 strb r0, [r1, 0x4] b _0811FDAA .align 2, 0 _0811FD2C: .4byte 0x02024a60 _0811FD30: .4byte 0x02017810 _0811FD34: ldrb r1, [r3] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0811FDAA strb r4, [r3, 0x4] ldr r2, _0811FDB0 ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _0811FDB4 adds r0, r2 bl sub_80324F8 movs r1, 0x40 negs r1, r1 movs r0, 0x10 bl audio_play_and_stuff ldr r2, _0811FDB8 ldr r3, _0811FDBC ldrb r0, [r5] adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r4, [r0, 0x30] ldrb r0, [r5] adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x5 strh r1, [r0, 0x32] ldrb r0, [r5] adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _0811FDC0 str r1, [r0] ldr r1, _0811FDC4 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _0811FDC8 str r1, [r0] _0811FDAA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0811FDB0: .4byte 0x02024a6a _0811FDB4: .4byte 0x03004360 _0811FDB8: .4byte 0x02020004 _0811FDBC: .4byte 0x02024be0 _0811FDC0: .4byte sub_80105EC _0811FDC4: .4byte 0x03004330 _0811FDC8: .4byte sub_811DE98 thumb_func_end sub_811FCE8 thumb_func_start sub_811FDCC sub_811FDCC: @ 811FDCC push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_811FDCC thumb_func_start sub_811FDD8 sub_811FDD8: @ 811FDD8 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_811FDD8 thumb_func_start sub_811FDE4 sub_811FDE4: @ 811FDE4 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_811FDE4 thumb_func_start sub_811FDF0 sub_811FDF0: @ 811FDF0 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_811FDF0 thumb_func_start sub_811FDFC sub_811FDFC: @ 811FDFC push {r4-r6,lr} ldr r6, _0811FEE0 ldrb r0, [r6] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 beq _0811FE0E b _0811FF1E _0811FE0E: ldr r0, _0811FEE4 mov r12, r0 ldrb r2, [r6] lsls r2, 9 adds r0, 0x1 adds r0, r2, r0 ldrb r0, [r0] mov r1, r12 adds r1, 0x2 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 ldr r5, _0811FEE8 mov r1, r12 adds r1, 0x3 adds r2, r1 ldrb r1, [r2] strb r1, [r5] ldr r4, _0811FEEC ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x4 adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0x5 adds r2, r1 ldrb r1, [r2] lsls r1, 8 orrs r3, r1 strh r3, [r4] ldr r4, _0811FEF0 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x6 adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0x7 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 8 orrs r3, r1 mov r1, r12 adds r1, 0x8 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 16 orrs r3, r1 mov r1, r12 adds r1, 0x9 adds r2, r1 ldrb r1, [r2] lsls r1, 24 orrs r3, r1 str r3, [r4] ldr r3, _0811FEF4 ldrb r1, [r6] lsls r1, 9 mov r2, r12 adds r2, 0xA adds r1, r2 ldrb r1, [r1] strb r1, [r3] ldr r4, _0811FEF8 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0xC adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0xD adds r2, r1 ldrb r1, [r2] lsls r1, 8 orrs r3, r1 strh r3, [r4] ldr r3, _0811FEFC ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x10 adds r2, r1 str r2, [r3] ldr r3, _0811FF00 ldrb r1, [r6] lsls r1, 2 adds r1, r3 ldr r2, [r2] str r2, [r1] ldrb r1, [r5] bl sub_8031720 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _0811FF04 bl dp01_tbl3_exec_completed b _0811FF1E .align 2, 0 _0811FEE0: .4byte 0x02024a60 _0811FEE4: .4byte 0x02023a60 _0811FEE8: .4byte 0x0202f7c4 _0811FEEC: .4byte 0x0202f7bc _0811FEF0: .4byte 0x0202f7b8 _0811FEF4: .4byte 0x0202f7be _0811FEF8: .4byte 0x0202f7c0 _0811FEFC: .4byte 0x0202f7b4 _0811FF00: .4byte 0x02024e70 _0811FF04: ldrb r1, [r6] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0811FF24 adds r0, r1 strb r2, [r0, 0x4] ldr r1, _0811FF28 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _0811FF2C str r1, [r0] _0811FF1E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0811FF24: .4byte 0x02017810 _0811FF28: .4byte 0x03004330 _0811FF2C: .4byte sub_811FF30 thumb_func_end sub_811FDFC thumb_func_start sub_811FF30 sub_811FF30: @ 811FF30 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r2, _0811FF74 ldr r5, _0811FF78 ldrb r3, [r5] lsls r1, r3, 9 adds r0, r2, 0x1 mov r9, r0 adds r0, r1, r0 ldrb r4, [r0] adds r6, r2, 0x2 mov r8, r6 adds r0, r1, r6 ldrb r0, [r0] lsls r0, 8 orrs r4, r0 adds r2, 0xB adds r1, r2 ldrb r7, [r1] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r6, _0811FF7C adds r0, r6 ldrb r2, [r0, 0x4] cmp r2, 0x1 beq _0811FFBE cmp r2, 0x1 bgt _0811FF80 cmp r2, 0 beq _0811FF8A b _08120088 .align 2, 0 _0811FF74: .4byte 0x02023a60 _0811FF78: .4byte 0x02024a60 _0811FF7C: .4byte 0x02017810 _0811FF80: cmp r2, 0x2 beq _0811FFE4 cmp r2, 0x3 beq _08120050 b _08120088 _0811FF8A: lsls r1, r3, 2 adds r0, r6, 0 subs r0, 0x10 adds r1, r0 ldrb r2, [r1] movs r0, 0xC ands r0, r2 cmp r0, 0x4 bne _0811FFAE movs r0, 0x8 orrs r0, r2 strb r0, [r1] ldrb r2, [r5] adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _0811FFAE: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 movs r0, 0x1 strb r0, [r1, 0x4] b _08120088 _0811FFBE: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08120088 movs r0, 0 bl sub_80326EC adds r0, r4, 0 bl move_anim_start_t1 ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 movs r0, 0x2 strb r0, [r1, 0x4] b _08120088 _0811FFE4: ldr r0, _08120040 ldr r0, [r0] bl _call_via_r0 ldr r0, _08120044 ldrb r0, [r0] cmp r0, 0 bne _08120088 movs r0, 0x1 bl sub_80326EC ldrb r2, [r5] lsls r0, r2, 2 adds r4, r6, 0 subs r4, 0x10 adds r0, r4 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0812002C cmp r7, 0x1 bhi _0812002C adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 bl move_anim_start_t4 ldrb r0, [r5] lsls r0, 2 adds r0, r4 ldrb r2, [r0] movs r1, 0x9 negs r1, r1 ands r1, r2 strb r1, [r0] _0812002C: ldr r0, _08120048 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0812004C adds r0, r1 movs r1, 0x3 strb r1, [r0, 0x4] b _08120088 .align 2, 0 _08120040: .4byte 0x0202f7ac _08120044: .4byte 0x0202f7b1 _08120048: .4byte 0x02024a60 _0812004C: .4byte 0x02017810 _08120050: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08120088 bl sub_8031F24 ldrb r0, [r5] lsls r2, r0, 9 mov r3, r9 adds r1, r2, r3 ldrb r1, [r1] add r2, r8 ldrb r2, [r2] lsls r2, 8 orrs r1, r2 bl sub_80324BC ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 strb r4, [r0, 0x4] bl dp01_tbl3_exec_completed _08120088: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_811FF30 thumb_func_start sub_8120094 sub_8120094: @ 8120094 push {r4,lr} sub sp, 0x4 ldr r0, _081200D8 movs r1, 0 strh r1, [r0] ldr r0, _081200DC strh r1, [r0] ldr r4, _081200E0 ldrb r0, [r4] lsls r0, 9 ldr r1, _081200E4 adds r0, r1 ldrh r0, [r0] bl sub_8120AA8 ldr r0, _081200E8 ldr r1, _081200EC movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r1, _081200F0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _081200F4 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _081200D8: .4byte 0x030042a4 _081200DC: .4byte 0x030042a0 _081200E0: .4byte 0x02024a60 _081200E4: .4byte 0x02023a62 _081200E8: .4byte 0x03004210 _081200EC: .4byte 0x020238cc _081200F0: .4byte 0x03004330 _081200F4: .4byte sub_811DFA0 thumb_func_end sub_8120094 thumb_func_start sub_81200F8 sub_81200F8: @ 81200F8 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_81200F8 thumb_func_start sub_8120104 sub_8120104: @ 8120104 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120104 thumb_func_start sub_8120110 sub_8120110: @ 8120110 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120110 thumb_func_start sub_812011C sub_812011C: @ 812011C push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_812011C thumb_func_start sub_8120128 sub_8120128: @ 8120128 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120128 thumb_func_start sub_8120134 sub_8120134: @ 8120134 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120134 thumb_func_start sub_8120140 sub_8120140: @ 8120140 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120140 thumb_func_start sub_812014C sub_812014C: @ 812014C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 movs r0, 0 bl load_gfxc_health_bar ldr r3, _081201C4 ldr r0, _081201C8 mov r9, r0 ldrb r4, [r0] lsls r2, r4, 9 adds r0, r3, 0x2 adds r0, r2, r0 ldrb r1, [r0] adds r3, 0x3 adds r2, r3 ldrb r0, [r2] lsls r0, 8 orrs r1, r0 lsls r1, 16 asrs r7, r1, 16 ldr r0, _081201CC cmp r7, r0 beq _081201DC ldr r6, _081201D0 lsls r0, r4, 1 adds r0, r6 ldrh r0, [r0] movs r5, 0x64 muls r0, r5 ldr r4, _081201D4 adds r0, r4 movs r1, 0x3A bl PokemonGetField mov r8, r0 mov r1, r9 ldrb r0, [r1] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 adds r0, r4 movs r1, 0x39 bl PokemonGetField adds r3, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r1, _081201D8 adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] mov r2, r8 bl sub_8043D84 b _08120206 .align 2, 0 _081201C4: .4byte 0x02023a60 _081201C8: .4byte 0x02024a60 _081201CC: .4byte 0x00007fff _081201D0: .4byte 0x02024a6a _081201D4: .4byte 0x03004360 _081201D8: .4byte 0x03004340 _081201DC: ldr r1, _08120224 lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08120228 adds r0, r1 movs r1, 0x3A bl PokemonGetField adds r2, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r1, _0812022C adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] movs r3, 0 bl sub_8043D84 _08120206: ldr r1, _08120230 ldr r0, _08120234 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _08120238 str r1, [r0] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08120224: .4byte 0x02024a6a _08120228: .4byte 0x03004360 _0812022C: .4byte 0x03004340 _08120230: .4byte 0x03004330 _08120234: .4byte 0x02024a60 _08120238: .4byte bx_t3_healthbar_update thumb_func_end sub_812014C thumb_func_start sub_812023C sub_812023C: @ 812023C push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_812023C thumb_func_start sub_8120248 sub_8120248: @ 8120248 push {r4,lr} ldr r4, _081202A0 ldrb r0, [r4] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _08120298 ldr r0, _081202A4 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] ldr r2, _081202A8 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _081202AC adds r1, r2 movs r2, 0x9 bl sub_8045A5C ldrb r0, [r4] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r0, _081202B0 adds r1, r0 ldrb r2, [r1] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r1, _081202B4 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _081202B8 str r1, [r0] _08120298: pop {r4} pop {r0} bx r0 .align 2, 0 _081202A0: .4byte 0x02024a60 _081202A4: .4byte 0x03004340 _081202A8: .4byte 0x02024a6a _081202AC: .4byte 0x03004360 _081202B0: .4byte 0x02017810 _081202B4: .4byte 0x03004330 _081202B8: .4byte sub_811E38C thumb_func_end sub_8120248 thumb_func_start sub_81202BC sub_81202BC: @ 81202BC push {r4,r5,lr} ldr r5, _08120314 ldrb r0, [r5] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _0812030C ldr r4, _08120318 ldrb r3, [r5] lsls r3, 9 adds r0, r4, 0x1 adds r0, r3, r0 ldrb r0, [r0] adds r1, r4, 0x2 adds r1, r3, r1 ldrb r1, [r1] adds r2, r4, 0x3 adds r2, r3, r2 ldrb r2, [r2] lsls r2, 8 orrs r1, r2 adds r2, r4, 0x4 adds r2, r3, r2 ldrb r2, [r2] lsls r2, 16 orrs r1, r2 adds r4, 0x5 adds r3, r4 ldrb r2, [r3] lsls r2, 24 orrs r1, r2 bl move_anim_start_t2_for_situation ldr r1, _0812031C ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08120320 str r1, [r0] _0812030C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08120314: .4byte 0x02024a60 _08120318: .4byte 0x02023a60 _0812031C: .4byte 0x03004330 _08120320: .4byte sub_811E38C thumb_func_end sub_81202BC thumb_func_start sub_8120324 sub_8120324: @ 8120324 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120324 thumb_func_start sub_8120330 sub_8120330: @ 8120330 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120330 thumb_func_start sub_812033C sub_812033C: @ 812033C push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_812033C thumb_func_start sub_8120348 sub_8120348: @ 8120348 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120348 thumb_func_start sub_8120354 sub_8120354: @ 8120354 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120354 thumb_func_start sub_8120360 sub_8120360: @ 8120360 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120360 thumb_func_start sub_812036C sub_812036C: @ 812036C push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_812036C thumb_func_start sub_8120378 sub_8120378: @ 8120378 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120378 thumb_func_start sub_8120384 sub_8120384: @ 8120384 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120384 thumb_func_start sub_8120390 sub_8120390: @ 8120390 push {lr} ldr r2, _081203A8 ldrb r1, [r2] movs r0, 0x80 negs r0, r0 ands r0, r1 strb r0, [r2] bl dp01_tbl3_exec_completed pop {r0} bx r0 .align 2, 0 _081203A8: .4byte 0x020238c8 thumb_func_end sub_8120390 thumb_func_start sub_81203AC sub_81203AC: @ 81203AC push {lr} ldr r3, _081203D8 ldr r1, _081203DC ldr r0, _081203E0 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] movs r1, 0x7F ands r1, r0 ldrb r2, [r3] movs r0, 0x80 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] bl dp01_tbl3_exec_completed pop {r0} bx r0 .align 2, 0 _081203D8: .4byte 0x020238c8 _081203DC: .4byte 0x02023a60 _081203E0: .4byte 0x02024a60 thumb_func_end sub_81203AC thumb_func_start sub_81203E4 sub_81203E4: @ 81203E4 push {lr} ldr r2, _081203F8 ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] bl dp01_tbl3_exec_completed pop {r0} bx r0 .align 2, 0 _081203F8: .4byte 0x020238c8 thumb_func_end sub_81203E4 thumb_func_start sub_81203FC sub_81203FC: @ 81203FC push {lr} ldr r3, _08120420 ldr r1, [r3] lsls r1, 24 lsrs r1, 31 movs r0, 0x1 eors r1, r0 lsls r1, 7 ldrb r2, [r3] movs r0, 0x7F ands r0, r2 orrs r0, r1 strb r0, [r3] bl dp01_tbl3_exec_completed pop {r0} bx r0 .align 2, 0 _08120420: .4byte 0x020238c8 thumb_func_end sub_81203FC thumb_func_start dp01t_29_3_blink dp01t_29_3_blink: @ 8120424 push {r4,lr} ldr r3, _0812044C ldr r2, _08120450 ldr r4, _08120454 ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _08120458 bl dp01_tbl3_exec_completed b _08120482 .align 2, 0 _0812044C: .4byte 0x02020004 _08120450: .4byte 0x02024be0 _08120454: .4byte 0x02024a60 _08120458: ldr r1, _08120488 movs r0, 0x1 strb r0, [r1] ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0 strh r1, [r0, 0x30] ldrb r0, [r4] bl sub_8047858 ldr r1, _0812048C ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08120490 str r1, [r0] _08120482: pop {r4} pop {r0} bx r0 .align 2, 0 _08120488: .4byte 0x02024e6d _0812048C: .4byte 0x03004330 _08120490: .4byte bx_blink_t3 thumb_func_end dp01t_29_3_blink thumb_func_start sub_8120494 sub_8120494: @ 8120494 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120494 thumb_func_start sub_81204A0 sub_81204A0: @ 81204A0 push {r4,lr} ldr r4, _081204DC ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 movs r3, 0x3F cmp r0, 0 bne _081204B4 movs r3, 0xC0 _081204B4: ldr r2, _081204E0 ldrb r1, [r4] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 lsls r1, r3, 24 asrs r1, 24 bl audio_play_and_stuff bl dp01_tbl3_exec_completed pop {r4} pop {r0} bx r0 .align 2, 0 _081204DC: .4byte 0x02024a60 _081204E0: .4byte 0x02023a60 thumb_func_end sub_81204A0 thumb_func_start sub_81204E4 sub_81204E4: @ 81204E4 push {lr} ldr r2, _0812050C ldr r0, _08120510 ldrb r1, [r0] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 bl fanfare_play bl dp01_tbl3_exec_completed pop {r0} bx r0 .align 2, 0 _0812050C: .4byte 0x02023a60 _08120510: .4byte 0x02024a60 thumb_func_end sub_81204E4 thumb_func_start sub_8120514 sub_8120514: @ 8120514 push {lr} ldr r1, _08120548 ldr r0, _0812054C ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08120550 adds r0, r1 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r0, 16 movs r1, 0x19 negs r1, r1 movs r2, 0x5 bl sub_80750B4 bl dp01_tbl3_exec_completed pop {r0} bx r0 .align 2, 0 _08120548: .4byte 0x02024a6a _0812054C: .4byte 0x02024a60 _08120550: .4byte 0x03004360 thumb_func_end sub_8120514 thumb_func_start dp01t_2E_3_battle_intro dp01t_2E_3_battle_intro: @ 8120554 push {lr} ldr r1, _0812057C ldr r0, _08120580 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] bl sub_80E43C0 ldr r2, _08120584 ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] bl dp01_tbl3_exec_completed pop {r0} bx r0 .align 2, 0 _0812057C: .4byte 0x02023a60 _08120580: .4byte 0x02024a60 _08120584: .4byte 0x02024de8 thumb_func_end dp01t_2E_3_battle_intro thumb_func_start sub_8120588 sub_8120588: @ 8120588 push {r4-r7,lr} mov r7, r8 push {r7} ldr r6, _081206DC ldr r7, _081206E0 ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _081206E4 adds r0, r5 bl oamt_add_pos2_onto_pos1 ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x32 strh r1, [r0, 0x2E] ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _081206E8 strh r1, [r0, 0x32] ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r0, 0x22] strh r1, [r0, 0x36] ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _081206EC str r1, [r0] ldrb r2, [r7] adds r0, r2, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x38] ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _081206F0 bl oamt_set_x3A_32 ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x1 bl StartSpriteAnim ldr r0, _081206F4 bl AllocSpritePalette adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _081206F8 mov r8, r0 ldrb r0, [r7] bl sub_803FC34 ldr r2, _081206FC lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x13] lsls r0, 3 add r0, r8 ldr r0, [r0] lsls r4, 4 movs r2, 0x80 lsls r2, 1 adds r1, r4, r2 movs r2, 0x20 bl LoadCompressedPalette ldrb r0, [r7] adds r0, r6 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r4 strb r0, [r1, 0x5] ldr r0, _08120700 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r4, _08120704 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 ldrb r0, [r7] strh r0, [r1, 0x8] ldrb r3, [r7] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r2, _08120708 adds r0, r2 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081206BA ldr r0, _0812070C adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 ldr r1, _08120710 str r1, [r0] _081206BA: adds r2, 0x30 ldrb r0, [r2, 0x9] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x9] ldr r1, _08120714 ldrb r0, [r7] lsls r0, 2 adds r0, r1 ldr r1, _08120718 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081206DC: .4byte 0x02024be0 _081206E0: .4byte 0x02024a60 _081206E4: .4byte 0x02020004 _081206E8: .4byte 0x0000ffd8 _081206EC: .4byte sub_8078B34 _081206F0: .4byte sub_8030E38 _081206F4: .4byte 0x0000d6f9 _081206F8: .4byte gTrainerBackPicPaletteTable _081206FC: .4byte 0x03002970 _08120700: .4byte sub_812071C _08120704: .4byte 0x03004b20 _08120708: .4byte 0x02017810 _0812070C: .4byte 0x02024e68 _08120710: .4byte sub_8044CA0 _08120714: .4byte 0x03004330 _08120718: .4byte nullsub_74 thumb_func_end sub_8120588 thumb_func_start sub_812071C sub_812071C: @ 812071C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, _08120744 lsls r0, 2 add r0, r8 lsls r0, 3 adds r1, r0, r1 ldrh r2, [r1, 0xA] movs r3, 0xA ldrsh r0, [r1, r3] cmp r0, 0x17 bgt _08120748 adds r0, r2, 0x1 strh r0, [r1, 0xA] b _08120804 .align 2, 0 _08120744: .4byte 0x03004b20 _08120748: ldr r7, _08120788 ldrb r0, [r7] mov r9, r0 ldrh r0, [r1, 0x8] strb r0, [r7] bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _08120768 ldr r0, _0812078C ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08120798 _08120768: ldr r0, _08120790 ldrb r1, [r7] lsls r2, r1, 9 adds r0, 0x1 adds r2, r0 ldr r0, _08120794 lsls r1, 1 adds r1, r0 ldrh r0, [r1] strb r0, [r2] ldrb r0, [r7] movs r1, 0 bl sub_811F864 b _081207EC .align 2, 0 _08120788: .4byte 0x02024a60 _0812078C: .4byte 0x020239f8 _08120790: .4byte 0x02023a60 _08120794: .4byte 0x02024a6a _08120798: ldr r4, _08120810 ldrb r0, [r7] lsls r1, r0, 9 adds r4, 0x1 adds r1, r4 ldr r5, _08120814 lsls r0, 1 adds r0, r5 ldrh r0, [r0] strb r0, [r1] ldrb r0, [r7] movs r1, 0 bl sub_811F864 ldrb r0, [r7] movs r6, 0x2 eors r0, r6 strb r0, [r7] ldrb r0, [r7] lsls r1, r0, 9 adds r1, r4 lsls r0, 1 adds r0, r5 ldrh r0, [r0] strb r0, [r1] ldrb r1, [r7] lsls r0, r1, 1 adds r0, r5 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _08120818 adds r0, r2 bl sub_80318FC ldrb r0, [r7] movs r1, 0 bl sub_811F864 ldrb r0, [r7] eors r0, r6 strb r0, [r7] _081207EC: ldr r1, _0812081C ldr r2, _08120820 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _08120824 str r1, [r0] mov r3, r9 strb r3, [r2] mov r0, r8 bl DestroyTask _08120804: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08120810: .4byte 0x02023a60 _08120814: .4byte 0x02024a6a _08120818: .4byte 0x03004360 _0812081C: .4byte 0x03004330 _08120820: .4byte 0x02024a60 _08120824: .4byte sub_811DCA0 thumb_func_end sub_812071C thumb_func_start dp01t_30_3_80EB11C dp01t_30_3_80EB11C: @ 8120828 push {r4-r6,lr} ldr r1, _08120850 ldr r0, _08120854 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08120858 adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08120858 bl dp01_tbl3_exec_completed b _081208C0 .align 2, 0 _08120850: .4byte 0x02023a60 _08120854: .4byte 0x02024a60 _08120858: ldr r5, _081208C8 ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r6, _081208CC adds r0, r6 ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] ldrb r0, [r5] lsls r3, r0, 9 ldr r4, _081208D0 adds r1, r3, r4 subs r2, r4, 0x3 adds r2, r3, r2 ldrb r2, [r2] subs r4, 0x2 adds r3, r4 ldrb r3, [r3] bl sub_8044804 ldr r2, _081208D4 ldrb r1, [r5] adds r1, r2 movs r2, 0 strb r0, [r1] ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 strb r2, [r0, 0x5] ldrb r1, [r5] lsls r0, r1, 9 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _081208B4 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x5D strb r1, [r0, 0x5] _081208B4: ldr r0, _081208D8 ldrb r1, [r5] lsls r1, 2 adds r1, r0 ldr r0, _081208DC str r0, [r1] _081208C0: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081208C8: .4byte 0x02024a60 _081208CC: .4byte 0x02017810 _081208D0: .4byte 0x02023a64 _081208D4: .4byte 0x02024e68 _081208D8: .4byte 0x03004330 _081208DC: .4byte sub_81208E0 thumb_func_end dp01t_30_3_80EB11C thumb_func_start sub_81208E0 sub_81208E0: @ 81208E0 push {r4,lr} ldr r4, _08120918 ldrb r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r3, _0812091C adds r0, r3 ldrb r1, [r0, 0x5] adds r2, r1, 0x1 strb r2, [r0, 0x5] lsls r1, 24 lsrs r1, 24 cmp r1, 0x5C bls _08120910 ldrb r0, [r4] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r3 movs r0, 0 strb r0, [r1, 0x5] bl dp01_tbl3_exec_completed _08120910: pop {r4} pop {r0} bx r0 .align 2, 0 _08120918: .4byte 0x02024a60 _0812091C: .4byte 0x02017810 thumb_func_end sub_81208E0 thumb_func_start sub_8120920 sub_8120920: @ 8120920 push {lr} ldr r0, _08120958 ldrb r3, [r0] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r1, _0812095C adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0812094E ldr r2, _08120960 ldr r0, _08120964 adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, _08120968 str r1, [r0] _0812094E: bl dp01_tbl3_exec_completed pop {r0} bx r0 .align 2, 0 _08120958: .4byte 0x02024a60 _0812095C: .4byte 0x02017810 _08120960: .4byte 0x03004b20 _08120964: .4byte 0x02024e68 _08120968: .4byte sub_8044CA0 thumb_func_end sub_8120920 thumb_func_start sub_812096C sub_812096C: @ 812096C push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_812096C thumb_func_start sub_8120978 sub_8120978: @ 8120978 push {r4,lr} ldr r4, _081209C8 ldrb r0, [r4] bl sub_8078874 lsls r0, 24 cmp r0, 0 beq _081209BE ldr r3, _081209CC ldr r0, _081209D0 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 ldr r0, _081209D4 lsls r1, 9 adds r0, 0x1 adds r1, r0 adds r2, 0x3E movs r0, 0x1 ldrb r1, [r1] ands r1, r0 lsls r1, 2 ldrb r3, [r2] movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] ldrb r0, [r4] bl sub_8031F88 _081209BE: bl dp01_tbl3_exec_completed pop {r4} pop {r0} bx r0 .align 2, 0 _081209C8: .4byte 0x02024a60 _081209CC: .4byte 0x02020004 _081209D0: .4byte 0x02024be0 _081209D4: .4byte 0x02023a60 thumb_func_end sub_8120978 thumb_func_start sub_81209D8 sub_81209D8: @ 81209D8 push {r4-r6,lr} sub sp, 0x4 ldr r6, _08120A1C ldrb r0, [r6] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _08120A30 ldr r5, _08120A20 ldrb r2, [r6] lsls r1, r2, 9 adds r0, r5, 0x1 adds r0, r1, r0 ldrb r3, [r0] adds r0, r5, 0x2 adds r0, r1, r0 ldrb r4, [r0] adds r5, 0x3 adds r1, r5 ldrb r0, [r1] lsls r0, 8 orrs r4, r0 str r4, [sp] adds r0, r2, 0 adds r1, r2, 0 bl move_anim_start_t3 lsls r0, 24 cmp r0, 0 beq _08120A24 bl dp01_tbl3_exec_completed b _08120A30 .align 2, 0 _08120A1C: .4byte 0x02024a60 _08120A20: .4byte 0x02023a60 _08120A24: ldr r0, _08120A38 ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r0, _08120A3C str r0, [r1] _08120A30: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08120A38: .4byte 0x03004330 _08120A3C: .4byte sub_811E3B8 thumb_func_end sub_81209D8 thumb_func_start sub_8120A40 sub_8120A40: @ 8120A40 push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120A40 thumb_func_start sub_8120A4C sub_8120A4C: @ 8120A4C push {lr} bl dp01_tbl3_exec_completed pop {r0} bx r0 thumb_func_end sub_8120A4C thumb_func_start sub_8120A58 sub_8120A58: @ 8120A58 push {r4,lr} ldr r2, _08120A90 ldr r1, _08120A94 ldr r4, _08120A98 ldrb r0, [r4] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] strb r0, [r2] movs r0, 0x5 bl sub_8074D28 movs r0, 0x3 bl BeginFastPaletteFade bl dp01_tbl3_exec_completed ldr r1, _08120A9C ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08120AA0 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08120A90: .4byte 0x02024d26 _08120A94: .4byte 0x02023a60 _08120A98: .4byte 0x02024a60 _08120A9C: .4byte 0x03004330 _08120AA0: .4byte sub_811E29C thumb_func_end sub_8120A58 thumb_func_start nullsub_75 nullsub_75: @ 8120AA4 bx lr thumb_func_end nullsub_75 thumb_func_start sub_8120AA8 sub_8120AA8: @ 8120AA8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 lsrs r7, r0, 16 movs r6, 0 ldr r5, _08120B70 ldr r4, _08120B74 ldrb r1, [r4] lsls r1, 9 ldr r0, _08120B78 adds r1, r0 str r1, [r5] ldr r2, _08120B7C ldrh r0, [r1, 0x4] strh r0, [r2] ldr r2, _08120B80 ldrb r0, [r1, 0x6] strb r0, [r2] ldr r3, _08120B84 ldrb r0, [r1, 0x7] mov r8, r0 ldr r2, _08120B88 adds r0, r3, r2 mov r2, r8 strb r2, [r0] ldrb r0, [r1, 0x8] mov r8, r0 ldr r2, _08120B8C adds r0, r3, r2 mov r2, r8 strb r2, [r0] ldrb r0, [r1, 0x9] mov r8, r0 ldr r2, _08120B90 adds r0, r3, r2 mov r2, r8 strb r2, [r0] ldr r2, _08120B94 ldrb r0, [r1, 0xA] strb r0, [r2] ldrb r1, [r1, 0xB] ldr r2, _08120B98 adds r0, r3, r2 strb r1, [r0] movs r2, 0 mov r9, r3 ldr r3, _08120B9C mov r10, r3 ldr r3, _08120BA0 _08120B10: adds r0, r2, r3 ldr r1, [r5] adds r1, 0xC adds r1, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x3 ble _08120B10 movs r2, 0 ldr r0, _08120B9C mov r8, r0 ldr r3, _08120B70 ldr r1, _08120BA4 mov r12, r1 ldr r5, _08120BA8 _08120B30: mov r0, r8 adds r1, r2, r0 ldr r0, [r3] adds r0, 0x10 adds r0, r2 ldrb r0, [r0] strb r0, [r1] mov r0, r12 adds r1, r2, r0 ldr r0, [r3] adds r0, 0x20 adds r0, r2 ldrb r0, [r0] strb r0, [r1] adds r1, r2, r5 ldr r0, [r3] adds r0, 0x30 adds r0, r2 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 cmp r2, 0xF ble _08120B30 cmp r7, 0x5 bls _08120B64 b _08120F50 _08120B64: lsls r0, r7, 2 ldr r1, _08120BAC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08120B70: .4byte 0x02039270 _08120B74: .4byte 0x02024a60 _08120B78: .4byte 0x02023a64 _08120B7C: .4byte 0x02024c04 _08120B80: .4byte 0x02024c06 _08120B84: .4byte 0x02000000 _08120B88: .4byte 0x00016003 _08120B8C: .4byte 0x0001605e _08120B90: .4byte 0x000160c1 _08120B94: .4byte 0x02024c0b _08120B98: .4byte 0x000160a0 _08120B9C: .4byte 0x030041c0 _08120BA0: .4byte 0x0203926c _08120BA4: .4byte 0x03004290 _08120BA8: .4byte 0x030042b0 _08120BAC: .4byte _08120BB0 .align 2, 0 _08120BB0: .4byte _08120BC8 .4byte _08120C40 .4byte _08120CCC .4byte _08120D5C .4byte _08120DE8 .4byte _08120E50 _08120BC8: ldr r0, _08120BEC ldrh r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08120C00 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08120BF8 movs r0, 0x40 ands r0, r1 ldr r6, _08120BF0 cmp r0, 0 bne _08120BE8 b _08120F70 _08120BE8: ldr r6, _08120BF4 b _08120F70 .align 2, 0 _08120BEC: .4byte 0x020239f8 _08120BF0: .4byte gUnknown_084005C7 _08120BF4: .4byte gUnknown_084005DB _08120BF8: ldr r6, _08120BFC b _08120F70 .align 2, 0 _08120BFC: .4byte gUnknown_084005AA _08120C00: movs r0, 0x80 lsls r0, 6 ands r0, r1 cmp r0, 0 beq _08120C14 ldr r6, _08120C10 b _08120F70 .align 2, 0 _08120C10: .4byte gUnknown_08400568 _08120C14: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08120C24 ldr r6, _08120C20 b _08120F70 .align 2, 0 _08120C20: .4byte gUnknown_08400590 _08120C24: movs r0, 0x80 lsls r0, 2 ands r0, r1 ldr r6, _08120C38 cmp r0, 0 bne _08120C32 b _08120F70 _08120C32: ldr r6, _08120C3C b _08120F70 .align 2, 0 _08120C38: .4byte gUnknown_08400555 _08120C3C: .4byte gUnknown_0840057B _08120C40: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08120C7C ldr r0, _08120C68 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08120C74 movs r0, 0x40 ands r0, r1 ldr r6, _08120C6C cmp r0, 0 bne _08120C64 b _08120F70 _08120C64: ldr r6, _08120C70 b _08120F70 .align 2, 0 _08120C68: .4byte 0x020239f8 _08120C6C: .4byte gUnknown_084006A4 _08120C70: .4byte gUnknown_084006F1 _08120C74: ldr r6, _08120C78 b _08120F70 .align 2, 0 _08120C78: .4byte gUnknown_0840069C _08120C7C: ldr r0, _08120C94 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08120CB4 movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08120C9C ldr r6, _08120C98 b _08120F70 .align 2, 0 _08120C94: .4byte 0x020239f8 _08120C98: .4byte gUnknown_0840065C _08120C9C: movs r0, 0x2 ands r0, r1 ldr r6, _08120CAC cmp r0, 0 bne _08120CA8 b _08120F70 _08120CA8: ldr r6, _08120CB0 b _08120F70 .align 2, 0 _08120CAC: .4byte gUnknown_08400608 _08120CB0: .4byte gUnknown_08400645 _08120CB4: movs r0, 0x2 ands r0, r1 ldr r6, _08120CC4 cmp r0, 0 bne _08120CC0 b _08120F70 _08120CC0: ldr r6, _08120CC8 b _08120F70 .align 2, 0 _08120CC4: .4byte gUnknown_084005F5 _08120CC8: .4byte gUnknown_08400635 _08120CCC: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08120D24 ldr r0, _08120CE8 ldr r1, _08120CEC adds r0, r1 ldrb r2, [r0] cmp r2, 0 bne _08120CF4 ldr r6, _08120CF0 b _08120F70 .align 2, 0 _08120CE8: .4byte 0x02000000 _08120CEC: .4byte 0x000160c1 _08120CF0: .4byte gUnknown_08400709 _08120CF4: cmp r2, 0x1 beq _08120D04 ldr r0, _08120D08 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08120D10 _08120D04: ldr r6, _08120D0C b _08120F70 .align 2, 0 _08120D08: .4byte 0x020239f8 _08120D0C: .4byte gUnknown_08400727 _08120D10: ldr r6, _08120D1C cmp r2, 0x2 beq _08120D18 b _08120F70 _08120D18: ldr r6, _08120D20 b _08120F70 .align 2, 0 _08120D1C: .4byte gUnknown_08400749 _08120D20: .4byte gUnknown_08400736 _08120D24: ldr r0, _08120D44 ldrh r1, [r0] movs r0, 0x80 lsls r0, 4 cmp r1, r0 bne _08120D54 ldr r0, _08120D48 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 ldr r6, _08120D4C cmp r0, 0 bne _08120D40 b _08120F70 _08120D40: ldr r6, _08120D50 b _08120F70 .align 2, 0 _08120D44: .4byte 0x0202ff5e _08120D48: .4byte 0x020239f8 _08120D4C: .4byte gUnknown_08400771 _08120D50: .4byte gUnknown_08400781 _08120D54: ldr r6, _08120D58 b _08120F70 .align 2, 0 _08120D58: .4byte gUnknown_0840075E _08120D5C: ldr r0, _08120D88 add r0, r9 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08120DB8 ldr r0, _08120D8C add r0, r9 ldrb r3, [r0] cmp r3, 0 beq _08120D82 ldr r0, _08120D90 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08120D98 _08120D82: ldr r6, _08120D94 b _08120F70 .align 2, 0 _08120D88: .4byte 0x00016003 _08120D8C: .4byte 0x000160c1 _08120D90: .4byte 0x020239f8 _08120D94: .4byte gUnknown_084006B3 _08120D98: cmp r3, 0x1 bne _08120DA4 ldr r6, _08120DA0 b _08120F70 .align 2, 0 _08120DA0: .4byte gUnknown_084006BB _08120DA4: ldr r6, _08120DB0 cmp r3, 0x2 beq _08120DAC b _08120F70 _08120DAC: ldr r6, _08120DB4 b _08120F70 .align 2, 0 _08120DB0: .4byte gUnknown_084006D5 _08120DB4: .4byte gUnknown_084006C6 _08120DB8: ldr r0, _08120DD4 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08120DE0 movs r0, 0x40 ands r0, r1 ldr r6, _08120DD8 cmp r0, 0 bne _08120DD0 b _08120F70 _08120DD0: ldr r6, _08120DDC b _08120F70 .align 2, 0 _08120DD4: .4byte 0x020239f8 _08120DD8: .4byte gUnknown_0840067C _08120DDC: .4byte gUnknown_0840068C _08120DE0: ldr r6, _08120DE4 b _08120F70 .align 2, 0 _08120DE4: .4byte gUnknown_08400622 _08120DE8: mov r0, r10 bl sub_8121D1C ldr r0, _08120E14 ldr r2, [r0] ldrh r1, [r2] movs r0, 0xB1 lsls r0, 1 cmp r1, r0 bls _08120E28 ldr r0, _08120E18 ldr r2, _08120E1C ldr r1, _08120E20 ldr r3, _08120E24 adds r1, r3 ldrb r1, [r1] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl StringCopy b _08120E38 .align 2, 0 _08120E14: .4byte 0x02039270 _08120E18: .4byte 0x03004290 _08120E1C: .4byte gUnknown_08401674 _08120E20: .4byte 0x02000000 _08120E24: .4byte 0x000160a0 _08120E28: ldr r0, _08120E44 ldrh r2, [r2] movs r1, 0xD muls r1, r2 ldr r2, _08120E48 adds r1, r2 bl StringCopy _08120E38: ldr r0, _08120E44 bl sub_8121D74 ldr r6, _08120E4C b _08120F70 .align 2, 0 _08120E44: .4byte 0x03004290 _08120E48: .4byte gMoveNames _08120E4C: .4byte gUnknown_084007BD _08120E50: ldr r5, _08120E90 ldrb r1, [r5] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08120EB8 movs r0, 0x7F ands r0, r1 strb r0, [r5] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08120E7C ldrb r1, [r5] cmp r1, 0x3 beq _08120E7C movs r0, 0x3 eors r0, r1 strb r0, [r5] _08120E7C: ldr r0, _08120E90 ldrb r0, [r0] subs r0, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08120E98 ldr r6, _08120E94 b _08120F70 .align 2, 0 _08120E90: .4byte 0x030041c0 _08120E94: .4byte gUnknown_083FFEFC _08120E98: ldr r0, _08120EAC ldrh r1, [r0] movs r0, 0x40 ands r0, r1 ldr r6, _08120EB0 cmp r0, 0 beq _08120F70 ldr r6, _08120EB4 b _08120F70 .align 2, 0 _08120EAC: .4byte 0x020239f8 _08120EB0: .4byte gUnknown_083FFFEA _08120EB4: .4byte gUnknown_083FFFF7 _08120EB8: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08120ED2 ldrb r1, [r5] cmp r1, 0x3 beq _08120ED2 movs r0, 0x3 eors r0, r1 strb r0, [r5] _08120ED2: ldr r0, _08120EF0 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08120F18 ldr r0, _08120EF4 ldrb r0, [r0] cmp r0, 0x2 beq _08120F08 cmp r0, 0x2 bgt _08120EF8 cmp r0, 0x1 beq _08120EFE b _08120F70 .align 2, 0 _08120EF0: .4byte 0x020239f8 _08120EF4: .4byte 0x030041c0 _08120EF8: cmp r0, 0x3 beq _08120F10 b _08120F70 _08120EFE: ldr r6, _08120F04 b _08120F70 .align 2, 0 _08120F04: .4byte gUnknown_083FFF6A _08120F08: ldr r6, _08120F0C b _08120F70 .align 2, 0 _08120F0C: .4byte gUnknown_083FFF99 _08120F10: ldr r6, _08120F14 b _08120F70 .align 2, 0 _08120F14: .4byte gUnknown_083FFFCB _08120F18: ldr r0, _08120F2C ldrb r0, [r0] cmp r0, 0x2 beq _08120F40 cmp r0, 0x2 bgt _08120F30 cmp r0, 0x1 beq _08120F36 b _08120F70 .align 2, 0 _08120F2C: .4byte 0x030041c0 _08120F30: cmp r0, 0x3 beq _08120F48 b _08120F70 _08120F36: ldr r6, _08120F3C b _08120F70 .align 2, 0 _08120F3C: .4byte gUnknown_083FFF56 _08120F40: ldr r6, _08120F44 b _08120F70 .align 2, 0 _08120F44: .4byte gUnknown_083FFF81 _08120F48: ldr r6, _08120F4C b _08120F70 .align 2, 0 _08120F4C: .4byte gUnknown_083FFFB3 _08120F50: movs r0, 0xB5 lsls r0, 1 cmp r7, r0 bls _08120F64 ldr r1, _08120F60 movs r0, 0xFF strb r0, [r1] b _08120F76 .align 2, 0 _08120F60: .4byte 0x020238cc _08120F64: ldr r1, _08120F84 adds r0, r7, 0 subs r0, 0xC lsls r0, 2 adds r0, r1 ldr r6, [r0] _08120F70: adds r0, r6, 0 bl get_battle_strings_ _08120F76: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08120F84: .4byte gUnknown_08400F8C thumb_func_end sub_8120AA8 thumb_func_start get_battle_strings_ get_battle_strings_: @ 8120F88 push {lr} ldr r1, _08120F94 bl sub_8120FFC pop {r1} bx r1 .align 2, 0 _08120F94: .4byte 0x020238cc thumb_func_end get_battle_strings_ thumb_func_start sub_8120F98 sub_8120F98: @ 8120F98 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 ldr r1, _08120FB0 mov r0, sp movs r2, 0x8 bl memcpy mov r2, sp movs r3, 0 b _08120FC0 .align 2, 0 _08120FB0: .4byte gUnknown_084017A8 _08120FB4: strb r1, [r2] adds r4, 0x1 adds r2, 0x1 adds r3, 0x1 cmp r3, 0x7 bhi _08120FC8 _08120FC0: ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _08120FB4 _08120FC8: ldr r5, [sp] ldr r4, [sp, 0x4] movs r3, 0 ldr r2, _08120FE4 _08120FD0: ldr r1, [r2] ldr r0, [r1] cmp r5, r0 bne _08120FE8 ldr r0, [r1, 0x4] cmp r4, r0 bne _08120FE8 ldr r0, [r2, 0x4] b _08120FF2 .align 2, 0 _08120FE4: .4byte gUnknown_081FA6D4 _08120FE8: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x6 bls _08120FD0 movs r0, 0 _08120FF2: add sp, 0x8 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8120F98 thumb_func_start sub_8120FFC sub_8120FFC: @ 8120FFC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC mov r9, r0 mov r8, r1 movs r6, 0 movs r4, 0 bl GetMultiplayerId lsls r0, 24 lsrs r7, r0, 24 mov r0, r9 ldrb r1, [r0] bl _08121A40 _0812101E: cmp r1, 0xFD beq _08121026 bl _08121A30 _08121026: movs r1, 0x1 add r9, r1 mov r2, r9 ldrb r0, [r2] cmp r0, 0x2A bls _08121036 bl _081219E6 _08121036: lsls r0, 2 ldr r1, _08121040 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08121040: .4byte _08121044 .align 2, 0 _08121044: .4byte _081210F0 .4byte _0812111E .4byte _0812115A .4byte _08121180 .4byte _081211A4 .4byte _081211C8 .4byte _081211EC .4byte _08121218 .4byte _08121248 .4byte _08121278 .4byte _081212A8 .4byte _0812133C .4byte _081213A8 .4byte _0812141C .4byte _08121490 .4byte _08121504 .4byte _08121578 .4byte _081215F8 .4byte _08121620 .4byte _08121660 .4byte _081216EC .4byte _081216F4 .4byte _08121704 .4byte _08121714 .4byte _0812172C .4byte _0812174C .4byte _081217C0 .4byte _08121830 .4byte _08121840 .4byte _08121854 .4byte _08121868 .4byte _0812188C .4byte _081218B0 .4byte _081218B8 .4byte _081218C0 .4byte _0812195C .4byte _081219A4 .4byte _081219AC .4byte _0812197C .4byte _08121984 .4byte _081219CC .4byte _081219D4 .4byte _08121134 _081210F0: ldr r5, _08121100 ldrb r0, [r5] cmp r0, 0xFD bne _08121108 ldr r4, _08121104 adds r0, r5, 0 b _08121140 .align 2, 0 _08121100: .4byte 0x030041c0 _08121104: .4byte 0x020231cc _08121108: adds r0, r5, 0 bl sub_8120F98 adds r4, r0, 0 cmp r4, 0 beq _08121118 bl _081219E6 _08121118: adds r4, r5, 0 bl _081219E6 _0812111E: ldr r1, _0812112C ldrb r0, [r1] cmp r0, 0xFD bne _08121154 ldr r4, _08121130 b _0812113E .align 2, 0 _0812112C: .4byte 0x03004290 _08121130: .4byte 0x020232cc _08121134: ldr r1, _0812114C ldrb r0, [r1] cmp r0, 0xFD bne _08121154 ldr r4, _08121150 _0812113E: adds r0, r1, 0 _08121140: adds r1, r4, 0 bl sub_8121A68 bl _081219E6 .align 2, 0 _0812114C: .4byte 0x030042b0 _08121150: .4byte 0x020233cc _08121154: adds r4, r1, 0 bl _081219E6 _0812115A: movs r0, 0 bl battle_get_side_with_given_state ldr r1, _08121178 lsls r0, 24 lsrs r0, 23 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0812117C adds r0, r1 bl _0812190E .align 2, 0 _08121178: .4byte 0x02024a6a _0812117C: .4byte 0x03004360 _08121180: movs r0, 0x1 bl battle_get_side_with_given_state ldr r1, _0812119C lsls r0, 24 lsrs r0, 23 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _081211A0 adds r0, r1 b _0812190E .align 2, 0 _0812119C: .4byte 0x02024a6a _081211A0: .4byte 0x030045c0 _081211A4: movs r0, 0x2 bl battle_get_side_with_given_state ldr r1, _081211C0 lsls r0, 24 lsrs r0, 23 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _081211C4 adds r0, r1 b _0812190E .align 2, 0 _081211C0: .4byte 0x02024a6a _081211C4: .4byte 0x03004360 _081211C8: movs r0, 0x3 bl battle_get_side_with_given_state ldr r1, _081211E4 lsls r0, 24 lsrs r0, 23 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _081211E8 adds r0, r1 b _0812190E .align 2, 0 _081211E4: .4byte 0x02024a6a _081211E8: .4byte 0x030045c0 _081211EC: ldr r2, _0812120C ldr r1, _08121210 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r1 ldrh r0, [r0, 0x18] lsls r0, 1 adds r0, r2 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08121214 adds r0, r1 b _0812190E .align 2, 0 _0812120C: .4byte 0x02024a6a _08121210: .4byte 0x03002970 _08121214: .4byte 0x03004360 _08121218: ldr r2, _0812123C ldr r1, _08121240 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r1 ldrh r1, [r0, 0x18] movs r0, 0x1 eors r0, r1 lsls r0, 1 adds r0, r2 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08121244 adds r0, r1 b _0812190E .align 2, 0 _0812123C: .4byte 0x02024a6a _08121240: .4byte 0x03002970 _08121244: .4byte 0x030045c0 _08121248: ldr r2, _0812126C ldr r1, _08121270 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r1 ldrh r1, [r0, 0x18] movs r0, 0x2 eors r0, r1 lsls r0, 1 adds r0, r2 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08121274 adds r0, r1 b _0812190E .align 2, 0 _0812126C: .4byte 0x02024a6a _08121270: .4byte 0x03002970 _08121274: .4byte 0x03004360 _08121278: ldr r2, _0812129C ldr r1, _081212A0 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r1 ldrh r1, [r0, 0x18] movs r0, 0x3 eors r0, r1 lsls r0, 1 adds r0, r2 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _081212A4 adds r0, r1 b _0812190E .align 2, 0 _0812129C: .4byte 0x02024a6a _081212A0: .4byte 0x03002970 _081212A4: .4byte 0x030045c0 _081212A8: ldr r4, _081212CC ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 adds r2, r4, 0 cmp r0, 0 beq _0812131C ldr r0, _081212D0 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 ldr r4, _081212D4 cmp r0, 0 beq _081212E6 ldr r4, _081212D8 b _081212E6 .align 2, 0 _081212CC: .4byte 0x02024c07 _081212D0: .4byte 0x020239f8 _081212D4: .4byte gUnknown_08400791 _081212D8: .4byte gUnknown_08400797 _081212DC: mov r3, r8 adds r0, r3, r6 strb r1, [r0] adds r6, 0x1 adds r4, 0x1 _081212E6: ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _081212DC ldrb r0, [r2] bl battle_get_per_side_status adds r1, r0, 0 movs r0, 0x1 ands r0, r1 bl battle_get_side_with_given_state ldr r1, _08121314 lsls r0, 24 lsrs r0, 23 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08121318 adds r0, r1 b _0812190E .align 2, 0 _08121314: .4byte 0x02024a6a _08121318: .4byte 0x030045c0 _0812131C: ldrb r0, [r2] bl battle_get_per_side_status adds r1, r0, 0 movs r0, 0x1 ands r0, r1 bl battle_get_side_with_given_state ldr r1, _08121338 lsls r0, 24 lsrs r0, 23 adds r0, r1 ldrh r1, [r0] b _0812193A .align 2, 0 _08121338: .4byte 0x02024a6a _0812133C: ldr r4, _08121370 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0812137C ldrb r0, [r4] bl battle_get_per_side_status adds r1, r0, 0 movs r0, 0x1 ands r0, r1 bl battle_get_side_with_given_state ldr r1, _08121374 lsls r0, 24 lsrs r0, 23 adds r0, 0x4 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08121378 adds r0, r1 b _0812190E .align 2, 0 _08121370: .4byte 0x02024c07 _08121374: .4byte 0x02024a6a _08121378: .4byte 0x03004360 _0812137C: ldrb r0, [r4] bl battle_get_per_side_status adds r1, r0, 0 movs r0, 0x1 ands r0, r1 bl battle_get_side_with_given_state ldr r1, _081213A0 lsls r0, 24 lsrs r0, 23 adds r0, 0x4 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _081213A4 b _08121940 .align 2, 0 _081213A0: .4byte 0x02024a6a _081213A4: .4byte 0x030045c0 _081213A8: ldr r5, _081213F4 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0812140C ldr r0, _081213F8 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 ldr r4, _081213FC cmp r0, 0 beq _081213C6 ldr r4, _08121400 _081213C6: ldrb r1, [r4] adds r0, r1, 0 ldr r3, _08121404 ldr r2, _08121408 mov r12, r2 adds r2, r5, 0 cmp r0, 0xFF beq _081213E8 _081213D6: mov r5, r8 adds r0, r5, r6 strb r1, [r0] adds r6, 0x1 adds r4, 0x1 ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _081213D6 _081213E8: ldrb r0, [r2] lsls r0, 1 adds r0, r3 ldrh r1, [r0] b _08121908 .align 2, 0 _081213F4: .4byte 0x02024c07 _081213F8: .4byte 0x020239f8 _081213FC: .4byte gUnknown_08400791 _08121400: .4byte gUnknown_08400797 _08121404: .4byte 0x02024a6a _08121408: .4byte 0x030045c0 _0812140C: ldr r1, _08121418 ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] b _0812193A .align 2, 0 _08121418: .4byte 0x02024a6a _0812141C: ldr r5, _08121468 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _08121480 ldr r0, _0812146C ldrh r1, [r0] movs r0, 0x8 ands r0, r1 ldr r4, _08121470 cmp r0, 0 beq _0812143A ldr r4, _08121474 _0812143A: ldrb r1, [r4] adds r0, r1, 0 ldr r3, _08121478 ldr r2, _0812147C mov r12, r2 adds r2, r5, 0 cmp r0, 0xFF beq _0812145C _0812144A: mov r5, r8 adds r0, r5, r6 strb r1, [r0] adds r6, 0x1 adds r4, 0x1 ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _0812144A _0812145C: ldrb r0, [r2] lsls r0, 1 adds r0, r3 ldrh r1, [r0] b _08121908 .align 2, 0 _08121468: .4byte 0x02024c08 _0812146C: .4byte 0x020239f8 _08121470: .4byte gUnknown_08400791 _08121474: .4byte gUnknown_08400797 _08121478: .4byte 0x02024a6a _0812147C: .4byte 0x030045c0 _08121480: ldr r1, _0812148C ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] b _0812193A .align 2, 0 _0812148C: .4byte 0x02024a6a _08121490: ldr r5, _081214DC ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _081214F4 ldr r0, _081214E0 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 ldr r4, _081214E4 cmp r0, 0 beq _081214AE ldr r4, _081214E8 _081214AE: ldrb r1, [r4] adds r0, r1, 0 ldr r3, _081214EC ldr r2, _081214F0 mov r12, r2 adds r2, r5, 0 cmp r0, 0xFF beq _081214D0 _081214BE: mov r5, r8 adds r0, r5, r6 strb r1, [r0] adds r6, 0x1 adds r4, 0x1 ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _081214BE _081214D0: ldrb r0, [r2] lsls r0, 1 adds r0, r3 ldrh r1, [r0] b _08121908 .align 2, 0 _081214DC: .4byte 0x02024c0a _081214E0: .4byte 0x020239f8 _081214E4: .4byte gUnknown_08400791 _081214E8: .4byte gUnknown_08400797 _081214EC: .4byte 0x02024a6a _081214F0: .4byte 0x030045c0 _081214F4: ldr r1, _08121500 ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] b _0812193A .align 2, 0 _08121500: .4byte 0x02024a6a _08121504: ldr r5, _08121550 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _08121568 ldr r0, _08121554 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 ldr r4, _08121558 cmp r0, 0 beq _08121522 ldr r4, _0812155C _08121522: ldrb r1, [r4] adds r0, r1, 0 ldr r3, _08121560 ldr r2, _08121564 mov r12, r2 adds r2, r5, 0 cmp r0, 0xFF beq _08121544 _08121532: mov r5, r8 adds r0, r5, r6 strb r1, [r0] adds r6, 0x1 adds r4, 0x1 ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _08121532 _08121544: ldrb r0, [r2] lsls r0, 1 adds r0, r3 ldrh r1, [r0] b _08121908 .align 2, 0 _08121550: .4byte 0x02024a60 _08121554: .4byte 0x020239f8 _08121558: .4byte gUnknown_08400791 _0812155C: .4byte gUnknown_08400797 _08121560: .4byte 0x02024a6a _08121564: .4byte 0x030045c0 _08121568: ldr r1, _08121574 ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] b _0812193A .align 2, 0 _08121574: .4byte 0x02024a6a _08121578: ldr r4, _081215CC ldr r0, _081215D0 adds r5, r4, r0 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 adds r2, r4, 0 cmp r0, 0 beq _081215E8 ldr r0, _081215D4 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 ldr r4, _081215D8 cmp r0, 0 beq _0812159C ldr r4, _081215DC _0812159C: ldrb r1, [r4] adds r0, r1, 0 ldr r3, _081215E0 ldr r5, _081215E4 mov r12, r5 cmp r0, 0xFF beq _081215BC _081215AA: mov r5, r8 adds r0, r5, r6 strb r1, [r0] adds r6, 0x1 adds r4, 0x1 ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _081215AA _081215BC: ldr r1, _081215D0 adds r0, r2, r1 ldrb r0, [r0] lsls r0, 1 adds r0, r3 ldrh r1, [r0] b _08121908 .align 2, 0 _081215CC: .4byte 0x02000000 _081215D0: .4byte 0x00016003 _081215D4: .4byte 0x020239f8 _081215D8: .4byte gUnknown_08400791 _081215DC: .4byte gUnknown_08400797 _081215E0: .4byte 0x02024a6a _081215E4: .4byte 0x030045c0 _081215E8: ldr r1, _081215F4 ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] b _0812193A .align 2, 0 _081215F4: .4byte 0x02024a6a _081215F8: ldr r0, _08121610 ldr r2, [r0] ldrh r1, [r2] movs r0, 0xB1 lsls r0, 1 cmp r1, r0 bls _0812161C ldr r0, _08121614 ldr r2, _08121618 adds r0, r2 b _08121634 .align 2, 0 _08121610: .4byte 0x02039270 _08121614: .4byte 0x02000000 _08121618: .4byte 0x000160a0 _0812161C: ldrh r1, [r2] b _08121652 _08121620: ldr r0, _08121640 ldr r2, [r0] ldrh r1, [r2, 0x2] movs r0, 0xB1 lsls r0, 1 cmp r1, r0 bls _08121650 ldr r0, _08121644 ldr r3, _08121648 adds r0, r3 _08121634: ldrb r0, [r0] lsls r0, 2 ldr r1, _0812164C adds r4, r0, r1 b _081219E6 .align 2, 0 _08121640: .4byte 0x02039270 _08121644: .4byte 0x02000000 _08121648: .4byte 0x000160a0 _0812164C: .4byte gUnknown_08401674 _08121650: ldrh r1, [r2, 0x2] _08121652: movs r0, 0xD muls r1, r0 ldr r0, _0812165C adds r4, r1, r0 b _081219E6 .align 2, 0 _0812165C: .4byte gMoveNames _08121660: ldr r0, _081216AC ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081216D8 ldr r1, _081216B0 ldrh r0, [r1] cmp r0, 0xAF bne _081216D4 ldr r2, _081216B4 ldr r0, _081216B8 ldr r5, _081216BC adds r0, r5 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _081216C0 ldrb r2, [r1] ldrh r0, [r0, 0x18] cmp r0, r2 bne _081216CC lsls r1, r2, 3 subs r1, r2 lsls r1, 2 ldr r0, _081216C4 adds r1, r0 mov r0, sp bl StringCopy ldr r1, _081216C8 mov r0, sp bl StringAppend mov r4, sp b _081219E6 .align 2, 0 _081216AC: .4byte 0x020239f8 _081216B0: .4byte 0x02024c04 _081216B4: .4byte 0x03002970 _081216B8: .4byte 0x02000000 _081216BC: .4byte 0x000160cb _081216C0: .4byte 0x02024c0b _081216C4: .4byte 0x02024df0 _081216C8: .4byte gUnknown_08400A85 _081216CC: ldr r4, _081216D0 b _081219E6 .align 2, 0 _081216D0: .4byte gUnknown_08400A78 _081216D4: ldrh r0, [r1] b _081216DC _081216D8: ldr r0, _081216E8 ldrh r0, [r0] _081216DC: mov r1, sp bl itemid_copy_name mov r4, sp b _081219E6 .align 2, 0 _081216E8: .4byte 0x02024c04 _081216EC: ldr r0, _081216F0 b _08121734 .align 2, 0 _081216F0: .4byte 0x02024c06 _081216F4: ldr r1, _081216FC ldr r0, _08121700 b _08121730 .align 2, 0 _081216FC: .4byte 0x0203926c _08121700: .4byte 0x02024c07 _08121704: ldr r1, _0812170C ldr r0, _08121710 b _08121730 .align 2, 0 _0812170C: .4byte 0x0203926c _08121710: .4byte 0x02024c08 _08121714: ldr r1, _08121720 ldr r0, _08121724 ldr r2, _08121728 adds r0, r2 b _08121730 .align 2, 0 _08121720: .4byte 0x0203926c _08121724: .4byte 0x02000000 _08121728: .4byte 0x00016003 _0812172C: ldr r1, _08121740 ldr r0, _08121744 _08121730: ldrb r0, [r0] adds r0, r1 _08121734: ldrb r1, [r0] movs r0, 0xD muls r1, r0 ldr r0, _08121748 adds r4, r1, r0 b _081219E6 .align 2, 0 _08121740: .4byte 0x0203926c _08121744: .4byte 0x02024c0a _08121748: .4byte gAbilityNames _0812174C: ldr r3, _08121764 ldrh r1, [r3] movs r0, 0x80 lsls r0, 3 cmp r1, r0 bne _08121768 bl sub_803DCE4 lsls r0, 24 lsrs r0, 24 movs r1, 0xD b _081217AE .align 2, 0 _08121764: .4byte 0x0202ff5e _08121768: ldr r0, _08121784 ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08121788 bl get_trainer_class_name_index lsls r0, 24 lsrs r0, 24 movs r1, 0xD b _081217AE .align 2, 0 _08121784: .4byte 0x020239f8 _08121788: movs r0, 0x80 lsls r0, 4 ands r0, r1 cmp r0, 0 beq _0812179E bl sub_8135FD8 lsls r0, 24 lsrs r0, 24 movs r1, 0xD b _081217AE _0812179E: ldr r2, _081217B8 ldrh r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r1, [r0, 0x1] movs r0, 0xD _081217AE: muls r1, r0 ldr r0, _081217BC adds r4, r1, r0 b _081219E6 .align 2, 0 _081217B8: .4byte gTrainers _081217BC: .4byte gTrainerClassNames _081217C0: ldr r2, _081217E4 ldrh r1, [r2] movs r0, 0x80 lsls r0, 3 cmp r1, r0 bne _081217EC mov r0, sp movs r1, 0xFF movs r2, 0x8 bl memset ldr r1, _081217E8 mov r0, sp movs r2, 0x7 bl memcpy mov r4, sp b _081219E6 .align 2, 0 _081217E4: .4byte 0x0202ff5e _081217E8: .4byte 0x02017002 _081217EC: ldr r0, _08121804 ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08121808 mov r0, sp bl get_trainer_name mov r4, sp b _081219E6 .align 2, 0 _08121804: .4byte 0x020239f8 _08121808: movs r0, 0x80 lsls r0, 4 ands r0, r1 cmp r0, 0 beq _0812181C mov r0, sp bl sub_8135FF4 mov r4, sp b _081219E6 _0812181C: ldrh r0, [r2] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0812182C adds r4, r1, r0 b _081219E6 .align 2, 0 _0812182C: .4byte gTrainers + 0x4 _08121830: lsls r0, r7, 3 subs r0, r7 lsls r0, 2 ldr r1, _0812183C adds r4, r0, r1 b _081219E6 .align 2, 0 _0812183C: .4byte 0x03002978 _08121840: ldr r4, _08121850 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x18] movs r0, 0x2 b _08121876 .align 2, 0 _08121850: .4byte 0x03002970 _08121854: ldr r4, _08121864 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x18] movs r0, 0x1 b _08121876 .align 2, 0 _08121864: .4byte 0x03002970 _08121868: ldr r4, _08121888 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x18] movs r0, 0x3 _08121876: eors r0, r1 bl sub_803FC34 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r4, 0x8 adds r4, r1, r4 b _081219E6 .align 2, 0 _08121888: .4byte 0x03002970 _0812188C: ldr r0, _081218A4 ldr r3, _081218A8 adds r0, r3 ldrb r0, [r0] bl sub_803FC34 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 ldr r0, _081218AC adds r4, r1, r0 b _081219E6 .align 2, 0 _081218A4: .4byte 0x02000000 _081218A8: .4byte 0x00016003 _081218AC: .4byte 0x03002978 _081218B0: ldr r4, _081218B4 b _081219E6 .align 2, 0 _081218B4: .4byte gSaveBlock2 _081218B8: bl sub_8082830 adds r4, r0, 0 b _081219E6 _081218C0: ldr r5, _08121918 ldr r1, _0812191C adds r0, r5, r1 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _08121934 ldr r0, _08121920 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 ldr r4, _08121924 cmp r0, 0 beq _081218E2 ldr r4, _08121928 _081218E2: ldrb r1, [r4] adds r0, r1, 0 ldr r2, _0812192C mov r12, r2 adds r2, r5, 0 cmp r0, 0xFF beq _08121902 _081218F0: mov r3, r8 adds r0, r3, r6 strb r1, [r0] adds r6, 0x1 adds r4, 0x1 ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _081218F0 _08121902: ldr r5, _08121930 adds r0, r2, r5 ldrb r1, [r0] _08121908: movs r0, 0x64 muls r0, r1 add r0, r12 _0812190E: movs r1, 0x2 mov r2, sp bl PokemonGetField b _0812194A .align 2, 0 _08121918: .4byte 0x02000000 _0812191C: .4byte 0x00016003 _08121920: .4byte 0x020239f8 _08121924: .4byte gUnknown_08400791 _08121928: .4byte gUnknown_08400797 _0812192C: .4byte 0x030045c0 _08121930: .4byte 0x0001605e _08121934: ldr r1, _08121954 adds r0, r5, r1 ldrb r1, [r0] _0812193A: movs r0, 0x64 muls r0, r1 ldr r1, _08121958 _08121940: adds r0, r1 movs r1, 0x2 mov r2, sp bl PokemonGetField _0812194A: mov r0, sp bl StringGetEnd10 mov r4, sp b _081219E6 .align 2, 0 _08121954: .4byte 0x0001605e _08121958: .4byte 0x03004360 _0812195C: ldr r0, _08121970 bl FlagGet lsls r0, 24 ldr r4, _08121974 cmp r0, 0 beq _081219E6 ldr r4, _08121978 b _081219E6 .align 2, 0 _08121970: .4byte 0x0000084b _08121974: .4byte gUnknown_084009ED _08121978: .4byte gUnknown_084009F7 _0812197C: ldr r0, _08121980 b _08121986 .align 2, 0 _08121980: .4byte 0x02024c07 _08121984: ldr r0, _08121998 _08121986: ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 ldr r4, _0812199C cmp r0, 0 bne _081219E6 ldr r4, _081219A0 b _081219E6 .align 2, 0 _08121998: .4byte 0x02024c08 _0812199C: .4byte gUnknown_084007A7 _081219A0: .4byte gUnknown_084007AC _081219A4: ldr r0, _081219A8 b _081219AE .align 2, 0 _081219A8: .4byte 0x02024c07 _081219AC: ldr r0, _081219C0 _081219AE: ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 ldr r4, _081219C4 cmp r0, 0 bne _081219E6 ldr r4, _081219C8 b _081219E6 .align 2, 0 _081219C0: .4byte 0x02024c08 _081219C4: .4byte gUnknown_0840079C _081219C8: .4byte gUnknown_084007A1 _081219CC: ldr r0, _081219D0 b _081219D6 .align 2, 0 _081219D0: .4byte 0x02024c07 _081219D4: ldr r0, _08121A24 _081219D6: ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 ldr r4, _08121A28 cmp r0, 0 bne _081219E6 ldr r4, _08121A2C _081219E6: ldrb r1, [r4] adds r0, r1, 0 mov r3, r9 ldrb r2, [r3] adds r3, 0x1 cmp r0, 0xFF beq _08121A06 _081219F4: mov r5, r8 adds r0, r5, r6 strb r1, [r0] adds r6, 0x1 adds r4, 0x1 ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _081219F4 _08121A06: lsls r0, r2, 24 lsrs r0, 24 cmp r0, 0x21 bne _08121A3C mov r0, r8 adds r1, r0, r6 movs r0, 0xFC strb r0, [r1] adds r6, 0x1 mov r2, r8 adds r1, r2, r6 movs r0, 0x9 strb r0, [r1] adds r6, 0x1 b _08121A3C .align 2, 0 _08121A24: .4byte 0x02024c08 _08121A28: .4byte gUnknown_084007B2 _08121A2C: .4byte gUnknown_084007B7 _08121A30: mov r3, r8 adds r0, r3, r6 strb r1, [r0] adds r6, 0x1 mov r3, r9 adds r3, 0x1 _08121A3C: mov r9, r3 ldrb r1, [r3] _08121A40: adds r0, r1, 0 cmp r0, 0xFF beq _08121A4A bl _0812101E _08121A4A: mov r5, r8 adds r1, r5, r6 mov r2, r9 ldrb r0, [r2] strb r0, [r1] adds r6, 0x1 adds r0, r6, 0 add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8120FFC thumb_func_start sub_8121A68 sub_8121A68: @ 8121A68 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r7, r0, 0 adds r6, r1, 0 movs r5, 0x1 movs r0, 0 mov r8, r0 movs r0, 0xFF strb r0, [r6] ldrb r0, [r7, 0x1] cmp r0, 0xFF bne _08121A86 b _08121D0E _08121A86: adds r0, r7, r5 ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0xA bls _08121A92 b _08121D04 _08121A92: lsls r0, r1, 2 ldr r1, _08121A9C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08121A9C: .4byte _08121AA0 .align 2, 0 _08121AA0: .4byte _08121ACC .4byte _08121AE8 .4byte _08121B3C .4byte _08121B54 .4byte _08121B64 .4byte _08121BDC .4byte _08121BF0 .4byte _08121C02 .4byte _08121C48 .4byte _08121C5C .4byte _08121C78 _08121ACC: adds r0, r5, r7 ldrb r1, [r0, 0x1] ldrb r0, [r0, 0x2] lsls r0, 8 orrs r1, r0 ldr r0, _08121AE4 subs r1, 0xC lsls r1, 2 adds r1, r0 ldr r1, [r1] b _08121CE2 .align 2, 0 _08121AE4: .4byte gUnknown_08400F8C _08121AE8: ldrb r0, [r4, 0x1] cmp r0, 0x2 beq _08121B04 cmp r0, 0x2 bgt _08121AF8 cmp r0, 0x1 beq _08121AFE b _08121B26 _08121AF8: cmp r0, 0x4 beq _08121B0C b _08121B26 _08121AFE: ldrb r4, [r4, 0x3] mov r8, r4 b _08121B26 _08121B04: ldrb r1, [r4, 0x3] ldrb r0, [r4, 0x4] lsls r0, 8 b _08121B22 _08121B0C: ldrb r0, [r4, 0x3] mov r8, r0 ldrb r0, [r4, 0x4] lsls r0, 8 mov r1, r8 orrs r1, r0 ldrb r0, [r4, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r4, 0x6] lsls r0, 24 _08121B22: orrs r1, r0 mov r8, r1 _08121B26: adds r4, r5, r7 ldrb r3, [r4, 0x2] adds r0, r6, 0 mov r1, r8 movs r2, 0 bl ConvertIntToDecimalStringN adds r0, r5, 0x3 ldrb r4, [r4, 0x1] adds r5, r0, r4 b _08121D04 _08121B3C: adds r0, r5, r7 ldrb r1, [r0, 0x1] ldrb r0, [r0, 0x2] lsls r0, 8 orrs r1, r0 movs r0, 0xD muls r1, r0 ldr r0, _08121B50 adds r1, r0 b _08121CE2 .align 2, 0 _08121B50: .4byte gMoveNames _08121B54: adds r0, r5, r7 ldrb r0, [r0, 0x1] lsls r1, r0, 3 subs r1, r0 ldr r0, _08121B60 b _08121C66 .align 2, 0 _08121B60: .4byte gTypeNames _08121B64: ldrb r0, [r4, 0x1] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08121B88 ldrb r1, [r4, 0x2] movs r0, 0x64 muls r0, r1 ldr r1, _08121B84 adds r0, r1 movs r1, 0x2 mov r2, sp bl PokemonGetField b _08121BC4 .align 2, 0 _08121B84: .4byte 0x03004360 _08121B88: ldr r0, _08121BA0 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08121BA8 ldr r1, _08121BA4 adds r0, r6, 0 bl StringAppend b _08121BB0 .align 2, 0 _08121BA0: .4byte 0x020239f8 _08121BA4: .4byte gUnknown_08400797 _08121BA8: ldr r1, _08121BD4 adds r0, r6, 0 bl StringAppend _08121BB0: adds r0, r5, r7 ldrb r1, [r0, 0x2] movs r0, 0x64 muls r0, r1 ldr r1, _08121BD8 adds r0, r1 movs r1, 0x2 mov r2, sp bl PokemonGetField _08121BC4: mov r0, sp bl StringGetEnd10 adds r0, r6, 0 mov r1, sp bl StringAppend b _08121D02 .align 2, 0 _08121BD4: .4byte gUnknown_08400791 _08121BD8: .4byte 0x030045c0 _08121BDC: ldr r1, _08121BEC adds r0, r5, r7 ldrb r0, [r0, 0x1] lsls r0, 2 adds r0, r1 ldr r1, [r0] b _08121C68 .align 2, 0 _08121BEC: .4byte gUnknown_08400F58 _08121BF0: adds r0, r5, r7 ldrb r1, [r0, 0x1] ldrb r0, [r0, 0x2] lsls r0, 8 orrs r1, r0 adds r0, r6, 0 bl GetSpeciesName b _08121D02 _08121C02: adds r4, r5, r7 ldrb r0, [r4, 0x1] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08121C28 ldrb r1, [r4, 0x2] movs r0, 0x64 muls r0, r1 ldr r1, _08121C24 adds r0, r1 movs r1, 0x2 adds r2, r6, 0 bl PokemonGetField b _08121C3A .align 2, 0 _08121C24: .4byte 0x03004360 _08121C28: ldrb r1, [r4, 0x2] movs r0, 0x64 muls r0, r1 ldr r1, _08121C44 adds r0, r1 movs r1, 0x2 adds r2, r6, 0 bl PokemonGetField _08121C3A: adds r0, r6, 0 bl StringGetEnd10 b _08121D02 .align 2, 0 _08121C44: .4byte 0x030045c0 _08121C48: ldr r1, _08121C58 adds r0, r5, r7 ldrb r0, [r0, 0x1] lsls r0, 2 adds r0, r1 ldr r1, [r0] b _08121C68 .align 2, 0 _08121C58: .4byte gUnknown_08400F78 _08121C5C: adds r0, r5, r7 ldrb r1, [r0, 0x1] movs r0, 0xD muls r1, r0 ldr r0, _08121C74 _08121C66: adds r1, r0 _08121C68: adds r0, r6, 0 bl StringAppend adds r5, 0x2 b _08121D04 .align 2, 0 _08121C74: .4byte gAbilityNames _08121C78: adds r0, r5, r7 ldrb r2, [r0, 0x1] ldrb r0, [r0, 0x2] lsls r0, 8 orrs r2, r0 ldr r0, _08121CC4 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08121CFA cmp r2, 0xAF bne _08121CF0 ldr r2, _08121CC8 ldr r0, _08121CCC ldr r1, _08121CD0 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _08121CD4 ldrb r2, [r1] ldrh r0, [r0, 0x18] cmp r0, r2 bne _08121CE0 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 ldr r0, _08121CD8 adds r1, r0 adds r0, r6, 0 bl StringCopy ldr r1, _08121CDC b _08121CE2 .align 2, 0 _08121CC4: .4byte 0x020239f8 _08121CC8: .4byte 0x03002970 _08121CCC: .4byte 0x02000000 _08121CD0: .4byte 0x000160cb _08121CD4: .4byte 0x02024c0b _08121CD8: .4byte 0x02024df0 _08121CDC: .4byte gUnknown_08400A85 _08121CE0: ldr r1, _08121CEC _08121CE2: adds r0, r6, 0 bl StringAppend b _08121D02 .align 2, 0 _08121CEC: .4byte gUnknown_08400A78 _08121CF0: adds r0, r2, 0 adds r1, r6, 0 bl itemid_copy_name b _08121D02 _08121CFA: adds r0, r2, 0 adds r1, r6, 0 bl itemid_copy_name _08121D02: adds r5, 0x3 _08121D04: adds r0, r7, r5 ldrb r0, [r0] cmp r0, 0xFF beq _08121D0E b _08121A86 _08121D0E: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8121A68 thumb_func_start sub_8121D1C sub_8121D1C: @ 8121D1C push {r4,r5,lr} adds r4, r0, 0 movs r2, 0 ldr r5, _08121D50 ldr r3, _08121D54 _08121D26: cmp r2, 0x4 beq _08121D3C ldrh r1, [r3] cmp r1, 0 bne _08121D32 adds r2, 0x1 _08121D32: ldr r0, [r5] adds r3, 0x2 ldrh r0, [r0] cmp r1, r0 bne _08121D26 _08121D3C: cmp r2, 0 blt _08121D68 cmp r2, 0x2 bgt _08121D5C ldr r1, _08121D58 adds r0, r4, 0 bl StringCopy b _08121D68 .align 2, 0 _08121D50: .4byte 0x02039270 _08121D54: .4byte gUnknown_084016BC _08121D58: .4byte gUnknown_08400E5E _08121D5C: cmp r2, 0x4 bgt _08121D68 ldr r1, _08121D70 adds r0, r4, 0 bl StringCopy _08121D68: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08121D70: .4byte gUnknown_08400E62 thumb_func_end sub_8121D1C thumb_func_start sub_8121D74 sub_8121D74: @ 8121D74 push {r4,r5,lr} adds r3, r0, 0 movs r4, 0 b _08121D7E _08121D7C: adds r3, 0x1 _08121D7E: ldrb r0, [r3] cmp r0, 0xFF bne _08121D7C ldr r1, _08121DB4 ldr r5, _08121DB8 movs r0, 0 lsls r0, 1 adds r2, r0, r1 _08121D8E: cmp r4, 0x4 beq _08121DA8 ldrh r1, [r2] cmp r1, 0 bne _08121D9A adds r4, 0x1 _08121D9A: ldr r0, [r5] adds r2, 0x2 ldrh r0, [r0] cmp r1, r0 bne _08121D8E cmp r4, 0x4 bhi _08121E04 _08121DA8: lsls r0, r4, 2 ldr r1, _08121DBC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08121DB4: .4byte gUnknown_084016BC _08121DB8: .4byte 0x02039270 _08121DBC: .4byte _08121DC0 .align 2, 0 _08121DC0: .4byte _08121DD4 .4byte _08121DDC .4byte _08121DE4 .4byte _08121DEC .4byte _08121DFC _08121DD4: ldr r1, _08121DD8 b _08121DEE .align 2, 0 _08121DD8: .4byte gUnknown_084007C8 _08121DDC: ldr r1, _08121DE0 b _08121DEE .align 2, 0 _08121DE0: .4byte gUnknown_084007CA _08121DE4: ldr r1, _08121DE8 b _08121DEE .align 2, 0 _08121DE8: .4byte gUnknown_084007CC _08121DEC: ldr r1, _08121DF8 _08121DEE: adds r0, r3, 0 bl StringCopy b _08121E04 .align 2, 0 _08121DF8: .4byte gUnknown_084007CE _08121DFC: ldr r1, _08121E0C adds r0, r3, 0 bl StringCopy _08121E04: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08121E0C: .4byte gUnknown_084007D0 thumb_func_end sub_8121D74 thumb_func_start sub_8121E10 sub_8121E10: @ 8121E10 push {lr} bl sub_8121E58 ldr r0, _08121E2C ldr r1, _08121E30 adds r0, r1 movs r1, 0 strb r1, [r0] movs r0, 0x4 bl sub_806AFAC pop {r0} bx r0 .align 2, 0 _08121E2C: .4byte 0x0201b000 _08121E30: .4byte 0x00000263 thumb_func_end sub_8121E10 thumb_func_start sub_8121E34 sub_8121E34: @ 8121E34 push {lr} bl sub_8121E58 ldr r0, _08121E50 ldr r1, _08121E54 adds r0, r1 movs r1, 0x1 strb r1, [r0] movs r0, 0x4 movs r1, 0 bl sub_806AFAC pop {r0} bx r0 .align 2, 0 _08121E50: .4byte 0x0201b000 _08121E54: .4byte 0x00000263 thumb_func_end sub_8121E34 thumb_func_start sub_8121E58 sub_8121E58: @ 8121E58 push {lr} movs r1, 0 ldr r3, _08121E74 movs r2, 0 _08121E60: adds r0, r1, r3 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x2 bls _08121E60 pop {r0} bx r0 .align 2, 0 _08121E74: .4byte 0x02039270 thumb_func_end sub_8121E58 thumb_func_start sub_8121E78 sub_8121E78: @ 8121E78 push {r4-r6,lr} ldr r1, _08121E98 movs r2, 0x99 lsls r2, 2 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r4, r1, 0 cmp r0, 0x7 bls _08121E8E b _08122026 _08121E8E: lsls r0, 2 ldr r1, _08121E9C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08121E98: .4byte 0x0201b000 _08121E9C: .4byte _08121EA0 .align 2, 0 _08121EA0: .4byte _08121EC0 .4byte _08121F00 .4byte _08121F14 .4byte _08121F28 .4byte _08121F54 .4byte _08121F68 .4byte _08121F6E .4byte _08121FF8 _08121EC0: ldr r0, _08121EE8 adds r5, r4, r0 movs r1, 0 ldrsh r3, [r5, r1] ldr r0, _08121EEC ldrb r0, [r0] cmp r3, r0 bge _08121EF4 movs r2, 0x98 lsls r2, 2 adds r0, r4, r2 ldrb r0, [r0] ldrb r1, [r5] movs r2, 0x64 muls r2, r3 ldr r3, _08121EF0 adds r2, r3 bl sub_806D90C b _08122020 .align 2, 0 _08121EE8: .4byte 0x00000266 _08121EEC: .4byte 0x03004350 _08121EF0: .4byte 0x03004360 _08121EF4: movs r0, 0 strh r0, [r5] movs r0, 0x99 lsls r0, 2 adds r1, r4, r0 b _08121FE8 _08121F00: bl sub_806DA98 ldr r1, _08121F10 movs r2, 0x99 lsls r2, 2 adds r1, r2 b _08121FE8 .align 2, 0 _08121F10: .4byte 0x0201b000 _08121F14: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] bl sub_806DC34 movs r2, 0x99 lsls r2, 2 adds r1, r4, r2 b _08121FE8 _08121F28: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] ldr r2, _08121F50 adds r5, r4, r2 ldrb r1, [r5] bl sub_806BD58 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08122020 movs r0, 0 strh r0, [r5] movs r0, 0x99 lsls r0, 2 adds r1, r4, r0 b _08121FE8 .align 2, 0 _08121F50: .4byte 0x00000266 _08121F54: bl sub_806E334 ldr r1, _08121F64 movs r2, 0x99 lsls r2, 2 adds r1, r2 b _08121FE8 .align 2, 0 _08121F64: .4byte 0x0201b000 _08121F68: bl sub_806E0C4 b _08121FE0 _08121F6E: movs r5, 0 b _08121FD8 _08121F72: movs r4, 0 adds r6, r5, 0x1 b _08121F7E _08121F78: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _08121F7E: cmp r4, 0x2 bhi _08121FA0 ldr r0, _08121FC4 adds r0, r4, r0 ldrb r0, [r0] cmp r0, r6 bne _08121F78 lsls r1, r4, 3 subs r1, r4 lsls r1, 25 movs r2, 0xE0 lsls r2, 21 adds r1, r2 lsrs r1, 24 adds r0, r5, 0 bl sub_806BC3C _08121FA0: cmp r4, 0x3 bne _08121FD4 movs r0, 0x64 muls r0, r5 ldr r1, _08121FC8 adds r0, r1 bl sub_8122030 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08121FCC adds r0, r5, 0 movs r1, 0x70 bl sub_806BC3C b _08121FD4 .align 2, 0 _08121FC4: .4byte 0x02039270 _08121FC8: .4byte 0x03004360 _08121FCC: adds r0, r5, 0 movs r1, 0x7E bl sub_806BC3C _08121FD4: lsls r0, r6, 24 lsrs r5, r0, 24 _08121FD8: ldr r0, _08121FF0 ldrb r0, [r0] cmp r5, r0 bcc _08121F72 _08121FE0: ldr r1, _08121FF4 movs r0, 0x99 lsls r0, 2 adds r1, r0 _08121FE8: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _08122026 .align 2, 0 _08121FF0: .4byte 0x03004350 _08121FF4: .4byte 0x0201b000 _08121FF8: ldr r1, _0812201C adds r5, r4, r1 ldrb r0, [r5] bl sub_806B58C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08122020 movs r1, 0 strh r1, [r5] movs r2, 0x99 lsls r2, 2 adds r0, r4, r2 strh r1, [r0] movs r0, 0x1 b _08122028 .align 2, 0 _0812201C: .4byte 0x00000266 _08122020: ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _08122026: movs r0, 0 _08122028: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8121E78 thumb_func_start sub_8122030 sub_8122030: @ 8122030 push {r4,lr} adds r4, r0, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _0812207C ldr r0, _08122058 ldr r1, _0812205C adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08122060 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _0812207C b _081220B6 .align 2, 0 _08122058: .4byte 0x0201b000 _0812205C: .4byte 0x00000263 _08122060: ldr r0, _08122080 ldr r1, _08122084 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08122088 adds r0, r4, 0 movs r1, 0x38 bl PokemonGetField cmp r0, 0x32 bls _08122088 _0812207C: movs r0, 0 b _081220B8 .align 2, 0 _08122080: .4byte gSaveBlock2 _08122084: .4byte 0x00000554 _08122088: adds r0, r4, 0 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r3, r0, 16 ldr r1, _081220C0 movs r0, 0 lsls r0, 1 adds r2, r0, r1 ldrh r0, [r2] ldr r1, _081220C4 cmp r0, r1 beq _081220B6 adds r4, r1, 0 adds r1, r2, 0 _081220A8: ldrh r0, [r1] cmp r0, r3 beq _0812207C adds r1, 0x2 ldrh r0, [r1] cmp r0, r4 bne _081220A8 _081220B6: movs r0, 0x1 _081220B8: pop {r4} pop {r1} bx r1 .align 2, 0 _081220C0: .4byte gUnknown_08405EC4 _081220C4: .4byte 0x0000ffff thumb_func_end sub_8122030 thumb_func_start sub_81220C8 sub_81220C8: @ 81220C8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r1, _081220EC ldr r2, _081220F0 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _081221A2 ldr r0, _081220F4 ldrb r0, [r0, 0x2] cmp r0, 0 bne _08122100 movs r0, 0x11 b _081221A4 .align 2, 0 _081220EC: .4byte 0x0201b000 _081220F0: .4byte 0x00000263 _081220F4: .4byte 0x02039270 _081220F8: movs r0, 0x12 b _081221A4 _081220FC: movs r0, 0x13 b _081221A4 _08122100: movs r5, 0 _08122102: ldr r4, _081221B4 adds r4, r5, r4 ldrb r0, [r4] movs r1, 0x64 muls r0, r1 ldr r2, _081221B8 adds r0, r2 movs r1, 0xB bl PokemonGetField ldr r1, _081221BC ldr r2, _081221C0 adds r6, r1, r2 strh r0, [r6] ldrb r0, [r4] movs r1, 0x64 muls r0, r1 ldr r2, _081221B8 adds r0, r2 movs r1, 0xC bl PokemonGetField ldr r1, _081221C4 strh r0, [r1] adds r1, r5, 0x1 lsls r0, r1, 24 lsrs r5, r0, 24 mov r10, r1 cmp r5, 0x2 bhi _08122198 ldr r2, _081221C8 adds r2, r6 mov r9, r2 movs r0, 0x64 mov r8, r0 ldr r7, _081221B8 _0812214A: ldr r0, _081221C0 add r0, r9 movs r1, 0 ldrsh r4, [r0, r1] ldr r0, _081221B4 adds r6, r5, r0 ldrb r0, [r6] mov r2, r8 muls r2, r0 adds r0, r2, 0 adds r0, r7 movs r1, 0xB bl PokemonGetField cmp r4, r0 beq _081220F8 movs r1, 0xA0 lsls r1, 2 add r1, r9 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _0812218E adds r4, r0, 0 ldrb r0, [r6] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r7 movs r1, 0xC bl PokemonGetField cmp r4, r0 beq _081220FC _0812218E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _0812214A _08122198: mov r2, r10 lsls r0, r2, 24 lsrs r5, r0, 24 cmp r5, 0x1 bls _08122102 _081221A2: movs r0, 0xFF _081221A4: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081221B4: .4byte 0x02039270 _081221B8: .4byte 0x030042fc _081221BC: .4byte 0x0201b000 _081221C0: .4byte 0x00000282 _081221C4: .4byte 0x0201b280 _081221C8: .4byte 0xfffffd7e thumb_func_end sub_81220C8 thumb_func_start sub_81221CC sub_81221CC: @ 81221CC push {lr} lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 ldr r3, _081221E4 _081221D6: adds r0, r1, r3 ldrb r0, [r0] cmp r0, r2 bne _081221E8 movs r0, 0x1 b _081221F4 .align 2, 0 _081221E4: .4byte 0x02039270 _081221E8: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x2 bls _081221D6 movs r0, 0 _081221F4: pop {r1} bx r1 thumb_func_end sub_81221CC thumb_func_start sub_81221F8 sub_81221F8: @ 81221F8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x5 movs r1, 0x1 bl sub_806D538 ldr r5, _08122248 ldrb r1, [r5] movs r0, 0x64 muls r0, r1 ldr r1, _0812224C adds r0, r1 bl sub_8122030 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08122284 ldrb r0, [r5] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 bl sub_81221CC lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x1 bne _0812225C ldr r1, _08122250 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x10] ldr r1, _08122254 ldr r2, _08122258 movs r0, 0x1 b _08122270 .align 2, 0 _08122248: .4byte 0x03005ce0 _0812224C: .4byte 0x03004360 _08122250: .4byte 0x03004b20 _08122254: .4byte gUnknown_084017D8 _08122258: .4byte gUnknown_084017B0 _0812225C: ldr r1, _08122278 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x10] ldr r1, _0812227C ldr r2, _08122280 movs r0, 0 _08122270: movs r3, 0 bl sub_806E750 b _0812229E .align 2, 0 _08122278: .4byte 0x03004b20 _0812227C: .4byte gUnknown_084017D8 _08122280: .4byte gUnknown_084017B0 _08122284: ldr r1, _081222A4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x2 strh r1, [r0, 0x10] ldr r1, _081222A8 ldr r2, _081222AC movs r0, 0x2 movs r3, 0 bl sub_806E750 _0812229E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081222A4: .4byte 0x03004b20 _081222A8: .4byte gUnknown_084017D8 _081222AC: .4byte gUnknown_084017B0 thumb_func_end sub_81221F8 thumb_func_start sub_81222B0 sub_81222B0: @ 81222B0 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _081222DC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0812237C adds r0, r4, 0 bl sub_806BE38 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 beq _081222E0 cmp r0, 0x2 beq _08122354 b _0812237C .align 2, 0 _081222DC: .4byte 0x0202f388 _081222E0: movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_806CA38 ldr r1, _08122320 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 beq _08122334 ldrb r1, [r1] movs r0, 0x64 muls r0, r1 ldr r1, _08122324 adds r0, r1 ldr r1, _08122328 bl GetMonNickname adds r0, r4, 0 bl sub_81221F8 ldr r1, _0812232C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08122330 str r1, [r0] b _08122342 .align 2, 0 _08122320: .4byte 0x03005ce0 _08122324: .4byte 0x03004360 _08122328: .4byte 0x020231cc _0812232C: .4byte 0x03004b20 _08122330: .4byte sub_812238C _08122334: ldr r0, _0812234C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08122350 str r0, [r1] _08122342: adds r0, r4, 0 bl sub_808B5B4 b _0812237C .align 2, 0 _0812234C: .4byte 0x03004b20 _08122350: .4byte sub_81224A8 _08122354: movs r0, 0x5 bl audio_play bl sub_8121E58 movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _08122384 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08122388 str r1, [r0] _0812237C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08122384: .4byte 0x03004b20 _08122388: .4byte sub_8122450 thumb_func_end sub_81222B0 thumb_func_start sub_812238C sub_812238C: @ 812238C push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 adds r4, r7, 0 ldr r0, _081223C8 ldrb r1, [r0, 0x7] movs r3, 0x80 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0812244A ldr r2, _081223CC ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _081223D0 bl GetMenuCursorPos lsls r0, 24 cmp r0, 0 beq _0812244A movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 bl MoveMenuCursor b _0812244A .align 2, 0 _081223C8: .4byte 0x0202f388 _081223CC: .4byte 0x03001770 _081223D0: adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _081223F2 bl GetMenuCursorPos lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _0812244A movs r0, 0x5 bl audio_play movs r0, 0x1 bl MoveMenuCursor b _0812244A _081223F2: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0812243C movs r0, 0x5 bl audio_play ldr r1, _08122430 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrb r4, [r0, 0x10] ldr r5, _08122434 ldr r6, _08122438 bl GetMenuCursorPos adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_806E81C adds r1, r0, 0 adds r0, r7, 0 bl _call_via_r1 b _0812244A .align 2, 0 _08122430: .4byte 0x03004b20 _08122434: .4byte gUnknown_084017D8 _08122438: .4byte gUnknown_084017B0 _0812243C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0812244A adds r0, r4, 0 bl sub_8122838 _0812244A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_812238C thumb_func_start sub_8122450 sub_8122450: @ 8122450 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08122478 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08122470 ldr r0, _0812247C ldr r0, [r0, 0x8] bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _08122470: pop {r4} pop {r0} bx r0 .align 2, 0 _08122478: .4byte 0x0202f388 _0812247C: .4byte 0x03001770 thumb_func_end sub_8122450 thumb_func_start sub_8122480 sub_8122480: @ 8122480 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _081224A4 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0812249A movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081224A0 _0812249A: adds r0, r2, 0 bl sub_8122838 _081224A0: pop {r0} bx r0 .align 2, 0 _081224A4: .4byte 0x03001770 thumb_func_end sub_8122480 thumb_func_start sub_81224A8 sub_81224A8: @ 81224A8 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl sub_81220C8 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _081224D0 movs r1, 0 bl sub_806D538 ldr r0, _081224CC lsls r1, r4, 2 adds r1, r4 b _08122518 .align 2, 0 _081224CC: .4byte 0x03004b20 _081224D0: ldr r0, _081224F8 ldrb r0, [r0] cmp r0, 0 beq _08122504 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _081224FC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08122500 str r1, [r0] b _08122520 .align 2, 0 _081224F8: .4byte 0x02039270 _081224FC: .4byte 0x03004b20 _08122500: .4byte sub_8122450 _08122504: movs r0, 0x20 bl audio_play movs r0, 0xE movs r1, 0 bl sub_806D538 ldr r0, _08122528 lsls r1, r5, 2 adds r1, r5 _08122518: lsls r1, 3 adds r1, r0 ldr r0, _0812252C str r0, [r1] _08122520: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08122528: .4byte 0x03004b20 _0812252C: .4byte sub_8122480 thumb_func_end sub_81224A8 thumb_func_start sub_8122530 sub_8122530: @ 8122530 push {r4,r5,lr} ldr r5, _08122578 ldr r4, _0812257C _08122536: bl sub_806B124 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08122590 ldrb r0, [r5] ldrb r1, [r4] bl sub_806C994 ldrb r0, [r5] movs r1, 0 bl sub_806C658 ldrb r1, [r4] movs r0, 0x64 muls r0, r1 ldr r1, _08122580 adds r0, r1 ldr r1, _08122584 bl GetMonNickname ldr r1, _08122588 ldrb r0, [r4] strb r0, [r1] ldrb r0, [r5] bl sub_81221F8 ldr r0, _0812258C bl SetMainCallback2 b _0812259C .align 2, 0 _08122578: .4byte 0x0201b260 _0812257C: .4byte 0x020384f0 _08122580: .4byte 0x03004360 _08122584: .4byte 0x020231cc _08122588: .4byte 0x03005ce0 _0812258C: .4byte sub_806AEDC _08122590: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08122536 _0812259C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8122530 thumb_func_start sub_81225A4 sub_81225A4: @ 81225A4 push {lr} ldr r2, _081225C8 ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r2, _081225CC movs r0, 0x4 movs r1, 0xFF movs r3, 0x5 bl sub_806AF4C ldr r0, _081225D0 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _081225C8: .4byte 0x0202f388 _081225CC: .4byte sub_812238C _081225D0: .4byte sub_8122530 thumb_func_end sub_81225A4 thumb_func_start sub_81225D4 sub_81225D4: @ 81225D4 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r3, r0, 24 ldr r0, _0812263C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08122632 ldr r2, _08122640 ldr r1, _08122644 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0xE] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r4, [r0, 0x2E] lsls r4, 24 lsrs r4, 24 adds r0, r3, 0 bl DestroyTask ldr r0, _08122648 ldr r1, _0812264C adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, _08122650 ldr r1, _08122654 ldrb r2, [r1] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, _08122658 str r5, [sp] adds r1, r4, 0 bl sub_809D8BC _08122632: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812263C: .4byte 0x0202f388 _08122640: .4byte 0x02020004 _08122644: .4byte 0x03004b20 _08122648: .4byte 0x0201b000 _0812264C: .4byte 0x00000262 _08122650: .4byte 0x03004360 _08122654: .4byte 0x03004350 _08122658: .4byte sub_81225A4 thumb_func_end sub_81225D4 thumb_func_start sub_812265C sub_812265C: @ 812265C 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, _0812268C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08122690 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0812268C: .4byte 0x03004b20 _08122690: .4byte sub_81225D4 thumb_func_end sub_812265C thumb_func_start sub_8122694 sub_8122694: @ 8122694 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r3, _081226D4 ldr r2, _081226D8 _081226A0: adds r1, r4, r3 ldrb r0, [r1] cmp r0, 0 bne _081226DC ldrb r0, [r2] adds r0, 0x1 strb r0, [r1] ldrb r0, [r2] lsls r1, r4, 3 subs r1, r4 lsls r1, 25 movs r2, 0xE0 lsls r2, 21 adds r1, r2 lsrs r1, 24 bl sub_806BC3C cmp r4, 0x2 bne _081226CC adds r0, r5, 0 bl sub_806C890 _081226CC: adds r0, r5, 0 bl sub_8122838 b _08122716 .align 2, 0 _081226D4: .4byte 0x02039270 _081226D8: .4byte 0x03005ce0 _081226DC: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _081226A0 movs r0, 0x20 bl audio_play movs r0, 0x14 movs r1, 0xA movs r2, 0x1D movs r3, 0x13 bl Reset bl sub_8072DEC bl sub_806D5A4 ldr r0, _0812271C movs r1, 0x1 bl sub_806E834 ldr r1, _08122720 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _08122724 str r1, [r0] _08122716: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812271C: .4byte gUnknown_0840F0C2 _08122720: .4byte 0x03004b20 _08122724: .4byte sub_8122728 thumb_func_end sub_8122694 thumb_func_start sub_8122728 sub_8122728: @ 8122728 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08122768 ldrb r0, [r0] cmp r0, 0x1 beq _08122760 ldr r0, _0812276C ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0812274A movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08122760 _0812274A: movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl Reset bl sub_8072DEC adds r0, r4, 0 bl sub_8122838 _08122760: pop {r4} pop {r0} bx r0 .align 2, 0 _08122768: .4byte 0x0202e8f6 _0812276C: .4byte 0x03001770 thumb_func_end sub_8122728 thumb_func_start sub_8122770 sub_8122770: @ 8122770 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r5, _08122798 ldr r3, _0812279C _0812277C: adds r2, r4, r3 ldrb r1, [r2] ldrb r0, [r5] adds r0, 0x1 cmp r1, r0 bne _081227B4 movs r1, 0 strb r1, [r2] cmp r4, 0 beq _081227A0 cmp r4, 0x1 beq _081227AC b _081227BE .align 2, 0 _08122798: .4byte 0x03005ce0 _0812279C: .4byte 0x02039270 _081227A0: ldrb r0, [r3, 0x1] strb r0, [r3] ldrb r0, [r3, 0x2] strb r0, [r3, 0x1] strb r4, [r3, 0x2] b _081227BE _081227AC: ldrb r0, [r3, 0x2] strb r0, [r3, 0x1] strb r1, [r3, 0x2] b _081227BE _081227B4: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _0812277C _081227BE: ldrb r0, [r5] movs r1, 0x70 bl sub_806BC3C ldr r4, _081227F8 ldrb r0, [r4] cmp r0, 0 beq _081227DA subs r0, 0x1 lsls r0, 24 lsrs r0, 24 movs r1, 0x1C bl sub_806BC3C _081227DA: ldrb r0, [r4, 0x1] cmp r0, 0 beq _081227EC subs r0, 0x1 lsls r0, 24 lsrs r0, 24 movs r1, 0x2A bl sub_806BC3C _081227EC: adds r0, r6, 0 bl sub_8122838 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081227F8: .4byte 0x02039270 thumb_func_end sub_8122770 thumb_func_start sub_81227FC sub_81227FC: @ 81227FC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0xA movs r2, 0x1D movs r3, 0x13 bl Reset bl sub_8072DEC movs r0, 0 movs r1, 0 bl sub_806D538 ldr r1, _08122830 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08122834 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08122830: .4byte 0x03004b20 _08122834: .4byte sub_81222B0 thumb_func_end sub_81227FC thumb_func_start sub_8122838 sub_8122838: @ 8122838 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_81227FC pop {r4} pop {r0} bx r0 thumb_func_end sub_8122838 thumb_func_start sub_8122854 sub_8122854: @ 8122854 push {r4,lr} ldr r1, _08122874 movs r2, 0x99 lsls r2, 2 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r4, r1, 0 cmp r0, 0x4 bhi _081228E0 lsls r0, 2 ldr r1, _08122878 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08122874: .4byte 0x0201b000 _08122878: .4byte _0812287C .align 2, 0 _0812287C: .4byte _08122890 .4byte _081228A4 .4byte _081228AA .4byte _081228BE .4byte _081228D8 _08122890: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] bl sub_81228E8 movs r2, 0x99 lsls r2, 2 adds r1, r4, r2 b _081228CA _081228A4: bl sub_806DA98 b _081228C2 _081228AA: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] bl sub_8122950 movs r2, 0x99 lsls r2, 2 adds r1, r4, r2 b _081228CA _081228BE: bl sub_81229B8 _081228C2: ldr r1, _081228D4 movs r0, 0x99 lsls r0, 2 adds r1, r0 _081228CA: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _081228E0 .align 2, 0 _081228D4: .4byte 0x0201b000 _081228D8: bl sub_806B908 movs r0, 0x1 b _081228E2 _081228E0: movs r0, 0 _081228E2: pop {r4} pop {r1} bx r1 thumb_func_end sub_8122854 thumb_func_start sub_81228E8 sub_81228E8: @ 81228E8 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 _081228F0: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _08122948 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _08122912 adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x3 adds r3, r4, 0 bl sub_806D880 _08122912: ldr r0, _0812294C lsls r1, r5, 5 adds r3, r1, r0 ldrh r0, [r3] cmp r0, 0 beq _08122936 adds r4, r5, 0x3 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x3 bl sub_806D99C adds r0, r6, 0 adds r1, r4, 0 bl sub_806D50C _08122936: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _081228F0 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08122948: .4byte 0x03004360 _0812294C: .4byte 0x02023a00 thumb_func_end sub_81228E8 thumb_func_start sub_8122950 sub_8122950: @ 8122950 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 _08122958: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _081229B0 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _08122984 adds r0, r4, 0 movs r1, 0xC bl PokemonGetField adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 adds r0, r6, 0 adds r1, r5, 0 bl sub_806DCD4 _08122984: ldr r0, _081229B4 lsls r1, r5, 5 adds r2, r1, r0 ldrh r0, [r2] cmp r0, 0 beq _0812299E adds r1, r5, 0x3 lsls r1, 24 lsrs r1, 24 ldrh r2, [r2, 0x2] adds r0, r6, 0 bl sub_806DCD4 _0812299E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _08122958 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081229B0: .4byte 0x03004360 _081229B4: .4byte 0x02023a00 thumb_func_end sub_8122950 thumb_func_start sub_81229B8 sub_81229B8: @ 81229B8 push {r4-r7,lr} movs r5, 0 movs r7, 0x64 ldr r6, _08122A00 _081229C0: adds r0, r5, 0 muls r0, r7 adds r4, r0, r6 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _08122A36 adds r0, r5, 0 movs r1, 0x3 adds r2, r4, 0 bl sub_806E4A4 adds r0, r4, 0 bl sub_80A1CD8 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08122A04 cmp r0, 0x6 beq _08122A04 subs r2, r0, 0x1 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 movs r1, 0x3 bl sub_806E104 b _08122A12 .align 2, 0 _08122A00: .4byte 0x03004360 _08122A04: adds r2, r5, 0 muls r2, r7 adds r2, r6 adds r0, r5, 0 movs r1, 0x3 bl sub_806E294 _08122A12: adds r4, r5, 0 muls r4, r7 adds r4, r6 adds r0, r5, 0 movs r1, 0x3 adds r2, r4, 0 bl sub_806E3C0 adds r0, r5, 0 movs r1, 0x3 adds r2, r4, 0 bl sub_806E050 adds r0, r5, 0 movs r1, 0x3 adds r2, r4, 0 bl sub_806E630 _08122A36: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _081229C0 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81229B8 thumb_func_start sub_8122A48 sub_8122A48: @ 8122A48 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _08122AA0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08122A98 ldr r0, _08122AA4 lsls r4, r6, 2 adds r4, r6 lsls r4, 3 adds r4, r0 movs r0, 0x1E strh r0, [r4, 0x8] ldr r5, _08122AA8 ldrh r1, [r5] adds r0, r6, 0 movs r2, 0 bl sub_806D4AC ldrh r1, [r5, 0x20] adds r0, r6, 0 movs r2, 0x1 bl sub_806D4AC adds r5, 0x40 ldrh r1, [r5] adds r0, r6, 0 movs r2, 0x2 bl sub_806D4AC ldr r0, _08122AAC str r0, [r4] ldr r0, _08122AB0 ldr r1, _08122AB4 adds r0, r1 movs r1, 0x1 strb r1, [r0] _08122A98: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08122AA0: .4byte 0x0202f388 _08122AA4: .4byte 0x03004b20 _08122AA8: .4byte 0x02023a00 _08122AAC: .4byte sub_8122AB8 _08122AB0: .4byte 0x0201b000 _08122AB4: .4byte 0x00000261 thumb_func_end sub_8122A48 thumb_func_start sub_8122AB8 sub_8122AB8: @ 8122AB8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _08122AFC ldrh r1, [r0, 0x20] adds r0, 0x40 ldrh r2, [r0] adds r0, r4, 0 bl sub_806D3B4 ldr r1, _08122B00 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _08122AF4 ldr r0, _08122B04 str r0, [r1] ldr r0, _08122B08 ldr r1, _08122B0C adds r0, r1 movs r1, 0x2 strb r1, [r0] movs r0, 0x78 bl audio_play _08122AF4: pop {r4} pop {r0} bx r0 .align 2, 0 _08122AFC: .4byte 0x02023a00 _08122B00: .4byte 0x03004b20 _08122B04: .4byte sub_8122B10 _08122B08: .4byte 0x0201b000 _08122B0C: .4byte 0x00000261 thumb_func_end sub_8122AB8 thumb_func_start sub_8122B10 sub_8122B10: @ 8122B10 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r0, 0 mov r8, r0 ldr r1, _08122B5C mov r10, r1 ldr r2, _08122B60 mov r9, r2 _08122B2E: mov r1, r8 lsls r0, r1, 5 mov r2, r10 adds r6, r0, r2 ldrh r1, [r6] adds r7, r0, 0 cmp r1, 0 beq _08122BDA mov r4, r8 adds r4, 0x3 lsls r0, r4, 24 lsrs r5, r0, 24 ldrh r2, [r6, 0x10] ldrh r3, [r6, 0x12] adds r0, r5, 0 movs r1, 0x3 bl sub_806E420 ldrh r0, [r6, 0x10] cmp r0, 0 bne _08122B64 movs r2, 0x7 b _08122B76 .align 2, 0 _08122B5C: .4byte 0x02023a00 _08122B60: .4byte 0x020231cc _08122B64: ldr r1, _08122B88 adds r0, r7, r1 ldr r0, [r0] bl pokemon_ailments_get_primary lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _08122B8C _08122B76: lsls r0, r4, 24 lsrs r0, 24 subs r2, 0x1 lsls r2, 24 lsrs r2, 24 movs r1, 0x3 bl sub_806E104 b _08122B96 .align 2, 0 _08122B88: .4byte 0x02023a14 _08122B8C: ldrb r2, [r6, 0xF] adds r0, r5, 0 movs r1, 0x3 bl sub_806E1F4 _08122B96: mov r2, r10 adds r6, r7, r2 ldrh r0, [r6] ldrb r1, [r6, 0x1C] lsls r4, 24 lsrs r4, 24 ldr r2, _08122C0C adds r5, r7, r2 str r5, [sp] movs r2, 0x3 adds r3, r4, 0 bl sub_806E35C mov r0, r9 adds r1, r5, 0 bl StringCopy mov r0, r9 bl StringGetEnd10 mov r0, r9 bl sub_814A568 adds r0, r4, 0 movs r1, 0x3 mov r2, r9 bl box_print ldrh r2, [r6, 0x10] ldrh r3, [r6, 0x12] adds r0, r4, 0 movs r1, 0x3 bl sub_806E574 _08122BDA: mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x2 bls _08122B2E ldr r1, _08122C10 ldr r2, [sp, 0x4] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 ldr r1, _08122C14 str r1, [r0] movs r1, 0 strh r1, [r0, 0x8] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08122C0C: .4byte 0x02023a04 _08122C10: .4byte 0x03004b20 _08122C14: .4byte sub_8122C18 thumb_func_end sub_8122B10 thumb_func_start sub_8122C18 sub_8122C18: @ 8122C18 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, _08122C58 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] lsls r0, 16 movs r1, 0x80 lsls r1, 17 cmp r0, r1 bne _08122C4E movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08122C5C str r0, [r4] _08122C4E: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08122C58: .4byte 0x03004b20 _08122C5C: .4byte sub_8122450 thumb_func_end sub_8122C18 thumb_func_start unref_sub_8122C60 unref_sub_8122C60: @ 8122C60 push {r4,r5,lr} ldr r1, _08122C80 movs r2, 0x99 lsls r2, 2 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r4, r1, 0 cmp r0, 0x7 bls _08122C76 b _08122D8A _08122C76: lsls r0, 2 ldr r1, _08122C84 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08122C80: .4byte 0x0201b000 _08122C84: .4byte _08122C88 .align 2, 0 _08122C88: .4byte _08122CA8 .4byte _08122CE8 .4byte _08122CEE .4byte _08122D02 .4byte _08122D2C .4byte _08122D32 .4byte _08122D44 .4byte _08122D5C _08122CA8: ldr r0, _08122CD0 adds r5, r4, r0 movs r1, 0 ldrsh r3, [r5, r1] ldr r0, _08122CD4 ldrb r0, [r0] cmp r3, r0 bge _08122CDC movs r2, 0x98 lsls r2, 2 adds r0, r4, r2 ldrb r0, [r0] ldrb r1, [r5] movs r2, 0x64 muls r2, r3 ldr r3, _08122CD8 adds r2, r3 bl sub_806D90C b _08122D84 .align 2, 0 _08122CD0: .4byte 0x00000266 _08122CD4: .4byte 0x03004350 _08122CD8: .4byte 0x03004360 _08122CDC: movs r0, 0 strh r0, [r5] movs r0, 0x99 lsls r0, 2 adds r1, r4, r0 b _08122D50 _08122CE8: bl sub_806DA98 b _08122D48 _08122CEE: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] bl sub_806DC34 movs r2, 0x99 lsls r2, 2 adds r1, r4, r2 b _08122D50 _08122D02: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] ldr r2, _08122D28 adds r5, r4, r2 ldrb r1, [r5] bl sub_806BD58 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08122D84 movs r0, 0 strh r0, [r5] movs r0, 0x99 lsls r0, 2 adds r1, r4, r0 b _08122D50 .align 2, 0 _08122D28: .4byte 0x00000266 _08122D2C: bl sub_806E334 b _08122D48 _08122D32: bl sub_806E0C4 ldr r1, _08122D40 movs r0, 0x99 lsls r0, 2 adds r1, r0 b _08122D50 .align 2, 0 _08122D40: .4byte 0x0201b000 _08122D44: bl sub_806BCE8 _08122D48: ldr r1, _08122D58 movs r2, 0x99 lsls r2, 2 adds r1, r2 _08122D50: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _08122D8A .align 2, 0 _08122D58: .4byte 0x0201b000 _08122D5C: ldr r0, _08122D80 adds r5, r4, r0 ldrb r0, [r5] bl sub_806B58C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08122D84 movs r1, 0 strh r1, [r5] movs r2, 0x99 lsls r2, 2 adds r0, r4, r2 strh r1, [r0] movs r0, 0x1 b _08122D8C .align 2, 0 _08122D80: .4byte 0x00000266 _08122D84: ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _08122D8A: movs r0, 0 _08122D8C: pop {r4,r5} pop {r1} bx r1 thumb_func_end unref_sub_8122C60 thumb_func_start sub_8122D94 sub_8122D94: @ 8122D94 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08122DCC ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08122DD0 adds r0, r1 movs r1, 0x2D bl PokemonGetField adds r2, r0, 0 cmp r2, 0 bne _08122DE0 ldr r1, _08122DD4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x10] ldr r1, _08122DD8 ldr r2, _08122DDC movs r0, 0 movs r3, 0 bl sub_806E750 b _08122DFA .align 2, 0 _08122DCC: .4byte 0x03005ce0 _08122DD0: .4byte 0x03004360 _08122DD4: .4byte 0x03004b20 _08122DD8: .4byte gUnknown_08401810 _08122DDC: .4byte gUnknown_084017F0 _08122DE0: ldr r1, _08122E00 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x1 strh r1, [r0, 0x10] ldr r1, _08122E04 ldr r2, _08122E08 movs r0, 0x1 movs r3, 0 bl sub_806E750 _08122DFA: pop {r4} pop {r0} bx r0 .align 2, 0 _08122E00: .4byte 0x03004b20 _08122E04: .4byte gUnknown_08401810 _08122E08: .4byte gUnknown_084017F0 thumb_func_end sub_8122D94 thumb_func_start sub_8122E0C sub_8122E0C: @ 8122E0C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08122E34 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08122E9C adds r0, r4, 0 bl sub_806BD80 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 beq _08122E38 cmp r0, 0x2 beq _08122E84 b _08122E9C .align 2, 0 _08122E34: .4byte 0x0202f388 _08122E38: movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_806CA38 ldr r1, _08122E70 strb r0, [r1] ldrb r1, [r1] movs r0, 0x64 muls r0, r1 ldr r1, _08122E74 adds r0, r1 ldr r1, _08122E78 bl GetMonNickname adds r0, r4, 0 bl sub_8122D94 ldr r1, _08122E7C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08122E80 str r1, [r0] b _08122E9C .align 2, 0 _08122E70: .4byte 0x03005ce0 _08122E74: .4byte 0x03004360 _08122E78: .4byte 0x020231cc _08122E7C: .4byte 0x03004b20 _08122E80: .4byte sub_8122EAC _08122E84: movs r0, 0x5 bl audio_play ldr r1, _08122EA4 movs r0, 0xFF strb r0, [r1] ldr r1, _08122EA8 movs r0, 0xFF strh r0, [r1] adds r0, r4, 0 bl sub_8123138 _08122E9C: pop {r4} pop {r0} bx r0 .align 2, 0 _08122EA4: .4byte 0x03005ce0 _08122EA8: .4byte 0x0202e8cc thumb_func_end sub_8122E0C thumb_func_start sub_8122EAC sub_8122EAC: @ 8122EAC push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 adds r4, r7, 0 ldr r0, _08122EE8 ldrb r1, [r0, 0x7] movs r3, 0x80 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _08122F6A ldr r2, _08122EEC ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08122EF0 bl GetMenuCursorPos lsls r0, 24 cmp r0, 0 beq _08122F6A movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 bl MoveMenuCursor b _08122F6A .align 2, 0 _08122EE8: .4byte 0x0202f388 _08122EEC: .4byte 0x03001770 _08122EF0: adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08122F12 bl GetMenuCursorPos lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _08122F6A movs r0, 0x5 bl audio_play movs r0, 0x1 bl MoveMenuCursor b _08122F6A _08122F12: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08122F5C movs r0, 0x5 bl audio_play ldr r1, _08122F50 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrb r4, [r0, 0x10] ldr r5, _08122F54 ldr r6, _08122F58 bl GetMenuCursorPos adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_806E81C adds r1, r0, 0 adds r0, r7, 0 bl _call_via_r1 b _08122F6A .align 2, 0 _08122F50: .4byte 0x03004b20 _08122F54: .4byte gUnknown_08401810 _08122F58: .4byte gUnknown_084017F0 _08122F5C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08122F6A adds r0, r4, 0 bl sub_81230F4 _08122F6A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8122EAC thumb_func_start sub_8122F70 sub_8122F70: @ 8122F70 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _08122F88 ldr r1, _08122F8C ldrb r1, [r1] strh r1, [r2] bl sub_8123138 pop {r0} bx r0 .align 2, 0 _08122F88: .4byte 0x0202e8cc _08122F8C: .4byte 0x03005ce0 thumb_func_end sub_8122F70 thumb_func_start sub_8122F90 sub_8122F90: @ 8122F90 push {r4,r5,lr} ldr r5, _08122FD8 ldr r4, _08122FDC _08122F96: bl sub_806B124 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08122FF0 ldrb r0, [r5] ldrb r1, [r4] bl sub_806C994 ldrb r0, [r5] movs r1, 0 bl sub_806BF74 ldrb r1, [r4] movs r0, 0x64 muls r0, r1 ldr r1, _08122FE0 adds r0, r1 ldr r1, _08122FE4 bl GetMonNickname ldr r1, _08122FE8 ldrb r0, [r4] strb r0, [r1] ldrb r0, [r5] bl sub_8122D94 ldr r0, _08122FEC bl SetMainCallback2 b _08122FFC .align 2, 0 _08122FD8: .4byte 0x0201b260 _08122FDC: .4byte 0x020384f0 _08122FE0: .4byte 0x03004360 _08122FE4: .4byte 0x020231cc _08122FE8: .4byte 0x03005ce0 _08122FEC: .4byte sub_806AEDC _08122FF0: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08122F96 _08122FFC: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8122F90 thumb_func_start sub_8123004 sub_8123004: @ 8123004 push {lr} ldr r2, _08123028 ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r2, _0812302C movs r0, 0x6 movs r1, 0xFF movs r3, 0x5 bl sub_806AF4C ldr r0, _08123030 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _08123028: .4byte 0x0202f388 _0812302C: .4byte sub_8122EAC _08123030: .4byte sub_8122F90 thumb_func_end sub_8123004 thumb_func_start sub_8123034 sub_8123034: @ 8123034 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r3, r0, 24 ldr r0, _0812309C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08123092 ldr r2, _081230A0 ldr r1, _081230A4 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0xE] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r4, [r0, 0x2E] lsls r4, 24 lsrs r4, 24 adds r0, r3, 0 bl DestroyTask ldr r0, _081230A8 ldr r1, _081230AC adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, _081230B0 ldr r1, _081230B4 ldrb r2, [r1] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, _081230B8 str r5, [sp] adds r1, r4, 0 bl sub_809D8BC _08123092: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812309C: .4byte 0x0202f388 _081230A0: .4byte 0x02020004 _081230A4: .4byte 0x03004b20 _081230A8: .4byte 0x0201b000 _081230AC: .4byte 0x00000262 _081230B0: .4byte 0x03004360 _081230B4: .4byte 0x03004350 _081230B8: .4byte sub_8123004 thumb_func_end sub_8123034 thumb_func_start sub_81230BC sub_81230BC: @ 81230BC 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, _081230EC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _081230F0 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _081230EC: .4byte 0x03004b20 _081230F0: .4byte sub_8123034 thumb_func_end sub_81230BC thumb_func_start sub_81230F4 sub_81230F4: @ 81230F4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl audio_play movs r0, 0x14 movs r1, 0xA movs r2, 0x1D movs r3, 0x13 bl Reset bl sub_8072DEC movs r0, 0xF movs r1, 0 bl sub_806D538 ldr r1, _08123130 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08123134 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08123130: .4byte 0x03004b20 _08123134: .4byte sub_8122E0C thumb_func_end sub_81230F4 thumb_func_start sub_8123138 sub_8123138: @ 8123138 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, _08123168 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0812316C str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08123168: .4byte 0x03004b20 _0812316C: .4byte sub_8123170 thumb_func_end sub_8123138 thumb_func_start sub_8123170 sub_8123170: @ 8123170 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0812319C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08123194 ldr r0, _081231A0 ldr r1, _081231A4 str r1, [r0] ldr r0, _081231A8 bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _08123194: pop {r4} pop {r0} bx r0 .align 2, 0 _0812319C: .4byte 0x0202f388 _081231A0: .4byte 0x0300485c _081231A4: .4byte sub_81231AC _081231A8: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_8123170 thumb_func_start sub_81231AC sub_81231AC: @ 81231AC push {lr} bl pal_fill_black ldr r0, _081231C0 movs r1, 0xA bl CreateTask pop {r0} bx r0 .align 2, 0 _081231C0: .4byte sub_81231C4 thumb_func_end sub_81231AC thumb_func_start sub_81231C4 sub_81231C4: @ 81231C4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081231E4 adds r0, r4, 0 bl DestroyTask bl script_env_2_disable bl script_env_2_enable_and_set_ctx_running _081231E4: pop {r4} pop {r0} bx r0 thumb_func_end sub_81231C4 thumb_func_start sub_81231EC sub_81231EC: @ 81231EC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08123210 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0812320A ldr r0, _08123214 bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _0812320A: pop {r4} pop {r0} bx r0 .align 2, 0 _08123210: .4byte 0x0202f388 _08123214: .4byte sub_8123244 thumb_func_end sub_81231EC thumb_func_start sub_8123218 sub_8123218: @ 8123218 push {lr} sub sp, 0x4 bl script_env_2_enable ldr r0, _08123240 movs r1, 0x1 bl CreateTask movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08123240: .4byte sub_81231EC thumb_func_end sub_8123218 thumb_func_start sub_8123244 sub_8123244: @ 8123244 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 ldr r1, _08123268 ldr r2, _0812326C adds r0, r1, r2 ldrb r0, [r0] mov r9, r1 cmp r0, 0x8 bhi _08123298 lsls r0, 2 ldr r1, _08123270 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08123268: .4byte 0x03001770 _0812326C: .4byte 0x0000043c _08123270: .4byte _08123274 .align 2, 0 _08123274: .4byte _08123298 .4byte _08123384 .4byte _081233E8 .4byte _08123484 .4byte _081234A0 .4byte _08123504 .4byte _08123598 .4byte _08123678 .4byte _081236B0 _08123298: movs r0, 0 bl SetVBlankCallback bl remove_some_task movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 add r0, sp, 0xC mov r9, r0 add r2, sp, 0x8 movs r6, 0 ldr r1, _08123368 movs r5, 0x80 lsls r5, 5 ldr r7, _0812336C movs r0, 0x81 lsls r0, 24 mov r8, r0 _081232C0: strh r6, [r2] add r0, sp, 0x8 str r0, [r1] str r3, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r5 subs r4, r5 cmp r4, r5 bhi _081232C0 strh r6, [r2] add r2, sp, 0x8 str r2, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r2, r8 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0xE0 lsls r0, 19 movs r3, 0x80 lsls r3, 3 movs r4, 0 str r4, [sp, 0xC] ldr r2, _08123368 mov r1, r9 str r1, [r2] str r0, [r2, 0x4] lsrs r0, r3, 2 movs r1, 0x85 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xA0 lsls r1, 19 add r0, sp, 0x8 strh r4, [r0] str r0, [r2] str r1, [r2, 0x4] lsrs r3, 1 movs r4, 0x81 lsls r4, 24 orrs r3, r4 str r3, [r2, 0x8] ldr r0, [r2, 0x8] ldr r1, _08123370 ldr r0, _08123374 str r0, [r1] adds r3, r0, 0 ldr r5, _08123378 ldr r0, _0812337C mov r9, r0 add r1, sp, 0x8 movs r7, 0 movs r6, 0x80 lsls r6, 5 ldr r0, _0812336C mov r8, r0 _08123338: strh r7, [r1] add r0, sp, 0x8 str r0, [r2] str r3, [r2, 0x4] mov r0, r8 str r0, [r2, 0x8] ldr r0, [r2, 0x8] adds r3, r6 subs r5, r6 cmp r5, r6 bhi _08123338 strh r7, [r1] add r1, sp, 0x8 str r1, [r2] str r3, [r2, 0x4] lsrs r0, r5, 1 orrs r0, r4 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r1, _08123380 add r1, r9 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _08123368: .4byte 0x040000d4 _0812336C: .4byte 0x81000800 _08123370: .4byte 0x02039274 _08123374: .4byte 0x02017000 _08123378: .4byte 0x000010fc _0812337C: .4byte 0x03001770 _08123380: .4byte 0x0000043c _08123384: bl ResetSpriteData bl ResetTasks bl FreeAllSpritePalettes bl ResetPaletteFade bl sub_807C828 movs r4, 0 ldr r0, _081233D4 ldr r0, [r0] adds r1, r0, 0 adds r1, 0xF0 movs r2, 0 _081233A4: lsls r0, r4, 2 adds r0, r1, r0 str r2, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x13 bls _081233A4 bl sound_sources_off bl map_music_set_to_zero ldr r2, _081233D8 ldr r1, _081233DC movs r0, 0 strh r0, [r1] strh r0, [r2] ldr r1, _081233E0 ldr r2, _081233E4 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _081233D4: .4byte gUnknown_08396FC4 _081233D8: .4byte 0x030024d0 _081233DC: .4byte 0x030027e0 _081233E0: .4byte 0x03001770 _081233E4: .4byte 0x0000043c _081233E8: movs r4, 0 ldr r5, _08123454 _081233EC: lsls r0, r4, 3 adds r0, r5 bl LoadCompressedObjectPic adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _081233EC ldr r0, _08123458 bl LoadSpritePalettes ldr r0, _0812345C ldr r4, _08123460 adds r1, r4, 0 bl sub_800D238 ldr r0, _08123464 movs r2, 0xB4 lsls r2, 1 adds r1, r4, r2 bl sub_800D238 ldr r0, _08123468 movs r2, 0xA5 lsls r2, 3 adds r1, r4, r2 bl sub_800D238 ldr r0, _0812346C ldr r1, _08123470 adds r4, r1 adds r1, r4, 0 bl sub_800D238 ldr r0, _08123474 movs r1, 0 movs r2, 0x80 bl LoadPalette ldr r0, _08123478 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r1, _0812347C ldr r2, _08123480 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _08123454: .4byte gUnknown_08401CF8 _08123458: .4byte gUnknown_08401D18 _0812345C: .4byte gUnknown_08401820 _08123460: .4byte 0x02019000 _08123464: .4byte gUnknown_08401978 _08123468: .4byte gUnknown_08401AFC _0812346C: .4byte gUnknown_08401CD4 _08123470: .4byte 0x000009d8 _08123474: .4byte gUnknown_08E7EB9C _08123478: .4byte gUnknown_08E7EC3C _0812347C: .4byte 0x03001770 _08123480: .4byte 0x0000043c _08123484: bl sub_8124118 bl RunTasks ldr r1, _08123498 ldr r0, _0812349C adds r1, r0 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _08123498: .4byte 0x03001770 _0812349C: .4byte 0x0000043c _081234A0: ldr r0, _081234B4 ldr r0, [r0] ldrb r0, [r0, 0x2] cmp r0, 0x7 bne _081234BC ldr r1, _081234B8 add r1, r9 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _081234B4: .4byte 0x02039274 _081234B8: .4byte 0x0000043c _081234BC: ldr r0, _081234FC ldr r0, [r0] adds r1, r0, 0 adds r1, 0xF0 ldr r0, [r1] cmp r0, 0 bne _081234CC b _0812370E _081234CC: movs r4, 0 adds r3, r1, 0 movs r5, 0xD negs r5, r5 _081234D4: lsls r0, r4, 2 adds r0, r3, r0 ldr r2, [r0] cmp r2, 0 beq _081234E6 ldrb r1, [r2, 0x5] adds r0, r5, 0 ands r0, r1 strb r0, [r2, 0x5] _081234E6: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x13 bls _081234D4 ldr r1, _08123500 add r1, r9 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _081234FC: .4byte gUnknown_08396FC4 _08123500: .4byte 0x0000043c _08123504: ldr r0, _08123578 ldr r5, _0812357C movs r1, 0x20 str r1, [sp] movs r1, 0xF str r1, [sp, 0x4] adds r1, r5, 0 movs r2, 0 movs r3, 0x11 bl sub_8124F08 ldr r0, _08123580 movs r2, 0xF0 lsls r2, 2 adds r1, r5, r2 movs r2, 0x1E str r2, [sp] movs r2, 0x14 mov r9, r2 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8124F08 ldr r0, _08123584 mov r8, r0 ldr r0, [r0] ldr r6, _08123588 adds r0, r6 ldr r1, _0812358C movs r2, 0x5 str r2, [sp] movs r4, 0x2 str r4, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8124F08 mov r1, r8 ldr r0, [r1] adds r0, r6 movs r2, 0x87 lsls r2, 4 adds r5, r2 str r4, [sp] mov r1, r9 str r1, [sp, 0x4] adds r1, r5, 0 movs r2, 0 movs r3, 0x2 bl sub_8124F08 ldr r1, _08123590 ldr r2, _08123594 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _08123578: .4byte 0x0600e800 _0812357C: .4byte 0x02019168 _08123580: .4byte 0x0600f000 _08123584: .4byte 0x02039274 _08123588: .4byte 0x000008fc _0812358C: .4byte gUnknown_08401CC0 _08123590: .4byte 0x03001770 _08123594: .4byte 0x0000043c _08123598: ldr r0, _08123664 ldrb r0, [r0] bl sub_81248AC ldr r0, _08123668 mov r8, r0 ldr r0, [r0] adds r0, 0xFC ldr r4, _0812366C movs r6, 0xC str r6, [sp] movs r5, 0x3 str r5, [sp, 0x4] adds r1, r4, 0 movs r2, 0 movs r3, 0xE bl sub_8124F08 mov r1, r8 ldr r0, [r1] adds r0, 0xFC adds r1, r4, 0 adds r1, 0x48 str r6, [sp] str r5, [sp, 0x4] movs r2, 0xC movs r3, 0x11 bl sub_8124F08 mov r2, r8 ldr r0, [r2] adds r0, 0xFC adds r1, r4, 0 adds r1, 0x90 str r6, [sp] str r5, [sp, 0x4] movs r2, 0x18 movs r3, 0x14 bl sub_8124F08 mov r1, r8 ldr r0, [r1] adds r0, 0xFC movs r2, 0x90 negs r2, r2 adds r2, r4 mov r9, r2 str r6, [sp] str r5, [sp, 0x4] mov r1, r9 movs r2, 0 movs r3, 0x11 bl sub_8124F08 mov r1, r8 ldr r0, [r1] adds r0, 0xFC subs r4, 0x48 str r6, [sp] str r5, [sp, 0x4] adds r1, r4, 0 movs r2, 0 movs r3, 0x14 bl sub_8124F08 mov r2, r8 ldr r0, [r2] adds r0, 0xFC str r6, [sp] str r5, [sp, 0x4] mov r1, r9 movs r2, 0xC movs r3, 0x14 bl sub_8124F08 mov r1, r8 ldr r0, [r1] adds r0, 0xFC str r6, [sp] str r5, [sp, 0x4] adds r1, r4, 0 movs r2, 0xC movs r3, 0x17 bl sub_8124F08 mov r2, r8 ldr r0, [r2] adds r0, 0xFC str r6, [sp] str r5, [sp, 0x4] mov r1, r9 movs r2, 0x18 movs r3, 0x17 bl sub_8124F08 ldr r1, _08123670 ldr r0, _08123674 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _08123664: .4byte 0x0202e8cc _08123668: .4byte 0x02039274 _0812366C: .4byte 0x02019090 _08123670: .4byte 0x03001770 _08123674: .4byte 0x0000043c _08123678: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r1, 0x3 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _081236A4 movs r1, 0x1 bl sub_8074F6C movs r0, 0x1 bl sub_8123FBC ldr r1, _081236A8 ldr r2, _081236AC adds r1, r2 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _081236A4: .4byte 0x000001a9 _081236A8: .4byte 0x03001770 _081236AC: .4byte 0x0000043c _081236B0: ldr r3, _081236E4 ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _081236E8 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r0, _081236EC bl SetVBlankCallback ldr r0, _081236F0 bl SetMainCallback2 ldr r0, _081236F4 movs r1, 0 bl CreateTask ldr r0, _081236F8 ldrh r0, [r0] cmp r0, 0 bne _08123700 ldr r0, _081236FC b _08123702 .align 2, 0 _081236E4: .4byte 0x04000208 _081236E8: .4byte 0x04000200 _081236EC: .4byte sub_8123C40 _081236F0: .4byte mainloop _081236F4: .4byte sub_8123878 _081236F8: .4byte 0x0202e8cc _081236FC: .4byte sub_81239E4 _08123700: ldr r0, _0812371C _08123702: movs r1, 0x1 bl CreateTask ldr r1, _08123720 ldr r1, [r1] _0812370C: strb r0, [r1] _0812370E: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812371C: .4byte sub_8123AF8 _08123720: .4byte 0x02039274 thumb_func_end sub_8123244 thumb_func_start mainloop mainloop: @ 8123724 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade bl sound_something pop {r0} bx r0 thumb_func_end mainloop thumb_func_start sub_8123740 sub_8123740: @ 8123740 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r4, 0 movs r0, 0 bl sub_8123FBC ldr r0, _08123854 strh r4, [r0] movs r0, 0 bl sub_807C9B4 add r7, sp, 0x4 ldr r0, _08123858 ldr r0, [r0] adds r1, r0, 0 adds r1, 0xF0 movs r2, 0 _08123766: lsls r0, r4, 2 adds r0, r1, r0 str r2, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x13 bls _08123766 bl ResetTasks bl ResetSpriteData bl ResetPaletteFade ldr r2, _0812385C movs r3, 0x80 lsls r3, 10 movs r5, 0 ldr r1, _08123860 movs r4, 0x80 lsls r4, 5 ldr r6, _08123864 movs r0, 0x85 lsls r0, 24 mov r12, r0 _08123798: str r5, [sp] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _08123798 str r5, [sp] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, _08123868 movs r0, 0 str r0, [r1] movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 adds r2, r7, 0 movs r6, 0 ldr r1, _08123860 movs r5, 0x80 lsls r5, 5 ldr r0, _0812386C mov r12, r0 movs r0, 0x81 lsls r0, 24 mov r8, r0 _081237E0: strh r6, [r2] str r2, [r1] str r3, [r1, 0x4] mov r0, r12 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r5 subs r4, r5 cmp r4, r5 bhi _081237E0 strh r6, [r7] str r7, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r2, r8 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0xE0 lsls r0, 19 movs r3, 0x80 lsls r3, 3 movs r4, 0 str r4, [sp] ldr r2, _08123860 mov r1, sp str r1, [r2] str r0, [r2, 0x4] lsrs r0, r3, 2 movs r1, 0x85 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r0, 0xA0 lsls r0, 19 strh r4, [r7] str r7, [r2] str r0, [r2, 0x4] lsrs r3, 1 movs r0, 0x81 lsls r0, 24 orrs r3, r0 str r3, [r2, 0x8] ldr r0, [r2, 0x8] bl warp_in ldr r0, _08123870 str r4, [r0] ldr r0, _08123874 bl SetMainCallback2 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08123854: .4byte 0x030024d0 _08123858: .4byte gUnknown_08396FC4 _0812385C: .4byte 0x02000000 _08123860: .4byte 0x040000d4 _08123864: .4byte 0x85000400 _08123868: .4byte 0x02039274 _0812386C: .4byte 0x81000800 _08123870: .4byte 0x0300485c _08123874: .4byte c2_load_new_map thumb_func_end sub_8123740 thumb_func_start sub_8123878 sub_8123878: @ 8123878 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r5, _081238A4 ldr r3, [r5] ldrh r0, [r3, 0x6] adds r0, 0x1 strh r0, [r3, 0x6] ldrb r2, [r3, 0x1] adds r7, r5, 0 cmp r2, 0x2 beq _0812397E cmp r2, 0x2 bgt _081238A8 cmp r2, 0 beq _081238B6 cmp r2, 0x1 beq _081238D0 b _081239D6 .align 2, 0 _081238A4: .4byte 0x02039274 _081238A8: cmp r2, 0x3 bne _081238AE b _081239A4 _081238AE: cmp r2, 0xFF bne _081238B4 b _081239BC _081238B4: b _081239D6 _081238B6: lsls r0, 16 lsrs r0, 16 ldrh r1, [r3, 0x4] cmp r0, r1 beq _081238C2 b _081239D6 _081238C2: ldrb r0, [r3, 0x2] bl sub_807C91C ldr r1, [r5] movs r0, 0x1 strb r0, [r1, 0x1] b _081239D6 _081238D0: ldrb r0, [r3, 0x2] cmp r0, 0x2 beq _08123924 cmp r0, 0x7 beq _081238DC b _081239D6 _081238DC: ldr r0, _08123920 ldr r0, [r0] adds r2, r0, 0 adds r2, 0xF0 ldr r0, [r2] cmp r0, 0 beq _081239D6 ldrb r1, [r0, 0x5] movs r0, 0xC ands r0, r1 cmp r0, 0 beq _081239D6 adds r3, r2, 0 movs r5, 0xD negs r5, r5 _081238FA: lsls r0, r4, 2 adds r0, r3, r0 ldr r2, [r0] cmp r2, 0 beq _0812390C ldrb r1, [r2, 0x5] adds r0, r5, 0 ands r0, r1 strb r0, [r2, 0x5] _0812390C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x13 bls _081238FA ldr r1, [r7] movs r0, 0x2 strb r0, [r1, 0x1] b _081239D6 .align 2, 0 _08123920: .4byte gUnknown_08396FC4 _08123924: ldr r0, _08123938 ldr r2, [r0] movs r1, 0xDA lsls r1, 3 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x2 bne _0812393C strb r0, [r3, 0x1] b _081239D6 .align 2, 0 _08123938: .4byte gUnknown_08396FC4 _0812393C: ldrh r1, [r3, 0x6] ldrh r0, [r3, 0x4] adds r0, 0x8 cmp r1, r0 blt _081239D6 adds r6, r2, 0 adds r6, 0xF0 movs r5, 0x1 movs r7, 0x5 negs r7, r7 _08123950: lsls r0, r4, 2 adds r0, r6, r0 ldr r0, [r0] cmp r0, 0 beq _08123972 adds r3, r0, 0 adds r3, 0x3E ldrb r2, [r3] lsls r1, r2, 29 lsrs r1, 31 eors r1, r5 ands r1, r5 lsls r1, 2 adds r0, r7, 0 ands r0, r2 orrs r0, r1 strb r0, [r3] _08123972: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x13 bls _08123950 b _081239D6 _0812397E: lsls r1, r0, 16 ldr r0, _081239A0 cmp r1, r0 bne _081239D6 movs r0, 0x3 strb r0, [r3, 0x1] subs r0, 0x4 str r4, [sp] movs r1, 0x3 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0x4 bl play_sound_effect b _081239D6 .align 2, 0 _081239A0: .4byte 0x023a0000 _081239A4: ldr r0, _081239B8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081239D6 movs r0, 0xFF strb r0, [r3, 0x1] b _081239D6 .align 2, 0 _081239B8: .4byte 0x0202f388 _081239BC: movs r0, 0 bl SetVBlankCallback adds r0, r6, 0 bl DestroyTask ldr r0, [r5] ldrb r0, [r0] bl DestroyTask ldr r0, _081239E0 bl SetMainCallback2 _081239D6: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081239E0: .4byte sub_8123740 thumb_func_end sub_8123878 thumb_func_start sub_81239E4 sub_81239E4: @ 81239E4 push {r4-r6,lr} sub sp, 0x8 ldr r6, _08123A38 ldr r1, [r6] ldrb r0, [r1, 0x1] cmp r0, 0xFF beq _08123AC0 ldrb r0, [r1, 0x14] subs r0, 0x1 strb r0, [r1, 0x14] ldr r1, [r6] ldrh r0, [r1, 0x6] movs r3, 0x1 ands r0, r3 cmp r0, 0 bne _08123A0A ldrb r0, [r1, 0x15] subs r0, 0x1 strb r0, [r1, 0x15] _08123A0A: ldr r2, [r6] ldrh r0, [r2, 0x6] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _08123A24 ldrb r0, [r2, 0xC] subs r0, 0x1 strb r0, [r2, 0xC] ldr r1, [r6] ldrb r0, [r1, 0xD] subs r0, 0x1 strb r0, [r1, 0xD] _08123A24: ldr r0, [r6] ldrb r1, [r0, 0x14] cmp r1, 0x20 beq _08123A74 cmp r1, 0x20 bgt _08123A3C cmp r1, 0x10 beq _08123A90 b _08123AC0 .align 2, 0 _08123A38: .4byte 0x02039274 _08123A3C: cmp r1, 0x28 beq _08123A60 cmp r1, 0xAF bne _08123AC0 ldr r1, _08123A5C adds r0, r1 movs r1, 0x2 str r1, [sp] movs r1, 0xA str r1, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0x16 bl sub_8124E7C b _08123AC0 .align 2, 0 _08123A5C: .4byte 0x000008fc _08123A60: ldr r1, _08123A70 adds r0, r1 movs r1, 0x2 str r1, [sp] str r1, [sp, 0x4] movs r1, 0 movs r2, 0x3 b _08123A82 .align 2, 0 _08123A70: .4byte 0x000008fc _08123A74: ldr r1, _08123A8C adds r0, r1 str r3, [sp] movs r1, 0x2 str r1, [sp, 0x4] movs r1, 0 movs r2, 0x2 _08123A82: movs r3, 0 bl sub_8124E7C b _08123AC0 .align 2, 0 _08123A8C: .4byte 0x000008fc _08123A90: ldr r5, _08123AE8 adds r0, r5 ldr r1, _08123AEC movs r2, 0x5 str r2, [sp] movs r4, 0x2 str r4, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8124F08 ldr r0, [r6] adds r0, r5 ldr r1, _08123AF0 str r4, [sp] movs r2, 0x1E str r2, [sp, 0x4] movs r2, 0 movs r3, 0x2 bl sub_8124F08 ldr r1, [r6] movs r0, 0x40 strb r0, [r1, 0x15] _08123AC0: bl sub_812453C ldr r3, _08123AF4 movs r0, 0 ldrsh r2, [r3, r0] adds r1, r2, 0x1 adds r0, r1, 0 cmp r1, 0 bge _08123AD6 adds r0, r2, 0 adds r0, 0x80 _08123AD6: asrs r0, 7 lsls r0, 7 subs r0, r1, r0 strh r0, [r3] add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08123AE8: .4byte 0x000008fc _08123AEC: .4byte gUnknown_08401CC0 _08123AF0: .4byte 0x020199d8 _08123AF4: .4byte 0x030024d0 thumb_func_end sub_81239E4 thumb_func_start sub_8123AF8 sub_8123AF8: @ 8123AF8 push {r4-r6,lr} sub sp, 0x8 ldr r6, _08123B4C ldr r1, [r6] ldrb r0, [r1, 0x1] cmp r0, 0xFF beq _08123BEE ldrb r0, [r1, 0x14] adds r0, 0x1 strb r0, [r1, 0x14] ldr r2, [r6] ldrh r0, [r2, 0x6] movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _08123B1E ldrb r0, [r2, 0x15] adds r0, 0x1 strb r0, [r2, 0x15] _08123B1E: ldr r2, [r6] ldrh r0, [r2, 0x6] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _08123B38 ldrb r0, [r2, 0xC] adds r0, 0x1 strb r0, [r2, 0xC] ldr r1, [r6] ldrb r0, [r1, 0xD] adds r0, 0x1 strb r0, [r1, 0xD] _08123B38: ldr r3, [r6] ldrb r0, [r3, 0x14] cmp r0, 0x20 beq _08123BB0 cmp r0, 0x20 bgt _08123B50 cmp r0, 0x10 beq _08123B78 b _08123BEE .align 2, 0 _08123B4C: .4byte 0x02039274 _08123B50: cmp r0, 0x28 beq _08123BDC cmp r0, 0xB0 bne _08123BEE ldr r1, _08123B70 adds r0, r3, r1 ldr r1, _08123B74 movs r2, 0x2 str r2, [sp] movs r2, 0x1E str r2, [sp, 0x4] movs r2, 0 movs r3, 0x2 bl sub_8124F08 b _08123BEE .align 2, 0 _08123B70: .4byte 0x000008fc _08123B74: .4byte 0x020199d8 _08123B78: ldr r5, _08123BAC adds r0, r3, r5 movs r1, 0x3 str r1, [sp] movs r4, 0x2 str r4, [sp, 0x4] movs r1, 0 movs r2, 0x2 movs r3, 0 bl sub_8124E7C ldr r0, [r6] adds r0, r5 str r4, [sp] movs r1, 0xA str r1, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0x16 bl sub_8124E7C ldr r1, [r6] movs r0, 0xC0 strb r0, [r1, 0x15] b _08123BEE .align 2, 0 _08123BAC: .4byte 0x000008fc _08123BB0: ldr r1, _08123BD4 ldrh r2, [r1] movs r4, 0x90 lsls r4, 4 adds r0, r3, r4 strh r2, [r0] ldrh r2, [r1, 0x2] adds r4, 0x2 adds r0, r3, r4 strh r2, [r0] ldrh r2, [r1, 0xA] adds r4, 0x3E adds r0, r3, r4 strh r2, [r0] ldrh r1, [r1, 0xC] ldr r2, _08123BD8 b _08123BEA .align 2, 0 _08123BD4: .4byte gUnknown_08401CC4 _08123BD8: .4byte 0x00000942 _08123BDC: ldr r2, _08123C08 ldrh r1, [r2] ldr r4, _08123C0C adds r0, r3, r4 strh r1, [r0] ldrh r1, [r2, 0xA] ldr r2, _08123C10 _08123BEA: adds r0, r3, r2 strh r1, [r0] _08123BEE: bl sub_8124598 ldr r0, _08123C14 ldr r1, [r0] ldrh r0, [r1, 0x6] ldrh r1, [r1, 0x4] cmp r0, r1 bcs _08123C1C ldr r4, _08123C18 movs r1, 0 ldrsh r0, [r4, r1] b _08123C26 .align 2, 0 _08123C08: .4byte gUnknown_08401CC8 _08123C0C: .4byte 0x00000904 _08123C10: .4byte 0x00000944 _08123C14: .4byte 0x02039274 _08123C18: .4byte 0x030024d0 _08123C1C: ldr r0, _08123C38 ldr r4, [r0] ldr r2, _08123C3C adds r4, r2 ldrh r0, [r4] _08123C26: adds r0, 0xF7 movs r1, 0xF8 bl __modsi3 strh r0, [r4] add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08123C38: .4byte gUnknown_08396FC4 _08123C3C: .4byte 0x000006fc thumb_func_end sub_8123AF8 thumb_func_start sub_8123C40 sub_8123C40: @ 8123C40 push {r4,lr} ldr r1, _08123C9C ldr r0, _08123CA0 ldr r2, [r0] adds r0, r2, 0 adds r0, 0xFC str r0, [r1] ldr r0, _08123CA4 str r0, [r1, 0x4] ldr r3, _08123CA8 str r3, [r1, 0x8] ldr r0, [r1, 0x8] ldr r4, _08123CAC adds r0, r2, r4 str r0, [r1] ldr r0, _08123CB0 str r0, [r1, 0x4] str r3, [r1, 0x8] ldr r0, [r1, 0x8] subs r1, 0xB8 ldrb r0, [r2, 0x14] strh r0, [r1] adds r1, 0x2 ldrb r0, [r2, 0x15] strh r0, [r1] subs r1, 0xA ldrb r0, [r2, 0xC] strh r0, [r1] adds r1, 0x2 ldrb r0, [r2, 0xD] strh r0, [r1] subs r1, 0x6 ldrb r0, [r2, 0x8] strh r0, [r1] adds r1, 0x2 ldrb r0, [r2, 0x9] strh r0, [r1] bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r4} pop {r0} bx r0 .align 2, 0 _08123C9C: .4byte 0x040000d4 _08123CA0: .4byte 0x02039274 _08123CA4: .4byte 0x0600e000 _08123CA8: .4byte 0x80000400 _08123CAC: .4byte 0x000008fc _08123CB0: .4byte 0x0600f800 thumb_func_end sub_8123C40 thumb_func_start nullsub_76 nullsub_76: @ 8123CB4 bx lr thumb_func_end nullsub_76 thumb_func_start sub_8123CB8 sub_8123CB8: @ 8123CB8 push {r4-r6,lr} adds r5, r0, 0 ldr r0, _08123D20 ldr r6, [r0] ldrb r0, [r6, 0x1] cmp r0, 0xFF beq _08123D84 ldr r0, _08123D24 ldrh r0, [r0] cmp r0, 0 bne _08123D34 movs r0, 0x6 ldrsh r4, [r6, r0] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123CE2 ldr r1, _08123D28 bl __addsf3 _08123CE2: ldr r1, _08123D2C bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2E] subs r1, r0 strh r1, [r5, 0x20] movs r1, 0x6 ldrsh r4, [r6, r1] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123D0A ldr r1, _08123D28 bl __addsf3 _08123D0A: ldr r1, _08123D30 bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x30] subs r1, r0 strh r1, [r5, 0x22] b _08123D84 .align 2, 0 _08123D20: .4byte 0x02039274 _08123D24: .4byte 0x0202e8cc _08123D28: .4byte 0x47800000 _08123D2C: .4byte 0x3e0f5c29 _08123D30: .4byte 0x3d89374c _08123D34: movs r0, 0x6 ldrsh r4, [r6, r0] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123D48 ldr r1, _08123D8C bl __addsf3 _08123D48: ldr r1, _08123D90 bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2E] adds r0, r1 strh r0, [r5, 0x20] movs r0, 0x6 ldrsh r4, [r6, r0] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123D70 ldr r1, _08123D8C bl __addsf3 _08123D70: ldr r1, _08123D94 bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x30] adds r0, r1 strh r0, [r5, 0x22] _08123D84: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08123D8C: .4byte 0x47800000 _08123D90: .4byte 0x3e0f5c29 _08123D94: .4byte 0x3d89374c thumb_func_end sub_8123CB8 thumb_func_start sub_8123D98 sub_8123D98: @ 8123D98 push {r4-r6,lr} adds r5, r0, 0 ldr r0, _08123E04 ldr r6, [r0] ldrb r0, [r6, 0x1] cmp r0, 0xFF bne _08123DA8 b _08123EB0 _08123DA8: ldr r0, _08123E08 ldrh r0, [r0] cmp r0, 0 bne _08123E18 movs r0, 0x6 ldrsh r4, [r6, r0] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123DC4 ldr r1, _08123E0C bl __addsf3 _08123DC4: ldr r1, _08123E10 bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2E] subs r1, r0 strh r1, [r5, 0x20] movs r1, 0x6 ldrsh r4, [r6, r1] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123DEC ldr r1, _08123E0C bl __addsf3 _08123DEC: ldr r1, _08123E14 bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x30] subs r1, r0 strh r1, [r5, 0x22] b _08123E68 .align 2, 0 _08123E04: .4byte 0x02039274 _08123E08: .4byte 0x0202e8cc _08123E0C: .4byte 0x47800000 _08123E10: .4byte 0x3e0f5c29 _08123E14: .4byte 0x3d89374c _08123E18: movs r0, 0x6 ldrsh r4, [r6, r0] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123E2C ldr r1, _08123E8C bl __addsf3 _08123E2C: ldr r1, _08123E90 bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2E] adds r0, r1 strh r0, [r5, 0x20] movs r0, 0x6 ldrsh r4, [r6, r0] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123E54 ldr r1, _08123E8C bl __addsf3 _08123E54: ldr r1, _08123E94 bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x30] adds r0, r1 strh r0, [r5, 0x22] _08123E68: movs r0, 0x32 ldrsh r2, [r5, r0] cmp r2, 0 bne _08123E98 movs r0, 0x11 strh r0, [r5, 0x26] ldrh r0, [r5, 0x34] adds r1, r0, 0x1 strh r1, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 ble _08123EB0 strh r2, [r5, 0x34] ldrh r0, [r5, 0x32] adds r0, 0x1 strh r0, [r5, 0x32] b _08123EB0 .align 2, 0 _08123E8C: .4byte 0x47800000 _08123E90: .4byte 0x3e0f5c29 _08123E94: .4byte 0x3d89374c _08123E98: movs r2, 0 movs r0, 0x10 strh r0, [r5, 0x26] ldrh r0, [r5, 0x34] adds r1, r0, 0x1 strh r1, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 ble _08123EB0 strh r2, [r5, 0x34] strh r2, [r5, 0x32] _08123EB0: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8123D98 thumb_func_start sub_8123EB8 sub_8123EB8: @ 8123EB8 push {lr} adds r2, r0, 0 movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 bne _08123EE8 adds r0, r2, 0 adds r0, 0x28 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 1 ldrh r3, [r2, 0x20] adds r0, r3 strh r0, [r2, 0x20] ldrh r1, [r2, 0x22] adds r1, 0x10 adds r0, r2, 0 adds r0, 0x29 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r0, r1 strh r0, [r2, 0x22] _08123EE8: ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 movs r3, 0x32 ldrsh r1, [r2, r3] cmp r0, r1 blt _08123F3E movs r0, 0x30 ldrsh r1, [r2, r0] cmp r1, 0 beq _08123F08 cmp r1, 0x1 beq _08123F12 b _08123F30 _08123F08: ldrh r0, [r2, 0x20] adds r0, 0x1 strh r0, [r2, 0x20] ldrh r0, [r2, 0x2E] b _08123F22 _08123F12: ldrh r0, [r2, 0x2E] ands r0, r1 cmp r0, 0 beq _08123F30 ldrh r0, [r2, 0x20] adds r0, 0x1 strh r0, [r2, 0x20] ldrh r0, [r2, 0x20] _08123F22: movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _08123F30 ldrh r0, [r2, 0x22] adds r0, 0x1 strh r0, [r2, 0x22] _08123F30: movs r1, 0x22 ldrsh r0, [r2, r1] cmp r0, 0xA0 ble _08123F3E adds r0, r2, 0 bl DestroySprite _08123F3E: pop {r0} bx r0 thumb_func_end sub_8123EB8 thumb_func_start sub_8123F44 sub_8123F44: @ 8123F44 push {lr} adds r2, r0, 0 movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 bne _08123F62 ldrh r1, [r2, 0x22] adds r1, 0x10 adds r0, r2, 0 adds r0, 0x29 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r0, r1 strh r0, [r2, 0x22] _08123F62: ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 movs r3, 0x32 ldrsh r1, [r2, r3] cmp r0, r1 blt _08123FB8 movs r0, 0x30 ldrsh r1, [r2, r0] cmp r1, 0 beq _08123F82 cmp r1, 0x1 beq _08123F8C b _08123FAA _08123F82: ldrh r0, [r2, 0x20] subs r0, 0x1 strh r0, [r2, 0x20] ldrh r0, [r2, 0x2E] b _08123F9C _08123F8C: ldrh r0, [r2, 0x2E] ands r0, r1 cmp r0, 0 beq _08123FAA ldrh r0, [r2, 0x20] subs r0, 0x1 strh r0, [r2, 0x20] ldrh r0, [r2, 0x20] _08123F9C: movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _08123FAA ldrh r0, [r2, 0x22] subs r0, 0x1 strh r0, [r2, 0x22] _08123FAA: movs r1, 0x22 ldrsh r0, [r2, r1] cmp r0, 0x4F bgt _08123FB8 adds r0, r2, 0 bl DestroySprite _08123FB8: pop {r0} bx r0 thumb_func_end sub_8123F44 thumb_func_start sub_8123FBC sub_8123FBC: @ 8123FBC push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08123FCA cmp r0, 0x1 beq _08124024 _08123FCA: ldr r1, _08124020 movs r0, 0 strh r0, [r1] adds r1, 0x2 strh r0, [r1] subs r1, 0xA strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x2 strh r0, [r1] subs r1, 0x46 strh r0, [r1] adds r1, 0xE strh r0, [r1] subs r1, 0x2 strh r0, [r1] subs r1, 0x2 strh r0, [r1] subs r1, 0x2 strh r0, [r1] adds r1, 0x14 strh r0, [r1] adds r1, 0x2 strh r0, [r1] subs r1, 0x6 strh r0, [r1] adds r1, 0x2 strh r0, [r1] subs r1, 0x6 strh r0, [r1] adds r1, 0x2 strh r0, [r1] subs r1, 0x6 strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x3E strh r0, [r1] b _081240EE .align 2, 0 _08124020: .4byte REG_WININ _08124024: ldr r0, _08124060 movs r3, 0 strh r3, [r0] adds r0, 0x2 strh r3, [r0] subs r0, 0xA strh r3, [r0] adds r0, 0x2 strh r3, [r0] adds r0, 0x2 strh r3, [r0] adds r0, 0x2 strh r3, [r0] ldr r0, _08124064 ldrh r0, [r0] cmp r0, 0 bne _0812406C ldr r1, _08124068 ldr r2, [r1] movs r0, 0xB0 strb r0, [r2, 0x14] ldr r2, [r1] movs r0, 0x10 strb r0, [r2, 0x15] ldr r0, [r1] strb r3, [r0, 0xC] ldr r2, [r1] movs r0, 0x50 b _08124082 .align 2, 0 _08124060: .4byte REG_WININ _08124064: .4byte 0x0202e8cc _08124068: .4byte 0x02039274 _0812406C: ldr r1, _081240F4 ldr r2, [r1] movs r0, 0x60 strb r0, [r2, 0x14] ldr r2, [r1] movs r0, 0xE8 strb r0, [r2, 0x15] ldr r0, [r1] strb r3, [r0, 0xC] ldr r2, [r1] movs r0, 0x4 _08124082: strb r0, [r2, 0xD] ldr r0, [r1] strb r3, [r0, 0x9] ldr r0, [r1] strb r3, [r0, 0x9] adds r2, r1, 0 ldr r1, _081240F8 ldr r2, [r2] ldrb r0, [r2, 0x14] strh r0, [r1] adds r1, 0x2 ldrb r0, [r2, 0x15] strh r0, [r1] ldr r0, _081240FC movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _08124100 ldrb r0, [r2, 0xC] strh r0, [r1] adds r1, 0x2 ldrb r0, [r2, 0xD] strh r0, [r1] subs r1, 0x6 ldrb r0, [r2, 0x8] strh r0, [r1] adds r1, 0x2 ldrb r0, [r2, 0x9] strh r0, [r1] subs r1, 0xA ldr r2, _08124104 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _08124108 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0812410C adds r0, r2, 0 strh r0, [r1] ldr r0, _08124110 movs r3, 0xFC lsls r3, 6 adds r2, r3, 0 strh r2, [r0] subs r1, 0xC movs r3, 0xFA lsls r3, 5 adds r0, r3, 0 strh r0, [r1] ldr r0, _08124114 strh r2, [r0] _081240EE: pop {r0} bx r0 .align 2, 0 _081240F4: .4byte 0x02039274 _081240F8: .4byte REG_BG3HOFS _081240FC: .4byte REG_BG2HOFS _08124100: .4byte REG_BG1HOFS _08124104: .4byte 0x00003c01 _08124108: .4byte 0x00003d02 _0812410C: .4byte 0x00003e03 _08124110: .4byte REG_BG3CNT _08124114: .4byte REG_BLDCNT thumb_func_end sub_8123FBC thumb_func_start sub_8124118 sub_8124118: @ 8124118 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 ldr r1, _0812422C add r0, sp, 0x8 movs r2, 0x2 bl memcpy bl Random lsls r0, 16 lsrs r0, 16 mov r9, r0 add r6, sp, 0xC ldr r1, _08124230 adds r0, r6, 0 movs r2, 0x4 bl memcpy add r5, sp, 0x10 ldr r1, _08124234 adds r0, r5, 0 movs r2, 0x8 bl memcpy add r4, sp, 0x18 ldr r1, _08124238 adds r0, r4, 0 movs r2, 0x4 bl memcpy ldr r0, _0812423C ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x1C] str r1, [sp, 0x20] ldr r0, _08124240 ldrh r0, [r0] mov r8, r6 mov r10, r5 cmp r0, 0 beq _08124176 cmp r0, 0x1 beq _08124258 _08124176: ldr r0, _08124244 ldrb r0, [r0, 0x8] add r0, sp adds r0, 0x8 ldrb r0, [r0] ldr r1, _08124248 movs r2, 0x66 str r2, [sp] movs r2, 0xC8 movs r3, 0x49 bl AddPseudoFieldObject lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x40 beq _081241BE ldr r0, _0812424C lsls r1, r6, 4 adds r1, r6 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 movs r2, 0x8 orrs r0, r2 strb r0, [r1, 0x5] movs r0, 0x8 strh r0, [r1, 0x24] movs r0, 0x10 strh r0, [r1, 0x26] movs r0, 0xC8 strh r0, [r1, 0x2E] movs r0, 0x49 strh r0, [r1, 0x30] _081241BE: ldr r4, _08124250 adds r0, r4, 0 movs r1, 0xB0 movs r2, 0x2B movs r3, 0x67 bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 ldr r5, _0812424C lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r0, r5 movs r1, 0x20 strh r1, [r0, 0x26] strh r1, [r0, 0x24] movs r1, 0xB0 strh r1, [r0, 0x2E] movs r1, 0x2B strh r1, [r0, 0x30] adds r4, 0x18 adds r0, r4, 0 movs r1, 0xC8 movs r2, 0x63 movs r3, 0x65 bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r0, r5 movs r1, 0x8 strh r1, [r0, 0x24] movs r1, 0x4 strh r1, [r0, 0x26] movs r1, 0xC8 strh r1, [r0, 0x2E] movs r1, 0x63 strh r1, [r0, 0x30] ldr r2, _08124254 ldr r1, [r2] movs r0, 0x7 strb r0, [r1, 0x2] ldr r1, [r2] movs r0, 0xAF lsls r0, 1 strh r0, [r1, 0x4] movs r0, 0x2 bl sub_807C9B4 b _0812431E .align 2, 0 _0812422C: .4byte gUnknown_08401D88 _08124230: .4byte gUnknown_08401D8A _08124234: .4byte gUnknown_08401D8E _08124238: .4byte gUnknown_08401D96 _0812423C: .4byte gUnknown_08401D9C _08124240: .4byte 0x0202e8cc _08124244: .4byte gSaveBlock2 _08124248: .4byte sub_8123D98 _0812424C: .4byte 0x02020004 _08124250: .4byte gSpriteTemplate_8401D40 _08124254: .4byte 0x02039274 _08124258: ldr r7, _081243EC ldr r0, [r7] adds r0, 0xFC ldr r1, _081243F0 movs r2, 0xC str r2, [sp] movs r2, 0x3 str r2, [sp, 0x4] movs r2, 0x18 movs r3, 0x1A bl sub_8124F08 ldr r0, _081243F4 ldrb r0, [r0, 0x8] add r0, sp adds r0, 0x8 ldrb r0, [r0] ldr r1, _081243F8 movs r2, 0x66 str r2, [sp] movs r2, 0x80 movs r3, 0x27 bl AddPseudoFieldObject lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x40 beq _081242B8 ldr r0, _081243FC lsls r1, r6, 4 adds r1, r6 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 movs r2, 0x8 orrs r0, r2 strb r0, [r1, 0x5] movs r0, 0x8 strh r0, [r1, 0x24] movs r0, 0x10 strh r0, [r1, 0x26] movs r0, 0x80 strh r0, [r1, 0x2E] movs r0, 0x27 strh r0, [r1, 0x30] _081242B8: ldr r4, _08124400 adds r0, r4, 0 movs r1, 0x68 movs r2, 0x9 movs r3, 0x67 bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 ldr r5, _081243FC lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r0, r5 movs r1, 0x20 strh r1, [r0, 0x26] strh r1, [r0, 0x24] movs r1, 0x68 strh r1, [r0, 0x2E] movs r1, 0x9 strh r1, [r0, 0x30] adds r4, 0x18 adds r0, r4, 0 movs r1, 0x80 movs r2, 0x41 movs r3, 0x65 bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r0, r5 movs r1, 0x8 strh r1, [r0, 0x24] movs r1, 0x4 strh r1, [r0, 0x26] movs r1, 0x80 strh r1, [r0, 0x2E] movs r1, 0x41 strh r1, [r0, 0x30] ldr r1, [r7] movs r0, 0x2 strb r0, [r1, 0x2] ldr r1, [r7] ldr r0, _08124404 strh r0, [r1, 0x4] movs r0, 0x7 bl sub_807C9B4 _0812431E: movs r4, 0 ldr r5, _081243FC _08124322: lsls r1, r4, 20 movs r0, 0xC0 lsls r0, 15 adds r1, r0 asrs r1, 16 lsls r2, r4, 19 ldr r3, _08124408 adds r2, r3 asrs r2, 16 ldr r0, _0812440C movs r3, 0x68 bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r0, r5 movs r1, 0x8 strh r1, [r0, 0x24] strh r1, [r0, 0x26] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x8 bls _08124322 movs r0, 0x3F mov r4, r9 ands r0, r4 cmp r0, 0 bne _08124458 mov r0, r9 movs r1, 0x3 bl __umodsi3 lsls r0, 16 lsrs r0, 16 add r0, r8 ldrb r0, [r0] ldr r5, _08124410 ldrh r4, [r5] lsls r4, 2 add r1, sp, 0x1C adds r1, r4, r1 ldr r1, [r1] mov r3, r10 adds r2, r3, r4 movs r3, 0 ldrsh r2, [r2, r3] mov r3, sp adds r3, 0x12 adds r3, r4 movs r4, 0 ldrsh r3, [r3, r4] movs r4, 0x6A str r4, [sp] bl AddPseudoFieldObject lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x40 beq _08124458 ldr r1, _081243FC lsls r2, r6, 4 adds r0, r2, r6 lsls r0, 2 adds r4, r0, r1 ldrb r1, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r4, 0x5] adds r0, r4, 0 adds r0, 0x28 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 negs r0, r0 strh r0, [r4, 0x24] adds r0, r4, 0 adds r0, 0x29 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 negs r0, r0 strh r0, [r4, 0x26] ldrh r0, [r5] mov r8, r2 cmp r0, 0 bne _0812441A movs r7, 0x1 mov r5, r9 ands r5, r7 cmp r5, 0 beq _08124414 adds r0, r4, 0 movs r1, 0x6 b _08124428 .align 2, 0 _081243EC: .4byte 0x02039274 _081243F0: .4byte 0x02019048 _081243F4: .4byte gSaveBlock2 _081243F8: .4byte sub_8123D98 _081243FC: .4byte 0x02020004 _08124400: .4byte gSpriteTemplate_8401D40 _08124404: .4byte 0x00000109 _08124408: .4byte 0xfff80000 _0812440C: .4byte gSpriteTemplate_8401D70 _08124410: .4byte 0x0202e8cc _08124414: adds r0, r4, 0 movs r1, 0x7 b _0812443A _0812441A: movs r7, 0x1 mov r5, r9 ands r5, r7 cmp r5, 0 beq _08124436 adds r0, r4, 0 movs r1, 0x7 _08124428: bl StartSpriteAnim strh r7, [r4, 0x30] ldrh r0, [r4, 0x22] adds r0, 0x2 strh r0, [r4, 0x22] b _08124440 _08124436: adds r0, r4, 0 movs r1, 0x6 _0812443A: bl StartSpriteAnim strh r5, [r4, 0x30] _08124440: ldr r0, _08124468 mov r2, r8 adds r1, r2, r6 lsls r1, 2 adds r1, r0 movs r0, 0x3 mov r3, r9 ands r0, r3 add r0, sp adds r0, 0x18 ldrb r0, [r0] strh r0, [r1, 0x32] _08124458: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08124468: .4byte 0x02020004 thumb_func_end sub_8124118 thumb_func_start sub_812446C sub_812446C: @ 812446C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r3, 0 mov r9, r3 ldr r2, _08124530 ldr r0, [r2] ldrb r1, [r0, 0x1B] adds r1, 0x2 lsls r0, r1, 3 adds r0, r1 lsls r0, 26 lsrs r0, 24 mov r12, r0 _0812448E: movs r6, 0 lsls r0, r3, 1 adds r1, r3, 0x3 adds r2, r3, 0x6 adds r4, r3, 0x1 str r4, [sp] adds r0, r3 lsls r0, 3 mov r10, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 mov r8, r0 lsls r0, r2, 1 adds r0, r2 lsls r0, 3 str r0, [sp, 0x4] _081244B0: ldr r7, _08124530 ldr r5, [r7] lsls r3, r6, 1 mov r0, r10 adds r2, r3, r0 adds r4, r5, 0 adds r4, 0x22 adds r2, r4, r2 mov r1, r12 adds r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 mov r12, r0 lsls r1, 1 ldr r7, _08124534 adds r1, r7 ldrh r0, [r1] strh r0, [r2] mov r0, r8 adds r1, r3, r0 adds r1, r4, r1 mov r7, r9 lsls r2, r7, 1 ldr r7, _08124534 adds r0, r2, r7 ldrh r0, [r0] strh r0, [r1] ldr r0, [sp, 0x4] adds r3, r0 adds r4, r3 ldr r1, _08124538 adds r2, r1 ldrh r0, [r2] strh r0, [r4] mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0xB bls _081244B0 ldr r4, [sp] lsls r0, r4, 24 lsrs r3, r0, 24 cmp r3, 0x2 bls _0812448E ldrb r0, [r5, 0x1B] adds r0, 0x1 movs r1, 0x3 bl __modsi3 strb r0, [r5, 0x1B] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08124530: .4byte 0x02039274 _08124534: .4byte 0x02019000 _08124538: .4byte 0x02019048 thumb_func_end sub_812446C thumb_func_start sub_812453C sub_812453C: @ 812453C push {r4,r5,lr} ldr r5, _08124594 ldr r4, [r5] ldrb r0, [r4, 0x1C] adds r0, 0x1 movs r1, 0x60 bl __modsi3 strb r0, [r4, 0x1C] ldr r1, [r5] ldrb r0, [r1, 0x1F] ldrb r2, [r1, 0x1D] subs r0, r2 strb r0, [r1, 0x8] ldr r2, [r5] adds r0, r2, 0 adds r0, 0x20 ldrb r0, [r0] ldrb r1, [r2, 0x1E] subs r0, r1 strb r0, [r2, 0x9] ldr r1, [r5] ldrb r0, [r1, 0x1D] adds r0, 0x1 strb r0, [r1, 0x1D] ldr r2, [r5] ldrb r0, [r2, 0x1D] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _08124580 ldrb r0, [r2, 0x1E] adds r0, 0x1 strb r0, [r2, 0x1E] _08124580: ldr r0, [r5] ldrb r0, [r0, 0x1D] cmp r0, 0x10 bls _0812458C bl sub_81245F4 _0812458C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08124594: .4byte 0x02039274 thumb_func_end sub_812453C thumb_func_start sub_8124598 sub_8124598: @ 8124598 push {r4,r5,lr} ldr r5, _081245F0 ldr r4, [r5] ldrb r0, [r4, 0x1C] adds r0, 0x1 movs r1, 0x60 bl __modsi3 strb r0, [r4, 0x1C] ldr r1, [r5] ldrb r0, [r1, 0x1D] ldrb r2, [r1, 0x1F] adds r0, r2 strb r0, [r1, 0x8] ldr r1, [r5] adds r2, r1, 0 adds r2, 0x20 ldrb r0, [r1, 0x1E] ldrb r2, [r2] adds r0, r2 strb r0, [r1, 0x9] ldr r1, [r5] ldrb r0, [r1, 0x1D] adds r0, 0x1 strb r0, [r1, 0x1D] ldr r2, [r5] ldrb r0, [r2, 0x1D] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _081245DC ldrb r0, [r2, 0x1E] adds r0, 0x1 strb r0, [r2, 0x1E] _081245DC: ldr r0, [r5] ldrb r0, [r0, 0x1D] cmp r0, 0x10 bls _081245E8 bl sub_812476C _081245E8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081245F0: .4byte 0x02039274 thumb_func_end sub_8124598 thumb_func_start sub_81245F4 sub_81245F4: @ 81245F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r0, 0 mov r12, r0 ldr r2, _0812475C ldr r0, [r2] mov r1, r12 strb r1, [r0, 0x1E] strb r1, [r0, 0x1D] ldr r1, [r2] ldrb r0, [r1, 0x8] strb r0, [r1, 0x1F] ldr r0, [r2] ldrb r1, [r0, 0x9] adds r0, 0x20 strb r1, [r0] ldr r4, [r2] ldrb r1, [r4, 0x19] adds r3, r1, 0 adds r3, 0x1E adds r0, r3, 0 mov r9, r2 asrs r0, 5 lsls r0, 5 subs r0, r3, r0 strb r0, [r4, 0x19] mov r2, r9 ldr r1, [r2] ldrb r0, [r1, 0x18] subs r0, 0x2 strb r0, [r1, 0x18] ldr r0, [r2] ldrb r1, [r0, 0x1A] adds r2, r1, 0 adds r2, 0x17 adds r0, r2, 0 ldr r3, _08124760 mov r10, r3 asrs r0, 5 lsls r0, 5 subs r0, r2, r0 mov r4, r10 strb r0, [r4] ldr r7, _08124764 ldr r0, _08124768 mov r8, r0 _08124658: mov r1, r9 ldr r3, [r1] ldrb r0, [r3, 0x19] strb r0, [r7] mov r2, r10 ldrb r0, [r2] mov r4, r12 adds r1, r0, r4 adds r0, r1, 0 asrs r0, 5 lsls r0, 5 subs r0, r1, r0 mov r1, r8 strb r0, [r1] ldrb r2, [r7] lsls r2, 1 ldrb r0, [r1] lsls r0, 6 adds r2, r0 adds r6, r3, 0 adds r6, 0xFC adds r2, r6, r2 ldrb r1, [r3, 0x18] lsls r1, 1 mov r4, r12 lsls r0, r4, 1 add r0, r12 lsls r5, r0, 3 adds r1, r5 adds r4, r3, 0 adds r4, 0x22 adds r1, r4, r1 ldrh r0, [r1] strh r0, [r2] ldrb r1, [r7] adds r2, r1, 0x1 adds r0, r2, 0 asrs r0, 5 lsls r0, 5 subs r0, r2, r0 strb r0, [r7] ldrb r1, [r7] lsls r1, 1 mov r2, r8 ldrb r0, [r2] lsls r0, 6 adds r1, r0 adds r1, r6, r1 ldrb r0, [r3, 0x18] adds r0, 0x1 lsls r0, 1 adds r0, r5 adds r0, r4, r0 ldrh r0, [r0] strh r0, [r1] mov r0, r12 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r12, r0 cmp r0, 0x8 bls _08124658 ldr r4, _08124764 mov r5, r9 ldr r3, [r5] ldrb r1, [r3, 0x19] adds r2, r1, 0 adds r2, 0x1E adds r0, r2, 0 asrs r0, 5 lsls r0, 5 subs r0, r2, r0 strb r0, [r4] adds r0, r3, 0 adds r0, 0xFC ldrb r2, [r4] movs r1, 0x2 str r1, [sp] movs r6, 0x20 str r6, [sp, 0x4] movs r1, 0 movs r3, 0 bl sub_8124E7C ldr r1, [r5] ldrb r0, [r1, 0x18] cmp r0, 0 bne _0812474C ldrb r2, [r1, 0x1A] adds r3, r2, 0 adds r3, 0x1D adds r0, r3, 0 asrs r0, 5 lsls r0, 5 subs r0, r3, r0 strb r0, [r1, 0x1A] mov r3, r9 ldr r1, [r3] movs r0, 0xC strb r0, [r1, 0x18] bl sub_812446C mov r4, r9 ldr r1, [r4] ldrb r3, [r1, 0x1A] adds r4, r3, 0x1 adds r0, r4, 0 asrs r0, 5 lsls r0, 5 subs r0, r4, r0 ldr r2, _08124764 strb r0, [r2] adds r0, r1, 0 adds r0, 0xFC ldrb r3, [r2] str r6, [sp] movs r1, 0x9 str r1, [sp, 0x4] movs r1, 0 movs r2, 0 bl sub_8124E7C _0812474C: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812475C: .4byte 0x02039274 _08124760: .4byte 0x0203927a _08124764: .4byte 0x02039278 _08124768: .4byte 0x02039279 thumb_func_end sub_81245F4 thumb_func_start sub_812476C sub_812476C: @ 812476C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r0, 0 mov r12, r0 ldr r2, _0812489C ldr r0, [r2] mov r1, r12 strb r1, [r0, 0x1E] strb r1, [r0, 0x1D] ldr r1, [r2] ldrb r0, [r1, 0x8] strb r0, [r1, 0x1F] ldr r0, [r2] ldrb r1, [r0, 0x9] adds r0, 0x20 strb r1, [r0] ldr r4, [r2] ldrb r1, [r4, 0x19] adds r3, r1, 0x2 adds r0, r3, 0 mov r9, r2 asrs r0, 5 lsls r0, 5 subs r0, r3, r0 strb r0, [r4, 0x19] mov r2, r9 ldr r1, [r2] ldrb r0, [r1, 0x18] adds r0, 0x2 strb r0, [r1, 0x18] ldr r1, _081248A0 ldr r0, [r2] ldrb r0, [r0, 0x1A] strb r0, [r1] ldr r4, _081248A4 mov r10, r4 ldr r7, _081248A8 mov r8, r10 _081247C0: mov r0, r9 ldr r3, [r0] ldrb r0, [r3, 0x19] strb r0, [r7] ldr r1, _081248A0 ldrb r0, [r1] mov r2, r12 adds r1, r0, r2 adds r0, r1, 0 asrs r0, 5 lsls r0, 5 subs r0, r1, r0 mov r4, r8 strb r0, [r4] ldrb r2, [r7] lsls r2, 1 ldrb r0, [r4] lsls r0, 6 adds r2, r0 adds r6, r3, 0 adds r6, 0xFC adds r2, r6, r2 ldrb r1, [r3, 0x18] lsls r1, 1 mov r4, r12 lsls r0, r4, 1 add r0, r12 lsls r5, r0, 3 adds r1, r5 adds r4, r3, 0 adds r4, 0x22 adds r1, r4, r1 ldrh r0, [r1] strh r0, [r2] ldrb r1, [r7] adds r2, r1, 0x1 adds r0, r2, 0 asrs r0, 5 lsls r0, 5 subs r0, r2, r0 strb r0, [r7] ldrb r1, [r7] lsls r1, 1 mov r2, r8 ldrb r0, [r2] lsls r0, 6 adds r1, r0 adds r1, r6, r1 ldrb r0, [r3, 0x18] adds r0, 0x1 lsls r0, 1 adds r0, r5 adds r0, r4, r0 ldrh r0, [r0] strh r0, [r1] mov r0, r12 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r12, r0 cmp r0, 0x8 bls _081247C0 mov r4, r9 ldr r1, [r4] ldrb r2, [r1, 0x1A] adds r3, r2, 0 adds r3, 0x17 adds r0, r3, 0 asrs r0, 5 lsls r0, 5 subs r0, r3, r0 mov r2, r10 strb r0, [r2] adds r0, r1, 0 adds r0, 0xFC ldrb r2, [r1, 0x19] mov r1, r10 ldrb r3, [r1] movs r1, 0x2 str r1, [sp] movs r1, 0x9 str r1, [sp, 0x4] movs r1, 0 bl sub_8124E7C ldr r1, [r4] ldrb r0, [r1, 0x18] cmp r0, 0xA bne _0812488C ldrb r2, [r1, 0x1A] adds r3, r2, 0x3 adds r0, r3, 0 asrs r0, 5 lsls r0, 5 subs r0, r3, r0 strb r0, [r1, 0x1A] mov r2, r9 ldr r1, [r2] movs r0, 0xFE strb r0, [r1, 0x18] bl sub_812446C _0812488C: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812489C: .4byte 0x02039274 _081248A0: .4byte 0x0203927d _081248A4: .4byte 0x0203927c _081248A8: .4byte 0x0203927b thumb_func_end sub_812476C thumb_func_start sub_81248AC sub_81248AC: @ 81248AC push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _081248BA cmp r0, 0x1 beq _081248E4 _081248BA: ldr r1, _081248E0 ldr r2, [r1] movs r3, 0 movs r0, 0x2 strb r0, [r2, 0x1B] ldr r0, [r1] strb r3, [r0, 0x19] ldr r2, [r1] movs r0, 0x14 strb r0, [r2, 0x1A] ldr r1, [r1] movs r0, 0xC strb r0, [r1, 0x18] bl sub_812446C bl sub_81245F4 b _08124906 .align 2, 0 _081248E0: .4byte 0x02039274 _081248E4: ldr r1, _08124914 ldr r2, [r1] movs r0, 0x2 strb r0, [r2, 0x1B] ldr r2, [r1] movs r0, 0x1C strb r0, [r2, 0x19] ldr r2, [r1] movs r0, 0x14 strb r0, [r2, 0x1A] ldr r1, [r1] movs r0, 0x4 strb r0, [r1, 0x18] bl sub_812446C bl sub_812476C _08124906: ldr r0, _08124914 ldr r1, [r0] movs r0, 0 strb r0, [r1, 0x1C] pop {r0} bx r0 .align 2, 0 _08124914: .4byte 0x02039274 thumb_func_end sub_81248AC thumb_func_start sub_8124918 sub_8124918: @ 8124918 push {lr} movs r1, 0 strb r1, [r0] strh r1, [r0, 0x2] adds r0, 0x4 movs r2, 0xC0 bl memset pop {r0} bx r0 thumb_func_end sub_8124918 thumb_func_start sub_812492C sub_812492C: @ 812492C push {r4-r7,lr} adds r3, r0, 0 lsls r1, 24 lsrs r6, r1, 24 cmp r6, 0xF bhi _08124948 lsls r0, r6, 1 adds r0, r6 lsls r0, 2 adds r5, r3, r0 ldrb r7, [r5, 0x4] lsrs r0, r7, 7 cmp r0, 0 beq _0812494C _08124948: movs r0, 0xFF b _081249AA _0812494C: ldrh r0, [r2] movs r4, 0 strh r0, [r5, 0x8] ldrh r0, [r2, 0x2] strh r0, [r5, 0xA] ldrb r0, [r2, 0x4] strb r0, [r5, 0xC] ldrb r0, [r2, 0x5] strb r0, [r5, 0xD] ldrb r0, [r2, 0x6] strb r0, [r5, 0xE] ldrb r3, [r2, 0x7] lsls r0, r3, 27 lsrs r0, 27 ldrb r2, [r5, 0xF] movs r1, 0x20 negs r1, r1 ands r1, r2 orrs r1, r0 movs r0, 0x60 ands r0, r3 movs r2, 0x61 negs r2, r2 ands r1, r2 orrs r1, r0 lsls r3, 24 asrs r3, 31 lsls r3, 7 movs r0, 0x7F ands r1, r0 orrs r1, r3 strb r1, [r5, 0xF] subs r0, 0xFF ands r0, r7 movs r2, 0x80 orrs r0, r2 strb r0, [r5, 0x4] strb r4, [r5, 0x6] strb r4, [r5, 0x5] lsls r1, 24 cmp r1, 0 bge _081249A4 movs r0, 0xFF b _081249A6 _081249A4: movs r0, 0x1 _081249A6: strb r0, [r5, 0x7] adds r0, r6, 0 _081249AA: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_812492C thumb_func_start unref_sub_81249B0 unref_sub_81249B0: @ 81249B0 push {r4,lr} adds r2, r0, 0 lsls r1, 24 lsrs r1, 24 adds r4, r1, 0 cmp r4, 0xF bhi _081249DC lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r1, r2, r0 ldrb r0, [r1, 0x4] lsrs r0, 7 cmp r0, 0 beq _081249DC adds r0, r1, 0x4 movs r1, 0 movs r2, 0xC bl memset adds r0, r4, 0 b _081249DE _081249DC: movs r0, 0xFF _081249DE: pop {r4} pop {r1} bx r1 thumb_func_end unref_sub_81249B0 thumb_func_start sub_81249E4 sub_81249E4: @ 81249E4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r5, r0, 0 movs r0, 0 mov r12, r0 ldrb r1, [r5, 0x8] cmp r12, r1 bcc _081249FC b _08124B94 _081249FC: movs r7, 0x1F ldr r0, _08124A2C mov r10, r0 movs r1, 0x7D negs r1, r1 mov r9, r1 movs r0, 0x1F mov r8, r0 _08124A0C: ldrh r0, [r5, 0x6] add r0, r12 lsls r0, 1 ldr r1, _08124A30 adds r3, r0, r1 ldr r1, _08124A34 adds r6, r0, r1 ldrb r0, [r5] lsls r0, 25 lsrs r0, 25 cmp r0, 0x1 beq _08124A38 cmp r0, 0x2 beq _08124A96 b _08124B82 .align 2, 0 _08124A2C: .4byte 0xfffffc1f _08124A30: .4byte 0x0202eec8 _08124A34: .4byte 0x0202eac8 _08124A38: ldr r0, [r3] lsls r2, r0, 27 lsrs r0, r2, 27 movs r1, 0x3 ldrsb r1, [r5, r1] adds r0, r1 cmp r0, 0x1F bhi _08124A5A lsrs r0, r2, 27 adds r0, r1 ands r0, r7 ldrb r2, [r3] movs r1, 0x20 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3] _08124A5A: ldr r0, [r3] lsls r2, r0, 22 lsrs r0, r2, 27 movs r1, 0x3 ldrsb r1, [r5, r1] adds r0, r1 cmp r0, 0x1F bhi _08124A7E lsrs r0, r2, 27 adds r0, r1 mov r1, r8 ands r0, r1 lsls r0, 5 ldrh r2, [r3] mov r1, r10 ands r1, r2 orrs r1, r0 strh r1, [r3] _08124A7E: ldr r0, [r3] lsls r2, r0, 17 lsrs r0, r2, 27 movs r1, 0x3 ldrsb r1, [r5, r1] adds r0, r1 cmp r0, 0x1F bls _08124A90 b _08124B82 _08124A90: lsrs r0, r2, 27 adds r0, r1 b _08124B74 _08124A96: movs r0, 0x3 ldrsb r0, [r5, r0] cmp r0, 0 bge _08124B08 ldr r0, [r3] lsls r4, r0, 27 lsrs r1, r4, 27 movs r2, 0x3 ldrsb r2, [r5, r2] adds r1, r2 ldr r0, [r6] lsls r0, 27 lsrs r0, 27 cmp r1, r0 blt _08124AC6 lsrs r0, r4, 27 adds r0, r2 ands r0, r7 ldrb r2, [r3] movs r1, 0x20 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3] _08124AC6: ldr r0, [r3] lsls r4, r0, 22 lsrs r1, r4, 27 movs r2, 0x3 ldrsb r2, [r5, r2] adds r1, r2 ldr r0, [r6] lsls r0, 22 lsrs r0, 27 cmp r1, r0 blt _08124AF0 lsrs r0, r4, 27 adds r0, r2 mov r1, r8 ands r0, r1 lsls r0, 5 ldrh r2, [r3] mov r1, r10 ands r1, r2 orrs r1, r0 strh r1, [r3] _08124AF0: ldr r0, [r3] lsls r4, r0, 17 lsrs r1, r4, 27 movs r2, 0x3 ldrsb r2, [r5, r2] adds r1, r2 ldr r0, [r6] lsls r0, 17 lsrs r0, 27 cmp r1, r0 blt _08124B82 b _08124B70 _08124B08: ldr r0, [r3] lsls r4, r0, 27 lsrs r1, r4, 27 movs r2, 0x3 ldrsb r2, [r5, r2] adds r1, r2 ldr r0, [r6] lsls r0, 27 lsrs r0, 27 cmp r1, r0 bgt _08124B30 lsrs r0, r4, 27 adds r0, r2 ands r0, r7 ldrb r2, [r3] movs r1, 0x20 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3] _08124B30: ldr r0, [r3] lsls r4, r0, 22 lsrs r1, r4, 27 movs r2, 0x3 ldrsb r2, [r5, r2] adds r1, r2 ldr r0, [r6] lsls r0, 22 lsrs r0, 27 cmp r1, r0 bgt _08124B5A lsrs r0, r4, 27 adds r0, r2 mov r1, r8 ands r0, r1 lsls r0, 5 ldrh r2, [r3] mov r1, r10 ands r1, r2 orrs r1, r0 strh r1, [r3] _08124B5A: ldr r0, [r3] lsls r4, r0, 17 lsrs r1, r4, 27 movs r2, 0x3 ldrsb r2, [r5, r2] adds r1, r2 ldr r0, [r6] lsls r0, 17 lsrs r0, 27 cmp r1, r0 bgt _08124B82 _08124B70: lsrs r0, r4, 27 adds r0, r2 _08124B74: ands r0, r7 lsls r0, 2 ldrb r2, [r3, 0x1] mov r1, r9 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x1] _08124B82: mov r0, r12 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r12, r0 ldrb r0, [r5, 0x8] cmp r12, r0 bcs _08124B94 b _08124A0C _08124B94: ldrb r1, [r5, 0x2] adds r0, r1, 0x1 strb r0, [r5, 0x2] ldrb r0, [r5, 0xB] lsls r0, 27 lsls r1, 24 asrs r0, 3 cmp r1, r0 beq _08124BAA movs r0, 0 b _08124BDE _08124BAA: movs r0, 0 strb r0, [r5, 0x2] movs r0, 0x3 ldrsb r0, [r5, r0] negs r0, r0 strb r0, [r5, 0x3] ldrb r2, [r5] movs r1, 0x7F movs r0, 0x7F ands r0, r2 cmp r0, 0x1 bne _08124BCA lsls r0, r2, 25 lsrs r0, 25 adds r0, 0x1 b _08124BD0 _08124BCA: lsls r0, r2, 25 lsrs r0, 25 subs r0, 0x1 _08124BD0: ands r0, r1 movs r1, 0x80 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r5] movs r0, 0x1 _08124BDE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81249E4 thumb_func_start sub_8124BEC sub_8124BEC: @ 8124BEC push {r4,r5,lr} adds r3, r0, 0 movs r2, 0 ldrb r0, [r3] lsls r0, 25 lsrs r0, 25 cmp r0, 0x1 beq _08124C02 cmp r0, 0x2 beq _08124C30 b _08124C6A _08124C02: ldrb r0, [r3, 0x8] cmp r2, r0 bcs _08124C22 ldr r4, _08124C2C _08124C0A: ldrh r0, [r3, 0x6] adds r0, r2 lsls r0, 1 adds r0, r4 ldrh r1, [r3, 0x4] strh r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 ldrb r0, [r3, 0x8] cmp r2, r0 bcc _08124C0A _08124C22: ldrb r2, [r3] lsls r1, r2, 25 lsrs r1, 25 adds r1, 0x1 b _08124C5C .align 2, 0 _08124C2C: .4byte 0x0202eec8 _08124C30: ldrb r0, [r3, 0x8] cmp r2, r0 bcs _08124C54 ldr r5, _08124C74 ldr r4, _08124C78 _08124C3A: ldrh r0, [r3, 0x6] adds r0, r2 lsls r0, 1 adds r1, r0, r5 adds r0, r4 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 ldrb r0, [r3, 0x8] cmp r2, r0 bcc _08124C3A _08124C54: ldrb r2, [r3] lsls r1, r2, 25 lsrs r1, 25 subs r1, 0x1 _08124C5C: movs r0, 0x7F ands r1, r0 movs r0, 0x80 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _08124C6A: movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08124C74: .4byte 0x0202eec8 _08124C78: .4byte 0x0202eac8 thumb_func_end sub_8124BEC thumb_func_start task_tutorial_controls_fadein task_tutorial_controls_fadein: @ 8124C7C push {r4-r6,lr} adds r4, r0, 0 movs r5, 0 ldrb r0, [r4] cmp r0, 0 beq _08124CE0 _08124C88: ldrh r0, [r4, 0x2] asrs r0, r5 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08124CD6 lsls r1, r5, 1 adds r0, r1, r5 lsls r3, r0, 2 adds r2, r4, r3 ldrb r0, [r2, 0x5] subs r0, 0x1 strb r0, [r2, 0x5] lsls r0, 24 lsrs r0, 24 adds r6, r1, 0 cmp r0, 0xFF bne _08124CD6 ldrh r0, [r2, 0x8] movs r2, 0x80 lsls r2, 8 adds r1, r2, 0 ands r0, r1 cmp r0, 0 beq _08124CC4 adds r0, r3, 0x4 adds r0, r4, r0 bl sub_81249E4 b _08124CCC _08124CC4: adds r0, r3, 0x4 adds r0, r4, r0 bl sub_8124BEC _08124CCC: adds r0, r6, r5 lsls r0, 2 adds r0, r4, r0 ldrb r1, [r0, 0xD] strb r1, [r0, 0x5] _08124CD6: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xF bls _08124C88 _08124CE0: pop {r4-r6} pop {r0} bx r0 thumb_func_end task_tutorial_controls_fadein thumb_func_start sub_8124CE8 sub_8124CE8: @ 8124CE8 push {r4-r7,lr} adds r3, r0, 0 lsls r1, 16 lsrs r6, r1, 16 movs r4, 0 ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] movs r5, 0x1 movs r7, 0x80 negs r7, r7 _08124CFE: adds r0, r6, 0 asrs r0, r4 ands r0, r5 cmp r0, 0 beq _08124D2C lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r2, r3, r0 ldrb r0, [r2, 0x4] lsrs r0, 7 cmp r0, 0 beq _08124D2C adds r0, r5, 0 lsls r0, r4 ldrh r1, [r3, 0x2] orrs r0, r1 strh r0, [r3, 0x2] ldrb r1, [r2, 0x4] adds r0, r7, 0 ands r0, r1 orrs r0, r5 strb r0, [r2, 0x4] _08124D2C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _08124CFE pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8124CE8 thumb_func_start sub_8124D3C sub_8124D3C: @ 8124D3C push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 lsls r1, 16 lsrs r7, r1, 16 movs r5, 0 movs r3, 0x1 _08124D4A: ldrh r0, [r6, 0x2] asrs r0, r5 ands r0, r3 cmp r0, 0 beq _08124DB2 lsls r0, r5, 1 adds r0, r5 lsls r0, 2 adds r4, r6, r0 ldrb r0, [r4, 0x4] lsrs r0, 7 cmp r0, 0 beq _08124DB2 adds r0, r7, 0 asrs r0, r5 ands r0, r3 cmp r0, 0 beq _08124DB2 ldrh r1, [r4, 0xA] lsls r1, 1 ldr r0, _08124DA8 adds r0, r1, r0 ldr r2, _08124DAC adds r1, r2 ldrb r2, [r4, 0xC] lsls r2, 1 str r3, [sp] bl memcpy ldrb r0, [r4, 0x4] movs r2, 0x80 negs r2, r2 adds r1, r2, 0 ands r0, r1 strb r0, [r4, 0x4] movs r0, 0 strb r0, [r4, 0x6] strb r0, [r4, 0x5] ldrb r0, [r4, 0xF] lsls r0, 24 ldr r3, [sp] cmp r0, 0 bge _08124DB0 movs r0, 0xFF strb r0, [r4, 0x7] b _08124DB2 .align 2, 0 _08124DA8: .4byte 0x0202eec8 _08124DAC: .4byte 0x0202eac8 _08124DB0: strb r3, [r4, 0x7] _08124DB2: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xF bls _08124D4A ldr r0, _08124DC8 cmp r7, r0 bne _08124DCC movs r0, 0 strb r0, [r6] b _08124DD0 .align 2, 0 _08124DC8: .4byte 0x0000ffff _08124DCC: ldrh r0, [r6, 0x2] bics r0, r7 _08124DD0: strh r0, [r6, 0x2] add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8124D3C thumb_func_start sub_8124DDC sub_8124DDC: @ 8124DDC push {r4-r7,lr} adds r6, r0, 0 ldr r0, [sp, 0x14] ldr r4, [sp, 0x18] lsls r1, 16 lsrs r7, r1, 16 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsls r0, 24 lsrs r5, r0, 24 lsls r4, 24 lsrs r4, 24 movs r1, 0 lsrs r3, 19 adds r3, r2 lsls r3, 1 adds r6, r3 cmp r1, r4 bcs _08124E26 _08124E04: lsls r0, r1, 6 adds r2, r6, r0 movs r0, 0 adds r3, r1, 0x1 cmp r0, r5 bcs _08124E1E _08124E10: strh r7, [r2] adds r2, 0x2 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, r5 bcc _08124E10 _08124E1E: lsls r0, r3, 24 lsrs r1, r0, 24 cmp r1, r4 bcc _08124E04 _08124E26: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8124DDC thumb_func_start sub_8124E2C sub_8124E2C: @ 8124E2C push {r4-r7,lr} adds r7, r0, 0 ldr r0, [sp, 0x14] ldr r4, [sp, 0x18] lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsls r0, 24 lsrs r5, r0, 24 lsls r4, 24 lsrs r6, r4, 24 movs r4, 0 lsrs r3, 19 adds r3, r2 lsls r3, 1 adds r7, r3 cmp r4, r6 bcs _08124E76 _08124E50: lsls r0, r4, 6 adds r2, r7, r0 movs r3, 0 adds r4, 0x1 cmp r3, r5 bcs _08124E6E _08124E5C: ldrh r0, [r1] strh r0, [r2] adds r1, 0x2 adds r2, 0x2 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, r5 bcc _08124E5C _08124E6E: lsls r0, r4, 24 lsrs r4, r0, 24 cmp r4, r6 bcc _08124E50 _08124E76: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8124E2C thumb_func_start sub_8124E7C sub_8124E7C: @ 8124E7C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r10, r0 ldr r0, [sp, 0x24] ldr r4, [sp, 0x28] lsls r1, 16 lsrs r1, 16 mov r9, r1 lsls r2, 24 lsrs r2, 24 str r2, [sp] lsls r3, 24 lsls r0, 24 lsrs r7, r0, 24 lsls r4, 24 lsrs r4, 24 mov r8, r4 movs r0, 0 lsrs r4, r3, 24 cmp r0, r8 bcs _08124EF6 _08124EAE: ldr r2, [sp] movs r3, 0 adds r6, r4, 0x1 adds r0, 0x1 mov r12, r0 cmp r3, r7 bcs _08124EE0 lsls r5, r4, 6 _08124EBE: lsls r0, r2, 1 adds r0, r5 add r0, r10 mov r1, r9 strh r1, [r0] adds r1, r2, 0x1 adds r0, r1, 0 asrs r0, 5 lsls r0, 5 subs r0, r1, r0 lsls r0, 24 lsrs r2, r0, 24 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, r7 bcc _08124EBE _08124EE0: adds r0, r6, 0 asrs r0, 5 lsls r0, 5 subs r0, r6, r0 lsls r0, 24 lsrs r4, r0, 24 mov r1, r12 lsls r0, r1, 24 lsrs r0, 24 cmp r0, r8 bcc _08124EAE _08124EF6: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8124E7C thumb_func_start sub_8124F08 sub_8124F08: @ 8124F08 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r10, r0 ldr r0, [sp, 0x24] ldr r4, [sp, 0x28] lsls r2, 24 lsrs r2, 24 str r2, [sp] lsls r3, 24 lsls r0, 24 lsrs r0, 24 mov r12, r0 lsls r4, 24 lsrs r4, 24 mov r9, r4 movs r0, 0 adds r5, r1, 0 lsrs r4, r3, 24 cmp r0, r9 bcs _08124F82 _08124F38: ldr r2, [sp] movs r3, 0 adds r7, r4, 0x1 adds r0, 0x1 mov r8, r0 cmp r3, r12 bcs _08124F6C lsls r6, r4, 6 _08124F48: lsls r0, r2, 1 adds r0, r6 add r0, r10 ldrh r1, [r5] strh r1, [r0] adds r5, 0x2 adds r1, r2, 0x1 adds r0, r1, 0 asrs r0, 5 lsls r0, 5 subs r0, r1, r0 lsls r0, 24 lsrs r2, r0, 24 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, r12 bcc _08124F48 _08124F6C: adds r0, r7, 0 asrs r0, 5 lsls r0, 5 subs r0, r7, r0 lsls r0, 24 lsrs r4, r0, 24 mov r1, r8 lsls r0, r1, 24 lsrs r0, 24 cmp r0, r9 bcc _08124F38 _08124F82: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8124F08 thumb_func_start unref_sub_8124F94 unref_sub_8124F94: @ 8124F94 sub sp, 0x4 movs r3, 0 strb r3, [r0, 0x1] strb r3, [r0] strh r3, [r0, 0x2] movs r1, 0xC0 lsls r1, 19 str r1, [r0, 0x4] mov r1, sp strh r3, [r1] ldr r2, _08124FCC str r1, [r2] adds r1, r0, 0 adds r1, 0x8 str r1, [r2, 0x4] ldr r1, _08124FD0 str r1, [r2, 0x8] ldr r1, [r2, 0x8] mov r1, sp strh r3, [r1] str r1, [r2] adds r0, 0x88 str r0, [r2, 0x4] ldr r0, _08124FD4 str r0, [r2, 0x8] ldr r0, [r2, 0x8] add sp, 0x4 bx lr .align 2, 0 _08124FCC: .4byte 0x040000d4 _08124FD0: .4byte 0x81000040 _08124FD4: .4byte 0x810000c0 thumb_func_end unref_sub_8124F94 thumb_func_start unref_sub_8124FD8 unref_sub_8124FD8: @ 8124FD8 push {r4-r7,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r7, _08124FE4 b _0812508A .align 2, 0 _08124FE4: .4byte 0x040000d4 _08124FE8: ldrb r0, [r4, 0x1] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r0, r4, 0 adds r0, 0x88 adds r0, r1 str r3, [r0] ldrb r1, [r4, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4, r0 ldrb r1, [r5, 0x6] adds r0, 0x8E strb r1, [r0] ldrb r1, [r4, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4, r0 ldrb r1, [r5, 0x4] adds r0, 0x8C strb r1, [r0] ldrb r1, [r4, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4, r0 ldrb r1, [r5, 0x5] adds r0, 0x8D strb r1, [r0] ldrb r1, [r5, 0x4] ldrb r0, [r5, 0x5] adds r6, r1, 0 muls r6, r0 ldrh r2, [r4, 0x2] adds r1, r2, r6 movs r0, 0x80 lsls r0, 3 cmp r1, r0 ble _08125040 movs r0, 0x2 b _0812509C _08125040: ldrh r0, [r5, 0x8] cmp r0, 0 bne _08125060 str r3, [r7] ldrh r1, [r4, 0x2] lsls r1, 6 ldr r0, [r4, 0x4] adds r0, r1 str r0, [r7, 0x4] lsls r0, r6, 4 movs r1, 0x80 lsls r1, 24 orrs r0, r1 str r0, [r7, 0x8] ldr r0, [r7, 0x8] b _0812506C _08125060: lsls r0, r2, 6 ldr r1, [r4, 0x4] adds r1, r0 adds r0, r3, 0 bl sub_800D238 _0812506C: ldrb r1, [r4, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4, r0 ldrh r1, [r4, 0x2] adds r0, 0x90 strh r1, [r0] ldrh r0, [r4, 0x2] adds r0, r6, r0 strh r0, [r4, 0x2] ldrb r0, [r4, 0x1] adds r0, 0x1 strb r0, [r4, 0x1] adds r5, 0xC _0812508A: ldrb r0, [r4, 0x1] cmp r0, 0x1F bhi _0812509A ldr r3, [r5] cmp r3, 0 bne _08124FE8 movs r0, 0 b _0812509C _0812509A: movs r0, 0x1 _0812509C: pop {r4-r7} pop {r1} bx r1 thumb_func_end unref_sub_8124FD8 thumb_func_start unref_sub_81250A4 unref_sub_81250A4: @ 81250A4 push {r4,r5,lr} sub sp, 0x20 adds r4, r0, 0 adds r5, r1, 0 b _081250FC _081250AE: ldrb r1, [r4] lsls r1, 3 adds r0, r4, 0 adds r0, 0x8 adds r0, r1 str r2, [r0] ldrb r0, [r4] lsls r0, 3 adds r0, r4, r0 ldrb r1, [r5, 0x4] strb r1, [r0, 0xC] ldrb r0, [r5, 0x5] cmp r0, 0 bne _081250D8 ldrb r1, [r4] lsls r1, 4 adds r0, r2, 0 movs r2, 0x20 bl LoadPalette b _081250EC _081250D8: adds r0, r2, 0 mov r1, sp bl sub_800D238 ldrb r1, [r4] lsls r1, 4 mov r0, sp movs r2, 0x20 bl LoadPalette _081250EC: ldrb r0, [r4] lsls r1, r0, 3 adds r1, r4, r1 strb r0, [r1, 0xD] ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] adds r5, 0x8 _081250FC: ldrb r0, [r4] cmp r0, 0xF bhi _0812510C ldr r2, [r5] cmp r2, 0 bne _081250AE movs r0, 0 b _0812510E _0812510C: movs r0, 0x1 _0812510E: add sp, 0x20 pop {r4,r5} pop {r1} bx r1 thumb_func_end unref_sub_81250A4 thumb_func_start unref_sub_8125118 unref_sub_8125118: @ 8125118 push {r4-r7,lr} ldr r4, _0812514C add sp, r4 adds r5, r0, 0 adds r6, r1, 0 movs r2, 0x80 lsls r2, 2 mov r0, sp movs r1, 0 bl memset ldrb r7, [r6, 0x5] ldr r0, [r6] mov r1, sp bl sub_800D238 ldrb r4, [r5] cmp r4, r7 bcs _08125186 _0812513E: ldrb r0, [r5] adds r0, r4 cmp r0, 0xF ble _08125150 movs r0, 0x1 b _08125188 .align 2, 0 _0812514C: .4byte 0xfffffe00 _08125150: lsls r2, r4, 3 adds r0, r5, 0 adds r0, 0x8 adds r0, r2 ldr r1, [r6] str r1, [r0] adds r2, r5, r2 ldrb r0, [r6, 0x4] adds r0, r4, r0 strb r0, [r2, 0xC] ldrb r0, [r5] strb r0, [r2, 0xD] lsls r0, r4, 5 add r0, sp ldrb r1, [r5] lsls r1, 4 movs r2, 0x20 bl LoadPalette ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r7 bcc _0812513E _08125186: movs r0, 0 _08125188: movs r3, 0x80 lsls r3, 2 add sp, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end unref_sub_8125118 thumb_func_start calls_flash_erase_block calls_flash_erase_block: @ 8125194 push {r4,r5,lr} movs r4, 0 ldr r5, _081251B4 _0812519A: ldr r1, [r5] adds r0, r4, 0 bl _call_via_r1 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1F bls _0812519A pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081251B4: .4byte 0x030074b0 thumb_func_end calls_flash_erase_block thumb_func_start sub_81251B8 sub_81251B8: @ 81251B8 ldr r0, _081251C8 movs r1, 0 str r1, [r0] ldr r0, _081251CC strh r1, [r0] ldr r0, _081251D0 str r1, [r0] bx lr .align 2, 0 _081251C8: .4byte 0x03005eac _081251CC: .4byte 0x03005e9c _081251D0: .4byte 0x03005ea8 thumb_func_end sub_81251B8 thumb_func_start sub_81251D4 sub_81251D4: @ 81251D4 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r3, r1, 24 movs r4, 0 cmp r0, 0x1 beq _08125208 cmp r0, 0x1 bgt _081251EE cmp r0, 0 beq _081251F4 b _0812522C _081251EE: cmp r0, 0x2 beq _0812521C b _0812522C _081251F4: ldr r2, _08125204 movs r1, 0x1 lsls r1, r3 ldr r0, [r2] orrs r0, r1 str r0, [r2] b _0812522C .align 2, 0 _08125204: .4byte 0x03005ea8 _08125208: ldr r2, _08125218 adds r1, r0, 0 lsls r1, r3 ldr r0, [r2] bics r0, r1 str r0, [r2] b _0812522C .align 2, 0 _08125218: .4byte 0x03005ea8 _0812521C: ldr r0, _08125234 movs r1, 0x1 lsls r1, r3 ldr r0, [r0] ands r0, r1 cmp r0, 0 beq _0812522C movs r4, 0x1 _0812522C: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08125234: .4byte 0x03005ea8 thumb_func_end sub_81251D4 thumb_func_start save_write_to_flash save_write_to_flash: @ 8125238 push {r4-r7,lr} adds r7, r1, 0 lsls r0, 16 lsrs r2, r0, 16 ldr r1, _0812525C ldr r0, _08125260 str r0, [r1] ldr r0, _08125264 cmp r2, r0 beq _08125268 adds r0, r2, 0 adds r1, r7, 0 bl sub_81252D8 lsls r0, 24 lsrs r5, r0, 24 b _081252BA .align 2, 0 _0812525C: .4byte 0x03005eb0 _08125260: .4byte 0x02000000 _08125264: .4byte 0x0000ffff _08125268: ldr r1, _081252C4 ldr r5, _081252C8 ldrh r0, [r5] strh r0, [r1] ldr r1, _081252CC ldr r6, _081252D0 ldr r4, [r6] str r4, [r1] adds r0, 0x1 strh r0, [r5] ldrh r0, [r5] movs r1, 0xE bl __umodsi3 strh r0, [r5] adds r4, 0x1 str r4, [r6] movs r5, 0x1 movs r4, 0 _0812528E: adds r0, r4, 0 adds r1, r7, 0 bl sub_81252D8 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xD bls _0812528E ldr r0, _081252D4 ldr r0, [r0] cmp r0, 0 beq _081252BA movs r5, 0xFF ldr r1, _081252C8 ldr r0, _081252C4 ldrh r0, [r0] strh r0, [r1] ldr r1, _081252D0 ldr r0, _081252CC ldr r0, [r0] str r0, [r1] _081252BA: adds r0, r5, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081252C4: .4byte 0x03005ea4 _081252C8: .4byte 0x03005e9c _081252CC: .4byte 0x03005ea0 _081252D0: .4byte 0x03005eac _081252D4: .4byte 0x03005ea8 thumb_func_end save_write_to_flash thumb_func_start sub_81252D8 sub_81252D8: @ 81252D8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r4, r1, 0 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _081253A4 ldrh r0, [r0] adds r0, r6, r0 lsls r0, 16 lsrs r5, r0, 16 adds r0, r5, 0 movs r1, 0xE bl __umodsi3 lsls r0, 16 lsrs r5, r0, 16 ldr r2, _081253A8 ldr r1, [r2] movs r0, 0x1 ands r1, r0 lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r0, r5, r0 lsls r0, 16 lsrs r5, r0, 16 lsls r0, r6, 3 adds r0, r4 ldr r1, [r0] mov r10, r1 ldrh r4, [r0, 0x4] movs r3, 0 mov r9, r2 ldr r2, _081253AC mov r12, r2 mov r8, r12 movs r2, 0 ldr r1, _081253B0 _0812532A: mov r7, r8 ldr r0, [r7] adds r0, r3 strb r2, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r1 bls _0812532A mov r0, r12 ldr r1, [r0] ldr r2, _081253B4 adds r0, r1, r2 strh r6, [r0] ldr r3, _081253B8 adds r2, r1, r3 ldr r0, _081253BC str r0, [r2] ldr r6, _081253C0 adds r1, r6 mov r7, r9 ldr r0, [r7] str r0, [r1] movs r3, 0 lsls r5, 24 cmp r3, r4 bcs _08125378 mov r2, r12 _08125362: ldr r1, [r2] adds r1, r3 mov r6, r10 adds r0, r6, r3 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r4 bcc _08125362 _08125378: mov r0, r10 adds r1, r4, 0 bl sub_8125C10 ldr r1, _081253AC ldr r1, [r1] ldr r7, _081253C4 adds r2, r1, r7 strh r0, [r2] lsrs r0, r5, 24 bl sub_8125440 lsls r0, 24 lsrs r0, 24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081253A4: .4byte 0x03005e9c _081253A8: .4byte 0x03005eac _081253AC: .4byte 0x03005eb0 _081253B0: .4byte 0x00000fff _081253B4: .4byte 0x00000ff4 _081253B8: .4byte 0x00000ff8 _081253BC: .4byte 0x08012025 @ TODO: figure out what this represents _081253C0: .4byte 0x00000ffc _081253C4: .4byte 0x00000ff6 thumb_func_end sub_81252D8 thumb_func_start sub_81253C8 sub_81253C8: @ 81253C8 push {r4-r7,lr} adds r5, r1, 0 lsls r0, 24 lsrs r7, r0, 24 lsls r2, 16 lsrs r2, 16 ldr r4, _0812542C movs r3, 0 movs r6, 0 ldr r1, _08125430 _081253DC: adds r0, r4, r3 strb r6, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r1 bls _081253DC ldr r0, _08125434 adds r1, r4, r0 ldr r0, _08125438 str r0, [r1] movs r3, 0 cmp r3, r2 bcs _0812540A _081253F8: adds r1, r4, r3 adds r0, r5, r3 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r2 bcc _081253F8 _0812540A: adds r0, r5, 0 adds r1, r2, 0 bl sub_8125C10 ldr r2, _0812543C adds r1, r4, r2 strh r0, [r1] adds r0, r7, 0 adds r1, r4, 0 bl sub_8125440 lsls r0, 24 lsrs r0, 24 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0812542C: .4byte 0x02000000 _08125430: .4byte 0x00000fff _08125434: .4byte 0x00000ff8 _08125438: .4byte 0x08012025 @ TODO: figure out what this represents _0812543C: .4byte 0x00000ff4 thumb_func_end sub_81253C8 thumb_func_start sub_8125440 sub_8125440: @ 8125440 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl ProgramFlashSectorAndVerify cmp r0, 0 bne _0812545C movs r0, 0x1 adds r1, r4, 0 bl sub_81251D4 movs r0, 0x1 b _08125466 _0812545C: movs r0, 0 adds r1, r4, 0 bl sub_81251D4 movs r0, 0xFF _08125466: pop {r4} pop {r1} bx r1 thumb_func_end sub_8125440 thumb_func_start sub_812546C sub_812546C: @ 812546C push {r4-r6,lr} ldr r1, _081254A8 ldr r0, _081254AC str r0, [r1] ldr r1, _081254B0 ldr r5, _081254B4 ldrh r0, [r5] strh r0, [r1] ldr r1, _081254B8 ldr r6, _081254BC ldr r4, [r6] str r4, [r1] adds r0, 0x1 strh r0, [r5] ldrh r0, [r5] movs r1, 0xE bl __umodsi3 strh r0, [r5] adds r4, 0x1 str r4, [r6] ldr r1, _081254C0 movs r0, 0 strh r0, [r1] ldr r1, _081254C4 movs r0, 0 str r0, [r1] pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081254A8: .4byte 0x03005eb0 _081254AC: .4byte 0x02000000 _081254B0: .4byte 0x03005ea4 _081254B4: .4byte 0x03005e9c _081254B8: .4byte 0x03005ea0 _081254BC: .4byte 0x03005eac _081254C0: .4byte 0x03005eb4 _081254C4: .4byte 0x03005ea8 thumb_func_end sub_812546C thumb_func_start sub_81254C8 sub_81254C8: @ 81254C8 ldr r1, _081254EC ldr r0, _081254F0 str r0, [r1] ldr r1, _081254F4 ldr r0, _081254F8 ldrh r0, [r0] strh r0, [r1] ldr r1, _081254FC ldr r0, _08125500 ldr r0, [r0] str r0, [r1] ldr r1, _08125504 movs r0, 0 strh r0, [r1] ldr r1, _08125508 movs r0, 0 str r0, [r1] bx lr .align 2, 0 _081254EC: .4byte 0x03005eb0 _081254F0: .4byte 0x02000000 _081254F4: .4byte 0x03005ea4 _081254F8: .4byte 0x03005e9c _081254FC: .4byte 0x03005ea0 _08125500: .4byte 0x03005eac _08125504: .4byte 0x03005eb4 _08125508: .4byte 0x03005ea8 thumb_func_end sub_81254C8 thumb_func_start sub_812550C sub_812550C: @ 812550C push {r4,r5,lr} lsls r0, 16 lsrs r0, 16 ldr r4, _08125548 ldrh r2, [r4] subs r0, 0x1 cmp r2, r0 bge _08125560 movs r5, 0x1 adds r0, r2, 0 bl sub_81252D8 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] ldr r0, _0812554C ldr r0, [r0] cmp r0, 0 beq _08125562 movs r5, 0xFF ldr r1, _08125550 ldr r0, _08125554 ldrh r0, [r0] strh r0, [r1] ldr r1, _08125558 ldr r0, _0812555C ldr r0, [r0] str r0, [r1] b _08125562 .align 2, 0 _08125548: .4byte 0x03005eb4 _0812554C: .4byte 0x03005ea8 _08125550: .4byte 0x03005e9c _08125554: .4byte 0x03005ea4 _08125558: .4byte 0x03005eac _0812555C: .4byte 0x03005ea0 _08125560: movs r5, 0xFF _08125562: adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_812550C thumb_func_start sub_812556C sub_812556C: @ 812556C push {r4,lr} lsls r0, 16 movs r4, 0x1 ldr r2, _081255A0 adds r0, r2 lsrs r0, 16 bl sub_81255B8 ldr r0, _081255A4 ldr r0, [r0] cmp r0, 0 beq _08125596 movs r4, 0xFF ldr r1, _081255A8 ldr r0, _081255AC ldrh r0, [r0] strh r0, [r1] ldr r1, _081255B0 ldr r0, _081255B4 ldr r0, [r0] str r0, [r1] _08125596: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _081255A0: .4byte 0xffff0000 _081255A4: .4byte 0x03005ea8 _081255A8: .4byte 0x03005e9c _081255AC: .4byte 0x03005ea4 _081255B0: .4byte 0x03005eac _081255B4: .4byte 0x03005ea0 thumb_func_end sub_812556C thumb_func_start sub_81255B8 sub_81255B8: @ 81255B8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r4, r1, 0 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _08125684 ldrh r0, [r0] adds r0, r6, r0 lsls r0, 16 lsrs r5, r0, 16 adds r0, r5, 0 movs r1, 0xE bl __umodsi3 lsls r0, 16 lsrs r5, r0, 16 ldr r2, _08125688 ldr r1, [r2] movs r0, 0x1 ands r1, r0 lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r0, r5, r0 lsls r0, 16 lsrs r5, r0, 16 lsls r0, r6, 3 adds r0, r4 ldr r1, [r0] mov r10, r1 ldrh r3, [r0, 0x4] movs r4, 0 mov r9, r2 ldr r2, _0812568C mov r12, r2 mov r8, r12 movs r2, 0 ldr r1, _08125690 _0812560A: mov r7, r8 ldr r0, [r7] adds r0, r4 strb r2, [r0] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r1 bls _0812560A mov r0, r12 ldr r1, [r0] ldr r2, _08125694 adds r0, r1, r2 strh r6, [r0] ldr r6, _08125698 adds r2, r1, r6 ldr r0, _0812569C str r0, [r2] ldr r7, _081256A0 adds r1, r7 mov r2, r9 ldr r0, [r2] str r0, [r1] movs r4, 0 lsls r6, r5, 24 mov r8, r6 cmp r4, r3 bcs _0812565A mov r2, r12 _08125644: ldr r1, [r2] adds r1, r4 mov r7, r10 adds r0, r7, r4 ldrb r0, [r0] strb r0, [r1] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r3 bcc _08125644 _0812565A: mov r0, r10 adds r1, r3, 0 bl sub_8125C10 ldr r1, _0812568C ldr r1, [r1] ldr r2, _081256A4 adds r1, r2 strh r0, [r1] ldr r0, _081256A8 ldr r1, [r0] adds r0, r5, 0 bl _call_via_r1 movs r6, 0x1 movs r4, 0 ldr r7, _081256AC mov r9, r7 ldr r7, _081256B0 b _081256BA .align 2, 0 _08125684: .4byte 0x03005e9c _08125688: .4byte 0x03005eac _0812568C: .4byte 0x03005eb0 _08125690: .4byte 0x00000fff _08125694: .4byte 0x00000ff4 _08125698: .4byte 0x00000ff8 _0812569C: .4byte 0x08012025 @ TODO: figure out what this represents _081256A0: .4byte 0x00000ffc _081256A4: .4byte 0x00000ff6 _081256A8: .4byte 0x030074b0 _081256AC: .4byte 0x00000ff7 _081256B0: .4byte 0x030074a4 _081256B4: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _081256BA: cmp r4, r9 bhi _081256D8 ldr r0, _081256E4 ldr r0, [r0] adds r0, r4 ldrb r2, [r0] ldr r3, [r7] adds r0, r5, 0 adds r1, r4, 0 bl _call_via_r3 lsls r0, 16 cmp r0, 0 beq _081256B4 movs r6, 0xFF _081256D8: cmp r6, 0xFF bne _081256E8 mov r0, r8 lsrs r1, r0, 24 b _08125740 .align 2, 0 _081256E4: .4byte 0x03005eb0 _081256E8: movs r6, 0x1 movs r4, 0 ldr r1, _081256F4 mov r9, r1 ldr r7, _081256F8 b _08125702 .align 2, 0 _081256F4: .4byte 0x030074a4 _081256F8: .4byte 0x00000ff9 _081256FC: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _08125702: cmp r4, 0x6 bhi _08125724 adds r1, r4, r7 ldr r0, _08125738 ldr r0, [r0] adds r0, r4, r0 adds r0, r7 ldrb r2, [r0] mov r0, r9 ldr r3, [r0] adds r0, r5, 0 bl _call_via_r3 lsls r0, 16 cmp r0, 0 beq _081256FC movs r6, 0xFF _08125724: cmp r6, 0xFF beq _0812573C mov r2, r8 lsrs r1, r2, 24 movs r0, 0x1 bl sub_81251D4 movs r0, 0x1 b _08125748 .align 2, 0 _08125738: .4byte 0x03005eb0 _0812573C: mov r6, r8 lsrs r1, r6, 24 _08125740: movs r0, 0 bl sub_81251D4 movs r0, 0xFF _08125748: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81255B8 thumb_func_start sub_8125758 sub_8125758: @ 8125758 push {r4-r6,lr} lsls r0, 16 ldr r6, _081257B4 lsrs r0, 16 ldrh r1, [r6] adds r0, r1 subs r0, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 movs r1, 0xE bl __umodsi3 lsls r0, 16 lsrs r4, r0, 16 ldr r5, _081257B8 ldr r1, [r5] movs r0, 0x1 ands r1, r0 lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 ldr r3, _081257BC ldr r1, _081257C0 ldr r0, _081257C4 ldr r0, [r0] adds r0, r1 ldrb r2, [r0] ldr r3, [r3] adds r0, r4, 0 bl _call_via_r3 lsls r0, 16 cmp r0, 0 bne _081257C8 lsls r1, r4, 24 lsrs r1, 24 movs r0, 0x1 bl sub_81251D4 movs r0, 0x1 b _081257E0 .align 2, 0 _081257B4: .4byte 0x03005e9c _081257B8: .4byte 0x03005eac _081257BC: .4byte 0x030074a4 _081257C0: .4byte 0x00000ff8 _081257C4: .4byte 0x03005eb0 _081257C8: lsls r1, r4, 24 lsrs r1, 24 movs r0, 0 bl sub_81251D4 ldr r0, _081257E8 ldrh r0, [r0] strh r0, [r6] ldr r0, _081257EC ldr r0, [r0] str r0, [r5] movs r0, 0xFF _081257E0: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081257E8: .4byte 0x03005ea4 _081257EC: .4byte 0x03005ea0 thumb_func_end sub_8125758 thumb_func_start sub_81257F0 sub_81257F0: @ 81257F0 push {r4-r6,lr} lsls r0, 16 ldr r6, _08125844 lsrs r0, 16 ldrh r1, [r6] adds r0, r1 subs r0, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 movs r1, 0xE bl __umodsi3 lsls r0, 16 lsrs r4, r0, 16 ldr r5, _08125848 ldr r1, [r5] movs r0, 0x1 ands r1, r0 lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 ldr r0, _0812584C ldr r1, _08125850 ldr r3, [r0] adds r0, r4, 0 movs r2, 0x25 bl _call_via_r3 lsls r0, 16 cmp r0, 0 bne _08125854 lsls r1, r4, 24 lsrs r1, 24 movs r0, 0x1 bl sub_81251D4 movs r0, 0x1 b _0812586C .align 2, 0 _08125844: .4byte 0x03005e9c _08125848: .4byte 0x03005eac _0812584C: .4byte 0x030074a4 _08125850: .4byte 0x00000ff8 _08125854: lsls r1, r4, 24 lsrs r1, 24 movs r0, 0 bl sub_81251D4 ldr r0, _08125874 ldrh r0, [r0] strh r0, [r6] ldr r0, _08125878 ldr r0, [r0] str r0, [r5] movs r0, 0xFF _0812586C: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08125874: .4byte 0x03005ea4 _08125878: .4byte 0x03005ea0 thumb_func_end sub_81257F0 thumb_func_start sub_812587C sub_812587C: @ 812587C push {r4-r6,lr} adds r6, r1, 0 lsls r0, 16 lsrs r4, r0, 16 ldr r1, _08125894 ldr r0, _08125898 str r0, [r1] ldr r0, _0812589C cmp r4, r0 beq _081258A0 movs r5, 0xFF b _081258B2 .align 2, 0 _08125894: .4byte 0x03005eb0 _08125898: .4byte 0x02000000 _0812589C: .4byte 0x0000ffff _081258A0: adds r0, r6, 0 bl sub_8125974 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 adds r1, r6, 0 bl sub_81258BC _081258B2: adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_812587C thumb_func_start sub_81258BC sub_81258BC: @ 81258BC push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r1 ldr r0, _08125958 ldr r1, [r0] movs r0, 0x1 ands r1, r0 lsls r0, r1, 3 subs r0, r1 lsls r0, 17 lsrs r7, r0, 16 movs r5, 0 ldr r6, _0812595C _081258D8: adds r0, r5, r7 lsls r0, 24 lsrs r0, 24 ldr r1, [r6] bl sub_8125BF8 ldr r0, [r6] ldr r1, _08125960 adds r0, r1 ldrh r1, [r0] cmp r1, 0 bne _081258F4 ldr r0, _08125964 strh r5, [r0] _081258F4: ldr r0, [r6] lsls r1, 3 mov r2, r8 adds r4, r1, r2 ldrh r1, [r4, 0x4] bl sub_8125C10 lsls r0, 16 lsrs r3, r0, 16 ldr r2, [r6] ldr r1, _08125968 adds r0, r2, r1 ldr r1, [r0] ldr r0, _0812596C adds r5, 0x1 cmp r1, r0 bne _08125944 ldr r1, _08125970 adds r0, r2, r1 ldrh r0, [r0] cmp r0, r3 bne _08125944 movs r2, 0 ldrh r0, [r4, 0x4] cmp r2, r0 bcs _08125944 adds r3, r4, 0 ldr r4, _0812595C _0812592C: ldr r1, [r3] adds r1, r2 ldr r0, [r4] adds r0, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldrh r1, [r3, 0x4] cmp r2, r1 bcc _0812592C _08125944: lsls r0, r5, 16 lsrs r5, r0, 16 cmp r5, 0xD bls _081258D8 movs r0, 0x1 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08125958: .4byte 0x03005eac _0812595C: .4byte 0x03005eb0 _08125960: .4byte 0x00000ff4 _08125964: .4byte 0x03005e9c _08125968: .4byte 0x00000ff8 _0812596C: .4byte 0x08012025 @ TODO: figure out what this represents _08125970: .4byte 0x00000ff6 thumb_func_end sub_81258BC thumb_func_start sub_8125974 sub_8125974: @ 8125974 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r10, r0 movs r0, 0 mov r8, r0 mov r9, r0 movs r6, 0 movs r5, 0 movs r4, 0 ldr r7, _08125A00 _08125990: lsls r0, r4, 24 lsrs r0, 24 ldr r1, [r7] bl sub_8125BF8 ldr r2, [r7] ldr r1, _08125A04 adds r0, r2, r1 ldr r1, [r0] ldr r0, _08125A08 cmp r1, r0 bne _081259E0 movs r5, 0x1 ldr r3, _08125A0C adds r0, r2, r3 ldrh r0, [r0] lsls r0, 3 add r0, r10 ldrh r1, [r0, 0x4] adds r0, r2, 0 bl sub_8125C10 lsls r0, 16 lsrs r2, r0, 16 ldr r1, [r7] ldr r3, _08125A10 adds r0, r1, r3 ldrh r0, [r0] cmp r0, r2 bne _081259E0 ldr r2, _08125A14 adds r0, r1, r2 ldr r0, [r0] mov r8, r0 subs r3, 0x2 adds r1, r3 adds r0, r5, 0 ldrh r1, [r1] lsls r0, r1 orrs r6, r0 _081259E0: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xD bls _08125990 cmp r5, 0 beq _08125A1C ldr r0, _08125A18 movs r1, 0xFF str r1, [sp] cmp r6, r0 bne _08125A20 movs r2, 0x1 str r2, [sp] b _08125A20 .align 2, 0 _08125A00: .4byte 0x03005eb0 _08125A04: .4byte 0x00000ff8 _08125A08: .4byte 0x08012025 @ TODO: figure out what this represents _08125A0C: .4byte 0x00000ff4 _08125A10: .4byte 0x00000ff6 _08125A14: .4byte 0x00000ffc _08125A18: .4byte 0x00003fff _08125A1C: movs r3, 0 str r3, [sp] _08125A20: movs r6, 0 movs r5, 0 movs r4, 0 ldr r7, _08125A98 _08125A28: adds r0, r4, 0 adds r0, 0xE lsls r0, 24 lsrs r0, 24 ldr r1, [r7] bl sub_8125BF8 ldr r2, [r7] ldr r1, _08125A9C adds r0, r2, r1 ldr r1, [r0] ldr r0, _08125AA0 cmp r1, r0 bne _08125A7C movs r5, 0x1 ldr r3, _08125AA4 adds r0, r2, r3 ldrh r0, [r0] lsls r0, 3 add r0, r10 ldrh r1, [r0, 0x4] adds r0, r2, 0 bl sub_8125C10 lsls r0, 16 lsrs r2, r0, 16 ldr r1, [r7] ldr r3, _08125AA8 adds r0, r1, r3 ldrh r0, [r0] cmp r0, r2 bne _08125A7C ldr r2, _08125AAC adds r0, r1, r2 ldr r0, [r0] mov r9, r0 subs r3, 0x2 adds r1, r3 adds r0, r5, 0 ldrh r1, [r1] lsls r0, r1 orrs r6, r0 _08125A7C: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xD bls _08125A28 cmp r5, 0 beq _08125AB4 ldr r0, _08125AB0 movs r1, 0xFF cmp r6, r0 bne _08125AB6 movs r1, 0x1 b _08125AB6 .align 2, 0 _08125A98: .4byte 0x03005eb0 _08125A9C: .4byte 0x00000ff8 _08125AA0: .4byte 0x08012025 @ TODO: figure out what this represents _08125AA4: .4byte 0x00000ff4 _08125AA8: .4byte 0x00000ff6 _08125AAC: .4byte 0x00000ffc _08125AB0: .4byte 0x00003fff _08125AB4: movs r1, 0 _08125AB6: ldr r0, [sp] cmp r0, 0x1 bne _08125B28 cmp r1, 0x1 bne _08125B18 movs r0, 0x1 negs r0, r0 cmp r8, r0 bne _08125ACE mov r1, r9 cmp r1, 0 beq _08125AD8 _08125ACE: mov r2, r8 cmp r2, 0 bne _08125AFC cmp r9, r0 bne _08125AFC _08125AD8: mov r1, r8 adds r1, 0x1 mov r0, r9 adds r0, 0x1 cmp r1, r0 bcs _08125AF0 ldr r0, _08125AEC mov r3, r9 b _08125B10 .align 2, 0 _08125AEC: .4byte 0x03005eac _08125AF0: ldr r0, _08125AF8 mov r1, r8 str r1, [r0] b _08125B40 .align 2, 0 _08125AF8: .4byte 0x03005eac _08125AFC: cmp r8, r9 bcs _08125B0C ldr r0, _08125B08 mov r2, r9 str r2, [r0] b _08125B40 .align 2, 0 _08125B08: .4byte 0x03005eac _08125B0C: ldr r0, _08125B14 mov r3, r8 _08125B10: str r3, [r0] b _08125B40 .align 2, 0 _08125B14: .4byte 0x03005eac _08125B18: ldr r0, _08125B24 mov r2, r8 str r2, [r0] cmp r1, 0xFF beq _08125B38 b _08125B40 .align 2, 0 _08125B24: .4byte 0x03005eac _08125B28: cmp r1, 0x1 bne _08125B44 ldr r0, _08125B3C mov r3, r9 str r3, [r0] ldr r0, [sp] cmp r0, 0xFF bne _08125B40 _08125B38: movs r0, 0xFF b _08125B70 .align 2, 0 _08125B3C: .4byte 0x03005eac _08125B40: movs r0, 0x1 b _08125B70 _08125B44: ldr r2, [sp] cmp r2, 0 bne _08125B64 cmp r1, 0 bne _08125B64 ldr r0, _08125B5C str r1, [r0] ldr r0, _08125B60 strh r1, [r0] movs r0, 0 b _08125B70 .align 2, 0 _08125B5C: .4byte 0x03005eac _08125B60: .4byte 0x03005e9c _08125B64: ldr r0, _08125B80 movs r1, 0 str r1, [r0] ldr r0, _08125B84 strh r1, [r0] movs r0, 0x2 _08125B70: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08125B80: .4byte 0x03005eac _08125B84: .4byte 0x03005e9c thumb_func_end sub_8125974 thumb_func_start sub_8125B88 sub_8125B88: @ 8125B88 push {r4-r6,lr} adds r6, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r2, 16 lsrs r4, r2, 16 ldr r5, _08125BDC adds r1, r5, 0 bl sub_8125BF8 ldr r1, _08125BE0 adds r0, r5, r1 ldr r1, [r0] ldr r0, _08125BE4 cmp r1, r0 bne _08125BF0 adds r0, r5, 0 adds r1, r4, 0 bl sub_8125C10 lsls r0, 16 lsrs r0, 16 ldr r2, _08125BE8 adds r1, r5, r2 ldrh r1, [r1] cmp r1, r0 bne _08125BEC movs r2, 0 cmp r2, r4 bcs _08125BD6 _08125BC4: adds r1, r6, r2 adds r0, r5, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r4 bcc _08125BC4 _08125BD6: movs r0, 0x1 b _08125BF2 .align 2, 0 _08125BDC: .4byte 0x02000000 _08125BE0: .4byte 0x00000ff8 _08125BE4: .4byte 0x08012025 @ TODO: figure out what this represents _08125BE8: .4byte 0x00000ff4 _08125BEC: movs r0, 0x2 b _08125BF2 _08125BF0: movs r0, 0 _08125BF2: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8125B88 thumb_func_start sub_8125BF8 sub_8125BF8: @ 8125BF8 push {lr} adds r2, r1, 0 lsls r0, 24 lsrs r0, 24 movs r3, 0x80 lsls r3, 5 movs r1, 0 bl ReadFlash movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8125BF8 thumb_func_start sub_8125C10 sub_8125C10: @ 8125C10 push {r4,lr} adds r4, r0, 0 lsls r1, 16 movs r2, 0 movs r3, 0 lsrs r1, 18 cmp r2, r1 bcs _08125C2E _08125C20: ldm r4!, {r0} adds r2, r0 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r1 bcc _08125C20 _08125C2E: lsrs r0, r2, 16 adds r0, r2 lsls r0, 16 lsrs r0, 16 pop {r4} pop {r1} bx r1 thumb_func_end sub_8125C10 thumb_func_start sub_8125C3C sub_8125C3C: @ 8125C3C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bhi _08125CB6 lsls r0, 2 ldr r1, _08125C50 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08125C50: .4byte _08125C54 .align 2, 0 _08125C54: .4byte _08125CB6 .4byte _08125CD8 .4byte _08125CF8 .4byte _08125C82 .4byte _08125D0C .4byte _08125C6C _08125C6C: movs r4, 0x1C ldr r5, _08125CC4 _08125C70: ldr r1, [r5] adds r0, r4, 0 bl _call_via_r1 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1F bls _08125C70 _08125C82: movs r0, 0xA bl sub_8053108 ldr r1, _08125CC8 cmp r0, r1 bhi _08125C94 movs r0, 0xA bl sav12_xor_increment _08125C94: movs r4, 0 ldr r5, _08125CCC _08125C98: adds r0, r4, 0 adds r0, 0x1C lsls r0, 24 lsrs r0, 24 lsls r2, r4, 3 adds r2, r5 ldr r1, [r2] ldrh r2, [r2, 0x4] bl sub_81253C8 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bls _08125C98 _08125CB6: bl save_serialize_game ldr r0, _08125CD0 ldr r1, _08125CD4 bl save_write_to_flash b _08125D2E .align 2, 0 _08125CC4: .4byte 0x030074b0 _08125CC8: .4byte 0x000003e6 _08125CCC: .4byte gUnknown_08401E14 _08125CD0: .4byte 0x0000ffff _08125CD4: .4byte gUnknown_08401DA4 _08125CD8: bl save_serialize_game movs r4, 0 _08125CDE: adds r0, r4, 0 ldr r1, _08125CF4 bl save_write_to_flash adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _08125CDE b _08125D2E .align 2, 0 _08125CF4: .4byte gUnknown_08401DA4 _08125CF8: bl save_serialize_game ldr r1, _08125D08 movs r0, 0 bl save_write_to_flash b _08125D2E .align 2, 0 _08125D08: .4byte gUnknown_08401DA4 _08125D0C: movs r4, 0x1C ldr r5, _08125D38 _08125D10: ldr r1, [r5] adds r0, r4, 0 bl _call_via_r1 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1F bls _08125D10 bl save_serialize_game ldr r0, _08125D3C ldr r1, _08125D40 bl save_write_to_flash _08125D2E: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08125D38: .4byte 0x030074b0 _08125D3C: .4byte 0x0000ffff _08125D40: .4byte gUnknown_08401DA4 thumb_func_end sub_8125C3C thumb_func_start sub_8125D44 sub_8125D44: @ 8125D44 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08125D58 ldr r0, [r0] cmp r0, 0x1 beq _08125D5C movs r0, 0xFF b _08125D7A .align 2, 0 _08125D58: .4byte 0x03004820 _08125D5C: adds r0, r4, 0 bl sub_8125C3C ldr r0, _08125D74 ldr r0, [r0] cmp r0, 0 beq _08125D78 adds r0, r4, 0 bl fullscreen_save_activate movs r0, 0xFF b _08125D7A .align 2, 0 _08125D74: .4byte 0x03005ea8 _08125D78: movs r0, 0x1 _08125D7A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8125D44 thumb_func_start sub_8125D80 sub_8125D80: @ 8125D80 push {lr} ldr r0, _08125D98 ldr r0, [r0] cmp r0, 0x1 bne _08125DA0 bl save_serialize_game ldr r0, _08125D9C bl sub_812546C movs r0, 0 b _08125DA2 .align 2, 0 _08125D98: .4byte 0x03004820 _08125D9C: .4byte gUnknown_08401DA4 _08125DA0: movs r0, 0x1 _08125DA2: pop {r1} bx r1 thumb_func_end sub_8125D80 thumb_func_start sub_8125DA8 sub_8125DA8: @ 8125DA8 push {r4,lr} ldr r1, _08125DCC movs r0, 0xE bl sub_812550C lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08125DD0 ldr r0, [r0] cmp r0, 0 beq _08125DC4 movs r0, 0 bl fullscreen_save_activate _08125DC4: cmp r4, 0xFF beq _08125DD4 movs r0, 0 b _08125DD6 .align 2, 0 _08125DCC: .4byte gUnknown_08401DA4 _08125DD0: .4byte 0x03005ea8 _08125DD4: movs r0, 0x1 _08125DD6: pop {r4} pop {r1} bx r1 thumb_func_end sub_8125DA8 thumb_func_start sub_8125DDC sub_8125DDC: @ 8125DDC push {lr} ldr r1, _08125DFC movs r0, 0xE bl sub_812556C ldr r0, _08125E00 ldr r0, [r0] cmp r0, 0 beq _08125DF4 movs r0, 0 bl fullscreen_save_activate _08125DF4: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08125DFC: .4byte gUnknown_08401DA4 _08125E00: .4byte 0x03005ea8 thumb_func_end sub_8125DDC thumb_func_start sub_8125E04 sub_8125E04: @ 8125E04 push {lr} ldr r1, _08125E24 movs r0, 0xE bl sub_8125758 ldr r0, _08125E28 ldr r0, [r0] cmp r0, 0 beq _08125E1C movs r0, 0 bl fullscreen_save_activate _08125E1C: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08125E24: .4byte gUnknown_08401DA4 _08125E28: .4byte 0x03005ea8 thumb_func_end sub_8125E04 thumb_func_start sub_8125E2C sub_8125E2C: @ 8125E2C push {r4,lr} ldr r0, _08125E58 ldr r0, [r0] cmp r0, 0x1 bne _08125E64 bl save_serialize_game ldr r4, _08125E5C adds r0, r4, 0 bl sub_81254C8 ldr r0, _08125E60 ldrh r0, [r0] adds r0, 0x1 lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 bl sub_812556C movs r0, 0 b _08125E66 .align 2, 0 _08125E58: .4byte 0x03004820 _08125E5C: .4byte gUnknown_08401DA4 _08125E60: .4byte 0x03005eb4 _08125E64: movs r0, 0x1 _08125E66: pop {r4} pop {r1} bx r1 thumb_func_end sub_8125E2C thumb_func_start sub_8125E6C sub_8125E6C: @ 8125E6C push {r4-r6,lr} movs r6, 0 ldr r0, _08125E98 ldrh r1, [r0] adds r1, 0x1 strh r1, [r0] lsls r0, r1, 16 lsrs r5, r0, 16 cmp r5, 0x4 bhi _08125EA0 adds r0, r1, 0x1 lsls r0, 16 lsrs r0, 16 ldr r4, _08125E9C adds r1, r4, 0 bl sub_812556C adds r0, r5, 0 adds r1, r4, 0 bl sub_81257F0 b _08125EAA .align 2, 0 _08125E98: .4byte 0x03005eb4 _08125E9C: .4byte gUnknown_08401DA4 _08125EA0: ldr r1, _08125EC0 adds r0, r5, 0 bl sub_81257F0 movs r6, 0x1 _08125EAA: ldr r0, _08125EC4 ldr r0, [r0] cmp r0, 0 beq _08125EB8 movs r0, 0x1 bl fullscreen_save_activate _08125EB8: adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08125EC0: .4byte gUnknown_08401DA4 _08125EC4: .4byte 0x03005ea8 thumb_func_end sub_8125E6C thumb_func_start sub_8125EC8 sub_8125EC8: @ 8125EC8 push {r4,r5,lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _08125EE0 ldr r0, [r0] cmp r0, 0x1 beq _08125EE8 ldr r1, _08125EE4 movs r0, 0x4 strh r0, [r1] movs r0, 0xFF b _08125F40 .align 2, 0 _08125EE0: .4byte 0x03004820 _08125EE4: .4byte 0x03005eb8 _08125EE8: cmp r1, 0 beq _08125EF0 cmp r1, 0x3 beq _08125F1C _08125EF0: ldr r0, _08125F0C ldr r1, _08125F10 bl sub_812587C lsls r0, 24 lsrs r4, r0, 24 bl save_deserialize_game ldr r0, _08125F14 strh r4, [r0] ldr r1, _08125F18 movs r0, 0 str r0, [r1] b _08125F3E .align 2, 0 _08125F0C: .4byte 0x0000ffff _08125F10: .4byte gUnknown_08401DA4 _08125F14: .4byte 0x03005eb8 _08125F18: .4byte 0x03005ebc _08125F1C: ldr r5, _08125F48 ldr r1, [r5] ldrh r2, [r5, 0x4] movs r0, 0x1C bl sub_8125B88 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bne _08125F3E ldr r1, [r5, 0x8] ldrh r2, [r5, 0xC] movs r0, 0x1D bl sub_8125B88 lsls r0, 24 lsrs r4, r0, 24 _08125F3E: adds r0, r4, 0 _08125F40: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08125F48: .4byte gUnknown_08401E14 thumb_func_end sub_8125EC8 thumb_func_start unref_sub_8125F4C unref_sub_8125F4C: @ 8125F4C push {r4-r6,lr} adds r4, r0, 0 adds r2, r4, 0 movs r1, 0 ldr r6, _08125F88 movs r5, 0 ldr r3, _08125F8C _08125F5A: adds r0, r2, r1 strb r5, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r3 bls _08125F5A ldrb r0, [r6] movs r3, 0x80 lsls r3, 5 movs r1, 0 adds r2, r4, 0 bl ReadFlash ldr r1, _08125F90 adds r0, r4, r1 ldr r1, [r0] ldr r0, _08125F94 cmp r1, r0 bne _08125F98 movs r0, 0x1 b _08125F9A .align 2, 0 _08125F88: .4byte gUnknown_08401E24 _08125F8C: .4byte 0x00000fff _08125F90: .4byte 0x00000ff4 _08125F94: .4byte 0x08012025 @ TODO: figure out what this represents _08125F98: movs r0, 0 _08125F9A: pop {r4-r6} pop {r1} bx r1 thumb_func_end unref_sub_8125F4C thumb_func_start unref_sub_8125FA0 unref_sub_8125FA0: @ 8125FA0 push {r4-r7,lr} movs r0, 0 bl sub_8125D44 lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r7, _08125FD0 ldr r6, _08125FD4 _08125FB2: adds r0, r4, r6 ldrb r0, [r0] ldr r1, [r7] bl _call_via_r1 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 bls _08125FB2 cmp r5, 0xFF bne _08125FD8 movs r0, 0x3 b _08125FE8 .align 2, 0 _08125FD0: .4byte 0x030074b0 _08125FD4: .4byte gUnknown_08401E24 _08125FD8: cmp r5, 0x3 beq _08125FE6 movs r0, 0 bl sub_8125EC8 movs r0, 0x1 b _08125FE8 _08125FE6: movs r0, 0x2 _08125FE8: pop {r4-r7} pop {r1} bx r1 thumb_func_end unref_sub_8125FA0 thumb_func_start unref_sub_8125FF0 unref_sub_8125FF0: @ 8125FF0 push {r4-r7,lr} adds r6, r0, 0 lsls r1, 16 lsrs r3, r1, 16 ldr r4, _08126048 movs r2, 0 ldr r7, _0812604C movs r5, 0 ldr r1, _08126050 _08126002: adds r0, r4, r2 strb r5, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r1 bls _08126002 ldr r0, _08126054 adds r1, r4, r0 ldr r0, _08126058 str r0, [r1] movs r2, 0 cmp r2, r3 bcs _08126030 _0812601E: adds r1, r4, r2 adds r0, r6, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r3 bcc _0812601E _08126030: ldrb r0, [r7] movs r2, 0x80 lsls r2, 5 adds r1, r4, 0 bl ProgramFlashSectorAndVerifyNBytes ldr r1, _0812605C str r0, [r1] cmp r0, 0 bne _08126060 movs r0, 0x1 b _08126062 .align 2, 0 _08126048: .4byte 0x02000000 _0812604C: .4byte gUnknown_08401E24 _08126050: .4byte 0x00000fff _08126054: .4byte 0x00000ff4 _08126058: .4byte 0x08012025 @ TODO: figure out what this represents _0812605C: .4byte 0x02039284 _08126060: movs r0, 0xFF _08126062: pop {r4-r7} pop {r1} bx r1 thumb_func_end unref_sub_8125FF0 thumb_func_start unref_sub_8126068 unref_sub_8126068: @ 8126068 push {lr} lsls r0, 24 lsrs r0, 24 bl ProgramFlashSectorAndVerify cmp r0, 0 bne _0812607A movs r0, 0x1 b _0812607C _0812607A: movs r0, 0xFF _0812607C: pop {r1} bx r1 thumb_func_end unref_sub_8126068 thumb_func_start unref_sub_8126080 unref_sub_8126080: @ 8126080 push {lr} adds r2, r1, 0 lsls r0, 24 lsrs r0, 24 movs r3, 0x80 lsls r3, 5 movs r1, 0 bl ReadFlash movs r0, 0x1 pop {r1} bx r1 thumb_func_end unref_sub_8126080 thumb_func_start sub_8126098 sub_8126098: @ 8126098 push {r4,lr} adds r4, r3, 0 lsls r0, 16 lsrs r0, 16 lsls r2, 16 lsrs r2, 16 movs r3, 0x2 ands r0, r3 cmp r0, 0 beq _081260C6 ands r1, r3 cmp r1, 0 beq _081260C6 movs r0, 0x4 ands r2, r0 cmp r2, 0 beq _081260C6 movs r0, 0x80 .ifdef SAPPHIRE lsls r0, 1 @ unknown difference .endif ands r0, r4 cmp r0, 0 beq _081260C6 movs r0, 0x1 b _081260C8 _081260C6: movs r0, 0 _081260C8: pop {r4} pop {r1} bx r1 thumb_func_end sub_8126098 thumb_func_start sub_81260D0 sub_81260D0: @ 81260D0 push {lr} ldr r0, _081260E4 ldr r1, _081260E8 bl StringExpandPlaceholders movs r0, 0x3 bl sub_8126160 pop {r0} bx r0 .align 2, 0 _081260E4: .4byte 0x020234cc _081260E8: .4byte gUnknown_0842F93A thumb_func_end sub_81260D0 thumb_func_start sub_81260EC sub_81260EC: @ 81260EC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r1, _08126114 ldr r2, _08126118 bl script_env_init adds r0, r4, 0 adds r1, r5, 0 bl script_setup_bytecode_script str r5, [r4, 0x64] movs r0, 0 str r0, [r4, 0x68] str r0, [r4, 0x6C] str r0, [r4, 0x70] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08126114: .4byte gScriptFuncs _08126118: .4byte gScriptFuncs_End thumb_func_end sub_81260EC thumb_func_start sub_812611C sub_812611C: @ 812611C push {r4,lr} adds r4, r0, 0 bl sub_80653EC lsls r0, 24 cmp r0, 0 beq _08126134 ldr r0, [r4, 0x70] cmp r0, 0 beq _08126134 movs r0, 0x1 b _08126136 _08126134: movs r0, 0 _08126136: pop {r4} pop {r1} bx r1 thumb_func_end sub_812611C thumb_func_start sub_812613C sub_812613C: @ 812613C push {r4,lr} adds r1, r0, 0 ldr r4, _0812615C adds r0, r4, 0 bl sub_81260EC _08126148: adds r0, r4, 0 bl sub_812611C cmp r0, 0 bne _08126148 ldr r0, [r4, 0x6C] pop {r4} pop {r1} bx r1 .align 2, 0 _0812615C: .4byte 0x02039288 thumb_func_end sub_812613C thumb_func_start sub_8126160 sub_8126160: @ 8126160 ldr r1, _08126168 str r0, [r1, 0x6C] bx lr .align 2, 0 _08126168: .4byte 0x02039288 thumb_func_end sub_8126160 thumb_func_start sub_812616C sub_812616C: @ 812616C push {r4,lr} adds r4, r0, 0 movs r3, 0 movs r2, 0 cmp r3, r1 bcs _08126184 _08126178: adds r0, r4, r2 ldrb r0, [r0] adds r3, r0 adds r2, 0x1 cmp r2, r1 bcc _08126178 _08126184: adds r0, r3, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_812616C thumb_func_start sub_812618C sub_812618C: @ 812618C adds r2, r0, 0 ldrb r0, [r2] ldrb r1, [r2, 0x1] lsls r1, 8 orrs r0, r1 ldrb r1, [r2, 0x2] lsls r1, 16 orrs r0, r1 ldrb r1, [r2, 0x3] lsls r1, 24 orrs r0, r1 bx lr thumb_func_end sub_812618C thumb_func_start sub_81261A4 sub_81261A4: @ 81261A4 strb r1, [r0] lsrs r2, r1, 8 strb r2, [r0, 0x1] lsrs r2, r1, 16 strb r2, [r0, 0x2] lsrs r1, 24 strb r1, [r0, 0x3] bx lr thumb_func_end sub_81261A4 thumb_func_start unref_sub_81261B4 unref_sub_81261B4: @ 81261B4 push {r4-r7,lr} adds r5, r0, 0 adds r7, r1, 0 ldrb r0, [r5] cmp r0, 0x1 bne _08126204 ldrb r0, [r5, 0x11] cmp r0, 0xF bne _08126204 adds r6, r5, 0 adds r6, 0x12 adds r0, r6, 0 bl sub_812618C cmp r0, 0 bne _08126204 adds r0, r5, 0 adds r0, 0x16 bl sub_812618C adds r4, r0, 0 subs r4, r7 adds r4, r5 adds r0, r5, 0 adds r0, 0x1A bl sub_812618C adds r1, r0, 0 subs r1, r7 adds r1, r5 subs r1, r4 adds r0, r4, 0 bl sub_812616C adds r1, r0, 0 adds r0, r6, 0 bl sub_81261A4 movs r0, 0x1 b _08126206 _08126204: movs r0, 0 _08126206: pop {r4-r7} pop {r1} bx r1 thumb_func_end unref_sub_81261B4 thumb_func_start unref_sub_812620C unref_sub_812620C: @ 812620C push {r4-r7,lr} adds r5, r0, 0 adds r7, r1, 0 ldrb r0, [r5] cmp r0, 0x1 bne _08126260 ldrb r0, [r5, 0x11] cmp r0, 0x10 bne _08126260 adds r6, r5, 0 adds r6, 0x12 adds r0, r6, 0 bl sub_812618C cmp r0, 0 bne _08126260 adds r0, r5, 0 adds r0, 0x16 bl sub_812618C adds r4, r0, 0 subs r4, r7 adds r4, r5 adds r0, r5, 0 adds r0, 0x1A bl sub_812618C adds r1, r0, 0 subs r1, r7 adds r1, r5 subs r1, r4 adds r0, r4, 0 bl sub_8041174 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r6, 0 bl sub_81261A4 movs r0, 0x1 b _08126262 _08126260: movs r0, 0 _08126262: pop {r4-r7} pop {r1} bx r1 thumb_func_end unref_sub_812620C thumb_func_start sub_8126268 sub_8126268: @ 8126268 push {lr} movs r2, 0 ldr r3, _08126284 movs r1, 0 _08126270: adds r0, r3, r1 ldrb r0, [r0] adds r2, r0 adds r1, 0x1 cmp r1, 0xB bls _08126270 adds r0, r2, 0 pop {r1} bx r1 .align 2, 0 _08126284: .4byte 0x020291b4 thumb_func_end sub_8126268 thumb_func_start sub_8126288 sub_8126288: @ 8126288 push {r4,lr} ldr r4, _081262B4 bl sub_8126268 adds r1, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _081262B0 ldrb r0, [r4, 0x1] cmp r0, 0 beq _081262B0 ldrh r0, [r4, 0x2] cmp r0, 0 beq _081262B0 cmp r1, 0 beq _081262B0 subs r0, r4, 0x4 ldr r0, [r0] cmp r1, r0 beq _081262B8 _081262B0: movs r0, 0 b _081262BA .align 2, 0 _081262B4: .4byte 0x020291b4 _081262B8: movs r0, 0x1 _081262BA: pop {r4} pop {r1} bx r1 thumb_func_end sub_8126288 thumb_func_start sub_81262C0 sub_81262C0: @ 81262C0 push {lr} sub sp, 0x4 mov r1, sp movs r0, 0 strh r0, [r1] ldr r1, _081262DC ldr r2, _081262E0 mov r0, sp bl CpuSet add sp, 0x4 pop {r0} bx r0 .align 2, 0 _081262DC: .4byte 0x020291b0 _081262E0: .4byte 0x01000008 thumb_func_end sub_81262C0 thumb_func_start sub_81262E4 sub_81262E4: @ 81262E4 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r3, r0, 0 lsls r1, 24 lsrs r1, 24 adds r5, r1, 0 lsls r2, 16 lsrs r2, 16 adds r6, r2, 0 cmp r3, 0 beq _08126304 cmp r1, 0 beq _08126304 cmp r2, 0 bne _0812630A _08126304: bl sub_81262C0 b _0812632A _0812630A: ldr r4, _08126330 movs r1, 0xEA lsls r1, 6 adds r0, r4, r1 strb r3, [r0] adds r1, 0x1 adds r0, r4, r1 strb r5, [r0] adds r1, 0x1 adds r0, r4, r1 strh r6, [r0] bl sub_8126268 ldr r1, _08126334 adds r4, r1 str r0, [r4] _0812632A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08126330: .4byte 0x02025734 _08126334: .4byte 0x00003a7c thumb_func_end sub_81262E4 thumb_func_start sub_8126338 sub_8126338: @ 8126338 push {r4,r5,lr} ldr r4, _0812634C bl sub_8126288 cmp r0, 0 bne _08126350 bl sub_81262C0 movs r0, 0 b _0812636E .align 2, 0 _0812634C: .4byte 0x020291b4 _08126350: ldrh r5, [r4, 0x2] ldrb r0, [r4, 0x1] subs r0, 0x1 strb r0, [r4, 0x1] lsls r0, 24 cmp r0, 0 bne _08126364 bl sub_81262C0 b _0812636C _08126364: bl sub_8126268 subs r1, r4, 0x4 str r0, [r1] _0812636C: adds r0, r5, 0 _0812636E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8126338 thumb_func_start script_status_stop_and_ret_1 script_status_stop_and_ret_1: @ 8126374 push {lr} bl script_stop movs r0, 0x1 pop {r1} bx r1 thumb_func_end script_status_stop_and_ret_1 thumb_func_start sub_8126380 sub_8126380: @ 8126380 push {r4-r7,lr} adds r7, r0, 0 bl script_read_word str r0, [r7, 0x68] adds r0, r7, 0 bl script_read_halfword adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r7, 0 bl script_read_word adds r6, r0, 0 adds r0, r7, 0 bl script_read_halfword adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r7, 0 bl script_read_word adds r3, r0, 0 adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 bl sub_8126098 cmp r0, 0x1 bne _081263C4 str r0, [r7, 0x70] b _081263C8 _081263C4: bl sub_81260D0 _081263C8: movs r0, 0x1 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8126380 thumb_func_start sub_81263D0 sub_81263D0: @ 81263D0 movs r0, 0 bx lr thumb_func_end sub_81263D0 thumb_func_start sub_81263D4 sub_81263D4: @ 81263D4 ldr r1, [r0, 0x8] ldrb r2, [r1] adds r1, 0x1 str r1, [r0, 0x8] str r2, [r0, 0x6C] movs r0, 0 bx lr thumb_func_end sub_81263D4 thumb_func_start sub_81263E4 sub_81263E4: @ 81263E4 push {r4,r5,lr} adds r4, r0, 0 ldr r0, [r4, 0x8] ldrb r5, [r0] adds r0, 0x1 str r0, [r4, 0x8] adds r0, r4, 0 bl script_read_word ldr r1, [r4, 0x68] subs r0, r1 ldr r1, [r4, 0x64] adds r1, r0, r1 cmp r5, 0xFF beq _08126408 ldr r0, [r4, 0x6C] cmp r5, r0 bne _0812640E _08126408: ldr r0, _08126418 bl StringExpandPlaceholders _0812640E: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08126418: .4byte 0x020234cc thumb_func_end sub_81263E4 thumb_func_start sub_812641C sub_812641C: @ 812641C push {r4,lr} adds r4, r0, 0 bl script_read_word ldr r1, [r4, 0x68] subs r0, r1 ldr r1, [r4, 0x64] adds r0, r1 bl script_env_2_execute_new_script movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_812641C thumb_func_start sub_8126438 sub_8126438: @ 8126438 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 bl sub_80B4940 mov r8, r0 adds r0, r7, 0 bl script_read_word adds r4, r0, 0 ldr r0, [r7, 0x68] subs r4, r0 ldr r0, [r7, 0x64] adds r4, r0 ldr r6, _08126484 ldr r5, _08126488 adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x7 bl StringCopyN adds r0, r4, 0 bl sub_80B48A8 ldr r4, _0812648C adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x7 bl StringCopyN mov r0, r8 cmp r0, 0 bne _08126498 ldr r0, _08126490 ldr r1, _08126494 b _081264B8 .align 2, 0 _08126484: .4byte 0x020231cc _08126488: .4byte 0x02028894 _0812648C: .4byte 0x020232cc _08126490: .4byte 0x020234cc _08126494: .4byte gUnknown_0842F798 _08126498: adds r0, r6, 0 adds r1, r4, 0 bl StringCompare cmp r0, 0 beq _081264B4 ldr r0, _081264AC ldr r1, _081264B0 b _081264B8 .align 2, 0 _081264AC: .4byte 0x020234cc _081264B0: .4byte gUnknown_0842F7CA _081264B4: ldr r0, _081264D4 ldr r1, _081264D8 _081264B8: bl StringExpandPlaceholders movs r0, 0x2 str r0, [r7, 0x6C] bl sub_80B4940 cmp r0, 0x1 bne _081264E0 ldr r0, _081264DC movs r1, 0x1 bl VarSet b _081264E4 .align 2, 0 _081264D4: .4byte 0x020234cc _081264D8: .4byte gUnknown_0842F7F6 _081264DC: .4byte 0x0000402d _081264E0: movs r0, 0x1 str r0, [r7, 0x6C] _081264E4: movs r0, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8126438 thumb_func_start sub_81264F0 sub_81264F0: @ 81264F0 push {r4,lr} adds r4, r0, 0 ldr r2, [r4, 0x8] ldrb r0, [r2] adds r2, 0x1 str r2, [r4, 0x8] ldrb r1, [r2] adds r2, 0x1 str r2, [r4, 0x8] bl sub_80C5C38 ldr r0, _0812651C ldr r1, _08126520 bl StringExpandPlaceholders movs r0, 0x2 str r0, [r4, 0x6C] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0812651C: .4byte 0x020234cc _08126520: .4byte gUnknown_0842F81E thumb_func_end sub_81264F0 thumb_func_start sub_8126524 sub_8126524: @ 8126524 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r4, r0, 0 ldr r0, [r4, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r4, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r4, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r4, 0x8] adds r0, r4, 0 bl script_read_word adds r5, r0, 0 ldr r0, [r4, 0x68] subs r5, r0 ldr r0, [r4, 0x64] adds r5, r0 adds r0, r4, 0 bl script_read_word adds r1, r0, 0 ldr r0, [r4, 0x68] subs r1, r0 ldr r0, [r4, 0x64] adds r1, r0 subs r1, r5 lsls r1, 16 lsrs r1, 16 str r6, [sp] adds r0, r5, 0 mov r2, r9 mov r3, r8 bl sub_80657A8 movs r0, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8126524 thumb_func_start sub_812658C sub_812658C: @ 812658C push {r4,lr} adds r4, r0, 0 bl sub_80690F0 ldr r0, _081265A8 ldr r1, _081265AC bl StringExpandPlaceholders movs r0, 0x2 str r0, [r4, 0x6C] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _081265A8: .4byte 0x020234cc _081265AC: .4byte gUnknown_0842F852 thumb_func_end sub_812658C thumb_func_start sub_81265B0 sub_81265B0: @ 81265B0 push {r4,lr} adds r4, r0, 0 ldr r1, [r4, 0x8] ldrb r0, [r1] adds r1, 0x1 str r1, [r4, 0x8] bl sub_80EB890 ldr r0, _081265D4 ldr r1, _081265D8 bl StringExpandPlaceholders movs r0, 0x2 str r0, [r4, 0x6C] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _081265D4: .4byte 0x020234cc _081265D8: .4byte gUnknown_0842F888 thumb_func_end sub_81265B0 thumb_func_start sub_81265DC sub_81265DC: @ 81265DC push {r4,r5,lr} ldr r1, [r0, 0x8] ldrb r5, [r1] adds r1, 0x1 str r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl script_read_halfword adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 adds r0, r5, 0 adds r1, r4, 0 bl sub_81262E4 movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81265DC thumb_func_start sub_8126608 sub_8126608: @ 8126608 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x88 adds r6, r0, 0 bl script_read_word ldr r1, [r6, 0x68] subs r0, r1 ldr r1, [r6, 0x64] adds r5, r0, r1 movs r0, 0x64 adds r0, r5 mov r8, r0 add r4, sp, 0x24 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x64 bl memcpy adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField lsls r0, 16 lsrs r4, r0, 16 movs r0, 0xCE lsls r0, 1 cmp r4, r0 bne _08126658 ldr r0, _08126650 ldr r1, _08126654 movs r2, 0xB bl StringCopyN b _08126662 .align 2, 0 _08126650: .4byte 0x020231cc _08126654: .4byte gUnknown_0840DCC4 _08126658: ldr r0, _08126678 ldr r1, _0812667C movs r2, 0xB bl StringCopyN _08126662: ldr r0, _08126680 ldrb r0, [r0] cmp r0, 0x6 bne _0812668C ldr r0, _08126684 ldr r1, _08126688 bl StringExpandPlaceholders movs r0, 0x3 b _081266F6 .align 2, 0 _08126678: .4byte 0x020231cc _0812667C: .4byte gUnknown_0840DCC8 _08126680: .4byte 0x03004350 _08126684: .4byte 0x020234cc _08126688: .4byte gUnknown_0842F8B6 _0812668C: ldr r7, _08126708 adds r0, r7, 0 adds r1, r5, 0 movs r2, 0x64 bl memcpy mov r0, sp mov r1, r8 movs r2, 0x24 bl memcpy movs r0, 0xCE lsls r0, 1 cmp r4, r0 beq _081266C6 adds r0, r4, 0 bl SpeciesToNationalPokedexNum adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r4, 0 movs r1, 0x2 bl sub_8090D90 adds r0, r4, 0 movs r1, 0x3 bl sub_8090D90 _081266C6: adds r0, r7, 0 movs r1, 0xC bl PokemonGetField lsls r0, 16 lsrs r0, 16 bl itemid_is_mail lsls r0, 24 cmp r0, 0 beq _081266E4 adds r0, r7, 0 mov r1, sp bl sub_80A2D88 _081266E4: bl party_compaction bl calc_player_party_count ldr r0, _0812670C ldr r1, _08126710 bl StringExpandPlaceholders movs r0, 0x2 _081266F6: str r0, [r6, 0x6C] movs r0, 0 add sp, 0x88 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08126708: .4byte 0x03004554 _0812670C: .4byte 0x020234cc _08126710: .4byte gUnknown_0842F8A4 thumb_func_end sub_8126608 thumb_func_start sub_8126714 sub_8126714: @ 8126714 push {r4,lr} adds r4, r0, 0 bl script_read_word adds r1, r0, 0 ldr r0, [r4, 0x68] subs r1, r0 ldr r0, [r4, 0x64] adds r1, r0 ldr r0, _08126748 movs r2, 0xBC bl memcpy bl sub_813601C ldr r0, _0812674C ldr r1, _08126750 bl StringExpandPlaceholders movs r0, 0x2 str r0, [r4, 0x6C] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08126748: .4byte 0x0202533c _0812674C: .4byte 0x020234cc _08126750: .4byte gUnknown_0842F8E5 thumb_func_end sub_8126714 thumb_func_start sub_8126754 sub_8126754: @ 8126754 push {r4,lr} adds r4, r0, 0 bl sub_80691BC ldr r0, _08126770 ldr r1, _08126774 bl StringExpandPlaceholders movs r0, 0x2 str r0, [r4, 0x6C] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08126770: .4byte 0x020234cc _08126774: .4byte gUnknown_084118D1 thumb_func_end sub_8126754 thumb_func_start sub_8126778 sub_8126778: @ 8126778 push {r4-r6,lr} adds r6, r0, 0 bl script_read_word adds r5, r0, 0 adds r0, r6, 0 bl script_read_word adds r4, r0, 0 ldr r0, [r6, 0x68] subs r4, r0 ldr r0, [r6, 0x64] adds r4, r0 adds r0, r6, 0 bl script_read_word adds r1, r0, 0 ldr r0, [r6, 0x68] subs r1, r0 ldr r0, [r6, 0x64] adds r1, r0 subs r1, r4 adds r0, r4, 0 bl sub_812616C cmp r5, r0 beq _081267B6 movs r0, 0 str r0, [r6, 0x70] movs r0, 0x1 str r0, [r6, 0x6C] _081267B6: movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8126778 thumb_func_start sub_81267C0 sub_81267C0: @ 81267C0 push {r4-r6,lr} adds r6, r0, 0 bl script_read_word adds r5, r0, 0 adds r0, r6, 0 bl script_read_word adds r4, r0, 0 ldr r0, [r6, 0x68] subs r4, r0 ldr r0, [r6, 0x64] adds r4, r0 adds r0, r6, 0 bl script_read_word adds r1, r0, 0 ldr r0, [r6, 0x68] subs r1, r0 ldr r0, [r6, 0x64] adds r1, r0 subs r1, r4 adds r0, r4, 0 bl sub_8041174 lsls r0, 16 lsrs r0, 16 cmp r5, r0 beq _08126802 movs r0, 0 str r0, [r6, 0x70] movs r0, 0x1 str r0, [r6, 0x6C] _08126802: movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_81267C0 thumb_func_start SetUpReflection SetUpReflection: @ 812680C push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 lsls r5, r2, 24 lsrs r5, 24 movs r0, 0x20 ldrsh r1, [r4, r0] movs r0, 0x22 ldrsh r2, [r4, r0] adds r0, r4, 0 movs r3, 0x98 bl obj_unfreeze lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _081268BC adds r7, r1, r0 ldr r0, _081268C0 str r0, [r7, 0x1C] ldrb r1, [r7, 0x5] movs r0, 0xC orrs r1, r0 strb r1, [r7, 0x5] ldr r2, _081268C4 lsrs r0, r1, 4 adds r0, r2 ldrb r0, [r0] lsls r0, 4 movs r2, 0xF ands r1, r2 orrs r1, r0 strb r1, [r7, 0x5] movs r1, 0x3F adds r1, r7 mov r8, r1 ldrb r0, [r1] movs r1, 0x40 orrs r0, r1 mov r1, r8 strb r0, [r1] ldr r0, _081268C8 str r0, [r7, 0x8] adds r0, r7, 0 movs r1, 0 bl StartSpriteAnim ldr r0, _081268CC str r0, [r7, 0x10] mov r1, r8 ldrb r0, [r1] movs r1, 0x8 orrs r0, r1 mov r1, r8 strb r0, [r1] adds r2, r7, 0 adds r2, 0x42 ldrb r1, [r2] movs r0, 0x3F ands r0, r1 strb r0, [r2] ldrh r0, [r4, 0x2E] strh r0, [r7, 0x2E] ldrb r0, [r6, 0x8] strh r0, [r7, 0x30] strh r5, [r7, 0x3C] adds r0, r6, 0 adds r1, r7, 0 bl npc_pal_op cmp r5, 0 bne _081268B2 ldrb r0, [r7, 0x1] movs r1, 0x4 negs r1, r1 ands r1, r0 movs r0, 0x1 orrs r1, r0 strb r1, [r7, 0x1] _081268B2: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081268BC: .4byte 0x02020004 _081268C0: .4byte sub_81269E0 _081268C4: .4byte gUnknown_0830FD14 _081268C8: .4byte gDummySpriteAnimTable _081268CC: .4byte gDummySpriteAffineAnimTable thumb_func_end SetUpReflection thumb_func_start sub_81268D0 sub_81268D0: @ 81268D0 push {lr} ldrb r0, [r0, 0x5] bl GetFieldObjectGraphicsInfo ldrh r0, [r0, 0xA] subs r0, 0x2 lsls r0, 16 asrs r0, 16 pop {r1} bx r1 thumb_func_end sub_81268D0 thumb_func_start npc_pal_op npc_pal_op: @ 81268E4 push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 adds r4, r1, 0 ldr r1, _0812693C mov r0, sp movs r2, 0x6 bl memcpy movs r0, 0 strh r0, [r4, 0x32] ldrb r0, [r5, 0x5] bl GetFieldObjectGraphicsInfo ldrb r1, [r0, 0xC] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08126940 ldrb r0, [r5, 0x1F] bl sub_8057450 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08126926 ldrb r0, [r5, 0x1E] bl sub_8057450 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08126940 _08126926: subs r0, 0x1 lsls r0, 1 add r0, sp ldrh r0, [r0] strh r0, [r4, 0x32] ldrb r1, [r4, 0x5] lsrs r1, 4 adds r0, r5, 0 bl npc_pal_op_A b _0812694A .align 2, 0 _0812693C: .4byte gUnknown_08401E2C _08126940: ldrb r1, [r4, 0x5] lsrs r1, 4 adds r0, r5, 0 bl npc_pal_op_B _0812694A: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 thumb_func_end npc_pal_op thumb_func_start npc_pal_op_B npc_pal_op_B: @ 8126954 push {r4,lr} lsls r1, 24 lsrs r4, r1, 24 ldrb r0, [r0, 0x5] bl GetFieldObjectGraphicsInfo adds r2, r0, 0 ldrh r1, [r2, 0x4] ldr r0, _08126980 cmp r1, r0 beq _081269A8 ldrb r0, [r2, 0xC] movs r1, 0xF ands r1, r0 cmp r1, 0 bne _08126984 ldrh r0, [r2, 0x2] adds r1, r4, 0 bl npc_load_two_palettes__no_record b _081269A2 .align 2, 0 _08126980: .4byte 0x000011ff _08126984: cmp r1, 0xA bne _08126992 ldrh r0, [r2, 0x2] adds r1, r4, 0 bl npc_load_two_palettes__and_record b _081269A2 _08126992: adds r0, r4, 0 bl npc_paltag_by_palslot lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 bl pal_patch_for_npc _081269A2: adds r0, r4, 0 bl sub_807D78C _081269A8: pop {r4} pop {r0} bx r0 thumb_func_end npc_pal_op_B thumb_func_start npc_pal_op_A npc_pal_op_A: @ 81269B0 push {r4,lr} lsls r1, 24 lsrs r4, r1, 24 ldrb r0, [r0, 0x5] bl GetFieldObjectGraphicsInfo adds r2, r0, 0 ldrh r1, [r2, 0x4] ldr r0, _081269DC cmp r1, r0 beq _081269D4 adds r0, r1, 0 adds r1, r4, 0 bl pal_patch_for_npc adds r0, r4, 0 bl sub_807D78C _081269D4: pop {r4} pop {r0} bx r0 .align 2, 0 _081269DC: .4byte 0x000011ff thumb_func_end npc_pal_op_A thumb_func_start sub_81269E0 sub_81269E0: @ 81269E0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r4, r0, 0 movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08126A28 adds r7, r0, r1 ldrb r1, [r7, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08126A2C adds r5, r0, r1 ldr r0, [r7] ldr r1, _08126A30 ands r0, r1 cmp r0, r1 bne _08126A18 ldrb r1, [r7, 0x8] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r1, r0 beq _08126A34 _08126A18: adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2] b _08126B3E .align 2, 0 _08126A28: .4byte 0x030048a0 _08126A2C: .4byte 0x02020004 _08126A30: .4byte 0x00020001 _08126A34: ldr r1, _08126B4C ldrb r0, [r5, 0x5] lsrs r0, 4 adds r0, r1 ldrb r1, [r0] lsls r1, 4 ldrb r2, [r4, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] ldrb r1, [r5, 0x1] lsrs r1, 6 lsls r1, 6 ldrb r2, [r4, 0x1] movs r3, 0x3F adds r0, r3, 0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x1] ldrb r0, [r5, 0x3] lsrs r0, 6 lsls r0, 6 ldrb r2, [r4, 0x3] adds r1, r3, 0 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x3] ldrb r0, [r5, 0x3] lsls r0, 26 lsrs r0, 27 movs r2, 0x10 orrs r0, r2 lsls r0, 1 subs r2, 0x4F mov r9, r2 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x3] ldrh r1, [r5, 0x4] lsls r1, 22 lsrs r1, 22 ldrh r2, [r4, 0x4] ldr r0, _08126B50 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] ldr r0, [r5, 0x18] str r0, [r4, 0x18] adds r0, r5, 0 adds r0, 0x42 ldrb r0, [r0] lsls r0, 26 lsrs r0, 26 adds r2, r4, 0 adds r2, 0x42 ands r3, r0 ldrb r1, [r2] movs r0, 0x40 negs r0, r0 ands r0, r1 orrs r0, r3 strb r0, [r2] movs r0, 0x3E adds r0, r5 mov r8, r0 ldrb r0, [r0] adds r6, r4, 0 adds r6, 0x3E movs r1, 0x4 ands r1, r0 ldrb r2, [r6] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r6] ldrh r0, [r5, 0x20] strh r0, [r4, 0x20] adds r0, r7, 0 bl sub_81268D0 ldrh r1, [r5, 0x22] adds r0, r1 ldrh r1, [r4, 0x32] adds r1, r0 strh r1, [r4, 0x22] adds r0, r5, 0 adds r0, 0x28 ldrb r1, [r0] adds r0, r4, 0 adds r0, 0x28 strb r1, [r0] adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] adds r1, r4, 0 adds r1, 0x29 strb r0, [r1] ldrh r0, [r5, 0x24] strh r0, [r4, 0x24] ldrh r0, [r5, 0x26] negs r0, r0 strh r0, [r4, 0x26] mov r2, r8 ldrb r0, [r2] movs r1, 0x2 ands r1, r0 ldrb r2, [r6] movs r0, 0x3 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r6] movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0 bne _08126B3E ldrb r0, [r4, 0x3] mov r2, r9 ands r2, r0 strb r2, [r4, 0x3] ldrb r0, [r5, 0x3] lsls r0, 26 lsrs r0, 27 movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _08126B3E movs r1, 0x2 adds r0, r2, 0 orrs r0, r1 strb r0, [r4, 0x3] _08126B3E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08126B4C: .4byte gUnknown_0830FD14 _08126B50: .4byte 0xfffffc00 thumb_func_end sub_81269E0 thumb_func_start sub_8126B54 sub_8126B54: @ 8126B54 push {r4,lr} ldr r0, _08126B9C ldr r0, [r0, 0x20] movs r1, 0 movs r2, 0 movs r3, 0x52 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 cmp r0, 0x40 beq _08126B92 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08126BA0 adds r1, r0 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 movs r3, 0x4 orrs r0, r3 strb r0, [r1, 0x5] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x2 orrs r0, r2 orrs r0, r3 strb r0, [r1] _08126B92: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08126B9C: .4byte gFieldEffectObjectTemplatePointers _08126BA0: .4byte 0x02020004 thumb_func_end sub_8126B54 thumb_func_start objid_set_invisible objid_set_invisible: @ 8126BA4 lsls r0, 24 lsrs r0, 24 ldr r2, _08126BC0 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] bx lr .align 2, 0 _08126BC0: .4byte 0x02020004 thumb_func_end objid_set_invisible thumb_func_start sub_8126BC4 sub_8126BC4: @ 8126BC4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r2, 16 lsrs r7, r2, 16 lsls r3, 16 lsrs r6, r3, 16 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 ldr r1, _08126C68 adds r2, r0, r1 adds r0, r2, 0 adds r0, 0x3E ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _08126C0E movs r0, 0x2E ldrsh r1, [r2, r0] lsls r0, r7, 16 asrs r0, 16 cmp r1, r0 bne _08126C0E movs r0, 0x30 ldrsh r1, [r2, r0] lsls r0, r6, 16 asrs r0, 16 cmp r1, r0 beq _08126C5A _08126C0E: lsls r0, r7, 16 asrs r0, 16 lsls r1, r6, 16 asrs r1, 16 mov r4, sp adds r4, 0x2 mov r2, sp adds r3, r4, 0 bl sub_80603CC lsls r0, r5, 4 adds r0, r5 lsls r0, 2 ldr r1, _08126C68 adds r2, r0, r1 mov r0, sp ldrh r0, [r0] adds r0, 0x8 strh r0, [r2, 0x20] ldrh r0, [r4] adds r0, 0x8 strh r0, [r2, 0x22] adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] strh r7, [r2, 0x2E] strh r6, [r2, 0x30] mov r1, r8 subs r1, 0x1 lsls r1, 24 lsrs r1, 24 adds r0, r2, 0 bl StartSpriteAnim _08126C5A: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08126C68: .4byte 0x02020004 thumb_func_end sub_8126BC4 thumb_func_start oei_shadow oei_shadow: @ 8126C6C push {r4,r5,lr} ldr r5, _08126CF8 ldrb r0, [r5] ldrb r1, [r5, 0x4] ldrb r2, [r5, 0x8] bl GetFieldObjectIdByLocalIdAndMap lsls r0, 24 lsrs r0, 24 ldr r2, _08126CFC lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x5] bl GetFieldObjectGraphicsInfo adds r4, r0, 0 ldr r2, _08126D00 ldr r1, _08126D04 ldrb r0, [r4, 0xC] lsls r0, 26 lsrs r0, 30 adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldr r0, [r0] movs r1, 0 movs r2, 0 movs r3, 0x94 bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _08126CF0 ldr r0, _08126D08 lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] ldr r0, [r5] strh r0, [r2, 0x2E] ldr r0, [r5, 0x4] strh r0, [r2, 0x30] ldr r0, [r5, 0x8] strh r0, [r2, 0x32] ldrh r1, [r4, 0xA] lsls r1, 16 asrs r1, 17 ldr r3, _08126D0C ldrb r0, [r4, 0xC] lsls r0, 26 lsrs r0, 30 lsls r0, 1 adds r0, r3 ldrh r0, [r0] subs r1, r0 strh r1, [r2, 0x34] _08126CF0: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08126CF8: .4byte 0x0202ff84 _08126CFC: .4byte 0x030048a0 _08126D00: .4byte gFieldEffectObjectTemplatePointers _08126D04: .4byte gUnknown_08401E32 _08126D08: .4byte 0x02020004 _08126D0C: .4byte gUnknown_08401E36 thumb_func_end oei_shadow thumb_func_start oamc_shadow oamc_shadow: @ 8126D10 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 ldrh r0, [r5, 0x2E] lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x30] lsls r1, 24 lsrs r1, 24 ldrh r2, [r5, 0x32] lsls r2, 24 lsrs r2, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 beq _08126D3E adds r0, r5, 0 movs r1, 0x3 bl FieldEffectStop b _08126DC4 _08126D3E: mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08126DCC adds r4, r0, r1 ldrb r0, [r4, 0x4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08126DD0 adds r1, r0 ldrb r0, [r1, 0x5] movs r2, 0xC ands r2, r0 ldrb r3, [r5, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r2 strb r0, [r5, 0x5] ldrh r0, [r1, 0x20] strh r0, [r5, 0x20] ldrh r0, [r5, 0x34] ldrh r1, [r1, 0x22] adds r0, r1 strh r0, [r5, 0x22] ldr r0, [r4] ldr r1, _08126DD4 ands r0, r1 cmp r0, r1 bne _08126DBC ldrb r0, [r4, 0x1E] bl sub_8056E14 lsls r0, 24 cmp r0, 0 bne _08126DBC ldrb r0, [r4, 0x1E] bl MetatileBehavior_IsSurfableWaterOrUnderwater lsls r0, 24 cmp r0, 0 bne _08126DBC ldrb r0, [r4, 0x1F] bl MetatileBehavior_IsSurfableWaterOrUnderwater lsls r0, 24 cmp r0, 0 bne _08126DBC ldrb r0, [r4, 0x1E] bl MetatileBehavior_IsReflective lsls r0, 24 cmp r0, 0 bne _08126DBC ldrb r0, [r4, 0x1F] bl MetatileBehavior_IsReflective lsls r0, 24 cmp r0, 0 beq _08126DC4 _08126DBC: adds r0, r5, 0 movs r1, 0x3 bl FieldEffectStop _08126DC4: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08126DCC: .4byte 0x030048a0 _08126DD0: .4byte 0x02020004 _08126DD4: .4byte 0x00400001 thumb_func_end oamc_shadow thumb_func_start oei_grass_normal oei_grass_normal: @ 8126DD8 push {r4,r5,lr} sub sp, 0x4 ldr r5, _08126E70 ldrh r1, [r5] mov r0, sp strh r1, [r0] ldrh r0, [r5, 0x4] mov r4, sp adds r4, 0x2 strh r0, [r4] mov r0, sp adds r1, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08126E74 ldr r0, [r0, 0x10] mov r1, sp movs r2, 0 ldrsh r1, [r1, r2] movs r3, 0 ldrsh r2, [r4, r3] movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _08126E64 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08126E78 adds r3, r0, r1 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] movs r0, 0x3 ldrb r1, [r5, 0xC] ands r1, r0 lsls r1, 2 ldrb r2, [r3, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x5] ldr r0, [r5, 0x8] strh r0, [r3, 0x2E] ldr r0, [r5] strh r0, [r3, 0x30] ldr r0, [r5, 0x4] strh r0, [r3, 0x32] ldr r0, [r5, 0x10] strh r0, [r3, 0x34] ldr r0, [r5, 0x14] strh r0, [r3, 0x36] ldr r0, [r5, 0x18] strh r0, [r3, 0x38] ldr r0, [r5, 0x1C] cmp r0, 0 beq _08126E64 adds r0, r3, 0 movs r1, 0x4 bl SeekSpriteAnim _08126E64: movs r0, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08126E70: .4byte 0x0202ff84 _08126E74: .4byte gFieldEffectObjectTemplatePointers _08126E78: .4byte 0x02020004 thumb_func_end oei_grass_normal thumb_func_start unc_grass_normal unc_grass_normal: @ 8126E7C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r5, r0, 0 ldrh r0, [r5, 0x38] lsrs r4, r0, 8 lsls r0, 24 lsrs r7, r0, 24 ldr r3, _08126F24 ldrb r1, [r3] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08126EC6 ldr r2, _08126F28 movs r0, 0x5 ldrsb r0, [r2, r0] cmp r0, r4 bne _08126EAC movs r0, 0x4 ldrsb r0, [r2, r0] cmp r0, r7 beq _08126EC6 _08126EAC: ldr r1, [r3, 0x4] ldrh r0, [r5, 0x30] subs r0, r1 strh r0, [r5, 0x30] ldr r1, [r3, 0x8] ldrh r0, [r5, 0x32] subs r0, r1 strh r0, [r5, 0x32] ldrb r1, [r2, 0x5] lsls r1, 8 ldrb r0, [r2, 0x4] orrs r0, r1 strh r0, [r5, 0x38] _08126EC6: ldrh r0, [r5, 0x34] lsrs r1, r0, 8 mov r8, r1 lsls r0, 24 lsrs r4, r0, 24 ldrh r0, [r5, 0x36] lsls r0, 24 lsrs r7, r0, 24 movs r2, 0x30 ldrsh r0, [r5, r2] movs r2, 0x32 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r6, r0, 24 mov r0, r8 adds r1, r4, 0 adds r2, r7, 0 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _08126F1A adds r0, r6, 0 bl MetatileBehavior_IsTallGrass lsls r0, 24 cmp r0, 0 beq _08126F1A movs r1, 0x3C ldrsh r0, [r5, r1] cmp r0, 0 beq _08126F2C adds r0, r5, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08126F2C _08126F1A: adds r0, r5, 0 movs r1, 0x4 bl FieldEffectStop b _08126F70 .align 2, 0 _08126F24: .4byte 0x0202e844 _08126F28: .4byte 0x02025734 _08126F2C: mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08126F7C adds r2, r0, r1 ldr r0, [r2, 0x10] ldr r1, [r5, 0x30] cmp r0, r1 beq _08126F4C ldr r0, [r2, 0x14] cmp r0, r1 beq _08126F4C movs r0, 0x1 strh r0, [r5, 0x3C] _08126F4C: movs r6, 0 adds r0, r5, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0 bne _08126F5A movs r6, 0x4 _08126F5A: adds r0, r5, 0 movs r1, 0 bl sub_806487C ldrh r1, [r5, 0x2E] lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 adds r2, r6, 0 bl sub_812882C _08126F70: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08126F7C: .4byte 0x030048a0 thumb_func_end unc_grass_normal thumb_func_start sub_8126F80 sub_8126F80: @ 8126F80 push {r4,lr} ldr r4, _08126FE4 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0xC bl sub_8060470 ldr r0, _08126FE8 ldr r0, [r0, 0x28] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08126FDC lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _08126FEC adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldr r0, [r4, 0x8] strh r0, [r2, 0x2E] movs r0, 0xC strh r0, [r2, 0x30] _08126FDC: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08126FE4: .4byte 0x0202ff84 _08126FE8: .4byte gFieldEffectObjectTemplatePointers _08126FEC: .4byte 0x02020004 thumb_func_end sub_8126F80 thumb_func_start sub_8126FF0 sub_8126FF0: @ 8126FF0 push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, [sp, 0x18] lsls r0, 24 lsrs r0, 24 mov r12, r0 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r6, r2, 24 movs r5, 0 ldr r0, _08127060 mov r8, r0 lsls r3, 16 asrs r3, 16 lsls r4, 16 asrs r4, 16 _08127014: lsls r0, r5, 4 adds r0, r5 lsls r0, 2 mov r1, r8 adds r2, r0, r1 adds r0, r2, 0 adds r0, 0x3E ldrb r0, [r0] lsls r0, 31 cmp r0, 0 beq _08127068 ldr r1, [r2, 0x1C] ldr r0, _08127064 cmp r1, r0 bne _08127068 movs r1, 0x30 ldrsh r0, [r2, r1] cmp r3, r0 bne _08127068 movs r1, 0x32 ldrsh r0, [r2, r1] cmp r4, r0 bne _08127068 ldrh r1, [r2, 0x34] lsrs r0, r1, 8 cmp r12, r0 bne _08127068 movs r0, 0xFF ands r0, r1 cmp r7, r0 bne _08127068 movs r1, 0x36 ldrsh r0, [r2, r1] cmp r6, r0 bne _08127068 adds r0, r5, 0 b _08127074 .align 2, 0 _08127060: .4byte 0x02020004 _08127064: .4byte unc_grass_normal _08127068: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3F bls _08127014 movs r0, 0x40 _08127074: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8126FF0 thumb_func_start sub_8127080 sub_8127080: @ 8127080 push {r4,r5,lr} sub sp, 0x4 ldr r5, _0812711C ldrh r1, [r5] mov r0, sp strh r1, [r0] ldrh r0, [r5, 0x4] mov r4, sp adds r4, 0x2 strh r0, [r4] mov r0, sp adds r1, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127120 ldr r0, [r0, 0x3C] mov r1, sp movs r2, 0 ldrsh r1, [r1, r2] movs r3, 0 ldrsh r2, [r4, r3] movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _08127110 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08127124 adds r4, r0, r1 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] ldrb r0, [r5, 0x8] bl ZCoordToPriority movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] ldr r0, [r5, 0x8] strh r0, [r4, 0x2E] ldr r0, [r5] strh r0, [r4, 0x30] ldr r0, [r5, 0x4] strh r0, [r4, 0x32] ldr r0, [r5, 0x10] strh r0, [r4, 0x34] ldr r0, [r5, 0x14] strh r0, [r4, 0x36] ldr r0, [r5, 0x18] strh r0, [r4, 0x38] ldr r0, [r5, 0x1C] cmp r0, 0 beq _08127110 adds r0, r4, 0 movs r1, 0x6 bl SeekSpriteAnim _08127110: movs r0, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0812711C: .4byte 0x0202ff84 _08127120: .4byte gFieldEffectObjectTemplatePointers _08127124: .4byte 0x02020004 thumb_func_end sub_8127080 thumb_func_start unc_grass_tall unc_grass_tall: @ 8127128 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r5, r0, 0 ldrh r0, [r5, 0x38] lsrs r7, r0, 8 lsls r0, 24 lsrs r6, r0, 24 ldr r3, _081271D0 ldrb r1, [r3] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08127172 ldr r2, _081271D4 movs r0, 0x5 ldrsb r0, [r2, r0] cmp r0, r7 bne _08127158 movs r0, 0x4 ldrsb r0, [r2, r0] cmp r0, r6 beq _08127172 _08127158: ldr r1, [r3, 0x4] ldrh r0, [r5, 0x30] subs r0, r1 strh r0, [r5, 0x30] ldr r1, [r3, 0x8] ldrh r0, [r5, 0x32] subs r0, r1 strh r0, [r5, 0x32] ldrb r1, [r2, 0x5] lsls r1, 8 ldrb r0, [r2, 0x4] orrs r0, r1 strh r0, [r5, 0x38] _08127172: ldrh r0, [r5, 0x34] lsrs r1, r0, 8 mov r8, r1 lsls r0, 24 lsrs r7, r0, 24 ldrh r0, [r5, 0x36] lsls r0, 24 lsrs r6, r0, 24 movs r2, 0x30 ldrsh r0, [r5, r2] movs r2, 0x32 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 mov r0, r8 adds r1, r7, 0 adds r2, r6, 0 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _081271C6 adds r0, r4, 0 bl MetatileBehavior_IsLongGrass lsls r0, 24 cmp r0, 0 beq _081271C6 movs r1, 0x3C ldrsh r0, [r5, r1] cmp r0, 0 beq _081271D8 adds r0, r5, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _081271D8 _081271C6: adds r0, r5, 0 movs r1, 0x11 bl FieldEffectStop b _0812720E .align 2, 0 _081271D0: .4byte 0x0202e844 _081271D4: .4byte 0x02025734 _081271D8: mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0812721C adds r2, r0, r1 ldr r0, [r2, 0x10] ldr r1, [r5, 0x30] cmp r0, r1 beq _081271F8 ldr r0, [r2, 0x14] cmp r0, r1 beq _081271F8 movs r0, 0x1 strh r0, [r5, 0x3C] _081271F8: adds r0, r5, 0 movs r1, 0 bl sub_806487C ldrh r1, [r5, 0x2E] lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 movs r2, 0 bl sub_812882C _0812720E: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812721C: .4byte 0x030048a0 thumb_func_end unc_grass_tall thumb_func_start sub_8127220 sub_8127220: @ 8127220 push {r4,lr} ldr r4, _08127284 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127288 ldr r0, [r0, 0x40] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0812727C lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _0812728C adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldr r0, [r4, 0x8] strh r0, [r2, 0x2E] movs r0, 0x12 strh r0, [r2, 0x30] _0812727C: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08127284: .4byte 0x0202ff84 _08127288: .4byte gFieldEffectObjectTemplatePointers _0812728C: .4byte 0x02020004 thumb_func_end sub_8127220 thumb_func_start sub_8127290 sub_8127290: @ 8127290 push {r4-r6,lr} ldr r6, _08127324 ldrb r0, [r6] ldrb r1, [r6, 0x4] ldrb r2, [r6, 0x8] bl GetFieldObjectIdByLocalIdAndMap lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _08127328 adds r5, r1, r0 ldr r0, _0812732C ldr r0, [r0, 0x78] movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0812731C lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r4, _08127330 adds r2, r4 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x5] movs r1, 0xC ands r1, r0 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldr r0, [r6] strh r0, [r2, 0x2E] ldr r0, [r6, 0x4] strh r0, [r2, 0x30] ldr r0, [r6, 0x8] strh r0, [r2, 0x32] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x20] strh r0, [r2, 0x34] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x22] strh r0, [r2, 0x36] _0812731C: movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08127324: .4byte 0x0202ff84 _08127328: .4byte 0x030048a0 _0812732C: .4byte gFieldEffectObjectTemplatePointers _08127330: .4byte 0x02020004 thumb_func_end sub_8127290 thumb_func_start sub_8127334 sub_8127334: @ 8127334 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x30] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x32] lsls r2, 24 lsrs r2, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _08127372 ldr r5, _0812737C mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r1, r0, r5 ldrb r0, [r1, 0x2] lsls r0, 29 cmp r0, 0 blt _08127380 _08127372: adds r0, r4, 0 movs r1, 0x29 bl FieldEffectStop b _08127416 .align 2, 0 _0812737C: .4byte 0x030048a0 _08127380: ldrb r0, [r1, 0x5] bl GetFieldObjectGraphicsInfo mov r8, r0 mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08127424 adds r6, r0, r1 ldrh r5, [r6, 0x22] ldrh r7, [r6, 0x20] movs r0, 0x20 ldrsh r1, [r6, r0] movs r2, 0x34 ldrsh r0, [r4, r2] cmp r1, r0 bne _081273BC lsls r0, r5, 16 asrs r0, 16 movs r2, 0x36 ldrsh r1, [r4, r2] cmp r0, r1 beq _081273D6 _081273BC: strh r7, [r4, 0x34] strh r5, [r4, 0x36] adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _081273D6 adds r0, r4, 0 movs r1, 0 bl StartSpriteAnim _081273D6: strh r7, [r4, 0x20] strh r5, [r4, 0x22] mov r1, r8 ldrh r0, [r1, 0xA] lsls r0, 16 asrs r0, 17 subs r0, 0x8 strh r0, [r4, 0x26] adds r0, r6, 0 adds r0, 0x43 ldrb r0, [r0] subs r0, 0x1 adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] ldrb r0, [r6, 0x5] movs r1, 0xC ands r1, r0 ldrb r2, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] adds r0, r6, 0 adds r0, 0x3E ldrb r1, [r0] lsls r1, 29 lsrs r1, 31 adds r0, r4, 0 bl sub_806487C _08127416: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08127424: .4byte 0x02020004 thumb_func_end sub_8127334 thumb_func_start sub_8127428 sub_8127428: @ 8127428 push {r4,lr} ldr r4, _08127490 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127494 ldr r0, [r0, 0x2C] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _08127486 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08127498 adds r0, r1 adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x2 orrs r1, r2 strb r1, [r3] movs r1, 0x3 ldrb r2, [r4, 0xC] ands r2, r1 lsls r2, 2 ldrb r3, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r3 orrs r1, r2 strb r1, [r0, 0x5] movs r1, 0xD strh r1, [r0, 0x3C] ldrb r1, [r4, 0x10] bl StartSpriteAnim _08127486: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08127490: .4byte 0x0202ff84 _08127494: .4byte gFieldEffectObjectTemplatePointers _08127498: .4byte 0x02020004 thumb_func_end sub_8127428 thumb_func_start sub_812749C sub_812749C: @ 812749C push {r4,r5,lr} ldr r4, _08127504 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127508 ldr r0, [r0, 0x5C] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 adds r5, r1, 0 cmp r1, 0x40 beq _081274FC lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0812750C adds r0, r1 adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x2 orrs r1, r2 strb r1, [r3] movs r1, 0x3 ldrb r2, [r4, 0xC] ands r2, r1 lsls r2, 2 ldrb r3, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r3 orrs r1, r2 strb r1, [r0, 0x5] movs r1, 0x18 strh r1, [r0, 0x3C] ldrb r1, [r4, 0x10] bl StartSpriteAnim _081274FC: adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08127504: .4byte 0x0202ff84 _08127508: .4byte gFieldEffectObjectTemplatePointers _0812750C: .4byte 0x02020004 thumb_func_end sub_812749C thumb_func_start sub_8127510 sub_8127510: @ 8127510 push {r4,r5,lr} ldr r4, _08127578 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _0812757C ldr r0, [r0, 0x6C] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 adds r5, r1, 0 cmp r1, 0x40 beq _08127570 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08127580 adds r0, r1 adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x2 orrs r1, r2 strb r1, [r3] movs r1, 0x3 ldrb r2, [r4, 0xC] ands r2, r1 lsls r2, 2 ldrb r3, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r3 orrs r1, r2 strb r1, [r0, 0x5] movs r1, 0x23 strh r1, [r0, 0x3C] ldrb r1, [r4, 0x10] bl StartSpriteAnim _08127570: adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08127578: .4byte 0x0202ff84 _0812757C: .4byte gFieldEffectObjectTemplatePointers _08127580: .4byte 0x02020004 thumb_func_end sub_8127510 thumb_func_start sub_8127584 sub_8127584: @ 8127584 push {lr} ldr r2, _0812759C movs r3, 0x2E ldrsh r1, [r0, r3] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _0812759C: .4byte gUnknown_08401E40 thumb_func_end sub_8127584 thumb_func_start sub_81275A0 sub_81275A0: @ 81275A0 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x30] adds r0, 0x1 strh r0, [r1, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x28 ble _081275B6 movs r0, 0x1 strh r0, [r1, 0x2E] _081275B6: adds r0, r1, 0 movs r1, 0 bl sub_806487C pop {r0} bx r0 thumb_func_end sub_81275A0 thumb_func_start sub_81275C4 sub_81275C4: @ 81275C4 push {r4,lr} adds r4, r0, 0 adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] ldrb r1, [r3] lsls r1, 29 lsrs r1, 31 adds r0, r4, 0 bl sub_806487C movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x38 ble _08127608 ldrh r1, [r4, 0x3C] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldEffectStop _08127608: pop {r4} pop {r0} bx r0 thumb_func_end sub_81275C4 thumb_func_start sub_8127610 sub_8127610: @ 8127610 push {r4-r6,lr} ldr r6, _081276A4 ldrb r0, [r6] ldrb r1, [r6, 0x4] ldrb r2, [r6, 0x8] bl GetFieldObjectIdByLocalIdAndMap lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _081276A8 adds r5, r1, r0 ldr r0, _081276AC ldr r0, [r0, 0x34] movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x40 beq _0812769A ldrb r0, [r5, 0x5] bl GetFieldObjectGraphicsInfo lsls r3, r4, 4 adds r3, r4 lsls r3, 2 ldr r4, _081276B0 adds r3, r4 movs r1, 0x3E adds r1, r3 mov r12, r1 ldrb r1, [r1] movs r2, 0x2 orrs r1, r2 mov r2, r12 strb r1, [r2] ldrb r2, [r5, 0x4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrb r1, [r1, 0x5] movs r2, 0xC ands r2, r1 ldrb r4, [r3, 0x5] movs r1, 0xD negs r1, r1 ands r1, r4 orrs r1, r2 strb r1, [r3, 0x5] ldr r1, [r6] strh r1, [r3, 0x2E] ldr r1, [r6, 0x4] strh r1, [r3, 0x30] ldr r1, [r6, 0x8] strh r1, [r3, 0x32] ldrh r0, [r0, 0xA] lsls r0, 16 asrs r0, 17 subs r0, 0x4 strh r0, [r3, 0x26] movs r0, 0x46 bl audio_play _0812769A: movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081276A4: .4byte 0x0202ff84 _081276A8: .4byte 0x030048a0 _081276AC: .4byte gFieldEffectObjectTemplatePointers _081276B0: .4byte 0x02020004 thumb_func_end sub_8127610 thumb_func_start sub_81276B4 sub_81276B4: @ 81276B4 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _081276E4 ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x30] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x32] lsls r2, 24 lsrs r2, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 beq _081276EE _081276E4: adds r0, r4, 0 movs r1, 0xF bl FieldEffectStop b _0812772E _081276EE: ldr r3, _08127738 ldr r2, _0812773C mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x20] strh r0, [r4, 0x20] mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x22] strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0 bl sub_806487C _0812772E: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08127738: .4byte 0x02020004 _0812773C: .4byte 0x030048a0 thumb_func_end sub_81276B4 thumb_func_start sub_8127740 sub_8127740: @ 8127740 push {r4,lr} ldr r4, _081277A4 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0xC bl sub_8060470 ldr r0, _081277A8 ldr r0, [r0, 0x38] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0812779C lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _081277AC adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldr r0, [r4, 0x8] strh r0, [r2, 0x2E] movs r0, 0x10 strh r0, [r2, 0x30] _0812779C: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _081277A4: .4byte 0x0202ff84 _081277A8: .4byte gFieldEffectObjectTemplatePointers _081277AC: .4byte 0x02020004 thumb_func_end sub_8127740 thumb_func_start oei_water_drop_tall oei_water_drop_tall: @ 81277B0 push {r4,lr} ldr r4, _08127814 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127818 ldr r0, [r0, 0x30] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0812780C lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _0812781C adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldr r0, [r4, 0x8] strh r0, [r2, 0x2E] movs r0, 0xE strh r0, [r2, 0x30] _0812780C: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08127814: .4byte 0x0202ff84 _08127818: .4byte gFieldEffectObjectTemplatePointers _0812781C: .4byte 0x02020004 thumb_func_end oei_water_drop_tall thumb_func_start sub_8127820 sub_8127820: @ 8127820 push {r4-r7,lr} ldr r7, _081278C0 ldrb r0, [r7] ldrb r1, [r7, 0x4] ldrb r2, [r7, 0x8] bl GetFieldObjectIdByLocalIdAndMap lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _081278C4 adds r6, r1, r0 ldr r0, _081278C8 ldr r0, [r0, 0x34] movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x40 beq _081278B6 ldrb r0, [r6, 0x5] bl GetFieldObjectGraphicsInfo adds r4, r0, 0 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 ldr r3, _081278CC adds r0, r3 ldr r1, _081278D0 str r1, [r0, 0x1C] adds r5, r0, 0 adds r5, 0x3E ldrb r1, [r5] movs r2, 0x2 orrs r1, r2 strb r1, [r5] ldrb r2, [r6, 0x4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r3 ldrb r1, [r1, 0x5] movs r2, 0xC ands r2, r1 ldrb r3, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r3 orrs r1, r2 strb r1, [r0, 0x5] ldr r1, [r7] strh r1, [r0, 0x2E] ldr r1, [r7, 0x4] strh r1, [r0, 0x30] ldr r1, [r7, 0x8] strh r1, [r0, 0x32] ldr r1, _081278D4 strh r1, [r0, 0x34] movs r1, 0x1 negs r1, r1 strh r1, [r0, 0x36] ldrh r1, [r4, 0xA] lsls r1, 16 asrs r1, 17 subs r1, 0x4 strh r1, [r0, 0x26] movs r1, 0x1 bl StartSpriteAnim _081278B6: movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081278C0: .4byte 0x0202ff84 _081278C4: .4byte 0x030048a0 _081278C8: .4byte gFieldEffectObjectTemplatePointers _081278CC: .4byte 0x02020004 _081278D0: .4byte sub_81278D8 _081278D4: .4byte 0x0000ffff thumb_func_end sub_8127820 thumb_func_start sub_81278D8 sub_81278D8: @ 81278D8 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x30] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x32] lsls r2, 24 lsrs r2, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _08127912 ldr r2, _0812791C mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r5, r0, r2 ldrb r0, [r5, 0x2] lsls r0, 28 cmp r0, 0 blt _08127920 _08127912: adds r0, r4, 0 movs r1, 0x22 bl FieldEffectStop b _0812796A .align 2, 0 _0812791C: .4byte 0x030048a0 _08127920: ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08127974 adds r0, r1 ldrh r1, [r0, 0x20] strh r1, [r4, 0x20] ldrh r1, [r0, 0x22] strh r1, [r4, 0x22] adds r0, 0x43 ldrb r0, [r0] adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] adds r0, r4, 0 movs r1, 0 bl sub_806487C ldr r1, [r5, 0x10] ldr r0, [r4, 0x34] cmp r1, r0 beq _0812796A ldrh r0, [r5, 0x10] strh r0, [r4, 0x34] ldrh r0, [r5, 0x12] strh r0, [r4, 0x36] adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _0812796A movs r0, 0x46 bl audio_play _0812796A: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08127974: .4byte 0x02020004 thumb_func_end sub_81278D8 thumb_func_start oei_ripples oei_ripples: @ 8127978 push {r4,lr} ldr r0, _081279CC ldr r0, [r0, 0x14] ldr r4, _081279D0 movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _081279C4 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _081279D4 adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] movs r0, 0x5 strh r0, [r2, 0x2E] _081279C4: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _081279CC: .4byte gFieldEffectObjectTemplatePointers _081279D0: .4byte 0x0202ff84 _081279D4: .4byte 0x02020004 thumb_func_end oei_ripples thumb_func_start sub_81279D8 sub_81279D8: @ 81279D8 push {r4-r6,lr} ldr r6, _08127A6C ldrb r0, [r6] ldrb r1, [r6, 0x4] ldrb r2, [r6, 0x8] bl GetFieldObjectIdByLocalIdAndMap lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _08127A70 adds r5, r1, r0 ldr r0, _08127A74 ldr r0, [r0, 0x7C] movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08127A64 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r4, _08127A78 adds r2, r4 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x5] movs r1, 0xC ands r1, r0 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldr r0, [r6] strh r0, [r2, 0x2E] ldr r0, [r6, 0x4] strh r0, [r2, 0x30] ldr r0, [r6, 0x8] strh r0, [r2, 0x32] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x20] strh r0, [r2, 0x34] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x22] strh r0, [r2, 0x36] _08127A64: movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08127A6C: .4byte 0x0202ff84 _08127A70: .4byte 0x030048a0 _08127A74: .4byte gFieldEffectObjectTemplatePointers _08127A78: .4byte 0x02020004 thumb_func_end sub_81279D8 thumb_func_start sub_8127A7C sub_8127A7C: @ 8127A7C push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x30] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x32] lsls r2, 24 lsrs r2, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _08127AB6 ldr r5, _08127AC0 mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r1, r0, r5 ldrb r0, [r1, 0x2] lsls r0, 26 cmp r0, 0 blt _08127AC4 _08127AB6: adds r0, r4, 0 movs r1, 0x2A bl FieldEffectStop b _08127B08 .align 2, 0 _08127AC0: .4byte 0x030048a0 _08127AC4: ldrb r0, [r1, 0x5] bl GetFieldObjectGraphicsInfo mov r1, sp ldrb r2, [r1] lsls r1, r2, 3 adds r1, r2 lsls r1, 2 adds r1, r5 ldrb r2, [r1, 0x4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 ldr r2, _08127B10 adds r1, r2 ldrh r2, [r1, 0x20] strh r2, [r4, 0x20] ldrh r0, [r0, 0xA] lsls r0, 16 asrs r0, 17 ldrh r2, [r1, 0x22] adds r0, r2 subs r0, 0x8 strh r0, [r4, 0x22] adds r1, 0x43 ldrb r0, [r1] subs r0, 0x1 adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] adds r0, r4, 0 movs r1, 0 bl sub_806487C _08127B08: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08127B10: .4byte 0x02020004 thumb_func_end sub_8127A7C thumb_func_start sub_8127B14 sub_8127B14: @ 8127B14 push {r4,lr} ldr r4, _08127B74 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127B78 ldr r0, [r0, 0x44] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08127B6C lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _08127B7C adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] movs r0, 0x13 strh r0, [r2, 0x2E] _08127B6C: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08127B74: .4byte 0x0202ff84 _08127B78: .4byte gFieldEffectObjectTemplatePointers _08127B7C: .4byte 0x02020004 thumb_func_end sub_8127B14 thumb_func_start sub_8127B80 sub_8127B80: @ 8127B80 push {r4,lr} ldr r4, _08127BE0 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127BE4 ldr r0, [r0, 0x48] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08127BD8 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _08127BE8 adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] movs r0, 0x14 strh r0, [r2, 0x2E] _08127BD8: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08127BE0: .4byte 0x0202ff84 _08127BE4: .4byte gFieldEffectObjectTemplatePointers _08127BE8: .4byte 0x02020004 thumb_func_end sub_8127B80 thumb_func_start sub_8127BEC sub_8127BEC: @ 8127BEC push {r4,lr} ldr r4, _08127C4C adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127C50 ldr r0, [r0, 0x4C] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08127C44 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _08127C54 adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] movs r0, 0x15 strh r0, [r2, 0x2E] _08127C44: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08127C4C: .4byte 0x0202ff84 _08127C50: .4byte gFieldEffectObjectTemplatePointers _08127C54: .4byte 0x02020004 thumb_func_end sub_8127BEC thumb_func_start sub_8127C58 sub_8127C58: @ 8127C58 push {r4,lr} ldr r4, _08127CB8 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127CBC ldr r0, [r0, 0x50] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08127CB0 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _08127CC0 adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] movs r0, 0x16 strh r0, [r2, 0x2E] _08127CB0: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08127CB8: .4byte 0x0202ff84 _08127CBC: .4byte gFieldEffectObjectTemplatePointers _08127CC0: .4byte 0x02020004 thumb_func_end sub_8127C58 thumb_func_start ash ash: @ 8127CC4 push {r4,lr} lsls r2, 16 lsrs r2, 16 ldr r4, _08127CF4 lsls r0, 16 asrs r0, 16 str r0, [r4] lsls r1, 16 asrs r1, 16 str r1, [r4, 0x4] movs r0, 0x52 str r0, [r4, 0x8] movs r0, 0x1 str r0, [r4, 0xC] str r2, [r4, 0x10] lsls r3, 16 asrs r3, 16 str r3, [r4, 0x14] movs r0, 0x7 bl FieldEffectStart pop {r4} pop {r0} bx r0 .align 2, 0 _08127CF4: .4byte 0x0202ff84 thumb_func_end ash thumb_func_start oei_ash oei_ash: @ 8127CF8 push {r4,r5,lr} sub sp, 0x4 ldr r5, _08127D78 ldrh r1, [r5] mov r0, sp strh r1, [r0] ldrh r0, [r5, 0x4] mov r4, sp adds r4, 0x2 strh r0, [r4] mov r0, sp adds r1, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127D7C ldr r0, [r0, 0x18] mov r1, sp movs r2, 0 ldrsh r1, [r1, r2] movs r3, 0 ldrsh r2, [r4, r3] ldrb r3, [r5, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08127D6E lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _08127D80 adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r5, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldr r0, [r5] strh r0, [r2, 0x30] ldr r0, [r5, 0x4] strh r0, [r2, 0x32] ldr r0, [r5, 0x10] strh r0, [r2, 0x34] ldr r0, [r5, 0x14] strh r0, [r2, 0x36] _08127D6E: movs r0, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08127D78: .4byte 0x0202ff84 _08127D7C: .4byte gFieldEffectObjectTemplatePointers _08127D80: .4byte 0x02020004 thumb_func_end oei_ash thumb_func_start sub_8127D84 sub_8127D84: @ 8127D84 push {lr} ldr r2, _08127D9C movs r3, 0x2E ldrsh r1, [r0, r3] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _08127D9C: .4byte gUnknown_08401E48 thumb_func_end sub_8127D84 thumb_func_start sub_8127DA0 sub_8127DA0: @ 8127DA0 push {lr} adds r3, r0, 0 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] subs r2, 0x12 ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] ldrh r0, [r3, 0x36] subs r0, 0x1 strh r0, [r3, 0x36] lsls r0, 16 cmp r0, 0 bne _08127DCA movs r0, 0x1 strh r0, [r3, 0x2E] _08127DCA: pop {r0} bx r0 thumb_func_end sub_8127DA0 thumb_func_start sub_8127DD0 sub_8127DD0: @ 8127DD0 push {r4,lr} adds r4, r0, 0 adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] subs r2, 0x12 ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] movs r1, 0x30 ldrsh r0, [r4, r1] movs r2, 0x32 ldrsh r1, [r4, r2] ldrh r2, [r4, 0x34] bl MapGridSetMetatileIdAt movs r1, 0x30 ldrsh r0, [r4, r1] movs r2, 0x32 ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt ldr r2, _08127E28 ldr r0, _08127E2C ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] movs r0, 0x2 strh r0, [r4, 0x2E] pop {r4} pop {r0} bx r0 .align 2, 0 _08127E28: .4byte 0x030048a0 _08127E2C: .4byte 0x0202e858 thumb_func_end sub_8127DD0 thumb_func_start sub_8127E30 sub_8127E30: @ 8127E30 push {r4,lr} adds r4, r0, 0 movs r1, 0 bl sub_806487C adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08127E50 adds r0, r4, 0 movs r1, 0x7 bl FieldEffectStop _08127E50: pop {r4} pop {r0} bx r0 thumb_func_end sub_8127E30 thumb_func_start sub_8127E58 sub_8127E58: @ 8127E58 push {r4,r5,lr} ldr r4, _08127EC0 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _08127EC4 ldr r0, [r0, 0x1C] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0x96 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 cmp r0, 0x40 beq _08127EB2 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08127EC8 adds r1, r0 adds r3, r1, 0 adds r3, 0x3E ldrb r0, [r3] movs r2, 0x2 orrs r0, r2 strb r0, [r3] ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 strb r0, [r1, 0x5] ldr r0, [r4, 0x8] strh r0, [r1, 0x32] ldr r0, _08127ECC strh r0, [r1, 0x34] movs r0, 0x1 negs r0, r0 strh r0, [r1, 0x3A] strh r0, [r1, 0x3C] _08127EB2: movs r0, 0x8 bl FieldEffectActiveListRemove adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08127EC0: .4byte 0x0202ff84 _08127EC4: .4byte gFieldEffectObjectTemplatePointers _08127EC8: .4byte 0x02020004 _08127ECC: .4byte 0x0000ffff thumb_func_end sub_8127E58 thumb_func_start sub_8127ED0 sub_8127ED0: @ 8127ED0 lsls r0, 24 lsrs r0, 24 lsls r1, 24 ldr r3, _08127EF8 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 ldrh r0, [r2, 0x2E] movs r3, 0x10 negs r3, r3 ands r3, r0 movs r0, 0xF0 lsls r0, 20 ands r0, r1 lsrs r0, 24 orrs r0, r3 strh r0, [r2, 0x2E] bx lr .align 2, 0 _08127EF8: .4byte 0x02020004 thumb_func_end sub_8127ED0 thumb_func_start sub_8127EFC sub_8127EFC: @ 8127EFC lsls r0, 24 lsrs r0, 24 lsls r1, 24 ldr r3, _08127F24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 ldrh r0, [r2, 0x2E] movs r3, 0xF1 negs r3, r3 ands r3, r0 movs r0, 0xF0 lsls r0, 20 ands r0, r1 lsrs r0, 20 orrs r3, r0 strh r3, [r2, 0x2E] bx lr .align 2, 0 _08127F24: .4byte 0x02020004 thumb_func_end sub_8127EFC thumb_func_start sub_8127F28 sub_8127F28: @ 8127F28 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 ldr r4, _08127F54 lsls r3, r0, 4 adds r3, r0 lsls r3, 2 adds r3, r4 ldrh r0, [r3, 0x2E] ldr r4, _08127F58 ands r4, r0 movs r0, 0xF0 lsls r0, 20 ands r0, r1 lsrs r0, 16 orrs r4, r0 strh r4, [r3, 0x2E] strh r2, [r3, 0x30] pop {r4} pop {r0} bx r0 .align 2, 0 _08127F54: .4byte 0x02020004 _08127F58: .4byte 0xfffff0ff thumb_func_end sub_8127F28 thumb_func_start sub_8127F5C sub_8127F5C: @ 8127F5C ldrh r1, [r0, 0x2E] movs r0, 0xF ands r0, r1 bx lr thumb_func_end sub_8127F5C thumb_func_start sub_8127F64 sub_8127F64: @ 8127F64 ldrh r1, [r0, 0x2E] movs r0, 0xF0 ands r0, r1 lsrs r0, 4 bx lr thumb_func_end sub_8127F64 thumb_func_start sub_8127F70 sub_8127F70: @ 8127F70 ldrh r1, [r0, 0x2E] movs r0, 0xF0 lsls r0, 4 ands r0, r1 lsrs r0, 8 bx lr thumb_func_end sub_8127F70 thumb_func_start sub_8127F7C sub_8127F7C: @ 8127F7C push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x32 ldrsh r0, [r6, r1] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _08127FCC adds r4, r0 ldrb r0, [r4, 0x4] lsls r5, r0, 4 adds r5, r0 lsls r5, 2 ldr r0, _08127FD0 adds r5, r0 adds r0, r4, 0 adds r1, r6, 0 bl sub_8127FD4 adds r0, r4, 0 adds r1, r6, 0 bl sub_812800C adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_81280A0 ldrb r0, [r5, 0x5] movs r1, 0xC ands r1, r0 ldrb r2, [r6, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r6, 0x5] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08127FCC: .4byte 0x030048a0 _08127FD0: .4byte 0x02020004 thumb_func_end sub_8127F7C thumb_func_start sub_8127FD4 sub_8127FD4: @ 8127FD4 push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 adds r4, r1, 0 ldr r1, _08128008 mov r0, sp movs r2, 0x5 bl memcpy adds r0, r4, 0 bl sub_8127F64 lsls r0, 24 cmp r0, 0 bne _08128000 ldrb r0, [r5, 0x18] lsrs r0, 4 add r0, sp ldrb r1, [r0] adds r0, r4, 0 bl StartSpriteAnimIfDifferent _08128000: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08128008: .4byte gUnknown_08401E54 thumb_func_end sub_8127FD4 thumb_func_start sub_812800C sub_812800C: @ 812800C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r1, 0 ldrh r2, [r0, 0x10] mov r1, sp strh r2, [r1] ldrh r1, [r0, 0x12] mov r0, sp adds r0, 0x2 strh r1, [r0] movs r2, 0x26 ldrsh r3, [r4, r2] mov r8, r0 cmp r3, 0 bne _08128094 mov r0, sp movs r5, 0 ldrsh r2, [r0, r5] movs r5, 0x3A ldrsh r0, [r4, r5] cmp r2, r0 bne _08128048 lsls r0, r1, 16 asrs r0, 16 movs r5, 0x3C ldrsh r1, [r4, r5] cmp r0, r1 beq _08128094 _08128048: strh r3, [r4, 0x38] strh r2, [r4, 0x3A] mov r1, r8 movs r2, 0 ldrsh r0, [r1, r2] strh r0, [r4, 0x3C] movs r5, 0x1 mov r7, r8 mov r6, sp _0812805A: adds r0, r5, 0 mov r1, sp adds r2, r7, 0 bl MoveCoords movs r1, 0 ldrsh r0, [r6, r1] movs r2, 0 ldrsh r1, [r7, r2] bl MapGridGetZCoordAt lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _08128080 ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] b _08128094 _08128080: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r4, 0x3A] strh r0, [r6] ldrh r0, [r4, 0x3C] mov r1, r8 strh r0, [r1] cmp r5, 0x4 bls _0812805A _08128094: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_812800C thumb_func_start sub_81280A0 sub_81280A0: @ 81280A0 push {r4,r5,lr} sub sp, 0x4 adds r5, r1, 0 adds r4, r2, 0 ldr r1, _08128104 mov r0, sp movs r2, 0x4 bl memcpy adds r0, r4, 0 bl sub_8127F5C lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 cmp r2, 0 beq _0812811A ldrh r1, [r4, 0x36] adds r1, 0x1 strh r1, [r4, 0x36] movs r3, 0x38 ldrsh r0, [r4, r3] lsls r0, 1 add r0, sp ldrh r0, [r0] ands r1, r0 cmp r1, 0 bne _081280E0 ldrh r0, [r4, 0x34] ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] _081280E0: ldrh r1, [r4, 0x36] movs r0, 0xF ands r0, r1 cmp r0, 0 bne _081280F0 ldrh r0, [r4, 0x34] negs r0, r0 strh r0, [r4, 0x34] _081280F0: cmp r2, 0x2 beq _0812811A adds r0, r4, 0 bl sub_8127F70 lsls r0, 24 cmp r0, 0 bne _08128108 ldrh r0, [r4, 0x26] b _0812810E .align 2, 0 _08128104: .4byte gUnknown_08401E5A _08128108: ldrh r0, [r4, 0x26] ldrh r3, [r4, 0x30] adds r0, r3 _0812810E: strh r0, [r5, 0x26] ldrh r0, [r5, 0x20] strh r0, [r4, 0x20] ldrh r0, [r5, 0x22] adds r0, 0x8 strh r0, [r4, 0x22] _0812811A: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81280A0 thumb_func_start sub_8128124 sub_8128124: @ 8128124 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _08128168 movs r1, 0 movs r2, 0 movs r3, 0xFF bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r1, _0812816C adds r2, r1 ldr r1, _08128170 str r1, [r2, 0x1C] movs r1, 0x3E adds r1, r2 mov r12, r1 ldrb r1, [r1] movs r3, 0x4 orrs r1, r3 mov r3, r12 strb r1, [r3] strh r4, [r2, 0x2E] movs r1, 0x1 strh r1, [r2, 0x30] pop {r4} pop {r1} bx r1 .align 2, 0 _08128168: .4byte gDummySpriteTemplate _0812816C: .4byte 0x02020004 _08128170: .4byte sub_8128174 thumb_func_end sub_8128124 thumb_func_start sub_8128174 sub_8128174: @ 8128174 push {lr} adds r2, r0, 0 movs r0, 0x2E ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081281B0 adds r3, r0, r1 ldrh r1, [r2, 0x32] adds r0, r1, 0x1 strh r0, [r2, 0x32] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _0812819C ldrh r0, [r2, 0x30] ldrh r1, [r3, 0x26] adds r0, r1 strh r0, [r3, 0x26] _0812819C: ldrh r1, [r2, 0x32] movs r0, 0xF ands r0, r1 cmp r0, 0 bne _081281AC ldrh r0, [r2, 0x30] negs r0, r0 strh r0, [r2, 0x30] _081281AC: pop {r0} bx r0 .align 2, 0 _081281B0: .4byte 0x02020004 thumb_func_end sub_8128174 thumb_func_start sub_81281B4 sub_81281B4: @ 81281B4 push {r4,lr} ldr r4, _08128218 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0xC bl sub_8060470 ldr r0, _0812821C ldr r0, [r0, 0x24] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08128210 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _08128220 adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] ldr r0, [r4, 0x8] strh r0, [r2, 0x2E] movs r0, 0xA strh r0, [r2, 0x30] _08128210: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08128218: .4byte 0x0202ff84 _0812821C: .4byte gFieldEffectObjectTemplatePointers _08128220: .4byte 0x02020004 thumb_func_end sub_81281B4 thumb_func_start sub_8128224 sub_8128224: @ 8128224 push {r4-r7,lr} ldr r7, _081282D0 ldrb r0, [r7] ldrb r1, [r7, 0x4] ldrb r2, [r7, 0x8] bl GetFieldObjectIdByLocalIdAndMap lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _081282D4 adds r6, r1, r0 ldr r0, _081282D8 ldr r0, [r0, 0x74] movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x40 beq _081282C8 ldrb r0, [r6, 0x5] bl GetFieldObjectGraphicsInfo adds r5, r0, 0 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r4, _081282DC adds r0, r4 adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x2 orrs r1, r2 strb r1, [r3] ldrb r2, [r6, 0x4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrb r1, [r1, 0x5] movs r2, 0xC ands r2, r1 ldrb r3, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r3 orrs r1, r2 strb r1, [r0, 0x5] ldr r1, [r7] strh r1, [r0, 0x2E] ldr r1, [r7, 0x4] strh r1, [r0, 0x30] ldr r1, [r7, 0x8] strh r1, [r0, 0x32] ldrb r2, [r6, 0x4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x20] strh r1, [r0, 0x34] ldrb r2, [r6, 0x4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x22] strh r1, [r0, 0x36] ldrh r1, [r5, 0xA] lsls r1, 16 asrs r1, 17 subs r1, 0x2 strh r1, [r0, 0x26] movs r1, 0x2 bl SeekSpriteAnim _081282C8: movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081282D0: .4byte 0x0202ff84 _081282D4: .4byte 0x030048a0 _081282D8: .4byte gFieldEffectObjectTemplatePointers _081282DC: .4byte 0x02020004 thumb_func_end sub_8128224 thumb_func_start sub_81282E0 sub_81282E0: @ 81282E0 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x30] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x32] lsls r2, 24 lsrs r2, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _0812831A ldr r2, _08128324 mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r1, r0, r2 ldrb r0, [r1, 0x2] lsls r0, 27 cmp r0, 0 blt _08128328 _0812831A: adds r0, r4, 0 movs r1, 0x27 bl FieldEffectStop b _0812839A .align 2, 0 _08128324: .4byte 0x030048a0 _08128328: ldr r2, _081283A4 ldrb r1, [r1, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r5, [r0, 0x22] ldrh r6, [r0, 0x20] movs r2, 0x20 ldrsh r1, [r0, r2] movs r2, 0x34 ldrsh r0, [r4, r2] cmp r1, r0 bne _08128350 lsls r0, r5, 16 asrs r0, 16 movs r2, 0x36 ldrsh r1, [r4, r2] cmp r0, r1 beq _0812836A _08128350: strh r6, [r4, 0x34] strh r5, [r4, 0x36] adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0812836A adds r0, r4, 0 movs r1, 0 bl StartSpriteAnim _0812836A: strh r6, [r4, 0x20] strh r5, [r4, 0x22] ldr r3, _081283A4 ldr r2, _081283A8 mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x43 ldrb r0, [r0] adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] adds r0, r4, 0 movs r1, 0 bl sub_806487C _0812839A: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081283A4: .4byte 0x02020004 _081283A8: .4byte 0x030048a0 thumb_func_end sub_81282E0 thumb_func_start sub_81283AC sub_81283AC: @ 81283AC push {r4,lr} ldr r4, _08128404 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0 bl sub_8060470 ldr r0, _08128408 adds r0, 0x88 ldr r0, [r0] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0x52 bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _081283FC lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _0812840C adds r1, r0 adds r3, r1, 0 adds r3, 0x3E ldrb r0, [r3] movs r2, 0x2 orrs r0, r2 strb r0, [r3] ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 movs r2, 0x4 orrs r0, r2 strb r0, [r1, 0x5] _081283FC: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08128404: .4byte 0x0202ff84 _08128408: .4byte gFieldEffectObjectTemplatePointers _0812840C: .4byte 0x02020004 thumb_func_end sub_81283AC thumb_func_start sub_8128410 sub_8128410: @ 8128410 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x80 movs r1, 0x80 lsls r1, 1 ands r0, r1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 24 ldrh r1, [r4, 0x22] subs r1, r0 strh r1, [r4, 0x22] adds r0, r4, 0 movs r1, 0 bl sub_806487C ldrh r1, [r4, 0x3E] ldr r0, _0812844C ands r0, r1 cmp r0, 0 beq _08128444 adds r0, r4, 0 movs r1, 0x35 bl FieldEffectStop _08128444: pop {r4} pop {r0} bx r0 .align 2, 0 _0812844C: .4byte 0x00001004 thumb_func_end sub_8128410 thumb_func_start sub_8128450 sub_8128450: @ 8128450 push {r4,lr} ldr r4, _081284B8 adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x4 bl sub_8060470 ldr r0, _081284BC ldr r0, [r0, 0x58] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] ldrb r3, [r4, 0x8] bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _081284B0 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _081284C0 adds r2, r0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] movs r0, 0x3 ldrb r1, [r4, 0xC] ands r1, r0 lsls r1, 2 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r1 movs r1, 0xF ands r0, r1 movs r1, 0x50 orrs r0, r1 strb r0, [r2, 0x5] movs r0, 0x17 strh r0, [r2, 0x2E] _081284B0: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _081284B8: .4byte 0x0202ff84 _081284BC: .4byte gFieldEffectObjectTemplatePointers _081284C0: .4byte 0x02020004 thumb_func_end sub_8128450 thumb_func_start ShowTreeDisguiseFieldEffect ShowTreeDisguiseFieldEffect: @ 81284C4 push {lr} movs r0, 0x1C movs r1, 0x18 movs r2, 0x4 bl ShowDisguiseFieldEffect pop {r1} bx r1 thumb_func_end ShowTreeDisguiseFieldEffect thumb_func_start ShowMountainDisguiseFieldEffect ShowMountainDisguiseFieldEffect: @ 81284D4 push {lr} movs r0, 0x1D movs r1, 0x19 movs r2, 0x3 bl ShowDisguiseFieldEffect pop {r1} bx r1 thumb_func_end ShowMountainDisguiseFieldEffect thumb_func_start ShowSandDisguiseFieldEffect ShowSandDisguiseFieldEffect: @ 81284E4 push {lr} movs r0, 0x24 movs r1, 0x1C movs r2, 0x2 bl ShowDisguiseFieldEffect pop {r1} bx r1 thumb_func_end ShowSandDisguiseFieldEffect thumb_func_start ShowDisguiseFieldEffect ShowDisguiseFieldEffect: @ 81284F4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 mov r8, r4 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r7, r2, 24 ldr r5, _08128528 ldrb r0, [r5] ldrb r1, [r5, 0x4] ldrb r2, [r5, 0x8] mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 beq _0812852C adds r0, r4, 0 bl FieldEffectActiveListRemove movs r0, 0x40 b _08128598 .align 2, 0 _08128528: .4byte 0x0202ff84 _0812852C: ldr r1, _081285A4 lsls r0, r6, 2 adds r0, r1 ldr r0, [r0] movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSpriteAtEnd mov r1, sp strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08128594 mov r0, sp ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _081285A8 adds r2, r0 movs r0, 0x3E adds r0, r2 mov r12, r0 ldrb r3, [r0] lsls r1, r3, 30 lsrs r1, 31 adds r1, 0x1 movs r0, 0x1 ands r1, r0 lsls r1, 1 movs r0, 0x3 negs r0, r0 ands r0, r3 orrs r0, r1 mov r1, r12 strb r0, [r1] lsls r3, r7, 4 ldrb r1, [r2, 0x5] movs r0, 0xF ands r0, r1 orrs r0, r3 strb r0, [r2, 0x5] mov r0, r8 strh r0, [r2, 0x30] ldr r0, [r5] strh r0, [r2, 0x32] ldr r0, [r5, 0x4] strh r0, [r2, 0x34] ldr r0, [r5, 0x8] strh r0, [r2, 0x36] _08128594: mov r0, sp ldrb r0, [r0] _08128598: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081285A4: .4byte gFieldEffectObjectTemplatePointers _081285A8: .4byte 0x02020004 thumb_func_end ShowDisguiseFieldEffect thumb_func_start sub_81285AC sub_81285AC: @ 81285AC push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 ldrh r0, [r5, 0x32] lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x34] lsls r1, 24 lsrs r1, 24 ldrh r2, [r5, 0x36] lsls r2, 24 lsrs r2, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 beq _081285DC ldrh r1, [r5, 0x30] lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl FieldEffectStop _081285DC: ldr r4, _08128694 mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x5] bl GetFieldObjectGraphicsInfo mov r1, sp ldrb r2, [r1] lsls r1, r2, 3 adds r1, r2 lsls r1, 2 adds r1, r4 ldrb r1, [r1, 0x4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 ldr r1, _08128698 adds r2, r1 adds r1, r2, 0 adds r1, 0x3E ldrb r1, [r1] movs r3, 0x3E adds r3, r5 mov r12, r3 movs r3, 0x4 ands r3, r1 mov r1, r12 ldrb r4, [r1] movs r1, 0x5 negs r1, r1 ands r1, r4 orrs r1, r3 mov r3, r12 strb r1, [r3] ldrh r1, [r2, 0x20] strh r1, [r5, 0x20] ldrh r0, [r0, 0xA] lsls r0, 16 asrs r0, 17 ldrh r1, [r2, 0x22] adds r0, r1 subs r0, 0x10 strh r0, [r5, 0x22] adds r2, 0x43 ldrb r0, [r2] subs r0, 0x1 adds r1, r5, 0 adds r1, 0x43 strb r0, [r1] ldrh r1, [r5, 0x2E] movs r2, 0x2E ldrsh r0, [r5, r2] cmp r0, 0x1 bne _0812865C adds r0, r1, 0x1 strh r0, [r5, 0x2E] adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnim _0812865C: movs r3, 0x2E ldrsh r0, [r5, r3] ldrh r2, [r5, 0x2E] cmp r0, 0x2 bne _08128678 adds r0, r5, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08128678 movs r0, 0x1 strh r0, [r5, 0x3C] _08128678: lsls r0, r2, 16 asrs r0, 16 cmp r0, 0x3 bne _0812868C ldrh r1, [r5, 0x30] lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl FieldEffectStop _0812868C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08128694: .4byte 0x030048a0 _08128698: .4byte 0x02020004 thumb_func_end sub_81285AC thumb_func_start sub_812869C sub_812869C: @ 812869C push {lr} adds r1, r0, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0x1 bne _081286BA ldr r2, _081286C0 ldrb r1, [r1, 0x1A] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x2E] adds r1, 0x1 strh r1, [r0, 0x2E] _081286BA: pop {r0} bx r0 .align 2, 0 _081286C0: .4byte 0x02020004 thumb_func_end sub_812869C thumb_func_start sub_81286C4 sub_81286C4: @ 81286C4 push {lr} adds r2, r0, 0 adds r2, 0x21 ldrb r1, [r2] cmp r1, 0x2 beq _081286FA cmp r1, 0 beq _081286FA ldrb r1, [r0, 0x1A] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081286EC adds r1, r0, r1 movs r3, 0x3C ldrsh r0, [r1, r3] cmp r0, 0 bne _081286F0 movs r0, 0 b _081286FC .align 2, 0 _081286EC: .4byte 0x02020004 _081286F0: movs r0, 0x2 strb r0, [r2] ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] _081286FA: movs r0, 0x1 _081286FC: pop {r1} bx r1 thumb_func_end sub_81286C4 thumb_func_start sub_8128700 sub_8128700: @ 8128700 push {r4,lr} ldr r4, _08128768 ldr r0, [r4] adds r0, 0x7 str r0, [r4] ldr r0, [r4, 0x4] adds r0, 0x7 str r0, [r4, 0x4] adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 movs r3, 0x8 bl sub_8060470 ldr r0, _0812876C adds r0, 0x8C ldr r0, [r0] movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 ldrsh r2, [r4, r3] movs r3, 0x52 bl CreateSpriteAtEnd lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _08128760 ldr r0, _08128770 lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r0 movs r0, 0x3 ldrb r2, [r4, 0x8] ands r2, r0 lsls r2, 2 ldrb r3, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r2 strb r0, [r1, 0x5] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x2 orrs r0, r2 strb r0, [r1] _08128760: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08128768: .4byte 0x0202ff84 _0812876C: .4byte gFieldEffectObjectTemplatePointers _08128770: .4byte 0x02020004 thumb_func_end sub_8128700 thumb_func_start sub_8128774 sub_8128774: @ 8128774 push {lr} adds r2, r0, 0 movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 bne _081287A8 adds r0, r2, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _081287A0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] _081287A0: movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 beq _081287BE _081287A8: ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x22 ble _081287BE adds r0, r2, 0 movs r1, 0x36 bl FieldEffectStop _081287BE: pop {r0} bx r0 thumb_func_end sub_8128774 thumb_func_start sub_81287C4 sub_81287C4: @ 81287C4 push {r4,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _081287E2 ldrh r1, [r4, 0x30] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldEffectStop b _081287F8 _081287E2: adds r0, r4, 0 movs r1, 0 bl sub_806487C ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 movs r2, 0 bl SetObjectSubpriorityByZCoord _081287F8: pop {r4} pop {r0} bx r0 thumb_func_end sub_81287C4 thumb_func_start sub_8128800 sub_8128800: @ 8128800 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0812881E ldrh r1, [r2, 0x2E] lsls r1, 24 lsrs r1, 24 adds r0, r2, 0 bl FieldEffectStop b _08128826 _0812881E: adds r0, r2, 0 movs r1, 0 bl sub_806487C _08128826: pop {r0} bx r0 thumb_func_end sub_8128800 thumb_func_start sub_812882C sub_812882C: @ 812882C push {r4-r7,lr} adds r6, r0, 0 adds r0, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r2, 24 lsrs r2, 24 adds r1, r6, 0 bl SetObjectSubpriorityByZCoord movs r7, 0 _08128842: lsls r0, r7, 3 adds r0, r7 lsls r0, 2 ldr r1, _081288DC adds r4, r0, r1 ldrb r0, [r4] lsls r0, 31 cmp r0, 0 beq _081288E4 ldrb r0, [r4, 0x5] bl GetFieldObjectGraphicsInfo ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081288E0 adds r5, r0, r1 adds r0, r6, 0 adds r0, 0x28 movs r2, 0 ldrsb r2, [r0, r2] ldrh r0, [r6, 0x20] adds r1, r0, r2 subs r0, r2 lsls r0, 16 lsrs r4, r0, 16 lsls r1, 16 asrs r1, 16 movs r0, 0x20 ldrsh r2, [r5, r0] cmp r1, r2 bge _081288E4 lsls r0, r4, 16 asrs r0, 16 cmp r0, r2 ble _081288E4 adds r0, r5, 0 adds r0, 0x29 movs r3, 0 ldrsb r3, [r0, r3] ldrh r2, [r5, 0x22] adds r2, r3 ldrh r4, [r5, 0x22] adds r0, r6, 0 adds r0, 0x29 movs r1, 0 ldrsb r1, [r0, r1] ldrh r0, [r6, 0x22] subs r0, r1 lsls r0, 16 asrs r0, 16 adds r3, r0, r3 lsls r2, 16 asrs r2, 16 lsls r3, 16 asrs r3, 16 cmp r2, r3 blt _081288BC cmp r2, r0 bge _081288E4 _081288BC: lsls r0, r4, 16 asrs r0, 16 cmp r0, r3 ble _081288E4 adds r2, r6, 0 adds r2, 0x43 adds r0, r5, 0 adds r0, 0x43 ldrb r1, [r0] ldrb r0, [r2] cmp r0, r1 bhi _081288E4 adds r0, r1, 0x2 strb r0, [r2] b _081288EE .align 2, 0 _081288DC: .4byte 0x030048a0 _081288E0: .4byte 0x02020004 _081288E4: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0xF bls _08128842 _081288EE: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_812882C thumb_func_start sub_81288F4 sub_81288F4: @ 81288F4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, _0812893C adds r0, r4, 0 movs r1, 0 movs r2, 0x44 bl memset movs r3, 0x64 adds r2, r4, 0 movs r1, 0x3 adds r0, r2, 0 adds r0, 0x8 _08128910: strb r3, [r0] subs r0, 0x1 subs r1, 0x1 cmp r1, 0 bge _08128910 adds r3, r2, 0 adds r3, 0x41 movs r1, 0 strb r5, [r3] adds r0, r2, 0 adds r0, 0x40 strb r1, [r0] ldr r1, _08128940 ldrb r0, [r3] lsls r0, 6 adds r1, 0x18 adds r0, r1 ldr r0, [r0] str r0, [r2, 0x14] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812893C: .4byte 0x020192e4 _08128940: .4byte 0x02038570 thumb_func_end sub_81288F4 thumb_func_start sub_8128944 sub_8128944: @ 8128944 push {r4-r6,lr} ldr r1, _081289A8 ldr r0, [r1, 0x14] cmp r0, 0 beq _08128974 adds r4, r1, 0 movs r5, 0 _08128952: ldr r0, [r4, 0x14] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08128962 strb r5, [r4] bl sub_81289AC _08128962: ldr r1, [r4, 0x14] lsrs r1, 1 str r1, [r4, 0x14] ldrb r0, [r4, 0x10] adds r0, 0x1 strb r0, [r4, 0x10] strb r5, [r4, 0x4] cmp r1, 0 bne _08128952 _08128974: movs r6, 0x3 ldr r5, _081289A8 _08128978: bl Random adds r4, r0, 0 ands r4, r6 adds r3, r5, 0x5 adds r0, r4, r3 ldrb r2, [r0] movs r1, 0 ldrb r0, [r5, 0x5] cmp r2, r0 bcc _0812899C _0812898E: adds r1, 0x1 cmp r1, 0x3 bgt _0812899C adds r0, r1, r3 ldrb r0, [r0] cmp r2, r0 bcs _0812898E _0812899C: cmp r1, 0x4 bne _08128978 adds r0, r4, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081289A8: .4byte 0x020192e4 thumb_func_end sub_8128944 thumb_func_start sub_81289AC sub_81289AC: @ 81289AC push {r4-r6,lr} ldr r1, _081289F4 ldrb r0, [r1] adds r2, r1, 0 cmp r0, 0x2 beq _08128A76 adds r4, r1, 0 ldr r5, _081289F8 ldr r6, _081289FC _081289BE: ldrb r0, [r4] cmp r0, 0x1 beq _08128A0E cmp r0, 0x1 bgt _08128A6E cmp r0, 0 bne _08128A6E ldr r1, _08128A00 ldrb r0, [r4, 0x10] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [r5] ldrb r1, [r4, 0x4] lsls r1, 1 adds r0, r4, 0 adds r0, 0x41 ldrb r0, [r0] lsls r0, 6 adds r1, r0 adds r1, r6 ldrh r1, [r1] adds r0, r1, 0 cmp r0, 0 bne _08128A04 strh r0, [r4, 0x2] b _08128A06 .align 2, 0 _081289F4: .4byte 0x020192e4 _081289F8: .4byte 0x02039238 _081289FC: .4byte 0x0203858e _08128A00: .4byte gUnknown_081DC118 _08128A04: strh r1, [r4, 0x2] _08128A06: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _08128A6E _08128A0E: ldrh r1, [r1, 0x2] cmp r1, 0 beq _08128A2C ldr r1, _08128A28 ldr r0, [r5] ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 b _08128A3C .align 2, 0 _08128A28: .4byte gUnknown_08401E60 _08128A2C: adds r0, r4, 0x5 ldrb r2, [r4, 0x4] adds r0, r2 strb r1, [r0] ldrb r1, [r4, 0x9] movs r0, 0x1 orrs r0, r1 strb r0, [r4, 0x9] _08128A3C: ldr r2, _08128A5C ldrb r1, [r2, 0x9] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08128A6E ldrb r0, [r2, 0x4] adds r0, 0x1 movs r1, 0 strb r0, [r2, 0x4] lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bhi _08128A60 strb r1, [r2] b _08128A66 .align 2, 0 _08128A5C: .4byte 0x020192e4 _08128A60: ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] _08128A66: ldrb r1, [r4, 0x9] movs r0, 0xFE ands r0, r1 strb r0, [r4, 0x9] _08128A6E: adds r1, r2, 0 ldrb r0, [r1] cmp r0, 0x2 bne _081289BE _08128A76: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81289AC thumb_func_start sub_8128A7C sub_8128A7C: @ 8128A7C push {lr} lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 ldr r3, _08128AA4 ldrb r0, [r3] cmp r0, r2 beq _08128A9A _08128A8C: adds r1, 0x1 cmp r1, 0x3 bgt _08128A9A adds r0, r1, r3 ldrb r0, [r0] cmp r0, r2 bne _08128A8C _08128A9A: lsls r0, r1, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08128AA4: .4byte 0x020192d0 thumb_func_end sub_8128A7C thumb_func_start sub_8128AA8 sub_8128AA8: @ 8128AA8 push {lr} ldr r2, _08128AD0 adds r1, r2, 0x5 ldrb r0, [r2, 0x4] adds r1, r0 ldr r3, _08128AD4 ldr r0, [r3] ldrb r0, [r0, 0x1] lsls r0, 24 asrs r0, 24 ldrb r1, [r1] adds r0, r1 lsls r0, 16 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0xFF ble _08128AD8 movs r1, 0xFF b _08128ADE .align 2, 0 _08128AD0: .4byte 0x020192e4 _08128AD4: .4byte 0x02039238 _08128AD8: cmp r0, 0 bge _08128ADE movs r1, 0 _08128ADE: adds r0, r2, 0x5 ldrb r2, [r2, 0x4] adds r0, r2 strb r1, [r0] ldr r0, [r3] adds r0, 0x2 str r0, [r3] pop {r0} bx r0 thumb_func_end sub_8128AA8 thumb_func_start sub_8128AF0 sub_8128AF0: @ 8128AF0 ldr r1, _08128B04 adds r0, r1, 0 subs r0, 0xE0 ldrb r0, [r0, 0x1] strh r0, [r1, 0x18] ldr r1, _08128B08 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08128B04: .4byte 0x020192e4 _08128B08: .4byte 0x02039238 thumb_func_end sub_8128AF0 thumb_func_start sub_8128B0C sub_8128B0C: @ 8128B0C push {lr} bl sub_8128AF0 ldr r0, _08128B3C movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128B40 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _08128B44 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128B48 .align 2, 0 _08128B3C: .4byte 0x020192e4 _08128B40: .4byte 0x02039238 _08128B44: adds r0, r2, 0x5 str r0, [r3] _08128B48: pop {r0} bx r0 thumb_func_end sub_8128B0C thumb_func_start sub_8128B4C sub_8128B4C: @ 8128B4C push {lr} bl sub_8128AF0 ldr r0, _08128B7C movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128B80 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _08128B84 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128B88 .align 2, 0 _08128B7C: .4byte 0x020192e4 _08128B80: .4byte 0x02039238 _08128B84: adds r0, r2, 0x5 str r0, [r3] _08128B88: pop {r0} bx r0 thumb_func_end sub_8128B4C thumb_func_start sub_8128B8C sub_8128B8C: @ 8128B8C push {lr} bl sub_8128AF0 ldr r0, _08128BBC movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128BC0 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _08128BC4 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128BC8 .align 2, 0 _08128BBC: .4byte 0x020192e4 _08128BC0: .4byte 0x02039238 _08128BC4: adds r0, r2, 0x5 str r0, [r3] _08128BC8: pop {r0} bx r0 thumb_func_end sub_8128B8C thumb_func_start sub_8128BCC sub_8128BCC: @ 8128BCC push {lr} bl sub_8128AF0 ldr r0, _08128BFC movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128C00 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _08128C04 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128C08 .align 2, 0 _08128BFC: .4byte 0x020192e4 _08128C00: .4byte 0x02039238 _08128C04: adds r0, r2, 0x5 str r0, [r3] _08128C08: pop {r0} bx r0 thumb_func_end sub_8128BCC thumb_func_start sub_8128C0C sub_8128C0C: @ 8128C0C ldr r1, _08128C24 adds r0, r1, 0 subs r0, 0xE0 ldrb r0, [r0, 0x13] lsls r0, 24 asrs r0, 24 strh r0, [r1, 0x18] ldr r1, _08128C28 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08128C24: .4byte 0x020192e4 _08128C28: .4byte 0x02039238 thumb_func_end sub_8128C0C thumb_func_start sub_8128C2C sub_8128C2C: @ 8128C2C push {lr} bl sub_8128C0C ldr r0, _08128C5C movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128C60 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _08128C64 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128C68 .align 2, 0 _08128C5C: .4byte 0x020192e4 _08128C60: .4byte 0x02039238 _08128C64: adds r0, r2, 0x5 str r0, [r3] _08128C68: pop {r0} bx r0 thumb_func_end sub_8128C2C thumb_func_start sub_8128C6C sub_8128C6C: @ 8128C6C push {lr} bl sub_8128C0C ldr r0, _08128C9C movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128CA0 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _08128CA4 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128CA8 .align 2, 0 _08128C9C: .4byte 0x020192e4 _08128CA0: .4byte 0x02039238 _08128CA4: adds r0, r2, 0x5 str r0, [r3] _08128CA8: pop {r0} bx r0 thumb_func_end sub_8128C6C thumb_func_start sub_8128CAC sub_8128CAC: @ 8128CAC push {lr} bl sub_8128C0C ldr r0, _08128CDC movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128CE0 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _08128CE4 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128CE8 .align 2, 0 _08128CDC: .4byte 0x020192e4 _08128CE0: .4byte 0x02039238 _08128CE4: adds r0, r2, 0x5 str r0, [r3] _08128CE8: pop {r0} bx r0 thumb_func_end sub_8128CAC thumb_func_start sub_8128CEC sub_8128CEC: @ 8128CEC push {lr} bl sub_8128C0C ldr r0, _08128D1C movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128D20 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _08128D24 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128D28 .align 2, 0 _08128D1C: .4byte 0x020192e4 _08128D20: .4byte 0x02039238 _08128D24: adds r0, r2, 0x5 str r0, [r3] _08128D28: pop {r0} bx r0 thumb_func_end sub_8128CEC thumb_func_start sub_8128D2C sub_8128D2C: @ 8128D2C ldr r1, _08128D48 adds r2, r1, 0 adds r2, 0x41 adds r0, r1, 0 subs r0, 0x14 ldrb r2, [r2] adds r0, r2 ldrb r0, [r0] strh r0, [r1, 0x18] ldr r1, _08128D4C ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08128D48: .4byte 0x020192e4 _08128D4C: .4byte 0x02039238 thumb_func_end sub_8128D2C thumb_func_start sub_8128D50 sub_8128D50: @ 8128D50 push {lr} bl sub_8128D2C ldr r0, _08128D80 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128D84 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _08128D88 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128D8C .align 2, 0 _08128D80: .4byte 0x020192e4 _08128D84: .4byte 0x02039238 _08128D88: adds r0, r2, 0x5 str r0, [r3] _08128D8C: pop {r0} bx r0 thumb_func_end sub_8128D50 thumb_func_start sub_8128D90 sub_8128D90: @ 8128D90 push {lr} bl sub_8128D2C ldr r0, _08128DC0 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128DC4 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _08128DC8 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128DCC .align 2, 0 _08128DC0: .4byte 0x020192e4 _08128DC4: .4byte 0x02039238 _08128DC8: adds r0, r2, 0x5 str r0, [r3] _08128DCC: pop {r0} bx r0 thumb_func_end sub_8128D90 thumb_func_start sub_8128DD0 sub_8128DD0: @ 8128DD0 push {lr} bl sub_8128D2C ldr r0, _08128E00 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128E04 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _08128E08 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128E0C .align 2, 0 _08128E00: .4byte 0x020192e4 _08128E04: .4byte 0x02039238 _08128E08: adds r0, r2, 0x5 str r0, [r3] _08128E0C: pop {r0} bx r0 thumb_func_end sub_8128DD0 thumb_func_start sub_8128E10 sub_8128E10: @ 8128E10 push {lr} bl sub_8128D2C ldr r0, _08128E40 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128E44 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _08128E48 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128E4C .align 2, 0 _08128E40: .4byte 0x020192e4 _08128E44: .4byte 0x02039238 _08128E48: adds r0, r2, 0x5 str r0, [r3] _08128E4C: pop {r0} bx r0 thumb_func_end sub_8128E10 thumb_func_start sub_8128E50 sub_8128E50: @ 8128E50 push {r4,lr} ldr r4, _08128E88 adds r0, r4, 0 adds r0, 0x41 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r4, 0 subs r1, 0x84 adds r0, r1 ldrb r0, [r0, 0xD] lsls r0, 24 asrs r0, 24 movs r1, 0xA bl __divsi3 lsls r0, 24 asrs r0, 24 strh r0, [r4, 0x18] ldr r1, _08128E8C ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08128E88: .4byte 0x020192e4 _08128E8C: .4byte 0x02039238 thumb_func_end sub_8128E50 thumb_func_start sub_8128E90 sub_8128E90: @ 8128E90 push {lr} bl sub_8128E50 ldr r0, _08128EC0 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128EC4 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _08128EC8 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128ECC .align 2, 0 _08128EC0: .4byte 0x020192e4 _08128EC4: .4byte 0x02039238 _08128EC8: adds r0, r2, 0x5 str r0, [r3] _08128ECC: pop {r0} bx r0 thumb_func_end sub_8128E90 thumb_func_start sub_8128ED0 sub_8128ED0: @ 8128ED0 push {lr} bl sub_8128E50 ldr r0, _08128F00 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128F04 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _08128F08 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128F0C .align 2, 0 _08128F00: .4byte 0x020192e4 _08128F04: .4byte 0x02039238 _08128F08: adds r0, r2, 0x5 str r0, [r3] _08128F0C: pop {r0} bx r0 thumb_func_end sub_8128ED0 thumb_func_start sub_8128F10 sub_8128F10: @ 8128F10 push {lr} bl sub_8128E50 ldr r0, _08128F40 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128F44 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _08128F48 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128F4C .align 2, 0 _08128F40: .4byte 0x020192e4 _08128F44: .4byte 0x02039238 _08128F48: adds r0, r2, 0x5 str r0, [r3] _08128F4C: pop {r0} bx r0 thumb_func_end sub_8128F10 thumb_func_start sub_8128F50 sub_8128F50: @ 8128F50 push {lr} bl sub_8128E50 ldr r0, _08128F80 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08128F84 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _08128F88 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08128F8C .align 2, 0 _08128F80: .4byte 0x020192e4 _08128F84: .4byte 0x02039238 _08128F88: adds r0, r2, 0x5 str r0, [r3] _08128F8C: pop {r0} bx r0 thumb_func_end sub_8128F50 thumb_func_start sub_8128F90 sub_8128F90: @ 8128F90 ldr r2, _08128FB4 adds r0, r2, 0 adds r0, 0x41 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r2, 0 subs r1, 0x84 adds r0, r1 ldrh r0, [r0, 0x4] strh r0, [r2, 0x18] ldr r1, _08128FB8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08128FB4: .4byte 0x020192e4 _08128FB8: .4byte 0x02039238 thumb_func_end sub_8128F90 thumb_func_start sub_8128FBC sub_8128FBC: @ 8128FBC push {r4,r5,lr} bl sub_8128F90 ldr r2, _08128FF4 ldr r4, _08128FF8 ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] lsls r0, 8 orrs r1, r0 movs r5, 0x18 ldrsh r0, [r2, r5] lsls r1, 16 asrs r1, 16 cmp r0, r1 bge _08128FFC ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08129000 .align 2, 0 _08128FF4: .4byte 0x020192e4 _08128FF8: .4byte 0x02039238 _08128FFC: adds r0, r3, 0x6 str r0, [r4] _08129000: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8128FBC thumb_func_start sub_8129008 sub_8129008: @ 8129008 push {r4,r5,lr} bl sub_8128F90 ldr r2, _08129040 ldr r4, _08129044 ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] lsls r0, 8 orrs r1, r0 movs r5, 0x18 ldrsh r0, [r2, r5] lsls r1, 16 asrs r1, 16 cmp r0, r1 ble _08129048 ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812904C .align 2, 0 _08129040: .4byte 0x020192e4 _08129044: .4byte 0x02039238 _08129048: adds r0, r3, 0x6 str r0, [r4] _0812904C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8129008 thumb_func_start sub_8129054 sub_8129054: @ 8129054 push {r4,r5,lr} bl sub_8128F90 ldr r2, _0812908C ldr r4, _08129090 ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] lsls r0, 8 orrs r1, r0 movs r5, 0x18 ldrsh r0, [r2, r5] lsls r1, 16 asrs r1, 16 cmp r0, r1 bne _08129094 ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08129098 .align 2, 0 _0812908C: .4byte 0x020192e4 _08129090: .4byte 0x02039238 _08129094: adds r0, r3, 0x6 str r0, [r4] _08129098: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8129054 thumb_func_start sub_81290A0 sub_81290A0: @ 81290A0 push {r4,r5,lr} bl sub_8128F90 ldr r2, _081290D8 ldr r4, _081290DC ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] lsls r0, 8 orrs r1, r0 movs r5, 0x18 ldrsh r0, [r2, r5] lsls r1, 16 asrs r1, 16 cmp r0, r1 beq _081290E0 ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _081290E4 .align 2, 0 _081290D8: .4byte 0x020192e4 _081290DC: .4byte 0x02039238 _081290E0: adds r0, r3, 0x6 str r0, [r4] _081290E4: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81290A0 thumb_func_start sub_81290EC sub_81290EC: @ 81290EC ldr r2, _08129108 ldr r1, _0812910C adds r0, r2, 0 adds r0, 0x41 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r2, 0x18] ldr r1, _08129110 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08129108: .4byte 0x020192e4 _0812910C: .4byte 0x02038670 _08129110: .4byte 0x02039238 thumb_func_end sub_81290EC thumb_func_start sub_8129114 sub_8129114: @ 8129114 push {r4,r5,lr} bl sub_81290EC ldr r2, _0812914C ldr r4, _08129150 ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] lsls r0, 8 orrs r1, r0 movs r5, 0x18 ldrsh r0, [r2, r5] lsls r1, 16 asrs r1, 16 cmp r0, r1 bge _08129154 ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08129158 .align 2, 0 _0812914C: .4byte 0x020192e4 _08129150: .4byte 0x02039238 _08129154: adds r0, r3, 0x6 str r0, [r4] _08129158: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8129114 thumb_func_start sub_8129160 sub_8129160: @ 8129160 push {r4,r5,lr} bl sub_81290EC ldr r2, _08129198 ldr r4, _0812919C ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] lsls r0, 8 orrs r1, r0 movs r5, 0x18 ldrsh r0, [r2, r5] lsls r1, 16 asrs r1, 16 cmp r0, r1 ble _081291A0 ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _081291A4 .align 2, 0 _08129198: .4byte 0x020192e4 _0812919C: .4byte 0x02039238 _081291A0: adds r0, r3, 0x6 str r0, [r4] _081291A4: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8129160 thumb_func_start sub_81291AC sub_81291AC: @ 81291AC push {r4,r5,lr} bl sub_81290EC ldr r2, _081291E4 ldr r4, _081291E8 ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] lsls r0, 8 orrs r1, r0 movs r5, 0x18 ldrsh r0, [r2, r5] lsls r1, 16 asrs r1, 16 cmp r0, r1 bne _081291EC ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _081291F0 .align 2, 0 _081291E4: .4byte 0x020192e4 _081291E8: .4byte 0x02039238 _081291EC: adds r0, r3, 0x6 str r0, [r4] _081291F0: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81291AC thumb_func_start sub_81291F8 sub_81291F8: @ 81291F8 push {r4,r5,lr} bl sub_81290EC ldr r2, _08129230 ldr r4, _08129234 ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] lsls r0, 8 orrs r1, r0 movs r5, 0x18 ldrsh r0, [r2, r5] lsls r1, 16 asrs r1, 16 cmp r0, r1 beq _08129238 ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812923C .align 2, 0 _08129230: .4byte 0x020192e4 _08129234: .4byte 0x02039238 _08129238: adds r0, r3, 0x6 str r0, [r4] _0812923C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81291F8 thumb_func_start sub_8129244 sub_8129244: @ 8129244 ldr r1, _08129258 ldr r0, _0812925C ldrh r0, [r0] strh r0, [r1, 0x18] ldr r1, _08129260 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08129258: .4byte 0x020192e4 _0812925C: .4byte 0x0203869c _08129260: .4byte 0x02039238 thumb_func_end sub_8129244 thumb_func_start sub_8129264 sub_8129264: @ 8129264 push {lr} bl sub_8129244 ldr r0, _08129294 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129298 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _0812929C ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081292A0 .align 2, 0 _08129294: .4byte 0x020192e4 _08129298: .4byte 0x02039238 _0812929C: adds r0, r2, 0x5 str r0, [r3] _081292A0: pop {r0} bx r0 thumb_func_end sub_8129264 thumb_func_start sub_81292A4 sub_81292A4: @ 81292A4 push {lr} bl sub_8129244 ldr r0, _081292D4 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _081292D8 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _081292DC ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081292E0 .align 2, 0 _081292D4: .4byte 0x020192e4 _081292D8: .4byte 0x02039238 _081292DC: adds r0, r2, 0x5 str r0, [r3] _081292E0: pop {r0} bx r0 thumb_func_end sub_81292A4 thumb_func_start sub_81292E4 sub_81292E4: @ 81292E4 push {r4,lr} ldr r2, _08129318 ldr r4, _0812931C ldrb r1, [r4, 0x4] lsls r1, 1 adds r0, r4, 0 adds r0, 0x41 ldrb r0, [r0] lsls r0, 6 adds r1, r0 adds r2, 0x1E adds r1, r2 ldrh r0, [r1] bl sub_80B19FC lsls r0, 24 asrs r0, 24 strh r0, [r4, 0x18] ldr r1, _08129320 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08129318: .4byte 0x02038570 _0812931C: .4byte 0x020192e4 _08129320: .4byte 0x02039238 thumb_func_end sub_81292E4 thumb_func_start sub_8129324 sub_8129324: @ 8129324 push {r4,lr} bl sub_81292E4 ldr r0, _08129354 ldr r3, _08129358 ldr r2, [r3] movs r4, 0x18 ldrsh r1, [r0, r4] movs r0, 0 ldrsb r0, [r2, r0] cmp r1, r0 bge _0812935C ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129360 .align 2, 0 _08129354: .4byte 0x020192e4 _08129358: .4byte 0x02039238 _0812935C: adds r0, r2, 0x5 str r0, [r3] _08129360: pop {r4} pop {r0} bx r0 thumb_func_end sub_8129324 thumb_func_start sub_8129368 sub_8129368: @ 8129368 push {r4,lr} bl sub_81292E4 ldr r0, _08129398 ldr r3, _0812939C ldr r2, [r3] movs r4, 0x18 ldrsh r1, [r0, r4] movs r0, 0 ldrsb r0, [r2, r0] cmp r1, r0 ble _081293A0 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081293A4 .align 2, 0 _08129398: .4byte 0x020192e4 _0812939C: .4byte 0x02039238 _081293A0: adds r0, r2, 0x5 str r0, [r3] _081293A4: pop {r4} pop {r0} bx r0 thumb_func_end sub_8129368 thumb_func_start sub_81293AC sub_81293AC: @ 81293AC push {r4,lr} bl sub_81292E4 ldr r0, _081293DC ldr r3, _081293E0 ldr r2, [r3] movs r4, 0x18 ldrsh r1, [r0, r4] movs r0, 0 ldrsb r0, [r2, r0] cmp r1, r0 bne _081293E4 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081293E8 .align 2, 0 _081293DC: .4byte 0x020192e4 _081293E0: .4byte 0x02039238 _081293E4: adds r0, r2, 0x5 str r0, [r3] _081293E8: pop {r4} pop {r0} bx r0 thumb_func_end sub_81293AC thumb_func_start sub_81293F0 sub_81293F0: @ 81293F0 push {r4,lr} bl sub_81292E4 ldr r0, _08129420 ldr r3, _08129424 ldr r2, [r3] movs r4, 0x18 ldrsh r1, [r0, r4] movs r0, 0 ldrsb r0, [r2, r0] cmp r1, r0 beq _08129428 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812942C .align 2, 0 _08129420: .4byte 0x020192e4 _08129424: .4byte 0x02039238 _08129428: adds r0, r2, 0x5 str r0, [r3] _0812942C: pop {r4} pop {r0} bx r0 thumb_func_end sub_81293F0 thumb_func_start sub_8129434 sub_8129434: @ 8129434 ldr r2, _08129460 ldr r3, _08129464 ldrb r1, [r3, 0x4] lsls r1, 1 adds r0, r3, 0 adds r0, 0x41 ldrb r0, [r0] lsls r0, 6 adds r1, r0 adds r2, 0x1E adds r1, r2 ldrh r0, [r1] ldr r1, _08129468 lsls r0, 3 adds r0, r1 ldrb r0, [r0] strh r0, [r3, 0x18] ldr r1, _0812946C ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08129460: .4byte 0x02038570 _08129464: .4byte 0x020192e4 _08129468: .4byte gContestMoves _0812946C: .4byte 0x02039238 thumb_func_end sub_8129434 thumb_func_start sub_8129470 sub_8129470: @ 8129470 push {lr} bl sub_8129434 ldr r0, _081294A0 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _081294A4 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _081294A8 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081294AC .align 2, 0 _081294A0: .4byte 0x020192e4 _081294A4: .4byte 0x02039238 _081294A8: adds r0, r2, 0x5 str r0, [r3] _081294AC: pop {r0} bx r0 thumb_func_end sub_8129470 thumb_func_start sub_81294B0 sub_81294B0: @ 81294B0 push {lr} bl sub_8129434 ldr r0, _081294E0 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _081294E4 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _081294E8 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081294EC .align 2, 0 _081294E0: .4byte 0x020192e4 _081294E4: .4byte 0x02039238 _081294E8: adds r0, r2, 0x5 str r0, [r3] _081294EC: pop {r0} bx r0 thumb_func_end sub_81294B0 thumb_func_start sub_81294F0 sub_81294F0: @ 81294F0 ldr r2, _08129524 ldr r3, _08129528 ldrb r1, [r3, 0x4] lsls r1, 1 adds r0, r3, 0 adds r0, 0x41 ldrb r0, [r0] lsls r0, 6 adds r1, r0 adds r2, 0x1E adds r1, r2 ldrh r0, [r1] ldr r2, _0812952C ldr r1, _08129530 lsls r0, 3 adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldrb r0, [r0] strh r0, [r3, 0x18] ldr r1, _08129534 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08129524: .4byte 0x02038570 _08129528: .4byte 0x020192e4 _0812952C: .4byte gContestEffects _08129530: .4byte gContestMoves _08129534: .4byte 0x02039238 thumb_func_end sub_81294F0 thumb_func_start sub_8129538 sub_8129538: @ 8129538 push {lr} bl sub_81294F0 ldr r0, _08129568 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812956C ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _08129570 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129574 .align 2, 0 _08129568: .4byte 0x020192e4 _0812956C: .4byte 0x02039238 _08129570: adds r0, r2, 0x5 str r0, [r3] _08129574: pop {r0} bx r0 thumb_func_end sub_8129538 thumb_func_start sub_8129578 sub_8129578: @ 8129578 push {lr} bl sub_81294F0 ldr r0, _081295A8 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _081295AC ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _081295B0 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081295B4 .align 2, 0 _081295A8: .4byte 0x020192e4 _081295AC: .4byte 0x02039238 _081295B0: adds r0, r2, 0x5 str r0, [r3] _081295B4: pop {r0} bx r0 thumb_func_end sub_8129578 thumb_func_start sub_81295B8 sub_81295B8: @ 81295B8 push {r4-r7,lr} ldr r2, _08129610 ldr r3, _08129614 ldrb r0, [r3, 0x4] lsls r0, 1 adds r1, r3, 0 adds r1, 0x41 ldrb r1, [r1] lsls r1, 6 adds r0, r1 adds r2, 0x1E adds r0, r2 ldrh r0, [r0] ldr r4, _08129618 ldr r5, _0812961C lsls r0, 3 adds r0, r5 ldrb r0, [r0] lsls r0, 2 adds r0, r4 ldrb r7, [r0, 0x1] movs r6, 0 ldr r0, _08129620 mov r12, r0 adds r1, r2 _081295EA: ldrh r0, [r1] cmp r0, 0 beq _08129600 lsls r0, 3 adds r0, r5 ldrb r0, [r0] lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x1] cmp r7, r0 bcc _08129608 _08129600: adds r1, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _081295EA _08129608: cmp r6, 0x4 bne _08129624 movs r0, 0x1 b _08129626 .align 2, 0 _08129610: .4byte 0x02038570 _08129614: .4byte 0x020192e4 _08129618: .4byte gContestEffects _0812961C: .4byte gContestMoves _08129620: .4byte 0x02039238 _08129624: movs r0, 0 _08129626: strh r0, [r3, 0x18] mov r1, r12 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81295B8 thumb_func_start sub_8129638 sub_8129638: @ 8129638 push {lr} bl sub_81295B8 ldr r0, _08129664 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812966C ldr r3, _08129668 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129674 .align 2, 0 _08129664: .4byte 0x020192e4 _08129668: .4byte 0x02039238 _0812966C: ldr r1, _08129678 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _08129674: pop {r0} bx r0 .align 2, 0 _08129678: .4byte 0x02039238 thumb_func_end sub_8129638 thumb_func_start sub_812967C sub_812967C: @ 812967C push {r4-r7,lr} ldr r2, _081296D4 ldr r3, _081296D8 ldrb r0, [r3, 0x4] lsls r0, 1 adds r1, r3, 0 adds r1, 0x41 ldrb r1, [r1] lsls r1, 6 adds r0, r1 adds r2, 0x1E adds r0, r2 ldrh r0, [r0] ldr r4, _081296DC ldr r5, _081296E0 lsls r0, 3 adds r0, r5 ldrb r0, [r0] lsls r0, 2 adds r0, r4 ldrb r7, [r0, 0x2] movs r6, 0 ldr r0, _081296E4 mov r12, r0 adds r1, r2 _081296AE: ldrh r0, [r1] cmp r0, 0 beq _081296C4 lsls r0, 3 adds r0, r5 ldrb r0, [r0] lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x2] cmp r7, r0 bcc _081296CC _081296C4: adds r1, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _081296AE _081296CC: cmp r6, 0x4 bne _081296E8 movs r0, 0x1 b _081296EA .align 2, 0 _081296D4: .4byte 0x02038570 _081296D8: .4byte 0x020192e4 _081296DC: .4byte gContestEffects _081296E0: .4byte gContestMoves _081296E4: .4byte 0x02039238 _081296E8: movs r0, 0 _081296EA: strh r0, [r3, 0x18] mov r1, r12 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_812967C thumb_func_start sub_81296FC sub_81296FC: @ 81296FC push {lr} bl sub_812967C ldr r0, _08129728 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _08129730 ldr r3, _0812972C ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129738 .align 2, 0 _08129728: .4byte 0x020192e4 _0812972C: .4byte 0x02039238 _08129730: ldr r1, _0812973C ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08129738: pop {r0} bx r0 .align 2, 0 _0812973C: .4byte 0x02039238 thumb_func_end sub_81296FC thumb_func_start sub_8129740 sub_8129740: @ 8129740 push {r4,lr} ldr r2, _08129784 ldr r4, _08129788 ldrb r1, [r4, 0x4] lsls r1, 1 adds r0, r4, 0 adds r0, 0x41 ldrb r0, [r0] lsls r0, 6 adds r1, r0 adds r2, 0x1E adds r1, r2 ldrh r0, [r1] ldr r2, _0812978C ldr r1, _08129790 lsls r0, 3 adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x18] ldr r1, _08129794 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08129784: .4byte 0x02038570 _08129788: .4byte 0x020192e4 _0812978C: .4byte gContestEffects _08129790: .4byte gContestMoves _08129794: .4byte 0x02039238 thumb_func_end sub_8129740 thumb_func_start sub_8129798 sub_8129798: @ 8129798 push {lr} bl sub_8129740 ldr r0, _081297C8 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _081297CC ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _081297D0 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081297D4 .align 2, 0 _081297C8: .4byte 0x020192e4 _081297CC: .4byte 0x02039238 _081297D0: adds r0, r2, 0x5 str r0, [r3] _081297D4: pop {r0} bx r0 thumb_func_end sub_8129798 thumb_func_start sub_81297D8 sub_81297D8: @ 81297D8 push {lr} bl sub_8129740 ldr r0, _08129808 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812980C ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _08129810 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129814 .align 2, 0 _08129808: .4byte 0x020192e4 _0812980C: .4byte 0x02039238 _08129810: adds r0, r2, 0x5 str r0, [r3] _08129814: pop {r0} bx r0 thumb_func_end sub_81297D8 thumb_func_start sub_8129818 sub_8129818: @ 8129818 push {lr} bl sub_8129740 ldr r0, _08129848 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812984C ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _08129850 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129854 .align 2, 0 _08129848: .4byte 0x020192e4 _0812984C: .4byte 0x02039238 _08129850: adds r0, r2, 0x5 str r0, [r3] _08129854: pop {r0} bx r0 thumb_func_end sub_8129818 thumb_func_start sub_8129858 sub_8129858: @ 8129858 push {lr} bl sub_8129740 ldr r0, _08129888 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812988C ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _08129890 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129894 .align 2, 0 _08129888: .4byte 0x020192e4 _0812988C: .4byte 0x02039238 _08129890: adds r0, r2, 0x5 str r0, [r3] _08129894: pop {r0} bx r0 thumb_func_end sub_8129858 thumb_func_start sub_8129898 sub_8129898: @ 8129898 push {r4,lr} ldr r2, _081298DC ldr r4, _081298E0 ldrb r1, [r4, 0x4] lsls r1, 1 adds r0, r4, 0 adds r0, 0x41 ldrb r0, [r0] lsls r0, 6 adds r1, r0 adds r2, 0x1E adds r1, r2 ldrh r0, [r1] ldr r2, _081298E4 ldr r1, _081298E8 lsls r0, 3 adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x18] ldr r1, _081298EC ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _081298DC: .4byte 0x02038570 _081298E0: .4byte 0x020192e4 _081298E4: .4byte gContestEffects _081298E8: .4byte gContestMoves _081298EC: .4byte 0x02039238 thumb_func_end sub_8129898 thumb_func_start sub_81298F0 sub_81298F0: @ 81298F0 push {lr} bl sub_8129898 ldr r0, _08129920 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129924 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _08129928 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812992C .align 2, 0 _08129920: .4byte 0x020192e4 _08129924: .4byte 0x02039238 _08129928: adds r0, r2, 0x5 str r0, [r3] _0812992C: pop {r0} bx r0 thumb_func_end sub_81298F0 thumb_func_start sub_8129930 sub_8129930: @ 8129930 push {lr} bl sub_8129898 ldr r0, _08129960 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129964 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _08129968 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812996C .align 2, 0 _08129960: .4byte 0x020192e4 _08129964: .4byte 0x02039238 _08129968: adds r0, r2, 0x5 str r0, [r3] _0812996C: pop {r0} bx r0 thumb_func_end sub_8129930 thumb_func_start sub_8129970 sub_8129970: @ 8129970 push {lr} bl sub_8129898 ldr r0, _081299A0 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _081299A4 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _081299A8 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081299AC .align 2, 0 _081299A0: .4byte 0x020192e4 _081299A4: .4byte 0x02039238 _081299A8: adds r0, r2, 0x5 str r0, [r3] _081299AC: pop {r0} bx r0 thumb_func_end sub_8129970 thumb_func_start sub_81299B0 sub_81299B0: @ 81299B0 push {lr} bl sub_8129898 ldr r0, _081299E0 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _081299E4 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _081299E8 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081299EC .align 2, 0 _081299E0: .4byte 0x020192e4 _081299E4: .4byte 0x02039238 _081299E8: adds r0, r2, 0x5 str r0, [r3] _081299EC: pop {r0} bx r0 thumb_func_end sub_81299B0 thumb_func_start sub_81299F0 sub_81299F0: @ 81299F0 push {r4,lr} ldr r3, _08129A20 ldr r4, _08129A24 ldrb r0, [r4, 0x4] lsls r0, 1 adds r1, r4, 0 adds r1, 0x41 ldrb r2, [r1] lsls r1, r2, 6 adds r0, r1 adds r3, 0x1E adds r0, r3 ldrh r3, [r0] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r1, r4, 0 subs r1, 0x84 adds r0, r1 ldrh r1, [r0, 0x8] cmp r3, r1 beq _08129A28 movs r0, 0 b _08129A30 .align 2, 0 _08129A20: .4byte 0x02038570 _08129A24: .4byte 0x020192e4 _08129A28: ldrb r0, [r0, 0xB] lsls r0, 25 lsrs r0, 29 adds r0, 0x1 _08129A30: strh r0, [r4, 0x18] ldr r1, _08129A40 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08129A40: .4byte 0x02039238 thumb_func_end sub_81299F0 thumb_func_start sub_8129A44 sub_8129A44: @ 8129A44 push {lr} bl sub_81299F0 ldr r0, _08129A74 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129A78 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _08129A7C ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129A80 .align 2, 0 _08129A74: .4byte 0x020192e4 _08129A78: .4byte 0x02039238 _08129A7C: adds r0, r2, 0x5 str r0, [r3] _08129A80: pop {r0} bx r0 thumb_func_end sub_8129A44 thumb_func_start sub_8129A84 sub_8129A84: @ 8129A84 push {lr} bl sub_81299F0 ldr r0, _08129AB4 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129AB8 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _08129ABC ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129AC0 .align 2, 0 _08129AB4: .4byte 0x020192e4 _08129AB8: .4byte 0x02039238 _08129ABC: adds r0, r2, 0x5 str r0, [r3] _08129AC0: pop {r0} bx r0 thumb_func_end sub_8129A84 thumb_func_start sub_8129AC4 sub_8129AC4: @ 8129AC4 push {lr} bl sub_81299F0 ldr r0, _08129AF4 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129AF8 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _08129AFC ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129B00 .align 2, 0 _08129AF4: .4byte 0x020192e4 _08129AF8: .4byte 0x02039238 _08129AFC: adds r0, r2, 0x5 str r0, [r3] _08129B00: pop {r0} bx r0 thumb_func_end sub_8129AC4 thumb_func_start sub_8129B04 sub_8129B04: @ 8129B04 push {lr} bl sub_81299F0 ldr r0, _08129B34 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129B38 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _08129B3C ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129B40 .align 2, 0 _08129B34: .4byte 0x020192e4 _08129B38: .4byte 0x02039238 _08129B3C: adds r0, r2, 0x5 str r0, [r3] _08129B40: pop {r0} bx r0 thumb_func_end sub_8129B04 thumb_func_start sub_8129B44 sub_8129B44: @ 8129B44 push {r4-r7,lr} mov r7, r8 push {r7} movs r5, 0 ldr r3, _08129BAC ldr r2, _08129BB0 ldrb r1, [r2, 0x4] lsls r1, 1 adds r2, 0x41 ldrb r0, [r2] lsls r0, 6 adds r1, r0 adds r3, 0x1E adds r1, r3 ldrh r6, [r1] movs r4, 0 mov r8, r2 adds r7, r3, 0 _08129B68: lsls r0, r4, 1 mov r2, r8 ldrb r1, [r2] lsls r1, 6 adds r0, r1 adds r1, r0, r7 ldrh r0, [r1] cmp r0, 0 beq _08129B8A adds r1, r0, 0 adds r0, r6, 0 bl AreMovesContestCombo lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08129B94 _08129B8A: adds r4, 0x1 cmp r4, 0x3 ble _08129B68 cmp r5, 0 beq _08129B96 _08129B94: movs r5, 0x1 _08129B96: ldr r0, _08129BB0 strh r5, [r0, 0x18] ldr r1, _08129BB4 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08129BAC: .4byte 0x02038570 _08129BB0: .4byte 0x020192e4 _08129BB4: .4byte 0x02039238 thumb_func_end sub_8129B44 thumb_func_start sub_8129BB8 sub_8129BB8: @ 8129BB8 push {lr} bl sub_8129B44 ldr r0, _08129BE4 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _08129BEC ldr r3, _08129BE8 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129BF4 .align 2, 0 _08129BE4: .4byte 0x020192e4 _08129BE8: .4byte 0x02039238 _08129BEC: ldr r1, _08129BF8 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _08129BF4: pop {r0} bx r0 .align 2, 0 _08129BF8: .4byte 0x02039238 thumb_func_end sub_8129BB8 thumb_func_start sub_8129BFC sub_8129BFC: @ 8129BFC push {lr} bl sub_8129B44 ldr r0, _08129C28 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bne _08129C30 ldr r3, _08129C2C ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129C38 .align 2, 0 _08129C28: .4byte 0x020192e4 _08129C2C: .4byte 0x02039238 _08129C30: ldr r1, _08129C3C ldr r0, [r1] adds r0, 0x4 str r0, [r1] _08129C38: pop {r0} bx r0 .align 2, 0 _08129C3C: .4byte 0x02039238 thumb_func_end sub_8129BFC thumb_func_start sub_8129C40 sub_8129C40: @ 8129C40 push {r4-r7,lr} mov r7, r8 push {r7} movs r5, 0 ldr r3, _08129CA8 ldr r2, _08129CAC ldrb r1, [r2, 0x4] lsls r1, 1 adds r2, 0x41 ldrb r0, [r2] lsls r0, 6 adds r1, r0 adds r3, 0x1E adds r1, r3 ldrh r6, [r1] movs r4, 0 mov r8, r2 adds r7, r3, 0 _08129C64: lsls r0, r4, 1 mov r2, r8 ldrb r1, [r2] lsls r1, 6 adds r0, r1 adds r1, r0, r7 ldrh r0, [r1] cmp r0, 0 beq _08129C84 adds r1, r6, 0 bl AreMovesContestCombo lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08129C8E _08129C84: adds r4, 0x1 cmp r4, 0x3 ble _08129C64 cmp r5, 0 beq _08129C90 _08129C8E: movs r5, 0x1 _08129C90: ldr r0, _08129CAC strh r5, [r0, 0x18] ldr r1, _08129CB0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08129CA8: .4byte 0x02038570 _08129CAC: .4byte 0x020192e4 _08129CB0: .4byte 0x02039238 thumb_func_end sub_8129C40 thumb_func_start sub_8129CB4 sub_8129CB4: @ 8129CB4 push {lr} bl sub_8129C40 ldr r0, _08129CE0 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _08129CE8 ldr r3, _08129CE4 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129CF0 .align 2, 0 _08129CE0: .4byte 0x020192e4 _08129CE4: .4byte 0x02039238 _08129CE8: ldr r1, _08129CF4 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _08129CF0: pop {r0} bx r0 .align 2, 0 _08129CF4: .4byte 0x02039238 thumb_func_end sub_8129CB4 thumb_func_start sub_8129CF8 sub_8129CF8: @ 8129CF8 push {lr} bl sub_8129C40 ldr r0, _08129D24 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bne _08129D2C ldr r3, _08129D28 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129D34 .align 2, 0 _08129D24: .4byte 0x020192e4 _08129D28: .4byte 0x02039238 _08129D2C: ldr r1, _08129D38 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _08129D34: pop {r0} bx r0 .align 2, 0 _08129D38: .4byte 0x02039238 thumb_func_end sub_8129CF8 thumb_func_start sub_8129D3C sub_8129D3C: @ 8129D3C push {r4,r5,lr} movs r5, 0 ldr r3, _08129D8C ldr r4, _08129D90 ldrb r0, [r4, 0x4] lsls r0, 1 adds r1, r4, 0 adds r1, 0x41 ldrb r2, [r1] lsls r1, r2, 6 adds r0, r1 adds r3, 0x1E adds r0, r3 ldrh r3, [r0] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r1, r4, 0 subs r1, 0x84 adds r1, r0, r1 ldrh r0, [r1, 0x8] cmp r0, 0 beq _08129D74 adds r1, r3, 0 bl AreMovesContestCombo lsls r0, 24 lsrs r5, r0, 24 _08129D74: cmp r5, 0 beq _08129D7A movs r5, 0x1 _08129D7A: strh r5, [r4, 0x18] ldr r1, _08129D94 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08129D8C: .4byte 0x02038570 _08129D90: .4byte 0x020192e4 _08129D94: .4byte 0x02039238 thumb_func_end sub_8129D3C thumb_func_start sub_8129D98 sub_8129D98: @ 8129D98 push {lr} bl sub_8129D3C ldr r0, _08129DC4 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _08129DCC ldr r3, _08129DC8 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129DD4 .align 2, 0 _08129DC4: .4byte 0x020192e4 _08129DC8: .4byte 0x02039238 _08129DCC: ldr r1, _08129DD8 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _08129DD4: pop {r0} bx r0 .align 2, 0 _08129DD8: .4byte 0x02039238 thumb_func_end sub_8129D98 thumb_func_start sub_8129DDC sub_8129DDC: @ 8129DDC push {lr} bl sub_8129D3C ldr r0, _08129E08 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bne _08129E10 ldr r3, _08129E0C ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129E18 .align 2, 0 _08129E08: .4byte 0x020192e4 _08129E0C: .4byte 0x02039238 _08129E10: ldr r1, _08129E1C ldr r0, [r1] adds r0, 0x4 str r0, [r1] _08129E18: pop {r0} bx r0 .align 2, 0 _08129E1C: .4byte 0x02039238 thumb_func_end sub_8129DDC thumb_func_start sub_8129E20 sub_8129E20: @ 8129E20 push {r4,r5,lr} ldr r4, _08129E5C ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8128A7C lsls r0, 24 lsrs r0, 24 ldr r5, _08129E60 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r0, r5, 0 subs r0, 0x84 adds r1, r0 movs r0, 0xD ldrsb r0, [r1, r0] movs r1, 0xA bl __divsi3 lsls r0, 24 asrs r0, 24 strh r0, [r5, 0x18] ldr r0, [r4] adds r0, 0x2 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08129E5C: .4byte 0x02039238 _08129E60: .4byte 0x020192e4 thumb_func_end sub_8129E20 thumb_func_start sub_8129E64 sub_8129E64: @ 8129E64 push {lr} bl sub_8129E20 ldr r0, _08129E94 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129E98 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _08129E9C ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129EA0 .align 2, 0 _08129E94: .4byte 0x020192e4 _08129E98: .4byte 0x02039238 _08129E9C: adds r0, r2, 0x5 str r0, [r3] _08129EA0: pop {r0} bx r0 thumb_func_end sub_8129E64 thumb_func_start sub_8129EA4 sub_8129EA4: @ 8129EA4 push {lr} bl sub_8129E20 ldr r0, _08129ED4 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129ED8 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _08129EDC ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129EE0 .align 2, 0 _08129ED4: .4byte 0x020192e4 _08129ED8: .4byte 0x02039238 _08129EDC: adds r0, r2, 0x5 str r0, [r3] _08129EE0: pop {r0} bx r0 thumb_func_end sub_8129EA4 thumb_func_start sub_8129EE4 sub_8129EE4: @ 8129EE4 push {lr} bl sub_8129E20 ldr r0, _08129F14 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129F18 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _08129F1C ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129F20 .align 2, 0 _08129F14: .4byte 0x020192e4 _08129F18: .4byte 0x02039238 _08129F1C: adds r0, r2, 0x5 str r0, [r3] _08129F20: pop {r0} bx r0 thumb_func_end sub_8129EE4 thumb_func_start sub_8129F24 sub_8129F24: @ 8129F24 push {lr} bl sub_8129E20 ldr r0, _08129F54 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129F58 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _08129F5C ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129F60 .align 2, 0 _08129F54: .4byte 0x020192e4 _08129F58: .4byte 0x02039238 _08129F5C: adds r0, r2, 0x5 str r0, [r3] _08129F60: pop {r0} bx r0 thumb_func_end sub_8129F24 thumb_func_start sub_8129F64 sub_8129F64: @ 8129F64 push {r4-r6,lr} movs r6, 0 ldr r5, _08129FAC ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8128A7C lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80B214C lsls r0, 24 cmp r0, 0 beq _08129F9C ldr r2, _08129FB0 lsls r0, r4, 3 subs r0, r4 lsls r0, 2 ldr r1, _08129FB4 adds r0, r1 ldrh r0, [r0, 0x8] lsls r0, 3 adds r0, r2 ldrb r1, [r0, 0x2] negs r0, r1 orrs r0, r1 lsrs r6, r0, 31 _08129F9C: ldr r0, _08129FB8 strh r6, [r0, 0x18] ldr r0, [r5] adds r0, 0x2 str r0, [r5] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08129FAC: .4byte 0x02039238 _08129FB0: .4byte gContestMoves _08129FB4: .4byte 0x02019260 _08129FB8: .4byte 0x020192e4 thumb_func_end sub_8129F64 thumb_func_start sub_8129FBC sub_8129FBC: @ 8129FBC push {lr} bl sub_8129F64 ldr r0, _08129FEC movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _08129FF0 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _08129FF4 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08129FF8 .align 2, 0 _08129FEC: .4byte 0x020192e4 _08129FF0: .4byte 0x02039238 _08129FF4: adds r0, r2, 0x5 str r0, [r3] _08129FF8: pop {r0} bx r0 thumb_func_end sub_8129FBC thumb_func_start sub_8129FFC sub_8129FFC: @ 8129FFC push {lr} bl sub_8129F64 ldr r0, _0812A02C movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A030 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _0812A034 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A038 .align 2, 0 _0812A02C: .4byte 0x020192e4 _0812A030: .4byte 0x02039238 _0812A034: adds r0, r2, 0x5 str r0, [r3] _0812A038: pop {r0} bx r0 thumb_func_end sub_8129FFC thumb_func_start sub_812A03C sub_812A03C: @ 812A03C push {lr} bl sub_8129F64 ldr r0, _0812A06C movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A070 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _0812A074 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A078 .align 2, 0 _0812A06C: .4byte 0x020192e4 _0812A070: .4byte 0x02039238 _0812A074: adds r0, r2, 0x5 str r0, [r3] _0812A078: pop {r0} bx r0 thumb_func_end sub_812A03C thumb_func_start sub_812A07C sub_812A07C: @ 812A07C push {lr} bl sub_8129F64 ldr r0, _0812A0AC movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A0B0 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _0812A0B4 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A0B8 .align 2, 0 _0812A0AC: .4byte 0x020192e4 _0812A0B0: .4byte 0x02039238 _0812A0B4: adds r0, r2, 0x5 str r0, [r3] _0812A0B8: pop {r0} bx r0 thumb_func_end sub_812A07C thumb_func_start sub_812A0BC sub_812A0BC: @ 812A0BC push {lr} ldr r0, _0812A0DC ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8128A7C lsls r0, 24 lsrs r0, 24 bl sub_80AF59C lsls r0, 24 cmp r0, 0 beq _0812A0E4 ldr r1, _0812A0E0 movs r0, 0 b _0812A0E8 .align 2, 0 _0812A0DC: .4byte 0x02039238 _0812A0E0: .4byte 0x020192e4 _0812A0E4: ldr r1, _0812A0F8 movs r0, 0x1 _0812A0E8: strh r0, [r1, 0x18] ldr r1, _0812A0FC ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0812A0F8: .4byte 0x020192e4 _0812A0FC: .4byte 0x02039238 thumb_func_end sub_812A0BC thumb_func_start sub_812A100 sub_812A100: @ 812A100 push {lr} bl sub_812A0BC ldr r0, _0812A12C movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812A134 ldr r3, _0812A130 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A13C .align 2, 0 _0812A12C: .4byte 0x020192e4 _0812A130: .4byte 0x02039238 _0812A134: ldr r1, _0812A140 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A13C: pop {r0} bx r0 .align 2, 0 _0812A140: .4byte 0x02039238 thumb_func_end sub_812A100 thumb_func_start sub_812A144 sub_812A144: @ 812A144 push {lr} bl sub_812A0BC ldr r0, _0812A170 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812A178 ldr r3, _0812A174 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A180 .align 2, 0 _0812A170: .4byte 0x020192e4 _0812A174: .4byte 0x02039238 _0812A178: ldr r1, _0812A184 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A180: pop {r0} bx r0 .align 2, 0 _0812A184: .4byte 0x02039238 thumb_func_end sub_812A144 thumb_func_start sub_812A188 sub_812A188: @ 812A188 push {r4,lr} ldr r4, _0812A1BC ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8128A7C lsls r0, 24 lsrs r0, 24 ldr r2, _0812A1C0 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r0, r2, 0 subs r0, 0x84 adds r1, r0 ldrb r0, [r1, 0x15] lsls r0, 28 lsrs r0, 31 strh r0, [r2, 0x18] ldr r0, [r4] adds r0, 0x2 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812A1BC: .4byte 0x02039238 _0812A1C0: .4byte 0x020192e4 thumb_func_end sub_812A188 thumb_func_start sub_812A1C4 sub_812A1C4: @ 812A1C4 push {lr} bl sub_812A188 ldr r0, _0812A1F0 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812A1F8 ldr r3, _0812A1F4 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A200 .align 2, 0 _0812A1F0: .4byte 0x020192e4 _0812A1F4: .4byte 0x02039238 _0812A1F8: ldr r1, _0812A204 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A200: pop {r0} bx r0 .align 2, 0 _0812A204: .4byte 0x02039238 thumb_func_end sub_812A1C4 thumb_func_start sub_812A208 sub_812A208: @ 812A208 push {lr} bl sub_812A188 ldr r0, _0812A234 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812A23C ldr r3, _0812A238 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A244 .align 2, 0 _0812A234: .4byte 0x020192e4 _0812A238: .4byte 0x02039238 _0812A23C: ldr r1, _0812A248 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A244: pop {r0} bx r0 .align 2, 0 _0812A248: .4byte 0x02039238 thumb_func_end sub_812A208 thumb_func_start sub_812A24C sub_812A24C: @ 812A24C push {r4,r5,lr} ldr r5, _0812A28C ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8128A7C lsls r0, 24 lsrs r0, 24 ldr r3, _0812A290 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r4, r3, 0 subs r4, 0x84 adds r1, r4 adds r0, r3, 0 adds r0, 0x41 ldrb r2, [r0] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r4 ldrh r1, [r1, 0x4] ldrh r0, [r0, 0x4] subs r1, r0 strh r1, [r3, 0x18] ldr r0, [r5] adds r0, 0x2 str r0, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812A28C: .4byte 0x02039238 _0812A290: .4byte 0x020192e4 thumb_func_end sub_812A24C thumb_func_start sub_812A294 sub_812A294: @ 812A294 push {lr} bl sub_812A24C ldr r0, _0812A2C0 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bge _0812A2C8 ldr r3, _0812A2C4 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A2D0 .align 2, 0 _0812A2C0: .4byte 0x020192e4 _0812A2C4: .4byte 0x02039238 _0812A2C8: ldr r1, _0812A2D4 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A2D0: pop {r0} bx r0 .align 2, 0 _0812A2D4: .4byte 0x02039238 thumb_func_end sub_812A294 thumb_func_start sub_812A2D8 sub_812A2D8: @ 812A2D8 push {lr} bl sub_812A24C ldr r0, _0812A304 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 ble _0812A30C ldr r3, _0812A308 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A314 .align 2, 0 _0812A304: .4byte 0x020192e4 _0812A308: .4byte 0x02039238 _0812A30C: ldr r1, _0812A318 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A314: pop {r0} bx r0 .align 2, 0 _0812A318: .4byte 0x02039238 thumb_func_end sub_812A2D8 thumb_func_start sub_812A31C sub_812A31C: @ 812A31C push {lr} bl sub_812A24C ldr r0, _0812A348 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812A350 ldr r3, _0812A34C ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A358 .align 2, 0 _0812A348: .4byte 0x020192e4 _0812A34C: .4byte 0x02039238 _0812A350: ldr r1, _0812A35C ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A358: pop {r0} bx r0 .align 2, 0 _0812A35C: .4byte 0x02039238 thumb_func_end sub_812A31C thumb_func_start sub_812A360 sub_812A360: @ 812A360 push {lr} bl sub_812A24C ldr r0, _0812A38C movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812A394 ldr r3, _0812A390 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A39C .align 2, 0 _0812A38C: .4byte 0x020192e4 _0812A390: .4byte 0x02039238 _0812A394: ldr r1, _0812A3A0 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A39C: pop {r0} bx r0 .align 2, 0 _0812A3A0: .4byte 0x02039238 thumb_func_end sub_812A360 thumb_func_start sub_812A3A4 sub_812A3A4: @ 812A3A4 push {r4,lr} ldr r4, _0812A3D8 ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8128A7C lsls r0, 24 ldr r3, _0812A3DC ldr r2, _0812A3E0 lsrs r0, 23 adds r0, r2 adds r1, r3, 0 adds r1, 0x41 ldrb r1, [r1] lsls r1, 1 adds r1, r2 ldrh r0, [r0] ldrh r1, [r1] subs r0, r1 strh r0, [r3, 0x18] ldr r0, [r4] adds r0, 0x2 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812A3D8: .4byte 0x02039238 _0812A3DC: .4byte 0x020192e4 _0812A3E0: .4byte 0x02038670 thumb_func_end sub_812A3A4 thumb_func_start sub_812A3E4 sub_812A3E4: @ 812A3E4 push {lr} bl sub_812A3A4 ldr r0, _0812A410 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bge _0812A418 ldr r3, _0812A414 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A420 .align 2, 0 _0812A410: .4byte 0x020192e4 _0812A414: .4byte 0x02039238 _0812A418: ldr r1, _0812A424 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A420: pop {r0} bx r0 .align 2, 0 _0812A424: .4byte 0x02039238 thumb_func_end sub_812A3E4 thumb_func_start sub_812A428 sub_812A428: @ 812A428 push {lr} bl sub_812A3A4 ldr r0, _0812A454 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 ble _0812A45C ldr r3, _0812A458 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A464 .align 2, 0 _0812A454: .4byte 0x020192e4 _0812A458: .4byte 0x02039238 _0812A45C: ldr r1, _0812A468 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A464: pop {r0} bx r0 .align 2, 0 _0812A468: .4byte 0x02039238 thumb_func_end sub_812A428 thumb_func_start sub_812A46C sub_812A46C: @ 812A46C push {lr} bl sub_812A3A4 ldr r0, _0812A498 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812A4A0 ldr r3, _0812A49C ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A4A8 .align 2, 0 _0812A498: .4byte 0x020192e4 _0812A49C: .4byte 0x02039238 _0812A4A0: ldr r1, _0812A4AC ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A4A8: pop {r0} bx r0 .align 2, 0 _0812A4AC: .4byte 0x02039238 thumb_func_end sub_812A46C thumb_func_start sub_812A4B0 sub_812A4B0: @ 812A4B0 push {lr} bl sub_812A3A4 ldr r0, _0812A4DC movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812A4E4 ldr r3, _0812A4E0 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A4EC .align 2, 0 _0812A4DC: .4byte 0x020192e4 _0812A4E0: .4byte 0x02039238 _0812A4E4: ldr r1, _0812A4F0 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812A4EC: pop {r0} bx r0 .align 2, 0 _0812A4F0: .4byte 0x02039238 thumb_func_end sub_812A4B0 thumb_func_start sub_812A4F4 sub_812A4F4: @ 812A4F4 push {r4,lr} ldr r4, _0812A52C ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8128A7C lsls r0, 24 ldr r3, [r4] ldrb r1, [r3, 0x2] ldr r2, _0812A530 lsrs r0, 23 lsls r1, 3 adds r0, r1 adds r1, r2, 0 adds r1, 0x1C adds r0, r1 ldrh r0, [r0] adds r2, 0xE0 ldr r1, _0812A534 lsls r0, 3 adds r0, r1 ldrb r0, [r0] strh r0, [r2, 0x18] adds r3, 0x3 str r3, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812A52C: .4byte 0x02039238 _0812A530: .4byte 0x02019204 _0812A534: .4byte gContestMoves thumb_func_end sub_812A4F4 thumb_func_start sub_812A538 sub_812A538: @ 812A538 push {lr} bl sub_812A4F4 ldr r0, _0812A568 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A56C ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _0812A570 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A574 .align 2, 0 _0812A568: .4byte 0x020192e4 _0812A56C: .4byte 0x02039238 _0812A570: adds r0, r2, 0x5 str r0, [r3] _0812A574: pop {r0} bx r0 thumb_func_end sub_812A538 thumb_func_start sub_812A578 sub_812A578: @ 812A578 push {lr} bl sub_812A4F4 ldr r0, _0812A5A8 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A5AC ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _0812A5B0 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A5B4 .align 2, 0 _0812A5A8: .4byte 0x020192e4 _0812A5AC: .4byte 0x02039238 _0812A5B0: adds r0, r2, 0x5 str r0, [r3] _0812A5B4: pop {r0} bx r0 thumb_func_end sub_812A578 thumb_func_start sub_812A5B8 sub_812A5B8: @ 812A5B8 push {lr} bl sub_812A4F4 ldr r0, _0812A5E8 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A5EC ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _0812A5F0 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A5F4 .align 2, 0 _0812A5E8: .4byte 0x020192e4 _0812A5EC: .4byte 0x02039238 _0812A5F0: adds r0, r2, 0x5 str r0, [r3] _0812A5F4: pop {r0} bx r0 thumb_func_end sub_812A5B8 thumb_func_start sub_812A5F8 sub_812A5F8: @ 812A5F8 push {lr} bl sub_812A4F4 ldr r0, _0812A628 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A62C ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _0812A630 ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A634 .align 2, 0 _0812A628: .4byte 0x020192e4 _0812A62C: .4byte 0x02039238 _0812A630: adds r0, r2, 0x5 str r0, [r3] _0812A634: pop {r0} bx r0 thumb_func_end sub_812A5F8 thumb_func_start sub_812A638 sub_812A638: @ 812A638 push {r4,lr} ldr r4, _0812A66C ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8128A7C lsls r0, 24 lsrs r0, 24 ldr r3, [r4] ldrb r1, [r3, 0x2] ldr r2, _0812A670 lsls r1, 2 adds r0, r1 adds r1, r2, 0 adds r1, 0x44 adds r0, r1 adds r2, 0xE0 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 strh r0, [r2, 0x18] adds r3, 0x3 str r3, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812A66C: .4byte 0x02039238 _0812A670: .4byte 0x02019204 thumb_func_end sub_812A638 thumb_func_start sub_812A674 sub_812A674: @ 812A674 push {lr} bl sub_812A638 ldr r0, _0812A6A4 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A6A8 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bge _0812A6AC ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A6B0 .align 2, 0 _0812A6A4: .4byte 0x020192e4 _0812A6A8: .4byte 0x02039238 _0812A6AC: adds r0, r2, 0x5 str r0, [r3] _0812A6B0: pop {r0} bx r0 thumb_func_end sub_812A674 thumb_func_start sub_812A6B4 sub_812A6B4: @ 812A6B4 push {lr} bl sub_812A638 ldr r0, _0812A6E4 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A6E8 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 ble _0812A6EC ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A6F0 .align 2, 0 _0812A6E4: .4byte 0x020192e4 _0812A6E8: .4byte 0x02039238 _0812A6EC: adds r0, r2, 0x5 str r0, [r3] _0812A6F0: pop {r0} bx r0 thumb_func_end sub_812A6B4 thumb_func_start sub_812A6F4 sub_812A6F4: @ 812A6F4 push {lr} bl sub_812A638 ldr r0, _0812A724 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A728 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _0812A72C ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A730 .align 2, 0 _0812A724: .4byte 0x020192e4 _0812A728: .4byte 0x02039238 _0812A72C: adds r0, r2, 0x5 str r0, [r3] _0812A730: pop {r0} bx r0 thumb_func_end sub_812A6F4 thumb_func_start sub_812A734 sub_812A734: @ 812A734 push {lr} bl sub_812A638 ldr r0, _0812A764 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A768 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _0812A76C ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A770 .align 2, 0 _0812A764: .4byte 0x020192e4 _0812A768: .4byte 0x02039238 _0812A76C: adds r0, r2, 0x5 str r0, [r3] _0812A770: pop {r0} bx r0 thumb_func_end sub_812A734 thumb_func_start sub_812A774 sub_812A774: @ 812A774 push {r4,r5,lr} ldr r5, _0812A7B4 ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8128A7C lsls r0, 24 ldr r3, [r5] ldrb r1, [r3, 0x2] ldr r2, _0812A7B8 lsrs r0, 23 lsls r1, 3 adds r0, r1 adds r1, r2, 0 adds r1, 0x1C adds r0, r1 ldrh r0, [r0] adds r2, 0xE0 ldr r4, _0812A7BC ldr r1, _0812A7C0 lsls r0, 3 adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r4 ldrb r0, [r0] strh r0, [r2, 0x18] adds r3, 0x3 str r3, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812A7B4: .4byte 0x02039238 _0812A7B8: .4byte 0x02019204 _0812A7BC: .4byte gContestEffects _0812A7C0: .4byte gContestMoves thumb_func_end sub_812A774 thumb_func_start sub_812A7C4 sub_812A7C4: @ 812A7C4 push {lr} bl sub_812A774 ldr r0, _0812A7F4 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A7F8 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 bne _0812A7FC ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A800 .align 2, 0 _0812A7F4: .4byte 0x020192e4 _0812A7F8: .4byte 0x02039238 _0812A7FC: adds r0, r2, 0x5 str r0, [r3] _0812A800: pop {r0} bx r0 thumb_func_end sub_812A7C4 thumb_func_start sub_812A804 sub_812A804: @ 812A804 push {lr} bl sub_812A774 ldr r0, _0812A834 movs r1, 0x18 ldrsh r0, [r0, r1] ldr r3, _0812A838 ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 beq _0812A83C ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812A840 .align 2, 0 _0812A834: .4byte 0x020192e4 _0812A838: .4byte 0x02039238 _0812A83C: adds r0, r2, 0x5 str r0, [r3] _0812A840: pop {r0} bx r0 thumb_func_end sub_812A804 thumb_func_start sub_812A844 sub_812A844: @ 812A844 push {r4,lr} ldr r3, _0812A864 ldr r4, _0812A868 ldr r2, [r4] ldrb r0, [r2, 0x1] lsls r0, 1 adds r1, r3, 0 adds r1, 0x1A adds r0, r1 ldrh r1, [r3, 0x18] strh r1, [r0] adds r2, 0x2 str r2, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812A864: .4byte 0x020192e4 _0812A868: .4byte 0x02039238 thumb_func_end sub_812A844 thumb_func_start sub_812A86C sub_812A86C: @ 812A86C push {r4,lr} ldr r0, _0812A890 ldr r4, _0812A894 ldr r3, [r4] ldrb r2, [r3, 0x1] lsls r2, 1 adds r0, 0x1A adds r2, r0 ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 strh r1, [r2] adds r3, 0x4 str r3, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812A890: .4byte 0x020192e4 _0812A894: .4byte 0x02039238 thumb_func_end sub_812A86C thumb_func_start sub_812A898 sub_812A898: @ 812A898 push {r4,lr} ldr r0, _0812A8C4 ldr r4, _0812A8C8 ldr r3, [r4] ldrb r2, [r3, 0x1] lsls r2, 1 adds r0, 0x1A adds r2, r0 movs r1, 0x2 ldrsb r1, [r3, r1] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrh r0, [r2] adds r1, r0 strh r1, [r2] adds r3, 0x4 str r3, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812A8C4: .4byte 0x020192e4 _0812A8C8: .4byte 0x02039238 thumb_func_end sub_812A898 thumb_func_start sub_812A8CC sub_812A8CC: @ 812A8CC push {r4,lr} ldr r2, _0812A8F4 ldr r4, _0812A8F8 ldr r3, [r4] ldrb r1, [r3, 0x1] lsls r1, 1 adds r2, 0x1A adds r1, r2 ldrb r0, [r3, 0x2] lsls r0, 1 adds r0, r2 ldrh r0, [r0] ldrh r2, [r1] adds r0, r2 strh r0, [r1] adds r3, 0x3 str r3, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812A8F4: .4byte 0x020192e4 _0812A8F8: .4byte 0x02039238 thumb_func_end sub_812A8CC thumb_func_start sub_812A8FC sub_812A8FC: @ 812A8FC push {r4,lr} ldr r2, _0812A924 ldr r4, _0812A928 ldr r3, [r4] ldrb r1, [r3, 0x1] lsls r1, 1 adds r2, 0x1A adds r1, r2 ldrb r0, [r3, 0x2] lsls r0, 1 adds r0, r2 ldrh r0, [r0] ldrh r2, [r1] adds r0, r2 strh r0, [r1] adds r3, 0x3 str r3, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812A924: .4byte 0x020192e4 _0812A928: .4byte 0x02039238 thumb_func_end sub_812A8FC thumb_func_start sub_812A92C sub_812A92C: @ 812A92C push {r4,lr} ldr r1, _0812A964 ldr r4, _0812A968 ldr r3, [r4] ldrb r0, [r3, 0x1] lsls r0, 1 adds r1, 0x1A adds r0, r1 movs r1, 0 ldrsh r2, [r0, r1] ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 cmp r2, r1 bge _0812A96C ldrb r1, [r3, 0x4] ldrb r0, [r3, 0x5] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x6] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x7] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812A972 .align 2, 0 _0812A964: .4byte 0x020192e4 _0812A968: .4byte 0x02039238 _0812A96C: adds r0, r3, 0 adds r0, 0x8 str r0, [r4] _0812A972: pop {r4} pop {r0} bx r0 thumb_func_end sub_812A92C thumb_func_start sub_812A978 sub_812A978: @ 812A978 push {r4,lr} ldr r1, _0812A9B0 ldr r4, _0812A9B4 ldr r3, [r4] ldrb r0, [r3, 0x1] lsls r0, 1 adds r1, 0x1A adds r0, r1 movs r1, 0 ldrsh r2, [r0, r1] ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 cmp r2, r1 ble _0812A9B8 ldrb r1, [r3, 0x4] ldrb r0, [r3, 0x5] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x6] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x7] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812A9BE .align 2, 0 _0812A9B0: .4byte 0x020192e4 _0812A9B4: .4byte 0x02039238 _0812A9B8: adds r0, r3, 0 adds r0, 0x8 str r0, [r4] _0812A9BE: pop {r4} pop {r0} bx r0 thumb_func_end sub_812A978 thumb_func_start sub_812A9C4 sub_812A9C4: @ 812A9C4 push {r4,lr} ldr r1, _0812A9FC ldr r4, _0812AA00 ldr r3, [r4] ldrb r0, [r3, 0x1] lsls r0, 1 adds r1, 0x1A adds r0, r1 movs r1, 0 ldrsh r2, [r0, r1] ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 cmp r2, r1 bne _0812AA04 ldrb r1, [r3, 0x4] ldrb r0, [r3, 0x5] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x6] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x7] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812AA0A .align 2, 0 _0812A9FC: .4byte 0x020192e4 _0812AA00: .4byte 0x02039238 _0812AA04: adds r0, r3, 0 adds r0, 0x8 str r0, [r4] _0812AA0A: pop {r4} pop {r0} bx r0 thumb_func_end sub_812A9C4 thumb_func_start sub_812AA10 sub_812AA10: @ 812AA10 push {r4,lr} ldr r1, _0812AA48 ldr r4, _0812AA4C ldr r3, [r4] ldrb r0, [r3, 0x1] lsls r0, 1 adds r1, 0x1A adds r0, r1 movs r1, 0 ldrsh r2, [r0, r1] ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 cmp r2, r1 beq _0812AA50 ldrb r1, [r3, 0x4] ldrb r0, [r3, 0x5] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x6] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x7] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812AA56 .align 2, 0 _0812AA48: .4byte 0x020192e4 _0812AA4C: .4byte 0x02039238 _0812AA50: adds r0, r3, 0 adds r0, 0x8 str r0, [r4] _0812AA56: pop {r4} pop {r0} bx r0 thumb_func_end sub_812AA10 thumb_func_start sub_812AA5C sub_812AA5C: @ 812AA5C push {r4,lr} ldr r2, _0812AA98 ldr r4, _0812AA9C ldr r3, [r4] ldrb r1, [r3, 0x1] lsls r1, 1 adds r2, 0x1A adds r1, r2 ldrb r0, [r3, 0x2] lsls r0, 1 adds r0, r2 movs r2, 0 ldrsh r1, [r1, r2] movs r2, 0 ldrsh r0, [r0, r2] cmp r1, r0 bge _0812AAA0 ldrb r1, [r3, 0x3] ldrb r0, [r3, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812AAA4 .align 2, 0 _0812AA98: .4byte 0x020192e4 _0812AA9C: .4byte 0x02039238 _0812AAA0: adds r0, r3, 0x7 str r0, [r4] _0812AAA4: pop {r4} pop {r0} bx r0 thumb_func_end sub_812AA5C thumb_func_start sub_812AAAC sub_812AAAC: @ 812AAAC push {r4,lr} ldr r2, _0812AAE8 ldr r4, _0812AAEC ldr r3, [r4] ldrb r1, [r3, 0x1] lsls r1, 1 adds r2, 0x1A adds r1, r2 ldrb r0, [r3, 0x2] lsls r0, 1 adds r0, r2 movs r2, 0 ldrsh r1, [r1, r2] movs r2, 0 ldrsh r0, [r0, r2] cmp r1, r0 ble _0812AAF0 ldrb r1, [r3, 0x3] ldrb r0, [r3, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812AAF4 .align 2, 0 _0812AAE8: .4byte 0x020192e4 _0812AAEC: .4byte 0x02039238 _0812AAF0: adds r0, r3, 0x7 str r0, [r4] _0812AAF4: pop {r4} pop {r0} bx r0 thumb_func_end sub_812AAAC thumb_func_start sub_812AAFC sub_812AAFC: @ 812AAFC push {r4,lr} ldr r2, _0812AB38 ldr r4, _0812AB3C ldr r3, [r4] ldrb r1, [r3, 0x1] lsls r1, 1 adds r2, 0x1A adds r1, r2 ldrb r0, [r3, 0x2] lsls r0, 1 adds r0, r2 movs r2, 0 ldrsh r1, [r1, r2] movs r2, 0 ldrsh r0, [r0, r2] cmp r1, r0 bne _0812AB40 ldrb r1, [r3, 0x3] ldrb r0, [r3, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812AB44 .align 2, 0 _0812AB38: .4byte 0x020192e4 _0812AB3C: .4byte 0x02039238 _0812AB40: adds r0, r3, 0x7 str r0, [r4] _0812AB44: pop {r4} pop {r0} bx r0 thumb_func_end sub_812AAFC thumb_func_start sub_812AB4C sub_812AB4C: @ 812AB4C push {r4,lr} ldr r2, _0812AB88 ldr r4, _0812AB8C ldr r3, [r4] ldrb r1, [r3, 0x1] lsls r1, 1 adds r2, 0x1A adds r1, r2 ldrb r0, [r3, 0x2] lsls r0, 1 adds r0, r2 movs r2, 0 ldrsh r1, [r1, r2] movs r2, 0 ldrsh r0, [r0, r2] cmp r1, r0 beq _0812AB90 ldrb r1, [r3, 0x3] ldrb r0, [r3, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812AB94 .align 2, 0 _0812AB88: .4byte 0x020192e4 _0812AB8C: .4byte 0x02039238 _0812AB90: adds r0, r3, 0x7 str r0, [r4] _0812AB94: pop {r4} pop {r0} bx r0 thumb_func_end sub_812AB4C thumb_func_start sub_812AB9C sub_812AB9C: @ 812AB9C push {r4,lr} bl Random movs r2, 0xFF ands r2, r0 ldr r1, _0812ABD4 ldr r4, _0812ABD8 ldr r3, [r4] ldrb r0, [r3, 0x1] lsls r0, 1 adds r1, 0x1A adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r2, r0 bge _0812ABDC ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812ABE0 .align 2, 0 _0812ABD4: .4byte 0x020192e4 _0812ABD8: .4byte 0x02039238 _0812ABDC: adds r0, r3, 0x6 str r0, [r4] _0812ABE0: pop {r4} pop {r0} bx r0 thumb_func_end sub_812AB9C thumb_func_start sub_812ABE8 sub_812ABE8: @ 812ABE8 push {r4,lr} bl Random movs r2, 0xFF ands r2, r0 ldr r1, _0812AC20 ldr r4, _0812AC24 ldr r3, [r4] ldrb r0, [r3, 0x1] lsls r0, 1 adds r1, 0x1A adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r2, r0 ble _0812AC28 ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0812AC2C .align 2, 0 _0812AC20: .4byte 0x020192e4 _0812AC24: .4byte 0x02039238 _0812AC28: adds r0, r3, 0x6 str r0, [r4] _0812AC2C: pop {r4} pop {r0} bx r0 thumb_func_end sub_812ABE8 thumb_func_start sub_812AC34 sub_812AC34: @ 812AC34 ldr r3, _0812AC50 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] bx lr .align 2, 0 _0812AC50: .4byte 0x02039238 thumb_func_end sub_812AC34 thumb_func_start sub_812AC54 sub_812AC54: @ 812AC54 push {r4,lr} ldr r4, _0812AC80 ldr r0, [r4] adds r0, 0x5 bl sub_812ACA4 ldr r2, [r4] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812AC80: .4byte 0x02039238 thumb_func_end sub_812AC54 thumb_func_start sub_812AC84 sub_812AC84: @ 812AC84 push {lr} bl sub_812ACC8 lsls r0, 24 cmp r0, 0 bne _0812AC9A ldr r2, _0812ACA0 ldrb r1, [r2, 0x9] movs r0, 0x1 orrs r0, r1 strb r0, [r2, 0x9] _0812AC9A: pop {r0} bx r0 .align 2, 0 _0812ACA0: .4byte 0x020192e4 thumb_func_end sub_812AC84 thumb_func_start sub_812ACA4 sub_812ACA4: @ 812ACA4 push {r4,lr} ldr r3, _0812ACC4 adds r4, r3, 0 adds r4, 0x40 ldrb r1, [r4] adds r2, r1, 0x1 strb r2, [r4] lsls r1, 24 lsrs r1, 22 adds r3, 0x20 adds r1, r3 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0812ACC4: .4byte 0x020192e4 thumb_func_end sub_812ACA4 thumb_func_start sub_812ACC8 sub_812ACC8: @ 812ACC8 push {lr} ldr r1, _0812ACDC adds r3, r1, 0 adds r3, 0x40 ldrb r0, [r3] cmp r0, 0 bne _0812ACE0 movs r0, 0 b _0812ACF4 .align 2, 0 _0812ACDC: .4byte 0x020192e4 _0812ACE0: subs r0, 0x1 strb r0, [r3] ldr r2, _0812ACF8 ldrb r0, [r3] lsls r0, 2 adds r1, 0x20 adds r0, r1 ldr r0, [r0] str r0, [r2] movs r0, 0x1 _0812ACF4: pop {r1} bx r1 .align 2, 0 _0812ACF8: .4byte 0x02039238 thumb_func_end sub_812ACC8 thumb_func_start sub_812ACFC sub_812ACFC: @ 812ACFC push {r4-r7,lr} movs r5, 0 movs r4, 0 ldr r7, _0812AD28 ldr r6, _0812AD2C _0812AD06: lsls r0, r4, 1 ldrb r1, [r7] lsls r1, 6 adds r0, r1 adds r1, r0, r6 ldrh r0, [r1] cmp r0, 0 beq _0812AD30 bl sub_80B19FC lsls r0, 24 asrs r0, 24 cmp r0, 0x1 bne _0812AD30 movs r5, 0x1 b _0812AD36 .align 2, 0 _0812AD28: .4byte 0x02019325 _0812AD2C: .4byte 0x0203858e _0812AD30: adds r4, 0x1 cmp r4, 0x3 ble _0812AD06 _0812AD36: ldr r0, _0812AD48 strh r5, [r0, 0x18] ldr r1, _0812AD4C ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812AD48: .4byte 0x020192e4 _0812AD4C: .4byte 0x02039238 thumb_func_end sub_812ACFC thumb_func_start sub_812AD50 sub_812AD50: @ 812AD50 push {lr} bl sub_812ACFC ldr r0, _0812AD7C movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812AD84 ldr r3, _0812AD80 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812AD8C .align 2, 0 _0812AD7C: .4byte 0x020192e4 _0812AD80: .4byte 0x02039238 _0812AD84: ldr r1, _0812AD90 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812AD8C: pop {r0} bx r0 .align 2, 0 _0812AD90: .4byte 0x02039238 thumb_func_end sub_812AD50 thumb_func_start sub_812AD94 sub_812AD94: @ 812AD94 push {lr} bl sub_812ACFC ldr r0, _0812ADC0 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812ADC8 ldr r3, _0812ADC4 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812ADD0 .align 2, 0 _0812ADC0: .4byte 0x020192e4 _0812ADC4: .4byte 0x02039238 _0812ADC8: ldr r1, _0812ADD4 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812ADD0: pop {r0} bx r0 .align 2, 0 _0812ADD4: .4byte 0x02039238 thumb_func_end sub_812AD94 thumb_func_start sub_812ADD8 sub_812ADD8: @ 812ADD8 push {r4-r7,lr} movs r6, 0 ldr r2, _0812AE08 ldr r0, [r2] ldrb r4, [r0, 0x1] ldrb r0, [r0, 0x2] lsls r0, 8 orrs r4, r0 movs r3, 0 ldr r0, _0812AE0C mov r12, r0 ldr r5, _0812AE10 adds r0, r5, 0 adds r0, 0x41 ldrb r0, [r0] lsls r0, 6 mov r1, r12 adds r1, 0x1E adds r0, r1 ldrh r0, [r0] adds r7, r2, 0 mov r2, r12 mov r12, r5 b _0812AE2E .align 2, 0 _0812AE08: .4byte 0x02039238 _0812AE0C: .4byte 0x02038570 _0812AE10: .4byte 0x020192e4 _0812AE14: adds r3, 0x1 cmp r3, 0x3 bgt _0812AE34 lsls r1, r3, 1 mov r0, r12 adds r0, 0x41 ldrb r0, [r0] lsls r0, 6 adds r1, r0 adds r0, r2, 0 adds r0, 0x1E adds r1, r0 ldrh r0, [r1] _0812AE2E: cmp r0, r4 bne _0812AE14 movs r6, 0x1 _0812AE34: mov r0, r12 strh r6, [r0, 0x18] ldr r0, [r7] adds r0, 0x3 str r0, [r7] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_812ADD8 thumb_func_start sub_812AE44 sub_812AE44: @ 812AE44 push {lr} bl sub_812ADD8 ldr r0, _0812AE70 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812AE78 ldr r3, _0812AE74 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812AE80 .align 2, 0 _0812AE70: .4byte 0x020192e4 _0812AE74: .4byte 0x02039238 _0812AE78: ldr r1, _0812AE84 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812AE80: pop {r0} bx r0 .align 2, 0 _0812AE84: .4byte 0x02039238 thumb_func_end sub_812AE44 thumb_func_start sub_812AE88 sub_812AE88: @ 812AE88 push {lr} bl sub_812ADD8 ldr r0, _0812AEB4 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812AEBC ldr r3, _0812AEB8 ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0812AEC4 .align 2, 0 _0812AEB4: .4byte 0x020192e4 _0812AEB8: .4byte 0x02039238 _0812AEBC: ldr r1, _0812AEC8 ldr r0, [r1] adds r0, 0x4 str r0, [r1] _0812AEC4: pop {r0} bx r0 .align 2, 0 _0812AEC8: .4byte 0x02039238 thumb_func_end sub_812AE88 thumb_func_start unref_sub_812AECC unref_sub_812AECC: @ 812AECC push {lr} bl sub_812613C lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x1 beq _0812AEEA cmp r0, 0x1 ble _0812AF08 cmp r1, 0x2 beq _0812AEF4 cmp r1, 0x3 beq _0812AEFA b _0812AF08 _0812AEEA: movs r0, 0x16 bl audio_play movs r0, 0x1 b _0812AF0A _0812AEF4: bl sub_812AF10 b _0812AF08 _0812AEFA: movs r0, 0x16 bl audio_play bl sub_812AF10 movs r0, 0x1 b _0812AF0A _0812AF08: movs r0, 0 _0812AF0A: pop {r1} bx r1 thumb_func_end unref_sub_812AECC thumb_func_start sub_812AF10 sub_812AF10: @ 812AF10 push {lr} movs r0, 0x2 movs r1, 0xE movs r2, 0x1B movs r3, 0x13 bl DrawDefaultWindow ldr r0, _0812AF2C movs r1, 0x3 movs r2, 0xF bl Print pop {r0} bx r0 .align 2, 0 _0812AF2C: .4byte 0x020234cc thumb_func_end sub_812AF10 thumb_func_start sub_812AF30 sub_812AF30: @ 812AF30 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0812AF8C lsls r6, r0, 2 adds r6, r0 lsls r6, 3 adds r6, r1 ldr r1, _0812AF90 ldrh r0, [r1] strh r0, [r6, 0x8] ldrh r0, [r1, 0x2] strh r0, [r6, 0xA] movs r0, 0x40 negs r0, r0 bl sub_8076F98 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x3F bl sub_8076F98 adds r5, r0, 0 lsls r4, 24 asrs r4, 24 lsls r5, 24 asrs r5, 24 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x2 bl sub_807712C strh r4, [r6, 0xC] strh r5, [r6, 0xE] lsls r0, 24 asrs r0, 24 strh r0, [r6, 0x10] movs r0, 0xA strh r0, [r6, 0x1C] ldr r0, _0812AF94 str r0, [r6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812AF8C: .4byte 0x03004b20 _0812AF90: .4byte 0x03004b00 _0812AF94: .4byte sub_812AF98 thumb_func_end sub_812AF30 thumb_func_start sub_812AF98 sub_812AF98: @ 812AF98 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0812AFC8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r5, [r4, 0xC] ldrb r6, [r4, 0x10] ldrh r0, [r4, 0x1E] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x6F bne _0812AFD0 movs r0, 0x5 strh r0, [r4, 0x1C] strh r1, [r4, 0x1E] ldr r0, _0812AFCC str r0, [r4] b _0812AFFE .align 2, 0 _0812AFC8: .4byte 0x03004b20 _0812AFCC: .4byte sub_812B004 _0812AFD0: ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0xB bne _0812AFEA strh r1, [r4, 0x1C] ldrh r0, [r4, 0x8] lsls r1, r5, 24 asrs r1, 24 bl audio_play_and_stuff _0812AFEA: lsls r1, r6, 24 asrs r1, 24 lsls r0, r5, 16 asrs r0, 16 adds r0, r1 lsls r0, 16 asrs r0, 16 bl sub_8077104 strh r0, [r4, 0xC] _0812AFFE: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_812AF98 thumb_func_start sub_812B004 sub_812B004: @ 812B004 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0812B054 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bne _0812B04C movs r0, 0 strh r0, [r4, 0x1C] movs r0, 0x3F bl sub_8076F98 adds r1, r0, 0 ldrh r0, [r4, 0xA] lsls r1, 24 asrs r1, 24 bl audio_play_and_stuff ldrh r0, [r4, 0x1E] adds r0, 0x1 strh r0, [r4, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _0812B04C adds r0, r5, 0 bl move_anim_related_task_del _0812B04C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812B054: .4byte 0x03004b20 thumb_func_end sub_812B004 thumb_func_start sub_812B058 sub_812B058: @ 812B058 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r8, r0 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _0812B0FC ldrh r1, [r0] str r1, [sp] ldrb r5, [r0, 0x4] ldrb r6, [r0, 0x6] ldrb r3, [r0, 0x8] mov r10, r3 ldrb r7, [r0, 0xA] ldrb r1, [r0, 0xC] mov r9, r1 ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 bl sub_8076F98 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 asrs r5, 24 adds r0, r5, 0 bl sub_8076F98 adds r5, r0, 0 lsls r4, 24 asrs r4, 24 lsls r5, 24 asrs r5, 24 lsls r6, 24 asrs r6, 24 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_807712C ldr r2, _0812B100 mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r2 movs r2, 0 mov r6, sp ldrh r6, [r6] strh r6, [r1, 0x8] strh r4, [r1, 0xA] strh r5, [r1, 0xC] lsls r0, 24 asrs r0, 24 strh r0, [r1, 0xE] mov r0, r10 strh r0, [r1, 0x10] strh r7, [r1, 0x12] mov r3, r9 strh r3, [r1, 0x14] strh r2, [r1, 0x1C] strh r4, [r1, 0x1E] strh r3, [r1, 0x20] ldr r2, _0812B104 str r2, [r1] mov r0, r8 bl _call_via_r2 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812B0FC: .4byte 0x03004b00 _0812B100: .4byte 0x03004b20 _0812B104: .4byte sub_812B108 thumb_func_end sub_812B058 thumb_func_start sub_812B108 sub_812B108: @ 812B108 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0812B14C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x20] adds r1, r0, 0x1 strh r1, [r4, 0x20] lsls r0, 16 asrs r0, 16 movs r2, 0x14 ldrsh r1, [r4, r2] cmp r0, r1 bne _0812B150 movs r0, 0 strh r0, [r4, 0x20] ldrh r0, [r4, 0x8] movs r1, 0x1E ldrsb r1, [r4, r1] bl audio_play_and_stuff ldrh r0, [r4, 0x10] subs r0, 0x1 strh r0, [r4, 0x10] lsls r0, 16 cmp r0, 0 bne _0812B150 adds r0, r5, 0 bl move_anim_related_task_del b _0812B182 .align 2, 0 _0812B14C: .4byte 0x03004b20 _0812B150: ldr r1, _0812B188 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x1C] adds r1, r0, 0x1 strh r1, [r4, 0x1C] lsls r0, 16 asrs r0, 16 movs r2, 0x12 ldrsh r1, [r4, r2] cmp r0, r1 bne _0812B182 movs r0, 0 strh r0, [r4, 0x1C] ldrh r0, [r4, 0xE] ldrh r1, [r4, 0x1E] adds r0, r1 strh r0, [r4, 0x1E] movs r2, 0x1E ldrsh r0, [r4, r2] bl sub_8077104 strh r0, [r4, 0x1E] _0812B182: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812B188: .4byte 0x03004b20 thumb_func_end sub_812B108 thumb_func_start sub_812B18C sub_812B18C: @ 812B18C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 movs r0, 0x40 negs r0, r0 bl sub_8076F98 lsls r0, 24 lsrs r6, r0, 24 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _0812B1CC ldr r0, _0812B1BC movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812B1C4 ldr r0, _0812B1C0 ldrh r4, [r0] b _0812B272 .align 2, 0 _0812B1BC: .4byte 0x03004b00 _0812B1C0: .4byte 0x02019348 _0812B1C4: adds r0, r5, 0 bl move_anim_task_del b _0812B272 _0812B1CC: ldr r0, _0812B1E0 movs r2, 0 ldrsh r1, [r0, r2] adds r2, r0, 0 cmp r1, 0 bne _0812B1E8 ldr r0, _0812B1E4 ldrb r4, [r0] b _0812B20E .align 2, 0 _0812B1E0: .4byte 0x03004b00 _0812B1E4: .4byte 0x0202f7c8 _0812B1E8: cmp r1, 0x1 bne _0812B1F8 ldr r0, _0812B1F4 ldrb r4, [r0] b _0812B20E .align 2, 0 _0812B1F4: .4byte 0x0202f7c9 _0812B1F8: cmp r1, 0x2 bne _0812B204 ldr r0, _0812B200 b _0812B206 .align 2, 0 _0812B200: .4byte 0x0202f7c8 _0812B204: ldr r0, _0812B230 _0812B206: ldrb r1, [r0] movs r0, 0x2 adds r4, r0, 0 eors r4, r1 _0812B20E: movs r1, 0 ldrsh r0, [r2, r1] cmp r0, 0x1 beq _0812B21A cmp r0, 0x3 bne _0812B234 _0812B21A: adds r0, r4, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 bne _0812B234 adds r0, r5, 0 bl move_anim_task_del b _0812B2B0 .align 2, 0 _0812B230: .4byte 0x0202f7c9 _0812B234: adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0812B258 ldr r1, _0812B250 lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0812B254 b _0812B266 .align 2, 0 _0812B250: .4byte 0x02024a6a _0812B254: .4byte 0x030045c0 _0812B258: ldr r1, _0812B290 lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0812B294 _0812B266: adds r0, r1 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r4, r0, 16 _0812B272: cmp r4, 0 beq _0812B2AA ldr r0, _0812B298 ldrh r2, [r0, 0x2] movs r1, 0x2 ldrsh r0, [r0, r1] cmp r0, 0xFF bne _0812B29C lsls r1, r6, 24 asrs r1, 24 adds r0, r4, 0 bl cry_related b _0812B2AA .align 2, 0 _0812B290: .4byte 0x02024a6a _0812B294: .4byte 0x03004360 _0812B298: .4byte 0x03004b00 _0812B29C: lsls r1, r6, 24 asrs r1, 24 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 bl sub_80750B4 _0812B2AA: adds r0, r5, 0 bl move_anim_task_del _0812B2B0: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_812B18C thumb_func_start sub_812B2B8 sub_812B2B8: @ 812B2B8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x40 negs r0, r0 bl sub_8076F98 lsls r0, 24 lsrs r4, r0, 24 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _0812B2DC ldr r0, _0812B2D8 b _0812B2E6 .align 2, 0 _0812B2D8: .4byte 0x02019348 _0812B2DC: ldr r1, _0812B304 ldr r0, _0812B308 ldrb r0, [r0] lsls r0, 1 adds r0, r1 _0812B2E6: ldrh r0, [r0] cmp r0, 0 beq _0812B2F6 lsls r1, r4, 24 asrs r1, 24 movs r2, 0x4 bl sub_80750B4 _0812B2F6: adds r0, r5, 0 bl move_anim_task_del pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812B304: .4byte 0x0202f7ca _0812B308: .4byte 0x0202f7c8 thumb_func_end sub_812B2B8 thumb_func_start sub_812B30C sub_812B30C: @ 812B30C push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0812B33C ldrh r5, [r0] ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 adds r0, r5, 0 bl sub_80754F8 adds r0, r4, 0 bl move_anim_task_del pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812B33C: .4byte 0x03004b00 thumb_func_end sub_812B30C thumb_func_start sub_812B340 sub_812B340: @ 812B340 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0812B370 ldrh r5, [r0] ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 adds r0, r5, 0 bl sub_807552C adds r0, r4, 0 bl move_anim_task_del pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812B370: .4byte 0x03004b00 thumb_func_end sub_812B340 thumb_func_start sub_812B374 sub_812B374: @ 812B374 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} mov r8, r0 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _0812B3F8 ldrb r5, [r0, 0x2] ldrb r6, [r0, 0x4] ldrh r1, [r0, 0x6] mov r9, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 bl sub_8076F98 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 asrs r5, 24 adds r0, r5, 0 bl sub_8076F98 adds r5, r0, 0 lsls r4, 24 asrs r4, 24 lsls r5, 24 asrs r5, 24 lsls r6, 24 asrs r6, 24 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_807712C ldr r2, _0812B3FC mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r2 movs r2, 0 strh r4, [r1, 0xA] strh r5, [r1, 0xC] lsls r0, 24 asrs r0, 24 strh r0, [r1, 0xE] mov r0, r9 strh r0, [r1, 0x12] strh r2, [r1, 0x1C] strh r4, [r1, 0x1E] ldr r2, _0812B400 str r2, [r1] mov r0, r8 bl _call_via_r2 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812B3F8: .4byte 0x03004b00 _0812B3FC: .4byte 0x03004b20 _0812B400: .4byte sub_812B404 thumb_func_end sub_812B374 thumb_func_start sub_812B404 sub_812B404: @ 812B404 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, _0812B45C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r2, [r4, 0xE] ldrh r0, [r4, 0x1C] adds r1, r0, 0x1 strh r1, [r4, 0x1C] lsls r0, 16 asrs r0, 16 movs r3, 0x12 ldrsh r1, [r4, r3] cmp r0, r1 bne _0812B43E movs r0, 0 strh r0, [r4, 0x1C] ldrh r1, [r4, 0x1E] adds r0, r2, r1 strh r0, [r4, 0x1E] movs r2, 0x1E ldrsh r0, [r4, r2] bl sub_8077104 strh r0, [r4, 0x1E] _0812B43E: ldr r1, _0812B460 ldrh r0, [r4, 0x1E] strb r0, [r1] movs r3, 0x1E ldrsh r1, [r4, r3] movs r2, 0xC ldrsh r0, [r4, r2] cmp r1, r0 bne _0812B456 adds r0, r5, 0 bl move_anim_task_del _0812B456: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812B45C: .4byte 0x03004b20 _0812B460: .4byte 0x0202f7d2 thumb_func_end sub_812B404 thumb_func_start unref_sub_812B464 unref_sub_812B464: @ 812B464 bx lr thumb_func_end unref_sub_812B464 thumb_func_start sub_812B468 sub_812B468: @ 812B468 ldr r1, _0812B478 ldr r0, _0812B47C ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _0812B480 str r1, [r0] bx lr .align 2, 0 _0812B478: .4byte 0x03004330 _0812B47C: .4byte 0x02024a60 _0812B480: .4byte sub_812B484 thumb_func_end sub_812B468 thumb_func_start sub_812B484 sub_812B484: @ 812B484 push {lr} ldr r2, _0812B4B8 ldr r1, _0812B4BC ldr r0, _0812B4C0 ldrb r3, [r0] lsls r0, r3, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0812B4D0 ldr r0, _0812B4C4 lsls r1, r3, 9 adds r1, r0 ldrb r0, [r1] cmp r0, 0x38 bhi _0812B4CC ldr r0, _0812B4C8 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl _call_via_r0 b _0812B4D0 .align 2, 0 _0812B4B8: .4byte 0x02024a64 _0812B4BC: .4byte gBitTable _0812B4C0: .4byte 0x02024a60 _0812B4C4: .4byte 0x02023a60 _0812B4C8: .4byte gUnknown_08402080 _0812B4CC: bl dp01_tbl6_exec_completed _0812B4D0: pop {r0} bx r0 thumb_func_end sub_812B484 thumb_func_start bx_battle_menu_t6_2 bx_battle_menu_t6_2: @ 812B4D4 push {r4,r5,lr} ldr r0, _0812B508 ldrh r1, [r0, 0x2E] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0812B546 movs r0, 0x5 bl audio_play bl sub_814A7FC ldr r1, _0812B50C ldr r0, _0812B510 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _0812B524 cmp r0, 0x1 bgt _0812B514 cmp r0, 0 beq _0812B51E b _0812B540 .align 2, 0 _0812B508: .4byte 0x03001770 _0812B50C: .4byte 0x02024e60 _0812B510: .4byte 0x02024a60 _0812B514: cmp r0, 0x2 beq _0812B52A cmp r0, 0x3 beq _0812B536 b _0812B540 _0812B51E: movs r0, 0x1 movs r1, 0x5 b _0812B52E _0812B524: movs r0, 0x1 movs r1, 0x6 b _0812B52E _0812B52A: movs r0, 0x1 movs r1, 0x7 _0812B52E: movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb b _0812B540 _0812B536: movs r0, 0x1 movs r1, 0x8 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb _0812B540: bl dp01_tbl6_exec_completed b _0812B64E _0812B546: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0812B584 ldr r5, _0812B57C ldr r4, _0812B580 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0812B64E movs r0, 0x5 bl audio_play ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl nullsub_8 ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] movs r2, 0x1 b _0812B5F2 .align 2, 0 _0812B57C: .4byte 0x02024e60 _0812B580: .4byte 0x02024a60 _0812B584: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0812B5C0 ldr r5, _0812B5B8 ldr r4, _0812B5BC ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0812B64E movs r0, 0x5 bl audio_play ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl nullsub_8 ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] movs r2, 0x1 b _0812B5F2 .align 2, 0 _0812B5B8: .4byte 0x02024e60 _0812B5BC: .4byte 0x02024a60 _0812B5C0: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0812B60C ldr r5, _0812B604 ldr r4, _0812B608 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0812B64E movs r0, 0x5 bl audio_play ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl nullsub_8 ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] movs r2, 0x2 _0812B5F2: eors r0, r2 strb r0, [r1] ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_802E3E4 b _0812B64E .align 2, 0 _0812B604: .4byte 0x02024e60 _0812B608: .4byte 0x02024a60 _0812B60C: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0812B64E ldr r5, _0812B654 ldr r4, _0812B658 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0812B64E movs r0, 0x5 bl audio_play ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl nullsub_8 ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] movs r2, 0x2 eors r0, r2 strb r0, [r1] ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_802E3E4 _0812B64E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812B654: .4byte 0x02024e60 _0812B658: .4byte 0x02024a60 thumb_func_end bx_battle_menu_t6_2 thumb_func_start sub_812B65C sub_812B65C: @ 812B65C push {lr} ldr r2, _0812B684 ldr r1, _0812B688 ldr r0, _0812B68C ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _0812B690 cmp r1, r0 bne _0812B680 bl dp01_tbl6_exec_completed _0812B680: pop {r0} bx r0 .align 2, 0 _0812B684: .4byte 0x02020004 _0812B688: .4byte 0x02024be0 _0812B68C: .4byte 0x02024a60 _0812B690: .4byte SpriteCallbackDummy thumb_func_end sub_812B65C thumb_func_start sub_812B694 sub_812B694: @ 812B694 push {lr} ldr r0, _0812B6A8 ldrh r0, [r0, 0x16] cmp r0, 0 bne _0812B6A2 bl dp01_tbl6_exec_completed _0812B6A2: pop {r0} bx r0 .align 2, 0 _0812B6A8: .4byte 0x03004210 thumb_func_end sub_812B694 thumb_func_start sub_812B6AC sub_812B6AC: @ 812B6AC push {lr} ldr r0, _0812B6DC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0812B6D6 ldr r2, _0812B6E0 ldr r0, _0812B6E4 adds r3, r2, r0 ldrb r1, [r3] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r3] ldr r0, _0812B6E8 ldr r0, [r0] str r0, [r2] ldr r0, [r2, 0x8] bl SetMainCallback2 _0812B6D6: pop {r0} bx r0 .align 2, 0 _0812B6DC: .4byte 0x0202f388 _0812B6E0: .4byte 0x03001770 _0812B6E4: .4byte 0x0000043d _0812B6E8: .4byte 0x030042d0 thumb_func_end sub_812B6AC thumb_func_start bx_wait_t6 bx_wait_t6: @ 812B6EC push {lr} ldr r0, _0812B718 ldrb r0, [r0] cmp r0, 0 beq _0812B70E ldr r0, _0812B71C ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0812B720 adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0812B712 _0812B70E: bl dp01_tbl6_exec_completed _0812B712: pop {r0} bx r0 .align 2, 0 _0812B718: .4byte 0x02024e6d _0812B71C: .4byte 0x02024a60 _0812B720: .4byte 0x02017810 thumb_func_end bx_wait_t6 thumb_func_start sub_812B724 sub_812B724: @ 812B724 push {lr} ldr r0, _0812B748 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0812B744 ldr r1, _0812B74C ldr r0, _0812B750 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _0812B754 str r1, [r0] bl sub_810BADC _0812B744: pop {r0} bx r0 .align 2, 0 _0812B748: .4byte 0x0202f388 _0812B74C: .4byte 0x03004330 _0812B750: .4byte 0x02024a60 _0812B754: .4byte sub_812B758 thumb_func_end sub_812B724 thumb_func_start sub_812B758 sub_812B758: @ 812B758 push {lr} ldr r0, _0812B784 ldr r1, [r0, 0x4] ldr r0, _0812B788 cmp r1, r0 bne _0812B77E ldr r0, _0812B78C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0812B77E ldr r0, _0812B790 ldrh r1, [r0] movs r0, 0x1 bl dp01_build_cmdbuf_x23_aa_0 bl dp01_tbl6_exec_completed _0812B77E: pop {r0} bx r0 .align 2, 0 _0812B784: .4byte 0x03001770 _0812B788: .4byte sub_800F808 _0812B78C: .4byte 0x0202f388 _0812B790: .4byte 0x0203855e thumb_func_end sub_812B758 thumb_func_start sub_812B794 sub_812B794: @ 812B794 push {lr} ldr r0, _0812B7B8 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0812B7BC adds r0, r1 ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0812B7B2 bl dp01_tbl6_exec_completed _0812B7B2: pop {r0} bx r0 .align 2, 0 _0812B7B8: .4byte 0x02024a60 _0812B7BC: .4byte 0x02017810 thumb_func_end sub_812B794 thumb_func_start dp01_tbl6_exec_completed dp01_tbl6_exec_completed: @ 812B7C0 push {r4,lr} sub sp, 0x4 ldr r1, _0812B800 ldr r4, _0812B804 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0812B808 str r1, [r0] ldr r0, _0812B80C ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0812B814 bl GetMultiplayerId mov r1, sp strb r0, [r1] movs r0, 0x2 movs r1, 0x4 mov r2, sp bl dp01_prepare_buffer_wireless_probably ldr r1, _0812B810 ldrb r0, [r4] lsls r0, 9 adds r0, r1 movs r1, 0x38 strb r1, [r0] b _0812B826 .align 2, 0 _0812B800: .4byte 0x03004330 _0812B804: .4byte 0x02024a60 _0812B808: .4byte sub_812B484 _0812B80C: .4byte 0x020239f8 _0812B810: .4byte 0x02023a60 _0812B814: ldr r2, _0812B830 ldr r1, _0812B834 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, [r2] bics r0, r1 str r0, [r2] _0812B826: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0812B830: .4byte 0x02024a64 _0812B834: .4byte gBitTable thumb_func_end dp01_tbl6_exec_completed thumb_func_start unref_sub_812B838 unref_sub_812B838: @ 812B838 push {lr} ldr r0, _0812B85C ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0812B860 adds r0, r1 ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0812B856 bl dp01_tbl6_exec_completed _0812B856: pop {r0} bx r0 .align 2, 0 _0812B85C: .4byte 0x02024a60 _0812B860: .4byte 0x02017810 thumb_func_end unref_sub_812B838 thumb_func_start sub_812B864 sub_812B864: @ 812B864 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B864 thumb_func_start sub_812B870 sub_812B870: @ 812B870 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B870 thumb_func_start sub_812B87C sub_812B87C: @ 812B87C push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B87C thumb_func_start sub_812B888 sub_812B888: @ 812B888 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B888 thumb_func_start sub_812B894 sub_812B894: @ 812B894 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B894 thumb_func_start sub_812B8A0 sub_812B8A0: @ 812B8A0 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B8A0 thumb_func_start sub_812B8AC sub_812B8AC: @ 812B8AC push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B8AC thumb_func_start sub_812B8B8 sub_812B8B8: @ 812B8B8 push {r4-r6,lr} ldr r4, _0812B96C ldrb r0, [r4, 0x8] ldr r5, _0812B970 ldrb r1, [r5] bl sub_8031AF4 ldrb r6, [r4, 0x8] ldrb r0, [r5] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_803C5A0 ldr r0, _0812B974 ldr r2, _0812B978 ldrb r1, [r4, 0x8] lsls r1, 2 adds r1, r2 ldrb r1, [r1] movs r2, 0x8 subs r2, r1 lsls r2, 18 movs r1, 0xA0 lsls r1, 15 adds r2, r1 asrs r2, 16 movs r1, 0x50 movs r3, 0x1E bl CreateSprite ldr r6, _0812B97C ldrb r1, [r5] adds r1, r6 strb r0, [r1] ldr r4, _0812B980 ldrb r3, [r5] adds r0, r3, r6 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 lsls r3, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xF0 strh r1, [r0, 0x24] ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _0812B984 strh r1, [r0, 0x2E] ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _0812B988 str r1, [r0] ldr r1, _0812B98C ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _0812B990 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812B96C: .4byte gSaveBlock2 _0812B970: .4byte 0x02024a60 _0812B974: .4byte 0x02024e8c _0812B978: .4byte gTrainerBackPicCoords _0812B97C: .4byte 0x02024be0 _0812B980: .4byte 0x02020004 _0812B984: .4byte 0x0000fffe _0812B988: .4byte sub_80313A0 _0812B98C: .4byte 0x03004330 _0812B990: .4byte sub_812B65C thumb_func_end sub_812B8B8 thumb_func_start sub_812B994 sub_812B994: @ 812B994 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B994 thumb_func_start sub_812B9A0 sub_812B9A0: @ 812B9A0 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B9A0 thumb_func_start sub_812B9AC sub_812B9AC: @ 812B9AC push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B9AC thumb_func_start sub_812B9B8 sub_812B9B8: @ 812B9B8 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812B9B8 thumb_func_start sub_812B9C4 sub_812B9C4: @ 812B9C4 push {r4,r5,lr} ldr r1, _0812BA00 movs r0, 0x4 strb r0, [r1, 0x8] ldr r1, _0812BA04 movs r0, 0x1 strb r0, [r1] ldr r5, _0812BA08 ldrb r4, [r5] movs r0, 0x1 bl battle_get_side_with_given_state adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x4 bl move_anim_start_t4 ldr r1, _0812BA0C ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _0812BA10 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812BA00: .4byte 0x02017840 _0812BA04: .4byte 0x02024e6d _0812BA08: .4byte 0x02024a60 _0812BA0C: .4byte 0x03004330 _0812BA10: .4byte bx_wait_t6 thumb_func_end sub_812B9C4 thumb_func_start sub_812BA14 sub_812BA14: @ 812BA14 push {r4,r5,lr} ldr r1, _0812BA58 ldr r5, _0812BA5C ldrb r0, [r5] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r1, [r0] ldr r0, _0812BA60 strb r1, [r0, 0x8] ldr r1, _0812BA64 movs r0, 0x1 strb r0, [r1] ldrb r4, [r5] movs r0, 0x1 bl battle_get_side_with_given_state adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x4 bl move_anim_start_t4 ldr r1, _0812BA68 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _0812BA6C str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812BA58: .4byte 0x02023a60 _0812BA5C: .4byte 0x02024a60 _0812BA60: .4byte 0x02017840 _0812BA64: .4byte 0x02024e6d _0812BA68: .4byte 0x03004330 _0812BA6C: .4byte bx_wait_t6 thumb_func_end sub_812BA14 thumb_func_start sub_812BA70 sub_812BA70: @ 812BA70 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BA70 thumb_func_start sub_812BA7C sub_812BA7C: @ 812BA7C push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BA7C thumb_func_start dp01t_10_6_message dp01t_10_6_message: @ 812BA88 push {r4,lr} sub sp, 0x4 ldr r0, _0812BACC movs r1, 0 strh r1, [r0] ldr r0, _0812BAD0 strh r1, [r0] ldr r4, _0812BAD4 ldrb r0, [r4] lsls r0, 9 ldr r1, _0812BAD8 adds r0, r1 ldrh r0, [r0] bl sub_8120AA8 ldr r0, _0812BADC ldr r1, _0812BAE0 movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r1, _0812BAE4 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0812BAE8 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0812BACC: .4byte 0x030042a4 _0812BAD0: .4byte 0x030042a0 _0812BAD4: .4byte 0x02024a60 _0812BAD8: .4byte 0x02023a62 _0812BADC: .4byte 0x03004210 _0812BAE0: .4byte 0x020238cc _0812BAE4: .4byte 0x03004330 _0812BAE8: .4byte sub_812B694 thumb_func_end dp01t_10_6_message thumb_func_start dp01t_11_6_message_for_player_only dp01t_11_6_message_for_player_only: @ 812BAEC push {lr} ldr r0, _0812BB04 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0812BB08 bl dp01t_10_6_message b _0812BB0C .align 2, 0 _0812BB04: .4byte 0x02024a60 _0812BB08: bl dp01_tbl6_exec_completed _0812BB0C: pop {r0} bx r0 thumb_func_end dp01t_11_6_message_for_player_only thumb_func_start sub_812BB10 sub_812BB10: @ 812BB10 push {r4,r5,lr} sub sp, 0x8 ldr r0, _0812BBCC movs r2, 0 strh r2, [r0] ldr r1, _0812BBD0 movs r0, 0xA0 strh r0, [r1] ldr r4, _0812BBD4 movs r5, 0 strb r2, [r4, 0x6] movs r0, 0x1B str r0, [sp] movs r0, 0x12 str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0xA movs r2, 0x2 movs r3, 0xF bl FillWindowRect_DefaultPalette movs r0, 0x10 str r0, [sp] movs r0, 0x24 str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0xA movs r2, 0x2 movs r3, 0x23 bl FillWindowRect_DefaultPalette ldr r1, _0812BBD8 ldr r0, _0812BBDC ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _0812BBE0 str r1, [r0] ldr r1, _0812BBE4 movs r2, 0xC8 lsls r2, 1 movs r0, 0x23 str r0, [sp] adds r0, r4, 0 movs r3, 0x12 bl InitWindow adds r0, r4, 0 bl sub_8002F44 ldr r1, _0812BBE8 ldr r3, _0812BBEC str r5, [sp] movs r0, 0 movs r2, 0xC bl sub_814A5C0 movs r4, 0 _0812BB84: lsls r0, r4, 24 lsrs r0, 24 bl nullsub_8 adds r4, 0x1 cmp r4, 0x3 ble _0812BB84 ldr r1, _0812BBF0 ldr r0, _0812BBDC ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_802E3E4 ldr r0, _0812BBF4 bl get_battle_strings_ ldr r4, _0812BBD4 ldr r1, _0812BBF8 movs r2, 0xDC lsls r2, 1 movs r0, 0x23 str r0, [sp] adds r0, r4, 0 movs r3, 0x2 bl InitWindow adds r0, r4, 0 bl sub_8002F44 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812BBCC: .4byte 0x030042a4 _0812BBD0: .4byte 0x030042a0 _0812BBD4: .4byte 0x03004210 _0812BBD8: .4byte 0x03004330 _0812BBDC: .4byte 0x02024a60 _0812BBE0: .4byte bx_battle_menu_t6_2 _0812BBE4: .4byte gUnknown_08400D15 _0812BBE8: .4byte 0x0000ffff _0812BBEC: .4byte 0x00002d9f _0812BBF0: .4byte 0x02024e60 _0812BBF4: .4byte gUnknown_08400CBB _0812BBF8: .4byte 0x020238cc thumb_func_end sub_812BB10 thumb_func_start sub_812BBFC sub_812BBFC: @ 812BBFC push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BBFC thumb_func_start sub_812BC08 sub_812BC08: @ 812BC08 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BC08 thumb_func_start sub_812BC14 sub_812BC14: @ 812BC14 push {lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0812BC44 ldr r2, _0812BC48 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _0812BC4C str r1, [r0] ldr r1, _0812BC50 ldrb r0, [r2] strb r0, [r1] add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0812BC44: .4byte 0x03004330 _0812BC48: .4byte 0x02024a60 _0812BC4C: .4byte sub_812B724 _0812BC50: .4byte 0x02024e6c thumb_func_end sub_812BC14 thumb_func_start sub_812BC54 sub_812BC54: @ 812BC54 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BC54 thumb_func_start sub_812BC60 sub_812BC60: @ 812BC60 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BC60 thumb_func_start sub_812BC6C sub_812BC6C: @ 812BC6C push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BC6C thumb_func_start sub_812BC78 sub_812BC78: @ 812BC78 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BC78 thumb_func_start sub_812BC84 sub_812BC84: @ 812BC84 push {lr} ldr r0, _0812BCB0 ldr r1, _0812BCB4 ldrb r1, [r1] adds r0, r1, r0 ldrb r0, [r0] ldr r2, _0812BCB8 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _0812BCBC adds r1, r2 movs r2, 0xB bl sub_8045A5C bl dp01_tbl6_exec_completed pop {r0} bx r0 .align 2, 0 _0812BCB0: .4byte 0x03004340 _0812BCB4: .4byte 0x02024a60 _0812BCB8: .4byte 0x02024a6a _0812BCBC: .4byte 0x03004360 thumb_func_end sub_812BC84 thumb_func_start sub_812BCC0 sub_812BCC0: @ 812BCC0 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BCC0 thumb_func_start sub_812BCCC sub_812BCCC: @ 812BCCC push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BCCC thumb_func_start sub_812BCD8 sub_812BCD8: @ 812BCD8 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BCD8 thumb_func_start sub_812BCE4 sub_812BCE4: @ 812BCE4 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BCE4 thumb_func_start sub_812BCF0 sub_812BCF0: @ 812BCF0 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BCF0 thumb_func_start sub_812BCFC sub_812BCFC: @ 812BCFC push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BCFC thumb_func_start sub_812BD08 sub_812BD08: @ 812BD08 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BD08 thumb_func_start sub_812BD14 sub_812BD14: @ 812BD14 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BD14 thumb_func_start sub_812BD20 sub_812BD20: @ 812BD20 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BD20 thumb_func_start sub_812BD2C sub_812BD2C: @ 812BD2C push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BD2C thumb_func_start sub_812BD38 sub_812BD38: @ 812BD38 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BD38 thumb_func_start sub_812BD44 sub_812BD44: @ 812BD44 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BD44 thumb_func_start sub_812BD50 sub_812BD50: @ 812BD50 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BD50 thumb_func_start sub_812BD5C sub_812BD5C: @ 812BD5C push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BD5C thumb_func_start sub_812BD68 sub_812BD68: @ 812BD68 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BD68 thumb_func_start sub_812BD74 sub_812BD74: @ 812BD74 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BD74 thumb_func_start sub_812BD80 sub_812BD80: @ 812BD80 push {r4,lr} ldr r4, _0812BDBC ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 movs r3, 0x3F cmp r0, 0 bne _0812BD94 movs r3, 0xC0 _0812BD94: ldr r2, _0812BDC0 ldrb r1, [r4] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 lsls r1, r3, 24 asrs r1, 24 bl audio_play_and_stuff bl dp01_tbl6_exec_completed pop {r4} pop {r0} bx r0 .align 2, 0 _0812BDBC: .4byte 0x02024a60 _0812BDC0: .4byte 0x02023a60 thumb_func_end sub_812BD80 thumb_func_start sub_812BDC4 sub_812BDC4: @ 812BDC4 push {lr} ldr r2, _0812BDEC ldr r0, _0812BDF0 ldrb r1, [r0] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 bl fanfare_play bl dp01_tbl6_exec_completed pop {r0} bx r0 .align 2, 0 _0812BDEC: .4byte 0x02023a60 _0812BDF0: .4byte 0x02024a60 thumb_func_end sub_812BDC4 thumb_func_start sub_812BDF4 sub_812BDF4: @ 812BDF4 push {lr} ldr r1, _0812BE24 ldr r0, _0812BE28 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0812BE2C adds r0, r1 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r0, 16 movs r1, 0x19 bl cry_related bl dp01_tbl6_exec_completed pop {r0} bx r0 .align 2, 0 _0812BE24: .4byte 0x02024a6a _0812BE28: .4byte 0x02024a60 _0812BE2C: .4byte 0x03004360 thumb_func_end sub_812BDF4 thumb_func_start dp01t_2E_6_battle_intro dp01t_2E_6_battle_intro: @ 812BE30 push {lr} ldr r1, _0812BE58 ldr r0, _0812BE5C ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] bl sub_80E43C0 ldr r2, _0812BE60 ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] bl dp01_tbl6_exec_completed pop {r0} bx r0 .align 2, 0 _0812BE58: .4byte 0x02023a60 _0812BE5C: .4byte 0x02024a60 _0812BE60: .4byte 0x02024de8 thumb_func_end dp01t_2E_6_battle_intro thumb_func_start sub_812BE64 sub_812BE64: @ 812BE64 push {r4,r5,lr} ldr r5, _0812BEA0 ldr r4, _0812BEA4 ldrb r1, [r4] adds r0, r1, r5 ldrb r0, [r0] ldr r2, _0812BEA8 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _0812BEAC adds r1, r2 movs r2, 0xA bl sub_8045A5C ldrb r0, [r4] bl sub_804777C ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl sub_8043DFC bl dp01_tbl6_exec_completed pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812BEA0: .4byte 0x03004340 _0812BEA4: .4byte 0x02024a60 _0812BEA8: .4byte 0x02024a6a _0812BEAC: .4byte 0x03004360 thumb_func_end sub_812BE64 thumb_func_start sub_812BEB0 sub_812BEB0: @ 812BEB0 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BEB0 thumb_func_start sub_812BEBC sub_812BEBC: @ 812BEBC push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BEBC thumb_func_start sub_812BEC8 sub_812BEC8: @ 812BEC8 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BEC8 thumb_func_start sub_812BED4 sub_812BED4: @ 812BED4 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BED4 thumb_func_start sub_812BEE0 sub_812BEE0: @ 812BEE0 push {r4-r6,lr} sub sp, 0x4 ldr r5, _0812BF18 ldr r6, _0812BF1C ldrb r2, [r6] lsls r1, r2, 9 adds r0, r5, 0x1 adds r0, r1, r0 ldrb r3, [r0] adds r0, r5, 0x2 adds r0, r1, r0 ldrb r4, [r0] adds r5, 0x3 adds r1, r5 ldrb r0, [r1] lsls r0, 8 orrs r4, r0 str r4, [sp] adds r0, r2, 0 adds r1, r2, 0 bl move_anim_start_t3 lsls r0, 24 cmp r0, 0 beq _0812BF20 bl dp01_tbl6_exec_completed b _0812BF2C .align 2, 0 _0812BF18: .4byte 0x02023a60 _0812BF1C: .4byte 0x02024a60 _0812BF20: ldr r0, _0812BF34 ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r0, _0812BF38 str r0, [r1] _0812BF2C: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812BF34: .4byte 0x03004330 _0812BF38: .4byte sub_812B794 thumb_func_end sub_812BEE0 thumb_func_start sub_812BF3C sub_812BF3C: @ 812BF3C push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BF3C thumb_func_start sub_812BF48 sub_812BF48: @ 812BF48 push {lr} bl dp01_tbl6_exec_completed pop {r0} bx r0 thumb_func_end sub_812BF48 thumb_func_start sub_812BF54 sub_812BF54: @ 812BF54 push {r4,lr} ldr r2, _0812BF98 ldr r1, _0812BF9C ldr r4, _0812BFA0 ldrb r0, [r4] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] strb r0, [r2] movs r0, 0x5 bl sub_8074D28 movs r0, 0x3 bl BeginFastPaletteFade bl dp01_tbl6_exec_completed ldr r0, _0812BFA4 ldrh r1, [r0] movs r0, 0x6 ands r0, r1 cmp r0, 0x2 bne _0812BF90 ldr r0, _0812BFA8 ldrb r1, [r4] lsls r1, 2 adds r1, r0 ldr r0, _0812BFAC str r0, [r1] _0812BF90: pop {r4} pop {r0} bx r0 .align 2, 0 _0812BF98: .4byte 0x02024d26 _0812BF9C: .4byte 0x02023a60 _0812BFA0: .4byte 0x02024a60 _0812BFA4: .4byte 0x020239f8 _0812BFA8: .4byte 0x03004330 _0812BFAC: .4byte sub_812B6AC thumb_func_end sub_812BF54 thumb_func_start nullsub_78 nullsub_78: @ 812BFB0 bx lr thumb_func_end nullsub_78 thumb_func_start sub_812BFB4 sub_812BFB4: @ 812BFB4 ldr r1, _0812BFC4 ldr r0, _0812BFC8 str r0, [r1] ldr r1, _0812BFCC ldr r0, _0812BFD0 str r0, [r1] movs r0, 0x1 bx lr .align 2, 0 _0812BFC4: .4byte 0x0300485c _0812BFC8: .4byte sub_808AB90 _0812BFCC: .4byte 0x03005ce4 _0812BFD0: .4byte sub_812BFD4 thumb_func_end sub_812BFB4 thumb_func_start sub_812BFD4 sub_812BFD4: @ 812BFD4 push {lr} movs r0, 0x33 bl FieldEffectStart ldr r0, _0812BFE8 ldr r1, _0812BFEC ldrb r1, [r1] str r1, [r0] pop {r0} bx r0 .align 2, 0 _0812BFE8: .4byte 0x0202ff84 _0812BFEC: .4byte 0x03005ce0 thumb_func_end sub_812BFD4 thumb_func_start sub_812BFF0 sub_812BFF0: @ 812BFF0 push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _0812C014 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _0812C018 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0 pop {r1} bx r1 .align 2, 0 _0812C014: .4byte 0x03004b20 _0812C018: .4byte sub_812C01C thumb_func_end sub_812BFF0 thumb_func_start sub_812C01C sub_812C01C: @ 812C01C push {lr} sub sp, 0x4 movs r0, 0xEC bl audio_play bl GetPlayerAvatarObjectId ldr r2, _0812C078 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r1, [r1, 0x5] lsrs r1, 4 adds r1, 0x10 movs r0, 0x1 lsls r0, r1 mvns r0, r0 movs r1, 0x1F str r1, [sp] movs r1, 0x4 movs r2, 0 movs r3, 0x8 bl BeginNormalPaletteFade ldr r0, _0812C07C movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0812C080 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0x8] movs r0, 0x33 bl FieldEffectActiveListRemove add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0812C078: .4byte 0x02020004 _0812C07C: .4byte sub_812C084 _0812C080: .4byte 0x03004b20 thumb_func_end sub_812C01C thumb_func_start sub_812C084 sub_812C084: @ 812C084 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0812C0C8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _0812C110 ldr r0, _0812C0CC lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r4, r1, r0 ldrh r1, [r4, 0x8] movs r3, 0x8 ldrsh r0, [r4, r3] cmp r0, 0x40 bne _0812C10C strh r2, [r4, 0x8] bl sub_80852FC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812C0D0 adds r0, r5, 0 bl DestroyTask b _0812C110 .align 2, 0 _0812C0C8: .4byte 0x0202f388 _0812C0CC: .4byte 0x03004b20 _0812C0D0: ldr r0, _0812C104 str r0, [r4] bl GetPlayerAvatarObjectId ldr r2, _0812C108 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r1, [r1, 0x5] lsrs r1, 4 adds r1, 0x10 movs r0, 0x1 lsls r0, r1 mvns r0, r0 movs r1, 0x1F str r1, [sp] movs r1, 0x4 movs r2, 0x8 movs r3, 0 bl BeginNormalPaletteFade b _0812C110 .align 2, 0 _0812C104: .4byte sub_812C118 _0812C108: .4byte 0x02020004 _0812C10C: adds r0, r1, 0x1 strh r0, [r4, 0x8] _0812C110: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812C084 thumb_func_start sub_812C118 sub_812C118: @ 812C118 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0812C13C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0812C136 ldr r0, _0812C140 bl script_env_1_execute_new_script adds r0, r4, 0 bl DestroyTask _0812C136: pop {r4} pop {r0} bx r0 .align 2, 0 _0812C13C: .4byte 0x0202f388 _0812C140: .4byte SweetScentNothingHereScript thumb_func_end sub_812C118 thumb_func_start sub_812C144 sub_812C144: @ 812C144 push {lr} adds r2, r0, 0 ldr r1, _0812C168 ldrh r0, [r1] ldrh r3, [r2, 0x20] adds r0, r3 strh r0, [r2, 0x20] ldrh r0, [r1, 0x2] ldrh r3, [r2, 0x22] adds r0, r3 strh r0, [r2, 0x22] movs r3, 0x6 ldrsh r0, [r1, r3] cmp r0, 0 bne _0812C16C ldrh r0, [r1, 0x4] b _0812C170 .align 2, 0 _0812C168: .4byte 0x03004b00 _0812C16C: ldrh r0, [r1, 0x4] negs r0, r0 _0812C170: strh r0, [r2, 0x2E] ldrh r0, [r1, 0x8] strh r0, [r2, 0x30] ldr r0, _0812C180 str r0, [r2, 0x1C] pop {r0} bx r0 .align 2, 0 _0812C180: .4byte sub_812C184 thumb_func_end sub_812C144 thumb_func_start sub_812C184 sub_812C184: @ 812C184 push {lr} adds r3, r0, 0 movs r1, 0x30 ldrsh r0, [r3, r1] cmp r0, 0 ble _0812C1C4 ldrh r1, [r3, 0x32] lsls r0, r1, 16 asrs r0, 24 strh r0, [r3, 0x24] ldrh r0, [r3, 0x2E] adds r1, r0 strh r1, [r3, 0x32] movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrh r0, [r3, 0x30] subs r0, 0x1 strh r0, [r3, 0x30] b _0812C1CA _0812C1C4: adds r0, r3, 0 bl move_anim_8072740 _0812C1CA: pop {r0} bx r0 thumb_func_end sub_812C184 thumb_func_start sub_812C1D0 sub_812C1D0: @ 812C1D0 push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r6, _0812C21C ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 lsrs r4, 8 movs r0, 0x80 lsls r0, 12 adds r4, r0 asrs r4, 16 ldrb r0, [r6] movs r1, 0x3 bl sub_8077ABC adds r1, r0, 0 lsls r1, 24 lsrs r1, 8 movs r0, 0x80 lsls r0, 12 adds r1, r0 asrs r1, 16 adds r0, r4, 0 movs r2, 0 bl sub_8046234 adds r0, r5, 0 bl move_anim_task_del pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812C21C: .4byte 0x0202f7c9 thumb_func_end sub_812C1D0 thumb_func_start sub_812C220 sub_812C220: @ 812C220 push {r4,lr} adds r4, r0, 0 movs r0, 0x5A strh r0, [r4, 0x2E] ldr r0, _0812C258 str r0, [r4, 0x1C] movs r0, 0x7 strh r0, [r4, 0x30] ldr r1, _0812C25C adds r0, r4, 0 bl oamt_set_x3A_32 ldr r1, _0812C260 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r2, _0812C264 ldrh r1, [r4, 0x30] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r0, r1 strh r0, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _0812C258: .4byte sub_80782D8 _0812C25C: .4byte sub_812C268 _0812C260: .4byte REG_BLDCNT _0812C264: .4byte REG_BLDALPHA thumb_func_end sub_812C220 thumb_func_start sub_812C268 sub_812C268: @ 812C268 push {lr} adds r3, r0, 0 ldr r2, _0812C29C ldrh r1, [r3, 0x30] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r0, r1 strh r0, [r2] ldrh r0, [r3, 0x30] subs r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 cmp r0, 0 bge _0812C296 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _0812C2A0 str r0, [r3, 0x1C] _0812C296: pop {r0} bx r0 .align 2, 0 _0812C29C: .4byte REG_BLDALPHA _0812C2A0: .4byte sub_812C2A4 thumb_func_end sub_812C268 thumb_func_start sub_812C2A4 sub_812C2A4: @ 812C2A4 push {lr} ldr r1, _0812C2B8 movs r2, 0 strh r2, [r1] adds r1, 0x2 strh r2, [r1] bl move_anim_8072740 pop {r0} bx r0 .align 2, 0 _0812C2B8: .4byte REG_BLDCNT thumb_func_end sub_812C2A4 thumb_func_start sub_812C2BC sub_812C2BC: @ 812C2BC push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 ldr r4, _0812C348 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 adds r0, r5, 0 movs r1, 0x1 bl sub_8078764 ldrh r0, [r5, 0x20] subs r0, r7 lsls r0, 16 asrs r0, 16 ldrh r1, [r5, 0x22] subs r1, r6 lsls r1, 16 asrs r1, 16 bl sub_80790F0 lsls r0, 16 movs r1, 0xC0 lsls r1, 23 adds r0, r1 lsrs r4, r0, 16 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _0812C31A movs r1, 0x80 lsls r1, 7 adds r0, r4, r1 lsls r0, 16 lsrs r4, r0, 16 _0812C31A: movs r3, 0x80 lsls r3, 1 str r4, [sp] adds r0, r5, 0 movs r1, 0 adds r2, r3, 0 bl sub_8078FDC ldr r0, _0812C34C ldrh r0, [r0, 0x4] strh r0, [r5, 0x2E] strh r7, [r5, 0x32] strh r6, [r5, 0x36] ldr r0, _0812C350 str r0, [r5, 0x1C] ldr r1, _0812C354 adds r0, r5, 0 bl oamt_set_x3A_32 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812C348: .4byte 0x0202f7c9 _0812C34C: .4byte 0x03004b00 _0812C350: .4byte sub_8078B34 _0812C354: .4byte move_anim_8072740 thumb_func_end sub_812C2BC thumb_func_start sub_812C358 sub_812C358: @ 812C358 ldr r2, _0812C378 movs r3, 0xFD lsls r3, 6 adds r1, r3, 0 strh r1, [r2] adds r2, 0x2 movs r3, 0x80 lsls r3, 5 adds r1, r3, 0 strh r1, [r2] movs r1, 0x4 strh r1, [r0, 0x2E] ldr r1, _0812C37C str r1, [r0, 0x1C] bx lr .align 2, 0 _0812C378: .4byte REG_BLDCNT _0812C37C: .4byte sub_812C380 thumb_func_end sub_812C358 thumb_func_start sub_812C380 sub_812C380: @ 812C380 push {r4,lr} adds r4, r0, 0 ldr r2, _0812C3A0 ldrh r1, [r4, 0x2E] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r0, r1 strh r0, [r2] movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0 beq _0812C3A4 ldrh r0, [r4, 0x2E] subs r0, 0x1 b _0812C3A8 .align 2, 0 _0812C3A0: .4byte REG_BLDALPHA _0812C3A4: ldrh r0, [r4, 0x2E] adds r0, 0x1 _0812C3A8: strh r0, [r4, 0x2E] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0xF beq _0812C3B6 cmp r0, 0x4 bne _0812C3BE _0812C3B6: ldrh r0, [r4, 0x30] movs r1, 0x1 eors r0, r1 strh r0, [r4, 0x30] _0812C3BE: ldrh r0, [r4, 0x32] adds r1, r0, 0x1 strh r1, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x46 ble _0812C3FC ldr r0, _0812C404 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim movs r0, 0 strh r0, [r4, 0x32] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] subs r2, 0x12 ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r0, _0812C408 str r0, [r4, 0x1C] _0812C3FC: pop {r4} pop {r0} bx r0 .align 2, 0 _0812C404: .4byte REG_BLDCNT _0812C408: .4byte sub_812C40C thumb_func_end sub_812C380 thumb_func_start sub_812C40C sub_812C40C: @ 812C40C push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x32] adds r1, r0, 0x1 strh r1, [r3, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 ble _0812C448 adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] subs r2, 0x12 ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] adds r0, r3, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0812C448 ldr r0, _0812C44C str r0, [r3, 0x1C] _0812C448: pop {r0} bx r0 .align 2, 0 _0812C44C: .4byte sub_812C450 thumb_func_end sub_812C40C thumb_func_start sub_812C450 sub_812C450: @ 812C450 push {lr} adds r2, r0, 0 movs r1, 0x34 ldrsh r0, [r2, r1] cmp r0, 0x6 bhi _0812C4A8 lsls r0, 2 ldr r1, _0812C468 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812C468: .4byte _0812C46C .align 2, 0 _0812C46C: .4byte _0812C488 .4byte _0812C488 .4byte _0812C492 .4byte _0812C492 .4byte _0812C4A0 .4byte _0812C4A0 .4byte _0812C4A8 _0812C488: movs r1, 0 movs r0, 0x1 strh r0, [r2, 0x24] strh r1, [r2, 0x26] b _0812C4B0 _0812C492: ldr r0, _0812C49C strh r0, [r2, 0x24] movs r0, 0 b _0812C4AE .align 2, 0 _0812C49C: .4byte 0x0000ffff _0812C4A0: movs r0, 0 strh r0, [r2, 0x24] movs r0, 0x1 b _0812C4AE _0812C4A8: movs r0, 0 strh r0, [r2, 0x24] ldr r0, _0812C4F0 _0812C4AE: strh r0, [r2, 0x26] _0812C4B0: ldrh r0, [r2, 0x34] adds r0, 0x1 movs r3, 0 strh r0, [r2, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _0812C4C2 strh r3, [r2, 0x34] _0812C4C2: ldrh r0, [r2, 0x36] adds r1, r0, 0x1 strh r1, [r2, 0x36] lsls r0, 16 asrs r0, 16 cmp r0, 0xF ble _0812C4EA movs r0, 0x10 strh r0, [r2, 0x2E] strh r3, [r2, 0x30] ldr r1, _0812C4F4 movs r3, 0xFD lsls r3, 6 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldrh r0, [r2, 0x2E] strh r0, [r1] ldr r0, _0812C4F8 str r0, [r2, 0x1C] _0812C4EA: pop {r0} bx r0 .align 2, 0 _0812C4F0: .4byte 0x0000ffff _0812C4F4: .4byte REG_BLDCNT _0812C4F8: .4byte sub_812C4FC thumb_func_end sub_812C450 thumb_func_start sub_812C4FC sub_812C4FC: @ 812C4FC push {r4,lr} adds r2, r0, 0 ldr r4, _0812C558 ldrh r1, [r2, 0x2E] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r0, r1 strh r0, [r4] ldrh r0, [r2, 0x30] adds r1, r0, 0x1 strh r1, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _0812C526 ldrh r0, [r2, 0x2E] subs r0, 0x1 movs r1, 0 strh r0, [r2, 0x2E] strh r1, [r2, 0x30] _0812C526: movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 bne _0812C53A adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] _0812C53A: movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 bge _0812C550 ldr r1, _0812C55C movs r0, 0 strh r0, [r1] strh r0, [r4] adds r0, r2, 0 bl move_anim_8072740 _0812C550: pop {r4} pop {r0} bx r0 .align 2, 0 _0812C558: .4byte REG_BLDALPHA _0812C55C: .4byte REG_BLDCNT thumb_func_end sub_812C4FC thumb_func_start sub_812C560 sub_812C560: @ 812C560 lsls r0, 24 lsrs r0, 24 ldr r2, _0812C57C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _0812C580 str r0, [r1] ldr r1, _0812C584 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] bx lr .align 2, 0 _0812C57C: .4byte 0x03004b20 _0812C580: .4byte sub_812C588 _0812C584: .4byte 0x0202f7b2 thumb_func_end sub_812C560 thumb_func_start sub_812C588 sub_812C588: @ 812C588 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r4, r0, 24 bl sub_80789BC lsls r0, 24 lsrs r6, r0, 24 ldr r7, _0812C614 lsls r5, r4, 2 adds r1, r5, r4 lsls r1, 3 adds r1, r7 ldrh r0, [r1, 0x12] adds r0, 0x1 strh r0, [r1, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _0812C5F8 ldr r0, _0812C618 lsls r2, r6, 4 adds r1, r2, 0 adds r1, 0xB lsls r1, 1 adds r1, r0 ldrh r3, [r1] mov r8, r3 movs r3, 0xA mov r9, r7 adds r7, r5, 0 mov r12, r0 adds r5, r2, 0 lsls r0, r6, 5 add r0, r12 adds r2, r0, 0 adds r2, 0x14 _0812C5D6: ldrh r0, [r2] strh r0, [r1] subs r2, 0x2 subs r1, 0x2 subs r3, 0x1 cmp r3, 0 bgt _0812C5D6 adds r0, r5, 0x1 lsls r0, 1 add r0, r12 movs r1, 0 mov r2, r8 strh r2, [r0] adds r0, r7, r4 lsls r0, 3 add r0, r9 strh r1, [r0, 0x12] _0812C5F8: ldr r0, _0812C61C ldrh r1, [r0, 0xE] ldr r0, _0812C620 cmp r1, r0 bne _0812C608 adds r0, r4, 0 bl DestroyTask _0812C608: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812C614: .4byte 0x03004b20 _0812C618: .4byte 0x0202eec8 _0812C61C: .4byte 0x03004b00 _0812C620: .4byte 0x0000ffff thumb_func_end sub_812C588 thumb_func_start sub_812C624 sub_812C624: @ 812C624 lsls r0, 24 lsrs r0, 24 ldr r2, _0812C640 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _0812C644 str r0, [r1] ldr r1, _0812C648 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] bx lr .align 2, 0 _0812C640: .4byte 0x03004b20 _0812C644: .4byte sub_812C64C _0812C648: .4byte 0x0202f7b2 thumb_func_end sub_812C624 thumb_func_start sub_812C64C sub_812C64C: @ 812C64C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 bl sub_80789BC lsls r0, 24 lsrs r7, r0, 24 ldr r5, _0812C70C mov r0, r8 lsls r3, r0, 2 adds r1, r3, r0 lsls r1, 3 adds r1, r5 ldrh r0, [r1, 0x12] adds r0, 0x1 strh r0, [r1, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _0812C6EE ldr r0, _0812C710 lsls r2, r7, 4 adds r1, r2, 0 adds r1, 0xB lsls r1, 1 adds r1, r0 ldrh r6, [r1] movs r4, 0xA mov r10, r3 mov r9, r0 adds r5, r2, 0 ldr r2, _0812C714 mov r12, r2 lsls r0, r7, 5 add r0, r9 adds r3, r0, 0 adds r3, 0x14 _0812C6A0: ldrh r0, [r3] strh r0, [r1] subs r3, 0x2 subs r1, 0x2 subs r4, 0x1 cmp r4, 0 bgt _0812C6A0 adds r0, r5, 0x1 lsls r0, 1 add r0, r9 strh r6, [r0] adds r1, r5, 0 adds r1, 0xB lsls r1, 1 add r1, r12 ldrh r6, [r1] movs r4, 0xA lsls r0, r7, 5 add r0, r12 adds r2, r0, 0 adds r2, 0x14 _0812C6CA: ldrh r0, [r2] strh r0, [r1] subs r2, 0x2 subs r1, 0x2 subs r4, 0x1 cmp r4, 0 bgt _0812C6CA adds r0, r5, 0x1 lsls r0, 1 add r0, r12 movs r1, 0 strh r6, [r0] mov r0, r10 add r0, r8 lsls r0, 3 ldr r2, _0812C70C adds r0, r2 strh r1, [r0, 0x12] _0812C6EE: ldr r0, _0812C718 ldrh r1, [r0, 0xE] ldr r0, _0812C71C cmp r1, r0 bne _0812C6FE mov r0, r8 bl DestroyTask _0812C6FE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812C70C: .4byte 0x03004b20 _0812C710: .4byte 0x0202eec8 _0812C714: .4byte 0x0202eac8 _0812C718: .4byte 0x03004b00 _0812C71C: .4byte 0x0000ffff thumb_func_end sub_812C64C thumb_func_start sub_812C720 sub_812C720: @ 812C720 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _0812C784 ldrb r0, [r0] mov r5, sp adds r5, 0x2 movs r1, 0 mov r2, sp adds r3, r5, 0 bl sub_807A3FC ldr r0, _0812C788 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0812C754 ldr r1, _0812C78C ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _0812C754: ldr r1, _0812C78C ldrh r0, [r1, 0x8] strh r0, [r4, 0x2E] mov r2, sp ldrh r0, [r1, 0x4] ldrh r2, [r2] adds r0, r2 strh r0, [r4, 0x32] ldrh r0, [r1, 0x6] ldrh r5, [r5] adds r0, r5 strh r0, [r4, 0x36] ldr r0, _0812C790 strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC ldr r0, _0812C794 str r0, [r4, 0x1C] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812C784: .4byte 0x0202f7c9 _0812C788: .4byte 0x0202f7c8 _0812C78C: .4byte 0x03004b00 _0812C790: .4byte 0x0000ffce _0812C794: .4byte sub_812C798 thumb_func_end sub_812C720 thumb_func_start sub_812C798 sub_812C798: @ 812C798 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _0812C7BA movs r1, 0 movs r0, 0x1E strh r0, [r4, 0x2E] strh r1, [r4, 0x30] ldr r0, _0812C7C0 str r0, [r4, 0x1C] ldr r1, _0812C7C4 adds r0, r4, 0 bl oamt_set_x3A_32 _0812C7BA: pop {r4} pop {r0} bx r0 .align 2, 0 _0812C7C0: .4byte sub_80782D8 _0812C7C4: .4byte sub_812C7C8 thumb_func_end sub_812C798 thumb_func_start sub_812C7C8 sub_812C7C8: @ 812C7C8 push {lr} adds r3, r0, 0 ldrh r1, [r3, 0x30] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0812C7F4 movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] _0812C7F4: ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 bne _0812C808 adds r0, r3, 0 bl move_anim_8072740 _0812C808: pop {r0} bx r0 thumb_func_end sub_812C7C8 thumb_func_start sub_812C80C sub_812C80C: @ 812C80C push {r4,r5,lr} adds r4, r0, 0 bl sub_8078650 ldr r5, _0812C83C movs r0, 0 ldrsh r1, [r5, r0] adds r0, r4, 0 bl sub_807867C ldrh r0, [r5, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldr r0, _0812C840 str r0, [r4, 0x1C] ldr r1, _0812C844 adds r0, r4, 0 bl oamt_set_x3A_32 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812C83C: .4byte 0x03004b00 _0812C840: .4byte sub_8078600 _0812C844: .4byte move_anim_8072740 thumb_func_end sub_812C80C thumb_func_start sub_812C848 sub_812C848: @ 812C848 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _0812C8A8 adds r0, r4, 0 bl sub_8078650 ldr r5, _0812C884 movs r2, 0 ldrsh r1, [r5, r2] adds r0, r4, 0 bl sub_807867C bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _0812C89C ldr r0, _0812C888 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0812C88C ldrh r0, [r5, 0x4] b _0812C8A2 .align 2, 0 _0812C884: .4byte 0x03004b00 _0812C888: .4byte 0x0202f7c8 _0812C88C: movs r1, 0x4 ldrsh r0, [r5, r1] negs r0, r0 strh r0, [r4, 0x30] movs r2, 0x6 ldrsh r0, [r5, r2] negs r0, r0 b _0812C8A6 _0812C89C: movs r1, 0x4 ldrsh r0, [r5, r1] negs r0, r0 _0812C8A2: strh r0, [r4, 0x30] ldrh r0, [r5, 0x6] _0812C8A6: strh r0, [r4, 0x32] _0812C8A8: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] movs r2, 0x2E ldrsh r1, [r4, r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 movs r3, 0xFF ldrh r1, [r4, 0x30] ldrh r2, [r4, 0x34] adds r1, r2 strh r1, [r4, 0x34] ldrh r1, [r4, 0x32] ldrh r2, [r4, 0x36] adds r1, r2 strh r1, [r4, 0x36] movs r2, 0x34 ldrsh r1, [r4, r2] lsrs r2, r1, 31 adds r1, r2 asrs r1, 1 strh r1, [r4, 0x24] ands r0, r3 movs r1, 0x5 bl sine movs r2, 0x36 ldrsh r1, [r4, r2] lsrs r2, r1, 31 adds r1, r2 asrs r1, 1 adds r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0xF0 bls _0812C900 adds r0, r4, 0 bl move_anim_8072740 _0812C900: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812C848 thumb_func_start sub_812C908 sub_812C908: @ 812C908 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0812C91E adds r0, r2, 0 bl move_anim_8072740 _0812C91E: pop {r0} bx r0 thumb_func_end sub_812C908 thumb_func_start sub_812C924 sub_812C924: @ 812C924 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0812C940 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812C948 ldr r1, _0812C944 movs r0, 0 b _0812C94C .align 2, 0 _0812C940: .4byte 0x0202f7c9 _0812C944: .4byte 0x03004b00 _0812C948: ldr r1, _0812C95C movs r0, 0x1 _0812C94C: strh r0, [r1, 0xE] adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _0812C95C: .4byte 0x03004b00 thumb_func_end sub_812C924 thumb_func_start sub_812C960 sub_812C960: @ 812C960 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0812C974 ldr r0, [r0] cmp r0, 0 ble _0812C97C ldr r1, _0812C978 movs r0, 0 b _0812C980 .align 2, 0 _0812C974: .4byte 0x0202f7b8 _0812C978: .4byte 0x03004b00 _0812C97C: ldr r1, _0812C98C movs r0, 0x1 _0812C980: strh r0, [r1, 0xE] adds r0, r2, 0 bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _0812C98C: .4byte 0x03004b00 thumb_func_end sub_812C960 thumb_func_start sub_812C990 sub_812C990: @ 812C990 push {r4,lr} adds r4, r0, 0 ldr r1, _0812C9EC ldr r2, _0812C9F0 adds r0, r2, 0 strh r0, [r1] movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] ldr r0, _0812C9F4 movs r1, 0 strh r1, [r0] ldr r0, _0812C9F8 strh r1, [r0] ldr r0, _0812C9FC strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, r4, 0 movs r1, 0 bl sub_8078764 ldrb r1, [r4, 0x1] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r4, 0x1] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _0812CA00 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _0812C9EC: .4byte REG_WINOUT _0812C9F0: .4byte 0x00001f3f _0812C9F4: .4byte 0x030042c4 _0812C9F8: .4byte 0x03004240 _0812C9FC: .4byte REG_WIN0H _0812CA00: .4byte sub_812CA04 thumb_func_end sub_812C990 thumb_func_start sub_812CA04 sub_812CA04: @ 812CA04 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x5 bhi _0812CAC4 lsls r0, 2 ldr r1, _0812CA1C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812CA1C: .4byte _0812CA20 .align 2, 0 _0812CA20: .4byte _0812CA38 .4byte _0812CA56 .4byte _0812CA76 .4byte _0812CA56 .4byte _0812CA96 .4byte _0812CAA6 _0812CA38: adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0812CAC4 b _0812CA9E _0812CA56: ldrh r0, [r4, 0x30] adds r0, 0x75 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x15 bne _0812CAC4 movs r0, 0 strh r0, [r4, 0x32] b _0812CA9E _0812CA76: ldrh r0, [r4, 0x30] subs r0, 0x75 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x29 bne _0812CAC4 movs r0, 0 strh r0, [r4, 0x32] b _0812CA9E _0812CA96: adds r0, r4, 0 movs r1, 0x1 bl ChangeSpriteAffineAnim _0812CA9E: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _0812CAC4 _0812CAA6: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0812CAC4 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _0812CACC str r0, [r4, 0x1C] _0812CAC4: pop {r4} pop {r0} bx r0 .align 2, 0 _0812CACC: .4byte sub_812CAD0 thumb_func_end sub_812CA04 thumb_func_start sub_812CAD0 sub_812CAD0: @ 812CAD0 push {r4,lr} ldr r2, _0812CAF4 ldr r3, _0812CAF8 adds r1, r3, 0 strh r1, [r2] movs r3, 0x80 lsls r3, 19 ldrh r1, [r3] movs r4, 0x80 lsls r4, 8 adds r2, r4, 0 eors r1, r2 strh r1, [r3] bl move_anim_8072740 pop {r4} pop {r0} bx r0 .align 2, 0 _0812CAF4: .4byte REG_WINOUT _0812CAF8: .4byte 0x00003f3f thumb_func_end sub_812CAD0 thumb_func_start sub_812CAFC sub_812CAFC: @ 812CAFC push {r4-r6,lr} adds r5, r0, 0 ldr r6, _0812CB70 movs r1, 0x6 ldrsh r0, [r6, r1] cmp r0, 0 bne _0812CB28 ldr r4, _0812CB74 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] _0812CB28: ldrh r0, [r6] ldrh r2, [r5, 0x20] adds r0, r2 movs r3, 0 strh r0, [r5, 0x20] ldrh r0, [r6, 0x2] ldrh r4, [r5, 0x22] adds r0, r4 strh r0, [r5, 0x22] ldrh r2, [r5, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x10 ldr r4, _0812CB78 adds r0, r4, 0 ands r1, r0 ldr r0, _0812CB7C ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] movs r1, 0x4 ldrsh r0, [r6, r1] cmp r0, 0 bne _0812CB84 ldrb r1, [r5, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x10 orrs r0, r1 strb r0, [r5, 0x3] ldr r0, _0812CB80 strh r0, [r5, 0x24] movs r0, 0x2 b _0812CB8A .align 2, 0 _0812CB70: .4byte 0x03004b00 _0812CB74: .4byte 0x0202f7c8 _0812CB78: .4byte 0x000003ff _0812CB7C: .4byte 0xfffffc00 _0812CB80: .4byte 0x0000fff4 _0812CB84: movs r0, 0xC strh r0, [r5, 0x24] ldr r0, _0812CBA8 _0812CB8A: strh r0, [r5, 0x30] ldr r1, _0812CBAC ldrh r0, [r1, 0x8] strh r0, [r5, 0x2E] movs r2, 0x34 ldrsh r0, [r5, r2] cmp r0, 0xFF beq _0812CB9E ldrh r0, [r1, 0x4] strh r0, [r5, 0x34] _0812CB9E: ldr r0, _0812CBB0 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812CBA8: .4byte 0x0000fffe _0812CBAC: .4byte 0x03004b00 _0812CBB0: .4byte sub_812CBB4 thumb_func_end sub_812CAFC thumb_func_start sub_812CBB4 sub_812CBB4: @ 812CBB4 push {r4,lr} adds r4, r0, 0 ldrh r2, [r4, 0x32] movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812CBF2 ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] lsls r0, 16 cmp r0, 0 bne _0812CC12 adds r0, r2, 0x1 strh r0, [r4, 0x32] movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812CC12 movs r0, 0x40 negs r0, r0 bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xDE bl sub_80754F8 b _0812CC12 _0812CBF2: ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x30] subs r0, r1 strh r0, [r4, 0x24] movs r1, 0x24 ldrsh r0, [r4, r1] cmp r0, 0 bge _0812CC04 negs r0, r0 _0812CC04: cmp r0, 0xC bne _0812CC12 ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] subs r0, r2, 0x1 strh r0, [r4, 0x32] _0812CC12: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _0812CC20 adds r0, r4, 0 bl move_anim_8072740 _0812CC20: pop {r4} pop {r0} bx r0 thumb_func_end sub_812CBB4 thumb_func_start sub_812CC28 sub_812CC28: @ 812CC28 push {lr} ldrb r2, [r0, 0x1] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x8 orrs r1, r2 strb r1, [r0, 0x1] movs r1, 0xFF strh r1, [r0, 0x34] bl sub_812CAFC pop {r0} bx r0 thumb_func_end sub_812CC28 thumb_func_start sub_812CC44 sub_812CC44: @ 812CC44 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _0812CC7A ldr r1, _0812CC88 ldr r2, _0812CC8C adds r0, r2, 0 strh r0, [r1] ldr r1, _0812CC90 ldr r2, _0812CC94 adds r0, r2, 0 strh r0, [r1] ldr r1, _0812CC98 movs r0, 0xA0 strh r0, [r1] ldr r1, _0812CC9C ldr r0, _0812CCA0 ldrh r0, [r0] strh r0, [r1] adds r1, 0x4 ldr r0, _0812CCA4 ldrh r0, [r0] strh r0, [r1] _0812CC7A: adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _0812CC88: .4byte REG_WININ _0812CC8C: .4byte 0x00001f3f _0812CC90: .4byte 0x03004200 _0812CC94: .4byte 0x000098f0 _0812CC98: .4byte 0x03004244 _0812CC9C: .4byte REG_WIN1H _0812CCA0: .4byte 0x030042c4 _0812CCA4: .4byte 0x03004240 thumb_func_end sub_812CC44 thumb_func_start sub_812CCA8 sub_812CCA8: @ 812CCA8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _0812CCCA ldr r1, _0812CCD8 ldr r2, _0812CCDC adds r0, r2, 0 strh r0, [r1] ldr r0, _0812CCE0 movs r1, 0 strh r1, [r0] ldr r0, _0812CCE4 strh r1, [r0] _0812CCCA: adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _0812CCD8: .4byte REG_WININ _0812CCDC: .4byte 0x00003f3f _0812CCE0: .4byte 0x03004200 _0812CCE4: .4byte 0x03004244 thumb_func_end sub_812CCA8 thumb_func_start sub_812CCE8 sub_812CCE8: @ 812CCE8 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _0812CCFC movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _0812CD04 ldr r4, _0812CD00 b _0812CD06 .align 2, 0 _0812CCFC: .4byte 0x03004b00 _0812CD00: .4byte 0x0202f7c8 _0812CD04: ldr r4, _0812CD58 _0812CD06: ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x2] adds r0, r6 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldr r2, _0812CD5C ldrh r0, [r2, 0x4] strh r0, [r5, 0x26] movs r3, 0 lsls r0, 16 asrs r0, 16 ldrh r4, [r2, 0x6] movs r6, 0x6 ldrsh r1, [r2, r6] cmp r0, r1 ble _0812CD3E movs r3, 0x1 _0812CD3E: strh r3, [r5, 0x2E] movs r0, 0 strh r0, [r5, 0x30] ldrh r0, [r2, 0x8] strh r0, [r5, 0x32] ldrh r0, [r2, 0xA] strh r0, [r5, 0x34] strh r4, [r5, 0x36] ldr r0, _0812CD60 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812CD58: .4byte 0x0202f7c9 _0812CD5C: .4byte 0x03004b00 _0812CD60: .4byte sub_812CD64 thumb_func_end sub_812CCE8 thumb_func_start sub_812CD64 sub_812CD64: @ 812CD64 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x32] ldrh r1, [r2, 0x30] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r2, 0x30] ldr r1, _0812CDAC movs r3, 0x30 ldrsh r0, [r2, r3] lsls r0, 1 adds r0, r1 ldrh r0, [r0] lsls r0, 16 asrs r0, 20 strh r0, [r2, 0x24] ldrh r0, [r2, 0x34] ldrh r3, [r2, 0x26] adds r1, r0, r3 strh r1, [r2, 0x26] movs r3, 0x2E ldrsh r0, [r2, r3] cmp r0, 0 beq _0812CDB0 lsls r0, r1, 16 asrs r0, 16 movs r3, 0x36 ldrsh r1, [r2, r3] cmp r0, r1 bge _0812CDC2 adds r0, r2, 0 bl move_anim_8072740 b _0812CDC2 .align 2, 0 _0812CDAC: .4byte gSineTable _0812CDB0: lsls r0, r1, 16 asrs r0, 16 movs r3, 0x36 ldrsh r1, [r2, r3] cmp r0, r1 ble _0812CDC2 adds r0, r2, 0 bl move_anim_8072740 _0812CDC2: pop {r0} bx r0 thumb_func_end sub_812CD64 thumb_func_start sub_812CDC8 sub_812CDC8: @ 812CDC8 push {r4-r7,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0812CDE8 adds r5, r1, r0 ldr r0, _0812CDEC movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812CDF4 ldr r4, _0812CDF0 b _0812CDF6 .align 2, 0 _0812CDE8: .4byte 0x03004b20 _0812CDEC: .4byte 0x03004b00 _0812CDF0: .4byte 0x0202f7c8 _0812CDF4: ldr r4, _0812CE3C _0812CDF6: ldrb r0, [r4] bl sub_8077FC0 lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0 adds r1, r0, 0 adds r1, 0x24 movs r2, 0 strh r1, [r5, 0x8] strh r1, [r5, 0xA] subs r0, 0x21 strh r0, [r5, 0xC] cmp r0, 0 bge _0812CE20 strh r2, [r5, 0xC] _0812CE20: ldrh r0, [r5, 0x8] strh r0, [r5, 0xE] movs r0, 0x8 strh r0, [r5, 0x10] ldr r1, _0812CE40 ldrh r0, [r1, 0x2] strh r0, [r5, 0x12] strh r2, [r5, 0x14] strh r2, [r5, 0x16] cmp r7, 0x1 bne _0812CE48 ldr r0, _0812CE44 b _0812CE4A .align 2, 0 _0812CE3C: .4byte 0x0202f7c9 _0812CE40: .4byte 0x03004b00 _0812CE44: .4byte 0x030042c0 _0812CE48: ldr r0, _0812CE68 _0812CE4A: ldrh r2, [r0] strh r2, [r5, 0x18] adds r3, r2, 0 adds r3, 0xF0 strh r3, [r5, 0x1A] ldrh r0, [r1, 0x4] strh r0, [r5, 0x1C] movs r4, 0x4 ldrsh r0, [r1, r4] cmp r0, 0 bne _0812CE6C strh r3, [r5, 0x1E] ldrh r3, [r5, 0x18] b _0812CE70 .align 2, 0 _0812CE68: .4byte 0x03004288 _0812CE6C: strh r2, [r5, 0x1E] ldrh r3, [r5, 0x1A] _0812CE70: movs r0, 0 strh r0, [r5, 0x26] ldrh r1, [r5, 0xC] lsls r2, r1, 16 asrs r1, r2, 16 movs r6, 0xE ldrsh r0, [r5, r6] cmp r1, r0 bgt _0812CEA6 ldr r4, _0812CEB0 movs r0, 0xF0 lsls r0, 3 adds r0, r4 mov r12, r0 _0812CE8C: asrs r2, 16 lsls r1, r2, 1 adds r0, r1, r4 strh r3, [r0] add r1, r12 strh r3, [r1] adds r2, 0x1 lsls r2, 16 asrs r1, r2, 16 movs r6, 0xE ldrsh r0, [r5, r6] cmp r1, r0 ble _0812CE8C _0812CEA6: cmp r7, 0x1 bne _0812CEB8 ldr r0, _0812CEB4 b _0812CEBA .align 2, 0 _0812CEB0: .4byte 0x03004de0 _0812CEB4: .4byte REG_BG1HOFS _0812CEB8: ldr r0, _0812CEE4 _0812CEBA: str r0, [sp] ldr r0, _0812CEE8 str r0, [sp, 0x4] mov r1, sp movs r2, 0 movs r0, 0x1 strb r0, [r1, 0x8] mov r0, sp strb r2, [r0, 0x9] ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl sub_80895F8 ldr r0, _0812CEEC str r0, [r5] add sp, 0xC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812CEE4: .4byte REG_BG2HOFS _0812CEE8: .4byte 0xa2600001 _0812CEEC: .4byte sub_812CEF0 thumb_func_end sub_812CDC8 thumb_func_start sub_812CEF0 sub_812CEF0: @ 812CEF0 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, _0812CF40 adds r4, r0, r1 ldrh r0, [r4, 0x8] ldrh r1, [r4, 0x12] subs r0, r1 strh r0, [r4, 0x8] lsls r0, 16 asrs r0, 16 ldrh r2, [r4, 0xC] movs r3, 0xC ldrsh r1, [r4, r3] cmp r0, r1 bge _0812CF18 strh r2, [r4, 0x8] _0812CF18: ldrh r1, [r4, 0x10] movs r2, 0x10 ldrsh r0, [r4, r2] cmp r0, 0 bne _0812CF44 ldrh r0, [r4, 0xA] ldrh r1, [r4, 0x12] subs r0, r1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 ldrh r2, [r4, 0xC] movs r3, 0xC ldrsh r1, [r4, r3] cmp r0, r1 bge _0812CF48 strh r2, [r4, 0xA] movs r0, 0x1 strh r0, [r4, 0x26] b _0812CF48 .align 2, 0 _0812CF40: .4byte 0x03004b20 _0812CF44: subs r0, r1, 0x1 strh r0, [r4, 0x10] _0812CF48: ldrh r0, [r4, 0x14] adds r0, 0x1 strh r0, [r4, 0x14] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _0812CF74 movs r0, 0 strh r0, [r4, 0x14] movs r1, 0 movs r2, 0x16 ldrsh r0, [r4, r2] cmp r0, 0 bne _0812CF66 movs r1, 0x1 _0812CF66: strh r1, [r4, 0x16] cmp r1, 0 beq _0812CF70 ldrh r0, [r4, 0x18] b _0812CF72 _0812CF70: ldrh r0, [r4, 0x1A] _0812CF72: strh r0, [r4, 0x20] _0812CF74: ldrh r1, [r4, 0x8] lsls r3, r1, 16 asrs r1, r3, 16 movs r2, 0xA ldrsh r0, [r4, r2] cmp r1, r0 bge _0812CFA8 ldr r5, _0812D000 movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 _0812CF8A: asrs r3, 16 lsls r1, r3, 1 adds r2, r1, r5 ldrh r0, [r4, 0x20] strh r0, [r2] adds r1, r6 ldrh r0, [r4, 0x20] strh r0, [r1] adds r3, 0x1 lsls r3, 16 asrs r1, r3, 16 movs r2, 0xA ldrsh r0, [r4, r2] cmp r1, r0 blt _0812CF8A _0812CFA8: ldrh r1, [r4, 0xA] lsls r3, r1, 16 asrs r1, r3, 16 movs r2, 0xE ldrsh r0, [r4, r2] cmp r1, r0 bgt _0812CFDC ldr r5, _0812D000 movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 _0812CFBE: asrs r3, 16 lsls r1, r3, 1 adds r2, r1, r5 ldrh r0, [r4, 0x1E] strh r0, [r2] adds r1, r6 ldrh r0, [r4, 0x1E] strh r0, [r1] adds r3, 0x1 lsls r3, 16 asrs r1, r3, 16 movs r2, 0xE ldrsh r0, [r4, r2] cmp r1, r0 ble _0812CFBE _0812CFDC: movs r3, 0x26 ldrsh r0, [r4, r3] cmp r0, 0 beq _0812CFF8 movs r1, 0x1C ldrsh r0, [r4, r1] cmp r0, 0 beq _0812CFF2 ldr r1, _0812D004 movs r0, 0x3 strb r0, [r1, 0x15] _0812CFF2: adds r0, r7, 0 bl move_anim_task_del _0812CFF8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812D000: .4byte 0x03004de0 _0812D004: .4byte 0x03004dc0 thumb_func_end sub_812CEF0 thumb_func_start sub_812D008 sub_812D008: @ 812D008 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _0812D05C adds r4, r0 movs r5, 0 strh r5, [r4, 0x8] strh r5, [r4, 0xA] ldr r6, _0812D060 ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xC] ldrb r0, [r6] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xE] movs r0, 0x20 strh r0, [r4, 0x10] ldr r0, _0812D064 strh r0, [r4, 0x12] strh r5, [r4, 0x14] movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] ldr r0, _0812D068 str r0, [r4] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812D05C: .4byte 0x03004b20 _0812D060: .4byte 0x0202f7c8 _0812D064: .4byte 0x0000ffec _0812D068: .4byte sub_812D06C thumb_func_end sub_812D008 thumb_func_start sub_812D06C sub_812D06C: @ 812D06C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _0812D098 adds r6, r0, r1 movs r1, 0x8 ldrsh r0, [r6, r1] cmp r0, 0x5 bls _0812D08C b _0812D246 _0812D08C: lsls r0, 2 ldr r1, _0812D09C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812D098: .4byte 0x03004b20 _0812D09C: .4byte _0812D0A0 .align 2, 0 _0812D0A0: .4byte _0812D0B8 .4byte _0812D178 .4byte _0812D1A6 .4byte _0812D1BA .4byte _0812D1D0 .4byte _0812D238 _0812D0B8: movs r0, 0xC ldrsh r2, [r6, r0] ldrh r1, [r6, 0xA] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0812D0CE movs r1, 0x10 ldrsh r0, [r6, r1] subs r0, r2, r0 b _0812D0D4 _0812D0CE: movs r1, 0x10 ldrsh r0, [r6, r1] adds r0, r2, r0 _0812D0D4: lsls r0, 16 lsrs r1, r0, 16 ldrh r2, [r6, 0x12] ldrh r0, [r6, 0xE] adds r2, r0 ldr r0, _0812D168 lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 ldrb r4, [r6, 0xA] movs r3, 0x6 subs r3, r4 lsls r3, 24 lsrs r3, 24 bl CreateSprite lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x40 negs r0, r0 bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xBA bl audio_play_and_stuff cmp r4, 0x40 beq _0812D138 ldr r5, _0812D16C lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r3, r1, r5 ldrh r0, [r6, 0xA] movs r2, 0x1 ands r2, r0 adds r3, 0x3F ldrb r4, [r3] movs r0, 0x2 negs r0, r0 ands r0, r4 orrs r0, r2 strb r0, [r3] adds r5, 0x1C adds r1, r5 ldr r0, _0812D170 str r0, [r1] _0812D138: ldrh r1, [r6, 0xA] movs r4, 0x1 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0812D150 ldrh r0, [r6, 0x10] subs r0, 0x6 strh r0, [r6, 0x10] ldrh r0, [r6, 0x12] subs r0, 0x6 strh r0, [r6, 0x12] _0812D150: ldrh r1, [r6, 0x26] lsls r1, 24 lsrs r1, 24 ldr r2, _0812D174 adds r0, r6, 0 bl sub_80798F4 ldrh r0, [r6, 0xA] adds r0, 0x1 strh r0, [r6, 0xA] strh r4, [r6, 0x8] b _0812D246 .align 2, 0 _0812D168: .4byte gBattleAnimSpriteTemplate_83D7220 _0812D16C: .4byte 0x02020004 _0812D170: .4byte SpriteCallbackDummy _0812D174: .4byte gUnknown_08402400 _0812D178: adds r0, r6, 0 bl sub_807992C lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0812D246 movs r2, 0xA ldrsh r1, [r6, r2] cmp r1, 0x6 bne _0812D198 movs r0, 0x8 strh r0, [r6, 0x14] movs r0, 0x3 strh r0, [r6, 0x8] b _0812D246 _0812D198: cmp r1, 0x2 bgt _0812D19E movs r0, 0xA _0812D19E: strh r0, [r6, 0x14] movs r0, 0x2 strh r0, [r6, 0x8] b _0812D246 _0812D1A6: ldrh r0, [r6, 0x14] movs r2, 0x14 ldrsh r1, [r6, r2] cmp r1, 0 beq _0812D1B6 subs r0, 0x1 strh r0, [r6, 0x14] b _0812D246 _0812D1B6: strh r1, [r6, 0x8] b _0812D246 _0812D1BA: ldrh r1, [r6, 0x14] movs r2, 0x14 ldrsh r0, [r6, r2] cmp r0, 0 beq _0812D1CA subs r0, r1, 0x1 strh r0, [r6, 0x14] b _0812D246 _0812D1CA: movs r0, 0x4 strh r0, [r6, 0x8] b _0812D246 _0812D1D0: movs r5, 0 movs r7, 0 ldr r3, _0812D22C movs r0, 0x1C adds r0, r3 mov r8, r0 _0812D1DC: lsls r0, r5, 4 adds r0, r5 lsls r4, r0, 2 adds r0, r3, 0 adds r0, 0x14 adds r0, r4, r0 ldr r1, [r0] ldr r0, _0812D230 cmp r1, r0 bne _0812D218 adds r0, r4, r3 strh r2, [r0, 0x2E] movs r1, 0x6 strh r1, [r0, 0x30] movs r1, 0x2 str r2, [sp] str r3, [sp, 0x4] bl StartSpriteAnim mov r0, r8 adds r1, r4, r0 ldr r0, _0812D234 str r0, [r1] adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 ldr r2, [sp] ldr r3, [sp, 0x4] cmp r7, 0x6 beq _0812D222 _0812D218: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3F bls _0812D1DC _0812D222: strh r7, [r6, 0x14] movs r0, 0x5 strh r0, [r6, 0x8] b _0812D246 .align 2, 0 _0812D22C: .4byte 0x02020004 _0812D230: .4byte gBattleAnimSpriteTemplate_83D7220 _0812D234: .4byte sub_812D254 _0812D238: movs r1, 0x14 ldrsh r0, [r6, r1] cmp r0, 0 bne _0812D246 adds r0, r2, 0 bl move_anim_task_del _0812D246: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_812D06C thumb_func_start sub_812D254 sub_812D254: @ 812D254 push {r4,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0812D288 ldr r3, _0812D290 movs r0, 0x30 ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x2E ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl DestroySprite _0812D288: pop {r4} pop {r0} bx r0 .align 2, 0 _0812D290: .4byte 0x03004b20 thumb_func_end sub_812D254 thumb_func_start sub_812D294 sub_812D294: @ 812D294 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 bne _0812D2A8 adds r0, r5, 0 movs r1, 0 bl sub_80787B0 _0812D2A8: ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x27 bgt _0812D2DA ldrh r0, [r5, 0x2E] movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _0812D2CC adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 b _0812D2D8 _0812D2CC: adds r2, r5, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 _0812D2D8: strb r0, [r2] _0812D2DA: movs r2, 0x2E ldrsh r0, [r5, r2] cmp r0, 0x1E ble _0812D2F0 adds r2, r5, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _0812D2F0: movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0x3D bne _0812D33C ldr r1, _0812D344 adds r0, r5, 0 bl oamt_set_x3A_32 ldrh r0, [r5, 0x24] ldrh r2, [r5, 0x20] adds r0, r2 movs r1, 0 strh r0, [r5, 0x20] ldrh r0, [r5, 0x26] ldrh r2, [r5, 0x22] adds r0, r2 strh r0, [r5, 0x22] strh r1, [r5, 0x24] strh r1, [r5, 0x26] movs r0, 0x14 strh r0, [r5, 0x2E] ldr r4, _0812D348 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] ldr r0, _0812D34C str r0, [r5, 0x1C] _0812D33C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812D344: .4byte move_anim_8072740 _0812D348: .4byte 0x0202f7c9 _0812D34C: .4byte sub_8078B34 thumb_func_end sub_812D294 thumb_func_start sub_812D350 sub_812D350: @ 812D350 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0812D370 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _0812D374 cmp r0, 0x1 beq _0812D394 b _0812D3A6 .align 2, 0 _0812D370: .4byte 0x03004b20 _0812D374: movs r0, 0 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _0812D390 adds r0, r4, 0 bl sub_80798F4 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0812D3A6 .align 2, 0 _0812D390: .4byte gUnknown_084024B0 _0812D394: adds r0, r4, 0 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _0812D3A6 adds r0, r5, 0 bl move_anim_task_del _0812D3A6: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812D350 thumb_func_start sub_812D3AC sub_812D3AC: @ 812D3AC push {r4-r6,lr} adds r5, r0, 0 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r6, r0, 24 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0x1 beq _0812D40C cmp r0, 0x1 bgt _0812D3CC cmp r0, 0 beq _0812D3D6 b _0812D4AE _0812D3CC: cmp r0, 0x2 beq _0812D43C cmp r0, 0x3 beq _0812D490 b _0812D4AE _0812D3D6: ldr r4, _0812D408 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] adds r0, r6, 0 movs r1, 0 bl sub_8078E70 movs r0, 0x80 lsls r0, 1 strh r0, [r5, 0x30] strh r0, [r5, 0x32] b _0812D484 .align 2, 0 _0812D408: .4byte 0x0202f7c8 _0812D40C: ldrh r0, [r5, 0x30] adds r0, 0x60 strh r0, [r5, 0x30] ldrh r0, [r5, 0x32] subs r0, 0x1A strh r0, [r5, 0x32] movs r2, 0x30 ldrsh r1, [r5, r2] movs r0, 0x32 ldrsh r2, [r5, r0] adds r0, r6, 0 movs r3, 0 bl obj_id_set_rotscale ldrh r0, [r5, 0x34] adds r0, 0x1 strh r0, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _0812D43C ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] _0812D43C: ldrh r0, [r5, 0x30] adds r0, 0x60 strh r0, [r5, 0x30] ldrh r0, [r5, 0x32] adds r0, 0x30 strh r0, [r5, 0x32] movs r2, 0x30 ldrsh r1, [r5, r2] movs r0, 0x32 ldrsh r2, [r5, r0] adds r0, r6, 0 movs r3, 0 bl obj_id_set_rotscale ldrh r0, [r5, 0x34] adds r0, 0x1 strh r0, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 bne _0812D4AE movs r0, 0 strh r0, [r5, 0x34] ldr r1, _0812D48C lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r0, r6, 0 bl sub_8078F40 _0812D484: ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _0812D4AE .align 2, 0 _0812D48C: .4byte 0x02020004 _0812D490: ldrh r0, [r5, 0x26] subs r0, 0x6 strh r0, [r5, 0x26] movs r1, 0x22 ldrsh r0, [r5, r1] movs r2, 0x26 ldrsh r1, [r5, r2] adds r0, r1 movs r1, 0x20 negs r1, r1 cmp r0, r1 bge _0812D4AE adds r0, r5, 0 bl move_anim_8072740 _0812D4AE: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_812D3AC thumb_func_start sub_812D4B4 sub_812D4B4: @ 812D4B4 push {r4,lr} adds r4, r0, 0 ldr r0, _0812D4CC ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0812D4D4 ldr r0, _0812D4D0 b _0812D4D8 .align 2, 0 _0812D4CC: .4byte 0x0202f7c8 _0812D4D0: .4byte 0x0000fff0 _0812D4D4: movs r0, 0x80 lsls r0, 1 _0812D4D8: strh r0, [r4, 0x20] movs r0, 0 strh r0, [r4, 0x22] ldr r0, _0812D4E8 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _0812D4E8: .4byte sub_812D4EC thumb_func_end sub_812D4B4 thumb_func_start sub_812D4EC sub_812D4EC: @ 812D4EC push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x48 strh r0, [r4, 0x2E] ldr r0, _0812D50C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0812D510 ldrh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 20 b _0812D518 .align 2, 0 _0812D50C: .4byte 0x0202f7c8 _0812D510: ldrh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 20 negs r0, r0 _0812D518: strh r0, [r4, 0x24] ldrh r0, [r4, 0x30] adds r0, 0x10 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 24 ldrh r1, [r4, 0x26] adds r5, r0, r1 strh r5, [r4, 0x26] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 movs r1, 0x3 bl __modsi3 lsls r0, 16 cmp r0, 0 bne _0812D564 ldr r0, _0812D584 ldrh r1, [r4, 0x24] ldrh r2, [r4, 0x20] adds r1, r2 lsls r1, 16 asrs r1, 16 ldrh r2, [r4, 0x22] adds r2, r5 lsls r2, 16 asrs r2, 16 adds r3, r4, 0 adds r3, 0x43 ldrb r3, [r3] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 bl CreateSpriteAndAnimate _0812D564: movs r1, 0x20 ldrsh r0, [r4, r1] movs r2, 0x24 ldrsh r1, [r4, r2] adds r0, r1 adds r0, 0x20 movs r1, 0x98 lsls r1, 1 cmp r0, r1 bls _0812D57E adds r0, r4, 0 bl move_anim_8072740 _0812D57E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812D584: .4byte gSpriteTemplate_8402500 thumb_func_end sub_812D4EC thumb_func_start sub_812D588 sub_812D588: @ 812D588 push {r4,lr} adds r4, r0, 0 bl Random movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _0812D5A2 ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x4 b _0812D5AA _0812D5A2: ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x5 _0812D5AA: ldr r3, _0812D5DC adds r0, r3, 0 ands r1, r0 ldr r0, _0812D5E0 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] bl Random movs r1, 0x7 ands r0, r1 adds r1, r0, 0 cmp r1, 0x3 ble _0812D5CC negs r0, r1 lsls r0, 24 lsrs r0, 24 _0812D5CC: lsls r0, 24 asrs r0, 24 strh r0, [r4, 0x26] ldr r0, _0812D5E4 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _0812D5DC: .4byte 0x000003ff _0812D5E0: .4byte 0xfffffc00 _0812D5E4: .4byte sub_812D5E8 thumb_func_end sub_812D588 thumb_func_start sub_812D5E8 sub_812D5E8: @ 812D5E8 push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1D bgt _0812D62A ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _0812D65E movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] movs r0, 0 b _0812D65C _0812D62A: movs r1, 0x30 ldrsh r0, [r3, r1] cmp r0, 0x2 bne _0812D640 adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _0812D640: movs r1, 0x30 ldrsh r0, [r3, r1] cmp r0, 0x3 bne _0812D658 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _0812D670 strh r0, [r3, 0x30] _0812D658: ldrh r0, [r3, 0x30] adds r0, 0x1 _0812D65C: strh r0, [r3, 0x30] _0812D65E: movs r1, 0x2E ldrsh r0, [r3, r1] cmp r0, 0x3C ble _0812D66C adds r0, r3, 0 bl DestroySprite _0812D66C: pop {r0} bx r0 .align 2, 0 _0812D670: .4byte 0x0000ffff thumb_func_end sub_812D5E8 thumb_func_start sub_812D674 sub_812D674: @ 812D674 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, _0812D6AC lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812D6B4 movs r0, 0 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _0812D6B0 adds r0, r4, 0 bl sub_80798F4 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0812D6C6 .align 2, 0 _0812D6AC: .4byte 0x03004b20 _0812D6B0: .4byte gUnknown_08402518 _0812D6B4: adds r0, r4, 0 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _0812D6C6 adds r0, r5, 0 bl move_anim_task_del _0812D6C6: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812D674 thumb_func_start sub_812D6CC sub_812D6CC: @ 812D6CC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, _0812D704 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812D70C movs r0, 0 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _0812D708 adds r0, r4, 0 bl sub_80798F4 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0812D71E .align 2, 0 _0812D704: .4byte 0x03004b20 _0812D708: .4byte gUnknown_08402540 _0812D70C: adds r0, r4, 0 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _0812D71E adds r0, r5, 0 bl move_anim_task_del _0812D71E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812D6CC thumb_func_start sub_812D724 sub_812D724: @ 812D724 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _0812D736 cmp r0, 0x1 beq _0812D760 b _0812D788 _0812D736: adds r0, r4, 0 movs r1, 0 bl sub_80787B0 movs r0, 0x90 lsls r0, 4 strh r0, [r4, 0x30] ldr r0, _0812D75C ldrb r0, [r0] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _0812D788 .align 2, 0 _0812D75C: .4byte 0x0202f7c8 _0812D760: ldrh r2, [r4, 0x30] lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r4, 0x26] subs r0, r1 strh r0, [r4, 0x26] subs r2, 0x60 strh r2, [r4, 0x30] movs r2, 0x22 ldrsh r0, [r4, r2] movs r2, 0x26 ldrsh r1, [r4, r2] adds r0, r1 movs r2, 0x32 ldrsh r1, [r4, r2] cmp r0, r1 ble _0812D788 adds r0, r4, 0 bl move_anim_8072740 _0812D788: pop {r4} pop {r0} bx r0 thumb_func_end sub_812D724 thumb_func_start sub_812D790 sub_812D790: @ 812D790 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, _0812D7C8 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812D7D0 movs r0, 0 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _0812D7CC adds r0, r4, 0 bl sub_80798F4 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0812D7E2 .align 2, 0 _0812D7C8: .4byte 0x03004b20 _0812D7CC: .4byte gUnknown_08402590 _0812D7D0: adds r0, r4, 0 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _0812D7E2 adds r0, r5, 0 bl move_anim_task_del _0812D7E2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812D790 thumb_func_start sub_812D7E8 sub_812D7E8: @ 812D7E8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, _0812D818 lsls r0, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r3, r1, 0 cmp r0, 0x4 bls _0812D80E b _0812DAFA _0812D80E: lsls r0, 2 ldr r1, _0812D81C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812D818: .4byte 0x03004b20 _0812D81C: .4byte _0812D820 .align 2, 0 _0812D820: .4byte _0812D834 .4byte _0812D888 .4byte _0812D8C4 .4byte _0812DA48 .4byte _0812DA84 _0812D834: ldr r1, _0812D850 movs r0, 0 strh r0, [r1] ldr r0, _0812D854 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812D85C ldr r0, _0812D858 b _0812D85E .align 2, 0 _0812D850: .4byte REG_MOSAIC _0812D854: .4byte 0x0202f7c8 _0812D858: .4byte REG_BG1CNT _0812D85C: ldr r0, _0812D87C _0812D85E: ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] ldr r0, _0812D880 mov r6, r8 lsls r1, r6, 2 add r1, r8 lsls r1, 3 adds r1, r0 ldr r0, _0812D884 ldrh r0, [r0] strh r0, [r1, 0x1C] b _0812DA2A .align 2, 0 _0812D87C: .4byte REG_BG2CNT _0812D880: .4byte 0x03004b20 _0812D884: .4byte 0x03004b00 _0812D888: mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r0, 3 adds r4, r0, r3 ldrh r0, [r4, 0xC] adds r1, r0, 0x1 strh r1, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bgt _0812D8A2 b _0812DAFA _0812D8A2: movs r0, 0 strh r0, [r4, 0xC] ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] ldrh r2, [r4, 0xA] ldr r1, _0812D8C0 lsls r0, r2, 4 orrs r0, r2 strh r0, [r1] cmp r2, 0xF beq _0812D8BC b _0812DAFA _0812D8BC: b _0812DA78 .align 2, 0 _0812D8C0: .4byte REG_MOSAIC _0812D8C4: ldr r5, _0812D8F4 ldrb r0, [r5] ldr r1, _0812D8F8 ldrb r1, [r1] mov r2, r8 lsls r4, r2, 2 adds r2, r4, r2 lsls r2, 3 adds r2, r3 ldrb r2, [r2, 0x1C] bl sub_8031FC4 ldrb r1, [r5] mov r0, sp bl sub_8078954 bl sub_8076BE0 lsls r0, 24 mov r9, r4 cmp r0, 0 beq _0812D8FC movs r1, 0 b _0812D906 .align 2, 0 _0812D8F4: .4byte 0x0202f7c8 _0812D8F8: .4byte 0x0202f7c9 _0812D8FC: ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r1, r0, 24 _0812D906: ldr r0, _0812D9CC lsls r1, 2 adds r1, r0 ldr r2, _0812D9D0 ldr r0, _0812D9D4 ldrb r0, [r0] adds r0, r2 ldrb r0, [r0] lsls r0, 11 ldr r1, [r1] adds r1, r0 ldr r2, [sp] ldr r0, _0812D9D8 str r1, [r0] str r2, [r0, 0x4] ldr r1, _0812D9DC str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _0812DA20 ldr r5, _0812D9E0 ldrh r0, [r5] bl sub_80AEB1C adds r4, r0, 0 ldrh r0, [r5, 0x2] bl sub_80AEB1C lsls r4, 24 lsls r0, 24 cmp r4, r0 beq _0812D9A2 ldr r6, [sp, 0x4] movs r5, 0 movs r0, 0x7 mov r12, r0 movs r7, 0 _0812D956: movs r4, 0 adds r3, r7, r6 mov r1, r12 lsls r0, r1, 1 adds r2, r0, r6 _0812D960: ldrh r1, [r3] ldrh r0, [r2] strh r0, [r3] strh r1, [r2] adds r3, 0x2 subs r2, 0x2 adds r4, 0x1 cmp r4, 0x3 ble _0812D960 movs r2, 0x20 add r12, r2 adds r7, 0x40 adds r5, 0x1 cmp r5, 0x7 ble _0812D956 movs r5, 0 movs r0, 0x80 lsls r0, 3 adds r3, r0, 0 _0812D986: adds r2, r5, 0x1 lsls r0, r5, 6 adds r1, r0, r6 movs r4, 0x7 _0812D98E: ldrh r0, [r1] eors r0, r3 strh r0, [r1] adds r1, 0x2 subs r4, 0x1 cmp r4, 0 bge _0812D98E adds r5, r2, 0 cmp r5, 0x7 ble _0812D986 _0812D9A2: ldr r0, _0812D9E0 ldrh r0, [r0, 0x2] bl sub_80AEB1C lsls r0, 24 cmp r0, 0 beq _0812D9F0 ldr r3, _0812D9E4 ldr r4, _0812D9E8 ldr r2, _0812D9D4 ldrb r0, [r2] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x10 adds r0, r1 ldr r1, _0812D9EC b _0812DA0A .align 2, 0 _0812D9CC: .4byte gUnknown_081FAF4C _0812D9D0: .4byte 0x02024e84 _0812D9D4: .4byte 0x0202f7c8 _0812D9D8: .4byte 0x040000d4 _0812D9DC: .4byte 0x84000200 _0812D9E0: .4byte 0x02019348 _0812D9E4: .4byte 0x02020004 _0812D9E8: .4byte 0x02024be0 _0812D9EC: .4byte gSpriteAffineAnimTable_81E7C18 _0812D9F0: ldr r3, _0812DA34 ldr r4, _0812DA38 ldr r2, _0812DA3C ldrb r0, [r2] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x10 adds r0, r1 ldr r1, _0812DA40 _0812DA0A: str r1, [r0] ldrb r0, [r2] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0 bl StartSpriteAffineAnim _0812DA20: ldr r0, _0812DA44 mov r1, r9 add r1, r8 lsls r1, 3 adds r1, r0 _0812DA2A: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0812DAFA .align 2, 0 _0812DA34: .4byte 0x02020004 _0812DA38: .4byte 0x02024be0 _0812DA3C: .4byte 0x0202f7c8 _0812DA40: .4byte gSpriteAffineAnimTable_81E7BEC _0812DA44: .4byte 0x03004b20 _0812DA48: mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r0, 3 adds r4, r0, r3 ldrh r0, [r4, 0xC] adds r1, r0, 0x1 strh r1, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _0812DAFA movs r0, 0 strh r0, [r4, 0xC] ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] ldrh r2, [r4, 0xA] ldr r1, _0812DA80 lsls r0, r2, 4 orrs r0, r2 strh r0, [r1] cmp r2, 0 bne _0812DAFA _0812DA78: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0812DAFA .align 2, 0 _0812DA80: .4byte REG_MOSAIC _0812DA84: ldr r1, _0812DAA0 movs r0, 0 strh r0, [r1] ldr r0, _0812DAA4 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812DAAC ldr r2, _0812DAA8 b _0812DAAE .align 2, 0 _0812DAA0: .4byte REG_MOSAIC _0812DAA4: .4byte 0x0202f7c8 _0812DAA8: .4byte REG_BG1CNT _0812DAAC: ldr r2, _0812DB08 _0812DAAE: ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _0812DAF4 ldr r4, _0812DB0C ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812DAF4 ldr r0, _0812DB10 mov r2, r8 lsls r1, r2, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r6, 0x1C ldrsh r0, [r1, r6] cmp r0, 0 bne _0812DAF4 ldrb r0, [r4] lsls r1, r0, 2 ldr r2, _0812DB14 adds r1, r2 ldrh r1, [r1, 0x2] bl sub_8032984 _0812DAF4: mov r0, r8 bl move_anim_task_del _0812DAFA: add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812DB08: .4byte REG_BG2CNT _0812DB0C: .4byte 0x0202f7c8 _0812DB10: .4byte 0x03004b20 _0812DB14: .4byte 0x02017800 thumb_func_end sub_812D7E8 thumb_func_start c3_80DFBE4 c3_80DFBE4: @ 812DB18 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r4, _0812DB48 ldr r3, _0812DB4C ldr r2, _0812DB50 ldr r1, _0812DB54 ldrb r1, [r1] adds r1, r2 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r3 adds r1, 0x3E ldrb r1, [r1] lsls r1, 29 lsrs r1, 31 strh r1, [r4, 0xE] bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _0812DB48: .4byte 0x03004b00 _0812DB4C: .4byte 0x02020004 _0812DB50: .4byte 0x02024be0 _0812DB54: .4byte 0x0202f7c8 thumb_func_end c3_80DFBE4 thumb_func_start sub_812DB58 sub_812DB58: @ 812DB58 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0812DB7C ldrb r0, [r0] ldr r1, _0812DB80 ldrb r1, [r1] movs r2, 0x1 bl sub_8031FC4 adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _0812DB7C: .4byte 0x0202f7c8 _0812DB80: .4byte 0x0202f7c9 thumb_func_end sub_812DB58 thumb_func_start sub_812DB84 sub_812DB84: @ 812DB84 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _0812DBB4 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0x4 bls _0812DBA8 b _0812DE80 _0812DBA8: lsls r0, 2 ldr r1, _0812DBB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812DBB4: .4byte 0x03004b20 _0812DBB8: .4byte _0812DBBC .align 2, 0 _0812DBBC: .4byte _0812DBD0 .4byte _0812DCFC .4byte _0812DD4C .4byte _0812DDB6 .4byte _0812DDEA _0812DBD0: ldr r1, _0812DC70 ldr r4, _0812DC74 adds r0, r4, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r4, _0812DC78 ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] ldrb r1, [r4] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _0812DC12 ldrb r0, [r4] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4] _0812DC12: mov r0, sp bl sub_8078914 ldr r1, [sp, 0x4] movs r4, 0 str r4, [sp, 0xC] ldr r2, _0812DC7C add r0, sp, 0xC str r0, [r2] str r1, [r2, 0x4] ldr r0, _0812DC80 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _0812DC84 bl LZDecompressVram ldr r0, _0812DC88 ldr r1, [sp] bl LZDecompressVram ldr r0, _0812DC8C mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _0812DC9C mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_80763FC ldr r1, _0812DC90 ldr r2, _0812DC94 adds r0, r2, 0 strh r0, [r1] ldr r0, _0812DC98 strh r4, [r0] b _0812DCCE .align 2, 0 _0812DC70: .4byte REG_BLDCNT _0812DC74: .4byte 0x00003f42 _0812DC78: .4byte REG_BG1CNT _0812DC7C: .4byte 0x040000d4 _0812DC80: .4byte 0x85000400 _0812DC84: .4byte gUnknown_08D2AA98 _0812DC88: .4byte gUnknown_08D2A9E0 _0812DC8C: .4byte gUnknown_08D2AA80 _0812DC90: .4byte 0x030042c0 _0812DC94: .4byte 0x0000ffc8 _0812DC98: .4byte 0x030041b4 _0812DC9C: ldr r0, _0812DCB4 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0812DCC0 ldr r1, _0812DCB8 ldr r4, _0812DCBC adds r0, r4, 0 b _0812DCC6 .align 2, 0 _0812DCB4: .4byte 0x0202f7c8 _0812DCB8: .4byte 0x030042c0 _0812DCBC: .4byte 0x0000ff79 _0812DCC0: ldr r1, _0812DCEC ldr r2, _0812DCF0 adds r0, r2, 0 _0812DCC6: strh r0, [r1] ldr r1, _0812DCF4 movs r0, 0 strh r0, [r1] _0812DCCE: ldr r0, _0812DCF8 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 ldr r0, _0812DCEC ldrh r0, [r0] strh r0, [r1, 0x1C] ldr r0, _0812DCF4 ldrh r0, [r0] strh r0, [r1, 0x1E] ldrh r0, [r1, 0x8] adds r0, 0x1 b _0812DDD2 .align 2, 0 _0812DCEC: .4byte 0x030042c0 _0812DCF0: .4byte 0x0000fff6 _0812DCF4: .4byte 0x030041b4 _0812DCF8: .4byte 0x03004b20 _0812DCFC: lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x10] adds r1, r0, 0x1 strh r1, [r3, 0x10] lsls r0, 16 cmp r0, 0 bgt _0812DD12 b _0812DE80 _0812DD12: movs r0, 0 strh r0, [r3, 0x10] ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xC ble _0812DD28 movs r0, 0xC strh r0, [r3, 0xA] _0812DD28: ldr r2, _0812DD48 ldrh r1, [r3, 0xA] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r0, r1 strh r0, [r2] movs r4, 0xA ldrsh r0, [r3, r4] cmp r0, 0xC beq _0812DD40 b _0812DE80 _0812DD40: ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] b _0812DE80 .align 2, 0 _0812DD48: .4byte REG_BLDALPHA _0812DD4C: lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0xA] subs r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 cmp r0, 0 bge _0812DD64 movs r0, 0 strh r0, [r3, 0xA] _0812DD64: ldr r2, _0812DDA4 ldrh r1, [r3, 0xA] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r0, r1 strh r0, [r2] movs r1, 0xA ldrsh r0, [r3, r1] cmp r0, 0 beq _0812DD7C b _0812DE80 _0812DD7C: ldr r2, _0812DDA8 ldr r1, _0812DDAC movs r4, 0xC ldrsh r0, [r3, r4] adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrh r1, [r3, 0x1C] adds r0, r1 strh r0, [r2] ldrh r0, [r3, 0xC] adds r0, 0x1 strh r0, [r3, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _0812DDB0 strh r0, [r3, 0x8] b _0812DE80 .align 2, 0 _0812DDA4: .4byte REG_BLDALPHA _0812DDA8: .4byte 0x030042c0 _0812DDAC: .4byte gUnknown_084025C0 _0812DDB0: movs r0, 0x3 strh r0, [r3, 0x8] b _0812DE80 _0812DDB6: lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r1, r0, r2 ldrh r0, [r1, 0xE] adds r0, 0x1 strh r0, [r1, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _0812DE80 movs r0, 0 strh r0, [r1, 0xE] movs r0, 0x1 _0812DDD2: strh r0, [r1, 0x8] movs r0, 0x40 negs r0, r0 bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xE4 bl audio_play_and_stuff b _0812DE80 _0812DDEA: mov r0, sp bl sub_8078914 ldr r2, [sp] movs r3, 0x80 lsls r3, 6 add r5, sp, 0xC movs r6, 0 ldr r1, _0812DE90 movs r4, 0x80 lsls r4, 5 mov r8, r5 ldr r0, _0812DE94 mov r12, r0 movs r0, 0x85 lsls r0, 24 mov r9, r0 _0812DE0C: str r6, [sp, 0xC] mov r0, r8 str r0, [r1] str r2, [r1, 0x4] mov r0, r12 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _0812DE0C str r6, [sp, 0xC] str r5, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r9 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, [sp, 0x4] movs r4, 0 str r4, [sp, 0xC] ldr r0, _0812DE90 str r5, [r0] str r1, [r0, 0x4] ldr r1, _0812DE98 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _0812DE5A ldr r2, _0812DE9C ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _0812DE5A: ldr r2, _0812DE9C ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r0, _0812DEA0 strh r4, [r0] ldr r0, _0812DEA4 strh r4, [r0] ldr r0, _0812DEA8 strh r4, [r0] adds r0, 0x2 strh r4, [r0] adds r0, r7, 0 bl move_anim_task_del _0812DE80: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812DE90: .4byte 0x040000d4 _0812DE94: .4byte 0x85000400 _0812DE98: .4byte 0x85000200 _0812DE9C: .4byte REG_BG1CNT _0812DEA0: .4byte 0x030042c0 _0812DEA4: .4byte 0x030041b4 _0812DEA8: .4byte REG_BLDCNT thumb_func_end sub_812DB84 thumb_func_start sub_812DEAC sub_812DEAC: @ 812DEAC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r7, r0, 0 bl Random lsls r0, 16 movs r1, 0xFC lsls r1, 14 ands r1, r0 lsrs r5, r1, 16 adds r1, r5, 0 cmp r1, 0x1F ble _0812DED6 movs r0, 0x20 subs r0, r1 lsls r0, 16 lsrs r5, r0, 16 _0812DED6: ldr r4, _0812DFD0 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, r5 strh r0, [r7, 0x20] ldrb r0, [r4] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x20 strh r0, [r7, 0x22] ldr r1, _0812DFD4 ldrh r0, [r1] strh r0, [r7, 0x30] ldrh r0, [r1, 0x2] strh r0, [r7, 0x32] ldr r4, _0812DFD8 movs r0, 0x20 ldrsh r1, [r7, r0] movs r0, 0x22 ldrsh r2, [r7, r0] adds r5, r7, 0 adds r5, 0x43 ldrb r3, [r5] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 bl CreateSprite mov r9, r0 mov r1, r9 lsls r1, 24 lsrs r1, 24 mov r9, r1 movs r0, 0x20 ldrsh r1, [r7, r0] movs r0, 0x22 ldrsh r2, [r7, r0] ldrb r3, [r5] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 bl CreateSprite mov r8, r0 mov r1, r8 lsls r1, 24 lsrs r1, 24 mov r8, r1 mov r0, r9 lsls r2, r0, 4 add r2, r9 lsls r2, 2 ldr r1, _0812DFDC mov r10, r1 adds r5, r2, r1 adds r0, r5, 0 movs r1, 0x1 str r2, [sp] bl StartSpriteAnim mov r0, r8 lsls r6, r0, 4 add r6, r8 lsls r6, 2 mov r1, r10 adds r4, r6, r1 adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim ldr r1, _0812DFD4 ldrh r0, [r1] strh r0, [r5, 0x30] ldrh r0, [r1, 0x2] strh r0, [r5, 0x32] ldrh r0, [r1] strh r0, [r4, 0x30] ldrh r0, [r1, 0x2] strh r0, [r4, 0x32] ldr r0, _0812DFE0 strh r0, [r5, 0x3C] movs r0, 0x1 negs r0, r0 strh r0, [r4, 0x3C] adds r5, 0x3E ldrb r0, [r5] movs r1, 0x4 orrs r0, r1 strb r0, [r5] adds r4, 0x3E ldrb r0, [r4] orrs r0, r1 strb r0, [r4] movs r0, 0x1C add r10, r0 ldr r2, [sp] add r2, r10 ldr r0, _0812DFE4 str r0, [r2] add r6, r10 str r0, [r6] mov r1, r9 strh r1, [r7, 0x3A] mov r0, r8 strh r0, [r7, 0x3C] ldr r0, _0812DFE8 str r0, [r7, 0x1C] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812DFD0: .4byte 0x0202f7c8 _0812DFD4: .4byte 0x03004b00 _0812DFD8: .4byte gBattleAnimSpriteTemplate_84025EC _0812DFDC: .4byte 0x02020004 _0812DFE0: .4byte 0x0000ffff _0812DFE4: .4byte sub_812E0F8 _0812DFE8: .4byte sub_812DFEC thumb_func_end sub_812DEAC thumb_func_start sub_812DFEC sub_812DFEC: @ 812DFEC push {lr} adds r3, r0, 0 ldrh r2, [r3, 0x32] ldrh r0, [r3, 0x34] adds r2, r0 lsls r0, r2, 16 asrs r0, 24 ldrh r1, [r3, 0x26] subs r1, r0 strh r1, [r3, 0x26] movs r0, 0xFF ands r2, r0 strh r2, [r3, 0x34] movs r2, 0x36 ldrsh r0, [r3, r2] cmp r0, 0 bne _0812E03A lsls r0, r1, 16 asrs r0, 16 movs r1, 0x8 negs r1, r1 cmp r0, r1 bge _0812E03A ldr r2, _0812E094 movs r0, 0x3A ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldrh r0, [r3, 0x36] adds r0, 0x1 strh r0, [r3, 0x36] _0812E03A: movs r1, 0x36 ldrsh r0, [r3, r1] cmp r0, 0x1 bne _0812E06E movs r2, 0x26 ldrsh r1, [r3, r2] movs r0, 0x10 negs r0, r0 cmp r1, r0 bge _0812E06E ldr r2, _0812E094 movs r0, 0x3C ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldrh r0, [r3, 0x36] adds r0, 0x1 strh r0, [r3, 0x36] _0812E06E: ldrh r0, [r3, 0x30] subs r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0812E090 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _0812E098 str r0, [r3, 0x1C] _0812E090: pop {r0} bx r0 .align 2, 0 _0812E094: .4byte 0x02020004 _0812E098: .4byte sub_812E09C thumb_func_end sub_812DFEC thumb_func_start sub_812E09C sub_812E09C: @ 812E09C push {r4-r6,lr} adds r4, r0, 0 ldr r5, _0812E0F0 movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r3, r0, 2 adds r6, r5, 0 adds r6, 0x1C adds r0, r3, r6 ldr r2, [r0] ldr r0, _0812E0F4 cmp r2, r0 bne _0812E0E8 movs r1, 0x3C ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldr r0, [r1] cmp r0, r2 bne _0812E0E8 adds r0, r3, r5 bl DestroySprite movs r0, 0x3C ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite adds r0, r4, 0 bl move_anim_8072740 _0812E0E8: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812E0F0: .4byte 0x02020004 _0812E0F4: .4byte SpriteCallbackDummy thumb_func_end sub_812E09C thumb_func_start sub_812E0F8 sub_812E0F8: @ 812E0F8 push {lr} adds r3, r0, 0 movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _0812E144 ldrh r2, [r3, 0x32] ldrh r1, [r3, 0x34] adds r2, r1 lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r3, 0x26] subs r0, r1 strh r0, [r3, 0x26] movs r0, 0xFF ands r2, r0 strh r2, [r3, 0x34] ldrh r0, [r3, 0x30] subs r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0812E144 mov r1, r12 ldrb r0, [r1] movs r1, 0x4 orrs r0, r1 mov r1, r12 strb r0, [r1] ldr r0, _0812E148 str r0, [r3, 0x1C] _0812E144: pop {r0} bx r0 .align 2, 0 _0812E148: .4byte SpriteCallbackDummy thumb_func_end sub_812E0F8 thumb_func_start sub_812E14C sub_812E14C: @ 812E14C push {r4-r6,lr} sub sp, 0x10 lsls r0, 24 lsrs r6, r0, 24 ldr r1, _0812E174 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r4, r1, 0 cmp r0, 0x5 bls _0812E16A b _0812E476 _0812E16A: lsls r0, 2 ldr r1, _0812E178 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812E174: .4byte 0x03004b20 _0812E178: .4byte _0812E17C .align 2, 0 _0812E17C: .4byte _0812E194 .4byte _0812E300 .4byte _0812E388 .4byte _0812E3BC .4byte _0812E3E8 .4byte _0812E420 _0812E194: ldr r1, _0812E230 ldr r3, _0812E234 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0812E238 adds r0, r2, 0 strh r0, [r1] ldr r4, _0812E23C ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r4, 0x1] ldrb r1, [r4] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _0812E1D4 ldrb r0, [r4] movs r1, 0xD negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4] _0812E1D4: mov r0, sp bl sub_8078914 ldr r1, [sp, 0x4] movs r4, 0 str r4, [sp, 0xC] ldr r2, _0812E240 add r0, sp, 0xC str r0, [r2] str r1, [r2, 0x4] ldr r0, _0812E244 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _0812E248 bl LZDecompressVram ldr r0, _0812E24C ldr r1, [sp] bl LZDecompressVram ldr r0, _0812E250 mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _0812E260 mov r0, sp ldrb r0, [r0, 0x8] ldr r1, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_80763FC ldr r1, _0812E254 ldr r3, _0812E258 adds r0, r3, 0 strh r0, [r1] ldr r0, _0812E25C strh r4, [r0] b _0812E2D2 .align 2, 0 _0812E230: .4byte REG_BLDCNT _0812E234: .4byte 0x00003f42 _0812E238: .4byte 0x00000d03 _0812E23C: .4byte REG_BG1CNT _0812E240: .4byte 0x040000d4 _0812E244: .4byte 0x85000400 _0812E248: .4byte gUnknown_08D2AA98 _0812E24C: .4byte gUnknown_08D2A9E0 _0812E250: .4byte gUnknown_08D2AA80 _0812E254: .4byte 0x030042c0 _0812E258: .4byte 0x0000ffc8 _0812E25C: .4byte 0x030041b4 _0812E260: ldr r0, _0812E2A0 ldrb r0, [r0] bl battle_get_per_side_status lsls r0, 24 lsrs r4, r0, 24 bl battle_type_is_double lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812E2B4 ldr r1, _0812E2A4 cmp r4, 0x1 bne _0812E284 ldr r2, _0812E2A8 adds r0, r2, 0 strh r0, [r1] _0812E284: cmp r4, 0x3 bne _0812E28E ldr r3, _0812E2AC adds r0, r3, 0 strh r0, [r1] _0812E28E: cmp r4, 0 bne _0812E296 movs r0, 0xE strh r0, [r1] _0812E296: cmp r4, 0x2 bne _0812E2CC ldr r1, _0812E2A4 ldr r2, _0812E2B0 b _0812E2C8 .align 2, 0 _0812E2A0: .4byte 0x0202f7c9 _0812E2A4: .4byte 0x030042c0 _0812E2A8: .4byte 0x0000ff65 _0812E2AC: .4byte 0x0000ff8d _0812E2B0: .4byte 0x0000ffec _0812E2B4: cmp r4, 0x1 bne _0812E2C0 ldr r1, _0812E2EC ldr r3, _0812E2F0 adds r0, r3, 0 strh r0, [r1] _0812E2C0: cmp r4, 0 bne _0812E2CC ldr r1, _0812E2EC ldr r2, _0812E2F4 _0812E2C8: adds r0, r2, 0 strh r0, [r1] _0812E2CC: ldr r1, _0812E2F8 movs r0, 0 strh r0, [r1] _0812E2D2: ldr r0, _0812E2FC lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, _0812E2EC ldrh r0, [r0] strh r0, [r1, 0x1C] ldr r0, _0812E2F8 ldrh r0, [r0] strh r0, [r1, 0x1E] b _0812E380 .align 2, 0 _0812E2EC: .4byte 0x030042c0 _0812E2F0: .4byte 0x0000ff79 _0812E2F4: .4byte 0x0000fff6 _0812E2F8: .4byte 0x030041b4 _0812E2FC: .4byte 0x03004b20 _0812E300: ldr r1, _0812E334 lsls r4, r6, 2 adds r0, r4, r6 lsls r0, 3 adds r5, r0, r1 movs r0, 0 strh r0, [r5, 0xE] ldr r0, _0812E338 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812E344 ldr r2, _0812E33C ldr r1, _0812E340 movs r3, 0xC ldrsh r0, [r5, r3] adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrh r5, [r5, 0x1C] adds r0, r5 b _0812E356 .align 2, 0 _0812E334: .4byte 0x03004b20 _0812E338: .4byte 0x0202f7c9 _0812E33C: .4byte 0x030042c0 _0812E340: .4byte gUnknown_08402604 _0812E344: ldr r2, _0812E374 ldr r1, _0812E378 movs r3, 0xC ldrsh r0, [r5, r3] adds r0, r1 movs r1, 0 ldrsb r1, [r0, r1] ldrh r0, [r5, 0x1C] subs r0, r1 _0812E356: strh r0, [r2] ldr r0, _0812E37C adds r1, r4, r6 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xC] adds r0, 0x1 strh r0, [r1, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _0812E380 strh r0, [r1, 0x8] b _0812E476 .align 2, 0 _0812E374: .4byte 0x030042c0 _0812E378: .4byte gUnknown_08402604 _0812E37C: .4byte 0x03004b20 _0812E380: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0812E476 _0812E388: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r4 ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bgt _0812E3A2 movs r0, 0x5 strh r0, [r4, 0xA] _0812E3A2: ldr r2, _0812E3B8 ldrh r0, [r4, 0xA] lsls r0, 8 movs r1, 0x3 orrs r0, r1 strh r0, [r2] movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x5 bne _0812E476 b _0812E3DC .align 2, 0 _0812E3B8: .4byte REG_BLDALPHA _0812E3BC: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r4 ldrh r1, [r4, 0xE] adds r1, 0x1 strh r1, [r4, 0xE] lsls r1, 16 asrs r1, 16 ldr r2, _0812E3E4 movs r3, 0xC ldrsh r0, [r4, r3] adds r0, r2 ldrb r0, [r0] cmp r1, r0 ble _0812E476 _0812E3DC: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0812E476 .align 2, 0 _0812E3E4: .4byte gUnknown_08402608 _0812E3E8: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r4 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xD ble _0812E402 movs r0, 0xD strh r0, [r4, 0xA] _0812E402: ldr r2, _0812E41C ldrh r0, [r4, 0xA] lsls r0, 8 movs r1, 0x3 orrs r0, r1 strh r0, [r2] movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0xD bne _0812E476 movs r0, 0x1 strh r0, [r4, 0x8] b _0812E476 .align 2, 0 _0812E41C: .4byte REG_BLDALPHA _0812E420: mov r0, sp bl sub_8078914 ldr r2, [sp, 0x4] movs r4, 0 str r4, [sp, 0xC] ldr r1, _0812E480 add r0, sp, 0xC str r0, [r1] str r2, [r1, 0x4] ldr r0, _0812E484 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _0812E450 ldr r2, _0812E488 ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _0812E450: ldr r2, _0812E488 ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r0, _0812E48C strh r4, [r0] ldr r0, _0812E490 strh r4, [r0] ldr r0, _0812E494 strh r4, [r0] adds r0, 0x2 strh r4, [r0] adds r0, r6, 0 bl move_anim_task_del _0812E476: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812E480: .4byte 0x040000d4 _0812E484: .4byte 0x85000200 _0812E488: .4byte REG_BG1CNT _0812E48C: .4byte 0x030042c0 _0812E490: .4byte 0x030041b4 _0812E494: .4byte REG_BLDCNT thumb_func_end sub_812E14C thumb_func_start sub_812E498 sub_812E498: @ 812E498 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, _0812E4D0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812E4D8 movs r0, 0 bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _0812E4D4 adds r0, r4, 0 bl sub_80798F4 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0812E4EA .align 2, 0 _0812E4D0: .4byte 0x03004b20 _0812E4D4: .4byte gUnknown_08402610 _0812E4D8: adds r0, r4, 0 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _0812E4EA adds r0, r5, 0 bl move_anim_task_del _0812E4EA: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812E498 thumb_func_start sub_812E4F0 sub_812E4F0: @ 812E4F0 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] movs r2, 0x2E ldrsh r1, [r4, r2] cmp r1, 0 bne _0812E50E adds r0, r4, 0 movs r1, 0 bl sub_80787B0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _0812E562 _0812E50E: adds r0, 0x1 strh r0, [r4, 0x2E] cmp r1, 0x14 ble _0812E562 ldrh r0, [r4, 0x30] adds r0, 0xA0 strh r0, [r4, 0x30] ldrh r0, [r4, 0x32] adds r0, 0x80 strh r0, [r4, 0x32] ldr r0, _0812E53C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0812E540 ldrh r0, [r4, 0x30] lsls r0, 16 asrs r0, 24 negs r0, r0 b _0812E546 .align 2, 0 _0812E53C: .4byte 0x0202f7c8 _0812E540: ldrh r0, [r4, 0x30] lsls r0, 16 asrs r0, 24 _0812E546: strh r0, [r4, 0x24] ldrh r0, [r4, 0x32] lsls r0, 16 asrs r0, 24 ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] lsls r0, 16 asrs r0, 16 cmp r0, 0x40 ble _0812E562 adds r0, r4, 0 bl move_anim_8072740 _0812E562: pop {r4} pop {r0} bx r0 thumb_func_end sub_812E4F0 thumb_func_start sub_812E568 sub_812E568: @ 812E568 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _0812E58C adds r4, r0, r1 ldr r5, _0812E590 movs r1, 0x2 ldrsh r0, [r5, r1] cmp r0, 0 bne _0812E594 adds r0, r2, 0 bl move_anim_task_del b _0812E628 .align 2, 0 _0812E58C: .4byte 0x03004b20 _0812E590: .4byte 0x03004b00 _0812E594: movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0 bge _0812E5A0 movs r0, 0 strh r0, [r5, 0x4] _0812E5A0: movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0x2 ble _0812E5AC movs r0, 0x2 strh r0, [r5, 0x4] _0812E5AC: movs r0, 0 strh r0, [r4, 0x8] strh r0, [r4, 0xA] strh r0, [r4, 0xC] movs r0, 0x4 ldrsh r1, [r5, r0] lsls r1, 1 movs r0, 0x8 subs r0, r1 strh r0, [r4, 0xE] movs r1, 0x4 ldrsh r0, [r5, r1] lsls r0, 7 movs r1, 0x80 lsls r1, 1 adds r0, r1 strh r0, [r4, 0x10] ldrh r0, [r5, 0x4] adds r0, 0x2 strh r0, [r4, 0x12] ldrh r0, [r5, 0x2] subs r0, 0x1 strh r0, [r4, 0x14] ldrb r0, [r5] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0 bne _0812E5F8 ldr r0, _0812E5F4 b _0812E5FA .align 2, 0 _0812E5F4: .4byte 0x0202f7c8 _0812E5F8: ldr r0, _0812E630 _0812E5FA: ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812E618 movs r1, 0x10 ldrsh r0, [r4, r1] negs r0, r0 strh r0, [r4, 0x10] movs r1, 0x12 ldrsh r0, [r4, r1] negs r0, r0 strh r0, [r4, 0x12] _0812E618: ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_8078E70 ldr r0, _0812E634 str r0, [r4] _0812E628: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812E630: .4byte 0x0202f7c9 _0812E634: .4byte sub_812E638 thumb_func_end sub_812E568 thumb_func_start sub_812E638 sub_812E638: @ 812E638 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0812E65C adds r4, r0, r1 movs r0, 0x8 ldrsh r6, [r4, r0] cmp r6, 0x1 beq _0812E6C0 cmp r6, 0x1 bgt _0812E660 cmp r6, 0 beq _0812E66C b _0812E798 .align 2, 0 _0812E65C: .4byte 0x03004b20 _0812E660: cmp r6, 0x2 beq _0812E718 cmp r6, 0x3 bne _0812E66A b _0812E788 _0812E66A: b _0812E798 _0812E66C: ldr r2, _0812E6BC movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r4, 0x12] ldrh r2, [r0, 0x24] adds r1, r2 strh r1, [r0, 0x24] ldrh r0, [r4, 0xC] ldrh r1, [r4, 0x10] subs r0, r1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 movs r2, 0x80 lsls r2, 1 ldrh r3, [r4, 0xC] adds r1, r2, 0 bl obj_id_set_rotscale ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8078F9C ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 movs r2, 0xE ldrsh r1, [r4, r2] cmp r0, r1 blt _0812E798 strh r6, [r4, 0xA] b _0812E780 .align 2, 0 _0812E6BC: .4byte 0x02020004 _0812E6C0: ldr r2, _0812E714 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x24] ldrh r2, [r4, 0x12] subs r1, r2 strh r1, [r0, 0x24] ldrh r0, [r4, 0x10] ldrh r1, [r4, 0xC] adds r0, r1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 movs r2, 0x80 lsls r2, 1 ldrh r3, [r4, 0xC] adds r1, r2, 0 bl obj_id_set_rotscale ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8078F9C ldrh r1, [r4, 0xA] adds r1, 0x1 strh r1, [r4, 0xA] lsls r1, 16 asrs r1, 16 movs r2, 0xE ldrsh r0, [r4, r2] lsls r0, 1 cmp r1, r0 blt _0812E798 movs r0, 0 strh r0, [r4, 0xA] b _0812E780 .align 2, 0 _0812E714: .4byte 0x02020004 _0812E718: ldr r2, _0812E77C movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r4, 0x12] ldrh r2, [r0, 0x24] adds r1, r2 movs r5, 0 strh r1, [r0, 0x24] ldrh r0, [r4, 0xC] ldrh r1, [r4, 0x10] subs r0, r1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 movs r2, 0x80 lsls r2, 1 ldrh r3, [r4, 0xC] adds r1, r2, 0 bl obj_id_set_rotscale ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8078F9C ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 movs r2, 0xE ldrsh r1, [r4, r2] cmp r0, r1 blt _0812E798 ldrh r1, [r4, 0x14] movs r2, 0x14 ldrsh r0, [r4, r2] cmp r0, 0 beq _0812E780 subs r0, r1, 0x1 strh r0, [r4, 0x14] strh r5, [r4, 0xA] strh r5, [r4, 0x8] b _0812E798 .align 2, 0 _0812E77C: .4byte 0x02020004 _0812E780: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0812E798 _0812E788: ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8078F40 adds r0, r5, 0 bl move_anim_task_del _0812E798: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_812E638 thumb_func_start sub_812E7A0 sub_812E7A0: @ 812E7A0 push {r4,lr} adds r4, r0, 0 ldr r0, _0812E7BC ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0812E7C4 strh r0, [r4, 0x20] ldr r1, _0812E7C0 ldrh r0, [r1] b _0812E7CE .align 2, 0 _0812E7BC: .4byte 0x0202f7c8 _0812E7C0: .4byte 0x03004b00 _0812E7C4: movs r0, 0xF0 strh r0, [r4, 0x20] ldr r1, _0812E7E8 ldrh r0, [r1] subs r0, 0x1E _0812E7CE: strh r0, [r4, 0x22] ldrh r0, [r1, 0x4] strh r0, [r4, 0x32] ldrb r1, [r1, 0x2] adds r0, r4, 0 bl StartSpriteAnim ldr r0, _0812E7EC str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _0812E7E8: .4byte 0x03004b00 _0812E7EC: .4byte sub_812E7F0 thumb_func_end sub_812E7A0 thumb_func_start sub_812E7F0 sub_812E7F0: @ 812E7F0 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x3 strh r0, [r4, 0x2E] ldr r0, _0812E830 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0812E834 ldrh r1, [r4, 0x20] adds r1, 0x5 strh r1, [r4, 0x20] ldrh r0, [r4, 0x22] subs r0, 0x1 strh r0, [r4, 0x22] lsls r1, 16 asrs r1, 16 cmp r1, 0xF0 ble _0812E822 adds r0, r4, 0 bl move_anim_8072740 _0812E822: ldrh r1, [r4, 0x2E] movs r0, 0xFF ands r0, r1 movs r1, 0x10 bl sine b _0812E858 .align 2, 0 _0812E830: .4byte 0x0202f7c8 _0812E834: ldrh r1, [r4, 0x20] subs r1, 0x5 strh r1, [r4, 0x20] ldrh r0, [r4, 0x22] adds r0, 0x1 strh r0, [r4, 0x22] lsls r1, 16 cmp r1, 0 bge _0812E84C adds r0, r4, 0 bl move_anim_8072740 _0812E84C: ldrh r1, [r4, 0x2E] movs r0, 0xFF ands r0, r1 movs r1, 0x10 bl cosine _0812E858: strh r0, [r4, 0x26] pop {r4} pop {r0} bx r0 thumb_func_end sub_812E7F0 thumb_func_start sub_812E860 sub_812E860: @ 812E860 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _0812E8A8 adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] strh r0, [r4, 0xA] strh r0, [r4, 0xC] strh r0, [r4, 0xE] movs r0, 0x20 strh r0, [r4, 0x20] movs r0, 0x40 strh r0, [r4, 0x22] movs r0, 0x80 lsls r0, 4 strh r0, [r4, 0x24] ldr r0, _0812E8AC ldrb r0, [r0] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] movs r1, 0 bl sub_8078E70 ldr r0, _0812E8B0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812E8A8: .4byte 0x03004b20 _0812E8AC: .4byte 0x03004b00 _0812E8B0: .4byte sub_812E8B4 thumb_func_end sub_812E860 thumb_func_start sub_812E8B4 sub_812E8B4: @ 812E8B4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _0812E8E0 adds r7, r0, r1 movs r1, 0x8 ldrsh r0, [r7, r1] mov r8, r0 cmp r0, 0x1 beq _0812E950 cmp r0, 0x1 bgt _0812E8E4 cmp r0, 0 beq _0812E8EC b _0812E9CA .align 2, 0 _0812E8E0: .4byte 0x03004b20 _0812E8E4: mov r2, r8 cmp r2, 0x2 beq _0812E9B8 b _0812E9CA _0812E8EC: movs r3, 0x80 lsls r3, 2 adds r0, r3, 0 ldrh r1, [r7, 0xC] adds r2, r0, r1 strh r2, [r7, 0xC] lsls r0, r2, 16 asrs r0, 16 ldrh r3, [r7, 0x24] mov r8, r3 movs r3, 0x24 ldrsh r1, [r7, r3] cmp r0, r1 blt _0812E9CA mov r0, r8 subs r5, r0, r2 lsls r5, 16 asrs r5, 16 adds r6, r1, 0 lsls r6, 1 adds r0, r5, 0 adds r1, r6, 0 bl __divsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 adds r1, r6, 0 bl __modsi3 lsls r0, 16 lsrs r0, 16 lsls r4, 16 asrs r4, 16 movs r1, 0x1 ands r4, r1 cmp r4, 0 bne _0812E944 lsls r0, 16 asrs r0, 16 mov r2, r8 subs r0, r2, r0 b _0812E9A2 _0812E944: lsls r0, 16 asrs r0, 16 mov r3, r8 subs r0, r3 strh r0, [r7, 0xC] b _0812E9CA _0812E950: ldr r1, _0812E9A8 adds r0, r1, 0 ldrh r2, [r7, 0xC] adds r1, r0, r2 strh r1, [r7, 0xC] movs r3, 0xC ldrsh r0, [r7, r3] movs r2, 0x24 ldrsh r6, [r7, r2] cmn r0, r6 bgt _0812E9CA ldrh r3, [r7, 0x24] mov r9, r3 mov r0, r9 subs r4, r0, r1 lsls r4, 16 asrs r4, 16 lsls r6, 1 adds r0, r4, 0 adds r1, r6, 0 bl __divsi3 adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 adds r1, r6, 0 bl __modsi3 lsls r0, 16 lsrs r2, r0, 16 mov r1, r8 ands r1, r5 lsls r0, r1, 16 asrs r1, r0, 16 cmp r1, 0 bne _0812E9AC lsls r0, r2, 16 asrs r0, 16 mov r2, r9 subs r0, r2 _0812E9A2: strh r0, [r7, 0xC] strh r1, [r7, 0x8] b _0812E9CA .align 2, 0 _0812E9A8: .4byte 0xfffffe00 _0812E9AC: lsls r0, r2, 16 asrs r0, 16 mov r3, r9 subs r0, r3, r0 strh r0, [r7, 0xC] b _0812E9CA _0812E9B8: ldrh r0, [r7, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8078F40 adds r0, r4, 0 bl move_anim_task_del b _0812EA40 _0812E9CA: ldrh r0, [r7, 0x26] lsls r0, 24 lsrs r0, 24 movs r2, 0x80 lsls r2, 1 ldrh r3, [r7, 0xC] adds r1, r2, 0 bl obj_id_set_rotscale ldrh r0, [r7, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_8078F9C ldr r2, _0812EA38 movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 movs r2, 0xC ldrsh r0, [r7, r2] cmp r0, 0 bge _0812E9FE adds r0, 0x3F _0812E9FE: asrs r0, 6 negs r0, r0 strh r0, [r1, 0x24] ldrh r0, [r7, 0xA] adds r0, 0x1 strh r0, [r7, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _0812EA40 ldrh r1, [r7, 0x20] movs r3, 0x20 ldrsh r0, [r7, r3] cmp r0, 0 beq _0812EA3C subs r0, r1, 0x1 strh r0, [r7, 0x20] ldrh r0, [r7, 0x24] ldrh r1, [r7, 0x22] subs r0, r1 strh r0, [r7, 0x24] lsls r0, 16 asrs r0, 16 cmp r0, 0xF bgt _0812EA40 movs r0, 0x10 strh r0, [r7, 0x24] b _0812EA40 .align 2, 0 _0812EA38: .4byte 0x02020004 _0812EA3C: movs r0, 0x2 strh r0, [r7, 0x8] _0812EA40: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_812E8B4 thumb_func_start sub_812EA4C sub_812EA4C: @ 812EA4C push {r4-r6,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 bne _0812EAAC ldr r6, _0812EAA4 movs r2, 0x4 ldrsh r0, [r6, r2] cmp r0, 0 bne _0812EA80 ldr r4, _0812EAA8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] _0812EA80: ldrh r0, [r6] ldrh r1, [r5, 0x20] adds r0, r1 strh r0, [r5, 0x20] ldrh r1, [r6, 0x2] ldrh r2, [r5, 0x22] adds r0, r1, r2 strh r0, [r5, 0x22] movs r0, 0x80 strh r0, [r5, 0x30] movs r0, 0xC0 lsls r0, 2 strh r0, [r5, 0x32] strh r1, [r5, 0x34] ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _0812EB0A .align 2, 0 _0812EAA4: .4byte 0x03004b00 _0812EAA8: .4byte 0x0202f7c8 _0812EAAC: ldrh r1, [r5, 0x30] lsls r0, r1, 16 asrs r0, 24 strh r0, [r5, 0x24] ldrh r0, [r5, 0x32] lsls r0, 16 asrs r0, 24 ldrh r2, [r5, 0x26] adds r0, r2 strh r0, [r5, 0x26] movs r2, 0x36 ldrsh r0, [r5, r2] adds r4, r1, 0 cmp r0, 0 bne _0812EAEA movs r0, 0x26 ldrsh r1, [r5, r0] movs r2, 0x34 ldrsh r0, [r5, r2] cmn r1, r0 ble _0812EAEA movs r0, 0x1 strh r0, [r5, 0x36] movs r1, 0x32 ldrsh r0, [r5, r1] negs r0, r0 movs r1, 0x3 bl __divsi3 lsls r0, 1 strh r0, [r5, 0x32] _0812EAEA: adds r0, r4, 0 adds r0, 0xC0 strh r0, [r5, 0x30] ldrh r0, [r5, 0x32] adds r0, 0x80 strh r0, [r5, 0x32] adds r0, r5, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0812EB0A adds r0, r5, 0 bl move_anim_8072740 _0812EB0A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_812EA4C thumb_func_start sub_812EB10 sub_812EB10: @ 812EB10 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 ldr r1, _0812EB40 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r2, r0, r1 movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, 0 bne _0812EC1C ldr r0, _0812EB44 movs r3, 0 ldrsh r1, [r0, r3] mov r8, r0 cmp r1, 0 bne _0812EB4C ldr r0, _0812EB48 b _0812EB4E .align 2, 0 _0812EB40: .4byte 0x03004b20 _0812EB44: .4byte 0x03004b00 _0812EB48: .4byte 0x0202f7c8 _0812EB4C: ldr r0, _0812EB88 _0812EB4E: ldrb r0, [r0] strh r0, [r2, 0x1E] mov r1, r8 ldrb r0, [r1] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0812EB8C lsls r4, r7, 2 adds r0, r4, r7 lsls r0, 3 adds r6, r0, r1 strh r5, [r6, 0x1C] adds r0, r5, 0 movs r1, 0 bl sub_8078E70 mov r2, r8 movs r3, 0x2 ldrsh r0, [r2, r3] cmp r0, 0x1 beq _0812EBB0 cmp r0, 0x1 bgt _0812EB90 cmp r0, 0 beq _0812EB98 lsls r2, r5, 4 b _0812EBF8 .align 2, 0 _0812EB88: .4byte 0x0202f7c9 _0812EB8C: .4byte 0x03004b20 _0812EB90: cmp r0, 0x2 beq _0812EBBA lsls r2, r5, 4 b _0812EBF8 _0812EB98: movs r2, 0xA0 lsls r2, 1 adds r0, r5, 0 movs r1, 0xE0 movs r3, 0 bl obj_id_set_rotscale adds r0, r5, 0 bl sub_8079A64 lsls r2, r5, 4 b _0812EBF8 _0812EBB0: movs r2, 0x98 lsls r2, 1 movs r3, 0xF0 lsls r3, 4 b _0812EBC2 _0812EBBA: movs r2, 0x98 lsls r2, 1 movs r3, 0xF1 lsls r3, 8 _0812EBC2: adds r0, r5, 0 movs r1, 0xD0 bl obj_id_set_rotscale adds r0, r5, 0 bl sub_8079A64 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _0812EBE8 ldrb r0, [r6, 0x1E] bl battle_side_get_owner lsls r0, 24 lsls r2, r5, 4 cmp r0, 0 bne _0812EBF8 _0812EBE8: ldr r0, _0812EC14 lsls r2, r5, 4 adds r1, r2, r5 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x26] adds r0, 0x10 strh r0, [r1, 0x26] _0812EBF8: ldr r1, _0812EC14 adds r0, r2, r5 lsls r0, 2 adds r0, r1 movs r1, 0x2 strh r1, [r0, 0x24] ldr r0, _0812EC18 adds r1, r4, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0812EC68 .align 2, 0 _0812EC14: .4byte 0x02020004 _0812EC18: .4byte 0x03004b20 _0812EC1C: ldrb r5, [r2, 0x1C] ldrh r0, [r2, 0xC] adds r0, 0x1 movs r4, 0 strh r0, [r2, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _0812EC40 strh r4, [r2, 0xC] ldr r0, _0812EC74 lsls r1, r5, 4 adds r1, r5 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x24] negs r0, r0 strh r0, [r1, 0x24] _0812EC40: ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xD bne _0812EC68 adds r0, r5, 0 bl sub_8078F40 ldr r1, _0812EC74 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r0, r1 strh r4, [r0, 0x24] strh r4, [r0, 0x26] adds r0, r7, 0 bl move_anim_task_del _0812EC68: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812EC74: .4byte 0x02020004 thumb_func_end sub_812EB10 thumb_func_start sub_812EC78 sub_812EC78: @ 812EC78 push {r4,r5,lr} adds r4, r0, 0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xC bl __umodsi3 lsls r0, 24 lsrs r0, 24 ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, r0 ldr r3, _0812ECC4 adds r0, r3, 0 ands r1, r0 ldr r0, _0812ECC8 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] bl Random ldr r5, _0812ECCC ands r5, r0 bl Random movs r1, 0xFF ands r1, r0 movs r0, 0x1 ands r0, r5 cmp r0, 0 beq _0812ECD0 movs r2, 0xBC lsls r2, 3 adds r0, r5, r2 b _0812ECD8 .align 2, 0 _0812ECC4: .4byte 0x000003ff _0812ECC8: .4byte 0xfffffc00 _0812ECCC: .4byte 0x000001ff _0812ECD0: movs r3, 0xBC lsls r3, 3 adds r0, r3, 0 subs r0, r5 _0812ECD8: strh r0, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0812ECEA movs r2, 0x90 lsls r2, 3 adds r0, r1, r2 b _0812ECF2 _0812ECEA: movs r3, 0x90 lsls r3, 3 adds r0, r3, 0 subs r0, r1 _0812ECF2: strh r0, [r4, 0x30] ldr r0, _0812ED04 ldrh r0, [r0] strh r0, [r4, 0x32] lsls r0, 16 cmp r0, 0 bne _0812ED0C ldr r0, _0812ED08 b _0812ED0E .align 2, 0 _0812ED04: .4byte 0x03004b00 _0812ED08: .4byte 0x0000fff8 _0812ED0C: movs r0, 0xF8 _0812ED0E: strh r0, [r4, 0x20] movs r0, 0x68 strh r0, [r4, 0x22] ldr r0, _0812ED20 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812ED20: .4byte sub_812ED24 thumb_func_end sub_812EC78 thumb_func_start sub_812ED24 sub_812ED24: @ 812ED24 push {r4,lr} adds r4, r0, 0 movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812ED3C ldrh r3, [r4, 0x2E] lsls r0, r3, 16 asrs r0, 24 ldrh r1, [r4, 0x24] adds r0, r1 b _0812ED46 _0812ED3C: ldrh r3, [r4, 0x2E] lsls r1, r3, 16 asrs r1, 24 ldrh r0, [r4, 0x24] subs r0, r1 _0812ED46: strh r0, [r4, 0x24] ldrh r2, [r4, 0x30] lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r4, 0x26] subs r0, r1 strh r0, [r4, 0x26] adds r0, r3, 0 subs r0, 0x16 strh r0, [r4, 0x2E] adds r1, r2, 0 subs r1, 0x30 strh r1, [r4, 0x30] lsls r0, 16 cmp r0, 0 bge _0812ED6A movs r0, 0 strh r0, [r4, 0x2E] _0812ED6A: ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F bne _0812ED7E adds r0, r4, 0 bl move_anim_8072740 _0812ED7E: pop {r4} pop {r0} bx r0 thumb_func_end sub_812ED24 thumb_func_start sub_812ED84 sub_812ED84: @ 812ED84 push {r4,lr} adds r4, r0, 0 ldr r1, _0812EDE4 ldr r2, _0812EDE8 adds r0, r2, 0 strh r0, [r1] movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] ldr r0, _0812EDEC movs r1, 0 strh r1, [r0] ldr r0, _0812EDF0 strh r1, [r0] ldr r0, _0812EDF4 strh r1, [r0] adds r0, 0x4 strh r1, [r0] ldr r0, _0812EDF8 ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] adds r0, r4, 0 movs r1, 0 bl sub_8078764 ldrb r1, [r4, 0x1] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r4, 0x1] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _0812EDFC str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _0812EDE4: .4byte REG_WINOUT _0812EDE8: .4byte 0x00001f3f _0812EDEC: .4byte 0x030042c4 _0812EDF0: .4byte 0x03004240 _0812EDF4: .4byte REG_WIN0H _0812EDF8: .4byte 0x03004b00 _0812EDFC: .4byte sub_812EE00 thumb_func_end sub_812ED84 thumb_func_start sub_812EE00 sub_812EE00: @ 812EE00 push {r4,lr} adds r4, r0, 0 movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _0812EE3E cmp r0, 0x1 bgt _0812EE16 cmp r0, 0 beq _0812EE20 b _0812EE94 _0812EE16: cmp r0, 0x2 beq _0812EE54 cmp r0, 0x3 beq _0812EE76 b _0812EE94 _0812EE20: adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0812EE94 b _0812EE6E _0812EE3E: ldrh r0, [r4, 0x2E] subs r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bne _0812EE94 adds r0, r4, 0 movs r1, 0x1 bl ChangeSpriteAffineAnim b _0812EE6E _0812EE54: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0812EE94 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _0812EE6E: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] b _0812EE94 _0812EE76: ldr r1, _0812EE9C ldr r2, _0812EEA0 adds r0, r2, 0 strh r0, [r1] movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 eors r0, r1 strh r0, [r2] adds r0, r4, 0 bl move_anim_8072740 _0812EE94: pop {r4} pop {r0} bx r0 .align 2, 0 _0812EE9C: .4byte REG_WINOUT _0812EEA0: .4byte 0x00003f3f thumb_func_end sub_812EE00 thumb_func_start sub_812EEA4 sub_812EEA4: @ 812EEA4 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _0812EEE0 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] ldr r1, _0812EEE4 ldrh r0, [r1] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x2] strh r0, [r4, 0x30] ldr r1, _0812EEE8 str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812EEE0: .4byte 0x0202f7c8 _0812EEE4: .4byte 0x03004b00 _0812EEE8: .4byte sub_812EEEC thumb_func_end sub_812EEA4 thumb_func_start sub_812EEEC sub_812EEEC: @ 812EEEC push {r4,lr} adds r4, r0, 0 movs r1, 0x30 ldrsh r0, [r4, r1] ldrh r1, [r4, 0x32] lsls r1, 16 asrs r1, 24 bl sine strh r0, [r4, 0x24] movs r2, 0x30 ldrsh r0, [r4, r2] ldrh r1, [r4, 0x34] lsls r1, 16 asrs r1, 24 bl cosine strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r0, 0x9 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] lsls r1, r0, 16 cmp r0, 0x3F bls _0812EF26 asrs r0, r1, 16 cmp r0, 0xC3 ble _0812EF38 _0812EF26: ldr r0, _0812EF34 ldrb r0, [r0] bl sub_8079E90 subs r0, 0x1 b _0812EF42 .align 2, 0 _0812EF34: .4byte 0x0202f7c8 _0812EF38: ldr r0, _0812EF84 ldrb r0, [r0] bl sub_8079E90 adds r0, 0x1 _0812EF42: adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] movs r3, 0x38 ldrsh r2, [r4, r3] cmp r2, 0 bne _0812EF88 movs r1, 0x80 lsls r1, 3 adds r0, r1, 0 ldrh r3, [r4, 0x32] adds r0, r3 strh r0, [r4, 0x32] movs r1, 0x80 lsls r1, 1 adds r0, r1, 0 ldrh r3, [r4, 0x34] adds r0, r3 strh r0, [r4, 0x34] ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 16 movs r3, 0x2E ldrsh r1, [r4, r3] cmp r0, r1 bne _0812EFB8 strh r2, [r4, 0x36] movs r0, 0x1 strh r0, [r4, 0x38] b _0812EFB8 .align 2, 0 _0812EF84: .4byte 0x0202f7c8 _0812EF88: cmp r2, 0x1 bne _0812EFB8 ldr r1, _0812EFC0 adds r0, r1, 0 ldrh r2, [r4, 0x32] adds r0, r2 strh r0, [r4, 0x32] ldr r3, _0812EFC4 adds r0, r3, 0 ldrh r1, [r4, 0x34] adds r0, r1 strh r0, [r4, 0x34] ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 16 movs r2, 0x2E ldrsh r1, [r4, r2] cmp r0, r1 bne _0812EFB8 adds r0, r4, 0 bl move_anim_8072740 _0812EFB8: pop {r4} pop {r0} bx r0 .align 2, 0 _0812EFC0: .4byte 0xfffffc00 _0812EFC4: .4byte 0xffffff00 thumb_func_end sub_812EEEC thumb_func_start sub_812EFC8 sub_812EFC8: @ 812EFC8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] movs r0, 0 bl obj_id_for_side_relative_to_move bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _0812F004 movs r0, 0x1 str r0, [sp, 0x14] ldr r0, _0812F000 ldr r1, [r0, 0x10] mov r9, r1 ldr r2, [r0, 0xC] mov r8, r2 ldrh r6, [r0, 0x2] movs r3, 0x14 b _0812F13C .align 2, 0 _0812F000: .4byte 0x02019348 _0812F004: ldr r0, _0812F070 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0812F0AC movs r0, 0 str r0, [sp, 0x14] ldr r6, _0812F074 ldr r4, _0812F078 ldrb r0, [r4] lsls r0, 1 adds r0, r6 ldrh r0, [r0] movs r5, 0x64 muls r0, r5 ldr r7, _0812F07C adds r0, r7 movs r1, 0 bl PokemonGetField mov r9, r0 ldrb r0, [r4] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 adds r0, r7 movs r1, 0x1 bl PokemonGetField mov r8, r0 ldrb r2, [r4] lsls r1, r2, 2 ldr r0, _0812F080 adds r1, r0 ldrh r0, [r1, 0x2] cmp r0, 0 bne _0812F0A4 adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0812F084 ldrb r0, [r4] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 adds r0, r7 b _0812F092 .align 2, 0 _0812F070: .4byte 0x0202f7c8 _0812F074: .4byte 0x02024a6a _0812F078: .4byte 0x0202f7c9 _0812F07C: .4byte 0x03004360 _0812F080: .4byte 0x02017800 _0812F084: ldrb r0, [r4] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 ldr r1, _0812F0A0 adds r0, r1 _0812F092: movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r6, r0, 16 b _0812F0A6 .align 2, 0 _0812F0A0: .4byte 0x030045c0 _0812F0A4: ldrh r6, [r1, 0x2] _0812F0A6: movs r1, 0x14 mov r10, r1 b _0812F13E _0812F0AC: movs r2, 0x1 str r2, [sp, 0x14] ldr r6, _0812F10C ldr r4, _0812F110 ldrb r0, [r4] lsls r0, 1 adds r0, r6 ldrh r0, [r0] movs r5, 0x64 muls r0, r5 ldr r7, _0812F114 adds r0, r7 movs r1, 0 bl PokemonGetField mov r9, r0 ldrb r0, [r4] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 adds r0, r7 movs r1, 0x1 bl PokemonGetField mov r8, r0 ldrb r2, [r4] lsls r1, r2, 2 ldr r0, _0812F118 adds r1, r0 ldrh r0, [r1, 0x2] cmp r0, 0 bne _0812F138 adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0812F120 ldrb r0, [r4] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 ldr r1, _0812F11C adds r0, r1 b _0812F12C .align 2, 0 _0812F10C: .4byte 0x02024a6a _0812F110: .4byte 0x0202f7c9 _0812F114: .4byte 0x030045c0 _0812F118: .4byte 0x02017800 _0812F11C: .4byte 0x03004360 _0812F120: ldrb r0, [r4] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 adds r0, r7 _0812F12C: movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r6, r0, 16 b _0812F13A _0812F138: ldrh r6, [r1, 0x2] _0812F13A: ldr r3, _0812F218 _0812F13C: mov r10, r3 _0812F13E: ldr r0, _0812F21C ldrb r0, [r0] bl sub_8079ED4 lsls r0, 24 lsrs r7, r0, 24 ldr r5, _0812F21C ldrb r0, [r5] movs r1, 0 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 mov r2, r10 lsls r1, r2, 16 asrs r1, 16 adds r4, r1 lsls r4, 16 asrs r4, 16 lsrs r0, 24 str r0, [sp] movs r0, 0x5 str r0, [sp, 0x4] mov r3, r9 str r3, [sp, 0x8] mov r0, r8 str r0, [sp, 0xC] adds r0, r6, 0 ldr r1, [sp, 0x14] movs r2, 0 adds r3, r4, 0 bl sub_8079F44 adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldr r0, _0812F220 lsls r5, r6, 4 adds r5, r6 lsls r5, 2 adds r5, r0 movs r0, 0x3 ands r7, r0 lsls r7, 2 mov r8, r7 ldrb r0, [r5, 0x5] movs r4, 0xD negs r4, r4 adds r1, r4, 0 ands r1, r0 mov r2, r8 orrs r1, r2 strb r1, [r5, 0x5] ldrb r2, [r5, 0x1] adds r0, r4, 0 ands r0, r2 movs r2, 0x4 orrs r0, r2 strb r0, [r5, 0x1] ldr r0, _0812F224 lsrs r1, 4 lsls r1, 4 movs r3, 0x80 lsls r3, 1 adds r2, r3, 0 orrs r1, r2 movs r2, 0x20 bl FillPalette ldrb r0, [r5, 0x5] ands r4, r0 mov r0, r8 orrs r4, r0 strb r4, [r5, 0x5] ldr r1, _0812F228 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r3, _0812F22C ldr r0, _0812F230 ldr r2, [sp, 0x10] lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldrh r2, [r1, 0xA] movs r0, 0x10 subs r0, r2 lsls r0, 8 orrs r0, r2 strh r0, [r3] strh r6, [r1, 0x8] ldr r0, _0812F234 str r0, [r1] add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812F218: .4byte 0x0000ffec _0812F21C: .4byte 0x0202f7c8 _0812F220: .4byte 0x02020004 _0812F224: .4byte 0x00007fff _0812F228: .4byte REG_BLDCNT _0812F22C: .4byte REG_BLDALPHA _0812F230: .4byte 0x03004b20 _0812F234: .4byte sub_812F238 thumb_func_end sub_812EFC8 thumb_func_start sub_812F238 sub_812F238: @ 812F238 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0812F284 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r3, r1, r2 ldrh r0, [r3, 0x1C] adds r1, r0, 0x1 strh r1, [r3, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _0812F280 movs r0, 0 strh r0, [r3, 0x1C] ldrh r1, [r3, 0xA] adds r1, 0x1 strh r1, [r3, 0xA] ldr r2, _0812F288 movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r1, 0xA ldrsh r0, [r3, r1] cmp r0, 0xA bne _0812F280 movs r0, 0x80 lsls r0, 1 strh r0, [r3, 0x1C] strh r0, [r3, 0x1E] ldr r0, _0812F28C str r0, [r3] _0812F280: pop {r0} bx r0 .align 2, 0 _0812F284: .4byte 0x03004b20 _0812F288: .4byte REG_BLDALPHA _0812F28C: .4byte sub_812F290 thumb_func_end sub_812F238 thumb_func_start sub_812F290 sub_812F290: @ 812F290 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, _0812F308 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r5, r1, r2 ldrb r2, [r5, 0x8] ldrh r0, [r5, 0x1C] subs r0, 0x10 movs r4, 0 strh r0, [r5, 0x1C] ldrh r0, [r5, 0x1E] adds r0, 0x80 strh r0, [r5, 0x1E] ldr r1, _0812F30C lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r6, r0, r1 ldrb r2, [r6, 0x1] lsls r1, r2, 30 lsrs r1, 30 movs r0, 0x2 orrs r1, r0 subs r0, 0x6 ands r0, r2 orrs r0, r1 strb r0, [r6, 0x1] movs r0, 0x1C ldrsh r2, [r5, r0] movs r0, 0x1E ldrsh r3, [r5, r0] str r4, [sp] adds r0, r6, 0 movs r1, 0x1 bl sub_8078FDC ldrh r0, [r5, 0x20] adds r0, 0x1 strh r0, [r5, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 bne _0812F2FE adds r0, r6, 0 bl sub_8079098 adds r0, r6, 0 bl sub_807A0F4 ldr r0, _0812F310 str r0, [r5] _0812F2FE: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812F308: .4byte 0x03004b20 _0812F30C: .4byte 0x02020004 _0812F310: .4byte sub_8078634 thumb_func_end sub_812F290 thumb_func_start sub_812F314 sub_812F314: @ 812F314 push {r4-r7,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0812F334 adds r4, r1, r0 ldr r0, _0812F338 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812F340 ldr r0, _0812F33C b _0812F342 .align 2, 0 _0812F334: .4byte 0x03004b20 _0812F338: .4byte 0x03004b00 _0812F33C: .4byte 0x0202f7c8 _0812F340: ldr r0, _0812F3C0 _0812F342: ldrb r5, [r0] movs r6, 0 strh r6, [r4, 0x8] strh r6, [r4, 0xA] strh r6, [r4, 0xC] movs r0, 0x10 strh r0, [r4, 0xE] strh r6, [r4, 0x10] strh r5, [r4, 0x12] movs r0, 0x20 strh r0, [r4, 0x14] strh r6, [r4, 0x16] movs r0, 0x18 strh r0, [r4, 0x18] adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812F374 movs r2, 0x18 ldrsh r0, [r4, r2] negs r0, r0 strh r0, [r4, 0x18] _0812F374: adds r0, r5, 0 bl sub_8077FC0 lsls r0, 24 lsrs r0, 24 subs r0, 0x22 strh r0, [r4, 0x22] cmp r0, 0 bge _0812F388 strh r6, [r4, 0x22] _0812F388: ldrh r0, [r4, 0x22] adds r0, 0x42 strh r0, [r4, 0x24] ldr r0, _0812F3C4 ldrb r0, [r0] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] adds r0, r5, 0 bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812F3DC ldr r0, _0812F3C8 str r0, [sp] ldr r1, _0812F3CC ldr r2, _0812F3D0 adds r0, r2, 0 strh r0, [r1] ldr r0, _0812F3D4 ldrh r5, [r0] ldr r0, _0812F3D8 b _0812F3EE .align 2, 0 _0812F3C0: .4byte 0x0202f7c9 _0812F3C4: .4byte 0x03004b00 _0812F3C8: .4byte REG_BG1HOFS _0812F3CC: .4byte REG_BLDCNT _0812F3D0: .4byte 0x00003f42 _0812F3D4: .4byte 0x030042c0 _0812F3D8: .4byte 0x030041b4 _0812F3DC: ldr r0, _0812F454 str r0, [sp] ldr r1, _0812F458 ldr r2, _0812F45C adds r0, r2, 0 strh r0, [r1] ldr r0, _0812F460 ldrh r5, [r0] ldr r0, _0812F464 _0812F3EE: ldrh r3, [r0] movs r7, 0 movs r2, 0 ldr r6, _0812F468 movs r0, 0xF0 lsls r0, 3 adds r0, r6 mov r12, r0 _0812F3FE: lsls r2, 16 asrs r2, 16 lsls r1, r2, 1 adds r0, r1, r6 strh r5, [r0] add r1, r12 strh r5, [r1] adds r0, r2, 0x1 lsls r0, 1 adds r1, r0, r6 strh r3, [r1] add r0, r12 strh r3, [r0] lsls r0, r7, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 adds r2, 0x2 lsls r2, 16 lsrs r2, 16 lsrs r7, r0, 16 asrs r0, 16 cmp r0, 0x9F ble _0812F3FE ldr r0, _0812F46C str r0, [sp, 0x4] mov r1, sp movs r2, 0 movs r0, 0x1 strb r0, [r1, 0x8] mov r0, sp strb r2, [r0, 0x9] ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl sub_80895F8 ldr r0, _0812F470 str r0, [r4] add sp, 0xC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812F454: .4byte REG_BG2HOFS _0812F458: .4byte REG_BLDCNT _0812F45C: .4byte 0x00003f44 _0812F460: .4byte 0x03004288 _0812F464: .4byte 0x03004280 _0812F468: .4byte 0x03004de0 _0812F46C: .4byte 0xa6600001 _0812F470: .4byte sub_812F474 thumb_func_end sub_812F314 thumb_func_start sub_812F474 sub_812F474: @ 812F474 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _0812F4A8 adds r6, r0, r1 ldrb r0, [r6, 0x12] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812F4B4 ldr r0, _0812F4AC ldrh r0, [r0] str r0, [sp, 0x4] ldr r0, _0812F4B0 b _0812F4BC .align 2, 0 _0812F4A8: .4byte 0x03004b20 _0812F4AC: .4byte 0x030042c0 _0812F4B0: .4byte 0x030041b4 _0812F4B4: ldr r0, _0812F4D4 ldrh r0, [r0] str r0, [sp, 0x4] ldr r0, _0812F4D8 _0812F4BC: ldrh r0, [r0] str r0, [sp, 0x8] movs r1, 0x8 ldrsh r0, [r6, r1] cmp r0, 0x1 bne _0812F4CA b _0812F6A6 _0812F4CA: cmp r0, 0x1 bgt _0812F4DC cmp r0, 0 beq _0812F4EA b _0812F712 .align 2, 0 _0812F4D4: .4byte 0x03004288 _0812F4D8: .4byte 0x03004280 _0812F4DC: cmp r0, 0x2 bne _0812F4E2 b _0812F6C4 _0812F4E2: cmp r0, 0x3 bne _0812F4E8 b _0812F70C _0812F4E8: b _0812F712 _0812F4EA: movs r2, 0x24 ldrsh r0, [r6, r2] lsls r0, 17 lsrs r5, r0, 16 movs r3, 0 str r3, [sp] mov r9, r3 movs r4, 0 ldrh r0, [r6, 0xA] adds r0, 0x2 movs r1, 0xFF ands r0, r1 strh r0, [r6, 0xA] ldrh r7, [r6, 0xA] mov r8, r7 movs r0, 0x14 ldrsh r1, [r6, r0] movs r0, 0xFC lsls r0, 3 bl __divsi3 strh r0, [r6, 0x1A] movs r1, 0x16 ldrsh r0, [r6, r1] lsls r0, 1 movs r2, 0x1A ldrsh r1, [r6, r2] bl __divsi3 negs r0, r0 strh r0, [r6, 0x1C] ldrh r0, [r6, 0x16] strh r0, [r6, 0x1E] lsls r0, 16 asrs r0, 21 lsls r0, 16 lsrs r7, r0, 16 strh r7, [r6, 0x20] ldrh r2, [r6, 0x24] lsls r3, r2, 16 mov r12, r3 asrs r1, r3, 16 movs r3, 0x22 ldrsh r0, [r6, r3] cmp r1, r0 ble _0812F60A ldr r0, _0812F660 mov r10, r0 ldr r1, [sp, 0x4] lsls r0, r1, 16 asrs r0, 16 str r0, [sp, 0x10] ldr r2, [sp, 0x8] lsls r0, r2, 16 asrs r0, 16 str r0, [sp, 0xC] _0812F55A: lsls r5, 16 asrs r5, 16 adds r2, r5, 0x1 lsls r2, 1 mov r3, r10 ldrb r1, [r3, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r2, r0 ldr r0, _0812F664 adds r2, r0 lsls r4, 16 asrs r4, 16 mov r1, r9 lsls r0, r1, 16 asrs r0, 16 subs r0, r4, r0 ldr r3, [sp, 0xC] adds r0, r3, r0 strh r0, [r2] lsls r3, r5, 1 mov r0, r10 ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 adds r3, r0 ldr r1, _0812F664 adds r3, r1 lsls r1, r7, 16 asrs r1, 16 ldr r2, [sp, 0x10] adds r1, r2, r1 mov r7, r8 lsls r2, r7, 16 asrs r2, 16 lsls r0, r2, 1 ldr r7, _0812F668 adds r0, r7 ldrh r0, [r0] lsls r0, 16 asrs r0, 21 adds r1, r0 strh r1, [r3] adds r2, 0xA mov r8, r2 movs r0, 0xFF mov r1, r8 ands r1, r0 mov r8, r1 ldrh r0, [r6, 0x1C] ldrh r2, [r6, 0x1E] adds r0, r2 strh r0, [r6, 0x1E] lsls r0, 16 asrs r0, 21 lsls r0, 16 lsrs r7, r0, 16 strh r7, [r6, 0x20] adds r4, 0x1 lsls r4, 16 lsrs r4, 16 subs r5, 0x2 lsls r5, 16 lsrs r5, 16 ldr r3, [sp] lsls r0, r3, 16 asrs r0, 16 ldrh r1, [r6, 0x14] adds r0, r1 lsls r0, 16 lsrs r2, r0, 16 str r2, [sp] asrs r0, 21 lsls r0, 16 lsrs r0, 16 mov r9, r0 ldr r0, _0812F66C add r0, r12 lsrs r2, r0, 16 lsls r3, r2, 16 mov r12, r3 asrs r1, r3, 16 movs r3, 0x22 ldrsh r0, [r6, r3] cmp r1, r0 bgt _0812F55A _0812F60A: lsls r1, r2, 17 cmp r1, 0 blt _0812F636 ldr r4, _0812F664 ldr r7, [sp, 0x4] lsls r0, r7, 16 asrs r0, 16 adds r3, r0, 0 adds r3, 0xF0 movs r0, 0xF0 lsls r0, 3 adds r5, r4, r0 _0812F622: asrs r2, r1, 16 lsls r1, r2, 1 adds r0, r1, r4 strh r3, [r0] adds r1, r5 strh r3, [r1] subs r2, 0x2 lsls r1, r2, 16 cmp r1, 0 bge _0812F622 _0812F636: ldrh r0, [r6, 0x14] adds r0, 0x1 strh r0, [r6, 0x14] lsls r0, 16 asrs r0, 16 cmp r0, 0x3F ble _0812F69C movs r0, 0x40 strh r0, [r6, 0x14] ldrh r0, [r6, 0xC] adds r0, 0x1 strh r0, [r6, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0812F670 ldrh r0, [r6, 0xE] subs r0, 0x1 strh r0, [r6, 0xE] b _0812F676 .align 2, 0 _0812F660: .4byte 0x03004dc0 _0812F664: .4byte 0x03004de0 _0812F668: .4byte gSineTable _0812F66C: .4byte 0xffff0000 _0812F670: ldrh r0, [r6, 0x10] adds r0, 0x1 strh r0, [r6, 0x10] _0812F676: ldr r0, _0812F698 ldrh r1, [r6, 0x10] lsls r1, 8 ldrh r2, [r6, 0xE] orrs r1, r2 strh r1, [r0] movs r2, 0xE ldrsh r1, [r6, r2] cmp r1, 0 bne _0812F712 movs r3, 0x10 ldrsh r0, [r6, r3] cmp r0, 0x10 bne _0812F712 strh r1, [r6, 0xC] strh r1, [r6, 0xE] b _0812F700 .align 2, 0 _0812F698: .4byte REG_BLDALPHA _0812F69C: ldrh r0, [r6, 0x18] ldrh r7, [r6, 0x16] adds r0, r7 strh r0, [r6, 0x16] b _0812F712 _0812F6A6: ldrh r0, [r6, 0xC] adds r0, 0x1 strh r0, [r6, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0xC ble _0812F712 ldr r1, _0812F6C0 movs r0, 0x3 strb r0, [r1, 0x15] movs r0, 0 strh r0, [r6, 0xC] b _0812F700 .align 2, 0 _0812F6C0: .4byte 0x03004dc0 _0812F6C4: ldrh r0, [r6, 0xC] adds r0, 0x1 strh r0, [r6, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0812F6DA ldrh r0, [r6, 0xE] adds r0, 0x1 strh r0, [r6, 0xE] b _0812F6E0 _0812F6DA: ldrh r0, [r6, 0x10] subs r0, 0x1 strh r0, [r6, 0x10] _0812F6E0: ldr r2, _0812F708 ldrh r0, [r6, 0x10] lsls r0, 8 ldrh r1, [r6, 0xE] orrs r0, r1 strh r0, [r2] movs r1, 0xE ldrsh r0, [r6, r1] cmp r0, 0x10 bne _0812F712 movs r2, 0x10 ldrsh r0, [r6, r2] cmp r0, 0 bne _0812F712 strh r0, [r6, 0xC] strh r0, [r6, 0xE] _0812F700: ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] b _0812F712 .align 2, 0 _0812F708: .4byte REG_BLDALPHA _0812F70C: adds r0, r4, 0 bl move_anim_task_del _0812F712: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_812F474 thumb_func_start sub_812F724 sub_812F724: @ 812F724 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _0812F75C adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] ldr r0, _0812F760 ldrb r0, [r0] bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 strh r1, [r4, 0x26] ldr r2, _0812F764 adds r0, r4, 0 bl sub_80798F4 ldr r0, _0812F768 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0812F75C: .4byte 0x03004b20 _0812F760: .4byte 0x03004b00 _0812F764: .4byte gUnknown_08402750 _0812F768: .4byte sub_812F76C thumb_func_end sub_812F724 thumb_func_start sub_812F76C sub_812F76C: @ 812F76C push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r2, _0812F7C4 adds r3, r0, r2 ldrh r0, [r3, 0x8] adds r1, r0, 0x1 movs r5, 0 strh r1, [r3, 0x8] subs r0, 0x14 lsls r0, 16 lsrs r0, 16 adds r6, r2, 0 cmp r0, 0x16 bhi _0812F7D0 ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _0812F7E0 strh r5, [r3, 0xA] ldrh r0, [r3, 0xC] adds r0, 0x1 strh r0, [r3, 0xC] movs r5, 0x1 ands r0, r5 cmp r0, 0 bne _0812F7D0 ldr r2, _0812F7C8 movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _0812F7CC strh r1, [r0, 0x24] b _0812F7E0 .align 2, 0 _0812F7C4: .4byte 0x03004b20 _0812F7C8: .4byte 0x02020004 _0812F7CC: .4byte 0x0000ffff _0812F7D0: ldr r2, _0812F800 movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r5, [r0, 0x24] _0812F7E0: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r6 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _0812F7F8 adds r0, r4, 0 bl move_anim_task_del _0812F7F8: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812F800: .4byte 0x02020004 thumb_func_end sub_812F76C thumb_func_start sub_812F804 sub_812F804: @ 812F804 push {r4-r6,lr} mov r6, r8 push {r6} mov r8, r0 adds r5, r2, 0 adds r0, r3, 0 ldr r4, [sp, 0x14] ldr r6, [sp, 0x18] lsls r1, 16 lsrs r1, 16 lsls r5, 16 lsrs r5, 16 lsls r4, 16 lsrs r4, 16 lsls r6, 16 lsrs r6, 16 mov r2, r8 strh r1, [r2, 0x20] strh r5, [r2, 0x22] lsls r1, 16 asrs r1, 16 lsls r2, r1, 4 mov r3, r8 strh r2, [r3, 0x36] lsls r5, 16 asrs r5, 16 lsls r2, r5, 4 strh r2, [r3, 0x38] lsls r0, 16 asrs r0, 16 subs r0, r1 lsls r0, 4 adds r1, r6, 0 bl __divsi3 mov r1, r8 strh r0, [r1, 0x3A] lsls r4, 16 asrs r4, 16 subs r4, r5 lsls r4, 4 adds r0, r4, 0 adds r1, r6, 0 bl __divsi3 mov r2, r8 strh r0, [r2, 0x3C] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_812F804 thumb_func_start sub_812F86C sub_812F86C: @ 812F86C ldrh r1, [r0, 0x3A] ldrh r2, [r0, 0x36] adds r1, r2 strh r1, [r0, 0x36] ldrh r2, [r0, 0x3C] ldrh r3, [r0, 0x38] adds r2, r3 strh r2, [r0, 0x38] lsls r1, 16 asrs r1, 20 strh r1, [r0, 0x20] lsls r2, 16 asrs r2, 20 strh r2, [r0, 0x22] bx lr thumb_func_end sub_812F86C thumb_func_start sub_812F88C sub_812F88C: @ 812F88C push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 ldrh r6, [r4, 0x20] ldrh r5, [r4, 0x22] bl sub_8078650 ldr r0, _0812F8D4 ldrb r1, [r0] adds r0, r4, 0 bl StartSpriteAffineAnim movs r0, 0x20 ldrsh r1, [r4, r0] movs r0, 0x22 ldrsh r2, [r4, r0] lsls r6, 16 asrs r6, 16 lsls r5, 16 asrs r5, 16 str r5, [sp] movs r0, 0x40 str r0, [sp, 0x4] adds r0, r4, 0 adds r3, r6, 0 bl sub_812F804 movs r0, 0 strh r0, [r4, 0x2E] ldr r0, _0812F8D8 str r0, [r4, 0x1C] add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812F8D4: .4byte 0x03004b00 _0812F8D8: .4byte sub_812F8DC thumb_func_end sub_812F88C thumb_func_start sub_812F8DC sub_812F8DC: @ 812F8DC push {r4,r5,lr} adds r5, r0, 0 ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] movs r0, 0x2E ldrsh r4, [r5, r0] lsls r4, 3 movs r0, 0xFF ands r4, r0 adds r0, r5, 0 bl sub_812F86C adds r0, r4, 0 movs r1, 0x8 bl sine strh r0, [r5, 0x26] movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0x3A ble _0812F942 ldrh r0, [r5, 0x30] adds r0, 0x1 strh r0, [r5, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _0812F942 movs r0, 0 strh r0, [r5, 0x30] ldrh r1, [r5, 0x32] adds r1, 0x1 strh r1, [r5, 0x32] movs r0, 0x1 ands r1, r0 adds r3, r5, 0 adds r3, 0x3E lsls r1, 2 ldrb r2, [r3] subs r0, 0x6 ands r0, r2 orrs r0, r1 strb r0, [r3] movs r1, 0x32 ldrsh r0, [r5, r1] cmp r0, 0x3 ble _0812F942 adds r0, r5, 0 bl move_anim_8074EE0 _0812F942: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812F8DC thumb_func_start sub_812F948 sub_812F948: @ 812F948 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _0812F9A0 ldrh r0, [r6, 0x6] strh r0, [r5, 0x2E] ldrb r1, [r6] adds r0, r5, 0 bl StartSpriteAffineAnim ldr r0, _0812F9A4 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0812F96E ldrh r0, [r6, 0x2] negs r0, r0 strh r0, [r6, 0x2] _0812F96E: ldr r4, _0812F9A8 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x2] adds r0, r1 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x4] adds r0, r6 strh r0, [r5, 0x22] ldr r0, _0812F9AC str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812F9A0: .4byte 0x03004b00 _0812F9A4: .4byte 0x0202f7c9 _0812F9A8: .4byte 0x0202f7c8 _0812F9AC: .4byte sub_80DA48C thumb_func_end sub_812F948 thumb_func_start sub_812F9B0 sub_812F9B0: @ 812F9B0 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 movs r7, 0 ldr r2, _0812FA00 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x8] subs r0, 0x1 strh r0, [r3, 0x8] movs r1, 0x14 ldrsh r0, [r3, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 mov r8, r2 cmp r0, 0 beq _0812FA32 ldrh r0, [r3, 0xA] subs r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0812FA32 movs r2, 0x1A ldrsh r0, [r3, r2] cmp r0, 0 bne _0812FA04 ldrh r0, [r3, 0x10] strh r0, [r3, 0x1A] negs r0, r0 strh r0, [r3, 0x10] b _0812FA06 .align 2, 0 _0812FA00: .4byte 0x03004b20 _0812FA04: strh r7, [r3, 0x1A] _0812FA06: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 mov r2, r8 adds r1, r0, r2 movs r2, 0x1C ldrsh r0, [r1, r2] cmp r0, 0 bne _0812FA22 ldrh r0, [r1, 0x12] strh r0, [r1, 0x1C] negs r0, r0 strh r0, [r1, 0x12] b _0812FA26 _0812FA22: movs r0, 0 strh r0, [r1, 0x1C] _0812FA26: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 add r0, r8 ldrh r1, [r0, 0x22] strh r1, [r0, 0xA] _0812FA32: lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 3 mov r1, r8 adds r4, r0, r1 ldrh r6, [r4, 0x16] ldrh r7, [r4, 0x18] movs r1, 0xC ldrsh r0, [r4, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 mov r12, r2 cmp r0, 0 beq _0812FA70 ldr r3, _0812FA6C movs r2, 0x26 ldrsh r0, [r4, r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 lsrs r2, r6, 8 ldrh r0, [r4, 0x1A] subs r0, r2 strh r0, [r1, 0x24] adds r2, r3, 0 b _0812FA86 .align 2, 0 _0812FA6C: .4byte 0x02020004 _0812FA70: ldr r2, _0812FAB4 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 lsrs r1, r6, 8 ldrh r4, [r4, 0x1A] adds r1, r4 strh r1, [r0, 0x24] _0812FA86: mov r1, r12 adds r0, r1, r5 lsls r0, 3 mov r1, r8 adds r4, r0, r1 movs r1, 0xE ldrsh r0, [r4, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _0812FAB8 movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 lsrs r2, r7, 8 ldrh r0, [r4, 0x1C] subs r0, r2 b _0812FACA .align 2, 0 _0812FAB4: .4byte 0x02020004 _0812FAB8: movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 lsrs r0, r7, 8 ldrh r4, [r4, 0x1C] adds r0, r4 _0812FACA: strh r0, [r1, 0x26] mov r2, r12 adds r0, r2, r5 lsls r0, 3 add r0, r8 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0 bgt _0812FAEA adds r0, r5, 0 bl DestroyTask ldr r1, _0812FAF4 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] _0812FAEA: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812FAF4: .4byte 0x0202f7b2 thumb_func_end sub_812F9B0 thumb_func_start sub_812FAF8 sub_812FAF8: @ 812FAF8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r6, r0, 24 movs r7, 0 ldr r2, _0812FB4C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x8] subs r0, 0x1 strh r0, [r3, 0x8] movs r1, 0x14 ldrsh r0, [r3, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 mov r8, r2 cmp r0, 0 beq _0812FB7E ldrh r0, [r3, 0xA] subs r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0812FB7E movs r2, 0x1A ldrsh r0, [r3, r2] cmp r0, 0 bne _0812FB50 ldrh r0, [r3, 0x10] strh r0, [r3, 0x1A] negs r0, r0 strh r0, [r3, 0x10] b _0812FB52 .align 2, 0 _0812FB4C: .4byte 0x03004b20 _0812FB50: strh r7, [r3, 0x1A] _0812FB52: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 mov r2, r8 adds r1, r0, r2 movs r2, 0x1C ldrsh r0, [r1, r2] cmp r0, 0 bne _0812FB6E ldrh r0, [r1, 0x12] strh r0, [r1, 0x1C] negs r0, r0 strh r0, [r1, 0x12] b _0812FB72 _0812FB6E: movs r0, 0 strh r0, [r1, 0x1C] _0812FB72: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 add r0, r8 ldrh r1, [r0, 0x22] strh r1, [r0, 0xA] _0812FB7E: lsls r3, r6, 2 adds r0, r3, r6 lsls r0, 3 mov r1, r8 adds r4, r0, r1 ldrh r2, [r4, 0xC] ldr r1, _0812FBD0 adds r0, r1, 0 ands r0, r2 ldrh r2, [r4, 0x16] adds r0, r2 lsls r5, r0, 16 lsrs r0, r5, 16 mov r9, r0 ldrh r0, [r4, 0xE] ands r1, r0 ldrh r2, [r4, 0x18] adds r1, r2 lsls r1, 16 lsrs r7, r1, 16 movs r1, 0xC ldrsh r0, [r4, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 mov r12, r3 cmp r0, 0 beq _0812FBD8 ldr r3, _0812FBD4 movs r2, 0x26 ldrsh r0, [r4, r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 lsrs r2, r5, 24 ldrh r0, [r4, 0x1A] subs r0, r2 strh r0, [r1, 0x24] adds r2, r3, 0 b _0812FBEE .align 2, 0 _0812FBD0: .4byte 0x00007fff _0812FBD4: .4byte 0x02020004 _0812FBD8: ldr r2, _0812FC1C movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 lsrs r1, r5, 24 ldrh r4, [r4, 0x1A] adds r1, r4 strh r1, [r0, 0x24] _0812FBEE: mov r1, r12 adds r0, r1, r6 lsls r0, 3 mov r1, r8 adds r4, r0, r1 movs r1, 0xE ldrsh r0, [r4, r1] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _0812FC20 movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 lsrs r2, r7, 8 ldrh r0, [r4, 0x1C] subs r0, r2 b _0812FC32 .align 2, 0 _0812FC1C: .4byte 0x02020004 _0812FC20: movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 lsrs r0, r7, 8 ldrh r4, [r4, 0x1C] adds r0, r4 _0812FC32: strh r0, [r1, 0x26] mov r2, r12 adds r0, r2, r6 lsls r0, 3 mov r1, r8 adds r2, r0, r1 mov r0, r9 strh r0, [r2, 0x16] strh r7, [r2, 0x18] movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, 0 bgt _0812FC58 movs r0, 0x1E strh r0, [r2, 0x8] movs r0, 0 strh r0, [r2, 0x22] ldr r0, _0812FC64 str r0, [r2] _0812FC58: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812FC64: .4byte sub_812F9B0 thumb_func_end sub_812FAF8 thumb_func_start sub_812FC68 sub_812FC68: @ 812FC68 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0812FCC8 mov r8, r0 lsls r7, r6, 2 adds r0, r7, r6 lsls r0, 3 mov r1, r8 adds r4, r0, r1 ldr r1, _0812FCCC ldr r2, _0812FCD0 ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] strh r0, [r4, 0x26] ldr r5, _0812FCD4 ldrh r0, [r5] strh r0, [r4, 0x24] ldrh r0, [r5] strh r0, [r4, 0x8] ldrh r0, [r5, 0xC] strh r0, [r4, 0x22] movs r3, 0x6 ldrsh r0, [r5, r3] cmp r0, 0 beq _0812FCAC ldrh r0, [r4, 0x14] ldr r3, _0812FCD8 adds r1, r3, 0 orrs r0, r1 strh r0, [r4, 0x14] _0812FCAC: ldrb r0, [r2] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0812FCDC ldrh r0, [r5, 0x2] strh r0, [r4, 0xC] ldrh r0, [r5, 0x4] strh r0, [r4, 0xE] mov r3, r8 adds r4, r7, 0 b _0812FD4C .align 2, 0 _0812FCC8: .4byte 0x03004b20 _0812FCCC: .4byte 0x02024be0 _0812FCD0: .4byte 0x0202f7c8 _0812FCD4: .4byte 0x03004b00 _0812FCD8: .4byte 0xffff8000 _0812FCDC: movs r7, 0x2 ldrsh r0, [r5, r7] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _0812FCF8 ldrh r1, [r5, 0x2] ldr r0, _0812FCF4 ands r0, r1 b _0812FD00 .align 2, 0 _0812FCF4: .4byte 0x00007fff _0812FCF8: ldrh r0, [r5, 0x2] ldr r2, _0812FD28 adds r1, r2, 0 orrs r0, r1 _0812FD00: strh r0, [r4, 0xC] ldr r0, _0812FD2C movs r3, 0x4 ldrsh r1, [r0, r3] movs r2, 0x80 lsls r2, 8 ands r1, r2 adds r5, r0, 0 cmp r1, 0 beq _0812FD38 ldr r3, _0812FD30 lsls r4, r6, 2 adds r1, r4, r6 lsls r1, 3 adds r1, r3 ldrh r2, [r5, 0x4] ldr r0, _0812FD34 ands r0, r2 b _0812FD4A .align 2, 0 _0812FD28: .4byte 0xffff8000 _0812FD2C: .4byte 0x03004b00 _0812FD30: .4byte 0x03004b20 _0812FD34: .4byte 0x00007fff _0812FD38: ldr r3, _0812FD70 lsls r4, r6, 2 adds r1, r4, r6 lsls r1, 3 adds r1, r3 ldrh r2, [r5, 0x4] ldr r7, _0812FD74 adds r0, r7, 0 orrs r0, r2 _0812FD4A: strh r0, [r1, 0xE] _0812FD4C: adds r0, r4, r6 lsls r0, 3 adds r0, r3 movs r1, 0 strh r1, [r0, 0x18] strh r1, [r0, 0x16] ldrh r1, [r5, 0x8] strh r1, [r0, 0x10] ldrh r1, [r5, 0xA] strh r1, [r0, 0x12] ldr r1, _0812FD78 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812FD70: .4byte 0x03004b20 _0812FD74: .4byte 0xffff8000 _0812FD78: .4byte sub_812FAF8 thumb_func_end sub_812FC68 thumb_func_start sub_812FD7C sub_812FD7C: @ 812FD7C push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _0812FDB4 adds r5, r0, r1 ldr r4, _0812FDB8 movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812FD9C adds r0, r2, 0 bl move_anim_task_del _0812FD9C: movs r0, 0 strh r0, [r5, 0x8] strh r0, [r5, 0xA] strh r0, [r5, 0xC] ldrh r0, [r4, 0x2] strh r0, [r5, 0xE] movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812FDC0 ldr r0, _0812FDBC b _0812FDC2 .align 2, 0 _0812FDB4: .4byte 0x03004b20 _0812FDB8: .4byte 0x03004b00 _0812FDBC: .4byte 0x0202f7c8 _0812FDC0: ldr r0, _0812FE10 _0812FDC2: ldrb r4, [r0] adds r0, r4, 0 movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x10] adds r0, r4, 0 movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] adds r0, r4, 0 bl sub_8079E90 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x14] ldr r0, _0812FE14 ldrb r0, [r0] bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 strh r1, [r5, 0x26] ldr r2, _0812FE18 adds r0, r5, 0 bl sub_80798F4 ldr r0, _0812FE1C str r0, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812FE10: .4byte 0x0202f7c9 _0812FE14: .4byte 0x03004b00 _0812FE18: .4byte gUnknown_084028AC _0812FE1C: .4byte sub_812FE20 thumb_func_end sub_812FD7C thumb_func_start sub_812FE20 sub_812FE20: @ 812FE20 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0812FE40 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _0812FE44 cmp r0, 0x1 beq _0812FEA4 b _0812FEB2 .align 2, 0 _0812FE40: .4byte 0x03004b20 _0812FE44: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bne _0812FE5A adds r0, r5, 0 movs r1, 0x1 bl sub_812FEB8 _0812FE5A: movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x12 bne _0812FE6A adds r0, r5, 0 movs r1, 0 bl sub_812FEB8 _0812FE6A: adds r0, r4, 0 bl sub_807992C lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0812FEB2 ldrh r0, [r4, 0xE] subs r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 cmp r0, 0 bne _0812FE8C ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0812FEB2 _0812FE8C: strh r1, [r4, 0xA] ldrh r1, [r4, 0x26] lsls r1, 24 lsrs r1, 24 ldr r2, _0812FEA0 adds r0, r4, 0 bl sub_80798F4 b _0812FEB2 .align 2, 0 _0812FEA0: .4byte gUnknown_084028AC _0812FEA4: movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0 bne _0812FEB2 adds r0, r5, 0 bl move_anim_task_del _0812FEB2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_812FE20 thumb_func_start sub_812FEB8 sub_812FEB8: @ 812FEB8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r2, _0812FEDC adds r4, r0, r2 cmp r1, 0 bne _0812FEE0 movs r1, 0x12 movs r3, 0xEC b _0812FEE4 .align 2, 0 _0812FEDC: .4byte 0x03004b20 _0812FEE0: movs r1, 0x1E movs r3, 0x14 _0812FEE4: mov r2, sp ldrh r0, [r4, 0x10] subs r0, r1 strh r0, [r2] ldrh r0, [r4, 0x10] subs r0, r1 subs r0, 0x4 strh r0, [r2, 0x2] ldrh r0, [r4, 0x10] adds r0, r1 strh r0, [r2, 0x4] ldrh r0, [r4, 0x10] adds r0, r1 adds r0, 0x4 strh r0, [r2, 0x6] add r2, sp, 0x8 lsls r1, r3, 24 asrs r1, 24 ldrh r0, [r4, 0x12] adds r0, r1 strh r0, [r2] ldrh r0, [r4, 0x12] adds r0, r1 adds r0, 0x6 strh r0, [r2, 0x2] movs r5, 0 mov r8, r2 ldr r7, _0812FF88 _0812FF1C: lsls r0, r5, 1 add r0, sp movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0x1 ands r0, r5 lsls r0, 1 add r0, r8 movs r3, 0 ldrsh r2, [r0, r3] ldrb r3, [r4, 0x14] subs r3, 0x5 lsls r3, 24 lsrs r3, 24 ldr r0, _0812FF8C bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _0812FF70 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r7 movs r0, 0 strh r0, [r1, 0x2E] movs r0, 0x2 cmp r5, 0x1 bhi _0812FF5E movs r2, 0x2 negs r2, r2 adds r0, r2, 0 _0812FF5E: strh r0, [r1, 0x30] ldr r0, _0812FF90 strh r0, [r1, 0x32] strh r6, [r1, 0x34] movs r0, 0x2 strh r0, [r1, 0x36] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] _0812FF70: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _0812FF1C add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812FF88: .4byte 0x02020004 _0812FF8C: .4byte gSpriteTemplate_84028CC _0812FF90: .4byte 0x0000ffff thumb_func_end sub_812FEB8 thumb_func_start sub_812FF94 sub_812FF94: @ 812FF94 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r4, 0x32] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 ble _0812FFDA ldr r3, _0812FFE0 movs r0, 0x36 ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x34 ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl DestroySprite _0812FFDA: pop {r4} pop {r0} bx r0 .align 2, 0 _0812FFE0: .4byte 0x03004b20 thumb_func_end sub_812FF94 thumb_func_start sub_812FFE4 sub_812FFE4: @ 812FFE4 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0813002C lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r0, 0 strh r0, [r4, 0x8] ldr r1, _08130030 ldrh r0, [r1, 0x2] strh r0, [r4, 0xA] ldrb r0, [r1] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 ldr r2, _08130034 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x5] lsrs r0, 4 lsls r0, 4 movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 adds r0, r1 strh r0, [r4, 0xC] ldr r0, _08130038 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0813002C: .4byte 0x03004b20 _08130030: .4byte 0x03004b00 _08130034: .4byte 0x02020004 _08130038: .4byte sub_813003C thumb_func_end sub_812FFE4 thumb_func_start sub_813003C sub_813003C: @ 813003C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _08130084 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 beq _0813008C ldrh r0, [r4, 0xC] ldr r2, _08130088 movs r3, 0x8 ldrsh r1, [r4, r3] lsls r1, 1 adds r1, r2 ldrh r3, [r1] movs r1, 0x10 movs r2, 0x8 bl BlendPalette ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x17 ble _0813007C movs r0, 0 strh r0, [r4, 0x8] _0813007C: ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] b _0813009E .align 2, 0 _08130084: .4byte 0x03004b20 _08130088: .4byte gUnknown_084028E4 _0813008C: ldrh r0, [r4, 0xC] movs r1, 0x10 movs r2, 0 movs r3, 0 bl BlendPalette adds r0, r5, 0 bl move_anim_task_del _0813009E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_813003C thumb_func_start sub_81300A4 sub_81300A4: @ 81300A4 push {lr} sub sp, 0x1C lsls r0, 24 lsrs r0, 24 movs r2, 0xD0 lsls r2, 1 ldr r1, _081300E0 ldrb r3, [r1] ldr r1, _081300E4 ldrb r1, [r1] str r1, [sp] movs r1, 0xA str r1, [sp, 0x4] movs r1, 0x2 str r1, [sp, 0x8] movs r1, 0x1E str r1, [sp, 0xC] ldr r1, _081300E8 str r1, [sp, 0x10] ldr r1, _081300EC str r1, [sp, 0x14] ldr r1, _081300F0 str r1, [sp, 0x18] movs r1, 0 bl sub_80E3C4C add sp, 0x1C pop {r0} bx r0 .align 2, 0 _081300E0: .4byte 0x0202f7c8 _081300E4: .4byte 0x03004b00 _081300E8: .4byte gUnknown_08D2E014 _081300EC: .4byte gUnknown_08D2E170 _081300F0: .4byte gUnknown_08D2E150 thumb_func_end sub_81300A4 thumb_func_start sub_81300F4 sub_81300F4: @ 81300F4 push {r4-r6,lr} adds r5, r0, 0 ldr r6, _0813014C ldrb r0, [r6] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08130110 ldr r1, _08130150 ldrh r0, [r1] negs r0, r0 strh r0, [r1] _08130110: ldrb r0, [r6] movs r1, 0 bl sub_8077ABC lsls r0, 24 ldr r4, _08130150 lsrs r0, 24 ldrh r1, [r4] adds r0, r1 strh r0, [r5, 0x20] ldrb r0, [r6] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 strh r0, [r5, 0x22] movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 bne _08130158 movs r0, 0xA0 lsls r0, 2 strh r0, [r5, 0x2E] ldr r0, _08130154 strh r0, [r5, 0x30] b _08130180 .align 2, 0 _0813014C: .4byte 0x0202f7c8 _08130150: .4byte 0x03004b00 _08130154: .4byte 0x0000fd80 _08130158: cmp r0, 0x1 bne _08130172 adds r2, r5, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] movs r0, 0xA0 lsls r0, 2 strh r0, [r5, 0x2E] strh r0, [r5, 0x30] b _08130180 _08130172: adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnim movs r0, 0xA0 lsls r0, 2 strh r0, [r5, 0x2E] _08130180: ldr r0, _081301AC ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _081301A0 ldrh r0, [r5, 0x2E] negs r0, r0 strh r0, [r5, 0x2E] adds r2, r5, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] _081301A0: ldr r0, _081301B0 str r0, [r5, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081301AC: .4byte 0x0202f7c8 _081301B0: .4byte sub_81301B4 thumb_func_end sub_81300F4 thumb_func_start sub_81301B4 sub_81301B4: @ 81301B4 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x3A] adds r0, r1 strh r0, [r2, 0x3A] ldrh r1, [r2, 0x30] ldrh r3, [r2, 0x3C] adds r1, r3 strh r1, [r2, 0x3C] lsls r0, 16 asrs r0, 24 strh r0, [r2, 0x24] lsls r1, 16 asrs r1, 24 strh r1, [r2, 0x26] ldrh r0, [r2, 0x38] adds r0, 0x1 strh r0, [r2, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0xE bne _081301E8 adds r0, r2, 0 bl move_anim_8072740 _081301E8: pop {r0} bx r0 thumb_func_end sub_81301B4 thumb_func_start sub_81301EC sub_81301EC: @ 81301EC push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08130218 adds r6, r1, r0 bl sub_8076BE0 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _0813021C movs r0, 0x8 strh r0, [r6, 0x12] movs r0, 0x3 strh r0, [r6, 0x14] movs r0, 0x1 strh r0, [r6, 0x16] b _08130226 .align 2, 0 _08130218: .4byte 0x03004b20 _0813021C: movs r0, 0xC strh r0, [r6, 0x12] movs r0, 0x3 strh r0, [r6, 0x14] strh r1, [r6, 0x16] _08130226: ldr r5, _0813025C ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08130260 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 bl sub_807A100 lsls r4, 24 lsrs r4, 24 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _08130254 adds r0, 0x3 _08130254: asrs r0, 2 adds r0, r4, r0 b _08130284 .align 2, 0 _0813025C: .4byte 0x0202f7c8 _08130260: ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 bl sub_807A100 lsls r4, 24 lsrs r4, 24 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _08130280 adds r0, 0x3 _08130280: asrs r0, 2 subs r0, r4, r0 _08130284: strh r0, [r6, 0x1E] ldr r5, _081302D8 ldrb r0, [r5] movs r1, 0x3 bl sub_8077ABC adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 bl sub_807A100 lsls r4, 24 lsrs r4, 24 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _081302A8 adds r0, 0x3 _081302A8: asrs r0, 2 subs r0, r4, r0 strh r0, [r6, 0x20] ldr r4, _081302DC ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x22] ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x24] ldr r0, _081302E0 str r0, [r6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081302D8: .4byte 0x0202f7c8 _081302DC: .4byte 0x0202f7c9 _081302E0: .4byte sub_81302E4 thumb_func_end sub_81301EC thumb_func_start sub_81302E4 sub_81302E4: @ 81302E4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, _0813030C adds r5, r0, r1 movs r0, 0x8 ldrsh r1, [r5, r0] cmp r1, 0 beq _08130310 cmp r1, 0x1 bne _08130308 b _08130408 _08130308: b _08130416 .align 2, 0 _0813030C: .4byte 0x03004b20 _08130310: ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _08130416 strh r1, [r5, 0xA] movs r1, 0x1E ldrsh r0, [r5, r1] movs r2, 0x20 ldrsh r1, [r5, r2] movs r3, 0x22 ldrsh r2, [r5, r3] movs r4, 0x24 ldrsh r3, [r5, r4] ldrb r4, [r5, 0x12] str r4, [sp] ldrb r4, [r5, 0xC] str r4, [sp, 0x4] add r4, sp, 0x10 str r4, [sp, 0x8] adds r4, 0x2 str r4, [sp, 0xC] bl sub_8130424 movs r6, 0 mov r8, r4 ldr r4, _08130384 _0813034A: add r0, sp, 0x10 movs r2, 0 ldrsh r1, [r0, r2] mov r3, r8 movs r0, 0 ldrsh r2, [r3, r0] ldr r0, _08130388 movs r3, 0x23 bl CreateSprite lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x40 beq _081303DE movs r1, 0x16 ldrsh r0, [r5, r1] cmp r0, 0 bne _0813039E cmp r6, 0 bne _0813038C lsls r2, r3, 4 adds r1, r2, r3 lsls r1, 2 adds r1, r4 ldrh r0, [r5, 0x14] negs r0, r0 strh r0, [r1, 0x26] strh r0, [r1, 0x24] b _081303C6 .align 2, 0 _08130384: .4byte 0x02020004 _08130388: .4byte gSpriteTemplate_840294C _0813038C: lsls r2, r3, 4 adds r1, r2, r3 lsls r1, 2 adds r1, r4 ldrh r0, [r5, 0x14] strh r0, [r1, 0x26] ldrh r0, [r5, 0x14] strh r0, [r1, 0x24] b _081303C6 _0813039E: cmp r6, 0 bne _081303B4 lsls r2, r3, 4 adds r1, r2, r3 lsls r1, 2 adds r1, r4 ldrh r0, [r5, 0x14] negs r0, r0 strh r0, [r1, 0x24] ldrh r0, [r5, 0x14] b _081303C4 _081303B4: lsls r2, r3, 4 adds r1, r2, r3 lsls r1, 2 adds r1, r4 ldrh r0, [r5, 0x14] strh r0, [r1, 0x24] ldrh r0, [r5, 0x14] negs r0, r0 _081303C4: strh r0, [r1, 0x26] _081303C6: ldr r1, _08130404 adds r0, r2, r3 lsls r0, 2 adds r0, r1 movs r1, 0 strh r1, [r0, 0x2E] strh r7, [r0, 0x30] movs r1, 0xA strh r1, [r0, 0x32] ldrh r0, [r5, 0x1C] adds r0, 0x1 strh r0, [r5, 0x1C] _081303DE: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x1 bls _0813034A ldrh r2, [r5, 0xC] movs r3, 0xC ldrsh r1, [r5, r3] movs r4, 0x12 ldrsh r0, [r5, r4] cmp r1, r0 bne _081303FC ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] _081303FC: adds r0, r2, 0x1 strh r0, [r5, 0xC] b _08130416 .align 2, 0 _08130404: .4byte 0x02020004 _08130408: movs r1, 0x1C ldrsh r0, [r5, r1] cmp r0, 0 bne _08130416 adds r0, r7, 0 bl move_anim_task_del _08130416: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81302E4 thumb_func_start sub_8130424 sub_8130424: @ 8130424 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r4, [sp, 0x28] ldr r5, [sp, 0x2C] ldr r6, [sp, 0x30] mov r9, r6 ldr r6, [sp, 0x34] mov r10, r6 lsls r0, 16 lsrs r0, 16 mov r12, r0 lsls r1, 16 lsrs r1, 16 str r1, [sp] lsls r2, 16 lsrs r2, 16 adds r7, r2, 0 lsls r3, 16 lsrs r3, 16 str r3, [sp, 0x4] lsls r4, 24 lsrs r6, r4, 24 lsls r5, 24 lsrs r5, 24 mov r8, r5 cmp r5, 0 bne _0813046C mov r2, r9 strh r0, [r2] mov r6, r10 strh r1, [r6] b _081304CA _0813046C: cmp r5, r6 bcc _0813047A mov r0, r9 strh r2, [r0] mov r1, r10 strh r3, [r1] b _081304CA _0813047A: subs r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 mov r2, r12 lsls r1, r2, 16 asrs r1, 16 lsls r5, r1, 8 lsls r0, r7, 16 asrs r0, 16 subs r0, r1 lsls r0, 8 adds r1, r6, 0 bl __divsi3 mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r5, r0 ldr r2, [sp] lsls r1, r2, 16 asrs r1, 16 lsls r4, r1, 8 ldr r2, [sp, 0x4] lsls r0, r2, 16 asrs r0, 16 subs r0, r1 lsls r0, 8 adds r1, r6, 0 bl __divsi3 mov r6, r8 muls r6, r0 adds r0, r6, 0 adds r4, r0 asrs r5, 8 mov r0, r9 strh r5, [r0] asrs r4, 8 mov r1, r10 strh r4, [r1] _081304CA: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8130424 thumb_func_start sub_81304DC sub_81304DC: @ 81304DC push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x24 ble _08130512 ldr r3, _08130518 movs r0, 0x32 ldrsh r1, [r4, r0] lsls r1, 1 movs r0, 0x30 ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl DestroySprite _08130512: pop {r4} pop {r0} bx r0 .align 2, 0 _08130518: .4byte 0x03004b20 thumb_func_end sub_81304DC thumb_func_start sub_813051C sub_813051C: @ 813051C push {r4,lr} adds r4, r0, 0 ldr r1, _08130548 ldrh r0, [r1] strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] strh r0, [r4, 0x22] ldrh r0, [r1, 0x4] strh r0, [r4, 0x32] ldrh r0, [r1, 0x6] strh r0, [r4, 0x36] ldrh r0, [r1, 0x8] strh r0, [r4, 0x2E] ldr r1, _0813054C adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _08130550 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _08130548: .4byte 0x03004b00 _0813054C: .4byte move_anim_8072740 _08130550: .4byte sub_8078CC0 thumb_func_end sub_813051C thumb_func_start sub_8130554 sub_8130554: @ 8130554 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, _08130674 adds r7, r0, r1 ldr r0, _08130678 mov r10, r0 ldrb r0, [r0] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x1E] mov r1, r10 ldrb r0, [r1] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x20] ldr r0, _0813067C mov r8, r0 ldrb r0, [r0] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x22] mov r1, r8 ldrb r0, [r1] movs r1, 0x3 bl sub_8077ABC adds r4, r0, 0 mov r1, r8 ldrb r0, [r1] movs r1, 0 bl sub_807A100 lsls r4, 24 lsrs r4, 24 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _081305C6 adds r0, 0x3 _081305C6: asrs r0, 2 adds r0, r4, r0 strh r0, [r7, 0x24] ldr r4, _08130680 movs r0, 0x1E ldrsh r5, [r7, r0] movs r1, 0x20 ldrsh r6, [r7, r1] mov r1, r8 ldrb r0, [r1] bl sub_8079E90 adds r3, r0, 0 subs r3, 0x5 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x26] cmp r0, 0x40 beq _08130690 ldr r4, _08130684 movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x10 strh r1, [r0, 0x2E] movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r7, 0x22] strh r1, [r0, 0x32] movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r7, 0x24] strh r1, [r0, 0x36] movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _08130688 strh r1, [r0, 0x38] movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl sub_80786EC mov r1, r10 ldrb r0, [r1] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0813066E movs r0, 0x26 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x1 bl StartSpriteAffineAnim _0813066E: ldr r0, _0813068C str r0, [r7] b _08130696 .align 2, 0 _08130674: .4byte 0x03004b20 _08130678: .4byte 0x0202f7c8 _0813067C: .4byte 0x0202f7c9 _08130680: .4byte gSpriteTemplate_84029AC _08130684: .4byte 0x02020004 _08130688: .4byte 0x0000ffe0 _0813068C: .4byte sub_81306A4 _08130690: mov r0, r9 bl move_anim_task_del _08130696: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8130554 thumb_func_start sub_81306A4 sub_81306A4: @ 81306A4 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _081306C8 adds r4, r0, r1 movs r0, 0x8 ldrsh r1, [r4, r0] cmp r1, 0x1 beq _0813070C cmp r1, 0x1 bgt _081306CC cmp r1, 0 beq _081306D6 b _081307AA .align 2, 0 _081306C8: .4byte 0x03004b20 _081306CC: cmp r1, 0x2 beq _08130730 cmp r1, 0x3 beq _081307A4 b _081307AA _081306D6: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _081307AA strh r1, [r4, 0xA] movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08130708 adds r0, r1 bl sub_8078718 ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _081307AA b _08130796 .align 2, 0 _08130708: .4byte 0x02020004 _0813070C: movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0813072C adds r0, r1 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _081307AA movs r0, 0 strh r0, [r4, 0xA] strh r0, [r4, 0xC] b _08130796 .align 2, 0 _0813072C: .4byte 0x02020004 _08130730: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _081307AA movs r0, 0 strh r0, [r4, 0xA] ldrh r2, [r4, 0xC] adds r2, 0x1 strh r2, [r4, 0xC] ldr r5, _081307A0 movs r1, 0x26 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 movs r0, 0x1 ands r2, r0 adds r1, 0x3E lsls r2, 2 ldrb r3, [r1] subs r0, 0x6 ands r0, r3 orrs r0, r2 strb r0, [r1] movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0x10 bne _081307AA movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite _08130796: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _081307AA .align 2, 0 _081307A0: .4byte 0x02020004 _081307A4: adds r0, r2, 0 bl move_anim_task_del _081307AA: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81306A4 thumb_func_start sub_81307B0 sub_81307B0: @ 81307B0 push {r4-r6,lr} adds r4, r0, 0 ldr r0, _081307C4 movs r2, 0 ldrsh r1, [r0, r2] adds r6, r0, 0 cmp r1, 0 bne _081307CC ldr r0, _081307C8 b _081307CE .align 2, 0 _081307C4: .4byte 0x03004b00 _081307C8: .4byte 0x0202f7c8 _081307CC: ldr r0, _08130834 _081307CE: ldrb r5, [r0] ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x10 ldr r3, _08130838 adds r0, r3, 0 ands r1, r0 ldr r0, _0813083C ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] adds r1, r6, 0 ldrh r0, [r1, 0x4] strh r0, [r4, 0x3A] movs r2, 0x2 ldrsh r0, [r1, r2] movs r1, 0x1 cmp r0, 0 bne _081307FC movs r3, 0x1 negs r3, r3 adds r1, r3, 0 _081307FC: strh r1, [r4, 0x3C] adds r0, r5, 0 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] movs r1, 0x2 ldrsh r0, [r6, r1] cmp r0, 0 bne _08130840 ldrb r2, [r4, 0x3] lsls r1, r2, 26 lsrs r1, 27 movs r0, 0x8 orrs r1, r0 lsls r1, 1 subs r0, 0x47 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x3] adds r0, r5, 0 movs r1, 0x4 bl sub_807A100 subs r0, 0x8 b _0813084A .align 2, 0 _08130834: .4byte 0x0202f7c9 _08130838: .4byte 0x000003ff _0813083C: .4byte 0xfffffc00 _08130840: adds r0, r5, 0 movs r1, 0x5 bl sub_807A100 adds r0, 0x8 _0813084A: strh r0, [r4, 0x20] ldr r0, _08130858 str r0, [r4, 0x1C] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08130858: .4byte sub_813085C thumb_func_end sub_81307B0 thumb_func_start sub_813085C sub_813085C: @ 813085C push {lr} adds r2, r0, 0 movs r0, 0x2E ldrsh r1, [r2, r0] cmp r1, 0x1 beq _081308A4 cmp r1, 0x1 bgt _08130872 cmp r1, 0 beq _0813087C b _08130914 _08130872: cmp r1, 0x2 beq _081308B4 cmp r1, 0x3 beq _081308DA b _08130914 _0813087C: ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _08130914 strh r1, [r2, 0x30] ldrh r0, [r2, 0x3C] ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x24] ldrh r0, [r2, 0x32] adds r0, 0x1 strh r0, [r2, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0xC bne _08130914 b _081308D2 _081308A4: ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 bne _08130914 b _081308CE _081308B4: movs r0, 0x3C ldrsh r1, [r2, r0] lsls r1, 2 ldrh r0, [r2, 0x24] subs r0, r1 strh r0, [r2, 0x24] ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bne _08130914 _081308CE: movs r0, 0 strh r0, [r2, 0x30] _081308D2: ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] b _08130914 _081308DA: movs r0, 0x3C ldrsh r1, [r2, r0] lsls r0, r1, 1 adds r0, r1 ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x24] ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 bne _08130914 ldrh r0, [r2, 0x3A] subs r0, 0x1 strh r0, [r2, 0x3A] lsls r0, 16 cmp r0, 0 beq _0813090E movs r0, 0 strh r0, [r2, 0x30] ldrh r0, [r2, 0x2E] subs r0, 0x1 strh r0, [r2, 0x2E] b _08130914 _0813090E: adds r0, r2, 0 bl move_anim_8072740 _08130914: pop {r0} bx r0 thumb_func_end sub_813085C thumb_func_start sub_8130918 sub_8130918: @ 8130918 push {r4,lr} lsls r0, 24 lsrs r1, r0, 24 ldr r2, _08130930 movs r3, 0 ldrsh r0, [r2, r3] cmp r0, 0 bne _08130934 adds r0, r1, 0 bl move_anim_task_del b _0813095C .align 2, 0 _08130930: .4byte 0x03004b00 _08130934: ldr r0, _08130964 lsls r4, r1, 2 adds r4, r1 lsls r4, 3 adds r4, r0 ldrh r0, [r2, 0x2] strh r0, [r4, 0x8] ldrb r0, [r2] bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 strh r1, [r4, 0x26] ldr r2, _08130968 adds r0, r4, 0 bl sub_80798F4 ldr r0, _0813096C str r0, [r4] _0813095C: pop {r4} pop {r0} bx r0 .align 2, 0 _08130964: .4byte 0x03004b20 _08130968: .4byte gUnknown_084029DC _0813096C: .4byte sub_8130970 thumb_func_end sub_8130918 thumb_func_start sub_8130970 sub_8130970: @ 8130970 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _081309B0 adds r4, r0, r1 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _081309CA movs r0, 0 strh r0, [r4, 0xA] ldrh r1, [r4, 0xC] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081309B8 ldr r2, _081309B4 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2 b _081309C8 .align 2, 0 _081309B0: .4byte 0x03004b20 _081309B4: .4byte 0x02020004 _081309B8: ldr r2, _08130A10 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _08130A14 _081309C8: strh r1, [r0, 0x24] _081309CA: adds r0, r4, 0 bl sub_807992C lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08130A26 ldr r2, _08130A10 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r5, [r0, 0x24] ldrh r0, [r4, 0x8] subs r0, 0x1 strh r0, [r4, 0x8] lsls r0, 16 cmp r0, 0 beq _08130A20 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _08130A18 adds r0, r1 ldrh r1, [r0, 0x26] lsls r1, 24 lsrs r1, 24 ldr r2, _08130A1C bl sub_80798F4 strh r5, [r4, 0xA] strh r5, [r4, 0xC] b _08130A26 .align 2, 0 _08130A10: .4byte 0x02020004 _08130A14: .4byte 0x0000fffe _08130A18: .4byte 0x03004b20 _08130A1C: .4byte gUnknown_084029DC _08130A20: adds r0, r6, 0 bl move_anim_task_del _08130A26: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8130970 thumb_func_start sub_8130A2C sub_8130A2C: @ 8130A2C push {r4,r5,lr} adds r5, r0, 0 ldr r0, _08130A40 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _08130A48 ldr r4, _08130A44 b _08130A4A .align 2, 0 _08130A40: .4byte 0x03004b00 _08130A44: .4byte 0x0202f7c8 _08130A48: ldr r4, _08130A88 _08130A4A: ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x2 bl sub_807A100 strh r0, [r5, 0x22] movs r1, 0x22 ldrsh r0, [r5, r1] cmp r0, 0x7 bgt _08130A6E movs r0, 0x8 strh r0, [r5, 0x22] _08130A6E: movs r2, 0 strh r2, [r5, 0x2E] ldr r1, _08130A8C ldrh r0, [r1, 0x2] strh r0, [r5, 0x30] strh r2, [r5, 0x32] ldrh r0, [r1, 0x4] strh r0, [r5, 0x34] ldr r0, _08130A90 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08130A88: .4byte 0x0202f7c9 _08130A8C: .4byte 0x03004b00 _08130A90: .4byte sub_8130A94 thumb_func_end sub_8130A2C thumb_func_start sub_8130A94 sub_8130A94: @ 8130A94 push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 movs r2, 0x30 ldrsh r1, [r3, r2] cmp r0, r1 blt _08130AE8 movs r0, 0 strh r0, [r3, 0x2E] ldrh r1, [r3, 0x32] adds r1, 0x1 movs r0, 0x1 ands r1, r0 strh r1, [r3, 0x32] movs r0, 0x3E adds r0, r3 mov r12, r0 lsls r1, 2 ldrb r2, [r0] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] movs r2, 0x32 ldrsh r0, [r3, r2] cmp r0, 0 beq _08130AE8 ldrh r0, [r3, 0x34] subs r0, 0x1 strh r0, [r3, 0x34] lsls r0, 16 cmp r0, 0 bne _08130AE8 adds r0, r3, 0 bl move_anim_8072740 _08130AE8: pop {r0} bx r0 thumb_func_end sub_8130A94 thumb_func_start sub_8130AEC sub_8130AEC: @ 8130AEC push {lr} adds r3, r0, 0 ldr r0, _08130B18 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _08130B1C ldrb r2, [r3, 0x3] lsls r1, r2, 26 lsrs r1, 27 movs r0, 0x8 orrs r1, r0 lsls r1, 1 subs r0, 0x47 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x3] movs r0, 0x64 strh r0, [r3, 0x20] movs r0, 0x1 b _08130B22 .align 2, 0 _08130B18: .4byte 0x03004b00 _08130B1C: movs r0, 0x8C strh r0, [r3, 0x20] ldr r0, _08130B30 _08130B22: strh r0, [r3, 0x3C] movs r0, 0x38 strh r0, [r3, 0x22] ldr r0, _08130B34 str r0, [r3, 0x1C] pop {r0} bx r0 .align 2, 0 _08130B30: .4byte 0x0000ffff _08130B34: .4byte sub_8130B38 thumb_func_end sub_8130AEC thumb_func_start sub_8130B38 sub_8130B38: @ 8130B38 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x8 bls _08130B46 b _08130D18 _08130B46: lsls r0, 2 ldr r1, _08130B50 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08130B50: .4byte _08130B54 .align 2, 0 _08130B54: .4byte _08130B78 .4byte _08130BAA .4byte _08130BBC .4byte _08130BFC .4byte _08130C0E .4byte _08130C4C .4byte _08130CB0 .4byte _08130CD0 .4byte _08130CF6 _08130B78: movs r3, 0x3C ldrsh r0, [r4, r3] lsls r0, 1 ldrh r1, [r4, 0x22] subs r1, r0 strh r1, [r4, 0x22] ldrh r2, [r4, 0x30] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _08130B9A movs r0, 0x3C ldrsh r1, [r4, r0] lsls r1, 1 ldrh r0, [r4, 0x20] subs r0, r1 strh r0, [r4, 0x20] _08130B9A: adds r0, r2, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 beq _08130BA8 b _08130D18 _08130BA8: b _08130CEA _08130BAA: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 beq _08130BBA b _08130D18 _08130BBA: b _08130CEA _08130BBC: ldrh r2, [r4, 0x30] adds r2, 0x1 strh r2, [r4, 0x30] movs r3, 0x3C ldrsh r1, [r4, r3] lsls r0, r1, 1 adds r0, r1 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldr r3, _08130BF8 movs r0, 0x30 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 ldrh r1, [r4, 0x3C] muls r0, r1 strh r0, [r4, 0x24] lsls r2, 16 asrs r2, 16 cmp r2, 0xC beq _08130BF4 b _08130D18 _08130BF4: b _08130CEA .align 2, 0 _08130BF8: .4byte gSineTable _08130BFC: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 beq _08130C0C b _08130D18 _08130C0C: b _08130CEA _08130C0E: ldrh r2, [r4, 0x30] adds r2, 0x1 strh r2, [r4, 0x30] movs r1, 0x3C ldrsh r0, [r4, r1] lsls r1, r0, 1 adds r1, r0 ldrh r0, [r4, 0x22] subs r0, r1 strh r0, [r4, 0x22] ldr r3, _08130C48 movs r0, 0x30 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 ldrh r1, [r4, 0x3C] muls r0, r1 strh r0, [r4, 0x24] lsls r2, 16 asrs r2, 16 cmp r2, 0xC bne _08130D18 b _08130CEE .align 2, 0 _08130C48: .4byte gSineTable _08130C4C: ldrh r2, [r4, 0x30] adds r2, 0x1 strh r2, [r4, 0x30] movs r3, 0x3C ldrsh r1, [r4, r3] lsls r0, r1, 1 adds r0, r1 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldr r3, _08130CA4 movs r0, 0x30 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 ldrh r1, [r4, 0x3C] muls r0, r1 strh r0, [r4, 0x24] lsls r2, 16 asrs r2, 16 cmp r2, 0xF bne _08130C98 ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x10 ldr r3, _08130CA8 adds r0, r3, 0 ands r1, r0 ldr r0, _08130CAC ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] _08130C98: movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x12 bne _08130D18 b _08130CEA .align 2, 0 _08130CA4: .4byte gSineTable _08130CA8: .4byte 0x000003ff _08130CAC: .4byte 0xfffffc00 _08130CB0: movs r3, 0x3C ldrsh r0, [r4, r3] lsls r1, r0, 1 adds r1, r0 lsls r1, 1 ldrh r0, [r4, 0x20] adds r1, r0 strh r1, [r4, 0x20] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 bne _08130D18 b _08130CEA _08130CD0: movs r1, 0x3C ldrsh r0, [r4, r1] lsls r0, 1 ldrh r3, [r4, 0x20] adds r0, r3 strh r0, [r4, 0x20] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _08130D18 _08130CEA: movs r0, 0 strh r0, [r4, 0x30] _08130CEE: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _08130D18 _08130CF6: movs r1, 0x3C ldrsh r0, [r4, r1] lsls r1, r0, 1 adds r1, r0 ldrh r0, [r4, 0x20] subs r0, r1 strh r0, [r4, 0x20] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _08130D18 adds r0, r4, 0 bl move_anim_8072740 _08130D18: pop {r4} pop {r0} bx r0 thumb_func_end sub_8130B38 thumb_func_start sub_8130D20 sub_8130D20: @ 8130D20 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08130D7C adds r6, r1, r0 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x26] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _08130DA8 bl battle_type_is_double lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x1 bne _08130D8C ldr r5, _08130D80 ldrb r0, [r5] movs r1, 0 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r1, [r5] movs r0, 0x2 eors r0, r1 movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 cmp r4, r0 ble _08130D84 strh r7, [r6, 0x24] b _08130DAC .align 2, 0 _08130D7C: .4byte 0x03004b20 _08130D80: .4byte 0x0202f7c8 _08130D84: ldr r0, _08130D88 b _08130DAA .align 2, 0 _08130D88: .4byte 0x0000ffff _08130D8C: ldr r0, _08130DA0 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08130DA8 ldr r0, _08130DA4 b _08130DAA .align 2, 0 _08130DA0: .4byte 0x0202f7c8 _08130DA4: .4byte 0x0000ffff _08130DA8: movs r0, 0x1 _08130DAA: strh r0, [r6, 0x24] _08130DAC: ldr r0, _08130DB8 str r0, [r6] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08130DB8: .4byte sub_8130DBC thumb_func_end sub_8130D20 thumb_func_start sub_8130DBC sub_8130DBC: @ 8130DBC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _08130DE0 adds r3, r0, r1 movs r1, 0x8 ldrsh r0, [r3, r1] cmp r0, 0x8 bls _08130DD6 b _08130F50 _08130DD6: lsls r0, 2 ldr r1, _08130DE4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08130DE0: .4byte 0x03004b20 _08130DE4: .4byte _08130DE8 .align 2, 0 _08130DE8: .4byte _08130E0C .4byte _08130E1E .4byte _08130E50 .4byte _08130E80 .4byte _08130EA6 .4byte _08130ED0 .4byte _08130EE0 .4byte _08130F00 .4byte _08130F38 _08130E0C: ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xD beq _08130E1C b _08130F50 _08130E1C: b _08130F28 _08130E1E: ldr r2, _08130E4C movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r2, 0x24 ldrsh r0, [r3, r2] lsls r2, r0, 1 adds r2, r0 ldrh r0, [r1, 0x24] subs r0, r2 strh r0, [r1, 0x24] ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 beq _08130E4A b _08130F50 _08130E4A: b _08130F28 .align 2, 0 _08130E4C: .4byte 0x02020004 _08130E50: ldr r2, _08130E7C movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0x24 ldrsh r2, [r3, r0] lsls r0, r2, 1 adds r0, r2 ldrh r2, [r1, 0x24] adds r0, r2 strh r0, [r1, 0x24] ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bne _08130F50 b _08130F28 .align 2, 0 _08130E7C: .4byte 0x02020004 _08130E80: ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _08130F50 movs r0, 0 strh r0, [r3, 0xA] ldrh r1, [r3, 0xC] movs r2, 0xC ldrsh r0, [r3, r2] cmp r0, 0 bne _08130F2C adds r0, r1, 0x1 strh r0, [r3, 0xC] movs r0, 0x1 strh r0, [r3, 0x8] b _08130F50 _08130EA6: ldr r2, _08130ECC movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r3, 0x24] ldrh r2, [r0, 0x24] adds r1, r2 strh r1, [r0, 0x24] ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bne _08130F50 b _08130F28 .align 2, 0 _08130ECC: .4byte 0x02020004 _08130ED0: ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bne _08130F50 b _08130F28 _08130EE0: ldr r2, _08130EFC movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0x24 ldrsh r2, [r3, r0] lsls r2, 2 ldrh r0, [r1, 0x24] subs r0, r2 b _08130F18 .align 2, 0 _08130EFC: .4byte 0x02020004 _08130F00: ldr r2, _08130F34 movs r1, 0x26 ldrsh r0, [r3, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r2, 0x24 ldrsh r0, [r3, r2] lsls r0, 2 ldrh r2, [r1, 0x24] adds r0, r2 _08130F18: strh r0, [r1, 0x24] ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _08130F50 _08130F28: movs r0, 0 strh r0, [r3, 0xA] _08130F2C: ldrh r0, [r3, 0x8] adds r0, 0x1 strh r0, [r3, 0x8] b _08130F50 .align 2, 0 _08130F34: .4byte 0x02020004 _08130F38: ldr r2, _08130F58 movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strh r1, [r0, 0x24] adds r0, r4, 0 bl move_anim_task_del _08130F50: pop {r4} pop {r0} bx r0 .align 2, 0 _08130F58: .4byte 0x02020004 thumb_func_end sub_8130DBC thumb_func_start sub_8130F5C sub_8130F5C: @ 8130F5C push {r4,lr} adds r4, r0, 0 ldr r0, _08130F78 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _08130F80 adds r0, r4, 0 movs r1, 0x1 bl sub_80787B0 ldr r0, _08130F7C b _08130F82 .align 2, 0 _08130F78: .4byte 0x03004b00 _08130F7C: .4byte 0x0202f7c8 _08130F80: ldr r0, _08130FD8 _08130F82: ldrb r0, [r0] strh r0, [r4, 0x3C] ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08130FA6 ldrb r0, [r4, 0x3] movs r1, 0x3F negs r1, r1 ands r1, r0 movs r0, 0x10 orrs r1, r0 strb r1, [r4, 0x3] _08130FA6: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 bl sub_8079ED4 movs r2, 0x3 ands r2, r0 lsls r2, 2 ldrb r3, [r4, 0x5] movs r1, 0xD negs r1, r1 adds r0, r1, 0 ands r0, r3 orrs r0, r2 strb r0, [r4, 0x5] ldrb r0, [r4, 0x1] ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r4, 0x1] ldr r0, _08130FDC str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _08130FD8: .4byte 0x0202f7c9 _08130FDC: .4byte sub_8130FE0 thumb_func_end sub_8130F5C thumb_func_start sub_8130FE0 sub_8130FE0: @ 8130FE0 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x38 ldrsh r0, [r4, r1] cmp r0, 0x4 bls _08130FEE b _081311DE _08130FEE: lsls r0, 2 ldr r1, _08130FF8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08130FF8: .4byte _08130FFC .align 2, 0 _08130FFC: .4byte _08131010 .4byte _08131110 .4byte _08131178 .4byte _0813118C .4byte _081311D8 _08131010: movs r2, 0x3A ldrsh r0, [r4, r2] cmp r0, 0x5 bhi _08131040 lsls r0, 2 ldr r1, _08131024 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08131024: .4byte _08131028 .align 2, 0 _08131028: .4byte _08131044 .4byte _08131060 .4byte _08131082 .4byte _0813109E .4byte _08131044 .4byte _081310C4 _08131040: movs r0, 0 strh r0, [r4, 0x3A] _08131044: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x5 bl sub_807A100 subs r0, 0x4 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x3 b _081310B8 _08131060: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x5 bl sub_807A100 subs r0, 0x4 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_807A100 adds r0, 0x4 b _081310BE _08131082: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x4 bl sub_807A100 adds r0, 0x4 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x3 b _081310B8 _0813109E: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x4 bl sub_807A100 adds r0, 0x4 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x2 _081310B8: bl sub_807A100 subs r0, 0x4 _081310BE: lsls r0, 16 lsrs r1, r0, 16 b _081310E4 _081310C4: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r1, r0, 24 _081310E4: movs r2, 0x3A ldrsh r0, [r4, r2] cmp r0, 0x4 bne _081310F0 movs r0, 0x18 b _081310FA _081310F0: cmp r0, 0x5 bne _081310F8 movs r0, 0x6 b _081310FA _081310F8: movs r0, 0xC _081310FA: strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] strh r5, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] strh r1, [r4, 0x36] adds r0, r4, 0 bl obj_translate_based_on_private_1_2_3_4 b _081311CA _08131110: adds r0, r4, 0 bl sub_8078B5C lsls r0, 24 cmp r0, 0 beq _081311DE movs r1, 0x3A ldrsh r0, [r4, r1] cmp r0, 0x4 beq _08131148 cmp r0, 0x5 beq _08131168 ldrh r0, [r4, 0x24] ldrh r2, [r4, 0x20] adds r0, r2 movs r1, 0 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] strh r1, [r4, 0x26] strh r1, [r4, 0x24] strh r1, [r4, 0x2E] ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] b _08131160 _08131148: ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 movs r1, 0 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] strh r1, [r4, 0x26] strh r1, [r4, 0x24] strh r1, [r4, 0x38] _08131160: ldrh r0, [r4, 0x3A] adds r0, 0x1 strh r0, [r4, 0x3A] b _081311DE _08131168: movs r0, 0 strh r0, [r4, 0x2E] movs r1, 0x10 strh r1, [r4, 0x30] strh r0, [r4, 0x32] movs r0, 0x3 strh r0, [r4, 0x38] b _081311DE _08131178: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _081311DE movs r0, 0 strh r0, [r4, 0x38] b _081311DE _0813118C: ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0813119E ldrh r0, [r4, 0x30] subs r0, 0x1 strh r0, [r4, 0x30] b _081311A4 _0813119E: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] _081311A4: ldr r2, _081311D4 ldrh r0, [r4, 0x32] lsls r0, 8 ldrh r1, [r4, 0x30] orrs r0, r1 strh r0, [r2] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x20 bne _081311DE adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _081311CA: ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] b _081311DE .align 2, 0 _081311D4: .4byte REG_BLDALPHA _081311D8: adds r0, r4, 0 bl move_anim_8072740 _081311DE: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8130FE0 thumb_func_start sub_81311E4 sub_81311E4: @ 81311E4 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x32 ldrsh r0, [r4, r1] movs r2, 0x2E ldrsh r1, [r4, r2] subs r0, r1 movs r2, 0x38 ldrsh r1, [r4, r2] muls r0, r1 movs r2, 0x36 ldrsh r1, [r4, r2] bl __divsi3 adds r5, r0, 0 strh r5, [r4, 0x24] movs r1, 0x34 ldrsh r0, [r4, r1] movs r2, 0x30 ldrsh r1, [r4, r2] subs r0, r1 movs r2, 0x38 ldrsh r1, [r4, r2] muls r0, r1 movs r2, 0x36 ldrsh r1, [r4, r2] bl __divsi3 adds r3, r0, 0 strh r3, [r4, 0x26] ldrh r1, [r4, 0x38] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08131242 ldr r0, _08131260 ldrh r1, [r4, 0x20] adds r1, r5 lsls r1, 16 asrs r1, 16 ldrh r2, [r4, 0x22] adds r2, r3 lsls r2, 16 asrs r2, 16 movs r3, 0x5 bl CreateSprite _08131242: movs r0, 0x38 ldrsh r1, [r4, r0] movs r2, 0x36 ldrsh r0, [r4, r2] cmp r1, r0 bne _08131254 adds r0, r4, 0 bl move_anim_8072740 _08131254: ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08131260: .4byte gSpriteTemplate_8402500 thumb_func_end sub_81311E4 thumb_func_start sub_8131264 sub_8131264: @ 8131264 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _081312A0 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC ldrb r0, [r4] movs r1, 0x3 bl sub_8077ABC ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _08131290 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _081312A8 _08131290: ldr r2, _081312A4 ldrh r1, [r5, 0x20] ldrh r0, [r2] subs r0, r1, r0 strh r0, [r5, 0x2E] ldrh r0, [r2, 0x4] subs r1, r0 b _081312B6 .align 2, 0 _081312A0: .4byte 0x0202f7c9 _081312A4: .4byte 0x03004b00 _081312A8: ldr r2, _081312DC ldrh r1, [r5, 0x20] ldrh r0, [r2] adds r0, r1, r0 strh r0, [r5, 0x2E] ldrh r0, [r2, 0x4] adds r1, r0 _081312B6: strh r1, [r5, 0x32] adds r3, r2, 0 ldrh r1, [r5, 0x22] ldrh r2, [r3, 0x2] adds r2, r1, r2 strh r2, [r5, 0x30] ldrh r0, [r3, 0x6] adds r1, r0 strh r1, [r5, 0x34] ldrh r0, [r3, 0x8] strh r0, [r5, 0x36] ldrh r0, [r5, 0x2E] strh r0, [r5, 0x20] strh r2, [r5, 0x22] ldr r0, _081312E0 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081312DC: .4byte 0x03004b00 _081312E0: .4byte sub_81311E4 thumb_func_end sub_8131264 thumb_func_start sub_81312E4 sub_81312E4: @ 81312E4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r5, r0, 24 adds r2, r5, 0 ldr r0, _08131328 mov r9, r0 lsls r7, r6, 2 adds r0, r7, r6 lsls r0, 3 mov r8, r0 mov r4, r8 add r4, r9 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bne _0813132C adds r0, r5, 0 movs r1, 0 bl sub_8078E70 movs r0, 0x80 lsls r0, 1 strh r0, [r4, 0xA] strh r0, [r4, 0xC] b _08131378 .align 2, 0 _08131328: .4byte 0x03004b20 _0813132C: cmp r0, 0x1 bne _08131384 ldrh r0, [r4, 0xA] adds r0, 0x60 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] subs r0, 0xD strh r0, [r4, 0xC] movs r2, 0xA ldrsh r1, [r4, r2] movs r0, 0xC ldrsh r2, [r4, r0] adds r0, r5, 0 movs r3, 0 bl obj_id_set_rotscale ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 bne _081313E8 movs r0, 0 strh r0, [r4, 0xE] adds r0, r5, 0 bl sub_8078F40 ldr r1, _08131380 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _08131378: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _081313E8 .align 2, 0 _08131380: .4byte 0x02020004 _08131384: ldr r4, _081313F4 ldrb r0, [r4] movs r1, 0 bl refresh_graphics_maybe bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _081313C6 ldr r3, _081313F8 ldr r2, _081313FC ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x10 adds r0, r1 ldr r1, _08131400 str r1, [r0] ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0 bl StartSpriteAffineAnim _081313C6: mov r4, r9 adds r3, r7, 0 ldr r5, _08131404 movs r1, 0xF mov r2, r8 adds r0, r4, r2 adds r0, 0x26 movs r2, 0 _081313D6: strh r2, [r0] subs r0, 0x2 subs r1, 0x1 cmp r1, 0 bge _081313D6 adds r0, r3, r6 lsls r0, 3 adds r0, r4 str r5, [r0] _081313E8: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081313F4: .4byte 0x0202f7c8 _081313F8: .4byte 0x02020004 _081313FC: .4byte 0x02024be0 _08131400: .4byte gSpriteAffineAnimTable_81E7C18 _08131404: .4byte sub_8131408 thumb_func_end sub_81312E4 thumb_func_start sub_8131408 sub_8131408: @ 8131408 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r3, r0, 24 ldr r1, _08131434 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 movs r0, 0x8 ldrsh r5, [r4, r0] cmp r5, 0x1 beq _0813146C cmp r5, 0x1 bgt _08131438 cmp r5, 0 beq _08131442 b _0813155A .align 2, 0 _08131434: .4byte 0x03004b20 _08131438: cmp r5, 0x2 beq _081314D8 cmp r5, 0x3 beq _08131514 b _0813155A _08131442: ldr r0, _08131464 lsls r1, r3, 4 adds r1, r3 lsls r1, 2 adds r1, r0 ldr r0, _08131468 strh r0, [r1, 0x26] movs r0, 0xC8 strh r0, [r1, 0x24] adds r1, 0x3E ldrb r2, [r1] subs r0, 0xCD ands r0, r2 strb r0, [r1] strh r5, [r4, 0x1C] b _08131506 .align 2, 0 _08131464: .4byte 0x02020004 _08131468: .4byte 0x0000ff38 _0813146C: ldrh r1, [r4, 0x1C] adds r1, 0x70 movs r5, 0 strh r1, [r4, 0x1C] ldr r2, _081314D0 lsls r0, r3, 4 adds r0, r3 lsls r0, 2 adds r2, r0, r2 lsls r1, 16 asrs r1, 24 ldrh r3, [r2, 0x26] adds r1, r3 strh r1, [r2, 0x26] movs r1, 0x22 ldrsh r0, [r2, r1] movs r3, 0x26 ldrsh r1, [r2, r3] adds r0, r1 movs r1, 0x20 negs r1, r1 cmp r0, r1 blt _0813149C strh r5, [r2, 0x24] _0813149C: movs r1, 0x26 ldrsh r0, [r2, r1] cmp r0, 0 ble _081314A6 strh r5, [r2, 0x26] _081314A6: movs r3, 0x26 ldrsh r0, [r2, r3] cmp r0, 0 bne _0813155A movs r0, 0x40 negs r0, r0 bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x7D bl audio_play_and_stuff ldr r1, _081314D4 adds r0, r1, 0 ldrh r2, [r4, 0x1C] adds r0, r2 strh r0, [r4, 0x1C] b _08131506 .align 2, 0 _081314D0: .4byte 0x02020004 _081314D4: .4byte 0xfffff800 _081314D8: ldrh r0, [r4, 0x1C] subs r0, 0x70 strh r0, [r4, 0x1C] lsls r0, 16 cmp r0, 0 bge _081314E8 movs r0, 0 strh r0, [r4, 0x1C] _081314E8: ldr r0, _08131510 lsls r1, r3, 4 adds r1, r3 lsls r1, 2 adds r1, r0 ldrh r2, [r4, 0x1C] lsls r2, 16 asrs r2, 24 ldrh r0, [r1, 0x26] subs r0, r2 strh r0, [r1, 0x26] movs r3, 0x1C ldrsh r0, [r4, r3] cmp r0, 0 bne _0813155A _08131506: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0813155A .align 2, 0 _08131510: .4byte 0x02020004 _08131514: ldrh r0, [r4, 0x1C] adds r0, 0x70 strh r0, [r4, 0x1C] ldr r2, _08131560 lsls r1, r3, 4 adds r1, r3 lsls r1, 2 adds r1, r2 lsls r0, 16 asrs r0, 24 ldrh r2, [r1, 0x26] adds r0, r2 strh r0, [r1, 0x26] lsls r0, 16 cmp r0, 0 ble _08131538 movs r0, 0 strh r0, [r1, 0x26] _08131538: movs r3, 0x26 ldrsh r0, [r1, r3] cmp r0, 0 bne _0813155A movs r0, 0x40 negs r0, r0 bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x7D bl audio_play_and_stuff adds r0, r6, 0 bl move_anim_task_del _0813155A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08131560: .4byte 0x02020004 thumb_func_end sub_8131408 thumb_func_start sub_8131564 sub_8131564: @ 8131564 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _08131588 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08131590 ldrb r0, [r4] bl sub_8079E90 subs r0, 0x2 adds r1, r5, 0 adds r1, 0x43 strb r0, [r1] ldr r4, _0813158C b _081315A0 .align 2, 0 _08131588: .4byte 0x0202f7c9 _0813158C: .4byte 0x0000ff70 _08131590: ldrb r0, [r4] bl sub_8079E90 adds r0, 0x2 adds r1, r5, 0 adds r1, 0x43 strb r0, [r1] ldr r4, _081315BC _081315A0: ldr r0, _081315C0 ldrb r0, [r0] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] strh r4, [r5, 0x26] ldr r0, _081315C4 str r0, [r5, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081315BC: .4byte 0x0000ffa0 _081315C0: .4byte 0x0202f7c9 _081315C4: .4byte sub_81315C8 thumb_func_end sub_8131564 thumb_func_start sub_81315C8 sub_81315C8: @ 81315C8 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x4 bls _081315D6 b _081316F2 _081315D6: lsls r0, 2 ldr r1, _081315E0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081315E0: .4byte _081315E4 .align 2, 0 _081315E4: .4byte _081315F8 .4byte _0813161C .4byte _0813165C .4byte _0813168C .4byte _081316B8 _081315F8: ldrh r0, [r4, 0x26] adds r0, 0xA strh r0, [r4, 0x26] lsls r0, 16 cmp r0, 0 blt _081316F2 movs r0, 0x3F bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xCD bl audio_play_and_stuff movs r0, 0 strh r0, [r4, 0x26] b _081316B0 _0813161C: ldrh r1, [r4, 0x30] adds r1, 0x4 movs r5, 0 strh r1, [r4, 0x30] ldr r2, _08131658 movs r3, 0x30 ldrsh r0, [r4, r3] lsls r0, 1 adds r0, r2 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 negs r0, r0 strh r0, [r4, 0x26] lsls r1, 16 asrs r1, 16 cmp r1, 0x7F ble _081316F2 movs r0, 0x3F bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xCD bl audio_play_and_stuff strh r5, [r4, 0x30] strh r5, [r4, 0x26] b _081316B0 .align 2, 0 _08131658: .4byte gSineTable _0813165C: ldrh r1, [r4, 0x30] adds r1, 0x6 movs r3, 0 strh r1, [r4, 0x30] ldr r2, _08131688 movs r5, 0x30 ldrsh r0, [r4, r5] lsls r0, 1 adds r0, r2 ldrh r0, [r0] lsls r0, 16 asrs r0, 20 negs r0, r0 strh r0, [r4, 0x26] lsls r1, 16 asrs r1, 16 cmp r1, 0x7F ble _081316F2 strh r3, [r4, 0x30] strh r3, [r4, 0x26] b _081316B0 .align 2, 0 _08131688: .4byte gSineTable _0813168C: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _081316F2 movs r0, 0x3F bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0xC0 bl audio_play_and_stuff movs r0, 0 strh r0, [r4, 0x30] _081316B0: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _081316F2 _081316B8: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _081316F2 movs r0, 0 strh r0, [r4, 0x30] ldrh r1, [r4, 0x32] adds r1, 0x1 strh r1, [r4, 0x32] movs r0, 0x1 ands r1, r0 adds r3, r4, 0 adds r3, 0x3E lsls r1, 2 ldrb r2, [r3] subs r0, 0x6 ands r0, r2 orrs r0, r1 strb r0, [r3] movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0x7 bne _081316F2 adds r0, r4, 0 bl move_anim_8072740 _081316F2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81315C8 thumb_func_start sub_81316F8 sub_81316F8: @ 81316F8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r4, r0, 24 mov r10, r4 bl sub_8076BE0 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0813173E movs r0, 0x1 bl duplicate_obj_of_side_rel2move_in_transparent_mode lsls r0, 16 asrs r7, r0, 16 cmp r7, 0 blt _0813173E movs r0, 0x1 bl duplicate_obj_of_side_rel2move_in_transparent_mode lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _0813174C lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r1, _08131748 adds r0, r1 bl obj_delete_but_dont_free_vram _0813173E: adds r0, r4, 0 bl move_anim_task_del b _081317EE .align 2, 0 _08131748: .4byte 0x02020004 _0813174C: ldr r1, _081317FC mov r9, r1 lsls r1, r0, 4 mov r8, r1 add r8, r0 mov r0, r8 lsls r0, 2 mov r8, r0 mov r4, r8 add r4, r9 ldrh r0, [r4, 0x24] adds r0, 0x18 strh r0, [r4, 0x24] lsls r6, r7, 4 adds r6, r7 lsls r6, 2 mov r1, r9 adds r2, r6, r1 ldrh r0, [r2, 0x24] subs r0, 0x18 strh r0, [r2, 0x24] strh r5, [r4, 0x2E] strh r5, [r2, 0x2E] strh r5, [r4, 0x30] strh r5, [r2, 0x30] strh r5, [r4, 0x32] strh r5, [r2, 0x32] movs r0, 0x10 strh r0, [r4, 0x34] ldr r0, _08131800 strh r0, [r2, 0x34] strh r5, [r4, 0x36] movs r0, 0x80 strh r0, [r2, 0x36] movs r0, 0x18 strh r0, [r4, 0x38] strh r0, [r2, 0x38] mov r0, r10 strh r0, [r4, 0x3A] strh r0, [r2, 0x3A] strh r5, [r4, 0x3C] strh r5, [r2, 0x3C] ldr r0, _08131804 mov r1, r10 lsls r3, r1, 2 add r3, r10 lsls r3, 3 adds r3, r0 movs r0, 0x2 strh r0, [r3, 0x8] adds r5, r4, 0 adds r5, 0x3E ldrb r1, [r5] subs r0, 0x7 ands r0, r1 strb r0, [r5] adds r5, r2, 0 adds r5, 0x3E ldrb r0, [r5] movs r1, 0x4 orrs r0, r1 strb r0, [r5] ldrb r5, [r4, 0x1] movs r1, 0xD negs r1, r1 adds r0, r1, 0 ands r0, r5 strb r0, [r4, 0x1] ldrb r0, [r2, 0x1] ands r1, r0 strb r1, [r2, 0x1] movs r0, 0x1C add r9, r0 add r8, r9 ldr r0, _08131808 mov r1, r8 str r0, [r1] add r6, r9 str r0, [r6] ldr r0, _0813180C str r0, [r3] _081317EE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081317FC: .4byte 0x02020004 _08131800: .4byte 0x0000fff0 _08131804: .4byte 0x03004b20 _08131808: .4byte sub_8131838 _0813180C: .4byte sub_8131810 thumb_func_end sub_81316F8 thumb_func_start sub_8131810 sub_8131810: @ 8131810 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _08131834 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0 bne _0813182E adds r0, r2, 0 bl move_anim_task_del _0813182E: pop {r0} bx r0 .align 2, 0 _08131834: .4byte 0x03004b20 thumb_func_end sub_8131810 thumb_func_start sub_8131838 sub_8131838: @ 8131838 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] adds r0, 0x1 movs r5, 0 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _08131868 strh r5, [r4, 0x30] adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _08131868: ldrh r0, [r4, 0x34] ldrh r1, [r4, 0x36] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x36] movs r2, 0x36 ldrsh r0, [r4, r2] movs r2, 0x38 ldrsh r1, [r4, r2] bl cosine strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _08131890 cmp r0, 0x1 beq _081318A8 b _081318E6 _08131890: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C bne _081318E6 strh r5, [r4, 0x32] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _081318E6 _081318A8: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 cmp r0, 0 ble _081318E6 strh r5, [r4, 0x32] ldrh r0, [r4, 0x38] subs r0, 0x2 strh r0, [r4, 0x38] lsls r0, 16 cmp r0, 0 bge _081318E6 ldr r3, _081318EC movs r2, 0x3C ldrsh r1, [r4, r2] lsls r1, 1 movs r0, 0x3A ldrsh r2, [r4, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r3, 0x8 adds r1, r3 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] adds r0, r4, 0 bl obj_delete_but_dont_free_vram _081318E6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081318EC: .4byte 0x03004b20 thumb_func_end sub_8131838 thumb_func_start sub_81318F0 sub_81318F0: @ 81318F0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r3, _0813193C movs r2, 0 strh r2, [r3, 0xE] ldr r1, _08131940 ldrb r0, [r1] ldrb r1, [r1] adds r0, r1, 0 subs r0, 0x3D lsls r0, 24 lsrs r0, 24 adds r2, r1, 0 cmp r0, 0x1E bhi _08131914 movs r0, 0x1 strh r0, [r3, 0xE] _08131914: adds r0, r2, 0 subs r0, 0x5C lsls r0, 24 lsrs r0, 24 cmp r0, 0x6C bhi _08131924 movs r0, 0x2 strh r0, [r3, 0xE] _08131924: lsls r0, r1, 24 lsrs r0, 24 cmp r0, 0xC8 bls _08131930 movs r0, 0x3 strh r0, [r3, 0xE] _08131930: adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _0813193C: .4byte 0x03004b00 _08131940: .4byte 0x0202f7be thumb_func_end sub_81318F0 thumb_func_start sub_8131944 sub_8131944: @ 8131944 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, _08131974 lsls r0, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0x4 bls _0813196A b _08131EA0 _0813196A: lsls r0, 2 ldr r1, _08131978 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08131974: .4byte 0x03004b20 _08131978: .4byte _0813197C .align 2, 0 _0813197C: .4byte _08131990 .4byte _08131A44 .4byte _08131C20 .4byte _08131D40 .4byte _08131DC4 _08131990: movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r7, r0, 24 ldr r1, _081319DC mov r2, r8 lsls r4, r2, 2 adds r0, r4, r2 lsls r0, 3 adds r6, r0, r1 movs r3, 0x80 lsls r3, 4 adds r0, r3, 0 ldrh r1, [r6, 0xA] adds r0, r1 strh r0, [r6, 0xA] ldr r0, _081319E0 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 mov r9, r4 cmp r0, 0 bne _081319E8 ldr r2, _081319E4 lsls r3, r7, 4 adds r1, r3, r7 lsls r1, 2 adds r1, r2 ldrh r0, [r6, 0xA] lsls r0, 16 asrs r0, 24 ldrh r4, [r1, 0x24] adds r0, r4 strh r0, [r1, 0x24] b _08131A02 .align 2, 0 _081319DC: .4byte 0x03004b20 _081319E0: .4byte 0x0202f7c8 _081319E4: .4byte 0x02020004 _081319E8: ldr r3, _08131A3C lsls r4, r7, 4 adds r2, r4, r7 lsls r2, 2 adds r2, r3 ldrh r1, [r6, 0xA] lsls r1, 16 asrs r1, 24 ldrh r0, [r2, 0x24] subs r0, r1 strh r0, [r2, 0x24] adds r2, r3, 0 adds r3, r4, 0 _08131A02: ldr r1, _08131A40 mov r0, r9 add r0, r8 lsls r0, 3 adds r4, r0, r1 ldrb r0, [r4, 0xA] strh r0, [r4, 0xA] adds r1, r3, r7 lsls r1, 2 adds r1, r2 ldrh r0, [r1, 0x24] ldrh r1, [r1, 0x20] adds r0, r1 lsls r0, 16 movs r1, 0x80 lsls r1, 14 adds r0, r1 movs r1, 0x98 lsls r1, 17 cmp r0, r1 bhi _08131A2E b _08131EA0 _08131A2E: movs r0, 0 strh r0, [r4, 0xA] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08131EA0 .align 2, 0 _08131A3C: .4byte 0x02020004 _08131A40: .4byte 0x03004b20 _08131A44: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _08131A74 ldr r0, _08131A6C ldr r2, [r0, 0x8] mov r10, r2 ldr r3, [r0, 0xC] mov r9, r3 ldrh r5, [r0] ldr r0, _08131A70 ldrb r0, [r0] bl sub_8079E90 lsls r0, 24 lsrs r4, r0, 24 movs r7, 0 b _08131B92 .align 2, 0 _08131A6C: .4byte 0x02019348 _08131A70: .4byte 0x0202f7c8 _08131A74: ldr r4, _08131AD4 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08131B10 ldr r7, _08131AD8 ldrb r0, [r4] lsls r0, 1 adds r0, r7 ldrh r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, _08131ADC adds r0, r5 movs r1, 0 bl PokemonGetField mov r10, r0 ldrb r0, [r4] lsls r0, 1 adds r0, r7 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0x1 bl PokemonGetField mov r9, r0 ldrb r2, [r4] lsls r1, r2, 2 ldr r0, _08131AE0 adds r1, r0 ldrh r0, [r1, 0x2] cmp r0, 0 bne _08131AE4 lsls r0, r2, 1 adds r0, r7 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r5, r0, 16 b _08131AE6 .align 2, 0 _08131AD4: .4byte 0x0202f7c8 _08131AD8: .4byte 0x02024a6a _08131ADC: .4byte 0x03004360 _08131AE0: .4byte 0x02017800 _08131AE4: ldrh r5, [r1, 0x2] _08131AE6: movs r0, 0x1 bl obj_id_for_side_relative_to_move ldr r2, _08131B0C lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x43 ldrb r0, [r1] adds r0, 0x1 lsls r0, 24 lsrs r4, r0, 24 movs r7, 0 movs r6, 0x88 lsls r6, 1 b _08131B94 .align 2, 0 _08131B0C: .4byte 0x02020004 _08131B10: ldr r7, _08131B64 ldrb r0, [r4] lsls r0, 1 adds r0, r7 ldrh r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, _08131B68 adds r0, r5 movs r1, 0 bl PokemonGetField mov r10, r0 ldrb r0, [r4] lsls r0, 1 adds r0, r7 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0x1 bl PokemonGetField mov r9, r0 ldrb r2, [r4] lsls r1, r2, 2 ldr r0, _08131B6C adds r1, r0 ldrh r0, [r1, 0x2] cmp r0, 0 bne _08131B70 lsls r0, r2, 1 adds r0, r7 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r5, r0, 16 b _08131B72 .align 2, 0 _08131B64: .4byte 0x02024a6a _08131B68: .4byte 0x030045c0 _08131B6C: .4byte 0x02017800 _08131B70: ldrh r5, [r1, 0x2] _08131B72: movs r0, 0x1 bl obj_id_for_side_relative_to_move ldr r2, _08131C04 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x43 ldrb r0, [r1] subs r0, 0x1 lsls r0, 24 lsrs r4, r0, 24 movs r7, 0x1 _08131B92: ldr r6, _08131C08 _08131B94: ldr r0, _08131C0C ldrb r0, [r0] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 lsls r3, r6, 16 asrs r3, 16 str r0, [sp] str r4, [sp, 0x4] mov r4, r10 str r4, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] adds r0, r5, 0 adds r1, r7, 0 movs r2, 0 bl sub_8079F44 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _08131C10 ldrb r0, [r0] lsls r0, 2 ldr r1, _08131C14 adds r0, r1 ldrh r0, [r0, 0x2] cmp r0, 0 beq _08131BF2 ldr r1, _08131C04 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x5] lsrs r0, 4 lsls r0, 4 movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 orrs r0, r1 ldr r3, _08131C18 movs r1, 0x10 movs r2, 0x6 bl BlendPalette _08131BF2: ldr r0, _08131C1C mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r0 strh r5, [r1, 0x26] b _08131DB6 .align 2, 0 _08131C04: .4byte 0x02020004 _08131C08: .4byte 0x0000ffe0 _08131C0C: .4byte 0x0202f7c9 _08131C10: .4byte 0x0202f7c8 _08131C14: .4byte 0x02017800 _08131C18: .4byte 0x00007fff _08131C1C: .4byte 0x03004b20 _08131C20: ldr r1, _08131C6C mov r0, r8 lsls r4, r0, 2 adds r0, r4, r0 lsls r0, 3 adds r6, r0, r1 ldrh r0, [r6, 0x26] lsls r0, 24 lsrs r5, r0, 24 movs r1, 0x80 lsls r1, 4 adds r0, r1, 0 ldrh r2, [r6, 0xA] adds r0, r2 strh r0, [r6, 0xA] ldr r0, _08131C70 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 mov r9, r4 cmp r0, 0 bne _08131C78 ldr r3, _08131C74 lsls r4, r5, 4 adds r2, r4, r5 lsls r2, 2 adds r2, r3 ldrh r1, [r6, 0xA] lsls r1, 16 asrs r1, 24 ldrh r0, [r2, 0x24] subs r0, r1 strh r0, [r2, 0x24] adds r2, r3, 0 adds r3, r4, 0 b _08131C8E .align 2, 0 _08131C6C: .4byte 0x03004b20 _08131C70: .4byte 0x0202f7c8 _08131C74: .4byte 0x02020004 _08131C78: ldr r2, _08131CDC lsls r3, r5, 4 adds r1, r3, r5 lsls r1, 2 adds r1, r2 ldrh r0, [r6, 0xA] lsls r0, 16 asrs r0, 24 ldrh r4, [r1, 0x24] adds r0, r4 strh r0, [r1, 0x24] _08131C8E: ldr r1, _08131CE0 mov r0, r9 add r0, r8 lsls r0, 3 adds r6, r0, r1 ldrb r0, [r6, 0xA] strh r0, [r6, 0xA] adds r1, r3, r5 lsls r1, 2 adds r1, r2 ldrh r0, [r1, 0x24] ldrh r1, [r1, 0x20] adds r0, r1 lsls r0, 16 lsrs r5, r0, 16 movs r1, 0x24 ldrsh r0, [r6, r1] cmp r0, 0 bne _08131D0E ldr r0, _08131CE4 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08131CEC lsls r4, r5, 16 asrs r4, 16 ldr r0, _08131CE8 ldrb r0, [r0] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 cmp r4, r0 bge _08131D0E b _08131D02 .align 2, 0 _08131CDC: .4byte 0x02020004 _08131CE0: .4byte 0x03004b20 _08131CE4: .4byte 0x0202f7c8 _08131CE8: .4byte 0x0202f7c9 _08131CEC: lsls r4, r5, 16 asrs r4, 16 ldr r0, _08131D30 ldrb r0, [r0] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 cmp r4, r0 ble _08131D0E _08131D02: ldrh r0, [r6, 0x24] adds r0, 0x1 strh r0, [r6, 0x24] ldr r1, _08131D34 ldr r0, _08131D38 strh r0, [r1, 0xE] _08131D0E: lsls r0, r5, 16 movs r2, 0x80 lsls r2, 14 adds r0, r2 movs r1, 0x98 lsls r1, 17 cmp r0, r1 bhi _08131D20 b _08131EA0 _08131D20: ldr r0, _08131D3C mov r1, r9 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0 strh r0, [r1, 0xA] b _08131DB6 .align 2, 0 _08131D30: .4byte 0x0202f7c9 _08131D34: .4byte 0x03004b00 _08131D38: .4byte 0x0000ffff _08131D3C: .4byte 0x03004b20 _08131D40: movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08131D8C mov r3, r8 lsls r4, r3, 2 adds r0, r4, r3 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x26] lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 ldr r5, _08131D90 adds r0, r5 bl sub_807A0F4 ldr r0, _08131D94 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 mov r9, r4 cmp r0, 0 bne _08131D98 lsls r1, r7, 4 adds r1, r7 lsls r1, 2 adds r1, r5 ldrh r0, [r1, 0x20] negs r0, r0 subs r0, 0x20 strh r0, [r1, 0x24] b _08131DAC .align 2, 0 _08131D8C: .4byte 0x03004b20 _08131D90: .4byte 0x02020004 _08131D94: .4byte 0x0202f7c8 _08131D98: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r0, r5 ldrh r2, [r0, 0x20] movs r4, 0x88 lsls r4, 1 adds r1, r4, 0 subs r1, r2 strh r1, [r0, 0x24] _08131DAC: ldr r0, _08131DC0 mov r1, r9 add r1, r8 lsls r1, 3 adds r1, r0 _08131DB6: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _08131EA0 .align 2, 0 _08131DC0: .4byte 0x03004b20 _08131DC4: movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08131E38 mov r0, r8 lsls r4, r0, 2 adds r0, r4, r0 lsls r0, 3 adds r2, r0, r1 movs r1, 0x80 lsls r1, 4 adds r0, r1, 0 ldrh r3, [r2, 0xA] adds r0, r3 strh r0, [r2, 0xA] ldr r0, _08131E3C mov r10, r0 ldrb r0, [r0] str r2, [sp, 0x10] bl battle_side_get_owner lsls r0, 24 mov r9, r4 ldr r2, [sp, 0x10] cmp r0, 0 bne _08131E44 ldr r1, _08131E40 lsls r5, r7, 4 adds r0, r5, r7 lsls r0, 2 adds r6, r0, r1 ldrh r0, [r2, 0xA] lsls r0, 16 asrs r0, 24 ldrh r1, [r6, 0x24] adds r0, r1 strh r0, [r6, 0x24] movs r2, 0x24 ldrsh r4, [r6, r2] movs r3, 0x20 ldrsh r0, [r6, r3] adds r4, r0 mov r1, r10 ldrb r0, [r1] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r3, r5, 0 cmp r4, r0 blt _08131E7C movs r2, 0 strh r2, [r6, 0x24] b _08131E7C .align 2, 0 _08131E38: .4byte 0x03004b20 _08131E3C: .4byte 0x0202f7c8 _08131E40: .4byte 0x02020004 _08131E44: ldr r1, _08131EB0 lsls r5, r7, 4 adds r0, r5, r7 lsls r0, 2 adds r6, r0, r1 ldrh r1, [r2, 0xA] lsls r1, 16 asrs r1, 24 ldrh r0, [r6, 0x24] subs r0, r1 strh r0, [r6, 0x24] movs r3, 0x24 ldrsh r4, [r6, r3] movs r1, 0x20 ldrsh r0, [r6, r1] adds r4, r0 mov r2, r10 ldrb r0, [r2] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r3, r5, 0 cmp r4, r0 bgt _08131E7C movs r4, 0 strh r4, [r6, 0x24] _08131E7C: ldr r1, _08131EB4 mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0xA] strh r1, [r0, 0xA] ldr r1, _08131EB0 adds r0, r3, r7 lsls r0, 2 adds r0, r1 movs r1, 0x24 ldrsh r0, [r0, r1] cmp r0, 0 bne _08131EA0 mov r0, r8 bl move_anim_task_del _08131EA0: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08131EB0: .4byte 0x02020004 _08131EB4: .4byte 0x03004b20 thumb_func_end sub_8131944 thumb_func_start sub_8131EB8 sub_8131EB8: @ 8131EB8 push {r4,lr} adds r4, r0, 0 movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0 beq _08131ECA cmp r0, 0x1 beq _08131F72 b _08131FF4 _08131ECA: ldr r0, _08131F50 movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _08131F64 movs r0, 0x3F bl sub_8076F98 adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x7A bl audio_play_and_stuff ldr r0, _08131F54 ldrb r0, [r0] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r0, 0x10 strh r0, [r4, 0x22] ldr r0, _08131F58 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, _08131F5C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08131FF4 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _08131FF4 movs r0, 0x1 bl obj_id_for_side_relative_to_move ldr r2, _08131F60 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x43 ldrb r0, [r1] subs r0, 0x1 adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] b _08131FF4 .align 2, 0 _08131F50: .4byte 0x03004b00 _08131F54: .4byte 0x0202f7c9 _08131F58: .4byte 0x0000ffe0 _08131F5C: .4byte 0x0202f7c8 _08131F60: .4byte 0x02020004 _08131F64: adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _08131FF4 _08131F72: movs r1, 0x30 ldrsh r0, [r4, r1] movs r2, 0x2E ldrsh r1, [r4, r2] bl sine strh r0, [r4, 0x26] ldrh r2, [r4, 0x30] adds r0, r2, 0x5 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x7F ble _08131FA6 movs r1, 0x2E ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] adds r0, r2, 0 subs r0, 0x7A strh r0, [r4, 0x30] _08131FA6: movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] ldr r0, _08131FD0 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08131FD4 ldrh r2, [r4, 0x32] lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r4, 0x24] subs r0, r1 strh r0, [r4, 0x24] adds r1, r2, 0 b _08131FE0 .align 2, 0 _08131FD0: .4byte 0x0202f7c8 _08131FD4: ldrh r1, [r4, 0x32] lsls r0, r1, 16 asrs r0, 24 ldrh r2, [r4, 0x24] adds r0, r2 strh r0, [r4, 0x24] _08131FE0: movs r0, 0xFF ands r0, r1 strh r0, [r4, 0x32] movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0x2 bne _08131FF4 adds r0, r4, 0 bl move_anim_8072740 _08131FF4: pop {r4} pop {r0} bx r0 thumb_func_end sub_8131EB8 thumb_func_start sub_8131FFC sub_8131FFC: @ 8131FFC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08132024 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0x26 ldrsh r0, [r0, r2] adds r3, r1, 0 cmp r0, 0x4 bls _08132018 b _0813216A _08132018: lsls r0, 2 ldr r1, _08132028 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08132024: .4byte 0x03004b20 _08132028: .4byte _0813202C .align 2, 0 _0813202C: .4byte _08132040 .4byte _08132090 .4byte _081320EC .4byte _08132104 .4byte _0813216A _08132040: ldr r0, _08132084 ldrb r0, [r0] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r0, _08132088 ldrb r0, [r0] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 ldr r1, _0813208C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 movs r0, 0x6 strh r0, [r1, 0x8] cmp r5, r2 ble _08132076 negs r0, r0 strh r0, [r1, 0x8] _08132076: strh r5, [r1, 0xA] strh r2, [r1, 0xC] ldrh r0, [r1, 0x26] adds r0, 0x1 strh r0, [r1, 0x26] b _08132188 .align 2, 0 _08132084: .4byte 0x0202f7c8 _08132088: .4byte 0x0202f7c9 _0813208C: .4byte 0x03004b20 _08132090: ldr r1, _081320CC ldr r0, _081320D0 ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] ldr r1, _081320D4 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, r0, r1 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r3 ldrh r0, [r2, 0x8] ldrh r3, [r1, 0x24] adds r0, r3 strh r0, [r1, 0x24] movs r3, 0x8 ldrsh r0, [r2, r3] cmp r0, 0 ble _081320D8 movs r3, 0x20 ldrsh r0, [r1, r3] movs r3, 0x24 ldrsh r1, [r1, r3] adds r0, r1 movs r3, 0xC ldrsh r1, [r2, r3] b _0813215E .align 2, 0 _081320CC: .4byte 0x02024be0 _081320D0: .4byte 0x0202f7c8 _081320D4: .4byte 0x02020004 _081320D8: movs r3, 0x20 ldrsh r0, [r1, r3] movs r3, 0x24 ldrsh r1, [r1, r3] adds r0, r1 movs r3, 0xC ldrsh r1, [r2, r3] cmp r0, r1 bgt _08132188 b _08132162 _081320EC: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r3 movs r2, 0x8 ldrsh r1, [r0, r2] negs r1, r1 strh r1, [r0, 0x8] ldrh r1, [r0, 0x26] adds r1, 0x1 strh r1, [r0, 0x26] b _08132188 _08132104: ldr r1, _08132144 ldr r0, _08132148 ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] ldr r1, _0813214C lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, r0, r1 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r3 ldrh r0, [r2, 0x8] ldrh r3, [r1, 0x24] adds r0, r3 strh r0, [r1, 0x24] movs r3, 0x8 ldrsh r0, [r2, r3] cmp r0, 0 bge _08132150 movs r3, 0x20 ldrsh r0, [r1, r3] movs r3, 0x24 ldrsh r1, [r1, r3] adds r0, r1 movs r3, 0xA ldrsh r1, [r2, r3] cmp r0, r1 bgt _08132188 b _08132162 .align 2, 0 _08132144: .4byte 0x02024be0 _08132148: .4byte 0x0202f7c8 _0813214C: .4byte 0x02020004 _08132150: movs r3, 0x20 ldrsh r0, [r1, r3] movs r3, 0x24 ldrsh r1, [r1, r3] adds r0, r1 movs r3, 0xA ldrsh r1, [r2, r3] _0813215E: cmp r0, r1 blt _08132188 _08132162: ldrh r0, [r2, 0x26] adds r0, 0x1 strh r0, [r2, 0x26] b _08132188 _0813216A: ldr r1, _08132190 ldr r0, _08132194 ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] ldr r1, _08132198 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0 strh r1, [r0, 0x24] adds r0, r4, 0 bl move_anim_task_del _08132188: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08132190: .4byte 0x02024be0 _08132194: .4byte 0x0202f7c8 _08132198: .4byte 0x02020004 thumb_func_end sub_8131FFC thumb_func_start sub_813219C sub_813219C: @ 813219C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08132204 adds r4, r1, r0 movs r0, 0 bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0xE] ldr r0, _08132208 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 movs r2, 0x1 negs r2, r2 adds r1, r2, 0 cmp r0, 0 bne _081321D0 movs r1, 0x1 _081321D0: strh r1, [r4, 0x10] ldr r2, _0813220C movs r0, 0xE ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x22] strh r0, [r4, 0x14] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x20] strh r0, [r4, 0x12] strh r5, [r4, 0x1A] strh r5, [r4, 0x1E] movs r0, 0x1 strh r0, [r4, 0x1C] strh r5, [r4, 0x20] ldr r0, _08132210 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08132204: .4byte 0x03004b20 _08132208: .4byte 0x0202f7c8 _0813220C: .4byte 0x02020004 _08132210: .4byte sub_8132214 thumb_func_end sub_813219C thumb_func_start sub_8132214 sub_8132214: @ 8132214 push {r4-r6,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _08132238 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _081322BC cmp r0, 0x1 bgt _0813223C cmp r0, 0 beq _08132242 b _08132312 .align 2, 0 _08132238: .4byte 0x03004b20 _0813223C: cmp r0, 0x2 beq _0813230C b _08132312 _08132242: ldrh r0, [r4, 0x1E] adds r0, 0x8 movs r2, 0xFF ands r0, r2 strh r0, [r4, 0x1E] ldr r5, _081322B4 movs r6, 0xE ldrsh r0, [r4, r6] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldr r3, _081322B8 movs r6, 0x1E ldrsh r0, [r4, r6] lsls r0, 1 adds r0, r3 ldrh r0, [r0] lsls r0, 16 asrs r0, 21 strh r0, [r1, 0x24] ldrh r0, [r4, 0x1A] adds r0, 0x2 ands r0, r2 strh r0, [r4, 0x1A] movs r1, 0xE ldrsh r0, [r4, r1] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r5 movs r6, 0x1A ldrsh r0, [r4, r6] lsls r0, 1 adds r0, r3 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 ldrh r1, [r4, 0x10] muls r0, r1 ldrh r1, [r4, 0x12] adds r0, r1 strh r0, [r2, 0x20] movs r6, 0x1A ldrsh r0, [r4, r6] cmp r0, 0 bne _08132312 movs r0, 0xE ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r4, 0x12] strh r1, [r0, 0x20] b _081322FC .align 2, 0 _081322B4: .4byte 0x02020004 _081322B8: .4byte gSineTable _081322BC: ldrh r0, [r4, 0x1E] adds r0, 0x8 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x1E] ldr r3, _08132304 movs r1, 0xE ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldr r2, _08132308 movs r5, 0x1E ldrsh r0, [r4, r5] lsls r0, 1 adds r0, r2 ldrh r0, [r0] lsls r0, 16 asrs r0, 21 strh r0, [r1, 0x24] movs r6, 0x1E ldrsh r2, [r4, r6] cmp r2, 0 bne _08132312 movs r1, 0xE ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 strh r2, [r1, 0x24] _081322FC: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08132312 .align 2, 0 _08132304: .4byte 0x02020004 _08132308: .4byte gSineTable _0813230C: adds r0, r2, 0 bl move_anim_task_del _08132312: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8132214 thumb_func_start sub_8132318 sub_8132318: @ 8132318 push {r4,lr} adds r4, r0, 0 ldr r0, _0813236C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 ldrh r0, [r4, 0x2E] ldrh r1, [r4, 0x30] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x14 bl cosine strh r0, [r4, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x14 bl sine strh r0, [r4, 0x26] adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0813235E adds r0, r4, 0 bl move_anim_8072740 _0813235E: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] pop {r4} pop {r0} bx r0 .align 2, 0 _0813236C: .4byte 0x0202f7c9 thumb_func_end sub_8132318 thumb_func_start sub_8132370 sub_8132370: @ 8132370 push {r4,lr} adds r4, r0, 0 ldr r0, _081323A8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _081323B4 ldr r2, _081323AC ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 strh r0, [r4, 0x20] ldrh r0, [r2, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldr r0, _081323B0 strh r0, [r4, 0x2E] movs r0, 0xC0 strh r0, [r4, 0x30] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim b _081323CE .align 2, 0 _081323A8: .4byte 0x0202f7c9 _081323AC: .4byte 0x03004b00 _081323B0: .4byte 0x0000fff5 _081323B4: movs r0, 0xB strh r0, [r4, 0x2E] movs r0, 0xC0 strh r0, [r4, 0x30] ldr r1, _081323D8 ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] _081323CE: ldr r0, _081323DC str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _081323D8: .4byte 0x03004b00 _081323DC: .4byte sub_8132318 thumb_func_end sub_8132370 thumb_func_start sub_81323E0 sub_81323E0: @ 81323E0 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _08132424 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x2 bl sub_807A100 strh r0, [r5, 0x22] lsls r0, 16 asrs r0, 16 cmp r0, 0xF bgt _0813240A movs r0, 0x10 strh r0, [r5, 0x22] _0813240A: movs r0, 0 strh r0, [r5, 0x3A] movs r1, 0x10 strh r1, [r5, 0x3C] ldr r0, _08132428 str r0, [r5, 0x1C] ldr r0, _0813242C lsls r1, 8 strh r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08132424: .4byte 0x0202f7c8 _08132428: .4byte sub_8132430 _0813242C: .4byte REG_BLDALPHA thumb_func_end sub_81323E0 thumb_func_start sub_8132430 sub_8132430: @ 8132430 push {r4,lr} adds r3, r0, 0 movs r0, 0x32 ldrsh r1, [r3, r0] cmp r1, 0x1 beq _081324A8 cmp r1, 0x1 bgt _08132446 cmp r1, 0 beq _08132450 b _08132522 _08132446: cmp r1, 0x2 beq _081324BE cmp r1, 0x3 beq _0813251C b _08132522 _08132450: ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _08132522 strh r1, [r3, 0x2E] ldrh r1, [r3, 0x30] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0813247A ldrh r2, [r3, 0x3A] movs r4, 0x3A ldrsh r0, [r3, r4] cmp r0, 0xF bgt _08132488 adds r0, r2, 0x1 strh r0, [r3, 0x3A] b _08132488 _0813247A: ldrh r2, [r3, 0x3C] movs r4, 0x3C ldrsh r0, [r3, r4] cmp r0, 0 beq _08132488 subs r0, r2, 0x1 strh r0, [r3, 0x3C] _08132488: adds r0, r1, 0x1 strh r0, [r3, 0x30] ldr r2, _081324A4 ldrh r0, [r3, 0x3C] lsls r0, 8 ldrh r1, [r3, 0x3A] orrs r0, r1 strh r0, [r2] movs r1, 0x3C ldrsh r0, [r3, r1] cmp r0, 0 bne _08132522 b _08132510 .align 2, 0 _081324A4: .4byte REG_BLDALPHA _081324A8: ldrh r0, [r3, 0x2E] adds r0, 0x1 movs r1, 0 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _08132522 strh r1, [r3, 0x2E] strh r1, [r3, 0x30] b _08132510 _081324BE: ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _08132522 movs r0, 0 strh r0, [r3, 0x2E] ldrh r1, [r3, 0x30] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081324EA ldrh r2, [r3, 0x3A] movs r4, 0x3A ldrsh r0, [r3, r4] cmp r0, 0 beq _081324F8 subs r0, r2, 0x1 strh r0, [r3, 0x3A] b _081324F8 _081324EA: ldrh r2, [r3, 0x3C] movs r4, 0x3C ldrsh r0, [r3, r4] cmp r0, 0xF bgt _081324F8 adds r0, r2, 0x1 strh r0, [r3, 0x3C] _081324F8: adds r0, r1, 0x1 strh r0, [r3, 0x30] ldr r2, _08132518 ldrh r0, [r3, 0x3C] lsls r0, 8 ldrh r1, [r3, 0x3A] orrs r0, r1 strh r0, [r2] movs r1, 0x3C ldrsh r0, [r3, r1] cmp r0, 0x10 bne _08132522 _08132510: ldrh r0, [r3, 0x32] adds r0, 0x1 strh r0, [r3, 0x32] b _08132522 .align 2, 0 _08132518: .4byte REG_BLDALPHA _0813251C: adds r0, r3, 0 bl move_anim_8074EE0 _08132522: pop {r4} pop {r0} bx r0 thumb_func_end sub_8132430 thumb_func_start sub_8132528 sub_8132528: @ 8132528 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r2, _08132544 movs r0, 0 strh r0, [r2, 0xE] ldr r0, _08132548 ldrh r1, [r0] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _0813254C movs r0, 0x1 b _0813256E .align 2, 0 _08132544: .4byte 0x03004b00 _08132548: .4byte 0x0202f7c0 _0813254C: movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _08132558 movs r0, 0x2 b _0813256E _08132558: movs r0, 0x18 ands r0, r1 cmp r0, 0 beq _08132564 movs r0, 0x3 b _0813256E _08132564: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08132570 movs r0, 0x4 _0813256E: strh r0, [r2, 0xE] _08132570: adds r0, r3, 0 bl move_anim_task_del pop {r0} bx r0 thumb_func_end sub_8132528 thumb_func_start sub_813257C sub_813257C: @ 813257C push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _081325B4 adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] ldr r0, _081325B8 ldrb r0, [r0] bl obj_id_for_side_relative_to_move adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 strh r1, [r4, 0x26] ldr r2, _081325BC adds r0, r4, 0 bl sub_80798F4 ldr r0, _081325C0 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _081325B4: .4byte 0x03004b20 _081325B8: .4byte 0x03004b00 _081325BC: .4byte gUnknown_08402B28 _081325C0: .4byte sub_81325C4 thumb_func_end sub_813257C thumb_func_start sub_81325C4 sub_81325C4: @ 81325C4 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r2, _0813261C adds r3, r0, r2 ldrh r0, [r3, 0x8] adds r1, r0, 0x1 movs r5, 0 strh r1, [r3, 0x8] subs r0, 0x10 lsls r0, 16 lsrs r0, 16 adds r6, r2, 0 cmp r0, 0x16 bhi _08132628 ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _08132638 strh r5, [r3, 0xA] ldrh r0, [r3, 0xC] adds r0, 0x1 strh r0, [r3, 0xC] movs r5, 0x1 ands r0, r5 cmp r0, 0 bne _08132628 ldr r2, _08132620 movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _08132624 strh r1, [r0, 0x24] b _08132638 .align 2, 0 _0813261C: .4byte 0x03004b20 _08132620: .4byte 0x02020004 _08132624: .4byte 0x0000ffff _08132628: ldr r2, _08132658 movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r5, [r0, 0x24] _08132638: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r6 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _08132650 adds r0, r4, 0 bl move_anim_task_del _08132650: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08132658: .4byte 0x02020004 thumb_func_end sub_81325C4 thumb_func_start sub_813265C sub_813265C: @ 813265C push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_813265C thumb_func_start sub_8132670 sub_8132670: @ 8132670 push {lr} sub sp, 0x4 bl script_env_2_enable ldr r0, _08132698 movs r1, 0xA bl CreateTask movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08132698: .4byte sub_813269C thumb_func_end sub_8132670 thumb_func_start sub_813269C sub_813269C: @ 813269C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _081326C8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081326C0 ldr r0, _081326CC bl SetMainCallback2 ldr r1, _081326D0 ldr r0, _081326D4 str r0, [r1] adds r0, r4, 0 bl DestroyTask _081326C0: pop {r4} pop {r0} bx r0 .align 2, 0 _081326C8: .4byte 0x0202f388 _081326CC: .4byte sub_81326D8 _081326D0: .4byte 0x0300485c _081326D4: .4byte sub_8080990 thumb_func_end sub_813269C thumb_func_start sub_81326D8 sub_81326D8: @ 81326D8 push {r4,r5,lr} movs r1, 0x80 lsls r1, 19 movs r0, 0 strh r0, [r1] bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks ldr r4, _08132778 ldr r0, _0813277C str r0, [r4] bl sub_81332A0 ldr r1, [r4] ldr r0, _08132780 ldrh r0, [r0] ldr r2, _08132784 adds r1, r2 movs r5, 0 strb r0, [r1] bl sub_8133558 ldr r0, _08132788 bl SetVBlankCallback ldr r4, _0813278C adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C bl sub_8071EF4 ldr r4, _08132790 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C bl sub_8071EF4 ldr r0, _08132794 strh r5, [r0] strh r5, [r0] adds r0, 0x2 strh r5, [r0] strh r5, [r0] ldr r0, _08132798 bl LoadSpriteSheet ldr r0, _0813279C bl LoadSpritePalette bl sub_8133358 movs r0, 0 movs r1, 0 movs r2, 0x2 bl FillPalette bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade ldr r0, _081327A0 bl SetMainCallback2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08132778: .4byte 0x030007b0 _0813277C: .4byte 0x02017000 _08132780: .4byte 0x0202e8cc _08132784: .4byte 0x000002c5 _08132788: .4byte sub_813265C _0813278C: .4byte gWindowConfig_81E7240 _08132790: .4byte gWindowConfig_81E6CE4 _08132794: .4byte REG_BG0VOFS _08132798: .4byte gUnknown_08402D80 _0813279C: .4byte gUnknown_08402D88 _081327A0: .4byte sub_8132870 thumb_func_end sub_81326D8 thumb_func_start sub_81327A4 sub_81327A4: @ 81327A4 push {r4,r5,lr} bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks ldr r4, _08132844 ldr r0, _08132848 str r0, [r4] bl sub_8133558 ldr r1, [r4] ldr r0, _0813284C ldrh r0, [r0] ldr r2, _08132850 adds r1, r2 movs r5, 0 strb r0, [r1] ldr r0, _08132854 bl SetVBlankCallback ldr r4, _08132858 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C bl sub_8071EF4 ldr r4, _0813285C adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C bl sub_8071EF4 movs r1, 0x80 lsls r1, 19 movs r2, 0x9A lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _08132860 strh r5, [r0] subs r0, 0x2 strh r5, [r0] adds r0, 0x4 strh r5, [r0] strh r5, [r0] ldr r0, _08132864 bl LoadSpriteSheet ldr r0, _08132868 bl LoadSpritePalette bl sub_8133358 movs r0, 0 movs r1, 0 movs r2, 0x2 bl FillPalette bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade ldr r0, _0813286C bl SetMainCallback2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08132844: .4byte 0x030007b0 _08132848: .4byte 0x02017000 _0813284C: .4byte 0x0202e8ce _08132850: .4byte 0x000002c6 _08132854: .4byte sub_813265C _08132858: .4byte gWindowConfig_81E7240 _0813285C: .4byte gWindowConfig_81E6CE4 _08132860: .4byte REG_BG0VOFS _08132864: .4byte gUnknown_08402D80 _08132868: .4byte gUnknown_08402D88 _0813286C: .4byte sub_8132870 thumb_func_end sub_81327A4 thumb_func_start sub_8132870 sub_8132870: @ 8132870 push {r4,lr} bl sub_8132908 ldr r4, _081328E0 ldr r1, [r4] ldrb r0, [r1, 0x1D] cmp r0, 0 beq _08132896 movs r0, 0 strb r0, [r1, 0x1D] ldr r0, [r4] ldrb r1, [r0, 0x18] lsls r1, 1 adds r1, 0x1 lsls r1, 27 lsrs r1, 24 movs r0, 0x58 bl sub_814AD7C _08132896: ldr r1, [r4] ldrb r0, [r1, 0x1E] cmp r0, 0 beq _081328A6 movs r0, 0 strb r0, [r1, 0x1E] bl sub_8133800 _081328A6: ldr r1, [r4] ldr r2, _081328E4 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _081328C8 adds r2, 0x1 adds r0, r1, r2 ldrb r0, [r0] movs r1, 0x1 bl sub_8133AEC ldr r0, [r4] ldr r1, _081328E4 adds r0, r1 movs r1, 0 strb r1, [r0] _081328C8: bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r4} pop {r0} bx r0 .align 2, 0 _081328E0: .4byte 0x030007b0 _081328E4: .4byte 0x000002c3 thumb_func_end sub_8132870 thumb_func_start sub_81328E8 sub_81328E8: @ 81328E8 push {r4,lr} adds r1, r0, 0 ldr r4, _08132904 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x3 movs r2, 0xF bl AddTextPrinterWithCallbackForMessage pop {r4} pop {r0} bx r0 .align 2, 0 _08132904: .4byte 0x020234cc thumb_func_end sub_81328E8 thumb_func_start sub_8132908 sub_8132908: @ 8132908 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 ldr r1, _0813292C ldr r0, [r1] ldrb r0, [r0] adds r7, r1, 0 cmp r0, 0x21 bls _08132920 b _08132FD6 _08132920: lsls r0, 2 ldr r1, _08132930 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813292C: .4byte 0x030007b0 _08132930: .4byte _08132934 .align 2, 0 _08132934: .4byte _081329BC .4byte _08132A0C .4byte _08132A24 .4byte _08132A2C .4byte _08132A60 .4byte _08132A66 .4byte _08132A98 .4byte _08132FD6 .4byte _08132AAA .4byte _08132AD0 .4byte _08132FD6 .4byte _08132FD6 .4byte _08132B74 .4byte _08132B98 .4byte _08132DD8 .4byte _08132DF8 .4byte _08132BF0 .4byte _08132C08 .4byte _08132C2C .4byte _08132D40 .4byte _08132D68 .4byte _08132DB8 .4byte _08132DC6 .4byte _08132FD6 .4byte _08132C74 .4byte _08132C8C .4byte _08132CB0 .4byte _08132D0C .4byte _08132E18 .4byte _08132E7C .4byte _08132F58 .4byte _08132F84 .4byte _08132FA4 .4byte _08132FBC _081329BC: ldr r1, [r7] ldrb r0, [r1] adds r0, 0x1 movs r4, 0 strb r0, [r1] bl sub_8132FEC movs r0, 0 bl sub_8133030 bl sub_8133800 ldr r0, _08132A04 adds r0, 0x64 movs r1, 0x48 strh r1, [r0] ldr r0, [r7] ldr r1, _08132A08 adds r0, r1 movs r1, 0x1 strb r1, [r0] movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r1, 0x80 lsls r1, 19 movs r2, 0x9A lsls r2, 5 adds r0, r2, 0 strh r0, [r1] b _08132FD6 .align 2, 0 _08132A04: .4byte 0x02020004 _08132A08: .4byte 0x000002c3 _08132A0C: ldr r0, _08132A20 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08132A1A b _08132FD6 _08132A1A: ldr r1, [r7] movs r0, 0x4 b _08132FD4 .align 2, 0 _08132A20: .4byte 0x0202f388 _08132A24: ldr r1, [r7] ldrb r0, [r1] adds r0, 0x1 b _08132FD4 _08132A2C: movs r0, 0 bl sub_8133030 bl sub_8133800 ldr r2, _08132A54 ldr r0, [r2] ldr r1, _08132A58 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r1, [r2] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, _08132A5C adds r0, 0x64 movs r1, 0x48 strh r1, [r0] b _08132FD6 .align 2, 0 _08132A54: .4byte 0x030007b0 _08132A58: .4byte 0x000002c3 _08132A5C: .4byte 0x02020004 _08132A60: bl sub_81330E8 b _08132A9C _08132A66: movs r0, 0 bl sub_8133140 bl sub_8133800 ldr r2, _08132A8C ldr r0, [r2] ldr r1, _08132A90 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, _08132A94 adds r0, 0x64 movs r1, 0x48 strh r1, [r0] ldr r1, [r2] ldrb r0, [r1] adds r0, 0x1 b _08132FD4 .align 2, 0 _08132A8C: .4byte 0x030007b0 _08132A90: .4byte 0x000002c3 _08132A94: .4byte 0x02020004 _08132A98: bl sub_8133248 _08132A9C: lsls r0, 24 cmp r0, 0 beq _08132AA4 b _08132FD6 _08132AA4: bl sub_813362C b _08132FD6 _08132AAA: bl sub_8072080 lsls r0, 24 cmp r0, 0 bne _08132AB6 b _08132FD6 _08132AB6: movs r0, 0x15 movs r1, 0x7 movs r2, 0x1 bl sub_8072974 ldr r0, _08132ACC ldr r1, [r0] ldrb r0, [r1] adds r0, 0x1 b _08132FD4 .align 2, 0 _08132ACC: .4byte 0x030007b0 _08132AD0: bl FillWindowPixelBuffer lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 bne _08132B3A bl sub_8133CA4 ldr r4, _08132B1C ldr r2, [r4] ldr r1, _08132B20 adds r0, r2, r1 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08132B24 adds r0, r1 ldrb r1, [r2, 0x1B] lsls r1, 1 adds r2, 0x20 adds r2, r1 ldrh r1, [r2] bl pokemon_moveset_pad_ lsls r0, 16 ldr r1, _08132B28 cmp r0, r1 beq _08132B34 ldr r0, _08132B2C bl sub_81328E8 ldr r1, _08132B30 movs r0, 0x1 strh r0, [r1] ldr r1, [r4] movs r0, 0x1F b _08132FD4 .align 2, 0 _08132B1C: .4byte 0x030007b0 _08132B20: .4byte 0x000002c5 _08132B24: .4byte 0x03004360 _08132B28: .4byte 0xffff0000 _08132B2C: .4byte gUnknown_0842CCE9 _08132B30: .4byte 0x0202e8cc _08132B34: ldr r1, [r4] movs r0, 0x10 b _08132FD4 _08132B3A: movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08132B48 cmp r1, 0x1 beq _08132B48 b _08132FD6 _08132B48: bl sub_8133CA4 ldr r3, _08132B70 ldr r1, [r3] movs r2, 0xB1 lsls r2, 2 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08132B60 movs r0, 0x3 strb r0, [r1] _08132B60: ldr r1, [r3] adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x1 beq _08132B6C b _08132FD6 _08132B6C: movs r0, 0x5 b _08132FD4 .align 2, 0 _08132B70: .4byte 0x030007b0 _08132B74: bl sub_8072080 lsls r0, 24 cmp r0, 0 bne _08132B80 b _08132FD6 _08132B80: movs r0, 0x15 movs r1, 0x7 movs r2, 0x1 bl sub_8072974 ldr r0, _08132B94 ldr r1, [r0] ldrb r0, [r1] adds r0, 0x1 b _08132FD4 .align 2, 0 _08132B94: .4byte 0x030007b0 _08132B98: bl FillWindowPixelBuffer lsls r0, 24 asrs r4, r0, 24 cmp r4, 0 bne _08132BB4 bl sub_8133CA4 ldr r0, _08132BB0 strh r4, [r0] b _08132FCE .align 2, 0 _08132BB0: .4byte 0x0202e8cc _08132BB4: movs r0, 0x1 negs r0, r0 cmp r4, r0 beq _08132BC2 cmp r4, 0x1 beq _08132BC2 b _08132FD6 _08132BC2: bl sub_8133CA4 ldr r3, _08132BEC ldr r1, [r3] movs r2, 0xB1 lsls r2, 2 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08132BDA movs r0, 0x3 strb r0, [r1] _08132BDA: ldr r1, [r3] adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x1 beq _08132BE6 b _08132FD6 _08132BE6: movs r0, 0x5 b _08132FD4 .align 2, 0 _08132BEC: .4byte 0x030007b0 _08132BF0: ldr r0, _08132C00 bl sub_81328E8 ldr r0, _08132C04 ldr r1, [r0] ldrb r0, [r1] adds r0, 0x1 b _08132FD4 .align 2, 0 _08132C00: .4byte gUnknown_0842CCF8 _08132C04: .4byte 0x030007b0 _08132C08: bl sub_8072080 lsls r0, 24 cmp r0, 0 bne _08132C14 b _08132FD6 _08132C14: movs r0, 0x15 movs r1, 0x7 movs r2, 0x1 bl sub_8072974 ldr r0, _08132C28 ldr r1, [r0] movs r0, 0x12 b _08132FD4 .align 2, 0 _08132C28: .4byte 0x030007b0 _08132C2C: bl FillWindowPixelBuffer lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 bne _08132C54 bl sub_8133CA4 ldr r0, _08132C4C bl sub_81328E8 ldr r0, _08132C50 ldr r1, [r0] movs r0, 0x13 b _08132FD4 .align 2, 0 _08132C4C: .4byte gUnknown_0842CE06 _08132C50: .4byte 0x030007b0 _08132C54: movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08132C62 cmp r1, 0x1 beq _08132C62 b _08132FD6 _08132C62: bl sub_8133CA4 ldr r0, _08132C70 ldr r1, [r0] movs r0, 0x18 b _08132FD4 .align 2, 0 _08132C70: .4byte 0x030007b0 _08132C74: ldr r0, _08132C84 bl sub_81328E8 ldr r0, _08132C88 ldr r1, [r0] ldrb r0, [r1] adds r0, 0x1 b _08132FD4 .align 2, 0 _08132C84: .4byte gUnknown_0842CD65 _08132C88: .4byte 0x030007b0 _08132C8C: bl sub_8072080 lsls r0, 24 cmp r0, 0 bne _08132C98 b _08132FD6 _08132C98: ldr r0, _08132CAC ldr r1, [r0] movs r0, 0x1A strb r0, [r1] movs r0, 0x15 movs r1, 0x7 movs r2, 0x1 bl sub_8072974 b _08132FD6 .align 2, 0 _08132CAC: .4byte 0x030007b0 _08132CB0: bl FillWindowPixelBuffer lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 bne _08132CCC bl sub_8133CA4 ldr r0, _08132CC8 ldr r1, [r0] movs r0, 0x1B b _08132FD4 .align 2, 0 _08132CC8: .4byte 0x030007b0 _08132CCC: movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08132CDA cmp r1, 0x1 beq _08132CDA b _08132FD6 _08132CDA: bl sub_8133CA4 ldr r1, _08132D08 ldr r2, [r1] movs r3, 0xB1 lsls r3, 2 adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0 bne _08132CF2 movs r0, 0x3 strb r0, [r2] _08132CF2: ldr r2, [r1] adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0x1 bne _08132D00 movs r0, 0x5 strb r0, [r2] _08132D00: ldr r1, [r1] movs r0, 0x10 b _08132FD4 .align 2, 0 _08132D08: .4byte 0x030007b0 _08132D0C: bl sub_8072080 lsls r0, 24 cmp r0, 0 bne _08132D18 b _08132FD6 _08132D18: ldr r3, _08132D3C ldr r1, [r3] movs r2, 0xB1 lsls r2, 2 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08132D2C movs r0, 0x3 strb r0, [r1] _08132D2C: ldr r1, [r3] adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x1 beq _08132D38 b _08132FD6 _08132D38: movs r0, 0x5 b _08132FD4 .align 2, 0 _08132D3C: .4byte 0x030007b0 _08132D40: bl sub_8072080 lsls r0, 24 cmp r0, 0 bne _08132D4C b _08132FD6 _08132D4C: ldr r0, _08132D64 ldr r1, [r0] movs r2, 0 movs r0, 0x14 strb r0, [r1] subs r0, 0x15 str r2, [sp] movs r1, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _08132FD6 .align 2, 0 _08132D64: .4byte 0x030007b0 _08132D68: ldr r0, _08132DA4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08132D76 b _08132FD6 _08132D76: ldr r0, _08132DA8 ldr r5, [r7] ldr r2, _08132DAC adds r1, r5, r2 ldrb r1, [r1] ldr r2, _08132DB0 ldrb r2, [r2] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, _08132DB4 ldrb r4, [r5, 0x1B] lsls r4, 1 adds r5, 0x20 adds r5, r4 ldrh r4, [r5] str r4, [sp] bl sub_809D9F0 ldr r1, [r7] movs r0, 0x1C b _08132FD4 .align 2, 0 _08132DA4: .4byte 0x0202f388 _08132DA8: .4byte 0x03004360 _08132DAC: .4byte 0x000002c5 _08132DB0: .4byte 0x03004350 _08132DB4: .4byte sub_81327A4 _08132DB8: bl sub_8072080 lsls r0, 24 cmp r0, 0 bne _08132DC4 b _08132FD6 _08132DC4: b _08132FCE _08132DC6: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _08132FD6 _08132DD8: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08132DF4 ldr r1, [r0] ldrb r0, [r1] adds r0, 0x1 b _08132FD4 .align 2, 0 _08132DF4: .4byte 0x030007b0 _08132DF8: ldr r0, _08132E10 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08132E06 b _08132FD6 _08132E06: ldr r0, _08132E14 bl SetMainCallback2 b _08132FD6 .align 2, 0 _08132E10: .4byte 0x0202f388 _08132E14: .4byte c2_exit_to_overworld_2_switch _08132E18: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r5, _08132E74 ldr r1, [r5] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] bl sub_8132FEC bl sub_8133800 ldr r0, [r5] movs r4, 0xB1 lsls r4, 2 adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _08132E4E movs r0, 0x1 bl sub_8133030 _08132E4E: ldr r0, [r5] adds r0, r4 ldrb r0, [r0] cmp r0, 0x1 bne _08132E66 ldr r0, _08132E78 adds r0, 0x64 movs r1, 0x48 strh r1, [r0] movs r0, 0x1 bl sub_8133140 _08132E66: ldr r0, [r5] adds r0, r4 ldrb r0, [r0] movs r1, 0x1 bl sub_8133AEC b _08132FD6 .align 2, 0 _08132E74: .4byte 0x030007b0 _08132E78: .4byte 0x02020004 _08132E7C: ldr r0, _08132E9C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08132E8A b _08132FD6 _08132E8A: ldr r1, [r7] ldr r0, _08132EA0 adds r2, r1, r0 ldrb r0, [r2] cmp r0, 0x4 bne _08132EA4 movs r0, 0x18 b _08132FD4 .align 2, 0 _08132E9C: .4byte 0x0202f388 _08132EA0: .4byte 0x000002c6 _08132EA4: ldr r4, _08132F38 adds r0, r1, r4 ldrb r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, _08132F3C adds r0, r5 ldrb r1, [r2] adds r1, 0xD bl PokemonGetField lsls r0, 16 lsrs r0, 16 ldr r2, _08132F40 movs r1, 0xD mov r9, r1 mov r1, r9 muls r1, r0 ldr r0, _08132F44 mov r8, r0 add r1, r8 adds r0, r2, 0 bl StringCopy ldr r1, [r7] adds r0, r1, r4 ldrb r0, [r0] muls r0, r6 adds r0, r5 ldr r2, _08132F48 adds r1, r2 ldrb r1, [r1] bl sub_803DE34 ldr r3, [r7] adds r4, r3, r4 ldrb r0, [r4] muls r0, r6 adds r0, r5 ldrb r2, [r3, 0x1B] lsls r2, 1 adds r1, r3, 0 adds r1, 0x20 adds r1, r2 ldrh r1, [r1] ldr r2, _08132F48 adds r3, r2 ldrb r2, [r3] bl sub_803B6A4 ldr r0, _08132F4C ldr r1, [r7] ldrb r2, [r1, 0x1B] lsls r2, 1 adds r1, 0x20 adds r1, r2 ldrh r1, [r1] mov r2, r9 muls r2, r1 adds r1, r2, 0 add r1, r8 bl StringCopy ldr r0, _08132F50 bl sub_81328E8 ldr r1, [r7] movs r0, 0x1E strb r0, [r1] ldr r1, _08132F54 movs r0, 0x1 strh r0, [r1] b _08132FD6 .align 2, 0 _08132F38: .4byte 0x000002c5 _08132F3C: .4byte 0x03004360 _08132F40: .4byte 0x020233cc _08132F44: .4byte gMoveNames _08132F48: .4byte 0x000002c6 _08132F4C: .4byte 0x020232cc _08132F50: .4byte gUnknown_0842CD77 _08132F54: .4byte 0x0202e8cc _08132F58: bl sub_8072080 lsls r0, 24 cmp r0, 0 beq _08132FD6 ldr r0, _08132F78 bl sub_81328E8 ldr r0, _08132F7C ldr r1, [r0] movs r0, 0x1F strb r0, [r1] ldr r0, _08132F80 bl fanfare_play b _08132FD6 .align 2, 0 _08132F78: .4byte gUnknown_0842CDA3 _08132F7C: .4byte 0x030007b0 _08132F80: .4byte 0x0000016f _08132F84: bl sub_8072080 lsls r0, 24 cmp r0, 0 beq _08132FD6 ldr r0, _08132F9C bl fanfare_play ldr r0, _08132FA0 ldr r1, [r0] movs r0, 0x20 b _08132FD4 .align 2, 0 _08132F9C: .4byte 0x0000016f _08132FA0: .4byte 0x030007b0 _08132FA4: bl task_is_not_running_overworld_fanfare lsls r0, 24 cmp r0, 0 beq _08132FD6 ldr r0, _08132FB8 ldr r1, [r0] movs r0, 0x21 b _08132FD4 .align 2, 0 _08132FB8: .4byte 0x030007b0 _08132FBC: ldr r0, _08132FE4 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08132FD6 movs r0, 0x5 bl audio_play _08132FCE: ldr r0, _08132FE8 ldr r1, [r0] movs r0, 0xE _08132FD4: strb r0, [r1] _08132FD6: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08132FE4: .4byte 0x03001770 _08132FE8: .4byte 0x030007b0 thumb_func_end sub_8132908 thumb_func_start sub_8132FEC sub_8132FEC: @ 8132FEC push {r4-r6,lr} ldr r0, _08133024 bl sub_8071E2C movs r5, 0 ldr r4, _08133028 adds r6, r4, 0 _08132FFA: lsls r3, r5, 2 ldrb r0, [r4] adds r1, r6, 0x1 adds r1, r3, r1 ldrb r1, [r1] adds r2, r6, 0x2 adds r3, r2 ldrb r2, [r3] ldrb r3, [r4, 0x3] bl DrawDefaultWindow adds r4, 0x4 adds r5, 0x1 cmp r5, 0x3 bls _08132FFA ldr r0, _0813302C bl sub_8071E2C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08133024: .4byte gWindowConfig_81E7240 _08133028: .4byte gUnknown_08402CF8 _0813302C: .4byte gWindowConfig_81E6CE4 thumb_func_end sub_8132FEC thumb_func_start sub_8133030 sub_8133030: @ 8133030 push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r7, r0, 24 ldr r4, _081330D4 ldr r5, _081330D8 ldr r0, [r5] ldrb r0, [r0, 0x3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] ldr r0, [r5] ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] movs r2, 0 ldr r6, _081330DC movs r3, 0x4 _08133070: ldr r0, [r5] adds r0, r2 ldrb r1, [r0, 0x7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] orrs r1, r3 strb r1, [r0] adds r2, 0x1 cmp r2, 0xF ble _08133070 ldr r0, [r6] cmp r0, 0 beq _081330B4 ldr r5, _081330E0 adds r4, r6, 0 _08133096: ldr r1, [r4] adds r0, r5, 0 movs r2, 0x40 movs r3, 0x2 bl sub_8072C74 ldrb r1, [r4, 0x4] ldrb r2, [r4, 0x5] adds r0, r5, 0 bl Print adds r4, 0x8 ldr r0, [r4] cmp r0, 0 bne _08133096 _081330B4: cmp r7, 0 bne _081330CC ldr r0, _081330E4 movs r1, 0x20 str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] movs r1, 0x18 movs r2, 0x78 movs r3, 0xC0 bl sub_8072AB0 _081330CC: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081330D4: .4byte 0x02020004 _081330D8: .4byte 0x030007b0 _081330DC: .4byte gUnknown_08402D08 _081330E0: .4byte 0x02039360 _081330E4: .4byte gUnknown_0842CCC7 thumb_func_end sub_8133030 thumb_func_start sub_81330E8 sub_81330E8: @ 81330E8 push {r4,lr} ldr r0, _08133134 ldrh r2, [r0, 0x2E] movs r1, 0x30 ands r1, r2 negs r0, r1 orrs r0, r1 lsrs r4, r0, 31 ldr r0, _08133138 ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _0813310C movs r0, 0xC0 lsls r0, 2 ands r0, r2 cmp r0, 0 beq _0813310C adds r4, 0x1 _0813310C: cmp r4, 0 beq _0813312A movs r0, 0x5 bl audio_play ldr r2, _0813313C ldr r1, [r2] movs r0, 0x5 strb r0, [r1] ldr r0, [r2] movs r1, 0xB1 lsls r1, 2 adds r0, r1 movs r1, 0x1 strb r1, [r0] _0813312A: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08133134: .4byte 0x03001770 _08133138: .4byte gSaveBlock2 _0813313C: .4byte 0x030007b0 thumb_func_end sub_81330E8 thumb_func_start sub_8133140 sub_8133140: @ 8133140 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x8] ldr r4, _08133234 ldr r5, _08133238 ldr r0, [r5] ldrb r0, [r0, 0x3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 adds r1, 0x3E ldrb r2, [r1] movs r3, 0x5 negs r3, r3 adds r0, r3, 0 ands r0, r2 strb r0, [r1] ldr r0, [r5] ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r2, [r0] adds r1, r3, 0 ands r1, r2 strb r1, [r0] movs r6, 0 ldr r7, _0813323C _0813318A: ldr r0, [r5] adds r0, r6 ldrb r0, [r0, 0x7] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 adds r1, 0x3E ldrb r2, [r1] adds r0, r3, 0 ands r0, r2 strb r0, [r1] adds r6, 0x1 cmp r6, 0xF ble _0813318A movs r6, 0 ldr r0, [r7] cmp r0, 0 beq _08133208 mov r9, r7 mov r10, r6 movs r0, 0x24 add r0, r9 mov r8, r0 _081331BA: mov r0, r9 adds r0, 0x20 add r0, r10 ldr r1, [r0] ldr r0, _08133240 movs r2, 0x40 movs r3, 0x2 bl sub_8072C74 mov r0, r8 ldrb r5, [r0] ldrb r4, [r0, 0x1] ldr r0, _08133240 adds r1, r5, 0 adds r2, r4, 0 bl Print cmp r6, 0 beq _081331F8 adds r1, r4, 0x2 lsls r1, 24 lsrs r1, 24 adds r2, r5, 0x7 lsls r2, 24 lsrs r2, 24 adds r3, r4, 0x3 lsls r3, 24 lsrs r3, 24 adds r0, r5, 0 bl Reset _081331F8: movs r0, 0x8 add r10, r0 add r8, r0 adds r7, 0x8 adds r6, 0x1 ldr r0, [r7] cmp r0, 0 bne _081331BA _08133208: ldr r0, [sp, 0x8] cmp r0, 0 bne _08133222 ldr r0, _08133244 movs r1, 0x20 str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] movs r1, 0x18 movs r2, 0x78 movs r3, 0xC0 bl sub_8072AB0 _08133222: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08133234: .4byte 0x02020004 _08133238: .4byte 0x030007b0 _0813323C: .4byte gUnknown_08402D08 _08133240: .4byte 0x02039360 _08133244: .4byte gUnknown_0842CCC7 thumb_func_end sub_8133140 thumb_func_start sub_8133248 sub_8133248: @ 8133248 push {r4,lr} ldr r0, _08133294 ldrh r2, [r0, 0x2E] movs r1, 0x30 ands r1, r2 negs r0, r1 orrs r0, r1 lsrs r4, r0, 31 ldr r0, _08133298 ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _0813326C movs r0, 0xC0 lsls r0, 2 ands r0, r2 cmp r0, 0 beq _0813326C adds r4, 0x1 _0813326C: cmp r4, 0 beq _0813328A movs r0, 0x5 bl audio_play ldr r2, _0813329C ldr r1, [r2] movs r3, 0 movs r0, 0x3 strb r0, [r1] ldr r0, [r2] movs r1, 0xB1 lsls r1, 2 adds r0, r1 strb r3, [r0] _0813328A: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08133294: .4byte 0x03001770 _08133298: .4byte gSaveBlock2 _0813329C: .4byte 0x030007b0 thumb_func_end sub_8133248 thumb_func_start sub_81332A0 sub_81332A0: @ 81332A0 push {r4,lr} ldr r2, _081332F8 ldr r0, [r2] movs r1, 0 strb r1, [r0] ldr r0, [r2] strb r1, [r0, 0x2] ldr r0, [r2] strb r1, [r0, 0x19] ldr r0, [r2] strb r1, [r0, 0x18] ldr r0, [r2] strb r1, [r0, 0x1C] ldr r0, [r2] strb r1, [r0, 0x1A] ldr r0, [r2] strb r1, [r0, 0x1B] ldr r0, [r2] strb r1, [r0, 0x1D] ldr r0, [r2] strb r1, [r0, 0x1E] ldr r0, [r2] ldr r3, _081332FC adds r0, r3 strb r1, [r0] ldr r0, [r2] adds r3, 0x1 adds r0, r3 strb r1, [r0] movs r3, 0 adds r4, r2, 0 movs r2, 0 _081332E0: ldr r0, [r4] lsls r1, r3, 1 adds r0, 0x20 adds r0, r1 strh r2, [r0] adds r3, 0x1 cmp r3, 0x13 ble _081332E0 pop {r4} pop {r0} bx r0 .align 2, 0 _081332F8: .4byte 0x030007b0 _081332FC: .4byte 0x000002c3 thumb_func_end sub_81332A0 thumb_func_start sub_8133300 sub_8133300: @ 8133300 push {r4,lr} adds r4, r0, 0 movs r1, 0x30 ldrsh r0, [r4, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 1 movs r0, 0xFF ands r1, r0 movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0x1 beq _08133324 cmp r0, 0x1 ble _0813334A cmp r0, 0x2 beq _08133338 b _0813334A _08133324: adds r0, r1, 0 movs r1, 0x3 bl sine ldrh r1, [r4, 0x32] adds r2, r0, 0 muls r2, r1 adds r0, r2, 0 strh r0, [r4, 0x24] b _0813334A _08133338: adds r0, r1, 0 movs r1, 0x1 bl sine ldrh r1, [r4, 0x32] adds r2, r0, 0 muls r2, r1 adds r0, r2, 0 strh r0, [r4, 0x26] _0813334A: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] pop {r4} pop {r0} bx r0 thumb_func_end sub_8133300 thumb_func_start sub_8133358 sub_8133358: @ 8133358 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 ldr r6, _0813353C adds r0, r6, 0 movs r1, 0x8 movs r2, 0x10 movs r3, 0 bl CreateSprite ldr r4, _08133540 ldr r1, [r4] strb r0, [r1, 0x3] ldr r5, _08133544 ldr r2, [r4] ldrb r1, [r2, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x1 mov r8, r1 mov r1, r8 strh r1, [r0, 0x2E] ldrb r1, [r2, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08133548 strh r1, [r0, 0x32] adds r0, r6, 0 movs r1, 0x48 movs r2, 0x10 movs r3, 0 bl CreateSprite ldr r1, [r4] strb r0, [r1, 0x4] ldr r0, [r4] ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x1 bl StartSpriteAnim ldr r2, [r4] ldrb r1, [r2, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x2E] ldrb r1, [r2, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x32] ldr r0, _0813354C mov r9, r0 movs r1, 0xA0 movs r2, 0x4 movs r3, 0 bl CreateSprite ldr r1, [r4] strb r0, [r1, 0x5] ldr r0, [r4] ldrb r1, [r0, 0x5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x1 bl StartSpriteAnim ldr r2, [r4] ldrb r1, [r2, 0x5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r6, 0x2 strh r6, [r0, 0x2E] ldrb r1, [r2, 0x5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x1 negs r1, r1 strh r1, [r0, 0x32] mov r0, r9 movs r1, 0xA0 movs r2, 0x3C movs r3, 0 bl CreateSprite ldr r1, [r4] strb r0, [r1, 0x6] ldr r2, [r4] ldrb r1, [r2, 0x6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x2E] ldrb r1, [r2, 0x6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x32] movs r5, 0 ldr r6, _08133550 _0813344E: adds r2, r5, 0 cmp r5, 0 bge _08133456 adds r2, r5, 0x3 _08133456: asrs r2, 2 lsls r1, r2, 2 subs r1, r5, r1 lsls r1, 19 movs r0, 0xE0 lsls r0, 13 adds r1, r0 asrs r1, 16 lsls r2, 19 movs r0, 0xD0 lsls r0, 14 adds r2, r0 asrs r2, 16 adds r0, r6, 0 movs r3, 0 bl CreateSprite ldr r1, [r4] adds r2, r5, 0x4 adds r1, 0x3 adds r1, r2 strb r0, [r1] ldr r0, [r4] adds r0, 0x3 adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08133544 adds r0, r1 movs r1, 0x2 bl StartSpriteAnim adds r5, 0x1 cmp r5, 0x7 ble _0813344E movs r5, 0 ldr r7, _08133550 ldr r6, _08133540 _081334A6: adds r2, r5, 0 cmp r5, 0 bge _081334AE adds r2, r5, 0x3 _081334AE: asrs r2, 2 lsls r1, r2, 2 subs r1, r5, r1 lsls r1, 19 movs r0, 0xE0 lsls r0, 13 adds r1, r0 asrs r1, 16 lsls r2, 19 movs r0, 0xB8 lsls r0, 15 adds r2, r0 asrs r2, 16 adds r0, r7, 0 movs r3, 0 bl CreateSprite ldr r1, [r6] adds r2, r5, 0 adds r2, 0xC adds r1, 0x3 adds r1, r2 strb r0, [r1] ldr r0, [r6] adds r0, 0x3 adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08133544 adds r0, r4 movs r1, 0x2 bl StartSpriteAnim adds r5, 0x1 cmp r5, 0x7 ble _081334A6 movs r5, 0 ldr r3, _08133540 movs r2, 0x4 _08133500: ldr r0, [r3] adds r0, 0x3 adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] adds r5, 0x1 cmp r5, 0x13 ble _08133500 ldr r1, _08133548 ldr r3, _08133554 movs r0, 0x12 str r0, [sp] movs r0, 0x10 movs r2, 0xC bl sub_814AC58 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813353C: .4byte gSpriteTemplate_8402D90 _08133540: .4byte 0x030007b0 _08133544: .4byte 0x02020004 _08133548: .4byte 0x0000ffff _0813354C: .4byte gSpriteTemplate_8402DC0 _08133550: .4byte gSpriteTemplate_8402E08 _08133554: .4byte 0x00002d9f thumb_func_end sub_8133358 thumb_func_start sub_8133558 sub_8133558: @ 8133558 push {r4-r6,lr} sub sp, 0xC ldr r5, _081335F4 ldr r1, [r5] ldr r2, _081335F8 adds r0, r1, r2 ldrb r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _081335FC adds r0, r2 adds r1, 0x20 bl sub_80403CC ldr r1, [r5] strb r0, [r1, 0x1A] movs r4, 0 ldr r0, [r5] ldrb r0, [r0, 0x1A] cmp r4, r0 bge _081335AA adds r6, r5, 0 movs r5, 0x52 _08133586: lsls r2, r4, 1 ldr r1, [r6] adds r0, r1, r5 adds r1, 0x20 adds r1, r2 ldrh r2, [r1] movs r1, 0xD muls r1, r2 ldr r2, _08133600 adds r1, r2 bl StringCopy adds r5, 0x19 adds r4, 0x1 ldr r0, [r6] ldrb r0, [r0, 0x1A] cmp r4, r0 blt _08133586 _081335AA: ldr r4, _081335F4 ldr r0, [r4] ldr r1, _081335F8 adds r0, r1 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _081335FC adds r0, r1 movs r1, 0x2 mov r2, sp bl PokemonGetField ldr r0, _08133604 mov r1, sp bl StringCopy10 ldr r0, [r4] ldrb r2, [r0, 0x1A] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, r2 adds r1, 0x52 adds r0, r1 ldr r1, _08133608 bl StringCopy ldr r1, [r4] ldrb r0, [r1, 0x1A] adds r0, 0x1 strb r0, [r1, 0x1A] add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081335F4: .4byte 0x030007b0 _081335F8: .4byte 0x000002c5 _081335FC: .4byte 0x03004360 _08133600: .4byte gMoveNames _08133604: .4byte 0x020231cc _08133608: .4byte gUnknown_0840E640 thumb_func_end sub_8133558 thumb_func_start sub_813360C sub_813360C: @ 813360C lsls r0, 24 ldr r3, _08133628 ldr r2, [r3] ldrb r1, [r2, 0x18] strb r1, [r2, 0x1C] ldr r1, [r3] lsrs r0, 24 ldrb r2, [r1, 0x18] adds r0, r2 strb r0, [r1, 0x18] ldr r1, [r3] movs r0, 0x1 strb r0, [r1, 0x1D] bx lr .align 2, 0 _08133628: .4byte 0x030007b0 thumb_func_end sub_813360C thumb_func_start sub_813362C sub_813362C: @ 813362C push {r4,r5,lr} ldr r2, _08133670 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08133688 ldr r4, _08133674 ldr r0, [r4] ldrb r0, [r0, 0x1B] cmp r0, 0 bne _08133646 b _08133796 _08133646: movs r0, 0x5 bl audio_play ldr r1, [r4] ldrb r0, [r1, 0x1B] subs r0, 0x1 strb r0, [r1, 0x1B] ldr r0, [r4] ldr r1, _08133678 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r1, [r4] ldrb r0, [r1, 0x18] cmp r0, 0 beq _0813367C movs r0, 0x1 negs r0, r0 bl sub_813360C b _08133796 .align 2, 0 _08133670: .4byte 0x03001770 _08133674: .4byte 0x030007b0 _08133678: .4byte 0x000002c3 _0813367C: ldrb r0, [r1, 0x19] cmp r0, 0 bne _08133684 b _08133796 _08133684: subs r0, 0x1 b _081336DC _08133688: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081336E8 ldr r4, _081336C8 ldr r0, [r4] ldrb r1, [r0, 0x1B] ldrb r0, [r0, 0x1A] subs r0, 0x1 cmp r1, r0 blt _081336A0 b _08133796 _081336A0: movs r0, 0x5 bl audio_play ldr r1, [r4] ldrb r0, [r1, 0x1B] adds r0, 0x1 strb r0, [r1, 0x1B] ldr r0, [r4] ldr r3, _081336CC adds r0, r3 movs r1, 0x1 strb r1, [r0] ldr r1, [r4] ldrb r0, [r1, 0x18] cmp r0, 0x2 beq _081336D0 movs r0, 0x1 bl sub_813360C b _08133796 .align 2, 0 _081336C8: .4byte 0x030007b0 _081336CC: .4byte 0x000002c3 _081336D0: ldrb r2, [r1, 0x19] ldrb r0, [r1, 0x1A] subs r0, 0x3 cmp r2, r0 beq _08133796 adds r0, r2, 0x1 _081336DC: strb r0, [r1, 0x19] ldr r1, [r4] ldrb r0, [r1, 0x1E] adds r0, 0x1 strb r0, [r1, 0x1E] b _08133796 _081336E8: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0813376C movs r0, 0x5 bl audio_play ldr r5, _08133738 ldr r2, [r5] ldrb r1, [r2, 0x1B] ldrb r0, [r2, 0x1A] subs r0, 0x1 cmp r1, r0 beq _08133748 movs r0, 0x8 strb r0, [r2] ldr r0, _0813373C ldr r1, [r5] ldrb r3, [r1, 0x1B] lsls r2, r3, 1 adds r2, r3 lsls r2, 3 adds r2, r3 adds r2, 0x52 adds r1, r2 bl StringCopy ldr r4, _08133740 ldr r1, _08133744 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x3 movs r2, 0xF bl AddTextPrinterWithCallbackForMessage b _08133796 .align 2, 0 _08133738: .4byte 0x030007b0 _0813373C: .4byte 0x020232cc _08133740: .4byte 0x020234cc _08133744: .4byte gUnknown_0842CCDF _08133748: ldr r4, _08133764 ldr r1, _08133768 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x3 movs r2, 0xF bl AddTextPrinterWithCallbackForMessage ldr r1, [r5] movs r0, 0xC strb r0, [r1] b _08133796 .align 2, 0 _08133764: .4byte 0x020234cc _08133768: .4byte gUnknown_0842CDDC _0813376C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08133796 movs r0, 0x5 bl audio_play ldr r0, _081337D4 ldr r1, [r0] movs r0, 0xC strb r0, [r1] ldr r4, _081337D8 ldr r1, _081337DC adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x3 movs r2, 0xF bl AddTextPrinterWithCallbackForMessage _08133796: ldr r0, _081337D4 ldr r4, [r0] ldrb r0, [r4, 0x1A] cmp r0, 0x3 bls _081337F8 ldr r3, _081337E0 adds r5, r3, 0 adds r5, 0xC6 ldrb r0, [r5] movs r1, 0x5 negs r1, r1 adds r2, r1, 0 ands r2, r0 strb r2, [r5] movs r0, 0x85 lsls r0, 1 adds r0, r3 mov r12, r0 ldrb r0, [r0] adds r3, r1, 0 ands r3, r0 mov r1, r12 strb r3, [r1] ldrb r0, [r4, 0x19] cmp r0, 0 bne _081337E4 movs r1, 0x4 adds r0, r2, 0 orrs r0, r1 strb r0, [r5] b _081337F8 .align 2, 0 _081337D4: .4byte 0x030007b0 _081337D8: .4byte 0x020234cc _081337DC: .4byte gUnknown_0842CDDC _081337E0: .4byte 0x02020004 _081337E4: ldrb r1, [r4, 0x19] ldrb r0, [r4, 0x1A] subs r0, 0x3 cmp r1, r0 bne _081337F8 movs r1, 0x4 adds r0, r3, 0 orrs r0, r1 mov r3, r12 strb r0, [r3] _081337F8: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_813362C thumb_func_start sub_8133800 sub_8133800: @ 8133800 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r1, _08133834 ldr r0, [r1] ldrb r6, [r0, 0x19] ldr r3, _08133838 mov r10, r1 ldr r0, _0813383C mov r9, r0 movs r1, 0x2 mov r8, r1 _0813381C: mov r4, r10 ldr r2, [r4] ldrb r0, [r2, 0x1A] cmp r6, r0 bcc _08133844 adds r0, r3, 0 ldr r1, _08133840 movs r2, 0x90 movs r3, 0 bl sub_8072C74 b _081338FA .align 2, 0 _08133834: .4byte 0x030007b0 _08133838: .4byte 0x02039360 _0813383C: .4byte gBattleMoves _08133840: .4byte gEmptyString_81E72B0 _08133844: ldrb r0, [r2, 0x1A] subs r0, 0x1 cmp r6, r0 bne _08133860 adds r0, r3, 0 ldr r1, _0813385C movs r2, 0x90 movs r3, 0 bl sub_8072C74 b _081338FA .align 2, 0 _0813385C: .4byte gUnknown_0840E640 _08133860: lsls r1, r6, 1 adds r0, r2, 0 adds r0, 0x20 adds r0, r1 ldrh r5, [r0] movs r4, 0xB1 lsls r4, 2 adds r0, r2, r4 ldrb r0, [r0] adds r7, r1, 0 cmp r0, 0 beq _081338A4 ldr r1, _0813389C lsls r0, r5, 3 adds r0, r1 ldrb r0, [r0, 0x1] lsls r0, 29 lsrs r0, 27 ldr r1, _081338A0 adds r0, r1 ldr r1, [r0] adds r0, r3, 0 movs r2, 0x27 movs r3, 0 bl sub_8072C74 adds r3, r0, 0 lsls r4, r5, 1 b _081338C2 .align 2, 0 _0813389C: .4byte gContestMoves _081338A0: .4byte gUnknown_083CAF70 _081338A4: lsls r4, r5, 1 adds r0, r4, r5 lsls r0, 2 add r0, r9 ldrb r0, [r0, 0x2] lsls r1, r0, 3 subs r1, r0 ldr r0, _08133938 adds r1, r0 adds r0, r3, 0 movs r2, 0x27 movs r3, 0 bl sub_8072C74 adds r3, r0, 0 _081338C2: adds r0, r7, r6 lsls r0, 3 adds r0, r6 adds r0, 0x52 mov r2, r10 ldr r1, [r2] adds r1, r0 adds r0, r3, 0 movs r2, 0x72 movs r3, 0 bl sub_8072C74 adds r3, r0, 0 movs r0, 0xCA strb r0, [r3] strb r0, [r3, 0x1] movs r0, 0xBA strb r0, [r3, 0x2] adds r3, 0x3 adds r0, r4, r5 lsls r0, 2 add r0, r9 ldrb r1, [r0, 0x4] adds r0, r3, 0 movs r2, 0x90 movs r3, 0 bl sub_8072C14 _081338FA: adds r3, r0, 0 movs r0, 0xFE strb r0, [r3] adds r3, 0x1 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 movs r4, 0x1 negs r4, r4 add r8, r4 mov r0, r8 cmp r0, 0 blt _08133916 b _0813381C _08133916: movs r0, 0xFF strb r0, [r3] ldr r0, _0813393C movs r1, 0xB movs r2, 0x1 bl Print movs r0, 0 bl sub_813360C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08133938: .4byte gTypeNames _0813393C: .4byte 0x02039360 thumb_func_end sub_8133800 thumb_func_start sub_8133940 sub_8133940: @ 8133940 push {r4-r7,lr} sub sp, 0x34 adds r4, r1, 0 lsls r0, 16 lsrs r5, r0, 16 ldr r1, _08133968 mov r0, sp bl StringCopy ldrb r0, [r4, 0x2] subs r0, 0x1 cmp r0, 0x6 bls _0813395C b _08133AE2 _0813395C: lsls r0, 2 ldr r1, _0813396C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08133968: .4byte gExpandedPlaceholder_Empty _0813396C: .4byte _08133970 .align 2, 0 _08133970: .4byte _08133AE2 .4byte _0813398C .4byte _08133AE2 .4byte _081339A4 .4byte _08133AE2 .4byte _081339E4 .4byte _08133A64 _0813398C: ldr r0, _081339A0 lsls r1, r5, 1 adds r1, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0x1 bls _081339B4 ldrb r1, [r1, 0x1] b _081339CE .align 2, 0 _081339A0: .4byte gBattleMoves _081339A4: ldr r0, _081339C4 lsls r1, r5, 1 adds r1, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x3] cmp r0, 0 bne _081339CC _081339B4: ldr r1, _081339C8 mov r0, sp movs r2, 0x20 movs r3, 0x2 bl sub_8072C74 b _081339D8 .align 2, 0 _081339C4: .4byte gBattleMoves _081339C8: .4byte gUnknown_0840E685 _081339CC: ldrb r1, [r1, 0x3] _081339CE: mov r0, sp movs r2, 0x20 movs r3, 0x2 bl sub_8072C14 _081339D8: ldrb r1, [r4] ldrb r2, [r4, 0x1] mov r0, sp bl Print b _08133AE2 _081339E4: ldrb r2, [r4] ldrb r1, [r4, 0x1] adds r3, r1, 0x1 lsls r3, 24 lsrs r3, 24 adds r0, r2, 0 bl Reset ldr r2, _08133A34 ldr r1, _08133A38 lsls r0, r5, 3 adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xFF bne _08133A14 movs r5, 0 _08133A14: movs r4, 0 ldr r7, _08133A3C ldr r6, _08133A40 _08133A1A: cmp r4, r5 bcs _08133A44 ldr r0, [r7] adds r0, r4 ldrb r1, [r0, 0x7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x1 bl StartSpriteAnim b _08133A58 .align 2, 0 _08133A34: .4byte gContestEffects _08133A38: .4byte gContestMoves _08133A3C: .4byte 0x030007b0 _08133A40: .4byte 0x02020004 _08133A44: ldr r0, [r7] adds r0, r4 ldrb r1, [r0, 0x7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0 bl StartSpriteAnim _08133A58: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _08133A1A b _08133AE2 _08133A64: ldrb r2, [r4] ldrb r1, [r4, 0x1] adds r3, r1, 0x1 lsls r3, 24 lsrs r3, 24 adds r0, r2, 0 bl Reset ldr r2, _08133AB4 ldr r1, _08133AB8 lsls r0, r5, 3 adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xFF bne _08133A94 movs r5, 0 _08133A94: movs r4, 0 ldr r7, _08133ABC ldr r6, _08133AC0 _08133A9A: cmp r4, r5 bcs _08133AC4 ldr r0, [r7] adds r0, r4 ldrb r1, [r0, 0xF] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x3 bl StartSpriteAnim b _08133AD8 .align 2, 0 _08133AB4: .4byte gContestEffects _08133AB8: .4byte gContestMoves _08133ABC: .4byte 0x030007b0 _08133AC0: .4byte 0x02020004 _08133AC4: ldr r0, [r7] adds r0, r4 ldrb r1, [r0, 0xF] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x2 bl StartSpriteAnim _08133AD8: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _08133A9A _08133AE2: add sp, 0x34 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8133940 thumb_func_start sub_8133AEC sub_8133AEC: @ 8133AEC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r3, r0, 24 ldr r6, _08133B88 ldr r2, [r6] ldrb r1, [r2, 0x1B] ldrb r0, [r2, 0x1A] subs r0, 0x1 cmp r1, r0 bne _08133B08 b _08133C04 _08133B08: lsls r1, 1 adds r0, r2, 0 adds r0, 0x20 adds r0, r1 ldrh r5, [r0] cmp r3, 0 beq _08133BA0 movs r4, 0 lsls r0, r5, 3 mov r8, r0 ldr r7, _08133B8C adds r3, r6, 0 movs r6, 0x5 negs r6, r6 _08133B24: ldr r0, [r3] adds r0, r4 ldrb r0, [r0, 0x7] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 adds r1, 0x3E ldrb r2, [r1] adds r0, r6, 0 ands r0, r2 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xF bls _08133B24 movs r4, 0 _08133B48: ldr r0, _08133B90 adds r0, r4, r0 ldrb r0, [r0] lsls r1, r0, 1 adds r1, r0 ldr r0, _08133B94 adds r1, r0 adds r0, r5, 0 bl sub_8133940 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x2 bls _08133B48 ldr r1, _08133B98 ldr r0, _08133B9C add r0, r8 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x20 str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] movs r1, 0x58 movs r2, 0x48 movs r3, 0x90 bl sub_8072AB0 b _08133C92 .align 2, 0 _08133B88: .4byte 0x030007b0 _08133B8C: .4byte 0x02020004 _08133B90: .4byte gUnknown_08402E3D _08133B94: .4byte gUnknown_08402E24 _08133B98: .4byte gUnknown_083CADD4 _08133B9C: .4byte gContestMoves _08133BA0: movs r4, 0 subs r6, r5, 0x1 _08133BA4: ldr r0, _08133BF8 adds r0, r4, r0 ldrb r0, [r0] lsls r1, r0, 1 adds r1, r0 ldr r0, _08133BFC adds r1, r0 adds r0, r5, 0 bl sub_8133940 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3 bls _08133BA4 ldr r1, _08133C00 lsls r0, r6, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x1 str r1, [sp] movs r1, 0x58 movs r2, 0x48 movs r3, 0x90 bl sub_8072A18 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08133C92 lsls r1, r0, 25 movs r0, 0x90 lsls r0, 20 adds r1, r0 lsrs r1, 24 movs r0, 0xB movs r2, 0x1C movs r3, 0xC bl sub_8071EBC b _08133C92 .align 2, 0 _08133BF8: .4byte gUnknown_08402E39 _08133BFC: .4byte gUnknown_08402E24 _08133C00: .4byte gMoveDescriptions _08133C04: cmp r3, 0 beq _08133C5C ldr r4, _08133C54 ldrb r2, [r4, 0xF] ldrb r1, [r4, 0x10] adds r3, r1, 0x1 lsls r3, 24 lsrs r3, 24 adds r0, r2, 0 bl Reset ldrb r2, [r4, 0x12] ldrb r1, [r4, 0x13] adds r3, r1, 0x1 lsls r3, 24 lsrs r3, 24 adds r0, r2, 0 bl Reset movs r4, 0 ldr r5, _08133C58 adds r3, r6, 0 movs r2, 0x4 _08133C32: ldr r0, [r3] adds r0, r4 ldrb r1, [r0, 0x7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xF bls _08133C32 b _08133C86 .align 2, 0 _08133C54: .4byte gUnknown_08402E24 _08133C58: .4byte 0x02020004 _08133C5C: ldr r4, _08133CA0 ldrb r0, [r4, 0x3] ldrb r1, [r4, 0x4] adds r2, r0, 0x3 lsls r2, 24 lsrs r2, 24 adds r3, r1, 0x1 lsls r3, 24 lsrs r3, 24 bl Reset ldrb r0, [r4, 0x9] ldrb r1, [r4, 0xA] adds r2, r0, 0x3 lsls r2, 24 lsrs r2, 24 adds r3, r1, 0x1 lsls r3, 24 lsrs r3, 24 bl Reset _08133C86: movs r0, 0xB movs r1, 0x9 movs r2, 0x1C movs r3, 0xC bl Reset _08133C92: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08133CA0: .4byte gUnknown_08402E24 thumb_func_end sub_8133AEC thumb_func_start sub_8133CA4 sub_8133CA4: @ 8133CA4 push {lr} movs r0, 0x15 movs r1, 0x7 movs r2, 0x1B movs r3, 0xC bl Reset ldr r0, _08133CC8 ldr r0, [r0] movs r1, 0xB1 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8133AEC pop {r0} bx r0 .align 2, 0 _08133CC8: .4byte 0x030007b0 thumb_func_end sub_8133CA4 thumb_func_start sub_8133CCC sub_8133CCC: @ 8133CCC push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, _08133D14 mov r8, r0 ldrb r0, [r0] movs r6, 0x64 muls r0, r6 ldr r4, _08133D18 adds r0, r4 movs r1, 0x3A bl PokemonGetField adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 mov r1, r8 ldrb r0, [r1] muls r0, r6 adds r0, r4 movs r1, 0x39 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x5 bl __udivsi3 lsls r0, 16 lsrs r0, 16 cmp r4, r0 bcs _08133D1C movs r0, 0 b _08133D1E .align 2, 0 _08133D14: .4byte 0x03005ce0 _08133D18: .4byte 0x03004360 _08133D1C: movs r0, 0x1 _08133D1E: pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8133CCC thumb_func_start unref_sub_8133D28 unref_sub_8133D28: @ 8133D28 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _08133D44 ldr r2, _08133D48 str r2, [r1, 0xC] ldr r2, _08133D4C adds r1, r2 movs r2, 0x3 strh r2, [r1] bl sub_808A004 pop {r0} bx r0 .align 2, 0 _08133D44: .4byte 0x02001000 _08133D48: .4byte sub_8133D50 _08133D4C: .4byte 0x0001a272 thumb_func_end unref_sub_8133D28 thumb_func_start sub_8133D50 sub_8133D50: @ 8133D50 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r7, r0, 24 ldr r0, _08133DA0 mov r9, r0 ldr r1, _08133DA4 mov r10, r1 ldrb r1, [r1, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 ldrh r0, [r0, 0x2E] lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r2, r10 ldrb r1, [r2, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 mov r2, r9 adds r1, r0, r2 ldrh r0, [r1, 0x2E] lsls r0, 24 lsrs r6, r0, 24 mov r0, r8 cmp r0, 0x5 bhi _08133D96 cmp r6, 0x5 bls _08133DA8 _08133D96: adds r0, r7, 0 bl sub_806CD44 b _08133E4E .align 2, 0 _08133DA0: .4byte 0x02020004 _08133DA4: .4byte 0x02001000 _08133DA8: movs r5, 0xD8 lsls r5, 9 add r5, r10 movs r2, 0x2E ldrsh r0, [r1, r2] movs r1, 0x64 muls r0, r1 ldr r2, _08133DE4 adds r0, r2 str r0, [r5] movs r1, 0x39 bl PokemonGetField lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _08133DDA cmp r8, r6 beq _08133DDA ldr r0, [r5] movs r1, 0x3A bl PokemonGetField cmp r0, r4 bne _08133DE8 _08133DDA: adds r0, r7, 0 bl sub_8133EB8 b _08133E4E .align 2, 0 _08133DE4: .4byte 0x03004360 _08133DE8: movs r0, 0x1 bl audio_play mov r0, r10 ldrb r1, [r0, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 ldrh r0, [r0, 0x2E] movs r1, 0 strb r0, [r5, 0x5] ldrb r0, [r5, 0x5] movs r2, 0x64 muls r0, r2 ldr r2, _08133E5C adds r0, r2 str r0, [r5] strh r1, [r5, 0x6] ldr r1, _08133E60 str r1, [r5, 0xC] ldr r1, _08133E64 str r1, [r5, 0x10] movs r1, 0x3A bl PokemonGetField ldr r1, _08133E68 lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r1 strh r0, [r4, 0x1C] ldr r0, [r5] movs r1, 0x39 bl PokemonGetField strh r0, [r4, 0x1E] movs r1, 0x1C ldrsh r0, [r4, r1] movs r1, 0x5 bl __divsi3 strh r0, [r4, 0x20] bl sub_806D5A4 ldr r0, _08133E6C str r0, [r4] ldrh r1, [r4, 0x1E] ldr r0, _08133E70 add r0, r10 strh r1, [r0] _08133E4E: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08133E5C: .4byte 0x03004360 _08133E60: .4byte 0xffff8000 _08133E64: .4byte sub_8133EF8 _08133E68: .4byte 0x03004b20 _08133E6C: .4byte sub_806FA18 _08133E70: .4byte 0x0001a282 thumb_func_end sub_8133D50 thumb_func_start sub_8133E74 sub_8133E74: @ 8133E74 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08133EAC ldrb r0, [r0] cmp r0, 0 bne _08133EA4 movs r0, 0x3 movs r1, 0xE movs r2, 0x1A movs r3, 0x13 bl Reset movs r0, 0x3 movs r1, 0 bl sub_806D538 ldr r0, _08133EB0 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08133EB4 str r0, [r1] _08133EA4: pop {r4} pop {r0} bx r0 .align 2, 0 _08133EAC: .4byte 0x0202e8f6 _08133EB0: .4byte 0x03004b20 _08133EB4: .4byte sub_806CB74 thumb_func_end sub_8133E74 thumb_func_start sub_8133EB8 sub_8133EB8: @ 8133EB8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _08133EE8 movs r0, 0 strb r0, [r1] bl sub_806D5A4 ldr r0, _08133EEC movs r1, 0x1 bl sub_806E834 ldr r1, _08133EF0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08133EF4 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08133EE8: .4byte 0x0202e8f4 _08133EEC: .4byte gUnknown_0840EFA1 _08133EF0: .4byte 0x03004b20 _08133EF4: .4byte sub_8133E74 thumb_func_end sub_8133EB8 thumb_func_start sub_8133EF8 sub_8133EF8: @ 8133EF8 push {r4,lr} bl sub_806CCE4 ldr r4, _08133F3C ldr r0, _08133F40 adds r1, r4, r0 movs r0, 0x2 strb r0, [r1] ldr r0, _08133F44 adds r4, r0 ldrb r1, [r4, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08133F48 adds r0, r1 bl DestroySprite movs r0, 0x3 movs r1, 0xE movs r2, 0x1A movs r3, 0x13 bl Reset movs r0, 0 movs r1, 0 bl sub_806D538 ldrb r0, [r4] bl SwitchTaskToFollowupFunc pop {r4} pop {r0} bx r0 .align 2, 0 _08133F3C: .4byte 0x0201b000 _08133F40: .4byte 0x00000261 _08133F44: .4byte 0xfffe6000 _08133F48: .4byte 0x02020004 thumb_func_end sub_8133EF8 thumb_func_start sub_8133F4C sub_8133F4C: @ 8133F4C push {r4,r5,lr} lsls r0, 24 movs r3, 0 ldr r1, _08133F7C lsrs r2, r0, 21 adds r0, r2, r1 ldrb r0, [r0, 0x4] cmp r3, r0 bcs _08133F76 adds r5, r1, 0 movs r4, 0 _08133F62: adds r0, r2, r5 ldr r1, [r0] adds r1, r3 strb r4, [r1] adds r1, r3, 0x1 lsls r1, 24 lsrs r3, r1, 24 ldrb r0, [r0, 0x4] cmp r3, r0 bcc _08133F62 _08133F76: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08133F7C: .4byte gUnknown_08402E40 thumb_func_end sub_8133F4C thumb_func_start sub_8133F80 sub_8133F80: @ 8133F80 push {r4,lr} movs r4, 0 _08133F84: adds r0, r4, 0 bl sub_8133F4C adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _08133F84 pop {r4} pop {r0} bx r0 thumb_func_end sub_8133F80 thumb_func_start sub_8133F9C sub_8133F9C: @ 8133F9C push {r4,lr} lsls r0, 24 movs r2, 0 ldr r1, _08133FC8 lsrs r0, 21 adds r0, r1 movs r1, 0x4 ldrsb r1, [r0, r1] cmp r2, r1 bge _08133FD8 adds r4, r0, 0 adds r3, r1, 0 _08133FB4: lsls r0, r2, 24 asrs r1, r0, 24 ldr r0, [r4] adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08133FCC adds r0, r1, 0 b _08133FDC .align 2, 0 _08133FC8: .4byte gUnknown_08402E40 _08133FCC: adds r0, r1, 0x1 lsls r0, 24 lsrs r2, r0, 24 asrs r0, 24 cmp r0, r3 blt _08133FB4 _08133FD8: movs r0, 0x1 negs r0, r0 _08133FDC: pop {r4} pop {r1} bx r1 thumb_func_end sub_8133F9C thumb_func_start sub_8133FE4 sub_8133FE4: @ 8133FE4 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r1, _08134010 lsls r0, r3, 5 adds r0, r1 ldrb r0, [r0, 0x13] movs r2, 0 ldr r1, _08134014 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0x4] cmp r2, r1 bcs _08134022 ldr r4, [r0] _08134002: adds r0, r4, r2 ldrb r0, [r0] cmp r0, r3 bne _08134018 movs r0, 0x1 b _08134024 .align 2, 0 _08134010: .4byte gDecorations _08134014: .4byte gUnknown_08402E40 _08134018: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r1 bcc _08134002 _08134022: movs r0, 0 _08134024: pop {r4} pop {r1} bx r1 thumb_func_end sub_8133FE4 thumb_func_start IsThereStorageSpaceForDecoration IsThereStorageSpaceForDecoration: @ 813402C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 cmp r4, 0 beq _0813406C ldr r1, _08134064 lsls r0, r4, 5 adds r0, r1 ldrb r5, [r0, 0x13] adds r0, r5, 0 bl sub_8133F9C lsls r0, 24 asrs r2, r0, 24 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _0813406C ldr r0, _08134068 lsls r1, r5, 3 adds r1, r0 ldr r0, [r1] adds r0, r2 strb r4, [r0] movs r0, 0x1 b _0813406E .align 2, 0 _08134064: .4byte gDecorations _08134068: .4byte gUnknown_08402E40 _0813406C: movs r0, 0 _0813406E: pop {r4,r5} pop {r1} bx r1 thumb_func_end IsThereStorageSpaceForDecoration thumb_func_start sub_8134074 sub_8134074: @ 8134074 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _081340A0 ldr r1, _0813409C lsls r0, 5 adds r0, r1 ldrb r0, [r0, 0x13] bl sub_8133F9C lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _081340A0 movs r0, 0x1 b _081340A2 .align 2, 0 _0813409C: .4byte gDecorations _081340A0: movs r0, 0 _081340A2: pop {r1} bx r1 thumb_func_end sub_8134074 thumb_func_start sub_81340A8 sub_81340A8: @ 81340A8 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r3, 0 cmp r5, 0 bne _081340C4 b _081340F2 _081340B6: movs r0, 0 strb r0, [r1] adds r0, r6, 0 bl sub_8134104 movs r0, 0x1 b _081340F4 _081340C4: ldr r2, _081340FC ldr r1, _08134100 lsls r0, r5, 5 adds r0, r1 ldrb r4, [r0, 0x13] lsls r0, r4, 3 adds r0, r2 ldrb r1, [r0, 0x4] cmp r3, r1 bcs _081340F2 adds r6, r4, 0 adds r4, r0, 0 adds r2, r1, 0 _081340DE: ldr r0, [r4] adds r1, r0, r3 ldrb r0, [r1] cmp r0, r5 beq _081340B6 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, r2 bcc _081340DE _081340F2: movs r0, 0 _081340F4: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081340FC: .4byte gUnknown_08402E40 _08134100: .4byte gDecorations thumb_func_end sub_81340A8 thumb_func_start sub_8134104 sub_8134104: @ 8134104 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 movs r6, 0 ldr r2, _08134190 lsrs r1, r0, 21 adds r0, r1, r2 ldrb r0, [r0, 0x4] cmp r6, r0 bcs _08134180 adds r7, r1, 0 mov r8, r0 str r0, [sp] _08134126: adds r1, r6, 0x1 lsls r0, r1, 24 lsrs r3, r0, 24 adds r2, r7, 0 mov r12, r1 cmp r3, r8 bcs _08134174 ldr r1, _08134190 mov r10, r1 adds r0, r1, 0 mov r9, r0 _0813413C: mov r1, r10 adds r5, r2, r1 ldr r1, [r5] adds r0, r1, r3 ldrb r4, [r0] adds r2, r4, 0 cmp r2, 0 beq _08134162 adds r0, r1, r6 ldrb r1, [r0] cmp r1, 0 beq _08134158 cmp r1, r2 bls _08134162 _08134158: ldrb r1, [r0] strb r4, [r0] ldr r0, [r5] adds r0, r3 strb r1, [r0] _08134162: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r2, r7, 0 mov r1, r9 adds r0, r2, r1 ldrb r0, [r0, 0x4] cmp r3, r0 bcc _0813413C _08134174: mov r1, r12 lsls r0, r1, 24 lsrs r6, r0, 24 ldr r0, [sp] cmp r6, r0 bcc _08134126 _08134180: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08134190: .4byte gUnknown_08402E40 thumb_func_end sub_8134104 thumb_func_start sub_8134194 sub_8134194: @ 8134194 push {r4,r5,lr} lsls r0, 24 movs r4, 0 movs r3, 0 ldr r2, _081341D0 lsrs r1, r0, 21 adds r0, r1, r2 ldrb r0, [r0, 0x4] cmp r4, r0 bcs _081341C8 adds r5, r2, 0 _081341AA: adds r2, r1, r5 ldr r0, [r2] adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _081341BC adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _081341BC: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 ldrb r2, [r2, 0x4] cmp r3, r2 bcc _081341AA _081341C8: adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _081341D0: .4byte gUnknown_08402E40 thumb_func_end sub_8134194 thumb_func_start sub_81341D4 sub_81341D4: @ 81341D4 push {r4,r5,lr} movs r5, 0 movs r4, 0 _081341DA: adds r0, r4, 0 bl sub_8134194 adds r0, r5, r0 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _081341DA adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81341D4 thumb_func_start sub_81341F8 sub_81341F8: @ 81341F8 push {lr} ldr r0, _08134208 movs r1, 0 movs r2, 0x1C bl memset pop {r0} bx r0 .align 2, 0 _08134208: .4byte 0x02028878 thumb_func_end sub_81341F8 thumb_func_start sub_813420C sub_813420C: @ 813420C push {r4-r6,lr} movs r2, 0 ldr r6, _08134238 ldr r4, _0813423C movs r3, 0 adds r5, r4, 0x1 _08134218: lsls r1, r2, 1 adds r0, r1, r4 strb r3, [r0] adds r1, r5 strb r3, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _08134218 movs r0, 0 strb r0, [r6] strb r0, [r6, 0x1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08134238: .4byte 0x02039302 _0813423C: .4byte 0x020392fc thumb_func_end sub_813420C thumb_func_start sub_8134240 sub_8134240: @ 8134240 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x10 ldr r5, _081342FC .ifdef SAPPHIRE ldr r6, _sub_8134240_Latias .else movs r6, 0xCC lsls r6, 1 .endif movs r0, 0 str r0, [sp] str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x28 movs r3, 0x20 bl create_pokemon_set_level ldr r4, _08134300 movs r0, 0 mov r8, r0 strh r6, [r4, 0x8] movs r0, 0x28 strb r0, [r4, 0xC] mov r0, r8 strb r0, [r4, 0xD] movs r0, 0x1 strb r0, [r4, 0x13] adds r0, r5, 0 movs r1, 0x42 bl PokemonGetField str r0, [r4] adds r0, r5, 0 movs r1, 0 bl PokemonGetField str r0, [r4, 0x4] adds r0, r5, 0 movs r1, 0x3A bl PokemonGetField strh r0, [r4, 0xA] adds r0, r5, 0 movs r1, 0x16 bl PokemonGetField strb r0, [r4, 0xE] adds r0, r5, 0 movs r1, 0x17 bl PokemonGetField strb r0, [r4, 0xF] adds r0, r5, 0 movs r1, 0x18 bl PokemonGetField strb r0, [r4, 0x10] adds r0, r5, 0 movs r1, 0x21 bl PokemonGetField strb r0, [r4, 0x11] adds r0, r5, 0 movs r1, 0x2F bl PokemonGetField strb r0, [r4, 0x12] ldr r4, _08134304 mov r0, r8 strb r0, [r4] bl Random ldr r5, _08134308 lsls r0, 16 lsrs r0, 16 movs r1, 0x14 bl __umodsi3 lsls r0, 16 lsrs r0, 16 lsls r1, r0, 1 adds r1, r0 lsls r1, 1 adds r1, r5 ldrb r0, [r1] strb r0, [r4, 0x1] add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081342FC: .4byte 0x030045c0 .ifdef SAPPHIRE _sub_8134240_Latias: .4byte 407 .endif _08134300: .4byte 0x02028878 _08134304: .4byte 0x02039302 _08134308: .4byte gUnknown_08402E80 thumb_func_end sub_8134240 thumb_func_start sub_813430C sub_813430C: @ 813430C push {lr} bl sub_81341F8 bl sub_813420C bl sub_8134240 pop {r0} bx r0 thumb_func_end sub_813430C thumb_func_start mapnumbers_history_shift_sav1_0_2_4_out mapnumbers_history_shift_sav1_0_2_4_out: @ 8134320 ldr r0, _08134340 ldrb r1, [r0, 0x2] strb r1, [r0, 0x4] ldrb r1, [r0, 0x3] strb r1, [r0, 0x5] ldrb r1, [r0] strb r1, [r0, 0x2] ldrb r1, [r0, 0x1] strb r1, [r0, 0x3] ldr r2, _08134344 ldrb r1, [r2, 0x4] strb r1, [r0] ldrb r1, [r2, 0x5] strb r1, [r0, 0x1] bx lr .align 2, 0 _08134340: .4byte 0x020392fc _08134344: .4byte 0x02025734 thumb_func_end mapnumbers_history_shift_sav1_0_2_4_out thumb_func_start sub_8134348 sub_8134348: @ 8134348 push {r4,r5,lr} movs r1, 0 ldr r0, _08134388 ldrb r0, [r0, 0x13] cmp r0, 0 beq _08134380 ldr r0, _0813438C strb r1, [r0] ldr r5, _08134390 adds r4, r0, 0 _0813435C: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x14 bl __umodsi3 lsls r0, 16 lsrs r0, 16 lsls r1, r0, 1 adds r1, r0 lsls r1, 1 adds r1, r5 ldrb r1, [r1] ldrb r0, [r4, 0x1] cmp r0, r1 beq _0813435C strb r1, [r4, 0x1] _08134380: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08134388: .4byte 0x02028878 _0813438C: .4byte 0x02039302 _08134390: .4byte gUnknown_08402E80 thumb_func_end sub_8134348 thumb_func_start sub_8134394 sub_8134394: @ 8134394 push {r4-r7,lr} movs r4, 0 bl Random lsls r0, 16 movs r1, 0xF0 lsls r1, 12 ands r1, r0 cmp r1, 0 bne _081343AE bl sub_8134348 b _08134416 _081343AE: ldr r0, _081343FC ldrb r0, [r0, 0x13] cmp r0, 0 beq _08134416 ldr r7, _08134400 ldr r3, _08134404 _081343BA: lsls r0, r4, 1 adds r0, r4 lsls r2, r0, 1 adds r1, r2, r3 ldrb r0, [r7, 0x1] ldrb r1, [r1] cmp r0, r1 bne _0813440C ldr r6, _08134404 adds r5, r2, 0x1 ldr r4, _08134408 _081343D0: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x5 bl __umodsi3 lsls r0, 16 lsrs r0, 16 adds r0, r5 adds r0, r6 ldrb r1, [r0] ldrb r0, [r4, 0x4] cmp r0, 0 bne _081343F4 ldrb r0, [r4, 0x5] cmp r0, r1 beq _081343D0 _081343F4: cmp r1, 0xFF beq _081343D0 strb r1, [r7, 0x1] b _08134416 .align 2, 0 _081343FC: .4byte 0x02028878 _08134400: .4byte 0x02039302 _08134404: .4byte gUnknown_08402E80 _08134408: .4byte 0x020392fc _0813440C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x13 bls _081343BA _08134416: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8134394 thumb_func_start sub_813441C sub_813441C: @ 813441C push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r1, 24 ldr r0, _08134440 ldrb r0, [r0, 0x13] cmp r0, 0 beq _08134448 ldr r0, _08134444 ldrb r3, [r0] cmp r2, r3 bne _08134448 ldrb r0, [r0, 0x1] cmp r1, r0 bne _08134448 movs r0, 0x1 b _0813444A .align 2, 0 _08134440: .4byte 0x02028878 _08134444: .4byte 0x02039302 _08134448: movs r0, 0 _0813444A: pop {r1} bx r1 thumb_func_end sub_813441C thumb_func_start sub_8134450 sub_8134450: @ 8134450 push {r4,r5,lr} sub sp, 0x4 ldr r4, _081344C4 ldr r5, _081344C8 ldrh r1, [r5, 0x8] ldrb r2, [r5, 0xC] ldr r3, [r5] ldr r0, [r5, 0x4] str r0, [sp] adds r0, r4, 0 bl sub_803ACAC adds r2, r5, 0 adds r2, 0xD adds r0, r4, 0 movs r1, 0x37 bl pokemon_setattr adds r2, r5, 0 adds r2, 0xA adds r0, r4, 0 movs r1, 0x39 bl pokemon_setattr adds r2, r5, 0 adds r2, 0xE adds r0, r4, 0 movs r1, 0x16 bl pokemon_setattr adds r2, r5, 0 adds r2, 0xF adds r0, r4, 0 movs r1, 0x17 bl pokemon_setattr adds r2, r5, 0 adds r2, 0x10 adds r0, r4, 0 movs r1, 0x18 bl pokemon_setattr adds r2, r5, 0 adds r2, 0x11 adds r0, r4, 0 movs r1, 0x21 bl pokemon_setattr adds r2, r5, 0 adds r2, 0x12 adds r0, r4, 0 movs r1, 0x2F bl pokemon_setattr add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081344C4: .4byte 0x030045c0 _081344C8: .4byte 0x02028878 thumb_func_end sub_8134450 thumb_func_start sub_81344CC sub_81344CC: @ 81344CC push {lr} ldr r1, _081344F8 ldrb r0, [r1, 0x4] ldrb r1, [r1, 0x5] bl sub_813441C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081344FC bl Random lsls r0, 16 movs r1, 0xC0 lsls r1, 10 ands r1, r0 cmp r1, 0 bne _081344FC bl sub_8134450 movs r0, 0x1 b _081344FE .align 2, 0 _081344F8: .4byte 0x02025734 _081344FC: movs r0, 0 _081344FE: pop {r1} bx r1 thumb_func_end sub_81344CC thumb_func_start sub_8134504 sub_8134504: @ 8134504 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x39 bl PokemonGetField ldr r4, _08134528 strh r0, [r4, 0xA] adds r0, r5, 0 movs r1, 0x37 bl PokemonGetField strb r0, [r4, 0xD] bl sub_8134348 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08134528: .4byte 0x02028878 thumb_func_end sub_8134504 thumb_func_start sub_813452C sub_813452C: @ 813452C ldr r1, _08134534 movs r0, 0 strb r0, [r1, 0x13] bx lr .align 2, 0 _08134534: .4byte 0x02028878 thumb_func_end sub_813452C thumb_func_start sub_8134538 sub_8134538: @ 8134538 ldr r3, _08134544 ldrb r2, [r3] strb r2, [r0] ldrb r0, [r3, 0x1] strb r0, [r1] bx lr .align 2, 0 _08134544: .4byte 0x02039302 thumb_func_end sub_8134538 thumb_func_start sub_8134548 sub_8134548: @ 8134548 push {r4,r5,lr} movs r4, 0 movs r5, 0 _0813454E: ldr r0, _08134568 ldr r1, _0813456C adds r0, r1 adds r0, r5, r0 ldrb r0, [r0] cmp r0, 0x6 bhi _08134590 lsls r0, 2 ldr r1, _08134570 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08134568: .4byte gSaveBlock2 _0813456C: .4byte 0x00000556 _08134570: .4byte _08134574 .align 2, 0 _08134574: .4byte _08134590 .4byte _081345A8 .4byte _081345C8 .4byte _081345D8 .4byte _081345B8 .4byte _081345C0 .4byte _081345D8 _08134590: lsls r0, r5, 24 lsrs r0, 24 bl sub_813461C cmp r4, 0 bne _081345D8 movs r0, 0x80 lsls r0, 7 movs r1, 0x5 bl VarSet b _081345D8 _081345A8: lsls r0, r5, 24 lsrs r0, 24 bl sub_813461C movs r0, 0x80 lsls r0, 7 movs r1, 0x1 b _081345CE _081345B8: movs r0, 0x80 lsls r0, 7 movs r1, 0x2 b _081345CE _081345C0: movs r0, 0x80 lsls r0, 7 movs r1, 0x3 b _081345CE _081345C8: movs r0, 0x80 lsls r0, 7 movs r1, 0x4 _081345CE: bl VarSet adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _081345D8: adds r5, 0x1 cmp r5, 0x1 ble _0813454E ldr r1, _08134610 ldr r2, _08134614 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x3 beq _081345EE cmp r0, 0x6 bne _08134606 _081345EE: ldr r2, _08134618 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x3 beq _081345FC cmp r0, 0x6 bne _08134606 _081345FC: movs r0, 0x80 lsls r0, 7 movs r1, 0x5 bl VarSet _08134606: bl sub_8135C44 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08134610: .4byte gSaveBlock2 _08134614: .4byte 0x00000556 _08134618: .4byte 0x00000557 thumb_func_end sub_8134548 thumb_func_start sub_813461C sub_813461C: @ 813461C lsls r0, 24 lsrs r0, 24 ldr r3, _08134644 ldr r2, _08134648 adds r1, r3, r2 adds r1, r0, r1 movs r2, 0 strb r2, [r1] lsls r0, 1 movs r2, 0xAB lsls r2, 3 adds r1, r3, r2 adds r1, r0, r1 movs r2, 0x1 strh r2, [r1] ldr r1, _0813464C adds r3, r1 adds r0, r3 strh r2, [r0] bx lr .align 2, 0 _08134644: .4byte gSaveBlock2 _08134648: .4byte 0x00000556 _0813464C: .4byte 0x0000055c thumb_func_end sub_813461C thumb_func_start sub_8134650 sub_8134650: @ 8134650 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x2C lsls r0, 24 lsrs r5, r0, 24 lsls r1, 16 lsrs r6, r1, 16 add r4, sp, 0x28 movs r0, 0 strb r0, [r4] bl sub_813601C ldr r0, _08134684 ldrh r0, [r0] adds r7, r4, 0 cmp r0, 0 bne _08134680 ldr r1, _08134688 ldr r2, _0813468C adds r0, r1, r2 ldrh r0, [r0] cmp r0, r6 beq _08134690 _08134680: movs r0, 0 b _081346E2 .align 2, 0 _08134684: .4byte 0x0202e8dc _08134688: .4byte gSaveBlock2 _0813468C: .4byte 0x0000049a _08134690: movs r6, 0x32 cmp r5, 0 beq _08134698 movs r6, 0x64 _08134698: movs r4, 0 mov r8, r1 _0813469C: movs r0, 0x2C muls r0, r4 mov r3, r8 adds r1, r0, r3 movs r2, 0x9B lsls r2, 3 adds r0, r1, r2 ldrb r2, [r0] cmp r2, r6 bne _08134680 ldr r3, _081346F0 adds r0, r1, r3 ldrh r0, [r0] adds r3, 0x2 adds r1, r3 ldrh r1, [r1] str r2, [sp] add r2, sp, 0x10 str r2, [sp, 0x4] add r2, sp, 0x1C str r2, [sp, 0x8] str r7, [sp, 0xC] movs r2, 0x1 adds r3, r5, 0 bl sub_8135200 adds r4, 0x1 cmp r4, 0x2 ble _0813469C movs r1, 0 ldrb r0, [r7] cmp r0, 0x3 bne _081346E0 movs r1, 0x1 _081346E0: adds r0, r1, 0 _081346E2: add sp, 0x2C pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081346F0: .4byte 0x000004cc thumb_func_end sub_8134650 thumb_func_start sub_81346F4 sub_81346F4: @ 81346F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 movs r0, 0 mov r9, r0 ldr r4, _08134738 ldr r1, _0813473C adds r0, r4, r1 ldrb r0, [r0] lsls r0, 31 lsrs r7, r0, 31 adds r0, r7, 0 bl sub_8135D3C lsls r0, 16 lsrs r0, 16 mov r8, r0 adds r0, r7, 0 mov r1, r8 bl sub_8134650 lsls r0, 24 adds r1, r4, 0 cmp r0, 0 beq _08134744 ldr r2, _08134740 adds r1, r2 movs r0, 0xC8 strb r0, [r1] b _081347DE .align 2, 0 _08134738: .4byte gSaveBlock2 _0813473C: .4byte 0x00000554 _08134740: .4byte 0x00000564 _08134744: movs r5, 0 movs r3, 0xA4 mov r12, r3 mov r10, sp _0813474C: mov r0, r12 muls r0, r5 movs r4, 0 movs r1, 0 movs r2, 0 adds r6, r5, 0x1 str r6, [sp, 0x14] ldr r6, _081347B4 adds r3, r0, r6 _0813475E: ldm r3!, {r0} orrs r4, r0 adds r1, r0 adds r2, 0x1 cmp r2, 0x27 bls _0813475E mov r3, r12 muls r3, r5 ldr r0, _081347B8 adds r2, r3, r0 movs r6, 0xA7 lsls r6, 1 adds r0, r2, r6 ldrh r0, [r0] cmp r0, r8 bne _081347A4 subs r6, 0x2 adds r0, r2, r6 ldrb r0, [r0] cmp r0, r7 bne _081347A4 cmp r4, 0 beq _081347A4 ldr r2, _081347BC adds r0, r3, r2 ldr r0, [r0] cmp r0, r1 bne _081347A4 mov r3, r10 adds r3, 0x4 mov r10, r3 subs r3, 0x4 stm r3!, {r5} movs r6, 0x1 add r9, r6 _081347A4: ldr r5, [sp, 0x14] cmp r5, 0x4 ble _0813474C mov r0, r9 cmp r0, 0 bne _081347C0 movs r0, 0 b _081347E0 .align 2, 0 _081347B4: .4byte 0x02024ff0 _081347B8: .4byte gSaveBlock2 _081347BC: .4byte 0x02025090 _081347C0: bl Random ldr r4, _081347F0 lsls r0, 16 lsrs r0, 16 mov r1, r9 bl __modsi3 lsls r0, 2 add r0, sp ldr r0, [r0] adds r0, 0x64 ldr r1, _081347F4 adds r4, r1 strb r0, [r4] _081347DE: movs r0, 0x1 _081347E0: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081347F0: .4byte gSaveBlock2 _081347F4: .4byte 0x00000564 thumb_func_end sub_81346F4 thumb_func_start sub_81347F8 sub_81347F8: @ 81347F8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r5, _08134838 ldr r1, _0813483C adds r0, r5, r1 ldrb r0, [r0] lsls r0, 31 lsrs r6, r0, 31 bl sub_81346F4 lsls r0, 24 cmp r0, 0 beq _08134848 ldr r2, _08134840 adds r4, r5, r2 ldrb r0, [r4] bl sub_81349FC lsls r0, r6, 1 movs r3, 0xAB lsls r3, 3 adds r1, r5, r3 adds r0, r1 ldrh r0, [r0] adds r0, r5, r0 ldr r1, _08134844 adds r0, r1 ldrb r1, [r4] b _081349DC .align 2, 0 _08134838: .4byte gSaveBlock2 _0813483C: .4byte 0x00000554 _08134840: .4byte 0x00000564 _08134844: .4byte 0x00000569 _08134848: lsls r0, r6, 1 ldr r2, _081348D8 adds r1, r5, r2 adds r1, r0, r1 ldrh r1, [r1] adds r7, r0, 0 cmp r1, 0x7 bls _0813485A b _0813495C _0813485A: movs r3, 0xAB lsls r3, 3 adds r0, r5, r3 adds r1, r7, r0 ldrh r0, [r1] cmp r0, 0x7 bne _081348E4 adds r6, r5, 0 mov r9, r7 adds r5, r1, 0 ldr r0, _081348DC adds r0, r6 mov r10, r0 mov r8, r5 _08134876: bl Random movs r1, 0xFF ands r1, r0 lsls r2, r1, 2 adds r2, r1 ldr r1, _081348D8 adds r4, r6, r1 mov r3, r9 adds r0, r3, r4 ldrh r1, [r0] subs r1, 0x1 lsls r0, r1, 2 adds r0, r1 lsls r0, 1 adds r0, 0x14 lsrs r2, 7 adds r2, r0 lsls r2, 16 lsrs r2, 16 movs r1, 0 ldrh r0, [r5] subs r0, 0x1 cmp r1, r0 bge _081348C8 mov r3, r10 ldrb r0, [r3] cmp r0, r2 beq _081348C8 subs r0, r4, 0x4 adds r0, r7, r0 ldrh r0, [r0] subs r3, r0, 0x1 adds r4, 0xE _081348BA: adds r1, 0x1 cmp r1, r3 bge _081348C8 adds r0, r1, r4 ldrb r0, [r0] cmp r0, r2 bne _081348BA _081348C8: mov r3, r8 ldrh r0, [r3] subs r0, 0x1 ldr r4, _081348E0 cmp r1, r0 bne _08134876 b _081349B6 .align 2, 0 _081348D8: .4byte 0x0000055c _081348DC: .4byte 0x0000056a _081348E0: .4byte gSaveBlock2 _081348E4: adds r6, r5, 0 mov r9, r7 adds r5, r1, 0 ldr r2, _08134950 adds r2, r6 mov r10, r2 mov r8, r5 _081348F2: bl Random movs r1, 0xFF ands r1, r0 lsls r0, r1, 2 adds r0, r1 lsrs r2, r0, 6 ldr r3, _08134954 adds r4, r6, r3 mov r1, r9 adds r0, r1, r4 ldrh r1, [r0] subs r1, 0x1 lsls r0, r1, 2 adds r0, r1 lsls r0, 1 adds r0, r2, r0 lsls r0, 16 lsrs r2, r0, 16 movs r1, 0 ldrh r0, [r5] subs r0, 0x1 cmp r1, r0 bge _08134942 mov r3, r10 ldrb r0, [r3] cmp r0, r2 beq _08134942 subs r0, r4, 0x4 adds r0, r7, r0 ldrh r0, [r0] subs r3, r0, 0x1 adds r4, 0xE _08134934: adds r1, 0x1 cmp r1, r3 bge _08134942 adds r0, r1, r4 ldrb r0, [r0] cmp r0, r2 bne _08134934 _08134942: mov r3, r8 ldrh r0, [r3] subs r0, 0x1 ldr r4, _08134958 cmp r1, r0 bne _081348F2 b _081349B6 .align 2, 0 _08134950: .4byte 0x0000056a _08134954: .4byte 0x0000055c _08134958: .4byte gSaveBlock2 _0813495C: movs r2, 0xAB lsls r2, 3 adds r0, r5, r2 adds r6, r7, r0 ldr r3, _081349EC adds r3, r5 mov r8, r3 adds r5, r6, 0 _0813496C: bl Random movs r1, 0xFF ands r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 1 asrs r0, 8 adds r0, 0x46 lsls r0, 16 lsrs r2, r0, 16 movs r1, 0 ldrh r0, [r6] subs r0, 0x1 cmp r1, r0 bge _081349AC mov r3, r8 ldrb r0, [r3] ldr r4, _081349F0 cmp r0, r2 beq _081349AC ldrh r0, [r5] subs r3, r0, 0x1 ldr r0, _081349EC adds r4, r0 _0813499E: adds r1, 0x1 cmp r1, r3 bge _081349AC adds r0, r1, r4 ldrb r0, [r0] cmp r0, r2 bne _0813499E _081349AC: ldrh r0, [r6] subs r0, 0x1 ldr r4, _081349F0 cmp r1, r0 bne _0813496C _081349B6: ldr r1, _081349F4 adds r0, r4, r1 strb r2, [r0] ldr r2, _081349F4 adds r5, r4, r2 ldrb r0, [r5] bl sub_81349FC movs r3, 0xAB lsls r3, 3 adds r0, r4, r3 adds r1, r7, r0 ldrh r0, [r1] cmp r0, 0x6 bhi _081349DE adds r0, r4, r0 ldr r1, _081349F8 adds r0, r1 ldrb r1, [r5] _081349DC: strb r1, [r0] _081349DE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081349EC: .4byte 0x0000056a _081349F0: .4byte gSaveBlock2 _081349F4: .4byte 0x00000564 _081349F8: .4byte 0x00000569 thumb_func_end sub_81347F8 thumb_func_start sub_81349FC sub_81349FC: @ 81349FC push {lr} lsls r0, 24 lsrs r2, r0, 24 adds r1, r2, 0 cmp r2, 0x63 bhi _08134A18 ldr r1, _08134A14 lsls r0, r2, 1 adds r0, r2 lsls r0, 3 b _08134A38 .align 2, 0 _08134A14: .4byte gBattleTowerTrainers _08134A18: cmp r1, 0xC7 bhi _08134A34 ldr r2, _08134A2C subs r1, 0x64 movs r0, 0xA4 muls r0, r1 adds r0, r2 ldr r1, _08134A30 b _08134A38 .align 2, 0 _08134A2C: .4byte gSaveBlock2 _08134A30: .4byte 0x0000014d _08134A34: ldr r0, _08134A5C ldr r1, _08134A60 _08134A38: adds r0, r1 ldrb r1, [r0] movs r2, 0 ldr r3, _08134A64 ldrb r0, [r3] cmp r0, r1 beq _08134A54 _08134A46: adds r2, 0x1 cmp r2, 0x1D bhi _08134A54 adds r0, r2, r3 ldrb r0, [r0] cmp r0, r1 bne _08134A46 _08134A54: cmp r2, 0x1E beq _08134A6C ldr r0, _08134A68 b _08134A8A .align 2, 0 _08134A5C: .4byte gSaveBlock2 _08134A60: .4byte 0x00000499 _08134A64: .4byte gUnknown_08405E60 _08134A68: .4byte gUnknown_08405E92 _08134A6C: movs r2, 0 ldr r3, _08134A98 ldrb r0, [r3] cmp r0, r1 beq _08134A84 _08134A76: adds r2, 0x1 cmp r2, 0x13 bhi _08134A84 adds r0, r2, r3 ldrb r0, [r0] cmp r0, r1 bne _08134A76 _08134A84: cmp r2, 0x14 beq _08134AA4 ldr r0, _08134A9C _08134A8A: adds r0, r2, r0 ldrb r1, [r0] ldr r0, _08134AA0 bl VarSet b _08134AAC .align 2, 0 _08134A98: .4byte gUnknown_08405E7E _08134A9C: .4byte gUnknown_08405EB0 _08134AA0: .4byte 0x00004010 _08134AA4: ldr r0, _08134AB0 movs r1, 0x7 bl VarSet _08134AAC: pop {r0} bx r0 .align 2, 0 _08134AB0: .4byte 0x00004010 thumb_func_end sub_81349FC thumb_func_start sub_8134AB4 sub_8134AB4: @ 8134AB4 push {lr} movs r0, 0xC8 bl sub_81349FC pop {r0} bx r0 thumb_func_end sub_8134AB4 thumb_func_start sub_8134AC0 sub_8134AC0: @ 8134AC0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C movs r7, 0 mov r8, r0 movs r5, 0 ldr r0, _08134B3C mov r12, r0 mov r1, r8 ldrb r1, [r1, 0xC] str r1, [sp, 0x18] movs r2, 0xAA lsls r2, 1 add r2, r12 mov r10, r2 mov r9, r5 _08134AE6: movs r6, 0 movs r3, 0 ldr r0, _08134B40 add r0, r9 ldrb r0, [r0] ldr r1, [sp, 0x18] cmp r0, r1 bne _08134B14 movs r0, 0xA4 muls r0, r5 ldr r1, _08134B40 adds r2, r0, r1 mov r4, r8 adds r4, 0xC _08134B02: adds r2, 0x1 adds r3, 0x1 cmp r3, 0x3 bgt _08134B14 adds r1, r4, r3 ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 beq _08134B02 _08134B14: cmp r3, 0x4 bne _08134B54 movs r6, 0 mov r2, r10 ldrb r0, [r2] mov r3, r8 ldrb r3, [r3, 0x8] cmp r0, r3 bne _08134B54 adds r1, r0, 0 movs r0, 0xA4 muls r0, r5 adds r0, 0x4 ldr r3, _08134B44 adds r2, r0, r3 _08134B32: cmp r1, 0xFF bne _08134B48 movs r6, 0x7 b _08134B54 .align 2, 0 _08134B3C: .4byte gSaveBlock2 _08134B40: .4byte 0x02024ffc _08134B44: .4byte 0x02024ff4 _08134B48: adds r6, 0x1 cmp r6, 0x6 bgt _08134B54 ldrb r0, [r2] cmp r0, r1 beq _08134B32 _08134B54: cmp r6, 0x7 beq _08134B64 movs r0, 0xA4 add r10, r0 add r9, r0 adds r5, 0x1 cmp r5, 0x4 ble _08134AE6 _08134B64: cmp r5, 0x4 bgt _08134B76 movs r0, 0xA4 muls r0, r5 add r0, r12 movs r1, 0xA6 lsls r1, 1 adds r0, r1 b _08134B9E _08134B76: movs r5, 0 movs r1, 0xA7 lsls r1, 1 add r1, r12 b _08134B88 _08134B80: adds r1, 0xA4 adds r5, 0x1 cmp r5, 0x4 bgt _08134BA8 _08134B88: ldrh r0, [r1] cmp r0, 0 bne _08134B80 cmp r5, 0x4 bgt _08134BA8 movs r0, 0xA4 muls r0, r5 add r0, r12 movs r2, 0xA6 lsls r2, 1 adds r0, r2 _08134B9E: mov r1, r8 movs r2, 0xA4 bl memcpy b _08134C5E _08134BA8: mov r2, sp movs r3, 0xA7 lsls r3, 1 mov r1, r12 adds r0, r1, r3 ldrh r0, [r0] movs r1, 0 strh r0, [r2] add r0, sp, 0xC strh r1, [r0] adds r7, 0x1 movs r5, 0x1 add r2, sp, 0xC mov r9, r2 mov r10, r3 _08134BC6: movs r3, 0 adds r0, r5, 0x1 mov r12, r0 cmp r3, r7 bge _08134C0A movs r1, 0xA4 adds r0, r5, 0 muls r0, r1 ldr r2, _08134BFC adds r0, r2 mov r1, r10 adds r4, r0, r1 mov r6, sp _08134BE0: lsls r0, r3, 1 add r0, sp ldrh r2, [r4] adds r1, r2, 0 ldrh r0, [r0] cmp r1, r0 bcs _08134C00 movs r3, 0 movs r7, 0x1 strh r2, [r6] mov r2, r9 strh r5, [r2] b _08134C0A .align 2, 0 _08134BFC: .4byte gSaveBlock2 _08134C00: cmp r1, r0 bhi _08134C0A adds r3, 0x1 cmp r3, r7 blt _08134BE0 _08134C0A: cmp r3, r7 bne _08134C2A lsls r1, r7, 1 mov r3, sp adds r2, r3, r1 movs r3, 0xA4 adds r0, r5, 0 muls r0, r3 ldr r3, _08134C70 adds r0, r3 add r0, r10 ldrh r0, [r0] strh r0, [r2] add r1, r9 strh r5, [r1] adds r7, 0x1 _08134C2A: mov r5, r12 cmp r5, 0x4 ble _08134BC6 bl Random lsls r0, 16 lsrs r0, 16 adds r1, r7, 0 bl __modsi3 adds r5, r0, 0 ldr r2, _08134C70 lsls r0, r5, 1 add r0, sp adds r0, 0xC ldrh r1, [r0] movs r0, 0xA4 muls r0, r1 adds r0, r2 movs r1, 0xA6 lsls r1, 1 adds r0, r1 mov r1, r8 movs r2, 0xA4 bl memcpy _08134C5E: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08134C70: .4byte gSaveBlock2 thumb_func_end sub_8134AC0 thumb_func_start get_trainer_class_pic_index get_trainer_class_pic_index: @ 8134C74 push {lr} ldr r3, _08134C90 ldr r0, _08134C94 adds r1, r3, r0 ldrb r0, [r1] cmp r0, 0xC8 bne _08134CA0 ldr r1, _08134C98 ldr r2, _08134C9C adds r0, r3, r2 ldrb r0, [r0] adds r0, r1 b _08134CD2 .align 2, 0 _08134C90: .4byte gSaveBlock2 _08134C94: .4byte 0x00000564 _08134C98: .4byte gTrainerClassToPicIndex _08134C9C: .4byte 0x00000499 _08134CA0: cmp r0, 0x63 bls _08134CC0 ldr r2, _08134CBC ldrb r0, [r1] subs r0, 0x64 movs r1, 0xA4 muls r0, r1 adds r0, r3 adds r1, 0xA9 adds r0, r1 ldrb r0, [r0] adds r0, r2 b _08134CD2 .align 2, 0 _08134CBC: .4byte gTrainerClassToPicIndex _08134CC0: ldr r3, _08134CD8 ldr r2, _08134CDC ldrb r1, [r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0] adds r0, r3 _08134CD2: ldrb r0, [r0] pop {r1} bx r1 .align 2, 0 _08134CD8: .4byte gTrainerClassToPicIndex _08134CDC: .4byte gBattleTowerTrainers thumb_func_end get_trainer_class_pic_index thumb_func_start get_trainer_class_name_index get_trainer_class_name_index: @ 8134CE0 push {lr} ldr r3, _08134CFC ldr r0, _08134D00 adds r1, r3, r0 ldrb r0, [r1] cmp r0, 0xC8 bne _08134D0C ldr r1, _08134D04 ldr r2, _08134D08 adds r0, r3, r2 ldrb r0, [r0] adds r0, r1 b _08134D40 .align 2, 0 _08134CFC: .4byte gSaveBlock2 _08134D00: .4byte 0x00000564 _08134D04: .4byte gTrainerClassToNameIndex _08134D08: .4byte 0x00000499 _08134D0C: cmp r0, 0x63 bhi _08134D2C ldr r3, _08134D24 ldr r2, _08134D28 ldrb r1, [r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0] adds r0, r3 b _08134D40 .align 2, 0 _08134D24: .4byte gTrainerClassToNameIndex _08134D28: .4byte gBattleTowerTrainers _08134D2C: ldr r2, _08134D48 ldrb r0, [r1] subs r0, 0x64 movs r1, 0xA4 muls r0, r1 adds r0, r3 adds r1, 0xA9 adds r0, r1 ldrb r0, [r0] adds r0, r2 _08134D40: ldrb r0, [r0] pop {r1} bx r1 .align 2, 0 _08134D48: .4byte gTrainerClassToNameIndex thumb_func_end get_trainer_class_name_index thumb_func_start get_trainer_name get_trainer_name: @ 8134D4C push {r4,r5,lr} adds r4, r0, 0 ldr r2, _08134D74 ldr r0, _08134D78 adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0xC8 bne _08134D80 movs r3, 0 ldr r5, _08134D7C adds r2, r5 _08134D62: adds r0, r4, r3 adds r1, r3, r2 ldrb r1, [r1] strb r1, [r0] adds r3, 0x1 cmp r3, 0x6 ble _08134D62 b _08134DC8 .align 2, 0 _08134D74: .4byte gSaveBlock2 _08134D78: .4byte 0x00000564 _08134D7C: .4byte 0x0000049c _08134D80: cmp r0, 0x63 bhi _08134DA8 movs r3, 0 ldr r2, _08134DA4 ldrb r1, [r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, 0x1 adds r2, r0, r2 _08134D94: adds r1, r4, r3 ldrb r0, [r2] strb r0, [r1] adds r2, 0x1 adds r3, 0x1 cmp r3, 0x6 ble _08134D94 b _08134DC8 .align 2, 0 _08134DA4: .4byte gBattleTowerTrainers _08134DA8: movs r3, 0 ldrb r0, [r1] subs r0, 0x64 movs r1, 0xA4 muls r1, r0 movs r5, 0xA8 lsls r5, 1 adds r0, r2, r5 adds r2, r1, r0 _08134DBA: adds r1, r4, r3 ldrb r0, [r2] strb r0, [r1] adds r2, 0x1 adds r3, 0x1 cmp r3, 0x6 ble _08134DBA _08134DC8: adds r1, r4, r3 movs r0, 0xFF strb r0, [r1] pop {r4,r5} pop {r0} bx r0 thumb_func_end get_trainer_name thumb_func_start sub_8134DD4 sub_8134DD4: @ 8134DD4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 movs r0, 0 str r0, [sp, 0x18] movs r1, 0x3C str r1, [sp, 0x1C] add r4, sp, 0xC movs r0, 0xFF strb r0, [r4] bl zero_enemy_party_data ldr r1, _08134E04 ldr r2, _08134E08 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x13 bhi _08134E0C movs r3, 0x6 str r3, [sp, 0x14] b _08134ED8 .align 2, 0 _08134E04: .4byte gSaveBlock2 _08134E08: .4byte 0x00000564 _08134E0C: cmp r0, 0x1D bhi _08134E1A movs r0, 0x9 str r0, [sp, 0x14] movs r1, 0x1E str r1, [sp, 0x18] b _08134ED8 _08134E1A: cmp r0, 0x27 bhi _08134E28 movs r2, 0xC str r2, [sp, 0x14] movs r3, 0x3C str r3, [sp, 0x18] b _08134ED8 _08134E28: cmp r0, 0x31 bhi _08134E36 movs r0, 0xF str r0, [sp, 0x14] movs r1, 0x5A str r1, [sp, 0x18] b _08134ED8 _08134E36: cmp r0, 0x3B bhi _08134E44 movs r2, 0x12 str r2, [sp, 0x14] movs r3, 0x78 str r3, [sp, 0x18] b _08134ED8 _08134E44: cmp r0, 0x45 bhi _08134E52 movs r0, 0x15 str r0, [sp, 0x14] movs r1, 0x96 str r1, [sp, 0x18] b _08134ED8 _08134E52: cmp r0, 0x4F bhi _08134E60 movs r2, 0x1F str r2, [sp, 0x14] movs r3, 0xB4 str r3, [sp, 0x18] b _08134ED8 _08134E60: cmp r0, 0x63 bhi _08134E72 movs r0, 0x1F str r0, [sp, 0x14] movs r1, 0xC8 str r1, [sp, 0x18] movs r2, 0x64 str r2, [sp, 0x1C] b _08134ED8 _08134E72: cmp r0, 0xC8 bne _08134E9C movs r6, 0 _08134E78: movs r0, 0x64 muls r0, r6 ldr r1, _08134E94 adds r0, r1 movs r1, 0x2C muls r1, r6 ldr r2, _08134E98 adds r1, r2 bl sub_803ADE8 adds r6, 0x1 cmp r6, 0x2 ble _08134E78 b _08135082 .align 2, 0 _08134E94: .4byte 0x030045c0 _08134E98: .4byte 0x02025370 _08134E9C: movs r6, 0 adds r4, r1, 0 ldr r3, _08134ECC adds r5, r4, r3 _08134EA4: movs r0, 0x64 muls r0, r6 ldr r1, _08134ED0 adds r0, r1 ldr r2, _08134ED4 adds r1, r4, r2 ldrb r2, [r1] movs r1, 0xA4 muls r1, r2 adds r1, r5 movs r2, 0x2C muls r2, r6 adds r1, r2 bl sub_803ADE8 adds r6, 0x1 cmp r6, 0x2 ble _08134EA4 b _08135082 .align 2, 0 _08134ECC: .4byte 0xffffc158 _08134ED0: .4byte 0x030045c0 _08134ED4: .4byte 0x00000564 _08134ED8: ldr r2, _08134EF4 ldr r3, _08134EF8 adds r0, r2, r3 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 adds r1, r2, 0 cmp r0, 0 beq _08134F00 ldr r0, _08134EFC mov r10, r0 movs r2, 0x64 str r2, [sp, 0x10] b _08134F08 .align 2, 0 _08134EF4: .4byte gSaveBlock2 _08134EF8: .4byte 0x00000554 _08134EFC: .4byte gBattleTowerLevel100Mons _08134F00: ldr r3, _08134F54 mov r10, r3 movs r0, 0x32 str r0, [sp, 0x10] _08134F08: ldr r2, _08134F58 ldr r3, _08134F5C adds r0, r1, r3 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x9] str r0, [sp, 0x20] movs r6, 0 _08134F1E: bl Random movs r1, 0xFF ands r1, r0 ldr r2, [sp, 0x1C] adds r0, r1, 0 muls r0, r2 asrs r0, 8 ldr r3, [sp, 0x18] adds r7, r0, r3 ldr r0, [sp, 0x20] cmp r0, 0 beq _08134F48 lsls r0, r7, 4 add r0, r10 ldrb r0, [r0, 0x3] ldr r1, [sp, 0x20] ands r0, r1 cmp r0, r1 beq _08134F48 b _0813507C _08134F48: movs r5, 0 lsls r0, r7, 4 mov r2, r10 adds r3, r0, r2 movs r4, 0 b _08134F64 .align 2, 0 _08134F54: .4byte gBattleTowerLevel50Mons _08134F58: .4byte gBattleTowerTrainers _08134F5C: .4byte 0x00000564 _08134F60: adds r4, 0x64 adds r5, 0x1 _08134F64: cmp r5, r6 bge _08134F7E ldr r1, _08135094 adds r0, r4, r1 movs r1, 0xB movs r2, 0 str r3, [sp, 0x24] bl PokemonGetField ldr r3, [sp, 0x24] ldrh r2, [r3] cmp r0, r2 bne _08134F60 _08134F7E: cmp r5, r6 bne _0813507C movs r5, 0 cmp r5, r6 bge _08134FCC ldr r3, _08135098 mov r9, r3 lsls r0, r7, 4 add r0, r10 mov r8, r0 movs r3, 0 _08134F94: ldr r0, _08135094 adds r4, r3, r0 adds r0, r4, 0 movs r1, 0xC movs r2, 0 str r3, [sp, 0x24] bl PokemonGetField ldr r3, [sp, 0x24] cmp r0, 0 beq _08134FC4 adds r0, r4, 0 movs r1, 0xC movs r2, 0 bl PokemonGetField mov r2, r8 ldrb r1, [r2, 0x2] lsls r1, 1 add r1, r9 ldr r3, [sp, 0x24] ldrh r1, [r1] cmp r0, r1 beq _08134FCC _08134FC4: adds r3, 0x64 adds r5, 0x1 cmp r5, r6 blt _08134F94 _08134FCC: cmp r5, r6 bne _0813507C movs r5, 0 cmp r5, r6 bge _08134FEE add r0, sp, 0x4 ldrh r0, [r0] cmp r0, r7 beq _08134FEE add r1, sp, 0x4 _08134FE0: adds r1, 0x2 adds r5, 0x1 cmp r5, r6 bge _08134FEE ldrh r0, [r1] cmp r0, r7 bne _08134FE0 _08134FEE: cmp r5, r6 bne _0813507C lsls r0, r6, 1 add r0, sp adds r0, 0x4 strh r7, [r0] movs r3, 0x64 adds r0, r6, 0 muls r0, r3 ldr r1, _08135094 adds r0, r1 lsls r4, r7, 4 mov r3, r10 adds r2, r4, r3 ldrh r1, [r2] ldrb r2, [r2, 0xC] str r2, [sp] ldr r2, [sp, 0x10] ldr r3, [sp, 0x14] bl pokemon_make_ev_something movs r5, 0 adds r0, r6, 0x1 mov r9, r0 mov r8, r4 movs r0, 0x64 adds r7, r6, 0 muls r7, r0 mov r0, r10 adds r0, 0x4 adds r4, r0 ldr r3, _08135094 _0813502E: ldrh r1, [r4] lsls r2, r5, 24 lsrs r2, 24 adds r0, r7, r3 str r3, [sp, 0x24] bl sub_803B6A4 ldrh r0, [r4] ldr r3, [sp, 0x24] cmp r0, 0xDA bne _0813504A movs r0, 0 mov r1, sp strb r0, [r1, 0xC] _0813504A: adds r4, 0x2 adds r5, 0x1 cmp r5, 0x3 ble _0813502E movs r2, 0x64 adds r4, r6, 0 muls r4, r2 ldr r3, _08135094 adds r4, r3 adds r0, r4, 0 movs r1, 0x20 add r2, sp, 0xC bl pokemon_setattr mov r0, r8 add r0, r10 ldrb r2, [r0, 0x2] lsls r2, 1 ldr r0, _08135098 adds r2, r0 adds r0, r4, 0 movs r1, 0xC bl pokemon_setattr mov r6, r9 _0813507C: cmp r6, 0x3 beq _08135082 b _08134F1E _08135082: add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08135094: .4byte 0x030045c0 _08135098: .4byte gBattleTowerHeldItems thumb_func_end sub_8134DD4 thumb_func_start sub_813509C sub_813509C: @ 813509C push {r4-r6,lr} movs r5, 0 ldr r2, _081350D8 ldrh r0, [r2] ldr r1, _081350DC cmp r0, r1 beq _081350CE adds r6, r1, 0 adds r4, r2, 0 _081350AE: ldrh r0, [r4] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl sub_8090D90 lsls r0, 24 cmp r0, 0 beq _081350C6 adds r5, 0x1 _081350C6: adds r4, 0x2 ldrh r0, [r4] cmp r0, r6 bne _081350AE _081350CE: adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081350D8: .4byte gUnknown_08405EC4 _081350DC: .4byte 0x0000ffff thumb_func_end sub_813509C thumb_func_start sub_81350E0 sub_81350E0: @ 81350E0 push {r4-r6,lr} adds r5, r2, 0 lsls r0, 16 lsrs r6, r0, 16 lsls r1, 24 lsrs r4, r1, 24 adds r0, r6, 0 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl sub_8090D90 lsls r0, 24 cmp r0, 0 beq _081351E6 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 subs r0, r4, 0x1 cmp r0, 0xA bhi _081351B0 lsls r0, 2 ldr r1, _08135118 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08135118: .4byte _0813511C .align 2, 0 _0813511C: .4byte _08135148 .4byte _08135178 .4byte _08135148 .4byte _081351B0 .4byte _08135148 .4byte _081351B0 .4byte _08135148 .4byte _081351B0 .4byte _08135148 .4byte _081351B0 .4byte _08135148 _08135148: cmp r5, r4 bne _08135160 ldr r0, _08135158 ldr r1, _0813515C bl StringAppend b _081351D8 .align 2, 0 _08135158: .4byte 0x020231cc _0813515C: .4byte gUnknown_08400E23 _08135160: cmp r5, r4 ble _081351D8 ldr r0, _08135170 ldr r1, _08135174 bl StringAppend b _081351D8 .align 2, 0 _08135170: .4byte 0x020231cc _08135174: .4byte gUnknown_08400E29 _08135178: cmp r4, r5 bne _08135190 ldr r0, _08135188 ldr r1, _0813518C bl StringAppend b _08135198 .align 2, 0 _08135188: .4byte 0x020231cc _0813518C: .4byte gUnknown_08400E23 _08135190: ldr r0, _081351A4 ldr r1, _081351A8 bl StringAppend _08135198: ldr r0, _081351A4 ldr r1, _081351AC bl StringAppend b _081351D8 .align 2, 0 _081351A4: .4byte 0x020231cc _081351A8: .4byte gUnknown_08400E29 _081351AC: .4byte gUnknown_08400E30 _081351B0: cmp r4, r5 bne _081351C8 ldr r0, _081351C0 ldr r1, _081351C4 bl StringAppend b _081351D0 .align 2, 0 _081351C0: .4byte 0x020231cc _081351C4: .4byte gUnknown_08400E23 _081351C8: ldr r0, _081351F0 ldr r1, _081351F4 bl StringAppend _081351D0: ldr r0, _081351F0 ldr r1, _081351F8 bl StringAppend _081351D8: ldr r0, _081351F0 movs r1, 0xB muls r1, r6 ldr r2, _081351FC adds r1, r2 bl StringAppend _081351E6: adds r0, r4, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081351F0: .4byte 0x020231cc _081351F4: .4byte gUnknown_08400E29 _081351F8: .4byte gUnknown_08400E2E _081351FC: .4byte gSpeciesNames thumb_func_end sub_81350E0 thumb_func_start sub_8135200 sub_8135200: @ 8135200 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r2, [sp, 0x20] ldr r4, [sp, 0x24] mov r9, r4 ldr r4, [sp, 0x28] mov r10, r4 ldr r7, [sp, 0x2C] lsls r0, 16 lsrs r4, r0, 16 lsls r1, 16 lsrs r6, r1, 16 lsls r3, 24 lsrs r3, 24 mov r12, r3 lsls r2, 24 lsrs r2, 24 mov r8, r2 movs r2, 0 movs r0, 0xCE lsls r0, 1 cmp r4, r0 beq _081352CE cmp r4, 0 beq _081352CE ldr r0, _081352DC ldrh r1, [r0] ldr r5, _081352E0 adds r3, r0, 0 cmp r1, r5 beq _08135264 cmp r1, r4 beq _08135258 adds r1, r3, 0 _0813524A: adds r1, 0x2 adds r2, 0x1 ldrh r0, [r1] cmp r0, r5 beq _08135264 cmp r0, r4 bne _0813524A _08135258: lsls r0, r2, 1 adds r0, r3 ldrh r1, [r0] ldr r0, _081352E0 cmp r1, r0 bne _081352CE _08135264: mov r0, r12 cmp r0, 0 bne _08135270 mov r1, r8 cmp r1, 0x32 bhi _081352CE _08135270: movs r2, 0 ldrb r3, [r7] cmp r2, r3 bge _08135290 mov r1, r9 ldrh r0, [r1] cmp r0, r4 beq _08135290 adds r5, r3, 0 _08135282: adds r1, 0x2 adds r2, 0x1 cmp r2, r5 bge _08135290 ldrh r0, [r1] cmp r0, r4 bne _08135282 _08135290: cmp r2, r3 bne _081352CE cmp r6, 0 beq _081352BA movs r2, 0 cmp r2, r3 bge _081352B6 mov r1, r10 ldrh r0, [r1] cmp r0, r6 beq _081352B6 adds r5, r3, 0 _081352A8: adds r1, 0x2 adds r2, 0x1 cmp r2, r5 bge _081352B6 ldrh r0, [r1] cmp r0, r6 bne _081352A8 _081352B6: cmp r2, r3 bne _081352CE _081352BA: lsls r0, r3, 1 add r0, r9 strh r4, [r0] ldrb r0, [r7] lsls r0, 1 add r0, r10 strh r6, [r0] ldrb r0, [r7] adds r0, 0x1 strb r0, [r7] _081352CE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081352DC: .4byte gUnknown_08405EC4 _081352E0: .4byte 0x0000ffff thumb_func_end sub_8135200 thumb_func_start sub_81352E4 sub_81352E4: @ 81352E4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C add r1, sp, 0x28 movs r0, 0 strb r0, [r1] movs r7, 0 mov r9, r1 add r0, sp, 0x1C mov r10, r0 _081352FE: movs r0, 0x64 adds r5, r7, 0 muls r5, r0 ldr r0, _081353C4 adds r5, r0 adds r0, r5, 0 movs r1, 0x41 bl PokemonGetField mov r8, r0 mov r1, r8 lsls r1, 16 lsrs r1, 16 mov r8, r1 adds r0, r5, 0 movs r1, 0xC bl PokemonGetField adds r6, r0, 0 lsls r6, 16 lsrs r6, 16 adds r0, r5, 0 movs r1, 0x38 bl PokemonGetField adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x39 bl PokemonGetField adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 ldr r5, _081353C8 ldrb r3, [r5] str r4, [sp] add r0, sp, 0x10 str r0, [sp, 0x4] mov r1, r10 str r1, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] mov r0, r8 adds r1, r6, 0 bl sub_8135200 adds r7, 0x1 cmp r7, 0x5 ble _081352FE mov r1, r9 ldrb r0, [r1] cmp r0, 0x2 bhi _08135420 ldr r1, _081353CC movs r0, 0xFF strb r0, [r1] ldr r1, _081353D0 movs r0, 0x1 strh r0, [r1] movs r0, 0 mov r1, r9 strb r0, [r1] bl sub_813509C adds r6, r0, 0 ldr r2, _081353D4 ldrh r0, [r2] ldr r1, _081353D8 cmp r0, r1 beq _081353A8 mov r5, r9 adds r7, r1, 0 adds r4, r2, 0 _08135394: ldrh r0, [r4] ldrb r1, [r5] adds r2, r6, 0 bl sub_81350E0 strb r0, [r5] adds r4, 0x2 ldrh r0, [r4] cmp r0, r7 bne _08135394 _081353A8: mov r0, r9 ldrb r1, [r0] cmp r1, 0 bne _081353E4 ldr r4, _081353CC ldr r1, _081353DC adds r0, r4, 0 bl StringAppend ldr r1, _081353E0 adds r0, r4, 0 bl StringAppend b _0813543E .align 2, 0 _081353C4: .4byte 0x03004360 _081353C8: .4byte 0x0202e8dc _081353CC: .4byte 0x020231cc _081353D0: .4byte 0x0202e8cc _081353D4: .4byte gUnknown_08405EC4 _081353D8: .4byte 0x0000ffff _081353DC: .4byte gUnknown_08400E2C _081353E0: .4byte gUnknown_08400E32 _081353E4: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08135400 ldr r0, _081353F8 ldr r1, _081353FC bl StringAppend b _08135408 .align 2, 0 _081353F8: .4byte 0x020231cc _081353FC: .4byte gUnknown_08400E2E _08135400: ldr r0, _08135414 ldr r1, _08135418 bl StringAppend _08135408: ldr r0, _08135414 ldr r1, _0813541C bl StringAppend b _0813543E .align 2, 0 _08135414: .4byte 0x020231cc _08135418: .4byte gUnknown_08400E2C _0813541C: .4byte gUnknown_08400E36 _08135420: ldr r1, _08135450 movs r0, 0 strh r0, [r1] ldr r2, _08135454 ldrb r0, [r5] ldr r1, _08135458 adds r2, r1 movs r1, 0x1 ands r1, r0 ldrb r3, [r2] movs r0, 0x2 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] _0813543E: add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08135450: .4byte 0x0202e8cc _08135454: .4byte gSaveBlock2 _08135458: .4byte 0x00000554 thumb_func_end sub_81352E4 thumb_func_start sub_813545C sub_813545C: @ 813545C push {lr} adds r1, r0, 0 ldr r0, _08135470 movs r2, 0x2 movs r3, 0x3 bl sub_80EB544 pop {r0} bx r0 .align 2, 0 _08135470: .4byte 0x020234cc thumb_func_end sub_813545C thumb_func_start sub_8135474 sub_8135474: @ 8135474 push {lr} ldr r2, _08135490 ldr r0, _08135494 adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0xC8 bne _08135498 movs r1, 0x95 lsls r1, 3 adds r0, r2, r1 bl sub_813545C b _081354C4 .align 2, 0 _08135490: .4byte gSaveBlock2 _08135494: .4byte 0x00000564 _08135498: cmp r0, 0x63 bhi _081354B4 ldrb r1, [r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 ldr r1, _081354B0 adds r0, r1 bl sub_813545C b _081354C4 .align 2, 0 _081354B0: .4byte gBattleTowerTrainers + 0xC _081354B4: ldrb r1, [r1] movs r0, 0xA4 muls r0, r1 ldr r3, _081354C8 adds r1, r2, r3 adds r0, r1 bl sub_813545C _081354C4: pop {r0} bx r0 .align 2, 0 _081354C8: .4byte 0xffffc14c thumb_func_end sub_8135474 thumb_func_start sub_81354CC sub_81354CC: @ 81354CC push {r4,r5,lr} sub sp, 0x4 ldr r0, _081354E4 ldrh r0, [r0] cmp r0, 0x1 beq _081354E8 cmp r0, 0x1 ble _08135520 cmp r0, 0x2 beq _0813551C b _08135520 .align 2, 0 _081354E4: .4byte 0x0202e8cc _081354E8: movs r5, 0 _081354EA: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08135514 adds r0, r4, r0 movs r1, 0xC bl PokemonGetField mov r1, sp strh r0, [r1] ldr r0, _08135518 adds r4, r0 adds r0, r4, 0 movs r1, 0xC mov r2, sp bl pokemon_setattr adds r5, 0x1 cmp r5, 0x5 ble _081354EA b _08135520 .align 2, 0 _08135514: .4byte 0x0202596c _08135518: .4byte 0x03004360 _0813551C: bl sub_81360D0 _08135520: ldr r0, _08135530 bl SetMainCallback2 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08135530: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end sub_81354CC thumb_func_start sub_8135534 sub_8135534: @ 8135534 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_811AAE8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08135558 ldr r0, _08135560 ldr r1, _08135564 str r1, [r0, 0x8] ldr r0, _08135568 bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _08135558: pop {r4} pop {r0} bx r0 .align 2, 0 _08135560: .4byte 0x03001770 _08135564: .4byte sub_81354CC _08135568: .4byte sub_800E7C4 thumb_func_end sub_8135534 thumb_func_start sub_813556C sub_813556C: @ 813556C push {r4,r5,lr} sub sp, 0x4 ldr r0, _08135584 ldrh r2, [r0] cmp r2, 0x1 beq _081355AC cmp r2, 0x1 bgt _08135588 cmp r2, 0 beq _0813558E b _08135648 .align 2, 0 _08135584: .4byte 0x0202e8cc _08135588: cmp r2, 0x2 beq _08135600 b _08135648 _0813558E: ldr r1, _081355A4 movs r3, 0x84 lsls r3, 1 adds r0, r3, 0 strh r0, [r1] ldr r0, _081355A8 strh r2, [r0] bl sub_8134DD4 b _081355D6 .align 2, 0 _081355A4: .4byte 0x020239f8 _081355A8: .4byte 0x0202ff5e _081355AC: movs r5, 0 _081355AE: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _081355F4 adds r0, r4, r0 movs r1, 0xC bl PokemonGetField mov r1, sp strh r0, [r1] ldr r0, _081355F8 adds r4, r0 adds r0, r4, 0 movs r1, 0xC mov r2, sp bl pokemon_setattr adds r5, 0x1 cmp r5, 0x5 ble _081355AE _081355D6: ldr r0, _081355FC movs r1, 0x1 bl CreateTask movs r0, 0 bl current_map_music_set__default_for_battle bl sub_8082138 lsls r0, 24 lsrs r0, 24 bl sub_811AABC b _08135648 .align 2, 0 _081355F4: .4byte 0x03004360 _081355F8: .4byte 0x0202596c _081355FC: .4byte sub_8135534 _08135600: bl zero_enemy_party_data movs r5, 0 _08135606: movs r0, 0x64 muls r0, r5 ldr r1, _08135650 adds r0, r1 movs r1, 0x2C muls r1, r5 ldr r2, _08135654 adds r1, r2 bl sub_803ADE8 adds r5, 0x1 cmp r5, 0x2 ble _08135606 ldr r1, _08135658 ldr r2, _0813565C adds r0, r2, 0 strh r0, [r1] ldr r1, _08135660 movs r0, 0 strh r0, [r1] ldr r0, _08135664 movs r1, 0x1 bl CreateTask movs r0, 0 bl current_map_music_set__default_for_battle bl sub_8082138 lsls r0, 24 lsrs r0, 24 bl sub_811AABC _08135648: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08135650: .4byte 0x030045c0 _08135654: .4byte 0x02025370 _08135658: .4byte 0x020239f8 _0813565C: .4byte 0x00000808 _08135660: .4byte 0x0202ff5e _08135664: .4byte sub_8135534 thumb_func_end sub_813556C thumb_func_start sub_8135668 sub_8135668: @ 8135668 push {r4,r5,lr} ldr r1, _0813568C ldr r2, _08135690 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 31 lsrs r4, r0, 31 ldr r0, _08135694 ldrh r0, [r0] adds r5, r1, 0 cmp r0, 0xE bls _08135682 b _0813589A _08135682: lsls r0, 2 ldr r1, _08135698 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813568C: .4byte gSaveBlock2 _08135690: .4byte 0x00000554 _08135694: .4byte 0x0202e8cc _08135698: .4byte _0813569C .align 2, 0 _0813569C: .4byte _081356D8 .4byte _08135700 .4byte _0813571C .4byte _08135726 .4byte _08135740 .4byte _08135754 .4byte _08135774 .4byte _081357D0 .4byte _081357FC .4byte _0813589A .4byte _08135820 .4byte _08135834 .4byte _0813584C .4byte _0813586C .4byte _08135888 _081356D8: ldr r0, _081356F0 ldr r3, _081356F4 adds r1, r5, r3 adds r1, r4, r1 ldrb r2, [r1] ldr r3, _081356F8 adds r0, r3 strb r2, [r0] ldr r0, _081356FC ldrh r0, [r0] b _08135898 .align 2, 0 _081356F0: .4byte 0x02000000 _081356F4: .4byte 0x00000556 _081356F8: .4byte 0x000160fb _081356FC: .4byte 0x0202e8ce _08135700: ldr r0, _08135714 ldrb r0, [r0] ldr r1, _08135718 adds r3, r5, r1 movs r1, 0x1 ands r1, r0 ldrb r2, [r3] movs r0, 0x2 negs r0, r0 b _08135810 .align 2, 0 _08135714: .4byte 0x0202e8ce _08135718: .4byte 0x00000554 _0813571C: lsls r1, r4, 1 movs r2, 0xAB lsls r2, 3 adds r0, r5, r2 b _0813572C _08135726: lsls r1, r4, 1 ldr r3, _08135738 adds r0, r5, r3 _0813572C: adds r1, r0 ldr r0, _0813573C ldrh r0, [r0] strh r0, [r1] b _0813589A .align 2, 0 _08135738: .4byte 0x0000055c _0813573C: .4byte 0x0202e8ce _08135740: ldr r0, _0813574C ldrh r1, [r0] ldr r2, _08135750 adds r0, r5, r2 strb r1, [r0] b _0813589A .align 2, 0 _0813574C: .4byte 0x0202e8ce _08135750: .4byte 0x00000564 _08135754: movs r2, 0 ldr r4, _0813576C ldr r3, _08135770 _0813575A: adds r0, r2, r4 adds r1, r2, r3 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x2 ble _0813575A b _0813589A .align 2, 0 _0813576C: .4byte 0x02025409 _08135770: .4byte 0x02039270 _08135774: ldr r3, _081357C0 adds r0, r5, r3 ldrb r0, [r0] cmp r0, 0xC8 bne _08135788 movs r1, 0x93 lsls r1, 3 adds r0, r5, r1 bl sub_81360AC _08135788: movs r3, 0xAE lsls r3, 3 adds r2, r5, r3 ldrh r1, [r2] ldr r0, _081357C4 cmp r1, r0 bhi _0813579A adds r0, r1, 0x1 strh r0, [r2] _0813579A: lsls r4, 1 movs r1, 0xAB lsls r1, 3 adds r0, r5, r1 adds r4, r0 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] bl sub_8135A3C ldr r1, _081357C8 ldrh r0, [r4] strh r0, [r1] ldr r1, _081357CC adds r0, 0xA1 strb r0, [r1] movs r0, 0xFF strb r0, [r1, 0x1] b _0813589A .align 2, 0 _081357C0: .4byte 0x00000564 _081357C4: .4byte 0x0000270e _081357C8: .4byte 0x0202e8dc _081357CC: .4byte 0x020231cc _081357D0: lsls r0, r4, 1 ldr r2, _081357F0 adds r1, r5, r2 adds r4, r0, r1 ldrh r1, [r4] ldr r0, _081357F4 cmp r1, r0 bhi _081357E4 adds r0, r1, 0x1 strh r0, [r4] _081357E4: bl sub_8135A3C ldr r1, _081357F8 ldrh r0, [r4] strh r0, [r1] b _0813589A .align 2, 0 _081357F0: .4byte 0x0000055c _081357F4: .4byte 0x00000595 _081357F8: .4byte 0x0202e8dc _081357FC: ldr r0, _08135818 ldrb r0, [r0] ldr r1, _0813581C adds r3, r5, r1 movs r1, 0x1 ands r1, r0 lsls r1, 1 ldrb r2, [r3] movs r0, 0x3 negs r0, r0 _08135810: ands r0, r2 orrs r0, r1 strb r0, [r3] b _0813589A .align 2, 0 _08135818: .4byte 0x0202e8ce _0813581C: .4byte 0x00000554 _08135820: ldr r2, _08135830 adds r0, r5, r2 ldrh r1, [r0] movs r0, 0x20 bl sav12_xor_set b _0813589A .align 2, 0 _08135830: .4byte 0x00000572 _08135834: ldr r3, _08135848 adds r0, r5, r3 adds r0, r4, r0 ldrb r0, [r0] cmp r0, 0x3 beq _0813589A adds r0, r4, 0 bl sub_813461C b _0813589A .align 2, 0 _08135848: .4byte 0x00000556 _0813584C: ldr r1, _08135860 adds r0, r5, r1 adds r0, r4, r0 ldr r1, _08135864 ldr r2, _08135868 adds r1, r2 ldrb r1, [r1] strb r1, [r0] b _0813589A .align 2, 0 _08135860: .4byte 0x00000556 _08135864: .4byte 0x02000000 _08135868: .4byte 0x000160fb _0813586C: adds r0, r4, 0 bl sub_8135D3C ldr r1, _08135880 lsls r2, r4, 1 ldr r3, _08135884 adds r1, r3 adds r2, r1 strh r0, [r2] b _0813589A .align 2, 0 _08135880: .4byte gSaveBlock2 _08135884: .4byte 0x00000574 _08135888: ldr r1, _081358A0 adds r0, r5, r1 ldrb r0, [r0] lsls r0, 31 lsrs r0, 31 movs r2, 0xAF lsls r2, 3 adds r1, r5, r2 _08135898: strb r0, [r1] _0813589A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081358A0: .4byte 0x00000554 thumb_func_end sub_8135668 thumb_func_start sub_81358A4 sub_81358A4: @ 81358A4 push {r4,lr} ldr r1, _081358C8 ldr r2, _081358CC adds r0, r1, r2 ldrb r0, [r0] lsls r0, 31 lsrs r4, r0, 31 ldr r0, _081358D0 ldrh r0, [r0] adds r3, r1, 0 cmp r0, 0xE bls _081358BE b _08135A0A _081358BE: lsls r0, 2 ldr r1, _081358D4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081358C8: .4byte gSaveBlock2 _081358CC: .4byte 0x00000554 _081358D0: .4byte 0x0202e8cc _081358D4: .4byte _081358D8 .align 2, 0 _081358D8: .4byte _08135914 .4byte _08135928 .4byte _0813593C .4byte _0813594C .4byte _08135964 .4byte _08135A0A .4byte _08135A0A .4byte _08135A0A .4byte _08135978 .4byte _08135990 .4byte _081359A0 .4byte _081359B4 .4byte _081359BC .4byte _081359DC .4byte _081359F8 _08135914: ldr r0, _08135920 ldr r2, _08135924 adds r1, r3, r2 adds r1, r4, r1 b _0813596A .align 2, 0 _08135920: .4byte 0x0202e8dc _08135924: .4byte 0x00000556 _08135928: ldr r1, _08135934 ldr r4, _08135938 adds r0, r3, r4 ldrb r0, [r0] lsls r0, 31 b _08135982 .align 2, 0 _08135934: .4byte 0x0202e8dc _08135938: .4byte 0x00000554 _0813593C: ldr r2, _08135948 lsls r0, r4, 1 movs r4, 0xAB lsls r4, 3 b _08135952 .align 2, 0 _08135948: .4byte 0x0202e8dc _0813594C: ldr r2, _0813595C lsls r0, r4, 1 ldr r4, _08135960 _08135952: adds r1, r3, r4 adds r0, r1 ldrh r0, [r0] strh r0, [r2] b _08135A0A .align 2, 0 _0813595C: .4byte 0x0202e8dc _08135960: .4byte 0x0000055c _08135964: ldr r0, _08135970 ldr r2, _08135974 adds r1, r3, r2 _0813596A: ldrb r1, [r1] strh r1, [r0] b _08135A0A .align 2, 0 _08135970: .4byte 0x0202e8dc _08135974: .4byte 0x00000564 _08135978: ldr r1, _08135988 ldr r4, _0813598C adds r0, r3, r4 ldrb r0, [r0] lsls r0, 30 _08135982: lsrs r0, 31 strh r0, [r1] b _08135A0A .align 2, 0 _08135988: .4byte 0x0202e8dc _0813598C: .4byte 0x00000554 _08135990: adds r0, r4, 0 bl sub_8135D3C ldr r1, _0813599C strh r0, [r1] b _08135A0A .align 2, 0 _0813599C: .4byte 0x0202e8dc _081359A0: ldr r1, _081359B0 adds r0, r3, r1 ldrh r1, [r0] movs r0, 0x20 bl sav12_xor_set b _08135A0A .align 2, 0 _081359B0: .4byte 0x00000572 _081359B4: adds r0, r4, 0 bl sub_813461C b _08135A0A _081359BC: ldr r2, _081359D0 adds r0, r3, r2 adds r0, r4, r0 ldr r1, _081359D4 ldr r3, _081359D8 adds r1, r3 ldrb r1, [r1] strb r1, [r0] b _08135A0A .align 2, 0 _081359D0: .4byte 0x00000556 _081359D4: .4byte 0x02000000 _081359D8: .4byte 0x000160fb _081359DC: adds r0, r4, 0 bl sub_8135D3C ldr r1, _081359F0 lsls r2, r4, 1 ldr r4, _081359F4 adds r1, r4 adds r2, r1 strh r0, [r2] b _08135A0A .align 2, 0 _081359F0: .4byte gSaveBlock2 _081359F4: .4byte 0x00000574 _081359F8: ldr r1, _08135A10 adds r0, r3, r1 ldrb r0, [r0] lsls r0, 31 lsrs r0, 31 movs r2, 0xAF lsls r2, 3 adds r1, r3, r2 strb r0, [r1] _08135A0A: pop {r4} pop {r0} bx r0 .align 2, 0 _08135A10: .4byte 0x00000554 thumb_func_end sub_81358A4 thumb_func_start sub_8135A14 sub_8135A14: @ 8135A14 push {r4,lr} movs r2, 0 ldr r4, _08135A34 ldr r3, _08135A38 _08135A1C: adds r0, r2, r4 adds r1, r2, r3 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x2 ble _08135A1C bl sub_80C5604 pop {r4} pop {r0} bx r0 .align 2, 0 _08135A34: .4byte 0x02039270 _08135A38: .4byte 0x02025409 thumb_func_end sub_8135A14 thumb_func_start sub_8135A3C sub_8135A3C: @ 8135A3C push {r4-r6,lr} ldr r6, _08135A84 ldr r1, _08135A88 adds r0, r6, r1 ldrb r4, [r0] lsls r4, 31 lsrs r4, 31 adds r0, r4, 0 bl sub_8135D3C lsls r0, 16 lsrs r5, r0, 16 lsls r4, 1 movs r3, 0xAC lsls r3, 3 adds r2, r6, r3 adds r4, r2 ldrh r0, [r4] cmp r0, r5 bcs _08135A66 strh r5, [r4] _08135A66: ldr r0, _08135A8C adds r1, r6, r0 ldrh r0, [r2] ldrh r3, [r1] cmp r0, r3 bls _08135A94 adds r5, r0, 0 movs r0, 0x20 adds r1, r5, 0 bl sav12_xor_set ldr r1, _08135A90 cmp r5, r1 bhi _08135AA4 b _08135AB4 .align 2, 0 _08135A84: .4byte gSaveBlock2 _08135A88: .4byte 0x00000554 _08135A8C: .4byte 0x00000562 _08135A90: .4byte 0x0000270f _08135A94: ldrh r5, [r1] movs r0, 0x20 adds r1, r5, 0 bl sav12_xor_set ldr r1, _08135AAC cmp r5, r1 bls _08135AB4 _08135AA4: ldr r2, _08135AB0 adds r0, r6, r2 strh r1, [r0] b _08135ABA .align 2, 0 _08135AAC: .4byte 0x0000270f _08135AB0: .4byte 0x00000572 _08135AB4: ldr r3, _08135AC0 adds r0, r6, r3 strh r5, [r0] _08135ABA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08135AC0: .4byte 0x00000572 thumb_func_end sub_8135A3C thumb_func_start sub_8135AC4 sub_8135AC4: @ 8135AC4 push {r4-r6,lr} ldr r5, _08135AF0 adds r2, r5, 0 subs r2, 0xA8 ldr r1, _08135AF4 adds r0, r5, r1 ldrb r0, [r0] lsls r0, 31 lsrs r6, r0, 31 ldrb r0, [r2, 0x8] cmp r0, 0 beq _08135AFC ldr r4, _08135AF8 ldrb r0, [r2, 0xA] ldrb r1, [r2, 0xB] adds r0, r1 ldrb r1, [r2, 0xC] adds r0, r1 ldrb r1, [r2, 0xD] adds r0, r1 movs r1, 0x14 b _08135B0E .align 2, 0 _08135AF0: .4byte 0x02024f4c _08135AF4: .4byte 0x000004ac _08135AF8: .4byte gUnknown_08405E7E _08135AFC: ldr r4, _08135B84 ldrb r0, [r2, 0xA] ldrb r1, [r2, 0xB] adds r0, r1 ldrb r1, [r2, 0xC] adds r0, r1 ldrb r1, [r2, 0xD] adds r0, r1 movs r1, 0x1E _08135B0E: bl __umodsi3 adds r0, r4 ldrb r0, [r0] strb r6, [r5] strb r0, [r5, 0x1] adds r0, r5, 0 adds r0, 0xC ldr r4, _08135B88 adds r1, r4, 0 bl sub_8052D10 adds r0, r5, 0x4 subs r4, 0xA adds r1, r4, 0 bl StringCopy8 adds r0, r6, 0 bl sub_8135D3C strh r0, [r5, 0x2] ldr r0, _08135B8C ldr r1, _08135B90 adds r2, r0, r1 adds r1, r5, 0 adds r1, 0x10 movs r4, 0x5 _08135B44: ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 subs r4, 0x1 cmp r4, 0 bge _08135B44 movs r4, 0 ldr r6, _08135B94 _08135B56: adds r0, r4, r6 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08135B98 adds r0, r1 movs r1, 0x2C muls r1, r4 adds r1, 0x1C adds r1, r5, r1 bl sub_803AF78 adds r4, 0x1 cmp r4, 0x2 ble _08135B56 ldr r0, _08135B9C bl sub_8135CC4 bl sub_8135A3C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08135B84: .4byte gUnknown_08405E60 _08135B88: .4byte 0x02024eae _08135B8C: .4byte 0x02025734 _08135B90: .4byte 0x00002b28 _08135B94: .4byte 0x02025409 _08135B98: .4byte 0x030042fc _08135B9C: .4byte 0x02024f4c thumb_func_end sub_8135AC4 thumb_func_start sub_8135BA0 sub_8135BA0: @ 8135BA0 push {r4,r5,lr} ldr r2, _08135C1C ldr r1, _08135C20 adds r0, r2, r1 ldrb r0, [r0] lsls r0, 31 lsrs r5, r0, 31 ldr r0, _08135C24 ldrh r0, [r0] cmp r0, 0x3 beq _08135BBA cmp r0, 0 bne _08135BD8 _08135BBA: lsls r1, r5, 1 ldr r3, _08135C28 adds r0, r2, r3 adds r0, r1, r0 ldrh r0, [r0] cmp r0, 0x1 bhi _08135BD4 subs r3, 0x4 adds r0, r2, r3 adds r0, r1, r0 ldrh r0, [r0] cmp r0, 0x1 bls _08135BD8 _08135BD4: bl sub_8135AC4 _08135BD8: bl sub_8135CFC ldr r4, _08135C1C ldr r0, _08135C2C ldrb r1, [r0] ldr r2, _08135C30 adds r0, r4, r2 strb r1, [r0] ldr r0, _08135C24 ldrh r1, [r0] cmp r1, 0x3 beq _08135BF8 ldr r3, _08135C34 adds r0, r4, r3 adds r0, r5, r0 strb r1, [r0] _08135BF8: movs r0, 0x80 lsls r0, 7 movs r1, 0 bl VarSet ldr r0, _08135C20 adds r2, r4, r0 ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] movs r0, 0x2 bl sub_8125D44 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08135C1C: .4byte gSaveBlock2 _08135C20: .4byte 0x00000554 _08135C24: .4byte 0x0202e8cc _08135C28: .4byte 0x0000055c _08135C2C: .4byte 0x02024d26 _08135C30: .4byte 0x00000555 _08135C34: .4byte 0x00000556 thumb_func_end sub_8135BA0 thumb_func_start sub_8135C38 sub_8135C38: @ 8135C38 push {lr} bl DoSoftReset pop {r0} bx r0 thumb_func_end sub_8135C38 thumb_func_start sub_8135C44 sub_8135C44: @ 8135C44 push {r4-r7,lr} mov r7, r8 push {r7} movs r3, 0 movs r1, 0 ldr r2, _08135CBC _08135C50: ldm r2!, {r0} adds r3, r0 adds r1, 0x1 cmp r1, 0x27 bls _08135C50 ldr r5, _08135CC0 movs r1, 0xA4 lsls r1, 1 adds r0, r5, r1 ldr r0, [r0] cmp r0, r3 beq _08135C70 adds r0, r5, 0 adds r0, 0xA8 bl sub_8135CE8 _08135C70: movs r4, 0 movs r7, 0xA4 movs r0, 0xA6 lsls r0, 1 adds r6, r5, r0 mov r8, r5 _08135C7C: adds r0, r4, 0 muls r0, r7 movs r3, 0 movs r1, 0 adds r5, r4, 0x1 adds r2, r0, r6 _08135C88: ldm r2!, {r0} adds r3, r0 adds r1, 0x1 cmp r1, 0x27 bls _08135C88 adds r1, r4, 0 muls r1, r7 movs r0, 0xF6 lsls r0, 1 add r0, r8 adds r0, r1, r0 ldr r0, [r0] cmp r0, r3 beq _08135CAA adds r0, r1, r6 bl sub_8135CE8 _08135CAA: adds r4, r5, 0 cmp r4, 0x4 ble _08135C7C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08135CBC: .4byte 0x02024f4c _08135CC0: .4byte gSaveBlock2 thumb_func_end sub_8135C44 thumb_func_start sub_8135CC4 sub_8135CC4: @ 8135CC4 push {r4,lr} adds r2, r0, 0 adds r2, 0xA0 movs r1, 0 str r1, [r2] movs r3, 0 adds r4, r0, 0 _08135CD2: ldr r0, [r2] ldm r4!, {r1} adds r0, r1 str r0, [r2] adds r3, 0x1 cmp r3, 0x27 bls _08135CD2 pop {r4} pop {r0} bx r0 thumb_func_end sub_8135CC4 thumb_func_start sub_8135CE8 sub_8135CE8: @ 8135CE8 push {lr} movs r1, 0 movs r2, 0 _08135CEE: stm r0!, {r2} adds r1, 0x1 cmp r1, 0x28 bls _08135CEE pop {r0} bx r0 thumb_func_end sub_8135CE8 thumb_func_start sub_8135CFC sub_8135CFC: @ 8135CFC push {r4,lr} ldr r4, _08135D34 adds r0, r4, 0 bl get_trainer_name ldr r2, _08135D38 adds r0, r2, 0 adds r0, 0x58 ldrh r1, [r0] subs r0, r4, 0x2 strh r1, [r0] ldrh r1, [r2] subs r0, r4, 0x4 strh r1, [r0] movs r3, 0 adds r4, 0x8 adds r2, 0x30 _08135D1E: adds r0, r3, r4 adds r1, r3, r2 ldrb r1, [r1] strb r1, [r0] adds r3, 0x1 cmp r3, 0x9 ble _08135D1E pop {r4} pop {r0} bx r0 .align 2, 0 _08135D34: .4byte 0x02025328 _08135D38: .4byte 0x02024a80 thumb_func_end sub_8135CFC thumb_func_start sub_8135D3C sub_8135D3C: @ 8135D3C push {lr} lsls r0, 24 ldr r3, _08135D74 lsrs r0, 23 ldr r2, _08135D78 adds r1, r3, r2 adds r1, r0, r1 ldrh r2, [r1] subs r2, 0x1 lsls r1, r2, 3 subs r1, r2 movs r2, 0xAB lsls r2, 3 adds r3, r2 adds r0, r3 ldr r2, _08135D7C adds r1, r2 ldrh r0, [r0] adds r1, r0 lsls r1, 16 lsrs r0, r1, 16 ldr r1, _08135D80 cmp r0, r1 bls _08135D6E adds r0, r1, 0 _08135D6E: pop {r1} bx r1 .align 2, 0 _08135D74: .4byte gSaveBlock2 _08135D78: .4byte 0x0000055c _08135D7C: .4byte 0x0000ffff _08135D80: .4byte 0x0000270f thumb_func_end sub_8135D3C thumb_func_start sub_8135D84 sub_8135D84: @ 8135D84 push {r4,r5,lr} ldr r5, _08135DB0 ldr r1, _08135DB4 adds r0, r5, r1 ldrb r0, [r0] lsls r0, 31 lsrs r0, 31 lsls r0, 1 ldr r2, _08135DB8 adds r1, r5, r2 adds r0, r1 ldrh r0, [r0] subs r0, 0x1 cmp r0, 0x5 ble _08135DC0 bl Random ldr r4, _08135DBC lsls r0, 16 lsrs r0, 16 movs r1, 0x9 b _08135DCC .align 2, 0 _08135DB0: .4byte gSaveBlock2 _08135DB4: .4byte 0x00000554 _08135DB8: .4byte 0x0000055c _08135DBC: .4byte gUnknown_08405EE6 _08135DC0: bl Random ldr r4, _08135DE8 lsls r0, 16 lsrs r0, 16 movs r1, 0x6 _08135DCC: bl __umodsi3 lsls r0, 16 lsrs r0, 15 adds r0, r4 ldrh r1, [r0] movs r2, 0xAD lsls r2, 3 adds r0, r5, r2 strh r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08135DE8: .4byte gUnknown_08405EDA thumb_func_end sub_8135D84 thumb_func_start sub_8135DEC sub_8135DEC: @ 8135DEC push {r4-r7,lr} ldr r5, _08135E20 ldr r1, _08135E24 adds r0, r5, r1 ldrb r0, [r0] lsls r0, 31 lsrs r7, r0, 31 movs r0, 0xAD lsls r0, 3 adds r6, r5, r0 ldrh r0, [r6] movs r1, 0x1 bl sub_80A9424 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bne _08135E30 ldrh r0, [r6] ldr r1, _08135E28 bl itemid_copy_name ldr r0, _08135E2C strh r4, [r0] b _08135E40 .align 2, 0 _08135E20: .4byte gSaveBlock2 _08135E24: .4byte 0x00000554 _08135E28: .4byte 0x020231cc _08135E2C: .4byte 0x0202e8dc _08135E30: ldr r1, _08135E48 movs r0, 0 strh r0, [r1] ldr r1, _08135E4C adds r0, r5, r1 adds r0, r7, r0 movs r1, 0x6 strb r1, [r0] _08135E40: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08135E48: .4byte 0x0202e8dc _08135E4C: .4byte 0x00000556 thumb_func_end sub_8135DEC thumb_func_start sub_8135E50 sub_8135E50: @ 8135E50 push {r4-r7,lr} mov r7, r8 push {r7} ldr r6, _08135ED4 ldr r1, _08135ED8 adds r0, r6, r1 ldrb r0, [r0] lsls r0, 31 lsrs r0, 31 adds r1, r0, 0 movs r7, 0x44 cmp r1, 0 beq _08135E6C movs r7, 0x45 _08135E6C: ldr r4, _08135EDC movs r0, 0 strh r0, [r4] adds r0, r1, 0 bl sub_8135D3C lsls r0, 16 lsrs r0, 16 cmp r0, 0x37 bls _08135EBA movs r5, 0 ldr r0, _08135EE0 adds r0, r6 mov r8, r0 adds r6, r4, 0 _08135E8A: mov r1, r8 adds r0, r5, r1 ldrb r0, [r0] subs r0, 0x1 movs r1, 0x64 muls r1, r0 ldr r0, _08135EE4 adds r4, r1, r0 adds r0, r4, 0 adds r1, r7, 0 bl PokemonGetField cmp r0, 0 bne _08135EB4 movs r0, 0x1 strh r0, [r6] adds r0, r4, 0 adds r1, r7, 0 adds r2, r6, 0 bl pokemon_setattr _08135EB4: adds r5, 0x1 cmp r5, 0x2 ble _08135E8A _08135EBA: ldr r0, _08135EDC ldrh r0, [r0] cmp r0, 0 beq _08135EC8 movs r0, 0x2A bl sav12_xor_increment _08135EC8: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08135ED4: .4byte gSaveBlock2 _08135ED8: .4byte 0x00000554 _08135EDC: .4byte 0x0202e8dc _08135EE0: .4byte 0x00000565 _08135EE4: .4byte 0x03004360 thumb_func_end sub_8135E50 thumb_func_start unref_sub_8135EE8 unref_sub_8135EE8: @ 8135EE8 push {r4-r7,lr} ldr r7, _08135F0C ldr r0, _08135F10 adds r2, r7, r0 ldrb r0, [r2, 0x8] cmp r0, 0 beq _08135F18 ldr r4, _08135F14 ldrb r0, [r2, 0xA] ldrb r1, [r2, 0xB] adds r0, r1 ldrb r1, [r2, 0xC] adds r0, r1 ldrb r1, [r2, 0xD] adds r0, r1 movs r1, 0x14 b _08135F2A .align 2, 0 _08135F0C: .4byte 0x0202533c _08135F10: .4byte 0xfffffb68 _08135F14: .4byte gUnknown_08405E7E _08135F18: ldr r4, _08135FA8 ldrb r0, [r2, 0xA] ldrb r1, [r2, 0xB] adds r0, r1 ldrb r1, [r2, 0xC] adds r0, r1 ldrb r1, [r2, 0xD] adds r0, r1 movs r1, 0x1E _08135F2A: bl __umodsi3 adds r0, r4 ldrb r0, [r0] strb r0, [r7, 0x1] adds r0, r7, 0 adds r0, 0xC ldr r4, _08135FAC adds r1, r4, 0 bl sub_8052D10 adds r0, r7, 0x4 subs r4, 0xA adds r1, r4, 0 bl StringCopy8 movs r0, 0x1 strh r0, [r7, 0x2] movs r5, 0x7 movs r4, 0 ldr r0, _08135FB0 ldr r1, _08135FB4 adds r6, r0, r1 adds r3, r7, 0 adds r3, 0x10 adds r2, r7, 0 adds r2, 0x28 adds r1, r7, 0 adds r1, 0x1C _08135F64: ldrh r0, [r6] strh r0, [r3] strh r5, [r1] adds r0, r5, 0x6 strh r0, [r2] adds r5, 0x1 adds r6, 0x2 adds r3, 0x2 adds r2, 0x2 adds r1, 0x2 adds r4, 0x1 cmp r4, 0x5 ble _08135F64 movs r4, 0 _08135F80: movs r0, 0x64 muls r0, r4 ldr r1, _08135FB8 adds r0, r1 movs r1, 0x2C muls r1, r4 adds r1, 0x34 adds r1, r7, r1 bl sub_803AF78 adds r4, 0x1 cmp r4, 0x2 ble _08135F80 adds r0, r7, 0 bl sub_8136088 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08135FA8: .4byte gUnknown_08405E60 _08135FAC: .4byte 0x02024eae _08135FB0: .4byte 0x02025734 _08135FB4: .4byte 0x00002b28 _08135FB8: .4byte 0x03004360 thumb_func_end unref_sub_8135EE8 thumb_func_start sub_8135FBC sub_8135FBC: @ 8135FBC ldr r1, _08135FCC ldr r0, _08135FD0 ldr r2, _08135FD4 adds r0, r2 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _08135FCC: .4byte gTrainerClassToPicIndex _08135FD0: .4byte gSaveBlock2 _08135FD4: .4byte 0x00000499 thumb_func_end sub_8135FBC thumb_func_start sub_8135FD8 sub_8135FD8: @ 8135FD8 ldr r1, _08135FE8 ldr r0, _08135FEC ldr r2, _08135FF0 adds r0, r2 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _08135FE8: .4byte gTrainerClassToNameIndex _08135FEC: .4byte gSaveBlock2 _08135FF0: .4byte 0x00000499 thumb_func_end sub_8135FD8 thumb_func_start sub_8135FF4 sub_8135FF4: @ 8135FF4 push {r4,lr} adds r3, r0, 0 movs r2, 0 ldr r4, _08136018 _08135FFC: adds r0, r3, r2 adds r1, r2, r4 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x6 ble _08135FFC adds r1, r3, r2 movs r0, 0xFF strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08136018: .4byte 0x02025340 thumb_func_end sub_8135FF4 thumb_func_start sub_813601C sub_813601C: @ 813601C push {r4,r5,lr} ldr r1, _08136044 movs r0, 0 strh r0, [r1] ldr r5, _08136048 movs r3, 0 movs r2, 0 adds r4, r1, 0 adds r1, r5, 0 _0813602E: ldm r1!, {r0} orrs r3, r0 adds r2, 0x1 cmp r2, 0x2D bls _0813602E cmp r3, 0 bne _0813604C movs r0, 0x1 strh r0, [r4] b _08136078 .align 2, 0 _08136044: .4byte 0x0202e8dc _08136048: .4byte 0x0202533c _0813604C: movs r3, 0 movs r2, 0 ldr r4, _08136080 adds r1, r5, 0 _08136054: ldm r1!, {r0} adds r3, r0 adds r2, 0x1 cmp r2, 0x2D bls _08136054 movs r1, 0xAA lsls r1, 3 adds r0, r4, r1 ldr r0, [r0] cmp r0, r3 beq _08136078 subs r1, 0xB8 adds r0, r4, r1 bl sub_81360AC ldr r1, _08136084 movs r0, 0x1 strh r0, [r1] _08136078: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08136080: .4byte gSaveBlock2 _08136084: .4byte 0x0202e8dc thumb_func_end sub_813601C thumb_func_start sub_8136088 sub_8136088: @ 8136088 push {r4,lr} adds r2, r0, 0 adds r2, 0xB8 movs r1, 0 str r1, [r2] movs r3, 0 adds r4, r0, 0 _08136096: ldr r0, [r2] ldm r4!, {r1} adds r0, r1 str r0, [r2] adds r3, 0x1 cmp r3, 0x2D bls _08136096 pop {r4} pop {r0} bx r0 thumb_func_end sub_8136088 thumb_func_start sub_81360AC sub_81360AC: @ 81360AC push {lr} movs r1, 0 movs r2, 0 _081360B2: stm r0!, {r2} adds r1, 0x1 cmp r1, 0x2E bls _081360B2 pop {r0} bx r0 thumb_func_end sub_81360AC thumb_func_start sub_81360C0 sub_81360C0: @ 81360C0 push {lr} ldr r0, _081360CC bl sub_813545C pop {r0} bx r0 .align 2, 0 _081360CC: .4byte 0x0202534c thumb_func_end sub_81360C0 thumb_func_start sub_81360D0 sub_81360D0: @ 81360D0 push {lr} ldr r0, _081360E4 ldrb r0, [r0] cmp r0, 0x3 bne _081360EC ldr r1, _081360E8 movs r0, 0xFF strb r0, [r1] b _08136102 .align 2, 0 _081360E4: .4byte 0x02024d26 _081360E8: .4byte 0x020234cc _081360EC: cmp r0, 0x1 bne _081360FC ldr r0, _081360F8 bl sub_813545C b _08136102 .align 2, 0 _081360F8: .4byte 0x02025364 _081360FC: ldr r0, _08136108 bl sub_813545C _08136102: pop {r0} bx r0 .align 2, 0 _08136108: .4byte 0x02025358 thumb_func_end sub_81360D0 thumb_func_start sub_813610C sub_813610C: @ 813610C push {r4,r5,lr} movs r4, 0 ldr r5, _0813612C _08136112: adds r0, r4, r5 ldrb r0, [r0] cmp r0, 0x1 bne _0813611E bl sub_80BFD20 _0813611E: adds r4, 0x1 cmp r4, 0x1 ble _08136112 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813612C: .4byte 0x020253fa thumb_func_end sub_813610C thumb_func_start sub_8136130 sub_8136130: @ 8136130 push {r4,r5,lr} ldr r4, _0813615C ldr r2, _08136160 ldr r3, [r2] ldr r5, _08136164 adds r2, r3, r5 str r2, [r4] str r0, [r2, 0x8] str r1, [r2, 0x4] ldr r0, _08136168 adds r3, r0 movs r0, 0x2 strb r0, [r3] ldr r0, _0813616C bl launch_c3_walk_stairs_and_run_once ldr r0, _08136170 bl SetMainCallback2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813615C: .4byte 0x02039304 _08136160: .4byte gUnknown_083DFEC4 _08136164: .4byte 0x0000d164 _08136168: .4byte 0x0000d162 _0813616C: .4byte sub_8136294 _08136170: .4byte sub_8136244 thumb_func_end sub_8136130 thumb_func_start sub_8136174 sub_8136174: @ 8136174 push {r4,r5,lr} ldr r5, _081361C4 ldr r1, [r5] ldr r0, _081361C8 ldr r0, [r0] str r0, [r1, 0x8] ldr r0, _081361CC ldr r0, [r0] str r0, [r1, 0x4] ldr r4, _081361D0 ldrb r0, [r4] bl sub_81370E4 strb r0, [r4] ldr r5, [r5] movs r1, 0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _0813619E movs r1, 0x1 _0813619E: adds r0, r5, 0 adds r0, 0x56 strb r1, [r0] ldr r0, _081361D4 ldr r0, [r0] ldr r1, _081361D8 adds r0, r1 movs r1, 0x2 strb r1, [r0] ldr r0, _081361DC bl launch_c3_walk_stairs_and_run_once ldr r0, _081361E0 bl SetMainCallback2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081361C4: .4byte 0x02039304 _081361C8: .4byte 0x0203930c _081361CC: .4byte 0x02039308 _081361D0: .4byte 0x02039310 _081361D4: .4byte gUnknown_083DFEC4 _081361D8: .4byte 0x0000d162 _081361DC: .4byte sub_8136294 _081361E0: .4byte sub_81361E4 thumb_func_end sub_8136174 thumb_func_start sub_81361E4 sub_81361E4: @ 81361E4 push {r4,lr} ldr r4, _08136220 ldr r0, [r4] ldr r0, [r0] bl _call_via_r0 bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade ldr r4, [r4] ldr r1, [r4] ldr r0, _08136224 cmp r1, r0 bne _0813621A movs r0, 0x80 lsls r0, 19 movs r1, 0 strh r1, [r0] adds r0, r4, 0 adds r0, 0x50 strb r1, [r0] ldr r0, _08136228 bl SetMainCallback2 _0813621A: pop {r4} pop {r0} bx r0 .align 2, 0 _08136220: .4byte 0x02039304 _08136224: .4byte sub_81365C8 _08136228: .4byte sub_813622C thumb_func_end sub_81361E4 thumb_func_start sub_813622C sub_813622C: @ 813622C push {lr} bl sub_81368A4 bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_813622C thumb_func_start sub_8136244 sub_8136244: @ 8136244 push {lr} ldr r0, _08136260 ldr r0, [r0] ldr r0, [r0] bl _call_via_r0 bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 .align 2, 0 _08136260: .4byte 0x02039304 thumb_func_end sub_8136244 thumb_func_start sub_8136264 sub_8136264: @ 8136264 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer movs r0, 0x6 bl sub_80F5CDC bl sub_8089668 pop {r0} bx r0 thumb_func_end sub_8136264 thumb_func_start launch_c3_walk_stairs_and_run_once launch_c3_walk_stairs_and_run_once: @ 8136280 ldr r1, _08136290 ldr r1, [r1] str r0, [r1] adds r1, 0x50 movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _08136290: .4byte 0x02039304 thumb_func_end launch_c3_walk_stairs_and_run_once thumb_func_start sub_8136294 sub_8136294: @ 8136294 push {r4,r5,lr} sub sp, 0x4 ldr r1, _081362B4 ldr r0, [r1] adds r0, 0x50 ldrb r0, [r0] adds r3, r1, 0 cmp r0, 0x16 bls _081362A8 b _0813657A _081362A8: lsls r0, 2 ldr r1, _081362B8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081362B4: .4byte 0x02039304 _081362B8: .4byte _081362BC .align 2, 0 _081362BC: .4byte _08136318 .4byte _08136354 .4byte _0813635E .4byte _08136366 .4byte _08136374 .4byte _08136380 .4byte _0813638C .4byte _081363B8 .4byte _081363C8 .4byte _081363DC .4byte _081363EE .4byte _08136404 .4byte _08136448 .4byte _08136464 .4byte _08136488 .4byte _08136494 .4byte _0813649A .4byte _081364D8 .4byte _081364FC .4byte _08136508 .4byte _08136520 .4byte _08136538 .4byte _0813656C _08136318: bl is_c1_link_related_active ldr r1, _08136344 ldr r1, [r1] ldr r2, _08136348 adds r1, r2 strb r0, [r1] lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _08136330 b _0813657A _08136330: ldr r4, _0813634C ldr r0, [r4] adds r0, 0x55 strb r1, [r0] ldr r0, _08136350 bl launch_c3_walk_stairs_and_run_once ldr r1, [r4] b _08136528 .align 2, 0 _08136344: .4byte gUnknown_083DFEC4 _08136348: .4byte 0x00006dac _0813634C: .4byte 0x02039304 _08136350: .4byte sub_81365A0 _08136354: bl ResetSpriteData bl FreeAllSpritePalettes b _08136524 _0813635E: movs r0, 0 bl SetVBlankCallback b _08136524 _08136366: ldr r0, _08136370 bl SetUpWindowConfig b _08136524 .align 2, 0 _08136370: .4byte gWindowConfig_81E7080 _08136374: ldr r0, _0813637C bl sub_8071C58 b _08136524 .align 2, 0 _0813637C: .4byte gWindowConfig_81E7080 _08136380: bl sub_8071C94 cmp r0, 0 bne _0813638A b _0813657A _0813638A: b _08136524 _0813638C: ldr r0, _081363AC ldr r1, [r0] ldr r4, _081363B0 adds r0, r1, r4 movs r2, 0 strb r2, [r0] ldr r4, _081363B4 adds r0, r1, r4 str r2, [r0] movs r0, 0xC3 lsls r0, 2 adds r1, r0 movs r0, 0x20 strh r0, [r1] ldr r1, [r3] b _08136528 .align 2, 0 _081363AC: .4byte gUnknown_083DFEC4 _081363B0: .4byte 0x000076aa _081363B4: .4byte 0x000087e0 _081363B8: bl sub_80F2688 ldr r0, _081363D8 ldr r1, [r0] adds r1, 0x50 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _081363C8: bl sub_80F26BC lsls r0, 24 cmp r0, 0 beq _081363D4 b _0813657A _081363D4: b _08136524 .align 2, 0 _081363D8: .4byte 0x02039304 _081363DC: movs r0, 0x1 bl sub_80F2C80 ldr r0, _08136400 ldr r1, [r0] adds r1, 0x50 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _081363EE: movs r0, 0x1 bl sub_80F2CBC lsls r0, 24 cmp r0, 0 beq _081363FC b _0813657A _081363FC: b _08136524 .align 2, 0 _08136400: .4byte 0x02039304 _08136404: ldr r1, _08136434 movs r0, 0x14 strh r0, [r1] bl calc_player_party_count ldr r1, _08136438 ldr r4, [r1] ldr r2, _0813643C adds r1, r4, r2 movs r5, 0 strb r0, [r1] ldr r1, _08136440 adds r0, r4, r1 strb r5, [r0] subs r2, 0xC0 adds r0, r4, r2 str r5, [r0] bl sub_80F4BD0 ldr r0, _08136444 adds r4, r0 strh r5, [r4] b _08136524 .align 2, 0 _08136434: .4byte 0x03001760 _08136438: .4byte gUnknown_083DFEC4 _0813643C: .4byte 0x00008828 _08136440: .4byte 0x00009344 _08136444: .4byte 0x0000d160 _08136448: bl sub_80F1778 lsls r0, 24 cmp r0, 0 beq _08136454 b _0813657A _08136454: ldr r0, _08136460 movs r1, 0x6 strh r1, [r0] adds r0, 0x4 strh r1, [r0] b _08136524 .align 2, 0 _08136460: .4byte REG_BG2VOFS _08136464: movs r0, 0 bl sub_80F2E18 ldr r0, _0813647C ldr r0, [r0] ldr r1, _08136480 adds r0, r1 ldr r1, [r0] ldr r0, _08136484 strh r0, [r1, 0x26] b _08136524 .align 2, 0 _0813647C: .4byte gUnknown_083DFEC4 _08136480: .4byte 0x00008768 _08136484: .4byte 0x0000ffd8 _08136488: bl sub_80F170C lsls r0, 24 cmp r0, 0 bne _0813657A b _08136524 _08136494: bl sub_80F33A8 b _08136524 _0813649A: ldr r1, _081364C4 movs r2, 0 str r2, [sp] ldr r0, _081364C8 mov r4, sp str r4, [r0] str r1, [r0, 0x4] ldr r1, _081364CC str r1, [r0, 0x8] ldr r0, [r0, 0x8] ldr r0, _081364D0 strh r2, [r0] subs r0, 0x2 strh r2, [r0] ldr r1, _081364D4 movs r2, 0xF8 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r1, [r3] b _08136528 .align 2, 0 _081364C4: .4byte 0x0600f800 _081364C8: .4byte 0x040000d4 _081364CC: .4byte 0x85000200 _081364D0: .4byte REG_BG1VOFS _081364D4: .4byte REG_BG1CNT _081364D8: ldr r0, _081364F0 ldr r1, [r0] ldr r4, _081364F4 adds r0, r1, r4 ldr r2, _081364F8 adds r1, r2 bl sub_80F567C bl sub_80F5B38 b _08136524 .align 2, 0 _081364F0: .4byte gUnknown_083DFEC4 _081364F4: .4byte 0x00008ff0 _081364F8: .4byte 0x00009004 _081364FC: bl sub_80F5B50 lsls r0, 24 cmp r0, 0 bne _0813657A b _08136524 _08136508: ldr r0, _08136518 ldr r0, [r0] ldr r4, _0813651C adds r0, r4 bl sub_80F556C b _08136524 .align 2, 0 _08136518: .4byte gUnknown_083DFEC4 _0813651C: .4byte 0x00009004 _08136520: bl sub_80F1934 _08136524: ldr r0, _08136534 ldr r1, [r0] _08136528: adds r1, 0x50 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0813657A .align 2, 0 _08136534: .4byte 0x02039304 _08136538: ldr r1, _08136584 movs r0, 0xF0 strh r0, [r1] adds r1, 0x2 movs r0, 0x9B strh r0, [r1] ldr r0, _08136588 ldr r2, _0813658C adds r1, r2, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _08136590 ldr r4, _08136594 adds r0, r4, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x1B strh r0, [r1] subs r1, 0x38 movs r0, 0x28 strh r0, [r1] subs r1, 0x12 ldr r2, _08136598 adds r0, r2, 0 strh r0, [r1] _0813656C: ldr r0, [r3] adds r0, 0x55 movs r1, 0x1 strb r1, [r0] ldr r0, _0813659C bl launch_c3_walk_stairs_and_run_once _0813657A: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08136584: .4byte REG_WIN0H _08136588: .4byte REG_WIN0V _0813658C: .4byte 0x00003273 _08136590: .4byte REG_WININ _08136594: .4byte 0x00003f3f _08136598: .4byte 0x00007f40 _0813659C: .4byte sub_81365C8 thumb_func_end sub_8136294 thumb_func_start sub_81365A0 sub_81365A0: @ 81365A0 push {r4,lr} ldr r1, _081365C4 ldr r0, [r1] adds r0, 0x55 ldrb r0, [r0] cmp r0, 0 bne _081365BE adds r4, r1, 0 _081365B0: bl sub_8136294 ldr r0, [r4] adds r0, 0x55 ldrb r0, [r0] cmp r0, 0 beq _081365B0 _081365BE: pop {r4} pop {r0} bx r0 .align 2, 0 _081365C4: .4byte 0x02039304 thumb_func_end sub_81365A0 thumb_func_start sub_81365C8 sub_81365C8: @ 81365C8 push {r4,lr} sub sp, 0x4 ldr r4, _081365E0 ldr r0, [r4] adds r0, 0x50 ldrb r1, [r0] cmp r1, 0 beq _081365E4 cmp r1, 0x1 beq _0813660C b _08136626 .align 2, 0 _081365E0: .4byte 0x02039304 _081365E4: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _08136608 bl SetVBlankCallback ldr r1, [r4] adds r1, 0x50 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08136626 .align 2, 0 _08136608: .4byte sub_8136264 _0813660C: ldr r0, _08136630 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08136626 bl sub_80F3C94 bl sub_80F3D00 ldr r0, _08136634 bl launch_c3_walk_stairs_and_run_once _08136626: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08136630: .4byte 0x0202f388 _08136634: .4byte sub_8136638 thumb_func_end sub_81365C8 thumb_func_start sub_8136638 sub_8136638: @ 8136638 push {r4,lr} ldr r0, _08136654 ldr r0, [r0] adds r0, 0x50 ldrb r0, [r0] cmp r0, 0x7 bls _08136648 b _081367FA _08136648: lsls r0, 2 ldr r1, _08136658 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08136654: .4byte 0x02039304 _08136658: .4byte _0813665C .align 2, 0 _0813665C: .4byte _0813667C .4byte _08136748 .4byte _08136754 .4byte _08136774 .4byte _081367FA .4byte _08136780 .4byte _08136798 .4byte _081367E0 _0813667C: ldr r2, _081366A4 ldrh r1, [r2, 0x2C] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _081366AC movs r0, 0x5 bl audio_play movs r0, 0x1 bl sub_80F5060 bl move_anim_execute ldr r0, _081366A8 ldr r0, [r0] adds r0, 0x50 movs r1, 0x1 b _081367F8 .align 2, 0 _081366A4: .4byte 0x03001770 _081366A8: .4byte 0x02039304 _081366AC: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081366D4 movs r0, 0x5 bl audio_play movs r0, 0 bl sub_80F5060 bl move_anim_execute ldr r0, _081366D0 ldr r0, [r0] adds r0, 0x50 movs r1, 0x1 b _081367F8 .align 2, 0 _081366D0: .4byte 0x02039304 _081366D4: ldrh r1, [r2, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081366F4 movs r0, 0x5 bl audio_play ldr r0, _081366F0 ldr r0, [r0] adds r0, 0x50 movs r1, 0x3 b _081367F8 .align 2, 0 _081366F0: .4byte 0x02039304 _081366F4: movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081366FE b _081367FA _081366FE: movs r0, 0x5 bl audio_play ldr r0, _08136728 ldr r0, [r0] ldr r2, _0813672C adds r1, r0, r2 movs r2, 0 ldrsh r1, [r1, r2] ldr r2, _08136730 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] subs r0, 0x1 cmp r1, r0 bne _08136738 ldr r0, _08136734 ldr r0, [r0] adds r0, 0x50 movs r1, 0x3 b _081367F8 .align 2, 0 _08136728: .4byte gUnknown_083DFEC4 _0813672C: .4byte 0x000087dc _08136730: .4byte 0x000087da _08136734: .4byte 0x02039304 _08136738: ldr r0, _08136744 ldr r0, [r0] adds r0, 0x50 movs r1, 0x5 b _081367F8 .align 2, 0 _08136744: .4byte 0x02039304 _08136748: bl gpu_sync_bg_show lsls r0, 24 cmp r0, 0 bne _081367FA b _08136784 _08136754: bl sub_8055870 adds r4, r0, 0 cmp r4, 0 bne _081367FA bl sub_80F1934 bl sub_80F3D00 ldr r0, _08136770 ldr r0, [r0] adds r0, 0x50 strb r4, [r0] b _081367FA .align 2, 0 _08136770: .4byte 0x02039304 _08136774: ldr r0, _0813677C bl launch_c3_walk_stairs_and_run_once b _081367FA .align 2, 0 _0813677C: .4byte sub_8136B44 _08136780: bl sub_8136BB8 _08136784: ldr r0, _08136794 ldr r1, [r0] adds r1, 0x50 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _081367FA .align 2, 0 _08136794: .4byte 0x02039304 _08136798: bl sub_8136C40 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081367B8 cmp r1, 0 bgt _081367B2 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081367F0 b _081367FA _081367B2: cmp r1, 0x1 bne _081367FA b _081367F0 _081367B8: bl sub_8137058 lsls r0, 24 cmp r0, 0 beq _081367D4 bl sub_8136D60 ldr r0, _081367D0 ldr r0, [r0] adds r0, 0x50 movs r1, 0x7 b _081367F8 .align 2, 0 _081367D0: .4byte 0x02039304 _081367D4: ldr r0, _081367DC bl launch_c3_walk_stairs_and_run_once b _081367FA .align 2, 0 _081367DC: .4byte sub_8136808 _081367E0: ldr r0, _08136800 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _081367FA bl sub_8136D8C _081367F0: ldr r0, _08136804 ldr r0, [r0] adds r0, 0x50 movs r1, 0 _081367F8: strb r1, [r0] _081367FA: pop {r4} pop {r0} bx r0 .align 2, 0 _08136800: .4byte 0x03001770 _08136804: .4byte 0x02039304 thumb_func_end sub_8136638 thumb_func_start sub_8136808 sub_8136808: @ 8136808 push {r4,r5,lr} sub sp, 0x4 ldr r5, _08136820 ldr r0, [r5] adds r0, 0x50 ldrb r4, [r0] cmp r4, 0 beq _08136824 cmp r4, 0x1 beq _08136874 b _0813688C .align 2, 0 _08136820: .4byte 0x02039304 _08136824: ldr r0, _08136860 ldr r0, [r0] ldr r1, _08136864 adds r0, r1 ldrb r0, [r0] bl sub_81370A4 ldr r1, _08136868 strb r0, [r1] ldr r1, _0813686C ldr r2, [r5] ldr r0, [r2, 0x4] str r0, [r1] ldr r1, _08136870 ldr r0, [r2, 0x8] str r0, [r1] movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, [r5] adds r1, 0x50 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0813688C .align 2, 0 _08136860: .4byte gUnknown_083DFEC4 _08136864: .4byte 0x000087dc _08136868: .4byte 0x02039310 _0813686C: .4byte 0x02039308 _08136870: .4byte 0x0203930c _08136874: ldr r0, _08136894 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0813688C ldr r0, _08136898 ldr r1, _0813689C str r1, [r0, 0x8] ldr r0, _081368A0 bl SetMainCallback2 _0813688C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08136894: .4byte 0x0202f388 _08136898: .4byte 0x03001770 _0813689C: .4byte sub_8136174 _081368A0: .4byte sub_8147ADC thumb_func_end sub_8136808 thumb_func_start sub_81368A4 sub_81368A4: @ 81368A4 push {r4,lr} sub sp, 0x4 ldr r1, _081368C4 ldr r0, [r1] adds r0, 0x50 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0x6 bls _081368B8 b _081369B8 _081368B8: lsls r0, 2 ldr r1, _081368C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081368C4: .4byte 0x02039304 _081368C8: .4byte _081368CC .align 2, 0 _081368CC: .4byte _081368E8 .4byte _08136922 .4byte _0813692E .4byte _0813694C .4byte _0813695A .4byte _0813696C .4byte _08136998 _081368E8: ldr r0, _0813690C ldr r0, [r0] ldr r1, _08136910 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] ldr r0, _08136914 ldrb r0, [r0] cmp r1, r0 beq _08136918 ldr r0, [r4] adds r0, 0x56 ldrb r0, [r0] bl sub_80F5060 ldr r1, [r4] b _08136986 .align 2, 0 _0813690C: .4byte gUnknown_083DFEC4 _08136910: .4byte 0x000087dc _08136914: .4byte 0x02039310 _08136918: ldr r0, [r4] adds r0, 0x50 movs r1, 0x3 strb r1, [r0] b _081369B8 _08136922: bl gpu_sync_bg_show lsls r0, 24 cmp r0, 0 bne _081369B8 b _08136982 _0813692E: bl sub_8055870 adds r4, r0, 0 cmp r4, 0 bne _081369B8 bl sub_80F1934 ldr r0, _08136948 ldr r0, [r0] adds r0, 0x50 strb r4, [r0] b _081369B8 .align 2, 0 _08136948: .4byte 0x02039304 _0813694C: movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes b _08136982 _0813695A: movs r1, 0x80 lsls r1, 19 ldr r2, _08136968 adds r0, r2, 0 strh r0, [r1] ldr r1, [r4] b _08136986 .align 2, 0 _08136968: .4byte 0x00007f40 _0813696C: ldr r0, _08136990 bl SetVBlankCallback movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade _08136982: ldr r0, _08136994 ldr r1, [r0] _08136986: adds r1, 0x50 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _081369B8 .align 2, 0 _08136990: .4byte sub_8136264 _08136994: .4byte 0x02039304 _08136998: ldr r0, _081369C0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081369B8 bl sub_80F3C94 bl sub_80F3D00 ldr r0, _081369C4 bl launch_c3_walk_stairs_and_run_once ldr r0, _081369C8 bl SetMainCallback2 _081369B8: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _081369C0: .4byte 0x0202f388 _081369C4: .4byte sub_81369CC _081369C8: .4byte sub_8136244 thumb_func_end sub_81368A4 thumb_func_start sub_81369CC sub_81369CC: @ 81369CC push {r4-r6,lr} ldr r1, _081369E8 ldr r0, [r1] adds r0, 0x50 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0x5 bls _081369DE b _08136B32 _081369DE: lsls r0, 2 ldr r1, _081369EC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081369E8: .4byte 0x02039304 _081369EC: .4byte _081369F0 .align 2, 0 _081369F0: .4byte _08136A08 .4byte _08136A48 .4byte _08136A5C .4byte _08136AAC .4byte _08136AEC .4byte _08136B0E _08136A08: ldr r3, [r4] ldr r2, _08136A38 str r2, [r3, 0xC] ldr r0, _08136A3C ldr r1, [r0] ldr r5, _08136A40 adds r0, r1, r5 movs r5, 0 ldrsh r0, [r0, r5] lsls r0, 2 adds r1, r0 ldr r0, _08136A44 adds r1, r0 ldrb r0, [r1] lsls r0, 27 lsrs r0, 27 movs r1, 0x64 muls r0, r1 adds r0, r2 str r0, [r3, 0xC] bl move_anim_execute b _08136B02 .align 2, 0 _08136A38: .4byte 0x03004360 _08136A3C: .4byte gUnknown_083DFEC4 _08136A40: .4byte 0x000087dc _08136A44: .4byte 0x0000893e _08136A48: ldr r0, _08136A58 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08136B32 b _08136B02 .align 2, 0 _08136A58: .4byte 0x03001770 _08136A5C: bl sub_8136EF0 ldr r6, _08136A98 ldr r0, [r6] adds r0, 0x5C ldr r1, _08136A9C ldr r4, [r1] ldr r1, _08136AA0 adds r5, r4, r1 adds r1, r5, 0 bl sub_80F567C ldr r1, _08136AA4 adds r0, r4, r1 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r1, _08136AA8 adds r0, r1 adds r4, r0 adds r0, r4, 0 adds r1, r5, 0 bl sub_80F5550 bl sub_8137138 ldr r1, [r6] b _08136B04 .align 2, 0 _08136A98: .4byte 0x02039304 _08136A9C: .4byte gUnknown_083DFEC4 _08136AA0: .4byte 0x00009040 _08136AA4: .4byte 0x00008fe9 _08136AA8: .4byte 0x00009004 _08136AAC: bl sub_80F555C lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08136B32 ldr r0, _08136AE0 ldr r0, [r0] ldr r5, _08136AE4 adds r0, r5 ldrb r0, [r0] bl sub_81370A4 lsls r0, 24 lsrs r0, 24 bl sub_80F7224 bl sub_80F3D00 ldr r1, _08136AE8 ldr r0, [r1] adds r0, 0x52 strb r4, [r0] ldr r1, [r1] b _08136B04 .align 2, 0 _08136AE0: .4byte gUnknown_083DFEC4 _08136AE4: .4byte 0x000087dc _08136AE8: .4byte 0x02039304 _08136AEC: ldr r1, [r4] adds r1, 0x52 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x10 bls _08136B32 bl sub_8136C6C _08136B02: ldr r1, [r4] _08136B04: adds r1, 0x50 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08136B32 _08136B0E: ldr r0, _08136B38 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08136B32 bl sub_8136D00 lsls r0, 24 cmp r0, 0 bne _08136B32 ldr r0, _08136B3C ldrb r0, [r0] bl sub_810CA6C ldr r0, _08136B40 bl launch_c3_walk_stairs_and_run_once _08136B32: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08136B38: .4byte 0x03001770 _08136B3C: .4byte 0x0203855e _08136B40: .4byte sub_8136B44 thumb_func_end sub_81369CC thumb_func_start sub_8136B44 sub_8136B44: @ 8136B44 push {r4,lr} sub sp, 0x4 ldr r4, _08136B60 ldr r0, [r4] adds r2, r0, 0 adds r2, 0x50 ldrb r1, [r2] cmp r1, 0x1 beq _08136B80 cmp r1, 0x1 bgt _08136B64 cmp r1, 0 beq _08136B6E b _08136BAE .align 2, 0 _08136B60: .4byte 0x02039304 _08136B64: cmp r1, 0x2 beq _08136B98 cmp r1, 0x3 beq _08136BA8 b _08136BAE _08136B6E: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _08136B9C _08136B80: ldr r0, _08136B94 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08136BAE movs r0, 0x2 strb r0, [r2] b _08136BAE .align 2, 0 _08136B94: .4byte 0x0202f388 _08136B98: bl sub_80F5BDC _08136B9C: ldr r1, [r4] adds r1, 0x50 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08136BAE _08136BA8: ldr r0, [r0, 0x4] bl SetMainCallback2 _08136BAE: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8136B44 thumb_func_start sub_8136BB8 sub_8136BB8: @ 8136BB8 push {r4,lr} ldr r0, _08136C28 ldr r0, [r0] ldr r1, _08136C2C adds r0, r1 ldrb r0, [r0] bl sub_81370A4 lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _08136C30 adds r0, r1 ldr r4, _08136C34 ldr r2, [r4] adds r2, 0x10 movs r1, 0x2 bl PokemonGetField ldr r0, [r4] adds r0, 0x10 bl StringGetEnd10 ldr r0, [r4] adds r0, 0x10 ldr r1, _08136C38 bl StringAppend ldr r0, _08136C3C bl sub_8071E2C movs r0, 0 movs r1, 0x10 movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow ldr r0, [r4] adds r0, 0x10 movs r1, 0x1 movs r2, 0x11 bl Print movs r0, 0x17 movs r1, 0xA movs r2, 0x1 bl sub_8072974 movs r0, 0 bl MoveMenuCursor pop {r4} pop {r0} bx r0 .align 2, 0 _08136C28: .4byte gUnknown_083DFEC4 _08136C2C: .4byte 0x000087dc _08136C30: .4byte 0x03004360 _08136C34: .4byte 0x02039304 _08136C38: .4byte gUnknown_08411581 _08136C3C: .4byte gWindowConfig_81E709C thumb_func_end sub_8136BB8 thumb_func_start sub_8136C40 sub_8136C40: @ 8136C40 push {r4,lr} bl ProcessMenuInputNoWrap lsls r0, 24 asrs r4, r0, 24 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r0, 24 cmp r0, 0x2 bhi _08136C60 bl sub_8071EF4 ldr r0, _08136C68 bl sub_8071E2C _08136C60: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08136C68: .4byte gWindowConfig_81E7080 thumb_func_end sub_8136C40 thumb_func_start sub_8136C6C sub_8136C6C: @ 8136C6C push {lr} ldr r0, _08136C8C bl sub_8071E2C movs r0, 0 movs r1, 0x10 movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow ldr r3, _08136C90 ldr r0, [r3] adds r0, 0x53 movs r1, 0 b _08136C9C .align 2, 0 _08136C8C: .4byte gWindowConfig_81E709C _08136C90: .4byte 0x02039304 _08136C94: ldr r0, [r3] adds r0, 0x53 ldrb r1, [r0] adds r1, 0x1 _08136C9C: strb r1, [r0] ldr r2, [r3] adds r1, r2, 0 adds r1, 0x53 ldrb r0, [r1] cmp r0, 0x4 bhi _08136CDC adds r0, r2, 0 adds r0, 0x61 ldrb r1, [r1] adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08136C94 ldr r0, _08136CD8 ldr r2, [r0] adds r1, r2, 0 adds r1, 0x53 ldrb r0, [r1] cmp r0, 0x4 bhi _08136CDC adds r0, r2, 0 adds r0, 0x10 ldrb r1, [r1] adds r2, 0x61 adds r2, r1 ldrb r2, [r2] bl sub_8136DC0 b _08136CEE .align 2, 0 _08136CD8: .4byte 0x02039304 _08136CDC: ldr r0, _08136CFC ldr r1, [r0] adds r0, r1, 0 adds r0, 0x10 adds r1, 0x53 ldrb r1, [r1] movs r2, 0 bl sub_8136DC0 _08136CEE: ldr r0, _08136CFC ldr r0, [r0] adds r0, 0x10 bl sub_8136DA0 pop {r0} bx r0 .align 2, 0 _08136CFC: .4byte 0x02039304 thumb_func_end sub_8136C6C thumb_func_start sub_8136D00 sub_8136D00: @ 8136D00 push {r4,r5,lr} ldr r4, _08136D30 adds r3, r4, 0 movs r5, 0x5 _08136D08: ldr r0, [r3] adds r0, 0x53 ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] ldr r2, [r3] adds r1, r2, 0 adds r1, 0x53 ldrb r0, [r1] cmp r0, 0x4 bhi _08136D34 adds r0, r2, 0 adds r0, 0x61 ldrb r1, [r1] adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08136D3A b _08136D08 .align 2, 0 _08136D30: .4byte 0x02039304 _08136D34: strb r5, [r1] movs r0, 0 b _08136D5A _08136D3A: ldr r2, [r4] adds r0, r2, 0 adds r0, 0x10 adds r1, r2, 0 adds r1, 0x53 ldrb r1, [r1] adds r2, 0x61 adds r2, r1 ldrb r2, [r2] bl sub_8136DC0 ldr r0, [r4] adds r0, 0x10 bl sub_8136DA0 movs r0, 0x1 _08136D5A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8136D00 thumb_func_start sub_8136D60 sub_8136D60: @ 8136D60 push {lr} ldr r0, _08136D84 bl sub_8071E2C movs r0, 0 movs r1, 0x10 movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow ldr r0, _08136D88 movs r1, 0x1 movs r2, 0x11 bl Print pop {r0} bx r0 .align 2, 0 _08136D84: .4byte gWindowConfig_81E709C _08136D88: .4byte gUnknown_084115E1 thumb_func_end sub_8136D60 thumb_func_start sub_8136D8C sub_8136D8C: @ 8136D8C push {lr} bl sub_8071EF4 ldr r0, _08136D9C bl sub_8071E2C pop {r0} bx r0 .align 2, 0 _08136D9C: .4byte gWindowConfig_81E7080 thumb_func_end sub_8136D8C thumb_func_start sub_8136DA0 sub_8136DA0: @ 8136DA0 push {r4,lr} adds r4, r0, 0 movs r0, 0 movs r1, 0x10 movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow adds r0, r4, 0 movs r1, 0x1 movs r2, 0x11 bl Print pop {r4} pop {r0} bx r0 thumb_func_end sub_8136DA0 thumb_func_start sub_8136DC0 sub_8136DC0: @ 8136DC0 push {r4,lr} adds r4, r0, 0 lsls r1, 24 lsrs r3, r1, 24 lsls r2, 16 lsrs r0, r2, 16 asrs r2, 16 cmp r2, 0 beq _08136DFC cmp r2, 0 ble _08136DD8 movs r0, 0 _08136DD8: lsls r0, 16 ldr r1, _08136DF4 lsls r0, r3, 2 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl StringCopy ldr r1, _08136DF8 adds r0, r4, 0 bl StringAppend b _08136E04 .align 2, 0 _08136DF4: .4byte gUnknown_08406134 _08136DF8: .4byte gUnknown_084115C2 _08136DFC: ldr r1, _08136E0C adds r0, r4, 0 bl StringCopy _08136E04: pop {r4} pop {r0} bx r0 .align 2, 0 _08136E0C: .4byte gUnknown_084115D0 thumb_func_end sub_8136DC0 thumb_func_start sub_8136E10 sub_8136E10: @ 8136E10 push {r4-r7,lr} adds r6, r0, 0 adds r5, r1, 0 movs r4, 0 ldr r7, _08136E3C _08136E1A: lsls r0, r4, 2 adds r0, r7 ldr r1, [r0] adds r0, r6, 0 bl PokemonGetField adds r1, r5, r4 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _08136E1A pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08136E3C: .4byte gUnknown_08406118 thumb_func_end sub_8136E10 thumb_func_start sub_8136E40 sub_8136E40: @ 8136E40 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 mov r8, r0 adds r5, r1, 0 adds r0, r5, 0 movs r1, 0x30 bl PokemonGetField cmp r0, 0xFF beq _08136EDC mov r0, r8 adds r1, r5, 0 bl sub_8136F74 movs r4, 0 mov r7, sp _08136E64: ldr r1, _08136EE8 lsls r0, r4, 2 adds r0, r1 ldr r6, [r0] adds r0, r5, 0 adds r1, r6, 0 bl PokemonGetField lsls r0, 24 lsrs r0, 24 strb r0, [r7] ldr r1, _08136EEC ldr r1, [r1] lsls r2, r4, 1 adds r1, 0x66 adds r1, r2 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r1, r0, 16 cmp r0, 0 bge _08136E92 movs r1, 0 _08136E92: lsls r0, r1, 16 asrs r0, 16 cmp r0, 0xFF ble _08136E9C movs r1, 0xFF _08136E9C: strb r1, [r7] adds r0, r5, 0 adds r1, r6, 0 mov r2, sp bl pokemon_setattr adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _08136E64 adds r0, r5, 0 movs r1, 0x30 bl PokemonGetField lsls r0, 24 lsrs r0, 24 mov r2, r8 ldrb r2, [r2, 0x6] adds r1, r0, r2 lsls r0, r1, 16 asrs r0, 16 cmp r0, 0xFF ble _08136ECE movs r1, 0xFF _08136ECE: mov r0, sp strb r1, [r0] adds r0, r5, 0 movs r1, 0x30 mov r2, sp bl pokemon_setattr _08136EDC: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08136EE8: .4byte gUnknown_08406118 _08136EEC: .4byte 0x02039304 thumb_func_end sub_8136E40 thumb_func_start sub_8136EF0 sub_8136EF0: @ 8136EF0 push {r4,r5,lr} ldr r5, _08136F60 ldr r0, _08136F64 ldr r1, [r0] ldr r2, _08136F68 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] lsls r0, 2 adds r1, r0 ldr r0, _08136F6C adds r1, r0 ldrb r0, [r1] lsls r0, 27 lsrs r0, 27 movs r1, 0x64 muls r0, r1 adds r5, r0, r5 ldr r4, _08136F70 ldr r1, [r4] adds r1, 0x57 adds r0, r5, 0 bl sub_8136E10 ldr r0, [r4] ldr r0, [r0, 0x8] adds r1, r5, 0 bl sub_8136E40 ldr r1, [r4] adds r1, 0x5C adds r0, r5, 0 bl sub_8136E10 movs r3, 0 _08136F36: ldr r0, [r4] adds r2, r0, 0 adds r2, 0x61 adds r2, r3 adds r1, r0, 0 adds r1, 0x5C adds r1, r3 adds r0, 0x57 adds r0, r3 ldrb r1, [r1] ldrb r0, [r0] subs r1, r0 strb r1, [r2] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x4 bls _08136F36 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08136F60: .4byte 0x03004360 _08136F64: .4byte gUnknown_083DFEC4 _08136F68: .4byte 0x000087dc _08136F6C: .4byte 0x0000893e _08136F70: .4byte 0x02039304 thumb_func_end sub_8136EF0 thumb_func_start sub_8136F74 sub_8136F74: @ 8136F74 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r10, r1 ldr r1, _08136FBC ldr r3, [r1] ldrb r1, [r0, 0x1] adds r2, r3, 0 adds r2, 0x66 strh r1, [r2] ldrb r2, [r0, 0x5] adds r1, r3, 0 adds r1, 0x68 strh r2, [r1] ldrb r1, [r0, 0x4] adds r2, r3, 0 adds r2, 0x6A strh r1, [r2] ldrb r2, [r0, 0x3] adds r1, r3, 0 adds r1, 0x6C strh r2, [r1] ldrb r1, [r0, 0x2] adds r0, r3, 0 adds r0, 0x6E strh r1, [r0] ldr r0, _08136FC0 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 ble _08136FC4 movs r0, 0x1 b _08136FCA .align 2, 0 _08136FBC: .4byte 0x02039304 _08136FC0: .4byte 0x02039312 _08136FC4: cmp r0, 0 bge _08137040 movs r0, 0xFF _08136FCA: movs r2, 0 lsls r0, 24 mov r9, r0 ldr r0, _08137050 mov r8, r0 _08136FD4: mov r0, r8 ldr r1, [r0] lsls r0, r2, 24 asrs r6, r0, 24 lsls r7, r6, 1 adds r1, 0x66 adds r1, r7 movs r2, 0 ldrsh r4, [r1, r2] adds r0, r4, 0 movs r1, 0xA bl __divsi3 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 movs r1, 0xA bl __modsi3 lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _0813700C lsls r0, r5, 24 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r5, r0, 24 _0813700C: ldr r0, _08137054 adds r0, r6, r0 ldrb r1, [r0] mov r0, r10 bl sub_8040A54 lsls r0, 24 asrs r2, r0, 24 cmp r0, r9 bne _08137034 mov r1, r8 ldr r0, [r1] adds r0, 0x66 adds r0, r7 lsls r1, r5, 24 asrs r1, 24 muls r1, r2 ldrh r2, [r0] adds r1, r2 strh r1, [r0] _08137034: adds r0, r6, 0x1 lsls r0, 24 lsrs r2, r0, 24 asrs r0, 24 cmp r0, 0x4 ble _08136FD4 _08137040: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08137050: .4byte 0x02039304 _08137054: .4byte gUnknown_0840612C thumb_func_end sub_8136F74 thumb_func_start sub_8137058 sub_8137058: @ 8137058 push {lr} ldr r0, _0813708C ldr r1, _08137090 ldr r2, [r1] ldr r3, _08137094 adds r1, r2, r3 movs r3, 0 ldrsh r1, [r1, r3] lsls r1, 2 adds r2, r1 ldr r1, _08137098 adds r2, r1 ldrb r1, [r2] lsls r1, 27 lsrs r1, 27 movs r2, 0x64 muls r1, r2 adds r0, r1, r0 movs r1, 0x30 bl PokemonGetField cmp r0, 0xFF beq _0813709C movs r0, 0 b _0813709E .align 2, 0 _0813708C: .4byte 0x03004360 _08137090: .4byte gUnknown_083DFEC4 _08137094: .4byte 0x000087dc _08137098: .4byte 0x0000893e _0813709C: movs r0, 0x1 _0813709E: pop {r1} bx r1 thumb_func_end sub_8137058 thumb_func_start sub_81370A4 sub_81370A4: @ 81370A4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 _081370AC: movs r0, 0x64 muls r0, r4 ldr r1, _081370C8 adds r0, r1 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _081370D2 cmp r5, 0 bne _081370CC adds r0, r4, 0 b _081370DE .align 2, 0 _081370C8: .4byte 0x03004360 _081370CC: subs r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _081370D2: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _081370AC movs r0, 0 _081370DE: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81370A4 thumb_func_start sub_81370E4 sub_81370E4: @ 81370E4 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 movs r6, 0 cmp r6, r5 bcs _08137114 _081370F2: movs r0, 0x64 muls r0, r4 ldr r1, _08137120 adds r0, r1 movs r1, 0x2D bl PokemonGetField cmp r0, 0 beq _0813710A adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0813710A: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _081370F2 _08137114: subs r0, r5, r6 lsls r0, 24 lsrs r0, 24 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08137120: .4byte 0x03004360 thumb_func_end sub_81370E4 thumb_func_start sub_8137124 sub_8137124: @ 8137124 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_81370A4 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_8137124 thumb_func_start sub_8137138 sub_8137138: @ 8137138 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _081371C0 bl LoadSpriteSheet ldr r0, _081371C4 bl LoadSpritePalette ldr r2, _081371C8 ldr r0, [r2] adds r0, 0x54 movs r1, 0 strb r1, [r0] movs r4, 0 adds r5, r2, 0 ldr r6, _081371CC adds r0, r6, 0x2 mov r8, r0 ldr r7, _081371D0 _08137160: ldr r0, [r5] adds r0, 0x61 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _081371AC lsls r2, r4, 2 adds r0, r2, r6 movs r3, 0 ldrsh r1, [r0, r3] add r2, r8 movs r0, 0 ldrsh r2, [r2, r0] ldr r0, _081371D4 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _081371AC ldr r0, [r5] adds r0, 0x61 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _081371A2 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldr r1, _081371D8 str r1, [r0] _081371A2: ldr r1, [r5] adds r1, 0x54 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _081371AC: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _08137160 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081371C0: .4byte gUnknown_08406148 _081371C4: .4byte gUnknown_08406150 _081371C8: .4byte 0x02039304 _081371CC: .4byte gUnknown_08406158 _081371D0: .4byte 0x02020020 _081371D4: .4byte gSpriteTemplate_840618C _081371D8: .4byte sub_81371DC thumb_func_end sub_8137138 thumb_func_start sub_81371DC sub_81371DC: @ 81371DC push {lr} adds r1, r0, 0 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0x5 bgt _081371EE ldrh r0, [r1, 0x26] subs r0, 0x2 b _081371F6 _081371EE: cmp r0, 0xB bgt _081371F8 ldrh r0, [r1, 0x26] adds r0, 0x2 _081371F6: strh r0, [r1, 0x26] _081371F8: ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C ble _08137218 adds r0, r1, 0 bl DestroySprite ldr r0, _0813721C ldr r1, [r0] adds r1, 0x54 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] _08137218: pop {r0} bx r0 .align 2, 0 _0813721C: .4byte 0x02039304 thumb_func_end sub_81371DC thumb_func_start unref_sub_8137220 unref_sub_8137220: @ 8137220 bx lr thumb_func_end unref_sub_8137220 thumb_func_start sub_8137224 sub_8137224: @ 8137224 ldr r1, _08137250 ldr r0, _08137254 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _08137258 str r1, [r0] ldr r1, _0813725C ldr r2, _08137260 adds r0, r1, r2 movs r2, 0 strb r2, [r0] ldr r3, _08137264 adds r0, r1, r3 strb r2, [r0] adds r3, 0x1 adds r0, r1, r3 strb r2, [r0] ldr r0, _08137268 adds r1, r0 strb r2, [r1] bx lr .align 2, 0 _08137250: .4byte 0x03004330 _08137254: .4byte 0x02024a60 _08137258: .4byte sub_813726C _0813725C: .4byte 0x02000000 _08137260: .4byte 0x000160a8 _08137264: .4byte 0x000160a9 _08137268: .4byte 0x000160ab thumb_func_end sub_8137224 thumb_func_start sub_813726C sub_813726C: @ 813726C push {lr} ldr r2, _081372A0 ldr r1, _081372A4 ldr r0, _081372A8 ldrb r3, [r0] lsls r0, r3, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _081372B8 ldr r0, _081372AC lsls r1, r3, 9 adds r1, r0 ldrb r0, [r1] cmp r0, 0x38 bhi _081372B4 ldr r0, _081372B0 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl _call_via_r0 b _081372B8 .align 2, 0 _081372A0: .4byte 0x02024a64 _081372A4: .4byte gBitTable _081372A8: .4byte 0x02024a60 _081372AC: .4byte 0x02023a60 _081372B0: .4byte gUnknown_084061A4 _081372B4: bl dp01_tbl5_exec_completed _081372B8: pop {r0} bx r0 thumb_func_end sub_813726C thumb_func_start sub_81372BC sub_81372BC: @ 81372BC push {r4-r6,lr} ldr r1, _081372D8 ldr r2, _081372DC adds r0, r1, r2 ldrb r0, [r0] adds r5, r1, 0 cmp r0, 0x5 bls _081372CE b _08137410 _081372CE: lsls r0, 2 ldr r1, _081372E0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081372D8: .4byte 0x02000000 _081372DC: .4byte 0x000160a8 _081372E0: .4byte _081372E4 .align 2, 0 _081372E4: .4byte _081372FC .4byte _0813730E .4byte _08137344 .4byte _08137368 .4byte _081373AC .4byte _081373E8 _081372FC: ldr r0, _0813733C adds r1, r5, r0 movs r0, 0x40 strb r0, [r1] ldr r2, _08137340 adds r1, r5, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0813730E: ldr r0, _0813733C adds r6, r5, r0 ldrb r0, [r6] subs r0, 0x1 strb r0, [r6] lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08137410 movs r0, 0x5 bl audio_play movs r0, 0x1 movs r1, 0 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb bl dp01_tbl5_exec_completed ldr r2, _08137340 adds r1, r5, r2 b _0813738C .align 2, 0 _0813733C: .4byte 0x000160aa _08137340: .4byte 0x000160a8 _08137344: ldr r2, _08137364 adds r6, r5, r2 ldrb r0, [r6] subs r0, 0x1 strb r0, [r6] lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08137410 movs r0, 0x5 bl audio_play movs r0, 0x1 movs r1, 0 b _0813737E .align 2, 0 _08137364: .4byte 0x000160aa _08137368: ldr r2, _081373A0 adds r6, r5, r2 ldrb r0, [r6] subs r0, 0x1 strb r0, [r6] lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08137410 movs r0, 0x1 movs r1, 0x9 _0813737E: movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb bl dp01_tbl5_exec_completed ldr r0, _081373A4 adds r1, r5, r0 _0813738C: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r1, _081373A8 adds r0, r5, r1 strb r4, [r0] movs r0, 0x40 strb r0, [r6] b _08137410 .align 2, 0 _081373A0: .4byte 0x000160aa _081373A4: .4byte 0x000160a8 _081373A8: .4byte 0x000160a9 _081373AC: ldr r2, _081373E0 adds r4, r5, r2 ldrb r0, [r4] subs r0, 0x1 strb r0, [r4] lsls r0, 24 cmp r0, 0 bne _08137410 movs r0, 0x5 bl audio_play movs r0, 0 bl nullsub_8 movs r0, 0x1 movs r1, 0 bl sub_802E3E4 movs r0, 0x40 strb r0, [r4] ldr r0, _081373E4 adds r1, r5, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08137410 .align 2, 0 _081373E0: .4byte 0x000160aa _081373E4: .4byte 0x000160a8 _081373E8: ldr r2, _08137418 adds r1, r5, r2 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bne _08137410 movs r0, 0x5 bl audio_play bl sub_814A7FC movs r0, 0x1 movs r1, 0x1 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb bl dp01_tbl5_exec_completed _08137410: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08137418: .4byte 0x000160aa thumb_func_end sub_81372BC thumb_func_start sub_813741C sub_813741C: @ 813741C push {lr} ldr r2, _08137444 ldr r1, _08137448 ldr r0, _0813744C ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _08137450 cmp r1, r0 bne _08137440 bl dp01_tbl5_exec_completed _08137440: pop {r0} bx r0 .align 2, 0 _08137444: .4byte 0x02020004 _08137448: .4byte 0x02024be0 _0813744C: .4byte 0x02024a60 _08137450: .4byte SpriteCallbackDummy thumb_func_end sub_813741C thumb_func_start sub_8137454 sub_8137454: @ 8137454 push {lr} ldr r0, _08137468 ldrh r0, [r0, 0x16] cmp r0, 0 bne _08137462 bl dp01_tbl5_exec_completed _08137462: pop {r0} bx r0 .align 2, 0 _08137468: .4byte 0x03004210 thumb_func_end sub_8137454 thumb_func_start sub_813746C sub_813746C: @ 813746C push {lr} ldr r0, _0813749C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08137496 ldr r2, _081374A0 ldr r0, _081374A4 adds r3, r2, r0 ldrb r1, [r3] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r3] ldr r0, _081374A8 ldr r0, [r0] str r0, [r2] ldr r0, [r2, 0x8] bl SetMainCallback2 _08137496: pop {r0} bx r0 .align 2, 0 _0813749C: .4byte 0x0202f388 _081374A0: .4byte 0x03001770 _081374A4: .4byte 0x0000043d _081374A8: .4byte 0x030042d0 thumb_func_end sub_813746C thumb_func_start bx_wait_t5 bx_wait_t5: @ 81374AC push {lr} ldr r0, _081374C0 ldrb r0, [r0] cmp r0, 0 bne _081374BA bl dp01_tbl5_exec_completed _081374BA: pop {r0} bx r0 .align 2, 0 _081374C0: .4byte 0x02024e6d thumb_func_end bx_wait_t5 thumb_func_start sub_81374C4 sub_81374C4: @ 81374C4 push {lr} ldr r0, _081374EC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081374E8 ldr r1, _081374F0 ldr r0, _081374F4 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _081374F8 str r1, [r0] bl nullsub_14 bl PrepareBagForWallyTutorial _081374E8: pop {r0} bx r0 .align 2, 0 _081374EC: .4byte 0x0202f388 _081374F0: .4byte 0x03004330 _081374F4: .4byte 0x02024a60 _081374F8: .4byte sub_81374FC thumb_func_end sub_81374C4 thumb_func_start sub_81374FC sub_81374FC: @ 81374FC push {lr} ldr r0, _08137528 ldr r1, [r0, 0x4] ldr r0, _0813752C cmp r1, r0 bne _08137522 ldr r0, _08137530 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08137522 ldr r0, _08137534 ldrh r1, [r0] movs r0, 0x1 bl dp01_build_cmdbuf_x23_aa_0 bl dp01_tbl5_exec_completed _08137522: pop {r0} bx r0 .align 2, 0 _08137528: .4byte 0x03001770 _0813752C: .4byte sub_800F808 _08137530: .4byte 0x0202f388 _08137534: .4byte 0x0203855e thumb_func_end sub_81374FC thumb_func_start sub_8137538 sub_8137538: @ 8137538 push {r4-r7,lr} ldr r5, _0813768C ldrb r2, [r5] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 ldr r4, _08137690 adds r0, r4 ldrb r1, [r0] movs r7, 0x88 adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _08137568 ldr r0, _08137694 adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08137698 adds r1, r0 adds r0, r2, 0 bl sub_8141828 _08137568: ldrb r0, [r5] movs r6, 0x2 adds r2, r6, 0 eors r2, r0 lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 adds r0, r4 ldrb r1, [r0] adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _08137596 ldr r0, _08137694 adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08137698 adds r1, r0 adds r0, r2, 0 bl sub_8141828 _08137596: ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r4 ldrb r1, [r0] movs r3, 0x8 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _08137684 adds r1, r6, 0 eors r1, r2 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _08137684 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _08137626 ldr r0, _0813769C ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08137626 ldr r1, _081376A0 ldrb r0, [r5] eors r0, r6 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081376A4 adds r0, r1 bl DestroySprite ldr r4, _081376A8 ldrb r0, [r5] adds r1, r6, 0 eors r1, r0 adds r0, r1, r4 ldrb r0, [r0] ldr r2, _08137694 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _08137698 adds r1, r2 movs r2, 0 bl sub_8045A5C ldrb r0, [r5] eors r0, r6 bl sub_804777C ldrb r0, [r5] eors r0, r6 adds r0, r4 ldrb r0, [r0] bl sub_8043DFC _08137626: ldr r1, _081376A0 ldr r4, _0813768C ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081376A4 adds r0, r1 bl DestroySprite ldr r5, _081376A8 ldrb r1, [r4] adds r0, r1, r5 ldrb r0, [r0] ldr r2, _08137694 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _08137698 adds r1, r2 movs r2, 0 bl sub_8045A5C ldrb r0, [r4] bl sub_804777C ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl sub_8043DFC ldr r2, _081376AC ldrb r1, [r2, 0x9] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2, 0x9] ldr r1, _081376B0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _081376B4 str r1, [r0] _08137684: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813768C: .4byte 0x02024a60 _08137690: .4byte 0x02017810 _08137694: .4byte 0x02024a6a _08137698: .4byte 0x03004360 _0813769C: .4byte 0x020239f8 _081376A0: .4byte 0x0300434c _081376A4: .4byte 0x02020004 _081376A8: .4byte 0x03004340 _081376AC: .4byte 0x02017840 _081376B0: .4byte 0x03004330 _081376B4: .4byte sub_81376B8 thumb_func_end sub_8137538 thumb_func_start sub_81376B8 sub_81376B8: @ 81376B8 push {r4-r7,lr} movs r4, 0 ldr r2, _0813778C ldr r0, _08137790 ldr r7, _08137794 ldrb r3, [r7] adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _08137798 cmp r1, r0 bne _081376DC movs r4, 0x1 _081376DC: cmp r4, 0 beq _08137784 lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r5, _0813779C adds r2, r0, r5 ldrb r1, [r2, 0x1] movs r4, 0x1 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08137784 movs r6, 0x2 adds r1, r6, 0 eors r1, r3 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x1] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08137784 ldrb r1, [r2] movs r3, 0x7F adds r0, r3, 0 ands r0, r1 strb r0, [r2] ldrb r0, [r7] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r2, [r1, 0x1] subs r4, 0x3 adds r0, r4, 0 ands r0, r2 strb r0, [r1, 0x1] ldrb r0, [r7] adds r1, r6, 0 eors r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0] ands r3, r1 strb r3, [r0] ldrb r0, [r7] adds r1, r6, 0 eors r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x1] ands r4, r1 strb r4, [r0, 0x1] ldr r4, _081377A0 adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag ldr r0, _081377A4 movs r1, 0xA bl CreateTask ldr r2, _081377A8 ldrb r1, [r7] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _081377AC adds r0, r2 bl sub_80324F8 bl dp01_tbl5_exec_completed _08137784: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813778C: .4byte 0x02020004 _08137790: .4byte 0x03004340 _08137794: .4byte 0x02024a60 _08137798: .4byte SpriteCallbackDummy _0813779C: .4byte 0x02017810 _081377A0: .4byte 0x000027f9 _081377A4: .4byte c3_0802FDF4 _081377A8: .4byte 0x02024a6a _081377AC: .4byte 0x03004360 thumb_func_end sub_81376B8 thumb_func_start sub_81377B0 sub_81377B0: @ 81377B0 push {r4-r6,lr} ldr r5, _081377F0 ldrb r0, [r5] ldr r6, _081377F4 adds r1, r0, r6 ldrb r1, [r1] movs r2, 0 movs r3, 0 bl sub_8045C78 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] bl sub_8043DFC lsls r4, 16 asrs r1, r4, 16 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081377F8 ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] movs r2, 0 bl sub_80440EC b _08137812 .align 2, 0 _081377F0: .4byte 0x02024a60 _081377F4: .4byte 0x03004340 _081377F8: ldr r2, _08137818 ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _0813781C adds r0, r2 bl sub_80324F8 bl dp01_tbl5_exec_completed _08137812: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08137818: .4byte 0x02024a6a _0813781C: .4byte 0x03004360 thumb_func_end sub_81377B0 thumb_func_start bx_blink_t5 bx_blink_t5: @ 8137820 push {r4,lr} ldr r1, _0813785C ldr r0, _08137860 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] ldr r2, _08137864 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r0, r2 movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x20 bne _0813786C movs r3, 0 movs r0, 0 strh r0, [r4, 0x30] adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] subs r0, 0x5 ands r0, r1 strb r0, [r2] ldr r0, _08137868 strb r3, [r0] bl dp01_tbl5_exec_completed b _08137896 .align 2, 0 _0813785C: .4byte 0x02024be0 _08137860: .4byte 0x02024a60 _08137864: .4byte 0x02020004 _08137868: .4byte 0x02024e6d _0813786C: ldrh r0, [r4, 0x30] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _08137890 adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _08137890: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] _08137896: pop {r4} pop {r0} bx r0 thumb_func_end bx_blink_t5 thumb_func_start sub_813789C sub_813789C: @ 813789C push {r4-r6,lr} ldr r6, _081378F4 ldrb r2, [r6] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r1, _081378F8 adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _081378EC ldr r5, _081378FC adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08137900 adds r0, r4 bl FreeSpriteOamMatrix ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldr r1, _08137904 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 bl dp01_tbl5_exec_completed _081378EC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081378F4: .4byte 0x02024a60 _081378F8: .4byte 0x02017810 _081378FC: .4byte 0x02024be0 _08137900: .4byte 0x02020004 _08137904: .4byte 0x03004340 thumb_func_end sub_813789C thumb_func_start sub_8137908 sub_8137908: @ 8137908 push {lr} ldr r2, _08137930 ldr r1, _08137934 ldr r0, _08137938 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _0813793C cmp r1, r0 bne _0813792C bl dp01_tbl5_exec_completed _0813792C: pop {r0} bx r0 .align 2, 0 _08137930: .4byte 0x02020004 _08137934: .4byte 0x02024be0 _08137938: .4byte 0x02024a60 _0813793C: .4byte SpriteCallbackDummy thumb_func_end sub_8137908 thumb_func_start sub_8137940 sub_8137940: @ 8137940 push {lr} ldr r0, _08137964 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08137968 adds r0, r1 ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0813795E bl dp01_tbl5_exec_completed _0813795E: pop {r0} bx r0 .align 2, 0 _08137964: .4byte 0x02024a60 _08137968: .4byte 0x02017810 thumb_func_end sub_8137940 thumb_func_start dp01_tbl5_exec_completed dp01_tbl5_exec_completed: @ 813796C push {r4,lr} sub sp, 0x4 ldr r1, _081379AC ldr r4, _081379B0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _081379B4 str r1, [r0] ldr r0, _081379B8 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081379C0 bl GetMultiplayerId mov r1, sp strb r0, [r1] movs r0, 0x2 movs r1, 0x4 mov r2, sp bl dp01_prepare_buffer_wireless_probably ldr r1, _081379BC ldrb r0, [r4] lsls r0, 9 adds r0, r1 movs r1, 0x38 strb r1, [r0] b _081379D2 .align 2, 0 _081379AC: .4byte 0x03004330 _081379B0: .4byte 0x02024a60 _081379B4: .4byte sub_813726C _081379B8: .4byte 0x020239f8 _081379BC: .4byte 0x02023a60 _081379C0: ldr r2, _081379DC ldr r1, _081379E0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, [r2] bics r0, r1 str r0, [r2] _081379D2: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _081379DC: .4byte 0x02024a64 _081379E0: .4byte gBitTable thumb_func_end dp01_tbl5_exec_completed thumb_func_start unref_sub_81379E4 unref_sub_81379E4: @ 81379E4 push {lr} ldr r0, _08137A08 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08137A0C adds r0, r1 ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08137A02 bl dp01_tbl5_exec_completed _08137A02: pop {r0} bx r0 .align 2, 0 _08137A08: .4byte 0x02024a60 _08137A0C: .4byte 0x02017810 thumb_func_end unref_sub_81379E4 thumb_func_start dp01t_00_5_getattr dp01t_00_5_getattr: @ 8137A10 push {r4-r6,lr} sub sp, 0x100 movs r6, 0 ldr r1, _08137A3C ldr r0, _08137A40 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _08137A48 ldr r0, _08137A44 lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] mov r1, sp bl sub_8137A84 adds r6, r0, 0 b _08137A6A .align 2, 0 _08137A3C: .4byte 0x02023a60 _08137A40: .4byte 0x02024a60 _08137A44: .4byte 0x02024a6a _08137A48: ldrb r4, [r1] movs r5, 0 _08137A4C: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _08137A62 lsls r0, r5, 24 lsrs r0, 24 mov r2, sp adds r1, r2, r6 bl sub_8137A84 adds r6, r0 _08137A62: lsrs r4, 1 adds r5, 0x1 cmp r5, 0x5 ble _08137A4C _08137A6A: lsls r1, r6, 16 lsrs r1, 16 movs r0, 0x1 mov r2, sp bl dp01_build_cmdbuf_x1D_1D_numargs_varargs bl dp01_tbl5_exec_completed add sp, 0x100 pop {r4-r6} pop {r0} bx r0 thumb_func_end dp01t_00_5_getattr thumb_func_start sub_8137A84 sub_8137A84: @ 8137A84 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x90 adds r7, r1, 0 lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 ldr r2, _08137AB8 ldr r3, _08137ABC ldrb r0, [r3] lsls r0, 9 adds r1, r2, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0x3B bls _08137AAE bl _0813821A _08137AAE: lsls r0, 2 ldr r1, _08137AC0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08137AB8: .4byte 0x02023a60 _08137ABC: .4byte 0x02024a60 _08137AC0: .4byte _08137AC4 .align 2, 0 _08137AC4: .4byte _08137BB4 .4byte _08137DD8 .4byte _08137DE8 .4byte _08137DF8 .4byte _08137E60 .4byte _08137E60 .4byte _08137E60 .4byte _08137E60 .4byte _08137E7C .4byte _08137EB8 .4byte _08137EB8 .4byte _08137EB8 .4byte _08137EB8 .4byte _0813821A .4byte _0813821A .4byte _0813821A .4byte _0813821A .4byte _08137ED4 .4byte _08137EE4 .4byte _08137F14 .4byte _08137F24 .4byte _08137F34 .4byte _08137F44 .4byte _08137F54 .4byte _08137F64 .4byte _08137F74 .4byte _08137F84 .4byte _08137F94 .4byte _08137FA4 .4byte _08137FB4 .4byte _08137FC4 .4byte _08137FD4 .4byte _08138024 .4byte _08138034 .4byte _08138044 .4byte _08138054 .4byte _08138064 .4byte _08138074 .4byte _08138084 .4byte _08138094 .4byte _081380A4 .4byte _081380D8 .4byte _081380E8 .4byte _081380F8 .4byte _08138108 .4byte _08138118 .4byte _08138128 .4byte _08138138 .4byte _08138148 .4byte _08138168 .4byte _08138178 .4byte _08138188 .4byte _08138198 .4byte _081381A8 .4byte _081381B8 .4byte _081381C8 .4byte _081381D8 .4byte _081381E8 .4byte _081381F8 .4byte _08138208 _08137BB4: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08137DC8 adds r4, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField mov r1, sp strh r0, [r1] adds r0, r4, 0 movs r1, 0xC bl PokemonGetField mov r1, sp strh r0, [r1, 0x2E] movs r6, 0 add r0, sp, 0x24 mov r9, r0 movs r1, 0x3B add r1, sp mov r10, r1 mov r2, sp adds r2, 0x2B str r2, [sp, 0x80] mov r0, sp adds r0, 0x2A str r0, [sp, 0x7C] mov r1, sp adds r1, 0x68 str r1, [sp, 0x8C] adds r2, 0x5 str r2, [sp, 0x84] adds r0, 0x12 str r0, [sp, 0x88] mov r8, r4 add r4, sp, 0xC _08137C00: adds r1, r6, 0 adds r1, 0xD mov r0, r8 bl PokemonGetField strh r0, [r4] adds r1, r6, 0 adds r1, 0x11 mov r0, r8 bl PokemonGetField mov r2, r9 adds r1, r2, r6 strb r0, [r1] adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _08137C00 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08137DC8 adds r4, r0 adds r0, r4, 0 movs r1, 0x15 bl PokemonGetField mov r1, r10 strb r0, [r1] adds r0, r4, 0 movs r1, 0x20 bl PokemonGetField ldr r2, [sp, 0x80] strb r0, [r2] adds r0, r4, 0 movs r1, 0x19 bl PokemonGetField str r0, [sp, 0x44] adds r0, r4, 0 movs r1, 0x27 bl PokemonGetField mov r3, sp movs r5, 0x1F ands r0, r5 ldrb r2, [r3, 0x14] movs r1, 0x20 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x14] adds r0, r4, 0 movs r1, 0x28 bl PokemonGetField mov r3, sp movs r6, 0x1F ands r0, r6 lsls r0, 5 ldrh r2, [r3, 0x14] ldr r1, _08137DCC ands r1, r2 orrs r1, r0 strh r1, [r3, 0x14] adds r0, r4, 0 movs r1, 0x29 bl PokemonGetField mov r3, sp ands r0, r5 lsls r0, 2 ldrb r2, [r3, 0x15] movs r1, 0x7D negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x15] adds r0, r4, 0 movs r1, 0x2A bl PokemonGetField movs r1, 0x1F ands r1, r0 lsls r1, 15 ldr r0, [sp, 0x14] ldr r2, _08137DD0 ands r0, r2 orrs r0, r1 str r0, [sp, 0x14] adds r0, r4, 0 movs r1, 0x2B bl PokemonGetField mov r3, sp ands r0, r6 lsls r0, 4 ldrh r2, [r3, 0x16] ldr r1, _08137DD4 ands r1, r2 orrs r1, r0 strh r1, [r3, 0x16] adds r0, r4, 0 movs r1, 0x2C bl PokemonGetField mov r3, sp ands r0, r5 lsls r0, 1 ldrb r2, [r3, 0x17] movs r1, 0x3F negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0 bl PokemonGetField str r0, [sp, 0x48] adds r0, r4, 0 movs r1, 0x37 bl PokemonGetField str r0, [sp, 0x4C] adds r0, r4, 0 movs r1, 0x38 bl PokemonGetField ldr r1, [sp, 0x7C] strb r0, [r1] adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField mov r1, sp strh r0, [r1, 0x28] adds r0, r4, 0 movs r1, 0x3A bl PokemonGetField mov r1, sp strh r0, [r1, 0x2C] adds r0, r4, 0 movs r1, 0x3B bl PokemonGetField mov r1, sp strh r0, [r1, 0x2] adds r0, r4, 0 movs r1, 0x3C bl PokemonGetField mov r1, sp strh r0, [r1, 0x4] adds r0, r4, 0 movs r1, 0x3D bl PokemonGetField mov r1, sp strh r0, [r1, 0x6] adds r0, r4, 0 movs r1, 0x3E bl PokemonGetField mov r1, sp strh r0, [r1, 0x8] adds r0, r4, 0 movs r1, 0x3F bl PokemonGetField mov r1, sp strh r0, [r1, 0xA] adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField mov r3, sp movs r1, 0x1 ands r0, r1 lsls r0, 6 ldrb r2, [r3, 0x17] movs r1, 0x41 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0x2E bl PokemonGetField mov r3, sp lsls r0, 7 ldrb r2, [r3, 0x17] movs r1, 0x7F ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0x1 bl PokemonGetField str r0, [sp, 0x54] adds r0, r4, 0 movs r1, 0x2 ldr r2, [sp, 0x8C] bl PokemonGetField ldr r0, [sp, 0x84] ldr r1, [sp, 0x8C] bl StringCopy10 adds r0, r4, 0 movs r1, 0x7 ldr r2, [sp, 0x88] bl PokemonGetField mov r2, sp movs r6, 0 _08137DB8: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0x57 bls _08137DB8 b _0813821A .align 2, 0 _08137DC8: .4byte 0x03004360 _08137DCC: .4byte 0xfffffc1f _08137DD0: .4byte 0xfff07fff _08137DD4: .4byte 0xfffffe0f _08137DD8: movs r0, 0x64 muls r0, r5 ldr r1, _08137DE4 adds r0, r1 movs r1, 0xB b _08138152 .align 2, 0 _08137DE4: .4byte 0x03004360 _08137DE8: movs r0, 0x64 muls r0, r5 ldr r1, _08137DF4 adds r0, r1 movs r1, 0xC b _08138152 .align 2, 0 _08137DF4: .4byte 0x03004360 _08137DF8: movs r6, 0 add r2, sp, 0x58 mov r9, r2 add r0, sp, 0x60 mov r10, r0 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _08137E5C adds r4, r1, r0 mov r8, r9 _08137E0E: adds r1, r6, 0 adds r1, 0xD adds r0, r4, 0 bl PokemonGetField mov r1, r8 strh r0, [r1] adds r1, r6, 0 adds r1, 0x11 adds r0, r4, 0 bl PokemonGetField mov r2, r10 adds r1, r2, r6 strb r0, [r1] movs r0, 0x2 add r8, r0 adds r6, 0x1 cmp r6, 0x3 ble _08137E0E movs r0, 0x64 muls r0, r5 ldr r1, _08137E5C adds r0, r1 movs r1, 0x15 bl PokemonGetField mov r1, r9 strb r0, [r1, 0xC] mov r2, r9 movs r6, 0 _08137E4C: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0xF bls _08137E4C b _0813821A .align 2, 0 _08137E5C: .4byte 0x03004360 _08137E60: movs r0, 0x64 muls r0, r5 ldr r1, _08137E78 adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x9 b _08138152 .align 2, 0 _08137E78: .4byte 0x03004360 _08137E7C: movs r6, 0 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r2, _08137EB4 mov r8, r2 _08137E88: adds r1, r6, 0 adds r1, 0x11 mov r2, r8 adds r0, r4, r2 bl PokemonGetField adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 cmp r6, 0x3 ble _08137E88 movs r0, 0x64 muls r0, r5 ldr r1, _08137EB4 adds r0, r1 movs r1, 0x15 bl PokemonGetField adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 b _0813821A .align 2, 0 _08137EB4: .4byte 0x03004360 _08137EB8: movs r0, 0x64 muls r0, r5 ldr r1, _08137ED0 adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x8 b _08138212 .align 2, 0 _08137ED0: .4byte 0x03004360 _08137ED4: movs r0, 0x64 muls r0, r5 ldr r1, _08137EE0 adds r0, r1 movs r1, 0x1 b _08137EEE .align 2, 0 _08137EE0: .4byte 0x03004360 _08137EE4: movs r0, 0x64 muls r0, r5 ldr r1, _08137F10 adds r0, r1 movs r1, 0x19 _08137EEE: bl PokemonGetField adds r1, r0, 0 strb r1, [r7] movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r0, 8 strb r0, [r7, 0x1] movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r0, 16 strb r0, [r7, 0x2] movs r6, 0x3 b _0813821A .align 2, 0 _08137F10: .4byte 0x03004360 _08137F14: movs r0, 0x64 muls r0, r5 ldr r1, _08137F20 adds r0, r1 movs r1, 0x1A b _08138212 .align 2, 0 _08137F20: .4byte 0x03004360 _08137F24: movs r0, 0x64 muls r0, r5 ldr r1, _08137F30 adds r0, r1 movs r1, 0x1B b _08138212 .align 2, 0 _08137F30: .4byte 0x03004360 _08137F34: movs r0, 0x64 muls r0, r5 ldr r1, _08137F40 adds r0, r1 movs r1, 0x1C b _08138212 .align 2, 0 _08137F40: .4byte 0x03004360 _08137F44: movs r0, 0x64 muls r0, r5 ldr r1, _08137F50 adds r0, r1 movs r1, 0x1D b _08138212 .align 2, 0 _08137F50: .4byte 0x03004360 _08137F54: movs r0, 0x64 muls r0, r5 ldr r1, _08137F60 adds r0, r1 movs r1, 0x1E b _08138212 .align 2, 0 _08137F60: .4byte 0x03004360 _08137F64: movs r0, 0x64 muls r0, r5 ldr r1, _08137F70 adds r0, r1 movs r1, 0x1F b _08138212 .align 2, 0 _08137F70: .4byte 0x03004360 _08137F74: movs r0, 0x64 muls r0, r5 ldr r1, _08137F80 adds r0, r1 movs r1, 0x20 b _08138212 .align 2, 0 _08137F80: .4byte 0x03004360 _08137F84: movs r0, 0x64 muls r0, r5 ldr r1, _08137F90 adds r0, r1 movs r1, 0x22 b _08138212 .align 2, 0 _08137F90: .4byte 0x03004360 _08137F94: movs r0, 0x64 muls r0, r5 ldr r1, _08137FA0 adds r0, r1 movs r1, 0x23 b _08138212 .align 2, 0 _08137FA0: .4byte 0x03004360 _08137FA4: movs r0, 0x64 muls r0, r5 ldr r1, _08137FB0 adds r0, r1 movs r1, 0x24 b _08138212 .align 2, 0 _08137FB0: .4byte 0x03004360 _08137FB4: movs r0, 0x64 muls r0, r5 ldr r1, _08137FC0 adds r0, r1 movs r1, 0x25 b _08138212 .align 2, 0 _08137FC0: .4byte 0x03004360 _08137FC4: movs r0, 0x64 muls r0, r5 ldr r1, _08137FD0 adds r0, r1 movs r1, 0x26 b _08138212 .align 2, 0 _08137FD0: .4byte 0x03004360 _08137FD4: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08138020 adds r4, r0 adds r0, r4, 0 movs r1, 0x27 bl PokemonGetField strb r0, [r7] adds r0, r4, 0 movs r1, 0x28 bl PokemonGetField strb r0, [r7, 0x1] adds r0, r4, 0 movs r1, 0x29 bl PokemonGetField strb r0, [r7, 0x2] adds r0, r4, 0 movs r1, 0x2A bl PokemonGetField strb r0, [r7, 0x3] adds r0, r4, 0 movs r1, 0x2B bl PokemonGetField strb r0, [r7, 0x4] adds r0, r4, 0 movs r1, 0x2C bl PokemonGetField strb r0, [r7, 0x5] movs r6, 0x6 b _0813821A .align 2, 0 _08138020: .4byte 0x03004360 _08138024: movs r0, 0x64 muls r0, r5 ldr r1, _08138030 adds r0, r1 movs r1, 0x27 b _08138212 .align 2, 0 _08138030: .4byte 0x03004360 _08138034: movs r0, 0x64 muls r0, r5 ldr r1, _08138040 adds r0, r1 movs r1, 0x28 b _08138212 .align 2, 0 _08138040: .4byte 0x03004360 _08138044: movs r0, 0x64 muls r0, r5 ldr r1, _08138050 adds r0, r1 movs r1, 0x29 b _08138212 .align 2, 0 _08138050: .4byte 0x03004360 _08138054: movs r0, 0x64 muls r0, r5 ldr r1, _08138060 adds r0, r1 movs r1, 0x2A b _08138212 .align 2, 0 _08138060: .4byte 0x03004360 _08138064: movs r0, 0x64 muls r0, r5 ldr r1, _08138070 adds r0, r1 movs r1, 0x2B b _08138212 .align 2, 0 _08138070: .4byte 0x03004360 _08138074: movs r0, 0x64 muls r0, r5 ldr r1, _08138080 adds r0, r1 movs r1, 0x2C b _08138212 .align 2, 0 _08138080: .4byte 0x03004360 _08138084: movs r0, 0x64 muls r0, r5 ldr r1, _08138090 adds r0, r1 movs r1, 0 b _081380AE .align 2, 0 _08138090: .4byte 0x03004360 _08138094: movs r0, 0x64 muls r0, r5 ldr r1, _081380A0 adds r0, r1 movs r1, 0x9 b _08138152 .align 2, 0 _081380A0: .4byte 0x03004360 _081380A4: movs r0, 0x64 muls r0, r5 ldr r1, _081380D4 adds r0, r1 movs r1, 0x37 _081380AE: bl PokemonGetField adds r1, r0, 0 strb r1, [r7] movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r0, 8 strb r0, [r7, 0x1] movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r0, 16 strb r0, [r7, 0x2] lsrs r0, r1, 24 strb r0, [r7, 0x3] movs r6, 0x4 b _0813821A .align 2, 0 _081380D4: .4byte 0x03004360 _081380D8: movs r0, 0x64 muls r0, r5 ldr r1, _081380E4 adds r0, r1 movs r1, 0x38 b _08138212 .align 2, 0 _081380E4: .4byte 0x03004360 _081380E8: movs r0, 0x64 muls r0, r5 ldr r1, _081380F4 adds r0, r1 movs r1, 0x39 b _08138152 .align 2, 0 _081380F4: .4byte 0x03004360 _081380F8: movs r0, 0x64 muls r0, r5 ldr r1, _08138104 adds r0, r1 movs r1, 0x3A b _08138152 .align 2, 0 _08138104: .4byte 0x03004360 _08138108: movs r0, 0x64 muls r0, r5 ldr r1, _08138114 adds r0, r1 movs r1, 0x3B b _08138152 .align 2, 0 _08138114: .4byte 0x03004360 _08138118: movs r0, 0x64 muls r0, r5 ldr r1, _08138124 adds r0, r1 movs r1, 0x3C b _08138152 .align 2, 0 _08138124: .4byte 0x03004360 _08138128: movs r0, 0x64 muls r0, r5 ldr r1, _08138134 adds r0, r1 movs r1, 0x3D b _08138152 .align 2, 0 _08138134: .4byte 0x03004360 _08138138: movs r0, 0x64 muls r0, r5 ldr r1, _08138144 adds r0, r1 movs r1, 0x3E b _08138152 .align 2, 0 _08138144: .4byte 0x03004360 _08138148: movs r0, 0x64 muls r0, r5 ldr r1, _08138164 adds r0, r1 movs r1, 0x3F _08138152: bl PokemonGetField lsls r0, 16 lsrs r0, 16 strb r0, [r7] lsrs r0, 8 strb r0, [r7, 0x1] movs r6, 0x2 b _0813821A .align 2, 0 _08138164: .4byte 0x03004360 _08138168: movs r0, 0x64 muls r0, r5 ldr r1, _08138174 adds r0, r1 movs r1, 0x16 b _08138212 .align 2, 0 _08138174: .4byte 0x03004360 _08138178: movs r0, 0x64 muls r0, r5 ldr r1, _08138184 adds r0, r1 movs r1, 0x17 b _08138212 .align 2, 0 _08138184: .4byte 0x03004360 _08138188: movs r0, 0x64 muls r0, r5 ldr r1, _08138194 adds r0, r1 movs r1, 0x18 b _08138212 .align 2, 0 _08138194: .4byte 0x03004360 _08138198: movs r0, 0x64 muls r0, r5 ldr r1, _081381A4 adds r0, r1 movs r1, 0x21 b _08138212 .align 2, 0 _081381A4: .4byte 0x03004360 _081381A8: movs r0, 0x64 muls r0, r5 ldr r1, _081381B4 adds r0, r1 movs r1, 0x2F b _08138212 .align 2, 0 _081381B4: .4byte 0x03004360 _081381B8: movs r0, 0x64 muls r0, r5 ldr r1, _081381C4 adds r0, r1 movs r1, 0x30 b _08138212 .align 2, 0 _081381C4: .4byte 0x03004360 _081381C8: movs r0, 0x64 muls r0, r5 ldr r1, _081381D4 adds r0, r1 movs r1, 0x32 b _08138212 .align 2, 0 _081381D4: .4byte 0x03004360 _081381D8: movs r0, 0x64 muls r0, r5 ldr r1, _081381E4 adds r0, r1 movs r1, 0x33 b _08138212 .align 2, 0 _081381E4: .4byte 0x03004360 _081381E8: movs r0, 0x64 muls r0, r5 ldr r1, _081381F4 adds r0, r1 movs r1, 0x34 b _08138212 .align 2, 0 _081381F4: .4byte 0x03004360 _081381F8: movs r0, 0x64 muls r0, r5 ldr r1, _08138204 adds r0, r1 movs r1, 0x35 b _08138212 .align 2, 0 _08138204: .4byte 0x03004360 _08138208: movs r0, 0x64 muls r0, r5 ldr r1, _0813822C adds r0, r1 movs r1, 0x36 _08138212: bl PokemonGetField strb r0, [r7] movs r6, 0x1 _0813821A: adds r0, r6, 0 add sp, 0x90 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0813822C: .4byte 0x03004360 thumb_func_end sub_8137A84 thumb_func_start sub_8138230 sub_8138230: @ 8138230 push {lr} bl sub_802ECF0 pop {r0} bx r0 thumb_func_end sub_8138230 thumb_func_start sub_813823C sub_813823C: @ 813823C push {r4,r5,lr} ldr r1, _08138260 ldr r0, _08138264 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _0813826C ldr r0, _08138268 lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] bl sub_8138294 b _0813828A .align 2, 0 _08138260: .4byte 0x02023a60 _08138264: .4byte 0x02024a60 _08138268: .4byte 0x02024a6a _0813826C: ldrb r4, [r1] movs r5, 0 _08138270: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _0813827E adds r0, r5, 0 bl sub_8138294 _0813827E: lsrs r4, 1 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _08138270 _0813828A: bl dp01_tbl5_exec_completed pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_813823C thumb_func_start sub_8138294 sub_8138294: @ 8138294 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _081382CC ldrb r0, [r0] lsls r0, 9 ldr r2, _081382D0 adds r3, r0, r2 adds r6, r3, 0 subs r1, r2, 0x2 adds r0, r1 ldrb r0, [r0] adds r7, r2, 0 cmp r0, 0x3B bls _081382C0 bl _08138C5A _081382C0: lsls r0, 2 ldr r1, _081382D4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081382CC: .4byte 0x02024a60 _081382D0: .4byte 0x02023a63 _081382D4: .4byte _081382D8 .align 2, 0 _081382D8: .4byte _081383C8 .4byte _08138560 .4byte _08138580 .4byte _081385A0 .4byte _081385F8 .4byte _081385F8 .4byte _081385F8 .4byte _081385F8 .4byte _08138620 .4byte _08138684 .4byte _08138684 .4byte _08138684 .4byte _08138684 .4byte _08138C5A .4byte _08138C5A .4byte _08138C5A .4byte _08138C5A .4byte _081386B4 .4byte _081386D4 .4byte _081386F4 .4byte _08138714 .4byte _08138734 .4byte _08138754 .4byte _08138774 .4byte _08138794 .4byte _081387B4 .4byte _081387D4 .4byte _081387F4 .4byte _08138814 .4byte _08138834 .4byte _08138854 .4byte _08138874 .4byte _081388E4 .4byte _08138904 .4byte _08138924 .4byte _08138944 .4byte _08138964 .4byte _08138984 .4byte _081389A4 .4byte _081389C4 .4byte _081389E4 .4byte _08138A04 .4byte _08138A24 .4byte _08138A44 .4byte _08138A64 .4byte _08138A84 .4byte _08138AA4 .4byte _08138AC4 .4byte _08138AE4 .4byte _08138B04 .4byte _08138B24 .4byte _08138B44 .4byte _08138B64 .4byte _08138B84 .4byte _08138BA4 .4byte _08138BC4 .4byte _08138BE4 .4byte _08138C04 .4byte _08138C24 .4byte _08138C44 _081383C8: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0813855C adds r4, r0 adds r0, r4, 0 movs r1, 0xB adds r2, r6, 0 bl pokemon_setattr adds r2, r6, 0 adds r2, 0x2E adds r0, r4, 0 movs r1, 0xC bl pokemon_setattr movs r0, 0 mov r8, r0 movs r0, 0x3B adds r0, r6 mov r10, r0 adds r0, r6, 0 adds r0, 0x2B str r0, [sp, 0x20] adds r0, 0x19 str r0, [sp, 0x28] adds r0, 0x4 str r0, [sp, 0x2C] adds r0, 0x4 str r0, [sp, 0x30] subs r0, 0x22 str r0, [sp, 0x1C] subs r0, 0x2 str r0, [sp, 0x18] adds r0, 0x4 str r0, [sp, 0x24] adds r0, r6, 0x2 str r0, [sp, 0x4] adds r0, r6, 0x4 str r0, [sp, 0x8] adds r0, r6, 0x6 str r0, [sp, 0xC] adds r0, 0x2 str r0, [sp, 0x10] adds r0, 0x2 str r0, [sp, 0x14] mov r9, r4 adds r7, r6, 0 adds r7, 0x24 adds r4, r6, 0 adds r4, 0xC _0813842E: mov r1, r8 adds r1, 0xD mov r0, r9 adds r2, r4, 0 bl pokemon_setattr mov r1, r8 adds r1, 0x11 mov r0, r9 adds r2, r7, 0 bl pokemon_setattr adds r7, 0x1 adds r4, 0x2 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x3 ble _0813842E movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0813855C adds r4, r0 adds r0, r4, 0 movs r1, 0x15 mov r2, r10 bl pokemon_setattr adds r0, r4, 0 movs r1, 0x20 ldr r2, [sp, 0x20] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x19 ldr r2, [sp, 0x28] bl pokemon_setattr ldrb r0, [r6, 0x14] lsls r0, 27 lsrs r0, 27 mov r1, sp strb r0, [r1] adds r0, r4, 0 movs r1, 0x27 mov r2, sp bl pokemon_setattr mov r1, sp ldrh r0, [r6, 0x14] lsls r0, 22 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x28 mov r2, sp bl pokemon_setattr mov r1, sp ldrb r0, [r6, 0x15] lsls r0, 25 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x29 mov r2, sp bl pokemon_setattr mov r1, sp ldr r0, [r6, 0x14] lsls r0, 12 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2A mov r2, sp bl pokemon_setattr mov r1, sp ldrh r0, [r6, 0x16] lsls r0, 23 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2B mov r2, sp bl pokemon_setattr mov r1, sp ldrb r0, [r6, 0x17] lsls r0, 26 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2C mov r2, sp bl pokemon_setattr adds r0, r4, 0 movs r1, 0 ldr r2, [sp, 0x2C] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x37 ldr r2, [sp, 0x30] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x38 ldr r2, [sp, 0x1C] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x39 ldr r2, [sp, 0x18] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3A ldr r2, [sp, 0x24] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3B ldr r2, [sp, 0x4] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3C ldr r2, [sp, 0x8] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3D ldr r2, [sp, 0xC] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3E ldr r2, [sp, 0x10] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3F ldr r2, [sp, 0x14] bl pokemon_setattr b _08138C5A .align 2, 0 _0813855C: .4byte 0x03004360 _08138560: movs r0, 0x64 muls r0, r5 ldr r1, _08138578 adds r0, r1 ldr r1, _0813857C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0xB bl pokemon_setattr b _08138C5A .align 2, 0 _08138578: .4byte 0x03004360 _0813857C: .4byte 0x02024a60 _08138580: movs r0, 0x64 muls r0, r5 ldr r1, _08138598 adds r0, r1 ldr r1, _0813859C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0xC bl pokemon_setattr b _08138C5A .align 2, 0 _08138598: .4byte 0x03004360 _0813859C: .4byte 0x02024a60 _081385A0: movs r0, 0 mov r8, r0 movs r0, 0xC adds r0, r3 mov r9, r0 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _081385F4 adds r7, r1, r0 adds r6, r3, 0 adds r6, 0x8 adds r4, r3, 0 _081385BA: mov r1, r8 adds r1, 0xD adds r0, r7, 0 adds r2, r4, 0 bl pokemon_setattr mov r1, r8 adds r1, 0x11 adds r0, r7, 0 adds r2, r6, 0 bl pokemon_setattr adds r6, 0x1 adds r4, 0x2 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x3 ble _081385BA movs r0, 0x64 muls r0, r5 ldr r1, _081385F4 adds r0, r1 movs r1, 0x15 mov r2, r9 bl pokemon_setattr b _08138C5A .align 2, 0 _081385F4: .4byte 0x03004360 _081385F8: movs r0, 0x64 muls r0, r5 ldr r1, _08138614 adds r0, r1 ldr r3, _08138618 ldr r1, _0813861C ldrb r2, [r1] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x9 b _0813869C .align 2, 0 _08138614: .4byte 0x03004360 _08138618: .4byte 0x02023a60 _0813861C: .4byte 0x02024a60 _08138620: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0813867C adds r4, r0 ldr r5, _08138680 ldrb r2, [r5] lsls r2, 9 adds r2, r7 adds r0, r4, 0 movs r1, 0x11 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x1 adds r2, r0 adds r0, r4, 0 movs r1, 0x12 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x2 adds r2, r0 adds r0, r4, 0 movs r1, 0x13 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x3 adds r2, r0 adds r0, r4, 0 movs r1, 0x14 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x4 adds r2, r0 adds r0, r4, 0 movs r1, 0x15 bl pokemon_setattr b _08138C5A .align 2, 0 _0813867C: .4byte 0x03004360 _08138680: .4byte 0x02024a60 _08138684: movs r0, 0x64 muls r0, r5 ldr r1, _081386A8 adds r0, r1 ldr r3, _081386AC ldr r1, _081386B0 ldrb r2, [r1] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x8 _0813869C: adds r3, 0x3 adds r2, r3 bl pokemon_setattr b _08138C5A .align 2, 0 _081386A8: .4byte 0x03004360 _081386AC: .4byte 0x02023a60 _081386B0: .4byte 0x02024a60 _081386B4: movs r0, 0x64 muls r0, r5 ldr r1, _081386CC adds r0, r1 ldr r1, _081386D0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1 bl pokemon_setattr b _08138C5A .align 2, 0 _081386CC: .4byte 0x03004360 _081386D0: .4byte 0x02024a60 _081386D4: movs r0, 0x64 muls r0, r5 ldr r1, _081386EC adds r0, r1 ldr r1, _081386F0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x19 bl pokemon_setattr b _08138C5A .align 2, 0 _081386EC: .4byte 0x03004360 _081386F0: .4byte 0x02024a60 _081386F4: movs r0, 0x64 muls r0, r5 ldr r1, _0813870C adds r0, r1 ldr r1, _08138710 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1A bl pokemon_setattr b _08138C5A .align 2, 0 _0813870C: .4byte 0x03004360 _08138710: .4byte 0x02024a60 _08138714: movs r0, 0x64 muls r0, r5 ldr r1, _0813872C adds r0, r1 ldr r1, _08138730 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1B bl pokemon_setattr b _08138C5A .align 2, 0 _0813872C: .4byte 0x03004360 _08138730: .4byte 0x02024a60 _08138734: movs r0, 0x64 muls r0, r5 ldr r1, _0813874C adds r0, r1 ldr r1, _08138750 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1C bl pokemon_setattr b _08138C5A .align 2, 0 _0813874C: .4byte 0x03004360 _08138750: .4byte 0x02024a60 _08138754: movs r0, 0x64 muls r0, r5 ldr r1, _0813876C adds r0, r1 ldr r1, _08138770 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1D bl pokemon_setattr b _08138C5A .align 2, 0 _0813876C: .4byte 0x03004360 _08138770: .4byte 0x02024a60 _08138774: movs r0, 0x64 muls r0, r5 ldr r1, _0813878C adds r0, r1 ldr r1, _08138790 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1E bl pokemon_setattr b _08138C5A .align 2, 0 _0813878C: .4byte 0x03004360 _08138790: .4byte 0x02024a60 _08138794: movs r0, 0x64 muls r0, r5 ldr r1, _081387AC adds r0, r1 ldr r1, _081387B0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1F bl pokemon_setattr b _08138C5A .align 2, 0 _081387AC: .4byte 0x03004360 _081387B0: .4byte 0x02024a60 _081387B4: movs r0, 0x64 muls r0, r5 ldr r1, _081387CC adds r0, r1 ldr r1, _081387D0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x20 bl pokemon_setattr b _08138C5A .align 2, 0 _081387CC: .4byte 0x03004360 _081387D0: .4byte 0x02024a60 _081387D4: movs r0, 0x64 muls r0, r5 ldr r1, _081387EC adds r0, r1 ldr r1, _081387F0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x22 bl pokemon_setattr b _08138C5A .align 2, 0 _081387EC: .4byte 0x03004360 _081387F0: .4byte 0x02024a60 _081387F4: movs r0, 0x64 muls r0, r5 ldr r1, _0813880C adds r0, r1 ldr r1, _08138810 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x23 bl pokemon_setattr b _08138C5A .align 2, 0 _0813880C: .4byte 0x03004360 _08138810: .4byte 0x02024a60 _08138814: movs r0, 0x64 muls r0, r5 ldr r1, _0813882C adds r0, r1 ldr r1, _08138830 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x24 bl pokemon_setattr b _08138C5A .align 2, 0 _0813882C: .4byte 0x03004360 _08138830: .4byte 0x02024a60 _08138834: movs r0, 0x64 muls r0, r5 ldr r1, _0813884C adds r0, r1 ldr r1, _08138850 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x25 bl pokemon_setattr b _08138C5A .align 2, 0 _0813884C: .4byte 0x03004360 _08138850: .4byte 0x02024a60 _08138854: movs r0, 0x64 muls r0, r5 ldr r1, _0813886C adds r0, r1 ldr r1, _08138870 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x26 bl pokemon_setattr b _08138C5A .align 2, 0 _0813886C: .4byte 0x03004360 _08138870: .4byte 0x02024a60 _08138874: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _081388DC adds r4, r0 ldr r5, _081388E0 ldrb r2, [r5] lsls r2, 9 adds r2, r7 adds r0, r4, 0 movs r1, 0x27 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x1 adds r2, r0 adds r0, r4, 0 movs r1, 0x28 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x2 adds r2, r0 adds r0, r4, 0 movs r1, 0x29 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x3 adds r2, r0 adds r0, r4, 0 movs r1, 0x2A bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x4 adds r2, r0 adds r0, r4, 0 movs r1, 0x2B bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x5 adds r2, r0 adds r0, r4, 0 b _08138994 .align 2, 0 _081388DC: .4byte 0x03004360 _081388E0: .4byte 0x02024a60 _081388E4: movs r0, 0x64 muls r0, r5 ldr r1, _081388FC adds r0, r1 ldr r1, _08138900 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x27 bl pokemon_setattr b _08138C5A .align 2, 0 _081388FC: .4byte 0x03004360 _08138900: .4byte 0x02024a60 _08138904: movs r0, 0x64 muls r0, r5 ldr r1, _0813891C adds r0, r1 ldr r1, _08138920 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x28 bl pokemon_setattr b _08138C5A .align 2, 0 _0813891C: .4byte 0x03004360 _08138920: .4byte 0x02024a60 _08138924: movs r0, 0x64 muls r0, r5 ldr r1, _0813893C adds r0, r1 ldr r1, _08138940 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x29 bl pokemon_setattr b _08138C5A .align 2, 0 _0813893C: .4byte 0x03004360 _08138940: .4byte 0x02024a60 _08138944: movs r0, 0x64 muls r0, r5 ldr r1, _0813895C adds r0, r1 ldr r1, _08138960 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2A bl pokemon_setattr b _08138C5A .align 2, 0 _0813895C: .4byte 0x03004360 _08138960: .4byte 0x02024a60 _08138964: movs r0, 0x64 muls r0, r5 ldr r1, _0813897C adds r0, r1 ldr r1, _08138980 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2B bl pokemon_setattr b _08138C5A .align 2, 0 _0813897C: .4byte 0x03004360 _08138980: .4byte 0x02024a60 _08138984: movs r0, 0x64 muls r0, r5 ldr r1, _0813899C adds r0, r1 ldr r1, _081389A0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 _08138994: movs r1, 0x2C bl pokemon_setattr b _08138C5A .align 2, 0 _0813899C: .4byte 0x03004360 _081389A0: .4byte 0x02024a60 _081389A4: movs r0, 0x64 muls r0, r5 ldr r1, _081389BC adds r0, r1 ldr r1, _081389C0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0 bl pokemon_setattr b _08138C5A .align 2, 0 _081389BC: .4byte 0x03004360 _081389C0: .4byte 0x02024a60 _081389C4: movs r0, 0x64 muls r0, r5 ldr r1, _081389DC adds r0, r1 ldr r1, _081389E0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x9 bl pokemon_setattr b _08138C5A .align 2, 0 _081389DC: .4byte 0x03004360 _081389E0: .4byte 0x02024a60 _081389E4: movs r0, 0x64 muls r0, r5 ldr r1, _081389FC adds r0, r1 ldr r1, _08138A00 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x37 bl pokemon_setattr b _08138C5A .align 2, 0 _081389FC: .4byte 0x03004360 _08138A00: .4byte 0x02024a60 _08138A04: movs r0, 0x64 muls r0, r5 ldr r1, _08138A1C adds r0, r1 ldr r1, _08138A20 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x38 bl pokemon_setattr b _08138C5A .align 2, 0 _08138A1C: .4byte 0x03004360 _08138A20: .4byte 0x02024a60 _08138A24: movs r0, 0x64 muls r0, r5 ldr r1, _08138A3C adds r0, r1 ldr r1, _08138A40 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x39 bl pokemon_setattr b _08138C5A .align 2, 0 _08138A3C: .4byte 0x03004360 _08138A40: .4byte 0x02024a60 _08138A44: movs r0, 0x64 muls r0, r5 ldr r1, _08138A5C adds r0, r1 ldr r1, _08138A60 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3A bl pokemon_setattr b _08138C5A .align 2, 0 _08138A5C: .4byte 0x03004360 _08138A60: .4byte 0x02024a60 _08138A64: movs r0, 0x64 muls r0, r5 ldr r1, _08138A7C adds r0, r1 ldr r1, _08138A80 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3B bl pokemon_setattr b _08138C5A .align 2, 0 _08138A7C: .4byte 0x03004360 _08138A80: .4byte 0x02024a60 _08138A84: movs r0, 0x64 muls r0, r5 ldr r1, _08138A9C adds r0, r1 ldr r1, _08138AA0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3C bl pokemon_setattr b _08138C5A .align 2, 0 _08138A9C: .4byte 0x03004360 _08138AA0: .4byte 0x02024a60 _08138AA4: movs r0, 0x64 muls r0, r5 ldr r1, _08138ABC adds r0, r1 ldr r1, _08138AC0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3D bl pokemon_setattr b _08138C5A .align 2, 0 _08138ABC: .4byte 0x03004360 _08138AC0: .4byte 0x02024a60 _08138AC4: movs r0, 0x64 muls r0, r5 ldr r1, _08138ADC adds r0, r1 ldr r1, _08138AE0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3E bl pokemon_setattr b _08138C5A .align 2, 0 _08138ADC: .4byte 0x03004360 _08138AE0: .4byte 0x02024a60 _08138AE4: movs r0, 0x64 muls r0, r5 ldr r1, _08138AFC adds r0, r1 ldr r1, _08138B00 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3F bl pokemon_setattr b _08138C5A .align 2, 0 _08138AFC: .4byte 0x03004360 _08138B00: .4byte 0x02024a60 _08138B04: movs r0, 0x64 muls r0, r5 ldr r1, _08138B1C adds r0, r1 ldr r1, _08138B20 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x16 bl pokemon_setattr b _08138C5A .align 2, 0 _08138B1C: .4byte 0x03004360 _08138B20: .4byte 0x02024a60 _08138B24: movs r0, 0x64 muls r0, r5 ldr r1, _08138B3C adds r0, r1 ldr r1, _08138B40 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x17 bl pokemon_setattr b _08138C5A .align 2, 0 _08138B3C: .4byte 0x03004360 _08138B40: .4byte 0x02024a60 _08138B44: movs r0, 0x64 muls r0, r5 ldr r1, _08138B5C adds r0, r1 ldr r1, _08138B60 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x18 bl pokemon_setattr b _08138C5A .align 2, 0 _08138B5C: .4byte 0x03004360 _08138B60: .4byte 0x02024a60 _08138B64: movs r0, 0x64 muls r0, r5 ldr r1, _08138B7C adds r0, r1 ldr r1, _08138B80 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x21 bl pokemon_setattr b _08138C5A .align 2, 0 _08138B7C: .4byte 0x03004360 _08138B80: .4byte 0x02024a60 _08138B84: movs r0, 0x64 muls r0, r5 ldr r1, _08138B9C adds r0, r1 ldr r1, _08138BA0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2F bl pokemon_setattr b _08138C5A .align 2, 0 _08138B9C: .4byte 0x03004360 _08138BA0: .4byte 0x02024a60 _08138BA4: movs r0, 0x64 muls r0, r5 ldr r1, _08138BBC adds r0, r1 ldr r1, _08138BC0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x30 bl pokemon_setattr b _08138C5A .align 2, 0 _08138BBC: .4byte 0x03004360 _08138BC0: .4byte 0x02024a60 _08138BC4: movs r0, 0x64 muls r0, r5 ldr r1, _08138BDC adds r0, r1 ldr r1, _08138BE0 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x32 bl pokemon_setattr b _08138C5A .align 2, 0 _08138BDC: .4byte 0x03004360 _08138BE0: .4byte 0x02024a60 _08138BE4: movs r0, 0x64 muls r0, r5 ldr r1, _08138BFC adds r0, r1 ldr r1, _08138C00 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x33 bl pokemon_setattr b _08138C5A .align 2, 0 _08138BFC: .4byte 0x03004360 _08138C00: .4byte 0x02024a60 _08138C04: movs r0, 0x64 muls r0, r5 ldr r1, _08138C1C adds r0, r1 ldr r1, _08138C20 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x34 bl pokemon_setattr b _08138C5A .align 2, 0 _08138C1C: .4byte 0x03004360 _08138C20: .4byte 0x02024a60 _08138C24: movs r0, 0x64 muls r0, r5 ldr r1, _08138C3C adds r0, r1 ldr r1, _08138C40 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x35 bl pokemon_setattr b _08138C5A .align 2, 0 _08138C3C: .4byte 0x03004360 _08138C40: .4byte 0x02024a60 _08138C44: movs r0, 0x64 muls r0, r5 ldr r1, _08138C84 adds r0, r1 ldr r1, _08138C88 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x36 bl pokemon_setattr _08138C5A: ldr r2, _08138C8C ldr r0, _08138C88 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _08138C84 adds r0, r2 bl sub_80324F8 add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08138C84: .4byte 0x03004360 _08138C88: .4byte 0x02024a60 _08138C8C: .4byte 0x02024a6a thumb_func_end sub_8138294 thumb_func_start sub_8138C90 sub_8138C90: @ 8138C90 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8138C90 thumb_func_start sub_8138C9C sub_8138C9C: @ 8138C9C push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8138C9C thumb_func_start sub_8138CA8 sub_8138CA8: @ 8138CA8 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8138CA8 thumb_func_start sub_8138CB4 sub_8138CB4: @ 8138CB4 push {r4-r6,lr} ldr r0, _08138CE0 ldr r6, _08138CE4 ldrb r2, [r6] lsls r1, r2, 9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] cmp r0, 0 bne _08138CF0 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x1 bl move_anim_start_t4 ldr r0, _08138CE8 ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r0, _08138CEC str r0, [r1] b _08138D26 .align 2, 0 _08138CE0: .4byte 0x02023a60 _08138CE4: .4byte 0x02024a60 _08138CE8: .4byte 0x03004330 _08138CEC: .4byte sub_813789C _08138CF0: ldr r5, _08138D2C adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08138D30 adds r0, r4 bl FreeSpriteOamMatrix ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldr r1, _08138D34 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 bl dp01_tbl5_exec_completed _08138D26: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08138D2C: .4byte 0x02024be0 _08138D30: .4byte 0x02020004 _08138D34: .4byte 0x03004340 thumb_func_end sub_8138CB4 thumb_func_start sub_8138D38 sub_8138D38: @ 8138D38 push {r4-r6,lr} ldr r4, _08138DE0 ldrb r1, [r4] movs r0, 0x2 bl sub_8031AF4 ldrb r0, [r4] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0x2 bl sub_803C5A0 ldr r0, _08138DE4 ldr r1, _08138DE8 ldrb r1, [r1, 0x8] movs r2, 0x8 subs r2, r1 lsls r2, 18 movs r1, 0xA0 lsls r1, 15 adds r2, r1 asrs r2, 16 movs r1, 0x50 movs r3, 0x1E bl CreateSprite ldr r6, _08138DEC ldrb r1, [r4] adds r1, r6 strb r0, [r1] ldr r5, _08138DF0 ldrb r3, [r4] adds r0, r3, r6 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 lsls r3, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0xF0 strh r1, [r0, 0x24] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08138DF4 strh r1, [r0, 0x2E] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r5, 0x1C adds r0, r5 ldr r1, _08138DF8 str r1, [r0] ldr r1, _08138DFC ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08138E00 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08138DE0: .4byte 0x02024a60 _08138DE4: .4byte 0x02024e8c _08138DE8: .4byte gTrainerBackPicCoords _08138DEC: .4byte 0x02024be0 _08138DF0: .4byte 0x02020004 _08138DF4: .4byte 0x0000fffe _08138DF8: .4byte sub_80313A0 _08138DFC: .4byte 0x03004330 _08138E00: .4byte sub_813741C thumb_func_end sub_8138D38 thumb_func_start sub_8138E04 sub_8138E04: @ 8138E04 push {r4-r6,lr} ldr r4, _08138EAC ldrb r1, [r4] movs r0, 0x2 bl sub_8031AF4 ldrb r0, [r4] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0x2 bl sub_803C5A0 ldr r0, _08138EB0 ldr r1, _08138EB4 ldrb r1, [r1, 0x8] movs r2, 0x8 subs r2, r1 lsls r2, 18 movs r1, 0xA0 lsls r1, 15 adds r2, r1 asrs r2, 16 movs r1, 0x50 movs r3, 0x1E bl CreateSprite ldr r6, _08138EB8 ldrb r1, [r4] adds r1, r6 strb r0, [r1] ldr r5, _08138EBC ldrb r3, [r4] adds r0, r3, r6 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 lsls r3, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08138EC0 strh r1, [r0, 0x24] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x2 strh r1, [r0, 0x2E] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r5, 0x1C adds r0, r5 ldr r1, _08138EC4 str r1, [r0] ldr r1, _08138EC8 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08138ECC str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08138EAC: .4byte 0x02024a60 _08138EB0: .4byte 0x02024e8c _08138EB4: .4byte gTrainerBackPicCoords _08138EB8: .4byte 0x02024be0 _08138EBC: .4byte 0x02020004 _08138EC0: .4byte 0x0000ffa0 _08138EC4: .4byte sub_80313A0 _08138EC8: .4byte 0x03004330 _08138ECC: .4byte sub_8137908 thumb_func_end sub_8138E04 thumb_func_start sub_8138ED0 sub_8138ED0: @ 8138ED0 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8138ED0 thumb_func_start sub_8138EDC sub_8138EDC: @ 8138EDC push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8138EDC thumb_func_start sub_8138EE8 sub_8138EE8: @ 8138EE8 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8138EE8 thumb_func_start sub_8138EF4 sub_8138EF4: @ 8138EF4 push {r4,r5,lr} ldr r1, _08138F30 movs r0, 0x4 strb r0, [r1, 0x8] ldr r1, _08138F34 movs r0, 0x1 strb r0, [r1] ldr r5, _08138F38 ldrb r4, [r5] movs r0, 0x1 bl battle_get_side_with_given_state adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x4 bl move_anim_start_t4 ldr r1, _08138F3C ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08138F40 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08138F30: .4byte 0x02017840 _08138F34: .4byte 0x02024e6d _08138F38: .4byte 0x02024a60 _08138F3C: .4byte 0x03004330 _08138F40: .4byte bx_wait_t5 thumb_func_end sub_8138EF4 thumb_func_start sub_8138F44 sub_8138F44: @ 8138F44 push {r4,r5,lr} ldr r1, _08138F88 ldr r5, _08138F8C ldrb r0, [r5] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r1, [r0] ldr r0, _08138F90 strb r1, [r0, 0x8] ldr r1, _08138F94 movs r0, 0x1 strb r0, [r1] ldrb r4, [r5] movs r0, 0x1 bl battle_get_side_with_given_state adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x4 bl move_anim_start_t4 ldr r1, _08138F98 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08138F9C str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08138F88: .4byte 0x02023a60 _08138F8C: .4byte 0x02024a60 _08138F90: .4byte 0x02017840 _08138F94: .4byte 0x02024e6d _08138F98: .4byte 0x03004330 _08138F9C: .4byte bx_wait_t5 thumb_func_end sub_8138F44 thumb_func_start sub_8138FA0 sub_8138FA0: @ 8138FA0 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8138FA0 thumb_func_start sub_8138FAC sub_8138FAC: @ 8138FAC push {r4-r6,lr} ldr r0, _08139080 mov r12, r0 ldr r6, _08139084 ldrb r2, [r6] lsls r2, 9 adds r0, 0x1 adds r0, r2, r0 ldrb r0, [r0] mov r1, r12 adds r1, 0x2 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 ldr r5, _08139088 mov r1, r12 adds r1, 0x3 adds r2, r1 ldrb r1, [r2] strb r1, [r5] ldr r4, _0813908C ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x4 adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0x5 adds r2, r1 ldrb r1, [r2] lsls r1, 8 orrs r3, r1 strh r3, [r4] ldr r4, _08139090 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x6 adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0x7 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 8 orrs r3, r1 mov r1, r12 adds r1, 0x8 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 16 orrs r3, r1 mov r1, r12 adds r1, 0x9 adds r2, r1 ldrb r1, [r2] lsls r1, 24 orrs r3, r1 str r3, [r4] ldr r3, _08139094 ldrb r1, [r6] lsls r1, 9 mov r2, r12 adds r2, 0xA adds r1, r2 ldrb r1, [r1] strb r1, [r3] ldr r4, _08139098 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0xC adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0xD adds r2, r1 ldrb r1, [r2] lsls r1, 8 orrs r3, r1 strh r3, [r4] ldr r3, _0813909C ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x10 adds r2, r1 str r2, [r3] ldr r3, _081390A0 ldrb r1, [r6] lsls r1, 2 adds r1, r3 ldr r2, [r2] str r2, [r1] ldrb r1, [r5] bl sub_8031720 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _081390A4 bl dp01_tbl5_exec_completed b _081390BE .align 2, 0 _08139080: .4byte 0x02023a60 _08139084: .4byte 0x02024a60 _08139088: .4byte 0x0202f7c4 _0813908C: .4byte 0x0202f7bc _08139090: .4byte 0x0202f7b8 _08139094: .4byte 0x0202f7be _08139098: .4byte 0x0202f7c0 _0813909C: .4byte 0x0202f7b4 _081390A0: .4byte 0x02024e70 _081390A4: ldrb r1, [r6] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _081390C4 adds r0, r1 strb r2, [r0, 0x4] ldr r1, _081390C8 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _081390CC str r1, [r0] _081390BE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081390C4: .4byte 0x02017810 _081390C8: .4byte 0x03004330 _081390CC: .4byte sub_81390D0 thumb_func_end sub_8138FAC thumb_func_start sub_81390D0 sub_81390D0: @ 81390D0 push {r4-r7,lr} mov r7, r8 push {r7} ldr r2, _0813910C ldr r5, _08139110 ldrb r3, [r5] lsls r1, r3, 9 adds r0, r2, 0x1 mov r8, r0 adds r0, r1, r0 ldrb r4, [r0] adds r7, r2, 0x2 adds r1, r7 ldrb r0, [r1] lsls r0, 8 orrs r4, r0 lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r6, _08139114 adds r0, r6 ldrb r2, [r0, 0x4] cmp r2, 0x1 beq _08139150 cmp r2, 0x1 bgt _08139118 cmp r2, 0 beq _08139122 b _081391FC .align 2, 0 _0813910C: .4byte 0x02023a60 _08139110: .4byte 0x02024a60 _08139114: .4byte 0x02017810 _08139118: cmp r2, 0x2 beq _08139176 cmp r2, 0x3 beq _081391C4 b _081391FC _08139122: lsls r0, r3, 2 adds r1, r6, 0 subs r1, 0x10 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08139140 adds r0, r3, 0 adds r1, r3, 0 adds r2, r3, 0 movs r3, 0x5 bl move_anim_start_t4 _08139140: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 movs r0, 0x1 strb r0, [r1, 0x4] b _081391FC _08139150: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _081391FC movs r0, 0 bl sub_80326EC adds r0, r4, 0 bl move_anim_start_t1 ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 movs r0, 0x2 strb r0, [r1, 0x4] b _081391FC _08139176: ldr r0, _081391BC ldr r0, [r0] bl _call_via_r0 ldr r0, _081391C0 ldrb r0, [r0] cmp r0, 0 bne _081391FC movs r0, 0x1 bl sub_80326EC ldrb r2, [r5] lsls r0, r2, 2 adds r1, r6, 0 subs r1, 0x10 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _081391AA adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 bl move_anim_start_t4 _081391AA: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 movs r0, 0x3 strb r0, [r1, 0x4] b _081391FC .align 2, 0 _081391BC: .4byte 0x0202f7ac _081391C0: .4byte 0x0202f7b1 _081391C4: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _081391FC bl sub_8031F24 ldrb r0, [r5] lsls r2, r0, 9 mov r3, r8 adds r1, r2, r3 ldrb r1, [r1] adds r2, r7 ldrb r2, [r2] lsls r2, 8 orrs r1, r2 bl sub_80324BC ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 strb r4, [r0, 0x4] bl dp01_tbl5_exec_completed _081391FC: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81390D0 thumb_func_start sub_8139208 sub_8139208: @ 8139208 push {r4,r5,lr} sub sp, 0x4 ldr r0, _08139254 movs r1, 0 strh r1, [r0] ldr r0, _08139258 strh r1, [r0] ldr r5, _0813925C ldrb r0, [r5] lsls r0, 9 ldr r1, _08139260 adds r4, r0, r1 ldrh r0, [r4] cmp r0, 0x2 bne _0813922A bl sub_814A7FC _0813922A: ldrh r0, [r4] bl sub_8120AA8 ldr r0, _08139264 ldr r1, _08139268 movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r1, _0813926C ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08139270 str r1, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08139254: .4byte 0x030042a4 _08139258: .4byte 0x030042a0 _0813925C: .4byte 0x02024a60 _08139260: .4byte 0x02023a62 _08139264: .4byte 0x03004210 _08139268: .4byte 0x020238cc _0813926C: .4byte 0x03004330 _08139270: .4byte sub_8137454 thumb_func_end sub_8139208 thumb_func_start dp01t_11_5_message_for_player_only dp01t_11_5_message_for_player_only: @ 8139274 push {lr} ldr r0, _0813928C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08139290 bl sub_8139208 b _08139294 .align 2, 0 _0813928C: .4byte 0x02024a60 _08139290: bl dp01_tbl5_exec_completed _08139294: pop {r0} bx r0 thumb_func_end dp01t_11_5_message_for_player_only thumb_func_start sub_8139298 sub_8139298: @ 8139298 push {r4,r5,lr} sub sp, 0x8 ldr r0, _0813934C movs r2, 0 strh r2, [r0] ldr r1, _08139350 movs r0, 0xA0 strh r0, [r1] ldr r4, _08139354 movs r5, 0 strb r2, [r4, 0x6] movs r0, 0x1B str r0, [sp] movs r0, 0x12 str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0xA movs r2, 0x2 movs r3, 0xF bl FillWindowRect_DefaultPalette movs r0, 0x10 str r0, [sp] movs r0, 0x24 str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0xA movs r2, 0x2 movs r3, 0x23 bl FillWindowRect_DefaultPalette ldr r1, _08139358 ldr r0, _0813935C ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _08139360 str r1, [r0] ldr r1, _08139364 movs r2, 0xC8 lsls r2, 1 movs r0, 0x23 str r0, [sp] adds r0, r4, 0 movs r3, 0x12 bl InitWindow adds r0, r4, 0 bl sub_8002F44 ldr r1, _08139368 ldr r3, _0813936C str r5, [sp] movs r0, 0 movs r2, 0xC bl sub_814A5C0 movs r4, 0 _0813930C: lsls r0, r4, 24 lsrs r0, 24 bl nullsub_8 adds r4, 0x1 cmp r4, 0x3 ble _0813930C movs r0, 0 movs r1, 0 bl sub_802E3E4 ldr r0, _08139370 bl get_battle_strings_ ldr r4, _08139354 ldr r1, _08139374 movs r2, 0xDC lsls r2, 1 movs r0, 0x23 str r0, [sp] adds r0, r4, 0 movs r3, 0x2 bl InitWindow adds r0, r4, 0 bl sub_8002F44 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813934C: .4byte 0x030042a4 _08139350: .4byte 0x030042a0 _08139354: .4byte 0x03004210 _08139358: .4byte 0x03004330 _0813935C: .4byte 0x02024a60 _08139360: .4byte sub_81372BC _08139364: .4byte gUnknown_08400CF3 _08139368: .4byte 0x0000ffff _0813936C: .4byte 0x00002d9f _08139370: .4byte gUnknown_08400CCC _08139374: .4byte 0x020238cc thumb_func_end sub_8139298 thumb_func_start sub_8139378 sub_8139378: @ 8139378 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139378 thumb_func_start sub_8139384 sub_8139384: @ 8139384 push {r4,r5,lr} ldr r5, _08139398 ldr r0, _0813939C adds r4, r5, r0 ldrb r0, [r4] cmp r0, 0 beq _081393A0 cmp r0, 0x1 beq _081393B2 b _081393DE .align 2, 0 _08139398: .4byte 0x02000000 _0813939C: .4byte 0x000160a9 _081393A0: bl sub_80304A8 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r0, _081393E4 adds r1, r5, r0 movs r0, 0x50 strb r0, [r1] _081393B2: ldr r1, _081393E8 ldr r0, _081393E4 adds r1, r0 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bne _081393DE bl sub_814A7FC movs r0, 0x5 bl audio_play movs r2, 0x80 lsls r2, 1 movs r0, 0x1 movs r1, 0xA bl dp01_build_cmdbuf_x21_a_bb bl dp01_tbl5_exec_completed _081393DE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081393E4: .4byte 0x000160ab _081393E8: .4byte 0x02000000 thumb_func_end sub_8139384 thumb_func_start sub_81393EC sub_81393EC: @ 81393EC push {lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0813941C ldr r2, _08139420 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _08139424 str r1, [r0] ldr r1, _08139428 ldrb r0, [r2] strb r0, [r1] add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0813941C: .4byte 0x03004330 _08139420: .4byte 0x02024a60 _08139424: .4byte sub_81374C4 _08139428: .4byte 0x02024e6c thumb_func_end sub_81393EC thumb_func_start sub_813942C sub_813942C: @ 813942C push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_813942C thumb_func_start sub_8139438 sub_8139438: @ 8139438 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139438 thumb_func_start sub_8139444 sub_8139444: @ 8139444 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 movs r0, 0 bl load_gfxc_health_bar ldr r3, _081394BC ldr r0, _081394C0 mov r9, r0 ldrb r4, [r0] lsls r2, r4, 9 adds r0, r3, 0x2 adds r0, r2, r0 ldrb r1, [r0] adds r3, 0x3 adds r2, r3 ldrb r0, [r2] lsls r0, 8 orrs r1, r0 lsls r1, 16 asrs r7, r1, 16 ldr r0, _081394C4 cmp r7, r0 beq _081394D4 ldr r6, _081394C8 lsls r0, r4, 1 adds r0, r6 ldrh r0, [r0] movs r5, 0x64 muls r0, r5 ldr r4, _081394CC adds r0, r4 movs r1, 0x3A bl PokemonGetField mov r8, r0 mov r1, r9 ldrb r0, [r1] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 adds r0, r4 movs r1, 0x39 bl PokemonGetField adds r3, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r1, _081394D0 adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] mov r2, r8 bl sub_8043D84 b _0813950E .align 2, 0 _081394BC: .4byte 0x02023a60 _081394C0: .4byte 0x02024a60 _081394C4: .4byte 0x00007fff _081394C8: .4byte 0x02024a6a _081394CC: .4byte 0x03004360 _081394D0: .4byte 0x03004340 _081394D4: ldr r1, _0813952C lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08139530 adds r0, r1 movs r1, 0x3A bl PokemonGetField adds r2, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r4, _08139534 adds r1, r0, r4 ldrb r1, [r1] str r7, [sp] movs r3, 0 bl sub_8043D84 mov r1, r9 ldrb r0, [r1] adds r0, r4 ldrb r0, [r0] movs r1, 0 movs r2, 0 bl sub_80440EC _0813950E: ldr r1, _08139538 ldr r0, _0813953C ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _08139540 str r1, [r0] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813952C: .4byte 0x02024a6a _08139530: .4byte 0x03004360 _08139534: .4byte 0x03004340 _08139538: .4byte 0x03004330 _0813953C: .4byte 0x02024a60 _08139540: .4byte sub_81377B0 thumb_func_end sub_8139444 thumb_func_start sub_8139544 sub_8139544: @ 8139544 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139544 thumb_func_start sub_8139550 sub_8139550: @ 8139550 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139550 thumb_func_start sub_813955C sub_813955C: @ 813955C push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_813955C thumb_func_start sub_8139568 sub_8139568: @ 8139568 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139568 thumb_func_start sub_8139574 sub_8139574: @ 8139574 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139574 thumb_func_start sub_8139580 sub_8139580: @ 8139580 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139580 thumb_func_start sub_813958C sub_813958C: @ 813958C push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_813958C thumb_func_start sub_8139598 sub_8139598: @ 8139598 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139598 thumb_func_start sub_81395A4 sub_81395A4: @ 81395A4 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_81395A4 thumb_func_start sub_81395B0 sub_81395B0: @ 81395B0 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_81395B0 thumb_func_start sub_81395BC sub_81395BC: @ 81395BC push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_81395BC thumb_func_start sub_81395C8 sub_81395C8: @ 81395C8 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_81395C8 thumb_func_start sub_81395D4 sub_81395D4: @ 81395D4 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_81395D4 thumb_func_start sub_81395E0 sub_81395E0: @ 81395E0 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_81395E0 thumb_func_start sub_81395EC sub_81395EC: @ 81395EC push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_81395EC thumb_func_start sub_81395F8 sub_81395F8: @ 81395F8 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_81395F8 thumb_func_start sub_8139604 sub_8139604: @ 8139604 push {r4,lr} ldr r3, _0813962C ldr r2, _08139630 ldr r4, _08139634 ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _08139638 bl dp01_tbl5_exec_completed b _08139662 .align 2, 0 _0813962C: .4byte 0x02020004 _08139630: .4byte 0x02024be0 _08139634: .4byte 0x02024a60 _08139638: ldr r1, _08139668 movs r0, 0x1 strb r0, [r1] ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0 strh r1, [r0, 0x30] ldrb r0, [r4] bl sub_8047858 ldr r1, _0813966C ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08139670 str r1, [r0] _08139662: pop {r4} pop {r0} bx r0 .align 2, 0 _08139668: .4byte 0x02024e6d _0813966C: .4byte 0x03004330 _08139670: .4byte bx_blink_t5 thumb_func_end sub_8139604 thumb_func_start sub_8139674 sub_8139674: @ 8139674 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139674 thumb_func_start sub_8139680 sub_8139680: @ 8139680 push {lr} ldr r2, _081396A8 ldr r0, _081396AC ldrb r1, [r0] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 bl audio_play bl dp01_tbl5_exec_completed pop {r0} bx r0 .align 2, 0 _081396A8: .4byte 0x02023a60 _081396AC: .4byte 0x02024a60 thumb_func_end sub_8139680 thumb_func_start sub_81396B0 sub_81396B0: @ 81396B0 push {lr} ldr r2, _081396D8 ldr r0, _081396DC ldrb r1, [r0] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 bl fanfare_play bl dp01_tbl5_exec_completed pop {r0} bx r0 .align 2, 0 _081396D8: .4byte 0x02023a60 _081396DC: .4byte 0x02024a60 thumb_func_end sub_81396B0 thumb_func_start sub_81396E0 sub_81396E0: @ 81396E0 push {lr} ldr r1, _08139710 ldr r0, _08139714 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08139718 adds r0, r1 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r0, 16 movs r1, 0x19 bl cry_related bl dp01_tbl5_exec_completed pop {r0} bx r0 .align 2, 0 _08139710: .4byte 0x02024a6a _08139714: .4byte 0x02024a60 _08139718: .4byte 0x03004360 thumb_func_end sub_81396E0 thumb_func_start dp01t_2E_5_battle_intro dp01t_2E_5_battle_intro: @ 813971C push {lr} ldr r1, _08139744 ldr r0, _08139748 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] bl sub_80E43C0 ldr r2, _0813974C ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] bl dp01_tbl5_exec_completed pop {r0} bx r0 .align 2, 0 _08139744: .4byte 0x02023a60 _08139748: .4byte 0x02024a60 _0813974C: .4byte 0x02024de8 thumb_func_end dp01t_2E_5_battle_intro thumb_func_start sub_8139750 sub_8139750: @ 8139750 push {r4-r7,lr} ldr r6, _08139880 ldr r7, _08139884 ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _08139888 adds r0, r5 bl oamt_add_pos2_onto_pos1 ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x32 strh r1, [r0, 0x2E] ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _0813988C strh r1, [r0, 0x32] ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r0, 0x22] strh r1, [r0, 0x36] ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08139890 str r1, [r0] ldrb r2, [r7] adds r0, r2, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x38] ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08139894 bl oamt_set_x3A_32 ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x1 bl StartSpriteAnim ldr r0, _08139898 bl AllocSpritePalette adds r4, r0, 0 lsls r4, 24 ldr r0, _0813989C ldr r0, [r0, 0x10] lsrs r4, 20 movs r2, 0x80 lsls r2, 1 adds r1, r4, r2 movs r2, 0x20 bl LoadCompressedPalette ldrb r0, [r7] adds r0, r6 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r4 strb r0, [r1, 0x5] ldr r0, _081398A0 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r4, _081398A4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 ldrb r0, [r7] strh r0, [r1, 0x8] ldrb r3, [r7] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r2, _081398A8 adds r0, r2 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08139864 ldr r0, _081398AC adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 ldr r1, _081398B0 str r1, [r0] _08139864: adds r2, 0x30 ldrb r0, [r2, 0x9] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x9] ldr r1, _081398B4 ldrb r0, [r7] lsls r0, 2 adds r0, r1 ldr r1, _081398B8 str r1, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08139880: .4byte 0x02024be0 _08139884: .4byte 0x02024a60 _08139888: .4byte 0x02020004 _0813988C: .4byte 0x0000ffd8 _08139890: .4byte sub_8078B34 _08139894: .4byte sub_8030E38 _08139898: .4byte 0x0000d6f8 _0813989C: .4byte gTrainerBackPicPaletteTable _081398A0: .4byte sub_8139A2C _081398A4: .4byte 0x03004b20 _081398A8: .4byte 0x02017810 _081398AC: .4byte 0x02024e68 _081398B0: .4byte sub_8044CA0 _081398B4: .4byte 0x03004330 _081398B8: .4byte nullsub_91 thumb_func_end sub_8139750 thumb_func_start sub_81398BC sub_81398BC: @ 81398BC push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 lsls r0, r6, 2 ldr r1, _08139A00 adds r0, r1 movs r1, 0 strh r1, [r0, 0x2] ldr r0, _08139A04 lsls r2, r6, 1 adds r2, r0 ldr r0, _08139A08 lsls r1, r6, 9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] strh r0, [r2] ldrh r1, [r2] movs r0, 0x64 muls r0, r1 ldr r1, _08139A0C adds r0, r1 movs r1, 0xB bl PokemonGetField mov r8, r0 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r0, _08139A10 bl object_new_hidden_with_callback ldr r1, _08139A14 mov r9, r1 add r9, r6 mov r1, r9 strb r0, [r1] adds r0, r6, 0 bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl gpu_pal_obj_decompress_and_apply ldr r0, _08139A18 mov r10, r0 adds r0, r6, 0 movs r1, 0x2 bl sub_8077ABC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 bl sub_8077F68 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r10 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite ldr r4, _08139A1C adds r4, r6, r4 strb r0, [r4] ldr r5, _08139A20 mov r0, r9 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r4] strh r1, [r0, 0x30] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x2E] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x32] ldrb r0, [r4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 lsls r3, r6, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08139A24 adds r6, r1 ldrb r1, [r6] bl StartSpriteAnim ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08139A28 str r1, [r0] movs r0, 0 movs r1, 0xFF bl sub_8046400 mov r1, r9 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x2E] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08139A00: .4byte 0x02017800 _08139A04: .4byte 0x02024a6a _08139A08: .4byte 0x02023a60 _08139A0C: .4byte 0x03004360 _08139A10: .4byte sub_80312F0 _08139A14: .4byte 0x0300434c _08139A18: .4byte 0x02024e8c _08139A1C: .4byte 0x02024be0 _08139A20: .4byte 0x02020004 _08139A24: .4byte 0x02024e84 _08139A28: .4byte SpriteCallbackDummy thumb_func_end sub_81398BC thumb_func_start sub_8139A2C sub_8139A2C: @ 8139A2C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _08139A4C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r1, r0, r1 ldrh r2, [r1, 0xA] movs r3, 0xA ldrsh r0, [r1, r3] cmp r0, 0x1E bgt _08139A50 adds r0, r2, 0x1 strh r0, [r1, 0xA] b _08139A86 .align 2, 0 _08139A4C: .4byte 0x03004b20 _08139A50: ldr r4, _08139A8C ldrb r5, [r4] ldrh r0, [r1, 0x8] strb r0, [r4] ldr r0, _08139A90 ldrb r1, [r4] lsls r2, r1, 9 adds r0, 0x1 adds r2, r0 ldr r0, _08139A94 lsls r1, 1 adds r1, r0 ldrh r0, [r1] strb r0, [r2] ldrb r0, [r4] bl sub_81398BC ldr r1, _08139A98 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08139A9C str r1, [r0] strb r5, [r4] adds r0, r6, 0 bl DestroyTask _08139A86: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08139A8C: .4byte 0x02024a60 _08139A90: .4byte 0x02023a60 _08139A94: .4byte 0x02024a6a _08139A98: .4byte 0x03004330 _08139A9C: .4byte sub_8137538 thumb_func_end sub_8139A2C thumb_func_start sub_8139AA0 sub_8139AA0: @ 8139AA0 push {r4,r5,lr} ldr r1, _08139AC8 ldr r0, _08139ACC ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08139AD0 adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08139AD0 bl dp01_tbl5_exec_completed b _08139B0A .align 2, 0 _08139AC8: .4byte 0x02023a60 _08139ACC: .4byte 0x02024a60 _08139AD0: ldr r5, _08139B10 ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08139B14 adds r0, r1 ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] ldrb r0, [r5] lsls r4, r0, 9 ldr r3, _08139B18 adds r1, r4, r3 subs r2, r3, 0x3 adds r2, r4, r2 ldrb r2, [r2] subs r3, 0x2 adds r4, r3 ldrb r3, [r4] bl sub_8044804 ldr r2, _08139B1C ldrb r1, [r5] adds r1, r2 strb r0, [r1] bl dp01_tbl5_exec_completed _08139B0A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08139B10: .4byte 0x02024a60 _08139B14: .4byte 0x02017810 _08139B18: .4byte 0x02023a64 _08139B1C: .4byte 0x02024e68 thumb_func_end sub_8139AA0 thumb_func_start sub_8139B20 sub_8139B20: @ 8139B20 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139B20 thumb_func_start sub_8139B2C sub_8139B2C: @ 8139B2C push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139B2C thumb_func_start sub_8139B38 sub_8139B38: @ 8139B38 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139B38 thumb_func_start sub_8139B44 sub_8139B44: @ 8139B44 push {r4-r6,lr} sub sp, 0x4 ldr r5, _08139B7C ldr r6, _08139B80 ldrb r2, [r6] lsls r1, r2, 9 adds r0, r5, 0x1 adds r0, r1, r0 ldrb r3, [r0] adds r0, r5, 0x2 adds r0, r1, r0 ldrb r4, [r0] adds r5, 0x3 adds r1, r5 ldrb r0, [r1] lsls r0, 8 orrs r4, r0 str r4, [sp] adds r0, r2, 0 adds r1, r2, 0 bl move_anim_start_t3 lsls r0, 24 cmp r0, 0 beq _08139B84 bl dp01_tbl5_exec_completed b _08139B90 .align 2, 0 _08139B7C: .4byte 0x02023a60 _08139B80: .4byte 0x02024a60 _08139B84: ldr r0, _08139B98 ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r0, _08139B9C str r0, [r1] _08139B90: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08139B98: .4byte 0x03004330 _08139B9C: .4byte sub_8137940 thumb_func_end sub_8139B44 thumb_func_start sub_8139BA0 sub_8139BA0: @ 8139BA0 push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139BA0 thumb_func_start sub_8139BAC sub_8139BAC: @ 8139BAC push {lr} bl dp01_tbl5_exec_completed pop {r0} bx r0 thumb_func_end sub_8139BAC thumb_func_start sub_8139BB8 sub_8139BB8: @ 8139BB8 push {r4,lr} ldr r2, _08139BFC ldr r1, _08139C00 ldr r4, _08139C04 ldrb r0, [r4] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] strb r0, [r2] movs r0, 0x5 bl sub_8074D28 movs r0, 0x3 bl BeginFastPaletteFade bl dp01_tbl5_exec_completed ldr r0, _08139C08 ldrh r1, [r0] movs r0, 0x6 ands r0, r1 cmp r0, 0x2 bne _08139BF4 ldr r0, _08139C0C ldrb r1, [r4] lsls r1, 2 adds r1, r0 ldr r0, _08139C10 str r0, [r1] _08139BF4: pop {r4} pop {r0} bx r0 .align 2, 0 _08139BFC: .4byte 0x02024d26 _08139C00: .4byte 0x02023a60 _08139C04: .4byte 0x02024a60 _08139C08: .4byte 0x020239f8 _08139C0C: .4byte 0x03004330 _08139C10: .4byte sub_813746C thumb_func_end sub_8139BB8 thumb_func_start nullsub_80 nullsub_80: @ 8139C14 bx lr thumb_func_end nullsub_80 thumb_func_start sub_8139C18 sub_8139C18: @ 8139C18 push {r4-r6,lr} movs r4, 0 ldr r0, _08139C6C movs r1, 0x32 bl sub_80A9684 ldr r1, _08139C70 ldrh r0, [r1] cmp r0, 0 beq _08139C64 ldrh r0, [r1, 0x2] cmp r0, 0 beq _08139C64 adds r5, r1, 0 adds r6, r5, 0x2 _08139C36: lsls r1, r4, 2 adds r0, r1, r5 ldrh r0, [r0] adds r1, r6 ldrh r1, [r1] bl sub_80A9760 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08139C64 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 lsls r1, r4, 2 adds r0, r1, r5 ldrh r0, [r0] cmp r0, 0 beq _08139C64 adds r0, r1, r6 ldrh r0, [r0] cmp r0, 0 bne _08139C36 _08139C64: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08139C6C: .4byte 0x02025bcc _08139C70: .4byte gUnknown_084062F0 thumb_func_end sub_8139C18 thumb_func_start sub_8139C74 sub_8139C74: @ 8139C74 push {lr} ldr r1, _08139C9C ldr r0, _08139CA0 str r0, [r1] ldr r1, _08139CA4 movs r0, 0x4 strb r0, [r1] ldr r0, _08139CA8 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r1, _08139CAC ldr r2, _08139CB0 movs r3, 0 bl DisplayItemMessageOnField pop {r0} bx r0 .align 2, 0 _08139C9C: .4byte 0x02039314 _08139CA0: .4byte gUnknown_084062B8 _08139CA4: .4byte 0x030007b4 _08139CA8: .4byte TaskDummy _08139CAC: .4byte gUnknown_0840E6B5 _08139CB0: .4byte sub_8139CF4 thumb_func_end sub_8139C74 thumb_func_start sub_8139CB4 sub_8139CB4: @ 8139CB4 push {lr} ldr r1, _08139CDC ldr r0, _08139CE0 str r0, [r1] ldr r1, _08139CE4 movs r0, 0x3 strb r0, [r1] ldr r0, _08139CE8 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r1, _08139CEC ldr r2, _08139CF0 movs r3, 0 bl DisplayItemMessageOnField pop {r0} bx r0 .align 2, 0 _08139CDC: .4byte 0x02039314 _08139CE0: .4byte gUnknown_084062BC _08139CE4: .4byte 0x030007b4 _08139CE8: .4byte TaskDummy _08139CEC: .4byte gUnknown_0840E6B5 _08139CF0: .4byte sub_8139CF4 thumb_func_end sub_8139CB4 thumb_func_start sub_8139CF4 sub_8139CF4: @ 8139CF4 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _08139D50 ldrb r3, [r5] lsls r3, 1 adds r3, 0x1 lsls r3, 24 lsrs r3, 24 movs r0, 0 movs r1, 0 movs r2, 0xA bl DrawDefaultWindow ldrb r2, [r5] ldr r3, _08139D54 ldr r0, _08139D58 ldr r0, [r0] str r0, [sp] movs r0, 0x1 movs r1, 0x1 bl sub_80728E4 ldrb r3, [r5] movs r0, 0 str r0, [sp] movs r0, 0x9 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl InitMenu ldr r1, _08139D5C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08139D60 str r1, [r0] add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08139D50: .4byte 0x030007b4 _08139D54: .4byte gUnknown_08406298 _08139D58: .4byte 0x02039314 _08139D5C: .4byte 0x03004b20 _08139D60: .4byte sub_8139D64 thumb_func_end sub_8139CF4 thumb_func_start sub_8139D64 sub_8139D64: @ 8139D64 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r4, r5, 0 ldr r2, _08139D88 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08139D8C movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 bl MoveMenuCursor b _08139E10 .align 2, 0 _08139D88: .4byte 0x03001770 _08139D8C: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08139DA2 movs r0, 0x5 bl audio_play movs r0, 0x1 bl MoveMenuCursor b _08139E10 _08139DA2: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08139DE0 bl sub_8072DEC movs r0, 0x5 bl audio_play ldr r4, _08139DD8 bl GetMenuCursorPos lsls r0, 24 lsrs r0, 24 ldr r1, _08139DDC ldr r1, [r1] adds r1, r0 ldrb r0, [r1] lsls r0, 3 adds r4, 0x4 adds r0, r4 ldr r1, [r0] adds r0, r5, 0 bl _call_via_r1 b _08139E10 .align 2, 0 _08139DD8: .4byte gUnknown_08406298 _08139DDC: .4byte 0x02039314 _08139DE0: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08139E10 bl sub_8072DEC movs r0, 0x5 bl audio_play ldr r2, _08139E18 ldr r0, _08139E1C ldrb r0, [r0] ldr r1, _08139E20 ldr r1, [r1] adds r0, r1 subs r0, 0x1 ldrb r0, [r0] lsls r0, 3 adds r2, 0x4 adds r0, r2 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 _08139E10: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08139E18: .4byte gUnknown_08406298 _08139E1C: .4byte 0x030007b4 _08139E20: .4byte 0x02039314 thumb_func_end sub_8139D64 thumb_func_start sub_8139E24 sub_8139E24: @ 8139E24 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _08139E38 ldr r2, _08139E3C movs r3, 0 bl DisplayItemMessageOnField pop {r0} bx r0 .align 2, 0 _08139E38: .4byte gUnknown_0840E6B5 _08139E3C: .4byte sub_8139CF4 thumb_func_end sub_8139E24 thumb_func_start sub_8139E40 sub_8139E40: @ 8139E40 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl sub_8139F58 ldr r1, _08139E64 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08139E68 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08139E64: .4byte 0x03004b20 _08139E68: .4byte sub_8139FD4 thumb_func_end sub_8139E40 thumb_func_start sub_8139E6C sub_8139E6C: @ 8139E6C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 movs r1, 0 movs r2, 0xA movs r3, 0x9 bl Reset bl sub_813AF3C ldr r1, _08139E9C movs r2, 0 strb r0, [r1, 0x3] lsls r0, 24 cmp r0, 0 bne _08139EA8 ldr r1, _08139EA0 ldr r2, _08139EA4 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField b _08139ECA .align 2, 0 _08139E9C: .4byte 0x0201fe00 _08139EA0: .4byte gUnknown_0840FE79 _08139EA4: .4byte sub_8139E24 _08139EA8: strb r2, [r1] strb r2, [r1, 0x2] bl sub_813AF78 adds r0, r4, 0 bl sub_813A240 adds r0, r4, 0 bl sub_813B108 ldr r0, _08139ED0 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08139ED4 str r0, [r1] _08139ECA: pop {r4} pop {r0} bx r0 .align 2, 0 _08139ED0: .4byte 0x03004b20 _08139ED4: .4byte sub_813B174 thumb_func_end sub_8139E6C thumb_func_start sub_8139ED8 sub_8139ED8: @ 8139ED8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0xA movs r3, 0x9 bl Reset adds r0, r4, 0 bl sub_80FE28C pop {r4} pop {r0} bx r0 thumb_func_end sub_8139ED8 thumb_func_start sub_8139EF8 sub_8139EF8: @ 8139EF8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08139F24 ldrb r0, [r0] cmp r0, 0x4 bne _08139F3C movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset ldr r0, _08139F28 ldrb r0, [r0, 0x8] cmp r0, 0 bne _08139F30 ldr r0, _08139F2C bl script_env_1_execute_new_script b _08139F4C .align 2, 0 _08139F24: .4byte 0x030007b4 _08139F28: .4byte gSaveBlock2 _08139F2C: .4byte gUnknown_08152850 _08139F30: ldr r0, _08139F38 bl script_env_1_execute_new_script b _08139F4C .align 2, 0 _08139F38: .4byte gUnknown_08152C75 _08139F3C: movs r0, 0 movs r1, 0 movs r2, 0xA movs r3, 0x9 bl Reset bl script_env_2_enable_and_set_ctx_running _08139F4C: adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 thumb_func_end sub_8139EF8 thumb_func_start sub_8139F58 sub_8139F58: @ 8139F58 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0xA movs r3, 0x9 bl Reset movs r0, 0 movs r1, 0 movs r2, 0xB movs r3, 0x9 bl DrawDefaultWindow ldr r3, _08139FAC movs r0, 0x1 movs r1, 0x1 movs r2, 0x4 bl PrintStringArray str r4, [sp] movs r0, 0xA str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0x4 bl InitMenu ldr r0, _08139FB0 lsls r4, 2 adds r4, r0 ldr r0, [r4] bl sub_8139FB4 add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _08139FAC: .4byte gUnknown_084062C0 _08139FB0: .4byte gUnknown_08406288 thumb_func_end sub_8139F58 thumb_func_start sub_8139FB4 sub_8139FB4: @ 8139FB4 push {r4,lr} adds r4, r0, 0 movs r0, 0x2 movs r1, 0xF movs r2, 0x1B movs r3, 0x12 bl sub_8071EBC adds r0, r4, 0 movs r1, 0x2 movs r2, 0xF bl Print pop {r4} pop {r0} bx r0 thumb_func_end sub_8139FB4 thumb_func_start sub_8139FD4 sub_8139FD4: @ 8139FD4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r4, r5, 0 ldr r2, _08139FF4 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08139FF8 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 b _0813A008 .align 2, 0 _08139FF4: .4byte 0x03001770 _08139FF8: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0813A024 movs r0, 0x5 bl audio_play movs r0, 0x1 _0813A008: bl MoveMenuCursor ldr r4, _0813A020 bl GetMenuCursorPos lsls r0, 24 lsrs r0, 22 adds r0, r4 ldr r0, [r0] bl sub_8139FB4 b _0813A06C .align 2, 0 _0813A020: .4byte gUnknown_08406288 _0813A024: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0813A050 movs r0, 0x5 bl audio_play ldr r4, _0813A04C bl GetMenuCursorPos lsls r0, 24 lsrs r0, 21 adds r4, 0x4 adds r0, r4 ldr r1, [r0] adds r0, r5, 0 bl _call_via_r1 b _0813A06C .align 2, 0 _0813A04C: .4byte gUnknown_084062C0 _0813A050: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0813A06C bl sub_8072DEC movs r0, 0x5 bl audio_play ldr r0, _0813A074 ldr r1, [r0, 0x1C] adds r0, r4, 0 bl _call_via_r1 _0813A06C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813A074: .4byte gUnknown_084062C0 thumb_func_end sub_8139FD4 thumb_func_start sub_813A078 sub_813A078: @ 813A078 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0813A09C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0813A094 bl sub_80A6A30 adds r0, r4, 0 bl DestroyTask _0813A094: pop {r4} pop {r0} bx r0 .align 2, 0 _0813A09C: .4byte 0x0202f388 thumb_func_end sub_813A078 thumb_func_start sub_813A0A0 sub_813A0A0: @ 813A0A0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0813A0C0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _0813A0C4 str r0, [r1] movs r0, 0x1 movs r1, 0 bl fade_screen pop {r0} bx r0 .align 2, 0 _0813A0C0: .4byte 0x03004b20 _0813A0C4: .4byte sub_813A078 thumb_func_end sub_813A0A0 thumb_func_start sub_813A0C8 sub_813A0C8: @ 813A0C8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0813A0E8 ldr r0, _0813A0F0 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0813A0F4 str r0, [r1] _0813A0E8: pop {r4} pop {r0} bx r0 .align 2, 0 _0813A0F0: .4byte 0x03004b20 _0813A0F4: .4byte sub_8139FD4 thumb_func_end sub_813A0C8 thumb_func_start sub_813A0F8 sub_813A0F8: @ 813A0F8 push {lr} bl sub_8071FFC movs r0, 0x1 bl sub_8139F58 ldr r0, _0813A114 movs r1, 0 bl CreateTask bl pal_fill_black pop {r0} bx r0 .align 2, 0 _0813A114: .4byte sub_813A0C8 thumb_func_end sub_813A0F8 thumb_func_start sub_813A118 sub_813A118: @ 813A118 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r6, r0, 3 ldr r7, _0813A174 adds r4, r6, r7 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0xB movs r3, 0x9 bl Reset bl sub_80A96E4 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x4] cmp r0, 0 beq _0813A17C movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl Reset movs r0, 0 strh r0, [r4, 0xC] strh r0, [r4] strh r0, [r4, 0x2] adds r0, r5, 0 bl sub_813A240 adds r0, r5, 0 movs r1, 0 bl sub_813AE6C adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0813A178 str r1, [r0] b _0813A188 .align 2, 0 _0813A174: .4byte 0x03004b28 _0813A178: .4byte sub_813A280 _0813A17C: ldr r1, _0813A190 ldr r2, _0813A194 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField _0813A188: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813A190: .4byte gUnknown_0840FDF6 _0813A194: .4byte sub_8139E40 thumb_func_end sub_813A118 thumb_func_start sub_813A198 sub_813A198: @ 813A198 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r6, r0, 3 ldr r7, _0813A1F8 adds r4, r6, r7 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0xB movs r3, 0x9 bl Reset bl sub_80A96E4 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x4] cmp r0, 0 beq _0813A200 movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl Reset movs r0, 0x2 strh r0, [r4, 0xC] movs r0, 0 strh r0, [r4] strh r0, [r4, 0x2] adds r0, r5, 0 bl sub_813A240 adds r0, r5, 0 movs r1, 0x2 bl sub_813AE6C adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0813A1FC str r1, [r0] b _0813A20C .align 2, 0 _0813A1F8: .4byte 0x03004b28 _0813A1FC: .4byte sub_813A280 _0813A200: ldr r1, _0813A214 ldr r2, _0813A218 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField _0813A20C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813A214: .4byte gUnknown_0840FDF6 _0813A218: .4byte sub_8139E40 thumb_func_end sub_813A198 thumb_func_start sub_813A21C sub_813A21C: @ 813A21C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0xB movs r3, 0x9 bl Reset adds r0, r4, 0 bl sub_8139E24 pop {r4} pop {r0} bx r0 thumb_func_end sub_813A21C thumb_func_start sub_813A240 sub_813A240: @ 813A240 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0813A260 adds r1, r0 ldrh r2, [r1, 0x4] movs r3, 0x4 ldrsh r0, [r1, r3] cmp r0, 0x7 ble _0813A264 movs r0, 0x8 b _0813A266 .align 2, 0 _0813A260: .4byte 0x03004b28 _0813A264: adds r0, r2, 0x1 _0813A266: strh r0, [r1, 0x8] ldr r1, _0813A274 ldrb r0, [r1, 0x3] cmp r0, 0x7 bls _0813A278 movs r0, 0x8 b _0813A27A .align 2, 0 _0813A274: .4byte 0x0201fe00 _0813A278: adds r0, 0x1 _0813A27A: strb r0, [r1, 0x1] pop {r0} bx r0 thumb_func_end sub_813A240 thumb_func_start sub_813A280 sub_813A280: @ 813A280 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0813A2DC adds r4, r0, r1 ldr r2, _0813A2E0 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0813A306 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 beq _0813A2E4 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 bl MoveMenuCursor lsls r0, 24 lsrs r0, 24 strh r0, [r4] ldrh r1, [r4, 0x2] adds r1, r0 lsls r1, 16 lsrs r1, 16 movs r2, 0x12 ldrsh r0, [r4, r2] cmp r0, 0 beq _0813A2CC b _0813A460 _0813A2CC: lsls r0, r1, 16 asrs r1, r0, 16 movs r2, 0x4 ldrsh r0, [r4, r2] cmp r1, r0 beq _0813A34C b _0813A358 .align 2, 0 _0813A2DC: .4byte 0x03004b28 _0813A2E0: .4byte 0x03001770 _0813A2E4: movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 bne _0813A2EE b _0813A460 _0813A2EE: movs r0, 0x5 bl audio_play ldrh r0, [r4, 0x2] subs r0, 0x1 strh r0, [r4, 0x2] adds r0, r5, 0 bl sub_813AE0C movs r2, 0x12 ldrsh r0, [r4, r2] b _0813A394 _0813A306: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0813A3A0 movs r0, 0 ldrsh r1, [r4, r0] movs r2, 0x8 ldrsh r0, [r4, r2] subs r0, 0x1 cmp r1, r0 beq _0813A370 movs r0, 0x5 bl audio_play movs r0, 0x1 bl MoveMenuCursor lsls r0, 24 lsrs r0, 24 strh r0, [r4] ldrh r1, [r4, 0x2] adds r1, r0 lsls r1, 16 lsrs r1, 16 movs r2, 0x12 ldrsh r0, [r4, r2] cmp r0, 0 beq _0813A340 b _0813A460 _0813A340: lsls r0, r1, 16 asrs r1, r0, 16 movs r2, 0x4 ldrsh r0, [r4, r2] cmp r1, r0 bne _0813A358 _0813A34C: ldr r0, _0813A354 bl sub_813AD58 b _0813A460 .align 2, 0 _0813A354: .4byte 0x0000ffff _0813A358: ldr r0, _0813A36C lsls r1, 2 adds r1, r0 movs r0, 0x93 lsls r0, 3 adds r1, r0 ldrh r0, [r1] bl sub_813AD58 b _0813A460 .align 2, 0 _0813A36C: .4byte 0x02025734 _0813A370: movs r2, 0x2 ldrsh r0, [r4, r2] adds r0, r1 movs r2, 0x4 ldrsh r1, [r4, r2] cmp r0, r1 beq _0813A460 movs r0, 0x5 bl audio_play ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] adds r0, r5, 0 bl sub_813AE0C movs r1, 0x12 ldrsh r0, [r4, r1] _0813A394: cmp r0, 0 beq _0813A460 movs r0, 0 bl MoveMenuCursor b _0813A460 _0813A3A0: ldrh r1, [r2, 0x2E] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0813A3F0 movs r2, 0x12 ldrsh r0, [r4, r2] cmp r0, 0 bne _0813A3E8 movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] adds r0, r1 movs r2, 0x4 ldrsh r1, [r4, r2] cmp r0, r1 beq _0813A3DC movs r0, 0x5 bl audio_play movs r0, 0x1 strh r0, [r4, 0x12] ldrh r0, [r4] ldrh r1, [r4, 0x2] adds r0, r1 strh r0, [r4, 0x10] ldr r0, _0813A3E4 bl sub_813AD58 _0813A3DC: adds r0, r5, 0 bl sub_813ABE8 b _0813A460 .align 2, 0 _0813A3E4: .4byte 0x0000fff7 _0813A3E8: movs r0, 0x5 bl audio_play b _0813A420 _0813A3F0: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0813A430 movs r0, 0x5 bl audio_play movs r2, 0x12 ldrsh r0, [r4, r2] cmp r0, 0 bne _0813A420 movs r1, 0x2 ldrsh r0, [r4, r1] movs r2, 0 ldrsh r1, [r4, r2] adds r0, r1 movs r2, 0x4 ldrsh r1, [r4, r2] cmp r0, r1 beq _0813A44A adds r0, r5, 0 bl sub_813A4B4 b _0813A460 _0813A420: adds r0, r5, 0 movs r1, 0 bl sub_813AA30 adds r0, r5, 0 bl sub_813AE0C b _0813A460 _0813A430: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0813A460 movs r0, 0x5 bl audio_play movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 bne _0813A452 bl sub_8072DEC _0813A44A: adds r0, r5, 0 bl sub_813A468 b _0813A460 _0813A452: adds r0, r6, 0 movs r1, 0x1 bl sub_813AA30 adds r0, r6, 0 bl sub_813AE0C _0813A460: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_813A280 thumb_func_start sub_813A468 sub_813A468: @ 813A468 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 bl BuyMenuFreeMemory movs r0, 0 bl SetBgTilemapBuffer movs r0, 0x1 bl SetBgTilemapBuffer movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset bl sub_8071FFC ldr r0, _0813A4AC lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 ldrb r0, [r4, 0x14] bl sub_8139F58 ldr r0, _0813A4B0 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813A4AC: .4byte 0x03004b20 _0813A4B0: .4byte sub_8139FD4 thumb_func_end sub_813A468 thumb_func_start sub_813A4B4 sub_813A4B4: @ 813A4B4 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _0813A500 adds r4, r0, r1 ldrb r0, [r4, 0x2] ldrb r1, [r4] adds r0, r1 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0 bl sub_80F996C movs r0, 0x1 bl sub_80F996C movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0 bne _0813A518 ldr r1, _0813A504 lsls r0, r5, 2 adds r0, r1 ldr r1, _0813A508 adds r0, r1 ldrh r0, [r0] cmp r0, 0x1 bne _0813A50C strh r0, [r4, 0x6] adds r0, r6, 0 bl sub_813A6FC b _0813A570 .align 2, 0 _0813A500: .4byte 0x03004b28 _0813A504: .4byte 0x02025734 _0813A508: .4byte 0x0000049a _0813A50C: ldr r0, _0813A514 bl sub_813AD58 b _0813A542 .align 2, 0 _0813A514: .4byte 0x0000fffe _0813A518: ldr r1, _0813A534 lsls r0, r5, 2 adds r0, r1 ldr r1, _0813A538 adds r0, r1 ldrh r0, [r0] cmp r0, 0x1 bne _0813A53C strh r0, [r4, 0x6] adds r0, r6, 0 bl sub_813A794 b _0813A570 .align 2, 0 _0813A534: .4byte 0x02025734 _0813A538: .4byte 0x0000049a _0813A53C: ldr r0, _0813A578 bl sub_813AD58 _0813A542: movs r0, 0x1 strh r0, [r4, 0x6] movs r0, 0x6 movs r1, 0x8 movs r2, 0xD movs r3, 0xB bl DrawDefaultWindow ldrh r0, [r4, 0x6] movs r1, 0x3 str r1, [sp] movs r1, 0x1 movs r2, 0x8 movs r3, 0x9 bl sub_80A418C ldr r1, _0813A57C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _0813A580 str r1, [r0] _0813A570: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813A578: .4byte 0x0000fffc _0813A57C: .4byte 0x03004b20 _0813A580: .4byte sub_813A584 thumb_func_end sub_813A4B4 thumb_func_start sub_813A584 sub_813A584: @ 813A584 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r7, r0, 3 ldr r0, _0813A5D0 mov r8, r0 adds r4, r7, r0 ldrb r0, [r4, 0x2] ldrb r1, [r4] adds r0, r1 lsls r0, 24 lsrs r3, r0, 24 adds r6, r3, 0 ldr r2, _0813A5D4 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0813A5E4 movs r0, 0x6 ldrsh r2, [r4, r0] ldr r1, _0813A5D8 lsls r0, r3, 2 adds r0, r1 ldr r1, _0813A5DC adds r0, r1 ldrh r0, [r0] cmp r2, r0 beq _0813A5E0 ldrh r0, [r4, 0x6] adds r0, 0x1 b _0813A64A .align 2, 0 _0813A5D0: .4byte 0x03004b28 _0813A5D4: .4byte 0x03001770 _0813A5D8: .4byte 0x02025734 _0813A5DC: .4byte 0x0000049a _0813A5E0: movs r0, 0x1 b _0813A64A _0813A5E4: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0813A610 ldrh r1, [r4, 0x6] movs r2, 0x6 ldrsh r0, [r4, r2] cmp r0, 0x1 beq _0813A5FA subs r0, r1, 0x1 b _0813A64A _0813A5FA: ldr r0, _0813A608 lsls r1, r3, 2 adds r1, r0 ldr r3, _0813A60C adds r1, r3 ldrh r0, [r1] b _0813A64A .align 2, 0 _0813A608: .4byte 0x02025734 _0813A60C: .4byte 0x0000049a _0813A610: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0813A628 ldrh r0, [r4, 0x6] subs r0, 0xA strh r0, [r4, 0x6] lsls r0, 16 cmp r0, 0 bgt _0813A64C movs r0, 0x1 b _0813A64A _0813A628: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0813A668 ldrh r0, [r4, 0x6] adds r0, 0xA strh r0, [r4, 0x6] movs r0, 0x6 ldrsh r2, [r4, r0] ldr r1, _0813A660 lsls r0, r6, 2 adds r0, r1 ldr r1, _0813A664 adds r0, r1 ldrh r0, [r0] cmp r2, r0 ble _0813A64C _0813A64A: strh r0, [r4, 0x6] _0813A64C: ldrh r0, [r4, 0x6] movs r1, 0x3 str r1, [sp] movs r1, 0x1 movs r2, 0x8 movs r3, 0x9 bl sub_80A418C b _0813A6E8 .align 2, 0 _0813A660: .4byte 0x02025734 _0813A664: .4byte 0x0000049a _0813A668: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0813A69C movs r0, 0x5 bl audio_play movs r0, 0x6 movs r1, 0x6 movs r2, 0xD movs r3, 0xB bl Reset movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0 bne _0813A694 adds r0, r5, 0 bl sub_813A6FC b _0813A6E8 _0813A694: adds r0, r5, 0 bl sub_813A794 b _0813A6E8 _0813A69C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0813A6E8 movs r0, 0x5 bl audio_play movs r0, 0x6 movs r1, 0x6 movs r2, 0xD movs r3, 0xB bl Reset movs r0, 0 bl sub_80F98DC movs r0, 0x1 bl sub_80F98DC ldr r2, _0813A6F4 movs r3, 0x2 ldrsh r0, [r4, r3] movs r3, 0 ldrsh r1, [r4, r3] adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x93 lsls r1, 3 adds r0, r1 ldrh r0, [r0] bl sub_813AD58 mov r0, r8 subs r0, 0x8 adds r0, r7, r0 ldr r1, _0813A6F8 str r1, [r0] _0813A6E8: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813A6F4: .4byte 0x02025734 _0813A6F8: .4byte sub_813A280 thumb_func_end sub_813A584 thumb_func_start sub_813A6FC sub_813A6FC: @ 813A6FC push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r6, r1, 3 ldr r7, _0813A758 adds r4, r6, r7 ldrb r0, [r4, 0x2] ldrb r1, [r4] adds r0, r1 lsls r0, 24 ldr r1, _0813A75C lsrs r0, 22 adds r0, r1 movs r2, 0x93 lsls r2, 3 adds r5, r0, r2 ldrh r0, [r5] ldrh r1, [r4, 0x6] bl sub_80A9424 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0813A770 ldrh r0, [r5] ldr r1, _0813A760 bl itemid_copy_name ldr r0, _0813A764 movs r2, 0x6 ldrsh r1, [r4, r2] movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, _0813A768 bl sub_813AD58 adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0813A76C b _0813A782 .align 2, 0 _0813A758: .4byte 0x03004b28 _0813A75C: .4byte 0x02025734 _0813A760: .4byte 0x020231cc _0813A764: .4byte 0x020232cc _0813A768: .4byte 0x0000fffd _0813A76C: .4byte sub_813A8F0 _0813A770: movs r0, 0 strh r0, [r4, 0x6] ldr r0, _0813A78C bl sub_813AD58 adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0813A790 _0813A782: str r1, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813A78C: .4byte 0x0000fffa _0813A790: .4byte sub_813A984 thumb_func_end sub_813A6FC thumb_func_start sub_813A794 sub_813A794: @ 813A794 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r7, r0, 3 ldr r0, _0813A7FC mov r8, r0 adds r4, r7, r0 ldrb r0, [r4, 0x2] ldrb r1, [r4] adds r0, r1 lsls r0, 24 ldr r1, _0813A800 lsrs r0, 22 adds r0, r1 movs r2, 0x93 lsls r2, 3 adds r5, r0, r2 ldrh r0, [r5] bl itemid_is_unique lsls r0, 24 cmp r0, 0 bne _0813A814 ldrh r0, [r5] ldr r1, _0813A804 bl itemid_copy_name ldr r0, _0813A808 movs r2, 0x6 ldrsh r1, [r4, r2] movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, _0813A80C bl sub_813AD58 movs r0, 0x7 movs r1, 0x6 movs r2, 0x1 bl sub_8072974 ldr r1, _0813A810 adds r0, r6, 0 bl sub_80F914C b _0813A828 .align 2, 0 _0813A7FC: .4byte 0x03004b28 _0813A800: .4byte 0x02025734 _0813A804: .4byte 0x020231cc _0813A808: .4byte 0x020232cc _0813A80C: .4byte 0x0000fff8 _0813A810: .4byte gUnknown_084062E0 _0813A814: movs r0, 0 strh r0, [r4, 0x6] ldr r0, _0813A834 bl sub_813AD58 mov r0, r8 subs r0, 0x8 adds r0, r7, r0 ldr r1, _0813A838 str r1, [r0] _0813A828: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813A834: .4byte 0x0000fff9 _0813A838: .4byte sub_813A8F0 thumb_func_end sub_813A794 thumb_func_start sub_813A83C sub_813A83C: @ 813A83C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x6 movs r1, 0x6 movs r2, 0xD movs r3, 0xB bl Reset ldr r0, _0813A86C bl sub_813AD58 ldr r1, _0813A870 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0813A874 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0813A86C: .4byte 0x0000fffb _0813A870: .4byte 0x03004b20 _0813A874: .4byte sub_813A8F0 thumb_func_end sub_813A83C thumb_func_start sub_813A878 sub_813A878: @ 813A878 push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r6, _0813A8E4 adds r5, r4, r6 movs r0, 0x6 movs r1, 0x6 movs r2, 0xD movs r3, 0xB bl Reset ldrb r3, [r5, 0x8] ldrb r0, [r5] str r0, [sp] movs r0, 0xD str r0, [sp, 0x4] movs r0, 0 movs r1, 0x10 movs r2, 0x2 bl InitMenu movs r0, 0 bl sub_80F98DC movs r0, 0x1 bl sub_80F98DC ldr r2, _0813A8E8 movs r1, 0x2 ldrsh r0, [r5, r1] movs r3, 0 ldrsh r1, [r5, r3] adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x93 lsls r1, 3 adds r0, r1 ldrh r0, [r0] bl sub_813AD58 subs r6, 0x8 adds r4, r6 ldr r0, _0813A8EC str r0, [r4] add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813A8E4: .4byte 0x03004b28 _0813A8E8: .4byte 0x02025734 _0813A8EC: .4byte sub_813A280 thumb_func_end sub_813A878 thumb_func_start sub_813A8F0 sub_813A8F0: @ 813A8F0 push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _0813A97C adds r5, r0, r1 ldr r0, _0813A980 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0813A912 cmp r1, 0x2 bne _0813A972 _0813A912: ldrb r0, [r5, 0x2] ldrb r1, [r5] adds r0, r1 lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x6] bl sub_80A97F4 ldrh r4, [r5, 0x4] bl sub_80A96E4 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x4] lsls r4, 16 asrs r4, 16 cmp r4, r0 beq _0813A952 movs r2, 0x8 ldrsh r0, [r5, r2] movs r2, 0x2 ldrsh r1, [r5, r2] adds r0, r1 cmp r4, r0 bge _0813A952 ldrh r1, [r5, 0x2] movs r2, 0x2 ldrsh r0, [r5, r2] cmp r0, 0 beq _0813A952 subs r0, r1, 0x1 strh r0, [r5, 0x2] _0813A952: adds r0, r6, 0 bl sub_813A240 adds r0, r6, 0 bl sub_813A9EC ldrb r3, [r5, 0x8] ldrb r0, [r5] str r0, [sp] movs r0, 0xD str r0, [sp, 0x4] movs r0, 0 movs r1, 0x10 movs r2, 0x2 bl InitMenu _0813A972: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813A97C: .4byte 0x03004b28 _0813A980: .4byte 0x03001770 thumb_func_end sub_813A8F0 thumb_func_start sub_813A984 sub_813A984: @ 813A984 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r4, r1, 3 ldr r5, _0813A9DC adds r3, r4, r5 ldr r0, _0813A9E0 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0813A9A4 cmp r1, 0x2 bne _0813A9D6 _0813A9A4: ldr r2, _0813A9E4 movs r1, 0x2 ldrsh r0, [r3, r1] movs r6, 0 ldrsh r1, [r3, r6] adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x93 lsls r1, 3 adds r0, r1 ldrh r0, [r0] bl sub_813AD58 movs r0, 0 bl sub_80F98DC movs r0, 0x1 bl sub_80F98DC adds r0, r5, 0 subs r0, 0x8 adds r0, r4, r0 ldr r1, _0813A9E8 str r1, [r0] _0813A9D6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813A9DC: .4byte 0x03004b28 _0813A9E0: .4byte 0x03001770 _0813A9E4: .4byte 0x02025734 _0813A9E8: .4byte sub_813A280 thumb_func_end sub_813A984 thumb_func_start sub_813A9EC sub_813A9EC: @ 813A9EC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x6 movs r1, 0x6 movs r2, 0xD movs r3, 0xB bl Reset movs r0, 0 bl sub_80F98DC movs r0, 0x1 bl sub_80F98DC adds r0, r4, 0 bl sub_813AE0C ldr r1, _0813AA28 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0813AA2C str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0813AA28: .4byte 0x03004b20 _0813AA2C: .4byte sub_813A280 thumb_func_end sub_813A9EC thumb_func_start sub_813AA30 sub_813AA30: @ 813AA30 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r2, r1, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0813AA80 adds r4, r1, r0 ldrb r0, [r4] ldrb r1, [r4, 0x2] adds r0, r1 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0 strh r0, [r4, 0x12] ldrb r0, [r4, 0x4] cmp r0, r5 bls _0813AA88 ldrb r0, [r4, 0x10] cmp r0, r5 beq _0813AA88 cmp r2, 0 bne _0813AA88 ldr r1, _0813AA84 movs r0, 0x10 ldrsh r2, [r4, r0] lsls r2, 2 movs r0, 0x93 lsls r0, 3 adds r1, r0 adds r2, r1 ldr r3, [r2] lsls r0, r5, 2 adds r0, r1 ldr r1, [r0] str r1, [r2] str r3, [r0] b _0813AAB8 .align 2, 0 _0813AA80: .4byte 0x03004b28 _0813AA84: .4byte 0x02025734 _0813AA88: movs r1, 0x4 ldrsh r0, [r4, r1] cmp r5, r0 bne _0813AA9C ldr r0, _0813AA98 bl sub_813AD58 b _0813AAAE .align 2, 0 _0813AA98: .4byte 0x0000ffff _0813AA9C: ldr r0, _0813AAC0 lsls r1, r5, 2 adds r1, r0 movs r2, 0x93 lsls r2, 3 adds r1, r2 ldrh r0, [r1] bl sub_813AD58 _0813AAAE: movs r0, 0x10 ldrsh r1, [r4, r0] movs r2, 0x2 ldrsh r0, [r4, r2] subs r0, r1, r0 _0813AAB8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813AAC0: .4byte 0x02025734 thumb_func_end sub_813AA30 thumb_func_start sub_813AAC4 sub_813AAC4: @ 813AAC4 push {r4-r7,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r6, [sp, 0x14] lsls r4, 16 lsrs r4, 16 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 24 lsrs r3, 24 ldr r0, _0813AAF4 adds r1, r4, 0 adds r2, r5, 0 bl sub_80A4164 cmp r6, 0 beq _0813AAFC ldr r0, _0813AAF8 movs r1, 0x1A adds r2, r7, 0 bl Print b _0813AB06 .align 2, 0 _0813AAF4: .4byte 0x020231cc _0813AAF8: .4byte gUnknown_0840632A _0813AAFC: ldr r0, _0813AB0C movs r1, 0x1A adds r2, r7, 0 bl Print _0813AB06: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813AB0C: .4byte gUnknown_08406327 thumb_func_end sub_813AAC4 thumb_func_start sub_813AB10 sub_813AB10: @ 813AB10 push {lr} adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 ldr r0, _0813AB24 movs r1, 0x19 bl Print pop {r0} bx r0 .align 2, 0 _0813AB24: .4byte gUnknown_08406330 thumb_func_end sub_813AB10 thumb_func_start sub_813AB28 sub_813AB28: @ 813AB28 push {r4,r5,lr} adds r4, r2, 0 lsls r1, 24 lsrs r5, r1, 24 ldrh r0, [r0] ldr r1, _0813AB48 bl itemid_copy_name cmp r4, 0 beq _0813AB50 ldr r0, _0813AB4C movs r1, 0x10 adds r2, r5, 0 bl Print b _0813AB5A .align 2, 0 _0813AB48: .4byte 0x020231cc _0813AB4C: .4byte gUnknown_0840631E _0813AB50: ldr r0, _0813AB60 movs r1, 0x10 adds r2, r5, 0 bl Print _0813AB5A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813AB60: .4byte gUnknown_08406318 thumb_func_end sub_813AB28 thumb_func_start sub_813AB64 sub_813AB64: @ 813AB64 push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 adds r4, r1, 0 adds r5, r2, 0 lsls r4, 24 lsrs r4, 24 adds r1, r4, 0 bl sub_813AB28 ldrh r0, [r6, 0x2] str r5, [sp] movs r1, 0x1 adds r2, r4, 0 movs r3, 0x3 bl sub_813AAC4 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_813AB64 thumb_func_start sub_813AB90 sub_813AB90: @ 813AB90 push {r4,lr} adds r4, r1, 0 lsls r4, 24 lsrs r4, 24 adds r1, r4, 0 bl sub_813AB28 adds r0, r4, 0 bl sub_813AB10 pop {r4} pop {r0} bx r0 thumb_func_end sub_813AB90 thumb_func_start sub_813ABAC sub_813ABAC: @ 813ABAC push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 adds r6, r2, 0 lsls r1, 24 lsrs r5, r1, 24 adds r1, r5, 0 bl sub_813AB28 ldrh r1, [r4] movs r0, 0xA9 lsls r0, 1 cmp r1, r0 bhi _0813ABD8 ldrh r0, [r4, 0x2] str r6, [sp] movs r1, 0x1 adds r2, r5, 0 movs r3, 0x3 bl sub_813AAC4 b _0813ABDE _0813ABD8: adds r0, r5, 0 bl sub_813AB10 _0813ABDE: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_813ABAC thumb_func_start sub_813ABE8 sub_813ABE8: @ 813ABE8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0813AC0C adds r6, r1, r0 movs r0, 0 mov r8, r0 ldrh r5, [r6, 0x2] movs r2, 0x2 ldrsh r1, [r6, r2] b _0813ACC4 .align 2, 0 _0813AC0C: .4byte 0x03004b28 _0813AC10: subs r0, r5, r1 lsls r0, 17 lsrs r0, 16 mov r8, r0 movs r1, 0x4 ldrsh r0, [r6, r1] cmp r5, r0 beq _0813AD04 movs r7, 0 movs r2, 0x12 ldrsh r0, [r6, r2] cmp r0, 0 beq _0813AC34 movs r1, 0x10 ldrsh r0, [r6, r1] cmp r5, r0 bne _0813AC34 movs r7, 0x1 _0813AC34: ldr r0, _0813AC5C lsls r4, r5, 2 adds r0, r4, r0 movs r2, 0x93 lsls r2, 3 adds r0, r2 ldrh r0, [r0] bl sub_80A9670 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r0, 0x4 bhi _0813ACBA lsls r0, 2 ldr r1, _0813AC60 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813AC5C: .4byte 0x02025734 _0813AC60: .4byte _0813AC64 .align 2, 0 _0813AC64: .4byte _0813AC78 .4byte _0813AC78 .4byte _0813ACA8 .4byte _0813AC78 .4byte _0813AC90 _0813AC78: ldr r0, _0813AC8C adds r0, r4, r0 mov r1, r8 adds r1, 0x2 lsls r1, 24 lsrs r1, 24 adds r2, r7, 0 bl sub_813AB64 b _0813ACBA .align 2, 0 _0813AC8C: .4byte 0x02025bcc _0813AC90: ldr r0, _0813ACA4 adds r0, r4, r0 mov r1, r8 adds r1, 0x2 lsls r1, 24 lsrs r1, 24 adds r2, r7, 0 bl sub_813AB90 b _0813ACBA .align 2, 0 _0813ACA4: .4byte 0x02025bcc _0813ACA8: ldr r0, _0813AD00 adds r0, r4, r0 mov r1, r8 adds r1, 0x2 lsls r1, 24 lsrs r1, 24 adds r2, r7, 0 bl sub_813ABAC _0813ACBA: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 movs r0, 0x2 ldrsh r1, [r6, r0] _0813ACC4: movs r2, 0x8 ldrsh r0, [r6, r2] adds r0, r1, r0 cmp r5, r0 blt _0813AC10 _0813ACCE: movs r1, 0x2 ldrsh r0, [r6, r1] subs r0, r5, r0 cmp r0, 0x7 bgt _0813ACEA mov r1, r8 adds r1, 0x4 lsls r1, 24 lsrs r1, 24 movs r0, 0x10 movs r2, 0x1C movs r3, 0x12 bl sub_8071EBC _0813ACEA: movs r2, 0x2 ldrsh r0, [r6, r2] cmp r0, 0 beq _0813AD20 movs r0, 0 movs r1, 0xB8 movs r2, 0x8 bl sub_80F953C b _0813AD26 .align 2, 0 _0813AD00: .4byte 0x02025bcc _0813AD04: ldr r0, _0813AD1C mov r2, r8 adds r2, 0x2 lsls r2, 19 lsrs r2, 16 movs r1, 0x1 str r1, [sp] movs r1, 0x80 movs r3, 0x68 bl sub_8072A18 b _0813ACCE .align 2, 0 _0813AD1C: .4byte gUnknown_0840E645 _0813AD20: movs r0, 0 bl SetBgTilemapBuffer _0813AD26: movs r1, 0x2 ldrsh r0, [r6, r1] movs r2, 0x8 ldrsh r1, [r6, r2] adds r0, r1 movs r2, 0x4 ldrsh r1, [r6, r2] cmp r0, r1 bgt _0813AD44 movs r0, 0x1 movs r1, 0xB8 movs r2, 0x98 bl sub_80F953C b _0813AD4A _0813AD44: movs r0, 0x1 bl SetBgTilemapBuffer _0813AD4A: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_813ABE8 thumb_func_start sub_813AD58 sub_813AD58: @ 813AD58 push {lr} sub sp, 0x8 lsls r0, 16 lsrs r1, r0, 16 ldr r2, _0813AD74 adds r0, r1, r2 cmp r0, 0x8 bhi _0813ADE8 lsls r0, 2 ldr r1, _0813AD78 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813AD74: .4byte 0xffff0009 _0813AD78: .4byte _0813AD7C .align 2, 0 _0813AD7C: .4byte _0813ADE0 .4byte _0813ADD8 .4byte _0813ADD0 .4byte _0813ADC8 .4byte _0813ADC0 .4byte _0813ADB8 .4byte _0813ADB0 .4byte _0813ADA8 .4byte _0813ADA0 _0813ADA0: ldr r1, _0813ADA4 b _0813ADF0 .align 2, 0 _0813ADA4: .4byte gUnknown_0840E697 _0813ADA8: ldr r1, _0813ADAC b _0813ADF0 .align 2, 0 _0813ADAC: .4byte gUnknown_0840FE2E _0813ADB0: ldr r1, _0813ADB4 b _0813ADF0 .align 2, 0 _0813ADB4: .4byte gUnknown_0840FE50 _0813ADB8: ldr r1, _0813ADBC b _0813ADF0 .align 2, 0 _0813ADBC: .4byte gUnknown_0840E89F _0813ADC0: ldr r1, _0813ADC4 b _0813ADF0 .align 2, 0 _0813ADC4: .4byte gUnknown_0840E8B2 _0813ADC8: ldr r1, _0813ADCC b _0813ADF0 .align 2, 0 _0813ADCC: .4byte gUnknown_0840FE0C _0813ADD0: ldr r1, _0813ADD4 b _0813ADF0 .align 2, 0 _0813ADD4: .4byte gUnknown_0840E878 _0813ADD8: ldr r1, _0813ADDC b _0813ADF0 .align 2, 0 _0813ADDC: .4byte gUnknown_0840E8C7 _0813ADE0: ldr r1, _0813ADE4 b _0813ADF0 .align 2, 0 _0813ADE4: .4byte gUnknown_0840E7B3 _0813ADE8: adds r0, r1, 0 bl itemid_get_description adds r1, r0, 0 _0813ADF0: movs r0, 0x30 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] adds r0, r1, 0 movs r1, 0x8 movs r2, 0x68 movs r3, 0x68 bl sub_8072AB0 add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_813AD58 thumb_func_start sub_813AE0C sub_813AE0C: @ 813AE0C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r2, _0813AE48 adds r4, r1, r2 ldrh r1, [r4] ldrh r2, [r4, 0x2] adds r1, r2 lsls r1, 16 lsrs r5, r1, 16 bl sub_813ABE8 movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 bne _0813AE62 lsls r0, r5, 16 asrs r1, r0, 16 movs r2, 0x4 ldrsh r0, [r4, r2] cmp r1, r0 bne _0813AE50 ldr r0, _0813AE4C bl sub_813AD58 b _0813AE62 .align 2, 0 _0813AE48: .4byte 0x03004b28 _0813AE4C: .4byte 0x0000ffff _0813AE50: ldr r0, _0813AE68 lsls r1, 2 adds r1, r0 movs r0, 0x93 lsls r0, 3 adds r1, r0 ldrh r0, [r1] bl sub_813AD58 _0813AE62: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813AE68: .4byte 0x02025734 thumb_func_end sub_813AE0C thumb_func_start sub_813AE6C sub_813AE6C: @ 813AE6C push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 adds r4, r1, 0 lsls r6, 24 lsrs r6, 24 lsls r4, 24 lsrs r4, 24 lsls r5, r6, 2 adds r5, r6 lsls r5, 3 ldr r0, _0813AEF8 adds r5, r0 bl sub_80F944C bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed bl sub_813AF04 movs r0, 0xF movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow movs r0, 0 movs r1, 0xC movs r2, 0xE movs r3, 0x13 bl DrawDefaultWindow movs r0, 0 movs r1, 0 movs r2, 0xB movs r3, 0x3 bl DrawDefaultWindow ldr r0, _0813AEFC movs r1, 0x93 lsls r1, 3 adds r0, r1 ldrh r0, [r0] bl sub_813AD58 ldr r0, _0813AF00 lsls r4, 3 adds r4, r0 ldr r0, [r4] movs r1, 0x1 movs r2, 0x1 bl Print adds r0, r6, 0 bl sub_813ABE8 ldrb r3, [r5, 0x8] ldrb r0, [r5] str r0, [sp] movs r0, 0xD str r0, [sp, 0x4] movs r0, 0 movs r1, 0x10 movs r2, 0x2 bl InitMenu add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813AEF8: .4byte 0x03004b28 _0813AEFC: .4byte 0x02025734 _0813AF00: .4byte gUnknown_084062C0 thumb_func_end sub_813AE6C thumb_func_start sub_813AF04 sub_813AF04: @ 813AF04 push {lr} sub sp, 0x8 ldr r1, _0813AF38 mov r0, sp movs r2, 0x6 bl memcpy add r0, sp, 0x4 movs r1, 0xDF movs r2, 0x2 bl LoadPalette mov r0, sp adds r0, 0x2 movs r1, 0xD1 movs r2, 0x2 bl LoadPalette mov r0, sp movs r1, 0xD8 movs r2, 0x2 bl LoadPalette add sp, 0x8 pop {r0} bx r0 .align 2, 0 _0813AF38: .4byte gUnknown_08406334 thumb_func_end sub_813AF04 thumb_func_start sub_813AF3C sub_813AF3C: @ 813AF3C push {r4,lr} movs r2, 0 movs r1, 0x6 ldr r4, _0813AF70 ldr r3, _0813AF74 _0813AF46: lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, r3 ldrh r0, [r0] cmp r0, 0 beq _0813AF5C adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 _0813AF5C: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bls _0813AF46 adds r0, r2, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0813AF70: .4byte 0x02025734 _0813AF74: .4byte 0x00002b6c thumb_func_end sub_813AF3C thumb_func_start sub_813AF78 sub_813AF78: @ 813AF78 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 movs r2, 0x6 _0813AF86: adds r1, r2, 0x1 lsls r0, r1, 24 lsrs r3, r0, 24 mov r10, r1 cmp r3, 0xF bhi _0813AFF4 ldr r0, _0813B010 mov r12, r0 lsls r0, r2, 3 adds r0, r2 lsls r0, 2 add r0, r12 ldr r1, _0813B014 adds r1, r0 mov r8, r1 ldr r2, _0813B018 mov r9, r2 adds r4, r0, r2 _0813AFAA: mov r5, r8 ldrh r0, [r5] cmp r0, 0 bne _0813AFEA mov r1, sp adds r0, r4, 0 ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} lsls r2, r3, 3 adds r2, r3 lsls r2, 2 add r2, r12 add r2, r9 adds r1, r4, 0 adds r0, r2, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} mov r0, sp ldm r0!, {r1,r5,r7} stm r2!, {r1,r5,r7} ldm r0!, {r1,r6,r7} stm r2!, {r1,r6,r7} ldm r0!, {r5-r7} stm r2!, {r5-r7} _0813AFEA: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xF bls _0813AFAA _0813AFF4: mov r1, r10 lsls r0, r1, 24 lsrs r2, r0, 24 cmp r2, 0xE bls _0813AF86 add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813B010: .4byte 0x02025734 _0813B014: .4byte 0x00002b6c _0813B018: .4byte 0x00002b4c thumb_func_end sub_813AF78 thumb_func_start sub_813B01C sub_813B01C: @ 813B01C push {r4-r7,lr} mov r7, r8 push {r7} movs r7, 0 ldr r1, _0813B0B8 ldrb r4, [r1, 0x2] ldrb r0, [r1, 0x1] adds r0, r4, r0 cmp r4, r0 bge _0813B08A adds r6, r1, 0 ldr r0, _0813B0BC mov r8, r0 _0813B036: ldrb r0, [r6, 0x2] subs r0, r4, r0 lsls r0, 17 lsrs r7, r0, 16 adds r0, r7, 0x2 lsls r0, 24 lsrs r5, r0, 24 adds r3, r7, 0x3 lsls r3, 24 lsrs r3, 24 movs r0, 0x15 adds r1, r5, 0 movs r2, 0x1C bl sub_8071EBC ldrb r0, [r6, 0x3] cmp r4, r0 beq _0813B0C4 lsls r1, r4, 3 adds r1, r4 lsls r1, 2 ldr r0, _0813B0C0 adds r1, r0 mov r0, r8 bl StringCopy mov r0, r8 bl sub_814A568 mov r0, r8 movs r1, 0x15 adds r2, r5, 0 bl Print adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldrb r0, [r6, 0x2] ldrb r1, [r6, 0x1] adds r0, r1 cmp r4, r0 blt _0813B036 _0813B08A: ldr r5, _0813B0B8 ldrb r0, [r5, 0x2] subs r0, r4, r0 cmp r0, 0x8 beq _0813B0A4 adds r1, r7, 0x4 lsls r1, 24 lsrs r1, 24 movs r0, 0x15 movs r2, 0x1C movs r3, 0x12 bl sub_8071EBC _0813B0A4: ldrb r0, [r5, 0x2] cmp r0, 0 beq _0813B0D4 movs r0, 0 movs r1, 0xC8 movs r2, 0x8 bl sub_80F953C b _0813B0DA .align 2, 0 _0813B0B8: .4byte 0x0201fe00 _0813B0BC: .4byte 0x020231cc _0813B0C0: .4byte 0x0202836a _0813B0C4: ldr r0, _0813B0D0 movs r1, 0x15 adds r2, r5, 0 bl Print b _0813B08A .align 2, 0 _0813B0D0: .4byte gUnknown_0840E645 _0813B0D4: movs r0, 0 bl SetBgTilemapBuffer _0813B0DA: ldr r0, _0813B0F4 ldrb r1, [r0, 0x2] ldrb r2, [r0, 0x1] adds r1, r2 ldrb r0, [r0, 0x3] cmp r1, r0 bgt _0813B0F8 movs r0, 0x1 movs r1, 0xC8 movs r2, 0x98 bl sub_80F953C b _0813B0FE .align 2, 0 _0813B0F4: .4byte 0x0201fe00 _0813B0F8: movs r0, 0x1 bl SetBgTilemapBuffer _0813B0FE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_813B01C thumb_func_start sub_813B108 sub_813B108: @ 813B108 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80F944C bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset movs r0, 0 movs r1, 0 movs r2, 0x8 movs r3, 0x3 bl DrawDefaultWindow ldr r0, _0813B16C movs r1, 0x1 movs r2, 0x1 bl Print movs r0, 0x14 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow adds r0, r4, 0 bl sub_813B01C ldr r0, _0813B170 ldrb r3, [r0, 0x1] ldrb r0, [r0] str r0, [sp] movs r0, 0x8 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x15 movs r2, 0x2 bl InitMenu add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _0813B16C: .4byte gUnknown_0840FD73 _0813B170: .4byte 0x0201fe00 thumb_func_end sub_813B108 thumb_func_start sub_813B174 sub_813B174: @ 813B174 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r4, r5, 0 ldr r0, _0813B1AC ldrb r1, [r0, 0x7] movs r3, 0x80 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0813B274 ldr r2, _0813B1B0 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0813B1CA ldr r4, _0813B1B4 ldrb r0, [r4] cmp r0, 0 beq _0813B1B8 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 b _0813B1E6 .align 2, 0 _0813B1AC: .4byte 0x0202f388 _0813B1B0: .4byte 0x03001770 _0813B1B4: .4byte 0x0201fe00 _0813B1B8: ldrb r0, [r4, 0x2] cmp r0, 0 beq _0813B274 movs r0, 0x5 bl audio_play ldrb r0, [r4, 0x2] subs r0, 0x1 b _0813B208 _0813B1CA: adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0813B212 ldr r4, _0813B1F0 ldrb r1, [r4] ldrb r0, [r4, 0x1] subs r0, 0x1 cmp r1, r0 beq _0813B1F4 movs r0, 0x5 bl audio_play movs r0, 0x1 _0813B1E6: bl MoveMenuCursor strb r0, [r4] b _0813B274 .align 2, 0 _0813B1F0: .4byte 0x0201fe00 _0813B1F4: ldrb r0, [r4, 0x2] adds r0, r1 ldrb r1, [r4, 0x3] cmp r0, r1 beq _0813B274 movs r0, 0x5 bl audio_play ldrb r0, [r4, 0x2] adds r0, 0x1 _0813B208: strb r0, [r4, 0x2] adds r0, r5, 0 bl sub_813B01C b _0813B274 _0813B212: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0813B25C bl sub_8072DEC movs r0, 0x5 bl audio_play ldr r0, _0813B23C ldrb r1, [r0, 0x2] ldrb r2, [r0] adds r1, r2 ldrb r0, [r0, 0x3] cmp r1, r0 bne _0813B240 adds r0, r5, 0 bl sub_813B320 b _0813B274 .align 2, 0 _0813B23C: .4byte 0x0201fe00 _0813B240: bl sub_813B27C ldr r0, _0813B254 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _0813B258 str r0, [r1] b _0813B274 .align 2, 0 _0813B254: .4byte 0x03004b20 _0813B258: .4byte sub_813B294 _0813B25C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0813B274 bl sub_8072DEC movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_813B320 _0813B274: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_813B174 thumb_func_start sub_813B27C sub_813B27C: @ 813B27C push {lr} bl BuyMenuFreeMemory movs r0, 0 bl SetBgTilemapBuffer movs r0, 0x1 bl SetBgTilemapBuffer pop {r0} bx r0 thumb_func_end sub_813B27C thumb_func_start sub_813B294 sub_813B294: @ 813B294 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset ldr r4, _0813B2E8 ldr r1, _0813B2EC ldrb r0, [r1] adds r0, 0x6 ldrb r1, [r1, 0x2] adds r0, r1 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _0813B2F0 adds r1, r0 adds r0, r4, 0 bl StringCopy adds r0, r4, 0 bl sub_814A568 ldr r4, _0813B2F4 ldr r1, _0813B2F8 adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _0813B2FC adds r0, r5, 0 adds r1, r4, 0 movs r3, 0 bl DisplayItemMessageOnField pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813B2E8: .4byte 0x020231cc _0813B2EC: .4byte 0x0201fe00 _0813B2F0: .4byte 0x02028292 _0813B2F4: .4byte 0x020234cc _0813B2F8: .4byte gUnknown_0840FE91 _0813B2FC: .4byte sub_813B348 thumb_func_end sub_813B294 thumb_func_start sub_813B300 sub_813B300: @ 813B300 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset adds r0, r4, 0 bl sub_8139E24 pop {r4} pop {r0} bx r0 thumb_func_end sub_813B300 thumb_func_start sub_813B320 sub_813B320: @ 813B320 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_813B27C ldr r1, _0813B340 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0813B344 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0813B340: .4byte 0x03004b20 _0813B344: .4byte sub_813B300 thumb_func_end sub_813B320 thumb_func_start sub_813B348 sub_813B348: @ 813B348 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 movs r2, 0xC movs r3, 0x9 bl DrawDefaultWindow ldr r3, _0813B394 movs r0, 0x1 movs r1, 0x1 movs r2, 0x4 bl PrintStringArray movs r0, 0 str r0, [sp] movs r0, 0xB str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0x4 bl InitMenu ldr r1, _0813B398 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0813B39C str r1, [r0] add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _0813B394: .4byte gUnknown_084062F8 _0813B398: .4byte 0x03004b20 _0813B39C: .4byte sub_813B3A0 thumb_func_end sub_813B348 thumb_func_start sub_813B3A0 sub_813B3A0: @ 813B3A0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r4, r5, 0 ldr r2, _0813B3C4 ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0813B3C8 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 bl MoveMenuCursor b _0813B420 .align 2, 0 _0813B3C4: .4byte 0x03001770 _0813B3C8: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0813B3DE movs r0, 0x5 bl audio_play movs r0, 0x1 bl MoveMenuCursor b _0813B420 _0813B3DE: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0813B40C movs r0, 0x5 bl audio_play ldr r4, _0813B408 bl GetMenuCursorPos lsls r0, 24 lsrs r0, 21 adds r4, 0x4 adds r0, r4 ldr r1, [r0] adds r0, r5, 0 bl _call_via_r1 b _0813B420 .align 2, 0 _0813B408: .4byte gUnknown_084062F8 _0813B40C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0813B420 movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_813B734 _0813B420: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_813B3A0 thumb_func_start sub_813B428 sub_813B428: @ 813B428 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 movs r1, 0 bl fade_screen ldr r1, _0813B44C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0813B450 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0813B44C: .4byte 0x03004b20 _0813B450: .4byte sub_813B454 thumb_func_end sub_813B428 thumb_func_start sub_813B454 sub_813B454: @ 813B454 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0813B490 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0813B488 ldr r0, _0813B494 ldrb r1, [r0] adds r1, 0x6 ldrb r0, [r0, 0x2] adds r1, r0 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0813B498 adds r0, r1 ldr r1, _0813B49C movs r2, 0x1 bl sub_80F890C adds r0, r4, 0 bl DestroyTask _0813B488: pop {r4} pop {r0} bx r0 .align 2, 0 _0813B490: .4byte 0x0202f388 _0813B494: .4byte 0x0201fe00 _0813B498: .4byte 0x02028280 _0813B49C: .4byte sub_813B4F0 thumb_func_end sub_813B454 thumb_func_start sub_813B4A0 sub_813B4A0: @ 813B4A0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_807D770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0813B4C0 ldr r0, _0813B4C8 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0813B4CC str r0, [r1] _0813B4C0: pop {r4} pop {r0} bx r0 .align 2, 0 _0813B4C8: .4byte 0x03004b20 _0813B4CC: .4byte sub_813B174 thumb_func_end sub_813B4A0 thumb_func_start sub_813B4D0 sub_813B4D0: @ 813B4D0 push {lr} ldr r0, _0813B4EC movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 bl sub_813B108 bl pal_fill_black pop {r0} bx r0 .align 2, 0 _0813B4EC: .4byte sub_813B4A0 thumb_func_end sub_813B4D0 thumb_func_start sub_813B4F0 sub_813B4F0: @ 813B4F0 push {lr} ldr r0, _0813B504 ldr r1, _0813B508 str r1, [r0] ldr r0, _0813B50C bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0813B504: .4byte 0x0300485c _0813B508: .4byte sub_813B4D0 _0813B50C: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_813B4F0 thumb_func_start sub_813B510 sub_813B510: @ 813B510 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC ldr r0, _0813B540 ldr r1, _0813B544 bl StringCopy ldr r0, _0813B548 movs r1, 0x1 movs r2, 0x3 bl Print ldr r1, _0813B54C ldr r2, _0813B550 adds r0, r4, 0 movs r3, 0 bl DisplayItemMessageOnField pop {r4} pop {r0} bx r0 .align 2, 0 _0813B540: .4byte 0x020231cc _0813B544: .4byte gUnknown_0840FE68 _0813B548: .4byte gUnknown_0840633A _0813B54C: .4byte gUnknown_0840FEBB _0813B550: .4byte sub_813B554 thumb_func_end sub_813B510 thumb_func_start sub_813B554 sub_813B554: @ 813B554 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1 bl sub_8072974 ldr r1, _0813B574 adds r0, r4, 0 bl sub_80F914C pop {r4} pop {r0} bx r0 .align 2, 0 _0813B574: .4byte gUnknown_084062E8 thumb_func_end sub_813B554 thumb_func_start sub_813B578 sub_813B578: @ 813B578 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, _0813B5BC ldrb r0, [r4] adds r0, 0x6 ldrb r1, [r4, 0x2] adds r0, r1 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _0813B5C0 adds r6, r1, r0 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1A movs r3, 0xD bl Reset ldrh r0, [r6, 0x20] movs r1, 0x1 bl sub_80A9424 lsls r0, 24 cmp r0, 0 bne _0813B5CC ldr r1, _0813B5C4 ldr r2, _0813B5C8 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField b _0813B602 .align 2, 0 _0813B5BC: .4byte 0x0201fe00 _0813B5C0: .4byte 0x02028280 _0813B5C4: .4byte gUnknown_0840FEE3 _0813B5C8: .4byte sub_813B758 _0813B5CC: ldr r1, _0813B608 ldr r2, _0813B60C adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField adds r0, r6, 0 bl sub_80A2B40 bl sub_813AF78 ldrb r0, [r4, 0x3] subs r0, 0x1 strb r0, [r4, 0x3] ldrb r1, [r4, 0x3] ldrb r0, [r4, 0x1] ldrb r2, [r4, 0x2] adds r0, r2 cmp r1, r0 bge _0813B5FC cmp r2, 0 beq _0813B5FC subs r0, r2, 0x1 strb r0, [r4, 0x2] _0813B5FC: adds r0, r5, 0 bl sub_813A240 _0813B602: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813B608: .4byte gUnknown_0840FEF6 _0813B60C: .4byte sub_813B758 thumb_func_end sub_813B578 thumb_func_start sub_813B610 sub_813B610: @ 813B610 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x14 movs r1, 0x8 movs r2, 0x1A movs r3, 0xD bl Reset adds r0, r4, 0 bl sub_813B758 pop {r4} pop {r0} bx r0 thumb_func_end sub_813B610 thumb_func_start sub_813B630 sub_813B630: @ 813B630 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl calc_player_party_count lsls r0, 24 cmp r0, 0 bne _0813B648 adds r0, r4, 0 bl sub_813B718 b _0813B65E _0813B648: movs r0, 0x1 movs r1, 0 bl fade_screen ldr r0, _0813B664 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0813B668 str r0, [r1] _0813B65E: pop {r4} pop {r0} bx r0 .align 2, 0 _0813B664: .4byte 0x03004b20 _0813B668: .4byte sub_813B66C thumb_func_end sub_813B630 thumb_func_start sub_813B66C sub_813B66C: @ 813B66C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0813B698 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0813B690 ldr r0, _0813B69C bl SetMainCallback2 ldr r1, _0813B6A0 movs r0, 0x3 strb r0, [r1] adds r0, r4, 0 bl DestroyTask _0813B690: pop {r4} pop {r0} bx r0 .align 2, 0 _0813B698: .4byte 0x0202f388 _0813B69C: .4byte sub_808B020 _0813B6A0: .4byte 0x02038561 thumb_func_end sub_813B66C thumb_func_start sub_813B6A4 sub_813B6A4: @ 813B6A4 push {r4-r6,lr} ldr r0, _0813B6F0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r6, r0, 24 ldr r5, _0813B6F4 ldrb r4, [r5, 0x3] bl sub_813AF3C strb r0, [r5, 0x3] bl sub_813AF78 ldrb r0, [r5, 0x3] cmp r4, r0 beq _0813B6DA ldrb r1, [r5, 0x3] ldrb r0, [r5, 0x1] ldrb r2, [r5, 0x2] adds r0, r2 cmp r1, r0 bge _0813B6DA cmp r2, 0 beq _0813B6DA subs r0, r2, 0x1 strb r0, [r5, 0x2] _0813B6DA: adds r0, r6, 0 bl sub_813A240 adds r0, r6, 0 bl sub_813B108 bl pal_fill_black pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813B6F0: .4byte sub_813B4A0 _0813B6F4: .4byte 0x0201fe00 thumb_func_end sub_813B6A4 thumb_func_start sub_813B6F8 sub_813B6F8: @ 813B6F8 push {lr} ldr r0, _0813B70C ldr r1, _0813B710 str r1, [r0] ldr r0, _0813B714 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0813B70C: .4byte 0x0300485c _0813B710: .4byte sub_813B6A4 _0813B714: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_813B6F8 thumb_func_start sub_813B718 sub_813B718: @ 813B718 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0813B72C ldr r2, _0813B730 movs r3, 0 bl DisplayItemMessageOnField pop {r0} bx r0 .align 2, 0 _0813B72C: .4byte gUnknown_0840E79C _0813B730: .4byte sub_813B758 thumb_func_end sub_813B718 thumb_func_start sub_813B734 sub_813B734: @ 813B734 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0xC movs r3, 0x9 bl Reset adds r0, r4, 0 bl sub_813B758 pop {r4} pop {r0} bx r0 thumb_func_end sub_813B734 thumb_func_start sub_813B758 sub_813B758: @ 813B758 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_813B108 ldr r1, _0813B77C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0813B780 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0813B77C: .4byte 0x03004b20 _0813B780: .4byte sub_813B174 thumb_func_end sub_813B758 thumb_func_start sub_813B784 sub_813B784: @ 813B784 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_813B784 thumb_func_start CB2_813B798 CB2_813B798: @ 813B798 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade ldr r0, _0813B7C8 ldrh r0, [r0, 0x2E] cmp r0, 0 beq _0813B7D4 ldr r0, _0813B7CC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0813B7D4 ldr r0, _0813B7D0 bl SetMainCallback2 b _0813B7E4 .align 2, 0 _0813B7C8: .4byte 0x03001770 _0813B7CC: .4byte 0x0202f388 _0813B7D0: .4byte CB2_813B7EC _0813B7D4: ldr r2, _0813B7E8 ldr r1, [r2] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0813B7E4 adds r0, r1, 0x1 str r0, [r2] _0813B7E4: pop {r0} bx r0 .align 2, 0 _0813B7E8: .4byte 0x03005ed0 thumb_func_end CB2_813B798 thumb_func_start CB2_813B7EC CB2_813B7EC: @ 813B7EC push {lr} bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _0813B7FE ldr r0, _0813B804 bl SetMainCallback2 _0813B7FE: pop {r0} bx r0 .align 2, 0 _0813B804: .4byte CB2_InitTitleScreen thumb_func_end CB2_813B7EC thumb_func_start sub_813B808 sub_813B808: @ 813B808 push {r4-r6,lr} adds r3, r0, 0 adds r4, r1, 0 adds r5, r2, 0 lsls r3, 16 lsrs r3, 16 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 ldr r0, _0813B848 movs r6, 0xC0 lsls r6, 19 adds r3, r6 adds r1, r3, 0 bl LZ77UnCompVram ldr r0, _0813B84C adds r1, r5, 0 movs r2, 0x20 bl LoadPalette ldr r0, _0813B850 adds r4, r6 movs r2, 0xA0 lsls r2, 2 adds r1, r4, 0 bl CpuSet pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813B848: .4byte gUnknown_08E9C798 _0813B84C: .4byte gUnknown_08E9CA24 _0813B850: .4byte gUnknown_08E9CA44 thumb_func_end sub_813B808 thumb_func_start SerialCb_CopyrightScreen SerialCb_CopyrightScreen: @ 813B854 push {lr} ldr r0, _0813B860 bl GameCubeMultiBoot_HandleSerialInterrupt pop {r0} bx r0 .align 2, 0 _0813B860: .4byte 0x03005ee0 thumb_func_end SerialCb_CopyrightScreen thumb_func_start SetUpCopyrightScreen SetUpCopyrightScreen: @ 813B864 push {r4,r5,lr} sub sp, 0xC ldr r0, _0813B880 ldr r1, _0813B884 adds r5, r0, r1 ldrb r4, [r5] cmp r4, 0x8C bne _0813B876 b _0813B9C4 _0813B876: cmp r4, 0x8C bgt _0813B888 cmp r4, 0 beq _0813B890 b _0813B962 .align 2, 0 _0813B880: .4byte 0x03001770 _0813B884: .4byte 0x0000043c _0813B888: cmp r4, 0x8D bne _0813B88E b _0813B9F0 _0813B88E: b _0813B962 _0813B890: movs r0, 0 bl SetVBlankCallback ldr r0, _0813B97C strh r4, [r0] adds r0, 0x2 strh r4, [r0] adds r0, 0x2 strh r4, [r0] movs r1, 0xA0 lsls r1, 19 ldr r2, _0813B980 adds r0, r2, 0 strh r0, [r1] movs r5, 0x80 lsls r5, 19 strh r4, [r5] ldr r0, _0813B984 strh r4, [r0] adds r0, 0x2 strh r4, [r0] add r0, sp, 0x4 strh r4, [r0] ldr r1, _0813B988 str r0, [r1] movs r0, 0xC0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _0813B98C str r0, [r1, 0x8] ldr r0, [r1, 0x8] str r4, [sp, 0x8] add r0, sp, 0x8 str r0, [r1] movs r0, 0xE0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _0813B990 str r0, [r1, 0x8] ldr r0, [r1, 0x8] add r0, sp, 0x4 strh r4, [r0] str r0, [r1] ldr r0, _0813B994 str r0, [r1, 0x4] ldr r0, _0813B998 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetPaletteFade movs r1, 0xE0 lsls r1, 6 movs r0, 0 movs r2, 0 bl sub_813B808 bl remove_some_task bl ResetTasks bl ResetSpriteData bl FreeAllSpritePalettes movs r0, 0x1 negs r0, r0 ldr r1, _0813B99C str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _0813B9A0 movs r2, 0xE0 lsls r2, 3 adds r0, r2, 0 strh r0, [r1] ldr r3, _0813B9A4 ldrh r2, [r3] strh r4, [r3] ldr r4, _0813B9A8 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _0813B9AC ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _0813B9B0 bl SetVBlankCallback movs r1, 0xA0 lsls r1, 1 adds r0, r1, 0 strh r0, [r5] ldr r0, _0813B9B4 bl SetSerialCallback ldr r0, _0813B9B8 bl GameCubeMultiBoot_Init _0813B962: bl UpdatePaletteFade ldr r0, _0813B9BC ldr r2, _0813B9C0 adds r0, r2 ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] ldr r0, _0813B9B8 bl GameCubeMultiBoot_Main b _0813BA38 .align 2, 0 _0813B97C: .4byte REG_BLDCNT _0813B980: .4byte 0x00007fff _0813B984: .4byte REG_BG0HOFS _0813B988: .4byte 0x040000d4 _0813B98C: .4byte 0x8100c000 _0813B990: .4byte 0x85000100 _0813B994: .4byte 0x05000002 _0813B998: .4byte 0x810001ff _0813B99C: .4byte 0x0000ffff _0813B9A0: .4byte REG_BG0CNT _0813B9A4: .4byte 0x04000208 _0813B9A8: .4byte 0x04000200 _0813B9AC: .4byte REG_DISPSTAT _0813B9B0: .4byte sub_813B784 _0813B9B4: .4byte SerialCb_CopyrightScreen _0813B9B8: .4byte 0x03005ee0 _0813B9BC: .4byte 0x03001770 _0813B9C0: .4byte 0x0000043c _0813B9C4: ldr r4, _0813B9EC adds r0, r4, 0 bl GameCubeMultiBoot_Main ldrb r0, [r4, 0x2] cmp r0, 0x1 beq _0813BA38 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _0813BA38 .align 2, 0 _0813B9EC: .4byte 0x03005ee0 _0813B9F0: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _0813BA38 ldr r0, _0813BA18 movs r1, 0 bl CreateTask ldr r0, _0813BA1C bl SetMainCallback2 ldr r1, _0813BA20 ldrb r0, [r1, 0x2] cmp r0, 0 beq _0813BA24 adds r0, r1, 0 bl GameCubeMultiBoot_ExecuteProgram b _0813BA2E .align 2, 0 _0813BA18: .4byte task_intro_1 _0813BA1C: .4byte CB2_813B798 _0813BA20: .4byte 0x03005ee0 _0813BA24: bl GameCubeMultiBoot_Quit ldr r0, _0813BA34 bl SetSerialCallback _0813BA2E: movs r0, 0 b _0813BA3A .align 2, 0 _0813BA34: .4byte SerialCB _0813BA38: movs r0, 0x1 _0813BA3A: add sp, 0xC pop {r4,r5} pop {r1} bx r1 thumb_func_end SetUpCopyrightScreen thumb_func_start c2_copyright_1 c2_copyright_1: @ 813BA44 push {lr} bl SetUpCopyrightScreen lsls r0, 24 cmp r0, 0 bne _0813BA7A bl sub_8052E4C bl sub_81251B8 movs r0, 0 bl sub_8125EC8 ldr r0, _0813BA80 ldrh r0, [r0] cmp r0, 0 beq _0813BA6A cmp r0, 0x2 bne _0813BA6E _0813BA6A: bl ClearSav2 _0813BA6E: ldr r0, _0813BA84 ldrb r0, [r0, 0x15] lsls r0, 31 lsrs r0, 31 bl sub_81DF5D8 _0813BA7A: pop {r0} bx r0 .align 2, 0 _0813BA80: .4byte 0x03005eb8 _0813BA84: .4byte gSaveBlock2 thumb_func_end c2_copyright_1 thumb_func_start sub_813BA88 sub_813BA88: @ 813BA88 push {lr} bl SetUpCopyrightScreen pop {r0} bx r0 thumb_func_end sub_813BA88 thumb_func_start task_intro_1 task_intro_1: @ 813BA94 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0xC mov r8, r0 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r0, 0 bl SetVBlankCallback ldr r4, _0813BC18 bl Random movs r1, 0x1 ands r1, r0 strh r1, [r4] bl intro_reset_and_hide_bgs ldr r0, _0813BC1C movs r6, 0 strh r6, [r0] ldr r1, _0813BC20 movs r0, 0x50 strh r0, [r1] subs r1, 0x4 movs r0, 0x18 strh r0, [r1] subs r1, 0x4 movs r0, 0x28 strh r0, [r1] ldr r0, _0813BC24 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _0813BC28 ldr r1, _0813BC2C bl LZ77UnCompVram ldr r1, _0813BC30 add r0, sp, 0x8 strh r6, [r0] ldr r4, _0813BC34 str r0, [r4] str r1, [r4, 0x4] ldr r5, _0813BC38 str r5, [r4, 0x8] ldr r0, [r4, 0x8] ldr r0, _0813BC3C ldr r1, _0813BC40 bl LZ77UnCompVram ldr r1, _0813BC44 add r0, sp, 0x8 strh r6, [r0] str r0, [r4] str r1, [r4, 0x4] str r5, [r4, 0x8] ldr r0, [r4, 0x8] ldr r0, _0813BC48 ldr r1, _0813BC4C bl LZ77UnCompVram ldr r1, _0813BC50 add r0, sp, 0x8 strh r6, [r0] str r0, [r4] str r1, [r4, 0x4] str r5, [r4, 0x8] ldr r0, [r4, 0x8] ldr r0, _0813BC54 ldr r1, _0813BC58 bl LZ77UnCompVram ldr r1, _0813BC5C add r0, sp, 0x8 strh r6, [r0] str r0, [r4] str r1, [r4, 0x4] str r5, [r4, 0x8] ldr r0, [r4, 0x8] ldr r0, _0813BC60 movs r5, 0x80 lsls r5, 2 movs r1, 0 adds r2, r5, 0 bl LoadPalette ldr r1, _0813BC64 ldr r2, _0813BC68 adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 ldr r3, _0813BC6C adds r0, r3, 0 strh r0, [r1] subs r1, 0x2 ldr r2, _0813BC70 adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 movs r3, 0x90 lsls r3, 8 adds r0, r3, 0 strh r0, [r1] ldr r0, _0813BC74 bl LoadCompressedObjectPic ldr r0, _0813BC78 bl LoadCompressedObjectPic ldr r0, _0813BC7C bl LoadSpritePalettes ldr r4, _0813BC80 movs r0, 0xF0 lsls r0, 1 adds r1, r4, r0 adds r0, r4, 0 movs r2, 0x10 bl CpuSet movs r2, 0xE1 lsls r2, 1 adds r1, r4, r2 adds r0, r4, 0 movs r2, 0xF bl CpuSet movs r3, 0xD2 lsls r3, 1 adds r1, r4, r3 adds r0, r4, 0 movs r2, 0xE bl CpuSet movs r0, 0xC3 lsls r0, 1 adds r1, r4, r0 adds r0, r4, 0 movs r2, 0xD bl CpuSet movs r2, 0xB4 lsls r2, 1 adds r1, r4, r2 adds r0, r4, 0 movs r2, 0xC bl CpuSet movs r3, 0xA5 lsls r3, 1 adds r1, r4, r3 adds r0, r4, 0 movs r2, 0xB bl CpuSet movs r0, 0x96 lsls r0, 1 adds r1, r4, r0 adds r0, r4, 0 movs r2, 0xA bl CpuSet movs r1, 0xE negs r1, r1 movs r0, 0x78 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] movs r0, 0xEC adds r2, r5, 0 movs r3, 0x1 bl sub_813D584 ldr r2, _0813BC84 mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r2 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x8] ldr r0, _0813BC88 str r0, [r1] add sp, 0xC pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813BC18: .4byte 0x02039318 _0813BC1C: .4byte REG_BG3VOFS _0813BC20: .4byte REG_BG2VOFS _0813BC24: .4byte gUnknown_08407764 _0813BC28: .4byte gUnknown_08406B74 _0813BC2C: .4byte 0x06008000 _0813BC30: .4byte 0x06008800 _0813BC34: .4byte 0x040000d4 _0813BC38: .4byte 0x81000400 _0813BC3C: .4byte gUnknown_08406F28 _0813BC40: .4byte 0x06009000 _0813BC44: .4byte 0x06009800 _0813BC48: .4byte gUnknown_0840725C _0813BC4C: .4byte 0x0600a000 _0813BC50: .4byte 0x0600a800 _0813BC54: .4byte gUnknown_0840754C _0813BC58: .4byte 0x0600b000 _0813BC5C: .4byte 0x0600b800 _0813BC60: .4byte gUnknown_08406974 _0813BC64: .4byte REG_BG3CNT _0813BC68: .4byte 0x00009603 _0813BC6C: .4byte 0x00009402 _0813BC70: .4byte 0x00009201 _0813BC74: .4byte gUnknown_0840B008 _0813BC78: .4byte gUnknown_0840B018 _0813BC7C: .4byte gUnknown_0840B028 _0813BC80: .4byte 0x0202ecc8 _0813BC84: .4byte 0x03004b20 _0813BC88: .4byte task_intro_2 thumb_func_end task_intro_1 thumb_func_start task_intro_2 task_intro_2: @ 813BC8C push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 negs r0, r0 movs r5, 0 str r5, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _0813BCE0 bl SetVBlankCallback movs r1, 0x80 lsls r1, 19 movs r2, 0xFA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r1, _0813BCE4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0813BCE8 str r1, [r0] ldr r0, _0813BCEC str r5, [r0] movs r0, 0xCF lsls r0, 1 bl m4aSongNumStart bl ResetSerial add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813BCE0: .4byte sub_813B784 _0813BCE4: .4byte 0x03004b20 _0813BCE8: .4byte sub_813BCF0 _0813BCEC: .4byte 0x03005ed0 thumb_func_end task_intro_2 thumb_func_start sub_813BCF0 sub_813BCF0: @ 813BCF0 push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r3, r0, 24 adds r5, r3, 0 ldr r4, _0813BDD4 ldr r0, [r4] cmp r0, 0x4C bne _0813BD1E ldr r2, _0813BDD8 ldr r1, _0813BDDC lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r6, 0x8 ldrsh r1, [r0, r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 strh r1, [r0, 0x2E] _0813BD1E: ldr r0, [r4] cmp r0, 0xFB bne _0813BD40 ldr r2, _0813BDD8 ldr r1, _0813BDDC lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r3, 0x8 ldrsh r1, [r0, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2 strh r1, [r0, 0x2E] _0813BD40: ldr r1, [r4] movs r0, 0xB8 lsls r0, 1 cmp r1, r0 bne _0813BD60 movs r2, 0x80 lsls r2, 3 movs r0, 0x70 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r0, 0x30 movs r1, 0 movs r3, 0x5 bl sub_813D584 _0813BD60: ldr r1, [r4] movs r0, 0xC0 lsls r0, 1 cmp r1, r0 bne _0813BD80 movs r2, 0x80 lsls r2, 3 movs r0, 0x80 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r0, 0xC8 movs r1, 0x3C movs r3, 0x9 bl sub_813D584 _0813BD80: ldr r1, [r4] movs r0, 0x8C lsls r0, 2 cmp r1, r0 bne _0813BDA0 ldr r0, _0813BDE0 movs r1, 0 bl CreateTask adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 movs r0, 0x78 movs r1, 0x50 bl sub_813D954 _0813BDA0: ldr r1, [r4] ldr r0, _0813BDE4 cmp r1, r0 bls _0813BDCA ldr r1, _0813BDDC lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0 movs r1, 0x50 strh r1, [r0, 0xA] strh r2, [r0, 0xC] movs r1, 0x18 strh r1, [r0, 0xE] strh r2, [r0, 0x10] movs r1, 0x28 strh r1, [r0, 0x12] strh r2, [r0, 0x14] ldr r1, _0813BDE8 str r1, [r0] _0813BDCA: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813BDD4: .4byte 0x03005ed0 _0813BDD8: .4byte 0x02020004 _0813BDDC: .4byte 0x03004b20 _0813BDE0: .4byte sub_813CCE8 _0813BDE4: .4byte 0x000002e3 _0813BDE8: .4byte task_intro_4 thumb_func_end sub_813BCF0 thumb_func_start task_intro_4 task_intro_4: @ 813BDEC push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r2, r0, 24 adds r4, r2, 0 ldr r0, _0813BE80 ldr r3, [r0] ldr r0, _0813BE84 cmp r3, r0 bhi _0813BEAC ldr r0, _0813BE88 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 movs r2, 0xA ldrsh r0, [r1, r2] lsls r0, 16 ldrh r2, [r1, 0xC] adds r0, r2 ldr r2, _0813BE8C adds r0, r2 asrs r2, r0, 16 strh r2, [r1, 0xA] strh r0, [r1, 0xC] ldr r0, _0813BE90 strh r2, [r0] movs r2, 0xE ldrsh r0, [r1, r2] lsls r0, 16 ldrh r2, [r1, 0x10] adds r0, r2 ldr r2, _0813BE94 adds r0, r2 asrs r2, r0, 16 strh r2, [r1, 0xE] strh r0, [r1, 0x10] ldr r0, _0813BE98 strh r2, [r0] movs r2, 0x12 ldrsh r0, [r1, r2] lsls r0, 16 ldrh r2, [r1, 0x14] adds r0, r2 ldr r2, _0813BE9C adds r0, r2 asrs r2, r0, 16 strh r2, [r1, 0x12] strh r0, [r1, 0x14] ldr r0, _0813BEA0 strh r2, [r0] movs r0, 0xDC lsls r0, 2 cmp r3, r0 bne _0813BED2 ldr r0, _0813BEA4 movs r1, 0xC8 movs r2, 0xA0 movs r3, 0xA bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _0813BEA8 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] b _0813BED2 .align 2, 0 _0813BE80: .4byte 0x03005ed0 _0813BE84: .4byte 0x00000387 _0813BE88: .4byte 0x03004b20 _0813BE8C: .4byte 0xffff4000 _0813BE90: .4byte REG_BG2VOFS _0813BE94: .4byte 0xffff0000 _0813BE98: .4byte REG_BG1VOFS _0813BE9C: .4byte 0xfffe8000 _0813BEA0: .4byte REG_BG0VOFS _0813BEA4: .4byte gSpriteTemplate_840AFF0 _0813BEA8: .4byte 0x02020004 _0813BEAC: ldr r0, _0813BEDC cmp r3, r0 bls _0813BED2 movs r0, 0x1 negs r0, r0 ldr r1, _0813BEE0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0813BEE4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0813BEE8 str r1, [r0] _0813BED2: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0813BEDC: .4byte 0x000003ef _0813BEE0: .4byte 0x0000ffff _0813BEE4: .4byte 0x03004b20 _0813BEE8: .4byte sub_813BEEC thumb_func_end task_intro_4 thumb_func_start sub_813BEEC sub_813BEEC: @ 813BEEC push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0813BF10 ldr r1, [r0] ldr r0, _0813BF14 cmp r1, r0 bls _0813BF0A ldr r0, _0813BF18 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _0813BF1C str r0, [r1] _0813BF0A: pop {r0} bx r0 .align 2, 0 _0813BF10: .4byte 0x03005ed0 _0813BF14: .4byte 0x00000402 _0813BF18: .4byte 0x03004b20 _0813BF1C: .4byte task_intro_6 thumb_func_end sub_813BEEC thumb_func_start task_intro_6 task_intro_6: @ 813BF20 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl intro_reset_and_hide_bgs movs r0, 0 bl SetVBlankCallback bl ResetSpriteData bl FreeAllSpritePalettes ldr r0, _0813BF60 movs r1, 0 strh r1, [r0] ldr r0, _0813BF64 strh r1, [r0] .ifdef SAPPHIRE movs r0, 0 .else movs r0, 0x1 .endif bl load_intro_part2_graphics ldr r1, _0813BF68 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0813BF6C str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0813BF60: .4byte 0x02039358 _0813BF64: .4byte 0x0203935a _0813BF68: .4byte 0x03004b20 _0813BF6C: .4byte sub_813BF70 thumb_func_end task_intro_6 thumb_func_start sub_813BF70 sub_813BF70: @ 813BF70 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 ldr r0, _0813BF88 ldrh r0, [r0] cmp r0, 0 bne _0813BF90 ldr r0, _0813BF8C bl LoadCompressedObjectPic b _0813BF96 .align 2, 0 _0813BF88: .4byte 0x02039318 _0813BF8C: .4byte gIntro2BrendanSpriteSheet _0813BF90: ldr r0, _0813BFBC bl LoadCompressedObjectPic _0813BF96: ldr r0, _0813BFC0 bl LoadCompressedObjectPic ldr r0, _0813BFC4 bl LoadCompressedObjectPic ldr r0, _0813BFC8 bl LoadSpritePalettes ldr r0, _0813BFCC ldrh r0, [r0] cmp r0, 0 bne _0813BFD0 movs r0, 0x88 lsls r0, 1 movs r1, 0x64 bl sub_8149310 b _0813BFDA .align 2, 0 _0813BFBC: .4byte gIntro2MaySpriteSheet _0813BFC0: .4byte gIntro2BicycleSpriteSheet .ifdef SAPPHIRE _0813BFC4: .4byte gIntro2LatiasSpriteSheet .else _0813BFC4: .4byte gIntro2LatiosSpriteSheet .endif _0813BFC8: .4byte gIntro2SpritePalettes _0813BFCC: .4byte 0x02039318 _0813BFD0: movs r0, 0x88 lsls r0, 1 movs r1, 0x64 bl sub_8149368 _0813BFDA: lsls r0, 24 lsrs r6, r0, 24 ldr r2, _0813C060 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r5, r2, 0 adds r5, 0x1C adds r3, r0, r5 ldr r1, _0813C064 str r1, [r3] adds r2, 0x8 adds r0, r2 ldr r1, _0813C068 str r1, [r0] ldr r0, _0813C06C lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 strh r6, [r4, 0xA] movs r0, 0x40 negs r0, r0 movs r1, 0x3C .ifdef SAPPHIRE bl sapphire_sub_81494A0 .else bl sub_8149424 .endif lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r0, r5 ldr r1, _0813C070 str r1, [r0] strh r6, [r4, 0xC] movs r0, 0x1 negs r0, r0 ldr r1, _0813C074 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _0813C078 bl SetVBlankCallback movs r1, 0x80 lsls r1, 7 .ifdef SAPPHIRE movs r0, 0 movs r2, 0x40 .else movs r2, 0x80 lsls r2, 3 movs r0, 0x1 .endif movs r3, 0x10 bl sub_8148EC0 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x8] .ifdef SAPPHIRE movs r0, 0 .else movs r0, 0x1 .endif bl sub_8148C78 ldr r0, _0813C07C str r0, [r4] add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813C060: .4byte 0x02020004 _0813C064: .4byte sub_813D788 _0813C068: .4byte gUnknown_0840AE80 _0813C06C: .4byte 0x03004b20 _0813C070: .4byte sub_813D880 _0813C074: .4byte 0x0000ffff _0813C078: .4byte sub_813B784 _0813C07C: .4byte sub_813C080 thumb_func_end sub_813BF70 thumb_func_start sub_813C080 sub_813C080: @ 813C080 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 ldr r5, _0813C1BC ldr r1, [r5] ldr r0, _0813C1C0 cmp r1, r0 bls _0813C0B4 movs r0, 0x1 negs r0, r0 ldr r1, _0813C1C4 str r1, [sp] movs r1, 0x10 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0813C1C8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0813C1CC str r1, [r0] _0813C0B4: ldr r1, [r5] ldr r0, _0813C1D0 ldr r3, _0813C1C8 cmp r1, r0 bne _0813C0D8 ldr r2, _0813C1D4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r3 movs r7, 0xA ldrsh r1, [r0, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 strh r1, [r0, 0x2E] _0813C0D8: ldr r1, [r5] ldr r0, _0813C1D8 cmp r1, r0 bne _0813C0FA ldr r2, _0813C1D4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r3 movs r7, 0xA ldrsh r1, [r0, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strh r1, [r0, 0x2E] _0813C0FA: ldr r1, [r5] ldr r0, _0813C1DC cmp r1, r0 bne _0813C11C ldr r2, _0813C1D4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r3 movs r7, 0xC ldrsh r1, [r0, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 strh r1, [r0, 0x2E] _0813C11C: ldr r1, [r5] ldr r0, _0813C1E0 cmp r1, r0 bne _0813C13E ldr r2, _0813C1D4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r3 movs r7, 0xA ldrsh r1, [r0, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2 strh r1, [r0, 0x2E] _0813C13E: ldr r1, [r5] ldr r0, _0813C1E4 cmp r1, r0 bne _0813C160 ldr r2, _0813C1D4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r3 movs r7, 0xA ldrsh r1, [r0, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x3 strh r1, [r0, 0x2E] _0813C160: ldr r1, [r5] ldr r0, _0813C1E8 cmp r1, r0 bne _0813C182 ldr r2, _0813C1D4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r3 movs r4, 0xA ldrsh r1, [r0, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x4 strh r1, [r0, 0x2E] _0813C182: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r3 ldrh r0, [r4, 0xE] lsls r0, 16 asrs r0, 18 movs r1, 0x7F ands r0, r1 movs r1, 0x30 bl sine ldr r1, _0813C1EC strh r0, [r1] ldrh r2, [r4, 0xE] movs r7, 0xE ldrsh r1, [r4, r7] ldr r0, _0813C1F0 cmp r1, r0 bgt _0813C1AE adds r0, r2, 0x1 strh r0, [r4, 0xE] _0813C1AE: .ifdef SAPPHIRE movs r0, 0 .else movs r0, 0x1 .endif bl sub_8149020 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813C1BC: .4byte 0x03005ed0 _0813C1C0: .4byte 0x0000071f _0813C1C4: .4byte 0x0000ffff _0813C1C8: .4byte 0x03004b20 _0813C1CC: .4byte sub_813C1F4 _0813C1D0: .4byte 0x00000455 _0813C1D4: .4byte 0x02020004 _0813C1D8: .4byte 0x000004be _0813C1DC: .4byte 0x00000572 _0813C1E0: .4byte 0x00000576 _0813C1E4: .4byte 0x00000632 _0813C1E8: .4byte 0x000006bf _0813C1EC: .4byte 0x0203935a _0813C1F0: .4byte 0x000001ff thumb_func_end sub_813C080 thumb_func_start sub_813C1F4 sub_813C1F4: @ 813C1F4 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0813C220 ldr r1, [r0] ldr r0, _0813C224 cmp r1, r0 bls _0813C218 ldr r0, _0813C228 lsls r4, r2, 2 adds r4, r2 lsls r4, 3 adds r4, r0 ldrb r0, [r4, 0x8] bl DestroyTask ldr r0, _0813C22C str r0, [r4] _0813C218: pop {r4} pop {r0} bx r0 .align 2, 0 _0813C220: .4byte 0x03005ed0 _0813C224: .4byte 0x00000814 _0813C228: .4byte 0x03004b20 _0813C22C: .4byte task_intro_10 thumb_func_end sub_813C1F4 thumb_func_start task_intro_10 task_intro_10: @ 813C230 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 bl intro_reset_and_hide_bgs ldr r0, _0813C2C0 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _0813C2C4 ldr r1, _0813C2C8 bl LZ77UnCompVram ldr r0, _0813C2CC movs r2, 0x80 lsls r2, 2 movs r1, 0 bl LoadPalette ldr r0, _0813C2D0 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 movs r5, 0 strh r5, [r4, 0x8] strh r5, [r4, 0xA] strh r5, [r4, 0xC] strh r5, [r4, 0xE] movs r0, 0x78 movs r1, 0x50 movs r2, 0 movs r3, 0 bl sub_813CE30 bl ResetSpriteData bl FreeAllSpritePalettes movs r0, 0x1 negs r0, r0 ldr r1, _0813C2D4 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _0813C2D8 ldr r2, _0813C2DC adds r0, r2, 0 strh r0, [r1] subs r1, 0xC ldr r2, _0813C2E0 adds r0, r2, 0 strh r0, [r1] ldr r0, _0813C2E4 str r0, [r4] ldr r0, _0813C2E8 str r5, [r0] movs r0, 0xDD lsls r0, 1 bl m4aSongNumStart add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813C2C0: .4byte gUnknown_08409C04 _0813C2C4: .4byte gUnknown_08409AD4 _0813C2C8: .4byte 0x06004000 _0813C2CC: .4byte gUnknown_084098D4 _0813C2D0: .4byte 0x03004b20 _0813C2D4: .4byte 0x0000ffff _0813C2D8: .4byte REG_BG2CNT _0813C2DC: .4byte 0x00004883 _0813C2E0: .4byte 0x00001441 _0813C2E4: .4byte task_intro_11 _0813C2E8: .4byte 0x03005ed0 thumb_func_end task_intro_10 thumb_func_start task_intro_11 task_intro_11: @ 813C2EC push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r2, _0813C324 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r2 movs r1, 0x80 lsls r1, 3 adds r0, r1, 0 ldrh r1, [r3, 0x8] adds r0, r1 strh r0, [r3, 0x8] ldrh r4, [r3, 0xA] movs r0, 0xA ldrsh r1, [r3, r0] ldr r0, _0813C328 cmp r1, r0 bgt _0813C32C ldrh r0, [r3, 0xC] adds r1, r4, r0 strh r1, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xC] b _0813C330 .align 2, 0 _0813C324: .4byte 0x03004b20 _0813C328: .4byte 0x000006bf _0813C32C: ldr r0, _0813C378 str r0, [r3] _0813C330: lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r2 movs r0, 0xA ldrsh r1, [r4, r0] movs r0, 0x80 lsls r0, 9 bl __divsi3 adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 ldrh r3, [r4, 0x8] movs r0, 0x78 movs r1, 0x50 bl sub_813CE30 ldr r0, _0813C37C ldr r0, [r0] cmp r0, 0x2C bne _0813C36E movs r0, 0x1 negs r0, r0 ldr r1, _0813C380 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _0813C36E: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813C378: .4byte sub_813C384 _0813C37C: .4byte 0x03005ed0 _0813C380: .4byte 0x0000ffff thumb_func_end task_intro_11 thumb_func_start sub_813C384 sub_813C384: @ 813C384 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0813C3A4 ldr r0, [r0] cmp r0, 0x3B bls _0813C3A0 ldr r0, _0813C3A8 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _0813C3AC str r0, [r1] _0813C3A0: pop {r0} bx r0 .align 2, 0 _0813C3A4: .4byte 0x03005ed0 _0813C3A8: .4byte 0x03004b20 _0813C3AC: .4byte sub_813C3B0 thumb_func_end sub_813C384 thumb_func_start sub_813C3B0 sub_813C3B0: @ 813C3B0 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 bl intro_reset_and_hide_bgs movs r1, 0 ldr r2, _0813C4E4 movs r7, 0 adds r6, r2, 0 adds r6, 0x20 adds r5, r2, 0 adds r5, 0x40 mov r12, r2 movs r4, 0x11 movs r3, 0x22 _0813C3D4: adds r0, r1, r2 strb r7, [r0] adds r0, r1, r6 strb r4, [r0] adds r0, r1, r5 strb r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x1F bls _0813C3D4 movs r1, 0xC0 lsls r1, 19 ldr r0, _0813C4E8 mov r2, r12 str r2, [r0] str r1, [r0, 0x4] ldr r1, _0813C4EC str r1, [r0, 0x8] ldr r0, [r0, 0x8] movs r1, 0 ldr r5, _0813C4F0 ldr r6, _0813C4F4 mov r0, r8 lsls r7, r0, 2 ldr r4, _0813C4F8 ldr r2, _0813C4FC adds r3, r2, 0 ldr r2, _0813C500 _0813C40E: lsls r0, r1, 1 adds r0, r4 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r2 bls _0813C40E movs r1, 0 ldr r3, _0813C504 ldr r0, _0813C508 adds r2, r0, 0 _0813C426: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x7F bls _0813C426 movs r1, 0 ldr r4, _0813C50C movs r2, 0xF0 lsls r2, 8 adds r3, r2, 0 ldr r2, _0813C510 _0813C442: lsls r0, r1, 1 adds r0, r4 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r2 bls _0813C442 movs r1, 0 ldr r3, _0813C514 ldr r0, _0813C508 adds r2, r0, 0 _0813C45A: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x7F bls _0813C45A movs r0, 0xF0 lsls r0, 1 adds r2, r5, r0 movs r4, 0 ldr r1, _0813C518 strh r1, [r2] adds r0, r6, r0 strh r1, [r0] movs r0, 0x1 bl sub_813D084 movs r0, 0xF2 lsls r0, 1 adds r1, r5, r0 strh r4, [r1] adds r0, r6, r0 strh r4, [r0] ldr r0, _0813C51C ldr r1, _0813C520 bl LZ77UnCompVram ldr r0, _0813C524 ldr r1, _0813C528 bl LZ77UnCompVram ldr r0, _0813C52C movs r1, 0 movs r2, 0x20 bl LoadPalette bl ResetSpriteData bl FreeAllSpritePalettes ldr r1, _0813C530 movs r0, 0x8 strb r0, [r1] ldr r0, _0813C534 bl LoadCompressedObjectPic ldr r0, _0813C538 bl LoadCompressedObjectPic ldr r0, _0813C53C bl LoadCompressedObjectPalette ldr r0, _0813C540 bl LoadSpritePalettes ldr r1, _0813C544 mov r2, r8 adds r0, r7, r2 lsls r0, 3 adds r0, r1 ldr r1, _0813C548 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813C4E4: .4byte 0x02000000 _0813C4E8: .4byte 0x040000d4 _0813C4EC: .4byte 0x80000030 _0813C4F0: .4byte 0x0202eac8 _0813C4F4: .4byte 0x0202eec8 _0813C4F8: .4byte 0x06003000 _0813C4FC: .4byte 0x0000f001 _0813C500: .4byte 0x0000027f _0813C504: .4byte 0x06003800 _0813C508: .4byte 0x0000f002 _0813C50C: .4byte 0x06003900 _0813C510: .4byte 0x0000017f _0813C514: .4byte 0x06003c00 _0813C518: .4byte 0x00007fff _0813C51C: .4byte gUnknown_0840A778 _0813C520: .4byte 0x06004000 _0813C524: .4byte gUnknown_0840A7E4 _0813C528: .4byte 0x06007000 _0813C52C: .4byte gUnknown_0840A758 _0813C530: .4byte 0x030028f8 _0813C534: .4byte gUnknown_0840B20C _0813C538: .4byte gUnknown_0840B21C _0813C53C: .4byte gUnknown_0840B22C _0813C540: .4byte gUnknown_0840B23C _0813C544: .4byte 0x03004b20 _0813C548: .4byte sub_813C54C thumb_func_end sub_813C3B0 thumb_func_start sub_813C54C sub_813C54C: @ 813C54C push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _0813C5BC movs r0, 0xF0 strh r0, [r1] adds r1, 0x4 movs r0, 0xA0 strh r0, [r1] adds r1, 0x4 movs r0, 0x1C strh r0, [r1] adds r1, 0x2 movs r0, 0x1D strh r0, [r1] subs r1, 0x3C ldr r2, _0813C5C0 adds r0, r2, 0 strh r0, [r1] subs r1, 0x6 adds r2, 0xFD adds r0, r2, 0 strh r0, [r1] subs r1, 0x8 movs r2, 0xE5 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r0, _0813C5C4 movs r1, 0 bl CreateTask ldr r5, _0813C5C8 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r5 lsls r0, 24 lsrs r0, 24 movs r3, 0 strh r0, [r1, 0x26] movs r0, 0x26 ldrsh r2, [r1, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r5 strh r3, [r0, 0x8] strh r3, [r1, 0x8] ldr r0, _0813C5CC str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813C5BC: .4byte REG_WIN0H _0813C5C0: .4byte 0x00000603 _0813C5C4: .4byte sub_813CAF4 _0813C5C8: .4byte 0x03004b20 _0813C5CC: .4byte sub_813C5D0 thumb_func_end sub_813C54C thumb_func_start sub_813C5D0 sub_813C5D0: @ 813C5D0 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0813C600 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r3, r1, r2 ldrh r1, [r3, 0x8] movs r2, 0x8 ldrsh r0, [r3, r2] cmp r0, 0x20 beq _0813C608 adds r0, r1, 0x4 strh r0, [r3, 0x8] ldr r2, _0813C604 movs r4, 0x8 ldrsh r0, [r3, r4] lsls r0, 8 subs r1, 0x9C subs r0, r1 strh r0, [r2] b _0813C616 .align 2, 0 _0813C600: .4byte 0x03004b20 _0813C604: .4byte REG_WIN0V _0813C608: ldr r0, _0813C61C movs r2, 0x82 lsls r2, 6 adds r1, r2, 0 strh r1, [r0] ldr r0, _0813C620 str r0, [r3] _0813C616: pop {r4} pop {r0} bx r0 .align 2, 0 _0813C61C: .4byte REG_WIN0V _0813C620: .4byte sub_813C624 thumb_func_end sub_813C5D0 thumb_func_start sub_813C624 sub_813C624: @ 813C624 lsls r0, 24 lsrs r0, 24 ldr r2, _0813C638 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _0813C63C str r0, [r1] bx lr .align 2, 0 _0813C638: .4byte 0x03004b20 _0813C63C: .4byte sub_813C640 thumb_func_end sub_813C624 thumb_func_start sub_813C640 sub_813C640: @ 813C640 lsls r0, 24 lsrs r0, 24 ldr r2, _0813C65C movs r1, 0 strh r1, [r2] ldr r2, _0813C660 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _0813C664 str r0, [r1] bx lr .align 2, 0 _0813C65C: .4byte 0x0203931a _0813C660: .4byte 0x03004b20 _0813C664: .4byte sub_813C668 thumb_func_end sub_813C640 thumb_func_start sub_813C668 sub_813C668: @ 813C668 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 ldr r0, _0813CA24 mov r8, r0 ldr r0, [r0] cmp r0, 0x50 bne _0813C6AC ldr r0, _0813CA28 movs r4, 0x1 str r4, [sp] movs r1, 0xF0 movs r2, 0xA0 movs r3, 0x5 bl sub_813CE88 lsls r0, 24 lsrs r2, r0, 24 ldr r3, _0813CA2C lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r1, r0, r1 ldr r2, _0813CA30 str r2, [r1] adds r0, r3 movs r1, 0 strh r4, [r0, 0x30] strh r1, [r0, 0x32] _0813C6AC: mov r1, r8 ldr r0, [r1] cmp r0, 0x98 bne _0813C6E2 ldr r0, _0813CA34 movs r4, 0x1 str r4, [sp] movs r1, 0 movs r2, 0xA0 movs r3, 0x4 bl sub_813CE88 lsls r0, 24 lsrs r2, r0, 24 ldr r3, _0813CA2C lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r1, r0, r1 ldr r2, _0813CA30 str r2, [r1] adds r0, r3 movs r1, 0x2 strh r1, [r0, 0x30] strh r4, [r0, 0x32] _0813C6E2: mov r3, r8 ldr r0, [r3] cmp r0, 0xDB bne _0813C720 movs r0, 0 bl sub_813D084 ldr r0, _0813CA38 ldrh r0, [r0] movs r1, 0x88 lsls r1, 1 movs r2, 0x60 movs r3, 0x6 bl sub_813CFA8 lsls r0, 24 lsrs r2, r0, 24 ldr r1, _0813CA2C lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, 0x1C adds r0, r1 ldr r1, _0813CA3C str r1, [r0] ldr r1, _0813CA40 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 strh r2, [r0, 0xA] _0813C720: mov r0, r8 ldr r1, [r0] movs r0, 0x98 lsls r0, 1 cmp r1, r0 bne _0813C758 ldr r3, _0813CA40 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r3 movs r0, 0x26 ldrsh r2, [r1, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r3 movs r2, 0x4 strh r2, [r0, 0x8] ldr r2, _0813CA2C movs r3, 0xA ldrsh r1, [r1, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2 strh r1, [r0, 0x2E] _0813C758: mov r0, r8 ldr r1, [r0] movs r0, 0xC0 lsls r0, 1 cmp r1, r0 bne _0813C790 ldr r3, _0813CA40 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r3 movs r0, 0x26 ldrsh r2, [r1, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r3 movs r2, 0 strh r2, [r0, 0x8] ldr r2, _0813CA2C movs r3, 0xA ldrsh r1, [r1, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x4 strh r1, [r0, 0x2E] _0813C790: mov r0, r8 ldr r1, [r0] movs r0, 0xC8 lsls r0, 1 cmp r1, r0 bne _0813C7AE movs r0, 0xFF lsls r0, 16 ldr r1, _0813CA44 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade _0813C7AE: mov r3, r8 ldr r1, [r3] movs r0, 0xD8 lsls r0, 1 cmp r1, r0 bne _0813C7D6 ldr r2, _0813CA2C ldr r1, _0813CA40 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 movs r3, 0xA ldrsh r1, [r0, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x5 strh r1, [r0, 0x2E] _0813C7D6: mov r0, r8 ldr r1, [r0] movs r0, 0xE7 lsls r0, 1 cmp r1, r0 bne _0813C80E ldr r3, _0813CA2C ldr r4, _0813CA40 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r4 movs r0, 0xA ldrsh r2, [r1, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 movs r2, 0x6 strh r2, [r0, 0x2E] movs r3, 0x26 ldrsh r1, [r1, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x8] _0813C80E: mov r0, r8 ldr r1, [r0] ldr r0, _0813CA48 cmp r1, r0 bne _0813C854 movs r0, 0x1 bl sub_813D084 ldr r0, _0813CA28 movs r1, 0x1 str r1, [sp] movs r1, 0xD0 movs r2, 0x8 movs r3, 0x5 bl sub_813CE88 lsls r0, 24 lsrs r2, r0, 24 ldr r1, _0813CA2C lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, 0x1C adds r0, r1 ldr r1, _0813CA4C str r1, [r0] ldr r1, _0813CA40 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 strh r2, [r0, 0xC] adds r0, r2, 0 bl sub_813E7C0 _0813C854: mov r3, r8 ldr r1, [r3] ldr r0, _0813CA50 cmp r1, r0 bne _0813C894 subs r0, 0xB2 movs r1, 0x1 str r1, [sp] movs r1, 0xF8 movs r2, 0x10 movs r3, 0x4 bl sub_813CE88 lsls r0, 24 lsrs r2, r0, 24 ldr r1, _0813CA2C lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, 0x1C adds r0, r1 ldr r1, _0813CA4C str r1, [r0] ldr r1, _0813CA40 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 strh r2, [r0, 0xE] adds r0, r2, 0 bl sub_813E930 _0813C894: mov r0, r8 ldr r1, [r0] ldr r0, _0813CA54 cmp r1, r0 bne _0813C8D8 ldr r4, _0813CA2C ldr r5, _0813CA40 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r5 movs r3, 0xC ldrsh r2, [r1, r3] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r4 movs r3, 0x2 strh r3, [r0, 0x2E] movs r0, 0xE ldrsh r2, [r1, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r4 strh r3, [r0, 0x2E] movs r3, 0x26 ldrsh r1, [r1, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r1, 0x3 strh r1, [r0, 0x8] _0813C8D8: mov r0, r8 ldr r1, [r0] movs r0, 0x9C lsls r0, 2 cmp r1, r0 bne _0813C920 movs r0, 0 bl sub_813D084 ldr r0, _0813CA58 movs r1, 0 str r1, [sp] movs r1, 0x20 movs r2, 0x98 movs r3, 0 bl sub_813CE88 lsls r0, 24 lsrs r2, r0, 24 ldr r1, _0813CA2C lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, 0x1C adds r0, r1 ldr r1, _0813CA5C str r1, [r0] ldr r1, _0813CA40 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x10] adds r0, r2, 0 bl sub_813EDBC _0813C920: mov r3, r8 ldr r1, [r3] movs r0, 0xAF lsls r0, 2 cmp r1, r0 bne _0813C966 movs r0, 0x8C lsls r0, 1 movs r1, 0x8 negs r1, r1 movs r2, 0 str r2, [sp] movs r2, 0x90 movs r3, 0x1 bl sub_813CE88 lsls r0, 24 lsrs r2, r0, 24 ldr r1, _0813CA2C lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, 0x1C adds r0, r1 ldr r1, _0813CA5C str r1, [r0] ldr r1, _0813CA40 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x12] adds r0, r2, 0 bl sub_813EB4C _0813C966: mov r0, r8 ldr r1, [r0] movs r0, 0xC2 lsls r0, 2 cmp r1, r0 bne _0813C9B2 ldr r1, _0813CA60 movs r0, 0x1 strh r0, [r1] ldr r4, _0813CA2C ldr r6, _0813CA40 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r6 movs r3, 0x10 ldrsh r2, [r1, r3] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r4 movs r5, 0 movs r3, 0x2 strh r3, [r0, 0x2E] movs r0, 0x12 ldrsh r2, [r1, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r4 strh r3, [r0, 0x2E] movs r3, 0x26 ldrsh r1, [r1, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 strh r5, [r0, 0x8] _0813C9B2: mov r0, r8 ldr r1, [r0] ldr r0, _0813CA64 cmp r1, r0 bne _0813CA76 movs r0, 0x2 bl sub_813D084 ldr r4, _0813CA2C ldr r0, _0813CA40 lsls r2, r7, 2 adds r2, r7 lsls r2, 3 adds r2, r0 movs r3, 0xC ldrsh r1, [r2, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r3, 0x3 strh r3, [r0, 0x2E] movs r0, 0xE ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r3, [r0, 0x2E] movs r0, 0x10 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r3, [r0, 0x2E] movs r0, 0x12 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r3, [r0, 0x2E] ldr r0, _0813CA68 movs r1, 0x78 movs r2, 0x50 movs r3, 0xF bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r4 b _0813CA6C .align 2, 0 _0813CA24: .4byte 0x03005ed0 _0813CA28: .4byte 0x0000014b _0813CA2C: .4byte 0x02020004 _0813CA30: .4byte sub_813DB9C _0813CA34: .4byte 0x00000169 _0813CA38: .4byte 0x02039318 _0813CA3C: .4byte sub_813DE70 _0813CA40: .4byte 0x03004b20 _0813CA44: .4byte 0x00007eff _0813CA48: .4byte 0x000001cf _0813CA4C: .4byte sub_813E10C _0813CA50: .4byte 0x0000021b _0813CA54: .4byte 0x0000026f _0813CA58: .4byte 0x0000011b _0813CA5C: .4byte sub_813E210 _0813CA60: .4byte 0x0203931a _0813CA64: .4byte 0x0000030d _0813CA68: .4byte gSpriteTemplate_840B1F4 _0813CA6C: adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _0813CA76: mov r3, r8 ldr r1, [r3] movs r0, 0xC8 lsls r0, 2 cmp r1, r0 bne _0813CA88 movs r0, 0x67 bl audio_play _0813CA88: mov r0, r8 ldr r1, [r0] ldr r0, _0813CAC8 cmp r1, r0 bne _0813CAA4 movs r0, 0x1 negs r0, r0 ldr r1, _0813CACC str r1, [sp] movs r1, 0x4 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _0813CAA4: mov r3, r8 ldr r1, [r3] ldr r0, _0813CAD0 cmp r1, r0 bne _0813CABC ldr r0, _0813CAD4 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 ldr r0, _0813CAD8 str r0, [r1] _0813CABC: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813CAC8: .4byte 0x00000352 _0813CACC: .4byte 0x0000ffff _0813CAD0: .4byte 0x000003b2 _0813CAD4: .4byte 0x03004b20 _0813CAD8: .4byte sub_813CADC thumb_func_end sub_813C668 thumb_func_start sub_813CADC sub_813CADC: @ 813CADC push {lr} lsls r0, 24 lsrs r0, 24 bl DestroyTask ldr r0, _0813CAF0 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0813CAF0: .4byte CB2_813B7EC thumb_func_end sub_813CADC thumb_func_start sub_813CAF4 sub_813CAF4: @ 813CAF4 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0813CB2C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x26] adds r0, 0x1 movs r6, 0 strh r0, [r4, 0x26] movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x4 bne _0813CB18 b _0813CC28 _0813CB18: cmp r0, 0x4 bgt _0813CB30 cmp r0, 0x2 beq _0813CB60 cmp r0, 0x2 bgt _0813CBC4 cmp r0, 0 beq _0813CB46 b _0813CC8E .align 2, 0 _0813CB2C: .4byte 0x03004b20 _0813CB30: cmp r0, 0x1E beq _0813CBEE cmp r0, 0x1E bgt _0813CB3E cmp r0, 0x14 beq _0813CB8A b _0813CC8E _0813CB3E: cmp r0, 0x28 bne _0813CB44 b _0813CC56 _0813CB44: b _0813CC8E _0813CB46: movs r1, 0x80 lsls r1, 19 movs r2, 0xE5 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r0, _0813CB5C strh r6, [r0] movs r0, 0xFF strh r0, [r4, 0x8] b _0813CC8E .align 2, 0 _0813CB5C: .4byte REG_BG2CNT _0813CB60: ldr r0, _0813CBB0 str r0, [sp] movs r0, 0x1 movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _0813CBB4 ldr r2, _0813CBB8 adds r0, r2, 0 strh r0, [r1] subs r1, 0xC movs r2, 0xF5 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] strh r6, [r4, 0xA] strh r6, [r4, 0xC] movs r0, 0x14 strh r0, [r4, 0x8] _0813CB8A: ldr r2, _0813CBBC ldr r0, _0813CBC0 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xA] strh r0, [r2] subs r2, 0x2 ldrh r0, [r1, 0xC] strh r0, [r2] ldrh r0, [r1, 0xA] adds r0, 0x6 strh r0, [r1, 0xA] ldrh r0, [r1, 0xC] subs r0, 0x8 strh r0, [r1, 0xC] b _0813CC8E .align 2, 0 _0813CBB0: .4byte 0x0000ffff _0813CBB4: .4byte REG_BG2CNT _0813CBB8: .4byte 0x00000e07 _0813CBBC: .4byte REG_BG2VOFS _0813CBC0: .4byte 0x03004b20 _0813CBC4: ldr r0, _0813CC14 str r0, [sp] movs r0, 0x1 movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _0813CC18 ldr r2, _0813CC1C adds r0, r2, 0 strh r0, [r1] subs r1, 0xC movs r2, 0xF5 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] strh r6, [r4, 0xA] strh r6, [r4, 0xC] movs r0, 0x1E strh r0, [r4, 0x8] _0813CBEE: ldr r2, _0813CC20 ldr r0, _0813CC24 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xA] strh r0, [r2] subs r2, 0x2 ldrh r0, [r1, 0xC] strh r0, [r2] ldrh r0, [r1, 0xA] subs r0, 0x6 strh r0, [r1, 0xA] ldrh r0, [r1, 0xC] adds r0, 0x8 strh r0, [r1, 0xC] b _0813CC8E .align 2, 0 _0813CC14: .4byte 0x0000ffff _0813CC18: .4byte REG_BG2CNT _0813CC1C: .4byte 0x00000e07 _0813CC20: .4byte REG_BG2VOFS _0813CC24: .4byte 0x03004b20 _0813CC28: ldr r0, _0813CC98 str r0, [sp] movs r0, 0x1 movs r1, 0x5 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0813CC9C ldr r2, _0813CCA0 adds r0, r2, 0 strh r0, [r1] subs r1, 0xC movs r2, 0xF5 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] strh r6, [r4, 0xA] strh r6, [r4, 0xC] movs r0, 0x8 strh r0, [r4, 0xE] movs r0, 0x28 strh r0, [r4, 0x8] _0813CC56: ldr r2, _0813CCA4 ldr r1, _0813CCA8 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r1 ldrh r0, [r3, 0xA] strh r0, [r2] ldr r1, _0813CCAC ldrh r0, [r3, 0xC] strh r0, [r1] ldrh r0, [r3, 0xA] ldrh r2, [r3, 0xE] subs r0, r2 strh r0, [r3, 0xA] ldrh r1, [r3, 0xC] adds r0, r2, r1 strh r0, [r3, 0xC] ldrh r1, [r3, 0x26] movs r0, 0x7 ands r0, r1 cmp r0, 0 bne _0813CC8E lsls r0, r2, 16 cmp r0, 0 beq _0813CC8E subs r0, r2, 0x1 strh r0, [r3, 0xE] _0813CC8E: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813CC98: .4byte 0x000037f7 _0813CC9C: .4byte REG_BG2CNT _0813CCA0: .4byte 0x00000e07 _0813CCA4: .4byte REG_BG2VOFS _0813CCA8: .4byte 0x03004b20 _0813CCAC: .4byte REG_BG2HOFS thumb_func_end sub_813CAF4 thumb_func_start intro_reset_and_hide_bgs intro_reset_and_hide_bgs: @ 813CCB0 movs r0, 0x80 lsls r0, 19 movs r1, 0 strh r1, [r0] adds r0, 0x1C strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x3E strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bx lr thumb_func_end intro_reset_and_hide_bgs thumb_func_start sub_813CCE8 sub_813CCE8: @ 813CCE8 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r1, _0813CD0C lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0x4 bhi _0813CD28 lsls r0, 2 ldr r1, _0813CD10 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813CD0C: .4byte 0x03004b20 _0813CD10: .4byte _0813CD14 .align 2, 0 _0813CD14: .4byte _0813CD28 .4byte _0813CD5C .4byte _0813CD8C .4byte _0813CDA8 .4byte _0813CDFC _0813CD28: ldr r1, _0813CD54 ldr r4, _0813CD58 adds r0, r4, 0 strh r0, [r1] adds r1, 0x2 movs r4, 0x80 lsls r4, 5 adds r0, r4, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0 strh r0, [r1] lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r2 movs r1, 0x40 strh r1, [r0, 0xA] movs r1, 0x1 strh r1, [r0, 0x8] b _0813CE26 .align 2, 0 _0813CD54: .4byte REG_BLDCNT _0813CD58: .4byte 0x00003f50 _0813CD5C: lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r2, r0, r2 ldrh r1, [r2, 0xA] movs r3, 0xA ldrsh r0, [r2, r3] cmp r0, 0 beq _0813CD78 subs r0, r1, 0x1 strh r0, [r2, 0xA] movs r4, 0xA ldrsh r0, [r2, r4] b _0813CDC2 _0813CD78: ldr r1, _0813CD84 ldr r0, _0813CD88 ldrh r0, [r0] strh r0, [r1] movs r0, 0x80 b _0813CDEA .align 2, 0 _0813CD84: .4byte REG_BLDALPHA _0813CD88: .4byte gUnknown_08393E64 _0813CD8C: lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r1, r0, r2 ldrh r0, [r1, 0xA] movs r3, 0xA ldrsh r2, [r1, r3] cmp r2, 0 bne _0813CE0E strh r2, [r1, 0xA] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0813CE26 _0813CDA8: lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r2, r0, r2 ldrh r1, [r2, 0xA] movs r4, 0xA ldrsh r0, [r2, r4] cmp r0, 0x3D bgt _0813CDE0 adds r0, r1, 0x1 strh r0, [r2, 0xA] movs r1, 0xA ldrsh r0, [r2, r1] _0813CDC2: lsrs r1, r0, 31 adds r0, r1 movs r2, 0xFF lsls r2, 1 ldr r3, _0813CDD8 ldr r1, _0813CDDC ands r0, r2 adds r0, r1 ldrh r0, [r0] strh r0, [r3] b _0813CE26 .align 2, 0 _0813CDD8: .4byte REG_BLDALPHA _0813CDDC: .4byte gUnknown_08393E64 _0813CDE0: ldr r1, _0813CDF4 ldr r0, _0813CDF8 ldrh r0, [r0, 0x3E] strh r0, [r1] movs r0, 0x10 _0813CDEA: strh r0, [r2, 0xA] ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] b _0813CE26 .align 2, 0 _0813CDF4: .4byte REG_BLDALPHA _0813CDF8: .4byte gUnknown_08393E64 _0813CDFC: lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r1, r0, r2 ldrh r0, [r1, 0xA] movs r4, 0xA ldrsh r2, [r1, r4] cmp r2, 0 beq _0813CE14 _0813CE0E: subs r0, 0x1 strh r0, [r1, 0xA] b _0813CE26 _0813CE14: ldr r0, _0813CE2C strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, r3, 0 bl DestroyTask _0813CE26: pop {r4} pop {r0} bx r0 .align 2, 0 _0813CE2C: .4byte REG_BLDCNT thumb_func_end sub_813CCE8 thumb_func_start sub_813CE30 sub_813CE30: @ 813CE30 push {r4,lr} sub sp, 0x24 lsls r2, 16 lsrs r2, 16 movs r4, 0x80 lsls r4, 8 str r4, [sp] str r4, [sp, 0x4] mov r4, sp strh r0, [r4, 0x8] mov r0, sp strh r1, [r0, 0xA] strh r2, [r0, 0xC] strh r2, [r0, 0xE] strh r3, [r0, 0x10] add r4, sp, 0x14 adds r1, r4, 0 movs r2, 0x1 bl BgAffineSet ldr r1, _0813CE84 ldrh r0, [r4] strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0x2] strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0x4] strh r0, [r1] adds r1, 0x2 ldrh r0, [r4, 0x6] strh r0, [r1] adds r1, 0x2 ldr r0, [r4, 0x8] str r0, [r1] adds r1, 0x4 ldr r0, [r4, 0xC] str r0, [r1] add sp, 0x24 pop {r4} pop {r0} bx r0 .align 2, 0 _0813CE84: .4byte REG_BG2PA thumb_func_end sub_813CE30 thumb_func_start sub_813CE88 sub_813CE88: @ 813CE88 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 ldr r4, [sp, 0x30] lsls r0, 16 lsrs r7, r0, 16 lsls r1, 16 lsrs r1, 16 mov r9, r1 lsls r2, 16 lsrs r2, 16 mov r10, r2 lsls r3, 16 lsrs r3, 16 mov r8, r3 lsls r4, 24 lsrs r6, r4, 24 cmp r6, 0 beq _0813CEF0 lsls r0, r7, 3 ldr r1, _0813CEE4 adds r0, r1 ldr r1, _0813CEE8 lsls r2, r7, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r5, _0813CEEC mov r6, r8 lsls r4, r6, 2 adds r4, r5 ldr r4, [r4] str r4, [sp] str r7, [sp, 0x4] movs r4, 0 str r4, [sp, 0x8] movs r4, 0x1 str r4, [sp, 0xC] bl sub_800D378 b _0813CF1C .align 2, 0 _0813CEE4: .4byte gMonFrontPicTable _0813CEE8: .4byte gMonFrontPicCoords _0813CEEC: .4byte gUnknown_0840B5A0 _0813CEF0: lsls r0, r7, 3 ldr r1, _0813CF90 adds r0, r1 ldr r1, _0813CF94 lsls r2, r7, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _0813CF98 mov r12, r4 mov r5, r8 lsls r4, r5, 2 add r4, r12 ldr r4, [r4] str r4, [sp] str r7, [sp, 0x4] str r6, [sp, 0x8] str r6, [sp, 0xC] bl sub_800D378 _0813CF1C: ldr r2, _0813CF9C adds r0, r7, 0 movs r1, 0 bl species_and_otid_get_pal mov r6, r8 lsls r4, r6, 4 movs r2, 0x80 lsls r2, 1 adds r1, r4, r2 lsls r1, 16 lsrs r1, 16 movs r2, 0x20 bl LoadCompressedPalette lsls r1, r6, 24 lsrs r1, 24 mov r0, r8 bl sub_8143648 ldr r0, _0813CFA0 mov r3, r9 lsls r1, r3, 16 asrs r1, 16 mov r5, r10 lsls r2, r5, 16 asrs r2, 16 mov r3, r8 adds r3, 0x1 lsls r3, 26 lsrs r3, 24 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _0813CFA4 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 ldrb r3, [r2, 0x5] movs r1, 0xF ands r1, r3 orrs r1, r4 movs r3, 0xD negs r3, r3 ands r1, r3 movs r3, 0x4 orrs r1, r3 strb r1, [r2, 0x5] add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0813CF90: .4byte gMonBackPicTable _0813CF94: .4byte gMonBackPicCoords _0813CF98: .4byte gUnknown_0840B5A0 _0813CF9C: .4byte 0x0000ffff _0813CFA0: .4byte 0x02024e8c _0813CFA4: .4byte 0x02020004 thumb_func_end sub_813CE88 thumb_func_start sub_813CFA8 sub_813CFA8: @ 813CFA8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r9, r1 mov r10, r2 adds r6, r3, 0 lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 mov r9, r1 lsls r2, 16 lsrs r2, 16 mov r10, r2 lsls r6, 16 lsrs r6, 16 lsls r7, r0, 3 ldr r1, _0813D068 mov r8, r1 add r8, r7 ldr r1, _0813D06C lsls r2, r0, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r5, _0813D070 lsls r4, r6, 2 adds r4, r5 ldr r4, [r4] str r4, [sp] str r0, [sp, 0x4] mov r0, r8 bl DecompressPicFromTable_2 ldr r0, _0813D074 adds r0, r7, r0 ldr r0, [r0] lsls r4, r6, 4 movs r2, 0x80 lsls r2, 1 adds r1, r4, r2 lsls r1, 16 lsrs r1, 16 movs r2, 0x20 bl LoadCompressedPalette lsls r1, r6, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_8143680 ldr r0, _0813D078 ldr r1, _0813D07C str r1, [r0, 0x8] mov r1, r9 lsls r1, 16 asrs r1, 16 mov r9, r1 mov r2, r10 lsls r2, 16 asrs r2, 16 mov r10, r2 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _0813D080 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 ldrb r3, [r2, 0x5] movs r1, 0xF ands r1, r3 orrs r1, r4 movs r3, 0xD negs r3, r3 ands r1, r3 movs r3, 0x4 orrs r1, r3 strb r1, [r2, 0x5] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0813D068: .4byte gTrainerBackPicTable _0813D06C: .4byte gTrainerBackPicCoords _0813D070: .4byte gUnknown_0840B5A0 _0813D074: .4byte gTrainerBackPicPaletteTable _0813D078: .4byte 0x02024e8c _0813D07C: .4byte gUnknown_0840B064 _0813D080: .4byte 0x02020004 thumb_func_end sub_813CFA8 thumb_func_start sub_813D084 sub_813D084: @ 813D084 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0813D0A0 cmp r0, 0x1 ble _0813D096 cmp r0, 0x2 beq _0813D0A8 _0813D096: ldr r2, _0813D09C b _0813D0AA .align 2, 0 _0813D09C: .4byte 0x00003ff6 _0813D0A0: ldr r2, _0813D0A4 b _0813D0AA .align 2, 0 _0813D0A4: .4byte 0x000031df _0813D0A8: ldr r2, _0813D0C0 _0813D0AA: ldr r0, _0813D0C4 movs r1, 0xF1 lsls r1, 1 adds r0, r1 strh r2, [r0] ldr r0, _0813D0C8 adds r0, r1 strh r2, [r0] pop {r0} bx r0 .align 2, 0 _0813D0C0: .4byte 0x0000518c _0813D0C4: .4byte 0x0202eac8 _0813D0C8: .4byte 0x0202eec8 thumb_func_end sub_813D084 thumb_func_start sub_813D0CC sub_813D0CC: @ 813D0CC push {r4,lr} sub sp, 0x4 adds r4, r0, 0 movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0xBF ble _0813D148 ldrh r1, [r4, 0x34] movs r2, 0x34 ldrsh r0, [r4, r2] cmp r0, 0 beq _0813D0EA subs r0, r1, 0x1 strh r0, [r4, 0x34] b _0813D14E _0813D0EA: adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x32] str r1, [sp] movs r2, 0 movs r3, 0 bl SetOamMatrix movs r0, 0x32 ldrsh r1, [r4, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 5 subs r0, r1 movs r1, 0x64 bl __divsi3 strh r0, [r4, 0x32] movs r2, 0x32 ldrsh r1, [r4, r2] adds r0, r1, 0 subs r0, 0xC0 cmp r0, 0 bge _0813D12C adds r0, 0x7F _0813D12C: asrs r0, 7 adds r0, 0x9 lsls r0, 24 lsrs r0, 24 cmp r0, 0xF bls _0813D13A movs r0, 0xF _0813D13A: lsls r2, r0, 4 ldrb r1, [r4, 0x5] movs r0, 0xF ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] b _0813D14E _0813D148: adds r0, r4, 0 bl DestroySprite _0813D14E: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_813D0CC thumb_func_start sub_813D158 sub_813D158: @ 813D158 push {r4,lr} adds r4, r0, 0 ldr r2, _0813D1CC movs r1, 0x3C ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r3, 0x3C ldrsh r0, [r1, r3] cmp r0, 0 beq _0813D1D4 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r3, [r4, 0x22] adds r0, r3 strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0x3 bl StartSpriteAnim movs r0, 0x80 lsls r0, 3 strh r0, [r4, 0x32] ldrh r1, [r4, 0x30] movs r0, 0x3 ands r0, r1 lsls r0, 3 strh r0, [r4, 0x34] ldr r0, _0813D1D0 str r0, [r4, 0x1C] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x3] movs r1, 0xC0 orrs r0, r1 strb r0, [r4, 0x3] adds r0, r4, 0 movs r1, 0x1 movs r2, 0x3 movs r3, 0x2 bl CalcCenterToCornerVec b _0813D200 .align 2, 0 _0813D1CC: .4byte 0x02020004 _0813D1D0: .4byte sub_813D0CC _0813D1D4: ldrh r0, [r1, 0x24] strh r0, [r4, 0x24] movs r0, 0x3C ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x26] strh r0, [r4, 0x26] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x20] strh r0, [r4, 0x20] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x22] strh r0, [r4, 0x22] _0813D200: pop {r4} pop {r0} bx r0 thumb_func_end sub_813D158 thumb_func_start sub_813D208 sub_813D208: @ 813D208 push {lr} adds r1, r0, 0 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0 beq _0813D218 ldr r0, _0813D21C str r0, [r1, 0x1C] _0813D218: pop {r0} bx r0 .align 2, 0 _0813D21C: .4byte sub_813D220 thumb_func_end sub_813D208 thumb_func_start sub_813D220 sub_813D220: @ 813D220 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r7, r0, 0 ldrh r4, [r7, 0x20] movs r1, 0x20 ldrsh r0, [r7, r1] cmp r0, 0x74 bgt _0813D260 ldrh r0, [r7, 0x26] ldrh r1, [r7, 0x22] adds r0, r1 movs r1, 0 strh r0, [r7, 0x22] strh r1, [r7, 0x26] adds r0, r4, 0x4 strh r0, [r7, 0x20] ldr r0, _0813D258 strh r0, [r7, 0x24] movs r0, 0x80 strh r0, [r7, 0x36] ldr r0, _0813D25C str r0, [r7, 0x1C] b _0813D352 .align 2, 0 _0813D258: .4byte 0x0000fffc _0813D25C: .4byte sub_813D368 _0813D260: ldrh r1, [r7, 0x36] ldr r5, _0813D364 lsls r0, r1, 24 lsrs r0, 23 adds r0, r5 ldrh r2, [r0] adds r0, r1, 0 adds r0, 0x40 lsls r0, 24 lsrs r0, 23 adds r0, r5 ldrh r3, [r0] adds r1, 0x2 strh r1, [r7, 0x36] lsls r2, 16 asrs r0, r2, 16 cmp r0, 0 bge _0813D286 adds r0, 0x1F _0813D286: asrs r0, 5 strh r0, [r7, 0x26] subs r0, r4, 0x1 strh r0, [r7, 0x20] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0813D29C ldrh r0, [r7, 0x22] adds r0, 0x1 strh r0, [r7, 0x22] _0813D29C: lsls r0, r3, 16 asrs r0, 16 negs r0, r0 cmp r0, 0 bge _0813D2A8 adds r0, 0xF _0813D2A8: lsls r1, r0, 12 lsrs r1, 16 ldrh r4, [r7, 0x32] ldrh r3, [r7, 0x34] adds r0, r1, 0 subs r0, 0x10 lsls r0, 24 lsrs r0, 23 adds r0, r5 ldrh r2, [r0] adds r1, 0x30 lsls r1, 24 lsrs r1, 23 adds r1, r5 movs r0, 0 ldrsh r1, [r1, r0] adds r0, r1, 0 muls r0, r4 cmp r0, 0 bge _0813D2D2 adds r0, 0xFF _0813D2D2: lsls r0, 8 lsrs r0, 16 mov r8, r0 lsls r0, r2, 16 asrs r2, r0, 16 negs r0, r2 muls r0, r3 cmp r0, 0 bge _0813D2E6 adds r0, 0xFF _0813D2E6: lsls r0, 8 lsrs r0, 16 mov r10, r0 adds r0, r2, 0 muls r0, r4 cmp r0, 0 bge _0813D2F6 adds r0, 0xFF _0813D2F6: lsls r0, 8 lsrs r5, r0, 16 adds r0, r1, 0 muls r0, r3 cmp r0, 0 bge _0813D304 adds r0, 0xFF _0813D304: lsls r6, r0, 8 lsrs r6, 16 ldrh r0, [r7, 0x30] lsls r0, 24 lsrs r0, 24 str r3, [sp] adds r1, r4, 0 movs r2, 0 movs r3, 0 bl SetOamMatrix ldrh r0, [r7, 0x30] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r5 mov r1, r10 lsls r5, r1, 16 lsrs r3, r5, 16 lsls r4, r6, 16 str r6, [sp] mov r1, r8 mov r2, r9 bl SetOamMatrix ldrh r0, [r7, 0x30] adds r0, 0x2 lsls r0, 24 lsrs r0, 24 lsls r5, 1 lsrs r5, 16 lsls r4, 1 lsrs r4, 16 str r4, [sp] mov r1, r8 mov r2, r9 adds r3, r5, 0 bl SetOamMatrix _0813D352: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813D364: .4byte gSineTable thumb_func_end sub_813D220 thumb_func_start sub_813D368 sub_813D368: @ 813D368 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x3A] adds r1, 0x40 lsls r1, 16 lsrs r1, 16 str r1, [sp] movs r2, 0 movs r3, 0 bl SetOamMatrix ldrh r0, [r4, 0x30] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x3A] adds r1, 0x40 lsls r1, 16 lsrs r1, 16 str r1, [sp] movs r2, 0 movs r3, 0 bl SetOamMatrix ldrh r0, [r4, 0x30] adds r0, 0x2 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x3A] adds r1, 0x40 lsls r1, 16 lsrs r1, 16 str r1, [sp] movs r2, 0 movs r3, 0 bl SetOamMatrix ldrh r1, [r4, 0x36] movs r2, 0x36 ldrsh r0, [r4, r2] cmp r0, 0x40 beq _0813D400 adds r0, r1, 0 subs r0, 0x8 strh r0, [r4, 0x36] ldrh r0, [r4, 0x36] adds r1, r0, 0 ldr r2, _0813D3FC adds r0, 0x40 lsls r0, 24 lsrs r0, 23 adds r0, r2 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0 bge _0813D3E2 adds r0, 0x3F _0813D3E2: asrs r0, 6 strh r0, [r4, 0x24] lsls r0, r1, 24 lsrs r0, 23 adds r0, r2 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bge _0813D3F6 adds r0, 0x3F _0813D3F6: asrs r0, 6 strh r0, [r4, 0x26] b _0813D408 .align 2, 0 _0813D3FC: .4byte gSineTable _0813D400: movs r0, 0 strh r0, [r4, 0x36] ldr r0, _0813D410 str r0, [r4, 0x1C] _0813D408: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0813D410: .4byte sub_813D414 thumb_func_end sub_813D368 thumb_func_start sub_813D414 sub_813D414: @ 813D414 push {r4,lr} adds r1, r0, 0 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0x2 beq _0813D474 ldrh r0, [r1, 0x36] adds r0, 0x8 strh r0, [r1, 0x36] ldr r3, _0813D470 lsls r0, 24 lsrs r0, 23 adds r0, r3 movs r4, 0 ldrsh r0, [r0, r4] cmp r0, 0 bge _0813D438 adds r0, 0xF _0813D438: asrs r0, 4 adds r0, 0x40 lsls r0, 16 lsrs r2, r0, 16 adds r0, r2, 0 adds r0, 0x40 lsls r0, 24 lsrs r0, 23 adds r0, r3 movs r4, 0 ldrsh r0, [r0, r4] cmp r0, 0 bge _0813D454 adds r0, 0x3F _0813D454: asrs r0, 6 strh r0, [r1, 0x24] lsls r0, r2, 24 lsrs r0, 23 adds r0, r3 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bge _0813D468 adds r0, 0x3F _0813D468: asrs r0, 6 strh r0, [r1, 0x26] b _0813D478 .align 2, 0 _0813D470: .4byte gSineTable _0813D474: ldr r0, _0813D480 str r0, [r1, 0x1C] _0813D478: pop {r4} pop {r0} bx r0 .align 2, 0 _0813D480: .4byte sub_813D484 thumb_func_end sub_813D414 thumb_func_start sub_813D484 sub_813D484: @ 813D484 push {r4,lr} adds r4, r0, 0 ldrh r2, [r4, 0x22] movs r0, 0x22 ldrsh r1, [r4, r0] movs r3, 0x38 ldrsh r0, [r4, r3] cmp r1, r0 bge _0813D49C adds r0, r2, 0x4 strh r0, [r4, 0x22] b _0813D4F8 _0813D49C: movs r0, 0x1 strh r0, [r4, 0x3C] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r3, [r4, 0x22] adds r0, r3 strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0x3 bl StartSpriteAnim movs r0, 0x80 lsls r0, 3 strh r0, [r4, 0x32] ldrh r1, [r4, 0x30] movs r0, 0x3 ands r0, r1 lsls r0, 3 strh r0, [r4, 0x34] ldr r0, _0813D500 str r0, [r4, 0x1C] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x3] movs r1, 0xC0 orrs r0, r1 strb r0, [r4, 0x3] adds r0, r4, 0 movs r1, 0x1 movs r2, 0x3 movs r3, 0x2 bl CalcCenterToCornerVec _0813D4F8: pop {r4} pop {r0} bx r0 .align 2, 0 _0813D500: .4byte sub_813D0CC thumb_func_end sub_813D484 thumb_func_start sub_813D504 sub_813D504: @ 813D504 push {r4,lr} adds r4, r0, 0 ldrh r2, [r4, 0x22] movs r0, 0x22 ldrsh r1, [r4, r0] movs r3, 0x38 ldrsh r0, [r4, r3] cmp r1, r0 bge _0813D51C adds r0, r2, 0x4 strh r0, [r4, 0x22] b _0813D578 _0813D51C: movs r0, 0x1 strh r0, [r4, 0x3C] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r3, [r4, 0x22] adds r0, r3 strh r0, [r4, 0x22] adds r0, r4, 0 movs r1, 0x3 bl StartSpriteAnim movs r0, 0x80 lsls r0, 3 strh r0, [r4, 0x32] ldrh r1, [r4, 0x30] movs r0, 0x3 ands r0, r1 lsls r0, 3 strh r0, [r4, 0x34] ldr r0, _0813D580 str r0, [r4, 0x1C] ldrb r1, [r4, 0x1] movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x3] movs r1, 0xC0 orrs r0, r1 strb r0, [r4, 0x3] adds r0, r4, 0 movs r1, 0x1 movs r2, 0x3 movs r3, 0x2 bl CalcCenterToCornerVec _0813D578: pop {r4} pop {r0} bx r0 .align 2, 0 _0813D580: .4byte sub_813D0CC thumb_func_end sub_813D504 thumb_func_start sub_813D584 sub_813D584: @ 813D584 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 adds r4, r0, 0 adds r5, r1, 0 ldr r6, [sp, 0x34] ldr r0, [sp, 0x38] mov r8, r0 lsls r4, 16 lsls r5, 16 lsls r2, 16 lsrs r2, 16 str r2, [sp, 0x8] lsls r3, 16 lsrs r3, 16 str r3, [sp, 0xC] lsls r6, 16 lsrs r6, 16 mov r1, r8 lsls r1, 24 lsrs r1, 24 mov r8, r1 ldr r0, _0813D640 lsrs r2, r4, 16 mov r10, r2 asrs r4, 16 lsrs r1, r5, 16 str r1, [sp, 0x4] asrs r5, 16 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r2, _0813D644 mov r9, r2 lsls r0, r7, 4 adds r0, r7 lsls r5, r0, 2 adds r4, r5, r2 movs r0, 0 strh r0, [r4, 0x2E] strh r0, [r4, 0x3C] mov r0, sp ldrh r0, [r0, 0xC] strh r0, [r4, 0x30] mov r1, sp ldrh r1, [r1, 0x8] strh r1, [r4, 0x32] mov r2, sp ldrh r2, [r2, 0x8] strh r2, [r4, 0x34] strh r6, [r4, 0x38] mov r0, sp ldrh r0, [r0, 0x8] strh r0, [r4, 0x3A] ldrb r0, [r4, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] movs r0, 0x1F ldr r1, [sp, 0xC] ands r1, r0 lsls r1, 1 ldrb r2, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x3] adds r0, r4, 0 movs r1, 0 movs r2, 0x2 movs r3, 0x2 bl CalcCenterToCornerVec adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim mov r1, r8 cmp r1, 0 bne _0813D64C mov r0, r9 adds r0, 0x1C adds r0, r5, r0 ldr r1, _0813D648 b _0813D654 .align 2, 0 _0813D640: .4byte gSpriteTemplate_840AE20 _0813D644: .4byte 0x02020004 _0813D648: .4byte sub_813D208 _0813D64C: mov r0, r9 adds r0, 0x1C adds r0, r5, r0 ldr r1, _0813D774 _0813D654: str r1, [r0] str r7, [sp, 0x10] mov r2, r10 lsls r2, 16 asrs r2, 16 mov r10, r2 ldr r0, [sp, 0x4] lsls r0, 16 asrs r0, 16 mov r8, r0 ldr r0, _0813D778 mov r1, r10 mov r2, r8 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r5, _0813D77C lsls r4, r7, 4 adds r4, r7 lsls r4, 2 adds r0, r4, r5 mov r1, sp ldrh r1, [r1, 0x10] strh r1, [r0, 0x3C] ldr r2, [sp, 0xC] adds r2, 0x1 mov r9, r2 strh r2, [r0, 0x30] ldrb r1, [r0, 0x1] movs r2, 0x3 orrs r1, r2 strb r1, [r0, 0x1] mov r2, r9 movs r1, 0x1F ands r2, r1 lsls r2, 1 ldrb r3, [r0, 0x3] movs r6, 0x3F negs r6, r6 adds r1, r6, 0 ands r1, r3 orrs r1, r2 strb r1, [r0, 0x3] movs r1, 0 movs r2, 0x2 movs r3, 0x2 bl CalcCenterToCornerVec ldr r2, _0813D780 adds r4, r2 ldr r0, _0813D784 str r0, [r4] ldr r0, _0813D778 mov r1, r10 mov r2, r8 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r4, r7, 4 adds r4, r7 lsls r4, 2 adds r5, r4, r5 mov r1, sp ldrh r1, [r1, 0x10] strh r1, [r5, 0x3C] ldr r2, [sp, 0xC] adds r2, 0x2 mov r8, r2 strh r2, [r5, 0x30] adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnim ldrb r0, [r5, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r5, 0x1] mov r0, r8 movs r2, 0x1F ands r0, r2 lsls r0, 1 ldrb r1, [r5, 0x3] ands r6, r1 orrs r6, r0 strb r6, [r5, 0x3] adds r0, r5, 0 movs r1, 0 movs r2, 0x2 movs r3, 0x2 bl CalcCenterToCornerVec ldr r0, _0813D780 adds r4, r0 ldr r1, _0813D784 str r1, [r4] ldr r2, [sp, 0xC] lsls r0, r2, 24 lsrs r0, 24 ldr r5, [sp, 0x8] adds r5, 0x20 lsls r4, r5, 16 lsrs r4, 16 str r4, [sp] adds r1, r4, 0 movs r2, 0 movs r3, 0 bl SetOamMatrix mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 str r4, [sp] adds r1, r4, 0 movs r2, 0 movs r3, 0 bl SetOamMatrix mov r1, r8 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r5, 17 lsrs r5, 16 str r5, [sp] mov r0, r8 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl SetOamMatrix ldr r0, [sp, 0x10] add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0813D774: .4byte sub_813D504 _0813D778: .4byte gSpriteTemplate_840AE20 _0813D77C: .4byte 0x02020004 _0813D780: .4byte 0x02020020 _0813D784: .4byte sub_813D158 thumb_func_end sub_813D584 thumb_func_start sub_813D788 sub_813D788: @ 813D788 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x4 bhi _0813D830 lsls r0, 2 ldr r1, _0813D7A0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813D7A0: .4byte _0813D7A4 .align 2, 0 _0813D7A4: .4byte _0813D7B8 .4byte _0813D7C6 .4byte _0813D7E4 .4byte _0813D80C .4byte _0813D816 _0813D7B8: adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent ldrh r0, [r4, 0x20] subs r0, 0x1 b _0813D82E _0813D7C6: adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent ldr r0, _0813D7E0 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _0813D87A ldrh r0, [r4, 0x20] adds r0, 0x1 b _0813D82E .align 2, 0 _0813D7E0: .4byte 0x03005ed0 _0813D7E4: adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnimIfDifferent ldrh r2, [r4, 0x20] movs r1, 0x20 ldrsh r0, [r4, r1] cmp r0, 0x78 ble _0813D802 ldr r0, _0813D808 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 beq _0813D83C _0813D802: adds r0, r2, 0x1 b _0813D82E .align 2, 0 _0813D808: .4byte 0x03005ed0 _0813D80C: adds r0, r4, 0 movs r1, 0x3 bl StartSpriteAnimIfDifferent b _0813D830 _0813D816: adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent ldrh r2, [r4, 0x20] movs r0, 0x20 ldrsh r1, [r4, r0] movs r0, 0x20 negs r0, r0 cmp r1, r0 ble _0813D830 subs r0, r2, 0x2 _0813D82E: strh r0, [r4, 0x20] _0813D830: ldr r0, _0813D84C ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _0813D87A _0813D83C: movs r1, 0x26 ldrsh r5, [r4, r1] cmp r5, 0 beq _0813D850 movs r0, 0 strh r0, [r4, 0x26] b _0813D87A .align 2, 0 _0813D84C: .4byte 0x03005ed0 _0813D850: bl Random movs r1, 0x3 ands r1, r0 cmp r1, 0x1 beq _0813D878 cmp r1, 0x1 bgt _0813D866 cmp r1, 0 beq _0813D86E b _0813D87A _0813D866: cmp r1, 0x3 bgt _0813D87A strh r5, [r4, 0x26] b _0813D87A _0813D86E: ldr r0, _0813D874 strh r0, [r4, 0x26] b _0813D87A .align 2, 0 _0813D874: .4byte 0x0000ffff _0813D878: strh r1, [r4, 0x26] _0813D87A: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_813D788 thumb_func_start sub_813D880 sub_813D880: @ 813D880 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 beq _0813D89A cmp r0, 0x1 ble _0813D8E2 cmp r0, 0x2 beq _0813D8BA cmp r0, 0x3 beq _0813D8D4 b _0813D8E2 _0813D89A: movs r2, 0x24 ldrsh r0, [r4, r2] movs r2, 0x20 ldrsh r1, [r4, r2] adds r0, r1 ldr r1, _0813D8B0 cmp r0, r1 bgt _0813D8B4 ldrh r0, [r4, 0x24] adds r0, 0x8 b _0813D8E0 .align 2, 0 _0813D8B0: .4byte 0x0000012f _0813D8B4: movs r0, 0x2 strh r0, [r4, 0x2E] b _0813D8E2 _0813D8BA: movs r1, 0x24 ldrsh r0, [r4, r1] movs r2, 0x20 ldrsh r1, [r4, r2] adds r0, r1 cmp r0, 0x78 ble _0813D8CE ldrh r0, [r4, 0x24] subs r0, 0x1 b _0813D8E0 _0813D8CE: movs r0, 0x3 strh r0, [r4, 0x2E] b _0813D8E2 _0813D8D4: ldrh r1, [r4, 0x24] movs r2, 0x24 ldrsh r0, [r4, r2] cmp r0, 0 ble _0813D8E2 subs r0, r1, 0x2 _0813D8E0: strh r0, [r4, 0x24] _0813D8E2: ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 movs r1, 0x8 bl sine ldr r1, _0813D904 ldrh r1, [r1] subs r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r0, 0x4 strh r0, [r4, 0x30] pop {r4} pop {r0} bx r0 .align 2, 0 _0813D904: .4byte 0x0203935a thumb_func_end sub_813D880 thumb_func_start sub_813D908 sub_813D908: @ 813D908 push {lr} adds r3, r0, 0 ldr r2, _0813D930 movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0 bne _0813D934 adds r0, r3, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _0813D94E .align 2, 0 _0813D930: .4byte 0x03004b20 _0813D934: cmp r0, 0x4 beq _0813D948 adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] b _0813D94E _0813D948: adds r0, r3, 0 bl DestroySprite _0813D94E: pop {r0} bx r0 thumb_func_end sub_813D908 thumb_func_start sub_813D954 sub_813D954: @ 813D954 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r1, 16 lsrs r6, r1, 16 lsls r2, 24 lsrs r2, 24 mov r8, r2 movs r5, 0 ldr r7, _0813DA48 lsls r0, 16 mov r9, r0 lsls r0, r6, 16 str r0, [sp, 0x4] mov r1, r9 asrs r1, 16 str r1, [sp] _0813D97C: lsls r4, r5, 2 adds r0, r7, 0x2 adds r0, r4, r0 ldrh r1, [r0] ldr r2, [sp] adds r1, r2, r1 lsls r1, 16 asrs r1, 16 lsls r2, r6, 16 asrs r3, r2, 16 mov r10, r3 ldr r0, _0813DA4C adds r2, r0 ldr r0, _0813DA50 asrs r2, 16 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 ldr r1, _0813DA54 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 mov r1, r8 strh r1, [r0, 0x2E] adds r4, r7 ldrb r1, [r4] bl StartSpriteAnim adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x8 bls _0813D97C movs r5, 0 ldr r7, _0813DA58 mov r0, r10 adds r0, 0xC lsls r0, 16 mov r10, r0 _0813D9D0: lsls r4, r5, 2 adds r0, r7, 0x2 adds r0, r4, r0 mov r2, r9 asrs r1, r2, 16 ldrh r0, [r0] adds r1, r0 lsls r1, 16 asrs r1, 16 ldr r0, _0813DA5C mov r3, r10 asrs r2, r3, 16 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 ldr r6, _0813DA54 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r6 mov r1, r8 strh r1, [r0, 0x2E] adds r4, r7 ldrb r1, [r4] bl StartSpriteAnim adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x7 bls _0813D9D0 ldr r0, _0813DA60 ldr r3, [sp, 0x4] ldr r1, _0813DA4C adds r2, r3, r1 asrs r2, 16 movs r1, 0x78 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r6 mov r3, r8 strh r3, [r0, 0x2E] adds r0, r2, 0 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0813DA48: .4byte gUnknown_0840AF50 _0813DA4C: .4byte 0xfffc0000 _0813DA50: .4byte gSpriteTemplate_840AF94 _0813DA54: .4byte 0x02020004 _0813DA58: .4byte gUnknown_0840AF74 _0813DA5C: .4byte gSpriteTemplate_840AFAC _0813DA60: .4byte gSpriteTemplate_840AFC4 thumb_func_end sub_813D954 thumb_func_start sub_813DA64 sub_813DA64: @ 813DA64 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _0813DA7C cmp r0, 0x1 beq _0813DAC0 _0813DA7C: ldrb r0, [r4, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x2 orrs r0, r1 strb r0, [r4, 0x3] adds r0, r4, 0 movs r1, 0x1 movs r2, 0x3 movs r3, 0x3 bl CalcCenterToCornerVec adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] movs r0, 0x1 strh r0, [r4, 0x2E] movs r0, 0x80 strh r0, [r4, 0x30] ldr r0, _0813DABC strh r0, [r4, 0x32] movs r0, 0 b _0813DB92 .align 2, 0 _0813DABC: .4byte 0x0000ffe8 _0813DAC0: ldrh r1, [r4, 0x34] movs r2, 0x34 ldrsh r0, [r4, r2] cmp r0, 0x4F bgt _0813DAF8 lsls r0, r1, 24 lsrs r0, 24 movs r1, 0x78 bl sine negs r0, r0 strh r0, [r4, 0x26] ldrh r0, [r4, 0x34] lsls r0, 24 lsrs r0, 24 movs r1, 0x8C bl sine negs r0, r0 strh r0, [r4, 0x24] movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0x40 ble _0813DAF8 ldrb r0, [r4, 0x5] movs r1, 0xC orrs r0, r1 strb r0, [r4, 0x5] _0813DAF8: ldr r2, _0813DB60 ldrh r1, [r4, 0x32] lsls r0, r1, 24 lsrs r0, 23 adds r0, r2 ldrh r3, [r0] adds r1, 0x40 lsls r1, 24 lsrs r1, 23 adds r1, r2 movs r2, 0 ldrsh r0, [r1, r2] movs r1, 0x30 ldrsh r2, [r4, r1] adds r1, r0, 0 muls r1, r2 adds r0, r1, 0 cmp r1, 0 bge _0813DB20 adds r0, 0xFF _0813DB20: lsls r0, 8 lsrs r6, r0, 16 lsls r0, r3, 16 asrs r3, r0, 16 negs r0, r3 muls r0, r2 cmp r0, 0 bge _0813DB32 adds r0, 0xFF _0813DB32: lsls r0, 8 lsrs r5, r0, 16 adds r0, r3, 0 muls r0, r2 cmp r0, 0 bge _0813DB40 adds r0, 0xFF _0813DB40: lsls r0, 8 lsrs r2, r0, 16 adds r1, r6, 0 adds r3, r5, 0 str r1, [sp] movs r0, 0x1 bl SetOamMatrix ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0xFF bgt _0813DB64 adds r0, r1, 0 adds r0, 0x8 b _0813DB68 .align 2, 0 _0813DB60: .4byte gSineTable _0813DB64: adds r0, r1, 0 adds r0, 0x20 _0813DB68: strh r0, [r4, 0x30] ldrh r1, [r4, 0x32] movs r2, 0x32 ldrsh r0, [r4, r2] cmp r0, 0x17 bgt _0813DB78 adds r0, r1, 0x1 strh r0, [r4, 0x32] _0813DB78: ldrh r2, [r4, 0x34] movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0x3F bgt _0813DB86 adds r0, r2, 0x2 b _0813DB92 _0813DB86: ldrh r1, [r4, 0x3C] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _0813DB94 adds r0, r2, 0x1 _0813DB92: strh r0, [r4, 0x34] _0813DB94: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_813DA64 thumb_func_start sub_813DB9C sub_813DB9C: @ 813DB9C push {r4,lr} sub sp, 0x4 adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x4 bhi _0813DBCC lsls r0, 2 ldr r1, _0813DBB4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813DBB4: .4byte _0813DBB8 .align 2, 0 _0813DBB8: .4byte _0813DBCC .4byte _0813DBF2 .4byte _0813DC24 .4byte _0813DC3E .4byte _0813DCAA _0813DBCC: movs r2, 0x32 ldrsh r0, [r4, r2] cmp r0, 0 beq _0813DBE0 adds r2, r4, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 b _0813DBEC _0813DBE0: adds r2, r4, 0 adds r2, 0x3F ldrb r1, [r2] movs r0, 0x2 negs r0, r0 ands r0, r1 _0813DBEC: strb r0, [r2] movs r0, 0x1 strh r0, [r4, 0x2E] _0813DBF2: ldrh r1, [r4, 0x22] movs r3, 0x22 ldrsh r0, [r4, r3] cmp r0, 0x60 ble _0813DC18 subs r0, r1, 0x4 strh r0, [r4, 0x22] movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 beq _0813DC10 ldrh r0, [r4, 0x20] adds r0, 0x2 strh r0, [r4, 0x20] b _0813DD4E _0813DC10: ldrh r0, [r4, 0x20] subs r0, 0x2 strh r0, [r4, 0x20] b _0813DD4E _0813DC18: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] movs r0, 0x8 strh r0, [r4, 0x34] b _0813DD4E _0813DC24: ldrh r0, [r4, 0x34] movs r2, 0x34 ldrsh r1, [r4, r2] cmp r1, 0 beq _0813DC34 subs r0, 0x1 strh r0, [r4, 0x34] b _0813DD4E _0813DC34: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] strh r1, [r4, 0x34] b _0813DD4E _0813DC3E: ldrb r0, [r4, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] movs r3, 0x30 ldrsh r1, [r4, r3] movs r0, 0x1F ands r1, r0 lsls r1, 1 ldrb r2, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x3] adds r0, r4, 0 movs r1, 0 movs r2, 0x3 movs r3, 0x3 bl CalcCenterToCornerVec movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 beq _0813DC8A ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 movs r1, 0xFF lsls r1, 8 movs r2, 0x80 lsls r2, 1 str r2, [sp] movs r2, 0 movs r3, 0 bl SetOamMatrix b _0813DC9E _0813DC8A: ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 movs r1, 0x80 lsls r1, 1 str r1, [sp] movs r2, 0 movs r3, 0 bl SetOamMatrix _0813DC9E: ldrh r0, [r4, 0x2E] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0x2E] strh r1, [r4, 0x36] b _0813DD4E _0813DCAA: ldrh r0, [r4, 0x36] adds r2, r0, 0x1 strh r2, [r4, 0x36] movs r3, 0x22 ldrsh r0, [r4, r3] movs r3, 0x26 ldrsh r1, [r4, r3] adds r0, r1 movs r1, 0x20 negs r1, r1 cmp r0, r1 ble _0813DD48 movs r1, 0x20 ldrsh r0, [r4, r1] movs r3, 0x24 ldrsh r1, [r4, r3] adds r0, r1 movs r1, 0x40 negs r1, r1 cmp r0, r1 ble _0813DD48 movs r1, 0x36 ldrsh r0, [r4, r1] adds r3, r0, 0 muls r3, r0 adds r0, r3, 0 negs r0, r0 cmp r0, 0 bge _0813DCE6 adds r0, 0x7 _0813DCE6: asrs r0, 3 strh r0, [r4, 0x26] movs r1, 0x32 ldrsh r0, [r4, r1] ldrh r3, [r4, 0x32] cmp r0, 0 beq _0813DCFA ldrh r0, [r4, 0x24] adds r0, r2 b _0813DCFE _0813DCFA: ldrh r0, [r4, 0x24] subs r0, r2 _0813DCFE: strh r0, [r4, 0x24] ldrh r1, [r4, 0x34] movs r2, 0x34 ldrsh r0, [r4, r2] cmp r0, 0x7F bgt _0813DD10 adds r0, r1, 0 adds r0, 0x8 strh r0, [r4, 0x34] _0813DD10: ldrh r0, [r4, 0x34] movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 subs r1, r0 lsls r1, 16 lsrs r2, r1, 16 lsls r0, r3, 16 cmp r0, 0 beq _0813DD34 ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 negs r1, r2 lsls r1, 16 lsrs r1, 16 str r2, [sp] b _0813DD3E _0813DD34: ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 str r2, [sp] adds r1, r2, 0 _0813DD3E: movs r2, 0 movs r3, 0 bl SetOamMatrix b _0813DD4E _0813DD48: adds r0, r4, 0 bl DestroySprite _0813DD4E: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_813DB9C thumb_func_start sub_813DD58 sub_813DD58: @ 813DD58 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 beq _0813DDAE cmp r0, 0x1 ble _0813DD72 cmp r0, 0x2 beq _0813DE66 cmp r0, 0x3 beq _0813DE26 _0813DD72: adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x1] movs r2, 0x30 ldrsh r1, [r4, r2] movs r0, 0x1F ands r1, r0 lsls r1, 1 ldrb r2, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x3] movs r0, 0x80 lsls r0, 4 strh r0, [r4, 0x34] movs r0, 0x1 strh r0, [r4, 0x2E] _0813DDAE: ldrh r1, [r4, 0x34] movs r2, 0x34 ldrsh r0, [r4, r2] movs r2, 0x80 lsls r2, 1 cmp r0, r2 ble _0813DDEE subs r1, 0x80 strh r1, [r4, 0x34] movs r2, 0x32 ldrsh r0, [r4, r2] cmp r0, 0 beq _0813DDDA ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 negs r1, r1 lsls r1, 16 lsrs r1, 16 ldrh r2, [r4, 0x34] str r2, [sp] b _0813DDE4 _0813DDDA: ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x34] str r1, [sp] _0813DDE4: movs r2, 0 movs r3, 0 bl SetOamMatrix b _0813DE66 _0813DDEE: movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 beq _0813DE0C ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 movs r1, 0xFF lsls r1, 8 str r2, [sp] movs r2, 0 movs r3, 0 bl SetOamMatrix b _0813DE1E _0813DE0C: ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 str r2, [sp] adds r1, r2, 0 movs r2, 0 movs r3, 0 bl SetOamMatrix _0813DE1E: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _0813DE66 _0813DE26: ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] movs r2, 0x36 ldrsh r0, [r4, r2] adds r1, r0, 0 muls r1, r0 adds r0, r1, 0 cmp r0, 0 bge _0813DE3C adds r0, 0x1F _0813DE3C: asrs r0, 5 strh r0, [r4, 0x26] movs r2, 0x32 ldrsh r0, [r4, r2] cmp r0, 0 beq _0813DE56 movs r1, 0x36 ldrsh r0, [r4, r1] cmp r0, 0 bge _0813DE52 adds r0, 0x3 _0813DE52: asrs r0, 2 b _0813DE64 _0813DE56: movs r2, 0x36 ldrsh r0, [r4, r2] cmp r0, 0 bge _0813DE60 adds r0, 0x3 _0813DE60: asrs r0, 2 negs r0, r0 _0813DE64: strh r0, [r4, 0x24] _0813DE66: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_813DD58 thumb_func_start sub_813DE70 sub_813DE70: @ 813DE70 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r7, r0, 0 movs r1, 0x2E ldrsh r0, [r7, r1] cmp r0, 0x6 bhi _0813DEB0 lsls r0, 2 ldr r1, _0813DE90 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813DE90: .4byte _0813DE94 .align 2, 0 _0813DE94: .4byte _0813DEB0 .4byte _0813E0F8 .4byte _0813DEF4 .4byte _0813DF2C .4byte _0813DF54 .4byte _0813E0A8 .4byte _0813E0D0 _0813DEB0: ldrh r1, [r7, 0x20] movs r2, 0x20 ldrsh r0, [r7, r2] cmp r0, 0x28 ble _0813DEC0 subs r0, r1, 0x4 strh r0, [r7, 0x20] b _0813E0F8 _0813DEC0: adds r0, r7, 0 movs r1, 0x1 bl StartSpriteAnim ldr r4, _0813DEF0 adds r0, r4, 0 movs r1, 0x10 movs r2, 0x68 movs r3, 0x64 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x3A] adds r0, r4, 0 movs r1, 0xC movs r2, 0x6A movs r3, 0x65 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x3C] b _0813DF42 .align 2, 0 _0813DEF0: .4byte gSpriteTemplate_840B084 _0813DEF4: adds r0, r7, 0 movs r1, 0x2 bl StartSpriteAnim ldr r2, _0813DF28 movs r3, 0x3A ldrsh r1, [r7, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 strh r1, [r0, 0x2E] movs r0, 0x3C ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2 strh r1, [r0, 0x2E] ldrh r0, [r7, 0x2E] adds r0, 0x1 strh r0, [r7, 0x2E] b _0813E0F8 .align 2, 0 _0813DF28: .4byte 0x02020004 _0813DF2C: ldrh r1, [r7, 0x22] movs r2, 0x22 ldrsh r0, [r7, r2] cmp r0, 0xA0 ble _0813DF48 adds r2, r7, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _0813DF42: movs r0, 0x1 strh r0, [r7, 0x2E] b _0813E0F8 _0813DF48: adds r0, r1, 0x2 strh r0, [r7, 0x22] ldrh r0, [r7, 0x20] subs r0, 0x1 strh r0, [r7, 0x20] b _0813E0F8 _0813DF54: ldr r6, _0813E094 movs r3, 0x3A ldrsh r1, [r7, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r5, [r0, 0x24] ldrh r1, [r0, 0x20] adds r5, r1 lsls r5, 16 lsrs r5, 16 ldrh r4, [r0, 0x26] ldrh r2, [r0, 0x22] adds r4, r2 lsls r4, 16 lsrs r4, 16 bl DestroySprite movs r0, 0x8C lsls r0, 1 lsls r5, 16 asrs r1, r5, 16 lsls r4, 16 asrs r2, r4, 16 movs r3, 0x1 mov r8, r3 str r3, [sp] movs r3, 0x2 bl sub_813CE88 strh r0, [r7, 0x3A] movs r0, 0x3A ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0813E098 adds r0, r1 ldr r2, _0813E09C mov r10, r2 str r2, [r0] movs r3, 0x3A ldrsh r1, [r7, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 mov r9, r2 mov r3, r9 orrs r1, r3 strb r1, [r0] movs r0, 0x3A ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 mov r1, r8 strh r1, [r0, 0x30] movs r2, 0x3A ldrsh r1, [r7, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 mov r3, r8 strh r3, [r0, 0x32] lsrs r5, 16 lsrs r4, 16 adds r0, r5, 0 adds r1, r4, 0 bl sub_813E580 movs r0, 0x3C ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r5, [r0, 0x24] ldrh r1, [r0, 0x20] adds r5, r1 lsls r5, 16 lsrs r5, 16 ldrh r4, [r0, 0x26] ldrh r2, [r0, 0x22] adds r4, r2 lsls r4, 16 lsrs r4, 16 bl DestroySprite ldr r0, _0813E0A0 lsls r5, 16 asrs r1, r5, 16 lsls r4, 16 asrs r2, r4, 16 mov r3, r8 str r3, [sp] movs r3, 0x3 bl sub_813CE88 strh r0, [r7, 0x3C] movs r0, 0x3C ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0813E098 adds r0, r1 mov r2, r10 str r2, [r0] movs r3, 0x3C ldrsh r1, [r7, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] mov r2, r9 orrs r1, r2 strb r1, [r0] movs r3, 0x3C ldrsh r1, [r7, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x2 strh r1, [r0, 0x30] movs r0, 0x3C ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0 strh r1, [r0, 0x32] lsrs r5, 16 lsrs r4, 16 adds r0, r5, 0 adds r1, r4, 0 bl sub_813E580 movs r0, 0xFF lsls r0, 16 ldr r1, _0813E0A4 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0x10 bl BeginNormalPaletteFade mov r2, r8 strh r2, [r7, 0x2E] b _0813E0F8 .align 2, 0 _0813E094: .4byte 0x02020004 _0813E098: .4byte 0x02020020 _0813E09C: .4byte sub_813DD58 _0813E0A0: .4byte 0x0000011b _0813E0A4: .4byte 0x00007eff _0813E0A8: ldr r3, _0813E0CC movs r0, 0x3A ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r2, 0x3 strh r2, [r0, 0x2E] movs r0, 0x3C ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r2, [r0, 0x2E] b _0813E0F8 .align 2, 0 _0813E0CC: .4byte 0x02020004 _0813E0D0: movs r2, 0x3A ldrsh r1, [r7, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _0813E108 adds r0, r4 bl DestroySprite movs r3, 0x3C ldrsh r1, [r7, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite adds r0, r7, 0 bl DestroySprite _0813E0F8: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813E108: .4byte 0x02020004 thumb_func_end sub_813DE70 thumb_func_start sub_813E10C sub_813E10C: @ 813E10C push {r4,lr} adds r3, r0, 0 movs r1, 0x2E ldrsh r0, [r3, r1] cmp r0, 0x4 bhi _0813E13C lsls r0, 2 ldr r1, _0813E124 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813E124: .4byte _0813E128 .align 2, 0 _0813E128: .4byte _0813E13C .4byte _0813E178 .4byte _0813E1A6 .4byte _0813E1C2 .4byte _0813E1D6 _0813E13C: ldrh r4, [r3, 0x24] movs r2, 0x24 ldrsh r1, [r3, r2] movs r0, 0x38 negs r0, r0 cmp r1, r0 ble _0813E158 adds r0, r4, 0 subs r0, 0x8 strh r0, [r3, 0x24] ldrh r0, [r3, 0x26] adds r0, 0x6 strh r0, [r3, 0x26] b _0813E208 _0813E158: ldrh r0, [r3, 0x20] movs r2, 0 strh r0, [r3, 0x3A] ldrh r1, [r3, 0x22] strh r1, [r3, 0x3C] adds r0, r4 strh r0, [r3, 0x20] ldrh r0, [r3, 0x26] adds r1, r0 strh r1, [r3, 0x22] strh r2, [r3, 0x24] strh r2, [r3, 0x26] movs r0, 0x1 strh r0, [r3, 0x2E] strh r2, [r3, 0x30] b _0813E208 _0813E178: ldrh r1, [r3, 0x30] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0813E1A0 movs r0, 0x2 ands r0, r1 lsls r0, 16 asrs r0, 16 cmp r0, 0 beq _0813E19C ldr r0, _0813E198 strh r0, [r3, 0x24] strh r2, [r3, 0x26] b _0813E1A0 .align 2, 0 _0813E198: .4byte 0x0000ffff _0813E19C: strh r0, [r3, 0x24] strh r0, [r3, 0x26] _0813E1A0: adds r0, r1, 0x1 strh r0, [r3, 0x30] b _0813E208 _0813E1A6: adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r3, 0x3A] movs r1, 0 strh r0, [r3, 0x20] ldrh r0, [r3, 0x3C] strh r0, [r3, 0x22] strh r1, [r3, 0x24] strh r1, [r3, 0x26] b _0813E208 _0813E1C2: adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r2] ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] _0813E1D6: ldrh r2, [r3, 0x24] movs r0, 0x24 ldrsh r1, [r3, r0] movs r0, 0x38 negs r0, r0 cmp r1, r0 ble _0813E1F0 subs r0, r2, 0x4 strh r0, [r3, 0x24] ldrh r0, [r3, 0x26] adds r0, 0x3 strh r0, [r3, 0x26] b _0813E208 _0813E1F0: ldrh r1, [r3, 0x20] adds r0, r2, r1 movs r1, 0 strh r0, [r3, 0x20] ldrh r0, [r3, 0x26] ldrh r2, [r3, 0x22] adds r0, r2 strh r0, [r3, 0x22] strh r1, [r3, 0x24] strh r1, [r3, 0x26] movs r0, 0x1 strh r0, [r3, 0x2E] _0813E208: pop {r4} pop {r0} bx r0 thumb_func_end sub_813E10C thumb_func_start sub_813E210 sub_813E210: @ 813E210 push {r4,lr} adds r3, r0, 0 movs r1, 0x2E ldrsh r0, [r3, r1] cmp r0, 0x4 bhi _0813E240 lsls r0, 2 ldr r1, _0813E228 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813E228: .4byte _0813E22C .align 2, 0 _0813E22C: .4byte _0813E240 .4byte _0813E278 .4byte _0813E2A6 .4byte _0813E2C2 .4byte _0813E2D6 _0813E240: ldrh r4, [r3, 0x24] movs r2, 0x24 ldrsh r0, [r3, r2] cmp r0, 0x37 bgt _0813E258 adds r0, r4, 0 adds r0, 0x8 strh r0, [r3, 0x24] ldrh r0, [r3, 0x26] subs r0, 0x6 strh r0, [r3, 0x26] b _0813E304 _0813E258: ldrh r0, [r3, 0x20] movs r2, 0 strh r0, [r3, 0x3A] ldrh r1, [r3, 0x22] strh r1, [r3, 0x3C] adds r0, r4 strh r0, [r3, 0x20] ldrh r0, [r3, 0x26] adds r1, r0 strh r1, [r3, 0x22] strh r2, [r3, 0x24] strh r2, [r3, 0x26] movs r0, 0x1 strh r0, [r3, 0x2E] strh r2, [r3, 0x30] b _0813E304 _0813E278: ldrh r1, [r3, 0x30] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0813E2A0 movs r0, 0x2 ands r0, r1 lsls r0, 16 asrs r0, 16 cmp r0, 0 beq _0813E29C strh r2, [r3, 0x24] ldr r0, _0813E298 b _0813E29E .align 2, 0 _0813E298: .4byte 0x0000ffff _0813E29C: strh r0, [r3, 0x24] _0813E29E: strh r0, [r3, 0x26] _0813E2A0: adds r0, r1, 0x1 strh r0, [r3, 0x30] b _0813E304 _0813E2A6: adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r3, 0x3A] movs r1, 0 strh r0, [r3, 0x20] ldrh r0, [r3, 0x3C] strh r0, [r3, 0x22] strh r1, [r3, 0x24] strh r1, [r3, 0x26] b _0813E304 _0813E2C2: adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r2] ldrh r0, [r3, 0x30] adds r0, 0x1 strh r0, [r3, 0x30] _0813E2D6: ldrh r1, [r3, 0x24] movs r2, 0x24 ldrsh r0, [r3, r2] cmp r0, 0x37 bgt _0813E2EC adds r0, r1, 0x4 strh r0, [r3, 0x24] ldrh r0, [r3, 0x26] subs r0, 0x3 strh r0, [r3, 0x26] b _0813E304 _0813E2EC: ldrh r2, [r3, 0x20] adds r0, r1, r2 movs r1, 0 strh r0, [r3, 0x20] ldrh r0, [r3, 0x26] ldrh r2, [r3, 0x22] adds r0, r2 strh r0, [r3, 0x22] strh r1, [r3, 0x24] strh r1, [r3, 0x26] movs r0, 0x1 strh r0, [r3, 0x2E] _0813E304: pop {r4} pop {r0} bx r0 thumb_func_end sub_813E210 thumb_func_start sub_813E30C sub_813E30C: @ 813E30C push {r4,lr} sub sp, 0x4 adds r4, r0, 0 ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x14 bls _0813E322 b _0813E4AC _0813E322: lsls r0, 2 ldr r1, _0813E32C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813E32C: .4byte _0813E330 .align 2, 0 _0813E330: .4byte _0813E4AC .4byte _0813E384 .4byte _0813E41C .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E3A8 .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E4AC .4byte _0813E440 _0813E384: ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x1] ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x2 orrs r0, r1 strb r0, [r4, 0x3] movs r0, 0xA strh r0, [r4, 0x2E] movs r0, 0x24 strh r0, [r4, 0x36] _0813E3A8: ldrh r1, [r4, 0x20] movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x90 bgt _0813E3D2 adds r0, r1, 0x4 strh r0, [r4, 0x20] ldrh r0, [r4, 0x22] subs r0, 0x1 strh r0, [r4, 0x22] ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 movs r1, 0x18 bl sine negs r0, r0 strh r0, [r4, 0x26] ldrh r0, [r4, 0x32] adds r0, 0x4 strh r0, [r4, 0x32] _0813E3D2: ldrh r0, [r4, 0x34] ldrh r2, [r4, 0x36] subs r0, r2 strh r0, [r4, 0x34] ldrh r1, [r4, 0x3C] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0813E3EE lsls r0, r2, 16 cmp r0, 0 beq _0813E3EE subs r0, r2, 0x1 strh r0, [r4, 0x36] _0813E3EE: ldr r2, _0813E418 ldrh r1, [r4, 0x34] lsls r0, r1, 24 lsrs r0, 23 adds r0, r2 ldrh r4, [r0] adds r1, 0x40 lsls r1, 24 lsrs r1, 23 adds r1, r2 ldrh r1, [r1] negs r3, r4 lsls r3, 16 lsrs r3, 16 str r1, [sp] movs r0, 0x1 adds r2, r4, 0 bl SetOamMatrix b _0813E4AC .align 2, 0 _0813E418: .4byte gSineTable _0813E41C: ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x1] ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r4, 0x3] movs r0, 0x14 strh r0, [r4, 0x2E] movs r0, 0x24 strh r0, [r4, 0x36] _0813E440: ldrh r1, [r4, 0x20] movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x60 bgt _0813E46A adds r0, r1, 0x3 strh r0, [r4, 0x20] ldrh r0, [r4, 0x22] subs r0, 0x1 strh r0, [r4, 0x22] ldrh r0, [r4, 0x32] lsls r0, 24 lsrs r0, 24 movs r1, 0x18 bl sine negs r0, r0 strh r0, [r4, 0x26] ldrh r0, [r4, 0x32] adds r0, 0x4 strh r0, [r4, 0x32] _0813E46A: ldrh r0, [r4, 0x34] ldrh r2, [r4, 0x36] subs r0, r2 strh r0, [r4, 0x34] ldrh r1, [r4, 0x3C] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0813E486 lsls r0, r2, 16 cmp r0, 0 beq _0813E486 subs r0, r2, 0x1 strh r0, [r4, 0x36] _0813E486: ldr r2, _0813E4B4 ldrh r1, [r4, 0x34] lsls r0, r1, 24 lsrs r0, 23 adds r0, r2 ldrh r4, [r0] adds r1, 0x40 lsls r1, 24 lsrs r1, 23 adds r1, r2 ldrh r1, [r1] negs r3, r4 lsls r3, 16 lsrs r3, 16 str r1, [sp] movs r0, 0x2 adds r2, r4, 0 bl SetOamMatrix _0813E4AC: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0813E4B4: .4byte gSineTable thumb_func_end sub_813E30C thumb_func_start sub_813E4B8 sub_813E4B8: @ 813E4B8 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 ldrh r0, [r5, 0x3C] adds r0, 0x1 strh r0, [r5, 0x3C] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0813E4DA adds r2, r5, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 b _0813E4E4 _0813E4DA: adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 _0813E4E4: strb r0, [r2] ldrh r1, [r5, 0x32] movs r2, 0x32 ldrsh r0, [r5, r2] cmp r0, 0x3F ble _0813E4F8 adds r0, r5, 0 bl DestroySprite b _0813E574 _0813E4F8: adds r0, r1, 0x2 strh r0, [r5, 0x32] lsls r0, 24 lsrs r0, 24 movs r1, 0x28 bl sine adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] lsls r0, 29 lsrs r0, 24 lsls r4, 16 asrs r4, 16 adds r1, r4, 0 bl cosine strh r0, [r5, 0x24] movs r2, 0x2E ldrsh r0, [r5, r2] lsls r0, 29 lsrs r0, 24 adds r1, r4, 0 bl sine strh r0, [r5, 0x26] movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 bne _0813E574 ldrh r0, [r5, 0x34] ldrh r2, [r5, 0x30] subs r0, r2 strh r0, [r5, 0x34] ldrh r1, [r5, 0x3C] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0813E550 lsls r0, r2, 16 cmp r0, 0 beq _0813E550 subs r0, r2, 0x1 strh r0, [r5, 0x30] _0813E550: ldr r3, _0813E57C ldrh r1, [r5, 0x34] lsls r0, r1, 24 lsrs r0, 23 adds r0, r3 ldrh r2, [r0] adds r1, 0x40 lsls r1, 24 lsrs r1, 23 adds r1, r3 ldrh r1, [r1] negs r3, r2 lsls r3, 16 lsrs r3, 16 str r1, [sp] movs r0, 0x10 bl SetOamMatrix _0813E574: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813E57C: .4byte gSineTable thumb_func_end sub_813E4B8 thumb_func_start sub_813E580 sub_813E580: @ 813E580 push {r4-r7,lr} movs r4, 0 ldr r7, _0813E5D8 lsls r6, r0, 16 lsls r5, r1, 16 _0813E58A: ldr r0, _0813E5DC asrs r1, r6, 16 asrs r2, r5, 16 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r7 ldrb r1, [r2, 0x1] movs r3, 0x4 negs r3, r3 adds r0, r3, 0 ands r1, r0 movs r0, 0x1 orrs r1, r0 strb r1, [r2, 0x1] ldrb r1, [r2, 0x3] subs r3, 0x3B adds r0, r3, 0 ands r1, r0 movs r0, 0x20 orrs r1, r0 strb r1, [r2, 0x3] strh r4, [r2, 0x2E] movs r0, 0x20 strh r0, [r2, 0x30] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _0813E58A pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813E5D8: .4byte 0x02020004 _0813E5DC: .4byte gSpriteTemplate_840B0B0 thumb_func_end sub_813E580 thumb_func_start sub_813E5E0 sub_813E5E0: @ 813E5E0 push {r4,lr} adds r3, r0, 0 ldr r0, _0813E5F4 ldrh r0, [r0] cmp r0, 0 beq _0813E5F8 adds r0, r3, 0 bl DestroySprite b _0813E6B2 .align 2, 0 _0813E5F4: .4byte 0x0203931a _0813E5F8: ldr r2, _0813E6B8 movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r0, [r0] movs r1, 0x3E adds r1, r3 mov r12, r1 movs r1, 0x4 ands r1, r0 mov r4, r12 ldrb r2, [r4] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4] ldrh r1, [r3, 0x3C] movs r2, 0x3C ldrsh r0, [r3, r2] cmp r0, 0xB bgt _0813E630 adds r0, r1, 0x1 strh r0, [r3, 0x3C] _0813E630: ldrh r0, [r3, 0x3A] adds r0, 0x4 strh r0, [r3, 0x3A] ldr r4, _0813E6BC ldrh r0, [r3, 0x34] adds r0, 0x40 lsls r0, 24 lsrs r0, 23 adds r0, r4 movs r2, 0 ldrsh r1, [r0, r2] movs r2, 0x3A ldrsh r0, [r3, r2] muls r0, r1 cmp r0, 0 bge _0813E652 adds r0, 0xFF _0813E652: asrs r0, 8 ldrh r1, [r3, 0x36] adds r0, r1 strh r0, [r3, 0x20] movs r2, 0x34 ldrsh r0, [r3, r2] lsls r0, 24 lsrs r0, 23 adds r0, r4 movs r2, 0 ldrsh r1, [r0, r2] movs r2, 0x3A ldrsh r0, [r3, r2] muls r0, r1 cmp r0, 0 bge _0813E674 adds r0, 0xFF _0813E674: asrs r0, 8 ldrh r1, [r3, 0x38] adds r2, r0, r1 strh r2, [r3, 0x22] movs r1, 0x30 ldrsh r0, [r3, r1] lsls r0, 24 lsrs r0, 23 adds r0, r4 movs r4, 0 ldrsh r1, [r0, r4] movs r4, 0x3C ldrsh r0, [r3, r4] muls r0, r1 cmp r0, 0 bge _0813E696 adds r0, 0xFF _0813E696: asrs r0, 8 strh r0, [r3, 0x26] ldrh r0, [r3, 0x30] adds r0, 0x10 strh r0, [r3, 0x30] lsls r0, r2, 16 asrs r0, 16 movs r2, 0x32 ldrsh r1, [r3, r2] cmp r0, r1 ble _0813E6B2 adds r0, r3, 0 bl DestroySprite _0813E6B2: pop {r4} pop {r0} bx r0 .align 2, 0 _0813E6B8: .4byte 0x02020004 _0813E6BC: .4byte gSineTable thumb_func_end sub_813E5E0 thumb_func_start sub_813E6C0 sub_813E6C0: @ 813E6C0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r4, r0, 0 ldr r0, _0813E6E0 ldrh r0, [r0] cmp r0, 0 beq _0813E6E4 adds r0, r4, 0 bl DestroySprite b _0813E7A8 .align 2, 0 _0813E6E0: .4byte 0x0203931a _0813E6E4: ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r3, _0813E7B8 movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, r0, r3 movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0x1 bne _0813E7A8 ldrh r1, [r4, 0x3C] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _0813E7A8 ldrh r0, [r2, 0x20] ldrh r7, [r4, 0x30] adds r0, r7 lsls r0, 16 lsrs r0, 16 str r0, [sp] ldrh r0, [r2, 0x22] ldrh r1, [r4, 0x32] adds r0, r1 lsls r0, 16 lsrs r6, r0, 16 movs r5, 0 mov r8, r3 ldr r2, [sp] lsls r2, 16 mov r10, r2 lsls r7, r6, 16 mov r9, r7 _0813E73A: movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 adds r0, 0x43 ldrb r3, [r0] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 ldr r0, _0813E7BC mov r2, r10 asrs r1, r2, 16 mov r7, r9 asrs r2, r7, 16 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0813E79E lsls r3, r0, 4 adds r3, r0 lsls r3, 2 add r3, r8 ldrh r0, [r4, 0x2E] strh r0, [r3, 0x2E] ldrh r1, [r4, 0x3C] lsls r1, 16 asrs r1, 18 movs r0, 0x7 ands r1, r0 lsls r1, 5 lsls r0, r5, 2 adds r0, r5 lsls r2, r0, 4 adds r0, r2 adds r1, r0 strh r1, [r3, 0x30] ldrh r0, [r4, 0x34] strh r0, [r3, 0x32] movs r0, 0x68 strh r0, [r3, 0x34] mov r0, sp ldrh r0, [r0] strh r0, [r3, 0x36] strh r6, [r3, 0x38] movs r1, 0 strh r1, [r3, 0x3A] _0813E79E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _0813E73A _0813E7A8: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813E7B8: .4byte 0x02020004 _0813E7BC: .4byte gSpriteTemplate_840B0DC thumb_func_end sub_813E6C0 thumb_func_start sub_813E7C0 sub_813E7C0: @ 813E7C0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0813E7F8 movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _0813E7F2 ldr r1, _0813E7FC lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 movs r2, 0 strh r4, [r0, 0x2E] ldr r1, _0813E800 strh r1, [r0, 0x30] strh r2, [r0, 0x32] movs r1, 0x88 strh r1, [r0, 0x34] _0813E7F2: pop {r4} pop {r0} bx r0 .align 2, 0 _0813E7F8: .4byte gSpriteTemplate_840B0F4 _0813E7FC: .4byte 0x02020004 _0813E800: .4byte 0x0000fff4 thumb_func_end sub_813E7C0 thumb_func_start sub_813E804 sub_813E804: @ 813E804 push {r4-r7,lr} adds r3, r0, 0 ldr r0, _0813E818 ldrh r0, [r0] cmp r0, 0 beq _0813E81C adds r0, r3, 0 bl DestroySprite b _0813E928 .align 2, 0 _0813E818: .4byte 0x0203931a _0813E81C: ldr r6, _0813E904 movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r0, [r0] movs r1, 0x3E adds r1, r3 mov r12, r1 movs r1, 0x4 ands r1, r0 mov r7, r12 ldrb r2, [r7] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r7] ldrh r0, [r3, 0x3C] adds r0, 0x1 strh r0, [r3, 0x3C] ldrh r1, [r3, 0x34] movs r2, 0x34 ldrsh r0, [r3, r2] cmp r0, 0x27 bgt _0813E85A adds r0, r1, 0x2 strh r0, [r3, 0x34] _0813E85A: movs r7, 0x2E ldrsh r1, [r3, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r1, [r0, 0x24] ldrh r0, [r0, 0x20] adds r2, r1, r0 ldr r4, _0813E908 ldrh r5, [r3, 0x30] adds r0, r5, 0 adds r0, 0x40 lsls r0, 24 lsrs r0, 23 adds r0, r4 movs r7, 0 ldrsh r1, [r0, r7] movs r7, 0x34 ldrsh r0, [r3, r7] muls r0, r1 cmp r0, 0 bge _0813E88A adds r0, 0xFF _0813E88A: asrs r0, 8 adds r0, r2, r0 strh r0, [r3, 0x20] movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r1, [r0, 0x26] ldrh r0, [r0, 0x22] adds r2, r1, r0 movs r1, 0x30 ldrsh r0, [r3, r1] lsls r0, 24 lsrs r0, 23 adds r0, r4 movs r7, 0 ldrsh r1, [r0, r7] movs r7, 0x34 ldrsh r0, [r3, r7] muls r0, r1 cmp r0, 0 bge _0813E8BE ldr r1, _0813E90C adds r0, r1 _0813E8BE: asrs r0, 9 adds r0, r2, r0 strh r0, [r3, 0x22] adds r1, r5, 0x2 strh r1, [r3, 0x30] movs r2, 0x32 ldrsh r0, [r3, r2] lsls r0, 24 lsrs r0, 23 adds r0, r4 movs r7, 0 ldrsh r0, [r0, r7] cmp r0, 0 bge _0813E8DC adds r0, 0x1F _0813E8DC: asrs r0, 5 strh r0, [r3, 0x26] ldrh r0, [r3, 0x32] adds r0, 0x8 strh r0, [r3, 0x32] movs r0, 0xFF ands r1, r0 cmp r1, 0x7F bgt _0813E910 movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x43 ldrb r0, [r0] subs r0, 0x1 b _0813E922 .align 2, 0 _0813E904: .4byte 0x02020004 _0813E908: .4byte gSineTable _0813E90C: .4byte 0x000001ff _0813E910: movs r2, 0x2E ldrsh r1, [r3, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x43 ldrb r0, [r0] adds r0, 0x1 _0813E922: adds r1, r3, 0 adds r1, 0x43 strb r0, [r1] _0813E928: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_813E804 thumb_func_start sub_813E930 sub_813E930: @ 813E930 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r7, _0813E978 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r5, r0, r7 _0813E942: movs r0, 0x20 ldrsh r1, [r5, r0] movs r0, 0x22 ldrsh r2, [r5, r0] ldr r0, _0813E97C movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _0813E968 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r6, [r0, 0x2E] lsls r1, r4, 5 strh r1, [r0, 0x30] _0813E968: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _0813E942 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813E978: .4byte 0x02020004 _0813E97C: .4byte gSpriteTemplate_840B124 thumb_func_end sub_813E930 thumb_func_start GetCurrentTrainerHillMapId GetCurrentTrainerHillMapId: @ 813E980 push {r4,r5,lr} adds r3, r0, 0 ldr r0, _0813E994 ldrh r0, [r0] cmp r0, 0 beq _0813E998 adds r0, r3, 0 bl DestroySprite b _0813EA50 .align 2, 0 _0813E994: .4byte 0x0203931a _0813E998: ldr r2, _0813EA58 movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r0, [r0] movs r1, 0x3E adds r1, r3 mov r12, r1 movs r1, 0x4 ands r1, r0 mov r5, r12 ldrb r2, [r5] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5] ldrh r0, [r3, 0x3C] adds r0, 0x1 strh r0, [r3, 0x3C] ldrh r0, [r3, 0x3A] adds r4, r0, 0 adds r4, 0x8 strh r4, [r3, 0x3A] ldr r2, _0813EA5C ldrh r0, [r3, 0x34] adds r0, 0x40 lsls r0, 24 lsrs r0, 23 adds r0, r2 movs r5, 0 ldrsh r1, [r0, r5] movs r5, 0x3A ldrsh r0, [r3, r5] muls r0, r1 cmp r0, 0 bge _0813E9EC adds r0, 0xFF _0813E9EC: asrs r0, 8 ldrh r1, [r3, 0x36] adds r0, r1 strh r0, [r3, 0x20] movs r5, 0x34 ldrsh r0, [r3, r5] lsls r0, 24 lsrs r0, 23 adds r0, r2 movs r2, 0 ldrsh r1, [r0, r2] movs r5, 0x3A ldrsh r0, [r3, r5] muls r0, r1 cmp r0, 0 bge _0813EA0E adds r0, 0xFF _0813EA0E: asrs r0, 8 ldrh r1, [r3, 0x38] adds r0, r1 strh r0, [r3, 0x22] movs r2, 0x3A ldrsh r0, [r3, r2] cmp r0, 0 bge _0813EA20 adds r0, 0xF _0813EA20: asrs r0, 4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x9 bls _0813EA2C movs r0, 0x9 _0813EA2C: adds r1, r0, 0 adds r1, 0x12 movs r0, 0x1F ands r1, r0 lsls r1, 1 ldrb r2, [r3, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x3] lsls r0, r4, 16 asrs r0, 16 cmp r0, 0xA0 ble _0813EA50 adds r0, r3, 0 bl DestroySprite _0813EA50: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813EA58: .4byte 0x02020004 _0813EA5C: .4byte gSineTable thumb_func_end GetCurrentTrainerHillMapId thumb_func_start sub_813EA60 sub_813EA60: @ 813EA60 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 ldr r0, _0813EA7C ldrh r0, [r0] cmp r0, 0 beq _0813EA80 adds r0, r5, 0 bl DestroySprite b _0813EB32 .align 2, 0 _0813EA7C: .4byte 0x0203931a _0813EA80: ldrh r0, [r5, 0x3C] adds r0, 0x1 strh r0, [r5, 0x3C] adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _0813EB40 mov r9, r0 movs r4, 0x2E ldrsh r1, [r5, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 mov r1, r9 adds r3, r0, r1 movs r4, 0x2E ldrsh r1, [r3, r4] cmp r1, 0x1 bne _0813EB32 ldrh r0, [r5, 0x3C] ands r1, r0 lsls r0, r1, 16 asrs r6, r0, 16 cmp r6, 0 bne _0813EB32 ldrh r1, [r3, 0x20] ldrh r0, [r5, 0x30] adds r1, r0 lsls r1, 16 ldrh r2, [r3, 0x22] ldrh r4, [r5, 0x32] adds r2, r4 lsls r2, 16 ldr r0, _0813EB44 lsrs r4, r1, 16 mov r8, r4 asrs r1, 16 lsrs r7, r2, 16 asrs r2, 16 adds r3, 0x43 ldrb r3, [r3] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0813EB32 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 add r4, r9 ldrb r0, [r4, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x24 orrs r0, r1 strb r0, [r4, 0x3] adds r0, r4, 0 movs r1, 0 movs r2, 0x1 movs r3, 0x3 bl CalcCenterToCornerVec ldrh r0, [r5, 0x2E] strh r0, [r4, 0x2E] ldr r2, _0813EB48 ldrh r0, [r5, 0x3C] lsls r0, 16 asrs r0, 17 movs r1, 0x7 ands r0, r1 adds r0, r2 ldrb r0, [r0] strh r0, [r4, 0x34] mov r0, r8 strh r0, [r4, 0x36] strh r7, [r4, 0x38] strh r6, [r4, 0x3A] _0813EB32: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813EB40: .4byte 0x02020004 _0813EB44: .4byte gSpriteTemplate_840B150 _0813EB48: .4byte gUnknown_0840B168 thumb_func_end sub_813EA60 thumb_func_start sub_813EB4C sub_813EB4C: @ 813EB4C push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0813EBB0 movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _0813EB80 ldr r1, _0813EBB4 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0 strh r4, [r0, 0x2E] strh r1, [r0, 0x30] movs r1, 0x8 strh r1, [r0, 0x32] movs r1, 0x18 strh r1, [r0, 0x34] _0813EB80: movs r4, 0 ldr r5, _0813EBB8 _0813EB84: adds r0, r4, 0 adds r0, 0x12 lsls r0, 24 lsrs r0, 24 lsls r1, r4, 1 adds r1, r5 ldrh r1, [r1] str r1, [sp] movs r2, 0 movs r3, 0 bl SetOamMatrix adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _0813EB84 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813EBB0: .4byte gSpriteTemplate_840B170 _0813EBB4: .4byte 0x02020004 _0813EBB8: .4byte gUnknown_0840B188 thumb_func_end sub_813EB4C thumb_func_start sub_813EBBC sub_813EBBC: @ 813EBBC push {r4,lr} adds r3, r0, 0 ldr r0, _0813EBD0 ldrh r0, [r0] cmp r0, 0 beq _0813EBD4 adds r0, r3, 0 bl DestroySprite b _0813EC80 .align 2, 0 _0813EBD0: .4byte 0x0203931a _0813EBD4: ldr r2, _0813EC88 movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r0, [r0] movs r1, 0x3E adds r1, r3 mov r12, r1 movs r1, 0x4 ands r1, r0 mov r4, r12 ldrb r2, [r4] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4] ldrh r0, [r3, 0x3C] adds r0, 0x1 strh r0, [r3, 0x3C] ldrh r0, [r3, 0x3A] adds r0, 0x8 strh r0, [r3, 0x3A] ldr r2, _0813EC8C ldrh r0, [r3, 0x34] adds r0, 0x40 lsls r0, 24 lsrs r0, 23 adds r0, r2 movs r4, 0 ldrsh r1, [r0, r4] movs r4, 0x3A ldrsh r0, [r3, r4] muls r0, r1 cmp r0, 0 bge _0813EC26 adds r0, 0xFF _0813EC26: asrs r0, 8 ldrh r1, [r3, 0x36] adds r0, r1 strh r0, [r3, 0x20] movs r4, 0x34 ldrsh r0, [r3, r4] lsls r0, 24 lsrs r0, 23 adds r0, r2 movs r4, 0 ldrsh r1, [r0, r4] movs r4, 0x3A ldrsh r0, [r3, r4] muls r0, r1 cmp r0, 0 bge _0813EC48 adds r0, 0xFF _0813EC48: asrs r0, 8 ldrh r4, [r3, 0x38] adds r1, r0, r4 strh r1, [r3, 0x22] movs r4, 0x30 ldrsh r0, [r3, r4] lsls r0, 24 lsrs r0, 23 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bge _0813EC64 adds r0, 0x3F _0813EC64: asrs r0, 6 strh r0, [r3, 0x26] ldrh r0, [r3, 0x30] adds r0, 0x10 strh r0, [r3, 0x30] lsls r0, r1, 16 asrs r0, 16 movs r4, 0x32 ldrsh r1, [r3, r4] cmp r0, r1 bge _0813EC80 adds r0, r3, 0 bl DestroySprite _0813EC80: pop {r4} pop {r0} bx r0 .align 2, 0 _0813EC88: .4byte 0x02020004 _0813EC8C: .4byte gSineTable thumb_func_end sub_813EBBC thumb_func_start sub_813EC90 sub_813EC90: @ 813EC90 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r5, r0, 0 ldr r0, _0813ECAC ldrh r0, [r0] cmp r0, 0 beq _0813ECB0 adds r0, r5, 0 bl DestroySprite b _0813EDA0 .align 2, 0 _0813ECAC: .4byte 0x0203931a _0813ECB0: ldrh r0, [r5, 0x3C] adds r0, 0x1 strh r0, [r5, 0x3C] adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _0813EDB0 mov r9, r0 movs r2, 0x2E ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 mov r4, r9 adds r3, r0, r4 movs r0, 0x2E ldrsh r1, [r3, r0] cmp r1, 0x1 bne _0813ED74 ldrh r0, [r5, 0x3C] ands r1, r0 lsls r0, r1, 16 asrs r6, r0, 16 cmp r6, 0 bne _0813ED66 ldrh r1, [r3, 0x20] ldrh r2, [r5, 0x30] adds r1, r2 lsls r1, 16 ldrh r2, [r3, 0x22] ldrh r4, [r5, 0x32] adds r2, r4 lsls r2, 16 ldr r0, _0813EDB4 lsrs r4, r1, 16 mov r8, r4 asrs r1, 16 lsrs r7, r2, 16 asrs r2, 16 adds r3, 0x43 ldrb r3, [r3] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0813ED66 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 add r4, r9 ldrb r0, [r4, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x22 orrs r0, r1 strb r0, [r4, 0x3] adds r0, r4, 0 movs r1, 0 movs r2, 0x1 movs r3, 0x3 bl CalcCenterToCornerVec ldrh r0, [r5, 0x2E] strh r0, [r4, 0x2E] ldrh r0, [r5, 0x3C] lsls r0, 16 asrs r0, 18 movs r1, 0x7 ands r0, r1 lsls r0, 5 strh r0, [r4, 0x30] ldrh r0, [r5, 0x34] strh r0, [r4, 0x32] movs r0, 0xE8 strh r0, [r4, 0x34] mov r0, r8 strh r0, [r4, 0x36] strh r7, [r4, 0x38] strh r6, [r4, 0x3A] _0813ED66: ldrh r1, [r5, 0x3A] movs r2, 0x3A ldrsh r0, [r5, r2] cmp r0, 0x6F bgt _0813ED74 adds r0, r1, 0x4 strh r0, [r5, 0x3A] _0813ED74: ldr r1, _0813EDB8 ldrh r0, [r5, 0x3A] lsls r0, 24 lsrs r0, 23 adds r0, r1 movs r4, 0 ldrsh r0, [r0, r4] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 subs r1, r0 lsls r1, 16 lsrs r1, 16 str r1, [sp] movs r0, 0x11 movs r2, 0 movs r3, 0 bl SetOamMatrix _0813EDA0: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813EDB0: .4byte 0x02020004 _0813EDB4: .4byte gSpriteTemplate_840B1B0 _0813EDB8: .4byte gSineTable thumb_func_end sub_813EC90 thumb_func_start sub_813EDBC sub_813EDBC: @ 813EDBC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0813EDF4 movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _0813EDEE ldr r1, _0813EDF8 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0 strh r4, [r0, 0x2E] strh r1, [r0, 0x30] movs r1, 0xC strh r1, [r0, 0x32] movs r1, 0x18 strh r1, [r0, 0x34] _0813EDEE: pop {r4} pop {r0} bx r0 .align 2, 0 _0813EDF4: .4byte gSpriteTemplate_840B1C8 _0813EDF8: .4byte 0x02020004 thumb_func_end sub_813EDBC thumb_func_start sub_813EDFC sub_813EDFC: @ 813EDFC push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 beq _0813EE12 adds r4, r5, 0 adds r4, 0x3E cmp r0, 0x1 beq _0813EE4A _0813EE12: adds r4, r5, 0 adds r4, 0x3E ldrb r1, [r4] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r4] ldrb r0, [r5, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r5, 0x1] ldrb r1, [r5, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x24 orrs r0, r1 strb r0, [r5, 0x3] adds r0, r5, 0 movs r1, 0 movs r2, 0x3 movs r3, 0x3 bl CalcCenterToCornerVec movs r0, 0 strh r0, [r5, 0x30] movs r0, 0x1 strh r0, [r5, 0x2E] _0813EE4A: ldrh r0, [r5, 0x3C] adds r0, 0x1 strh r0, [r5, 0x3C] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0813EE62 ldrb r0, [r4] movs r1, 0x4 orrs r0, r1 strb r0, [r4] b _0813EE7A _0813EE62: ldrb r0, [r4] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r4] ldrh r1, [r5, 0x30] movs r2, 0x30 ldrsh r0, [r5, r2] cmp r0, 0x3F bgt _0813EE7A adds r0, r1, 0x1 strh r0, [r5, 0x30] _0813EE7A: ldr r1, _0813EEB0 ldrh r0, [r5, 0x30] lsls r0, 24 lsrs r0, 23 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 subs r1, r0 lsls r1, 16 lsrs r1, 16 str r1, [sp] movs r0, 0x12 movs r2, 0 movs r3, 0 bl SetOamMatrix add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813EEB0: .4byte gSineTable thumb_func_end sub_813EDFC thumb_func_start sub_813EEB4 sub_813EEB4: @ 813EEB4 push {r4,lr} adds r4, r0, 0 movs r0, 0 bl SetVBlankCallback ldr r2, _0813EED8 ldr r0, _0813EEDC adds r1, r2, r0 movs r0, 0 strh r0, [r1] str r4, [r2] ldr r0, _0813EEE0 bl SetMainCallback2 pop {r4} pop {r0} bx r0 .align 2, 0 _0813EED8: .4byte 0x02000000 _0813EEDC: .4byte 0x00000888 _0813EEE0: .4byte sub_813EEE4 thumb_func_end sub_813EEB4 thumb_func_start sub_813EEE4 sub_813EEE4: @ 813EEE4 push {r4,lr} sub sp, 0x4 movs r0, 0x80 lsls r0, 19 movs r1, 0 strh r1, [r0] adds r0, 0x10 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bl ResetSpriteData bl FreeAllSpritePalettes ldr r0, _0813EF98 movs r1, 0 bl sub_80FA8EC movs r0, 0 movs r1, 0 bl sub_80FBCF0 movs r0, 0x1 movs r1, 0x1 bl sub_80FBB3C ldr r4, _0813EF9C adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C bl sub_8071EF4 ldr r1, _0813EFA0 movs r2, 0xF8 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] movs r0, 0x15 movs r1, 0 movs r2, 0x1D movs r3, 0x3 bl DrawDefaultWindow ldr r0, _0813EFA4 movs r1, 0x16 movs r2, 0x1 movs r3, 0x38 bl Free movs r0, 0x10 movs r1, 0x10 movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow bl sub_813F0C8 ldr r0, _0813EFA8 bl SetMainCallback2 ldr r0, _0813EFAC bl SetVBlankCallback movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0813EF98: .4byte 0x02000008 _0813EF9C: .4byte gWindowConfig_81E709C _0813EFA0: .4byte REG_BG0CNT _0813EFA4: .4byte gUnknown_0842C5B5 _0813EFA8: .4byte sub_813EFC4 _0813EFAC: .4byte sub_813EFB0 thumb_func_end sub_813EEE4 thumb_func_start sub_813EFB0 sub_813EFB0: @ 813EFB0 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_813EFB0 thumb_func_start sub_813EFC4 sub_813EFC4: @ 813EFC4 push {lr} bl sub_813EFDC bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_813EFC4 thumb_func_start sub_813EFDC sub_813EFDC: @ 813EFDC push {lr} sub sp, 0x4 ldr r1, _0813EFF8 ldr r2, _0813EFFC adds r0, r1, r2 ldrh r0, [r0] adds r2, r1, 0 cmp r0, 0x4 bhi _0813F0B8 lsls r0, 2 ldr r1, _0813F000 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813EFF8: .4byte 0x02000000 _0813EFFC: .4byte 0x00000888 _0813F000: .4byte _0813F004 .align 2, 0 _0813F004: .4byte _0813F018 .4byte _0813F030 .4byte _0813F04C .4byte _0813F078 .4byte _0813F0A0 _0813F018: movs r1, 0x80 lsls r1, 19 ldr r3, _0813F028 adds r0, r3, 0 strh r0, [r1] ldr r0, _0813F02C adds r1, r2, r0 b _0813F08E .align 2, 0 _0813F028: .4byte 0x00001541 _0813F02C: .4byte 0x00000888 _0813F030: ldr r0, _0813F044 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0813F0B8 ldr r3, _0813F048 adds r1, r2, r3 b _0813F08E .align 2, 0 _0813F044: .4byte 0x0202f388 _0813F048: .4byte 0x00000888 _0813F04C: bl sub_80FAB60 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _0813F05E bl sub_813F0C8 b _0813F0B8 _0813F05E: cmp r0, 0x3 blt _0813F0B8 cmp r0, 0x5 bgt _0813F0B8 ldr r1, _0813F070 ldr r0, _0813F074 adds r1, r0 b _0813F08E .align 2, 0 _0813F070: .4byte 0x02000000 _0813F074: .4byte 0x00000888 _0813F078: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0813F098 ldr r2, _0813F09C adds r1, r2 _0813F08E: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _0813F0B8 .align 2, 0 _0813F098: .4byte 0x02000000 _0813F09C: .4byte 0x00000888 _0813F0A0: ldr r0, _0813F0C0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0813F0B8 bl sub_80FAB10 ldr r0, _0813F0C4 ldr r0, [r0] bl SetMainCallback2 _0813F0B8: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0813F0C0: .4byte 0x0202f388 _0813F0C4: .4byte 0x02000000 thumb_func_end sub_813EFDC thumb_func_start sub_813F0C8 sub_813F0C8: @ 813F0C8 push {lr} movs r0, 0x11 movs r1, 0x11 movs r2, 0x1C movs r3, 0x12 bl sub_8071EBC ldr r1, _0813F0F0 ldrb r0, [r1, 0x1E] cmp r0, 0 beq _0813F0EA adds r0, r1, 0 adds r0, 0x8 movs r1, 0x11 movs r2, 0x11 bl Print _0813F0EA: pop {r0} bx r0 .align 2, 0 _0813F0F0: .4byte 0x02000000 thumb_func_end sub_813F0C8 thumb_func_start unref_sub_813F0F4 unref_sub_813F0F4: @ 813F0F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] ldr r0, _0813F2AC ldrb r3, [r0] ldr r0, _0813F2B0 movs r1, 0 strh r1, [r0] ldr r0, _0813F2B4 strh r1, [r0] ldr r1, _0813F2B8 ldr r2, _0813F2BC adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r4, _0813F2C0 adds r0, r4, 0 strh r0, [r1] movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r4, 0x80 lsls r4, 8 adds r1, r4, 0 orrs r0, r1 strh r0, [r2] ldr r1, _0813F2C4 ldr r2, _0813F2C8 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r4, 0x80 lsls r4, 5 adds r0, r4, 0 strh r0, [r1] ldr r2, _0813F2CC ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 strb r0, [r2] ldrb r1, [r2, 0x1] movs r0, 0x3F ands r0, r1 strb r0, [r2, 0x1] ldrb r0, [r2, 0x1] movs r1, 0x20 orrs r0, r1 strb r0, [r2, 0x1] ldrb r1, [r2] movs r0, 0xD negs r0, r0 mov r9, r0 ands r0, r1 movs r1, 0x4 mov r8, r1 mov r4, r8 orrs r0, r4 strb r0, [r2] ldr r0, _0813F2D0 adds r3, r0 ldrb r0, [r3] ldr r1, _0813F2D4 mov r10, r1 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 add r4, r10 ldrb r7, [r4, 0x6] ldrh r6, [r4, 0x38] lsls r6, 24 lsrs r6, 24 ldr r0, _0813F2D8 bl object_new_hidden_with_callback lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x14] ldr r0, _0813F2D8 bl object_new_hidden_with_callback lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x18] ldrb r1, [r4, 0x5] mov r0, r9 ands r0, r1 mov r2, r8 orrs r0, r2 strb r0, [r4, 0x5] lsls r5, r7, 4 adds r5, r7 lsls r5, 2 add r5, r10 ldrb r1, [r5, 0x5] mov r0, r9 ands r0, r1 orrs r0, r2 strb r0, [r5, 0x5] lsls r1, r6, 4 adds r1, r6 lsls r1, 2 add r1, r10 ldrb r2, [r1, 0x5] mov r0, r9 ands r0, r2 mov r2, r8 orrs r0, r2 strb r0, [r1, 0x5] ldr r0, [sp, 0x14] lsls r6, r0, 4 adds r6, r0 lsls r6, 2 mov r1, r10 adds r7, r6, r1 adds r0, r7, 0 adds r1, r4, 0 movs r2, 0x44 bl memcpy ldr r2, [sp, 0x18] lsls r4, r2, 4 adds r4, r2 lsls r4, 2 adds r0, r4, 0 add r0, r10 mov r8, r0 adds r1, r5, 0 movs r2, 0x44 bl memcpy ldrb r1, [r7, 0x1] mov r0, r9 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r7, 0x1] mov r2, r8 ldrb r0, [r2, 0x1] mov r2, r9 ands r2, r0 orrs r2, r1 mov r0, r8 strb r2, [r0, 0x1] movs r1, 0x1C add r10, r1 add r6, r10 ldr r2, _0813F2D8 str r2, [r6] add r4, r10 str r2, [r4] mov r0, sp bl sub_8078914 ldr r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0xC] ldr r2, _0813F2DC add r0, sp, 0xC str r0, [r2] str r1, [r2, 0x4] ldr r0, _0813F2E0 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _0813F2E4 bl LZDecompressVram ldr r0, _0813F2E8 ldr r1, [sp] bl LZDecompressVram ldr r0, _0813F2EC mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette ldr r1, _0813F2F0 ldrh r0, [r7, 0x20] negs r0, r0 adds r0, 0x20 strh r0, [r1] ldr r1, _0813F2F4 ldrh r0, [r7, 0x22] negs r0, r0 subs r0, 0x20 strh r0, [r1] ldr r1, _0813F2F8 ldr r4, [sp, 0x10] lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0xA0 lsls r1, 2 strh r1, [r0, 0xA] mov r1, sp ldrh r1, [r1, 0x14] strh r1, [r0, 0x8] mov r2, sp ldrh r2, [r2, 0x18] strh r2, [r0, 0xC] ldr r1, _0813F2FC str r1, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813F2AC: .4byte 0x0202f7c8 _0813F2B0: .4byte 0x030042c4 _0813F2B4: .4byte 0x03004240 _0813F2B8: .4byte REG_WININ _0813F2BC: .4byte 0x00003f3f _0813F2C0: .4byte 0x00003f3d _0813F2C4: .4byte REG_BLDCNT _0813F2C8: .4byte 0x00003f42 _0813F2CC: .4byte REG_BG1CNT _0813F2D0: .4byte 0x03004340 _0813F2D4: .4byte 0x02020004 _0813F2D8: .4byte SpriteCallbackDummy _0813F2DC: .4byte 0x040000d4 _0813F2E0: .4byte 0x85000400 _0813F2E4: .4byte gUnknown_08D2EE48 _0813F2E8: .4byte gUnknown_08D2EDFC _0813F2EC: .4byte gUnknown_08D2E150 _0813F2F0: .4byte 0x030042c0 _0813F2F4: .4byte 0x030041b4 _0813F2F8: .4byte 0x03004b20 _0813F2FC: .4byte sub_813F300 thumb_func_end unref_sub_813F0F4 thumb_func_start sub_813F300 sub_813F300: @ 813F300 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r0, _0813F34C ldrb r0, [r0] mov r9, r0 ldr r1, _0813F350 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r4, r0, r1 ldrh r1, [r4, 0xA] ldrh r0, [r4, 0x22] adds r1, r0 movs r3, 0 strh r1, [r4, 0x22] ldr r2, _0813F354 lsls r0, r1, 16 lsrs r0, 24 ldrh r5, [r2] adds r0, r5 strh r0, [r2] movs r0, 0xFF ands r1, r0 strh r1, [r4, 0x22] movs r1, 0x26 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _0813F394 cmp r0, 0x1 bgt _0813F358 cmp r0, 0 beq _0813F35E b _0813F4B2 .align 2, 0 _0813F34C: .4byte 0x0202f7c8 _0813F350: .4byte 0x03004b20 _0813F354: .4byte 0x030041b4 _0813F358: cmp r0, 0x2 beq _0813F3AC b _0813F4B2 _0813F35E: ldrh r0, [r4, 0x1E] adds r1, r0, 0x1 strh r1, [r4, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bgt _0813F36E b _0813F4B2 _0813F36E: strh r3, [r4, 0x1E] ldrh r1, [r4, 0x20] adds r1, 0x1 strh r1, [r4, 0x20] ldr r2, _0813F390 movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x8 beq _0813F38C b _0813F4B2 _0813F38C: b _0813F3A4 .align 2, 0 _0813F390: .4byte REG_BLDALPHA _0813F394: ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x1E beq _0813F3A4 b _0813F4B2 _0813F3A4: ldrh r0, [r4, 0x26] adds r0, 0x1 strh r0, [r4, 0x26] b _0813F4B2 _0813F3AC: ldrh r0, [r4, 0x1E] adds r1, r0, 0x1 strh r1, [r4, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _0813F4B2 strh r3, [r4, 0x1E] ldrh r1, [r4, 0x20] subs r1, 0x1 strh r1, [r4, 0x20] ldr r6, _0813F4C0 movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 strh r1, [r6] movs r3, 0x20 ldrsh r5, [r4, r3] cmp r5, 0 bne _0813F4B2 movs r0, 0 bl sub_8076464 ldr r0, _0813F4C4 strh r5, [r0] ldr r0, _0813F4C8 strh r5, [r0] ldr r0, _0813F4CC ldr r2, _0813F4D0 adds r1, r2, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _0813F406 ldr r2, _0813F4D4 ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _0813F406: movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 eors r0, r1 strh r0, [r2] ldr r0, _0813F4D8 strh r5, [r0] strh r5, [r6] movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0813F4DC mov r8, r1 add r0, r8 bl DestroySprite movs r2, 0xC ldrsh r1, [r4, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 bl DestroySprite mov r0, sp bl sub_8078914 ldr r2, [sp, 0x4] str r5, [sp, 0xC] ldr r1, _0813F4E0 add r0, sp, 0xC str r0, [r1] str r2, [r1, 0x4] ldr r0, _0813F4E4 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r2, _0813F4D4 ldrb r1, [r2, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r2, 0x1] ldr r0, _0813F4E8 add r0, r9 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 ldrb r6, [r1, 0x6] ldrh r4, [r1, 0x38] lsls r4, 24 lsrs r4, 24 ldrb r3, [r1, 0x5] movs r2, 0xD negs r2, r2 adds r0, r2, 0 ands r0, r3 movs r5, 0x4 orrs r0, r5 strb r0, [r1, 0x5] lsls r1, r6, 4 adds r1, r6 lsls r1, 2 add r1, r8 ldrb r3, [r1, 0x5] adds r0, r2, 0 ands r0, r3 orrs r0, r5 strb r0, [r1, 0x5] lsls r0, r4, 4 adds r0, r4 lsls r0, 2 add r0, r8 ldrb r1, [r0, 0x5] ands r2, r1 orrs r2, r5 strb r2, [r0, 0x5] adds r0, r7, 0 bl move_anim_task_del _0813F4B2: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813F4C0: .4byte REG_BLDALPHA _0813F4C4: .4byte 0x030042c4 _0813F4C8: .4byte 0x03004240 _0813F4CC: .4byte REG_WININ _0813F4D0: .4byte 0x00003f3f _0813F4D4: .4byte REG_BG1CNT _0813F4D8: .4byte REG_BLDCNT _0813F4DC: .4byte 0x02020004 _0813F4E0: .4byte 0x040000d4 _0813F4E4: .4byte 0x85000200 _0813F4E8: .4byte 0x03004340 thumb_func_end sub_813F300 thumb_func_start sub_813F4EC sub_813F4EC: @ 813F4EC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 str r0, [sp] ldr r1, _0813F5D0 ldr r0, _0813F5D4 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] ldr r7, _0813F5D8 lsls r6, r0, 4 adds r6, r0 lsls r6, 2 adds r6, r7 ldrb r0, [r6, 0x6] str r0, [sp, 0x4] ldrh r4, [r6, 0x38] lsls r4, 24 lsrs r4, 24 ldr r0, _0813F5DC bl AllocSpritePalette mov r8, r0 mov r1, r8 lsls r1, 24 lsrs r1, 24 mov r8, r1 ldr r0, _0813F5E0 bl AllocSpritePalette mov r9, r0 mov r2, r9 lsls r2, 24 lsrs r2, 24 mov r9, r2 ldrb r0, [r6, 0x5] lsrs r0, 4 lsls r0, 4 movs r1, 0x80 lsls r1, 1 adds r3, r1, 0 orrs r0, r3 lsls r5, r4, 4 adds r5, r4 lsls r5, 2 adds r5, r7 ldrb r4, [r5, 0x5] lsrs r4, 4 lsls r4, 4 orrs r4, r3 lsls r0, 1 ldr r2, _0813F5E4 mov r10, r2 add r0, r10 mov r1, r8 lsls r1, 4 mov r8, r1 adds r1, r3, r1 movs r2, 0x20 str r3, [sp, 0x8] bl LoadPalette lsls r4, 1 add r4, r10 mov r2, r9 lsls r2, 4 mov r9, r2 ldr r3, [sp, 0x8] add r3, r9 adds r0, r4, 0 adds r1, r3, 0 movs r2, 0x20 bl LoadPalette ldrb r1, [r6, 0x5] movs r2, 0xF adds r0, r2, 0 ands r0, r1 mov r3, r8 orrs r0, r3 strb r0, [r6, 0x5] ldr r0, [sp, 0x4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 ldrb r3, [r1, 0x5] adds r0, r2, 0 ands r0, r3 mov r3, r8 orrs r0, r3 strb r0, [r1, 0x5] ldrb r0, [r5, 0x5] ands r2, r0 mov r0, r9 orrs r2, r0 strb r2, [r5, 0x5] ldr r0, [sp] bl move_anim_task_del add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813F5D0: .4byte 0x03004340 _0813F5D4: .4byte 0x0202f7c8 _0813F5D8: .4byte 0x02020004 _0813F5DC: .4byte 0x0000d709 _0813F5E0: .4byte 0x0000d70a _0813F5E4: .4byte 0x0202eac8 thumb_func_end sub_813F4EC thumb_func_start sub_813F5E8 sub_813F5E8: @ 813F5E8 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} mov r8, r0 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, _0813F684 ldr r0, _0813F688 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] ldr r1, _0813F68C mov r9, r1 lsls r5, r0, 4 adds r5, r0 lsls r5, 2 add r5, r9 ldrb r0, [r5, 0x6] mov r10, r0 ldrh r6, [r5, 0x38] lsls r6, 24 lsrs r6, 24 ldr r0, _0813F690 bl FreeSpritePaletteByTag ldr r0, _0813F694 bl FreeSpritePaletteByTag ldr r0, _0813F698 bl IndexOfSpritePaletteTag adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0813F69C bl IndexOfSpritePaletteTag lsls r0, 24 lsls r4, 4 ldrb r2, [r5, 0x5] movs r3, 0xF adds r1, r3, 0 ands r1, r2 orrs r1, r4 strb r1, [r5, 0x5] mov r1, r10 lsls r2, r1, 4 add r2, r10 lsls r2, 2 add r2, r9 ldrb r5, [r2, 0x5] adds r1, r3, 0 ands r1, r5 orrs r1, r4 strb r1, [r2, 0x5] lsls r1, r6, 4 adds r1, r6 lsls r1, 2 add r1, r9 lsrs r0, 20 ldrb r2, [r1, 0x5] ands r3, r2 orrs r3, r0 strb r3, [r1, 0x5] mov r0, r8 bl move_anim_task_del pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813F684: .4byte 0x03004340 _0813F688: .4byte 0x0202f7c8 _0813F68C: .4byte 0x02020004 _0813F690: .4byte 0x0000d709 _0813F694: .4byte 0x0000d70a _0813F698: .4byte 0x0000d6ff _0813F69C: .4byte 0x0000d704 thumb_func_end sub_813F5E8 thumb_func_start sub_813F6A0 sub_813F6A0: @ 813F6A0 lsls r0, 24 lsrs r0, 24 ldr r2, _0813F6C0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _0813F6C4 ldrh r0, [r2] strh r0, [r1, 0x1C] ldrh r0, [r2, 0x2] strh r0, [r1, 0x1E] ldr r0, _0813F6C8 str r0, [r1] bx lr .align 2, 0 _0813F6C0: .4byte 0x03004b20 _0813F6C4: .4byte 0x03004b00 _0813F6C8: .4byte sub_813F6CC thumb_func_end sub_813F6A0 thumb_func_start sub_813F6CC sub_813F6CC: @ 813F6CC push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0813F718 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x8] adds r0, 0x1 movs r6, 0 adds r1, r0, 0x1 strh r1, [r4, 0x8] lsls r0, 16 asrs r0, 16 movs r2, 0x1E ldrsh r1, [r4, r2] cmp r0, r1 blt _0813F78C strh r6, [r4, 0x8] ldr r0, _0813F71C bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r2, r0, 24 movs r3, 0x1C ldrsh r0, [r4, r3] movs r1, 0x2 cmp r0, 0 bne _0813F70A movs r1, 0x6 _0813F70A: movs r3, 0xA ldrsh r0, [r4, r3] cmp r0, 0 beq _0813F720 cmp r0, 0x1 beq _0813F75C b _0813F78C .align 2, 0 _0813F718: .4byte 0x03004b20 _0813F71C: .4byte 0x0000d709 _0813F720: ldrh r0, [r4, 0xC] adds r0, 0x2 strh r0, [r4, 0xC] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _0813F732 movs r0, 0x10 strh r0, [r4, 0xC] _0813F732: lsls r0, r2, 4 movs r2, 0x80 lsls r2, 1 adds r0, r2 orrs r0, r1 ldrb r2, [r4, 0xC] ldr r3, _0813F758 movs r1, 0x1 bl BlendPalette movs r3, 0xC ldrsh r0, [r4, r3] cmp r0, 0x10 bne _0813F78C ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] b _0813F78C .align 2, 0 _0813F758: .4byte 0x00007f74 _0813F75C: ldrh r0, [r4, 0xC] subs r0, 0x2 strh r0, [r4, 0xC] lsls r0, 16 cmp r0, 0 bge _0813F76A strh r6, [r4, 0xC] _0813F76A: lsls r0, r2, 4 movs r2, 0x80 lsls r2, 1 adds r0, r2 orrs r0, r1 ldrb r2, [r4, 0xC] ldr r3, _0813F794 movs r1, 0x1 bl BlendPalette movs r3, 0xC ldrsh r0, [r4, r3] cmp r0, 0 bne _0813F78C adds r0, r5, 0 bl move_anim_task_del _0813F78C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813F794: .4byte 0x00007f74 thumb_func_end sub_813F6CC thumb_func_start sub_813F798 sub_813F798: @ 813F798 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _0813F7C4 ldr r0, _0813F7C8 ldrb r0, [r0] adds r0, r1 ldrb r5, [r0] ldr r1, _0813F7CC lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _0813F7E6 cmp r0, 0x1 bgt _0813F7D0 cmp r0, 0 beq _0813F7D6 b _0813F838 .align 2, 0 _0813F7C4: .4byte 0x02024be0 _0813F7C8: .4byte 0x0202f7c8 _0813F7CC: .4byte 0x03004b20 _0813F7D0: cmp r0, 0x2 beq _0813F818 b _0813F838 _0813F7D6: adds r0, r5, 0 movs r1, 0 bl sub_8078E70 movs r0, 0x80 lsls r0, 1 strh r0, [r4, 0x1C] b _0813F80A _0813F7E6: ldrh r0, [r4, 0x1C] adds r0, 0x30 strh r0, [r4, 0x1C] movs r0, 0x1C ldrsh r2, [r4, r0] adds r0, r5, 0 adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale adds r0, r5, 0 bl sub_8079A64 movs r0, 0x1C ldrsh r1, [r4, r0] ldr r0, _0813F814 cmp r1, r0 ble _0813F838 _0813F80A: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0813F838 .align 2, 0 _0813F814: .4byte 0x000002cf _0813F818: adds r0, r5, 0 bl sub_8078F40 ldr r1, _0813F840 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r0, r6, 0 bl move_anim_task_del _0813F838: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813F840: .4byte 0x02020004 thumb_func_end sub_813F798 thumb_func_start sub_813F844 sub_813F844: @ 813F844 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0813F87C ldr r4, _0813F880 ldrb r0, [r4] adds r1, r0, r1 ldrb r1, [r1] mov r9, r1 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0813F88C ldr r1, _0813F884 ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0813F888 b _0813F89C .align 2, 0 _0813F87C: .4byte 0x02024be0 _0813F880: .4byte 0x0202f7c8 _0813F884: .4byte 0x02024a6a _0813F888: .4byte 0x03004360 _0813F88C: ldr r1, _0813F8CC ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0813F8D0 _0813F89C: adds r0, r1 movs r1, 0x26 bl PokemonGetField lsls r0, 16 lsrs r0, 16 bl ball_number_to_ball_processing_index lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r2, _0813F8D4 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r6, r0, r2 movs r0, 0x8 ldrsh r7, [r6, r0] cmp r7, 0 beq _0813F8D8 cmp r7, 0x1 beq _0813F958 b _0813F982 .align 2, 0 _0813F8CC: .4byte 0x02024a6a _0813F8D0: .4byte 0x030045c0 _0813F8D4: .4byte 0x03004b20 _0813F8D8: ldr r5, _0813F950 ldrb r0, [r5] movs r1, 0 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x1 bl sub_8077ABC adds r1, r0, 0 lsls r1, 24 ldr r2, _0813F954 mov r3, r9 lsls r0, r3, 4 add r0, r9 lsls r0, 2 adds r0, r2 ldrb r2, [r0, 0x5] lsls r2, 28 lsrs r2, 30 adds r0, 0x43 ldrb r3, [r0] movs r0, 0x80 lsls r0, 22 adds r1, r0 lsrs r1, 24 mov r0, r8 str r0, [sp] adds r0, r4, 0 bl sub_814086C lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x1C] str r7, [sp] str r7, [sp, 0x4] str r7, [sp, 0x8] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80791A8 adds r2, r0, 0 ldrb r1, [r5] movs r0, 0 mov r3, r8 bl sub_8141314 lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x1E] ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] b _0813F982 .align 2, 0 _0813F950: .4byte 0x0202f7c8 _0813F954: .4byte 0x02020004 _0813F958: movs r1, 0x1C ldrsh r0, [r6, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0x4] cmp r0, 0 bne _0813F982 movs r3, 0x1E ldrsh r0, [r6, r3] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0x4] cmp r0, 0 bne _0813F982 adds r0, r5, 0 bl move_anim_task_del _0813F982: add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_813F844 thumb_func_start sub_813F990 sub_813F990: @ 813F990 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0813F9B4 ldrh r0, [r0] bl ball_number_to_ball_processing_index lsls r0, 24 lsrs r0, 24 bl sub_80478DC adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _0813F9B4: .4byte 0x02024c04 thumb_func_end sub_813F990 thumb_func_start sub_813F9B8 sub_813F9B8: @ 813F9B8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0813F9DC ldrh r0, [r0] bl ball_number_to_ball_processing_index lsls r0, 24 lsrs r0, 24 bl sub_804794C adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _0813F9DC: .4byte 0x02024c04 thumb_func_end sub_813F9B8 thumb_func_start sub_813F9E0 sub_813F9E0: @ 813F9E0 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0813F9F4 ldrb r0, [r0, 0x8] cmp r0, 0x5 bne _0813FA00 ldr r1, _0813F9F8 ldr r0, _0813F9FC b _0813FA04 .align 2, 0 _0813F9F4: .4byte 0x02017840 _0813F9F8: .4byte 0x03004b00 _0813F9FC: .4byte 0x0000ffff _0813FA00: ldr r1, _0813FA10 movs r0, 0 _0813FA04: strh r0, [r1, 0xE] adds r0, r2, 0 bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _0813FA10: .4byte 0x03004b00 thumb_func_end sub_813F9E0 thumb_func_start ball_number_to_ball_processing_index ball_number_to_ball_processing_index: @ 813FA14 push {lr} lsls r0, 16 lsrs r0, 16 subs r0, 0x1 cmp r0, 0xB bhi _0813FA8C lsls r0, 2 ldr r1, _0813FA2C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0813FA2C: .4byte _0813FA30 .align 2, 0 _0813FA30: .4byte _0813FA60 .4byte _0813FA64 .4byte _0813FA68 .4byte _0813FA8C .4byte _0813FA6C .4byte _0813FA70 .4byte _0813FA74 .4byte _0813FA78 .4byte _0813FA7C .4byte _0813FA80 .4byte _0813FA84 .4byte _0813FA88 _0813FA60: movs r0, 0x4 b _0813FA8E _0813FA64: movs r0, 0x3 b _0813FA8E _0813FA68: movs r0, 0x1 b _0813FA8E _0813FA6C: movs r0, 0x2 b _0813FA8E _0813FA70: movs r0, 0x5 b _0813FA8E _0813FA74: movs r0, 0x6 b _0813FA8E _0813FA78: movs r0, 0x7 b _0813FA8E _0813FA7C: movs r0, 0x8 b _0813FA8E _0813FA80: movs r0, 0x9 b _0813FA8E _0813FA84: movs r0, 0xA b _0813FA8E _0813FA88: movs r0, 0xB b _0813FA8E _0813FA8C: movs r0, 0 _0813FA8E: pop {r1} bx r1 thumb_func_end ball_number_to_ball_processing_index thumb_func_start sub_813FA94 sub_813FA94: @ 813FA94 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} mov r10, r0 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r0, _0813FB58 ldrh r0, [r0] bl ball_number_to_ball_processing_index adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 ldr r1, _0813FB5C adds r0, r1 movs r1, 0x20 movs r2, 0x50 movs r3, 0x1D bl CreateSprite adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r1, _0813FB60 mov r9, r1 lsls r4, r5, 4 adds r4, r5 lsls r4, 2 adds r6, r4, r1 movs r0, 0x22 strh r0, [r6, 0x2E] ldr r2, _0813FB64 mov r8, r2 ldrb r0, [r2] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x30] mov r1, r8 ldrb r0, [r1] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 subs r0, 0x10 strh r0, [r6, 0x32] mov r0, r9 adds r0, 0x1C adds r4, r0 ldr r0, _0813FB68 str r0, [r4] ldr r3, _0813FB6C ldr r1, _0813FB70 mov r2, r8 ldrb r0, [r2] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 adds r0, 0x3E ldrb r1, [r0] lsls r1, 29 lsrs r1, 31 lsls r1, 1 ldrb r2, [r3, 0x9] movs r0, 0x3 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x9] ldr r1, _0813FB74 mov r2, r10 lsls r0, r2, 2 add r0, r10 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x8] ldr r1, _0813FB78 str r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813FB58: .4byte 0x02024c04 _0813FB5C: .4byte gSpriteTemplate_820AAB4 _0813FB60: .4byte 0x02020004 _0813FB64: .4byte 0x0202f7c9 _0813FB68: .4byte sub_813FD90 _0813FB6C: .4byte 0x02017840 _0813FB70: .4byte 0x02024be0 _0813FB74: .4byte 0x03004b20 _0813FB78: .4byte sub_813FB7C thumb_func_end sub_813FA94 thumb_func_start sub_813FB7C sub_813FB7C: @ 813FB7C push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r1, _0813FBAC lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0x8] ldr r2, _0813FBB0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x2E] ldr r0, _0813FBB4 cmp r1, r0 bne _0813FBA6 adds r0, r3, 0 bl move_anim_task_del _0813FBA6: pop {r0} bx r0 .align 2, 0 _0813FBAC: .4byte 0x03004b20 _0813FBB0: .4byte 0x02020004 _0813FBB4: .4byte 0x0000ffff thumb_func_end sub_813FB7C thumb_func_start sub_813FBB8 sub_813FBB8: @ 813FBB8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r7, r0, 24 ldr r0, _0813FBD8 ldrh r1, [r0] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _0813FBDC movs r6, 0x20 movs r5, 0xB b _0813FBE0 .align 2, 0 _0813FBD8: .4byte 0x020239f8 _0813FBDC: movs r6, 0x17 movs r5, 0x5 _0813FBE0: ldr r0, _0813FC9C ldrh r0, [r0] bl ball_number_to_ball_processing_index adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 bl sub_8079E90 adds r3, r0, 0 adds r3, 0x1 lsls r3, 24 lsrs r3, 24 lsls r0, r4, 1 adds r0, r4 lsls r0, 3 ldr r1, _0813FCA0 adds r0, r1 adds r1, r6, 0 adds r1, 0x20 movs r2, 0x50 orrs r5, r2 adds r2, r5, 0 bl CreateSprite adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, _0813FCA4 mov r9, r0 lsls r4, r5, 4 adds r4, r5 lsls r4, 2 adds r6, r4, r0 movs r0, 0x22 strh r0, [r6, 0x2E] ldr r1, _0813FCA8 mov r8, r1 ldrb r0, [r1] movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x30] mov r1, r8 ldrb r0, [r1] movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 subs r0, 0x10 strh r0, [r6, 0x32] mov r0, r9 adds r0, 0x1C adds r4, r0 ldr r0, _0813FCAC str r0, [r4] movs r0, 0 bl battle_get_side_with_given_state ldr r1, _0813FCB0 lsls r0, 24 lsrs r0, 24 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 movs r1, 0x1 bl StartSpriteAnim ldr r1, _0813FCB4 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x8] ldr r1, _0813FCB8 str r1, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813FC9C: .4byte 0x02024c04 _0813FCA0: .4byte gSpriteTemplate_820AAB4 _0813FCA4: .4byte 0x02020004 _0813FCA8: .4byte 0x0202f7c9 _0813FCAC: .4byte SpriteCallbackDummy _0813FCB0: .4byte 0x02024be0 _0813FCB4: .4byte 0x03004b20 _0813FCB8: .4byte sub_813FCBC thumb_func_end sub_813FBB8 thumb_func_start sub_813FCBC sub_813FCBC: @ 813FCBC push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r6, _0813FD1C movs r0, 0 bl battle_get_side_with_given_state ldr r1, _0813FD20 lsls r0, 24 lsrs r0, 24 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0x1 bne _0813FD16 movs r0, 0x3D movs r1, 0 bl audio_play_and_stuff ldr r0, _0813FD24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r6, 0 adds r1, 0x1C adds r0, r1 ldr r1, _0813FD28 str r1, [r0] ldr r0, _0813FD2C movs r1, 0xA bl CreateTask ldr r0, _0813FD30 str r0, [r4] _0813FD16: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813FD1C: .4byte 0x02020004 _0813FD20: .4byte 0x02024be0 _0813FD24: .4byte 0x03004b20 _0813FD28: .4byte sub_813FD90 _0813FD2C: .4byte sub_813FD34 _0813FD30: .4byte sub_813FB7C thumb_func_end sub_813FCBC thumb_func_start sub_813FD34 sub_813FD34: @ 813FD34 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r6, _0813FD88 movs r0, 0 bl battle_get_side_with_given_state ldr r4, _0813FD8C lsls r0, 24 lsrs r0, 24 adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3F ldrb r0, [r0] lsls r0, 27 cmp r0, 0 bge _0813FD80 movs r0, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0 bl StartSpriteAnim adds r0, r5, 0 bl DestroyTask _0813FD80: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813FD88: .4byte 0x02020004 _0813FD8C: .4byte 0x02024be0 thumb_func_end sub_813FD34 thumb_func_start sub_813FD90 sub_813FD90: @ 813FD90 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x30] ldrh r2, [r4, 0x32] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] strh r1, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] strh r2, [r4, 0x36] ldr r0, _0813FDB8 strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC ldr r0, _0813FDBC str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _0813FDB8: .4byte 0x0000ffd8 _0813FDBC: .4byte sub_813FDC0 thumb_func_end sub_813FD90 thumb_func_start sub_813FDC0 sub_813FDC0: @ 813FDC0 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _0813FE5A ldr r0, _0813FDE0 ldrb r0, [r0, 0x8] cmp r0, 0x5 bne _0813FDE8 ldr r0, _0813FDE4 str r0, [r4, 0x1C] b _0813FE5A .align 2, 0 _0813FDE0: .4byte 0x02017840 _0813FDE4: .4byte sub_81407B8 _0813FDE8: adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim ldrh r0, [r4, 0x24] ldrh r1, [r4, 0x20] adds r0, r1 movs r1, 0 strh r0, [r4, 0x20] ldrh r0, [r4, 0x26] ldrh r2, [r4, 0x22] adds r0, r2 strh r0, [r4, 0x22] strh r1, [r4, 0x24] strh r1, [r4, 0x26] adds r1, r4, 0 adds r1, 0x2E movs r2, 0 adds r0, r4, 0 adds r0, 0x3C _0813FE10: strh r2, [r0] subs r0, 0x2 cmp r0, r1 bge _0813FE10 movs r0, 0 strh r0, [r4, 0x38] ldr r0, _0813FE64 str r0, [r4, 0x1C] ldr r0, _0813FE68 ldrh r0, [r0] bl ball_number_to_ball_processing_index lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xB bgt _0813FE5A cmp r5, 0 blt _0813FE5A ldrh r0, [r4, 0x20] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x22] subs r1, 0x5 lsls r1, 24 lsrs r1, 24 str r5, [sp] movs r2, 0x1 movs r3, 0x1C bl sub_814086C ldr r0, _0813FE6C ldrb r1, [r0] movs r0, 0 movs r2, 0xE adds r3, r5, 0 bl sub_8141314 _0813FE5A: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813FE64: .4byte sub_813FE70 _0813FE68: .4byte 0x02024c04 _0813FE6C: .4byte 0x0202f7c9 thumb_func_end sub_813FDC0 thumb_func_start sub_813FE70 sub_813FE70: @ 813FE70 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _0813FEAC ldr r0, _0813FEB4 movs r1, 0x32 bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x38] ldr r0, _0813FEB8 str r0, [r4, 0x1C] ldr r2, _0813FEBC ldr r1, _0813FEC0 ldr r0, _0813FEC4 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strh r1, [r0, 0x30] _0813FEAC: pop {r4} pop {r0} bx r0 .align 2, 0 _0813FEB4: .4byte TaskDummy _0813FEB8: .4byte sub_813FEC8 _0813FEBC: .4byte 0x02020004 _0813FEC0: .4byte 0x02024be0 _0813FEC4: .4byte 0x0202f7c9 thumb_func_end sub_813FE70 thumb_func_start sub_813FEC8 sub_813FEC8: @ 813FEC8 push {r4-r7,lr} adds r7, r0, 0 ldr r1, _0813FF0C ldr r0, _0813FF10 ldrb r0, [r0] adds r0, r1 ldrb r4, [r0] ldrh r0, [r7, 0x38] lsls r0, 24 lsrs r6, r0, 24 ldr r1, _0813FF14 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r5, r0, r1 ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0xB bne _0813FEFA movs r0, 0x3C bl audio_play _0813FEFA: movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x1 beq _0813FF70 cmp r0, 0x1 bgt _0813FF18 cmp r0, 0 beq _0813FF1E b _0813FFDC .align 2, 0 _0813FF0C: .4byte 0x02024be0 _0813FF10: .4byte 0x0202f7c9 _0813FF14: .4byte 0x03004b20 _0813FF18: cmp r0, 0x2 beq _0813FFB4 b _0813FFDC _0813FF1E: adds r0, r4, 0 movs r1, 0 bl sub_8078E70 movs r0, 0x80 lsls r0, 1 strh r0, [r5, 0x1C] ldr r1, _0813FF60 movs r0, 0x1C str r0, [r1] ldr r2, _0813FF64 ldr r1, _0813FF68 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 ldrh r1, [r0, 0x26] ldrh r0, [r0, 0x22] adds r1, r0 ldrh r0, [r7, 0x26] ldrh r7, [r7, 0x22] adds r0, r7 subs r1, r0 strh r1, [r2] ldr r4, _0813FF6C ldrh r0, [r2] lsls r0, 8 movs r1, 0x1C bl __udivsi3 strh r0, [r4] strh r0, [r5, 0xC] b _0813FFCE .align 2, 0 _0813FF60: .4byte 0x03005f0c _0813FF64: .4byte 0x03005f14 _0813FF68: .4byte 0x02020004 _0813FF6C: .4byte 0x03005f10 _0813FF70: ldrh r0, [r5, 0x1C] adds r0, 0x20 strh r0, [r5, 0x1C] movs r0, 0x1C ldrsh r2, [r5, r0] adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 bl obj_id_set_rotscale ldrh r0, [r5, 0xC] ldrh r1, [r5, 0xE] adds r0, r1 strh r0, [r5, 0xE] ldr r0, _0813FFAC lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r1, r0 movs r2, 0xE ldrsh r0, [r5, r2] negs r0, r0 asrs r0, 8 strh r0, [r1, 0x26] movs r0, 0x1C ldrsh r1, [r5, r0] ldr r0, _0813FFB0 cmp r1, r0 ble _08140004 b _0813FFCE .align 2, 0 _0813FFAC: .4byte 0x02020004 _0813FFB0: .4byte 0x0000047f _0813FFB4: adds r0, r4, 0 bl sub_8078F40 ldr r1, _0813FFD8 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _0813FFCE: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _08140004 .align 2, 0 _0813FFD8: .4byte 0x02020004 _0813FFDC: ldr r0, _0814000C lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 movs r2, 0xA ldrsh r0, [r1, r2] cmp r0, 0xA ble _08140004 adds r0, r6, 0 bl DestroyTask adds r0, r7, 0 movs r1, 0x2 bl StartSpriteAnim movs r0, 0 strh r0, [r7, 0x38] ldr r0, _08140010 str r0, [r7, 0x1C] _08140004: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0814000C: .4byte 0x03004b20 _08140010: .4byte sub_8140014 thumb_func_end sub_813FEC8 thumb_func_start sub_8140014 sub_8140014: @ 8140014 push {r4,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0814004E movs r1, 0 strh r1, [r4, 0x34] movs r0, 0x20 strh r0, [r4, 0x36] strh r1, [r4, 0x38] movs r0, 0 movs r1, 0x20 bl cosine ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] movs r0, 0x36 ldrsh r1, [r4, r0] movs r0, 0 bl cosine negs r0, r0 strh r0, [r4, 0x26] ldr r0, _08140054 str r0, [r4, 0x1C] _0814004E: pop {r4} pop {r0} bx r0 .align 2, 0 _08140054: .4byte sub_8140058 thumb_func_end sub_8140014 thumb_func_start sub_8140058 sub_8140058: @ 8140058 push {r4,r5,lr} adds r4, r0, 0 movs r5, 0 ldrh r0, [r4, 0x34] movs r1, 0xFF ands r1, r0 cmp r1, 0 beq _0814006E cmp r1, 0x1 beq _081400E2 b _0814010E _0814006E: movs r1, 0x38 ldrsh r0, [r4, r1] movs r2, 0x36 ldrsh r1, [r4, r2] bl cosine negs r0, r0 strh r0, [r4, 0x26] ldrh r1, [r4, 0x38] adds r1, 0x4 ldrh r2, [r4, 0x34] lsls r0, r2, 16 asrs r0, 24 adds r1, r0 strh r1, [r4, 0x38] lsls r1, 16 asrs r1, 16 cmp r1, 0x3F ble _0814010E ldrh r0, [r4, 0x36] subs r0, 0xA strh r0, [r4, 0x36] ldr r1, _081400B8 adds r0, r2, r1 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 24 cmp r0, 0x4 bne _081400AA movs r5, 0x1 _081400AA: cmp r0, 0x2 beq _081400CA cmp r0, 0x2 bgt _081400BC cmp r0, 0x1 beq _081400C2 b _081400DA .align 2, 0 _081400B8: .4byte 0x00000101 _081400BC: cmp r0, 0x3 beq _081400D2 b _081400DA _081400C2: movs r0, 0x38 bl audio_play b _0814010E _081400CA: movs r0, 0x39 bl audio_play b _0814010E _081400D2: movs r0, 0x3A bl audio_play b _0814010E _081400DA: movs r0, 0x3B bl audio_play b _0814010E _081400E2: movs r2, 0x38 ldrsh r0, [r4, r2] movs r2, 0x36 ldrsh r1, [r4, r2] bl cosine negs r0, r0 strh r0, [r4, 0x26] ldrh r1, [r4, 0x38] subs r1, 0x4 ldrh r2, [r4, 0x34] lsls r0, r2, 16 asrs r0, 24 subs r1, r0 strh r1, [r4, 0x38] lsls r1, 16 cmp r1, 0 bgt _0814010E strh r5, [r4, 0x38] ldr r0, _08140138 ands r0, r2 strh r0, [r4, 0x34] _0814010E: cmp r5, 0 beq _0814014E movs r5, 0 strh r5, [r4, 0x34] movs r0, 0x40 movs r1, 0x20 bl cosine ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] strh r5, [r4, 0x26] ldr r0, _0814013C ldrb r0, [r0, 0x8] cmp r0, 0 bne _08140144 strh r5, [r4, 0x38] ldr r0, _08140140 str r0, [r4, 0x1C] b _0814014E .align 2, 0 _08140138: .4byte 0xffffff00 _0814013C: .4byte 0x02017840 _08140140: .4byte sub_8140410 _08140144: ldr r0, _08140154 str r0, [r4, 0x1C] movs r0, 0x1 strh r0, [r4, 0x36] strh r5, [r4, 0x38] _0814014E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08140154: .4byte sub_8140158 thumb_func_end sub_8140058 thumb_func_start sub_8140158 sub_8140158: @ 8140158 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x34] adds r0, 0x1 movs r5, 0 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F bne _08140190 strh r5, [r4, 0x34] adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim ldr r0, _08140198 strh r5, [r0, 0xC] ldr r0, _0814019C str r0, [r4, 0x1C] movs r0, 0x17 bl audio_play _08140190: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08140198: .4byte 0x02017840 _0814019C: .4byte sub_81401A0 thumb_func_end sub_8140158 thumb_func_start sub_81401A0 sub_81401A0: @ 81401A0 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x34] movs r1, 0xFF ands r1, r0 cmp r1, 0x6 bls _081401B0 b _081403C4 _081401B0: lsls r0, r1, 2 ldr r1, _081401BC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081401BC: .4byte _081401C0 .align 2, 0 _081401C0: .4byte _081401DC .4byte _08140226 .4byte _0814026C .4byte _081402C0 .4byte _08140310 .4byte _08140368 .4byte _081403C4 _081401DC: ldr r0, _081401F8 ldrh r2, [r0, 0xC] movs r3, 0xC ldrsh r1, [r0, r3] adds r5, r0, 0 cmp r1, 0xFF ble _081401FC ldrh r0, [r4, 0x36] ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] movs r0, 0xFF ands r0, r2 b _08140200 .align 2, 0 _081401F8: .4byte 0x02017840 _081401FC: adds r0, r2, 0 adds r0, 0xB0 _08140200: strh r0, [r5, 0xC] ldrh r0, [r4, 0x38] adds r0, 0x1 movs r3, 0 strh r0, [r4, 0x38] adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] ldrh r0, [r4, 0x38] adds r0, 0x7 lsls r0, 16 lsrs r0, 16 cmp r0, 0xE bhi _08140224 b _0814040A _08140224: b _081402B4 _08140226: ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _081402CC movs r0, 0 strh r0, [r4, 0x38] ldrh r0, [r4, 0x36] negs r0, r0 strh r0, [r4, 0x36] ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] movs r3, 0x36 ldrsh r0, [r4, r3] cmp r0, 0 bge _08140262 adds r0, r4, 0 movs r1, 0x2 bl ChangeSpriteAffineAnim b _0814040A _08140262: adds r0, r4, 0 movs r1, 0x1 bl ChangeSpriteAffineAnim b _0814040A _0814026C: ldr r0, _08140288 ldrh r2, [r0, 0xC] movs r3, 0xC ldrsh r1, [r0, r3] adds r5, r0, 0 cmp r1, 0xFF ble _0814028C ldrh r0, [r4, 0x36] ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] movs r0, 0xFF ands r0, r2 b _08140290 .align 2, 0 _08140288: .4byte 0x02017840 _0814028C: adds r0, r2, 0 adds r0, 0xB0 _08140290: strh r0, [r5, 0xC] ldrh r0, [r4, 0x38] adds r0, 0x1 movs r3, 0 strh r0, [r4, 0x38] adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] ldrh r0, [r4, 0x38] adds r0, 0xC lsls r0, 16 lsrs r0, 16 cmp r0, 0x18 bhi _081402B4 b _0814040A _081402B4: strh r3, [r5, 0xC] ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] strh r3, [r4, 0x38] b _0814040A _081402C0: ldrh r0, [r4, 0x38] adds r1, r0, 0x1 strh r1, [r4, 0x38] lsls r0, 16 cmp r0, 0 bge _081402DA _081402CC: adds r0, r4, 0 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] b _0814040A _081402DA: movs r0, 0 strh r0, [r4, 0x38] ldrh r0, [r4, 0x36] negs r0, r0 strh r0, [r4, 0x36] ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] movs r3, 0x36 ldrsh r0, [r4, r3] cmp r0, 0 bge _08140308 adds r0, r4, 0 movs r1, 0x2 bl ChangeSpriteAffineAnim b _08140310 _08140308: adds r0, r4, 0 movs r1, 0x1 bl ChangeSpriteAffineAnim _08140310: ldr r0, _0814032C ldrh r2, [r0, 0xC] movs r3, 0xC ldrsh r1, [r0, r3] adds r5, r0, 0 cmp r1, 0xFF ble _08140330 ldrh r0, [r4, 0x36] ldrh r1, [r4, 0x24] adds r0, r1 strh r0, [r4, 0x24] movs r0, 0xFF ands r0, r2 b _08140334 .align 2, 0 _0814032C: .4byte 0x02017840 _08140330: adds r0, r2, 0 adds r0, 0xB0 _08140334: strh r0, [r5, 0xC] ldrh r0, [r4, 0x38] adds r0, 0x1 movs r3, 0 strh r0, [r4, 0x38] adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] ldrh r0, [r4, 0x38] adds r0, 0x4 lsls r0, 16 lsrs r0, 16 cmp r0, 0x8 bls _0814040A strh r3, [r5, 0xC] ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] strh r3, [r4, 0x38] ldrh r0, [r4, 0x36] negs r0, r0 strh r0, [r4, 0x36] b _0814040A _08140368: movs r3, 0x80 lsls r3, 1 adds r0, r3, 0 ldrh r1, [r4, 0x34] adds r0, r1 strh r0, [r4, 0x34] lsls r0, 16 asrs r1, r0, 24 ldr r0, _08140394 ldrb r0, [r0, 0x8] cmp r1, r0 bne _0814039C adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r0, _08140398 str r0, [r4, 0x1C] b _0814040A .align 2, 0 _08140394: .4byte 0x02017840 _08140398: .4byte sub_8140410 _0814039C: cmp r0, 0x4 bne _081403B0 cmp r1, 0x3 bne _081403B0 ldr r0, _081403AC str r0, [r4, 0x1C] b _081403B6 .align 2, 0 _081403AC: .4byte sub_8140434 _081403B0: ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] _081403B6: adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] b _0814040A _081403C4: ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F bne _0814040A movs r0, 0 strh r0, [r4, 0x38] ldrh r1, [r4, 0x34] ldr r0, _081403F8 ands r0, r1 strh r0, [r4, 0x34] adds r0, r4, 0 movs r1, 0x3 bl StartSpriteAffineAnim movs r3, 0x36 ldrsh r0, [r4, r3] cmp r0, 0 bge _081403FC adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAffineAnim b _08140404 .align 2, 0 _081403F8: .4byte 0xffffff00 _081403FC: adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim _08140404: movs r0, 0x17 bl audio_play _0814040A: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81401A0 thumb_func_start sub_8140410 sub_8140410: @ 8140410 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x38] adds r0, 0x1 strh r0, [r1, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F bne _0814042A movs r0, 0 strh r0, [r1, 0x38] ldr r0, _08140430 str r0, [r1, 0x1C] _0814042A: pop {r0} bx r0 .align 2, 0 _08140430: .4byte sub_81405F4 thumb_func_end sub_8140410 thumb_func_start sub_8140434 sub_8140434: @ 8140434 adds r3, r0, 0 adds r3, 0x2C ldrb r1, [r3] movs r2, 0x40 orrs r1, r2 strb r1, [r3] ldr r1, _08140450 str r1, [r0, 0x1C] movs r1, 0 strh r1, [r0, 0x34] strh r1, [r0, 0x36] strh r1, [r0, 0x38] bx lr .align 2, 0 _08140450: .4byte sub_8140454 thumb_func_end sub_8140434 thumb_func_start sub_8140454 sub_8140454: @ 8140454 push {r4-r7,lr} adds r6, r0, 0 ldr r7, _08140484 ldrh r0, [r6, 0x36] adds r0, 0x1 strh r0, [r6, 0x36] lsls r0, 16 asrs r1, r0, 16 cmp r1, 0x28 beq _081404CC cmp r1, 0x5F bne _08140490 ldr r0, _08140488 movs r1, 0 strb r1, [r0] movs r0, 0x1 bl sub_8043EB4 bl m4aMPlayAllStop ldr r0, _0814048C bl audio_play b _081404CC .align 2, 0 _08140484: .4byte 0x0202f7c9 _08140488: .4byte 0x02024e6d _0814048C: .4byte 0x00000173 _08140490: ldr r0, _081404D4 cmp r1, r0 bne _081404CC ldr r5, _081404D8 ldr r4, _081404DC ldrb r0, [r7] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldrb r0, [r7] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite movs r0, 0 strh r0, [r6, 0x2E] ldr r0, _081404E0 str r0, [r6, 0x1C] _081404CC: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081404D4: .4byte 0x0000013b _081404D8: .4byte 0x02020004 _081404DC: .4byte 0x02024be0 _081404E0: .4byte sub_81404E4 thumb_func_end sub_8140454 thumb_func_start sub_81404E4 sub_81404E4: @ 81404E4 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08140550 cmp r0, 0x1 bgt _081404FC cmp r0, 0 beq _08140502 b _08140594 _081404FC: cmp r0, 0x2 beq _08140580 b _08140594 _08140502: strh r0, [r4, 0x30] strh r0, [r4, 0x32] ldrb r1, [r4, 0x1] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r4, 0x1] ldr r1, _08140548 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x10 strh r0, [r1] ldr r0, [r4, 0x14] ldrh r0, [r0, 0x2] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 adds r0, 0x10 movs r1, 0x1 lsls r1, r0 ldr r0, _0814054C str r0, [sp] adds r0, r1, 0 movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _0814058C .align 2, 0 _08140548: .4byte REG_BLDCNT _0814054C: .4byte 0x00007fff _08140550: ldrh r0, [r4, 0x30] adds r1, r0, 0x1 strh r1, [r4, 0x30] lsls r0, 16 cmp r0, 0 ble _081405B2 movs r0, 0 strh r0, [r4, 0x30] ldrh r1, [r4, 0x32] adds r1, 0x1 strh r1, [r4, 0x32] ldr r3, _0814057C lsls r2, r1, 8 movs r0, 0x10 subs r0, r1 orrs r2, r0 strh r2, [r3] movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0x10 bne _081405B2 b _0814058C .align 2, 0 _0814057C: .4byte REG_BLDALPHA _08140580: adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _0814058C: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _081405B2 _08140594: ldr r0, _081405BC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _081405B2 ldr r0, _081405C0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] strh r1, [r4, 0x2E] ldr r0, _081405C4 str r0, [r4, 0x1C] _081405B2: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _081405BC: .4byte 0x0202f388 _081405C0: .4byte REG_BLDCNT _081405C4: .4byte sub_81405C8 thumb_func_end sub_81404E4 thumb_func_start sub_81405C8 sub_81405C8: @ 81405C8 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x2E] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 bne _081405E0 ldr r0, _081405DC strh r0, [r4, 0x2E] b _081405EC .align 2, 0 _081405DC: .4byte 0x0000ffff _081405E0: adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl DestroySprite _081405EC: pop {r4} pop {r0} bx r0 thumb_func_end sub_81405C8 thumb_func_start sub_81405F4 sub_81405F4: @ 81405F4 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 movs r1, 0x1 bl StartSpriteAnim adds r0, r4, 0 movs r1, 0 bl StartSpriteAffineAnim ldr r0, _081406A8 str r0, [r4, 0x1C] ldr r0, _081406AC ldrh r0, [r0] bl ball_number_to_ball_processing_index lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xB bgt _08140646 cmp r5, 0 blt _08140646 ldrh r0, [r4, 0x20] lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x22] subs r1, 0x5 lsls r1, 24 lsrs r1, 24 str r5, [sp] movs r2, 0x1 movs r3, 0x1C bl sub_814086C ldr r0, _081406B0 ldrb r1, [r0] movs r0, 0x1 movs r2, 0xE adds r3, r5, 0 bl sub_8141314 _08140646: ldr r6, _081406B4 ldr r5, _081406B8 ldr r4, _081406B0 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x1 bl StartSpriteAffineAnim ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl AnimateSprite ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x80 lsls r1, 5 strh r1, [r0, 0x30] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081406A8: .4byte sub_81406BC _081406AC: .4byte 0x02024c04 _081406B0: .4byte 0x0202f7c9 _081406B4: .4byte 0x02020004 _081406B8: .4byte 0x02024be0 thumb_func_end sub_81405F4 thumb_func_start sub_81406BC sub_81406BC: @ 81406BC push {r4-r7,lr} adds r7, r0, 0 movs r5, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _081406DA adds r2, r7, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _081406DA: ldr r4, _08140708 ldr r3, _0814070C ldr r2, _08140710 ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r4 adds r0, r1, 0 adds r0, 0x3F ldrb r0, [r0] lsls r0, 26 cmp r0, 0 bge _08140714 adds r0, r1, 0 movs r1, 0 bl StartSpriteAffineAnim movs r5, 0x1 b _08140734 .align 2, 0 _08140708: .4byte 0x02020004 _0814070C: .4byte 0x02024be0 _08140710: .4byte 0x0202f7c9 _08140714: ldr r6, _0814079C adds r0, r6, 0 ldrh r6, [r1, 0x30] adds r0, r6 strh r0, [r1, 0x30] ldrb r0, [r2] adds r0, r3 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r1, 0x30] lsls r0, 16 asrs r0, 24 strh r0, [r1, 0x26] _08140734: adds r0, r7, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08140796 cmp r5, 0 beq _08140796 ldr r4, _081407A0 ldr r3, _081407A4 ldr r2, _081407A8 ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r6, 0 movs r5, 0 strh r5, [r0, 0x26] ldrb r0, [r2] adds r0, r3 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r4 ldr r0, _081407AC ldrb r1, [r0, 0x9] lsls r1, 30 adds r2, 0x3E lsrs r1, 31 lsls r1, 2 ldrb r3, [r2] movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] strh r5, [r7, 0x2E] ldr r0, _081407B0 str r0, [r7, 0x1C] ldr r0, _081407B4 strb r6, [r0] movs r0, 0x1 bl sub_8043EB4 _08140796: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0814079C: .4byte 0xfffffee0 _081407A0: .4byte 0x02020004 _081407A4: .4byte 0x02024be0 _081407A8: .4byte 0x0202f7c9 _081407AC: .4byte 0x02017840 _081407B0: .4byte sub_81405C8 _081407B4: .4byte 0x02024e6d thumb_func_end sub_81406BC thumb_func_start sub_81407B8 sub_81407B8: @ 81407B8 push {r4,lr} adds r2, r0, 0 ldrh r0, [r2, 0x24] ldrh r1, [r2, 0x20] adds r0, r1 movs r1, 0 strh r0, [r2, 0x20] ldrh r0, [r2, 0x26] ldrh r3, [r2, 0x22] adds r0, r3 strh r0, [r2, 0x22] strh r1, [r2, 0x26] strh r1, [r2, 0x24] ldr r4, _081407F0 movs r3, 0 movs r1, 0x5 adds r0, r2, 0 adds r0, 0x38 _081407DC: strh r3, [r0] subs r0, 0x2 subs r1, 0x1 cmp r1, 0 bge _081407DC str r4, [r2, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _081407F0: .4byte sub_81407F4 thumb_func_end sub_81407B8 thumb_func_start sub_81407F4 sub_81407F4: @ 81407F4 push {r4,lr} adds r4, r0, 0 movs r0, 0x80 lsls r0, 4 adds r2, r0, 0 ldrh r1, [r4, 0x2E] adds r2, r1 movs r0, 0xD0 lsls r0, 3 adds r3, r0, 0 ldrh r1, [r4, 0x30] adds r3, r1 lsls r1, r3, 16 asrs r1, 24 ldrh r0, [r4, 0x24] subs r0, r1 strh r0, [r4, 0x24] lsls r0, r2, 16 asrs r0, 24 ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] movs r0, 0xFF ands r2, r0 strh r2, [r4, 0x2E] ands r3, r0 strh r3, [r4, 0x30] movs r2, 0x22 ldrsh r0, [r4, r2] movs r2, 0x26 ldrsh r1, [r4, r2] adds r0, r1 cmp r0, 0xA0 bgt _0814084A movs r1, 0x20 ldrsh r0, [r4, r1] movs r2, 0x24 ldrsh r1, [r4, r2] adds r0, r1 movs r1, 0x8 negs r1, r1 cmp r0, r1 bge _0814085E _0814084A: movs r0, 0 strh r0, [r4, 0x2E] ldr r0, _08140864 str r0, [r4, 0x1C] ldr r1, _08140868 movs r0, 0 strb r0, [r1] movs r0, 0x1 bl sub_8043EB4 _0814085E: pop {r4} pop {r0} bx r0 .align 2, 0 _08140864: .4byte sub_81405C8 _08140868: .4byte 0x02024e6d thumb_func_end sub_81407F4 thumb_func_start sub_814086C sub_814086C: @ 814086C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, [sp, 0x20] lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 lsrs r7, r3, 24 lsls r4, 24 lsrs r4, 24 adds r5, r4, 0 ldr r0, _08140910 lsls r6, r5, 3 adds r4, r6, r0 ldrh r0, [r4, 0x6] bl GetSpriteTileStartByTag lsls r0, 16 ldr r1, _08140914 cmp r0, r1 bne _081408B6 adds r0, r4, 0 bl LoadCompressedObjectPic ldr r0, _08140918 adds r0, r6, r0 bl LoadCompressedObjectPalette _081408B6: ldr r1, _0814091C lsls r0, r5, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08140920 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 mov r1, r10 strh r1, [r0, 0xA] mov r1, r9 strh r1, [r0, 0xC] mov r1, r8 strh r1, [r0, 0xE] strh r7, [r0, 0x10] strh r5, [r0, 0x26] movs r0, 0xF bl audio_play ldr r0, _08140924 ldr r1, _08140928 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08140900 ldr r1, _0814092C ldrb r0, [r1, 0xA] adds r0, 0x1 strb r0, [r1, 0xA] _08140900: adds r0, r4, 0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08140910: .4byte gUnknown_0840B258 _08140914: .4byte 0xffff0000 _08140918: .4byte gUnknown_0840B2B8 _0814091C: .4byte gUnknown_0840B384 _08140920: .4byte 0x03004b20 _08140924: .4byte 0x03001770 _08140928: .4byte 0x0000043d _0814092C: .4byte 0x02017840 thumb_func_end sub_814086C thumb_func_start sub_8140930 sub_8140930: @ 8140930 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r1, _081409D0 lsls r0, 2 add r0, r9 lsls r0, 3 adds r7, r0, r1 ldrh r0, [r7, 0x26] lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r1, 0x8 ldrsh r0, [r7, r1] cmp r0, 0xF bgt _081409E4 ldrb r1, [r7, 0xA] ldrb r2, [r7, 0xC] ldrb r6, [r7, 0xE] ldrb r3, [r7, 0x10] mov r4, r8 lsls r0, r4, 1 add r0, r8 lsls r0, 3 ldr r4, _081409D4 adds r0, r4 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r5, _081409D8 adds r2, r4, r5 ldr r0, _081409DC add r0, r8 ldrb r1, [r0] adds r0, r2, 0 str r2, [sp] bl StartSpriteAnim adds r5, 0x1C adds r4, r5 ldr r0, _081409E0 str r0, [r4] movs r0, 0x3 ands r6, r0 lsls r6, 2 ldr r2, [sp] ldrb r1, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 orrs r0, r6 strb r0, [r2, 0x5] ldrb r0, [r7, 0x8] cmp r0, 0x7 bls _081409B6 subs r0, 0x8 lsls r0, 24 lsrs r0, 24 _081409B6: lsls r0, 5 strh r0, [r2, 0x2E] movs r1, 0x8 ldrsh r0, [r7, r1] cmp r0, 0xF bne _081409E4 movs r0, 0x1 strh r0, [r2, 0x3C] mov r0, r9 bl DestroyTask b _081409F6 .align 2, 0 _081409D0: .4byte 0x03004b20 _081409D4: .4byte gSpriteTemplate_840B3B4 _081409D8: .4byte 0x02020004 _081409DC: .4byte gUnknown_0840B378 _081409E0: .4byte sub_8140A08 _081409E4: ldr r0, _08140A04 mov r2, r9 lsls r1, r2, 2 add r1, r9 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _081409F6: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08140A04: .4byte 0x03004b20 thumb_func_end sub_8140930 thumb_func_start sub_8140A08 sub_8140A08: @ 8140A08 push {lr} adds r1, r0, 0 ldrh r2, [r1, 0x30] movs r3, 0x30 ldrsh r0, [r1, r3] cmp r0, 0 bne _08140A20 ldr r0, _08140A1C str r0, [r1, 0x1C] b _08140A24 .align 2, 0 _08140A1C: .4byte sub_8140A28 _08140A20: subs r0, r2, 0x1 strh r0, [r1, 0x30] _08140A24: pop {r0} bx r0 thumb_func_end sub_8140A08 thumb_func_start sub_8140A28 sub_8140A28: @ 8140A28 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] movs r2, 0x30 ldrsh r1, [r4, r2] bl sine strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] movs r2, 0x30 ldrsh r1, [r4, r2] bl cosine strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r0, 0x2 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x32 bne _08140A5C adds r0, r4, 0 bl sub_8141294 _08140A5C: pop {r4} pop {r0} bx r0 thumb_func_end sub_8140A28 thumb_func_start sub_8140A64 sub_8140A64: @ 8140A64 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08140B24 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x26] lsls r1, 24 lsrs r1, 24 ldrb r2, [r0, 0xA] str r2, [sp] ldrb r3, [r0, 0xC] str r3, [sp, 0x4] ldrb r2, [r0, 0xE] str r2, [sp, 0x8] ldrb r0, [r0, 0x10] str r0, [sp, 0xC] movs r6, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 mov r10, r0 ldr r3, _08140B28 mov r8, r3 ldr r0, _08140B2C adds r1, r0 mov r9, r1 _08140AA8: ldr r0, _08140B30 add r0, r10 ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r5, r1, 2 mov r0, r8 adds r4, r5, r0 mov r2, r9 ldrb r1, [r2] adds r0, r4, 0 bl StartSpriteAnim ldr r3, _08140B34 adds r1, r5, r3 ldr r0, _08140B38 str r0, [r1] movs r0, 0x3 ldr r2, [sp, 0x8] ands r2, r0 lsls r2, 2 ldrb r0, [r4, 0x5] movs r3, 0xD negs r3, r3 adds r1, r3, 0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] lsls r0, r6, 5 strh r0, [r4, 0x2E] movs r0, 0xA strh r0, [r4, 0x36] movs r0, 0x2 strh r0, [r4, 0x38] movs r2, 0x1 strh r2, [r4, 0x3A] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x7 bls _08140AA8 ldr r0, _08140B28 adds r0, r5, r0 strh r2, [r0, 0x3C] adds r0, r7, 0 bl DestroyTask add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08140B24: .4byte 0x03004b20 _08140B28: .4byte 0x02020004 _08140B2C: .4byte gUnknown_0840B378 _08140B30: .4byte gSpriteTemplate_840B3B4 _08140B34: .4byte 0x02020020 _08140B38: .4byte sub_8140ECC thumb_func_end sub_8140A64 thumb_func_start sub_8140B3C sub_8140B3C: @ 8140B3C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08140BFC lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x26] lsls r1, 24 lsrs r1, 24 ldrb r2, [r0, 0xA] str r2, [sp] ldrb r3, [r0, 0xC] str r3, [sp, 0x4] ldrb r2, [r0, 0xE] str r2, [sp, 0x8] ldrb r0, [r0, 0x10] str r0, [sp, 0xC] movs r6, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 mov r10, r0 ldr r3, _08140C00 mov r8, r3 ldr r0, _08140C04 adds r1, r0 mov r9, r1 _08140B80: ldr r0, _08140C08 add r0, r10 ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r5, r1, 2 mov r0, r8 adds r4, r5, r0 mov r2, r9 ldrb r1, [r2] adds r0, r4, 0 bl StartSpriteAnim ldr r3, _08140C0C adds r1, r5, r3 ldr r0, _08140C10 str r0, [r1] movs r0, 0x3 ldr r2, [sp, 0x8] ands r2, r0 lsls r2, 2 ldrb r0, [r4, 0x5] movs r3, 0xD negs r3, r3 adds r1, r3, 0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] lsls r0, r6, 5 strh r0, [r4, 0x2E] movs r0, 0xA strh r0, [r4, 0x36] movs r1, 0x1 strh r1, [r4, 0x38] movs r0, 0x2 strh r0, [r4, 0x3A] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x7 bls _08140B80 ldr r0, _08140C00 adds r0, r5, r0 strh r1, [r0, 0x3C] adds r0, r7, 0 bl DestroyTask add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08140BFC: .4byte 0x03004b20 _08140C00: .4byte 0x02020004 _08140C04: .4byte gUnknown_0840B378 _08140C08: .4byte gSpriteTemplate_840B3B4 _08140C0C: .4byte 0x02020020 _08140C10: .4byte sub_8140ECC thumb_func_end sub_8140B3C thumb_func_start sub_8140C14 sub_8140C14: @ 8140C14 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08140CD0 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x26] lsls r1, 24 lsrs r1, 24 ldrb r2, [r0, 0xA] str r2, [sp] ldrb r3, [r0, 0xC] str r3, [sp, 0x4] ldrb r2, [r0, 0xE] str r2, [sp, 0x8] ldrb r0, [r0, 0x10] str r0, [sp, 0xC] movs r6, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 mov r10, r0 ldr r3, _08140CD4 mov r8, r3 ldr r0, _08140CD8 adds r1, r0 mov r9, r1 _08140C58: ldr r0, _08140CDC add r0, r10 ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r5, r1, 2 mov r0, r8 adds r4, r5, r0 mov r2, r9 ldrb r1, [r2] adds r0, r4, 0 bl StartSpriteAnim ldr r3, _08140CE0 adds r1, r5, r3 ldr r0, _08140CE4 str r0, [r1] movs r0, 0x3 ldr r2, [sp, 0x8] ands r2, r0 lsls r2, 2 ldrb r0, [r4, 0x5] movs r3, 0xD negs r3, r3 adds r1, r3, 0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] lsls r0, r6, 5 strh r0, [r4, 0x2E] movs r0, 0x4 strh r0, [r4, 0x36] movs r2, 0x1 strh r2, [r4, 0x38] strh r2, [r4, 0x3A] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x7 bls _08140C58 ldr r0, _08140CD4 adds r0, r5, r0 strh r2, [r0, 0x3C] adds r0, r7, 0 bl DestroyTask add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08140CD0: .4byte 0x03004b20 _08140CD4: .4byte 0x02020004 _08140CD8: .4byte gUnknown_0840B378 _08140CDC: .4byte gSpriteTemplate_840B3B4 _08140CE0: .4byte 0x02020020 _08140CE4: .4byte sub_8140ECC thumb_func_end sub_8140C14 thumb_func_start sub_8140CE8 sub_8140CE8: @ 8140CE8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08140DAC lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x26] lsls r1, 24 lsrs r1, 24 ldrb r2, [r0, 0xA] str r2, [sp] ldrb r3, [r0, 0xC] str r3, [sp, 0x4] ldrb r2, [r0, 0xE] str r2, [sp, 0x8] ldrb r0, [r0, 0x10] str r0, [sp, 0xC] movs r6, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 mov r10, r0 ldr r3, _08140DB0 mov r8, r3 ldr r0, _08140DB4 adds r1, r0 mov r9, r1 _08140D2C: ldr r0, _08140DB8 add r0, r10 ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r5, r1, 2 mov r0, r8 adds r4, r5, r0 mov r2, r9 ldrb r1, [r2] adds r0, r4, 0 bl StartSpriteAnim ldr r3, _08140DBC adds r1, r5, r3 ldr r0, _08140DC0 str r0, [r1] movs r0, 0x3 ldr r2, [sp, 0x8] ands r2, r0 lsls r2, 2 ldrb r0, [r4, 0x5] movs r3, 0xD negs r3, r3 adds r1, r3, 0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] lsls r0, r6, 1 adds r0, r6 lsls r0, 3 adds r0, r6 strh r0, [r4, 0x2E] movs r0, 0x5 strh r0, [r4, 0x36] movs r2, 0x1 strh r2, [r4, 0x38] strh r2, [r4, 0x3A] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x9 bls _08140D2C ldr r0, _08140DB0 adds r0, r5, r0 strh r2, [r0, 0x3C] adds r0, r7, 0 bl DestroyTask add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08140DAC: .4byte 0x03004b20 _08140DB0: .4byte 0x02020004 _08140DB4: .4byte gUnknown_0840B378 _08140DB8: .4byte gSpriteTemplate_840B3B4 _08140DBC: .4byte 0x02020020 _08140DC0: .4byte sub_8140ECC thumb_func_end sub_8140CE8 thumb_func_start sub_8140DC4 sub_8140DC4: @ 8140DC4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08140DF0 lsls r2, r7, 2 adds r0, r2, r7 lsls r0, 3 adds r3, r0, r1 ldrh r1, [r3, 0x16] movs r4, 0x16 ldrsh r0, [r3, r4] cmp r0, 0 beq _08140DF4 subs r0, r1, 0x1 strh r0, [r3, 0x16] b _08140EA4 .align 2, 0 _08140DF0: .4byte 0x03004b20 _08140DF4: ldrh r0, [r3, 0x26] lsls r0, 24 lsrs r0, 24 ldrb r1, [r3, 0xA] str r1, [sp] ldrb r4, [r3, 0xC] str r4, [sp, 0x4] ldrb r1, [r3, 0xE] str r1, [sp, 0x8] ldrb r3, [r3, 0x10] str r3, [sp, 0xC] movs r6, 0 str r2, [sp, 0x10] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 mov r10, r1 ldr r3, _08140EB4 mov r8, r3 ldr r1, _08140EB8 adds r0, r1 mov r9, r0 _08140E20: ldr r0, _08140EBC add r0, r10 ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r5, r1, 2 mov r0, r8 adds r4, r5, r0 mov r3, r9 ldrb r1, [r3] adds r0, r4, 0 bl StartSpriteAnim ldr r0, _08140EC0 adds r1, r5, r0 ldr r0, _08140EC4 str r0, [r1] movs r0, 0x3 ldr r2, [sp, 0x8] ands r2, r0 lsls r2, 2 ldrb r0, [r4, 0x5] movs r3, 0xD negs r3, r3 adds r1, r3, 0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] lsls r0, r6, 5 strh r0, [r4, 0x2E] movs r2, 0x8 strh r2, [r4, 0x36] movs r0, 0x2 strh r0, [r4, 0x38] strh r0, [r4, 0x3A] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x7 bls _08140E20 ldr r0, _08140EC8 ldr r4, [sp, 0x10] adds r1, r4, r7 lsls r1, 3 adds r1, r0 strh r2, [r1, 0x16] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _08140EA4 ldr r0, _08140EB4 adds r0, r5, r0 movs r1, 0x1 strh r1, [r0, 0x3C] adds r0, r7, 0 bl DestroyTask _08140EA4: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08140EB4: .4byte 0x02020004 _08140EB8: .4byte gUnknown_0840B378 _08140EBC: .4byte gSpriteTemplate_840B3B4 _08140EC0: .4byte 0x02020020 _08140EC4: .4byte sub_8140ECC _08140EC8: .4byte 0x03004b20 thumb_func_end sub_8140DC4 thumb_func_start sub_8140ECC sub_8140ECC: @ 8140ECC push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] movs r2, 0x30 ldrsh r1, [r4, r2] bl sine strh r0, [r4, 0x24] movs r1, 0x2E ldrsh r0, [r4, r1] movs r2, 0x32 ldrsh r1, [r4, r2] bl cosine strh r0, [r4, 0x26] ldrh r0, [r4, 0x36] ldrh r1, [r4, 0x2E] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x38] ldrh r2, [r4, 0x30] adds r0, r2 strh r0, [r4, 0x30] ldrh r0, [r4, 0x3A] ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x33 bne _08140F1C adds r0, r4, 0 bl sub_8141294 _08140F1C: pop {r4} pop {r0} bx r0 thumb_func_end sub_8140ECC thumb_func_start sub_8140F24 sub_8140F24: @ 8140F24 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08140FE0 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x26] lsls r1, 24 lsrs r1, 24 ldrb r2, [r0, 0xA] str r2, [sp] ldrb r3, [r0, 0xC] str r3, [sp, 0x4] ldrb r2, [r0, 0xE] str r2, [sp, 0x8] ldrb r0, [r0, 0x10] str r0, [sp, 0xC] movs r6, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 mov r10, r0 ldr r3, _08140FE4 mov r8, r3 ldr r0, _08140FE8 adds r1, r0 mov r9, r1 _08140F68: ldr r0, _08140FEC add r0, r10 ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r5, r1, 2 mov r0, r8 adds r4, r5, r0 mov r2, r9 ldrb r1, [r2] adds r0, r4, 0 bl StartSpriteAnim ldr r3, _08140FF0 adds r1, r5, r3 ldr r0, _08140FF4 str r0, [r1] movs r0, 0x3 ldr r2, [sp, 0x8] ands r2, r0 lsls r2, 2 ldrb r0, [r4, 0x5] movs r3, 0xD negs r3, r3 adds r1, r3, 0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] lsls r0, r6, 2 adds r0, r6 lsls r0, 2 adds r0, r6 strh r0, [r4, 0x2E] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0xB bls _08140F68 ldr r0, _08140FE4 adds r0, r5, r0 movs r1, 0x1 strh r1, [r0, 0x3C] adds r0, r7, 0 bl DestroyTask add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08140FE0: .4byte 0x03004b20 _08140FE4: .4byte 0x02020004 _08140FE8: .4byte gUnknown_0840B378 _08140FEC: .4byte gSpriteTemplate_840B3B4 _08140FF0: .4byte 0x02020020 _08140FF4: .4byte sub_8140FF8 thumb_func_end sub_8140F24 thumb_func_start sub_8140FF8 sub_8140FF8: @ 8140FF8 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] movs r2, 0x30 ldrsh r1, [r5, r2] bl sine strh r0, [r5, 0x24] movs r0, 0x2E ldrsh r4, [r5, r0] movs r2, 0x32 ldrsh r1, [r5, r2] adds r0, r4, 0 bl sine adds r1, r0, 0 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl cosine strh r0, [r5, 0x26] ldrh r0, [r5, 0x2E] adds r0, 0x6 movs r1, 0xFF ands r0, r1 strh r0, [r5, 0x2E] ldrh r0, [r5, 0x30] adds r0, 0x1 strh r0, [r5, 0x30] ldrh r0, [r5, 0x32] adds r0, 0x1 strh r0, [r5, 0x32] ldrh r0, [r5, 0x34] adds r0, 0x1 strh r0, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x33 bne _08141050 adds r0, r5, 0 bl sub_8141294 _08141050: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8140FF8 thumb_func_start sub_8141058 sub_8141058: @ 8141058 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 lsls r0, 24 lsrs r0, 24 str r0, [sp] ldr r1, _08141104 lsls r0, 2 ldr r2, [sp] adds r0, r2 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x26] lsls r1, 24 lsrs r1, 24 ldrb r3, [r0, 0xA] str r3, [sp, 0x4] ldrb r2, [r0, 0xC] str r2, [sp, 0x8] ldrb r3, [r0, 0xE] str r3, [sp, 0xC] ldrb r0, [r0, 0x10] str r0, [sp, 0x10] movs r0, 0 mov r8, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 str r0, [sp, 0x14] ldr r0, _08141108 adds r1, r0 mov r10, r1 _0814109E: movs r7, 0 movs r1, 0x1 add r1, r8 mov r9, r1 _081410A6: ldr r0, _0814110C ldr r2, [sp, 0x14] adds r0, r2, r0 ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] ldr r3, [sp, 0x10] bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 lsls r4, r6, 4 adds r4, r6 lsls r4, 2 ldr r3, _08141110 adds r5, r4, r3 mov r0, r10 ldrb r1, [r0] adds r0, r5, 0 bl StartSpriteAnim ldr r1, _08141114 adds r4, r1 ldr r0, _08141118 str r0, [r4] movs r0, 0x3 ldr r1, [sp, 0xC] ands r1, r0 lsls r1, 2 ldrb r0, [r5, 0x5] movs r3, 0xD negs r3, r3 adds r2, r3, 0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] lsls r0, r7, 5 strh r0, [r5, 0x2E] movs r0, 0x8 strh r0, [r5, 0x36] mov r0, r8 cmp r0, 0 bne _0814111C movs r0, 0x2 strh r0, [r5, 0x38] movs r0, 0x1 b _08141122 .align 2, 0 _08141104: .4byte 0x03004b20 _08141108: .4byte gUnknown_0840B378 _0814110C: .4byte gSpriteTemplate_840B3B4 _08141110: .4byte 0x02020004 _08141114: .4byte 0x02020020 _08141118: .4byte sub_8140ECC _0814111C: movs r0, 0x1 strh r0, [r5, 0x38] movs r0, 0x2 _08141122: strh r0, [r5, 0x3A] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x7 bls _081410A6 mov r1, r9 lsls r0, r1, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x1 bls _0814109E ldr r0, _08141160 lsls r1, r6, 4 adds r1, r6 lsls r1, 2 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x3C] ldr r0, [sp] bl DestroyTask add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08141160: .4byte 0x02020004 thumb_func_end sub_8141058 thumb_func_start sub_8141164 sub_8141164: @ 8141164 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08141218 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x26] lsls r1, 24 lsrs r1, 24 ldrb r2, [r0, 0xA] str r2, [sp] ldrb r3, [r0, 0xC] str r3, [sp, 0x4] ldrb r2, [r0, 0xE] str r2, [sp, 0x8] ldrb r0, [r0, 0x10] str r0, [sp, 0xC] movs r6, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 mov r10, r0 ldr r3, _0814121C mov r8, r3 ldr r0, _08141220 adds r1, r0 mov r9, r1 _081411A8: ldr r0, _08141224 add r0, r10 ldr r1, [sp] ldr r2, [sp, 0x4] ldr r3, [sp, 0xC] bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r5, r1, 2 mov r0, r8 adds r4, r5, r0 mov r2, r9 ldrb r1, [r2] adds r0, r4, 0 bl StartSpriteAnim ldr r3, _08141228 adds r1, r5, r3 ldr r0, _0814122C str r0, [r1] movs r0, 0x3 ldr r2, [sp, 0x8] ands r2, r0 lsls r2, 2 ldrb r0, [r4, 0x5] movs r3, 0xD negs r3, r3 adds r1, r3, 0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x5] lsls r0, r6, 5 strh r0, [r4, 0x2E] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x7 bls _081411A8 ldr r0, _0814121C adds r0, r5, r0 movs r1, 0x1 strh r1, [r0, 0x3C] adds r0, r7, 0 bl DestroyTask add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08141218: .4byte 0x03004b20 _0814121C: .4byte 0x02020004 _08141220: .4byte gUnknown_0840B378 _08141224: .4byte gSpriteTemplate_840B3B4 _08141228: .4byte 0x02020020 _0814122C: .4byte sub_8141230 thumb_func_end sub_8141164 thumb_func_start sub_8141230 sub_8141230: @ 8141230 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] movs r2, 0x30 ldrsh r1, [r5, r2] bl sine strh r0, [r5, 0x24] movs r0, 0x2E ldrsh r4, [r5, r0] ldrh r1, [r5, 0x2E] movs r0, 0x3F ands r0, r1 movs r2, 0x32 ldrsh r1, [r5, r2] bl sine adds r1, r0, 0 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl cosine strh r0, [r5, 0x26] ldrh r0, [r5, 0x2E] adds r0, 0xA movs r1, 0xFF ands r0, r1 strh r0, [r5, 0x2E] ldrh r0, [r5, 0x30] adds r0, 0x1 strh r0, [r5, 0x30] ldrh r0, [r5, 0x32] adds r0, 0x1 strh r0, [r5, 0x32] ldrh r0, [r5, 0x34] adds r0, 0x1 strh r0, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x33 bne _0814128C adds r0, r5, 0 bl sub_8141294 _0814128C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8141230 thumb_func_start sub_8141294 sub_8141294: @ 8141294 push {r4-r7,lr} adds r5, r0, 0 ldr r0, _081412B8 ldr r1, _081412BC adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _081412C0 movs r1, 0x3C ldrsh r0, [r5, r1] cmp r0, 0x1 bne _081412F2 adds r0, r5, 0 bl DestroySpriteAndFreeResources b _0814130E .align 2, 0 _081412B8: .4byte 0x03001770 _081412BC: .4byte 0x0000043d _081412C0: movs r1, 0x3C ldrsh r0, [r5, r1] cmp r0, 0x1 bne _08141308 ldr r1, _081412FC ldrb r0, [r1, 0xA] subs r0, 0x1 strb r0, [r1, 0xA] lsls r0, 24 cmp r0, 0 bne _081412F2 movs r7, 0 ldr r6, _08141300 ldr r4, _08141304 _081412DC: ldrh r0, [r6, 0x6] bl FreeSpriteTilesByTag ldrh r0, [r4, 0x4] bl FreeSpritePaletteByTag adds r6, 0x8 adds r4, 0x8 adds r7, 0x1 cmp r7, 0xB ble _081412DC _081412F2: adds r0, r5, 0 bl DestroySprite b _0814130E .align 2, 0 _081412FC: .4byte 0x02017840 _08141300: .4byte gUnknown_0840B258 _08141304: .4byte gUnknown_0840B2B8 _08141308: adds r0, r5, 0 bl DestroySprite _0814130E: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8141294 thumb_func_start sub_8141314 sub_8141314: @ 8141314 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r4, r0, 0 mov r9, r2 lsls r4, 24 lsrs r4, 24 lsls r1, 24 lsrs r6, r1, 24 lsls r3, 24 lsrs r7, r3, 24 ldr r0, _08141378 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, _0814137C lsls r0, 2 add r0, r8 lsls r0, 3 adds r5, r0, r1 strh r7, [r5, 0x26] strh r6, [r5, 0xE] mov r0, r9 strh r0, [r5, 0x1C] mov r1, r9 lsrs r0, r1, 16 strh r0, [r5, 0x1E] cmp r4, 0 bne _08141384 lsls r0, r6, 20 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r0, 16 ldr r2, _08141380 lsls r1, r7, 1 adds r1, r2 ldrh r3, [r1] movs r1, 0x10 movs r2, 0 bl BlendPalette movs r0, 0x1 strh r0, [r5, 0xA] b _081413AA .align 2, 0 _08141378: .4byte sub_81413DC _0814137C: .4byte 0x03004b20 _08141380: .4byte gUnknown_0840B4D4 _08141384: lsls r0, r6, 20 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r0, 16 ldr r2, _081413CC lsls r1, r7, 1 adds r1, r2 ldrh r3, [r1] movs r1, 0x10 movs r2, 0x10 bl BlendPalette movs r0, 0x10 strh r0, [r5, 0x8] ldr r0, _081413D0 strh r0, [r5, 0xA] ldr r0, _081413D4 str r0, [r5] _081413AA: ldr r0, _081413D8 str r0, [sp] mov r0, r9 movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade mov r0, r8 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081413CC: .4byte gUnknown_0840B4D4 _081413D0: .4byte 0x0000ffff _081413D4: .4byte sub_814146C _081413D8: .4byte 0x00007fff thumb_func_end sub_8141314 thumb_func_start sub_81413DC sub_81413DC: @ 81413DC push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, _0814142C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0x10 bgt _08141434 movs r2, 0xE ldrsh r0, [r4, r2] lsls r0, 20 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r0, 16 ldrb r2, [r4, 0x8] ldr r3, _08141430 lsls r1, 1 adds r1, r3 ldrh r3, [r1] movs r1, 0x10 bl BlendPalette ldrh r0, [r4, 0xA] ldrh r1, [r4, 0x8] adds r0, r1 strh r0, [r4, 0x8] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] b _0814145C .align 2, 0 _0814142C: .4byte 0x03004b20 _08141430: .4byte gUnknown_0840B4D4 _08141434: ldr r0, _08141464 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0814145C ldrh r0, [r4, 0x1C] ldrh r1, [r4, 0x1E] lsls r1, 16 orrs r0, r1 ldr r1, _08141468 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade adds r0, r5, 0 bl DestroyTask _0814145C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08141464: .4byte 0x0202f388 _08141468: .4byte 0x00007fff thumb_func_end sub_81413DC thumb_func_start sub_814146C sub_814146C: @ 814146C push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r2, r0, 24 ldr r0, _081414AC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081414A4 ldr r0, _081414B0 lsls r4, r2, 2 adds r4, r2 lsls r4, 3 adds r4, r0 ldrh r0, [r4, 0x1C] ldrh r1, [r4, 0x1E] lsls r1, 16 orrs r0, r1 ldr r1, _081414B4 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _081414B8 str r0, [r4] _081414A4: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _081414AC: .4byte 0x0202f388 _081414B0: .4byte 0x03004b20 _081414B4: .4byte 0x00007fff _081414B8: .4byte sub_81414BC thumb_func_end sub_814146C thumb_func_start sub_81414BC sub_81414BC: @ 81414BC push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _08141508 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x26] lsls r0, 24 lsrs r1, r0, 24 movs r3, 0xC ldrsh r0, [r4, r3] cmp r0, 0x10 bgt _08141510 movs r2, 0xE ldrsh r0, [r4, r2] lsls r0, 20 movs r3, 0x80 lsls r3, 17 adds r0, r3 lsrs r0, 16 ldrb r2, [r4, 0x8] ldr r3, _0814150C lsls r1, 1 adds r1, r3 ldrh r3, [r1] movs r1, 0x10 bl BlendPalette ldrh r0, [r4, 0xA] ldrh r1, [r4, 0x8] adds r0, r1 strh r0, [r4, 0x8] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] b _08141516 .align 2, 0 _08141508: .4byte 0x03004b20 _0814150C: .4byte gUnknown_0840B4D4 _08141510: adds r0, r2, 0 bl DestroyTask _08141516: pop {r4} pop {r0} bx r0 thumb_func_end sub_81414BC thumb_func_start sub_814151C sub_814151C: @ 814151C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 movs r0, 0 mov r8, r0 ldr r0, _08141550 ldr r3, _08141554 ldrb r2, [r3] adds r0, r2, r0 ldrb r6, [r0] ldr r1, _08141558 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r5, r0, r1 movs r1, 0x1C ldrsh r0, [r5, r1] cmp r0, 0x1 beq _081415F4 cmp r0, 0x1 bgt _0814155C cmp r0, 0 beq _08141562 b _081416B6 .align 2, 0 _08141550: .4byte 0x02024be0 _08141554: .4byte 0x0202f7c8 _08141558: .4byte 0x03004b20 _0814155C: cmp r0, 0x2 beq _08141606 b _081416B6 _08141562: ldr r0, _0814159C ldrh r0, [r0] strh r0, [r5, 0x1E] movs r2, 0xA0 lsls r2, 3 adds r0, r2, 0 ldrh r4, [r5, 0x8] adds r0, r4 strh r0, [r5, 0x8] ldrb r0, [r3] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _081415A4 ldr r2, _081415A0 lsls r3, r6, 4 adds r1, r3, r6 lsls r1, 2 adds r1, r2 ldrh r0, [r5, 0x8] lsls r0, 16 asrs r0, 24 ldrh r4, [r1, 0x24] adds r0, r4 strh r0, [r1, 0x24] adds r4, r3, 0 b _081415BC .align 2, 0 _0814159C: .4byte 0x03004b00 _081415A0: .4byte 0x02020004 _081415A4: ldr r3, _081415EC lsls r4, r6, 4 adds r2, r4, r6 lsls r2, 2 adds r2, r3 ldrh r1, [r5, 0x8] lsls r1, 16 asrs r1, 24 ldrh r0, [r2, 0x24] subs r0, r1 strh r0, [r2, 0x24] adds r2, r3, 0 _081415BC: ldr r1, _081415F0 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r3, r0, r1 ldrb r0, [r3, 0x8] strh r0, [r3, 0x8] adds r0, r4, r6 lsls r0, 2 adds r0, r2 movs r2, 0x20 ldrsh r1, [r0, r2] movs r4, 0x24 ldrsh r0, [r0, r4] adds r1, r0 adds r1, 0x20 movs r0, 0x98 lsls r0, 1 cmp r1, r0 bls _081416B6 ldrh r0, [r3, 0x1C] adds r0, 0x1 strh r0, [r3, 0x1C] b _081416B6 .align 2, 0 _081415EC: .4byte 0x02020004 _081415F0: .4byte 0x03004b20 _081415F4: ldrb r1, [r5, 0x1E] adds r0, r2, 0 adds r2, r6, 0 bl refresh_graphics_maybe ldrh r0, [r5, 0x1C] adds r0, 0x1 strh r0, [r5, 0x1C] b _081416B6 _08141606: movs r1, 0xA0 lsls r1, 3 adds r0, r1, 0 ldrh r2, [r5, 0x8] adds r0, r2 strh r0, [r5, 0x8] ldrb r0, [r3] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0814163C ldr r0, _08141638 lsls r3, r6, 4 adds r2, r3, r6 lsls r2, 2 adds r2, r0 ldrh r1, [r5, 0x8] lsls r1, 16 asrs r1, 24 ldrh r0, [r2, 0x24] subs r0, r1 strh r0, [r2, 0x24] adds r4, r3, 0 b _08141654 .align 2, 0 _08141638: .4byte 0x02020004 _0814163C: ldr r0, _08141688 lsls r2, r6, 4 adds r1, r2, r6 lsls r1, 2 adds r1, r0 ldrh r0, [r5, 0x8] lsls r0, 16 asrs r0, 24 ldrh r3, [r1, 0x24] adds r0, r3 strh r0, [r1, 0x24] adds r4, r2, 0 _08141654: ldr r1, _0814168C lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0x8] strh r1, [r0, 0x8] ldr r0, _08141690 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _08141694 ldr r0, _08141688 adds r1, r4, r6 lsls r1, 2 adds r1, r0 movs r4, 0x24 ldrsh r0, [r1, r4] cmp r0, 0 bgt _081416AA movs r0, 0 strh r0, [r1, 0x24] b _081416B0 .align 2, 0 _08141688: .4byte 0x02020004 _0814168C: .4byte 0x03004b20 _08141690: .4byte 0x0202f7c8 _08141694: ldr r0, _081416C0 adds r1, r4, r6 lsls r1, 2 adds r1, r0 movs r3, 0x24 ldrsh r0, [r1, r3] cmp r0, 0 blt _081416AA strh r2, [r1, 0x24] movs r4, 0x1 mov r8, r4 _081416AA: mov r0, r8 cmp r0, 0 beq _081416B6 _081416B0: adds r0, r7, 0 bl move_anim_task_del _081416B6: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081416C0: .4byte 0x02020004 thumb_func_end sub_814151C thumb_func_start sub_81416C4 sub_81416C4: @ 81416C4 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _081416E8 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x26 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08141744 cmp r0, 0x1 bgt _081416EC cmp r0, 0 beq _081416F2 b _081417B8 .align 2, 0 _081416E8: .4byte 0x03004b20 _081416EC: cmp r0, 0x2 beq _0814177C b _081417B8 _081416F2: ldr r0, _08141708 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08141714 ldr r1, _0814170C ldr r2, _08141710 b _08141718 .align 2, 0 _08141708: .4byte 0x0202f7c8 _0814170C: .4byte REG_BLDCNT _08141710: .4byte 0x00003f42 _08141714: ldr r1, _08141734 ldr r2, _08141738 _08141718: adds r0, r2, 0 strh r0, [r1] ldr r1, _0814173C movs r0, 0x10 strh r0, [r1] ldr r1, _08141740 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x26] adds r1, 0x1 strh r1, [r0, 0x26] b _081417B8 .align 2, 0 _08141734: .4byte REG_BLDCNT _08141738: .4byte 0x00003f44 _0814173C: .4byte REG_BLDALPHA _08141740: .4byte 0x03004b20 _08141744: ldrh r0, [r4, 0xA] adds r1, r0, 0x1 strh r1, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _081417B8 movs r0, 0 strh r0, [r4, 0xA] ldrh r1, [r4, 0x8] adds r1, 0x1 strh r1, [r4, 0x8] ldr r3, _08141778 lsls r2, r1, 8 movs r0, 0x10 subs r0, r1 orrs r2, r0 strh r2, [r3] movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x10 bne _081417B8 ldrh r0, [r4, 0x26] adds r0, 0x1 strh r0, [r4, 0x26] b _081417B8 .align 2, 0 _08141778: .4byte REG_BLDALPHA _0814177C: ldr r1, _081417C0 ldr r3, _081417C4 ldrb r0, [r3] adds r0, r1 ldrb r1, [r0] ldr r2, _081417C8 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x4] lsls r0, 22 lsrs r0, 17 ldr r1, _081417CC adds r0, r1 movs r1, 0 str r1, [sp] ldr r1, _081417D0 mov r2, sp str r2, [r1] str r0, [r1, 0x4] ldr r0, _081417D4 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldrb r0, [r3] bl sub_80324E0 adds r0, r5, 0 bl move_anim_task_del _081417B8: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081417C0: .4byte 0x02024be0 _081417C4: .4byte 0x0202f7c8 _081417C8: .4byte 0x02020004 _081417CC: .4byte 0x06010000 _081417D0: .4byte 0x040000d4 _081417D4: .4byte 0x85000200 thumb_func_end sub_81416C4 thumb_func_start sub_81417D8 sub_81417D8: @ 81417D8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r3, _081417FC ldr r1, _08141800 ldrb r1, [r1] lsls r1, 2 ldr r2, _08141804 adds r1, r2 ldr r1, [r1] lsls r1, 29 lsrs r1, 31 strh r1, [r3, 0xE] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _081417FC: .4byte 0x03004b00 _08141800: .4byte 0x0202f7c8 _08141804: .4byte 0x02017800 thumb_func_end sub_81417D8 thumb_func_start sub_8141808 sub_8141808: @ 8141808 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _08141820 ldr r1, _08141824 ldrb r1, [r1] strb r1, [r2] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _08141820: .4byte 0x0202f7c9 _08141824: .4byte 0x02024c0a thumb_func_end sub_8141808 thumb_func_start sub_8141828 sub_8141828: @ 8141828 push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r1, 0 lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 mov r8, r0 lsls r0, r6, 1 adds r0, r6 lsls r0, 2 ldr r1, _081418E0 adds r0, r1 ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] adds r0, r4, 0 movs r1, 0x1 bl PokemonGetField adds r5, r0, 0 adds r0, r4, 0 movs r1, 0 bl PokemonGetField adds r4, r0, 0 adds r0, r6, 0 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 beq _081418FC lsrs r0, r5, 16 ldr r7, _081418E4 ands r5, r7 eors r0, r5 lsrs r1, r4, 16 eors r0, r1 ands r4, r7 eors r0, r4 cmp r0, 0x7 bhi _08141882 movs r0, 0x1 mov r8, r0 _08141882: mov r0, r8 cmp r0, 0 beq _081418FC ldr r0, _081418E8 bl GetSpriteTileStartByTag lsls r0, 16 lsrs r0, 16 cmp r0, r7 bne _081418A2 ldr r0, _081418EC bl LoadCompressedObjectPic ldr r0, _081418F0 bl LoadCompressedObjectPalette _081418A2: ldr r5, _081418F4 adds r0, r5, 0 movs r1, 0xA bl CreateTask adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r3, _081418F8 lsls r2, r4, 2 adds r2, r4 lsls r2, 3 adds r2, r3 movs r4, 0 strh r6, [r2, 0x8] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r3 strh r6, [r1, 0x8] strh r4, [r2, 0xA] movs r0, 0x1 strh r0, [r1, 0xA] b _0814190E .align 2, 0 _081418E0: .4byte 0x02017810 _081418E4: .4byte 0x0000ffff _081418E8: .4byte 0x000027f9 _081418EC: .4byte gBattleAnimPicTable + (233 * 8) _081418F0: .4byte gBattleAnimPaletteTable + (233 * 8) _081418F4: .4byte sub_814191C _081418F8: .4byte 0x03004b20 _081418FC: lsls r0, r6, 1 adds r0, r6 lsls r0, 2 ldr r1, _08141918 adds r0, r1 ldrb r1, [r0, 0x1] movs r2, 0x1 orrs r1, r2 strb r1, [r0, 0x1] _0814190E: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08141918: .4byte 0x02017810 thumb_func_end sub_8141828 thumb_func_start sub_814191C sub_814191C: @ 814191C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08141944 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r4, r0, r1 ldrh r1, [r4, 0x22] movs r2, 0x22 ldrsh r0, [r4, r2] cmp r0, 0x3B bgt _08141948 adds r0, r1, 0x1 strh r0, [r4, 0x22] b _08141AB8 .align 2, 0 _08141944: .4byte 0x03004b20 _08141948: ldr r0, _08141998 ldrb r0, [r0, 0xA] cmp r0, 0 beq _08141952 b _08141AB8 _08141952: ldrh r0, [r4, 0x1C] adds r1, r0, 0x1 strh r1, [r4, 0x1C] lsls r0, 16 movs r1, 0xC0 lsls r1, 10 ands r1, r0 cmp r1, 0 beq _08141966 b _08141AB8 _08141966: ldrb r0, [r4, 0x8] mov r8, r0 movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r5, r0, 24 mov r0, r8 movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r2, r0, 24 movs r1, 0x1E ldrsh r0, [r4, r1] cmp r0, 0 bne _081419A0 ldr r0, _0814199C adds r1, r5, 0 movs r3, 0x5 bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 b _08141A02 .align 2, 0 _08141998: .4byte 0x02017840 _0814199C: .4byte gBattleAnimSpriteTemplate_84024E8 _081419A0: cmp r0, 0 blt _081419D4 cmp r0, 0x3 bgt _081419D4 ldr r0, _081419CC adds r1, r5, 0 movs r3, 0x5 bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 ldr r0, _081419D0 lsls r2, r5, 4 adds r2, r5 lsls r2, 2 adds r2, r0 ldrh r3, [r2, 0x4] lsls r1, r3, 22 lsrs r1, 22 adds r1, 0x4 b _081419F4 .align 2, 0 _081419CC: .4byte gSpriteTemplate_8402500 _081419D0: .4byte 0x02020004 _081419D4: ldr r0, _08141A2C adds r1, r5, 0 movs r3, 0x5 bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 ldr r0, _08141A30 lsls r2, r5, 4 adds r2, r5 lsls r2, 2 adds r2, r0 ldrh r3, [r2, 0x4] lsls r1, r3, 22 lsrs r1, 22 adds r1, 0x5 _081419F4: ldr r4, _08141A34 adds r0, r4, 0 ands r1, r0 ldr r0, _08141A38 ands r0, r3 orrs r0, r1 strh r0, [r2, 0x4] _08141A02: ldr r2, _08141A3C lsls r1, r7, 2 adds r0, r1, r7 lsls r0, 3 adds r6, r0, r2 movs r2, 0xA ldrsh r0, [r6, r2] mov r9, r1 cmp r0, 0 bne _08141A44 ldr r1, _08141A30 lsls r2, r5, 4 adds r0, r2, r5 lsls r0, 2 adds r1, 0x1C adds r0, r1 ldr r1, _08141A40 str r1, [r0] adds r4, r2, 0 b _08141A8C .align 2, 0 _08141A2C: .4byte gSpriteTemplate_8402500 _08141A30: .4byte 0x02020004 _08141A34: .4byte 0x000003ff _08141A38: .4byte 0xfffffc00 _08141A3C: .4byte 0x03004b20 _08141A40: .4byte sub_8141B20 _08141A44: ldr r3, _08141AC4 lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 adds r0, r3, 0 adds r0, 0x1C adds r0, r1, r0 ldr r2, _08141AC8 str r2, [r0] adds r1, r3 ldr r0, _08141ACC strh r0, [r1, 0x24] movs r0, 0x20 strh r0, [r1, 0x26] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] movs r1, 0x1E ldrsh r0, [r6, r1] cmp r0, 0 bne _08141A8C mov r0, r8 bl battle_side_get_owner lsls r0, 24 movs r1, 0x3F cmp r0, 0 bne _08141A82 movs r1, 0xC0 _08141A82: lsls r1, 24 asrs r1, 24 movs r0, 0x66 bl audio_play_and_stuff _08141A8C: ldr r1, _08141AC4 adds r0, r4, r5 lsls r0, 2 adds r0, r1 strh r7, [r0, 0x2E] ldr r1, _08141AD0 mov r2, r9 adds r0, r2, r7 lsls r0, 3 adds r2, r0, r1 ldrh r1, [r2, 0x1E] adds r1, 0x1 strh r1, [r2, 0x1E] ldrh r0, [r2, 0x20] adds r0, 0x1 strh r0, [r2, 0x20] lsls r1, 16 asrs r1, 16 cmp r1, 0x5 bne _08141AB8 ldr r0, _08141AD4 str r0, [r2] _08141AB8: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08141AC4: .4byte 0x02020004 _08141AC8: .4byte sub_8141B74 _08141ACC: .4byte 0x0000ffe0 _08141AD0: .4byte 0x03004b20 _08141AD4: .4byte sub_8141AD8 thumb_func_end sub_814191C thumb_func_start sub_8141AD8 sub_8141AD8: @ 8141AD8 push {lr} lsls r0, 24 lsrs r0, 24 adds r3, r0, 0 ldr r1, _08141B18 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r1, r0, r1 movs r2, 0x20 ldrsh r0, [r1, r2] cmp r0, 0 bne _08141B14 movs r2, 0xA ldrsh r0, [r1, r2] cmp r0, 0x1 bne _08141B0E ldrb r1, [r1, 0x8] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08141B1C adds r0, r1 ldrb r1, [r0, 0x1] movs r2, 0x1 orrs r1, r2 strb r1, [r0, 0x1] _08141B0E: adds r0, r3, 0 bl DestroyTask _08141B14: pop {r0} bx r0 .align 2, 0 _08141B18: .4byte 0x03004b20 _08141B1C: .4byte 0x02017810 thumb_func_end sub_8141AD8 thumb_func_start sub_8141B20 sub_8141B20: @ 8141B20 push {r4,lr} adds r4, r0, 0 movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x18 bl sine strh r0, [r4, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x18 bl cosine strh r0, [r4, 0x26] ldrh r0, [r4, 0x30] adds r0, 0xC strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0xFF ble _08141B6A ldr r2, _08141B70 movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r1, [r0, 0x20] subs r1, 0x1 strh r1, [r0, 0x20] adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl DestroySprite _08141B6A: pop {r4} pop {r0} bx r0 .align 2, 0 _08141B70: .4byte 0x03004b20 thumb_func_end sub_8141B20 thumb_func_start sub_8141B74 sub_8141B74: @ 8141B74 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0x3 bgt _08141B88 adds r0, r1, 0x1 strh r0, [r4, 0x30] b _08141BCA _08141B88: adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldrh r1, [r4, 0x24] adds r1, 0x5 strh r1, [r4, 0x24] ldrh r0, [r4, 0x26] subs r0, 0x5 strh r0, [r4, 0x26] lsls r1, 16 asrs r1, 16 cmp r1, 0x20 ble _08141BCA ldr r2, _08141BD0 movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r1, [r0, 0x20] subs r1, 0x1 strh r1, [r0, 0x20] adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl DestroySprite _08141BCA: pop {r4} pop {r0} bx r0 .align 2, 0 _08141BD0: .4byte 0x03004b20 thumb_func_end sub_8141B74 thumb_func_start sub_8141BD4 sub_8141BD4: @ 8141BD4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _08141BFC bl LoadCompressedObjectPic ldr r0, _08141C00 bl LoadCompressedObjectPalette ldr r0, _08141C04 bl IndexOfSpritePaletteTag adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _08141BFC: .4byte gBattleAnimPicTable + (269 * 8) _08141C00: .4byte gBattleAnimPaletteTable + (269 * 8) _08141C04: .4byte 0x0000281d thumb_func_end sub_8141BD4 thumb_func_start sub_8141C08 sub_8141C08: @ 8141C08 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _08141C2C adds r0, r5, 0 bl FreeSpriteTilesByTag adds r0, r5, 0 bl FreeSpritePaletteByTag adds r0, r4, 0 bl move_anim_task_del pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08141C2C: .4byte 0x0000281d thumb_func_end sub_8141C08 thumb_func_start sub_8141C30 sub_8141C30: @ 8141C30 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0 bl sub_80787B0 movs r0, 0x1E strh r0, [r4, 0x2E] movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_8077ABC lsls r0, 24 ldr r5, _08141CA4 lsrs r0, 24 ldrh r1, [r5, 0x4] adds r0, r1 strh r0, [r4, 0x32] movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x6] adds r0, r5 strh r0, [r4, 0x36] ldr r0, _08141CA8 strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC ldr r1, _08141CAC ldr r0, _08141CB0 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08141CB4 adds r0, r1 movs r1, 0x1 bl StartSpriteAnim ldr r0, _08141CB8 str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08141CA4: .4byte 0x03004b00 _08141CA8: .4byte 0x0000ffe0 _08141CAC: .4byte 0x02024be0 _08141CB0: .4byte 0x0202f7c8 _08141CB4: .4byte 0x02020004 _08141CB8: .4byte sub_8141CBC thumb_func_end sub_8141C30 thumb_func_start sub_8141CBC sub_8141CBC: @ 8141CBC push {lr} adds r3, r0, 0 ldr r2, _08141CE4 ldr r1, _08141CE8 ldr r0, _08141CEC ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0x1 bne _08141CE0 ldr r0, _08141CF0 str r0, [r3, 0x1C] _08141CE0: pop {r0} bx r0 .align 2, 0 _08141CE4: .4byte 0x02020004 _08141CE8: .4byte 0x02024be0 _08141CEC: .4byte 0x0202f7c8 _08141CF0: .4byte sub_8141CF4 thumb_func_end sub_8141CBC thumb_func_start sub_8141CF4 sub_8141CF4: @ 8141CF4 push {r4,lr} adds r4, r0, 0 bl sub_8078718 lsls r0, 24 cmp r0, 0 beq _08141D16 movs r0, 0 strh r0, [r4, 0x2E] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _08141D1C str r0, [r4, 0x1C] _08141D16: pop {r4} pop {r0} bx r0 .align 2, 0 _08141D1C: .4byte sub_8141D20 thumb_func_end sub_8141CF4 thumb_func_start sub_8141D20 sub_8141D20: @ 8141D20 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _08141D70 ldr r3, _08141D74 ldr r2, _08141D78 ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3F ldrb r0, [r0] lsls r0, 27 cmp r0, 0 bge _08141D68 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 cmp r0, 0 ble _08141D68 ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0 bl StartSpriteAnim adds r0, r4, 0 bl move_anim_8072740 _08141D68: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08141D70: .4byte 0x02020004 _08141D74: .4byte 0x02024be0 _08141D78: .4byte 0x0202f7c8 thumb_func_end sub_8141D20 thumb_func_start sub_8141D7C sub_8141D7C: @ 8141D7C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl battle_get_side_with_given_state ldr r1, _08141DA4 strb r0, [r1] movs r0, 0x1 bl battle_get_side_with_given_state ldr r1, _08141DA8 strb r0, [r1] adds r0, r4, 0 bl move_anim_task_del pop {r4} pop {r0} bx r0 .align 2, 0 _08141DA4: .4byte 0x0202f7c8 _08141DA8: .4byte 0x0202f7c9 thumb_func_end sub_8141D7C thumb_func_start sub_8141DAC sub_8141DAC: @ 8141DAC push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _08141DC0 ldrh r1, [r0] cmp r1, 0x53 bne _08141DC8 ldr r1, _08141DC4 movs r0, 0x1 b _08141E00 .align 2, 0 _08141DC0: .4byte 0x02017840 _08141DC4: .4byte 0x03004b00 _08141DC8: cmp r1, 0xFA bne _08141DD8 ldr r1, _08141DD4 movs r0, 0x2 b _08141E00 .align 2, 0 _08141DD4: .4byte 0x03004b00 _08141DD8: cmp r1, 0x80 bne _08141DE8 ldr r1, _08141DE4 movs r0, 0x3 b _08141E00 .align 2, 0 _08141DE4: .4byte 0x03004b00 _08141DE8: movs r0, 0xA4 lsls r0, 1 cmp r1, r0 bne _08141DFC ldr r1, _08141DF8 movs r0, 0x4 b _08141E00 .align 2, 0 _08141DF8: .4byte 0x03004b00 _08141DFC: ldr r1, _08141E0C movs r0, 0 _08141E00: strh r0, [r1] adds r0, r2, 0 bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _08141E0C: .4byte 0x03004b00 thumb_func_end sub_8141DAC thumb_func_start sub_8141E10 sub_8141E10: @ 8141E10 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _08141E2C ldr r1, _08141E30 ldrh r1, [r1] strb r1, [r2] ldr r2, _08141E34 lsrs r1, 8 strb r1, [r2] bl move_anim_task_del pop {r0} bx r0 .align 2, 0 _08141E2C: .4byte 0x0202f7c8 _08141E30: .4byte 0x02017840 _08141E34: .4byte 0x0202f7c9 thumb_func_end sub_8141E10 thumb_func_start sub_8141E38 sub_8141E38: @ 8141E38 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8141E38 thumb_func_start sub_8141E4C sub_8141E4C: @ 8141E4C push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8141E4C thumb_func_start sub_8141E64 sub_8141E64: @ 8141E64 push {r4,lr} sub sp, 0x4 ldr r0, _08141E80 ldr r1, _08141E84 adds r0, r1 ldrb r0, [r0] cmp r0, 0x4 bhi _08141EA0 lsls r0, 2 ldr r1, _08141E88 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08141E80: .4byte 0x03001770 _08141E84: .4byte 0x0000043c _08141E88: .4byte _08141E8C .align 2, 0 _08141E8C: .4byte _08141EA0 .4byte _08141EC0 .4byte _08141EC6 .4byte _08141F1C .4byte _08141F58 _08141EA0: movs r0, 0 bl SetVBlankCallback bl sub_81433E0 ldr r0, _08141EB8 ldr r2, _08141EBC adds r0, r2 movs r1, 0x1 strb r1, [r0] b _08141F84 .align 2, 0 _08141EB8: .4byte 0x03001770 _08141EBC: .4byte 0x0000043c _08141EC0: bl sub_8143570 b _08141F38 _08141EC6: movs r0, 0x1 negs r0, r0 movs r4, 0 str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _08141F04 bl SetVBlankCallback ldr r3, _08141F08 ldrh r2, [r3] strh r4, [r3] ldr r4, _08141F0C ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08141F10 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r1, _08141F14 ldr r2, _08141F18 adds r1, r2 b _08141F3E .align 2, 0 _08141F04: .4byte sub_8141E38 _08141F08: .4byte 0x04000208 _08141F0C: .4byte 0x04000200 _08141F10: .4byte REG_DISPSTAT _08141F14: .4byte 0x03001770 _08141F18: .4byte 0x0000043c _08141F1C: ldr r1, _08141F48 ldr r2, _08141F4C adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0xE2 lsls r2, 3 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0 strh r0, [r1] bl sub_81435B8 _08141F38: ldr r1, _08141F50 ldr r0, _08141F54 adds r1, r0 _08141F3E: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08141F84 .align 2, 0 _08141F48: .4byte REG_BLDCNT _08141F4C: .4byte 0x00003f42 _08141F50: .4byte 0x03001770 _08141F54: .4byte 0x0000043c _08141F58: bl UpdatePaletteFade ldr r0, _08141F7C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08141F84 ldr r0, _08141F80 bl SetMainCallback2 movs r0, 0xDA lsls r0, 1 bl sub_8075474 movs r0, 0 b _08141F86 .align 2, 0 _08141F7C: .4byte 0x0202f388 _08141F80: .4byte sub_8141E4C _08141F84: movs r0, 0x1 _08141F86: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_8141E64 thumb_func_start sub_8141F90 sub_8141F90: @ 8141F90 push {r4,lr} bl sub_8141E64 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08141FB6 ldr r0, _08141FBC movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08141FC0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] _08141FB6: pop {r4} pop {r0} bx r0 .align 2, 0 _08141FBC: .4byte sub_8141FF8 _08141FC0: .4byte 0x03004b20 thumb_func_end sub_8141F90 thumb_func_start sub_8141FC4 sub_8141FC4: @ 8141FC4 push {lr} bl sub_8141E64 lsls r0, 24 cmp r0, 0 bne _08141FEA ldr r0, _08141FF0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08141FF4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0x1 strh r0, [r1, 0x8] _08141FEA: pop {r0} bx r0 .align 2, 0 _08141FF0: .4byte sub_8141FF8 _08141FF4: .4byte 0x03004b20 thumb_func_end sub_8141FC4 thumb_func_start sub_8141FF8 sub_8141FF8: @ 8141FF8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _081420C8 mov r9, r0 ldr r1, _081420CC mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] movs r7, 0 ldr r4, _081420D0 mov r10, r4 _08142024: movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, _081420D4 adds r6, r1, r0 adds r0, r6, 0 movs r1, 0xB bl PokemonGetField adds r3, r0, 0 cmp r3, 0 beq _081420DC adds r0, r6, 0 movs r1, 0x41 bl PokemonGetField lsls r4, r7, 2 adds r4, r7 lsls r4, 2 mov r1, r9 adds r5, r1, r4 ldr r2, _081420D8 adds r1, r2, 0 ands r0, r1 ldrh r1, [r5, 0x8] mov r2, r10 ands r1, r2 orrs r1, r0 strh r1, [r5, 0x8] adds r0, r6, 0 movs r1, 0x1 bl PokemonGetField str r0, [r5] adds r0, r6, 0 movs r1, 0 bl PokemonGetField mov r1, r9 adds r1, 0x4 adds r1, r4 str r0, [r1] adds r0, r6, 0 movs r1, 0x38 bl PokemonGetField lsls r0, 1 ldrb r2, [r5, 0x9] movs r1, 0x1 ands r1, r2 orrs r1, r0 strb r1, [r5, 0x9] adds r0, r6, 0 movs r1, 0x2 mov r2, sp bl PokemonGetField movs r2, 0 mov r6, r8 lsls r5, r6, 2 mov r3, r9 adds r3, 0xA _081420A0: adds r1, r2, r4 adds r1, r3, r1 mov r6, sp adds r0, r6, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x9 bls _081420A0 ldr r0, _081420CC mov r2, r8 adds r1, r5, r2 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xC] adds r0, 0x1 strh r0, [r1, 0xC] b _08142108 .align 2, 0 _081420C8: .4byte 0x0201c000 _081420CC: .4byte 0x03004b20 _081420D0: .4byte 0xfffffe00 _081420D4: .4byte 0x03004360 _081420D8: .4byte 0x000001ff _081420DC: lsls r1, r7, 2 adds r1, r7 lsls r1, 2 mov r4, r9 adds r2, r4, r1 ldrh r0, [r2, 0x8] mov r6, r10 ands r0, r6 strh r0, [r2, 0x8] str r3, [r2] mov r0, r9 adds r0, 0x4 adds r0, r1 str r3, [r0] ldrb r1, [r2, 0x9] movs r0, 0x1 ands r0, r1 strb r0, [r2, 0x9] movs r0, 0xFF strb r0, [r2, 0xA] mov r0, r8 lsls r5, r0, 2 _08142108: adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0x5 bls _08142024 ldr r0, _08142158 movs r3, 0 str r3, [r0] ldr r4, _0814215C mov r2, r8 adds r1, r5, r2 lsls r1, 3 adds r2, r1, r4 strh r3, [r2, 0xA] movs r0, 0xFF strh r0, [r2, 0x10] movs r7, 0 adds r3, r4, 0 adds r3, 0x8 movs r2, 0xFF _08142130: adds r0, r7, 0x5 lsls r0, 1 adds r0, r1 adds r0, r3 strh r2, [r0] adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0x5 bls _08142130 mov r6, r8 adds r0, r5, r6 lsls r0, 3 adds r1, r0, r4 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 beq _08142164 ldr r0, _08142160 b _08142166 .align 2, 0 _08142158: .4byte 0x0203931c _0814215C: .4byte 0x03004b20 _08142160: .4byte sub_81422E8 _08142164: ldr r0, _08142178 _08142166: str r0, [r1] add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08142178: .4byte sub_814217C thumb_func_end sub_8141FF8 thumb_func_start sub_814217C sub_814217C: @ 814217C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _081421C4 mov r9, r0 movs r7, 0x80 lsls r7, 6 add r7, r9 ldr r0, _081421C8 ldrb r0, [r0] cmp r0, 0 bne _081421D4 movs r4, 0 mov r0, r8 lsls r0, 2 mov r10, r0 ldr r5, _081421CC add r5, r9 movs r3, 0xF0 lsls r3, 9 movs r2, 0 ldr r1, _081421D0 _081421B2: adds r0, r4, r3 adds r0, r5 strb r2, [r0] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r1 bls _081421B2 b _081421E0 .align 2, 0 _081421C4: .4byte 0x0201c000 _081421C8: .4byte 0x02039324 _081421CC: .4byte 0xfffe4000 _081421D0: .4byte 0x00001fff _081421D4: movs r0, 0x3 bl sub_8125EC8 mov r0, r8 lsls r0, 2 mov r10, r0 _081421E0: movs r4, 0 ldrh r1, [r7, 0x8] ldr r2, _081421E8 b _081421FA .align 2, 0 _081421E8: .4byte 0x000001ff _081421EC: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r7, 0x78 cmp r4, 0x31 bhi _08142206 ldrh r1, [r7, 0x8] _081421FA: adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _081421EC cmp r4, 0x31 bls _08142228 _08142206: ldr r5, _08142264 adds r6, r5, 0 adds r5, 0x78 movs r4, 0 subs r7, 0x78 _08142210: adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x78 bl memcpy adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r6, 0x78 adds r5, 0x78 cmp r4, 0x30 bls _08142210 _08142228: adds r0, r7, 0 mov r1, r9 movs r2, 0x78 bl memcpy movs r0, 0x2 movs r1, 0xE movs r2, 0x1B movs r3, 0x13 bl DrawDefaultWindow ldr r0, _08142268 movs r1, 0x3 movs r2, 0xF bl Print ldr r1, _0814226C mov r0, r10 add r0, r8 lsls r0, 3 adds r0, r1 ldr r1, _08142270 str r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08142264: .4byte 0x0201e000 _08142268: .4byte gUnknown_0840E4CD _0814226C: .4byte 0x03004b20 _08142270: .4byte sub_8142274 thumb_func_end sub_814217C thumb_func_start sub_8142274 sub_8142274: @ 8142274 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _081422A8 ldr r0, _081422AC str r0, [r1] movs r0, 0x3 bl sub_8125D44 movs r0, 0x37 bl audio_play ldr r1, _081422B0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _081422B4 str r1, [r0] movs r1, 0x20 strh r1, [r0, 0xE] pop {r4} pop {r0} bx r0 .align 2, 0 _081422A8: .4byte 0x03005ebc _081422AC: .4byte sub_8141FC4 _081422B0: .4byte 0x03004b20 _081422B4: .4byte sub_81422B8 thumb_func_end sub_8142274 thumb_func_start sub_81422B8 sub_81422B8: @ 81422B8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _081422D8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrh r2, [r1, 0xE] movs r3, 0xE ldrsh r0, [r1, r3] cmp r0, 0 beq _081422DC subs r0, r2, 0x1 strh r0, [r1, 0xE] b _081422E0 .align 2, 0 _081422D8: .4byte 0x03004b20 _081422DC: ldr r0, _081422E4 str r0, [r1] _081422E0: pop {r0} bx r0 .align 2, 0 _081422E4: .4byte sub_81422E8 thumb_func_end sub_81422B8 thumb_func_start sub_81422E8 sub_81422E8: @ 81422E8 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _08142314 adds r0, r5, 0 bl SetUpWindowConfig adds r0, r5, 0 bl sub_8071C4C ldr r1, _08142318 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0814231C str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08142314: .4byte gWindowConfig_81E7198 _08142318: .4byte 0x03004b20 _0814231C: .4byte sub_8142320 thumb_func_end sub_81422E8 thumb_func_start sub_8142320 sub_8142320: @ 8142320 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 lsls r0, 24 lsrs r7, r0, 24 ldr r2, _08142350 ldr r0, _08142354 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 ldrh r6, [r1, 0xA] lsls r0, r6, 2 adds r0, r6 lsls r0, 2 adds r4, r0, r2 movs r2, 0xC ldrsh r0, [r1, r2] cmp r0, 0x3 ble _0814235C ldr r1, _08142358 b _0814235E .align 2, 0 _08142350: .4byte 0x0201c000 _08142354: .4byte 0x03004b20 _08142358: .4byte gUnknown_0840B534 _0814235C: ldr r1, _081423F0 _0814235E: lsls r2, r6, 3 adds r0, r2, r1 ldrh r5, [r0] adds r0, r1, 0x2 adds r0, r2, r0 ldrh r3, [r0] adds r0, r1, 0x4 adds r0, r2, r0 ldrh r0, [r0] mov r9, r0 adds r1, 0x6 adds r2, r1 ldrh r2, [r2] mov r8, r2 ldrh r0, [r4, 0x8] lsls r0, 23 lsrs r0, 23 lsls r1, r5, 16 asrs r1, 16 lsls r2, r3, 16 asrs r2, 16 ldr r3, [r4] str r3, [sp] ldr r3, [r4, 0x4] str r3, [sp, 0x4] adds r3, r6, 0 bl sub_81436BC lsls r0, 24 lsrs r0, 24 ldr r3, _081423F4 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r2, r1, r3 movs r4, 0 mov r5, r9 strh r5, [r2, 0x30] mov r5, r8 strh r5, [r2, 0x32] strh r4, [r2, 0x2E] adds r3, 0x1C adds r1, r3 ldr r2, _081423F8 str r2, [r1] ldr r5, _081423FC adds r1, r6, 0x5 lsls r1, 1 lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r1, r4 adds r2, r5, 0 adds r2, 0x8 adds r1, r2 strh r0, [r1] movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl Reset adds r4, r5 ldr r0, _08142400 str r0, [r4] add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081423F0: .4byte gUnknown_0840B564 _081423F4: .4byte 0x02020004 _081423F8: .4byte sub_81435DC _081423FC: .4byte 0x03004b20 _08142400: .4byte sub_8142404 thumb_func_end sub_8142320 thumb_func_start sub_8142404 sub_8142404: @ 8142404 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r4, _08142470 ldr r3, _08142474 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r5, r2, r3 ldrh r1, [r5, 0xA] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r6, r0, r4 ldr r4, _08142478 adds r1, 0x5 lsls r1, 1 adds r1, r2 adds r3, 0x8 adds r1, r3 movs r0, 0 ldrsh r1, [r1, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x2E ldrsh r0, [r0, r1] cmp r0, 0 beq _0814246A ldrh r2, [r6, 0x8] ldr r0, _0814247C ands r0, r2 movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _08142458 lsls r0, r2, 23 lsrs r0, 23 movs r1, 0 bl cry_related _08142458: adds r0, r6, 0 movs r1, 0 movs r2, 0xE bl sub_8143088 movs r0, 0x78 strh r0, [r5, 0xE] ldr r0, _08142480 str r0, [r5] _0814246A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08142470: .4byte 0x0201c000 _08142474: .4byte 0x03004b20 _08142478: .4byte 0x02020004 _0814247C: .4byte 0x000001ff _08142480: .4byte sub_8142484 thumb_func_end sub_8142404 thumb_func_start sub_8142484 sub_8142484: @ 8142484 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r2, _081424BC ldr r1, _081424C0 lsls r0, r5, 2 adds r0, r5 lsls r6, r0, 3 adds r4, r6, r1 ldrh r3, [r4, 0xA] lsls r0, r3, 2 adds r0, r3 lsls r0, 2 adds r0, r2 mov r9, r0 ldrh r2, [r4, 0xE] movs r7, 0xE ldrsh r0, [r4, r7] mov r12, r1 cmp r0, 0 beq _081424C4 subs r0, r2, 0x1 strh r0, [r4, 0xE] b _0814255C .align 2, 0 _081424BC: .4byte 0x0201c000 _081424C0: .4byte 0x03004b20 _081424C4: ldr r2, _0814253C ldr r0, _08142540 mov r8, r0 adds r0, r3, 0x5 lsls r0, 1 adds r0, r6 mov r1, r12 adds r1, 0x8 adds r6, r0, r1 movs r7, 0 ldrsh r1, [r6, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 ldrb r0, [r0, 0x5] lsrs r0, 4 movs r1, 0x80 lsls r1, 9 lsls r1, r0 ldr r3, [r2] orrs r3, r1 str r3, [r2] ldrh r2, [r4, 0xA] movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x4 bgt _08142550 mov r7, r9 ldrh r1, [r7, 0x1C] ldr r0, _08142544 ands r0, r1 cmp r0, 0 beq _08142550 adds r0, r2, 0x1 strh r0, [r4, 0xA] ldr r0, _08142548 str r0, [sp] adds r0, r3, 0 movs r1, 0 movs r2, 0xC movs r3, 0xC bl BeginNormalPaletteFade movs r0, 0 ldrsh r1, [r6, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x5] ldr r0, _0814254C str r0, [r4] b _0814255C .align 2, 0 _0814253C: .4byte 0x0203931c _08142540: .4byte 0x02020004 _08142544: .4byte 0x000001ff _08142548: .4byte 0x0000735f _0814254C: .4byte sub_8142320 _08142550: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 add r0, r12 ldr r1, _0814256C str r1, [r0] _0814255C: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0814256C: .4byte sub_8142570 thumb_func_end sub_8142484 thumb_func_start sub_8142570 sub_8142570: @ 8142570 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08142604 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0 bl BeginNormalPaletteFade movs r3, 0 lsls r1, r4, 2 adds r0, r1, r4 lsls r5, r0, 3 ldr r0, _08142608 mov r12, r0 mov r8, r1 ldr r6, _0814260C movs r7, 0xD negs r7, r7 _0814259E: adds r0, r3, 0x5 lsls r0, 1 adds r0, r5 mov r2, r12 adds r1, r0, r2 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0xFF beq _081425C0 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r2, [r1, 0x5] adds r0, r7, 0 ands r0, r2 strb r0, [r1, 0x5] _081425C0: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x5 bls _0814259E movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl Reset movs r0, 0 movs r1, 0xF bl sub_8143068 movs r0, 0x69 bl audio_play ldr r1, _08142610 mov r2, r8 adds r0, r2, r4 lsls r0, 3 adds r0, r1 movs r1, 0xC8 lsls r1, 1 strh r1, [r0, 0xE] ldr r1, _08142614 str r1, [r0] add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08142604: .4byte 0xffff0000 _08142608: .4byte 0x03004b28 _0814260C: .4byte 0x02020004 _08142610: .4byte 0x03004b20 _08142614: .4byte sub_8142618 thumb_func_end sub_8142570 thumb_func_start sub_8142618 sub_8142618: @ 8142618 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r7, _08142658 lsls r4, r6, 2 adds r0, r4, r6 lsls r5, r0, 3 adds r1, r5, r7 ldrh r2, [r1, 0xE] movs r3, 0xE ldrsh r0, [r1, r3] cmp r0, 0 beq _0814265C subs r2, 0x1 strh r2, [r1, 0xE] movs r0, 0x3 ands r0, r2 cmp r0, 0 bne _081426D2 lsls r0, r2, 16 asrs r0, 16 cmp r0, 0x6E ble _081426D2 bl sub_81438C4 b _081426D2 .align 2, 0 _08142658: .4byte 0x03004b20 _0814265C: movs r3, 0 mov r9, r4 ldr r0, _081426E4 mov r10, r0 adds r4, r5, 0 adds r7, 0x8 mov r8, r7 ldr r7, _081426E8 movs r1, 0xD negs r1, r1 mov r12, r1 movs r5, 0x4 _08142674: adds r0, r3, 0x5 lsls r0, 1 adds r0, r4 mov r2, r8 adds r1, r0, r2 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0xFF beq _08142698 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 ldrb r2, [r1, 0x5] mov r0, r12 ands r0, r2 orrs r0, r5 strb r0, [r1, 0x5] _08142698: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x5 bls _08142674 mov r3, r10 ldr r0, [r3] ldr r1, _081426EC str r1, [sp] movs r1, 0 movs r2, 0xC movs r3, 0xC bl BeginNormalPaletteFade movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl Reset ldr r1, _081426F0 mov r2, r9 adds r0, r2, r6 lsls r0, 3 adds r0, r1 movs r1, 0x7 strh r1, [r0, 0xE] ldr r1, _081426F4 str r1, [r0] _081426D2: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081426E4: .4byte 0x0203931c _081426E8: .4byte 0x02020004 _081426EC: .4byte 0x0000735f _081426F0: .4byte 0x03004b20 _081426F4: .4byte sub_81426F8 thumb_func_end sub_8142618 thumb_func_start sub_81426F8 sub_81426F8: @ 81426F8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _08142718 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r2, r1, r2 ldrh r1, [r2, 0xE] movs r3, 0xE ldrsh r0, [r2, r3] cmp r0, 0xF ble _08142720 ldr r0, _0814271C str r0, [r2] b _0814272E .align 2, 0 _08142718: .4byte 0x03004b20 _0814271C: .4byte sub_8142738 _08142720: adds r0, r1, 0x1 strh r0, [r2, 0xE] ldr r1, _08142734 movs r3, 0xE ldrsh r0, [r2, r3] lsls r0, 8 strh r0, [r1] _0814272E: pop {r0} bx r0 .align 2, 0 _08142734: .4byte REG_BLDALPHA thumb_func_end sub_81426F8 thumb_func_start sub_8142738 sub_8142738: @ 8142738 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r1, 0x80 lsls r1, 19 movs r2, 0xCA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r4, _08142784 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C ldr r0, _08142788 ldrb r0, [r0, 0x8] movs r1, 0x78 movs r2, 0x48 movs r3, 0x6 bl sub_81437A4 ldr r2, _0814278C lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r2 strh r0, [r1, 0x10] movs r0, 0x78 strh r0, [r1, 0xE] ldr r0, _08142790 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08142784: .4byte gWindowConfig_81E71B4 _08142788: .4byte gSaveBlock2 _0814278C: .4byte 0x03004b20 _08142790: .4byte sub_8142794 thumb_func_end sub_8142738 thumb_func_start sub_8142794 sub_8142794: @ 8142794 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _081427B4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r1, [r4, 0xE] movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0 beq _081427B8 subs r0, r1, 0x1 strh r0, [r4, 0xE] b _0814280A .align 2, 0 _081427B4: .4byte 0x03004b20 _081427B8: ldr r2, _081427D8 movs r3, 0x10 ldrsh r1, [r4, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 ldrh r2, [r1, 0x20] movs r3, 0x20 ldrsh r0, [r1, r3] cmp r0, 0xA0 beq _081427DC adds r0, r2, 0x1 strh r0, [r1, 0x20] b _0814280A .align 2, 0 _081427D8: .4byte 0x02020004 _081427DC: movs r0, 0x1 movs r1, 0x2 movs r2, 0xF movs r3, 0x9 bl DrawDefaultWindow movs r0, 0x1 movs r1, 0x2 bl sub_8143300 movs r0, 0x2 movs r1, 0xE movs r2, 0x1B movs r3, 0x13 bl DrawDefaultWindow ldr r0, _08142810 movs r1, 0x4 movs r2, 0xF bl Print ldr r0, _08142814 str r0, [r4] _0814280A: pop {r4} pop {r0} bx r0 .align 2, 0 _08142810: .4byte gUnknown_0840E525 _08142814: .4byte sub_8142818 thumb_func_end sub_8142794 thumb_func_start sub_8142818 sub_8142818: @ 8142818 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08142844 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0814283E movs r0, 0x4 bl play_sound_effect ldr r0, _08142848 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0814284C str r0, [r1] _0814283E: pop {r4} pop {r0} bx r0 .align 2, 0 _08142844: .4byte 0x03001770 _08142848: .4byte 0x03004b20 _0814284C: .4byte sub_8142850 thumb_func_end sub_8142818 thumb_func_start sub_8142850 sub_8142850: @ 8142850 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _08142890 ldr r1, _08142894 movs r2, 0x80 lsls r2, 2 bl CpuSet movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r1, 0x8 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _08142898 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0814289C str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08142890: .4byte 0x0202eec8 _08142894: .4byte 0x0202eac8 _08142898: .4byte 0x03004b20 _0814289C: .4byte sub_81428A0 thumb_func_end sub_8142850 thumb_func_start sub_81428A0 sub_81428A0: @ 81428A0 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _081428C4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081428BE adds r0, r2, 0 bl DestroyTask ldr r0, _081428C8 bl SetMainCallback2 _081428BE: pop {r0} bx r0 .align 2, 0 _081428C4: .4byte 0x0202f388 _081428C8: .4byte sub_81439D0 thumb_func_end sub_81428A0 thumb_func_start sub_81428CC sub_81428CC: @ 81428CC push {r4,r5,lr} ldr r0, _081428E4 ldr r1, _081428E8 adds r0, r1 ldrb r0, [r0] cmp r0, 0x5 bhi _08142908 lsls r0, 2 ldr r1, _081428EC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081428E4: .4byte 0x03001770 _081428E8: .4byte 0x0000043c _081428EC: .4byte _081428F0 .align 2, 0 _081428F0: .4byte _08142908 .4byte _08142928 .4byte _0814293C .4byte _08142980 .4byte _081429C0 .4byte _081429EC _08142908: movs r0, 0 bl SetVBlankCallback bl sub_81433E0 ldr r0, _08142920 ldr r2, _08142924 adds r0, r2 movs r1, 0x1 strb r1, [r0] b _08142A12 .align 2, 0 _08142920: .4byte 0x03001770 _08142924: .4byte 0x0000043c _08142928: bl sub_8143570 ldr r1, _08142934 ldr r3, _08142938 adds r1, r3 b _081429DC .align 2, 0 _08142934: .4byte 0x03001770 _08142938: .4byte 0x0000043c _0814293C: ldr r0, _08142968 bl SetVBlankCallback ldr r3, _0814296C ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _08142970 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08142974 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r1, _08142978 ldr r4, _0814297C adds r1, r4 b _081429DC .align 2, 0 _08142968: .4byte sub_8141E38 _0814296C: .4byte 0x04000208 _08142970: .4byte 0x04000200 _08142974: .4byte REG_DISPSTAT _08142978: .4byte 0x03001770 _0814297C: .4byte 0x0000043c _08142980: ldr r0, _081429AC movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] bl sub_81435B8 ldr r0, _081429B0 adds r2, r0, 0 ldr r1, _081429B4 ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3,r5} stm r2!, {r3,r5} bl sub_80C5CD4 ldr r1, _081429B8 ldr r4, _081429BC adds r1, r4 b _081429DC .align 2, 0 _081429AC: .4byte REG_BLDCNT _081429B0: .4byte 0x0201c000 _081429B4: .4byte gUnknown_0840B57C _081429B8: .4byte 0x03001770 _081429BC: .4byte 0x0000043c _081429C0: bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade bl sub_80C5DCC lsls r0, 24 cmp r0, 0 beq _08142A12 ldr r1, _081429E4 ldr r5, _081429E8 adds r1, r5 _081429DC: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08142A12 .align 2, 0 _081429E4: .4byte 0x03001770 _081429E8: .4byte 0x0000043c _081429EC: ldr r1, _08142A18 ldr r2, _08142A1C adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r3, 0xE2 lsls r3, 3 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0 strh r0, [r1] ldr r0, _08142A20 movs r1, 0 bl CreateTask ldr r0, _08142A24 bl SetMainCallback2 _08142A12: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08142A18: .4byte REG_BLDCNT _08142A1C: .4byte 0x00003f42 _08142A20: .4byte sub_8142A28 _08142A24: .4byte sub_8141E4C thumb_func_end sub_81428CC thumb_func_start sub_8142A28 sub_8142A28: @ 8142A28 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x3 bl sub_8125EC8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08142A54 ldr r0, _08142A4C lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _08142A50 str r0, [r1] b _08142AEA .align 2, 0 _08142A4C: .4byte 0x03004b20 _08142A50: .4byte sub_8142FEC _08142A54: ldr r2, _08142A8C movs r3, 0 ldrh r1, [r2, 0x8] ldr r4, _08142A90 adds r0, r4, 0 ands r0, r1 ldr r7, _08142A94 lsls r6, r5, 2 cmp r0, 0 beq _08142A7E _08142A68: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 adds r2, 0x78 cmp r3, 0x31 bhi _08142A98 ldrh r1, [r2, 0x8] adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _08142A68 _08142A7E: cmp r3, 0x31 bhi _08142A98 adds r0, r6, r5 lsls r0, 3 adds r0, r7 subs r1, r3, 0x1 b _08142AA0 .align 2, 0 _08142A8C: .4byte 0x0201e000 _08142A90: .4byte 0x000001ff _08142A94: .4byte 0x03004b20 _08142A98: adds r0, r6, r5 lsls r0, 3 adds r0, r7 movs r1, 0x31 _08142AA0: strh r1, [r0, 0x8] movs r0, 0xA bl sub_8053108 ldr r2, _08142AF0 adds r1, r6, r5 lsls r1, 3 adds r1, r2 strh r0, [r1, 0xA] movs r3, 0 ldr r7, _08142AF4 ldr r4, _08142AF8 _08142AB8: lsls r1, r3, 1 adds r2, r1, r7 adds r0, r3, 0x3 strh r0, [r2] adds r1, r4 adds r0, 0x11 strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x10 bls _08142AB8 ldr r4, _08142AFC adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C ldr r1, _08142AF0 adds r0, r6, r5 lsls r0, 3 adds r0, r1 ldr r1, _08142B00 str r1, [r0] _08142AEA: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08142AF0: .4byte 0x03004b20 _08142AF4: .4byte 0x0600381a _08142AF8: .4byte 0x0600385a _08142AFC: .4byte gWindowConfig_81E7198 _08142B00: .4byte sub_8142B04 thumb_func_end sub_8142A28 thumb_func_start sub_8142B04 sub_8142B04: @ 8142B04 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r3, _08142BB8 movs r5, 0 ldr r1, _08142BBC lsls r0, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r6, r1, 0 ldr r2, _08142BC0 cmp r5, r0 bge _08142B3E adds r1, r0, 0 _08142B32: adds r3, 0x78 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r1 blt _08142B32 _08142B3E: adds r4, r3, 0 movs r0, 0 str r0, [r2] mov r5, r8 lsls r2, r5, 2 adds r1, r2, r5 lsls r1, 3 adds r1, r6 strh r0, [r1, 0xC] strh r0, [r1, 0x10] movs r5, 0 str r2, [sp, 0xC] ldr r6, _08142BC4 adds r2, r1, 0 _08142B5A: ldrh r1, [r4, 0x8] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08142B6A ldrh r0, [r2, 0x10] adds r0, 0x1 strh r0, [r2, 0x10] _08142B6A: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r4, 0x14 cmp r5, 0x5 bls _08142B5A adds r4, r3, 0 movs r5, 0 ldr r1, _08142BBC ldr r0, [sp, 0xC] add r0, r8 lsls r7, r0, 3 adds r6, r7, r1 str r6, [sp, 0x8] adds r1, 0x8 mov r9, r1 ldr r0, _08142BC8 mov r10, r0 _08142B8E: ldrh r1, [r4, 0x8] ldr r2, _08142BC4 adds r0, r2, 0 ands r0, r1 adds r6, r1, 0 cmp r0, 0 beq _08142C30 ldr r1, [sp, 0x8] movs r2, 0x10 ldrsh r0, [r1, r2] cmp r0, 0x3 ble _08142BD4 lsls r1, r5, 3 ldr r0, _08142BCC adds r0, 0x4 adds r0, r1, r0 ldrh r3, [r0] ldr r0, _08142BD0 adds r1, r0 b _08142BE2 .align 2, 0 _08142BB8: .4byte 0x0201e000 _08142BBC: .4byte 0x03004b20 _08142BC0: .4byte 0x0203931c _08142BC4: .4byte 0x000001ff _08142BC8: .4byte gUnknown_0840B564 _08142BCC: .4byte gUnknown_0840B534 _08142BD0: .4byte gUnknown_0840B53A _08142BD4: lsls r1, r5, 3 mov r0, r10 adds r0, 0x4 adds r0, r1, r0 ldrh r3, [r0] ldr r2, _08142C28 adds r1, r2 _08142BE2: ldrh r2, [r1] lsls r0, r6, 23 lsrs r0, 23 lsls r1, r3, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 ldr r3, [r4] str r3, [sp] ldr r3, [r4, 0x4] str r3, [sp, 0x4] adds r3, r5, 0 bl sub_81436BC lsls r0, 16 lsrs r0, 16 ldr r2, _08142C2C lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r3, [r1, 0x5] movs r6, 0xD negs r6, r6 adds r2, r6, 0 ands r3, r2 movs r2, 0x4 orrs r3, r2 strb r3, [r1, 0x5] adds r1, r5, 0x5 lsls r1, 1 adds r1, r7 add r1, r9 strh r0, [r1] b _08142C3C .align 2, 0 _08142C28: .4byte gUnknown_0840B56A _08142C2C: .4byte 0x02020004 _08142C30: adds r0, r5, 0x5 lsls r0, 1 adds r0, r7 add r0, r9 movs r1, 0xFF strh r1, [r0] _08142C3C: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r4, 0x14 cmp r5, 0x5 bls _08142B8E ldr r0, _08142CB0 ldr r2, _08142CB4 movs r1, 0xC bl BlendPalettes ldr r3, _08142CB8 ldr r1, _08142CBC adds r0, r3, 0 bl StringCopy adds r3, r0, 0 movs r5, 0xFC strb r5, [r3] movs r0, 0x14 strb r0, [r3, 0x1] movs r0, 0x6 strb r0, [r3, 0x2] adds r3, 0x3 ldr r0, _08142CC0 ldr r4, [sp, 0xC] add r4, r8 lsls r4, 3 adds r4, r0 movs r0, 0xA ldrsh r1, [r4, r0] adds r0, r3, 0 bl ConvertIntToDecimalString adds r3, r0, 0 strb r5, [r3] movs r0, 0x13 strb r0, [r3, 0x1] movs r0, 0xF0 strb r0, [r3, 0x2] movs r0, 0xFF strb r0, [r3, 0x3] ldr r0, _08142CB8 movs r1, 0 movs r2, 0 bl Print ldr r0, _08142CC4 str r0, [r4] add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08142CB0: .4byte 0xffff0000 _08142CB4: .4byte 0x0000735f _08142CB8: .4byte 0x020231cc _08142CBC: .4byte gUnknown_0840E513 _08142CC0: .4byte 0x03004b20 _08142CC4: .4byte sub_8142CC8 thumb_func_end sub_8142B04 thumb_func_start sub_8142CC8 sub_8142CC8: @ 8142CC8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08142DD0 mov r8, r0 movs r3, 0 ldr r1, _08142DD4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] cmp r3, r0 bge _08142CFE adds r1, r0, 0 _08142CF0: movs r0, 0x78 add r8, r0 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r1 blt _08142CF0 _08142CFE: movs r3, 0 lsls r6, r4, 2 adds r0, r6, r4 lsls r5, r0, 3 ldr r1, _08142DD8 mov r10, r1 ldr r2, _08142DDC mov r12, r2 movs r0, 0xD negs r0, r0 mov r9, r0 movs r7, 0x4 _08142D16: adds r0, r3, 0x5 lsls r0, 1 adds r0, r5 add r0, r10 ldrh r1, [r0] cmp r1, 0xFF beq _08142D36 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r12 ldrb r2, [r0, 0x5] mov r1, r9 ands r1, r2 orrs r1, r7 strb r1, [r0, 0x5] _08142D36: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x5 bls _08142D16 adds r1, r6, r4 lsls r1, 3 ldr r2, _08142DD4 adds r5, r1, r2 movs r2, 0xC ldrsh r0, [r5, r2] adds r0, 0x5 lsls r0, 1 adds r0, r1 ldr r1, _08142DD4 adds r1, 0x8 adds r0, r1 ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08142DDC adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 strb r1, [r0, 0x5] lsrs r1, 4 movs r0, 0x80 lsls r0, 9 lsls r0, r1 ldr r1, _08142DE0 eors r0, r1 ldr r2, _08142DE4 str r0, [r2] ldr r2, _08142DE8 movs r1, 0xC bl BlendPalettesUnfaded movs r0, 0xC ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 mov r1, r8 adds r4, r1, r0 ldrh r1, [r4, 0x8] ldr r0, _08142DEC ands r0, r1 movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _08142DB2 bl sub_8075398 ldrh r0, [r4, 0x8] lsls r0, 23 lsrs r0, 23 movs r1, 0 bl cry_related _08142DB2: adds r0, r4, 0 movs r1, 0 movs r2, 0xE bl sub_8143088 ldr r0, _08142DF0 str r0, [r5] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08142DD0: .4byte 0x0201e000 _08142DD4: .4byte 0x03004b20 _08142DD8: .4byte 0x03004b28 _08142DDC: .4byte 0x02020004 _08142DE0: .4byte 0xffff0000 _08142DE4: .4byte 0x0203931c _08142DE8: .4byte 0x0000735f _08142DEC: .4byte 0x000001ff _08142DF0: .4byte sub_8142DF4 thumb_func_end sub_8142CC8 thumb_func_start sub_8142DF4 sub_8142DF4: @ 8142DF4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _08142E88 ldrh r2, [r1, 0x2E] movs r0, 0x1 ands r0, r2 adds r3, r1, 0 cmp r0, 0 beq _08142EC4 ldr r7, _08142E8C lsls r0, r6, 2 adds r1, r0, r6 lsls r3, r1, 3 adds r4, r3, r7 ldrh r2, [r4, 0x8] movs r5, 0x8 ldrsh r1, [r4, r5] mov r8, r0 cmp r1, 0 beq _08142E98 subs r0, r2, 0x1 strh r0, [r4, 0x8] movs r5, 0 adds r7, 0x8 mov r9, r7 adds r7, r3, 0 _08142E30: adds r0, r5, 0x5 lsls r0, 1 adds r0, r7 add r0, r9 ldrb r1, [r0] cmp r1, 0xFF beq _08142E5E ldr r0, _08142E90 lsls r4, r1, 4 adds r4, r1 lsls r4, 2 adds r4, r0 ldrb r0, [r4, 0x5] lsrs r0, 4 bl GetSpritePaletteTagByPaletteNum lsls r0, 16 lsrs r0, 16 bl FreeSpritePaletteByTag adds r0, r4, 0 bl DestroySprite _08142E5E: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x5 bls _08142E30 ldr r0, _08142E8C mov r2, r8 adds r1, r2, r6 lsls r1, 3 adds r1, r0 ldrh r2, [r1, 0xA] movs r3, 0xA ldrsh r0, [r1, r3] cmp r0, 0 beq _08142E80 subs r0, r2, 0x1 strh r0, [r1, 0xA] _08142E80: ldr r0, _08142E94 str r0, [r1] b _08142F64 .align 2, 0 _08142E88: .4byte 0x03001770 _08142E8C: .4byte 0x03004b20 _08142E90: .4byte 0x02020004 _08142E94: .4byte sub_8142B04 _08142E98: bl sub_80753C4 lsls r0, 24 cmp r0, 0 beq _08142EB2 bl sub_8075398 ldr r0, _08142EB8 ldr r1, _08142EBC movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl _08142EB2: ldr r0, _08142EC0 str r0, [r4] b _08142F64 .align 2, 0 _08142EB8: .4byte 0x03007380 _08142EBC: .4byte 0x0000ffff _08142EC0: .4byte sub_8142F78 _08142EC4: movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _08142F08 bl sub_80753C4 lsls r0, 24 cmp r0, 0 beq _08142EE6 bl sub_8075398 ldr r0, _08142EF8 ldr r1, _08142EFC movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl _08142EE6: ldr r0, _08142F00 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, _08142F04 str r0, [r1] b _08142F64 .align 2, 0 _08142EF8: .4byte 0x03007380 _08142EFC: .4byte 0x0000ffff _08142F00: .4byte 0x03004b20 _08142F04: .4byte sub_8142F78 _08142F08: movs r0, 0x40 ands r0, r2 cmp r0, 0 beq _08142F38 ldr r0, _08142F30 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldrh r2, [r1, 0xC] movs r4, 0xC ldrsh r0, [r1, r4] cmp r0, 0 beq _08142F38 subs r0, r2, 0x1 strh r0, [r1, 0xC] ldr r0, _08142F34 str r0, [r1] b _08142F64 .align 2, 0 _08142F30: .4byte 0x03004b20 _08142F34: .4byte sub_8142CC8 _08142F38: ldrh r1, [r3, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08142F64 ldr r1, _08142F70 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r2, r0, r1 movs r5, 0xC ldrsh r1, [r2, r5] movs r3, 0x10 ldrsh r0, [r2, r3] subs r0, 0x1 cmp r1, r0 bge _08142F64 ldrh r0, [r2, 0xC] adds r0, 0x1 strh r0, [r2, 0xC] ldr r0, _08142F74 str r0, [r2] _08142F64: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08142F70: .4byte 0x03004b20 _08142F74: .4byte sub_8142CC8 thumb_func_end sub_8142DF4 thumb_func_start sub_8142F78 sub_8142F78: @ 8142F78 push {r4-r6,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _08142FB4 ldr r1, _08142FB8 movs r2, 0x80 lsls r2, 2 bl CpuSet ldr r0, _08142FBC adds r2, r0, 0 ldr r1, _08142FC0 ldm r1!, {r3,r5,r6} stm r2!, {r3,r5,r6} ldm r1!, {r3,r5} stm r2!, {r3,r5} bl sub_80C5E38 ldr r1, _08142FC4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08142FC8 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08142FB4: .4byte 0x0202eec8 _08142FB8: .4byte 0x0202eac8 _08142FBC: .4byte 0x0201c000 _08142FC0: .4byte gUnknown_0840B57C _08142FC4: .4byte 0x03004b20 _08142FC8: .4byte sub_8142FCC thumb_func_end sub_8142F78 thumb_func_start sub_8142FCC sub_8142FCC: @ 8142FCC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_80C5F98 lsls r0, 24 cmp r0, 0 beq _08142FE6 adds r0, r4, 0 bl DestroyTask bl sub_810D62C _08142FE6: pop {r4} pop {r0} bx r0 thumb_func_end sub_8142FCC thumb_func_start sub_8142FEC sub_8142FEC: @ 8142FEC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x2 movs r1, 0xE movs r2, 0x1B movs r3, 0x13 bl DrawDefaultWindow ldr r0, _08143020 movs r1, 0x3 movs r2, 0xF bl AddTextPrinterWithCallbackForMessage ldr r1, _08143024 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08143028 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08143020: .4byte gUnknown_0840E4F1 _08143024: .4byte 0x03004b20 _08143028: .4byte sub_814302C thumb_func_end sub_8142FEC thumb_func_start sub_814302C sub_814302C: @ 814302C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8072080 lsls r0, 24 cmp r0, 0 beq _08143056 ldr r0, _0814305C ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08143056 ldr r0, _08143060 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08143064 str r0, [r1] _08143056: pop {r4} pop {r0} bx r0 .align 2, 0 _0814305C: .4byte 0x03001770 _08143060: .4byte 0x03004b20 _08143064: .4byte sub_8142F78 thumb_func_end sub_814302C thumb_func_start sub_8143068 sub_8143068: @ 8143068 push {lr} lsls r2, r1, 24 ldr r0, _08143084 movs r1, 0x80 lsls r1, 17 adds r2, r1 lsrs r2, 24 movs r1, 0 movs r3, 0xF0 bl Free pop {r0} bx r0 .align 2, 0 _08143084: .4byte gUnknown_0840E44F thumb_func_end sub_8143068 thumb_func_start sub_8143088 sub_8143088: @ 8143088 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 mov r9, r0 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r2, 24 lsrs r2, 24 mov r10, r2 ldr r7, _08143188 movs r0, 0xFC strb r0, [r7] movs r0, 0x13 strb r0, [r7, 0x1] movs r0, 0x28 strb r0, [r7, 0x2] movs r0, 0xFF strb r0, [r7, 0x3] mov r0, r9 ldrh r2, [r0, 0x8] ldr r0, _0814318C ands r0, r2 movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _081430EA lsls r0, r2, 23 lsrs r0, 23 bl sub_80406D8 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _08143190 cmp r6, r0 beq _081430EA ldr r1, _08143194 adds r0, r7, 0 bl StringCopy adds r7, r0, 0 adds r1, r6, 0 movs r2, 0x2 movs r3, 0x3 bl ConvertIntToDecimalStringN _081430EA: ldr r5, _08143188 mov r1, r8 adds r1, 0x4 lsls r1, 24 lsrs r1, 24 mov r4, r10 adds r4, 0x1 lsls r2, r4, 24 lsrs r2, 24 adds r0, r5, 0 bl Print adds r7, r5, 0 movs r3, 0 mov r1, r9 ldrb r0, [r1, 0xA] str r4, [sp] mov r2, r8 adds r2, 0x9 str r2, [sp, 0xC] mov r6, r10 adds r6, 0x3 str r6, [sp, 0x8] cmp r0, 0xFF beq _0814313A mov r2, r9 adds r2, 0xA _08143120: adds r1, r7, r3 adds r0, r2, r3 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x9 bhi _0814313A adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0xFF bne _08143120 _0814313A: adds r7, r3 movs r2, 0xFF strb r2, [r7] mov r1, r9 ldrh r0, [r1, 0x8] ldr r1, _0814318C ands r1, r0 movs r0, 0xCE lsls r0, 1 cmp r1, r0 bne _08143198 movs r0, 0xFC strb r0, [r7] movs r0, 0x13 strb r0, [r7, 0x1] movs r0, 0xA0 strb r0, [r7, 0x2] strb r2, [r7, 0x3] ldr r0, _08143188 ldr r2, [sp, 0xC] lsls r1, r2, 24 lsrs r1, 24 ldr r3, [sp] lsls r2, r3, 24 lsrs r2, 24 bl Print ldr r6, [sp, 0x8] lsls r1, r6, 24 lsrs r1, 24 mov r3, r10 adds r3, 0x4 lsls r3, 24 lsrs r3, 24 movs r0, 0 movs r2, 0x1D bl Reset b _081432E4 .align 2, 0 _08143188: .4byte 0x020231cc _0814318C: .4byte 0x000001ff _08143190: .4byte 0x0000ffff _08143194: .4byte gUnknown_0840E547 _08143198: movs r0, 0xFC strb r0, [r7] movs r0, 0x13 strb r0, [r7, 0x1] movs r0, 0x3E strb r0, [r7, 0x2] adds r7, 0x3 movs r0, 0xBA strb r0, [r7] adds r7, 0x1 movs r3, 0 ldr r2, _08143238 mov r1, r9 ldrh r0, [r1, 0x8] lsls r0, 23 lsrs r0, 23 movs r1, 0xB muls r0, r1 adds r0, r2 ldrb r0, [r0] mov r6, r8 adds r6, 0x7 str r6, [sp, 0x4] mov r1, r8 adds r1, 0xD str r1, [sp, 0x10] cmp r0, 0xFF beq _08143204 adds r5, r2, 0 movs r4, 0xB _081431D4: adds r1, r7, r3 mov r6, r9 ldrh r0, [r6, 0x8] lsls r0, 23 lsrs r0, 23 muls r0, r4 adds r0, r3, r0 adds r0, r5 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x9 bhi _08143204 ldrh r0, [r6, 0x8] lsls r0, 23 lsrs r0, 23 muls r0, r4 adds r0, r3, r0 adds r0, r2 ldrb r0, [r0] cmp r0, 0xFF bne _081431D4 _08143204: adds r7, r3 movs r0, 0 strb r0, [r7] adds r7, 0x1 mov r1, r9 ldrh r0, [r1, 0x8] ldr r1, _0814323C ands r1, r0 cmp r1, 0x20 beq _0814324A cmp r1, 0x1D beq _0814324A lsls r0, 23 lsrs r0, 23 mov r2, r9 ldr r1, [r2, 0x4] bl pokemon_species_get_gender_info lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08143240 cmp r0, 0xFE beq _08143244 b _0814324A .align 2, 0 _08143238: .4byte gSpeciesNames _0814323C: .4byte 0x000001ff _08143240: movs r0, 0xB5 b _08143246 _08143244: movs r0, 0xB6 _08143246: strb r0, [r7] adds r7, 0x1 _0814324A: movs r4, 0xFC strb r4, [r7] movs r3, 0x13 mov r8, r3 strb r3, [r7, 0x1] movs r0, 0xA0 strb r0, [r7, 0x2] movs r6, 0xFF mov r10, r6 strb r6, [r7, 0x3] ldr r5, _081432F4 ldr r0, [sp, 0xC] lsls r1, r0, 24 lsrs r1, 24 ldr r3, [sp] lsls r2, r3, 24 lsrs r2, 24 adds r0, r5, 0 bl Print mov r6, r9 ldrb r0, [r6, 0x9] lsrs r6, r0, 1 ldr r1, _081432F8 adds r0, r5, 0 bl StringCopy adds r7, r0, 0 strb r4, [r7] movs r0, 0x14 strb r0, [r7, 0x1] movs r0, 0x6 strb r0, [r7, 0x2] adds r7, 0x3 adds r0, r7, 0 adds r1, r6, 0 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN adds r7, r0, 0 strb r4, [r7] mov r0, r8 strb r0, [r7, 0x1] movs r0, 0x30 strb r0, [r7, 0x2] mov r1, r10 strb r1, [r7, 0x3] ldr r2, [sp, 0x4] lsls r1, r2, 24 lsrs r1, 24 ldr r3, [sp, 0x8] lsls r4, r3, 24 lsrs r4, 24 adds r0, r5, 0 adds r2, r4, 0 bl Print mov r0, r9 ldrh r6, [r0] ldr r1, _081432FC adds r0, r5, 0 bl StringCopy adds r7, r0, 0 adds r1, r6, 0 movs r2, 0x2 movs r3, 0x5 bl ConvertIntToDecimalStringN ldr r2, [sp, 0x10] lsls r1, r2, 24 lsrs r1, 24 adds r0, r5, 0 adds r2, r4, 0 bl Print _081432E4: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081432F4: .4byte 0x020231cc _081432F8: .4byte gUnknown_0840E54C _081432FC: .4byte gUnknown_0840E551 thumb_func_end sub_8143088 thumb_func_start sub_8143300 sub_8143300: @ 8143300 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} adds r5, r0, 0 adds r4, r1, 0 lsls r5, 24 lsls r4, 24 ldr r0, _081433CC lsrs r1, r5, 24 mov r8, r1 movs r2, 0x80 lsls r2, 17 adds r5, r2 lsrs r5, 24 lsrs r6, r4, 24 adds r4, r2 lsrs r4, 24 adds r1, r5, 0 adds r2, r4, 0 bl Print ldr r0, _081433D0 mov r10, r0 movs r1, 0xE add r8, r1 mov r2, r8 lsls r2, 24 lsrs r2, 24 mov r8, r2 mov r1, r8 adds r2, r4, 0 bl PrintCoinsString ldr r0, _081433D4 adds r4, r6, 0x3 lsls r4, 24 lsrs r4, 24 adds r1, r5, 0 adds r2, r4, 0 bl Print mov r0, r10 ldrb r1, [r0, 0xA] ldrb r0, [r0, 0xB] lsls r0, 8 orrs r1, r0 ldr r2, _081433D8 mov r9, r2 mov r0, r9 movs r2, 0x2 movs r3, 0x5 bl ConvertIntToDecimalStringN mov r0, r9 mov r1, r8 adds r2, r4, 0 bl PrintCoinsString ldr r0, _081433DC adds r6, 0x5 lsls r6, 24 lsrs r6, 24 adds r1, r5, 0 adds r2, r6, 0 bl Print mov r0, r10 ldrh r1, [r0, 0xE] mov r0, r9 bl ConvertIntToDecimalString adds r2, r0, 0 movs r1, 0 strb r1, [r2] movs r0, 0xF0 strb r0, [r2, 0x1] strb r1, [r2, 0x2] adds r2, 0x3 mov r0, r10 ldrb r1, [r0, 0x10] adds r0, r2, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN adds r2, r0, 0 movs r0, 0xFF strb r0, [r2] mov r0, r9 mov r1, r8 adds r2, r6, 0 bl PrintCoinsString pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081433CC: .4byte gUnknown_0840E559 _081433D0: .4byte gSaveBlock2 _081433D4: .4byte gUnknown_0840E560 _081433D8: .4byte 0x020231cc _081433DC: .4byte gUnknown_0840DF8B thumb_func_end sub_8143300 thumb_func_start sub_81433E0 sub_81433E0: @ 81433E0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 movs r0, 0x80 lsls r0, 19 movs r1, 0 strh r1, [r0] adds r0, 0x8 strh r1, [r0] adds r0, 0x8 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x8 strh r1, [r0] adds r0, 0xA strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0xA strh r1, [r0] adds r0, 0xC strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0xC strh r1, [r0] adds r0, 0xE strh r1, [r0] adds r0, 0x2 strh r1, [r0] movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 add r0, sp, 0x4 mov r8, r0 ldr r1, _0814354C mov r9, r1 mov r2, sp movs r6, 0 ldr r1, _08143550 movs r5, 0x80 lsls r5, 5 ldr r7, _08143554 movs r0, 0x81 lsls r0, 24 mov r12, r0 _08143444: strh r6, [r2] mov r0, sp str r0, [r1] str r3, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r5 subs r4, r5 cmp r4, r5 bhi _08143444 strh r6, [r2] mov r2, sp str r2, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0xE0 lsls r0, 19 movs r3, 0x80 lsls r3, 3 movs r4, 0 str r4, [sp, 0x4] ldr r2, _08143550 mov r1, r8 str r1, [r2] str r0, [r2, 0x4] lsrs r0, r3, 2 movs r1, 0x85 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xA0 lsls r1, 19 mov r0, sp strh r4, [r0] str r0, [r2] str r1, [r2, 0x4] lsrs r3, 1 movs r0, 0x81 lsls r0, 24 orrs r3, r0 str r3, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xC0 lsls r1, 19 mov r0, r9 bl LZ77UnCompVram movs r1, 0 ldr r3, _08143558 movs r2, 0x1 _081434B2: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x3F bls _081434B2 movs r1, 0 ldr r5, _0814355C ldr r3, _08143560 movs r2, 0x1 _081434CA: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0xBF bls _081434CA movs r1, 0 ldr r4, _08143564 movs r3, 0x2 ldr r2, _08143568 _081434E2: lsls r0, r1, 1 adds r0, r4 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r2 bls _081434E2 adds r2, r5, 0 movs r3, 0x80 lsls r3, 7 mov r4, sp movs r6, 0 ldr r1, _08143550 movs r5, 0x80 lsls r5, 5 ldr r7, _08143554 movs r0, 0x81 lsls r0, 24 mov r12, r0 _0814350A: strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r5 subs r3, r5 cmp r3, r5 bhi _0814350A strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetPaletteFade ldr r0, _0814356C movs r1, 0 movs r2, 0x20 bl LoadPalette add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0814354C: .4byte gUnknown_08E8E8B0 _08143550: .4byte 0x040000d4 _08143554: .4byte 0x81000800 _08143558: .4byte 0x06003800 _0814355C: .4byte 0x02000000 _08143560: .4byte 0x06003b80 _08143564: .4byte 0x06003000 _08143568: .4byte 0x000003ff _0814356C: .4byte gUnknown_08E8EA78 thumb_func_end sub_81433E0 thumb_func_start sub_8143570 sub_8143570: @ 8143570 push {r4,lr} bl remove_some_task bl ResetTasks bl ResetSpriteData bl FreeAllSpritePalettes ldr r1, _081435A8 movs r0, 0x8 strb r0, [r1] ldr r0, _081435AC bl LoadCompressedObjectPic ldr r0, _081435B0 bl LoadCompressedObjectPalette ldr r4, _081435B4 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C pop {r4} pop {r0} bx r0 .align 2, 0 _081435A8: .4byte 0x030028f8 _081435AC: .4byte gUnknown_0840B514 _081435B0: .4byte gUnknown_0840B524 _081435B4: .4byte gWindowConfig_81E71B4 thumb_func_end sub_8143570 thumb_func_start sub_81435B8 sub_81435B8: @ 81435B8 ldr r1, _081435D8 movs r2, 0xE0 lsls r2, 3 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 subs r2, 0xFD adds r0, r2, 0 strh r0, [r1] subs r1, 0xE movs r2, 0xDA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] bx lr .align 2, 0 _081435D8: .4byte REG_BG1CNT thumb_func_end sub_81435B8 thumb_func_start sub_81435DC sub_81435DC: @ 81435DC push {r4,lr} adds r2, r0, 0 ldr r1, [r2, 0x20] ldr r0, [r2, 0x30] cmp r1, r0 beq _08143632 ldrh r3, [r2, 0x20] movs r1, 0x20 ldrsh r0, [r2, r1] movs r4, 0x30 ldrsh r1, [r2, r4] cmp r0, r1 bge _081435FC adds r0, r3, 0 adds r0, 0xF strh r0, [r2, 0x20] _081435FC: ldrh r3, [r2, 0x20] movs r4, 0x20 ldrsh r0, [r2, r4] cmp r0, r1 ble _0814360C adds r0, r3, 0 subs r0, 0xF strh r0, [r2, 0x20] _0814360C: ldrh r3, [r2, 0x22] movs r1, 0x22 ldrsh r0, [r2, r1] movs r4, 0x32 ldrsh r1, [r2, r4] cmp r0, r1 bge _08143620 adds r0, r3, 0 adds r0, 0xA strh r0, [r2, 0x22] _08143620: ldrh r3, [r2, 0x22] movs r4, 0x22 ldrsh r0, [r2, r4] cmp r0, r1 ble _0814363A adds r0, r3, 0 subs r0, 0xA strh r0, [r2, 0x22] b _0814363A _08143632: movs r0, 0x1 strh r0, [r2, 0x2E] ldr r0, _08143640 str r0, [r2, 0x1C] _0814363A: pop {r4} pop {r0} bx r0 .align 2, 0 _08143640: .4byte nullsub_81 thumb_func_end sub_81435DC thumb_func_start nullsub_81 nullsub_81: @ 8143644 bx lr thumb_func_end nullsub_81 thumb_func_start sub_8143648 sub_8143648: @ 8143648 push {r4-r7,lr} lsls r1, 24 ldr r4, _08143670 adds r3, r4, 0 ldr r2, _08143674 ldm r2!, {r5-r7} stm r3!, {r5-r7} ldm r2!, {r5-r7} stm r3!, {r5-r7} strh r0, [r4, 0x2] ldr r0, _08143678 lsrs r1, 22 adds r1, r0 ldr r0, [r1] str r0, [r4, 0xC] ldr r0, _0814367C str r0, [r4, 0x8] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08143670: .4byte 0x02024e8c _08143674: .4byte gUnknown_0840B6B8 _08143678: .4byte gUnknown_0840B69C _0814367C: .4byte gSpriteAnimTable_81E7C64 thumb_func_end sub_8143648 thumb_func_start sub_8143680 sub_8143680: @ 8143680 push {r4-r7,lr} lsls r1, 24 ldr r4, _081436AC adds r3, r4, 0 ldr r2, _081436B0 ldm r2!, {r5-r7} stm r3!, {r5-r7} ldm r2!, {r5-r7} stm r3!, {r5-r7} strh r0, [r4, 0x2] ldr r0, _081436B4 lsrs r1, 22 adds r1, r0 ldr r0, [r1] str r0, [r4, 0xC] ldr r0, _081436B8 ldr r0, [r0] str r0, [r4, 0x8] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081436AC: .4byte 0x02024e8c _081436B0: .4byte gUnknown_0840B6B8 _081436B4: .4byte gUnknown_0840B69C _081436B8: .4byte gUnknown_081EC2A4 thumb_func_end sub_8143680 thumb_func_start sub_81436BC sub_81436BC: @ 81436BC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 adds r6, r0, 0 mov r9, r1 mov r10, r2 mov r8, r3 ldr r7, [sp, 0x34] lsls r6, 16 lsrs r6, 16 mov r0, r9 lsls r0, 16 lsrs r0, 16 mov r9, r0 mov r1, r10 lsls r1, 16 lsrs r1, 16 mov r10, r1 mov r2, r8 lsls r2, 16 lsrs r2, 16 mov r8, r2 lsls r0, r6, 3 ldr r1, _08143790 adds r0, r1 ldr r1, _08143794 lsls r2, r6, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08143798 mov r12, r4 mov r5, r8 lsls r4, r5, 2 add r4, r12 ldr r4, [r4] str r4, [sp] str r6, [sp, 0x4] str r7, [sp, 0x8] movs r4, 0x1 str r4, [sp, 0xC] bl sub_800D378 adds r0, r6, 0 ldr r1, [sp, 0x30] adds r2, r7, 0 bl species_and_otid_get_pal lsls r4, r5, 4 movs r2, 0x80 lsls r2, 1 adds r1, r4, r2 lsls r1, 16 lsrs r1, 16 movs r2, 0x20 bl LoadCompressedPalette lsls r1, r5, 24 lsrs r1, 24 mov r0, r8 bl sub_8143648 ldr r0, _0814379C mov r5, r9 lsls r5, 16 asrs r5, 16 mov r9, r5 mov r1, r10 lsls r1, 16 asrs r1, 16 mov r10, r1 movs r3, 0xA mov r2, r8 subs r3, r2 lsls r3, 24 lsrs r3, 24 mov r1, r9 mov r2, r10 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _081437A0 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 ldrb r3, [r2, 0x5] movs r1, 0xF ands r1, r3 orrs r1, r4 strb r1, [r2, 0x5] add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08143790: .4byte gMonFrontPicTable _08143794: .4byte gMonFrontPicCoords _08143798: .4byte gUnknown_0840B5A0 _0814379C: .4byte 0x02024e8c _081437A0: .4byte 0x02020004 thumb_func_end sub_81436BC thumb_func_start sub_81437A4 sub_81437A4: @ 81437A4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r9, r1 mov r10, r2 adds r6, r3, 0 lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 mov r9, r1 lsls r2, 16 lsrs r2, 16 mov r10, r2 lsls r6, 16 lsrs r6, 16 lsls r7, r0, 3 ldr r1, _08143854 mov r8, r1 add r8, r7 ldr r1, _08143858 lsls r2, r0, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r5, _0814385C lsls r4, r6, 2 adds r4, r5 ldr r4, [r4] str r4, [sp] str r0, [sp, 0x4] mov r0, r8 bl DecompressPicFromTable_2 ldr r0, _08143860 adds r0, r7, r0 ldr r0, [r0] lsls r4, r6, 4 movs r2, 0x80 lsls r2, 1 adds r1, r4, r2 lsls r1, 16 lsrs r1, 16 movs r2, 0x20 bl LoadCompressedPalette lsls r1, r6, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_8143680 ldr r0, _08143864 mov r1, r9 lsls r1, 16 asrs r1, 16 mov r9, r1 mov r2, r10 lsls r2, 16 asrs r2, 16 mov r10, r2 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _08143868 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 ldrb r3, [r2, 0x5] movs r1, 0xF ands r1, r3 orrs r1, r4 strb r1, [r2, 0x5] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08143854: .4byte gTrainerFrontPicTable _08143858: .4byte gTrainerFrontPicCoords _0814385C: .4byte gUnknown_0840B5A0 _08143860: .4byte gTrainerFrontPicPaletteTable _08143864: .4byte 0x02024e8c _08143868: .4byte 0x02020004 thumb_func_end sub_81437A4 thumb_func_start sub_814386C sub_814386C: @ 814386C push {r4,r5,lr} adds r5, r0, 0 ldrh r1, [r5, 0x26] movs r2, 0x26 ldrsh r0, [r5, r2] cmp r0, 0x78 ble _08143882 adds r0, r5, 0 bl DestroySprite b _081438BA _08143882: adds r0, r1, 0x1 ldrh r1, [r5, 0x30] adds r0, r1 strh r0, [r5, 0x26] ldrh r4, [r5, 0x2E] lsls r4, 24 lsrs r4, 24 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 ands r0, r1 adds r0, 0x8 ldr r1, _081438C0 lsls r4, 1 adds r4, r1 movs r2, 0 ldrsh r1, [r4, r2] muls r0, r1 cmp r0, 0 bge _081438B0 adds r0, 0xFF _081438B0: asrs r0, 8 strh r0, [r5, 0x24] ldrh r0, [r5, 0x2E] adds r0, 0x4 strh r0, [r5, 0x2E] _081438BA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081438C0: .4byte gSineTable thumb_func_end sub_814386C thumb_func_start sub_81438C4 sub_81438C4: @ 81438C4 push {r4,lr} bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xF0 bl __umodsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl Random adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 movs r0, 0x7 ands r2, r0 negs r2, r2 ldr r0, _08143934 lsls r4, 16 asrs r4, 16 lsls r2, 16 asrs r2, 16 adds r1, r4, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08143938 adds r4, r1, r0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x11 bl __umodsi3 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim bl Random movs r1, 0x3 ands r1, r0 cmp r1, 0 beq _0814393C movs r0, 0 b _0814393E .align 2, 0 _08143934: .4byte gSpriteTemplate_840B7A4 _08143938: .4byte 0x02020004 _0814393C: movs r0, 0x1 _0814393E: strh r0, [r4, 0x30] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_81438C4 thumb_func_start sub_8143948 sub_8143948: @ 8143948 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8143948 thumb_func_start sub_814395C sub_814395C: @ 814395C push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade ldr r0, _081439B8 ldrh r1, [r0, 0x2C] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081439B2 ldr r0, _081439BC ldrb r0, [r0] cmp r0, 0 beq _081439B2 ldr r2, _081439C0 ldr r0, _081439C4 ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, [r0] ldr r0, _081439C8 cmp r1, r0 bne _081439B2 bl sub_8143948 bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade ldr r1, _081439CC movs r0, 0x1 strb r0, [r1] _081439B2: pop {r0} bx r0 .align 2, 0 _081439B8: .4byte 0x03001770 _081439BC: .4byte 0x02039324 _081439C0: .4byte 0x03004b20 _081439C4: .4byte 0x02039322 _081439C8: .4byte sub_8143B68 _081439CC: .4byte 0x02039325 thumb_func_end sub_814395C thumb_func_start sub_81439D0 sub_81439D0: @ 81439D0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 bl sub_8144130 movs r0, 0 bl SetVBlankCallback bl ResetPaletteFade bl ResetTasks ldr r0, _08143AF0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08143AF4 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x10] strh r1, [r0, 0x16] strh r1, [r0, 0x1E] movs r1, 0x1 strh r1, [r0, 0x22] _08143A0E: movs r0, 0 adds r1, r7, 0 bl sub_8144ECC lsls r0, 24 cmp r0, 0 beq _08143A0E ldr r6, _08143AF4 lsls r5, r7, 2 adds r5, r7 lsls r5, 3 adds r5, r6 movs r0, 0xA ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 movs r1, 0 mov r9, r1 movs r2, 0 mov r8, r2 movs r1, 0x28 strh r1, [r0, 0x8] ldr r4, _08143AF8 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C ldr r0, _08143AFC movs r1, 0x80 movs r2, 0x40 bl LoadPalette ldr r0, _08143B00 ldr r1, _08143B04 movs r2, 0x20 bl CpuSet ldr r1, _08143B08 ldr r2, _08143B0C adds r0, r2, 0 strh r0, [r1] ldr r0, _08143B10 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r6 strh r7, [r1, 0xA] strh r0, [r5, 0x26] movs r0, 0x1 negs r0, r0 mov r1, r8 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r3, _08143B14 ldrh r2, [r3] mov r0, r8 strh r0, [r3] ldr r4, _08143B18 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08143B1C ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _08143B20 bl SetVBlankCallback ldr r0, _08143B24 bl m4aSongNumStart ldr r0, _08143B28 bl SetMainCallback2 ldr r0, _08143B2C mov r1, r9 strb r1, [r0] ldr r4, _08143B30 bl sub_81458DC adds r0, r4, 0 adds r0, 0x88 mov r2, r8 strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r2, [r0] ldr r0, _08143B34 strh r7, [r0] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08143AF0: .4byte sub_8143B38 _08143AF4: .4byte 0x03004b20 _08143AF8: .4byte gWindowConfig_81E7208 _08143AFC: .4byte gUnknown_0840B7BC _08143B00: .4byte gUnknown_0840B7FC _08143B04: .4byte 0x0600bee0 _08143B08: .4byte REG_BG0VOFS _08143B0C: .4byte 0x0000fffc _08143B10: .4byte sub_81441B8 _08143B14: .4byte 0x04000208 _08143B18: .4byte 0x04000200 _08143B1C: .4byte REG_DISPSTAT _08143B20: .4byte sub_8143948 _08143B24: .4byte 0x000001c7 _08143B28: .4byte sub_814395C _08143B2C: .4byte 0x02039325 _08143B30: .4byte 0x0201c000 _08143B34: .4byte 0x02039322 thumb_func_end sub_81439D0 thumb_func_start sub_8143B38 sub_8143B38: @ 8143B38 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _08143B5C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08143B58 ldr r0, _08143B60 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _08143B64 str r0, [r1] _08143B58: pop {r0} bx r0 .align 2, 0 _08143B5C: .4byte 0x0202f388 _08143B60: .4byte 0x03004b20 _08143B64: .4byte sub_8143B68 thumb_func_end sub_8143B38 thumb_func_start sub_8143B68 sub_8143B68: @ 8143B68 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, _08143B9C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 movs r0, 0x10 ldrsh r1, [r4, r0] cmp r1, 0 beq _08143BA4 movs r3, 0xA ldrsh r1, [r4, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0x1E strh r1, [r0, 0x8] movs r0, 0x80 lsls r0, 1 strh r0, [r4, 0x20] ldr r0, _08143BA0 b _08143BEE .align 2, 0 _08143B9C: .4byte 0x03004b20 _08143BA0: .4byte sub_8143EBC _08143BA4: ldr r0, _08143BCC strh r1, [r0] ldrh r2, [r4, 0x1E] movs r3, 0x1E ldrsh r0, [r4, r3] cmp r0, 0x1 bne _08143BD4 strh r2, [r4, 0x22] strh r1, [r4, 0x1E] movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08143BD0 b _08143BEE .align 2, 0 _08143BCC: .4byte 0x02039320 _08143BD0: .4byte sub_8143BFC _08143BD4: cmp r0, 0x2 bne _08143BF0 strh r2, [r4, 0x22] strh r1, [r4, 0x1E] movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08143BF8 _08143BEE: str r0, [r4] _08143BF0: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08143BF8: .4byte sub_8143CC0 thumb_func_end sub_8143B68 thumb_func_start sub_8143BFC sub_8143BFC: @ 8143BFC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08143C34 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _08143C2C movs r0, 0x80 lsls r0, 19 strh r1, [r0] adds r0, r4, 0 bl sub_81450AC ldr r1, _08143C38 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08143C3C str r1, [r0] _08143C2C: pop {r4} pop {r0} bx r0 .align 2, 0 _08143C34: .4byte 0x0202f388 _08143C38: .4byte 0x03004b20 _08143C3C: .4byte c2_080C9BFC thumb_func_end sub_8143BFC thumb_func_start c2_080C9BFC c2_080C9BFC: @ 8143C40 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl SetVBlankCallback ldr r1, _08143CA8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r5, r0, r1 ldrb r0, [r5, 0x16] adds r1, r4, 0 bl sub_8144ECC lsls r0, 24 cmp r0, 0 beq _08143CA0 movs r0, 0x1 negs r0, r0 movs r4, 0 str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r3, _08143CAC ldrh r2, [r3] strh r4, [r3] ldr r4, _08143CB0 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08143CB4 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _08143CB8 bl SetVBlankCallback ldr r0, _08143CBC str r0, [r5] _08143CA0: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08143CA8: .4byte 0x03004b20 _08143CAC: .4byte 0x04000208 _08143CB0: .4byte 0x04000200 _08143CB4: .4byte REG_DISPSTAT _08143CB8: .4byte sub_8143948 _08143CBC: .4byte sub_8143B38 thumb_func_end c2_080C9BFC thumb_func_start sub_8143CC0 sub_8143CC0: @ 8143CC0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08143CF8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _08143CF0 movs r0, 0x80 lsls r0, 19 strh r1, [r0] adds r0, r4, 0 bl sub_81450AC ldr r1, _08143CFC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08143D00 str r1, [r0] _08143CF0: pop {r4} pop {r0} bx r0 .align 2, 0 _08143CF8: .4byte 0x0202f388 _08143CFC: .4byte 0x03004b20 _08143D00: .4byte sub_8143D04 thumb_func_end sub_8143CC0 thumb_func_start sub_8143D04 sub_8143D04: @ 8143D04 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _08143DC8 ldr r1, _08143DCC adds r1, r0 mov r8, r1 ldrb r7, [r1] cmp r7, 0 beq _08143D24 cmp r7, 0x1 beq _08143E0C _08143D24: bl ResetSpriteData bl FreeAllSpritePalettes ldr r1, _08143DD0 movs r0, 0x8 strb r0, [r1] ldr r0, _08143DD4 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _08143DD8 ldr r1, _08143DDC bl LZ77UnCompVram ldr r0, _08143DE0 movs r1, 0x1 movs r2, 0x3E bl LoadPalette movs r1, 0 ldr r4, _08143DE4 movs r3, 0x11 ldr r2, _08143DE8 _08143D56: adds r0, r1, r4 strb r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r2 bls _08143D56 movs r1, 0 ldr r2, _08143DEC ldr r6, _08143DF0 ldr r0, _08143DF4 adds r5, r2, r0 movs r4, 0x22 ldr r3, _08143DE8 _08143D72: adds r0, r1, r5 strb r4, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r3 bls _08143D72 movs r1, 0 ldr r5, _08143DF8 movs r4, 0x33 ldr r3, _08143DE8 _08143D88: adds r0, r1, r5 strb r4, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r3 bls _08143D88 movs r0, 0 strh r0, [r2] ldr r1, _08143DFC adds r0, r1, 0 strh r0, [r2, 0x2] ldr r1, _08143E00 adds r0, r1, 0 strh r0, [r2, 0x4] ldr r1, _08143E04 adds r0, r1, 0 strh r0, [r2, 0x6] adds r0, r6, 0 bl LoadSpriteSheet ldr r0, _08143E08 bl LoadSpritePalette ldr r1, _08143DC8 ldr r2, _08143DCC adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08143E90 .align 2, 0 _08143DC8: .4byte 0x03001770 _08143DCC: .4byte 0x0000043c _08143DD0: .4byte 0x030028f8 _08143DD4: .4byte gUnknown_083F66F0 _08143DD8: .4byte gUnknown_083F64F8 _08143DDC: .4byte 0x06003800 _08143DE0: .4byte gUnknown_083F62EC + 0x2 _08143DE4: .4byte 0x0201e000 _08143DE8: .4byte 0x000007ff _08143DEC: .4byte 0x0201f800 _08143DF0: .4byte gUnknown_0840CAA0 _08143DF4: .4byte 0xfffff000 _08143DF8: .4byte 0x0201f000 _08143DFC: .4byte 0x000053ff _08143E00: .4byte 0x0000529f _08143E04: .4byte 0x00007e94 _08143E08: .4byte gUnknown_0840CAB0 _08143E0C: ldr r0, _08143EA0 movs r1, 0 bl CreateTask ldr r2, _08143EA4 lsls r4, r6, 2 adds r4, r6 lsls r4, 3 adds r4, r2 lsls r0, 24 lsrs r0, 24 movs r1, 0 mov r9, r1 movs r5, 0 strh r0, [r4, 0xE] movs r0, 0xE ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 strh r7, [r0, 0x8] movs r0, 0xE ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 strh r6, [r0, 0xA] movs r0, 0xE ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r1, [r4, 0x16] strh r1, [r0, 0xC] movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _08143EA8 strh r5, [r0] ldr r1, _08143EAC movs r0, 0x20 strh r0, [r1] subs r1, 0x10 ldr r2, _08143EB0 adds r0, r2, 0 strh r0, [r1] subs r1, 0xE movs r2, 0xCA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] mov r1, r9 mov r0, r8 strb r1, [r0] ldr r0, _08143EB4 strh r5, [r0] ldr r0, _08143EB8 str r0, [r4] _08143E90: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08143EA0: .4byte sub_8144514 _08143EA4: .4byte 0x03004b20 _08143EA8: .4byte REG_BG3HOFS _08143EAC: .4byte REG_BG3VOFS _08143EB0: .4byte 0x00000703 _08143EB4: .4byte 0x0203935c _08143EB8: .4byte sub_8143B38 thumb_func_end sub_8143D04 thumb_func_start sub_8143EBC sub_8143EBC: @ 8143EBC push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, _08143EE0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x20] movs r2, 0x20 ldrsh r1, [r4, r2] cmp r1, 0 beq _08143EE4 subs r0, 0x1 strh r0, [r4, 0x20] b _08143EF8 .align 2, 0 _08143EE0: .4byte 0x03004b20 _08143EE4: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0xC movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08143F00 str r0, [r4] _08143EF8: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08143F00: .4byte sub_8143F04 thumb_func_end sub_8143EBC thumb_func_start sub_8143F04 sub_8143F04: @ 8143F04 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08143F30 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08143F2A adds r0, r4, 0 bl sub_81450AC ldr r0, _08143F34 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08143F38 str r0, [r1] _08143F2A: pop {r4} pop {r0} bx r0 .align 2, 0 _08143F30: .4byte 0x0202f388 _08143F34: .4byte 0x03004b20 _08143F38: .4byte sub_8143F3C thumb_func_end sub_8143F04 thumb_func_start sub_8143F3C sub_8143F3C: @ 8143F3C push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 bl sub_8144130 bl ResetPaletteFade movs r1, 0xE0 lsls r1, 6 movs r0, 0 movs r2, 0 bl sub_8145128 bl ResetSpriteData bl FreeAllSpritePalettes movs r0, 0x1 negs r0, r0 movs r4, 0 str r4, [sp] movs r1, 0x8 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _08143FC4 movs r2, 0xE0 lsls r2, 3 adds r0, r2, 0 strh r0, [r1] ldr r3, _08143FC8 ldrh r2, [r3] strh r4, [r3] ldr r4, _08143FCC ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08143FD0 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] movs r1, 0x80 lsls r1, 19 movs r2, 0xA0 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] ldr r1, _08143FD4 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x80 lsls r1, 1 strh r1, [r0, 0x8] ldr r1, _08143FD8 str r1, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08143FC4: .4byte REG_BG0CNT _08143FC8: .4byte 0x04000208 _08143FCC: .4byte 0x04000200 _08143FD0: .4byte REG_DISPSTAT _08143FD4: .4byte 0x03004b20 _08143FD8: .4byte sub_8143FDC thumb_func_end sub_8143F3C thumb_func_start sub_8143FDC sub_8143FDC: @ 8143FDC push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, _08144000 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x8] movs r2, 0x8 ldrsh r1, [r4, r2] cmp r1, 0 beq _08144004 subs r0, 0x1 strh r0, [r4, 0x8] b _08144018 .align 2, 0 _08144000: .4byte 0x03004b20 _08144004: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0x6 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08144020 str r0, [r4] _08144018: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08144020: .4byte sub_8144024 thumb_func_end sub_8143FDC thumb_func_start sub_8144024 sub_8144024: @ 8144024 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _08144074 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0814406A movs r0, 0xE0 lsls r0, 6 movs r1, 0 bl sub_81452D0 movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _08144078 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0xE1 lsls r1, 5 strh r1, [r0, 0x8] ldr r1, _0814407C str r1, [r0] _0814406A: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08144074: .4byte 0x0202f388 _08144078: .4byte 0x03004b20 _0814407C: .4byte sub_8144080 thumb_func_end sub_8144024 thumb_func_start sub_8144080 sub_8144080: @ 8144080 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r2, r0, 24 ldr r0, _081440CC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08144104 ldr r1, _081440D0 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 movs r0, 0x8 ldrsh r1, [r4, r0] cmp r1, 0 beq _081440AE ldr r0, _081440D4 ldrh r0, [r0, 0x2E] cmp r0, 0 beq _081440E0 _081440AE: movs r0, 0x4 bl play_sound_effect movs r0, 0x1 negs r0, r0 ldr r1, _081440D8 str r1, [sp] movs r1, 0x8 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _081440DC str r0, [r4] b _08144104 .align 2, 0 _081440CC: .4byte 0x0202f388 _081440D0: .4byte 0x03004b20 _081440D4: .4byte 0x03001770 _081440D8: .4byte 0x0000ffff _081440DC: .4byte sub_8144114 _081440E0: ldr r0, _0814410C cmp r1, r0 bne _081440EC movs r0, 0x8 bl play_sound_effect _081440EC: movs r0, 0x8 ldrsh r1, [r4, r0] ldr r0, _08144110 cmp r1, r0 bne _081440FE movs r0, 0xE4 lsls r0, 1 bl m4aSongNumStart _081440FE: ldrh r0, [r4, 0x8] subs r0, 0x1 strh r0, [r4, 0x8] _08144104: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0814410C: .4byte 0x00001be8 _08144110: .4byte 0x00001ab8 thumb_func_end sub_8144080 thumb_func_start sub_8144114 sub_8144114: @ 8144114 push {lr} ldr r0, _0814412C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08144128 movs r0, 0xFF bl SoftReset _08144128: pop {r0} bx r0 .align 2, 0 _0814412C: .4byte 0x0202f388 thumb_func_end sub_8144114 thumb_func_start sub_8144130 sub_8144130: @ 8144130 sub sp, 0x8 movs r0, 0x80 lsls r0, 19 movs r1, 0 strh r1, [r0] adds r0, 0x1C strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x3E strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] mov r0, sp strh r1, [r0] ldr r1, _081441A4 str r0, [r1] movs r0, 0xC0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _081441A8 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r2, 0 str r2, [sp, 0x4] add r0, sp, 0x4 str r0, [r1] movs r0, 0xE0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _081441AC str r0, [r1, 0x8] ldr r0, [r1, 0x8] mov r0, sp strh r2, [r0] str r0, [r1] ldr r0, _081441B0 str r0, [r1, 0x4] ldr r0, _081441B4 str r0, [r1, 0x8] ldr r0, [r1, 0x8] add sp, 0x8 bx lr .align 2, 0 _081441A4: .4byte 0x040000d4 _081441A8: .4byte 0x8100c000 _081441AC: .4byte 0x85000100 _081441B0: .4byte 0x05000002 _081441B4: .4byte 0x810001ff thumb_func_end sub_8144130 thumb_func_start sub_81441B8 sub_81441B8: @ 81441B8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _081441E4 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r6, r1, 0 cmp r0, 0xA bhi _08144218 lsls r0, 2 ldr r1, _081441E8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081441E4: .4byte 0x03004b20 _081441E8: .4byte _081441EC .align 2, 0 _081441EC: .4byte _08144218 .4byte _08144258 .4byte _08144278 .4byte _08144358 .4byte _0814438C .4byte _081443F8 .4byte _08144218 .4byte _08144218 .4byte _08144218 .4byte _08144218 .4byte _08144428 _08144218: ldr r0, _08144250 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _0814422A b _08144446 _0814422A: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r6 movs r1, 0x1 strh r1, [r0, 0x8] movs r1, 0x58 strh r1, [r0, 0xE] movs r3, 0xA ldrsh r1, [r0, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 strh r2, [r0, 0x24] ldr r0, _08144254 strh r2, [r0] b _08144446 .align 2, 0 _08144250: .4byte 0x0202f388 _08144254: .4byte 0x02039320 _08144258: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r1, r0, r6 ldrh r2, [r1, 0xE] movs r3, 0xE ldrsh r0, [r1, r3] cmp r0, 0 beq _08144270 subs r0, r2, 0x1 strh r0, [r1, 0xE] b _08144446 _08144270: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _08144446 _08144278: movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _08144320 ands r0, r1 strh r0, [r2] lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 3 adds r3, r0, r6 movs r0, 0xA ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r4, r0, r6 ldr r1, [r4] ldr r0, _08144324 mov r8, r2 cmp r1, r0 bne _08144352 movs r1, 0xC ldrsh r0, [r3, r1] cmp r0, 0x33 bgt _0814434C movs r4, 0 ldr r7, _08144328 adds r6, r3, 0 _081442B0: movs r2, 0xC ldrsh r1, [r6, r2] lsls r0, r1, 2 adds r0, r1 adds r0, r4 lsls r0, 2 adds r0, r7 ldr r0, [r0] ldr r0, [r0, 0x4] lsls r2, r4, 25 movs r3, 0x90 lsls r3, 20 adds r2, r3 lsrs r2, 24 movs r1, 0 movs r3, 0xF0 bl Free adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x4 bls _081442B0 ldr r3, _0814432C mov r0, r8 adds r1, r0, r5 lsls r1, 3 adds r1, r3 ldrh r0, [r1, 0xC] adds r0, 0x1 strh r0, [r1, 0xC] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] movs r0, 0xA ldrsh r2, [r1, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r3 movs r2, 0x1 strh r2, [r0, 0x24] movs r2, 0xA ldrsh r1, [r1, r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r3 movs r3, 0x22 ldrsh r0, [r0, r3] cmp r0, 0x1 bne _08144334 movs r0, 0xC0 lsls r0, 2 ldr r1, _08144330 b _0814433A .align 2, 0 _08144320: .4byte 0x0000feff _08144324: .4byte sub_8143B68 _08144328: .4byte gCreditsEntryPointerTable _0814432C: .4byte 0x03004b20 _08144330: .4byte 0x0000328d _08144334: movs r0, 0xC0 lsls r0, 2 ldr r1, _08144348 _0814433A: str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _08144446 .align 2, 0 _08144348: .4byte 0x00001967 _0814434C: movs r0, 0xA strh r0, [r3, 0x8] b _08144446 _08144352: movs r0, 0 strh r0, [r4, 0x24] b _08144446 _08144358: movs r2, 0x80 lsls r2, 19 ldrh r0, [r2] movs r3, 0x80 lsls r3, 1 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] ldr r0, _08144388 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08144446 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r6 movs r1, 0x82 strh r1, [r0, 0xE] ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _08144446 .align 2, 0 _08144388: .4byte 0x0202f388 _0814438C: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r6 ldrh r1, [r4, 0xE] movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0 beq _081443A4 subs r0, r1, 0x1 strh r0, [r4, 0xE] b _08144446 _081443A4: ldrb r0, [r4, 0xC] ldrb r1, [r4, 0xA] bl sub_8144454 lsls r0, 24 cmp r0, 0 beq _081443BA ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08144446 _081443BA: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r3, 0xA ldrsh r1, [r4, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 movs r1, 0x22 ldrsh r0, [r0, r1] cmp r0, 0x1 bne _081443E0 movs r0, 0xC0 lsls r0, 2 ldr r1, _081443DC b _081443E6 .align 2, 0 _081443DC: .4byte 0x0000328d _081443E0: movs r0, 0xC0 lsls r0, 2 ldr r1, _081443F4 _081443E6: str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _08144446 .align 2, 0 _081443F4: .4byte 0x00001967 _081443F8: ldr r0, _08144420 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08144446 movs r0, 0 movs r1, 0x9 movs r2, 0x1D movs r3, 0x13 bl Reset ldr r0, _08144424 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 movs r0, 0x2 strh r0, [r1, 0x8] b _08144446 .align 2, 0 _08144420: .4byte 0x0202f388 _08144424: .4byte 0x03004b20 _08144428: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r6 movs r2, 0xA ldrsh r1, [r0, r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 movs r1, 0x1 strh r1, [r0, 0x10] adds r0, r5, 0 bl DestroyTask _08144446: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81441B8 thumb_func_start sub_8144454 sub_8144454: @ 8144454 push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 adds r6, r3, 0 lsls r1, 24 lsrs r2, r1, 24 adds r5, r2, 0 ldr r4, _08144508 cmp r3, 0x6 bne _08144474 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x1E] _08144474: cmp r3, 0xC bne _08144486 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x1 strh r1, [r0, 0x16] strh r1, [r0, 0x1E] _08144486: cmp r3, 0x12 bne _08144496 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x1E] _08144496: cmp r3, 0x18 bne _081444AA lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x16] movs r1, 0x1 strh r1, [r0, 0x1E] _081444AA: cmp r3, 0x1E bne _081444BA lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x1E] _081444BA: cmp r3, 0x23 bne _081444CE lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x3 strh r1, [r0, 0x16] movs r1, 0x1 strh r1, [r0, 0x1E] _081444CE: cmp r3, 0x28 bne _081444DE lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x1E] _081444DE: cmp r6, 0x2E bne _081444F2 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x4 strh r1, [r0, 0x16] movs r1, 0x1 strh r1, [r0, 0x1E] _081444F2: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r4 movs r1, 0x1E ldrsh r0, [r0, r1] cmp r0, 0 bne _0814450C movs r0, 0 b _0814450E .align 2, 0 _08144508: .4byte 0x03004b20 _0814450C: movs r0, 0x1 _0814450E: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8144454 thumb_func_start sub_8144514 sub_8144514: @ 8144514 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r6, _08144548 ldr r3, _0814454C lsls r0, 2 add r0, r8 lsls r0, 3 adds r2, r0, r3 movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, 0x1 beq _08144550 cmp r0, 0x1 bgt _0814453C b _08144658 _0814453C: cmp r0, 0x2 beq _08144584 cmp r0, 0x3 bne _08144546 b _08144644 _08144546: b _08144658 .align 2, 0 _08144548: .4byte 0x0201c000 _0814454C: .4byte 0x03004b20 _08144550: adds r0, r6, 0 adds r0, 0x8A ldrh r0, [r0] cmp r0, 0 bne _0814456E movs r4, 0xA ldrsh r0, [r2, r4] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r3 movs r4, 0x24 ldrsh r0, [r1, r4] cmp r0, 0 beq _08144658 _0814456E: movs r0, 0xA ldrsh r1, [r2, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r3 movs r1, 0 strh r1, [r0, 0x24] ldrh r0, [r2, 0x8] adds r0, 0x1 b _08144656 _08144584: adds r0, r6, 0 adds r0, 0x88 ldrh r1, [r0] mov r9, r0 cmp r1, 0x44 beq _08144658 movs r4, 0xA ldrsh r1, [r2, r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r3 ldr r1, [r0] ldr r0, _081445EC cmp r1, r0 bne _08144658 adds r7, r6, 0 adds r7, 0x8C ldrh r0, [r7] lsls r0, 1 adds r0, r6 ldrh r0, [r0] ldr r4, _081445F0 adds r5, r6, 0 adds r5, 0x8A ldrh r3, [r5] lsls r2, r3, 1 adds r1, r2, r4 ldrb r1, [r1] adds r4, 0x1 adds r2, r4 ldrb r2, [r2] bl sub_81456B4 lsls r0, 24 lsrs r2, r0, 24 ldrh r1, [r7] adds r0, r6, 0 adds r0, 0x8E ldrh r0, [r0] subs r0, 0x1 cmp r1, r0 bge _081445F8 adds r0, r1, 0x1 strh r0, [r7] ldr r1, _081445F4 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0x32 b _0814460A .align 2, 0 _081445EC: .4byte sub_8143B68 _081445F0: .4byte gUnknown_0840CA00 _081445F4: .4byte 0x02020004 _081445F8: movs r0, 0 strh r0, [r7] ldr r1, _08144620 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0x80 lsls r1, 2 _0814460A: strh r1, [r0, 0x34] mov r1, r9 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] ldrh r0, [r5] cmp r0, 0x2 bne _08144624 movs r0, 0 b _08144626 .align 2, 0 _08144620: .4byte 0x02020004 _08144624: adds r0, 0x1 _08144626: strh r0, [r5] ldr r0, _08144640 mov r2, r8 lsls r1, r2, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x32 strh r0, [r1, 0xE] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _08144658 .align 2, 0 _08144640: .4byte 0x03004b20 _08144644: ldrh r1, [r2, 0xE] movs r3, 0xE ldrsh r0, [r2, r3] cmp r0, 0 beq _08144654 subs r0, r1, 0x1 strh r0, [r2, 0xE] b _08144658 _08144654: movs r0, 0x1 _08144656: strh r0, [r2, 0x8] _08144658: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8144514 thumb_func_start sub_8144664 sub_8144664: @ 8144664 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0814468C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r6, r1, 0 cmp r0, 0x32 bls _08144680 b _0814492C _08144680: lsls r0, 2 ldr r1, _08144690 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0814468C: .4byte 0x03004b20 _08144690: .4byte _08144694 .align 2, 0 _08144694: .4byte _08144760 .4byte _08144784 .4byte _081447D8 .4byte _081447F0 .4byte _0814482C .4byte _08144850 .4byte _0814489C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _081448A8 .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _081448C8 .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _081448EC .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _0814492C .4byte _08144920 _08144760: lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r6 ldrh r0, [r4, 0x12] lsls r0, 16 asrs r0, 17 movs r1, 0x7F ands r0, r1 movs r1, 0xC bl sine ldr r1, _08144780 strh r0, [r1] b _081447A8 .align 2, 0 _08144780: .4byte 0x0203935a _08144784: ldr r7, _081447B0 movs r3, 0 ldrsh r4, [r7, r3] cmp r4, 0 beq _081447B4 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r6 ldrh r0, [r4, 0x12] lsls r0, 16 asrs r0, 17 movs r1, 0x7F ands r0, r1 movs r1, 0xC bl sine strh r0, [r7] _081447A8: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] b _0814492C .align 2, 0 _081447B0: .4byte 0x0203935a _081447B4: ldr r3, _081447D4 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r6 movs r0, 0xC ldrsh r2, [r1, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 movs r2, 0x2 strh r2, [r0, 0x2E] strh r4, [r1, 0x12] b _08144848 .align 2, 0 _081447D4: .4byte 0x02020004 _081447D8: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r1, r0, r6 ldrh r2, [r1, 0x12] movs r3, 0x12 ldrsh r0, [r1, r3] cmp r0, 0x3F bgt _08144848 adds r0, r2, 0x1 strh r0, [r1, 0x12] b _08144866 _081447F0: ldr r3, _08144828 lsls r2, r5, 2 adds r2, r5 lsls r2, 3 adds r2, r6 movs r0, 0xC ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x3 strh r1, [r0, 0x2E] movs r0, 0xE ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x1 strh r1, [r0, 0x2E] movs r0, 0x78 strh r0, [r2, 0x10] ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] b _0814492C .align 2, 0 _08144828: .4byte 0x02020004 _0814482C: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r1, r0, r6 ldrh r2, [r1, 0x10] movs r3, 0x10 ldrsh r0, [r1, r3] cmp r0, 0 beq _08144844 subs r0, r2, 0x1 strh r0, [r1, 0x10] b _0814492C _08144844: movs r0, 0x40 strh r0, [r1, 0x12] _08144848: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0814492C _08144850: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r6 ldrh r1, [r4, 0x12] movs r2, 0x12 ldrsh r0, [r4, r2] cmp r0, 0 ble _0814487C subs r0, r1, 0x1 strh r0, [r4, 0x12] _08144866: movs r1, 0x7F ands r0, r1 movs r1, 0x14 bl sine ldr r1, _08144878 strh r0, [r1] b _0814492C .align 2, 0 _08144878: .4byte 0x0203935a _0814487C: ldr r2, _08144898 movs r3, 0xC ldrsh r1, [r4, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 strh r1, [r0, 0x2E] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0814492C .align 2, 0 _08144898: .4byte 0x02020004 _0814489C: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r6 movs r1, 0x32 b _0814492A _081448A8: ldr r3, _081448C4 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r6 movs r0, 0xE ldrsh r2, [r1, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 movs r2, 0x2 b _081448E0 .align 2, 0 _081448C4: .4byte 0x02020004 _081448C8: ldr r3, _081448E8 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r6 movs r0, 0xC ldrsh r2, [r1, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 movs r2, 0x4 _081448E0: strh r2, [r0, 0x2E] movs r0, 0x32 strh r0, [r1, 0x8] b _0814492C .align 2, 0 _081448E8: .4byte 0x02020004 _081448EC: ldr r3, _0814491C lsls r2, r5, 2 adds r2, r5 lsls r2, 3 adds r2, r6 movs r0, 0xC ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x5 strh r1, [r0, 0x2E] movs r0, 0xE ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x3 strh r1, [r0, 0x2E] movs r0, 0x32 strh r0, [r2, 0x8] b _0814492C .align 2, 0 _0814491C: .4byte 0x02020004 _08144920: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r6 movs r1, 0 _0814492A: strh r1, [r0, 0x8] _0814492C: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8144664 thumb_func_start sub_8144934 sub_8144934: @ 8144934 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _08144958 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r3, 0x8 ldrsh r0, [r0, r3] adds r4, r1, 0 cmp r0, 0x4 bhi _08144974 lsls r0, 2 ldr r1, _0814495C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08144958: .4byte 0x03004b20 _0814495C: .4byte _08144960 .align 2, 0 _08144960: .4byte _08144974 .4byte _081449B8 .4byte _081449C4 .4byte _08144A0C .4byte _08144A5C _08144974: lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r2, r0, r4 movs r1, 0xA ldrsh r0, [r2, r1] ldr r5, _081449C0 cmp r0, r5 beq _081449B8 movs r3, 0xC ldrsh r1, [r2, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r3, r0, r4 movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0x2 bne _081449B8 movs r1, 0xA ldrsh r0, [r3, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 movs r0, 0x14 strh r0, [r1, 0x8] strh r5, [r2, 0xA] _081449B8: movs r0, 0 bl sub_8149020 b _08144A62 .align 2, 0 _081449C0: .4byte 0x00007fff _081449C4: lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r2, r0, r4 movs r3, 0xA ldrsh r0, [r2, r3] ldr r5, _08144A08 cmp r0, r5 beq _08144A54 movs r0, 0xC ldrsh r1, [r2, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 movs r3, 0xA ldrsh r1, [r0, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r3, r0, r4 ldrh r1, [r3, 0x12] movs r0, 0x80 negs r0, r0 ands r0, r1 movs r1, 0xA0 lsls r1, 2 cmp r0, r1 bne _08144A54 movs r0, 0x1 strh r0, [r3, 0x8] strh r5, [r2, 0xA] b _08144A54 .align 2, 0 _08144A08: .4byte 0x00007fff _08144A0C: lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r2, r0, r4 ldrh r3, [r2, 0xA] movs r0, 0xA ldrsh r1, [r2, r0] ldr r5, _08144A48 cmp r1, r5 beq _08144A54 ldr r0, _08144A4C cmp r1, r0 bne _08144A50 movs r3, 0xC ldrsh r1, [r2, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 movs r3, 0xA ldrsh r1, [r0, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 movs r1, 0xA strh r1, [r0, 0x8] strh r5, [r2, 0xA] b _08144A54 .align 2, 0 _08144A48: .4byte 0x00007fff _08144A4C: .4byte 0x000001f3 _08144A50: adds r0, r3, 0x1 strh r0, [r2, 0xA] _08144A54: movs r0, 0x1 bl sub_8149020 b _08144A62 _08144A5C: movs r0, 0x2 bl sub_8149020 _08144A62: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8144934 thumb_func_start sub_8144A68 sub_8144A68: @ 8144A68 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r7, r1, 24 cmp r0, 0x4 bls _08144A7E b _08144DFC _08144A7E: lsls r0, 2 ldr r1, _08144A88 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08144A88: .4byte _08144A8C .align 2, 0 _08144A8C: .4byte _08144AA0 .4byte _08144B48 .4byte _08144BF4 .4byte _08144CA0 .4byte _08144D50 _08144AA0: ldr r5, _08144B40 ldr r0, _08144B44 lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 movs r1, 0x12 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r3, 0 movs r2, 0x88 lsls r2, 1 strh r2, [r0, 0x20] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x20] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r2, 0x2E strh r2, [r0, 0x22] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x22] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r1, 0x80 lsls r1, 6 movs r0, 0 movs r2, 0x20 b _08144DF0 .align 2, 0 _08144B40: .4byte 0x02020004 _08144B44: .4byte 0x03004b20 _08144B48: ldr r5, _08144BEC ldr r0, _08144BF0 lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 movs r1, 0x12 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r3, 0 movs r1, 0x78 strh r1, [r0, 0x20] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x88 lsls r1, 1 strh r1, [r0, 0x20] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r2, 0x2E strh r2, [r0, 0x22] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x22] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r1, 0x80 lsls r1, 6 movs r0, 0 movs r2, 0x20 b _08144DF0 .align 2, 0 _08144BEC: .4byte 0x02020004 _08144BF0: .4byte 0x03004b20 _08144BF4: ldr r5, _08144C98 ldr r0, _08144C9C lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 movs r1, 0x12 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r3, 0 movs r1, 0x78 strh r1, [r0, 0x20] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x88 lsls r1, 1 strh r1, [r0, 0x20] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r2, 0x2E strh r2, [r0, 0x22] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x22] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r1, 0x80 lsls r1, 6 movs r2, 0x80 lsls r2, 2 movs r0, 0x1 b _08144DF0 .align 2, 0 _08144C98: .4byte 0x02020004 _08144C9C: .4byte 0x03004b20 _08144CA0: ldr r5, _08144D44 ldr r0, _08144D48 lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 movs r1, 0x12 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r3, 0 movs r1, 0x78 strh r1, [r0, 0x20] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08144D4C strh r1, [r0, 0x20] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r2, 0x2E strh r2, [r0, 0x22] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x22] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r1, 0x80 lsls r1, 6 movs r2, 0x80 lsls r2, 2 movs r0, 0x1 b _08144DF0 .align 2, 0 _08144D44: .4byte 0x02020004 _08144D48: .4byte 0x03004b20 _08144D4C: .4byte 0x0000ffe0 _08144D50: ldr r5, _08144EBC ldr r0, _08144EC0 lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 movs r1, 0x12 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r3, 0 movs r1, 0x58 strh r1, [r0, 0x20] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x98 strh r1, [r0, 0x20] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r2, 0x2E strh r2, [r0, 0x22] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x22] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r1, 0x80 lsls r1, 6 movs r2, 0x80 lsls r2, 2 movs r0, 0x2 _08144DF0: movs r3, 0x8 bl sub_8148EC0 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x8] _08144DFC: ldr r0, _08144EC4 movs r1, 0 bl CreateTask ldr r6, _08144EC0 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r5, r1, r6 lsls r0, 24 lsrs r0, 24 movs r4, 0 strh r0, [r5, 0xC] movs r0, 0xC ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 mov r1, r8 strh r1, [r0, 0x8] movs r0, 0xC ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 strh r4, [r0, 0xA] movs r0, 0xC ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 strh r7, [r0, 0xC] ldr r0, _08144EC8 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xA] movs r0, 0xA ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 strh r4, [r0, 0x8] movs r0, 0xA ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 strh r7, [r0, 0xA] movs r0, 0xA ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 ldrh r1, [r5, 0x12] strh r1, [r0, 0xC] movs r0, 0xA ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 ldrh r1, [r5, 0x14] strh r1, [r0, 0xE] movs r0, 0xA ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 strh r4, [r0, 0x10] mov r1, r8 cmp r1, 0x2 bne _08144EB0 movs r1, 0xA ldrsh r0, [r5, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r6 movs r0, 0x45 strh r0, [r1, 0x12] _08144EB0: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08144EBC: .4byte 0x02020004 _08144EC0: .4byte 0x03004b20 _08144EC4: .4byte sub_8144934 _08144EC8: .4byte sub_8144664 thumb_func_end sub_8144A68 thumb_func_start sub_8144ECC sub_8144ECC: @ 8144ECC push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r0, _08144F28 ldr r1, _08144F2C adds r6, r0, r1 ldrb r0, [r6] cmp r0, 0x1 beq _08144F38 cmp r0, 0x1 ble _08144EF0 cmp r0, 0x2 beq _08144F5C cmp r0, 0x3 bne _08144EF0 b _0814508C _08144EF0: movs r0, 0x80 lsls r0, 19 movs r1, 0 strh r1, [r0] ldr r2, _08144F30 movs r0, 0x8 strh r0, [r2] ldr r0, _08144F34 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x3A strh r1, [r0] adds r0, 0x2 strh r1, [r0] bl ResetSpriteData bl FreeAllSpritePalettes movs r0, 0x1 strb r0, [r6] b _081450A2 .align 2, 0 _08144F28: .4byte 0x03001770 _08144F2C: .4byte 0x0000043c _08144F30: .4byte REG_BG3HOFS _08144F34: .4byte REG_BG3VOFS _08144F38: ldr r1, _08144F54 movs r0, 0x22 strh r0, [r1] ldr r1, _08144F58 movs r0, 0 strh r0, [r1] adds r0, r4, 0 bl sub_8148CB0 ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] b _081450A2 .align 2, 0 _08144F54: .4byte 0x02039358 _08144F58: .4byte 0x0203935a _08144F5C: ldr r0, _08144FBC ldrb r0, [r0, 0x8] cmp r0, 0 bne _08144FE0 ldr r0, _08144FC0 bl LoadCompressedObjectPic ldr r0, _08144FC4 bl LoadCompressedObjectPic ldr r0, _08144FC8 bl LoadCompressedObjectPic ldr r0, _08144FCC bl LoadSpritePalettes movs r0, 0x78 movs r1, 0x2E bl sub_8149310 lsls r0, 24 lsrs r2, r0, 24 ldr r0, _08144FD0 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 strh r2, [r4, 0x12] ldr r6, _08144FD4 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r5, r6, 0 adds r5, 0x1C adds r2, r0, r5 ldr r1, _08144FD8 str r1, [r2] adds r6, 0x8 adds r0, r6 ldr r1, _08144FDC str r1, [r0] movs r0, 0x88 lsls r0, 1 movs r1, 0x2E bl sub_8149368 b _08145034 .align 2, 0 _08144FBC: .4byte gSaveBlock2 _08144FC0: .4byte gIntro2BrendanSpriteSheet _08144FC4: .4byte gUnknown_08416E34 _08144FC8: .4byte gIntro2BicycleSpriteSheet _08144FCC: .4byte gIntro2SpritePalettes _08144FD0: .4byte 0x03004b20 _08144FD4: .4byte 0x02020004 _08144FD8: .4byte sub_8145378 _08144FDC: .4byte gUnknown_0840CA54 _08144FE0: ldr r0, _0814505C bl LoadCompressedObjectPic ldr r0, _08145060 bl LoadCompressedObjectPic ldr r0, _08145064 bl LoadCompressedObjectPic ldr r0, _08145068 bl LoadSpritePalettes movs r0, 0x78 movs r1, 0x2E bl sub_8149368 lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0814506C lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 strh r2, [r4, 0x12] ldr r6, _08145070 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r5, r6, 0 adds r5, 0x1C adds r2, r0, r5 ldr r1, _08145074 str r1, [r2] adds r6, 0x8 adds r0, r6 ldr r1, _08145078 str r1, [r0] movs r0, 0x88 lsls r0, 1 movs r1, 0x2E bl sub_8149310 _08145034: lsls r0, 24 lsrs r2, r0, 24 strh r2, [r4, 0x14] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r5, r0, r5 ldr r1, _0814507C str r1, [r5] adds r0, r6 ldr r1, _08145080 str r1, [r0] ldr r1, _08145084 ldr r0, _08145088 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _081450A2 .align 2, 0 _0814505C: .4byte gIntro2MaySpriteSheet _08145060: .4byte gUnknown_08416E24 _08145064: .4byte gIntro2BicycleSpriteSheet _08145068: .4byte gIntro2SpritePalettes _0814506C: .4byte 0x03004b20 _08145070: .4byte 0x02020004 _08145074: .4byte sub_8145378 _08145078: .4byte gUnknown_0840CA54 _0814507C: .4byte sub_8145420 _08145080: .4byte gUnknown_0840CA94 _08145084: .4byte 0x03001770 _08145088: .4byte 0x0000043c _0814508C: adds r0, r4, 0 adds r1, r5, 0 bl sub_8144A68 adds r0, r4, 0 bl sub_8148E90 movs r0, 0 strb r0, [r6] movs r0, 0x1 b _081450A4 _081450A2: movs r0, 0 _081450A4: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8144ECC thumb_func_start sub_81450AC sub_81450AC: @ 81450AC push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _08145120 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r1, [r4, 0x8] movs r2, 0x8 ldrsh r0, [r4, r2] cmp r0, 0 beq _081450D2 lsls r0, r1, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 strh r0, [r4, 0x8] _081450D2: ldrh r1, [r4, 0xA] movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0 beq _081450E8 lsls r0, r1, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 strh r0, [r4, 0xA] _081450E8: ldrh r1, [r4, 0xC] movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0 beq _081450FE lsls r0, r1, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 strh r0, [r4, 0xC] _081450FE: ldrh r1, [r4, 0xE] movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0 beq _08145114 lsls r0, r1, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 strh r0, [r4, 0xE] _08145114: ldr r1, _08145124 movs r0, 0x1 strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08145120: .4byte 0x03004b20 _08145124: .4byte 0x0203935c thumb_func_end sub_81450AC thumb_func_start sub_8145128 sub_8145128: @ 8145128 push {r4-r7,lr} adds r3, r0, 0 adds r4, r2, 0 lsls r3, 16 lsrs r3, 16 lsls r1, 16 lsrs r7, r1, 16 lsls r4, 16 lsrs r5, r4, 16 ldr r0, _081451EC movs r6, 0xC0 lsls r6, 19 adds r3, r6 adds r1, r3, 0 bl LZ77UnCompVram ldr r0, _081451F0 adds r1, r5, 0 movs r2, 0x20 bl LoadPalette lsrs r4, 20 lsls r4, 28 lsrs r4, 16 movs r2, 0 adds r1, r4, 0x1 ldr r3, _081451F4 _0814515E: lsls r0, r2, 1 adds r0, r7 adds r0, r6 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r3 bls _0814515E movs r2, 0 adds r0, r4, 0x2 adds r6, r4, 0 adds r6, 0x17 movs r1, 0x2B adds r1, r4 mov r12, r1 adds r4, 0x42 ldr r5, _081451F8 adds r3, r0, 0 _08145184: lsls r0, r2, 1 adds r0, r7 adds r0, r5 adds r1, r2, r3 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x14 bls _08145184 movs r2, 0 ldr r5, _081451FC adds r3, r6, 0 _0814519E: lsls r0, r2, 1 adds r0, r7 adds r0, r5 adds r1, r2, r3 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x13 bls _0814519E movs r2, 0 ldr r5, _08145200 mov r3, r12 _081451B8: lsls r0, r2, 1 adds r0, r7 adds r0, r5 adds r1, r2, r3 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x16 bls _081451B8 movs r2, 0 ldr r3, _08145204 _081451D0: lsls r0, r2, 1 adds r0, r7 adds r0, r3 adds r1, r2, r4 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0xB bls _081451D0 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081451EC: .4byte gUnknown_08EA260C _081451F0: .4byte gUnknown_08E9CA24 _081451F4: .4byte 0x000003ff _081451F8: .4byte 0x060001c8 _081451FC: .4byte 0x06000248 _08145200: .4byte 0x060002c8 _08145204: .4byte 0x06000348 thumb_func_end sub_8145128 thumb_func_start sub_8145208 sub_8145208: @ 8145208 push {lr} lsls r0, 24 lsrs r2, r0, 24 adds r3, r2, 0 movs r0, 0x3F ands r0, r2 adds r1, r0, 0 adds r1, 0x50 cmp r2, 0xFF bne _08145220 movs r0, 0x1 b _08145246 _08145220: movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _08145230 movs r2, 0x80 lsls r2, 4 adds r0, r2, 0 orrs r1, r0 _08145230: movs r0, 0x40 ands r3, r0 cmp r3, 0 beq _08145244 movs r2, 0x80 lsls r2, 3 adds r0, r2, 0 orrs r1, r0 lsls r0, r1, 16 lsrs r1, r0, 16 _08145244: adds r0, r1, 0 _08145246: pop {r1} bx r1 thumb_func_end sub_8145208 thumb_func_start sub_814524C sub_814524C: @ 814524C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC str r0, [sp] ldr r0, [sp, 0x2C] lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x4] lsls r3, 16 lsrs r3, 16 str r3, [sp, 0x8] lsls r0, 16 lsrs r0, 20 lsls r0, 28 lsrs r0, 16 mov r9, r0 movs r5, 0 _0814527A: movs r4, 0 lsls r7, r5, 1 ldr r1, [sp, 0x4] adds r0, r1, r5 adds r2, r5, 0x1 mov r8, r2 lsls r0, 6 ldr r1, [sp, 0x8] adds r6, r0, r1 _0814528C: adds r0, r7, r5 adds r0, r4 ldr r2, [sp] adds r0, r2, r0 ldrb r0, [r0] bl sub_8145208 mov r2, r10 adds r1, r2, r4 lsls r1, 1 adds r1, r6 movs r2, 0xC0 lsls r2, 19 adds r1, r2 add r0, r9 strh r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _0814528C mov r1, r8 lsls r0, r1, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _0814527A add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_814524C thumb_func_start sub_81452D0 sub_81452D0: @ 81452D0 push {r4-r7,lr} sub sp, 0x4 lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 lsrs r6, r1, 16 lsrs r1, 20 lsls r1, 28 lsrs r1, 16 movs r2, 0 ldr r7, _08145360 movs r4, 0xC0 lsls r4, 19 adds r1, 0x1 ldr r3, _08145364 _081452EE: lsls r0, r2, 1 adds r0, r5 adds r0, r4 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r3 bls _081452EE str r6, [sp] adds r0, r7, 0 movs r1, 0x3 movs r2, 0x7 adds r3, r5, 0 bl sub_814524C ldr r0, _08145368 str r6, [sp] movs r1, 0x7 movs r2, 0x7 adds r3, r5, 0 bl sub_814524C ldr r4, _0814536C str r6, [sp] adds r0, r4, 0 movs r1, 0xB movs r2, 0x7 adds r3, r5, 0 bl sub_814524C str r6, [sp] adds r0, r4, 0 movs r1, 0x10 movs r2, 0x7 adds r3, r5, 0 bl sub_814524C ldr r0, _08145370 str r6, [sp] movs r1, 0x14 movs r2, 0x7 adds r3, r5, 0 bl sub_814524C ldr r0, _08145374 str r6, [sp] movs r1, 0x18 movs r2, 0x7 adds r3, r5, 0 bl sub_814524C add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08145360: .4byte gUnknown_0840B83C _08145364: .4byte 0x000003ff _08145368: .4byte gUnknown_0840B84B _0814536C: .4byte gUnknown_0840B85A _08145370: .4byte gUnknown_0840B869 _08145374: .4byte gUnknown_0840B878 thumb_func_end sub_81452D0 thumb_func_start sub_8145378 sub_8145378: @ 8145378 push {r4,lr} adds r4, r0, 0 ldr r0, _08145390 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _08145394 adds r0, r4, 0 bl DestroySprite b _08145418 .align 2, 0 _08145390: .4byte 0x0203935c _08145394: movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0x5 bhi _08145418 lsls r0, 2 ldr r1, _081453A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081453A8: .4byte _081453AC .align 2, 0 _081453AC: .4byte _081453C4 .4byte _081453CE .4byte _081453D4 .4byte _081453DE .4byte _081453E8 .4byte _081453FE _081453C4: adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent b _08145418 _081453CE: adds r0, r4, 0 movs r1, 0x1 b _08145402 _081453D4: adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnimIfDifferent b _08145418 _081453DE: adds r0, r4, 0 movs r1, 0x3 bl StartSpriteAnimIfDifferent b _08145418 _081453E8: adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent ldrh r1, [r4, 0x20] movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x78 ble _08145418 subs r0, r1, 0x1 b _08145416 _081453FE: adds r0, r4, 0 movs r1, 0 _08145402: bl StartSpriteAnimIfDifferent ldrh r2, [r4, 0x20] movs r0, 0x20 ldrsh r1, [r4, r0] movs r0, 0x20 negs r0, r0 cmp r1, r0 ble _08145418 subs r0, r2, 0x1 _08145416: strh r0, [r4, 0x20] _08145418: pop {r4} pop {r0} bx r0 thumb_func_end sub_8145378 thumb_func_start sub_8145420 sub_8145420: @ 8145420 push {r4,lr} adds r4, r0, 0 ldr r0, _08145438 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _0814543C adds r0, r4, 0 bl DestroySprite b _081454D8 .align 2, 0 _08145438: .4byte 0x0203935c _0814543C: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08145464 cmp r0, 0x1 bgt _0814544E cmp r0, 0 beq _08145458 b _081454D8 _0814544E: cmp r0, 0x2 beq _081454A0 cmp r0, 0x3 beq _081454BE b _081454D8 _08145458: strh r0, [r4, 0x26] adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent b _081454D8 _08145464: movs r1, 0x20 ldrsh r0, [r4, r1] cmp r0, 0xC8 ble _08145476 adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnimIfDifferent b _0814547E _08145476: adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnimIfDifferent _0814547E: ldrh r2, [r4, 0x20] movs r0, 0x20 ldrsh r1, [r4, r0] movs r0, 0x20 negs r0, r0 cmp r1, r0 ble _08145490 subs r0, r2, 0x2 strh r0, [r4, 0x20] _08145490: ldr r0, _0814549C ldrh r0, [r0] negs r0, r0 strh r0, [r4, 0x26] b _081454D8 .align 2, 0 _0814549C: .4byte 0x0203935a _081454A0: ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent ldrh r1, [r4, 0x3C] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _081454D8 ldrh r0, [r4, 0x20] adds r0, 0x1 b _081454D6 _081454BE: adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent ldrh r2, [r4, 0x20] movs r0, 0x20 ldrsh r1, [r4, r0] movs r0, 0x20 negs r0, r0 cmp r1, r0 ble _081454D8 subs r0, r2, 0x1 _081454D6: strh r0, [r4, 0x20] _081454D8: pop {r4} pop {r0} bx r0 thumb_func_end sub_8145420 thumb_func_start sub_81454E0 sub_81454E0: @ 81454E0 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 ldr r0, _081454F8 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _081454FC adds r0, r5, 0 bl DestroySprite b _081456A6 .align 2, 0 _081454F8: .4byte 0x0203935c _081454FC: ldrh r0, [r5, 0x3C] adds r0, 0x1 strh r0, [r5, 0x3C] movs r2, 0x2E ldrsh r0, [r5, r2] cmp r0, 0xA bhi _08145544 lsls r0, 2 ldr r1, _08145514 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08145514: .4byte _08145518 .align 2, 0 _08145518: .4byte _08145544 .4byte _0814559E .4byte _08145620 .4byte _08145660 .4byte _08145544 .4byte _08145544 .4byte _08145544 .4byte _08145544 .4byte _08145544 .4byte _08145544 .4byte _08145696 _08145544: ldrb r1, [r5, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r5, 0x1] movs r0, 0x30 ldrsh r1, [r5, r0] movs r0, 0x1F ands r1, r0 lsls r1, 1 ldrb r2, [r5, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x3] movs r0, 0x10 strh r0, [r5, 0x32] ldrh r4, [r5, 0x30] lsls r4, 24 lsrs r4, 24 movs r0, 0x80 lsls r0, 9 movs r1, 0x10 bl __divsi3 adds r1, r0, 0 str r1, [sp] adds r0, r4, 0 movs r2, 0 movs r3, 0 bl SetOamMatrix adds r2, r5, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] movs r0, 0x1 strh r0, [r5, 0x2E] b _081456A6 _0814559E: ldrh r1, [r5, 0x32] movs r2, 0x32 ldrsh r0, [r5, r2] cmp r0, 0xFF bgt _081455D4 adds r0, r1, 0 adds r0, 0x8 strh r0, [r5, 0x32] ldrh r4, [r5, 0x30] lsls r4, 24 lsrs r4, 24 movs r0, 0x32 ldrsh r1, [r5, r0] movs r0, 0x80 lsls r0, 9 bl __divsi3 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 str r1, [sp] adds r0, r4, 0 movs r2, 0 movs r3, 0 bl SetOamMatrix b _081455DA _081455D4: ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] _081455DA: movs r2, 0x30 ldrsh r1, [r5, r2] cmp r1, 0x2 beq _081456A6 cmp r1, 0x2 bgt _081455EC cmp r1, 0x1 beq _081455F2 b _081456A6 _081455EC: cmp r1, 0x3 beq _0814560A b _081456A6 _081455F2: ldrh r1, [r5, 0x3C] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _08145602 ldrh r0, [r5, 0x22] adds r0, 0x1 strh r0, [r5, 0x22] _08145602: ldrh r0, [r5, 0x20] subs r0, 0x2 strh r0, [r5, 0x20] b _081456A6 _0814560A: ldrh r0, [r5, 0x3C] ands r1, r0 cmp r1, 0 bne _08145618 ldrh r0, [r5, 0x22] adds r0, 0x1 strh r0, [r5, 0x22] _08145618: ldrh r0, [r5, 0x20] adds r0, 0x2 strh r0, [r5, 0x20] b _081456A6 _08145620: ldrh r1, [r5, 0x34] movs r2, 0x34 ldrsh r0, [r5, r2] cmp r0, 0 beq _08145630 subs r0, r1, 0x1 strh r0, [r5, 0x34] b _081456A6 _08145630: ldr r1, _0814565C movs r2, 0xF4 lsls r2, 4 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x10 strh r0, [r1] ldrb r1, [r5, 0x1] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r5, 0x1] movs r0, 0x10 strh r0, [r5, 0x34] ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _081456A6 .align 2, 0 _0814565C: .4byte REG_BLDCNT _08145660: ldrh r1, [r5, 0x34] movs r2, 0x34 ldrsh r0, [r5, r2] cmp r0, 0 beq _08145684 subs r1, 0x1 strh r1, [r5, 0x34] ldr r3, _08145680 movs r0, 0x34 ldrsh r2, [r5, r0] movs r0, 0x10 subs r0, r2 lsls r0, 8 adds r1, r0 strh r1, [r3] b _081456A6 .align 2, 0 _08145680: .4byte REG_BLDALPHA _08145684: adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] movs r0, 0xA strh r0, [r5, 0x2E] b _081456A6 _08145696: ldr r0, _081456B0 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, r5, 0 bl DestroySprite _081456A6: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081456B0: .4byte REG_BLDCNT thumb_func_end sub_81454E0 thumb_func_start sub_81456B4 sub_81456B4: @ 81456B4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 16 lsrs r6, r0, 16 lsls r1, 16 lsrs r1, 16 mov r10, r1 lsls r2, 16 lsrs r2, 16 str r2, [sp, 0x10] lsls r3, 16 lsrs r3, 16 mov r9, r3 adds r0, r6, 0 bl NationalPokedexNumToSpecies adds r6, r0, 0 cmp r6, 0xC9 beq _081456F8 movs r0, 0x9A lsls r0, 1 cmp r6, r0 beq _081456EE movs r7, 0 b _081456FC _081456EE: ldr r0, _081456F4 ldr r7, [r0, 0x20] b _081456FC .align 2, 0 _081456F4: .4byte gSaveBlock2 _081456F8: ldr r0, _081457E8 ldr r7, [r0, 0x1C] _081456FC: lsls r0, r6, 3 ldr r1, _081457EC adds r0, r1 ldr r1, _081457F0 lsls r2, r6, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _081457F4 mov r8, r4 mov r5, r9 lsls r4, r5, 2 add r4, r8 ldr r4, [r4] str r4, [sp] str r6, [sp, 0x4] str r7, [sp, 0x8] movs r4, 0x1 str r4, [sp, 0xC] bl sub_800D378 ldr r2, _081457F8 adds r0, r6, 0 movs r1, 0 bl species_and_otid_get_pal lsls r5, 4 mov r8, r5 movs r1, 0x80 lsls r1, 1 add r1, r8 lsls r1, 16 lsrs r1, 16 movs r2, 0x20 bl LoadCompressedPalette mov r7, r9 lsls r6, r7, 24 lsrs r6, 24 mov r0, r9 adds r1, r6, 0 bl sub_8143648 ldr r0, _081457FC mov r2, r10 lsls r1, r2, 16 asrs r1, 16 ldr r3, [sp, 0x10] lsls r2, r3, 16 asrs r2, 16 movs r3, 0 bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _08145800 lsls r2, r4, 4 adds r2, r4 lsls r2, 2 adds r3, r2, r5 ldrb r1, [r3, 0x5] movs r0, 0xF ands r0, r1 mov r7, r8 orrs r0, r7 movs r1, 0xD negs r1, r1 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r3, 0x5] mov r0, r9 adds r0, 0x1 strh r0, [r3, 0x30] movs r0, 0x3E adds r0, r3 mov r8, r0 ldrb r0, [r0] orrs r0, r1 mov r1, r8 strb r0, [r1] adds r0, r5, 0 adds r0, 0x1C adds r2, r0 ldr r0, _08145804 str r0, [r2] ldr r0, _08145808 movs r2, 0x20 ldrsh r1, [r3, r2] movs r7, 0x22 ldrsh r2, [r3, r7] movs r3, 0x1 bl CreateSprite adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r4, [r0, 0x2E] adds r1, r6, 0 bl StartSpriteAnimIfDifferent adds r0, r4, 0 add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081457E8: .4byte gSaveBlock2 _081457EC: .4byte gMonFrontPicTable _081457F0: .4byte gMonFrontPicCoords _081457F4: .4byte gUnknown_0840B5A0 _081457F8: .4byte 0x0000ffff _081457FC: .4byte 0x02024e8c _08145800: .4byte 0x02020004 _08145804: .4byte sub_81454E0 _08145808: .4byte gSpriteTemplate_840CAEC thumb_func_end sub_81456B4 thumb_func_start sub_814580C sub_814580C: @ 814580C push {r4,lr} adds r3, r0, 0 ldr r4, _08145838 movs r1, 0x2E ldrsh r0, [r3, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0xA beq _08145830 ldr r0, _0814583C movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 beq _08145840 _08145830: adds r0, r3, 0 bl DestroySprite b _081458D4 .align 2, 0 _08145838: .4byte 0x02020004 _0814583C: .4byte 0x0203935c _08145840: adds r0, r1, 0 adds r0, 0x3E ldrb r0, [r0] movs r1, 0x3E adds r1, r3 mov r12, r1 movs r1, 0x4 ands r1, r0 mov r0, r12 ldrb r2, [r0] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] movs r2, 0x2E ldrsh r1, [r3, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x1] movs r0, 0xC ands r0, r1 ldrb r2, [r3, 0x1] movs r1, 0xD negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x1] movs r0, 0x2E ldrsh r2, [r3, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x1] lsls r0, 30 lsrs r0, 30 movs r2, 0x4 negs r2, r2 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x1] movs r2, 0x2E ldrsh r1, [r3, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x3] movs r1, 0x3E ands r1, r0 ldrb r2, [r3, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x3] movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x20] strh r0, [r3, 0x20] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x22] strh r0, [r3, 0x22] _081458D4: pop {r4} pop {r0} bx r0 thumb_func_end sub_814580C thumb_func_start sub_81458DC sub_81458DC: @ 81458DC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r7, _0814597C ldr r0, _08145980 bl VarGet lsls r0, 16 lsrs r0, 16 bl sub_8109E50 lsls r0, 16 lsrs r0, 16 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 mov r10, r0 movs r4, 0x1 movs r5, 0 ldr r0, _08145984 mov r8, r0 _0814590E: adds r0, r4, 0 movs r1, 0x1 bl sub_8090D90 lsls r0, 24 adds r6, r7, 0 adds r6, 0x90 cmp r0, 0 beq _0814592C lsls r0, r5, 1 adds r0, r6, r0 strh r4, [r0] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _0814592C: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r8 bls _0814590E adds r4, r5, 0 ldr r0, _08145984 lsls r1, r4, 16 mov r9, r1 movs r2, 0x8E adds r2, r7 mov r8, r2 adds r1, r7, 0 adds r1, 0x86 str r1, [sp] cmp r4, r0 bhi _08145964 adds r1, r6, 0 movs r3, 0 adds r2, r0, 0 _08145954: lsls r0, r4, 1 adds r0, r1, r0 strh r3, [r0] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r2 bls _08145954 _08145964: movs r2, 0xE5 lsls r2, 2 adds r0, r7, r2 strh r5, [r0] mov r1, r9 lsrs r0, r1, 16 cmp r0, 0x43 bhi _08145988 mov r2, r8 strh r5, [r2] b _0814598E .align 2, 0 _0814597C: .4byte 0x0201c000 _08145980: .4byte 0x00004023 _08145984: .4byte 0x00000181 _08145988: movs r0, 0x44 mov r1, r8 strh r0, [r1] _0814598E: movs r5, 0 movs r2, 0xE5 lsls r2, 2 adds r4, r7, r2 mov r9, r5 b _0814599E _0814599A: cmp r5, 0x43 bhi _081459EE _0814599E: bl Random lsls r0, 16 lsrs r0, 16 ldrh r1, [r4] bl __umodsi3 lsls r0, 16 lsrs r2, r0, 16 lsls r1, r5, 1 adds r1, r7, r1 lsls r0, r2, 1 adds r3, r6, r0 ldrh r0, [r3] strh r0, [r1] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 mov r0, r9 strh r0, [r3] ldrh r0, [r4] subs r0, 0x1 strh r0, [r4] lsls r0, 16 lsrs r0, 16 cmp r2, r0 beq _081459E8 ldrh r0, [r4] lsls r0, 1 adds r0, r6, r0 ldrh r0, [r0] strh r0, [r3] ldrh r0, [r4] lsls r0, 1 adds r0, r6, r0 mov r1, r9 strh r1, [r0] _081459E8: ldrh r0, [r4] cmp r0, 0 bne _0814599A _081459EE: mov r2, r8 ldrh r0, [r2] cmp r0, 0x43 bhi _08145A26 adds r5, r0, 0 movs r2, 0 cmp r5, 0x43 bhi _08145A5C mov r3, r8 _08145A00: lsls r1, r5, 1 adds r1, r7, r1 lsls r0, r2, 1 adds r0, r7, r0 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldrh r0, [r3] cmp r2, r0 bne _08145A1A movs r2, 0 _08145A1A: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x43 bls _08145A00 b _08145A5C _08145A26: movs r4, 0 ldrh r0, [r7] cmp r0, r10 beq _08145A42 _08145A2E: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 lsls r0, r4, 1 adds r0, r7, r0 ldrh r0, [r0] cmp r0, r10 beq _08145A42 cmp r4, 0x43 bls _08145A2E _08145A42: mov r1, r8 ldrh r0, [r1] subs r0, 0x1 cmp r4, r0 bge _08145A5C lsls r0, r4, 1 adds r0, r7, r0 ldr r2, [sp] ldrh r1, [r2] strh r1, [r0] mov r0, r10 strh r0, [r2] b _08145A62 _08145A5C: mov r2, r10 ldr r1, [sp] strh r2, [r1] _08145A62: movs r0, 0x44 mov r1, r8 strh r0, [r1] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81458DC thumb_func_start sub_8145A78 sub_8145A78: @ 8145A78 push {r4,lr} bl Random adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl Random lsls r0, 16 orrs r0, r4 bl sub_8145D14 ldr r0, _08145AA0 movs r1, 0 bl VarSet pop {r4} pop {r0} bx r0 .align 2, 0 _08145AA0: .4byte 0x00004045 thumb_func_end sub_8145A78 thumb_func_start sub_8145AA4 sub_8145AA4: @ 8145AA4 push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 bl Random lsls r0, 16 lsrs r1, r0, 16 subs r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldr r0, _08145AE0 cmp r4, r0 beq _08145AD4 ldr r5, _08145AE4 ldr r3, _08145AE8 adds r2, r0, 0 _08145AC4: adds r0, r1, 0 muls r0, r5 adds r1, r0, r3 subs r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r2 bne _08145AC4 _08145AD4: adds r0, r1, 0 bl sub_8145D14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08145AE0: .4byte 0x0000ffff _08145AE4: .4byte 0x41c64e6d _08145AE8: .4byte 0x00003039 thumb_func_end sub_8145AA4 thumb_func_start sub_8145AEC sub_8145AEC: @ 8145AEC push {lr} bl sub_8145D3C ldr r1, _08145AFC strh r0, [r1] pop {r0} bx r0 .align 2, 0 _08145AFC: .4byte 0x0202e8dc thumb_func_end sub_8145AEC thumb_func_start sub_8145B00 sub_8145B00: @ 8145B00 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r1, _08145C24 movs r0, 0 strh r0, [r1] movs r0, 0 mov r10, r0 mov r9, r0 movs r6, 0 _08145B18: movs r0, 0x64 adds r1, r6, 0 muls r1, r0 ldr r0, _08145C28 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _08145B74 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _08145B6A adds r0, r4, 0 movs r1, 0x1 bl PokemonGetField adds r1, r0, 0 ldr r0, _08145C2C ldrh r0, [r0] lsls r1, 16 lsrs r1, 16 bl sub_8145C8C lsls r0, 24 lsrs r0, 24 ldr r1, _08145C24 ldrh r2, [r1] cmp r0, r2 bls _08145B6A cmp r0, 0x1 bls _08145B6A subs r0, 0x1 strh r0, [r1] movs r0, 0xE mov r9, r0 mov r10, r6 _08145B6A: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x5 bls _08145B18 _08145B74: movs r6, 0 _08145B76: movs r5, 0 adds r1, r6, 0x1 mov r8, r1 lsls r0, r6, 2 adds r7, r0, r6 _08145B80: lsls r2, r7, 4 subs r2, r7 lsls r2, 5 lsls r0, r5, 2 adds r0, r5 lsls r0, 4 ldr r1, _08145C30 adds r0, r1 adds r4, r2, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetEncryptedField cmp r0, 0 beq _08145BD8 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetEncryptedField cmp r0, 0 bne _08145BD8 adds r0, r4, 0 movs r1, 0x1 bl PokemonGetEncryptedField adds r1, r0, 0 ldr r0, _08145C2C ldrh r0, [r0] lsls r1, 16 lsrs r1, 16 bl sub_8145C8C lsls r0, 24 lsrs r0, 24 ldr r1, _08145C24 ldrh r2, [r1] cmp r0, r2 bls _08145BD8 cmp r0, 0x1 bls _08145BD8 subs r0, 0x1 strh r0, [r1] mov r9, r6 mov r10, r5 _08145BD8: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x1D bls _08145B80 mov r1, r8 lsls r0, r1, 16 lsrs r6, r0, 16 cmp r6, 0xD bls _08145B76 ldr r3, _08145C24 ldrh r0, [r3] cmp r0, 0 beq _08145C72 ldr r2, _08145C34 ldr r1, _08145C38 subs r0, 0x1 lsls r0, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r2] mov r2, r9 cmp r2, 0xE bne _08145C44 ldr r1, _08145C3C movs r0, 0 strh r0, [r1] movs r0, 0x64 mov r1, r10 muls r1, r0 adds r0, r1, 0 ldr r1, _08145C28 adds r0, r1 ldr r2, _08145C40 movs r1, 0x2 bl PokemonGetField b _08145C6C .align 2, 0 _08145C24: .4byte 0x0202e8cc _08145C28: .4byte 0x03004360 _08145C2C: .4byte 0x0202e8dc _08145C30: .4byte 0x020300a4 _08145C34: .4byte 0x0202e8ce _08145C38: .4byte gUnknown_0840CB04 _08145C3C: .4byte 0x0202e8d0 _08145C40: .4byte 0x020231cc _08145C44: ldr r1, _08145C80 movs r0, 0x1 strh r0, [r1] mov r2, r9 lsls r1, r2, 2 add r1, r9 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 mov r2, r10 lsls r1, r2, 2 add r1, r10 lsls r1, 4 ldr r2, _08145C84 adds r1, r2 adds r0, r1 ldr r2, _08145C88 movs r1, 0x2 bl PokemonGetEncryptedField _08145C6C: ldr r0, _08145C88 bl StringGetEnd10 _08145C72: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08145C80: .4byte 0x0202e8d0 _08145C84: .4byte 0x020300a4 _08145C88: .4byte 0x020231cc thumb_func_end sub_8145B00 thumb_func_start sub_8145C8C sub_8145C8C: @ 8145C8C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 lsrs r6, r0, 16 lsls r1, 16 lsrs r5, r1, 16 movs r0, 0 mov r8, r0 movs r7, 0 ldr r1, _08145D0C mov r10, r1 ldr r0, _08145D10 mov r9, r0 _08145CAC: adds r0, r6, 0 movs r1, 0xA bl __umodsi3 adds r4, r0, 0 mov r1, r10 strh r4, [r1] adds r0, r5, 0 movs r1, 0xA bl __umodsi3 mov r1, r9 strh r0, [r1] lsls r4, 16 lsls r0, 16 cmp r4, r0 bne _08145CFA adds r0, r6, 0 movs r1, 0xA bl __udivsi3 lsls r0, 16 lsrs r6, r0, 16 adds r0, r5, 0 movs r1, 0xA bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x4 bls _08145CAC _08145CFA: mov r0, r8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08145D0C: .4byte 0x02039328 _08145D10: .4byte 0x0203932a thumb_func_end sub_8145C8C thumb_func_start sub_8145D14 sub_8145D14: @ 8145D14 push {r4,lr} adds r1, r0, 0 lsrs r4, r1, 16 lsls r1, 16 lsrs r1, 16 ldr r0, _08145D34 bl VarSet ldr r0, _08145D38 adds r1, r4, 0 bl VarSet pop {r4} pop {r0} bx r0 .align 2, 0 _08145D34: .4byte 0x0000404b _08145D38: .4byte 0x0000404c thumb_func_end sub_8145D14 thumb_func_start sub_8145D3C sub_8145D3C: @ 8145D3C push {r4,lr} ldr r0, _08145D5C bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _08145D60 bl VarGet lsls r0, 16 orrs r0, r4 pop {r4} pop {r1} bx r1 .align 2, 0 _08145D5C: .4byte 0x0000404b _08145D60: .4byte 0x0000404c thumb_func_end sub_8145D3C thumb_func_start unref_sub_8145D64 unref_sub_8145D64: @ 8145D64 push {lr} lsls r0, 16 lsrs r0, 16 bl sub_8145D14 pop {r0} bx r0 thumb_func_end unref_sub_8145D64 thumb_func_start sub_8145D74 sub_8145D74: @ 8145D74 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8145D74 thumb_func_start sub_8145D88 sub_8145D88: @ 8145D88 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0xC movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 19 mov r8, r0 movs r1, 0 strh r1, [r0] ldr r6, _08145EB0 strh r1, [r6] adds r0, 0xC strh r1, [r0] subs r0, 0x2 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x14 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] add r0, sp, 0x4 strh r1, [r0] ldr r2, _08145EB4 str r0, [r2] movs r1, 0xC0 lsls r1, 19 str r1, [r2, 0x4] ldr r0, _08145EB8 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r5, 0 str r5, [sp, 0x8] add r0, sp, 0x8 str r0, [r2] movs r0, 0xE0 lsls r0, 19 str r0, [r2, 0x4] ldr r0, _08145EBC str r0, [r2, 0x8] ldr r0, [r2, 0x8] add r0, sp, 0x4 strh r5, [r0] str r0, [r2] movs r0, 0xA0 lsls r0, 19 str r0, [r2, 0x4] ldr r0, _08145EC0 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _08145EC4 bl LZ77UnCompVram ldr r0, _08145EC8 ldr r1, _08145ECC bl LZ77UnCompVram bl remove_some_task bl ResetTasks bl ResetSpriteData bl ResetPaletteFade bl FreeAllSpritePalettes ldr r0, _08145ED0 movs r1, 0 movs r2, 0x40 bl LoadPalette ldr r0, _08145ED4 bl SetUpWindowConfig ldr r0, _08145ED8 bl sub_8071C4C bl pokedex_diploma_something movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r3, _08145EDC ldrh r2, [r3] strh r5, [r3] ldr r4, _08145EE0 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08145EE4 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _08145EE8 bl SetVBlankCallback ldr r0, _08145EEC bl SetMainCallback2 ldr r0, _08145EF0 strh r5, [r0] adds r0, 0x2 strh r5, [r0] adds r0, 0x2 strh r5, [r0] ldr r1, _08145EF4 adds r0, r1, 0 strh r0, [r6] movs r1, 0xCA lsls r1, 5 adds r0, r1, 0 mov r1, r8 strh r0, [r1] ldr r0, _08145EF8 movs r1, 0 bl CreateTask add sp, 0xC pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08145EB0: .4byte REG_BG3CNT _08145EB4: .4byte 0x040000d4 _08145EB8: .4byte 0x8100c000 _08145EBC: .4byte 0x85000100 _08145EC0: .4byte 0x81000200 _08145EC4: .4byte gUnknown_0840D288 _08145EC8: .4byte gUnknown_0840CB4C _08145ECC: .4byte 0x06003000 _08145ED0: .4byte gUnknown_0840CB0C _08145ED4: .4byte gWindowConfig_81E6C3C _08145ED8: .4byte gWindowConfig_81E6CE4 _08145EDC: .4byte 0x04000208 _08145EE0: .4byte 0x04000200 _08145EE4: .4byte REG_DISPSTAT _08145EE8: .4byte sub_8145D74 _08145EEC: .4byte sub_8145EFC _08145EF0: .4byte REG_BLDCNT _08145EF4: .4byte 0x00004603 _08145EF8: .4byte sub_8145F14 thumb_func_end sub_8145D88 thumb_func_start sub_8145EFC sub_8145EFC: @ 8145EFC push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8145EFC thumb_func_start sub_8145F14 sub_8145F14: @ 8145F14 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _08145F38 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08145F34 ldr r0, _08145F3C lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _08145F40 str r0, [r1] _08145F34: pop {r0} bx r0 .align 2, 0 _08145F38: .4byte 0x0202f388 _08145F3C: .4byte 0x03004b20 _08145F40: .4byte sub_8145F44 thumb_func_end sub_8145F14 thumb_func_start sub_8145F44 sub_8145F44: @ 8145F44 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08145F80 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08145F76 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _08145F84 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08145F88 str r1, [r0] _08145F76: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08145F80: .4byte 0x03001770 _08145F84: .4byte 0x03004b20 _08145F88: .4byte sub_8145F8C thumb_func_end sub_8145F44 thumb_func_start sub_8145F8C sub_8145F8C: @ 8145F8C push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _08145FB0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08145FAA adds r0, r2, 0 bl DestroyTask ldr r0, _08145FB4 bl SetMainCallback2 _08145FAA: pop {r0} bx r0 .align 2, 0 _08145FB0: .4byte 0x0202f388 _08145FB4: .4byte sub_80546F0 thumb_func_end sub_8145F8C thumb_func_start pokedex_diploma_something pokedex_diploma_something: @ 8145FB8 push {lr} bl sub_8090FF4 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _08145FE8 ldr r1, _08145FDC movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] ldr r0, _08145FE0 ldr r1, _08145FE4 bl StringCopy b _08145FF4 .align 2, 0 _08145FDC: .4byte REG_BG3HOFS _08145FE0: .4byte 0x020231cc _08145FE4: .4byte gUnknown_0842D222 _08145FE8: ldr r0, _08146004 strh r1, [r0] ldr r0, _08146008 ldr r1, _0814600C bl StringCopy _08145FF4: ldr r0, _08146010 movs r1, 0x6 movs r2, 0x2 bl Print pop {r0} bx r0 .align 2, 0 _08146004: .4byte REG_BG3HOFS _08146008: .4byte 0x020231cc _0814600C: .4byte gUnknown_0842D21C _08146010: .4byte gUnknown_0842D22B thumb_func_end pokedex_diploma_something thumb_func_start sub_8146014 sub_8146014: @ 8146014 push {lr} bl AnimateSprites bl BuildOamBuffer bl RunTasks bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8146014 thumb_func_start sub_814602C sub_814602C: @ 814602C push {lr} ldr r2, _0814604C ldr r0, _08146050 ldrh r1, [r0] strh r1, [r2] ldr r0, _08146054 strh r1, [r0] bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 .align 2, 0 _0814604C: .4byte REG_BG0VOFS _08146050: .4byte 0x030041b4 _08146054: .4byte REG_BG1VOFS thumb_func_end sub_814602C thumb_func_start sub_8146058 sub_8146058: @ 8146058 push {r4,lr} sub sp, 0x4 ldr r0, _08146074 ldr r1, _08146078 adds r0, r1 ldrb r0, [r0] cmp r0, 0xC bls _0814606A b _08146250 _0814606A: lsls r0, 2 ldr r1, _0814607C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08146074: .4byte 0x03001770 _08146078: .4byte 0x0000043c _0814607C: .4byte _08146080 .align 2, 0 _08146080: .4byte _081460B4 .4byte _081460CC .4byte _081460F0 .4byte _081460F6 .4byte _08146110 .4byte _0814611C .4byte _0814613C .4byte _0814615C .4byte _08146170 .4byte _08146190 .4byte _081461B4 .4byte _08146204 .4byte _08146224 _081460B4: bl sub_80F9438 bl sub_80F9368 bl sub_8146288 ldr r1, _081460C8 movs r0, 0 strh r0, [r1] b _0814620C .align 2, 0 _081460C8: .4byte REG_BLDCNT _081460CC: bl ResetPaletteFade ldr r2, _081460E4 ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r1, _081460E8 ldr r0, _081460EC adds r1, r0 b _08146212 .align 2, 0 _081460E4: .4byte 0x0202f388 _081460E8: .4byte 0x03001770 _081460EC: .4byte 0x0000043c _081460F0: bl ResetSpriteData b _0814620C _081460F6: ldr r0, _08146104 bl SetUpWindowConfig ldr r1, _08146108 ldr r0, _0814610C adds r1, r0 b _08146212 .align 2, 0 _08146104: .4byte gWindowConfig_81E6E18 _08146108: .4byte 0x03001770 _0814610C: .4byte 0x0000043c _08146110: ldr r0, _08146118 bl sub_8071C58 b _0814620C .align 2, 0 _08146118: .4byte gWindowConfig_81E6E18 _0814611C: bl sub_8071C94 cmp r0, 0 bne _08146126 b _08146250 _08146126: ldr r0, _08146134 ldr r1, _08146138 adds r0, r1 movs r1, 0 strb r1, [r0] b _0814620C .align 2, 0 _08146134: .4byte 0x02000000 _08146138: .4byte 0x0001ffff _0814613C: bl sub_81462B8 lsls r0, 24 cmp r0, 0 bne _08146148 b _08146250 _08146148: ldr r0, _08146154 ldr r1, _08146158 adds r0, r1 movs r1, 0 strb r1, [r0] b _0814620C .align 2, 0 _08146154: .4byte 0x02000000 _08146158: .4byte 0x0001ffff _0814615C: bl sub_81464E4 ldr r1, _08146168 ldr r0, _0814616C adds r1, r0 b _08146212 .align 2, 0 _08146168: .4byte 0x03001770 _0814616C: .4byte 0x0000043c _08146170: ldr r0, _08146188 ldrb r0, [r0] adds r0, 0x7B lsls r0, 24 lsrs r0, 24 movs r1, 0x38 movs r2, 0x40 bl sub_80A7D8C ldr r1, _0814618C strb r0, [r1] b _0814620C .align 2, 0 _08146188: .4byte 0x0203855e _0814618C: .4byte 0x0203932c _08146190: ldr r0, _081461A8 ldrb r0, [r0] adds r0, 0x7B lsls r0, 24 lsrs r0, 24 bl sub_8146600 ldr r1, _081461AC ldr r0, _081461B0 adds r1, r0 b _08146212 .align 2, 0 _081461A8: .4byte 0x0203855e _081461AC: .4byte 0x03001770 _081461B0: .4byte 0x0000043c _081461B4: ldr r3, _081461EC ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _081461F0 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _081461F4 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _081461F8 bl SetVBlankCallback movs r1, 0x80 lsls r1, 19 movs r2, 0xFA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r1, _081461FC ldr r0, _08146200 adds r1, r0 b _08146212 .align 2, 0 _081461EC: .4byte 0x04000208 _081461F0: .4byte 0x04000200 _081461F4: .4byte REG_DISPSTAT _081461F8: .4byte sub_814602C _081461FC: .4byte 0x03001770 _08146200: .4byte 0x0000043c _08146204: bl sub_8055870 cmp r0, 0x1 beq _08146250 _0814620C: ldr r1, _0814621C ldr r2, _08146220 adds r1, r2 _08146212: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08146250 .align 2, 0 _0814621C: .4byte 0x03001770 _08146220: .4byte 0x0000043c _08146224: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r2, _08146248 ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] ldr r0, _0814624C bl SetMainCallback2 movs r0, 0x1 b _08146252 .align 2, 0 _08146248: .4byte 0x0202f388 _0814624C: .4byte sub_8146014 _08146250: movs r0, 0 _08146252: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_8146058 thumb_func_start sub_814625C sub_814625C: @ 814625C push {lr} _0814625E: bl sub_8146058 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08146278 ldr r0, _08146274 movs r1, 0 bl CreateTask b _08146284 .align 2, 0 _08146274: .4byte sub_8146480 _08146278: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0814625E _08146284: pop {r0} bx r0 thumb_func_end sub_814625C thumb_func_start sub_8146288 sub_8146288: @ 8146288 ldr r1, _081462A8 ldr r2, _081462AC adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 adds r2, 0xFE adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _081462B0 adds r0, r2, 0 strh r0, [r1] ldr r1, _081462B4 movs r0, 0 strh r0, [r1] bx lr .align 2, 0 _081462A8: .4byte REG_BG1CNT _081462AC: .4byte 0x00000502 _081462B0: .4byte 0x00000703 _081462B4: .4byte 0x030041b4 thumb_func_end sub_8146288 thumb_func_start sub_81462B8 sub_81462B8: @ 81462B8 push {r4-r7,lr} ldr r1, _081462D4 ldr r2, _081462D8 adds r0, r1, r2 ldrb r0, [r0] mov r12, r1 cmp r0, 0x6 bls _081462CA b _08146404 _081462CA: lsls r0, 2 ldr r1, _081462DC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081462D4: .4byte 0x02000000 _081462D8: .4byte 0x0001ffff _081462DC: .4byte _081462E0 .align 2, 0 _081462E0: .4byte _081462FC .4byte _0814630C .4byte _0814632C .4byte _08146340 .4byte _081463A4 .4byte _081463C4 .4byte _081463E4 _081462FC: ldr r0, _08146308 movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram b _081463CA .align 2, 0 _08146308: .4byte gUnknown_08E783FC _0814630C: ldr r0, _0814631C ldr r1, _08146320 bl LZDecompressVram ldr r1, _08146324 ldr r2, _08146328 adds r1, r2 b _081463D0 .align 2, 0 _0814631C: .4byte gUnknown_08E788E4 _08146320: .4byte 0x06002800 _08146324: .4byte 0x02000000 _08146328: .4byte 0x0001ffff _0814632C: ldr r0, _08146338 ldr r1, _0814633C bl LZDecompressVram b _081463CA .align 2, 0 _08146338: .4byte gUnknown_08E78A84 _0814633C: .4byte 0x06003000 _08146340: movs r1, 0 ldr r7, _0814635C adds r2, r7, 0 ldr r6, _08146360 ldr r5, _08146364 ldr r4, _08146368 ldr r3, _0814636C _0814634E: ldrb r0, [r5, 0x8] cmp r0, 0 bne _08146370 lsls r0, r1, 1 adds r0, r2 strh r6, [r0] b _08146376 .align 2, 0 _0814635C: .4byte 0x020221cc _08146360: .4byte 0x00004042 _08146364: .4byte gSaveBlock2 _08146368: .4byte 0x00005042 _0814636C: .4byte 0x000003ff _08146370: lsls r0, r1, 1 adds r0, r2 strh r4, [r0] _08146376: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r3 bls _0814634E ldr r1, _08146394 ldr r0, _08146398 str r7, [r0] str r1, [r0, 0x4] ldr r1, _0814639C str r1, [r0, 0x8] ldr r0, [r0, 0x8] ldr r1, _081463A0 add r1, r12 b _081463D0 .align 2, 0 _08146394: .4byte 0x06003800 _08146398: .4byte 0x040000d4 _0814639C: .4byte 0x80000400 _081463A0: .4byte 0x0001ffff _081463A4: ldr r0, _081463B8 movs r1, 0 movs r2, 0xC0 bl LoadCompressedPalette ldr r1, _081463BC ldr r2, _081463C0 adds r1, r2 b _081463D0 .align 2, 0 _081463B8: .4byte gUnknown_08E7883C _081463BC: .4byte 0x02000000 _081463C0: .4byte 0x0001ffff _081463C4: ldr r0, _081463D8 bl LoadCompressedObjectPic _081463CA: ldr r1, _081463DC ldr r0, _081463E0 adds r1, r0 _081463D0: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08146404 .align 2, 0 _081463D8: .4byte gUnknown_083C1F74 _081463DC: .4byte 0x02000000 _081463E0: .4byte 0x0001ffff _081463E4: ldr r0, _081463F8 bl LoadCompressedObjectPalette ldr r0, _081463FC ldr r1, _08146400 adds r0, r1 movs r1, 0 strb r1, [r0] movs r0, 0x1 b _08146406 .align 2, 0 _081463F8: .4byte gUnknown_083C1F7C _081463FC: .4byte 0x02000000 _08146400: .4byte 0x0001ffff _08146404: movs r0, 0 _08146406: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81462B8 thumb_func_start sub_814640C sub_814640C: @ 814640C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08146438 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08146432 ldr r0, _0814643C bl SetMainCallback2 bl sub_80A7DD4 bl gpu_pal_allocator_reset__manage_upper_four adds r0, r4, 0 bl DestroyTask _08146432: pop {r4} pop {r0} bx r0 .align 2, 0 _08146438: .4byte 0x0202f388 _0814643C: .4byte sub_80A5B40 thumb_func_end sub_814640C thumb_func_start sub_8146440 sub_8146440: @ 8146440 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _08146478 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0814647C str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08146478: .4byte 0x03004b20 _0814647C: .4byte sub_814640C thumb_func_end sub_8146440 thumb_func_start sub_8146480 sub_8146480: @ 8146480 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 ldr r0, _081464DC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081464D6 ldr r5, _081464E0 ldrh r1, [r5, 0x30] movs r6, 0xF0 adds r0, r6, 0 ands r0, r1 cmp r0, 0x40 bne _081464AC movs r1, 0x1 negs r1, r1 adds r0, r4, 0 bl sub_81466E8 _081464AC: ldrh r1, [r5, 0x30] adds r0, r6, 0 ands r0, r1 cmp r0, 0x80 bne _081464BE adds r0, r4, 0 movs r1, 0x1 bl sub_81466E8 _081464BE: ldrh r1, [r5, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081464D0 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081464D6 _081464D0: adds r0, r7, 0 bl sub_8146440 _081464D6: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081464DC: .4byte 0x0202f388 _081464E0: .4byte 0x03001770 thumb_func_end sub_8146480 thumb_func_start sub_81464E4 sub_81464E4: @ 81464E4 push {r4-r7,lr} ldr r4, _0814659C ldrb r0, [r4] adds r0, 0x7C lsls r0, 24 lsrs r0, 24 bl GetBerryInfo adds r5, r0, 0 ldr r7, _081465A0 ldrh r1, [r4] subs r1, 0x84 adds r0, r7, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN adds r0, r7, 0 movs r1, 0xC movs r2, 0x4 bl Print adds r0, r5, 0 movs r1, 0xE movs r2, 0x4 bl Print ldr r0, [r5, 0xC] movs r1, 0x4 movs r2, 0xE bl Print ldr r0, [r5, 0x10] movs r1, 0x4 movs r2, 0x10 bl Print ldrh r1, [r5, 0x8] lsls r0, r1, 5 subs r0, r1 lsls r0, 2 adds r0, r1 lsls r0, 3 movs r1, 0xFE bl __divsi3 adds r4, r0, 0 movs r1, 0xA bl __umodsi3 cmp r0, 0x4 bls _0814654E adds r4, 0xA _0814654E: adds r0, r4, 0 movs r1, 0x64 bl __umodsi3 movs r1, 0xA bl __udivsi3 adds r6, r0, 0 adds r0, r4, 0 movs r1, 0x64 bl __udivsi3 adds r4, r0, 0 ldr r0, _081465A4 movs r1, 0xB movs r2, 0x7 bl Print ldrh r0, [r5, 0x8] cmp r0, 0 beq _081465B0 adds r0, r7, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, _081465A8 adds r1, r6, 0 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, _081465AC movs r1, 0x10 movs r2, 0x7 bl Print b _081465BA .align 2, 0 _0814659C: .4byte 0x0203855e _081465A0: .4byte 0x020231cc _081465A4: .4byte gUnknown_0840EB07 _081465A8: .4byte 0x020232cc _081465AC: .4byte gUnknown_0840EB15 _081465B0: ldr r0, _081465E0 movs r1, 0x10 movs r2, 0x7 bl Print _081465BA: ldr r0, _081465E4 movs r1, 0xB movs r2, 0x9 bl Print ldrb r0, [r5, 0x7] cmp r0, 0 beq _081465EC ldr r0, _081465E8 ldrb r1, [r5, 0x7] subs r1, 0x1 lsls r1, 2 adds r1, r0 ldr r0, [r1] movs r1, 0x10 movs r2, 0x9 bl Print b _081465F6 .align 2, 0 _081465E0: .4byte gUnknown_0840E674 _081465E4: .4byte gUnknown_0840EB0E _081465E8: .4byte gUnknown_0841192C _081465EC: ldr r0, _081465FC movs r1, 0x10 movs r2, 0x9 bl Print _081465F6: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081465FC: .4byte gUnknown_0840E674 thumb_func_end sub_81464E4 thumb_func_start sub_8146600 sub_8146600: @ 8146600 push {r4,r5,lr} lsls r0, 24 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r0, 24 bl GetBerryInfo adds r4, r0, 0 movs r2, 0 ldr r5, _08146698 ldr r0, _0814669C adds r3, r0, 0 _0814661A: lsls r0, r2, 1 adds r0, r5 ldrh r1, [r0] orrs r1, r3 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x4 bls _0814661A ldrb r0, [r4, 0x15] cmp r0, 0 beq _08146642 movs r0, 0x30 bl sub_80A7E5C ldr r1, _08146698 lsls r0, 24 lsrs r0, 24 strh r0, [r1] _08146642: ldrb r0, [r4, 0x16] cmp r0, 0 beq _08146656 movs r0, 0x58 bl sub_80A7E5C ldr r1, _08146698 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x2] _08146656: ldrb r0, [r4, 0x17] cmp r0, 0 beq _0814666A movs r0, 0x80 bl sub_80A7E5C ldr r1, _08146698 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x4] _0814666A: ldrb r0, [r4, 0x18] cmp r0, 0 beq _0814667E movs r0, 0xA8 bl sub_80A7E5C ldr r1, _08146698 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x6] _0814667E: ldrb r0, [r4, 0x19] cmp r0, 0 beq _08146692 movs r0, 0xD0 bl sub_80A7E5C ldr r1, _08146698 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x8] _08146692: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08146698: .4byte 0x0203932e _0814669C: .4byte 0x0000ffff thumb_func_end sub_8146600 thumb_func_start sub_81466A0 sub_81466A0: @ 81466A0 push {r4-r7,lr} movs r5, 0 movs r7, 0x1 negs r7, r7 ldr r6, _081466DC _081466AA: lsls r0, r5, 1 adds r4, r0, r6 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, r7 beq _081466CA adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081466E0 adds r0, r1 bl DestroySprite ldr r0, _081466E4 strh r0, [r4] _081466CA: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x4 bls _081466AA pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081466DC: .4byte 0x0203932e _081466E0: .4byte 0x02020004 _081466E4: .4byte 0x0000ffff thumb_func_end sub_81466A0 thumb_func_start sub_81466E8 sub_81466E8: @ 81466E8 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r2, r1, 24 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, _08146748 adds r6, r0, r1 ldr r4, _0814674C movs r0, 0xC adds r0, r4 mov r8, r0 ldrb r1, [r0, 0x1] ldrb r0, [r4, 0xC] adds r1, r0 cmp r1, 0 bne _08146718 lsls r0, r2, 24 cmp r0, 0 blt _0814678C _08146718: adds r0, r1, 0x1 lsls r5, r2, 24 mov r1, r8 ldrb r1, [r1, 0x2] cmp r0, r1 bne _08146728 cmp r5, 0 bgt _0814678C _08146728: movs r0, 0x5 bl audio_play mov r2, r8 ldrb r3, [r2, 0x1] ldrb r4, [r4, 0xC] mov r12, r4 adds r0, r3, r4 asrs r2, r5, 24 adds r1, r0, r2 cmp r1, 0 bge _08146750 negs r0, r0 strh r0, [r6, 0x2] b _08146766 .align 2, 0 _08146748: .4byte 0x03004b28 _0814674C: .4byte 0x03005d10 _08146750: mov r4, r8 ldrb r0, [r4, 0x2] cmp r1, r0 blt _08146764 subs r0, r3 mov r1, r12 subs r0, r1 subs r0, 0x1 strh r0, [r6, 0x2] b _08146766 _08146764: strh r2, [r6, 0x2] _08146766: ldr r0, _08146780 lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 ldr r0, _08146784 str r0, [r1] cmp r5, 0 bge _08146788 movs r2, 0x10 negs r2, r2 adds r0, r2, 0 b _0814678A .align 2, 0 _08146780: .4byte 0x03004b20 _08146784: .4byte sub_8146798 _08146788: movs r0, 0x10 _0814678A: strh r0, [r6] _0814678C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81466E8 thumb_func_start sub_8146798 sub_8146798: @ 8146798 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _08146800 adds r0, r1 ldr r2, _08146804 ldrh r1, [r0] ldrh r5, [r2] adds r3, r1, r5 movs r1, 0xFF ands r3, r1 strh r3, [r2] movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 ble _081467C2 cmp r3, 0x90 beq _081467CA _081467C2: cmp r0, 0 bge _081467E0 cmp r3, 0x70 bne _081467E0 _081467CA: ldr r0, _08146808 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0xA ldrsb r0, [r1, r0] bl sub_8146810 bl sub_81468BC _081467E0: ldr r0, _08146804 ldrh r2, [r0] cmp r2, 0 bne _081467FA ldr r0, _08146808 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 strh r2, [r1, 0x8] strh r2, [r1, 0xA] ldr r0, _0814680C str r0, [r1] _081467FA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08146800: .4byte 0x03004b28 _08146804: .4byte 0x030041b4 _08146808: .4byte 0x03004b20 _0814680C: .4byte sub_8146480 thumb_func_end sub_8146798 thumb_func_start sub_8146810 sub_8146810: @ 8146810 push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 adds r4, r3, 0 lsls r0, r3, 24 asrs r1, r0, 24 cmp r1, 0 ble _08146848 ldr r0, _08146840 adds r4, r0, 0 adds r4, 0xC ldrb r2, [r0, 0xC] adds r1, r2, r1 adds r6, r0, 0 cmp r1, 0x7 ble _08146844 adds r0, r3, 0 adds r0, 0xF9 adds r0, r2, r0 ldrb r1, [r4, 0x1] adds r0, r1 strb r0, [r4, 0x1] movs r0, 0x7 b _0814686E .align 2, 0 _08146840: .4byte 0x03005d10 _08146844: adds r0, r2, r3 b _0814686E _08146848: ldr r0, _08146868 adds r5, r0, 0 adds r5, 0xC ldrb r2, [r0, 0xC] adds r1, r2, r1 adds r6, r0, 0 cmp r1, 0 bge _0814686C adds r0, r2, r3 ldrb r1, [r5, 0x1] adds r0, r1 movs r1, 0 strb r0, [r5, 0x1] strb r1, [r6, 0xC] b _08146870 .align 2, 0 _08146868: .4byte 0x03005d10 _0814686C: adds r0, r2, r4 _0814686E: strb r0, [r6, 0xC] _08146870: ldr r2, _081468AC movs r0, 0x3 lsls r0, 2 adds r0, r6 ldrb r1, [r0, 0x1] ldrb r0, [r0] adds r1, r0 ldr r0, _081468B0 ldr r0, [r0] lsls r1, 2 adds r1, r0 ldrh r0, [r1] strh r0, [r2] ldr r0, _081468B4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081468B8 adds r0, r1 bl DestroySprite bl sub_81466A0 bl sub_80A7DD4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081468AC: .4byte 0x0203855e _081468B0: .4byte 0x03005d24 _081468B4: .4byte 0x0203932c _081468B8: .4byte 0x02020004 thumb_func_end sub_8146810 thumb_func_start sub_81468BC sub_81468BC: @ 81468BC push {r4,lr} movs r0, 0 movs r1, 0x4 movs r2, 0x1D movs r3, 0x13 bl Reset bl sub_81464E4 ldr r4, _081468F8 ldrb r0, [r4] adds r0, 0x7B lsls r0, 24 lsrs r0, 24 movs r1, 0x38 movs r2, 0x40 bl sub_80A7D8C ldr r1, _081468FC strb r0, [r1] ldrb r0, [r4] adds r0, 0x7B lsls r0, 24 lsrs r0, 24 bl sub_8146600 pop {r4} pop {r0} bx r0 .align 2, 0 _081468F8: .4byte 0x0203855e _081468FC: .4byte 0x0203932c thumb_func_end sub_81468BC thumb_func_start sub_8146900 sub_8146900: @ 8146900 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8146900 thumb_func_start sub_8146914 sub_8146914: @ 8146914 push {lr} movs r2, 0 ldr r1, _0814692C ldrh r0, [r1, 0x1A] ldrh r1, [r1, 0x36] cmp r0, r1 bne _08146924 movs r2, 0x1 _08146924: adds r0, r2, 0 pop {r1} bx r1 .align 2, 0 _0814692C: .4byte 0x03002970 thumb_func_end sub_8146914 thumb_func_start CB2_InitMysteryEventMenu CB2_InitMysteryEventMenu: @ 8146930 push {r4,lr} bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks ldr r0, _0814699C bl SetVBlankCallback ldr r4, _081469A0 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C bl sub_8071EF4 movs r1, 0x80 lsls r1, 19 movs r2, 0xA0 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] adds r1, 0x50 movs r0, 0 strh r0, [r1] ldr r0, _081469A4 movs r1, 0 bl CreateTask bl sub_8074D08 bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade movs r0, 0 movs r1, 0 movs r2, 0x2 bl FillPalette ldr r0, _081469A8 bl SetMainCallback2 pop {r4} pop {r0} bx r0 .align 2, 0 _0814699C: .4byte sub_8146900 _081469A0: .4byte gWindowConfig_81E6CE4 _081469A4: .4byte Task_DestroySelf _081469A8: .4byte sub_81469E4 thumb_func_end CB2_InitMysteryEventMenu thumb_func_start sub_81469AC sub_81469AC: @ 81469AC push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 movs r5, 0x1 cmp r4, 0 bne _081469C0 ldr r1, _081469DC bl StringCopy movs r5, 0 _081469C0: cmp r4, 0x2 bne _081469C6 movs r5, 0 _081469C6: cmp r4, 0x1 bne _081469D2 ldr r1, _081469E0 adds r0, r6, 0 bl StringCopy _081469D2: adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081469DC: .4byte gUnknown_0842C571 _081469E0: .4byte gUnknown_0842C58F thumb_func_end sub_81469AC thumb_func_start sub_81469E4 sub_81469E4: @ 81469E4 push {r4-r6,lr} sub sp, 0x8 ldr r1, _08146A04 ldr r2, _08146A08 adds r0, r1, r2 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0x10 bls _081469F8 b _08146DA4 _081469F8: lsls r0, 2 ldr r1, _08146A0C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08146A04: .4byte 0x03001770 _08146A08: .4byte 0x0000043c _08146A0C: .4byte _08146A10 .align 2, 0 _08146A10: .4byte _08146A54 .4byte _08146A6E .4byte _08146A9C .4byte _08146AD4 .4byte _08146B18 .4byte _08146B26 .4byte _08146B90 .4byte _08146C64 .4byte _08146C72 .4byte _08146C94 .4byte _08146CA0 .4byte _08146CB4 .4byte _08146CFC .4byte _08146D18 .4byte _08146D50 .4byte _08146D6C .4byte _08146D94 _08146A54: movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 b _08146D78 _08146A6E: ldr r0, _08146A8C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08146A7C b _08146DA4 _08146A7C: ldr r0, _08146A90 bl sub_8072044 ldr r1, _08146A94 ldr r2, _08146A98 adds r1, r2 b _08146D82 .align 2, 0 _08146A8C: .4byte 0x0202f388 _08146A90: .4byte gUnknown_0842C4C0 _08146A94: .4byte 0x03001770 _08146A98: .4byte 0x0000043c _08146A9C: bl sub_8072080 lsls r0, 24 cmp r0, 0 bne _08146AA8 b _08146DA4 _08146AA8: ldr r1, _08146AC4 ldr r0, _08146AC8 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r1, _08146ACC ldr r2, _08146AD0 adds r0, r2, 0 strh r0, [r1] bl OpenLink b _08146DA4 .align 2, 0 _08146AC4: .4byte 0x03001770 _08146AC8: .4byte 0x0000043c _08146ACC: .4byte 0x03002b74 _08146AD0: .4byte 0x00005501 _08146AD4: ldr r0, _08146B08 ldr r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08146AE2 b _08146C38 _08146AE2: movs r0, 0x1C ands r1, r0 cmp r1, 0x4 bhi _08146AEC b _08146C38 _08146AEC: movs r0, 0x15 bl audio_play ldr r0, _08146B0C bl sub_8072044 ldr r1, _08146B10 ldr r0, _08146B14 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08146C38 .align 2, 0 _08146B08: .4byte 0x03002a60 _08146B0C: .4byte gUnknown_0842C4E9 _08146B10: .4byte 0x03001770 _08146B14: .4byte 0x0000043c _08146B18: bl sub_8072080 lsls r0, 24 cmp r0, 0 bne _08146B24 b _08146DA4 _08146B24: b _08146D7C _08146B26: bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bne _08146C10 ldr r4, _08146B64 ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08146B70 movs r0, 0x5 bl audio_play bl sub_8007F4C movs r0, 0x6 movs r1, 0x5 movs r2, 0x17 movs r3, 0x8 bl DrawDefaultWindow ldr r0, _08146B68 movs r1, 0x7 movs r2, 0x6 bl Print ldr r2, _08146B6C adds r1, r4, r2 b _08146D82 .align 2, 0 _08146B64: .4byte 0x03001770 _08146B68: .4byte gUnknown_0842C524 _08146B6C: .4byte 0x0000043c _08146B70: adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08146B7A b _08146DA4 _08146B7A: movs r0, 0x5 bl audio_play bl CloseLink ldr r0, _08146B8C adds r1, r4, r0 b _08146C54 .align 2, 0 _08146B8C: .4byte 0x0000043c _08146B90: bl IsLinkConnectionEstablished lsls r0, 24 cmp r0, 0 beq _08146C38 ldr r0, _08146BD8 ldrb r0, [r0] cmp r0, 0 bne _08146BA4 b _08146DA4 _08146BA4: bl GetLinkPlayerDataExchangeStatusTimed lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _08146BE8 bl sub_800832C movs r0, 0x6 movs r1, 0x5 movs r2, 0x17 movs r3, 0x8 bl Reset ldr r4, _08146BDC adds r0, r4, 0 movs r1, 0x1 bl sub_81469AC adds r0, r4, 0 bl sub_8072044 ldr r0, _08146BE0 ldr r2, _08146BE4 adds r0, r2 b _08146C26 .align 2, 0 _08146BD8: .4byte 0x03002fa4 _08146BDC: .4byte 0x020234cc _08146BE0: .4byte 0x03001770 _08146BE4: .4byte 0x0000043c _08146BE8: bl sub_8146914 lsls r0, 24 cmp r0, 0 beq _08146C00 ldr r0, _08146BFC bl sub_8072044 b _08146D7C .align 2, 0 _08146BFC: .4byte gUnknown_0842C535 _08146C00: bl CloseLink movs r0, 0x6 movs r1, 0x5 movs r2, 0x17 movs r3, 0x8 bl Reset _08146C10: ldr r4, _08146C2C adds r0, r4, 0 movs r1, 0x1 bl sub_81469AC adds r0, r4, 0 bl sub_8072044 ldr r0, _08146C30 ldr r1, _08146C34 adds r0, r1 _08146C26: movs r1, 0xD strb r1, [r0] b _08146DA4 .align 2, 0 _08146C2C: .4byte 0x020234cc _08146C30: .4byte 0x03001770 _08146C34: .4byte 0x0000043c _08146C38: ldr r4, _08146C5C ldrh r1, [r4, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08146C46 b _08146DA4 _08146C46: movs r0, 0x5 bl audio_play bl CloseLink ldr r2, _08146C60 adds r1, r4, r2 _08146C54: movs r0, 0xF strb r0, [r1] b _08146DA4 .align 2, 0 _08146C5C: .4byte 0x03001770 _08146C60: .4byte 0x0000043c _08146C64: bl sub_8072080 lsls r0, 24 cmp r0, 0 bne _08146C70 b _08146DA4 _08146C70: b _08146D7C _08146C72: bl GetBlockRecievedStatus lsls r0, 24 cmp r0, 0 bne _08146C7E b _08146DA4 _08146C7E: bl ResetBlockReceivedFlags ldr r1, _08146C8C ldr r2, _08146C90 adds r1, r2 b _08146D82 .align 2, 0 _08146C8C: .4byte 0x03001770 _08146C90: .4byte 0x0000043c _08146C94: ldr r0, _08146C9C adds r1, r4, r0 b _08146D82 .align 2, 0 _08146C9C: .4byte 0x0000043c _08146CA0: bl sub_800832C ldr r1, _08146CAC ldr r2, _08146CB0 adds r1, r2 b _08146D82 .align 2, 0 _08146CAC: .4byte 0x03001770 _08146CB0: .4byte 0x0000043c _08146CB4: ldr r0, _08146CEC ldrb r6, [r0] cmp r6, 0 bne _08146DA4 ldr r5, _08146CF0 adds r0, r5, 0 bl sub_812613C adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 str r6, [sp, 0x4] ldr r2, _08146CF4 add r0, sp, 0x4 adds r1, r5, 0 bl CpuSet ldr r0, _08146CF8 adds r1, r4, 0 bl sub_81469AC lsls r0, 24 cmp r0, 0 bne _08146D7C movs r0, 0 bl sub_8125D44 b _08146D7C .align 2, 0 _08146CEC: .4byte 0x03002fa4 _08146CF0: .4byte 0x02000000 _08146CF4: .4byte 0x050001f5 _08146CF8: .4byte 0x020234cc _08146CFC: ldr r0, _08146D0C bl sub_8072044 ldr r1, _08146D10 ldr r2, _08146D14 adds r1, r2 b _08146D82 .align 2, 0 _08146D0C: .4byte 0x020234cc _08146D10: .4byte 0x03001770 _08146D14: .4byte 0x0000043c _08146D18: movs r0, 0x6 movs r1, 0x5 movs r2, 0x17 movs r3, 0x8 bl Reset bl sub_8072080 lsls r0, 24 cmp r0, 0 beq _08146DA4 ldr r1, _08146D44 ldr r0, _08146D48 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] ldr r0, _08146D4C strb r2, [r0] b _08146DA4 .align 2, 0 _08146D44: .4byte 0x03001770 _08146D48: .4byte 0x0000043c _08146D4C: .4byte 0x02039338 _08146D50: ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08146DA4 movs r0, 0x5 bl audio_play ldr r2, _08146D68 adds r1, r4, r2 b _08146D82 .align 2, 0 _08146D68: .4byte 0x0000043c _08146D6C: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 _08146D78: bl BeginNormalPaletteFade _08146D7C: ldr r1, _08146D8C ldr r0, _08146D90 adds r1, r0 _08146D82: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08146DA4 .align 2, 0 _08146D8C: .4byte 0x03001770 _08146D90: .4byte 0x0000043c _08146D94: ldr r0, _08146DFC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08146DA4 bl DoSoftReset _08146DA4: ldr r0, _08146E00 ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _08146DE4 bl IsLinkMaster lsls r0, 24 cmp r0, 0 bne _08146DE4 bl CloseLink movs r0, 0x6 movs r1, 0x5 movs r2, 0x17 movs r3, 0x8 bl Reset ldr r4, _08146E04 adds r0, r4, 0 movs r1, 0x1 bl sub_81469AC adds r0, r4, 0 bl sub_8072044 ldr r0, _08146E08 ldr r1, _08146E0C adds r0, r1 movs r1, 0xD strb r1, [r0] _08146DE4: bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08146DFC: .4byte 0x0202f388 _08146E00: .4byte 0x03002a60 _08146E04: .4byte 0x020234cc _08146E08: .4byte 0x03001770 _08146E0C: .4byte 0x0000043c thumb_func_end sub_81469E4 thumb_func_start fullscreen_save_activate fullscreen_save_activate: @ 8146E10 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _08146E30 bl SetMainCallback2 ldr r0, _08146E34 strh r4, [r0] ldr r1, _08146E38 movs r0, 0 strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08146E30: .4byte sub_8146E50 _08146E34: .4byte 0x0203933c _08146E38: .4byte 0x0203933e thumb_func_end fullscreen_save_activate thumb_func_start sub_8146E3C sub_8146E3C: @ 8146E3C push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8146E3C thumb_func_start sub_8146E50 sub_8146E50: @ 8146E50 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC ldr r0, _08146FB0 ldr r1, _08146FB4 adds r7, r0, r1 ldrb r0, [r7] cmp r0, 0 beq _08146E6C cmp r0, 0x1 bne _08146E6C b _0814701C _08146E6C: movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 19 mov r9, r0 movs r1, 0 strh r1, [r0] ldr r6, _08146FB8 strh r1, [r6] adds r0, 0xC mov r8, r0 strh r1, [r0] subs r0, 0x2 strh r1, [r0] ldr r5, _08146FBC strh r1, [r5] adds r0, 0x12 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] add r0, sp, 0x4 strh r1, [r0] ldr r2, _08146FC0 str r0, [r2] movs r1, 0xC0 lsls r1, 19 str r1, [r2, 0x4] ldr r0, _08146FC4 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r4, 0 str r4, [sp, 0x8] add r0, sp, 0x8 str r0, [r2] movs r0, 0xE0 lsls r0, 19 str r0, [r2, 0x4] ldr r0, _08146FC8 str r0, [r2, 0x8] ldr r0, [r2, 0x8] add r0, sp, 0x4 strh r4, [r0] str r0, [r2] movs r0, 0xA0 lsls r0, 19 str r0, [r2, 0x4] ldr r0, _08146FCC str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _08146FD0 bl LZ77UnCompVram ldr r0, _08146FD4 ldr r1, _08146FD8 bl LZ77UnCompVram ldr r0, _08146FDC ldr r1, _08146FE0 bl LZ77UnCompVram ldr r0, _08146FE4 ldr r1, _08146FE8 bl LZ77UnCompVram bl ResetSpriteData bl ResetTasks bl ResetPaletteFade ldr r0, _08146FEC movs r1, 0 movs r2, 0x40 bl LoadPalette ldr r0, _08146FF0 movs r1, 0x80 lsls r1, 1 movs r2, 0x20 bl LoadPalette ldr r0, _08146FF4 bl SetUpWindowConfig ldr r0, _08146FF8 bl sub_8071C4C movs r0, 0xD movs r1, 0x8 movs r2, 0x10 movs r3, 0xB bl DrawDefaultWindow movs r0, 0x1 movs r1, 0xC movs r2, 0x1C movs r3, 0x13 bl DrawDefaultWindow ldr r0, _08146FFC movs r1, 0x2 movs r2, 0xD bl Print movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r3, _08147000 ldrh r2, [r3] strh r4, [r3] ldr r4, _08147004 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08147008 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _0814700C bl SetVBlankCallback ldr r1, _08147010 adds r0, r1, 0 strh r0, [r6] ldr r1, _08147014 adds r0, r1, 0 mov r1, r8 strh r0, [r1] ldr r1, _08147018 adds r0, r1, 0 strh r0, [r5] movs r1, 0xEA lsls r1, 5 adds r0, r1, 0 mov r1, r9 strh r0, [r1] ldrb r0, [r7] adds r0, 0x1 strb r0, [r7] b _08147032 .align 2, 0 _08146FB0: .4byte 0x03001770 _08146FB4: .4byte 0x0000043c _08146FB8: .4byte REG_BG3CNT _08146FBC: .4byte REG_BG0CNT _08146FC0: .4byte 0x040000d4 _08146FC4: .4byte 0x8100c000 _08146FC8: .4byte 0x85000100 _08146FCC: .4byte 0x81000200 _08146FD0: .4byte gUnknown_083F66F0 _08146FD4: .4byte gUnknown_083F636C _08146FD8: .4byte 0x06003000 _08146FDC: .4byte gUnknown_083F64F8 _08146FE0: .4byte 0x06003800 _08146FE4: .4byte gUnknown_08411980 _08146FE8: .4byte 0x06010020 _08146FEC: .4byte gUnknown_083F62EC _08146FF0: .4byte gUnknown_08411960 _08146FF4: .4byte gWindowConfig_81E6C3C _08146FF8: .4byte gWindowConfig_81E6CE4 _08146FFC: .4byte gUnknown_084115F9 _08147000: .4byte 0x04000208 _08147004: .4byte 0x04000200 _08147008: .4byte REG_DISPSTAT _0814700C: .4byte sub_8146E3C _08147010: .4byte 0x00000703 _08147014: .4byte 0x00000602 _08147018: .4byte 0x00001f08 _0814701C: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _08147032 ldr r0, _08147040 bl SetMainCallback2 ldr r0, _08147044 bl SetVBlankCallback _08147032: add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08147040: .4byte sub_8147048 _08147044: .4byte sub_8147218 thumb_func_end sub_8146E50 thumb_func_start sub_8147048 sub_8147048: @ 8147048 push {r4,r5,lr} movs r4, 0 ldr r0, _081470C8 movs r1, 0x1 strh r1, [r0] ldr r1, _081470CC ldr r0, [r1] cmp r0, 0 beq _081470A6 adds r5, r1, 0 _0814705C: ldr r0, [r5] bl sub_814737C lsls r0, 24 cmp r0, 0 bne _0814710C movs r0, 0x1 movs r1, 0xC movs r2, 0x1C movs r3, 0x13 bl DrawDefaultWindow ldr r0, _081470D0 movs r1, 0x2 movs r2, 0xD bl Print ldr r0, _081470D4 ldrb r0, [r0] bl sub_8125C3C ldr r0, [r5] cmp r0, 0 beq _08147096 ldr r0, _081470D8 movs r1, 0x2 movs r2, 0xD bl Print _08147096: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, [r5] cmp r0, 0 beq _081470A6 cmp r4, 0x2 bls _0814705C _081470A6: cmp r4, 0x3 bne _081470E4 movs r0, 0x1 movs r1, 0xC movs r2, 0x1C movs r3, 0x13 bl DrawDefaultWindow ldr r0, _081470DC movs r1, 0x2 movs r2, 0xD bl Print ldr r0, _081470E0 bl SetMainCallback2 b _0814713E .align 2, 0 _081470C8: .4byte 0x0203933e _081470CC: .4byte 0x03005ea8 _081470D0: .4byte gUnknown_0841170F _081470D4: .4byte 0x0203933c _081470D8: .4byte gUnknown_084115F9 _081470DC: .4byte gUnknown_0841164E _081470E0: .4byte sub_81471A4 _081470E4: movs r0, 0x1 movs r1, 0xC movs r2, 0x1C movs r3, 0x13 bl DrawDefaultWindow ldr r0, _08147104 ldr r0, [r0] cmp r0, 0 bne _08147134 ldr r0, _08147108 movs r1, 0x2 movs r2, 0xD bl Print b _0814713E .align 2, 0 _08147104: .4byte 0x03005ebc _08147108: .4byte gUnknown_08411747 _0814710C: movs r0, 0x1 movs r1, 0xC movs r2, 0x1C movs r3, 0x13 bl DrawDefaultWindow ldr r0, _0814712C movs r1, 0x2 movs r2, 0xD bl Print ldr r0, _08147130 bl SetMainCallback2 b _08147144 .align 2, 0 _0814712C: .4byte gUnknown_0841164E _08147130: .4byte sub_8147154 _08147134: ldr r0, _0814714C movs r1, 0x2 movs r2, 0xD bl Print _0814713E: ldr r0, _08147150 bl SetMainCallback2 _08147144: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0814714C: .4byte gUnknown_08411799 _08147150: .4byte sub_81471A4 thumb_func_end sub_8147048 thumb_func_start sub_8147154 sub_8147154: @ 8147154 push {lr} ldr r1, _08147190 movs r0, 0 strh r0, [r1] ldr r0, _08147194 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0814718A movs r0, 0x1 movs r1, 0xC movs r2, 0x1C movs r3, 0x13 bl DrawDefaultWindow ldr r0, _08147198 movs r1, 0x2 movs r2, 0xD bl Print ldr r0, _0814719C bl SetVBlankCallback ldr r0, _081471A0 bl SetMainCallback2 _0814718A: pop {r0} bx r0 .align 2, 0 _08147190: .4byte 0x0203933e _08147194: .4byte 0x03001770 _08147198: .4byte gUnknown_084116CB _0814719C: .4byte sub_8146E3C _081471A0: .4byte sub_81471A4 thumb_func_end sub_8147154 thumb_func_start sub_81471A4 sub_81471A4: @ 81471A4 push {lr} sub sp, 0x4 ldr r0, _081471DC movs r2, 0 strh r2, [r0] ldr r0, _081471E0 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081471D4 movs r0, 0x1 negs r0, r0 str r2, [sp] movs r1, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _081471E4 bl SetVBlankCallback ldr r0, _081471E8 bl SetMainCallback2 _081471D4: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _081471DC: .4byte 0x0203933e _081471E0: .4byte 0x03001770 _081471E4: .4byte sub_8146E3C _081471E8: .4byte sub_81471EC thumb_func_end sub_81471A4 thumb_func_start sub_81471EC sub_81471EC: @ 81471EC push {r4,r5,lr} bl UpdatePaletteFade lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08147212 ldr r5, _08147208 ldr r0, [r5] cmp r0, 0 bne _0814720C bl DoSoftReset b _08147212 .align 2, 0 _08147208: .4byte 0x03005ebc _0814720C: bl SetMainCallback2 str r4, [r5] _08147212: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81471EC thumb_func_start sub_8147218 sub_8147218: @ 8147218 push {r4,r5,lr} ldr r0, _08147290 mov r12, r0 ldr r0, [r0, 0x24] lsrs r4, r0, 3 movs r0, 0x7 ands r4, r0 ldr r0, _08147294 ldr r1, [r0, 0x4] ldr r0, [r0] mov r2, r12 str r0, [r2, 0x3C] str r1, [r2, 0x40] ldrh r1, [r2, 0x3E] ldr r0, _08147298 ands r0, r1 movs r1, 0x70 orrs r0, r1 strh r0, [r2, 0x3E] mov r1, r12 adds r1, 0x3C movs r0, 0x48 strb r0, [r1] ldr r0, _0814729C ldrh r0, [r0] cmp r0, 0 beq _081472A8 ldr r3, _081472A0 lsls r2, r4, 1 adds r2, r4 adds r0, r2, r3 mov r4, r12 adds r4, 0x40 ldrb r5, [r0] ldrh r1, [r4] ldr r0, _081472A4 ands r0, r1 orrs r0, r5 strh r0, [r4] adds r0, r3, 0x2 adds r0, r2, r0 ldrb r1, [r0] lsls r1, 4 adds r3, 0x1 adds r2, r3 ldrb r0, [r2] lsls r0, 3 orrs r1, r0 mov r3, r12 adds r3, 0x3F movs r0, 0x1F ands r1, r0 lsls r1, 1 ldrb r2, [r3] movs r0, 0x3F negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] b _081472B8 .align 2, 0 _08147290: .4byte 0x03001770 _08147294: .4byte gUnknown_08411940 _08147298: .4byte 0xfffffe00 _0814729C: .4byte 0x0203933e _081472A0: .4byte gUnknown_08411948 _081472A4: .4byte 0xfffffc00 _081472A8: mov r2, r12 adds r2, 0x40 ldrh r1, [r2] ldr r0, _081472D8 ands r0, r1 movs r1, 0x1 orrs r0, r1 strh r0, [r2] _081472B8: ldr r0, _081472DC movs r1, 0xE0 lsls r1, 19 movs r2, 0x1 bl CpuFastSet ldr r1, _081472E0 ldrh r0, [r1, 0x2] cmp r0, 0 beq _081472D0 subs r0, 0x1 strh r0, [r1, 0x2] _081472D0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081472D8: .4byte 0xfffffc00 _081472DC: .4byte 0x030017ac _081472E0: .4byte 0x0203933e thumb_func_end sub_8147218 thumb_func_start sub_81472E4 sub_81472E4: @ 81472E4 push {r4,lr} lsls r0, 16 lsrs r0, 16 ldr r4, _08147308 movs r3, 0x80 lsls r3, 5 movs r1, 0 adds r2, r4, 0 bl ReadFlash movs r1, 0 ldr r2, _0814730C _081472FC: ldr r0, [r4] cmp r0, 0 beq _08147310 movs r0, 0x1 b _0814731E .align 2, 0 _08147308: .4byte 0x02000000 _0814730C: .4byte 0x000003ff _08147310: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 adds r4, 0x4 cmp r1, r2 bls _081472FC movs r0, 0 _0814731E: pop {r4} pop {r1} bx r1 thumb_func_end sub_81472E4 thumb_func_start sub_8147324 sub_8147324: @ 8147324 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 lsrs r6, r0, 16 movs r0, 0 ldr r1, _08147374 mov r8, r1 ldr r7, _08147378 _08147336: movs r4, 0 adds r5, r0, 0x1 _0814733A: ldr r3, [r7] adds r0, r6, 0 adds r1, r4, 0 movs r2, 0 bl _call_via_r3 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r8 bls _0814733A adds r0, r6, 0 bl sub_81472E4 lsls r0, 24 lsrs r1, r0, 24 lsls r0, r5, 16 lsrs r0, 16 cmp r1, 0 beq _08147366 cmp r0, 0x81 bls _08147336 _08147366: adds r0, r1, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08147374: .4byte 0x00000fff _08147378: .4byte 0x030074a4 thumb_func_end sub_8147324 thumb_func_start sub_814737C sub_814737C: @ 814737C push {r4-r6,lr} adds r5, r0, 0 movs r6, 0 _08147382: movs r4, 0x1 lsls r4, r6 adds r0, r5, 0 ands r0, r4 cmp r0, 0 beq _0814739C adds r0, r6, 0 bl sub_8147324 lsls r0, 24 cmp r0, 0 bne _0814739C bics r5, r4 _0814739C: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x1F bls _08147382 cmp r5, 0 beq _081473AE movs r0, 0x1 b _081473B0 _081473AE: movs r0, 0 _081473B0: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_814737C thumb_func_start sub_81473B8 sub_81473B8: @ 81473B8 push {lr} ldr r0, _081473E8 bl FlagGet lsls r0, 24 cmp r0, 0 bne _08147400 ldr r2, _081473EC ldrh r1, [r2, 0x4] ldr r0, _081473F0 cmp r1, r0 bne _08147400 ldr r1, [r2] ldr r0, _081473F4 cmp r1, r0 beq _081473E4 ldr r0, _081473F8 cmp r1, r0 beq _081473E4 ldr r0, _081473FC cmp r1, r0 bne _08147400 _081473E4: movs r0, 0x1 b _08147402 .align 2, 0 _081473E8: .4byte 0x0000084f _081473EC: .4byte 0x02025734 _081473F0: .4byte 0x00004718 _081473F4: .4byte 0x0003000a _081473F8: .4byte 0x00030009 _081473FC: .4byte 0x0003000b _08147400: movs r0, 0 _08147402: pop {r1} bx r1 thumb_func_end sub_81473B8 thumb_func_start sub_8147408 sub_8147408: @ 8147408 push {lr} ldr r2, _08147460 movs r0, 0x10 movs r1, 0x8 bl MapGridSetMetatileIdAt ldr r2, _08147464 movs r0, 0x11 movs r1, 0x8 bl MapGridSetMetatileIdAt movs r2, 0x8B lsls r2, 2 movs r0, 0x12 movs r1, 0x8 bl MapGridSetMetatileIdAt ldr r2, _08147468 movs r0, 0x10 movs r1, 0x9 bl MapGridSetMetatileIdAt ldr r2, _0814746C movs r0, 0x11 movs r1, 0x9 bl MapGridSetMetatileIdAt ldr r2, _08147470 movs r0, 0x12 movs r1, 0x9 bl MapGridSetMetatileIdAt bl DrawWholeMapView movs r0, 0x14 bl audio_play ldr r0, _08147474 bl FlagSet bl script_env_2_disable pop {r0} bx r0 .align 2, 0 _08147460: .4byte 0x0000022a _08147464: .4byte 0x0000022b _08147468: .4byte 0x00000e32 _0814746C: .4byte 0x00000233 _08147470: .4byte 0x00000e34 _08147474: .4byte 0x0000084f thumb_func_end sub_8147408 thumb_func_start sub_8147478 sub_8147478: @ 8147478 push {r4,lr} ldr r4, _081474B4 adds r0, r4, 0 movs r1, 0x41 movs r2, 0 bl PokemonGetField ldr r1, _081474B8 cmp r0, r1 bne _081474C0 bl calc_player_party_count ldr r0, _081474BC ldrb r1, [r0] movs r0, 0x64 muls r0, r1 adds r1, r4, 0 subs r1, 0x64 adds r0, r1 movs r1, 0x41 movs r2, 0 bl PokemonGetField movs r1, 0x9D lsls r1, 1 cmp r0, r1 bne _081474C0 movs r0, 0x1 b _081474C2 .align 2, 0 _081474B4: .4byte 0x03004360 _081474B8: .4byte 0x0000017d _081474BC: .4byte 0x03004350 _081474C0: movs r0, 0 _081474C2: pop {r4} pop {r1} bx r1 thumb_func_end sub_8147478 thumb_func_start sub_81474C8 sub_81474C8: @ 81474C8 push {lr} movs r0, 0x85 lsls r0, 4 bl FlagGet lsls r0, 24 cmp r0, 0 bne _0814750C ldr r2, _081474FC ldrh r1, [r2, 0x4] movs r0, 0xC3 lsls r0, 3 cmp r1, r0 bne _0814750C ldr r1, [r2] ldr r0, _08147500 cmp r1, r0 beq _081474F8 ldr r0, _08147504 cmp r1, r0 beq _081474F8 ldr r0, _08147508 cmp r1, r0 bne _0814750C _081474F8: movs r0, 0x1 b _0814750E .align 2, 0 _081474FC: .4byte 0x02025734 _08147500: .4byte 0x0017000a _08147504: .4byte 0x00170009 _08147508: .4byte 0x0017000b _0814750C: movs r0, 0 _0814750E: pop {r1} bx r1 thumb_func_end sub_81474C8 thumb_func_start sub_8147514 sub_8147514: @ 8147514 push {lr} movs r0, 0x28 bl FieldEffectActiveListRemove ldr r2, _08147574 movs r0, 0xE movs r1, 0x1A bl MapGridSetMetatileIdAt ldr r2, _08147578 movs r0, 0xF movs r1, 0x1A bl MapGridSetMetatileIdAt movs r2, 0x8B lsls r2, 2 movs r0, 0x10 movs r1, 0x1A bl MapGridSetMetatileIdAt ldr r2, _0814757C movs r0, 0xE movs r1, 0x1B bl MapGridSetMetatileIdAt ldr r2, _08147580 movs r0, 0xF movs r1, 0x1B bl MapGridSetMetatileIdAt ldr r2, _08147584 movs r0, 0x10 movs r1, 0x1B bl MapGridSetMetatileIdAt bl DrawWholeMapView movs r0, 0x14 bl audio_play movs r0, 0x85 lsls r0, 4 bl FlagSet bl script_env_2_disable pop {r0} bx r0 .align 2, 0 _08147574: .4byte 0x0000022a _08147578: .4byte 0x0000022b _0814757C: .4byte 0x00000e32 _08147580: .4byte 0x00000233 _08147584: .4byte 0x00000e34 thumb_func_end sub_8147514 thumb_func_start sub_8147588 sub_8147588: @ 8147588 push {lr} ldr r0, _081475AC bl FlagGet lsls r0, 24 cmp r0, 0 bne _081475BC ldr r2, _081475B0 ldrh r1, [r2, 0x4] ldr r0, _081475B4 cmp r1, r0 bne _081475BC ldr r1, [r2] ldr r0, _081475B8 cmp r1, r0 bne _081475BC movs r0, 0x1 b _081475BE .align 2, 0 _081475AC: .4byte 0x00000852 _081475B0: .4byte 0x02025734 _081475B4: .4byte 0x00004418 _081475B8: .4byte 0x00190008 _081475BC: movs r0, 0 _081475BE: pop {r1} bx r1 thumb_func_end sub_8147588 thumb_func_start sub_81475C4 sub_81475C4: @ 81475C4 push {lr} ldr r0, _081475D8 ldr r1, _081475DC ldrb r1, [r1] str r1, [r0] movs r0, 0x3C bl FieldEffectStart pop {r0} bx r0 .align 2, 0 _081475D8: .4byte 0x0202ff84 _081475DC: .4byte 0x03005ce0 thumb_func_end sub_81475C4 thumb_func_start sub_81475E0 sub_81475E0: @ 81475E0 push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _08147604 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _08147608 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0 pop {r1} bx r1 .align 2, 0 _08147604: .4byte 0x03004b20 _08147608: .4byte sub_814760C thumb_func_end sub_81475E0 thumb_func_start sub_814760C sub_814760C: @ 814760C push {lr} movs r0, 0x3C bl FieldEffectActiveListRemove bl sub_814761C pop {r0} bx r0 thumb_func_end sub_814760C thumb_func_start sub_814761C sub_814761C: @ 814761C push {lr} ldr r2, _08147674 movs r0, 0xE movs r1, 0x1A bl MapGridSetMetatileIdAt ldr r2, _08147678 movs r0, 0xF movs r1, 0x1A bl MapGridSetMetatileIdAt movs r2, 0x8B lsls r2, 2 movs r0, 0x10 movs r1, 0x1A bl MapGridSetMetatileIdAt ldr r2, _0814767C movs r0, 0xE movs r1, 0x1B bl MapGridSetMetatileIdAt ldr r2, _08147680 movs r0, 0xF movs r1, 0x1B bl MapGridSetMetatileIdAt ldr r2, _08147684 movs r0, 0x10 movs r1, 0x1B bl MapGridSetMetatileIdAt bl DrawWholeMapView movs r0, 0x14 bl audio_play ldr r0, _08147688 bl FlagSet bl script_env_2_disable pop {r0} bx r0 .align 2, 0 _08147674: .4byte 0x0000022a _08147678: .4byte 0x0000022b _0814767C: .4byte 0x00000e32 _08147680: .4byte 0x00000233 _08147684: .4byte 0x00000e34 _08147688: .4byte 0x00000852 thumb_func_end sub_814761C thumb_func_start sub_814768C sub_814768C: @ 814768C push {lr} ldr r0, _081476A8 bl FlagGet lsls r0, 24 cmp r0, 0 bne _081476A2 ldr r0, _081476AC movs r1, 0x50 bl CreateTask _081476A2: pop {r0} bx r0 .align 2, 0 _081476A8: .4byte 0x00000851 _081476AC: .4byte sub_81476B0 thumb_func_end sub_814768C thumb_func_start sub_81476B0 sub_81476B0: @ 81476B0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _081476D4 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x4 bhi _0814776A lsls r0, 2 ldr r1, _081476D8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081476D4: .4byte 0x03004b28 _081476D8: .4byte _081476DC .align 2, 0 _081476DC: .4byte _081476F0 .4byte _081476FE .4byte _08147730 .4byte _08147748 .4byte _0814775A _081476F0: movs r1, 0xE1 lsls r1, 5 adds r0, r1, 0 strh r0, [r4, 0x2] movs r0, 0x1 strh r0, [r4] b _0814776A _081476FE: bl sub_8147774 cmp r0, 0 beq _08147716 bl sub_8071EF4 movs r0, 0x5 bl audio_play movs r0, 0x2 strh r0, [r4] b _0814776A _08147716: ldrh r0, [r4, 0x2] subs r0, 0x1 strh r0, [r4, 0x2] lsls r0, 16 cmp r0, 0 bne _0814776A bl sub_8071EF4 movs r0, 0x3 strh r0, [r4] movs r0, 0x1E strh r0, [r4, 0x2] b _0814776A _08147730: bl sub_8147774 cmp r0, 0 beq _08147748 bl sub_8064E2C adds r0, r5, 0 bl DestroyTask bl script_env_2_disable b _0814776A _08147748: ldrh r0, [r4, 0x2] subs r0, 0x1 strh r0, [r4, 0x2] lsls r0, 16 cmp r0, 0 bne _0814776A movs r0, 0x4 strh r0, [r4] b _0814776A _0814775A: bl sub_8064E2C ldr r0, _08147770 bl script_env_1_execute_new_script adds r0, r5, 0 bl DestroyTask _0814776A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08147770: .4byte gUnknown_0815EF19 thumb_func_end sub_81476B0 thumb_func_start sub_8147774 sub_8147774: @ 8147774 push {lr} movs r1, 0xFF ldr r0, _081477A4 ldrb r2, [r0, 0x13] cmp r2, 0x1 bne _08147788 movs r3, 0xC0 lsls r3, 2 adds r0, r3, 0 orrs r1, r0 _08147788: cmp r2, 0x2 bne _08147794 movs r2, 0x80 lsls r2, 2 adds r0, r2, 0 orrs r1, r0 _08147794: ldr r0, _081477A8 ldrh r0, [r0, 0x2E] ands r1, r0 cmp r1, 0 bne _081477AC movs r0, 0 b _081477AE .align 2, 0 _081477A4: .4byte gSaveBlock2 _081477A8: .4byte 0x03001770 _081477AC: movs r0, 0x1 _081477AE: pop {r1} bx r1 thumb_func_end sub_8147774 thumb_func_start sub_81477B4 sub_81477B4: @ 81477B4 push {lr} ldr r0, _081477E8 movs r1, 0x9 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _081477EC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0xA] strh r0, [r1, 0xC] movs r0, 0x2 strh r0, [r1, 0x10] movs r0, 0x5 strh r0, [r1, 0x12] movs r0, 0x32 strh r0, [r1, 0x14] movs r0, 0 bl SetCameraPanningCallback pop {r0} bx r0 .align 2, 0 _081477E8: .4byte sub_814782C _081477EC: .4byte 0x03004b20 thumb_func_end sub_81477B4 thumb_func_start sub_81477F0 sub_81477F0: @ 81477F0 push {lr} ldr r0, _08147824 movs r1, 0x9 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08147828 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0xA] strh r0, [r1, 0xC] movs r0, 0x3 strh r0, [r1, 0x10] movs r0, 0x5 strh r0, [r1, 0x12] movs r0, 0x2 strh r0, [r1, 0x14] movs r0, 0 bl SetCameraPanningCallback pop {r0} bx r0 .align 2, 0 _08147824: .4byte sub_814782C _08147828: .4byte 0x03004b20 thumb_func_end sub_81477F0 thumb_func_start sub_814782C sub_814782C: @ 814782C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0814788C adds r4, r0, r1 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] movs r1, 0xA ldrsh r0, [r4, r1] movs r2, 0x12 ldrsh r1, [r4, r2] bl __modsi3 cmp r0, 0 bne _08147884 strh r0, [r4, 0xA] ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] ldrh r0, [r4, 0x10] negs r0, r0 strh r0, [r4, 0x10] movs r0, 0x10 ldrsh r1, [r4, r0] movs r0, 0 bl SetCameraPanning movs r2, 0xC ldrsh r1, [r4, r2] movs r2, 0x14 ldrsh r0, [r4, r2] cmp r1, r0 bne _08147884 adds r0, r5, 0 bl DestroyTask bl script_env_2_enable_and_set_ctx_running bl InstallCameraPanAheadCallback _08147884: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0814788C: .4byte 0x03004b20 thumb_func_end sub_814782C thumb_func_start sub_8147890 sub_8147890: @ 8147890 push {lr} bl AnimateSprites bl BuildOamBuffer bl RunTasks bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8147890 thumb_func_start sub_81478A8 sub_81478A8: @ 81478A8 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_81478A8 thumb_func_start sub_81478BC sub_81478BC: @ 81478BC push {r4,lr} sub sp, 0x4 ldr r0, _081478D8 ldr r1, _081478DC adds r0, r1 ldrb r0, [r0] cmp r0, 0xD bls _081478CE b _08147AD0 _081478CE: lsls r0, 2 ldr r1, _081478E0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _081478D8: .4byte 0x03001770 _081478DC: .4byte 0x0000043c _081478E0: .4byte _081478E4 .align 2, 0 _081478E4: .4byte _0814791C .4byte _08147938 .4byte _0814794C .4byte _08147960 .4byte _08147966 .4byte _08147980 .4byte _0814798C .4byte _081479B8 .4byte _081479DC .4byte _081479F4 .4byte _08147A20 .4byte _08147A3C .4byte _08147A5C .4byte _08147A8C _0814791C: bl sub_80F9438 bl sub_80F9368 bl sub_8147B04 ldr r1, _08147930 ldr r2, _08147934 adds r1, r2 b _08147A4A .align 2, 0 _08147930: .4byte 0x03001770 _08147934: .4byte 0x0000043c _08147938: bl ResetPaletteFade ldr r2, _08147948 ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] b _08147A44 .align 2, 0 _08147948: .4byte 0x0202f388 _0814794C: bl ResetSpriteData ldr r1, _08147958 ldr r2, _0814795C adds r1, r2 b _08147A4A .align 2, 0 _08147958: .4byte 0x03001770 _0814795C: .4byte 0x0000043c _08147960: bl FreeAllSpritePalettes b _08147A44 _08147966: ldr r0, _08147974 bl SetUpWindowConfig ldr r1, _08147978 ldr r2, _0814797C adds r1, r2 b _08147A4A .align 2, 0 _08147974: .4byte gWindowConfig_81E6E50 _08147978: .4byte 0x03001770 _0814797C: .4byte 0x0000043c _08147980: ldr r0, _08147988 bl sub_8071C58 b _08147A44 .align 2, 0 _08147988: .4byte gWindowConfig_81E6E50 _0814798C: bl sub_8071C94 cmp r0, 0 bne _08147996 b _08147AD0 _08147996: ldr r0, _081479A8 ldr r1, _081479AC adds r0, r1 movs r1, 0 strb r1, [r0] ldr r1, _081479B0 ldr r2, _081479B4 adds r1, r2 b _08147A4A .align 2, 0 _081479A8: .4byte 0x02000000 _081479AC: .4byte 0x0001ffff _081479B0: .4byte 0x03001770 _081479B4: .4byte 0x0000043c _081479B8: ldr r0, _081479D4 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _081479D8 adds r0, r1 bl sub_8147B20 lsls r0, 24 cmp r0, 0 bne _081479D0 b _08147AD0 _081479D0: b _08147A44 .align 2, 0 _081479D4: .4byte 0x02039310 _081479D8: .4byte 0x03004360 _081479DC: bl sub_81480B4 ldr r1, _081479EC ldr r2, _081479F0 adds r1, r2 strb r0, [r1] b _08147A44 .align 2, 0 _081479EC: .4byte 0x02000000 _081479F0: .4byte 0x0001fffd _081479F4: ldr r0, _08147A10 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08147A14 adds r0, r1 bl sub_8147F84 ldr r1, _08147A18 ldr r2, _08147A1C adds r1, r2 strb r0, [r1] b _08147A44 .align 2, 0 _08147A10: .4byte 0x02039310 _08147A14: .4byte 0x03004360 _08147A18: .4byte 0x02000000 _08147A1C: .4byte 0x0001fffe _08147A20: movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow ldr r1, _08147A34 ldr r2, _08147A38 adds r1, r2 b _08147A4A .align 2, 0 _08147A34: .4byte 0x03001770 _08147A38: .4byte 0x0000043c _08147A3C: bl sub_8055870 cmp r0, 0x1 beq _08147AD0 _08147A44: ldr r1, _08147A54 ldr r0, _08147A58 adds r1, r0 _08147A4A: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08147AD0 .align 2, 0 _08147A54: .4byte 0x03001770 _08147A58: .4byte 0x0000043c _08147A5C: ldr r3, _08147AB0 ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _08147AB4 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08147AB8 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _08147ABC bl SetVBlankCallback ldr r1, _08147AC0 ldr r2, _08147AC4 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08147A8C: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r2, _08147AC8 ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] ldr r0, _08147ACC bl SetMainCallback2 movs r0, 0x1 b _08147AD2 .align 2, 0 _08147AB0: .4byte 0x04000208 _08147AB4: .4byte 0x04000200 _08147AB8: .4byte REG_DISPSTAT _08147ABC: .4byte sub_81478A8 _08147AC0: .4byte 0x03001770 _08147AC4: .4byte 0x0000043c _08147AC8: .4byte 0x0202f388 _08147ACC: .4byte sub_8147890 _08147AD0: movs r0, 0 _08147AD2: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_81478BC thumb_func_start sub_8147ADC sub_8147ADC: @ 8147ADC push {lr} _08147ADE: bl sub_81478BC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08147AF2 movs r0, 0x1 bl sub_8147DDC b _08147AFE _08147AF2: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08147ADE _08147AFE: pop {r0} bx r0 thumb_func_end sub_8147ADC thumb_func_start sub_8147B04 sub_8147B04: @ 8147B04 ldr r1, _08147B18 ldr r2, _08147B1C adds r0, r2, 0 strh r0, [r1] subs r1, 0xA movs r2, 0x9A lsls r2, 5 adds r0, r2, 0 strh r0, [r1] bx lr .align 2, 0 _08147B18: .4byte REG_BG1CNT _08147B1C: .4byte 0x00001d02 thumb_func_end sub_8147B04 thumb_func_start sub_8147B20 sub_8147B20: @ 8147B20 push {r4-r6,lr} sub sp, 0xC adds r4, r0, 0 ldr r0, _08147B40 ldr r1, _08147B44 adds r0, r1 ldrb r0, [r0] cmp r0, 0x8 bls _08147B34 b _08147C84 _08147B34: lsls r0, 2 ldr r1, _08147B48 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08147B40: .4byte 0x02000000 _08147B44: .4byte 0x0001ffff _08147B48: .4byte _08147B4C .align 2, 0 _08147B4C: .4byte _08147B70 .4byte _08147BB8 .4byte _08147BF0 .4byte _08147BFC .4byte _08147C08 .4byte _08147C14 .4byte _08147C2C .4byte _08147C38 .4byte _08147C60 _08147B70: adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0 bl PokemonGetField adds r6, r0, 0 lsls r0, r5, 3 ldr r1, _08147BAC adds r0, r1 ldr r1, _08147BB0 lsls r2, r5, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08147BB4 ldr r4, [r4, 0x4] str r4, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] bl sub_800D334 b _08147C40 .align 2, 0 _08147BAC: .4byte gMonFrontPicTable _08147BB0: .4byte gMonFrontPicCoords _08147BB4: .4byte gUnknown_081FAF4C _08147BB8: adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0 bl PokemonGetField adds r6, r0, 0 adds r0, r4, 0 movs r1, 0x1 bl PokemonGetField adds r1, r0, 0 adds r0, r5, 0 adds r2, r6, 0 bl sub_80409C8 adds r4, r0, 0 bl LoadCompressedObjectPalette ldrh r0, [r4, 0x4] movs r1, 0x1 bl gpu_pal_obj_decompress_and_apply b _08147C40 _08147BF0: ldr r0, _08147BF8 bl LoadCompressedObjectPic b _08147C40 .align 2, 0 _08147BF8: .4byte gUnknown_083F7F74 _08147BFC: ldr r0, _08147C04 bl LoadCompressedObjectPalette b _08147C40 .align 2, 0 _08147C04: .4byte gUnknown_083F7F7C _08147C08: ldr r0, _08147C10 bl LoadCompressedObjectPic b _08147C40 .align 2, 0 _08147C10: .4byte gUnknown_084121DC _08147C14: ldr r0, _08147C24 ldrb r0, [r0] bl sub_8147C90 ldr r0, _08147C28 bl LoadCompressedObjectPalette b _08147C40 .align 2, 0 _08147C24: .4byte 0x0203855e _08147C28: .4byte 0x02039350 _08147C2C: ldr r0, _08147C34 movs r1, 0xC0 lsls r1, 19 b _08147C3C .align 2, 0 _08147C34: .4byte gBattleTerrainTiles_Building _08147C38: ldr r0, _08147C50 ldr r1, _08147C54 _08147C3C: bl LZDecompressVram _08147C40: ldr r1, _08147C58 ldr r0, _08147C5C adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08147C84 .align 2, 0 _08147C50: .4byte gUnknown_08E782FC _08147C54: .4byte 0x0600e800 _08147C58: .4byte 0x02000000 _08147C5C: .4byte 0x0001ffff _08147C60: ldr r0, _08147C78 movs r1, 0x20 movs r2, 0x60 bl LoadCompressedPalette ldr r0, _08147C7C ldr r1, _08147C80 adds r0, r1 movs r1, 0 strb r1, [r0] movs r0, 0x1 b _08147C86 .align 2, 0 _08147C78: .4byte gUnknown_08E62AC0 _08147C7C: .4byte 0x02000000 _08147C80: .4byte 0x0001ffff _08147C84: movs r0, 0 _08147C86: add sp, 0xC pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8147B20 thumb_func_start sub_8147C90 sub_8147C90: @ 8147C90 push {lr} lsls r0, 24 lsrs r0, 21 ldr r1, _08147CB8 adds r0, r1 movs r1, 0 bl sub_810CA9C lsls r0, 24 ldr r2, _08147CBC ldr r1, _08147CC0 lsrs r0, 22 subs r0, 0x4 adds r0, r1 ldr r0, [r0] str r0, [r2] ldr r0, _08147CC4 strh r0, [r2, 0x4] pop {r0} bx r0 .align 2, 0 _08147CB8: .4byte 0x02025f2c _08147CBC: .4byte 0x02039350 _08147CC0: .4byte gUnknown_084120A4 _08147CC4: .4byte 0x000039e2 thumb_func_end sub_8147C90 thumb_func_start sub_8147CC8 sub_8147CC8: @ 8147CC8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08147D00 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08147CDC b _08147DCE _08147CDC: ldr r0, _08147D04 lsls r2, r4, 2 adds r1, r2, r4 lsls r1, 3 adds r1, r0 movs r0, 0x8 ldrsh r3, [r1, r0] ldr r0, _08147D08 adds r5, r2, 0 cmp r3, r0 beq _08147D50 cmp r3, r0 bgt _08147D0C cmp r3, 0 beq _08147D20 cmp r3, 0xFF beq _08147D38 b _08147D8C .align 2, 0 _08147D00: .4byte 0x0202f388 _08147D04: .4byte 0x03004b20 _08147D08: .4byte 0x0000010d _08147D0C: ldr r0, _08147D1C cmp r3, r0 beq _08147D68 adds r0, 0x10 cmp r3, r0 beq _08147D80 b _08147D8C .align 2, 0 _08147D1C: .4byte 0x00000119 _08147D20: ldr r0, _08147D30 strb r3, [r0] ldr r0, _08147D34 strh r3, [r0] bl sub_81481DC b _08147D8C .align 2, 0 _08147D30: .4byte 0x03005f3c _08147D34: .4byte 0x03005f94 _08147D38: ldr r0, _08147D48 ldr r2, _08147D4C adds r0, r2 ldrb r0, [r0] ldrb r1, [r1, 0xA] bl sub_8148108 b _08147D8C .align 2, 0 _08147D48: .4byte 0x02000000 _08147D4C: .4byte 0x0001fffd _08147D50: bl sub_814817C ldr r1, _08147D60 ldr r2, _08147D64 adds r1, r2 strb r0, [r1] b _08147D8C .align 2, 0 _08147D60: .4byte 0x02000000 _08147D64: .4byte 0x0001fffc _08147D68: ldr r0, _08147D78 ldr r1, _08147D7C adds r0, r1 ldrb r0, [r0] bl sub_8148044 b _08147D8C .align 2, 0 _08147D78: .4byte 0x02000000 _08147D7C: .4byte 0x0001fffe _08147D80: ldr r0, _08147D88 str r0, [r1] b _08147DCE .align 2, 0 _08147D88: .4byte sub_8147E40 _08147D8C: ldr r0, _08147DA0 ldr r1, _08147DA4 ldrh r2, [r0] ldrh r0, [r1] cmp r2, r0 bcs _08147DA8 bl sub_814825C b _08147DB8 .align 2, 0 _08147DA0: .4byte 0x03005f94 _08147DA4: .4byte 0x03005f34 _08147DA8: cmp r2, r0 bne _08147DB8 ldr r0, _08147DD4 adds r1, r5, r4 lsls r1, 3 adds r1, r0 movs r0, 0xFE strh r0, [r1, 0x8] _08147DB8: ldr r1, _08147DD8 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] ldr r0, _08147DD4 adds r1, r5, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _08147DCE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08147DD4: .4byte 0x03004b20 _08147DD8: .4byte 0x03005f94 thumb_func_end sub_8147CC8 thumb_func_start sub_8147DDC sub_8147DDC: @ 8147DDC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _08147E08 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08147E0C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0x8] strh r4, [r1, 0xA] pop {r4} pop {r0} bx r0 .align 2, 0 _08147E08: .4byte sub_8147CC8 _08147E0C: .4byte 0x03004b20 thumb_func_end sub_8147DDC thumb_func_start sub_8147E10 sub_8147E10: @ 8147E10 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8072080 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08147E30 ldr r0, _08147E38 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08147E3C str r0, [r1] _08147E30: pop {r4} pop {r0} bx r0 .align 2, 0 _08147E38: .4byte 0x03004b20 _08147E3C: .4byte sub_8147F4C thumb_func_end sub_8147E10 thumb_func_start sub_8147E40 sub_8147E40: @ 8147E40 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r0, _08147E94 ldrb r1, [r0] movs r0, 0x64 adds r5, r1, 0 muls r5, r0 ldr r0, _08147E98 adds r5, r0 ldr r0, _08147E9C ldrh r4, [r0] lsls r4, 3 ldr r0, _08147EA0 adds r4, r0 adds r0, r5, 0 bl GetNature lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl sub_810CAE4 ldr r6, _08147EA4 strh r0, [r6] ldr r1, _08147EA8 adds r0, r5, 0 bl GetMonNickname ldr r1, _08147EAC adds r0, r4, 0 bl sub_810CB44 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _08147EB8 ldr r0, _08147EB0 ldr r1, _08147EB4 bl StringExpandPlaceholders b _08147ED8 .align 2, 0 _08147E94: .4byte 0x02039310 _08147E98: .4byte 0x03004360 _08147E9C: .4byte 0x0203855e _08147EA0: .4byte 0x02025f2c _08147EA4: .4byte 0x02039312 _08147EA8: .4byte 0x020231cc _08147EAC: .4byte 0x020232cc _08147EB0: .4byte 0x020234cc _08147EB4: .4byte gUnknown_0840EC4B _08147EB8: cmp r0, 0 ble _08147ED0 ldr r0, _08147EC8 ldr r1, _08147ECC bl StringExpandPlaceholders b _08147ED8 .align 2, 0 _08147EC8: .4byte 0x020234cc _08147ECC: .4byte gUnknown_0840EC5C _08147ED0: ldr r0, _08147EF8 ldr r1, _08147EFC bl StringExpandPlaceholders _08147ED8: ldr r0, _08147EF8 movs r1, 0x1 movs r2, 0xF bl AddTextPrinterWithCallbackForMessage ldr r1, _08147F00 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, _08147F04 str r1, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08147EF8: .4byte 0x020234cc _08147EFC: .4byte gUnknown_0840EC75 _08147F00: .4byte 0x03004b20 _08147F04: .4byte sub_8147E10 thumb_func_end sub_8147E40 thumb_func_start sub_8147F08 sub_8147F08: @ 8147F08 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08147F3C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08147F34 ldr r0, _08147F40 ldr r1, _08147F44 movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl ldr r0, _08147F48 ldr r0, [r0, 0x8] bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _08147F34: pop {r4} pop {r0} bx r0 .align 2, 0 _08147F3C: .4byte 0x0202f388 _08147F40: .4byte 0x03007380 _08147F44: .4byte 0x0000ffff _08147F48: .4byte 0x03001770 thumb_func_end sub_8147F08 thumb_func_start sub_8147F4C sub_8147F4C: @ 8147F4C 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, _08147F7C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08147F80 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08147F7C: .4byte 0x03004b20 _08147F80: .4byte sub_8147F08 thumb_func_end sub_8147F4C thumb_func_start sub_8147F84 sub_8147F84: @ 8147F84 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 movs r1, 0x41 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _08148024 movs r1, 0x30 movs r2, 0x50 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _08148028 strh r4, [r0] ldr r0, _0814802C mov r1, r8 strb r1, [r0] adds r0, r5, 0 bl GetNature ldr r1, _08148030 strb r0, [r1] ldr r7, _08148034 mov r1, r8 lsls r0, r1, 4 add r0, r8 lsls r5, r0, 2 adds r6, r5, r7 strh r4, [r6, 0x32] adds r0, r7, 0 adds r0, 0x1C adds r0, r5, r0 ldr r1, _08148038 str r1, [r0] ldr r0, _0814803C mov r9, r0 movs r0, 0x1 mov r1, r9 strb r0, [r1] adds r0, r4, 0 bl sub_8040A3C lsls r0, 24 cmp r0, 0 bne _08148016 adds r0, r7, 0 adds r0, 0x10 adds r0, r5, r0 ldr r1, _08148040 str r1, [r0] ldrb r3, [r6, 0x1] movs r0, 0x3 orrs r3, r0 strb r3, [r6, 0x1] lsrs r1, r3, 6 ldrb r2, [r6, 0x3] lsrs r2, 6 lsls r3, 30 lsrs r3, 30 adds r0, r6, 0 bl CalcCenterToCornerVec movs r0, 0 mov r1, r9 strb r0, [r1] _08148016: mov r0, r8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08148024: .4byte 0x02024e8c _08148028: .4byte 0x03005f24 _0814802C: .4byte 0x03005f2c _08148030: .4byte 0x03005f30 _08148034: .4byte 0x02020004 _08148038: .4byte SpriteCallbackDummy _0814803C: .4byte 0x03005f28 _08148040: .4byte gSpriteAffineAnimTable_84120EC thumb_func_end sub_8147F84 thumb_func_start sub_8148044 sub_8148044: @ 8148044 lsls r0, 24 lsrs r0, 24 ldr r3, _0814806C lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r2, r1, r3 movs r0, 0x30 strh r0, [r2, 0x20] movs r0, 0x50 strh r0, [r2, 0x22] ldr r0, _08148070 strh r0, [r2, 0x2E] movs r0, 0x1 strh r0, [r2, 0x30] adds r3, 0x1C adds r1, r3 ldr r0, _08148074 str r0, [r1] bx lr .align 2, 0 _0814806C: .4byte 0x02020004 _08148070: .4byte 0x0000fff8 _08148074: .4byte sub_8148078 thumb_func_end sub_8148044 thumb_func_start sub_8148078 sub_8148078: @ 8148078 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x20] adds r0, 0x4 strh r0, [r4, 0x20] ldrh r0, [r4, 0x2E] ldrh r2, [r4, 0x22] adds r1, r0, r2 strh r1, [r4, 0x22] ldrh r1, [r4, 0x30] adds r0, r1 strh r0, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bne _0814809E ldrh r0, [r4, 0x32] movs r1, 0 bl cry_related _0814809E: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x9 bne _081480AA ldr r0, _081480B0 str r0, [r4, 0x1C] _081480AA: pop {r4} pop {r0} bx r0 .align 2, 0 _081480B0: .4byte SpriteCallbackDummy thumb_func_end sub_8148078 thumb_func_start sub_81480B4 sub_81480B4: @ 81480B4 push {r4,r5,lr} movs r0, 0xBC movs r1, 0x64 movs r2, 0x2 bl sub_810BA50 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _081480FC lsls r3, r4, 4 adds r3, r4 lsls r3, 2 adds r0, r3, r5 ldrb r2, [r0, 0x1] movs r1, 0x4 negs r1, r1 ands r1, r2 movs r2, 0x1 orrs r1, r2 strb r1, [r0, 0x1] adds r1, r5, 0 adds r1, 0x10 adds r1, r3, r1 ldr r2, _08148100 str r2, [r1] adds r5, 0x1C adds r3, r5 ldr r1, _08148104 str r1, [r3] bl InitSpriteAffineAnim adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _081480FC: .4byte 0x02020004 _08148100: .4byte gSpriteAffineAnimTable_84121A0 _08148104: .4byte SpriteCallbackDummy thumb_func_end sub_81480B4 thumb_func_start sub_8148108 sub_8148108: @ 8148108 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r1, 0 lsls r0, 24 lsrs r7, r0, 24 lsls r5, 24 lsrs r5, 24 ldr r0, _08148148 mov r8, r0 lsls r0, r7, 4 adds r0, r7 lsls r6, r0, 2 mov r0, r8 adds r4, r6, r0 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldrb r0, [r4, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] cmp r5, 0 bne _08148150 mov r0, r8 adds r0, 0x10 adds r0, r6, r0 ldr r1, _0814814C b _08148158 .align 2, 0 _08148148: .4byte 0x02020004 _0814814C: .4byte gSpriteAffineAnimTable_84121A4 _08148150: mov r0, r8 adds r0, 0x10 adds r0, r6, r0 ldr r1, _08148174 _08148158: str r1, [r0] lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r1, _08148178 adds r0, r1 bl InitSpriteAffineAnim pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08148174: .4byte gSpriteAffineAnimTable_84121A8 _08148178: .4byte 0x02020004 thumb_func_end sub_8148108 thumb_func_start sub_814817C sub_814817C: @ 814817C push {lr} ldr r0, _081481A4 movs r1, 0xAE movs r2, 0x54 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _081481A8 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldr r2, _081481AC strh r2, [r1, 0x2E] movs r2, 0x1 strh r2, [r1, 0x30] pop {r1} bx r1 .align 2, 0 _081481A4: .4byte gSpriteTemplate_84121E4 _081481A8: .4byte 0x02020004 _081481AC: .4byte 0x0000fff4 thumb_func_end sub_814817C thumb_func_start sub_81481B0 sub_81481B0: @ 81481B0 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x20] subs r0, 0x4 strh r0, [r2, 0x20] ldrh r0, [r2, 0x2E] ldrh r3, [r2, 0x22] adds r1, r0, r3 strh r1, [r2, 0x22] ldrh r1, [r2, 0x30] adds r0, r1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _081481D6 adds r0, r2, 0 bl DestroySprite _081481D6: pop {r0} bx r0 thumb_func_end sub_81481B0 thumb_func_start sub_81481DC sub_81481DC: @ 81481DC push {r4-r7,lr} ldr r6, _0814824C movs r0, 0x1 strh r0, [r6] ldr r1, _08148250 ldr r0, _08148254 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrb r3, [r0] movs r4, 0 ldr r2, _08148258 lsls r1, r3, 2 adds r1, r3 lsls r1, 2 adds r7, r2, 0 adds r7, 0x8 adds r0, r1, r7 ldrh r0, [r0] adds r0, 0x1 strh r0, [r6] adds r5, r2, 0 adds r5, 0x12 adds r1, r5 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0x1 beq _08148244 adds r2, r6, 0 adds r6, r5, 0 adds r5, r7, 0 _0814821A: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r4, 0x7 bhi _08148244 lsls r1, r3, 2 adds r1, r3 lsls r1, 2 adds r0, r1, r5 ldrh r0, [r0] ldrh r7, [r2] adds r0, r7 strh r0, [r2] adds r1, r6 movs r7, 0 ldrsh r0, [r1, r7] cmp r0, 0x1 bne _0814821A _08148244: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0814824C: .4byte 0x03005f34 _08148250: .4byte gUnknown_08411A10 _08148254: .4byte 0x03005f30 _08148258: .4byte gUnknown_08411A42 thumb_func_end sub_81481DC thumb_func_start sub_814825C sub_814825C: @ 814825C push {lr} ldr r0, _08148274 ldrb r0, [r0] cmp r0, 0x5A bls _08148268 b _08148532 _08148268: lsls r0, 2 ldr r1, _08148278 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08148274: .4byte 0x03005f3c _08148278: .4byte _0814827C .align 2, 0 _0814827C: .4byte _081483E8 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _0814843C .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _0814847A .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _081484CC .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148524 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 .4byte _08148532 _081483E8: ldr r2, _0814841C ldr r1, _08148420 ldr r0, _08148424 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r2, _08148428 ldr r0, _0814842C ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08148430 adds r1, r0 str r1, [r2] ldr r0, _08148434 movs r2, 0x44 bl memcpy ldr r1, _08148438 movs r0, 0xA strb r0, [r1] b _08148532 .align 2, 0 _0814841C: .4byte 0x03005f40 _08148420: .4byte gUnknown_08411A10 _08148424: .4byte 0x03005f30 _08148428: .4byte 0x03005f20 _0814842C: .4byte 0x03005f2c _08148430: .4byte 0x02020004 _08148434: .4byte 0x03005f50 _08148438: .4byte 0x03005f3c _0814843C: bl sub_8148540 ldr r1, _081484A4 ldr r0, _081484A8 ldrb r0, [r0] lsls r0, 1 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08148474 ldr r3, _081484AC ldr r2, [r3] ldrb r0, [r2, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r2, 0x1] ldr r2, [r3] ldrb r1, [r2, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 strb r0, [r2, 0x3] ldr r0, [r3] ldr r1, _081484B0 str r1, [r0, 0x10] bl InitSpriteAffineAnim _08148474: ldr r1, _081484B4 movs r0, 0x32 strb r0, [r1] _0814847A: ldr r1, _081484A4 ldr r0, _081484A8 ldrb r0, [r0] lsls r0, 1 adds r1, 0x1 adds r2, r0, r1 ldrb r1, [r2] cmp r1, 0 beq _081484EE ldr r0, _081484B8 ldrb r0, [r0] cmp r0, 0 bne _081484BC ldr r0, _081484AC ldr r0, [r0] adds r1, 0xA lsls r1, 24 lsrs r1, 24 bl StartSpriteAffineAnim b _081484EE .align 2, 0 _081484A4: .4byte gUnknown_08411A10 _081484A8: .4byte 0x03005f30 _081484AC: .4byte 0x03005f20 _081484B0: .4byte gSpriteAffineAnimTable_8412050 _081484B4: .4byte 0x03005f3c _081484B8: .4byte 0x03005f28 _081484BC: ldr r0, _081484C8 ldr r0, [r0] ldrb r1, [r2] bl StartSpriteAffineAnim b _081484EE .align 2, 0 _081484C8: .4byte 0x03005f20 _081484CC: bl sub_81485CC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08148532 ldr r0, _081484F8 movs r1, 0x12 ldrsh r0, [r0, r1] cmp r0, 0 bne _08148504 ldr r1, _081484FC ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] bl sub_8148540 _081484EE: ldr r1, _08148500 movs r0, 0x3C strb r0, [r1] b _08148532 .align 2, 0 _081484F8: .4byte 0x03005fa0 _081484FC: .4byte 0x03005f40 _08148500: .4byte 0x03005f3c _08148504: ldr r0, _0814851C ldr r0, [r0] ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldr r1, _08148520 movs r0, 0x46 strb r0, [r1] b _08148532 .align 2, 0 _0814851C: .4byte 0x03005f20 _08148520: .4byte 0x03005f3c _08148524: bl sub_8148618 ldr r0, _08148538 movs r1, 0 strb r1, [r0] ldr r0, _0814853C strb r1, [r0] _08148532: pop {r0} bx r0 .align 2, 0 _08148538: .4byte 0x03005f40 _0814853C: .4byte 0x03005f3c thumb_func_end sub_814825C thumb_func_start sub_8148540 sub_8148540: @ 8148540 push {r4-r7,lr} movs r4, 0 ldr r5, _081485B4 mov r12, r5 ldr r7, _081485B8 ldr r6, _081485BC _0814854C: lsls r2, r4, 1 mov r0, r12 adds r3, r2, r0 ldrb r1, [r6] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, r0 adds r2, r7 ldrh r0, [r2] strh r0, [r3] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _0814854C movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0 beq _081485C4 movs r2, 0 ldrsh r0, [r5, r2] movs r2, 0x4 ldrsh r1, [r5, r2] bl sine strh r0, [r5, 0x14] movs r1, 0 ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] bl cosine strh r0, [r5, 0x16] ldrh r0, [r5, 0x8] strh r0, [r5, 0x18] ldr r0, _081485C0 ldr r1, [r0] ldrh r0, [r1, 0x24] strh r0, [r5, 0x1A] ldrh r0, [r1, 0x26] strh r0, [r5, 0x1C] bl sub_8148710 ldrh r0, [r5, 0x18] strh r0, [r5, 0x8] bl sub_814862C ldrh r0, [r5, 0x18] strh r0, [r5, 0x8] movs r0, 0 b _081485C6 .align 2, 0 _081485B4: .4byte 0x03005fa0 _081485B8: .4byte gUnknown_08411A42 _081485BC: .4byte 0x03005f40 _081485C0: .4byte 0x03005f20 _081485C4: movs r0, 0x1 _081485C6: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8148540 thumb_func_start sub_81485CC sub_81485CC: @ 81485CC push {r4,lr} ldr r3, _08148604 ldrh r0, [r3, 0x18] ldrh r1, [r3, 0x8] subs r0, r1 lsls r0, 16 ldr r1, _08148608 ldr r4, [r1] lsrs r0, 15 ldr r1, _0814860C adds r2, r0, r1 ldrh r2, [r2] strh r2, [r4, 0x24] movs r2, 0x80 lsls r2, 3 adds r1, r2 adds r0, r1 ldrh r0, [r0] strh r0, [r4, 0x26] ldrh r0, [r3, 0x8] subs r0, 0x1 strh r0, [r3, 0x8] lsls r0, 16 cmp r0, 0 beq _08148610 movs r0, 0 b _08148612 .align 2, 0 _08148604: .4byte 0x03005fa0 _08148608: .4byte 0x03005f20 _0814860C: .4byte 0x0201d000 _08148610: movs r0, 0x1 _08148612: pop {r4} pop {r1} bx r1 thumb_func_end sub_81485CC thumb_func_start sub_8148618 sub_8148618: @ 8148618 push {lr} ldr r0, _08148628 ldr r0, [r0] bl FreeSpriteOamMatrix movs r0, 0 pop {r1} bx r1 .align 2, 0 _08148628: .4byte 0x03005f20 thumb_func_end sub_8148618 thumb_func_start sub_814862C sub_814862C: @ 814862C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 ldr r1, _08148700 ldrh r0, [r1, 0x10] mov r8, r0 ldrh r0, [r1, 0x18] mov r2, r8 subs r0, r2 lsls r0, 16 lsrs r7, r0, 16 ldrh r0, [r1, 0xC] ldrh r3, [r1, 0x1A] adds r0, r3 lsls r0, 16 lsrs r0, 16 str r0, [sp] ldrh r0, [r1, 0xE] ldrh r1, [r1, 0x1C] adds r0, r1 lsls r0, 16 lsrs r0, 16 mov r9, r0 movs r6, 0 subs r0, r7, 0x1 ldr r4, _08148704 mov r10, r4 cmp r6, r0 bge _081486D4 ldr r1, [sp] lsls r0, r1, 16 asrs r0, 16 str r0, [sp, 0x4] _08148674: mov r2, r8 adds r5, r2, r6 lsls r5, 1 ldr r4, _08148708 adds r3, r5, r4 ldrh r2, [r3] ldr r0, [sp, 0x4] subs r1, r2, r0 ldr r4, _0814870C adds r5, r4 ldrh r0, [r5] mov r12, r0 mov r4, r9 lsls r0, r4, 16 asrs r0, 16 mov r4, r12 subs r0, r4, r0 lsls r4, r0, 16 lsrs r4, 16 lsls r1, 16 asrs r1, 16 adds r6, 0x1 adds r0, r1, 0 muls r0, r6 adds r1, r7, 0 str r2, [sp, 0x8] str r3, [sp, 0xC] bl __divsi3 ldr r2, [sp, 0x8] subs r2, r0 ldr r3, [sp, 0xC] strh r2, [r3] lsls r4, 16 asrs r4, 16 adds r0, r4, 0 muls r0, r6 adds r1, r7, 0 bl __divsi3 ldrh r1, [r5] subs r1, r0 strh r1, [r5] lsls r6, 16 lsrs r6, 16 subs r0, r7, 0x1 cmp r6, r0 blt _08148674 _081486D4: mov r1, r8 adds r0, r1, r7 lsls r0, 1 mov r2, r10 adds r1, r0, r2 mov r3, sp ldrh r3, [r3] strh r3, [r1] movs r1, 0x80 lsls r1, 3 add r1, r10 adds r0, r1 mov r4, r9 strh r4, [r0] add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08148700: .4byte 0x03005fa0 _08148704: .4byte 0x0201cffe _08148708: .4byte 0x0201d000 _0814870C: .4byte 0x0201d400 thumb_func_end sub_814862C thumb_func_start sub_8148710 sub_8148710: @ 8148710 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r1, _081487A4 ldrh r2, [r1, 0x1A] ldrh r0, [r1, 0x14] subs r2, r0 ldrh r3, [r1, 0x1C] ldrh r0, [r1, 0x16] subs r3, r0 adds r6, r1, 0 ldr r1, _081487A8 mov r9, r1 lsls r2, 16 asrs r2, 16 mov r8, r2 movs r2, 0x80 lsls r2, 3 add r2, r9 mov r10, r2 lsls r3, 16 asrs r7, r3, 16 _08148746: movs r1, 0xA ldrsh r0, [r6, r1] cmp r0, 0 bge _08148750 negs r0, r0 _08148750: lsls r0, 16 lsrs r0, 16 ldrh r2, [r6, 0x6] adds r0, r2 lsls r5, r0, 16 strh r0, [r6, 0x6] ldrh r2, [r6, 0x4] movs r1, 0x4 ldrsh r0, [r6, r1] cmp r0, 0 bge _0814876A movs r0, 0x1 str r0, [sp] _0814876A: ldrh r0, [r6, 0x18] ldrh r1, [r6, 0x8] subs r0, r1 lsls r0, 16 lsrs r4, r0, 16 cmp r1, 0 beq _081487F0 ldr r1, [sp] cmp r1, 0 bne _081487AC movs r1, 0 ldrsh r0, [r6, r1] lsrs r5, 24 adds r1, r2, r5 lsls r1, 16 asrs r1, 16 bl sine lsls r4, 1 mov r2, r9 adds r1, r4, r2 add r0, r8 strh r0, [r1] movs r1, 0 ldrsh r0, [r6, r1] ldrh r1, [r6, 0x6] adds r1, r5 b _081487CE .align 2, 0 _081487A4: .4byte 0x03005fa0 _081487A8: .4byte 0x0201d000 _081487AC: movs r1, 0 ldrsh r0, [r6, r1] lsrs r5, 24 subs r1, r2, r5 lsls r1, 16 asrs r1, 16 bl sine lsls r4, 1 mov r2, r9 adds r1, r4, r2 add r0, r8 strh r0, [r1] movs r1, 0 ldrsh r0, [r6, r1] ldrh r1, [r6, 0x6] subs r1, r5 _081487CE: lsls r1, 16 asrs r1, 16 bl cosine add r4, r10 adds r0, r7, r0 strh r0, [r4] ldrh r0, [r6, 0x2] ldrh r2, [r6] adds r0, r2 movs r1, 0xFF ands r0, r1 strh r0, [r6] ldrh r0, [r6, 0x8] subs r0, 0x1 strh r0, [r6, 0x8] b _08148746 _081487F0: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8148710 thumb_func_start c2_clear_save_data_screen_2 c2_clear_save_data_screen_2: @ 8148800 push {lr} bl sub_8148970 lsls r0, 24 cmp r0, 0 beq _08148814 ldr r0, _08148818 movs r1, 0 bl CreateTask _08148814: pop {r0} bx r0 .align 2, 0 _08148818: .4byte sub_8148830 thumb_func_end c2_clear_save_data_screen_2 thumb_func_start sub_814881C sub_814881C: @ 814881C push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_814881C thumb_func_start sub_8148830 sub_8148830: @ 8148830 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl ResetSpriteData movs r1, 0x80 lsls r1, 19 movs r2, 0xCA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _081488A8 bl SetVBlankCallback movs r0, 0x2 movs r1, 0xE movs r2, 0x1B movs r3, 0x13 bl DrawDefaultWindow ldr r0, _081488AC movs r1, 0x3 movs r2, 0xF bl Print movs r0, 0x2 movs r1, 0x1 movs r2, 0x8 movs r3, 0x6 bl DrawDefaultWindow ldr r3, _081488B0 movs r0, 0x3 movs r1, 0x2 movs r2, 0x2 bl PrintStringArray movs r0, 0x1 str r0, [sp] movs r0, 0x5 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x3 movs r2, 0x2 movs r3, 0x2 bl InitMenu ldr r1, _081488B4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _081488B8 str r1, [r0] add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _081488A8: .4byte sub_814881C _081488AC: .4byte gUnknown_0842CE27 _081488B0: .4byte gUnknown_08376D74 _081488B4: .4byte 0x03004b20 _081488B8: .4byte sub_81488BC thumb_func_end sub_8148830 thumb_func_start sub_81488BC sub_81488BC: @ 81488BC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl FillWindowPixelBuffer lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081488E2 cmp r1, 0 bgt _081488DC movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0814890C b _0814891E _081488DC: cmp r1, 0x1 beq _0814890C b _0814891E _081488E2: movs r0, 0x5 bl audio_play ldr r0, _08148900 bl sub_8071F40 ldr r1, _08148904 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08148908 str r1, [r0] b _0814891E .align 2, 0 _08148900: .4byte gUnknown_0842CE42 _08148904: .4byte 0x03004b20 _08148908: .4byte sub_8148930 _0814890C: movs r0, 0x5 bl audio_play adds r0, r4, 0 bl DestroyTask ldr r0, _0814892C bl SetMainCallback2 _0814891E: bl AnimateSprites bl BuildOamBuffer pop {r4} pop {r0} bx r0 .align 2, 0 _0814892C: .4byte sub_8148B34 thumb_func_end sub_81488BC thumb_func_start sub_8148930 sub_8148930: @ 8148930 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl calls_flash_erase_block adds r0, r4, 0 bl DestroyTask ldr r0, _08148950 bl SetMainCallback2 pop {r4} pop {r0} bx r0 .align 2, 0 _08148950: .4byte sub_8148B34 thumb_func_end sub_8148930 thumb_func_start sub_8148954 sub_8148954: @ 8148954 push {lr} bl RunTasks bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8148954 thumb_func_start sub_8148964 sub_8148964: @ 8148964 push {lr} bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8148964 thumb_func_start sub_8148970 sub_8148970: @ 8148970 push {r4,lr} sub sp, 0xC ldr r0, _08148AA4 ldr r1, _08148AA8 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08148986 cmp r0, 0x1 bne _08148986 b _08148B04 _08148986: movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 19 movs r4, 0 strh r4, [r0] adds r0, 0x10 strh r4, [r0] adds r0, 0x2 strh r4, [r0] adds r0, 0xA strh r4, [r0] adds r0, 0x2 strh r4, [r0] adds r0, 0x22 strh r4, [r0] adds r0, 0x4 strh r4, [r0] adds r0, 0x4 strh r4, [r0] adds r0, 0x2 strh r4, [r0] adds r0, 0x6 strh r4, [r0] adds r0, 0x2 strh r4, [r0] adds r0, 0x2 strh r4, [r0] add r0, sp, 0x4 strh r4, [r0] ldr r1, _08148AAC str r0, [r1] movs r0, 0xC0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _08148AB0 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r2, 0 str r2, [sp, 0x8] add r0, sp, 0x8 str r0, [r1] movs r0, 0xE0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _08148AB4 str r0, [r1, 0x8] ldr r0, [r1, 0x8] add r0, sp, 0x4 strh r2, [r0] str r0, [r1] ldr r0, _08148AB8 str r0, [r1, 0x4] ldr r0, _08148ABC str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetPaletteFade ldr r2, _08148AC0 ldr r0, _08148AC4 strh r0, [r2] ldr r1, _08148AC8 strh r0, [r1] ldr r0, _08148ACC strh r0, [r2, 0x2] strh r0, [r1, 0x2] movs r1, 0 ldr r3, _08148AD0 ldr r0, _08148AD4 adds r2, r0, 0 _08148A14: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0xF bls _08148A14 movs r1, 0 ldr r4, _08148AD8 movs r3, 0x1 ldr r2, _08148ADC _08148A2C: lsls r0, r1, 1 adds r0, r4 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r2 bls _08148A2C bl ResetTasks bl ResetSpriteData ldr r0, _08148AE0 bl SetUpWindowConfig ldr r0, _08148AE4 bl sub_8071C4C movs r0, 0x1 negs r0, r0 ldr r1, _08148AE8 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r2, _08148AEC ldrh r1, [r2] movs r0, 0 strh r0, [r2] ldr r3, _08148AF0 ldrh r0, [r3] movs r4, 0x1 orrs r0, r4 strh r0, [r3] strh r1, [r2] ldr r2, _08148AF4 ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _08148AF8 bl SetVBlankCallback ldr r1, _08148AFC ldr r2, _08148B00 adds r0, r2, 0 strh r0, [r1] subs r1, 0xE movs r2, 0x90 lsls r2, 4 adds r0, r2, 0 strh r0, [r1] ldr r0, _08148AA4 ldr r1, _08148AA8 adds r0, r1 strb r4, [r0] b _08148B28 .align 2, 0 _08148AA4: .4byte 0x03001770 _08148AA8: .4byte 0x0000043c _08148AAC: .4byte 0x040000d4 _08148AB0: .4byte 0x8100c000 _08148AB4: .4byte 0x85000100 _08148AB8: .4byte 0x05000002 _08148ABC: .4byte 0x810001ff _08148AC0: .4byte 0x0202eac8 _08148AC4: .4byte 0x00007fff _08148AC8: .4byte 0x0202eec8 _08148ACC: .4byte 0x00003945 _08148AD0: .4byte 0x06000020 _08148AD4: .4byte 0x00001111 _08148AD8: .4byte 0x06003800 _08148ADC: .4byte 0x000004ff _08148AE0: .4byte gWindowConfig_81E6C3C _08148AE4: .4byte gWindowConfig_81E6CE4 _08148AE8: .4byte 0x0000ffff _08148AEC: .4byte 0x04000208 _08148AF0: .4byte 0x04000200 _08148AF4: .4byte REG_DISPSTAT _08148AF8: .4byte sub_8148964 _08148AFC: .4byte REG_BG3CNT _08148B00: .4byte 0x00000703 _08148B04: bl UpdatePaletteFade ldr r0, _08148B20 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08148B28 ldr r0, _08148B24 bl SetMainCallback2 movs r0, 0x1 b _08148B2A .align 2, 0 _08148B20: .4byte 0x0202f388 _08148B24: .4byte sub_8148954 _08148B28: movs r0, 0 _08148B2A: add sp, 0xC pop {r4} pop {r1} bx r1 thumb_func_end sub_8148970 thumb_func_start sub_8148B34 sub_8148B34: @ 8148B34 push {r4,lr} sub sp, 0x4 ldr r0, _08148B60 ldr r1, _08148B64 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 beq _08148B48 cmp r0, 0x1 beq _08148B6C _08148B48: movs r0, 0x1 negs r0, r0 ldr r1, _08148B68 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0x1 strb r0, [r4] b _08148B80 .align 2, 0 _08148B60: .4byte 0x03001770 _08148B64: .4byte 0x0000043c _08148B68: .4byte 0x0000ffff _08148B6C: bl UpdatePaletteFade ldr r0, _08148B88 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08148B80 bl DoSoftReset _08148B80: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08148B88: .4byte 0x0202f388 thumb_func_end sub_8148B34 thumb_func_start load_intro_part2_graphics load_intro_part2_graphics: @ 8148B8C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08148BE8 ldr r1, _08148BEC bl LZ77UnCompVram ldr r0, _08148BF0 ldr r1, _08148BF4 bl LZ77UnCompVram ldr r0, _08148BF8 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette cmp r4, 0 beq _08148BB4 cmp r4, 0x1 beq _08148C14 _08148BB4: ldr r0, _08148BFC movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _08148C00 ldr r1, _08148C04 bl LZ77UnCompVram ldr r0, _08148C08 movs r1, 0 movs r2, 0x60 bl LoadPalette ldr r0, _08148C0C bl LoadCompressedObjectPic ldr r0, _08148C10 movs r1, 0x80 lsls r1, 1 movs r2, 0x20 bl LoadPalette bl sub_8149248 b _08148C46 .align 2, 0 _08148BE8: .4byte gUnknown_0841225C _08148BEC: .4byte 0x06004000 _08148BF0: .4byte gUnknown_084126DC _08148BF4: .4byte 0x06007800 _08148BF8: .4byte gUnknown_084121FC _08148BFC: .4byte gUnknown_084128D8 _08148C00: .4byte gUnknown_08412EB4 _08148C04: .4byte 0x06003000 _08148C08: .4byte gUnknown_08412818 _08148C0C: .4byte gUnknown_08416B54 _08148C10: .4byte gUnknown_08413184 _08148C14: ldr r0, _08148C58 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _08148C5C ldr r1, _08148C60 bl LZ77UnCompVram ldr r0, _08148C64 movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r0, _08148C68 bl LoadCompressedObjectPic ldr r0, _08148C6C movs r1, 0x80 lsls r1, 1 movs r2, 0x20 bl LoadPalette bl sub_8149264 _08148C46: ldr r1, _08148C70 movs r0, 0 strh r0, [r1] ldr r1, _08148C74 movs r0, 0x8 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08148C58: .4byte gUnknown_08413340 _08148C5C: .4byte gUnknown_084139C8 _08148C60: .4byte 0x06003000 _08148C64: .4byte gUnknown_08413300 _08148C68: .4byte gUnknown_08416BDC _08148C6C: .4byte gUnknown_08413CCC _08148C70: .4byte 0x0203935c _08148C74: .4byte 0x030028f8 thumb_func_end load_intro_part2_graphics thumb_func_start sub_8148C78 sub_8148C78: @ 8148C78 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _08148CA4 ldr r2, _08148CA8 adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 adds r2, 0xFF adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 ldr r2, _08148CAC adds r0, r2, 0 strh r0, [r1] subs r1, 0xA movs r2, 0xF2 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] pop {r0} bx r0 .align 2, 0 _08148CA4: .4byte REG_BG3CNT _08148CA8: .4byte 0x00000603 _08148CAC: .4byte 0x00000f05 thumb_func_end sub_8148C78 thumb_func_start sub_8148CB0 sub_8148CB0: @ 8148CB0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08148CD4 ldr r1, _08148CD8 bl LZ77UnCompVram ldr r0, _08148CDC ldr r1, _08148CE0 bl LZ77UnCompVram cmp r4, 0x4 bhi _08148CFC lsls r0, r4, 2 ldr r1, _08148CE4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08148CD4: .4byte gUnknown_0841225C _08148CD8: .4byte 0x06004000 _08148CDC: .4byte gUnknown_084126DC _08148CE0: .4byte 0x06007800 _08148CE4: .4byte _08148CE8 .align 2, 0 _08148CE8: .4byte _08148CFC .4byte _08148D58 .4byte _08148DC4 .4byte _08148DC4 .4byte _08148E1C _08148CFC: ldr r0, _08148D34 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r0, _08148D38 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _08148D3C ldr r1, _08148D40 bl LZ77UnCompVram ldr r0, _08148D44 movs r1, 0 movs r2, 0x60 bl LoadPalette ldr r0, _08148D48 bl LoadCompressedObjectPic ldr r0, _08148D4C ldr r1, _08148D50 bl LZ77UnCompVram ldr r0, _08148D54 b _08148D8E .align 2, 0 _08148D34: .4byte gUnknown_084121FC _08148D38: .4byte gUnknown_084128D8 _08148D3C: .4byte gUnknown_08412EB4 _08148D40: .4byte 0x06003000 _08148D44: .4byte gUnknown_08412818 _08148D48: .4byte gUnknown_08416B54 _08148D4C: .4byte gUnknown_084131C4 _08148D50: .4byte 0x06010000 _08148D54: .4byte gUnknown_08413184 _08148D58: ldr r0, _08148DA0 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r0, _08148DA4 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _08148DA8 ldr r1, _08148DAC bl LZ77UnCompVram ldr r0, _08148DB0 movs r1, 0 movs r2, 0x60 bl LoadPalette ldr r0, _08148DB4 bl LoadCompressedObjectPic ldr r0, _08148DB8 ldr r1, _08148DBC bl LZ77UnCompVram ldr r0, _08148DC0 _08148D8E: movs r1, 0x80 lsls r1, 1 movs r2, 0x20 bl LoadPalette bl sub_8149248 b _08148E58 .align 2, 0 _08148DA0: .4byte gUnknown_0841221C _08148DA4: .4byte gUnknown_084128D8 _08148DA8: .4byte gUnknown_08412EB4 _08148DAC: .4byte 0x06003000 _08148DB0: .4byte gUnknown_08412878 _08148DB4: .4byte gUnknown_08416B54 _08148DB8: .4byte gUnknown_084131C4 _08148DBC: .4byte 0x06010000 _08148DC0: .4byte gUnknown_084131A4 _08148DC4: ldr r0, _08148E04 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r0, _08148E08 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _08148E0C ldr r1, _08148E10 bl LZ77UnCompVram ldr r4, _08148E14 adds r0, r4, 0 movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r0, _08148E18 bl LoadCompressedObjectPic movs r1, 0x80 lsls r1, 1 adds r0, r4, 0 movs r2, 0x20 bl LoadPalette bl sub_8149264 b _08148E58 .align 2, 0 _08148E04: .4byte gUnknown_0841221C _08148E08: .4byte gUnknown_08413340 _08148E0C: .4byte gUnknown_084139C8 _08148E10: .4byte 0x06003000 _08148E14: .4byte gUnknown_08413320 _08148E18: .4byte gUnknown_08416BDC _08148E1C: ldr r0, _08148E6C movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r0, _08148E70 movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _08148E74 ldr r1, _08148E78 bl LZ77UnCompVram ldr r0, _08148E7C movs r1, 0 movs r2, 0x40 bl LoadPalette ldr r0, _08148E80 bl LoadCompressedObjectPic ldr r0, _08148E84 movs r1, 0x80 lsls r1, 1 movs r2, 0x20 bl LoadPalette bl sub_8149280 _08148E58: ldr r1, _08148E88 movs r0, 0x8 strb r0, [r1] ldr r1, _08148E8C movs r0, 0 strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08148E6C: .4byte gUnknown_0841223C _08148E70: .4byte gUnknown_08413E78 _08148E74: .4byte gUnknown_08414084 _08148E78: .4byte 0x06003000 _08148E7C: .4byte gUnknown_08413E38 _08148E80: .4byte gUnknown_08416C70 _08148E84: .4byte gUnknown_08414064 _08148E88: .4byte 0x030028f8 _08148E8C: .4byte 0x0203935c thumb_func_end sub_8148CB0 thumb_func_start sub_8148E90 sub_8148E90: @ 8148E90 ldr r1, _08148EB4 ldr r2, _08148EB8 adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 adds r2, 0xFF adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 ldr r2, _08148EBC adds r0, r2, 0 strh r0, [r1] subs r1, 0xA movs r2, 0xFA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] bx lr .align 2, 0 _08148EB4: .4byte REG_BG3CNT _08148EB8: .4byte 0x00000603 _08148EBC: .4byte 0x00000f05 thumb_func_end sub_8148E90 thumb_func_start sub_8148EC0 sub_8148EC0: @ 8148EC0 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 mov r8, r2 lsls r5, 24 lsrs r5, 24 lsls r6, 16 lsrs r6, 16 mov r0, r8 lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r3, 16 lsrs r3, 16 ldr r1, _08148F34 mov r9, r1 mov r0, r9 movs r1, 0 str r3, [sp] bl CreateTask adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _08148F38 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0 strh r5, [r0, 0x8] strh r6, [r0, 0xA] strh r2, [r0, 0xC] strh r2, [r0, 0xE] mov r1, r8 strh r1, [r0, 0x10] strh r2, [r0, 0x12] strh r2, [r0, 0x14] ldr r3, [sp] strh r3, [r0, 0x16] movs r1, 0x8 strh r1, [r0, 0x18] strh r2, [r0, 0x1A] adds r0, r4, 0 bl _call_via_r9 adds r0, r4, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08148F34: .4byte sub_8148F3C _08148F38: .4byte 0x03004b20 thumb_func_end sub_8148EC0 thumb_func_start sub_8148F3C sub_8148F3C: @ 8148F3C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _08148FB4 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r1 ldrh r0, [r3, 0xA] lsls r4, r0, 16 adds r6, r1, 0 cmp r4, 0 beq _08148F7C movs r1, 0xC ldrsh r0, [r3, r1] lsls r0, 16 ldrh r1, [r3, 0xE] adds r2, r0, r1 lsrs r0, r4, 12 subs r2, r0 asrs r1, r2, 16 strh r1, [r3, 0xC] strh r2, [r3, 0xE] ldr r0, _08148FB8 strh r1, [r0] ldr r2, _08148FBC ldr r1, _08148FC0 ldr r0, _08148FC4 ldrh r0, [r0] ldrh r1, [r1] adds r0, r1 strh r0, [r2] _08148F7C: ldrh r0, [r3, 0x10] lsls r4, r0, 16 cmp r4, 0 beq _08148FD8 movs r1, 0x12 ldrsh r0, [r3, r1] lsls r0, 16 ldrh r1, [r3, 0x14] adds r2, r0, r1 lsrs r0, r4, 12 subs r2, r0 asrs r1, r2, 16 strh r1, [r3, 0x12] strh r2, [r3, 0x14] ldr r0, _08148FC8 strh r1, [r0] movs r1, 0x8 ldrsh r0, [r3, r1] cmp r0, 0 beq _08148FD0 ldr r2, _08148FCC ldr r1, _08148FC0 ldr r0, _08148FC4 ldrh r0, [r0] ldrh r1, [r1] adds r0, r1 strh r0, [r2] b _08148FD8 .align 2, 0 _08148FB4: .4byte 0x03004b20 _08148FB8: .4byte REG_BG1HOFS _08148FBC: .4byte REG_BG1VOFS _08148FC0: .4byte 0x02039358 _08148FC4: .4byte 0x0203935a _08148FC8: .4byte REG_BG2HOFS _08148FCC: .4byte REG_BG2VOFS _08148FD0: ldr r0, _08149010 ldr r1, _08149014 ldrh r1, [r1] strh r1, [r0] _08148FD8: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r6 ldrh r0, [r3, 0x16] lsls r4, r0, 16 cmp r4, 0 beq _08149008 movs r1, 0x18 ldrsh r0, [r3, r1] lsls r0, 16 ldrh r1, [r3, 0x1A] adds r2, r0, r1 lsrs r0, r4, 12 subs r2, r0 asrs r1, r2, 16 strh r1, [r3, 0x18] strh r2, [r3, 0x1A] ldr r0, _08149018 strh r1, [r0] ldr r1, _0814901C ldr r0, _08149014 ldrh r0, [r0] strh r0, [r1] _08149008: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08149010: .4byte REG_BG2VOFS _08149014: .4byte 0x02039358 _08149018: .4byte REG_BG3HOFS _0814901C: .4byte REG_BG3VOFS thumb_func_end sub_8148F3C thumb_func_start sub_8149020 sub_8149020: @ 8149020 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08149100 cmp r0, 0x1 ble _08149034 cmp r0, 0x2 beq _08149098 _08149034: ldr r0, _08149060 ldr r2, [r0, 0x20] movs r0, 0x3 ands r0, r2 cmp r0, 0 bne _08149100 ldr r0, _08149064 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08149100 movs r0, 0x4 ands r2, r0 cmp r2, 0 beq _0814906C ldr r2, _08149068 ldrh r1, [r2, 0x12] mov r0, sp strh r1, [r0] ldrh r1, [r2, 0x14] b _08149076 .align 2, 0 _08149060: .4byte 0x03001770 _08149064: .4byte 0x0202f388 _08149068: .4byte 0x0202eac8 _0814906C: ldr r2, _08149094 ldrh r1, [r2, 0x14] mov r0, sp strh r1, [r0] ldrh r1, [r2, 0x12] _08149076: adds r0, 0x2 strh r1, [r0] adds r4, r0, 0 mov r0, sp movs r1, 0x9 movs r2, 0x2 bl LoadPalette adds r0, r4, 0 movs r1, 0xA movs r2, 0x2 bl LoadPalette b _08149100 .align 2, 0 _08149094: .4byte 0x0202eac8 _08149098: ldr r0, _081490C8 ldr r2, [r0, 0x20] movs r0, 0x3 ands r0, r2 cmp r0, 0 bne _08149100 ldr r0, _081490CC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08149100 movs r0, 0x4 ands r2, r0 cmp r2, 0 beq _081490D8 mov r1, sp ldr r2, _081490D0 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _081490D4 b _081490E6 .align 2, 0 _081490C8: .4byte 0x03001770 _081490CC: .4byte 0x0202f388 _081490D0: .4byte 0x00003d27 _081490D4: .4byte 0x00000295 _081490D8: mov r1, sp movs r2, 0xC7 lsls r2, 2 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _08149108 _081490E6: adds r0, r2, 0 strh r0, [r1] adds r4, r1, 0 mov r0, sp movs r1, 0xC movs r2, 0x2 bl LoadPalette adds r0, r4, 0 movs r1, 0xD movs r2, 0x2 bl LoadPalette _08149100: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08149108: .4byte 0x00003d27 thumb_func_end sub_8149020 thumb_func_start sub_814910C sub_814910C: @ 814910C push {lr} adds r2, r0, 0 ldr r0, _08149124 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _08149128 adds r0, r2, 0 bl DestroySprite b _0814916C .align 2, 0 _08149124: .4byte 0x0203935c _08149128: movs r1, 0x20 ldrsh r0, [r2, r1] lsls r0, 16 ldrh r1, [r2, 0x32] orrs r0, r1 ldrh r1, [r2, 0x30] adds r0, r1 asrs r1, r0, 16 strh r1, [r2, 0x20] strh r0, [r2, 0x32] cmp r1, 0xFF ble _08149144 ldr r0, _08149158 strh r0, [r2, 0x20] _08149144: movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 beq _08149164 ldr r1, _0814915C ldr r0, _08149160 ldrh r0, [r0] ldrh r1, [r1] adds r0, r1 b _08149168 .align 2, 0 _08149158: .4byte 0x0000ffe0 _0814915C: .4byte 0x02039358 _08149160: .4byte 0x0203935a _08149164: ldr r0, _08149170 ldrh r0, [r0] _08149168: negs r0, r0 strh r0, [r2, 0x26] _0814916C: pop {r0} bx r0 .align 2, 0 _08149170: .4byte 0x02039358 thumb_func_end sub_814910C thumb_func_start sub_8149174 sub_8149174: @ 8149174 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC str r1, [sp, 0x4] str r2, [sp, 0x8] lsls r0, 24 lsrs r0, 24 str r0, [sp] lsls r3, 24 lsrs r3, 24 mov r8, r3 movs r7, 0 cmp r7, r8 bcs _0814922A ldr r0, _0814923C mov r10, r0 movs r2, 0x3F mov r9, r2 _0814919E: lsls r6, r7, 3 ldr r0, [sp, 0x4] adds r6, r0 ldrb r1, [r6, 0x1] ldrb r2, [r6, 0x2] ldrb r3, [r6, 0x3] ldr r0, _08149240 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r5, r0, 4 adds r5, r0 lsls r5, 2 mov r2, r10 adds r4, r5, r2 ldrb r2, [r6] lsls r1, r2, 26 lsrs r1, 30 lsrs r2, 6 adds r0, r4, 0 movs r3, 0 bl CalcCenterToCornerVec ldrb r3, [r4, 0x5] movs r0, 0xC orrs r3, r0 strb r3, [r4, 0x5] ldrb r1, [r6] lsls r1, 26 lsrs r1, 30 lsls r1, 6 ldrb r2, [r4, 0x1] mov r0, r9 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x1] ldrb r1, [r6] lsrs r1, 6 lsls r1, 6 ldrb r2, [r4, 0x3] mov r0, r9 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x3] movs r0, 0xF ands r3, r0 strb r3, [r4, 0x5] ldr r0, _08149244 adds r5, r0 ldr r2, [sp, 0x8] str r2, [r5] ldrb r1, [r6] lsls r1, 28 lsrs r1, 28 adds r0, r4, 0 bl StartSpriteAnim movs r1, 0 mov r0, sp ldrh r0, [r0] strh r0, [r4, 0x2E] ldrh r0, [r6, 0x4] strh r0, [r4, 0x30] strh r1, [r4, 0x32] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, r8 bcc _0814919E _0814922A: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0814923C: .4byte 0x02020004 _08149240: .4byte gSpriteTemplate_8416B3C _08149244: .4byte 0x0202000c thumb_func_end sub_8149174 thumb_func_start sub_8149248 sub_8149248: @ 8149248 push {lr} ldr r1, _0814925C ldr r2, _08149260 movs r0, 0 movs r3, 0x9 bl sub_8149174 pop {r0} bx r0 .align 2, 0 _0814925C: .4byte gUnknown_08416B94 _08149260: .4byte gSpriteAnimTable_8416B84 thumb_func_end sub_8149248 thumb_func_start sub_8149264 sub_8149264: @ 8149264 push {lr} ldr r1, _08149278 ldr r2, _0814927C movs r0, 0x1 movs r3, 0xC bl sub_8149174 pop {r0} bx r0 .align 2, 0 _08149278: .4byte gUnknown_08416C10 _0814927C: .4byte gSpriteAnimTable_8416C04 thumb_func_end sub_8149264 thumb_func_start sub_8149280 sub_8149280: @ 8149280 push {lr} ldr r1, _08149294 ldr r2, _08149298 movs r0, 0x1 movs r3, 0x6 bl sub_8149174 pop {r0} bx r0 .align 2, 0 _08149294: .4byte gUnknown_08416C8C _08149298: .4byte gSpriteAnimTable_8416C88 thumb_func_end sub_8149280 thumb_func_start nullsub_82 nullsub_82: @ 814929C bx lr thumb_func_end nullsub_82 thumb_func_start sub_81492A0 sub_81492A0: @ 81492A0 push {r4,lr} ldr r4, _0814930C movs r1, 0x2E ldrsh r2, [r0, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 adds r1, 0x3E ldrb r1, [r1] movs r2, 0x3E adds r2, r0 mov r12, r2 movs r2, 0x4 ands r2, r1 mov r1, r12 ldrb r3, [r1] movs r1, 0x5 negs r1, r1 ands r1, r3 orrs r1, r2 mov r2, r12 strb r1, [r2] movs r1, 0x2E ldrsh r2, [r0, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x20] strh r1, [r0, 0x20] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x22] adds r1, 0x8 strh r1, [r0, 0x22] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x24] strh r1, [r0, 0x24] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x26] strh r1, [r0, 0x26] pop {r4} pop {r0} bx r0 .align 2, 0 _0814930C: .4byte 0x02020004 thumb_func_end sub_81492A0 thumb_func_start sub_8149310 sub_8149310: @ 8149310 push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r0, _0814935C lsls r5, 16 asrs r5, 16 lsls r4, 16 asrs r4, 16 adds r1, r5, 0 adds r2, r4, 0 movs r3, 0 bl CreateSprite adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldr r0, _08149360 adds r4, 0x8 lsls r4, 16 asrs r4, 16 adds r1, r5, 0 adds r2, r4, 0 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _08149364 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 strh r6, [r1, 0x2E] adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0814935C: .4byte gSpriteTemplate_8416CDC _08149360: .4byte gSpriteTemplate_8416D2C _08149364: .4byte 0x02020004 thumb_func_end sub_8149310 thumb_func_start sub_8149368 sub_8149368: @ 8149368 push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r0, _081493B4 lsls r5, 16 asrs r5, 16 lsls r4, 16 asrs r4, 16 adds r1, r5, 0 adds r2, r4, 0 movs r3, 0 bl CreateSprite adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldr r0, _081493B8 adds r4, 0x8 lsls r4, 16 asrs r4, 16 adds r1, r5, 0 adds r2, r4, 0 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _081493BC lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 strh r6, [r1, 0x2E] adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081493B4: .4byte gSpriteTemplate_8416CF4 _081493B8: .4byte gSpriteTemplate_8416D44 _081493BC: .4byte 0x02020004 thumb_func_end sub_8149368 thumb_func_start nullsub_83 nullsub_83: @ 81493C0 bx lr thumb_func_end nullsub_83 thumb_func_start sub_81493C4 sub_81493C4: @ 81493C4 push {r4,lr} ldr r4, _08149420 movs r1, 0x2E ldrsh r2, [r0, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 adds r1, 0x3E ldrb r1, [r1] movs r2, 0x3E adds r2, r0 mov r12, r2 movs r2, 0x4 ands r2, r1 mov r1, r12 ldrb r3, [r1] movs r1, 0x5 negs r1, r1 ands r1, r3 orrs r1, r2 mov r2, r12 strb r1, [r2] movs r1, 0x2E ldrsh r2, [r0, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x22] strh r1, [r0, 0x22] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x24] strh r1, [r0, 0x24] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x26] strh r1, [r0, 0x26] pop {r4} pop {r0} bx r0 .align 2, 0 _08149420: .4byte 0x02020004 thumb_func_end sub_81493C4 thumb_func_start sub_8149424 sub_8149424: @ 8149424 push {r4-r6,lr} mov r6, r8 push {r6} adds r2, r0, 0 adds r5, r1, 0 ldr r0, _08149490 mov r8, r0 lsls r2, 16 asrs r4, r2, 16 ldr r0, _08149494 adds r2, r0 asrs r2, 16 lsls r5, 16 asrs r5, 16 mov r0, r8 adds r1, r2, 0 adds r2, r5, 0 movs r3, 0x2 bl CreateSprite adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 adds r4, 0x20 lsls r4, 16 asrs r4, 16 mov r0, r8 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r5, _08149498 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r0, r4, r5 strh r6, [r0, 0x2E] movs r1, 0x1 bl StartSpriteAnim adds r5, 0x1C adds r4, r5 ldr r0, _0814949C str r0, [r4] adds r0, r6, 0 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08149490: .4byte gSpriteTemplate_8416D7C _08149494: .4byte 0xffe00000 _08149498: .4byte 0x02020004 _0814949C: .4byte sub_81493C4 thumb_func_end sub_8149424 thumb_func_start sapphire_sub_81494A0 sapphire_sub_81494A0: @ 81494A0 push {r4-r6,lr} mov r6, r8 push {r6} adds r2, r0, 0 adds r5, r1, 0 ldr r0, _0814950C mov r8, r0 lsls r2, 16 asrs r4, r2, 16 ldr r0, _08149510 adds r2, r0 asrs r2, 16 lsls r5, 16 asrs r5, 16 mov r0, r8 adds r1, r2, 0 adds r2, r5, 0 movs r3, 0x2 bl CreateSprite adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 adds r4, 0x20 lsls r4, 16 asrs r4, 16 mov r0, r8 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r5, _08149514 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r0, r4, r5 strh r6, [r0, 0x2E] movs r1, 0x1 bl StartSpriteAnim adds r5, 0x1C adds r4, r5 ldr r0, _08149518 str r0, [r4] adds r0, r6, 0 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0814950C: .4byte gSpriteTemplate_8416D94 _08149510: .4byte 0xffe00000 _08149514: .4byte 0x02020004 _08149518: .4byte sub_81493C4 thumb_func_end sapphire_sub_81494A0 thumb_func_start nullsub_84 nullsub_84: @ 814951C bx lr thumb_func_end nullsub_84 thumb_func_start sub_8149520 sub_8149520: @ 8149520 push {r4,r5,lr} sub sp, 0x4 movs r4, 0 ldr r5, _08149554 _08149528: adds r0, r4, 0 adds r0, 0x14 lsls r0, 24 lsrs r0, 24 lsls r1, r4, 1 adds r1, r5 ldrh r1, [r1] str r1, [sp] movs r2, 0 movs r3, 0 bl SetOamMatrix adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0xB bls _08149528 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08149554: .4byte gUnknown_08416ED0 thumb_func_end sub_8149520 thumb_func_start sub_8149558 sub_8149558: @ 8149558 push {r4,lr} adds r4, r0, 0 movs r1, 0x22 ldrsh r0, [r4, r1] cmp r0, 0x8 ble _08149606 movs r2, 0x3C ldrsh r0, [r4, r2] adds r1, r0, 0 muls r1, r0 adds r0, r1, 0 movs r1, 0x50 bl __divsi3 movs r1, 0x58 subs r1, r0 strh r1, [r4, 0x22] ldrh r0, [r4, 0x3A] lsls r0, 24 lsrs r0, 24 movs r2, 0x38 ldrsh r1, [r4, r2] bl sine lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _08149592 adds r0, 0x3 _08149592: asrs r0, 2 strh r0, [r4, 0x26] ldrh r0, [r4, 0x3A] lsls r0, 24 lsrs r0, 24 movs r2, 0x38 ldrsh r1, [r4, r2] bl cosine strh r0, [r4, 0x24] ldrh r0, [r4, 0x3A] adds r0, 0x4 strh r0, [r4, 0x3A] ldrh r1, [r4, 0x3C] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081495BC ldrh r0, [r4, 0x38] subs r0, 0x1 strh r0, [r4, 0x38] _081495BC: ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] movs r1, 0x26 ldrsh r0, [r4, r1] cmp r0, 0 ble _081495D2 adds r1, r4, 0 adds r1, 0x43 movs r0, 0x1 b _081495D8 _081495D2: adds r1, r4, 0 adds r1, 0x43 movs r0, 0x14 _081495D8: strb r0, [r1] movs r2, 0x38 ldrsh r0, [r4, r2] cmp r0, 0 bge _081495E4 adds r0, 0x3 _081495E4: asrs r0, 2 adds r0, 0x14 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x1F bls _081495F2 movs r2, 0x1F _081495F2: movs r0, 0x1F ands r2, r0 lsls r2, 1 ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x3] b _0814960C _08149606: adds r0, r4, 0 bl DestroySprite _0814960C: pop {r4} pop {r0} bx r0 thumb_func_end sub_8149558 thumb_func_start sub_8149614 sub_8149614: @ 8149614 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _08149664 movs r1, 0x78 movs r2, 0x58 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0814965E ldr r4, _08149668 lsls r3, r0, 4 adds r3, r0 lsls r3, 2 adds r2, r3, r4 movs r1, 0 movs r0, 0x30 strh r0, [r2, 0x38] strh r5, [r2, 0x3A] strh r1, [r2, 0x3C] ldrb r1, [r2, 0x1] subs r0, 0x34 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x1] ldrb r0, [r2, 0x3] movs r1, 0x3E orrs r0, r1 strb r0, [r2, 0x3] adds r4, 0x1C adds r3, r4 ldr r0, _0814966C str r0, [r3] _0814965E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08149664: .4byte gSpriteTemplate_8416EB8 _08149668: .4byte 0x02020004 _0814966C: .4byte sub_8149558 thumb_func_end sub_8149614 thumb_func_start sub_8149670 sub_8149670: @ 8149670 push {r4,lr} adds r4, r0, 0 movs r1, 0x22 ldrsh r0, [r4, r1] cmp r0, 0x57 bgt _081496D6 movs r2, 0x3C ldrsh r0, [r4, r2] adds r1, r0, 0 muls r1, r0 adds r0, r1, 0 movs r1, 0x5 bl __divsi3 adds r0, 0x8 strh r0, [r4, 0x22] ldrh r0, [r4, 0x3A] lsls r0, 24 lsrs r0, 24 movs r2, 0x38 ldrsh r1, [r4, r2] bl sine lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _081496A8 adds r0, 0x3 _081496A8: asrs r0, 2 strh r0, [r4, 0x26] ldrh r0, [r4, 0x3A] lsls r0, 24 lsrs r0, 24 movs r2, 0x38 ldrsh r1, [r4, r2] bl cosine strh r0, [r4, 0x24] movs r1, 0x3C ldrsh r0, [r4, r1] lsls r0, 26 lsrs r0, 24 movs r1, 0x28 bl sine adds r0, 0x8 strh r0, [r4, 0x38] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] b _081496DC _081496D6: adds r0, r4, 0 bl DestroySprite _081496DC: pop {r4} pop {r0} bx r0 thumb_func_end sub_8149670 thumb_func_start sub_81496E4 sub_81496E4: @ 81496E4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _08149740 movs r1, 0x78 movs r2, 0x8 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0814973A ldr r4, _08149744 lsls r3, r0, 4 adds r3, r0 lsls r3, 2 adds r2, r3, r4 movs r1, 0 movs r0, 0x8 strh r0, [r2, 0x38] strh r5, [r2, 0x3A] strh r1, [r2, 0x3C] ldrb r1, [r2, 0x1] subs r0, 0xC ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x1] ldrb r1, [r2, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x32 orrs r0, r1 strb r0, [r2, 0x3] adds r2, 0x43 movs r0, 0x1 strb r0, [r2] adds r4, 0x1C adds r3, r4 ldr r0, _08149748 str r0, [r3] _0814973A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08149740: .4byte gSpriteTemplate_8416EB8 _08149744: .4byte 0x02020004 _08149748: .4byte sub_8149670 thumb_func_end sub_81496E4 thumb_func_start sub_814974C sub_814974C: @ 814974C push {r4,lr} adds r4, r0, 0 movs r1, 0x38 ldrsh r0, [r4, r1] cmp r0, 0x8 ble _08149788 ldrh r0, [r4, 0x3A] lsls r0, 24 lsrs r0, 24 movs r2, 0x38 ldrsh r1, [r4, r2] bl sine strh r0, [r4, 0x26] ldrh r0, [r4, 0x3A] lsls r0, 24 lsrs r0, 24 movs r2, 0x38 ldrsh r1, [r4, r2] bl cosine strh r0, [r4, 0x24] ldrh r0, [r4, 0x38] ldrh r1, [r4, 0x34] subs r0, r1 strh r0, [r4, 0x38] ldrh r0, [r4, 0x3A] adds r0, 0x4 strh r0, [r4, 0x3A] b _0814978E _08149788: adds r0, r4, 0 bl DestroySprite _0814978E: pop {r4} pop {r0} bx r0 thumb_func_end sub_814974C thumb_func_start sub_8149794 sub_8149794: @ 8149794 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r0, _081497F0 movs r1, 0x78 movs r2, 0x38 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _081497EA ldr r4, _081497F4 lsls r3, r0, 4 adds r3, r0 lsls r3, 2 adds r2, r3, r4 movs r1, 0 strh r5, [r2, 0x34] movs r0, 0x78 strh r0, [r2, 0x38] strh r6, [r2, 0x3A] strh r1, [r2, 0x3C] ldrb r1, [r2, 0x1] subs r0, 0x7C ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x1] ldrb r0, [r2, 0x3] movs r1, 0x3E orrs r0, r1 strb r0, [r2, 0x3] adds r2, 0x43 movs r0, 0x1 strb r0, [r2] adds r4, 0x1C adds r3, r4 ldr r0, _081497F8 str r0, [r3] _081497EA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081497F0: .4byte gSpriteTemplate_8416EB8 _081497F4: .4byte 0x02020004 _081497F8: .4byte sub_814974C thumb_func_end sub_8149794 thumb_func_start sub_81497FC sub_81497FC: @ 81497FC push {r4,r5,lr} adds r4, r0, 0 ldrh r1, [r4, 0x3C] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _08149810 ldrh r0, [r4, 0x22] adds r0, 0x1 strh r0, [r4, 0x22] _08149810: ldrh r1, [r4, 0x3A] movs r2, 0x3A ldrsh r0, [r4, r2] cmp r0, 0x7F bgt _081498C0 lsls r0, r1, 24 lsrs r0, 24 movs r5, 0x38 ldrsh r1, [r4, r5] bl sine negs r0, r0 strh r0, [r4, 0x26] movs r0, 0x34 ldrsh r1, [r4, r0] movs r2, 0x3C ldrsh r0, [r4, r2] muls r0, r1 movs r1, 0x3 bl __divsi3 adds r0, 0x78 strh r0, [r4, 0x20] ldrh r0, [r4, 0x3A] adds r3, r0, 0x1 strh r3, [r4, 0x3A] movs r5, 0x3A ldrsh r1, [r4, r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 cmp r0, 0 bge _08149854 adds r0, 0x7F _08149854: asrs r0, 7 movs r1, 0x1F subs r1, r0 lsls r1, 24 lsrs r2, r1, 24 lsls r0, r3, 16 asrs r0, 16 cmp r0, 0x40 ble _08149870 adds r1, r4, 0 adds r1, 0x43 movs r0, 0x1 strb r0, [r1] b _081498A0 _08149870: adds r3, r4, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] adds r1, r4, 0 adds r1, 0x43 movs r0, 0x14 strb r0, [r1] ldrh r1, [r4, 0x3A] movs r5, 0x3A ldrsh r0, [r4, r5] cmp r0, 0x70 ble _081498A0 movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081498A0 ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] _081498A0: cmp r2, 0x13 bhi _081498A6 movs r2, 0x14 _081498A6: movs r0, 0x1F ands r2, r0 lsls r2, 1 ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 orrs r0, r2 strb r0, [r4, 0x3] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] b _081498C6 _081498C0: adds r0, r4, 0 bl DestroySprite _081498C6: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81497FC thumb_func_start sub_81498CC sub_81498CC: @ 81498CC push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, _08149948 movs r1, 0x78 movs r2, 0x38 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x40 beq _0814993C bl Random ldr r6, _0814994C lsls r5, r4, 4 adds r5, r4 lsls r5, 2 adds r4, r5, r6 lsls r0, 16 lsrs r0, 16 movs r1, 0x7 bl __umodsi3 movs r1, 0x3 subs r1, r0 movs r0, 0 mov r8, r0 strh r1, [r4, 0x34] bl Random movs r1, 0x3F ands r1, r0 adds r1, 0x30 strh r1, [r4, 0x38] mov r0, r8 strh r0, [r4, 0x3C] ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x3] movs r1, 0x3E orrs r0, r1 strb r0, [r4, 0x3] adds r4, 0x43 movs r0, 0x14 strb r0, [r4] adds r6, 0x1C adds r5, r6 ldr r0, _08149950 str r0, [r5] _0814993C: pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08149948: .4byte gSpriteTemplate_8416EB8 _0814994C: .4byte 0x02020004 _08149950: .4byte sub_81497FC thumb_func_end sub_81498CC thumb_func_start sub_8149954 sub_8149954: @ 8149954 push {lr} ldr r0, _08149968 bl LoadCompressedObjectPic ldr r0, _0814996C bl LoadSpritePalettes pop {r0} bx r0 .align 2, 0 _08149968: .4byte gUnknown_08416E84 _0814996C: .4byte gUnknown_08416E94 thumb_func_end sub_8149954 thumb_func_start sub_8149970 sub_8149970: @ 8149970 push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _08149998 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0814999C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0xA] pop {r4} pop {r1} bx r1 .align 2, 0 _08149998: .4byte sub_81499A0 _0814999C: .4byte 0x03004b20 thumb_func_end sub_8149970 thumb_func_start sub_81499A0 sub_81499A0: @ 81499A0 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8149520 ldr r0, _081499E4 lsls r5, r4, 2 adds r5, r4 lsls r5, 3 adds r5, r0 movs r0, 0 strh r0, [r5, 0x26] movs r0, 0xA ldrsh r1, [r5, r0] movs r0, 0x3 lsls r0, r1 ldr r1, _081499E8 str r1, [sp] movs r1, 0xA movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _081499EC str r0, [r5] movs r0, 0x8C bl audio_play add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081499E4: .4byte 0x03004b20 _081499E8: .4byte 0x00007fff _081499EC: .4byte sub_81499F0 thumb_func_end sub_81499A0 thumb_func_start sub_81499F0 sub_81499F0: @ 81499F0 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _08149A48 lsls r3, r5, 2 adds r0, r3, r5 lsls r0, 3 adds r1, r0, r1 ldrh r2, [r1, 0x26] movs r4, 0x26 ldrsh r0, [r1, r4] cmp r0, 0x3F bgt _08149A4C movs r0, 0x7 ands r0, r2 adds r7, r3, 0 cmp r0, 0 bne _08149A36 movs r4, 0 adds r6, r1, 0 _08149A18: ldrh r1, [r6, 0x26] movs r0, 0x78 ands r0, r1 lsls r0, 1 lsls r1, r4, 6 adds r0, r1 lsls r0, 24 lsrs r0, 24 bl sub_8149614 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _08149A18 _08149A36: ldr r0, _08149A48 adds r1, r7, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x26] adds r0, 0x1 strh r0, [r1, 0x26] b _08149A54 .align 2, 0 _08149A48: .4byte 0x03004b20 _08149A4C: movs r0, 0x60 strh r0, [r1, 0x26] ldr r0, _08149A5C str r0, [r1] _08149A54: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08149A5C: .4byte sub_8149A60 thumb_func_end sub_81499F0 thumb_func_start sub_8149A60 sub_8149A60: @ 8149A60 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _08149A80 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0, r1 ldrh r3, [r1, 0x26] movs r4, 0x26 ldrsh r0, [r1, r4] cmp r0, 0 beq _08149A84 subs r0, r3, 0x1 strh r0, [r1, 0x26] b _08149A8A .align 2, 0 _08149A80: .4byte 0x03004b20 _08149A84: adds r0, r2, 0 bl DestroyTask _08149A8A: pop {r4} pop {r0} bx r0 thumb_func_end sub_8149A60 thumb_func_start sub_8149A90 sub_8149A90: @ 8149A90 push {lr} ldr r0, _08149AA4 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08149AA4: .4byte sub_8149AA8 thumb_func_end sub_8149A90 thumb_func_start sub_8149AA8 sub_8149AA8: @ 8149AA8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8149520 ldr r1, _08149AD4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x26] ldr r1, _08149AD8 str r1, [r0] movs r0, 0xB7 bl audio_play pop {r4} pop {r0} bx r0 .align 2, 0 _08149AD4: .4byte 0x03004b20 _08149AD8: .4byte sub_8149ADC thumb_func_end sub_8149AA8 thumb_func_start sub_8149ADC sub_8149ADC: @ 8149ADC push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _08149B20 lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 3 adds r1, r0, r1 movs r3, 0x26 ldrsh r0, [r1, r3] cmp r0, 0x5F bgt _08149B24 adds r6, r2, 0 cmp r0, 0x5 bgt _08149B0E movs r4, 0 _08149AFC: lsls r0, r4, 28 lsrs r0, 24 bl sub_81496E4 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x8 bls _08149AFC _08149B0E: ldr r0, _08149B20 adds r1, r6, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x26] adds r0, 0x1 strh r0, [r1, 0x26] b _08149B28 .align 2, 0 _08149B20: .4byte 0x03004b20 _08149B24: ldr r0, _08149B30 str r0, [r1] _08149B28: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08149B30: .4byte sub_8149B34 thumb_func_end sub_8149ADC thumb_func_start sub_8149B34 sub_8149B34: @ 8149B34 push {lr} lsls r0, 24 lsrs r0, 24 bl DestroyTask pop {r0} bx r0 thumb_func_end sub_8149B34 thumb_func_start sub_8149B44 sub_8149B44: @ 8149B44 push {lr} ldr r0, _08149B58 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08149B58: .4byte sub_8149B5C thumb_func_end sub_8149B44 thumb_func_start sub_8149B5C sub_8149B5C: @ 8149B5C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8149520 ldr r1, _08149B88 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x26] ldr r1, _08149B8C str r1, [r0] movs r0, 0x66 bl audio_play pop {r4} pop {r0} bx r0 .align 2, 0 _08149B88: .4byte 0x03004b20 _08149B8C: .4byte sub_8149B90 thumb_func_end sub_8149B5C thumb_func_start sub_8149B90 sub_8149B90: @ 8149B90 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _08149BFC lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 3 adds r1, r0, r1 movs r3, 0x26 ldrsh r0, [r1, r3] cmp r0, 0x2F bgt _08149C00 adds r6, r2, 0 cmp r0, 0 bne _08149BC4 movs r4, 0 _08149BB0: lsls r0, r4, 28 lsrs r0, 24 movs r1, 0x4 bl sub_8149794 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _08149BB0 _08149BC4: ldr r0, _08149BFC adds r1, r6, r5 lsls r1, 3 adds r1, r0 movs r2, 0x26 ldrsh r0, [r1, r2] cmp r0, 0x20 bne _08149BEA movs r4, 0 _08149BD6: lsls r0, r4, 28 lsrs r0, 24 movs r1, 0x8 bl sub_8149794 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _08149BD6 _08149BEA: ldr r0, _08149BFC adds r1, r6, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x26] adds r0, 0x1 strh r0, [r1, 0x26] b _08149C04 .align 2, 0 _08149BFC: .4byte 0x03004b20 _08149C00: ldr r0, _08149C0C str r0, [r1] _08149C04: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08149C0C: .4byte sub_8149C10 thumb_func_end sub_8149B90 thumb_func_start sub_8149C10 sub_8149C10: @ 8149C10 push {lr} lsls r0, 24 lsrs r0, 24 bl DestroyTask pop {r0} bx r0 thumb_func_end sub_8149C10 thumb_func_start sub_8149C20 sub_8149C20: @ 8149C20 push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _08149C48 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08149C4C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0xC] pop {r4} pop {r1} bx r1 .align 2, 0 _08149C48: .4byte sub_8149C50 _08149C4C: .4byte 0x03004b20 thumb_func_end sub_8149C20 thumb_func_start sub_8149C50 sub_8149C50: @ 8149C50 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8149520 ldr r0, _08149C98 lsls r5, r4, 2 adds r5, r4 lsls r5, 3 adds r5, r0 movs r0, 0 strh r0, [r5, 0x26] ldr r0, _08149C9C ldr r1, _08149CA0 movs r2, 0x30 bl CpuSet ldr r0, _08149CA4 ldr r1, _08149CA8 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08149CAC str r0, [r5] movs r0, 0xCA bl audio_play add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08149C98: .4byte 0x03004b20 _08149C9C: .4byte 0x0202ef08 _08149CA0: .4byte 0x0202eb08 _08149CA4: .4byte 0xfff9001c _08149CA8: .4byte 0x00007fff _08149CAC: .4byte sub_8149CB0 thumb_func_end sub_8149C50 thumb_func_start sub_8149CB0 sub_8149CB0: @ 8149CB0 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r1, _08149CE8 lsls r5, r6, 2 adds r0, r5, r6 lsls r0, 3 adds r1, r0, r1 movs r0, 0x26 ldrsh r2, [r1, r0] cmp r2, 0x7F bgt _08149D2C adds r0, r2, 0 cmp r0, 0 beq _08149CEC cmp r0, 0x20 beq _08149D00 cmp r2, 0x31 bgt _08149D10 bl Random movs r1, 0x7 ands r0, r1 bl sub_81498CC b _08149D10 .align 2, 0 _08149CE8: .4byte 0x03004b20 _08149CEC: movs r4, 0 _08149CEE: adds r0, r4, 0 bl sub_81498CC adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _08149CEE b _08149D10 _08149D00: ldr r0, _08149D20 ldr r1, _08149D24 str r1, [sp] movs r1, 0x10 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade _08149D10: ldr r0, _08149D28 adds r1, r5, r6 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x26] adds r0, 0x1 strh r0, [r1, 0x26] b _08149D30 .align 2, 0 _08149D20: .4byte 0xffff001c _08149D24: .4byte 0x00007fff _08149D28: .4byte 0x03004b20 _08149D2C: ldr r0, _08149D38 str r0, [r1] _08149D30: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08149D38: .4byte sub_8149D3C thumb_func_end sub_8149CB0 thumb_func_start sub_8149D3C sub_8149D3C: @ 8149D3C push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _08149D58 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08149D54 adds r0, r2, 0 bl DestroyTask _08149D54: pop {r0} bx r0 .align 2, 0 _08149D58: .4byte 0x0202f388 thumb_func_end sub_8149D3C thumb_func_start sub_8149D5C sub_8149D5C: @ 8149D5C push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _08149D84 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08149D88 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0xC] pop {r4} pop {r1} bx r1 .align 2, 0 _08149D84: .4byte sub_8149D8C _08149D88: .4byte 0x03004b20 thumb_func_end sub_8149D5C thumb_func_start sub_8149D8C sub_8149D8C: @ 8149D8C push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8149520 ldr r0, _08149DD4 lsls r5, r4, 2 adds r5, r4 lsls r5, 3 adds r5, r0 movs r0, 0 strh r0, [r5, 0x26] ldr r0, _08149DD8 ldr r1, _08149DDC movs r2, 0x30 bl CpuSet ldr r0, _08149DE0 ldr r1, _08149DE4 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08149DE8 str r0, [r5] movs r0, 0xCA bl audio_play add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08149DD4: .4byte 0x03004b20 _08149DD8: .4byte 0x0202ef08 _08149DDC: .4byte 0x0202eb08 _08149DE0: .4byte 0xfff90001 _08149DE4: .4byte 0x00007fff _08149DE8: .4byte sub_8149DEC thumb_func_end sub_8149D8C thumb_func_start sub_8149DEC sub_8149DEC: @ 8149DEC push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r1, _08149E24 lsls r5, r6, 2 adds r0, r5, r6 lsls r0, 3 adds r1, r0, r1 movs r0, 0x26 ldrsh r2, [r1, r0] cmp r2, 0x7F bgt _08149E68 adds r0, r2, 0 cmp r0, 0 beq _08149E28 cmp r0, 0x20 beq _08149E3C cmp r2, 0x31 bgt _08149E4C bl Random movs r1, 0x7 ands r0, r1 bl sub_81498CC b _08149E4C .align 2, 0 _08149E24: .4byte 0x03004b20 _08149E28: movs r4, 0 _08149E2A: adds r0, r4, 0 bl sub_81498CC adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _08149E2A b _08149E4C _08149E3C: ldr r0, _08149E5C ldr r1, _08149E60 str r1, [sp] movs r1, 0x10 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade _08149E4C: ldr r0, _08149E64 adds r1, r5, r6 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x26] adds r0, 0x1 strh r0, [r1, 0x26] b _08149E6C .align 2, 0 _08149E5C: .4byte 0xffff0001 _08149E60: .4byte 0x00007fff _08149E64: .4byte 0x03004b20 _08149E68: ldr r0, _08149E74 str r0, [r1] _08149E6C: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08149E74: .4byte sub_8149D3C thumb_func_end sub_8149DEC thumb_func_start nullsub_85 nullsub_85: @ 8149E78 bx lr thumb_func_end nullsub_85 thumb_func_start sub_8149E7C sub_8149E7C: @ 8149E7C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r7, r1, 24 movs r1, 0 ldr r3, _08149FB0 ldr r2, _08149FB4 _08149E96: lsls r0, r1, 1 add r0, sp adds r0, 0x4 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0xF bls _08149E96 adds r0, r3, 0 movs r1, 0 bl CreateTask mov r8, r0 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _08149FB8 mov r1, r8 lsls r6, r1, 2 add r6, r8 lsls r6, 3 adds r6, r0 strh r5, [r6, 0xA] strh r7, [r6, 0xC] movs r1, 0x80 lsls r1, 1 strh r1, [r6, 0xE] movs r0, 0x10 strh r0, [r6, 0x10] movs r4, 0x80 lsls r4, 9 str r1, [sp] movs r0, 0x1E movs r2, 0 movs r3, 0 bl SetOamMatrix movs r0, 0x10 ldrsh r1, [r6, r0] adds r0, r4, 0 bl __divsi3 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 str r1, [sp] movs r0, 0x1F movs r2, 0 movs r3, 0 bl SetOamMatrix ldr r1, _08149FBC mov r9, r1 lsls r2, r5, 4 adds r2, r5 lsls r2, 2 mov r3, r9 adds r3, 0x1C adds r0, r2, r3 ldr r1, _08149FC0 str r1, [r0] add r2, r9 ldrb r1, [r2, 0x1] movs r4, 0x4 negs r4, r4 adds r0, r4, 0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x1] ldrb r1, [r2, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x3C orrs r0, r1 strb r0, [r2, 0x3] movs r0, 0x3E adds r0, r2 mov r10, r0 ldrb r1, [r0] movs r5, 0x5 negs r5, r5 adds r0, r5, 0 ands r0, r1 mov r1, r10 strb r0, [r1] ldrb r1, [r2, 0x5] lsrs r1, 4 lsls r1, 5 ldr r0, _08149FC4 mov r10, r0 add r1, r10 add r0, sp, 0x4 movs r2, 0x10 str r3, [sp, 0x24] bl CpuSet lsls r1, r7, 4 adds r1, r7 lsls r1, 2 ldr r3, [sp, 0x24] adds r3, r1, r3 ldr r0, _08149FC0 str r0, [r3] add r1, r9 ldrb r0, [r1, 0x1] ands r4, r0 movs r0, 0x1 orrs r4, r0 strb r4, [r1, 0x1] ldrb r0, [r1, 0x3] movs r2, 0x3E orrs r0, r2 strb r0, [r1, 0x3] adds r2, r1, 0 adds r2, 0x3E ldrb r0, [r2] ands r5, r0 strb r5, [r2] ldrb r1, [r1, 0x5] lsrs r1, 4 lsls r1, 5 add r1, r10 add r0, sp, 0x4 movs r2, 0x10 bl CpuSet movs r1, 0 strh r1, [r6, 0x18] mov r0, r8 add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08149FB0: .4byte sub_8149FC8 _08149FB4: .4byte 0x00007fff _08149FB8: .4byte 0x03004b20 _08149FBC: .4byte 0x02020004 _08149FC0: .4byte nullsub_85 _08149FC4: .4byte 0x0202f0c8 thumb_func_end sub_8149E7C thumb_func_start sub_8149FC8 sub_8149FC8: @ 8149FC8 lsls r0, 24 lsrs r0, 24 ldr r2, _08149FE4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0x12] movs r0, 0x8 strh r0, [r1, 0x14] ldr r0, _08149FE8 str r0, [r1] bx lr .align 2, 0 _08149FE4: .4byte 0x03004b20 _08149FE8: .4byte sub_8149FEC thumb_func_end sub_8149FC8 thumb_func_start sub_8149FEC sub_8149FEC: @ 8149FEC push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r1, _0814A00C lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r2, r0, r1 movs r1, 0x18 ldrsh r0, [r2, r1] cmp r0, 0 beq _0814A010 adds r0, r3, 0 bl sub_814A208 b _0814A032 .align 2, 0 _0814A00C: .4byte 0x03004b20 _0814A010: ldrh r1, [r2, 0x14] movs r4, 0x14 ldrsh r0, [r2, r4] cmp r0, 0x80 bne _0814A022 adds r0, r3, 0 bl sub_814A158 b _0814A032 _0814A022: adds r0, r1, 0x2 strh r0, [r2, 0x14] ldrh r0, [r2, 0x12] movs r1, 0x1 eors r0, r1 strh r0, [r2, 0x12] ldr r0, _0814A038 str r0, [r2] _0814A032: pop {r4} pop {r0} bx r0 .align 2, 0 _0814A038: .4byte sub_814A03C thumb_func_end sub_8149FEC thumb_func_start sub_814A03C sub_814A03C: @ 814A03C push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _0814A060 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 movs r3, 0x18 ldrsh r0, [r2, r3] adds r5, r1, 0 cmp r0, 0 beq _0814A068 ldr r0, _0814A064 str r0, [r2] b _0814A14C .align 2, 0 _0814A060: .4byte 0x03004b20 _0814A064: .4byte sub_814A208 _0814A068: movs r6, 0 movs r7, 0x12 ldrsh r0, [r2, r7] cmp r0, 0 bne _0814A0B8 movs r0, 0xE ldrsh r1, [r2, r0] movs r3, 0x14 ldrsh r0, [r2, r3] movs r3, 0x80 lsls r3, 1 subs r0, r3, r0 cmp r1, r0 bge _0814A08E ldrh r0, [r2, 0x14] ldrh r7, [r2, 0xE] adds r0, r7 strh r0, [r2, 0xE] b _0814A092 _0814A08E: strh r3, [r2, 0xE] movs r6, 0x1 _0814A092: lsls r2, r4, 2 adds r0, r2, r4 lsls r0, 3 adds r3, r0, r5 movs r0, 0x10 ldrsh r1, [r3, r0] movs r7, 0x14 ldrsh r0, [r3, r7] adds r0, 0x10 cmp r1, r0 ble _0814A0B2 ldrh r0, [r3, 0x10] ldrh r1, [r3, 0x14] subs r0, r1 strh r0, [r3, 0x10] b _0814A102 _0814A0B2: movs r0, 0x10 strh r0, [r3, 0x10] b _0814A0FC _0814A0B8: movs r0, 0x10 ldrsh r1, [r2, r0] movs r3, 0x14 ldrsh r0, [r2, r3] movs r3, 0x80 lsls r3, 1 subs r0, r3, r0 cmp r1, r0 bge _0814A0D4 ldrh r0, [r2, 0x14] ldrh r7, [r2, 0x10] adds r0, r7 strh r0, [r2, 0x10] b _0814A0D8 _0814A0D4: strh r3, [r2, 0x10] movs r6, 0x1 _0814A0D8: lsls r2, r4, 2 adds r0, r2, r4 lsls r0, 3 adds r3, r0, r5 movs r0, 0xE ldrsh r1, [r3, r0] movs r7, 0x14 ldrsh r0, [r3, r7] adds r0, 0x10 cmp r1, r0 ble _0814A0F8 ldrh r0, [r3, 0xE] ldrh r1, [r3, 0x14] subs r0, r1 strh r0, [r3, 0xE] b _0814A102 _0814A0F8: movs r0, 0x10 strh r0, [r3, 0xE] _0814A0FC: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0814A102: adds r0, r2, r4 lsls r0, 3 adds r5, r0, r5 movs r0, 0xE ldrsh r1, [r5, r0] movs r4, 0x80 lsls r4, 9 adds r0, r4, 0 bl __divsi3 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 str r1, [sp] movs r0, 0x1E movs r2, 0 movs r3, 0 bl SetOamMatrix movs r3, 0x10 ldrsh r1, [r5, r3] adds r0, r4, 0 bl __divsi3 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 str r1, [sp] movs r0, 0x1F movs r2, 0 movs r3, 0 bl SetOamMatrix cmp r6, 0x2 bne _0814A14C ldr r0, _0814A154 str r0, [r5] _0814A14C: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0814A154: .4byte sub_8149FEC thumb_func_end sub_814A03C thumb_func_start sub_814A158 sub_814A158: @ 814A158 push {r4-r6,lr} mov r6, r8 push {r6} lsls r0, 24 lsrs r0, 24 ldr r1, _0814A200 mov r8, r1 ldr r1, _0814A204 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r2, 0xA ldrsh r1, [r4, r2] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 add r2, r8 ldrb r3, [r2, 0x1] movs r6, 0x4 negs r6, r6 adds r1, r6, 0 ands r1, r3 strb r1, [r2, 0x1] movs r2, 0xA ldrsh r1, [r4, r2] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 add r2, r8 ldrb r3, [r2, 0x3] movs r5, 0x3F negs r5, r5 adds r1, r5, 0 ands r1, r3 strb r1, [r2, 0x3] movs r1, 0xA ldrsh r2, [r4, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r1, r8 adds r1, 0x3E ldrb r2, [r1] movs r3, 0x4 orrs r2, r3 strb r2, [r1] movs r1, 0xC ldrsh r2, [r4, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r1, r8 ldrb r2, [r1, 0x1] ands r6, r2 strb r6, [r1, 0x1] movs r1, 0xC ldrsh r2, [r4, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r1, r8 ldrb r2, [r1, 0x3] ands r5, r2 strb r5, [r1, 0x3] movs r1, 0xC ldrsh r2, [r4, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r1, r8 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 ands r2, r3 strb r2, [r1] bl DestroyTask pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0814A200: .4byte 0x02020004 _0814A204: .4byte 0x03004b20 thumb_func_end sub_814A158 thumb_func_start sub_814A208 sub_814A208: @ 814A208 push {r4-r6,lr} mov r6, r8 push {r6} lsls r0, 24 lsrs r0, 24 ldr r1, _0814A2B0 mov r8, r1 ldr r1, _0814A2B4 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r2, 0xA ldrsh r1, [r4, r2] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 add r2, r8 ldrb r3, [r2, 0x1] movs r6, 0x4 negs r6, r6 adds r1, r6, 0 ands r1, r3 strb r1, [r2, 0x1] movs r2, 0xA ldrsh r1, [r4, r2] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 add r2, r8 ldrb r3, [r2, 0x3] movs r5, 0x3F negs r5, r5 adds r1, r5, 0 ands r1, r3 strb r1, [r2, 0x3] movs r1, 0xA ldrsh r2, [r4, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r1, r8 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 ands r2, r3 strb r2, [r1] movs r1, 0xC ldrsh r2, [r4, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r1, r8 ldrb r2, [r1, 0x1] ands r6, r2 strb r6, [r1, 0x1] movs r1, 0xC ldrsh r2, [r4, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r1, r8 ldrb r2, [r1, 0x3] ands r5, r2 strb r5, [r1, 0x3] movs r1, 0xC ldrsh r2, [r4, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r1, r8 adds r1, 0x3E ldrb r2, [r1] movs r3, 0x4 orrs r2, r3 strb r2, [r1] bl DestroyTask pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0814A2B0: .4byte 0x02020004 _0814A2B4: .4byte 0x03004b20 thumb_func_end sub_814A208 thumb_func_start sub_814A2B8 sub_814A2B8: @ 814A2B8 ldr r2, _0814A2CC lsls r0, 2 adds r0, r2 ldr r0, [r0] lsls r1, 1 adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] bx lr .align 2, 0 _0814A2CC: .4byte gUnknown_08417068 thumb_func_end sub_814A2B8 thumb_func_start sub_814A2D0 sub_814A2D0: @ 814A2D0 lsls r0, 16 lsls r1, 16 lsrs r1, 16 ldr r2, _0814A2E8 lsrs r0, 14 adds r0, r2 ldr r0, [r0] lsls r2, r1, 1 adds r2, r1 lsls r2, 4 adds r0, r2 bx lr .align 2, 0 _0814A2E8: .4byte gBardMusicTable thumb_func_end sub_814A2D0 thumb_func_start sub_814A2EC sub_814A2EC: @ 814A2EC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r6, r0, 0 lsls r2, 16 lsrs r2, 16 mov r9, r2 ldr r4, _0814A370 adds r2, r1, 0 adds r3, r6, 0 adds r3, 0x18 movs r7, 0x5 _0814A306: ldrb r0, [r2] strh r0, [r3] ldrb r0, [r2] cmp r0, 0xFF beq _0814A328 movs r1, 0x1 ldrsb r1, [r2, r1] lsls r0, 2 adds r0, r4 ldr r0, [r0] adds r1, r0 strh r1, [r3, 0x2] ldrh r0, [r2, 0x4] strh r0, [r3, 0x6] ldrh r0, [r6, 0x4] adds r0, r1 strh r0, [r6, 0x4] _0814A328: adds r2, 0x8 adds r3, 0x8 subs r7, 0x1 cmp r7, 0 bge _0814A306 movs r7, 0x6 movs r5, 0 movs r0, 0x1E mov r8, r0 adds r4, r6, 0 _0814A33C: mov r0, r8 add r0, r9 adds r1, r5, 0 bl sub_814A2B8 adds r1, r0, 0 strh r1, [r4, 0x1C] adds r4, 0x8 adds r5, 0x1 cmp r5, r7 blt _0814A33C ldrb r1, [r6] adds r1, 0x1 movs r2, 0 strb r1, [r6] strb r2, [r6, 0x1] strb r2, [r6, 0x2] strb r2, [r6, 0x3] strh r2, [r6, 0xA] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0814A370: .4byte gUnknown_084170F4 thumb_func_end sub_814A2EC thumb_func_start sub_814A374 sub_814A374: @ 814A374 push {lr} ldr r0, _0814A38C ldrb r0, [r0, 0x17] bl is_light_level_1_2_3_or_6 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0814A390 movs r0, 0 b _0814A39E .align 2, 0 _0814A38C: .4byte 0x0202e828 _0814A390: ldr r1, _0814A3A4 ldr r0, _0814A3A8 str r0, [r1] ldr r1, _0814A3AC ldr r0, _0814A3B0 str r0, [r1] movs r0, 0x1 _0814A39E: pop {r1} bx r1 .align 2, 0 _0814A3A4: .4byte 0x0300485c _0814A3A8: .4byte sub_808AB90 _0814A3AC: .4byte 0x03005ce4 _0814A3B0: .4byte hm_teleport_run_dp02scr thumb_func_end sub_814A374 thumb_func_start hm_teleport_run_dp02scr hm_teleport_run_dp02scr: @ 814A3B4 push {lr} bl new_game movs r0, 0x3F bl FieldEffectStart ldr r0, _0814A3CC ldr r1, _0814A3D0 ldrb r1, [r1] str r1, [r0] pop {r0} bx r0 .align 2, 0 _0814A3CC: .4byte 0x0202ff84 _0814A3D0: .4byte 0x03005ce0 thumb_func_end hm_teleport_run_dp02scr thumb_func_start sub_814A3D4 sub_814A3D4: @ 814A3D4 push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _0814A3FC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _0814A400 lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] movs r0, 0x1 bl SetPlayerAvatarTransitionFlags movs r0, 0 pop {r1} bx r1 .align 2, 0 _0814A3FC: .4byte 0x03004b20 _0814A400: .4byte sub_814A404 thumb_func_end sub_814A3D4 thumb_func_start sub_814A404 sub_814A404: @ 814A404 push {lr} movs r0, 0x3F bl FieldEffectActiveListRemove bl sub_8087BA8 pop {r0} bx r0 thumb_func_end sub_814A404 thumb_func_start unref_sub_814A414 unref_sub_814A414: @ 814A414 push {lr} sub sp, 0x8 bl sub_8071EF4 movs r0, 0 movs r1, 0 movs r2, 0x10 movs r3, 0x12 bl DrawDefaultWindow ldr r3, _0814A458 movs r0, 0x2 movs r1, 0x1 movs r2, 0x8 bl PrintStringArray movs r0, 0 str r0, [sp] movs r0, 0xF str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0x8 bl InitMenu ldr r1, _0814A45C ldr r0, _0814A460 str r0, [r1] movs r0, 0 add sp, 0x8 pop {r1} bx r1 .align 2, 0 _0814A458: .4byte gUnknown_0842C29C _0814A45C: .4byte 0x03004ae8 _0814A460: .4byte sub_814A464 thumb_func_end unref_sub_814A414 thumb_func_start sub_814A464 sub_814A464: @ 814A464 push {lr} bl ProcessMenuInput lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 lsls r0, r2, 24 asrs r1, r0, 24 movs r0, 0x2 negs r0, r0 cmp r1, r0 bne _0814A480 movs r0, 0 b _0814A4B2 _0814A480: movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0814A4AC ldr r0, _0814A4A0 strb r2, [r0] ldr r2, _0814A4A4 ldr r0, _0814A4A8 lsls r1, 3 adds r0, 0x4 adds r1, r0 ldr r0, [r1] str r0, [r2] movs r0, 0 b _0814A4B2 .align 2, 0 _0814A4A0: .4byte 0x02024d1e _0814A4A4: .4byte 0x03004ae8 _0814A4A8: .4byte gUnknown_0842C29C _0814A4AC: bl sub_8071C20 movs r0, 0x1 _0814A4B2: pop {r1} bx r1 thumb_func_end sub_814A464 thumb_func_start sub_814A4B8 sub_814A4B8: @ 814A4B8 push {r4,lr} ldr r2, _0814A4FC ldr r1, _0814A500 adds r0, r2, r1 movs r1, 0x3 strb r1, [r0] ldr r3, _0814A504 adds r0, r2, r3 strb r1, [r0] ldr r3, _0814A508 ldrb r0, [r3] adds r0, 0x1 ldr r4, _0814A50C adds r1, r2, r4 strh r0, [r1] ldrb r0, [r3] adds r0, 0x1 ldr r3, _0814A510 adds r1, r2, r3 strh r0, [r1] subs r4, 0x4 adds r0, r2, r4 movs r1, 0x1 strh r1, [r0] ldr r0, _0814A514 adds r2, r0 strh r1, [r2] bl sub_8071C20 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0814A4FC: .4byte gSaveBlock2 _0814A500: .4byte 0x00000556 _0814A504: .4byte 0x00000557 _0814A508: .4byte 0x02024d1e _0814A50C: .4byte 0x0000055c _0814A510: .4byte 0x0000055e _0814A514: .4byte 0x0000055a thumb_func_end sub_814A4B8 thumb_func_start sub_814A518 sub_814A518: @ 814A518 push {r4,r5,lr} adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 bl SkipExtCtrlCodes adds r0, r4, 0 bl StringLength lsls r0, 24 lsrs r1, r0, 24 cmp r5, 0xFC bne _0814A556 cmp r1, 0x5 bhi _0814A55A movs r3, 0xFC movs r2, 0x7 _0814A53A: adds r0, r4, r1 strb r3, [r0] strb r2, [r0, 0x1] adds r0, r1, 0x2 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x5 bls _0814A53A b _0814A55A _0814A54C: adds r0, r4, r1 strb r5, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 _0814A556: cmp r1, 0x5 bls _0814A54C _0814A55A: adds r1, r4, r1 movs r0, 0xFF strb r0, [r1] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_814A518 thumb_func_start sub_814A568 sub_814A568: @ 814A568 push {r4,lr} adds r4, r0, 0 bl StringLength lsls r0, 16 lsrs r0, 16 cmp r0, 0x5 bhi _0814A582 adds r0, r4, 0 movs r1, 0x1 bl ConvertInternationalString b _0814A588 _0814A582: adds r0, r4, 0 bl SkipExtCtrlCodes _0814A588: pop {r4} pop {r0} bx r0 thumb_func_end sub_814A568 thumb_func_start sub_814A590 sub_814A590: @ 814A590 ldr r0, _0814A5AC movs r1, 0x40 strb r1, [r0] ldr r0, _0814A5B0 strb r1, [r0] ldr r0, _0814A5B4 strb r1, [r0] ldr r0, _0814A5B8 movs r1, 0 strb r1, [r0] ldr r0, _0814A5BC strb r1, [r0] bx lr .align 2, 0 _0814A5AC: .4byte 0x0203a3d0 _0814A5B0: .4byte 0x0203a3d1 _0814A5B4: .4byte 0x0203a3d2 _0814A5B8: .4byte 0x0203a3d3 _0814A5BC: .4byte 0x0203a3d4 thumb_func_end sub_814A590 thumb_func_start sub_814A5C0 sub_814A5C0: @ 814A5C0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r4, [sp, 0x1C] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 16 lsrs r6, r1, 16 lsls r2, 24 lsrs r5, r2, 24 lsls r3, 16 lsrs r7, r3, 16 lsls r4, 24 lsrs r4, 24 mov r9, r4 ldr r0, _0814A678 ldrb r0, [r0] cmp r0, 0x40 bne _0814A5F2 ldr r0, _0814A67C ldrb r0, [r0] cmp r0, 0x40 beq _0814A5F6 _0814A5F2: bl sub_814A7FC _0814A5F6: movs r4, 0x1 ldr r0, _0814A680 cmp r6, r0 bne _0814A61C ldr r1, _0814A684 movs r0, 0xF ands r0, r5 lsls r0, 1 adds r0, r1 strh r7, [r0] ldr r0, _0814A688 bl LoadSpritePalette lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _0814A61C ldr r6, _0814A68C movs r4, 0 _0814A61C: movs r7, 0xF adds r0, r5, 0 ands r0, r7 lsls r0, 3 ldr r1, _0814A690 adds r0, r1 bl LoadSpriteSheetDeferred lsls r0, r4, 1 adds r0, r4 lsls r0, 3 ldr r4, _0814A694 adds r0, r4 movs r1, 0 movs r2, 0xA0 mov r3, r8 bl CreateSprite ldr r5, _0814A678 strb r0, [r5] adds r4, 0x30 adds r0, r4, 0 movs r1, 0 movs r2, 0xA0 mov r3, r8 bl CreateSprite ldr r1, _0814A67C strb r0, [r1] ldrb r0, [r5] cmp r0, 0x40 beq _0814A6AE adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814A698 adds r4, r0, r1 ldr r0, _0814A680 cmp r6, r0 bne _0814A69C ldrb r1, [r4, 0x5] adds r0, r7, 0 ands r0, r1 strb r0, [r4, 0x5] b _0814A6AE .align 2, 0 _0814A678: .4byte 0x0203a3d0 _0814A67C: .4byte 0x0203a3d1 _0814A680: .4byte 0x0000ffff _0814A684: .4byte 0x0203a360 _0814A688: .4byte gUnknown_0842F240 _0814A68C: .4byte 0x0000fff0 _0814A690: .4byte gUnknown_0842F140 _0814A694: .4byte gSpriteTemplate_842F250 _0814A698: .4byte 0x02020004 _0814A69C: adds r0, r6, 0 bl IndexOfSpritePaletteTag lsls r0, 4 ldrb r2, [r4, 0x5] adds r1, r7, 0 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x5] _0814A6AE: ldr r1, _0814A6D4 ldrb r0, [r1] cmp r0, 0x40 beq _0814A72C adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814A6D8 adds r4, r0, r1 ldr r0, _0814A6DC cmp r6, r0 bne _0814A6E0 ldrb r1, [r4, 0x5] movs r0, 0xF ands r0, r1 strb r0, [r4, 0x5] b _0814A6F2 .align 2, 0 _0814A6D4: .4byte 0x0203a3d1 _0814A6D8: .4byte 0x02020004 _0814A6DC: .4byte 0x0000ffff _0814A6E0: adds r0, r6, 0 bl IndexOfSpritePaletteTag lsls r0, 4 ldrb r2, [r4, 0x5] movs r1, 0xF ands r1, r2 orrs r1, r0 strb r1, [r4, 0x5] _0814A6F2: movs r3, 0x80 lsls r3, 19 ldrh r1, [r3] movs r0, 0xC0 lsls r0, 7 ands r0, r1 cmp r0, 0 bne _0814A70C ldr r0, _0814A744 ldrb r1, [r0] movs r2, 0x1F orrs r1, r2 strb r1, [r0] _0814A70C: ldr r1, _0814A748 ldrh r0, [r3] lsrs r0, 15 strb r0, [r1] ldr r1, _0814A74C ldr r2, _0814A750 ldrb r0, [r2] strb r0, [r1] ldrh r0, [r3] movs r4, 0x80 lsls r4, 8 adds r1, r4, 0 orrs r0, r1 strh r0, [r3] movs r0, 0x10 strb r0, [r2] _0814A72C: mov r0, r9 bl sub_814A958 ldr r0, _0814A754 ldrb r0, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0814A744: .4byte REG_WINOUT _0814A748: .4byte 0x0203a3d3 _0814A74C: .4byte 0x0203a3d4 _0814A750: .4byte 0x0400004b _0814A754: .4byte 0x0203a3d0 thumb_func_end sub_814A5C0 thumb_func_start sub_814A758 sub_814A758: @ 814A758 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 str r3, [sp] movs r1, 0 movs r3, 0 bl sub_814A5C0 lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 cmp r4, 0x40 beq _0814A79A ldr r0, _0814A7A4 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _0814A7A8 adds r1, r0 lsls r3, r5, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] _0814A79A: adds r0, r4, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0814A7A4: .4byte 0x0203a3d0 _0814A7A8: .4byte 0x02020004 thumb_func_end sub_814A758 thumb_func_start unref_sub_814A7AC unref_sub_814A7AC: @ 814A7AC push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 mov r12, r0 lsls r1, 16 lsrs r4, r1, 16 lsls r2, 24 lsrs r7, r2, 24 movs r3, 0 movs r2, 0xF movs r1, 0 ldr r6, _0814A7F8 movs r5, 0xF _0814A7C6: lsls r0, r1, 1 adds r0, r6 ldrh r0, [r0] cmp r0, r4 bne _0814A7DA lsrs r0, r1, 4 lsls r0, 24 lsrs r3, r0, 24 adds r2, r1, 0 ands r2, r5 _0814A7DA: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0xFF bls _0814A7C6 mov r0, r12 adds r1, r3, 0 adds r3, r7, 0 bl sub_814A758 lsls r0, 24 lsrs r0, 24 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0814A7F8: .4byte 0x0202eac8 thumb_func_end unref_sub_814A7AC thumb_func_start sub_814A7FC sub_814A7FC: @ 814A7FC push {r4,lr} ldr r4, _0814A860 ldrb r0, [r4] cmp r0, 0x40 beq _0814A820 ldr r0, _0814A864 bl LoadTilesForSpriteSheet ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814A868 adds r0, r1 bl DestroySpriteAndFreeResources movs r0, 0x40 strb r0, [r4] _0814A820: ldr r4, _0814A86C ldrb r0, [r4] cmp r0, 0x40 beq _0814A858 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814A868 adds r0, r1 bl DestroySpriteAndFreeResources movs r0, 0x40 strb r0, [r4] ldr r0, _0814A870 ldrb r0, [r0] cmp r0, 0 bne _0814A850 movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _0814A874 ands r0, r1 strh r0, [r2] _0814A850: ldr r0, _0814A878 ldr r1, _0814A87C ldrb r1, [r1] strb r1, [r0] _0814A858: pop {r4} pop {r0} bx r0 .align 2, 0 _0814A860: .4byte 0x0203a3d0 _0814A864: .4byte gUnknown_0842F140 _0814A868: .4byte 0x02020004 _0814A86C: .4byte 0x0203a3d1 _0814A870: .4byte 0x0203a3d3 _0814A874: .4byte 0x00007fff _0814A878: .4byte 0x0400004b _0814A87C: .4byte 0x0203a3d4 thumb_func_end sub_814A7FC thumb_func_start sub_814A880 sub_814A880: @ 814A880 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 adds r7, r5, 0 lsls r1, 24 lsrs r4, r1, 24 adds r6, r4, 0 ldr r1, _0814A8F8 ldrb r0, [r1] cmp r0, 0x40 beq _0814A8C0 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814A8FC adds r2, r0, r1 adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] adds r0, r2, 0 adds r0, 0x28 movs r1, 0 strb r1, [r0] adds r0, 0x1 strb r1, [r0] strh r5, [r2, 0x20] strh r4, [r2, 0x22] _0814A8C0: ldr r1, _0814A900 ldrb r0, [r1] cmp r0, 0x40 beq _0814A8F2 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814A8FC adds r2, r0, r1 adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] adds r0, r2, 0 adds r0, 0x28 movs r1, 0 strb r1, [r0] adds r0, 0x1 strb r1, [r0] strh r7, [r2, 0x20] strh r6, [r2, 0x22] _0814A8F2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0814A8F8: .4byte 0x0203a3d0 _0814A8FC: .4byte 0x02020004 _0814A900: .4byte 0x0203a3d1 thumb_func_end sub_814A880 thumb_func_start sub_814A904 sub_814A904: @ 814A904 push {lr} ldr r1, _0814A94C ldrb r0, [r1] cmp r0, 0x40 beq _0814A926 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814A950 adds r0, r1 adds r2, r0, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _0814A926: ldr r1, _0814A954 ldrb r0, [r1] cmp r0, 0x40 beq _0814A946 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814A950 adds r0, r1 adds r2, r0, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _0814A946: pop {r0} bx r0 .align 2, 0 _0814A94C: .4byte 0x0203a3d0 _0814A950: .4byte 0x02020004 _0814A954: .4byte 0x0203a3d1 thumb_func_end sub_814A904 thumb_func_start sub_814A958 sub_814A958: @ 814A958 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 ldr r4, _0814A9C4 ldr r2, _0814A9C8 lsrs r0, 24 str r0, [sp] movs r0, 0 movs r1, 0 movs r1, 0x2 str r0, [r4] str r1, [r4, 0x4] strh r2, [r4] adds r4, 0x8 movs r7, 0x1 movs r2, 0x1 ldr r1, [sp] subs r0, r1, 0x1 lsls r0, 16 lsrs r3, r0, 16 asrs r0, 16 cmp r0, 0x7 ble _0814AA3A ldr r0, _0814A9CC mov r12, r0 mov r8, r1 movs r1, 0x8 negs r1, r1 mov r10, r1 ldr r5, _0814A9D0 mov r9, r5 _0814A99E: lsls r0, r3, 16 asrs r3, r0, 16 cmp r3, 0x1F ble _0814A9D4 mov r6, r12 ldr r0, [r6] ldr r1, [r6, 0x4] str r0, [r4] str r1, [r4, 0x4] strh r2, [r4] lsls r0, r2, 16 movs r1, 0x80 lsls r1, 14 adds r0, r1 lsrs r2, r0, 16 ldr r3, [sp] lsls r5, r3, 16 b _0814AA20 .align 2, 0 _0814A9C4: .4byte 0x0203a380 _0814A9C8: .4byte 0x0000ffff _0814A9CC: .4byte gUnknown_0842F780 _0814A9D0: .4byte gUnknown_0842F788 _0814A9D4: ldr r6, [sp] lsls r5, r6, 16 mov r0, r8 cmp r0, 0x27 ble _0814AA0A cmp r3, 0x8 ble _0814AA0A mov r6, r12 ldr r0, [r6] ldr r1, [r6, 0x4] str r0, [r4] str r1, [r4, 0x4] lsls r1, r2, 16 asrs r1, 16 adds r2, r1, 0 subs r2, 0x20 adds r0, r3, 0 mov r6, r10 ands r0, r6 adds r2, r0 strh r2, [r4] movs r0, 0x18 ands r0, r3 adds r1, r0 lsls r1, 16 lsrs r2, r1, 16 b _0814AA20 _0814AA0A: mov r3, r9 ldr r0, [r3] ldr r1, [r3, 0x4] str r0, [r4] str r1, [r4, 0x4] strh r2, [r4] lsls r0, r2, 16 movs r6, 0x80 lsls r6, 12 adds r0, r6 lsrs r2, r0, 16 _0814AA20: adds r4, 0x8 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 asrs r1, r5, 16 lsls r0, r2, 16 asrs r0, 16 subs r1, r0 lsls r1, 16 lsrs r3, r1, 16 asrs r1, 16 cmp r1, 0x7 bgt _0814A99E _0814AA3A: ldr r5, _0814AAA8 ldr r0, [r5] ldr r1, [r5, 0x4] str r0, [r4] str r1, [r4, 0x4] lsls r1, r2, 16 asrs r1, 16 subs r1, 0x7 lsls r0, r3, 16 asrs r0, 16 adds r0, r1 strh r0, [r4] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldr r6, _0814AAAC ldrb r0, [r6] cmp r0, 0x40 beq _0814AA78 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814AAB0 adds r2, r0, r1 lsls r1, r7, 3 ldr r0, _0814AAB4 adds r1, r0 adds r0, r2, 0 bl SetSubspriteTables _0814AA78: ldr r1, _0814AAB8 ldrb r0, [r1] cmp r0, 0x40 beq _0814AA98 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814AAB0 adds r2, r0, r1 lsls r1, r7, 3 ldr r0, _0814AAB4 adds r1, r0 adds r0, r2, 0 bl SetSubspriteTables _0814AA98: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0814AAA8: .4byte gUnknown_0842F790 _0814AAAC: .4byte 0x0203a3d0 _0814AAB0: .4byte 0x02020004 _0814AAB4: .4byte gUnknown_0842F5C0 _0814AAB8: .4byte 0x0203a3d1 thumb_func_end sub_814A958 thumb_func_start sub_814AABC sub_814AABC: @ 814AABC push {lr} adds r2, r0, 0 ldr r1, _0814AAEC ldrb r0, [r1] cmp r0, 0x40 beq _0814AAD4 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _0814AAF0 adds r1, r0 str r2, [r1, 0x1C] _0814AAD4: ldr r1, _0814AAF4 ldrb r0, [r1] cmp r0, 0x40 beq _0814AAE8 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _0814AAF0 adds r1, r0 str r2, [r1, 0x1C] _0814AAE8: pop {r0} bx r0 .align 2, 0 _0814AAEC: .4byte 0x0203a3d0 _0814AAF0: .4byte 0x02020004 _0814AAF4: .4byte 0x0203a3d1 thumb_func_end sub_814AABC thumb_func_start sub_814AAF8 sub_814AAF8: @ 814AAF8 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 lsrs r0, 16 mov r12, r0 ldr r1, _0814AB70 ldrb r0, [r1] cmp r0, 0x40 beq _0814AB66 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814AB74 adds r4, r0, r1 ldr r0, [r4, 0x14] ldrh r1, [r0, 0x2] ldr r0, _0814AB78 cmp r1, r0 bne _0814AB66 movs r2, 0 movs r3, 0xF movs r1, 0 ldrb r5, [r4, 0x5] ldr r0, _0814AB7C mov r8, r0 ldr r7, _0814AB80 movs r6, 0xF _0814AB32: lsls r0, r1, 1 adds r0, r7 ldrh r0, [r0] cmp r0, r12 bne _0814AB46 lsrs r0, r1, 4 lsls r0, 24 lsrs r2, r0, 24 adds r3, r1, 0 ands r3, r6 _0814AB46: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0xFF bls _0814AB32 lsls r2, 4 movs r1, 0xF adds r0, r1, 0 ands r0, r5 orrs r0, r2 strb r0, [r4, 0x5] ands r3, r1 lsls r0, r3, 3 add r0, r8 bl RequestSpriteSheetCopy _0814AB66: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0814AB70: .4byte 0x0203a3d0 _0814AB74: .4byte 0x02020004 _0814AB78: .4byte 0x0000ffff _0814AB7C: .4byte gUnknown_0842F140 _0814AB80: .4byte 0x0202eac8 thumb_func_end sub_814AAF8 thumb_func_start sub_814AB84 sub_814AB84: @ 814AB84 push {r4,r5,lr} ldr r5, _0814ABCC ldrb r0, [r5] cmp r0, 0x40 beq _0814ABC4 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _0814ABD0 adds r4, r0 adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl DestroySprite movs r0, 0x40 strb r0, [r5] ldr r0, _0814ABD4 ldrb r0, [r0] cmp r0, 0 bne _0814ABBC movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _0814ABD8 ands r0, r1 strh r0, [r2] _0814ABBC: ldr r0, _0814ABDC ldr r1, _0814ABE0 ldrb r1, [r1] strb r1, [r0] _0814ABC4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0814ABCC: .4byte 0x0203a3d1 _0814ABD0: .4byte 0x02020004 _0814ABD4: .4byte 0x0203a3d3 _0814ABD8: .4byte 0x00007fff _0814ABDC: .4byte 0x0400004b _0814ABE0: .4byte 0x0203a3d4 thumb_func_end sub_814AB84 thumb_func_start unref_sub_814ABE4 unref_sub_814ABE4: @ 814ABE4 push {r4,lr} adds r4, r0, 0 ldr r1, _0814AC40 lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] ldr r1, _0814AC44 movs r2, 0x28 bl CpuSet ldr r1, _0814AC48 ldrb r0, [r1] cmp r0, 0x40 beq _0814AC18 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814AC4C adds r2, r0, r1 lsls r1, r4, 3 ldr r0, _0814AC50 adds r1, r0 adds r0, r2, 0 bl SetSubspriteTables _0814AC18: ldr r1, _0814AC54 ldrb r0, [r1] cmp r0, 0x40 beq _0814AC38 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814AC4C adds r2, r0, r1 lsls r1, r4, 3 ldr r0, _0814AC50 adds r1, r0 adds r0, r2, 0 bl SetSubspriteTables _0814AC38: pop {r4} pop {r0} bx r0 .align 2, 0 _0814AC40: .4byte gUnknown_0842F5BC _0814AC44: .4byte 0x0203a380 _0814AC48: .4byte 0x0203a3d0 _0814AC4C: .4byte 0x02020004 _0814AC50: .4byte gUnknown_0842F758 _0814AC54: .4byte 0x0203a3d1 thumb_func_end unref_sub_814ABE4 thumb_func_start sub_814AC58 sub_814AC58: @ 814AC58 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r4, [sp, 0x1C] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 16 lsrs r5, r1, 16 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 16 lsrs r6, r3, 16 lsls r4, 24 lsrs r4, 24 mov r9, r4 ldr r0, _0814ACF8 ldrb r0, [r0] cmp r0, 0x40 beq _0814AC86 bl sub_814AD44 _0814AC86: movs r4, 0x1 ldr r0, _0814ACFC cmp r5, r0 bne _0814ACAC ldr r1, _0814AD00 movs r0, 0xF ands r0, r7 lsls r0, 1 adds r0, r1 strh r6, [r0] ldr r0, _0814AD04 bl LoadSpritePalette lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _0814ACAC ldr r5, _0814AD08 movs r4, 0 _0814ACAC: movs r6, 0xF adds r0, r7, 0 ands r0, r6 lsls r0, 3 ldr r1, _0814AD0C adds r0, r1 bl LoadSpriteSheetDeferred lsls r0, r4, 1 adds r0, r4 lsls r0, 3 ldr r1, _0814AD10 adds r0, r1 movs r1, 0 movs r2, 0xA0 mov r3, r8 bl CreateSprite ldr r1, _0814ACF8 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _0814AD2A ldrb r1, [r1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814AD14 adds r4, r0, r1 ldr r0, _0814ACFC cmp r5, r0 bne _0814AD18 ldrb r1, [r4, 0x5] adds r0, r6, 0 ands r0, r1 strb r0, [r4, 0x5] b _0814AD2A .align 2, 0 _0814ACF8: .4byte 0x0203a3d2 _0814ACFC: .4byte 0x0000ffff _0814AD00: .4byte 0x0203a360 _0814AD04: .4byte gUnknown_0842F248 _0814AD08: .4byte 0x0000fff1 _0814AD0C: .4byte gUnknown_0842F1C0 _0814AD10: .4byte gSpriteTemplate_842F298 _0814AD14: .4byte 0x02020004 _0814AD18: adds r0, r5, 0 bl IndexOfSpritePaletteTag lsls r0, 4 ldrb r2, [r4, 0x5] adds r1, r6, 0 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x5] _0814AD2A: mov r0, r9 bl sub_814ADF4 ldr r0, _0814AD40 ldrb r0, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0814AD40: .4byte 0x0203a3d2 thumb_func_end sub_814AC58 thumb_func_start sub_814AD44 sub_814AD44: @ 814AD44 push {r4,lr} ldr r4, _0814AD70 ldrb r0, [r4] cmp r0, 0x40 beq _0814AD68 ldr r0, _0814AD74 bl LoadTilesForSpriteSheet ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814AD78 adds r0, r1 bl DestroySpriteAndFreeResources movs r0, 0x40 strb r0, [r4] _0814AD68: pop {r4} pop {r0} bx r0 .align 2, 0 _0814AD70: .4byte 0x0203a3d2 _0814AD74: .4byte gUnknown_0842F1C0 _0814AD78: .4byte 0x02020004 thumb_func_end sub_814AD44 thumb_func_start sub_814AD7C sub_814AD7C: @ 814AD7C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r4, r1, 24 ldr r1, _0814ADC0 ldrb r0, [r1] cmp r0, 0x40 beq _0814ADB8 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814ADC4 adds r2, r0, r1 adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] adds r0, r2, 0 adds r0, 0x28 movs r1, 0 strb r1, [r0] adds r0, 0x1 strb r1, [r0] strh r5, [r2, 0x20] strh r4, [r2, 0x22] _0814ADB8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0814ADC0: .4byte 0x0203a3d2 _0814ADC4: .4byte 0x02020004 thumb_func_end sub_814AD7C thumb_func_start sub_814ADC8 sub_814ADC8: @ 814ADC8 push {lr} ldr r1, _0814ADEC ldrb r0, [r1] cmp r0, 0x40 beq _0814ADE8 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814ADF0 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _0814ADE8: pop {r0} bx r0 .align 2, 0 _0814ADEC: .4byte 0x0203a3d2 _0814ADF0: .4byte 0x02020004 thumb_func_end sub_814ADC8 thumb_func_start sub_814ADF4 sub_814ADF4: @ 814ADF4 push {lr} lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x12 bls _0814AE00 movs r2, 0 _0814AE00: ldr r1, _0814AE24 ldrb r0, [r1] cmp r0, 0x40 beq _0814AE1E adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0814AE28 adds r0, r1 lsls r1, r2, 3 ldr r2, _0814AE2C adds r1, r2 bl SetSubspriteTables _0814AE1E: pop {r0} bx r0 .align 2, 0 _0814AE24: .4byte 0x0203a3d2 _0814AE28: .4byte 0x02020004 _0814AE2C: .4byte gUnknown_0842F6C0 thumb_func_end sub_814ADF4