diff options
author | YamaArashi <shadow962@live.com> | 2016-11-01 10:08:48 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-11-01 10:16:34 -0700 |
commit | 6f0e42a91aeeedd64725ce57e3dad6a38421d8e9 (patch) | |
tree | dcea69ec49430f004c17ff71b77587cafd78c69a /asm/egg_hatch.s | |
parent | fef81187dce23adc635d7f4b7fd82298eab09ec2 (diff) |
split asm files
Diffstat (limited to 'asm/egg_hatch.s')
-rw-r--r-- | asm/egg_hatch.s | 1801 |
1 files changed, 1801 insertions, 0 deletions
diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s new file mode 100644 index 000000000..767e98876 --- /dev/null +++ b/asm/egg_hatch.s @@ -0,0 +1,1801 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_8071348 +sub_8071348: @ 8071348 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x50 + adds r5, r0, 0 + adds r6, r1, 0 + movs r1, 0xB + bl pokemon_getattr + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x3C] + movs r4, 0 + add r7, sp, 0x18 + add r0, sp, 0x30 + mov r8, r0 + movs r1, 0x31 + add r1, sp + mov r10, r1 + mov r0, sp + adds r0, 0x32 + str r0, [sp, 0x40] + mov r1, sp + adds r1, 0x34 + str r1, [sp, 0x48] + adds r0, 0x1 + str r0, [sp, 0x44] + adds r1, 0x4 + str r1, [sp, 0x4C] +_08071386: + adds r1, r4, 0 + adds r1, 0xD + adds r0, r5, 0 + bl pokemon_getattr + lsls r1, r4, 1 + add r1, sp + adds r1, 0x10 + strh r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _08071386 + adds r0, r5, 0 + movs r1, 0 + bl pokemon_getattr + mov r9, r0 + movs r4, 0 +_080713AE: + adds r1, r4, 0 + adds r1, 0x27 + adds r0, r5, 0 + bl pokemon_getattr + lsls r1, r4, 2 + adds r1, r7, r1 + str r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _080713AE + adds r0, r5, 0 + movs r1, 0x3 + bl pokemon_getattr + mov r1, r8 + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0x25 + bl pokemon_getattr + mov r1, r10 + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0x8 + bl pokemon_getattr + ldr r1, [sp, 0x40] + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0x22 + bl pokemon_getattr + str r0, [sp, 0x38] + adds r0, r5, 0 + movs r1, 0x50 + bl pokemon_getattr + ldr r1, [sp, 0x48] + strb r0, [r1] + movs r0, 0x1 + str r0, [sp] + mov r0, r9 + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + str r0, [sp, 0xC] + adds r0, r6, 0 + ldr r1, [sp, 0x3C] + movs r2, 0x5 + movs r3, 0x20 + bl create_pokemon_set_level + movs r4, 0 +_0807141E: + adds r1, r4, 0 + adds r1, 0xD + lsls r0, r4, 1 + mov r2, sp + adds r2, r0 + adds r2, 0x10 + adds r0, r6, 0 + bl pokemon_setattr + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _0807141E + movs r4, 0 +_0807143C: + adds r1, r4, 0 + adds r1, 0x27 + lsls r2, r4, 2 + adds r2, r7, r2 + adds r0, r6, 0 + bl pokemon_setattr + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _0807143C + movs r0, 0x2 + mov r1, r8 + strb r0, [r1] + adds r0, r6, 0 + movs r1, 0x3 + mov r2, r8 + bl pokemon_setattr + adds r0, r6, 0 + movs r1, 0x25 + mov r2, r10 + bl pokemon_setattr + adds r0, r6, 0 + movs r1, 0x8 + ldr r2, [sp, 0x40] + bl pokemon_setattr + movs r0, 0x78 + ldr r1, [sp, 0x44] + strb r0, [r1] + adds r0, r6, 0 + movs r1, 0x20 + ldr r2, [sp, 0x44] + bl pokemon_setattr + adds r0, r6, 0 + movs r1, 0x22 + ldr r2, [sp, 0x4C] + bl pokemon_setattr + adds r0, r6, 0 + movs r1, 0x50 + ldr r2, [sp, 0x48] + bl pokemon_setattr + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x64 + bl memcpy + add sp, 0x50 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8071348 + + thumb_func_start sub_80714B8 +sub_80714B8: @ 80714B8 + push {r4,r5,lr} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + add r4, sp, 0xC + movs r1, 0x46 + strb r1, [r4] + movs r1, 0x64 + adds r5, r0, 0 + muls r5, r1 + ldr r0, =0x020244ec + adds r5, r0 + ldr r1, =0x02024744 + adds r0, r5, 0 + bl sub_8071348 + adds r0, r5, 0 + movs r1, 0x2D + adds r2, r4, 0 + bl pokemon_setattr + adds r0, r5, 0 + movs r1, 0xB + bl pokemon_getattr + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, sp + adds r1, r4, 0 + bl GetSpeciesName + adds r0, r5, 0 + movs r1, 0x2 + mov r2, sp + bl pokemon_setattr + adds r0, r4, 0 + bl SpeciesToNationalPokedexNum + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + movs r1, 0x2 + bl pokedex_flag_operation + adds r0, r4, 0 + movs r1, 0x3 + bl pokedex_flag_operation + ldr r1, =0x02021cc4 + adds r0, r5, 0 + bl pokemon_get_nick + mov r2, sp + adds r2, 0xE + movs r0, 0x4 + strh r0, [r2] + adds r0, r5, 0 + movs r1, 0x26 + bl pokemon_setattr + add r2, sp, 0x10 + movs r0, 0 + strh r0, [r2] + adds r0, r5, 0 + movs r1, 0x24 + bl pokemon_setattr + bl sav1_map_get_name + mov r2, sp + adds r2, 0x12 + strb r0, [r2] + adds r0, r5, 0 + movs r1, 0x23 + bl pokemon_setattr + adds r0, r5, 0 + bl sub_806E924 + adds r0, r5, 0 + bl pokemon_calc_effective_stats + add sp, 0x14 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80714B8 + + thumb_func_start sub_8071578 +sub_8071578: @ 8071578 + push {lr} + ldr r0, =0x020375e0 + ldrb r0, [r0] + bl sub_80714B8 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8071578 + + thumb_func_start sub_807158C +sub_807158C: @ 807158C + push {r4-r6,lr} + sub sp, 0x20 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0x8C + muls r1, r2 + adds r4, r0, r1 + adds r0, r4, 0 + mov r1, sp + bl pokemon_get_nick_ + adds r0, r4, 0 + adds r0, 0x70 + ldrh r0, [r0] + cmp r0, 0 + beq _08071608 + adds r6, r4, 0 + adds r6, 0x7C + mov r0, sp + adds r1, r6, 0 + bl CompareStringWithoutExtendedControlCodes + adds r5, r4, 0 + adds r5, 0x74 + cmp r0, 0 + bne _080715CE + ldr r0, =0x03005d90 + ldr r0, [r0] + adds r1, r5, 0 + bl CompareStringWithoutExtendedControlCodes + cmp r0, 0 + beq _08071608 +_080715CE: + ldr r0, =0x02021cc4 + mov r1, sp + bl CopyString + ldr r0, =0x02021dc4 + adds r4, 0x87 + ldrb r2, [r4] + lsls r2, 28 + lsrs r2, 28 + adds r1, r5, 0 + bl sub_81DB5E8 + ldr r0, =0x02021ec4 + ldrb r2, [r4] + lsrs r2, 4 + adds r1, r6, 0 + bl sub_81DB5E8 + movs r0, 0x1 + b _0807160A + .pool +_08071608: + movs r0, 0 +_0807160A: + add sp, 0x20 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_807158C + + thumb_func_start sub_8071614 +sub_8071614: @ 8071614 + push {lr} + ldr r0, =0x03005d8c + ldr r0, [r0] + ldr r1, =0x00003030 + adds r0, r1 + ldr r1, =0x020375e0 + ldrb r1, [r1] + bl sub_807158C + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .pool + thumb_func_end sub_8071614 + + thumb_func_start sub_807163C +sub_807163C: @ 807163C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r9, r3 + lsls r0, 24 + lsrs r3, r0, 24 + mov r8, r3 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 24 + lsrs r1, r2, 24 + adds r2, r1, 0 + movs r4, 0 + movs r7, 0 + movs r5, 0 + cmp r3, 0 + bne _0807166A + movs r0, 0x64 + muls r1, r0 + ldr r0, =0x020244ec + adds r5, r1, r0 + movs r4, 0x1 +_0807166A: + cmp r3, 0x1 + bne _0807167A + movs r0, 0x64 + adds r1, r2, 0 + muls r1, r0 + ldr r0, =0x020244ec + adds r5, r1, r0 + movs r4, 0x3 +_0807167A: + cmp r6, 0 + beq _08071688 + cmp r6, 0x1 + beq _080716D8 + b _08071712 + .pool +_08071688: + adds r0, r5, 0 + movs r1, 0xB + bl pokemon_getattr + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0 + bl pokemon_getattr + adds r3, r0, 0 + lsls r0, r4, 3 + ldr r1, =gMonFrontPicTable + adds r0, r1 + ldr r1, =0x020244d4 + ldr r2, [r1] + mov r6, r8 + lsls r1, r6, 1 + adds r1, 0x1 + lsls r1, 2 + adds r2, 0x4 + adds r2, r1 + ldr r1, [r2] + adds r2, r4, 0 + bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack + adds r0, r5, 0 + bl sub_806E794 + bl LoadCompressedObjectPalette + mov r0, r9 + strh r4, [r0] + b _08071712 + .pool +_080716D8: + adds r0, r5, 0 + bl sub_806E794 + ldrh r0, [r0, 0x4] + adds r1, r4, 0 + bl sub_806A068 + ldr r0, =0x0202499c + movs r1, 0x78 + movs r2, 0x4B + movs r3, 0x6 + bl AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + ldr r4, =0x02020630 + lsls r1, r7, 4 + adds r1, r7 + lsls r1, 2 + adds r2, r1, r4 + adds r2, 0x3E + ldrb r0, [r2] + movs r3, 0x4 + orrs r0, r3 + strb r0, [r2] + adds r4, 0x1C + adds r1, r4 + ldr r0, =DummyObjectCallback + str r0, [r1] +_08071712: + adds r0, r7, 0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_807163C + + thumb_func_start sub_807172C +sub_807172C: @ 807172C + push {lr} + bl LoadOamFromSprites + bl ProcessObjectCopyRequests + bl copy_pal_bg_faded_to_pal_ram + pop {r0} + bx r0 + thumb_func_end sub_807172C + + thumb_func_start sub_8071740 +sub_8071740: @ 8071740 + push {lr} + bl script_env_2_enable + ldr r0, =sub_8071760 + movs r1, 0xA + bl CreateTask + movs r0, 0x1 + movs r1, 0 + bl fade_screen + pop {r0} + bx r0 + .pool + thumb_func_end sub_8071740 + + thumb_func_start sub_8071760 +sub_8071760: @ 8071760 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08071788 + bl overworld_free_bg_tilemaps + ldr r0, =c1_hatching_egg + bl SetMainCallback2 + ldr r1, =0x03005dac + ldr r0, =sub_80AF168 + str r0, [r1] + adds r0, r4, 0 + bl DestroyTask +_08071788: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8071760 + + thumb_func_start c1_hatching_egg +c1_hatching_egg: @ 80717A0 + push {r4,lr} + sub sp, 0x4 + ldr r0, =0x030022c0 + movs r1, 0x87 + lsls r1, 3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x8 + bls _080717B4 + b _080719D6 +_080717B4: + lsls r0, 2 + ldr r1, =_080717C8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080717C8: + .4byte _080717EC + .4byte _080718B8 + .4byte _080718D0 + .4byte _08071904 + .4byte _08071924 + .4byte _0807193C + .4byte _08071954 + .4byte _08071970 + .4byte _080719C8 +_080717EC: + movs r0, 0 + movs r1, 0 + bl SetGpuReg + ldr r4, =0x03000de0 + movs r0, 0x14 + bl Alloc + str r0, [r4] + bl init_uns_table_pokemon_copy + ldr r2, [r4] + ldr r0, =0x020375e0 + ldrh r0, [r0] + movs r1, 0 + strb r0, [r2, 0x4] + ldr r0, [r4] + strb r1, [r0, 0x7] + ldr r0, =sub_807172C + bl SetVBlankCallback + bl current_map_music_get + ldr r1, =0x020375e2 + strh r0, [r1] + bl reset_temp_tile_data_buffers + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_0832C064 + movs r0, 0 + movs r2, 0x2 + bl InitBgsFromTemplates + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x1 + movs r1, 0x7 + movs r2, 0x2 + bl SetBgAttribute + movs r0, 0x80 + lsls r0, 5 + bl Alloc + adds r1, r0, 0 + movs r0, 0x1 + bl SetBgTilemapBuffer + movs r0, 0x80 + lsls r0, 6 + bl Alloc + adds r1, r0, 0 + movs r0, 0 + bl SetBgTilemapBuffer + bl DeactivateAllTextPrinters + bl sub_80A1A74 + bl ResetObjectPaletteAllocator + bl ResetAllObjectData + bl ResetTasks + bl remove_some_task + bl SoundVSyncOn_rev01 + b _080719A6 + .pool +_080718B8: + ldr r0, =gUnknown_0832C06C + bl InitWindows + ldr r0, =0x03000de0 + ldr r1, [r0] + movs r0, 0 + strb r0, [r1, 0x8] + b _080719A6 + .pool +_080718D0: + ldr r1, =gUnknown_08C00000 + movs r0, 0 + str r0, [sp] + movs r2, 0 + movs r3, 0 + bl copy_decompressed_tile_data_to_vram_autofree + ldr r1, =gUnknown_08C00524 + movs r0, 0 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + ldr r0, =gUnknown_08C004E0 + movs r1, 0 + movs r2, 0x20 + bl decompress_palette + b _080719A6 + .pool +_08071904: + ldr r0, =gUnknown_0832BFE4 + bl LoadObjectPic + ldr r0, =gUnknown_0832BFEC + bl LoadObjectPic + ldr r0, =gUnknown_0832BFF4 + bl LoadTaggedObjectPalette + b _080719A6 + .pool +_08071924: + movs r0, 0 + bl CopyBgTilemapBufferToVram + ldr r0, =0x03000de0 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + bl sub_80714B8 + b _080719A6 + .pool +_0807193C: + ldr r0, =0x03000de0 + ldr r3, [r0] + ldrb r2, [r3, 0x4] + adds r3, 0xC + movs r0, 0 + movs r1, 0 + bl sub_807163C + b _080719A6 + .pool +_08071954: + ldr r4, =0x03000de0 + ldr r3, [r4] + ldrb r2, [r3, 0x4] + adds r3, 0xC + movs r0, 0 + movs r1, 0x1 + bl sub_807163C + ldr r1, [r4] + strb r0, [r1, 0x1] + b _080719A6 + .pool +_08071970: + movs r1, 0x82 + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + ldr r0, =gUnknown_08DD7300 + movs r1, 0x10 + movs r2, 0xA0 + bl gpu_pal_apply + ldr r1, =gUnknown_08DD7360 + movs r2, 0xA1 + lsls r2, 5 + movs r0, 0x1 + movs r3, 0 + bl LoadBgTiles + ldr r1, =gUnknown_08331F60 + movs r2, 0x80 + lsls r2, 5 + movs r0, 0x1 + movs r3, 0 + bl CopyToBgTilemapBuffer + movs r0, 0x1 + bl CopyBgTilemapBufferToVram +_080719A6: + ldr r1, =0x030022c0 + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080719D6 + .pool +_080719C8: + ldr r0, =sub_8071A94 + bl SetMainCallback2 + ldr r0, =0x03000de0 + ldr r1, [r0] + movs r0, 0 + strb r0, [r1, 0x2] +_080719D6: + bl RunTasks + bl RunTextPrinters + bl CallObjectCallbacks + bl PrepareSpritesForOamLoad + bl fade_and_return_progress_probably + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end c1_hatching_egg + + thumb_func_start sub_80719FC +sub_80719FC: @ 80719FC + push {lr} + ldr r0, =0x020375e0 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =0x020244ec + adds r0, r1 + ldr r2, =0x02021ec4 + movs r1, 0x2 + bl pokemon_setattr + bl sub_805F094 + ldr r0, =0x03000de0 + ldr r0, [r0] + bl Free + ldr r0, =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80719FC + + thumb_func_start c3_080472E4 +c3_080472E4: @ 8071A3C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =0x03005e00 + 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 _08071A5C + bl sub_80A2F30 + bl play_some_sound +_08071A5C: + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _08071A6C + movs r0, 0xBC + lsls r0, 1 + bl song_play_for_text +_08071A6C: + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x3C + ble _08071A80 + ldr r0, =0x00000179 + bl song_play_for_text + adds r0, r5, 0 + bl DestroyTask +_08071A80: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end c3_080472E4 + + thumb_func_start sub_8071A94 +sub_8071A94: @ 8071A94 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + ldr r1, =0x03000de0 + ldr r0, [r1] + ldrb r0, [r0, 0x2] + adds r5, r1, 0 + cmp r0, 0xC + bls _08071AAC + b _08071E06 +_08071AAC: + lsls r0, 2 + ldr r1, =_08071AC0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08071AC0: + .4byte _08071AF4 + .4byte _08071B40 + .4byte _08071B68 + .4byte _08071BA0 + .4byte _08071BF8 + .4byte _08071C24 + .4byte _08071C88 + .4byte _08071C96 + .4byte _08071CA4 + .4byte _08071CE8 + .4byte _08071D1C + .4byte _08071DB4 + .4byte _08071DD4 +_08071AF4: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl pal_fade_maybe + ldr r0, =gUnknown_0832BFFC + movs r1, 0x78 + movs r2, 0x4B + movs r3, 0x5 + bl AddObjectToFront + ldr r4, =0x03000de0 + ldr r1, [r4] + strb r0, [r1] + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + ldr r1, [r4] + ldrb r0, [r1, 0x2] + adds r0, 0x1 + strb r0, [r1, 0x2] + ldr r0, =c3_080472E4 + movs r1, 0x5 + bl CreateTask + b _08071E06 + .pool +_08071B40: + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _08071B52 + b _08071E06 +_08071B52: + ldr r0, [r5] + ldrb r0, [r0, 0x8] + movs r1, 0 + bl FillWindowPixelBuffer + ldr r0, [r5] + strb r4, [r0, 0x3] + ldr r1, [r5] + b _08071DC8 + .pool +_08071B68: + ldr r1, [r5] + ldrb r0, [r1, 0x3] + adds r0, 0x1 + strb r0, [r1, 0x3] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1E + bhi _08071B7A + b _08071E06 +_08071B7A: + ldr r1, [r5] + ldrb r0, [r1, 0x2] + adds r0, 0x1 + strb r0, [r1, 0x2] + ldr r2, =0x02020630 + ldr r0, [r5] + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_8071E34 + str r1, [r0] + b _08071E06 + .pool +_08071BA0: + ldr r4, =0x02020630 + ldr r2, [r5] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, [r0] + ldr r0, =DummyObjectCallback + cmp r1, r0 + beq _08071BBC + b _08071E06 +_08071BBC: + ldrb r1, [r2, 0x4] + movs r0, 0x64 + muls r0, r1 + ldr r1, =0x020244ec + adds r0, r1 + movs r1, 0xB + bl pokemon_getattr + lsls r0, 16 + lsrs r7, r0, 16 + ldr r0, [r5] + ldrb r1, [r0, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r1, r7, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_806ED40 + ldr r1, [r5] + b _08071DC8 + .pool +_08071BF8: + ldr r2, =0x02020630 + ldr r3, [r5] + ldrb r1, [r3, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =DummyObjectCallback + cmp r1, r0 + beq _08071C12 + b _08071E06 +_08071C12: + ldrb r0, [r3, 0x2] + adds r0, 0x1 + strb r0, [r3, 0x2] + b _08071E06 + .pool +_08071C24: + ldr r0, [r5] + ldrb r1, [r0, 0x4] + movs r0, 0x64 + muls r0, r1 + ldr r1, =0x020244ec + adds r0, r1 + ldr r1, =0x02021cc4 + bl pokemon_get_nick + ldr r4, =0x02021fc4 + ldr r1, =gUnknown_085ED5A5 + adds r0, r4, 0 + bl ExpandStringRefs + ldr r0, [r5] + ldrb r0, [r0, 0x8] + movs r1, 0xFF + str r1, [sp] + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x3 + bl sub_8072214 + ldr r0, =0x00000173 + bl fanfare_play + ldr r1, [r5] + ldrb r0, [r1, 0x2] + adds r0, 0x1 + strb r0, [r1, 0x2] + ldr r0, [r5] + ldrb r0, [r0, 0x8] + bl PutWindowTilemap + ldr r0, [r5] + ldrb r0, [r0, 0x8] + movs r1, 0x3 + bl CopyWindowToVram + b _08071E06 + .pool +_08071C88: + bl task_is_not_running_overworld_fanfare + lsls r0, 24 + cmp r0, 0 + bne _08071C94 + b _08071E06 +_08071C94: + b _08071DC4 +_08071C96: + bl task_is_not_running_overworld_fanfare + lsls r0, 24 + cmp r0, 0 + bne _08071CA2 + b _08071E06 +_08071CA2: + b _08071DC4 +_08071CA4: + ldr r0, [r5] + ldrb r1, [r0, 0x4] + movs r0, 0x64 + muls r0, r1 + ldr r1, =0x020244ec + adds r0, r1 + ldr r1, =0x02021cc4 + bl pokemon_get_nick + ldr r4, =0x02021fc4 + ldr r1, =gUnknown_085ED5BE + adds r0, r4, 0 + bl ExpandStringRefs + ldr r0, [r5] + ldrb r0, [r0, 0x8] + movs r1, 0x1 + str r1, [sp] + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x2 + bl sub_8072214 + ldr r1, [r5] + b _08071DC8 + .pool +_08071CE8: + ldr r0, [r5] + ldrb r0, [r0, 0x8] + bl IsTextPrinterActive + lsls r0, 16 + cmp r0, 0 + beq _08071CF8 + b _08071E06 +_08071CF8: + ldr r0, [r5] + ldrb r0, [r0, 0x8] + movs r4, 0xA0 + lsls r4, 1 + adds r1, r4, 0 + movs r2, 0xE0 + bl sub_809882C + ldr r0, =gUnknown_0832C07C + adds r1, r4, 0 + movs r2, 0xE + movs r3, 0 + bl CreateYesNoMenu + ldr r1, [r5] + b _08071DC8 + .pool +_08071D1C: + bl sub_8198C58 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _08071D3C + cmp r1, 0 + bgt _08071D36 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08071DC4 + b _08071E06 +_08071D36: + cmp r1, 0x1 + beq _08071DC4 + b _08071E06 +_08071D3C: + ldr r0, =0x03000de0 + mov r8, r0 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + movs r6, 0x64 + muls r0, r6 + ldr r5, =0x020244ec + adds r0, r5 + ldr r1, =0x02021ec4 + mov r9, r1 + bl pokemon_get_nick + mov r1, r8 + ldr r0, [r1] + ldrb r0, [r0, 0x4] + muls r0, r6 + adds r0, r5 + movs r1, 0xB + bl pokemon_getattr + lsls r0, 16 + lsrs r7, r0, 16 + mov r1, r8 + ldr r0, [r1] + ldrb r0, [r0, 0x4] + muls r0, r6 + adds r0, r5 + bl pokemon_get_gender + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r1, r8 + ldr r0, [r1] + ldrb r0, [r0, 0x4] + muls r0, r6 + adds r0, r5 + movs r1, 0 + movs r2, 0 + bl pokemon_getattr + str r0, [sp] + ldr r0, =sub_80719FC + str r0, [sp, 0x4] + movs r0, 0x3 + mov r1, r9 + adds r2, r7, 0 + adds r3, r4, 0 + bl do_choose_name_or_words_screen + b _08071E06 + .pool +_08071DB4: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe +_08071DC4: + ldr r0, =0x03000de0 + ldr r1, [r0] +_08071DC8: + ldrb r0, [r1, 0x2] + adds r0, 0x1 + strb r0, [r1, 0x2] + b _08071E06 + .pool +_08071DD4: + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08071E06 + bl sub_805F094 + ldr r4, =0x03000de0 + ldr r0, [r4] + ldrb r0, [r0, 0x8] + bl RemoveWindow + movs r0, 0 + bl UnsetBgTilemapBuffer + movs r0, 0x1 + bl UnsetBgTilemapBuffer + ldr r0, [r4] + bl Free + ldr r0, =c2_exit_to_overworld_2_switch + bl SetMainCallback2 +_08071E06: + bl RunTasks + bl RunTextPrinters + bl CallObjectCallbacks + bl PrepareSpritesForOamLoad + bl fade_and_return_progress_probably + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8071A94 + + thumb_func_start sub_8071E34 +sub_8071E34: @ 8071E34 + 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 + ble _08071E54 + ldr r0, =sub_8071E8C + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x2E] + b _08071E84 + .pool +_08071E54: + ldrh r0, [r4, 0x30] + adds r0, 0x14 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x1 + bl sine + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0xF + bne _08071E84 + movs r0, 0x17 + bl audio_play + adds r0, r4, 0 + movs r1, 0x1 + bl StartObjectImageAnim + bl sub_8072140 +_08071E84: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8071E34 + + thumb_func_start sub_8071E8C +sub_8071E8C: @ 8071E8C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + ble _08071EE8 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _08071EBC + ldr r0, =sub_8071EF0 + str r0, [r4, 0x1C] + strh r1, [r4, 0x2E] + strh r1, [r4, 0x32] + b _08071EE8 + .pool +_08071EBC: + ldrh r0, [r4, 0x30] + adds r0, 0x14 + 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] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0xF + bne _08071EE8 + movs r0, 0x17 + bl audio_play + adds r0, r4, 0 + movs r1, 0x2 + bl StartObjectImageAnim +_08071EE8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8071E8C + + thumb_func_start sub_8071EF0 +sub_8071EF0: @ 8071EF0 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + ble _08071F9E + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x26 + ble _08071F5C + ldr r0, =sub_8071FA4 + str r0, [r4, 0x1C] + strh r5, [r4, 0x2E] + ldr r4, =0x03000de0 + ldr r0, [r4] + ldrb r1, [r0, 0x4] + movs r0, 0x64 + muls r0, r1 + ldr r1, =0x020244ec + adds r0, r1 + movs r1, 0xB + bl pokemon_getattr + ldr r3, =0x02020630 + ldr r2, [r4] + ldrb r1, [r2, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r5, [r0, 0x24] + ldrb r1, [r2, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r5, [r0, 0x26] + b _08071F9E + .pool +_08071F5C: + ldrh r0, [r4, 0x30] + adds r0, 0x14 + 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] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0xF + bne _08071F90 + movs r0, 0x17 + bl audio_play + adds r0, r4, 0 + movs r1, 0x2 + bl StartObjectImageAnim + bl sub_8072140 + bl sub_8072140 +_08071F90: + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1E + bne _08071F9E + movs r0, 0x17 + bl audio_play +_08071F9E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8071EF0 + + thumb_func_start sub_8071FA4 +sub_8071FA4: @ 8071FA4 + 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, 0x32 + ble _08071FBE + ldr r0, =sub_8071FC8 + str r0, [r1, 0x1C] + movs r0, 0 + strh r0, [r1, 0x2E] +_08071FBE: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8071FA4 + + thumb_func_start sub_8071FC8 +sub_8071FC8: @ 8071FC8 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _08071FE8 + movs r1, 0x1 + negs r1, r1 + ldr r0, =0x0000ffff + str r0, [sp] + adds r0, r1, 0 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe +_08071FE8: + ldrh r0, [r5, 0x2E] + cmp r0, 0x3 + bhi _08072004 + movs r4, 0 +_08071FF0: + bl sub_8072140 + lsls r0, r4, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _08071FF0 +_08072004: + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _08072032 + movs r0, 0x71 + bl audio_play + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, =sub_8072048 + str r0, [r5, 0x1C] + strh r4, [r5, 0x2E] +_08072032: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8071FC8 + + thumb_func_start sub_8072048 +sub_8072048: @ 8072048 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _08072084 + ldr r4, =0x02020630 + ldr r3, =0x03000de0 + ldr r0, [r3] + ldrb r1, [r0, 0x1] + 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] + ldr r0, [r3] + ldrb r1, [r0, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x1 + bl StartObjectRotScalAnim +_08072084: + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0x8 + bne _0807209E + movs r1, 0x1 + negs r1, r1 + ldr r0, =0x0000ffff + str r0, [sp] + adds r0, r1, 0 + movs r2, 0x10 + movs r3, 0 + bl pal_fade_maybe +_0807209E: + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x9 + bgt _080720BC + ldr r2, =0x02020630 + ldr r0, =0x03000de0 + ldr r0, [r0] + ldrb r1, [r0, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + subs r1, 0x1 + strh r1, [r0, 0x22] +_080720BC: + ldrh r1, [r5, 0x2E] + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0x28 + ble _080720CA + ldr r0, =DummyObjectCallback + str r0, [r5, 0x1C] +_080720CA: + adds r0, r1, 0x1 + strh r0, [r5, 0x2E] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8072048 + + thumb_func_start sub_80720E8 +sub_80720E8: @ 80720E8 + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x36] + adds r0, r1 + strh r0, [r2, 0x36] + ldrh r1, [r2, 0x32] + ldrh r3, [r2, 0x38] + adds r0, r1, r3 + strh r0, [r2, 0x38] + movs r4, 0x36 + ldrsh r0, [r2, r4] + cmp r0, 0 + bge _08072106 + adds r0, 0xFF +_08072106: + asrs r0, 8 + strh r0, [r2, 0x24] + movs r3, 0x38 + ldrsh r0, [r2, r3] + cmp r0, 0 + bge _08072114 + adds r0, 0xFF +_08072114: + asrs r0, 8 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x34] + adds r3, r1, r0 + strh r3, [r2, 0x32] + movs r4, 0x22 + ldrsh r1, [r2, r4] + movs r4, 0x26 + ldrsh r0, [r2, r4] + adds r0, r1, r0 + adds r1, 0x14 + cmp r0, r1 + ble _0807213A + lsls r0, r3, 16 + cmp r0, 0 + ble _0807213A + adds r0, r2, 0 + bl RemoveObjectAndFreeTiles +_0807213A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80720E8 + + thumb_func_start sub_8072140 +sub_8072140: @ 8072140 + push {r4-r6,lr} + sub sp, 0x8 + ldr r2, =gUnknown_0832C084 + ldr r0, =0x03000de0 + ldr r6, [r0] + ldrb r3, [r6, 0x7] + lsls r0, r3, 2 + adds r1, r0, r2 + ldrh r5, [r1] + adds r2, 0x2 + adds r0, r2 + ldrh r4, [r0] + adds r3, 0x1 + strb r3, [r6, 0x7] + bl GenerateRandomNumber + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r0 + lsls r5, 16 + asrs r5, 16 + lsls r4, 16 + asrs r4, 16 + movs r0, 0x64 + str r0, [sp] + lsrs r1, 16 + str r1, [sp, 0x4] + movs r0, 0x78 + movs r1, 0x3C + adds r2, r5, 0 + adds r3, r4, 0 + bl sub_8072194 + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8072140 + + thumb_func_start sub_8072194 +sub_8072194: @ 8072194 + 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 r8, r3 + ldr r0, [sp, 0x1C] + mov r9, r0 + ldr r1, [sp, 0x20] + mov r10, r1 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + 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 + mov r0, r10 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r0, =gUnknown_0832C04C + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0x4 + bl AddObjectToFront + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r2, =0x02020630 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r6, [r0, 0x30] + mov r1, r8 + strh r1, [r0, 0x32] + mov r1, r9 + strh r1, [r0, 0x34] + mov r1, r10 + bl StartObjectImageAnim + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8072194 + + thumb_func_start sub_8072214 +sub_8072214: @ 8072214 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x14 + adds r5, r0, 0 + mov r9, r1 + adds r6, r2, 0 + mov r8, r3 + ldr r4, [sp, 0x2C] + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0xFF + bl FillWindowPixelBuffer + ldr r3, =0x03000de0 + ldr r0, [r3] + movs r2, 0 + strb r2, [r0, 0xE] + ldr r1, [r3] + movs r0, 0x5 + strb r0, [r1, 0xF] + ldr r1, [r3] + movs r0, 0x6 + strb r0, [r1, 0x10] + str r2, [sp] + str r2, [sp, 0x4] + ldr r0, [r3] + adds r0, 0xE + str r0, [sp, 0x8] + lsls r4, 24 + asrs r4, 24 + str r4, [sp, 0xC] + mov r0, r9 + str r0, [sp, 0x10] + adds r0, r5, 0 + movs r1, 0x1 + adds r2, r6, 0 + mov r3, r8 + bl AddTextPrinterParametrized2 + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8072214 + + thumb_func_start sub_807228C +sub_807228C: @ 807228C + push {r4-r6,lr} + bl calc_player_party_count + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + cmp r5, r6 + bcs _080722D6 +_0807229C: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =0x020244ec + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x6 + bl pokemon_getattr + cmp r0, 0 + bne _080722CC + adds r0, r4, 0 + bl GetMonAbility + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x28 + beq _080722C4 + cmp r0, 0x31 + bne _080722CC +_080722C4: + movs r0, 0x2 + b _080722D8 + .pool +_080722CC: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, r6 + bcc _0807229C +_080722D6: + movs r0, 0x1 +_080722D8: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_807228C + + thumb_func_start sub_80722E0 +sub_80722E0: @ 80722E0 + push {r4,lr} + bl sub_80D22D0 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + movs r0, 0x6 + bl sub_80C7050 + lsls r0, 24 + lsrs r0, 24 + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80722E0 + + .align 2, 0 @ Don't pad with nop. |