From 4bf54bfdd4e67098960ca20ce5178f5072f20735 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 4 Sep 2017 13:01:57 +0200 Subject: [PATCH] split roamer and decor inventories --- asm/daycare.s | 4 +- asm/decoration.s | 38 +- asm/decoration_inventory.s | 459 + asm/egg_hatch.s | 2 +- asm/load_save.s | 2 +- asm/pokedex_area_screen.s | 2 +- asm/pokemon_1.s | 36 +- asm/pokemon_2.s | 2 +- asm/roamer.s | 502 ++ asm/rom3.s | 2 +- asm/rom4.s | 12 +- asm/rom6.s | 2 +- asm/rom_8034C54.s | 12 +- asm/rom_815A0D4.s | 12500 ---------------------------- asm/rom_8161F74.s | 11568 +++++++++++++++++++++++++ asm/rom_818CFC8.s | 6 +- asm/scrcmd.s | 6 +- asm/script_pokemon_util_80F87D8.s | 4 +- asm/secret_base.s | 4 +- asm/shop.s | 8 +- asm/trade.s | 4 +- asm/trader.s | 6 +- asm/wild_encounter.s | 8 +- data/data3.s | 2 +- data/rom_8158B30.s | 2 +- ld_script.txt | 3 + sym_ewram.txt | 6 +- 27 files changed, 12617 insertions(+), 12585 deletions(-) create mode 100644 asm/decoration_inventory.s create mode 100644 asm/roamer.s create mode 100644 asm/rom_8161F74.s diff --git a/asm/daycare.s b/asm/daycare.s index 66066c51c..4e68a34e1 100644 --- a/asm/daycare.s +++ b/asm/daycare.s @@ -1960,7 +1960,7 @@ sub_8070954: @ 8070954 adds r1, r5, 0 movs r2, 0x5 movs r3, 0x20 - bl create_pokemon_set_level + bl CreateMon movs r0, 0x12 add r0, sp mov r8, r0 @@ -2050,7 +2050,7 @@ sub_8070A0C: @ 8070A0C adds r1, r5, 0 movs r2, 0x5 movs r3, 0x20 - bl create_pokemon_set_level + bl CreateMon movs r0, 0x12 add r0, sp mov r9, r0 diff --git a/asm/decoration.s b/asm/decoration.s index 482aeec57..81d81c6bc 100644 --- a/asm/decoration.s +++ b/asm/decoration.s @@ -13,7 +13,7 @@ sub_8126968: @ 8126968 cmp r0, 0x7 bhi _0812697E ldr r2, =gUnknown_0203A14C - ldr r1, =gUnknown_0203BC40 + ldr r1, =gDecorationInventories lsls r0, 3 adds r0, r1 ldr r0, [r0] @@ -756,7 +756,7 @@ _08126FA2: movs r0, 0xBA strb r0, [r6] adds r6, 0x1 - ldr r1, =gUnknown_0203BC40 + ldr r1, =gDecorationInventories mov r2, r8 lsls r0, r2, 3 adds r0, r1 @@ -883,7 +883,7 @@ sub_81270E8: @ 81270E8 ldrb r0, [r4] bl sub_8161A38 ldr r2, =gUnknown_0203A14C - ldr r1, =gUnknown_0203BC40 + ldr r1, =gDecorationInventories ldrb r0, [r4] lsls r0, 3 adds r0, r1 @@ -1614,7 +1614,7 @@ sub_8127744: @ 8127744 b _08127782 .pool _08127770: - ldr r1, =gUnknown_085A5C08 + ldr r1, =gDecorations ldr r0, =gUnknown_0203A14C ldr r0, [r0] adds r0, r4 @@ -1740,7 +1740,7 @@ _08127842: mov r3, r8 ldrb r0, [r3] lsls r0, 3 - ldr r1, =gUnknown_0203BC40 + ldr r1, =gDecorationInventories adds r0, r1 ldrb r0, [r0, 0x4] cmp r2, r0 @@ -1807,7 +1807,7 @@ _081278E2: bls _08127842 movs r5, 0 movs r6, 0 - ldr r3, =gUnknown_0203BC40 + ldr r3, =gDecorationInventories mov r8, r3 _081278F4: ldr r0, =gSaveBlock1Ptr @@ -2193,7 +2193,7 @@ _08127BF0: ldr r0, =gUnknown_085A5C24 adds r0, r4, r0 str r0, [sp, 0x1C] - ldr r0, =gUnknown_085A5C08 + ldr r0, =gDecorations adds r0, r4, r0 str r0, [sp, 0x24] ldr r3, [sp, 0x8] @@ -2267,7 +2267,7 @@ _08127C8E: movs r6, 0 _08127C90: ldr r3, [sp, 0x18] - ldr r4, =gUnknown_085A5C08 + ldr r4, =gDecorations adds r0, r3, r4 ldrb r0, [r0] ldr r4, [sp, 0x20] @@ -2360,7 +2360,7 @@ sub_8127D38: @ 8127D38 lsrs r4, r1, 16 lsls r2, 16 lsrs r2, 16 - ldr r1, =gUnknown_085A5C08 + ldr r1, =gDecorations lsls r0, r2, 5 adds r0, r1 ldrb r0, [r0, 0x12] @@ -2954,7 +2954,7 @@ sub_812826C: @ 812826C push {lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r2, =gUnknown_085A5C08 + ldr r2, =gDecorations ldr r0, =gUnknown_0203A172 ldrb r1, [r0] ldr r0, =gUnknown_0203A14C @@ -3826,7 +3826,7 @@ sub_8128950: @ 8128950 adds r0, r1 ldrb r1, [r0] lsls r1, 5 - ldr r0, =gUnknown_085A5C08 + ldr r0, =gDecorations adds r1, r0 adds r0, r5, 0 bl sub_812853C @@ -3888,7 +3888,7 @@ sub_81289F0: @ 81289F0 bl sub_8197434 adds r0, r4, 0 bl sub_8128AAC - ldr r2, =gUnknown_085A5C08 + ldr r2, =gDecorations ldr r0, =gUnknown_0203A172 ldrb r1, [r0] ldr r0, =gUnknown_0203A14C @@ -5071,7 +5071,7 @@ gpu_pal_decompress_alloc_tag_and_upload: @ 8129334 lsrs r4, 24 bl sub_8129048 lsls r4, 5 - ldr r0, =gUnknown_085A5C08 + ldr r0, =gDecorations adds r4, r0 str r4, [r5] ldrb r0, [r4, 0x11] @@ -5253,7 +5253,7 @@ AddDecorationIconObjectFromFieldObject: @ 81294C0 adds r0, r6, 0 bl sub_8129048 lsls r4, 5 - ldr r0, =gUnknown_085A5C08 + ldr r0, =gDecorations adds r4, r0 str r4, [r6] ldrb r0, [r4, 0x11] @@ -5539,7 +5539,7 @@ _08129738: b _08129796 .pool _08129744: - ldr r3, =gUnknown_085A5C08 + ldr r3, =gDecorations ldr r2, =gUnknown_0203A17C ldr r1, =gUnknown_0203AA44 ldrh r0, [r4] @@ -5646,7 +5646,7 @@ _08129808: adds r0, r1 ldrb r0, [r0] lsls r0, 5 - ldr r7, =gUnknown_085A5C08 + ldr r7, =gDecorations adds r0, r7 ldrb r2, [r0, 0x11] ldr r7, =gUnknown_0203A17C @@ -6271,7 +6271,7 @@ sub_8129D8C: @ 8129D8C push {lr} adds r2, r1, 0 lsls r0, 24 - ldr r1, =gUnknown_085A5C08 + ldr r1, =gDecorations lsrs r0, 19 adds r0, r1 ldrb r1, [r0, 0x12] @@ -6568,7 +6568,7 @@ _08129FD2: ldrb r0, [r1] cmp r0, 0 beq _0812A024 - ldr r0, =gUnknown_085A5C08 + ldr r0, =gDecorations ldrb r2, [r1] lsls r1, r2, 5 adds r1, r0 @@ -6651,7 +6651,7 @@ _0812A072: ands r2, r0 cmp r1, 0 beq _0812A0BA - ldr r0, =gUnknown_085A5C08 + ldr r0, =gDecorations lsls r1, 5 adds r1, r0 ldrb r0, [r1, 0x11] diff --git a/asm/decoration_inventory.s b/asm/decoration_inventory.s new file mode 100644 index 000000000..52d490c20 --- /dev/null +++ b/asm/decoration_inventory.s @@ -0,0 +1,459 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start SetDecorationInventoriesPointers +SetDecorationInventoriesPointers: @ 81617F4 + push {r4,lr} + ldr r0, =gDecorationInventories + mov r12, r0 + ldr r0, =gSaveBlock1Ptr + ldr r1, [r0] + ldr r2, =0x00002734 + adds r0, r1, r2 + mov r4, r12 + str r0, [r4] + movs r3, 0xA + strb r3, [r4, 0x4] + adds r2, 0xA + adds r0, r1, r2 + str r0, [r4, 0x8] + strb r3, [r4, 0xC] + ldr r4, =0x00002748 + adds r0, r1, r4 + mov r2, r12 + str r0, [r2, 0x10] + strb r3, [r2, 0x14] + adds r4, 0xA + adds r0, r1, r4 + str r0, [r2, 0x18] + movs r2, 0x1E + mov r0, r12 + strb r2, [r0, 0x1C] + adds r4, 0x1E + adds r0, r1, r4 + mov r4, r12 + str r0, [r4, 0x20] + mov r0, r12 + adds r0, 0x24 + strb r2, [r0] + ldr r2, =0x0000278e + adds r0, r1, r2 + str r0, [r4, 0x28] + mov r0, r12 + adds r0, 0x2C + strb r3, [r0] + ldr r4, =0x00002798 + adds r0, r1, r4 + mov r2, r12 + str r0, [r2, 0x30] + adds r2, 0x34 + movs r0, 0x28 + strb r0, [r2] + adds r4, 0x28 + adds r1, r4 + mov r0, r12 + str r1, [r0, 0x38] + adds r0, 0x3C + strb r3, [r0] + bl sub_8126968 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end SetDecorationInventoriesPointers + + thumb_func_start ClearDecorationInventory +ClearDecorationInventory: @ 8161880 + push {r4,r5,lr} + lsls r0, 24 + movs r3, 0 + ldr r1, =gDecorationInventories + lsrs r2, r0, 21 + adds r0, r2, r1 + ldrb r0, [r0, 0x4] + cmp r3, r0 + bcs _081618AA + adds r5, r1, 0 + movs r4, 0 +_08161896: + 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 _08161896 +_081618AA: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end ClearDecorationInventory + + thumb_func_start ClearDecorationInventories +ClearDecorationInventories: @ 81618B4 + push {r4,lr} + movs r4, 0 +_081618B8: + adds r0, r4, 0 + bl ClearDecorationInventory + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _081618B8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end ClearDecorationInventories + + thumb_func_start sub_81618D0 +sub_81618D0: @ 81618D0 + push {r4,lr} + lsls r0, 24 + movs r2, 0 + ldr r1, =gDecorationInventories + lsrs r0, 21 + adds r0, r1 + movs r1, 0x4 + ldrsb r1, [r0, r1] + cmp r2, r1 + bge _0816190C + adds r4, r0, 0 + adds r3, r1, 0 +_081618E8: + lsls r0, r2, 24 + asrs r1, r0, 24 + ldr r0, [r4] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _08161900 + adds r0, r1, 0 + b _08161910 + .pool +_08161900: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + asrs r0, 24 + cmp r0, r3 + blt _081618E8 +_0816190C: + movs r0, 0x1 + negs r0, r0 +_08161910: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81618D0 + + thumb_func_start sub_8161918 +sub_8161918: @ 8161918 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, =gDecorations + lsls r0, r3, 5 + adds r0, r1 + ldrb r0, [r0, 0x13] + movs r2, 0 + ldr r1, =gDecorationInventories + lsls r0, 3 + adds r0, r1 + ldrb r1, [r0, 0x4] + cmp r2, r1 + bcs _08161956 + ldr r4, [r0] +_08161936: + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, r3 + bne _0816194C + movs r0, 0x1 + b _08161958 + .pool +_0816194C: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, r1 + bcc _08161936 +_08161956: + movs r0, 0 +_08161958: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8161918 + + thumb_func_start DecorationAdd +DecorationAdd: @ 8161960 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + cmp r4, 0 + beq _081619A0 + ldr r1, =gDecorations + lsls r0, r4, 5 + adds r0, r1 + ldrb r5, [r0, 0x13] + adds r0, r5, 0 + bl sub_81618D0 + lsls r0, 24 + asrs r2, r0, 24 + movs r0, 0x1 + negs r0, r0 + cmp r2, r0 + beq _081619A0 + ldr r0, =gDecorationInventories + lsls r1, r5, 3 + adds r1, r0 + ldr r0, [r1] + adds r0, r2 + strb r4, [r0] + movs r0, 0x1 + b _081619A2 + .pool +_081619A0: + movs r0, 0 +_081619A2: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end DecorationAdd + + thumb_func_start DecorationCheckSpace +DecorationCheckSpace: @ 81619A8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _081619D4 + ldr r1, =gDecorations + lsls r0, 5 + adds r0, r1 + ldrb r0, [r0, 0x13] + bl sub_81618D0 + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _081619D4 + movs r0, 0x1 + b _081619D6 + .pool +_081619D4: + movs r0, 0 +_081619D6: + pop {r1} + bx r1 + thumb_func_end DecorationCheckSpace + + thumb_func_start DecorationRemove +DecorationRemove: @ 81619DC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0 + cmp r5, 0 + bne _081619F8 + b _08161A26 +_081619EA: + movs r0, 0 + strb r0, [r1] + adds r0, r6, 0 + bl sub_8161A38 + movs r0, 0x1 + b _08161A28 +_081619F8: + ldr r2, =gDecorationInventories + ldr r1, =gDecorations + 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 _08161A26 + adds r6, r4, 0 + adds r4, r0, 0 + adds r2, r1, 0 +_08161A12: + ldr r0, [r4] + adds r1, r0, r3 + ldrb r0, [r1] + cmp r0, r5 + beq _081619EA + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, r2 + bcc _08161A12 +_08161A26: + movs r0, 0 +_08161A28: + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end DecorationRemove + + thumb_func_start sub_8161A38 +sub_8161A38: @ 8161A38 + 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, =gDecorationInventories + lsrs r0, 21 + adds r1, r0, r2 + ldrb r3, [r1, 0x4] + cmp r6, r3 + bcs _08161ABC + adds r7, r0, 0 + mov r10, r1 + mov r0, r10 + str r0, [sp] +_08161A5C: + adds r1, r6, 0x1 + lsls r0, r1, 24 + lsrs r3, r0, 24 + adds r2, r7, 0 + mov r12, r1 + mov r1, r10 + ldrb r1, [r1, 0x4] + cmp r3, r1 + bcs _08161AAE + ldr r0, =gDecorationInventories + mov r9, r0 + adds r1, r0, 0 + mov r8, r1 +_08161A76: + mov r0, r9 + adds r5, r2, r0 + ldr r1, [r5] + adds r0, r1, r3 + ldrb r4, [r0] + adds r2, r4, 0 + cmp r2, 0 + beq _08161A9C + adds r0, r1, r6 + ldrb r1, [r0] + cmp r1, 0 + beq _08161A92 + cmp r1, r2 + bls _08161A9C +_08161A92: + ldrb r1, [r0] + strb r4, [r0] + ldr r0, [r5] + adds r0, r3 + strb r1, [r0] +_08161A9C: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + adds r2, r7, 0 + mov r1, r8 + adds r0, r2, r1 + ldrb r0, [r0, 0x4] + cmp r3, r0 + bcc _08161A76 +_08161AAE: + mov r3, r12 + lsls r0, r3, 24 + lsrs r6, r0, 24 + ldr r0, [sp] + ldrb r0, [r0, 0x4] + cmp r6, r0 + bcc _08161A5C +_08161ABC: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8161A38 + + thumb_func_start sub_8161AD0 +sub_8161AD0: @ 8161AD0 + push {r4,r5,lr} + lsls r0, 24 + movs r4, 0 + movs r3, 0 + ldr r2, =gDecorationInventories + lsrs r1, r0, 21 + adds r0, r1, r2 + ldrb r0, [r0, 0x4] + cmp r4, r0 + bcs _08161B04 + adds r5, r2, 0 +_08161AE6: + adds r2, r1, r5 + ldr r0, [r2] + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0 + beq _08161AF8 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_08161AF8: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r2, [r2, 0x4] + cmp r3, r2 + bcc _08161AE6 +_08161B04: + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8161AD0 + + thumb_func_start sub_8161B10 +sub_8161B10: @ 8161B10 + push {r4,r5,lr} + movs r5, 0 + movs r4, 0 +_08161B16: + adds r0, r4, 0 + bl sub_8161AD0 + 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 _08161B16 + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8161B10 + + .align 2, 0 @ Don't pad with nop. + \ No newline at end of file diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s index d1d26b62a..e88a73a60 100644 --- a/asm/egg_hatch.s +++ b/asm/egg_hatch.s @@ -104,7 +104,7 @@ _080713AE: ldr r1, [sp, 0x3C] movs r2, 0x5 movs r3, 0x20 - bl create_pokemon_set_level + bl CreateMon movs r4, 0 _0807141E: adds r1, r4, 0 diff --git a/asm/load_save.s b/asm/load_save.s index 344e05147..ccfce2ec4 100644 --- a/asm/load_save.s +++ b/asm/load_save.s @@ -87,7 +87,7 @@ InitSaveBlockPointersWithRandomOffset: @ 8076BDC adds r4, r0 str r4, [r1] bl SetBagItemsPointers - bl sub_81617F4 + bl SetDecorationInventoriesPointers pop {r4,r5} pop {r0} bx r0 diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s index 7cb1f37c9..b599b365c 100644 --- a/asm/pokedex_area_screen.s +++ b/asm/pokedex_area_screen.s @@ -304,7 +304,7 @@ _0813CCB8: adds r0, 0x10 adds r1, r2, 0 adds r1, 0x11 - bl sub_8161F64 + bl GetRoamerLocation ldr r1, [r5] ldrb r0, [r1, 0x10] ldrb r1, [r1, 0x11] diff --git a/asm/pokemon_1.s b/asm/pokemon_1.s index e10ed54c5..9406026dc 100644 --- a/asm/pokemon_1.s +++ b/asm/pokemon_1.s @@ -118,9 +118,9 @@ _08067B36: .pool thumb_func_end ZeroEnemyPartyMons - thumb_func_start create_pokemon_set_level -@ void create_pokemon_set_level(pokemon *mon, s16 species_num, u8 level, u8 forced_iv, char pokemon_id_is_nonrandom, int pokemon_id, u8 trainer_id_mode, int trainer_id) -create_pokemon_set_level: @ 8067B4C + thumb_func_start CreateMon +@ void CreateMon(pokemon *mon, s16 species_num, u8 level, u8 forced_iv, char pokemon_id_is_nonrandom, int pokemon_id, u8 trainer_id_mode, int trainer_id) +CreateMon: @ 8067B4C push {r4-r7,lr} mov r7, r8 push {r7} @@ -172,7 +172,7 @@ create_pokemon_set_level: @ 8067B4C pop {r4-r7} pop {r0} bx r0 - thumb_func_end create_pokemon_set_level + thumb_func_end CreateMon thumb_func_start create_pokemon @ void create_pokemon(pokemon *mon, s16 species_num, u8 level, u8 forced_iv, char pokemon_id_is_nonrandom, int pokemon_id, u8 trainer_id_mode, int trainer_id) @@ -540,7 +540,7 @@ _08067EB0: mov r1, r8 adds r2, r7, 0 adds r3, r6, 0 - bl create_pokemon_set_level + bl CreateMon add sp, 0x10 pop {r3,r4} mov r8, r3 @@ -663,7 +663,7 @@ _08067FCE: adds r1, r7, 0 ldr r2, [sp, 0x14] mov r3, r10 - bl create_pokemon_set_level + bl CreateMon add sp, 0x18 pop {r3-r5} mov r8, r3 @@ -715,7 +715,7 @@ _0806800A: adds r1, r6, 0 adds r2, r7, 0 movs r3, 0x20 - bl create_pokemon_set_level + bl CreateMon add sp, 0x10 pop {r3} mov r8, r3 @@ -724,8 +724,8 @@ _0806800A: bx r0 thumb_func_end sub_8067FF8 - thumb_func_start sub_8068060 -sub_8068060: @ 8068060 + thumb_func_start CreateMonWithIVsPersonality +CreateMonWithIVsPersonality: @ 8068060 push {r4,lr} sub sp, 0x14 adds r4, r0, 0 @@ -743,7 +743,7 @@ sub_8068060: @ 8068060 str r0, [sp, 0xC] adds r0, r4, 0 movs r3, 0 - bl create_pokemon_set_level + bl CreateMon adds r0, r4, 0 movs r1, 0x42 add r2, sp, 0x10 @@ -754,7 +754,7 @@ sub_8068060: @ 8068060 pop {r4} pop {r0} bx r0 - thumb_func_end sub_8068060 + thumb_func_end CreateMonWithIVsPersonality thumb_func_start sub_80680A0 sub_80680A0: @ 80680A0 @@ -775,7 +775,7 @@ sub_80680A0: @ 80680A0 str r3, [sp, 0xC] adds r0, r5, 0 movs r3, 0 - bl create_pokemon_set_level + bl CreateMon adds r0, r5, 0 movs r1, 0x27 adds r2, r4, 0 @@ -832,7 +832,7 @@ pokemon_make_ev_something: @ 8068114 str r6, [sp, 0x8] str r6, [sp, 0xC] adds r0, r7, 0 - bl create_pokemon_set_level + bl CreateMon mov r4, r8 movs r1, 0x1 movs r5, 0x5 @@ -901,7 +901,7 @@ sub_806819C: @ 806819C str r0, [sp, 0xC] adds r0, r7, 0 movs r3, 0 - bl create_pokemon_set_level + bl CreateMon movs r5, 0 add r0, sp, 0x30 mov r9, r0 @@ -1114,7 +1114,7 @@ _0806837C: adds r0, r7, 0 adds r2, r3, 0 movs r3, 0 - bl create_pokemon_set_level + bl CreateMon movs r5, 0 movs r0, 0xD adds r0, r6 @@ -1358,7 +1358,7 @@ sub_8068528: @ 8068528 str r0, [sp, 0xC] adds r0, r7, 0 movs r3, 0x1F - bl create_pokemon_set_level + bl CreateMon mov r1, r9 adds r2, r5, r1 adds r2, 0xE @@ -1477,7 +1477,7 @@ _08068664: ldr r1, [sp, 0x14] mov r2, r10 mov r3, r9 - bl create_pokemon_set_level + bl CreateMon mov r5, r8 movs r1, 0x1 movs r4, 0x5 @@ -1748,7 +1748,7 @@ sub_80688A8: @ 80688A8 str r5, [sp, 0x8] str r7, [sp, 0xC] mov r0, r8 - bl create_pokemon_set_level + bl CreateMon mov r0, r8 movs r1, 0x50 add r2, sp, 0x10 diff --git a/asm/pokemon_2.s b/asm/pokemon_2.s index 2346d0916..66673664f 100644 --- a/asm/pokemon_2.s +++ b/asm/pokemon_2.s @@ -3311,7 +3311,7 @@ _0806B730: str r0, [sp, 0xC] adds r0, r5, 0 movs r3, 0xF - bl create_pokemon_set_level + bl CreateMon ldr r1, =gBattleResources ldr r0, [r1] adds r1, r7, 0 diff --git a/asm/roamer.s b/asm/roamer.s new file mode 100644 index 000000000..f6b48f10f --- /dev/null +++ b/asm/roamer.s @@ -0,0 +1,502 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start ClearRoamerData +ClearRoamerData: @ 8161B34 + push {r4,r5,lr} + ldr r5, =gSaveBlock1Ptr + ldr r0, [r5] + ldr r4, =0x000031dc + adds r0, r4 + movs r1, 0 + movs r2, 0x1C + bl memset + ldr r0, [r5] + adds r0, r4 + ldr r1, =0x00000197 + strh r1, [r0, 0x8] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end ClearRoamerData + + thumb_func_start ClearRoamerLocationData +ClearRoamerLocationData: @ 8161B60 + push {r4-r6,lr} + movs r2, 0 + ldr r6, =sRoamerLocation + ldr r4, =sLocationHistory + movs r3, 0 + adds r5, r4, 0x1 +_08161B6C: + 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 _08161B6C + movs r0, 0 + strb r0, [r6] + strb r0, [r6, 0x1] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end ClearRoamerLocationData + + thumb_func_start CreateInitialRoamerMon +CreateInitialRoamerMon: @ 8161B94 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + lsls r0, 16 + cmp r0, 0 + bne _08161BBC + ldr r0, =gSaveBlock1Ptr + ldr r1, [r0] + ldr r2, =0x000031dc + adds r1, r2 + ldr r2, =0x00000197 + b _08161BC8 + .pool +_08161BBC: + ldr r0, =gSaveBlock1Ptr + ldr r1, [r0] + ldr r2, =0x000031dc + adds r1, r2 + movs r2, 0xCC + lsls r2, 1 +_08161BC8: + strh r2, [r1, 0x8] + adds r7, r0, 0 + ldr r6, =gEnemyParty + ldr r0, [r7] + ldr r5, =0x000031dc + adds r0, r5 + ldrh r1, [r0, 0x8] + movs r4, 0 + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r6, 0 + movs r2, 0x28 + movs r3, 0x20 + bl CreateMon + ldr r0, [r7] + adds r0, r5 + movs r1, 0x28 + strb r1, [r0, 0xC] + ldr r0, [r7] + adds r0, r5 + strb r4, [r0, 0xD] + ldr r0, [r7] + adds r0, r5 + movs r1, 0x1 + strb r1, [r0, 0x13] + adds r0, r6, 0 + movs r1, 0x42 + bl GetMonData + ldr r1, [r7] + adds r1, r5 + str r0, [r1] + adds r0, r6, 0 + movs r1, 0 + bl GetMonData + ldr r1, [r7] + adds r1, r5 + str r0, [r1, 0x4] + adds r0, r6, 0 + movs r1, 0x3A + bl GetMonData + ldr r1, [r7] + adds r1, r5 + movs r2, 0 + mov r8, r2 + strh r0, [r1, 0xA] + adds r0, r6, 0 + movs r1, 0x16 + bl GetMonData + ldr r1, [r7] + adds r1, r5 + strb r0, [r1, 0xE] + adds r0, r6, 0 + movs r1, 0x17 + bl GetMonData + ldr r1, [r7] + adds r1, r5 + strb r0, [r1, 0xF] + adds r0, r6, 0 + movs r1, 0x18 + bl GetMonData + ldr r1, [r7] + adds r1, r5 + strb r0, [r1, 0x10] + adds r0, r6, 0 + movs r1, 0x21 + bl GetMonData + ldr r1, [r7] + adds r1, r5 + strb r0, [r1, 0x11] + adds r0, r6, 0 + movs r1, 0x2F + bl GetMonData + ldr r1, [r7] + adds r1, r5 + strb r0, [r1, 0x12] + ldr r4, =sRoamerLocation + mov r0, r8 + strb r0, [r4] + bl Random + ldr r5, =sRoamerLocations + 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-r7} + pop {r0} + bx r0 + .pool + thumb_func_end CreateInitialRoamerMon + + thumb_func_start InitRoamer +InitRoamer: @ 8161CBC + push {lr} + bl ClearRoamerData + bl ClearRoamerLocationData + ldr r0, =gSpecialVar_0x8004 + ldrh r0, [r0] + bl CreateInitialRoamerMon + pop {r0} + bx r0 + .pool + thumb_func_end InitRoamer + + thumb_func_start UpdateLocationHistoryForRoamer +UpdateLocationHistoryForRoamer: @ 8161CD8 + ldr r0, =sLocationHistory + 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 r1, =gSaveBlock1Ptr + ldr r2, [r1] + ldrb r1, [r2, 0x4] + strb r1, [r0] + ldrb r1, [r2, 0x5] + strb r1, [r0, 0x1] + bx lr + .pool + thumb_func_end UpdateLocationHistoryForRoamer + + thumb_func_start RoamerMoveToOtherLocationSet +RoamerMoveToOtherLocationSet: @ 8161D00 + push {r4,r5,lr} + movs r1, 0 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r2, =0x000031dc + adds r0, r2 + ldrb r0, [r0, 0x13] + cmp r0, 0 + beq _08161D3E + ldr r0, =sRoamerLocation + strb r1, [r0] + ldr r5, =sRoamerLocations + adds r4, r0, 0 +_08161D1A: + 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 _08161D1A + strb r1, [r4, 0x1] +_08161D3E: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end RoamerMoveToOtherLocationSet + + thumb_func_start RoamerMove +RoamerMove: @ 8161D54 + 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 _08161D6E + bl RoamerMoveToOtherLocationSet + b _08161DE2 +_08161D6E: + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x000031dc + adds r0, r1 + ldrb r0, [r0, 0x13] + cmp r0, 0 + beq _08161DE2 + ldr r7, =sRoamerLocation + ldr r3, =sRoamerLocations +_08161D80: + 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 _08161DD8 + ldr r6, =sRoamerLocations + adds r5, r2, 0x1 + ldr r4, =sLocationHistory +_08161D96: + 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 _08161DBA + ldrb r0, [r4, 0x5] + cmp r0, r1 + beq _08161D96 +_08161DBA: + cmp r1, 0xFF + beq _08161D96 + strb r1, [r7, 0x1] + b _08161DE2 + .pool +_08161DD8: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x13 + bls _08161D80 +_08161DE2: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end RoamerMove + + thumb_func_start IsRoamerAt +IsRoamerAt: @ 8161DE8 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r3, =0x000031dc + adds r0, r3 + ldrb r0, [r0, 0x13] + cmp r0, 0 + beq _08161E20 + ldr r0, =sRoamerLocation + ldrb r3, [r0] + cmp r2, r3 + bne _08161E20 + ldrb r0, [r0, 0x1] + cmp r1, r0 + bne _08161E20 + movs r0, 0x1 + b _08161E22 + .pool +_08161E20: + movs r0, 0 +_08161E22: + pop {r1} + bx r1 + thumb_func_end IsRoamerAt + + thumb_func_start CreateRoamerMonInstance +CreateRoamerMonInstance: @ 8161E28 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, =gEnemyParty + bl ZeroEnemyPartyMons + ldr r4, =gSaveBlock1Ptr + ldr r0, [r4] + ldr r1, =0x000031dc + adds r0, r1 + ldrh r1, [r0, 0x8] + ldrb r2, [r0, 0xC] + ldr r3, [r0] + ldr r0, [r0, 0x4] + str r0, [sp] + adds r0, r5, 0 + bl CreateMonWithIVsPersonality + ldr r2, [r4] + ldr r0, =0x000031e9 + adds r2, r0 + adds r0, r5, 0 + movs r1, 0x37 + bl SetMonData + ldr r2, [r4] + ldr r1, =0x000031e6 + adds r2, r1 + adds r0, r5, 0 + movs r1, 0x39 + bl SetMonData + ldr r2, [r4] + ldr r0, =0x000031ea + adds r2, r0 + adds r0, r5, 0 + movs r1, 0x16 + bl SetMonData + ldr r2, [r4] + ldr r1, =0x000031eb + adds r2, r1 + adds r0, r5, 0 + movs r1, 0x17 + bl SetMonData + ldr r2, [r4] + ldr r0, =0x000031ec + adds r2, r0 + adds r0, r5, 0 + movs r1, 0x18 + bl SetMonData + ldr r2, [r4] + ldr r1, =0x000031ed + adds r2, r1 + adds r0, r5, 0 + movs r1, 0x21 + bl SetMonData + ldr r2, [r4] + ldr r0, =0x000031ee + adds r2, r0 + adds r0, r5, 0 + movs r1, 0x2F + bl SetMonData + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end CreateRoamerMonInstance + + thumb_func_start TryStartRoamerEncounter +TryStartRoamerEncounter: @ 8161EDC + push {lr} + ldr r0, =gSaveBlock1Ptr + ldr r1, [r0] + ldrb r0, [r1, 0x4] + ldrb r1, [r1, 0x5] + bl IsRoamerAt + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08161F10 + bl Random + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r0 + cmp r1, 0 + bne _08161F10 + bl CreateRoamerMonInstance + movs r0, 0x1 + b _08161F12 + .pool +_08161F10: + movs r0, 0 +_08161F12: + pop {r1} + bx r1 + thumb_func_end TryStartRoamerEncounter + + thumb_func_start UpdateRoamerHPStatus +UpdateRoamerHPStatus: @ 8161F18 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x39 + bl GetMonData + ldr r5, =gSaveBlock1Ptr + ldr r1, [r5] + ldr r4, =0x000031dc + adds r1, r4 + strh r0, [r1, 0xA] + adds r0, r6, 0 + movs r1, 0x37 + bl GetMonData + ldr r1, [r5] + adds r1, r4 + strb r0, [r1, 0xD] + bl RoamerMoveToOtherLocationSet + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end UpdateRoamerHPStatus + + thumb_func_start SetRoamerInactive +SetRoamerInactive: @ 8161F4C + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x000031dc + adds r0, r1 + movs r1, 0 + strb r1, [r0, 0x13] + bx lr + .pool + thumb_func_end SetRoamerInactive + + thumb_func_start GetRoamerLocation +GetRoamerLocation: @ 8161F64 + ldr r3, =sRoamerLocation + ldrb r2, [r3] + strb r2, [r0] + ldrb r0, [r3, 0x1] + strb r0, [r1] + bx lr + .pool + thumb_func_end GetRoamerLocation + + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom3.s b/asm/rom3.s index 522d0d3f9..7162e65cd 100644 --- a/asm/rom3.s +++ b/asm/rom3.s @@ -96,7 +96,7 @@ _080326B8: adds r0, r4, 0 movs r2, 0x2 movs r3, 0x20 - bl create_pokemon_set_level + bl CreateMon str r5, [sp, 0x10] adds r0, r4, 0 movs r1, 0xC diff --git a/asm/rom4.s b/asm/rom4.s index 5b3ee18a4..6e7cd3cb2 100644 --- a/asm/rom4.s +++ b/asm/rom4.s @@ -131,8 +131,8 @@ sub_8084788: @ 8084788 bl FlagReset bl sub_8085B2C bl wild_pokemon_reroll - bl mapnumbers_history_shift_sav1_0_2_4_out - bl sub_8161D00 + bl UpdateLocationHistoryForRoamer + bl RoamerMoveToOtherLocationSet pop {r0} bx r0 .pool @@ -1402,8 +1402,8 @@ _08085116: cmp r4, 0xC ble _08085116 bl sub_80A0A2C - bl mapnumbers_history_shift_sav1_0_2_4_out - bl sub_8161D54 + bl UpdateLocationHistoryForRoamer + bl RoamerMove bl sub_80AEE20 bl wild_encounter_reset_coro_args bl mapheader_run_script_with_tag_x5 @@ -1493,8 +1493,8 @@ _08085200: bl update_sav1_flash_used_on_map bl sav1_reset_battle_music_maybe bl mapheader_run_script_with_tag_x3 - bl mapnumbers_history_shift_sav1_0_2_4_out - bl sub_8161D00 + bl UpdateLocationHistoryForRoamer + bl RoamerMoveToOtherLocationSet ldrh r1, [r4, 0x12] ldr r0, =0x00000169 cmp r1, r0 diff --git a/asm/rom6.s b/asm/rom6.s index 2798edb9f..efdcec2a3 100644 --- a/asm/rom6.s +++ b/asm/rom6.s @@ -7630,7 +7630,7 @@ sub_813946C: @ 813946C adds r0, r5, 0 movs r2, 0x7 movs r3, 0x20 - bl create_pokemon_set_level + bl CreateMon movs r1, 0x1 add r0, sp, 0x10 strh r1, [r0] diff --git a/asm/rom_8034C54.s b/asm/rom_8034C54.s index c83e3aab7..463a1615a 100644 --- a/asm/rom_8034C54.s +++ b/asm/rom_8034C54.s @@ -6633,7 +6633,7 @@ _08038750: movs r3, 0 str r3, [sp, 0xC] adds r3, r6, 0 - bl create_pokemon_set_level + bl CreateMon b _080389AC .pool _08038794: @@ -6702,7 +6702,7 @@ _080387D6: str r0, [sp, 0xC] adds r0, r5, 0 adds r3, r6, 0 - bl create_pokemon_set_level + bl CreateMon movs r6, 0 mov r0, r8 adds r0, 0x6 @@ -6794,7 +6794,7 @@ _08038896: str r0, [sp, 0xC] adds r0, r4, 0 adds r3, r6, 0 - bl create_pokemon_set_level + bl CreateMon adds r5, 0x6 adds r0, r4, 0 movs r1, 0xC @@ -6868,7 +6868,7 @@ _0803892A: str r0, [sp, 0xC] adds r0, r4, 0 adds r3, r6, 0 - bl create_pokemon_set_level + bl CreateMon adds r5, 0x6 adds r0, r4, 0 movs r1, 0xC @@ -16590,7 +16590,7 @@ _0803DF9E: cmp r4, 0 beq _0803DFDE ldr r0, =gEnemyParty - bl sub_8161F18 + bl UpdateRoamerHPStatus ldrb r1, [r5] movs r0, 0x1 ands r0, r1 @@ -16599,7 +16599,7 @@ _0803DF9E: cmp r1, 0x7 bne _0803DFDE _0803DFDA: - bl sub_8161F4C + bl SetRoamerInactive _0803DFDE: movs r0, 0x5A bl m4aSongNumStop diff --git a/asm/rom_815A0D4.s b/asm/rom_815A0D4.s index 749d24589..8373519ee 100644 --- a/asm/rom_815A0D4.s +++ b/asm/rom_815A0D4.s @@ -14454,12505 +14454,5 @@ sub_81617B8: @ 81617B8 .pool thumb_func_end sub_81617B8 - thumb_func_start sub_81617F4 -sub_81617F4: @ 81617F4 - push {r4,lr} - ldr r0, =gUnknown_0203BC40 - mov r12, r0 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, =0x00002734 - adds r0, r1, r2 - mov r4, r12 - str r0, [r4] - movs r3, 0xA - strb r3, [r4, 0x4] - adds r2, 0xA - adds r0, r1, r2 - str r0, [r4, 0x8] - strb r3, [r4, 0xC] - ldr r4, =0x00002748 - adds r0, r1, r4 - mov r2, r12 - str r0, [r2, 0x10] - strb r3, [r2, 0x14] - adds r4, 0xA - adds r0, r1, r4 - str r0, [r2, 0x18] - movs r2, 0x1E - mov r0, r12 - strb r2, [r0, 0x1C] - adds r4, 0x1E - adds r0, r1, r4 - mov r4, r12 - str r0, [r4, 0x20] - mov r0, r12 - adds r0, 0x24 - strb r2, [r0] - ldr r2, =0x0000278e - adds r0, r1, r2 - str r0, [r4, 0x28] - mov r0, r12 - adds r0, 0x2C - strb r3, [r0] - ldr r4, =0x00002798 - adds r0, r1, r4 - mov r2, r12 - str r0, [r2, 0x30] - adds r2, 0x34 - movs r0, 0x28 - strb r0, [r2] - adds r4, 0x28 - adds r1, r4 - mov r0, r12 - str r1, [r0, 0x38] - adds r0, 0x3C - strb r3, [r0] - bl sub_8126968 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81617F4 - - thumb_func_start sub_8161880 -sub_8161880: @ 8161880 - push {r4,r5,lr} - lsls r0, 24 - movs r3, 0 - ldr r1, =gUnknown_0203BC40 - lsrs r2, r0, 21 - adds r0, r2, r1 - ldrb r0, [r0, 0x4] - cmp r3, r0 - bcs _081618AA - adds r5, r1, 0 - movs r4, 0 -_08161896: - 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 _08161896 -_081618AA: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8161880 - - thumb_func_start ClearDecorationInventories -ClearDecorationInventories: @ 81618B4 - push {r4,lr} - movs r4, 0 -_081618B8: - adds r0, r4, 0 - bl sub_8161880 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _081618B8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end ClearDecorationInventories - - thumb_func_start sub_81618D0 -sub_81618D0: @ 81618D0 - push {r4,lr} - lsls r0, 24 - movs r2, 0 - ldr r1, =gUnknown_0203BC40 - lsrs r0, 21 - adds r0, r1 - movs r1, 0x4 - ldrsb r1, [r0, r1] - cmp r2, r1 - bge _0816190C - adds r4, r0, 0 - adds r3, r1, 0 -_081618E8: - lsls r0, r2, 24 - asrs r1, r0, 24 - ldr r0, [r4] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08161900 - adds r0, r1, 0 - b _08161910 - .pool -_08161900: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - asrs r0, 24 - cmp r0, r3 - blt _081618E8 -_0816190C: - movs r0, 0x1 - negs r0, r0 -_08161910: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81618D0 - - thumb_func_start sub_8161918 -sub_8161918: @ 8161918 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, =gUnknown_085A5C08 - lsls r0, r3, 5 - adds r0, r1 - ldrb r0, [r0, 0x13] - movs r2, 0 - ldr r1, =gUnknown_0203BC40 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0x4] - cmp r2, r1 - bcs _08161956 - ldr r4, [r0] -_08161936: - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, r3 - bne _0816194C - movs r0, 0x1 - b _08161958 - .pool -_0816194C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r1 - bcc _08161936 -_08161956: - movs r0, 0 -_08161958: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8161918 - - thumb_func_start IsThereStorageSpaceForDecoration -IsThereStorageSpaceForDecoration: @ 8161960 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - cmp r4, 0 - beq _081619A0 - ldr r1, =gUnknown_085A5C08 - lsls r0, r4, 5 - adds r0, r1 - ldrb r5, [r0, 0x13] - adds r0, r5, 0 - bl sub_81618D0 - lsls r0, 24 - asrs r2, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r2, r0 - beq _081619A0 - ldr r0, =gUnknown_0203BC40 - lsls r1, r5, 3 - adds r1, r0 - ldr r0, [r1] - adds r0, r2 - strb r4, [r0] - movs r0, 0x1 - b _081619A2 - .pool -_081619A0: - movs r0, 0 -_081619A2: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end IsThereStorageSpaceForDecoration - - thumb_func_start sub_81619A8 -sub_81619A8: @ 81619A8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081619D4 - ldr r1, =gUnknown_085A5C08 - lsls r0, 5 - adds r0, r1 - ldrb r0, [r0, 0x13] - bl sub_81618D0 - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _081619D4 - movs r0, 0x1 - b _081619D6 - .pool -_081619D4: - movs r0, 0 -_081619D6: - pop {r1} - bx r1 - thumb_func_end sub_81619A8 - - thumb_func_start sub_81619DC -sub_81619DC: @ 81619DC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0 - cmp r5, 0 - bne _081619F8 - b _08161A26 -_081619EA: - movs r0, 0 - strb r0, [r1] - adds r0, r6, 0 - bl sub_8161A38 - movs r0, 0x1 - b _08161A28 -_081619F8: - ldr r2, =gUnknown_0203BC40 - ldr r1, =gUnknown_085A5C08 - 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 _08161A26 - adds r6, r4, 0 - adds r4, r0, 0 - adds r2, r1, 0 -_08161A12: - ldr r0, [r4] - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, r5 - beq _081619EA - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r2 - bcc _08161A12 -_08161A26: - movs r0, 0 -_08161A28: - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81619DC - - thumb_func_start sub_8161A38 -sub_8161A38: @ 8161A38 - 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, =gUnknown_0203BC40 - lsrs r0, 21 - adds r1, r0, r2 - ldrb r3, [r1, 0x4] - cmp r6, r3 - bcs _08161ABC - adds r7, r0, 0 - mov r10, r1 - mov r0, r10 - str r0, [sp] -_08161A5C: - adds r1, r6, 0x1 - lsls r0, r1, 24 - lsrs r3, r0, 24 - adds r2, r7, 0 - mov r12, r1 - mov r1, r10 - ldrb r1, [r1, 0x4] - cmp r3, r1 - bcs _08161AAE - ldr r0, =gUnknown_0203BC40 - mov r9, r0 - adds r1, r0, 0 - mov r8, r1 -_08161A76: - mov r0, r9 - adds r5, r2, r0 - ldr r1, [r5] - adds r0, r1, r3 - ldrb r4, [r0] - adds r2, r4, 0 - cmp r2, 0 - beq _08161A9C - adds r0, r1, r6 - ldrb r1, [r0] - cmp r1, 0 - beq _08161A92 - cmp r1, r2 - bls _08161A9C -_08161A92: - ldrb r1, [r0] - strb r4, [r0] - ldr r0, [r5] - adds r0, r3 - strb r1, [r0] -_08161A9C: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r2, r7, 0 - mov r1, r8 - adds r0, r2, r1 - ldrb r0, [r0, 0x4] - cmp r3, r0 - bcc _08161A76 -_08161AAE: - mov r3, r12 - lsls r0, r3, 24 - lsrs r6, r0, 24 - ldr r0, [sp] - ldrb r0, [r0, 0x4] - cmp r6, r0 - bcc _08161A5C -_08161ABC: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8161A38 - - thumb_func_start sub_8161AD0 -sub_8161AD0: @ 8161AD0 - push {r4,r5,lr} - lsls r0, 24 - movs r4, 0 - movs r3, 0 - ldr r2, =gUnknown_0203BC40 - lsrs r1, r0, 21 - adds r0, r1, r2 - ldrb r0, [r0, 0x4] - cmp r4, r0 - bcs _08161B04 - adds r5, r2, 0 -_08161AE6: - adds r2, r1, r5 - ldr r0, [r2] - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _08161AF8 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_08161AF8: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r2, [r2, 0x4] - cmp r3, r2 - bcc _08161AE6 -_08161B04: - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8161AD0 - - thumb_func_start sub_8161B10 -sub_8161B10: @ 8161B10 - push {r4,r5,lr} - movs r5, 0 - movs r4, 0 -_08161B16: - adds r0, r4, 0 - bl sub_8161AD0 - 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 _08161B16 - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8161B10 - - thumb_func_start ClearRoamerData -ClearRoamerData: @ 8161B34 - push {r4,r5,lr} - ldr r5, =gSaveBlock1Ptr - ldr r0, [r5] - ldr r4, =0x000031dc - adds r0, r4 - movs r1, 0 - movs r2, 0x1C - bl memset - ldr r0, [r5] - adds r0, r4 - ldr r1, =0x00000197 - strh r1, [r0, 0x8] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ClearRoamerData - - thumb_func_start ClearRoamerLocationData -ClearRoamerLocationData: @ 8161B60 - push {r4-r6,lr} - movs r2, 0 - ldr r6, =gUnknown_0203BC86 - ldr r4, =gUnknown_0203BC80 - movs r3, 0 - adds r5, r4, 0x1 -_08161B6C: - 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 _08161B6C - movs r0, 0 - strb r0, [r6] - strb r0, [r6, 0x1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end ClearRoamerLocationData - - thumb_func_start sub_8161B94 -sub_8161B94: @ 8161B94 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - lsls r0, 16 - cmp r0, 0 - bne _08161BBC - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, =0x000031dc - adds r1, r2 - ldr r2, =0x00000197 - b _08161BC8 - .pool -_08161BBC: - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, =0x000031dc - adds r1, r2 - movs r2, 0xCC - lsls r2, 1 -_08161BC8: - strh r2, [r1, 0x8] - adds r7, r0, 0 - ldr r6, =gEnemyParty - ldr r0, [r7] - ldr r5, =0x000031dc - adds r0, r5 - ldrh r1, [r0, 0x8] - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r6, 0 - movs r2, 0x28 - movs r3, 0x20 - bl create_pokemon_set_level - ldr r0, [r7] - adds r0, r5 - movs r1, 0x28 - strb r1, [r0, 0xC] - ldr r0, [r7] - adds r0, r5 - strb r4, [r0, 0xD] - ldr r0, [r7] - adds r0, r5 - movs r1, 0x1 - strb r1, [r0, 0x13] - adds r0, r6, 0 - movs r1, 0x42 - bl GetMonData - ldr r1, [r7] - adds r1, r5 - str r0, [r1] - adds r0, r6, 0 - movs r1, 0 - bl GetMonData - ldr r1, [r7] - adds r1, r5 - str r0, [r1, 0x4] - adds r0, r6, 0 - movs r1, 0x3A - bl GetMonData - ldr r1, [r7] - adds r1, r5 - movs r2, 0 - mov r8, r2 - strh r0, [r1, 0xA] - adds r0, r6, 0 - movs r1, 0x16 - bl GetMonData - ldr r1, [r7] - adds r1, r5 - strb r0, [r1, 0xE] - adds r0, r6, 0 - movs r1, 0x17 - bl GetMonData - ldr r1, [r7] - adds r1, r5 - strb r0, [r1, 0xF] - adds r0, r6, 0 - movs r1, 0x18 - bl GetMonData - ldr r1, [r7] - adds r1, r5 - strb r0, [r1, 0x10] - adds r0, r6, 0 - movs r1, 0x21 - bl GetMonData - ldr r1, [r7] - adds r1, r5 - strb r0, [r1, 0x11] - adds r0, r6, 0 - movs r1, 0x2F - bl GetMonData - ldr r1, [r7] - adds r1, r5 - strb r0, [r1, 0x12] - ldr r4, =gUnknown_0203BC86 - mov r0, r8 - strb r0, [r4] - bl Random - ldr r5, =gUnknown_085CEC30 - 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-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8161B94 - - thumb_func_start sub_8161CBC -sub_8161CBC: @ 8161CBC - push {lr} - bl ClearRoamerData - bl ClearRoamerLocationData - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - bl sub_8161B94 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8161CBC - - thumb_func_start mapnumbers_history_shift_sav1_0_2_4_out -mapnumbers_history_shift_sav1_0_2_4_out: @ 8161CD8 - ldr r0, =gUnknown_0203BC80 - 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 r1, =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x4] - strb r1, [r0] - ldrb r1, [r2, 0x5] - strb r1, [r0, 0x1] - bx lr - .pool - thumb_func_end mapnumbers_history_shift_sav1_0_2_4_out - - thumb_func_start sub_8161D00 -sub_8161D00: @ 8161D00 - push {r4,r5,lr} - movs r1, 0 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x000031dc - adds r0, r2 - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _08161D3E - ldr r0, =gUnknown_0203BC86 - strb r1, [r0] - ldr r5, =gUnknown_085CEC30 - adds r4, r0, 0 -_08161D1A: - 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 _08161D1A - strb r1, [r4, 0x1] -_08161D3E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8161D00 - - thumb_func_start sub_8161D54 -sub_8161D54: @ 8161D54 - 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 _08161D6E - bl sub_8161D00 - b _08161DE2 -_08161D6E: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000031dc - adds r0, r1 - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _08161DE2 - ldr r7, =gUnknown_0203BC86 - ldr r3, =gUnknown_085CEC30 -_08161D80: - 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 _08161DD8 - ldr r6, =gUnknown_085CEC30 - adds r5, r2, 0x1 - ldr r4, =gUnknown_0203BC80 -_08161D96: - 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 _08161DBA - ldrb r0, [r4, 0x5] - cmp r0, r1 - beq _08161D96 -_08161DBA: - cmp r1, 0xFF - beq _08161D96 - strb r1, [r7, 0x1] - b _08161DE2 - .pool -_08161DD8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x13 - bls _08161D80 -_08161DE2: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8161D54 - - thumb_func_start sub_8161DE8 -sub_8161DE8: @ 8161DE8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, =0x000031dc - adds r0, r3 - ldrb r0, [r0, 0x13] - cmp r0, 0 - beq _08161E20 - ldr r0, =gUnknown_0203BC86 - ldrb r3, [r0] - cmp r2, r3 - bne _08161E20 - ldrb r0, [r0, 0x1] - cmp r1, r0 - bne _08161E20 - movs r0, 0x1 - b _08161E22 - .pool -_08161E20: - movs r0, 0 -_08161E22: - pop {r1} - bx r1 - thumb_func_end sub_8161DE8 - - thumb_func_start sub_8161E28 -sub_8161E28: @ 8161E28 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, =gEnemyParty - bl ZeroEnemyPartyMons - ldr r4, =gSaveBlock1Ptr - ldr r0, [r4] - ldr r1, =0x000031dc - adds r0, r1 - ldrh r1, [r0, 0x8] - ldrb r2, [r0, 0xC] - ldr r3, [r0] - ldr r0, [r0, 0x4] - str r0, [sp] - adds r0, r5, 0 - bl sub_8068060 - ldr r2, [r4] - ldr r0, =0x000031e9 - adds r2, r0 - adds r0, r5, 0 - movs r1, 0x37 - bl SetMonData - ldr r2, [r4] - ldr r1, =0x000031e6 - adds r2, r1 - adds r0, r5, 0 - movs r1, 0x39 - bl SetMonData - ldr r2, [r4] - ldr r0, =0x000031ea - adds r2, r0 - adds r0, r5, 0 - movs r1, 0x16 - bl SetMonData - ldr r2, [r4] - ldr r1, =0x000031eb - adds r2, r1 - adds r0, r5, 0 - movs r1, 0x17 - bl SetMonData - ldr r2, [r4] - ldr r0, =0x000031ec - adds r2, r0 - adds r0, r5, 0 - movs r1, 0x18 - bl SetMonData - ldr r2, [r4] - ldr r1, =0x000031ed - adds r2, r1 - adds r0, r5, 0 - movs r1, 0x21 - bl SetMonData - ldr r2, [r4] - ldr r0, =0x000031ee - adds r2, r0 - adds r0, r5, 0 - movs r1, 0x2F - bl SetMonData - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8161E28 - - thumb_func_start sub_8161EDC -sub_8161EDC: @ 8161EDC - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldrb r0, [r1, 0x4] - ldrb r1, [r1, 0x5] - bl sub_8161DE8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08161F10 - bl Random - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - cmp r1, 0 - bne _08161F10 - bl sub_8161E28 - movs r0, 0x1 - b _08161F12 - .pool -_08161F10: - movs r0, 0 -_08161F12: - pop {r1} - bx r1 - thumb_func_end sub_8161EDC - - thumb_func_start sub_8161F18 -sub_8161F18: @ 8161F18 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x39 - bl GetMonData - ldr r5, =gSaveBlock1Ptr - ldr r1, [r5] - ldr r4, =0x000031dc - adds r1, r4 - strh r0, [r1, 0xA] - adds r0, r6, 0 - movs r1, 0x37 - bl GetMonData - ldr r1, [r5] - adds r1, r4 - strb r0, [r1, 0xD] - bl sub_8161D00 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8161F18 - - thumb_func_start sub_8161F4C -sub_8161F4C: @ 8161F4C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000031dc - adds r0, r1 - movs r1, 0 - strb r1, [r0, 0x13] - bx lr - .pool - thumb_func_end sub_8161F4C - - thumb_func_start sub_8161F64 -sub_8161F64: @ 8161F64 - ldr r3, =gUnknown_0203BC86 - ldrb r2, [r3] - strb r2, [r0] - ldrb r0, [r3, 0x1] - strb r0, [r1] - bx lr - .pool - thumb_func_end sub_8161F64 - - thumb_func_start sub_8161F74 -sub_8161F74: @ 8161F74 - push {lr} - ldr r1, =gUnknown_085DF96C - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8161F74 - - thumb_func_start sub_8161F94 -sub_8161F94: @ 8161F94 - push {r4-r7,lr} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, [r4] - ldr r2, =0x00000ca8 - adds r0, r2 - movs r7, 0 - movs r1, 0x1 - strb r1, [r0] - ldr r1, [r4] - adds r2, 0xA - adds r0, r1, r2 - strh r7, [r0] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r4] - ldr r2, =0x00000ca9 - adds r1, r2 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - bl sub_81A3ACC - ldr r4, [r4] - ldr r0, =0x00000cdc - adds r3, r4, r0 - ldr r2, =gUnknown_085DF9AC - lsls r1, r5, 2 - lsls r0, r6, 3 - adds r1, r0 - adds r1, r2 - ldr r0, [r3] - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - bne _0816200E - lsls r0, r5, 1 - lsls r1, r6, 2 - adds r0, r1 - movs r2, 0xCE - lsls r2, 4 - adds r1, r4, r2 - adds r1, r0 - strh r7, [r1] -_0816200E: - bl sub_8164ED8 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x4 - ldrsb r1, [r0, r1] - movs r2, 0x5 - ldrsb r2, [r0, r2] - movs r3, 0x1 - negs r3, r3 - movs r0, 0 - bl saved_warp2_set - ldr r0, =gUnknown_02038BCA - strh r7, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8161F94 - - thumb_func_start sub_8162054 -sub_8162054: @ 8162054 - push {r4-r6,lr} - ldr r5, =gSaveBlock2Ptr - ldr r0, [r5] - ldr r4, =0x00000ca9 - adds r0, r4 - ldrb r0, [r0] - lsls r0, 30 - lsrs r6, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0x1 - beq _08162094 - cmp r0, 0x1 - ble _081620E8 - cmp r0, 0x2 - beq _081620A8 - cmp r0, 0x3 - beq _081620D8 - b _081620E8 - .pool -_08162094: - adds r0, r6, 0 - lsls r1, 24 - lsrs r1, 24 - bl sub_8164FCC - ldr r1, =gScriptResult - strh r0, [r1] - b _081620E8 - .pool -_081620A8: - ldr r4, =gScriptResult - ldr r2, [r5] - ldr r0, =0x00000cdc - adds r2, r0 - ldr r3, =gUnknown_085DF9AC - lsls r0, r6, 2 - lsls r1, 3 - adds r0, r1 - adds r0, r3 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - strh r0, [r4] - b _081620E8 - .pool -_081620D8: - ldr r1, [r5] - adds r0, r1, r4 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - ldr r2, =0x00000d07 - adds r1, r2 - strb r0, [r1] -_081620E8: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8162054 - - thumb_func_start sub_81620F4 -sub_81620F4: @ 81620F4 - push {r4-r7,lr} - ldr r6, =gSaveBlock2Ptr - ldr r0, [r6] - ldr r7, =0x00000ca9 - adds r0, r7 - ldrb r0, [r0] - lsls r0, 30 - lsrs r5, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0x1 - beq _08162134 - cmp r0, 0x1 - ble _081621B4 - cmp r0, 0x2 - beq _08162150 - cmp r0, 0x3 - beq _081621A4 - b _081621B4 - .pool -_08162134: - ldr r2, [r6] - lsls r0, r5, 1 - lsls r1, r4, 2 - adds r0, r1 - movs r1, 0xCE - lsls r1, 4 - adds r2, r1 - adds r2, r0 - ldr r0, =gSpecialVar_0x8006 - ldrh r0, [r0] - strh r0, [r2] - b _081621B4 - .pool -_08162150: - ldr r0, =gSpecialVar_0x8006 - ldrh r0, [r0] - cmp r0, 0 - beq _08162180 - ldr r2, [r6] - ldr r0, =0x00000cdc - adds r2, r0 - ldr r3, =gUnknown_085DF9AC - lsls r1, r5, 2 - lsls r0, r4, 3 - adds r1, r0 - adds r1, r3 - ldr r0, [r2] - ldr r1, [r1] - orrs r0, r1 - str r0, [r2] - b _081621B4 - .pool -_08162180: - ldr r2, [r6] - ldr r1, =0x00000cdc - adds r2, r1 - ldr r3, =gUnknown_085DF9CC - lsls r1, r5, 2 - lsls r0, r4, 3 - adds r1, r0 - adds r1, r3 - ldr r0, [r2] - ldr r1, [r1] - ands r0, r1 - str r0, [r2] - b _081621B4 - .pool -_081621A4: - ldr r1, [r6] - adds r0, r1, r7 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - ldr r2, =0x00000d07 - adds r1, r2 - strb r0, [r1] -_081621B4: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81620F4 - - thumb_func_start sub_81621C0 -sub_81621C0: @ 81621C0 - push {r4,r5,lr} - ldr r0, =gUnknown_02038BCA - ldrh r1, [r0] - movs r0, 0xFA - lsls r0, 1 - cmp r1, r0 - bne _081621DA - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000bec - adds r0, r1 - bl sub_816534C -_081621DA: - ldr r5, =gSaveBlock2Ptr - ldr r0, [r5] - ldr r1, =0x00000d04 - adds r2, r0, r1 - ldrh r1, [r2] - ldr r0, =0x0000270e - cmp r1, r0 - bhi _081621EE - adds r0, r1, 0x1 - strh r0, [r2] -_081621EE: - ldr r1, [r5] - ldr r4, =0x00000cb2 - adds r1, r4 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - bl sub_8163E90 - ldr r1, =gScriptResult - ldr r0, [r5] - adds r0, r4 - ldrh r0, [r0] - strh r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81621C0 - - thumb_func_start sub_816222C -sub_816222C: @ 816222C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x3C - movs r0, 0 - str r0, [sp, 0x24] - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - mov r10, r0 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x2C] - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - cmp r0, 0 - beq _08162266 - b _0816239C -_08162266: - mov r0, r10 - ldr r1, [sp, 0x2C] - bl sub_8164FCC - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x28] - movs r7, 0 - mov r2, sp - str r2, [sp, 0x34] -_0816227A: - movs r3, 0xEC - adds r0, r7, 0 - muls r0, r3 - movs r4, 0xE7 - lsls r4, 3 - adds r0, r4 - ldr r5, =gSaveBlock2Ptr - ldr r1, [r5] - movs r2, 0 - mov r8, r2 - mov r9, r2 - movs r5, 0 - adds r3, r7, 0x1 - str r3, [sp, 0x30] - adds r1, r0 -_08162298: - ldm r1!, {r0} - mov r4, r8 - orrs r4, r0 - mov r8, r4 - add r9, r0 - adds r5, 0x1 - cmp r5, 0x39 - bls _08162298 - movs r6, 0 - movs r5, 0 - movs r0, 0xEC - adds r2, r7, 0 - muls r2, r0 -_081622B2: - ldr r3, =gSaveBlock2Ptr - ldr r1, [r3] - movs r0, 0x2C - muls r0, r5 - adds r0, r2 - adds r1, r0 - ldr r4, =0x0000076c - adds r0, r1, r4 - ldrh r0, [r0] - cmp r0, 0 - beq _081622E4 - movs r0, 0xEF - lsls r0, 3 - adds r4, r1, r0 - mov r0, r10 - str r2, [sp, 0x38] - bl sub_8165C90 - ldrb r1, [r4] - lsls r0, 24 - lsrs r0, 24 - ldr r2, [sp, 0x38] - cmp r1, r0 - bhi _081622E4 - adds r6, 0x1 -_081622E4: - adds r5, 0x1 - cmp r5, 0x3 - ble _081622B2 - ldr r0, =gUnknown_085DF9F6 - ldr r1, [sp, 0x2C] - adds r0, r1, r0 - ldrb r0, [r0] - cmp r6, r0 - blt _0816233E - ldr r3, =gSaveBlock2Ptr - ldr r2, [r3] - movs r4, 0xEC - adds r3, r7, 0 - muls r3, r4 - adds r1, r2, r3 - ldr r5, =0x0000073a - adds r0, r1, r5 - ldrh r0, [r0] - ldr r4, [sp, 0x28] - cmp r0, r4 - bne _0816233E - subs r5, 0x2 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, r10 - bne _0816233E - mov r0, r8 - cmp r0, 0 - beq _0816233E - movs r1, 0x82 - lsls r1, 4 - adds r0, r2, r1 - adds r0, r3 - ldr r0, [r0] - cmp r0, r9 - bne _0816233E - movs r2, 0x96 - lsls r2, 1 - adds r0, r7, r2 - ldr r3, [sp, 0x34] - stm r3!, {r0} - str r3, [sp, 0x34] - ldr r4, [sp, 0x24] - adds r4, 0x1 - str r4, [sp, 0x24] -_0816233E: - ldr r7, [sp, 0x30] - cmp r7, 0x4 - ble _0816227A - ldr r5, [sp, 0x2C] - cmp r5, 0 - bne _08162396 - bl sub_8165B20 - movs r7, 0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r4, =gUnknown_085DF9EC - adds r2, r0, 0 - adds r2, 0xDC - ldr r1, [sp, 0x24] - lsls r0, r1, 2 - mov r5, sp - adds r3, r0, r5 -_08162362: - ldrb r0, [r2] - lsls r1, r0, 25 - lsrs r0, r1, 30 - cmp r0, 0 - beq _0816238E - ldrb r0, [r2, 0x1] - adds r0, r4 - ldrb r0, [r0] - ldr r5, [sp, 0x28] - cmp r0, r5 - bne _0816238E - lsrs r0, r1, 30 - subs r0, 0x1 - cmp r0, r10 - bne _0816238E - movs r1, 0xC8 - lsls r1, 1 - adds r0, r7, r1 - stm r3!, {r0} - ldr r5, [sp, 0x24] - adds r5, 0x1 - str r5, [sp, 0x24] -_0816238E: - adds r2, 0x44 - adds r7, 0x1 - cmp r7, 0x3 - ble _08162362 -_08162396: - ldr r0, [sp, 0x24] - cmp r0, 0 - bne _081623C0 -_0816239C: - movs r0, 0 - b _081623DA - .pool -_081623C0: - ldr r4, =gUnknown_02038BCA - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, [sp, 0x24] - bl __modsi3 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - strh r0, [r4] - movs r0, 0x1 -_081623DA: - add sp, 0x3C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_816222C - - thumb_func_start sub_81623F0 -sub_81623F0: @ 81623F0 - push {r4-r7,lr} - ldr r6, =gSaveBlock2Ptr - ldr r0, [r6] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - cmp r0, 0x2 - bne _08162414 - bl sub_8165E18 - b _08162530 - .pool -_08162414: - ldr r0, =0x000040ce - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl sub_81A39C4 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x7 - bl __udivsi3 - lsls r0, 16 - lsrs r5, r0, 16 - bl sub_8165C40 - subs r4, 0x2 - cmp r4, 0x1 - bhi _08162488 - ldr r1, [r6] - ldr r2, =0x00000cb2 - adds r0, r1, r2 - ldrh r3, [r0] - ldr r2, =gUnknown_02038BCA - lsls r0, r3, 2 - ldr r4, =0x00000cb4 - adds r1, r4 - adds r0, r1, r0 - ldrh r0, [r0] - strh r0, [r2] - ldr r4, =gUnknown_02038BCC - lsls r0, r3, 1 - adds r0, 0x1 - lsls r0, 1 - adds r1, r0 - ldrh r0, [r1] - strh r0, [r4] - ldrh r0, [r2] - movs r1, 0 - bl sub_8162614 - ldrh r0, [r4] - movs r1, 0x1 - bl sub_8162614 - b _08162530 - .pool -_08162488: - bl sub_816222C - lsls r0, 24 - cmp r0, 0 - beq _081624B4 - ldr r4, =gUnknown_02038BCA - ldrh r0, [r4] - movs r1, 0 - bl sub_8162614 - ldr r1, [r6] - ldr r2, =0x00000cb2 - adds r0, r1, r2 - ldrh r0, [r0] - lsls r0, 1 - adds r2, 0x2 - b _08162528 - .pool -_081624B4: - lsls r7, r5, 24 - adds r5, r6, 0 - ldr r6, =0x00000cb2 -_081624BA: - ldr r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsrs r0, r7, 24 - bl sub_8162548 - lsls r0, 16 - lsrs r3, r0, 16 - movs r4, 0 - ldr r1, [r5] - adds r0, r1, r6 - ldrh r0, [r0] - cmp r4, r0 - bge _081624FC - ldr r2, =0x00000cb4 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, r3 - beq _081624FC - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - subs r2, 0x2 - adds r0, r1, r2 - ldrh r2, [r0] - ldr r0, =0x00000cb4 - adds r1, r0 -_081624EE: - adds r1, 0x2 - adds r4, 0x1 - cmp r4, r2 - bge _081624FC - ldrh r0, [r1] - cmp r0, r3 - bne _081624EE -_081624FC: - ldr r0, [r5] - ldr r1, =0x00000cb2 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - bne _081624BA - ldr r4, =gUnknown_02038BCA - strh r3, [r4] - ldrh r0, [r4] - movs r1, 0 - bl sub_8162614 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r2, =0x00000cb2 - adds r0, r1, r2 - ldrh r2, [r0] - adds r0, r2, 0x1 - cmp r0, 0x6 - bgt _08162530 - lsls r0, r2, 1 - ldr r2, =0x00000cb4 -_08162528: - adds r1, r2 - adds r1, r0 - ldrh r0, [r4] - strh r0, [r1] -_08162530: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81623F0 - - thumb_func_start sub_8162548 -sub_8162548: @ 8162548 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - lsls r1, 24 - lsrs r1, 24 - cmp r0, 0x7 - bhi _08162584 - cmp r1, 0x6 - bne _08162570 - ldr r2, =gUnknown_085DFA1A - lsls r1, r0, 2 - adds r0, r2, 0x2 - adds r0, r1, r0 - adds r1, r2 - ldrh r0, [r0] - ldrh r4, [r1] - b _0816258A - .pool -_08162570: - ldr r2, =gUnknown_085DF9FA - lsls r1, r3, 2 - adds r0, r2, 0x2 - adds r0, r1, r0 - adds r1, r2 - ldrh r0, [r0] - ldrh r4, [r1] - b _0816258A - .pool -_08162584: - ldr r1, =gUnknown_085DF9FA - ldrh r0, [r1, 0x1E] - ldrh r4, [r1, 0x1C] -_0816258A: - subs r0, r4 - adds r0, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - bl __umodsi3 - adds r4, r0 - lsls r4, 16 - lsrs r5, r4, 16 - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8162548 - - thumb_func_start sub_81625B4 -sub_81625B4: @ 81625B4 - push {r4,lr} - adds r4, r2, 0 - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - lsls r1, 24 - lsrs r1, 24 - cmp r0, 0x7 - bhi _081625F4 - cmp r1, 0x6 - bne _081625D4 - ldr r1, =gUnknown_085DFA1A - lsls r2, r0, 2 - b _081625D8 - .pool -_081625D4: - ldr r1, =gUnknown_085DF9FA - lsls r2, 2 -_081625D8: - adds r0, r1, 0x2 - adds r0, r2, r0 - adds r2, r1 - ldrh r0, [r0] - ldrh r1, [r2] - subs r0, r1 - adds r0, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - ldrh r0, [r2] - b _08162604 - .pool -_081625F4: - ldr r0, =gUnknown_085DF9FA - ldrh r1, [r0, 0x1E] - ldrh r2, [r0, 0x1C] - subs r1, r2 - adds r1, 0x1 - lsls r1, 16 - lsrs r1, 16 - ldrh r0, [r0, 0x1C] -_08162604: - strh r0, [r4] - strb r1, [r3] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81625B4 - - thumb_func_start sub_8162614 -sub_8162614: @ 8162614 - push {r4-r6,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r6, r4, 0 - lsls r1, 24 - lsrs r5, r1, 24 - bl sub_8165C40 - movs r0, 0xFA - lsls r0, 1 - cmp r4, r0 - bne _08162640 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000bed - adds r0, r1 - b _081626BA - .pool -_08162640: - ldr r0, =0x000003fe - cmp r4, r0 - bne _08162650 - bl sub_81A4DD8 - b _08162788 - .pool -_08162650: - ldr r0, =0x0000012b - cmp r4, r0 - bhi _0816266C - ldr r0, =gUnknown_0203BC88 - ldr r1, [r0] - movs r0, 0x34 - muls r0, r4 - adds r0, r1 - b _081626BA - .pool -_0816266C: - ldr r0, =0x0000018f - cmp r4, r0 - bhi _08162698 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0xfffffed4 - adds r2, r4, r1 - movs r1, 0xEC - muls r1, r2 - adds r0, r1 - ldr r1, =0x00000739 - adds r0, r1 - b _081626BA - .pool -_08162698: - ldr r3, =gUnknown_08610970 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, =0xfffffe70 - adds r2, r6, r0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - adds r1, 0xDC - ldrb r0, [r1] - lsls r0, 27 - lsrs r0, 27 - movs r1, 0x58 - muls r0, r1 - adds r0, r3 - adds r0, 0x32 -_081626BA: - ldrb r2, [r0] - movs r1, 0 - ldr r3, =gUnknown_085DCEDC - ldrb r0, [r3] - cmp r0, r2 - beq _081626D4 -_081626C6: - adds r1, 0x1 - cmp r1, 0x1D - bhi _081626D4 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081626C6 -_081626D4: - cmp r1, 0x1E - beq _08162700 - ldr r0, =gUnknown_085DCF0E - adds r0, r1, r0 - ldrb r1, [r0] - cmp r5, 0x1 - beq _08162744 - cmp r5, 0x1 - ble _0816272E - cmp r5, 0xF - bne _0816272E - b _08162750 - .pool -_08162700: - movs r1, 0 - ldr r3, =gUnknown_085DCEFA - ldrb r0, [r3] - cmp r0, r2 - beq _08162718 -_0816270A: - adds r1, 0x1 - cmp r1, 0x13 - bhi _08162718 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _0816270A -_08162718: - cmp r1, 0x14 - beq _0816275C - ldr r0, =gUnknown_085DCF2C - adds r0, r1, r0 - ldrb r1, [r0] - cmp r5, 0x1 - beq _08162744 - cmp r5, 0x1 - ble _0816272E - cmp r5, 0xF - beq _08162750 -_0816272E: - ldr r0, =0x00004010 - bl VarSet - b _08162788 - .pool -_08162744: - ldr r0, =0x00004011 - bl VarSet - b _08162788 - .pool -_08162750: - ldr r0, =0x0000401e - bl VarSet - b _08162788 - .pool -_0816275C: - cmp r5, 0x1 - beq _08162770 - cmp r5, 0x1 - ble _08162768 - cmp r5, 0xF - beq _08162780 -_08162768: - ldr r0, =0x00004010 - b _08162772 - .pool -_08162770: - ldr r0, =0x00004011 -_08162772: - movs r1, 0x7 - bl VarSet - b _08162788 - .pool -_08162780: - ldr r0, =0x0000401e - movs r1, 0x7 - bl VarSet -_08162788: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8162614 - - thumb_func_start sub_8162794 -sub_8162794: @ 8162794 - push {lr} - movs r0, 0xFA - lsls r0, 1 - movs r1, 0 - bl sub_8162614 - pop {r0} - bx r0 - thumb_func_end sub_8162794 - - thumb_func_start sub_81627A4 -sub_81627A4: @ 81627A4 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r5, r4, 0 - bl sub_8165C40 - movs r0, 0xFA - lsls r0, 1 - cmp r4, r0 - bne _081627CC - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000bed - adds r0, r1 - b _08162836 - .pool -_081627CC: - ldr r0, =0x0000012b - cmp r4, r0 - bhi _081627E8 - ldr r0, =gUnknown_0203BC88 - ldr r1, [r0] - movs r0, 0x34 - muls r0, r4 - adds r0, r1 - b _08162836 - .pool -_081627E8: - ldr r0, =0x0000018f - cmp r4, r0 - bhi _08162814 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0xfffffed4 - adds r2, r4, r1 - movs r1, 0xEC - muls r1, r2 - adds r0, r1 - ldr r1, =0x00000739 - adds r0, r1 - b _08162836 - .pool -_08162814: - ldr r3, =gUnknown_08610970 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, =0xfffffe70 - adds r2, r5, r0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - adds r1, 0xDC - ldrb r0, [r1] - lsls r0, 27 - lsrs r0, 27 - movs r1, 0x58 - muls r0, r1 - adds r0, r3 - adds r0, 0x32 -_08162836: - ldrb r2, [r0] - movs r1, 0 - ldr r3, =gUnknown_085DCEDC - ldrb r0, [r3] - cmp r0, r2 - beq _08162850 -_08162842: - adds r1, 0x1 - cmp r1, 0x1D - bhi _08162850 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _08162842 -_08162850: - cmp r1, 0x1E - beq _0816286C - ldr r0, =gUnknown_085DCF0E - b _08162892 - .pool -_0816286C: - movs r1, 0 - ldr r3, =gUnknown_085DCEFA - ldrb r0, [r3] - cmp r0, r2 - beq _08162884 -_08162876: - adds r1, 0x1 - cmp r1, 0x13 - bhi _08162884 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _08162876 -_08162884: - cmp r1, 0x14 - bne _08162890 - movs r0, 0x7 - b _08162896 - .pool -_08162890: - ldr r0, =gUnknown_085DCF2C -_08162892: - adds r0, r1, r0 - ldrb r0, [r0] -_08162896: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81627A4 - - thumb_func_start sub_81628A0 -sub_81628A0: @ 81628A0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - movs r1, 0 - mov r8, r1 - mov r10, r0 - movs r5, 0 - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - mov r4, r10 - ldrb r4, [r4, 0xC] - str r4, [sp, 0x18] - mov r9, r5 - movs r7, 0x4 - str r7, [sp, 0x1C] - ldr r1, =0x00000744 - adds r1, r0 - mov r12, r1 -_081628CA: - movs r6, 0 - movs r3, 0 - mov r2, r12 - ldrb r0, [r2] - ldr r4, [sp, 0x18] - cmp r0, r4 - bne _081628FA - mov r4, r9 - mov r2, r10 - adds r2, 0xC -_081628DE: - adds r3, 0x1 - cmp r3, 0x3 - bgt _081628FA - ldr r7, =gSaveBlock2Ptr - ldr r0, [r7] - adds r1, r3, r4 - ldr r7, =0x00000744 - adds r0, r7 - adds r0, r1 - adds r1, r2, r3 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _081628DE -_081628FA: - cmp r3, 0x4 - bne _08162944 - movs r6, 0 - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldr r3, =0x0000073c - adds r0, r3 - ldr r2, [sp, 0x1C] - adds r0, r2 - ldrb r0, [r0] - mov r4, r10 - ldrb r4, [r4, 0x8] - cmp r0, r4 - bne _08162944 - adds r1, r0, 0 - mov r2, r9 - adds r2, 0x4 -_0816291C: - cmp r1, 0xFF - bne _08162930 - movs r6, 0x7 - b _08162944 - .pool -_08162930: - adds r6, 0x1 - cmp r6, 0x6 - bgt _08162944 - ldr r7, =gSaveBlock2Ptr - ldr r0, [r7] - adds r0, r3 - adds r0, r2 - ldrb r0, [r0] - cmp r0, r1 - beq _0816291C -_08162944: - cmp r6, 0x7 - beq _0816295A - movs r0, 0xEC - add r9, r0 - ldr r1, [sp, 0x1C] - adds r1, 0xEC - str r1, [sp, 0x1C] - add r12, r0 - adds r5, 0x1 - cmp r5, 0x4 - ble _081628CA -_0816295A: - cmp r5, 0x4 - bgt _08162974 - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - movs r1, 0xEC - muls r1, r5 - adds r0, r1 - movs r4, 0xE7 - lsls r4, 3 - adds r0, r4 - b _081629B2 - .pool -_08162974: - movs r5, 0 - ldr r7, =gSaveBlock2Ptr - ldr r0, [r7] - ldr r1, =0x0000073a - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _0816299E - adds r3, r7, 0 - adds r2, r1, 0 - movs r1, 0 -_0816298A: - adds r1, 0xEC - adds r5, 0x1 - cmp r5, 0x4 - bgt _081629C4 - ldr r0, [r3] - adds r0, r1 - adds r0, r2 - ldrh r0, [r0] - cmp r0, 0 - bne _0816298A -_0816299E: - cmp r5, 0x4 - bgt _081629C4 - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - movs r1, 0xEC - muls r1, r5 - adds r0, r1 - movs r2, 0xE7 - lsls r2, 3 - adds r0, r2 -_081629B2: - mov r1, r10 - movs r2, 0xEC - bl memcpy - b _08162A8A - .pool -_081629C4: - mov r2, sp - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r3, =0x0000073a - adds r0, r3 - ldrh r0, [r0] - movs r1, 0 - strh r0, [r2] - add r0, sp, 0xC - strh r1, [r0] - movs r7, 0x1 - add r8, r7 - movs r5, 0x1 - add r0, sp, 0xC - mov r9, r0 - mov r12, r3 -_081629E4: - movs r3, 0 - adds r7, r5, 0x1 - cmp r3, r8 - bge _08162A2E - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - movs r2, 0xEC - adds r1, r5, 0 - muls r1, r2 - adds r0, r1 - mov r1, r12 - adds r4, r0, r1 - mov r6, sp -_081629FE: - lsls r0, r3, 1 - add r0, sp - ldrh r2, [r4] - adds r1, r2, 0 - ldrh r0, [r0] - cmp r1, r0 - bcs _08162A24 - movs r3, 0 - movs r4, 0x1 - mov r8, r4 - strh r2, [r6] - mov r0, r9 - strh r5, [r0] - b _08162A2E - .pool -_08162A24: - cmp r1, r0 - bhi _08162A2E - adds r3, 0x1 - cmp r3, r8 - blt _081629FE -_08162A2E: - cmp r3, r8 - bne _08162A54 - mov r1, r8 - lsls r2, r1, 1 - mov r4, sp - adds r3, r4, r2 - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - movs r4, 0xEC - adds r1, r5, 0 - muls r1, r4 - adds r0, r1 - add r0, r12 - ldrh r0, [r0] - strh r0, [r3] - add r2, r9 - strh r5, [r2] - movs r0, 0x1 - add r8, r0 -_08162A54: - adds r5, r7, 0 - cmp r5, 0x4 - ble _081629E4 - bl Random - lsls r0, 16 - lsrs r0, 16 - mov r1, r8 - bl __modsi3 - adds r5, r0, 0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r5, 1 - add r1, sp - adds r1, 0xC - ldrh r2, [r1] - movs r1, 0xEC - muls r1, r2 - adds r0, r1 - movs r1, 0xE7 - lsls r1, 3 - adds r0, r1 - mov r1, r10 - movs r2, 0xEC - bl memcpy -_08162A8A: - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81628A0 - - thumb_func_start sub_8162AA0 -sub_8162AA0: @ 8162AA0 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r5, r4, 0 - bl sub_8165C40 - movs r0, 0xFA - lsls r0, 1 - cmp r4, r0 - bne _08162AD0 - ldr r1, =gTrainerPicIndices - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000bed - adds r0, r2 - ldrb r0, [r0] - adds r0, r1 - b _08162BC8 - .pool -_08162AD0: - ldr r0, =0x000003fe - cmp r4, r0 - bne _08162AE4 - bl sub_81A4CB0 - lsls r0, 24 - lsrs r0, 24 - b _08162BCA - .pool -_08162AE4: - ldr r0, =0x0000012b - cmp r4, r0 - bhi _08162B08 - ldr r2, =gTrainerPicIndices - ldr r0, =gUnknown_0203BC88 - ldr r1, [r0] - movs r0, 0x34 - muls r0, r4 - adds r0, r1 - ldrb r0, [r0] - adds r0, r2 - b _08162BC8 - .pool -_08162B08: - ldr r0, =0x0000018f - cmp r4, r0 - bhi _08162B64 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _08162B38 - ldr r4, =gTrainerPicIndices - bl sub_818649C - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - b _08162BC8 - .pool -_08162B38: - ldr r3, =gTrainerPicIndices - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0xfffffed4 - adds r2, r4, r1 - movs r1, 0xEC - muls r1, r2 - adds r0, r1 - ldr r2, =0x00000739 - adds r0, r2 - ldrb r0, [r0] - adds r0, r3 - b _08162BC8 - .pool -_08162B64: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - bne _08162BB0 - ldr r4, =gTrainerPicIndices - ldr r3, =gUnknown_08610970 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, =0xfffffe70 - adds r2, r5, r0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - adds r1, 0xDC - ldrb r0, [r1] - lsls r0, 27 - lsrs r0, 27 - movs r1, 0x58 - muls r0, r1 - adds r0, r3 - adds r0, 0x32 - ldrb r0, [r0] - adds r0, r4 - b _08162BC8 - .pool -_08162BB0: - ldr r5, =gTrainerPicIndices - ldr r4, =gUnknown_08610970 - bl sub_81864A8 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x58 - muls r0, r1 - adds r0, r4 - adds r0, 0x32 - ldrb r0, [r0] - adds r0, r5 -_08162BC8: - ldrb r0, [r0] -_08162BCA: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8162AA0 - - thumb_func_start sub_8162BD8 -sub_8162BD8: @ 8162BD8 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r5, r4, 0 - bl sub_8165C40 - movs r0, 0xFA - lsls r0, 1 - cmp r4, r0 - bne _08162C08 - ldr r1, =gTrainerClassNameIndices - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000bed - adds r0, r2 - ldrb r0, [r0] - b _08162C26 - .pool -_08162C08: - ldr r0, =0x000003fe - cmp r4, r0 - bne _08162C1C - bl sub_81A4D00 - lsls r0, 24 - lsrs r0, 24 - b _08162D1E - .pool -_08162C1C: - ldr r0, =0x00000c03 - cmp r4, r0 - bne _08162C38 - ldr r0, =gTrainers - ldr r1, =0x00007da1 -_08162C26: - adds r0, r1 - ldrb r0, [r0] - b _08162D1E - .pool -_08162C38: - ldr r0, =0x0000012b - cmp r4, r0 - bhi _08162C60 - ldr r2, =gTrainerClassNameIndices - ldr r0, =gUnknown_0203BC88 - ldr r1, [r0] - movs r0, 0x34 - muls r0, r4 - adds r0, r1 - ldrb r0, [r0] - adds r0, r2 - ldrb r0, [r0] - b _08162D1E - .pool -_08162C60: - ldr r0, =0x0000018f - cmp r4, r0 - bhi _08162CBC - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _08162C90 - ldr r4, =gTrainerClassNameIndices - bl sub_818649C - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - ldrb r0, [r0] - b _08162D1E - .pool -_08162C90: - ldr r3, =gTrainerClassNameIndices - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0xfffffed4 - adds r2, r4, r1 - movs r1, 0xEC - muls r1, r2 - adds r0, r1 - ldr r2, =0x00000739 - adds r0, r2 - ldrb r0, [r0] - adds r0, r3 - ldrb r0, [r0] - b _08162D1E - .pool -_08162CBC: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _08162CF4 - ldr r5, =gTrainerClassNameIndices - ldr r4, =gUnknown_08610970 - bl sub_81864A8 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x58 - muls r0, r1 - adds r0, r4 - adds r0, 0x32 - ldrb r0, [r0] - adds r0, r5 - ldrb r0, [r0] - b _08162D1E - .pool -_08162CF4: - ldr r4, =gTrainerClassNameIndices - ldr r3, =gUnknown_08610970 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, =0xfffffe70 - adds r2, r5, r0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - adds r1, 0xDC - ldrb r0, [r1] - lsls r0, 27 - lsrs r0, 27 - movs r1, 0x58 - muls r0, r1 - adds r0, r3 - adds r0, 0x32 - ldrb r0, [r0] - adds r0, r4 - ldrb r0, [r0] -_08162D1E: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8162BD8 - - thumb_func_start sub_8162D34 -sub_8162D34: @ 8162D34 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r5, r4, 0 - bl sub_8165C40 - movs r0, 0xFA - lsls r0, 1 - cmp r4, r0 - bne _08162D5C - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000bed - adds r0, r1 - b _08162E0A - .pool -_08162D5C: - ldr r0, =0x0000012b - cmp r4, r0 - bhi _08162D78 - ldr r0, =gUnknown_0203BC88 - ldr r1, [r0] - movs r0, 0x34 - muls r0, r4 - adds r0, r1 - b _08162E0A - .pool -_08162D78: - ldr r0, =0x0000018f - cmp r4, r0 - bhi _08162DC0 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _08162DA0 - bl sub_818649C - lsls r0, 24 - lsrs r0, 24 - b _08162E0C - .pool -_08162DA0: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0xfffffed4 - adds r2, r4, r1 - movs r1, 0xEC - muls r1, r2 - adds r0, r1 - ldr r1, =0x00000739 - adds r0, r1 - b _08162E0A - .pool -_08162DC0: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _08162DE8 - ldr r4, =gUnknown_08610970 - bl sub_81864A8 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x58 - muls r0, r1 - adds r0, r4 - b _08162E08 - .pool -_08162DE8: - ldr r3, =gUnknown_08610970 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, =0xfffffe70 - adds r2, r5, r0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - adds r1, 0xDC - ldrb r0, [r1] - lsls r0, 27 - lsrs r0, 27 - movs r1, 0x58 - muls r0, r1 - adds r0, r3 -_08162E08: - adds r0, 0x32 -_08162E0A: - ldrb r0, [r0] -_08162E0C: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8162D34 - - thumb_func_start sub_8162E20 -sub_8162E20: @ 8162E20 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - movs r4, 0 - bl sub_8165C40 - movs r0, 0xFA - lsls r0, 1 - cmp r5, r0 - bne _08162E54 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - movs r1, 0xBF - lsls r1, 4 - adds r2, r0, r1 -_08162E40: - adds r0, r6, r4 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x6 - ble _08162E40 - b _08162F5C - .pool -_08162E54: - ldr r0, =0x000003fe - cmp r5, r0 - bne _08162E68 - adds r0, r6, 0 - bl sub_81A4D50 - b _08162F62 - .pool -_08162E68: - ldr r0, =0x00000c03 - cmp r5, r0 - bne _08162E88 - ldr r2, =gTrainers + TRAINER_STEVEN * 0x28 + 0x4 @ Steven's name -_08162E70: - adds r0, r6, r4 - adds r1, r4, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x6 - ble _08162E70 - b _08162F5C - .pool -_08162E88: - ldr r0, =0x0000012b - cmp r5, r0 - bhi _08162EB4 - ldr r0, =gUnknown_0203BC88 - ldr r1, [r0] - movs r0, 0x34 - muls r0, r5 - adds r0, r1 - adds r2, r0, 0x4 -_08162E9A: - adds r0, r6, r4 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x6 - ble _08162E9A - b _08162F5C - .pool -_08162EB4: - ldr r0, =0x0000018f - cmp r5, r0 - bhi _08162F00 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _08162ED8 - adds r0, r6, 0 - bl sub_8186468 - b _08162F62 - .pool -_08162ED8: - ldr r2, =gSaveBlock2Ptr - movs r0, 0xEC - adds r1, r5, 0 - muls r1, r0 - ldr r0, =0xfffef2a8 - adds r1, r0 - ldr r0, [r2] - adds r0, r1 - adds r1, r0, 0x4 - adds r0, 0xE4 - ldrb r2, [r0] - adds r0, r6, 0 - bl sub_81DB5E8 - b _08162F62 - .pool -_08162F00: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _08162F24 - bl sub_81864A8 - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_81864C0 - lsls r0, 24 - lsrs r4, r0, 24 - b _08162F3E - .pool -_08162F24: - ldr r1, =gSaveBlock2Ptr - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - ldr r2, =0xffff969c - adds r0, r2 - ldr r1, [r1] - adds r1, r0 - ldrb r0, [r1] - lsls r0, 27 - lsrs r5, r0, 27 - adds r1, 0x3F - ldrb r4, [r1] -_08162F3E: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81A1650 - adds r1, r0, 0 - adds r0, r6, 0 - adds r2, r4, 0 - bl sub_81DB5E8 - b _08162F62 - .pool -_08162F5C: - adds r1, r6, r4 - movs r0, 0xFF - strb r0, [r1] -_08162F62: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8162E20 - - thumb_func_start sub_8162F68 -sub_8162F68: @ 8162F68 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r5, r4, 0 - bl sub_8165C40 - movs r0, 0xFA - lsls r0, 1 - cmp r4, r0 - bne _08162F90 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000bed - adds r0, r1 - b _0816300E - .pool -_08162F90: - ldr r0, =0x000003fe - cmp r4, r0 - bne _08162FA4 - bl sub_81A4DB8 - lsls r0, 24 - lsrs r0, 24 - b _08163042 - .pool -_08162FA4: - ldr r0, =0x0000012b - cmp r4, r0 - bhi _08162FC0 - ldr r0, =gUnknown_0203BC88 - ldr r1, [r0] - movs r0, 0x34 - muls r0, r4 - adds r0, r1 - b _0816300E - .pool -_08162FC0: - ldr r0, =0x0000018f - cmp r4, r0 - bhi _08162FEC - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0xfffffed4 - adds r2, r4, r1 - movs r1, 0xEC - muls r1, r2 - adds r0, r1 - ldr r1, =0x00000739 - adds r0, r1 - b _0816300E - .pool -_08162FEC: - ldr r3, =gUnknown_08610970 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, =0xfffffe70 - adds r2, r5, r0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - adds r1, 0xDC - ldrb r0, [r1] - lsls r0, 27 - lsrs r0, 27 - movs r1, 0x58 - muls r0, r1 - adds r0, r3 - adds r0, 0x32 -_0816300E: - ldrb r2, [r0] - movs r1, 0 - ldr r3, =gUnknown_085DCEFA - ldrb r0, [r3] - cmp r0, r2 - beq _08163028 -_0816301A: - adds r1, 0x1 - cmp r1, 0x13 - bhi _08163028 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _0816301A -_08163028: - cmp r1, 0x14 - bne _08163040 - movs r0, 0 - b _08163042 - .pool -_08163040: - movs r0, 0x1 -_08163042: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8162F68 - - thumb_func_start sub_8163048 -sub_8163048: @ 8163048 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ZeroEnemyPartyMons - ldr r0, =gUnknown_02038BCA - ldrh r0, [r0] - movs r1, 0 - adds r2, r4, 0 - bl sub_81630C4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8163048 - - thumb_func_start sub_816306C -sub_816306C: @ 816306C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ZeroEnemyPartyMons - ldr r0, =gUnknown_02038BCA - ldrh r0, [r0] - movs r1, 0 - adds r2, r4, 0 - bl sub_81630C4 - ldr r0, =gUnknown_02038BCC - ldrh r0, [r0] - movs r1, 0x3 - adds r2, r4, 0 - bl sub_81630C4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816306C - - thumb_func_start sub_81630A0 -sub_81630A0: @ 81630A0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ZeroEnemyPartyMons - ldr r0, =gUnknown_02038BCA - ldrh r0, [r0] - movs r1, 0 - adds r2, r4, 0 - bl sub_8165EA4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81630A0 - - thumb_func_start sub_81630C4 -sub_81630C4: @ 81630C4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x40 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x18] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x1C] - add r4, sp, 0x14 - movs r0, 0xFF - strb r0, [r4] - bl sub_8165C40 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x20] - ldr r0, =0x0000012b - cmp r5, r0 - bhi _08163138 - adds r0, r5, 0 - bl sub_8165D08 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x24] - ldr r0, =gUnknown_02038BCA - ldrh r2, [r0] - ldr r0, =gUnknown_0203BC88 - ldr r1, [r0] - movs r0, 0x34 - muls r0, r2 - adds r0, r1 - ldr r0, [r0, 0x30] - str r0, [sp, 0x2C] - movs r0, 0 - str r0, [sp, 0x28] - ldr r2, [sp, 0x2C] - ldrh r1, [r2] - ldr r0, =0x0000ffff - cmp r1, r0 - bne _08163124 - b _08163278 -_08163124: - b _08163260 - .pool -_08163138: - movs r0, 0xFA - lsls r0, 1 - cmp r5, r0 - bne _08163180 - ldr r7, [sp, 0x18] - adds r0, r7, 0x3 - cmp r7, r0 - blt _0816314A - b _08163426 -_0816314A: - ldr r4, =gSaveBlock2Ptr -_0816314C: - movs r0, 0x64 - muls r0, r7 - ldr r1, =gEnemyParty - adds r0, r1 - ldr r5, [sp, 0x18] - subs r2, r7, r5 - movs r1, 0x2C - muls r2, r1 - movs r6, 0xC2 - lsls r6, 4 - adds r2, r6 - ldr r1, [r4] - adds r1, r2 - bl sub_806819C - adds r7, 0x1 - adds r0, r5, 0 - adds r0, 0x3 - cmp r7, r0 - blt _0816314C - b _08163426 - .pool -_08163180: - ldr r0, =0x000003fe - cmp r5, r0 - bne _08163190 - bl sub_81A4E04 - b _08163426 - .pool -_08163190: - ldr r0, =0x0000018f - cmp r5, r0 - bhi _08163218 - movs r6, 0 - ldr r7, [sp, 0x18] - ldr r1, [sp, 0x1C] - adds r0, r7, r1 - cmp r7, r0 - blt _081631A4 - b _08163426 -_081631A4: - ldr r2, =0xfffffed4 - adds r1, r5, r2 - movs r0, 0xEC - adds r2, r1, 0 - muls r2, r0 - mov r8, r2 - muls r0, r5 - ldr r5, =0xfffef2a8 - adds r4, r0, r5 -_081631B6: - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - movs r0, 0x2C - adds r2, r6, 0 - muls r2, r0 - mov r1, r8 - adds r0, r2, r1 - adds r1, r3, r0 - ldr r5, =0x0000076c - adds r0, r1, r5 - ldrh r0, [r0] - cmp r0, 0 - beq _081631F0 - adds r5, 0xC - adds r0, r1, r5 - ldrb r0, [r0] - ldr r1, [sp, 0x20] - cmp r0, r1 - bhi _081631F0 - movs r0, 0x64 - muls r0, r7 - ldr r1, =gEnemyParty - adds r0, r1 - adds r1, r3, r4 - adds r2, 0x34 - adds r1, r2 - movs r2, 0 - bl sub_8068338 -_081631F0: - adds r6, 0x1 - adds r7, 0x1 - ldr r2, [sp, 0x18] - ldr r5, [sp, 0x1C] - adds r0, r2, r5 - cmp r7, r0 - blt _081631B6 - b _08163426 - .pool -_08163218: - ldr r7, [sp, 0x18] - adds r0, r7, 0x3 - cmp r7, r0 - blt _08163222 - b _08163426 -_08163222: - ldr r6, =gSaveBlock2Ptr - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - ldr r1, =0xffff969c - adds r5, r0, r1 - movs r4, 0 -_08163230: - movs r0, 0x64 - muls r0, r7 - ldr r1, =gEnemyParty - adds r0, r1 - ldr r1, [r6] - adds r1, r5 - lsrs r2, r4, 24 - bl sub_8068528 - movs r2, 0x80 - lsls r2, 17 - adds r4, r2 - adds r7, 0x1 - ldr r0, [sp, 0x18] - adds r0, 0x3 - cmp r7, r0 - blt _08163230 - b _08163426 - .pool -_08163260: - ldr r0, [sp, 0x28] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x28] - lsls r0, 1 - ldr r5, [sp, 0x2C] - adds r0, r5 - ldrh r1, [r0] - ldr r0, =0x0000ffff - cmp r1, r0 - bne _08163260 -_08163278: - movs r7, 0 - bl Random - adds r4, r0, 0 - bl Random - lsls r4, 16 - lsrs r4, 16 - lsls r0, 16 - orrs r4, r0 - str r4, [sp, 0x30] - ldr r6, [sp, 0x1C] - cmp r7, r6 - bne _08163296 - b _08163426 -_08163296: - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, [sp, 0x28] - bl __modsi3 - lsls r0, 1 - ldr r1, [sp, 0x2C] - adds r0, r1 - ldrh r4, [r0] - ldr r2, [sp, 0x20] - cmp r2, 0x32 - beq _081632B6 - cmp r2, 0x14 - bne _081632BE -_081632B6: - ldr r0, =0x00000351 - cmp r4, r0 - bls _081632BE - b _0816341E -_081632BE: - movs r6, 0 - ldr r5, [sp, 0x18] - adds r5, r7 - mov r8, r5 - b _081632D2 - .pool -_081632D0: - adds r6, 0x1 -_081632D2: - cmp r6, r8 - bge _081632F6 - movs r1, 0x64 - adds r0, r6, 0 - muls r0, r1 - ldr r2, =gEnemyParty - adds r0, r2 - movs r1, 0xB - movs r2, 0 - bl GetMonData - ldr r1, =gUnknown_0203BC8C - ldr r2, [r1] - lsls r1, r4, 4 - adds r1, r2 - ldrh r1, [r1] - cmp r0, r1 - bne _081632D0 -_081632F6: - cmp r6, r8 - beq _081632FC - b _0816341E -_081632FC: - movs r6, 0 - cmp r6, r8 - bge _08163346 - ldr r5, =gBattleFrontierHeldItems - mov r9, r5 - movs r3, 0 -_08163308: - ldr r0, =gEnemyParty - adds r5, r3, r0 - adds r0, r5, 0 - movs r1, 0xC - movs r2, 0 - str r3, [sp, 0x38] - bl GetMonData - ldr r3, [sp, 0x38] - cmp r0, 0 - beq _0816333E - adds r0, r5, 0 - movs r1, 0xC - movs r2, 0 - bl GetMonData - ldr r1, =gUnknown_0203BC8C - ldr r2, [r1] - lsls r1, r4, 4 - adds r1, r2 - ldrb r1, [r1, 0xA] - lsls r1, 1 - add r1, r9 - ldr r3, [sp, 0x38] - ldrh r1, [r1] - cmp r0, r1 - beq _08163346 -_0816333E: - adds r3, 0x64 - adds r6, 0x1 - cmp r6, r8 - blt _08163308 -_08163346: - cmp r6, r8 - bne _0816341E - movs r6, 0 - cmp r6, r7 - bge _08163368 - add r0, sp, 0xC - ldrh r0, [r0] - cmp r0, r4 - beq _08163368 - add r1, sp, 0xC -_0816335A: - adds r1, 0x2 - adds r6, 0x1 - cmp r6, r7 - bge _08163368 - ldrh r0, [r1] - cmp r0, r4 - bne _0816335A -_08163368: - cmp r6, r7 - bne _0816341E - lsls r0, r7, 1 - add r0, sp - adds r0, 0xC - strh r4, [r0] - movs r1, 0x64 - mov r0, r8 - muls r0, r1 - ldr r2, =gEnemyParty - adds r0, r2 - ldr r5, =gUnknown_0203BC8C - ldr r2, [r5] - lsls r4, 4 - adds r2, r4, r2 - ldrh r1, [r2] - ldrb r3, [r2, 0xC] - ldr r6, [sp, 0x24] - str r6, [sp] - ldrb r2, [r2, 0xB] - str r2, [sp, 0x4] - ldr r2, [sp, 0x30] - str r2, [sp, 0x8] - ldr r2, [sp, 0x20] - bl sub_8068634 - movs r0, 0xFF - mov r6, sp - strb r0, [r6, 0x14] - movs r6, 0 - adds r0, r7, 0x1 - str r0, [sp, 0x34] - mov r9, r4 - movs r0, 0x64 - mov r3, r8 - muls r3, r0 - mov r1, r9 - str r1, [sp, 0x3C] - ldr r2, =gEnemyParty - mov r10, r2 -_081633B8: - ldr r0, [r5] - ldr r7, [sp, 0x3C] - adds r0, r7, r0 - lsls r4, r6, 1 - adds r0, 0x2 - adds r0, r4 - ldrh r1, [r0] - lsls r2, r6, 24 - lsrs r2, 24 - mov r7, r10 - adds r0, r3, r7 - str r3, [sp, 0x38] - bl sub_80691F4 - ldr r0, [r5] - ldr r1, [sp, 0x3C] - adds r0, r1, r0 - adds r0, 0x2 - adds r0, r4 - ldrh r0, [r0] - ldr r3, [sp, 0x38] - cmp r0, 0xDA - bne _081633EC - movs r0, 0 - mov r2, sp - strb r0, [r2, 0x14] -_081633EC: - adds r6, 0x1 - cmp r6, 0x3 - ble _081633B8 - movs r5, 0x64 - mov r4, r8 - muls r4, r5 - ldr r6, =gEnemyParty - adds r4, r6 - adds r0, r4, 0 - movs r1, 0x20 - add r2, sp, 0x14 - bl SetMonData - ldr r0, =gUnknown_0203BC8C - ldr r0, [r0] - add r0, r9 - ldrb r2, [r0, 0xA] - lsls r2, 1 - ldr r0, =gBattleFrontierHeldItems - adds r2, r0 - adds r0, r4, 0 - movs r1, 0xC - bl SetMonData - ldr r7, [sp, 0x34] -_0816341E: - ldr r0, [sp, 0x1C] - cmp r7, r0 - beq _08163426 - b _08163296 -_08163426: - add sp, 0x40 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81630C4 - - thumb_func_start sub_8163444 -sub_8163444: @ 8163444 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x8] - movs r1, 0xFF - add r0, sp, 0x4 - strb r1, [r0] - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - movs r0, 0xDC - adds r0, r2 - mov r10, r0 - ldrb r0, [r0, 0x1] - movs r1, 0x9 - str r1, [sp, 0x10] - cmp r0, 0x4 - bhi _08163474 - movs r0, 0x6 - str r0, [sp, 0x10] -_08163474: - ldr r1, =0x00000ca9 - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, 0x3 - ands r0, r1 - movs r1, 0x32 - str r1, [sp, 0xC] - cmp r0, 0 - beq _0816348A - movs r0, 0x64 - str r0, [sp, 0xC] -_0816348A: - movs r7, 0 - adds r2, 0xE2 - str r2, [sp, 0x14] - add r1, sp, 0x4 - mov r9, r1 -_08163494: - ldr r2, [sp, 0x8] - adds r6, r2, r7 - movs r0, 0x64 - muls r0, r6 - ldr r1, =gEnemyParty - adds r0, r1 - lsls r5, r7, 1 - adds r4, r5, r7 - lsls r4, 2 - mov r2, r10 - adds r1, r2, r4 - ldrh r1, [r1, 0x4] - movs r2, 0x8 - str r2, [sp] - ldr r2, [sp, 0xC] - ldr r3, [sp, 0x10] - bl pokemon_make_ev_something - movs r0, 0xFF - mov r1, r9 - strb r0, [r1] - adds r2, r7, 0x1 - mov r8, r2 - movs r1, 0x3 -_081634C4: - ldr r2, [sp, 0x14] - adds r0, r2, r4 - ldrh r0, [r0] - cmp r0, 0xDA - bne _081634D4 - movs r2, 0 - mov r0, r9 - strb r2, [r0] -_081634D4: - adds r4, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _081634C4 - movs r0, 0x64 - adds r4, r6, 0 - muls r4, r0 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x20 - add r2, sp, 0x4 - bl SetMonData - adds r2, r5, r7 - lsls r2, 2 - add r2, r10 - adds r2, 0xE - adds r0, r4, 0 - movs r1, 0xC - bl SetMonData - mov r7, r8 - cmp r7, 0x3 - bne _08163494 - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8163444 - - thumb_func_start sub_8163524 -sub_8163524: @ 8163524 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl sub_8165C40 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =gUnknown_0203BC88 - ldr r1, [r0] - movs r0, 0x34 - muls r0, r4 - adds r0, r1 - ldr r5, [r0, 0x30] - movs r4, 0 - ldrh r1, [r5] - b _08163558 - .pool -_0816354C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 1 - adds r0, r5 - ldrh r1, [r0] -_08163558: - ldr r0, =0x0000ffff - cmp r1, r0 - bne _0816354C -_0816355E: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 1 - adds r0, r5 - ldrh r1, [r0] - cmp r6, 0x32 - beq _0816357A - cmp r6, 0x14 - bne _08163580 -_0816357A: - ldr r0, =0x00000351 - cmp r1, r0 - bhi _0816355E -_08163580: - adds r0, r1, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8163524 - - thumb_func_start sub_8163590 -sub_8163590: @ 8163590 - push {lr} - bl ZeroEnemyPartyMons - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x2 - beq _081635C0 - ldr r0, =gUnknown_02038BCA - ldrh r0, [r0] - movs r1, 0 - bl sub_81635D4 - b _081635CA - .pool -_081635C0: - ldr r0, =gUnknown_02038BCA - ldrh r0, [r0] - movs r1, 0 - bl sub_816379C -_081635CA: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8163590 - - thumb_func_start sub_81635D4 -sub_81635D4: @ 81635D4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - lsls r0, 16 - lsrs r2, r0, 16 - adds r3, r2, 0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x10] - ldr r0, =0x0000012b - cmp r2, r0 - bhi _0816364A - ldr r4, =gSaveBlock2Ptr - ldr r0, =0x000040ce - bl VarGet - lsls r0, 24 - ldr r4, [r4] - lsrs r0, 22 - movs r2, 0xCE - lsls r2, 4 - adds r1, r4, r2 - adds r1, r0 - ldrh r0, [r1] - movs r1, 0x7 - bl __udivsi3 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r3, =0x00000cb2 - adds r4, r3 - ldrh r0, [r4] - cmp r0, 0x5 - bhi _0816363C - adds r0, r1, 0 - movs r1, 0 - bl sub_81A6CA8 - lsls r0, 24 - lsrs r0, 24 - b _081636A6 - .pool -_0816363C: - adds r0, r1, 0 - movs r1, 0x1 - bl sub_81A6CA8 - lsls r0, 24 - lsrs r0, 24 - b _081636A6 -_0816364A: - movs r0, 0xFA - lsls r0, 1 - cmp r2, r0 - bne _08163694 - ldr r7, [sp, 0x10] - adds r0, r7, 0x3 - cmp r7, r0 - blt _0816365C - b _08163776 -_0816365C: - ldr r4, =gSaveBlock2Ptr -_0816365E: - movs r0, 0x64 - muls r0, r7 - ldr r1, =gEnemyParty - adds r0, r1 - ldr r1, [sp, 0x10] - subs r2, r7, r1 - movs r1, 0x2C - muls r2, r1 - movs r3, 0xC2 - lsls r3, 4 - adds r2, r3 - ldr r1, [r4] - adds r1, r2 - bl sub_806819C - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, [sp, 0x10] - adds r0, 0x3 - cmp r7, r0 - blt _0816365E - b _08163776 - .pool -_08163694: - ldr r0, =0x000003fe - cmp r3, r0 - bne _081636A4 - bl sub_81A6CD0 - b _08163776 - .pool -_081636A4: - movs r0, 0x1F -_081636A6: - str r0, [sp, 0x18] - bl sub_8165C40 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x14] - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldrb r2, [r1, 0xA] - ldrb r0, [r1, 0xB] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r1, 0xC] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r1, 0xD] - lsls r0, 24 - orrs r2, r0 - mov r8, r2 - movs r7, 0 -_081636CE: - ldr r1, =gUnknown_03006298 - lsls r0, r7, 1 - adds r0, r1 - ldrh r0, [r0] - mov r9, r0 - ldr r3, [sp, 0x10] - adds r5, r3, r7 - movs r0, 0x64 - adds r6, r5, 0 - muls r6, r0 - ldr r1, =gEnemyParty - adds r0, r6, r1 - ldr r3, =gUnknown_0203BC8C - ldr r2, [r3] - mov r1, r9 - lsls r4, r1, 4 - adds r2, r4, r2 - ldrh r1, [r2] - ldrb r3, [r2, 0xC] - mov r10, r3 - ldr r3, [sp, 0x18] - str r3, [sp] - ldrb r2, [r2, 0xB] - str r2, [sp, 0x4] - mov r2, r8 - str r2, [sp, 0x8] - ldr r2, [sp, 0x14] - mov r3, r10 - bl sub_8068634 - movs r1, 0 - add r0, sp, 0xC - strb r1, [r0] - movs r3, 0 - adds r7, 0x1 - mov r10, r7 - adds r7, r4, 0 -_08163718: - ldr r0, =gUnknown_0203BC8C - ldr r1, [r0] - mov r2, r9 - lsls r0, r2, 4 - adds r0, r1 - lsls r1, r3, 1 - adds r0, 0x2 - adds r0, r1 - ldrh r1, [r0] - ldr r2, =gEnemyParty - adds r0, r6, r2 - adds r2, r3, 0 - str r3, [sp, 0x1C] - bl sub_81A7024 - ldr r3, [sp, 0x1C] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _08163718 - movs r3, 0x64 - adds r4, r5, 0 - muls r4, r3 - ldr r0, =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x20 - add r2, sp, 0xC - bl SetMonData - ldr r1, =gUnknown_0203BC8C - ldr r0, [r1] - adds r0, r7, r0 - ldrb r2, [r0, 0xA] - lsls r2, 1 - ldr r0, =gBattleFrontierHeldItems - adds r2, r0 - adds r0, r4, 0 - movs r1, 0xC - bl SetMonData - mov r2, r10 - lsls r0, r2, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _081636CE -_08163776: - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81635D4 - - thumb_func_start sub_816379C -sub_816379C: @ 816379C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x10] - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldrb r0, [r1, 0xA] - mov r9, r0 - ldrb r0, [r1, 0xB] - lsls r0, 8 - mov r2, r9 - orrs r2, r0 - ldrb r0, [r1, 0xC] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r1, 0xD] - lsls r0, 24 - orrs r2, r0 - mov r9, r2 - movs r7, 0 - mov r8, r7 -_081637D0: - ldr r1, =gUnknown_03006298 - mov r2, r8 - lsls r0, r2, 1 - adds r0, r1 - ldrh r4, [r0] - ldr r5, [sp, 0x10] - add r5, r8 - movs r7, 0x64 - adds r6, r5, 0 - muls r6, r7 - ldr r1, =gEnemyParty - adds r0, r6, r1 - ldr r7, =gUnknown_0203BC8C - ldr r2, [r7] - lsls r4, 4 - adds r2, r4, r2 - ldrh r1, [r2] - ldrb r3, [r2, 0xC] - movs r7, 0 - str r7, [sp] - ldrb r2, [r2, 0xB] - str r2, [sp, 0x4] - mov r2, r9 - str r2, [sp, 0x8] - movs r2, 0x1E - bl sub_8068634 - movs r1, 0 - add r0, sp, 0xC - strb r1, [r0] - mov r10, r5 - mov r0, r8 - adds r0, 0x1 - str r0, [sp, 0x14] - mov r8, r4 - mov r5, r8 -_08163818: - ldr r1, =gUnknown_0203BC8C - ldr r0, [r1] - adds r0, r5, r0 - lsls r4, r7, 1 - adds r0, 0x2 - adds r0, r4 - ldrh r1, [r0] - ldr r2, =gEnemyParty - adds r0, r6, r2 - adds r2, r7, 0 - bl sub_81A7024 - ldr r1, =gUnknown_0203BC8C - ldr r0, [r1] - adds r0, r5, r0 - adds r0, 0x2 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0xDA - bne _08163846 - movs r1, 0 - add r0, sp, 0xC - strb r1, [r0] -_08163846: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x3 - bls _08163818 - movs r2, 0x64 - mov r4, r10 - muls r4, r2 - ldr r7, =gEnemyParty - adds r4, r7 - adds r0, r4, 0 - movs r1, 0x20 - add r2, sp, 0xC - bl SetMonData - ldr r1, =gUnknown_0203BC8C - ldr r0, [r1] - add r0, r8 - ldrb r2, [r0, 0xA] - lsls r2, 1 - ldr r0, =gBattleFrontierHeldItems - adds r2, r0 - adds r0, r4, 0 - movs r1, 0xC - bl SetMonData - ldr r2, [sp, 0x14] - lsls r0, r2, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x2 - bls _081637D0 - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816379C - - thumb_func_start ConvertBattleFrontierTrainerSpeechToString -ConvertBattleFrontierTrainerSpeechToString: @ 81638AC - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, =gStringVar4 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - movs r3, 0x2 - bl ConvertEasyChatWordsToString - movs r2, 0x1 - negs r2, r2 - movs r0, 0x1 - adds r1, r4, 0 - bl GetStringWidth - cmp r0, 0xCC - bls _0816390A - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - movs r3, 0x3 - bl ConvertEasyChatWordsToString - ldrb r0, [r4] - movs r1, 0x1 - cmp r0, 0xFE - beq _081638EE - adds r2, r4, 0 -_081638E4: - adds r0, r1, r2 - ldrb r0, [r0] - adds r1, 0x1 - cmp r0, 0xFE - bne _081638E4 -_081638EE: - ldr r2, =gStringVar4 - adds r0, r1, r2 - ldrb r0, [r0] - adds r3, r2, 0 - cmp r0, 0xFE - beq _08163904 -_081638FA: - adds r1, 0x1 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0xFE - bne _081638FA -_08163904: - adds r1, r3 - movs r0, 0xFA - strb r0, [r1] -_0816390A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ConvertBattleFrontierTrainerSpeechToString - - thumb_func_start sub_8163914 -sub_8163914: @ 8163914 - push {lr} - bl sub_8165C40 - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0 - beq _08163930 - ldr r0, =gUnknown_02038BCC - b _08163932 - .pool -_08163930: - ldr r0, =gUnknown_02038BCA -_08163932: - ldrh r3, [r0] - movs r0, 0xFA - lsls r0, 1 - cmp r3, r0 - bne _08163950 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000bfc - b _08163986 - .pool -_08163950: - ldr r0, =0x0000012b - cmp r3, r0 - bhi _08163974 - ldr r2, =gUnknown_0203BC88 - movs r0, 0x34 - adds r1, r3, 0 - muls r1, r0 - ldr r0, [r2] - adds r0, r1 - adds r0, 0xC - bl ConvertBattleFrontierTrainerSpeechToString - b _081639A8 - .pool -_08163974: - ldr r0, =0x0000018f - cmp r3, r0 - bhi _0816399C - ldr r1, =gSaveBlock2Ptr - movs r0, 0xEC - muls r0, r3 - ldr r1, [r1] - adds r0, r1 - ldr r1, =0xfffef2b8 -_08163986: - adds r0, r1 - bl ConvertBattleFrontierTrainerSpeechToString - b _081639A8 - .pool -_0816399C: - adds r0, r3, 0 - adds r0, 0x70 - lsls r0, 24 - lsrs r0, 24 - bl sub_819F99C -_081639A8: - pop {r0} - bx r0 - thumb_func_end sub_8163914 - - thumb_func_start sub_81639AC -sub_81639AC: @ 81639AC - push {r4-r6,lr} - sub sp, 0x4 - bl sub_81864CC - ldr r0, =gBattleScripting - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0xA - bhi _08163A78 - lsls r0, 2 - ldr r1, =_081639D0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081639D0: - .4byte _081639FC - .4byte _08163A38 - .4byte _08163A74 - .4byte _081639FC - .4byte _081639FC - .4byte _081639FC - .4byte _081639FC - .4byte _081639FC - .4byte _08163A78 - .4byte _081639FC - .4byte _081639FC -_081639FC: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000ebc - adds r1, r0, r2 - ldr r2, [r1] - ldr r0, =0x00fffffe - cmp r2, r0 - bhi _08163A2C - adds r0, r2, 0x1 - str r0, [r1] - movs r1, 0x14 - bl __umodsi3 - cmp r0, 0 - bne _08163A78 - bl sub_81DA57C - b _08163A78 - .pool -_08163A2C: - ldr r0, =0x00ffffff - str r0, [r1] - b _08163A78 - .pool -_08163A38: - movs r5, 0 - ldr r6, =gSaveBlock1Ptr -_08163A3C: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - movs r0, 0x8E - lsls r0, 2 - adds r1, r4, r0 - ldr r0, [r6] - adds r0, r1 - movs r1, 0xC - bl GetMonData - mov r1, sp - strh r0, [r1] - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xC - mov r2, sp - bl SetMonData - adds r5, 0x1 - cmp r5, 0x5 - ble _08163A3C - b _08163A78 - .pool -_08163A74: - bl sub_816537C -_08163A78: - ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81639AC - - thumb_func_start sub_8163A8C -sub_8163A8C: @ 8163A8C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8145F20 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08163AB0 - ldr r0, =gMain - ldr r1, =sub_81639AC - str r1, [r0, 0x8] - ldr r0, =sub_8036760 - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_08163AB0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8163A8C - - thumb_func_start sub_8163AC4 -sub_8163AC4: @ 8163AC4 - push {r4-r6,lr} - sub sp, 0x4 - ldr r0, =gBattleScripting - ldr r2, =gSpecialVar_0x8004 - ldrh r1, [r2] - adds r0, 0x26 - strb r1, [r0] - ldrh r0, [r2] - cmp r0, 0xA - bls _08163ADA - b _08163E68 -_08163ADA: - lsls r0, 2 - ldr r1, =_08163AF0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08163AF0: - .4byte _08163B1C - .4byte _08163BC0 - .4byte _08163C10 - .4byte _08163C70 - .4byte _08163CC4 - .4byte _08163D28 - .4byte _08163D74 - .4byte _08163DB4 - .4byte _08163E2C - .4byte _08163DF4 - .4byte _08163DC8 -_08163B1C: - ldr r5, =gBattleTypeFlags - movs r0, 0x84 - lsls r0, 1 - str r0, [r5] - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - beq _08163B56 - cmp r4, 0x1 - bgt _08163B44 - cmp r4, 0 - beq _08163B4E - b _08163BA6 - .pool -_08163B44: - cmp r4, 0x2 - beq _08163B64 - cmp r4, 0x3 - beq _08163B98 - b _08163BA6 -_08163B4E: - movs r0, 0x3 - bl sub_8163048 - b _08163BA6 -_08163B56: - movs r0, 0x4 - bl sub_8163048 - ldr r0, [r5] - orrs r0, r4 - str r0, [r5] - b _08163BA6 -_08163B64: - movs r0, 0x2 - bl sub_816306C - ldr r1, =gUnknown_02038BCE - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000cd6 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - ldrh r0, [r1] - bl sub_8165404 - ldr r0, [r5] - ldr r1, =0x00408041 - orrs r0, r1 - str r0, [r5] - b _08163BA6 - .pool -_08163B98: - ldr r0, [r5] - ldr r1, =0x00800043 - orrs r0, r1 - str r0, [r5] - movs r0, 0x2 - bl sub_816306C -_08163BA6: - ldr r0, =sub_8163A8C - movs r1, 0x1 - bl CreateTask - movs r0, 0 - bl PlayNewMapMusic__default_for_battle - movs r0, 0 - b _08163E10 - .pool -_08163BC0: - movs r5, 0 - ldr r6, =gSaveBlock1Ptr -_08163BC4: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r0, r4, r0 - movs r1, 0xC - bl GetMonData - mov r1, sp - strh r0, [r1] - movs r0, 0x8E - lsls r0, 2 - adds r4, r0 - ldr r0, [r6] - adds r0, r4 - movs r1, 0xC - mov r2, sp - bl SetMonData - adds r5, 0x1 - cmp r5, 0x5 - ble _08163BC4 - ldr r0, =sub_8163A8C - movs r1, 0x1 - bl CreateTask - movs r0, 0 - bl PlayNewMapMusic__default_for_battle - movs r0, 0xC - b _08163E10 - .pool -_08163C10: - bl ZeroEnemyPartyMons - movs r5, 0 - ldr r4, =gSaveBlock2Ptr -_08163C18: - movs r0, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2C - adds r2, r5, 0 - muls r2, r1 - movs r1, 0xC2 - lsls r1, 4 - adds r2, r1 - ldr r1, [r4] - adds r1, r2 - bl sub_806819C - adds r5, 0x1 - cmp r5, 0x2 - ble _08163C18 - ldr r1, =gBattleTypeFlags - ldr r0, =0x00000808 - str r0, [r1] - ldr r1, =gUnknown_02038BCA - movs r0, 0 - strh r0, [r1] - ldr r0, =sub_8163A8C - movs r1, 0x1 - bl CreateTask - movs r0, 0 - bl PlayNewMapMusic__default_for_battle - movs r0, 0xD - b _08163E10 - .pool -_08163C70: - ldr r4, =gBattleTypeFlags - ldr r0, =0x00010008 - str r0, [r4] - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1 - bne _08163C8A - ldr r0, [r4] - orrs r0, r1 - str r0, [r4] -_08163C8A: - ldr r0, =gUnknown_02038BCA - ldrh r1, [r0] - ldr r0, =0x000003fe - cmp r1, r0 - bne _08163C9A - movs r0, 0x2 - bl sub_8163048 -_08163C9A: - ldr r0, =sub_8163A8C - movs r1, 0x1 - bl CreateTask - movs r0, 0 - bl sub_806E694 - movs r0, 0x3 - b _08163E10 - .pool -_08163CC4: - ldr r4, =gBattleTypeFlags - ldr r0, =0x00020008 - str r0, [r4] - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1 - bne _08163CDE - ldr r0, [r4] - orrs r0, r1 - str r0, [r4] -_08163CDE: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000ca9 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x2 - beq _08163D0C - movs r0, 0x3 - bl sub_8163048 - b _08163D12 - .pool -_08163D0C: - movs r0, 0x3 - bl sub_81630A0 -_08163D12: - ldr r0, =sub_8163A8C - movs r1, 0x1 - bl CreateTask - movs r0, 0 - bl PlayNewMapMusic__default_for_battle - movs r0, 0x4 - b _08163E10 - .pool -_08163D28: - ldr r1, =gBattleTypeFlags - ldr r0, =0x00040008 - str r0, [r1] - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x2 - beq _08163D58 - movs r0, 0x3 - bl sub_8163048 - b _08163D5E - .pool -_08163D58: - movs r0, 0x3 - bl sub_81630A0 -_08163D5E: - ldr r0, =sub_8163A8C - movs r1, 0x1 - bl CreateTask - movs r0, 0 - bl PlayNewMapMusic__default_for_battle - movs r0, 0x5 - b _08163E10 - .pool -_08163D74: - ldr r4, =gBattleTypeFlags - ldr r0, =0x00080008 - str r0, [r4] - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1 - bne _08163D8E - ldr r0, [r4] - orrs r0, r1 - str r0, [r4] -_08163D8E: - bl sub_8163590 - ldr r0, =sub_8163A8C - movs r1, 0x1 - bl CreateTask - movs r0, 0 - bl PlayNewMapMusic__default_for_battle - movs r0, 0x6 - b _08163E10 - .pool -_08163DB4: - ldr r1, =gBattleTypeFlags - movs r0, 0x84 - lsls r0, 1 - str r0, [r1] - movs r0, 0x3 - bl sub_8163048 - b _08163E00 - .pool -_08163DC8: - ldr r1, =gBattleTypeFlags - ldr r0, =0x00200008 - str r0, [r1] - movs r0, 0x3 - bl sub_8163048 - ldr r0, =sub_8163A8C - movs r1, 0x1 - bl CreateTask - movs r0, 0 - bl PlayNewMapMusic__default_for_battle - movs r0, 0xA - b _08163E10 - .pool -_08163DF4: - ldr r1, =gBattleTypeFlags - ldr r0, =0x00008109 - str r0, [r1] - movs r0, 0x1 - bl sub_816306C -_08163E00: - ldr r0, =sub_8163A8C - movs r1, 0x1 - bl CreateTask - movs r0, 0 - bl PlayNewMapMusic__default_for_battle - movs r0, 0x7 -_08163E10: - bl sub_80B100C - lsls r0, 24 - lsrs r0, 24 - bl sub_8145EF4 - b _08163E68 - .pool -_08163E2C: - ldr r1, =gBattleTypeFlags - ldr r0, =0x00408049 - str r0, [r1] - ldr r5, =0x00000c03 - adds r0, r5, 0 - bl sub_8165404 - ldr r4, =gUnknown_02038BFC - movs r0, 0 - strb r0, [r4] - ldr r0, =gUnknown_08224158 - bl TrainerBattleConfigure - movs r0, 0x1 - strb r0, [r4] - ldr r0, =gUnknown_08224167 - bl TrainerBattleConfigure - ldr r0, =gUnknown_02038BCE - strh r5, [r0] - ldr r0, =sub_8163A8C - movs r1, 0x1 - bl CreateTask - movs r0, 0 - bl PlayNewMapMusic__default_for_battle - movs r0, 0x12 - bl sub_8145EF4 -_08163E68: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8163AC4 - - thumb_func_start sub_8163E90 -sub_8163E90: @ 8163E90 - push {r4-r6,lr} - ldr r6, =gSaveBlock2Ptr - ldr r0, [r6] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r5, [r0] - lsls r5, 30 - lsrs r5, 30 - ldr r0, =0x000040ce - bl VarGet - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8164FCC - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, [r6] - lsls r5, 1 - lsls r4, 2 - adds r5, r4 - movs r1, 0xCE - lsls r1, 4 - adds r0, r1 - adds r1, r0, r5 - ldrh r0, [r1] - cmp r0, r2 - bcs _08163ED0 - strh r2, [r1] -_08163ED0: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8163E90 - - thumb_func_start sub_8163EE4 -sub_8163EE4: @ 8163EE4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x0000064c - adds r5, r0, r1 - adds r0, r5, 0 - bl sub_8164FB8 - ldr r0, [r4] - ldr r2, =0x00000ca9 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 30 - lsrs r6, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, [r4] - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _08163F40 - ldr r4, =gUnknown_085DCEFA - 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 _08163F52 - .pool -_08163F40: - ldr r4, =gUnknown_085DCEDC - 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 -_08163F52: - bl __umodsi3 - adds r0, r4 - ldrb r0, [r0] - strb r6, [r5] - strb r0, [r5, 0x1] - adds r0, r5, 0 - adds r0, 0xC - ldr r4, =gSaveBlock2Ptr - ldr r1, [r4] - adds r1, 0xA - bl CopyUnalignedWord - adds r0, r5, 0x4 - ldr r1, [r4] - bl StringCopy7 - adds r0, r6, 0 - adds r1, r7, 0 - bl sub_8164FCC - strh r0, [r5, 0x2] - movs r4, 0 - movs r2, 0x10 - adds r2, r5 - mov r12, r2 - movs r7, 0x1C - adds r7, r5 - mov r9, r7 - adds r6, r5, 0 - adds r6, 0x28 - movs r0, 0xE4 - adds r0, r5 - mov r8, r0 -_08163F96: - lsls r2, r4, 1 - mov r1, r12 - adds r3, r1, r2 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r7, =0x00002bbc - adds r0, r1, r7 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r3] - mov r0, r9 - adds r3, r0, r2 - adds r7, 0xC - adds r0, r1, r7 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r3] - adds r3, r6, r2 - ldr r0, =0x00002bd4 - adds r1, r0 - adds r1, r2 - ldrh r0, [r1] - strh r0, [r3] - adds r4, 0x1 - cmp r4, 0x5 - ble _08163F96 - movs r4, 0 -_08163FCC: - ldr r6, =gSaveBlock2Ptr - ldr r0, [r6] - lsls r1, r4, 1 - ldr r2, =0x00000caa - adds r0, r2 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, 0 - beq _08163FF4 - adds r1, r0, 0 - movs r0, 0x64 - muls r0, r1 - ldr r1, =gUnknown_02024488 - adds r0, r1 - movs r1, 0x2C - muls r1, r4 - adds r1, 0x34 - adds r1, r5, r1 - bl sub_80686FC -_08163FF4: - adds r4, 0x1 - cmp r4, 0x3 - ble _08163FCC - ldr r0, =gGameLanguage - ldrb r0, [r0] - mov r7, r8 - strb r0, [r7] - ldr r0, [r6] - ldr r1, =0x0000064c - adds r0, r1 - bl sub_8164F70 - bl sub_8163E90 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8163EE4 - - thumb_func_start sub_8164040 -sub_8164040: @ 8164040 - push {r4,r5,lr} - ldr r5, =gSaveBlock2Ptr - ldr r0, [r5] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r4, [r0] - lsls r4, 30 - lsrs r4, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - ldr r5, [r5] - lsls r4, 1 - lsrs r0, 14 - adds r4, r0 - movs r2, 0xCE - lsls r2, 4 - adds r0, r5, r2 - adds r0, r4 - ldrh r0, [r0] - movs r1, 0x7 - bl __udivsi3 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0 - bne _0816408E - cmp r1, 0x1 - bgt _0816408A - ldr r1, =0x00000cb2 - adds r0, r5, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _0816408E -_0816408A: - bl sub_8163EE4 -_0816408E: - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =gSpecialVar_0x8005 - ldrh r1, [r1] - ldr r2, =0x00000ca8 - adds r0, r2 - strb r1, [r0] - movs r0, 0x80 - lsls r0, 7 - movs r1, 0 - bl VarSet - ldr r1, [r4] - ldr r0, =0x00000ca9 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - bl sub_81A4C30 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8164040 - - thumb_func_start nullsub_61 -nullsub_61: @ 81640D8 - bx lr - thumb_func_end nullsub_61 - - thumb_func_start nullsub_116 -nullsub_116: @ 81640DC - bx lr - thumb_func_end nullsub_116 - - thumb_func_start sub_81640E0 -sub_81640E0: @ 81640E0 - push {r4-r7,lr} - sub sp, 0xC - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - ldr r4, =gPlayerParty - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r7, r0, 16 - adds r4, 0x64 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - movs r6, 0 - movs r2, 0 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, =0xfffffe70 - adds r5, r0 - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r1, 0xE0 - adds r0, r1 - mov r3, sp -_08164122: - ldrh r1, [r0] - cmp r1, r7 - beq _08164130 - cmp r1, r4 - beq _08164130 - stm r3!, {r2} - adds r6, 0x1 -_08164130: - adds r0, 0xC - adds r2, 0x1 - cmp r2, 0x2 - ble _08164122 - bl Random - ldr r4, =gUnknown_03006298 - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - bl __modsi3 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - strh r0, [r4] -_08164150: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - bl __modsi3 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - strh r0, [r4, 0x2] - ldrh r1, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r1, r0 - beq _08164150 - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81640E0 - - thumb_func_start sub_8164188 -sub_8164188: @ 8164188 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - ldr r6, =gSaveBlock2Ptr - ldr r0, [r6] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - str r0, [sp, 0xC] - ldr r4, =gPlayerParty - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x10] - adds r4, 0x64 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x14] - movs r3, 0 - mov r8, r3 - movs r7, 0 - adds r2, r6, 0 - ldr r0, =0xfffffed4 - adds r5, r0 - ldr r6, =0x0000076c - mov r10, sp - movs r0, 0xEC - adds r1, r5, 0 - muls r1, r0 - mov r9, r1 -_081641E6: - ldr r1, [r2] - movs r0, 0x2C - muls r0, r7 - mov r3, r9 - adds r5, r0, r3 - adds r1, r5 - adds r0, r1, r6 - ldrh r0, [r0] - ldr r3, [sp, 0x10] - cmp r0, r3 - beq _0816423A - ldr r3, [sp, 0x14] - cmp r0, r3 - beq _0816423A - movs r0, 0xEF - lsls r0, 3 - adds r4, r1, r0 - ldr r1, [sp, 0xC] - lsls r0, r1, 24 - lsrs r0, 24 - str r2, [sp, 0x18] - bl sub_8165C90 - ldrb r1, [r4] - lsls r0, 24 - lsrs r0, 24 - ldr r2, [sp, 0x18] - cmp r1, r0 - bhi _0816423A - ldr r0, [r2] - adds r0, r5 - adds r0, r6 - ldrh r0, [r0] - cmp r0, 0 - beq _0816423A - mov r3, r10 - adds r3, 0x4 - mov r10, r3 - subs r3, 0x4 - stm r3!, {r7} - movs r0, 0x1 - add r8, r0 -_0816423A: - adds r7, 0x1 - cmp r7, 0x3 - ble _081641E6 - bl Random - ldr r4, =gUnknown_03006298 - lsls r0, 16 - lsrs r0, 16 - mov r1, r8 - bl __modsi3 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - strh r0, [r4, 0x4] -_08164258: - bl Random - lsls r0, 16 - lsrs r0, 16 - mov r1, r8 - bl __modsi3 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - strh r0, [r4, 0x6] - ldrh r1, [r4, 0x4] - lsls r0, 16 - lsrs r0, 16 - cmp r1, r0 - beq _08164258 - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8164188 - - thumb_func_start sub_81642A0 -sub_81642A0: @ 81642A0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0xC7 - lsls r1, 4 - adds r1, r0, r1 - str r1, [sp, 0x24] - ldr r5, =gSaveBlock2Ptr - ldr r0, [r5] - ldr r2, =0x00000ca9 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - str r0, [sp, 0x14] - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - ldr r1, [r5] - ldr r3, [sp, 0x14] - lsls r2, r3, 1 - lsrs r0, 14 - adds r2, r0 - movs r4, 0xCE - lsls r4, 4 - adds r1, r4 - adds r1, r2 - ldrh r0, [r1] - movs r1, 0x7 - bl __udivsi3 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x18] - ldr r4, =gPlayerParty - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - str r0, [sp, 0x1C] - adds r4, 0x64 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - str r0, [sp, 0x20] - bl sub_8165C40 - movs r7, 0 - ldr r0, [sp, 0x18] - lsls r0, 24 - mov r10, r0 -_08164318: - lsls r6, r7, 1 -_0816431A: - mov r1, r10 - lsrs r0, r1, 24 - movs r1, 0 - bl sub_8162548 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - movs r2, 0 - mov r9, r2 - cmp r9, r7 - bge _08164368 - ldr r0, [r5] - ldr r3, =0x00000cb4 - adds r1, r0, r3 - ldrh r0, [r1] - cmp r0, r8 - beq _08164368 - ldr r0, =gUnknown_0203BC88 - ldr r2, [r0] - movs r4, 0x34 - mov r0, r8 - muls r0, r4 - adds r0, r2 - ldrb r3, [r0] -_0816434C: - ldrh r0, [r1] - muls r0, r4 - adds r0, r2 - ldrb r0, [r0] - cmp r0, r3 - beq _08164368 - adds r1, 0x2 - movs r0, 0x1 - add r9, r0 - cmp r9, r7 - bge _08164368 - ldrh r0, [r1] - cmp r0, r8 - bne _0816434C -_08164368: - cmp r9, r7 - bne _0816431A - ldr r0, [r5] - ldr r1, =0x00000cb4 - adds r0, r1 - adds r0, r6 - mov r2, r8 - strh r2, [r0] - mov r7, r9 - adds r7, 0x1 - cmp r7, 0x5 - ble _08164318 - movs r3, 0x8 - mov r10, r3 - movs r4, 0 - mov r9, r4 - ldr r0, [sp, 0x24] - str r0, [sp, 0x40] -_0816438C: - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - mov r2, r9 - lsls r1, r2, 1 - ldr r3, =0x00000cb4 - adds r0, r3 - adds r0, r1 - ldrh r0, [r0] - mov r8, r0 - bl sub_81627A4 - ldr r4, [sp, 0x40] - strb r0, [r4, 0x19] - movs r7, 0 -_081643A8: - adds r0, r7, 0x1 - str r0, [sp, 0x30] - mov r1, r10 - lsls r1, 1 - str r1, [sp, 0x38] - mov r2, r10 - adds r2, 0x1 - str r2, [sp, 0x34] - mov r0, r10 - subs r0, 0x1 - lsls r0, 1 - str r0, [sp, 0x28] -_081643C0: - mov r0, r8 - bl sub_8163524 - lsls r0, 16 - lsrs r6, r0, 16 - movs r0, 0x1 - ands r0, r7 - cmp r0, 0 - beq _081643F4 - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - ldr r4, =0x00000cb4 - adds r0, r4 - ldr r1, [sp, 0x28] - adds r0, r1 - ldrh r2, [r0] - ldr r0, =gUnknown_0203BC8C - ldr r0, [r0] - lsls r2, 4 - adds r2, r0 - lsls r1, r6, 4 - adds r1, r0 - ldrb r0, [r2, 0xA] - ldrb r1, [r1, 0xA] - cmp r0, r1 - beq _081643C0 -_081643F4: - movs r5, 0x8 - cmp r5, r10 - bge _08164430 - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - ldr r1, =gUnknown_0203BC8C - ldr r3, [r1] - lsls r1, r6, 4 - adds r1, r3 - ldr r4, =0x00000cc4 - adds r2, r0, r4 - ldrh r0, [r1] - mov r12, r0 -_0816440E: - ldrh r0, [r2] - lsls r0, 4 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r12 - beq _08164430 - ldrh r0, [r1] - ldr r4, [sp, 0x1C] - cmp r4, r0 - beq _08164430 - ldr r4, [sp, 0x20] - cmp r4, r0 - beq _08164430 - adds r2, 0x2 - adds r5, 0x1 - cmp r5, r10 - blt _0816440E -_08164430: - cmp r5, r10 - bne _081643C0 - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldr r2, =0x00000cb4 - adds r0, r2 - ldr r3, [sp, 0x38] - adds r0, r3 - strh r6, [r0] - ldr r4, [sp, 0x34] - mov r10, r4 - ldr r7, [sp, 0x30] - cmp r7, 0x1 - ble _081643A8 - ldr r0, [sp, 0x40] - adds r0, 0x18 - str r0, [sp, 0x40] - movs r1, 0x1 - add r9, r1 - mov r2, r9 - cmp r2, 0x5 - ble _0816438C - movs r3, 0 - mov r10, r3 - bl sub_8165B20 - movs r4, 0 - mov r9, r4 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - movs r2, 0 - adds r6, r0, 0 - adds r6, 0xDC - mov r8, sp -_08164474: - ldrb r0, [r6] - lsls r4, r0, 25 - lsrs r0, r4, 30 - cmp r0, 0 - beq _081644E0 - ldr r1, =gUnknown_085DF9EC - ldrb r0, [r6, 0x1] - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x7 - str r2, [sp, 0x44] - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - ldr r2, [sp, 0x44] - ldr r1, [sp, 0x18] - cmp r0, r1 - bgt _081644E0 - lsrs r0, r4, 30 - subs r0, 0x1 - ldr r3, [sp, 0x14] - cmp r0, r3 - bne _081644E0 - movs r5, 0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xE0 - adds r1, r2, r0 - movs r7, 0x2 -_081644B0: - ldrh r0, [r1] - ldr r4, [sp, 0x1C] - cmp r4, r0 - beq _081644C0 - ldr r3, [sp, 0x20] - cmp r3, r0 - beq _081644C0 - adds r5, 0x1 -_081644C0: - adds r1, 0xC - subs r7, 0x1 - cmp r7, 0 - bge _081644B0 - cmp r5, 0x2 - ble _081644E0 - movs r0, 0xC8 - lsls r0, 1 - add r0, r9 - mov r4, r8 - adds r4, 0x4 - mov r8, r4 - subs r4, 0x4 - stm r4!, {r0} - movs r0, 0x1 - add r10, r0 -_081644E0: - adds r2, 0x44 - adds r6, 0x44 - movs r1, 0x1 - add r9, r1 - mov r3, r9 - cmp r3, 0x3 - ble _08164474 - mov r4, r10 - cmp r4, 0 - beq _08164532 - bl Random - ldr r6, =gSaveBlock2Ptr - ldr r4, [r6] - lsls r0, 16 - lsrs r0, 16 - mov r1, r10 - bl __modsi3 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - movs r5, 0xCC - lsls r5, 4 - adds r4, r5 - strh r0, [r4] - ldrh r0, [r4] - bl sub_81627A4 - ldr r1, [sp, 0x24] - adds r1, 0xA8 - strb r0, [r1, 0x1] - movs r0, 0xD8 - lsls r0, 2 - bl FlagReset - ldr r0, [r6] - adds r0, r5 - ldrh r0, [r0] - bl sub_81640E0 -_08164532: - movs r0, 0 - mov r10, r0 - mov r9, r0 - mov r1, sp - str r1, [sp, 0x3C] -_0816453C: - ldr r0, =gSaveBlock2Ptr - movs r2, 0xEC - mov r1, r9 - muls r1, r2 - movs r3, 0xE7 - lsls r3, 3 - adds r1, r3 - ldr r0, [r0] - movs r2, 0 - movs r3, 0 - movs r7, 0 - mov r4, r9 - adds r4, 0x1 - str r4, [sp, 0x2C] - adds r1, r0, r1 -_0816455A: - ldm r1!, {r0} - orrs r2, r0 - adds r3, r0 - adds r7, 0x1 - cmp r7, 0x39 - bls _0816455A - ldr r0, =gSaveBlock2Ptr - ldr r5, [r0] - movs r1, 0xEC - mov r6, r9 - muls r6, r1 - adds r4, r5, r6 - ldr r1, =0x0000073a - adds r0, r4, r1 - ldrh r0, [r0] - movs r1, 0x7 - str r2, [sp, 0x44] - str r3, [sp, 0x48] - bl __udivsi3 - lsls r0, 16 - lsrs r0, 16 - ldr r2, [sp, 0x44] - ldr r3, [sp, 0x48] - ldr r1, [sp, 0x18] - cmp r0, r1 - bgt _08164656 - movs r1, 0xE7 - lsls r1, 3 - adds r0, r4, r1 - ldrb r0, [r0] - ldr r4, [sp, 0x14] - cmp r0, r4 - bne _08164656 - cmp r2, 0 - beq _08164656 - adds r1, 0xE8 - adds r0, r5, r1 - adds r0, r6 - ldr r0, [r0] - cmp r0, r3 - bne _08164656 - movs r5, 0 - movs r7, 0 - ldr r2, =gSaveBlock2Ptr - mov r8, r2 - ldr r3, =0x0000076c -_081645B8: - mov r4, r8 - ldr r2, [r4] - movs r0, 0x2C - adds r1, r7, 0 - muls r1, r0 - movs r4, 0xEC - mov r0, r9 - muls r0, r4 - adds r6, r1, r0 - adds r2, r6 - adds r0, r2, r3 - ldrh r0, [r0] - ldr r1, [sp, 0x1C] - cmp r1, r0 - beq _0816463C - ldr r4, [sp, 0x20] - cmp r4, r0 - beq _0816463C - movs r0, 0xEF - lsls r0, 3 - adds r4, r2, r0 - ldr r1, [sp, 0x14] - lsls r0, r1, 24 - lsrs r0, 24 - str r3, [sp, 0x48] - bl sub_8165C90 - ldrb r1, [r4] - lsls r0, 24 - lsrs r0, 24 - ldr r3, [sp, 0x48] - cmp r1, r0 - bhi _0816463C - mov r2, r8 - ldr r0, [r2] - adds r0, r6 - adds r0, r3 - ldrh r0, [r0] - cmp r0, 0 - b _08164638 - .pool -_08164638: - beq _0816463C - adds r5, 0x1 -_0816463C: - adds r7, 0x1 - cmp r7, 0x3 - ble _081645B8 - cmp r5, 0x1 - ble _08164656 - movs r0, 0x96 - lsls r0, 1 - add r0, r9 - ldr r3, [sp, 0x3C] - stm r3!, {r0} - str r3, [sp, 0x3C] - movs r4, 0x1 - add r10, r4 -_08164656: - ldr r0, [sp, 0x2C] - mov r9, r0 - cmp r0, 0x4 - bgt _08164660 - b _0816453C -_08164660: - mov r1, r10 - cmp r1, 0 - beq _081646A0 - bl Random - ldr r6, =gSaveBlock2Ptr - ldr r4, [r6] - lsls r0, 16 - lsrs r0, 16 - mov r1, r10 - bl __modsi3 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r5, =0x00000cc2 - adds r4, r5 - strh r0, [r4] - ldrh r0, [r4] - bl sub_81627A4 - ldr r1, [sp, 0x24] - adds r1, 0xC0 - strb r0, [r1, 0x1] - ldr r0, =0x00000361 - bl FlagReset - ldr r0, [r6] - adds r0, r5 - ldrh r0, [r0] - bl sub_8164188 -_081646A0: - add sp, 0x4C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81642A0 - - thumb_func_start sub_81646BC -sub_81646BC: @ 81646BC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - movs r0, 0 - mov r9, r0 - mov r10, r0 - bl sub_8165C40 - movs r0, 0xFA - lsls r0, 1 - cmp r5, r0 - beq _081647CE - subs r0, 0xC9 - cmp r5, r0 - bhi _081646FC - ldr r0, =gUnknown_0203BC8C - ldr r1, [r0] - lsls r0, r4, 4 - adds r0, r1 - ldrh r1, [r0, 0x2] - mov r9, r1 - ldrh r0, [r0] - mov r10, r0 - b _081647CE - .pool -_081646FC: - ldr r0, =0x0000018f - cmp r5, r0 - bhi _08164750 - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldr r1, =gUnknown_03006298 - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - adds r0, 0x1 - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x2C - muls r1, r0 - ldr r0, =0xfffffed4 - adds r2, r5, r0 - movs r0, 0xEC - muls r0, r2 - adds r1, r0 - adds r3, r1 - movs r1, 0xEE - lsls r1, 3 - adds r0, r3, r1 - ldrh r0, [r0] - mov r9, r0 - ldr r2, =0x0000076c - adds r3, r2 - ldrh r3, [r3] - mov r10, r3 - b _081647CE - .pool -_08164750: - ldr r4, =gSaveBlock2Ptr - ldr r3, [r4] - ldr r1, =gUnknown_03006298 - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - subs r0, 0x1 - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r2, =0xfffffe70 - adds r1, r5, r2 - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r0, r2 - adds r3, r0 - adds r0, r3, 0 - adds r0, 0xE2 - ldrh r0, [r0] - mov r9, r0 - adds r3, 0xE0 - ldrh r3, [r3] - mov r10, r3 - movs r3, 0 - ldr r7, =gStringVar3 - mov r8, r7 - adds r0, r4, 0 - mov r12, r0 - adds r4, r2, 0 - movs r6, 0x8A - lsls r6, 1 -_08164794: - mov r1, r8 - adds r2, r3, r1 - mov r1, r12 - ldr r0, [r1] - adds r1, r3, r4 - adds r0, r6 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - adds r3, 0x1 - cmp r3, 0x6 - ble _08164794 - adds r1, r3, r7 - movs r0, 0xFF - strb r0, [r1] - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, =0xfffffe70 - adds r1, r5, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r1, =0x0000011b - adds r0, r2, r1 - ldrb r1, [r0] - adds r0, r7, 0 - bl ConvertInternationalString -_081647CE: - ldr r0, =gStringVar1 - movs r1, 0xD - mov r2, r9 - muls r2, r1 - adds r1, r2, 0 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar2 - movs r1, 0xB - mov r2, r10 - muls r2, r1 - adds r1, r2, 0 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81646BC - - thumb_func_start sub_8164828 -sub_8164828: @ 8164828 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - bl sub_8165C40 - bl sub_81A39C4 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x7 - bl __udivsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, =gScriptLastTalked - ldrh r0, [r0] - subs r5, r0, 0x2 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r5, 1 - ldr r2, =0x00000cb4 - adds r0, r2 - adds r0, r1 - ldrh r7, [r0] - movs r3, 0 - str r3, [sp] - ldr r4, =gUnknown_085DD500 - lsls r6, r7, 16 - b _08164884 - .pool -_0816487C: - adds r4, 0x8 - ldr r0, [sp] - adds r0, 0x1 - str r0, [sp] -_08164884: - ldr r1, [sp] - cmp r1, 0x31 - bhi _0816489A - lsrs r0, r6, 16 - bl sub_8162D34 - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r4] - cmp r1, r0 - bne _0816487C -_0816489A: - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0x4 - bls _081648A4 - b _08164AC2 -_081648A4: - lsls r0, 2 - ldr r1, =_081648B8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081648B8: - .4byte _081648CC - .4byte _08164984 - .4byte _0816499C - .4byte _081649BC - .4byte _08164AC2 -_081648CC: - movs r0, 0xFA - lsls r0, 1 - cmp r7, r0 - bne _081648D6 - b _08164B54 -_081648D6: - subs r0, 0xC9 - cmp r7, r0 - ble _081648E2 - ldr r0, =0x0000018f - cmp r7, r0 - bgt _081648F4 -_081648E2: - ldr r0, =gStringVar1 - adds r1, r7, 0 - bl sub_8162E20 - b _08164AC2 - .pool -_081648F4: - movs r3, 0 - lsls r2, r7, 16 - mov r10, r2 - ldr r6, =gStringVar1 - mov r9, r6 - ldr r4, =gSaveBlock2Ptr - mov r8, r4 - ldr r5, =0xfffffe70 - adds r1, r7, r5 - lsls r0, r1, 4 - adds r0, r1 - lsls r4, r0, 2 - movs r5, 0x8A - lsls r5, 1 -_08164910: - mov r0, r9 - adds r2, r3, r0 - mov r1, r8 - ldr r0, [r1] - adds r1, r3, r4 - adds r0, r5 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - adds r3, 0x1 - cmp r3, 0x6 - ble _08164910 - adds r1, r3, r6 - movs r0, 0xFF - strb r0, [r1] - ldr r2, =gSaveBlock2Ptr - ldr r1, [r2] - ldr r3, =0xfffffe70 - adds r0, r7, r3 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r1, r4 - ldr r5, =0x0000011b - adds r0, r1, r5 - ldrb r1, [r0] - adds r0, r6, 0 - bl ConvertInternationalString - ldr r0, =gStringVar2 - ldr r2, =gSaveBlock2Ptr - ldr r1, [r2] - adds r1, r4 - adds r1, 0xDE - ldrb r1, [r1] - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, =gStringVar3 - mov r3, r10 - lsrs r1, r3, 16 - bl sub_8162E20 - b _08164AC2 - .pool -_08164984: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - lsls r0, r5, 2 - adds r1, r0 - ldr r4, =0x00000cc4 - adds r1, r4 - b _081649A8 - .pool -_0816499C: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - lsls r0, r5, 2 - adds r1, r0 - ldr r5, =0x00000cc6 - adds r1, r5 -_081649A8: - adds r0, r7, 0 - ldrh r1, [r1] - bl sub_81646BC - b _08164AC2 - .pool -_081649BC: - ldr r0, =gUnknown_02038BCE - strh r7, [r0] - ldr r0, =0x0000012b - cmp r7, r0 - bgt _08164A08 - ldr r0, =gSaveBlock2Ptr - ldr r4, [r0] - lsls r1, r5, 1 - adds r0, r1, 0 - adds r0, 0x8 - lsls r0, 1 - ldr r3, =0x00000cb4 - adds r2, r4, r3 - adds r0, r2, r0 - ldrh r3, [r0] - ldr r5, =0x00000cd8 - adds r0, r4, r5 - strh r3, [r0] - adds r1, 0x9 - lsls r1, 1 - adds r2, r1 - ldrh r0, [r2] - ldr r1, =0x00000cda - adds r4, r1 - strh r0, [r4] - b _08164A46 - .pool -_08164A08: - ldr r0, =0x0000018f - cmp r7, r0 - bgt _08164A30 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r3, =gUnknown_03006298 - ldrh r2, [r3, 0x4] - ldr r4, =0x00000cd8 - adds r0, r1, r4 - strh r2, [r0] - ldrh r0, [r3, 0x6] - b _08164A40 - .pool -_08164A30: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r3, =gUnknown_03006298 - ldrh r2, [r3] - ldr r4, =0x00000cd8 - adds r0, r1, r4 - strh r2, [r0] - ldrh r0, [r3, 0x2] -_08164A40: - ldr r5, =0x00000cda - adds r1, r5 - strh r0, [r1] -_08164A46: - movs r5, 0 - mov r0, r8 - lsls r0, 24 - str r0, [sp, 0x4] -_08164A4E: - lsls r1, r5, 1 - mov r10, r1 - adds r2, r5, 0x1 - mov r9, r2 - lsrs r0, r5, 31 - adds r0, r5, r0 - asrs r0, 1 - lsls r0, 24 - mov r8, r0 -_08164A60: - ldr r3, [sp, 0x4] - lsrs r0, r3, 24 - mov r4, r8 - lsrs r1, r4, 24 - bl sub_8162548 - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, =gUnknown_02038BCE - ldrh r0, [r0] - cmp r0, r3 - beq _08164A60 - movs r2, 0 - cmp r2, r5 - bge _08164AA2 - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldr r4, =0x00000cb4 - adds r0, r4 - ldrh r0, [r0] - cmp r0, r3 - beq _08164AA2 - adds r6, r1, 0 -_08164A8E: - adds r2, 0x1 - cmp r2, r5 - bge _08164AA2 - ldr r0, [r6] - lsls r1, r2, 1 - adds r0, r4 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r3 - bne _08164A8E -_08164AA2: - cmp r2, r5 - bne _08164A60 - ldr r5, =gSaveBlock2Ptr - ldr r0, [r5] - ldr r1, =0x00000cb4 - adds r0, r1 - add r0, r10 - strh r3, [r0] - mov r5, r9 - cmp r5, 0xD - ble _08164A4E - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - ldr r3, =0x00000cd6 - adds r0, r3 - strh r7, [r0] -_08164AC2: - movs r0, 0xFA - lsls r0, 1 - cmp r7, r0 - beq _08164B54 - subs r0, 0xC9 - cmp r7, r0 - bgt _08164AF8 - ldr r0, =gUnknown_085DD500 - ldr r4, [sp] - lsls r1, r4, 3 - b _08164B04 - .pool -_08164AF8: - ldr r0, =0x0000018f - cmp r7, r0 - bgt _08164B28 - ldr r0, =gUnknown_085DD500 - ldr r5, [sp] - lsls r1, r5, 3 -_08164B04: - adds r0, 0x4 - adds r1, r0 - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl box_related_two__2 - b _08164B54 - .pool -_08164B28: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r0, =0xfffffe70 - adds r2, r7, r0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - adds r1, 0xDC - ldrb r0, [r1] - lsls r0, 27 - ldr r1, =gUnknown_085DD690 - lsrs r0, 25 - adds r0, r1 - ldr r1, =gSpecialVar_0x8005 - ldrh r1, [r1] - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 -_08164B54: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8164828 - - thumb_func_start sub_8164B74 -sub_8164B74: @ 8164B74 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r7, r0, 30 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, [r4] - ldr r2, =0x00000cb2 - adds r0, r2 - ldrh r6, [r0] - bl link_get_multiplayer_id - ldr r0, =gScriptResult - ldrh r0, [r0] - cmp r0, 0x6 - bls _08164BAC - b _08164DB6 -_08164BAC: - lsls r0, 2 - ldr r1, =_08164BD0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08164BD0: - .4byte _08164BEC - .4byte _08164C3C - .4byte _08164CE0 - .4byte _08164D14 - .4byte _08164D98 - .4byte _08164DA8 - .4byte _08164DB6 -_08164BEC: - cmp r5, 0x3 - beq _08164BF2 - b _08164DB0 -_08164BF2: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r7, 1 - adds r0, r1 - ldr r3, =0x00000cec - adds r0, r3 - ldrh r0, [r0] - movs r1, 0x7 - bl __udivsi3 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp] - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - bne _08164C18 - b _08164DB6 -_08164C18: - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - movs r2, 0x4 - bl link_0800A448 - ldr r1, =gScriptResult - movs r0, 0x1 - b _08164DB4 - .pool -_08164C3C: - bl sub_800A550 - movs r1, 0x3 - ands r1, r0 - cmp r1, 0x3 - beq _08164C4A - b _08164DB6 -_08164C4A: - bl sub_800A5B4 - ldr r1, =gUnknown_020223C4 - movs r0, 0x80 - lsls r0, 1 - adds r2, r1, r0 - ldrh r0, [r1] - ldrh r3, [r2] - cmp r0, r3 - bhi _08164C60 - ldrh r0, [r2] -_08164C60: - str r0, [sp] - movs r4, 0 - ldr r0, =gSaveBlock2Ptr - mov r9, r0 -_08164C68: - adds r1, r4, 0x1 - mov r8, r1 - lsrs r0, r4, 31 - adds r0, r4, r0 - asrs r0, 1 - lsls r7, r0, 24 -_08164C74: - ldr r0, [sp] - lsls r0, 24 - lsrs r0, 24 - lsrs r1, r7, 24 - bl sub_8162548 - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - cmp r2, r4 - bge _08164CB0 - mov r1, r9 - ldr r0, [r1] - ldr r1, =0x00000cb4 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r3 - beq _08164CB0 - ldr r6, =gSaveBlock2Ptr - adds r5, r1, 0 -_08164C9C: - adds r2, 0x1 - cmp r2, r4 - bge _08164CB0 - ldr r0, [r6] - lsls r1, r2, 1 - adds r0, r5 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r3 - bne _08164C9C -_08164CB0: - cmp r4, r2 - bne _08164C74 - mov r2, r9 - ldr r0, [r2] - lsls r1, r4, 1 - ldr r2, =0x00000cb4 - adds r0, r2 - adds r0, r1 - strh r3, [r0] - mov r4, r8 - cmp r4, 0xD - ble _08164C68 - ldr r1, =gScriptResult - movs r0, 0x2 - b _08164DB4 - .pool -_08164CE0: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - beq _08164DB6 - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - ldr r3, =0x00000cb4 - adds r1, r3 - movs r2, 0x28 - bl link_0800A448 - ldr r1, =gScriptResult - movs r0, 0x3 - b _08164DB4 - .pool -_08164D14: - bl sub_800A550 - movs r1, 0x3 - ands r1, r0 - cmp r1, 0x3 - bne _08164DB6 - bl sub_800A5B4 - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r5, =0x00000cb4 - adds r0, r5 - ldr r1, =gUnknown_020223C4 - movs r2, 0x28 - bl memcpy - ldr r2, =gUnknown_02038BCA - ldr r1, [r4] - lsls r0, r6, 2 - adds r1, r5 - adds r0, r1, r0 - ldrh r0, [r0] - strh r0, [r2] - ldr r4, =gUnknown_02038BCC - lsls r0, r6, 1 - adds r0, 0x1 - lsls r0, 1 - adds r1, r0 - ldrh r0, [r1] - strh r0, [r4] - ldrh r0, [r2] - movs r1, 0 - bl sub_8162614 - ldrh r0, [r4] - movs r1, 0x1 - bl sub_8162614 - ldr r0, =gUnknown_03003124 - ldrb r0, [r0] - cmp r0, 0 - beq _08164DB0 - ldr r0, =gLinkVSyncDisabled - ldrb r0, [r0] - cmp r0, 0 - bne _08164DB0 - ldr r1, =gScriptResult - movs r0, 0x4 - b _08164DB4 - .pool -_08164D98: - bl sub_800AC34 - ldr r1, =gScriptResult - movs r0, 0x5 - b _08164DB4 - .pool -_08164DA8: - ldr r0, =gUnknown_03003124 - ldrb r0, [r0] - cmp r0, 0 - bne _08164DB6 -_08164DB0: - ldr r1, =gScriptResult - movs r0, 0x6 -_08164DB4: - strh r0, [r1] -_08164DB6: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8164B74 - - thumb_func_start sub_8164DCC -sub_8164DCC: @ 8164DCC - push {lr} - ldr r0, =gLinkVSyncDisabled - ldrb r0, [r0] - cmp r0, 0 - beq _08164DDA - bl sub_800AC34 -_08164DDA: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8164DCC - - thumb_func_start sub_8164DE4 -sub_8164DE4: @ 8164DE4 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000cd6 - adds r0, r1 - ldrh r0, [r0] - movs r1, 0xF - bl sub_8162614 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8164DE4 - - thumb_func_start sub_8164E04 -sub_8164E04: @ 8164E04 - push {r4-r6,lr} - sub sp, 0x20 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - cmp r0, 0 - bne _08164E9A - ldr r5, =gUnknown_02038BCA - ldrh r1, [r5] - mov r0, sp - bl sub_8162E20 - mov r0, sp - bl StripExtCtrlCodes - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - ldr r1, =0x00000bd8 - adds r0, r1 - mov r1, sp - bl StringCopy - ldr r0, [r4] - ldr r2, =0x00000beb - adds r0, r2 - ldrh r1, [r5] - bl sub_8165B88 - ldr r6, =gBattlePartyID - ldrh r0, [r6, 0x2] - movs r5, 0x64 - muls r0, r5 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - ldr r1, [r4] - ldr r2, =0x00000bd6 - adds r1, r2 - strh r0, [r1] - ldrh r0, [r6] - muls r0, r5 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - ldr r1, [r4] - ldr r2, =0x00000bd4 - adds r1, r2 - strh r0, [r1] - movs r2, 0 - movs r5, 0xBE - lsls r5, 4 - ldr r3, =gUnknown_020240B4 - adds r6, r4, 0 -_08164E7C: - ldr r0, [r4] - adds r0, r5 - adds r0, r2 - adds r1, r2, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0xA - ble _08164E7C - ldr r0, [r6] - ldr r1, =gBattleOutcome - ldrb r1, [r1] - ldr r2, =0x00000d06 - adds r0, r2 - strb r1, [r0] -_08164E9A: - add sp, 0x20 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8164E04 - - thumb_func_start sub_8164ED8 -sub_8164ED8: @ 8164ED8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - movs r3, 0 - movs r2, 0 - ldr r4, =0x0000064c - adds r1, r0, r4 -_08164EEA: - ldm r1!, {r0} - adds r3, r0 - adds r2, 0x1 - cmp r2, 0x39 - bls _08164EEA - ldr r5, =gSaveBlock2Ptr - ldr r1, [r5] - ldr r2, =0x00000734 - adds r0, r1, r2 - ldr r0, [r0] - cmp r0, r3 - beq _08164F0A - ldr r3, =0x0000064c - adds r0, r1, r3 - bl sub_8164FB8 -_08164F0A: - movs r4, 0 - adds r7, r5, 0 - movs r6, 0xEC - mov r8, r7 -_08164F12: - adds r0, r4, 0 - muls r0, r6 - movs r1, 0xE7 - lsls r1, 3 - adds r0, r1 - ldr r1, [r7] - movs r3, 0 - movs r2, 0 - adds r5, r4, 0x1 - adds r1, r0 -_08164F26: - ldm r1!, {r0} - adds r3, r0 - adds r2, 0x1 - cmp r2, 0x39 - bls _08164F26 - mov r0, r8 - ldr r2, [r0] - adds r1, r4, 0 - muls r1, r6 - movs r4, 0x82 - lsls r4, 4 - adds r0, r2, r4 - adds r0, r1 - ldr r0, [r0] - cmp r0, r3 - beq _08164F52 - movs r3, 0xE7 - lsls r3, 3 - adds r0, r1, r3 - adds r0, r2, r0 - bl sub_8164FB8 -_08164F52: - adds r4, r5, 0 - cmp r4, 0x4 - ble _08164F12 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8164ED8 - - thumb_func_start sub_8164F70 -sub_8164F70: @ 8164F70 - push {r4,lr} - adds r2, r0, 0 - adds r2, 0xE8 - movs r1, 0 - str r1, [r2] - movs r3, 0 - adds r4, r0, 0 -_08164F7E: - ldr r0, [r2] - ldm r4!, {r1} - adds r0, r1 - str r0, [r2] - adds r3, 0x1 - cmp r3, 0x39 - bls _08164F7E - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8164F70 - - thumb_func_start sub_8164F94 -sub_8164F94: @ 8164F94 - push {r4,lr} - adds r2, r0, 0 - adds r2, 0xA0 - movs r1, 0 - str r1, [r2] - movs r3, 0 - adds r4, r0, 0 -_08164FA2: - ldr r0, [r2] - ldm r4!, {r1} - adds r0, r1 - str r0, [r2] - adds r3, 0x1 - cmp r3, 0x27 - bls _08164FA2 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8164F94 - - thumb_func_start sub_8164FB8 -sub_8164FB8: @ 8164FB8 - push {lr} - movs r1, 0 - movs r2, 0 -_08164FBE: - stm r0!, {r2} - adds r1, 0x1 - cmp r1, 0x3A - bls _08164FBE - pop {r0} - bx r0 - thumb_func_end sub_8164FB8 - - thumb_func_start sub_8164FCC -sub_8164FCC: @ 8164FCC - push {lr} - lsls r0, 24 - lsls r1, 24 - ldr r2, =gSaveBlock2Ptr - ldr r2, [r2] - lsrs r0, 23 - lsrs r1, 22 - adds r0, r1 - movs r1, 0xCE - lsls r1, 4 - adds r2, r1 - adds r2, r0 - ldrh r0, [r2] - ldr r1, =0x0000270f - cmp r0, r1 - bls _08164FEE - adds r0, r1, 0 -_08164FEE: - pop {r1} - bx r1 - .pool - thumb_func_end sub_8164FCC - - thumb_func_start sub_8164FFC -sub_8164FFC: @ 8164FFC - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gUnknown_085DFA42 - mov r0, sp - movs r2, 0x4 - bl memcpy - cmp r4, 0x3 - bls _0816501C - movs r0, 0x3 - b _08165022 - .pool -_0816501C: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] -_08165022: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8164FFC - - thumb_func_start sub_816502C -sub_816502C: @ 816502C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - adds r5, r0, 0 - ldr r0, =0x000040ce - bl VarGet - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - bl sub_8164FFC - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r2, 0x44 - mov r10, r2 - cmp r5, 0 - beq _0816506A - movs r0, 0x45 - mov r10, r0 -_0816506A: - ldr r1, =gScriptResult - mov r9, r1 - movs r0, 0 - strh r0, [r1] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8164FCC - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x37 - bls _081650DC - movs r6, 0 - cmp r6, r8 - bge _081650DC - ldr r7, =gSaveBlock1Ptr - mov r5, sp -_0816508C: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - lsls r1, r6, 1 - ldr r2, =0x00000caa - adds r0, r2 - adds r0, r1 - ldrh r1, [r0] - subs r1, 0x1 - movs r0, 0 - strb r1, [r5] - strb r0, [r5, 0x1] - movs r0, 0x64 - muls r0, r1 - movs r1, 0x8E - lsls r1, 2 - adds r4, r0, r1 - ldr r0, [r7] - adds r0, r4 - mov r1, r10 - bl GetMonData - cmp r0, 0 - bne _081650D4 - movs r0, 0x1 - mov r2, r9 - strh r0, [r2] - ldr r0, [r7] - adds r0, r4 - mov r1, r10 - bl SetMonData - ldr r0, [r7] - adds r0, r4 - bl sub_80EE5A4 - strb r0, [r5, 0x1] -_081650D4: - adds r5, 0x4 - adds r6, 0x1 - cmp r6, r8 - blt _0816508C -_081650DC: - ldr r0, =gScriptResult - ldrh r0, [r0] - cmp r0, 0 - beq _08165132 - movs r0, 0x2A - bl IncrementGameStat - mov r0, r8 - cmp r0, 0x1 - ble _08165110 - mov r3, sp - add r2, sp, 0x4 - mov r6, r8 - subs r6, 0x1 -_081650F8: - ldrb r1, [r3, 0x1] - ldrb r0, [r2, 0x1] - cmp r0, r1 - bls _08165108 - ldr r1, [sp] - ldr r0, [r2] - str r0, [sp] - str r1, [r2] -_08165108: - adds r2, 0x4 - subs r6, 0x1 - cmp r6, 0 - bne _081650F8 -_08165110: - mov r0, sp - ldrb r0, [r0, 0x1] - cmp r0, 0x4 - bls _08165132 - ldr r2, =gSaveBlock1Ptr - mov r0, sp - ldrb r1, [r0] - movs r0, 0x64 - muls r1, r0 - movs r0, 0x8E - lsls r0, 2 - adds r1, r0 - ldr r0, [r2] - adds r0, r1 - mov r1, r10 - bl sub_80EE4DC -_08165132: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816502C - - thumb_func_start sub_816515C -sub_816515C: @ 816515C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r1, =gSaveBlock2Ptr - ldr r2, [r1] - ldr r0, =0x00000bec - adds r7, r2, r0 - ldrb r0, [r2, 0x8] - adds r5, r1, 0 - cmp r0, 0 - beq _08165194 - ldr r4, =gUnknown_085DCEFA - 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 _081651A6 - .pool -_08165194: - ldr r4, =gUnknown_085DCEDC - 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 -_081651A6: - bl __umodsi3 - adds r0, r4 - ldrb r0, [r0] - strb r0, [r7, 0x1] - adds r0, r7, 0 - adds r0, 0xC - ldr r1, [r5] - adds r1, 0xA - bl CopyUnalignedWord - adds r0, r7, 0x4 - ldr r1, [r5] - bl StringCopy7 - movs r0, 0x1 - strh r0, [r7, 0x2] - movs r6, 0x7 - movs r4, 0 - ldr r0, =gSaveBlock1Ptr - mov r8, r0 - adds r5, r7, 0 - adds r5, 0x10 - ldr r1, =0x00002bbc - mov r12, r1 - adds r3, r7, 0 - adds r3, 0x28 - adds r2, r7, 0 - adds r2, 0x1C -_081651E0: - lsls r0, r4, 1 - mov r9, r0 - mov r1, r8 - ldr r0, [r1] - add r0, r12 - add r0, r9 - ldrh r0, [r0] - strh r0, [r5] - strh r6, [r2] - adds r0, r6, 0x6 - strh r0, [r3] - adds r6, 0x1 - adds r5, 0x2 - adds r3, 0x2 - adds r2, 0x2 - adds r4, 0x1 - cmp r4, 0x5 - ble _081651E0 - movs r4, 0 -_08165206: - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2C - muls r1, r4 - adds r1, 0x34 - adds r1, r7, r1 - bl sub_80686FC - adds r4, 0x1 - cmp r4, 0x2 - ble _08165206 - adds r0, r7, 0 - bl sub_8165328 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816515C - - thumb_func_start sub_8165244 -sub_8165244: @ 8165244 - ldr r1, =gTrainerPicIndices - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000bed - adds r0, r2 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_8165244 - - thumb_func_start sub_8165264 -sub_8165264: @ 8165264 - ldr r1, =gTrainerClassNameIndices - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000bed - adds r0, r2 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_8165264 - - thumb_func_start sub_8165284 -sub_8165284: @ 8165284 - push {r4,lr} - adds r3, r0, 0 - movs r2, 0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - movs r1, 0xBF - lsls r1, 4 - adds r4, r0, r1 -_08165294: - adds r0, r3, r2 - adds r1, r4, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x4 - ble _08165294 - adds r1, r3, r2 - movs r0, 0xFF - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8165284 - - thumb_func_start sub_81652B4 -sub_81652B4: @ 81652B4 - push {r4-r6,lr} - ldr r2, =gScriptResult - movs r0, 0 - strh r0, [r2] - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldr r3, =0x00000bec - adds r5, r0, r3 - movs r4, 0 - movs r3, 0 - adds r6, r1, 0 - adds r1, r5, 0 -_081652CC: - ldm r1!, {r0} - orrs r4, r0 - adds r3, 0x1 - cmp r3, 0x2D - bls _081652CC - cmp r4, 0 - bne _081652EC - movs r0, 0x1 - strh r0, [r2] - b _08165316 - .pool -_081652EC: - movs r4, 0 - movs r3, 0 - adds r2, r5, 0 -_081652F2: - ldm r2!, {r0} - adds r4, r0 - adds r3, 0x1 - cmp r3, 0x2D - bls _081652F2 - ldr r1, [r6] - ldr r2, =0x00000ca4 - adds r0, r1, r2 - ldr r0, [r0] - cmp r0, r4 - beq _08165316 - ldr r3, =0x00000bec - adds r0, r1, r3 - bl sub_816534C - ldr r1, =gScriptResult - movs r0, 0x1 - strh r0, [r1] -_08165316: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81652B4 - - thumb_func_start sub_8165328 -sub_8165328: @ 8165328 - push {r4,lr} - adds r2, r0, 0 - adds r2, 0xB8 - movs r1, 0 - str r1, [r2] - movs r3, 0 - adds r4, r0, 0 -_08165336: - ldr r0, [r2] - ldm r4!, {r1} - adds r0, r1 - str r0, [r2] - adds r3, 0x1 - cmp r3, 0x2D - bls _08165336 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8165328 - - thumb_func_start sub_816534C -sub_816534C: @ 816534C - push {lr} - movs r1, 0 - movs r2, 0 -_08165352: - stm r0!, {r2} - adds r1, 0x1 - cmp r1, 0x2E - bls _08165352 - pop {r0} - bx r0 - thumb_func_end sub_816534C - - thumb_func_start sub_8165360 -sub_8165360: @ 8165360 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000bfc - adds r0, r1 - bl ConvertBattleFrontierTrainerSpeechToString - pop {r0} - bx r0 - .pool - thumb_func_end sub_8165360 - - thumb_func_start sub_816537C -sub_816537C: @ 816537C - push {lr} - ldr r0, =gBattleOutcome - ldrb r0, [r0] - cmp r0, 0x3 - bne _08165398 - ldr r1, =gStringVar4 - movs r0, 0xFF - strb r0, [r1] - b _081653C0 - .pool -_08165398: - cmp r0, 0x1 - bne _081653B4 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000c14 - adds r0, r1 - bl ConvertBattleFrontierTrainerSpeechToString - b _081653C0 - .pool -_081653B4: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000c08 - adds r0, r1 - bl ConvertBattleFrontierTrainerSpeechToString -_081653C0: - pop {r0} - bx r0 - .pool - thumb_func_end sub_816537C - - thumb_func_start sub_81653CC -sub_81653CC: @ 81653CC - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca8 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081653E0 - bl sub_80F01B8 -_081653E0: - movs r0, 0x77 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081653F8 - bl sub_80F01B8 - movs r0, 0x77 - bl FlagReset -_081653F8: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81653CC - - thumb_func_start sub_8165404 -sub_8165404: @ 8165404 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x70 - lsls r0, 16 - lsrs r7, r0, 16 - bl sub_8165C40 - ldr r0, =0x00000c03 - cmp r7, r0 - beq _08165420 - b _0816554C -_08165420: - movs r0, 0 - mov r10, r0 - mov r1, sp - adds r1, 0x44 - str r1, [sp, 0x64] -_0816542A: - mov r2, r10 - lsls r2, 2 - mov r9, r2 - mov r3, r10 - adds r3, 0x1 - str r3, [sp, 0x60] - mov r0, r9 - add r0, r10 - lsls r0, 2 - ldr r6, =gUnknown_085DD6D0 - adds r5, r0, r6 -_08165440: - bl Random - adds r4, r0, 0 - bl Random - lsls r4, 16 - lsrs r4, 16 - lsls r0, 16 - orrs r4, r0 - str r4, [sp, 0x44] - ldr r0, =0x0000ef2a - adds r1, r4, 0 - bl sub_806EBD0 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0 - bne _08165440 - ldr r0, [sp, 0x44] - bl GetNatureFromPersonality - ldrb r1, [r5, 0x4] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _08165440 - movs r0, 0x64 - mov r6, r10 - muls r6, r0 - ldr r1, =gUnknown_02024618 - mov r8, r1 - adds r0, r6, r1 - mov r5, r9 - add r5, r10 - lsls r5, 2 - ldr r2, =gUnknown_085DD6D0 - adds r3, r5, r2 - ldrh r1, [r3] - ldrb r2, [r3, 0x3] - ldrb r3, [r3, 0x2] - mov r12, r3 - movs r4, 0x1 - str r4, [sp] - mov r3, r10 - str r3, [sp, 0x4] - str r4, [sp, 0x8] - ldr r4, =0x0000ef2a - str r4, [sp, 0xC] - mov r3, r12 - bl create_pokemon_set_level - str r7, [sp, 0x44] - movs r3, 0 - mov r4, r8 - ldr r0, =gUnknown_085DD6D5 - adds r5, r0 -_081654B0: - adds r1, r3, 0 - adds r1, 0x1A - adds r2, r5, r3 - adds r0, r6, r4 - bl SetMonData - ldr r0, [sp, 0x44] - adds r0, 0x1 - str r0, [sp, 0x44] - adds r3, r0, 0 - cmp r3, 0x5 - ble _081654B0 - movs r0, 0 - str r0, [sp, 0x44] - movs r1, 0 - movs r6, 0x64 - mov r4, r10 - muls r4, r6 - ldr r7, =gUnknown_085DD6DC - ldr r6, =gUnknown_02024618 - mov r0, r9 - add r0, r10 - lsls r5, r0, 2 -_081654DE: - lsls r0, r1, 1 - adds r0, r5 - adds r0, r7 - ldrh r1, [r0] - ldr r0, [sp, 0x64] - ldrb r2, [r0] - adds r0, r4, r6 - bl sub_80691F4 - ldr r0, [sp, 0x44] - adds r0, 0x1 - str r0, [sp, 0x44] - adds r1, r0, 0 - cmp r1, 0x3 - ble _081654DE - movs r1, 0x64 - mov r4, r10 - muls r4, r1 - ldr r0, =gUnknown_02024618 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x7 - ldr r2, =gTrainers + TRAINER_STEVEN * 0x28 + 0x4 @ Steven's name - bl SetMonData - movs r0, 0 - str r0, [sp, 0x44] - adds r0, r4, 0 - movs r1, 0x31 - ldr r2, [sp, 0x64] - bl SetMonData - adds r0, r4, 0 - bl pokemon_calc_effective_stats - ldr r2, [sp, 0x60] - mov r10, r2 - cmp r2, 0x2 - bgt _0816552E - b _0816542A -_0816552E: - b _0816585A - .pool -_0816554C: - movs r0, 0xFA - lsls r0, 1 - cmp r7, r0 - bne _08165564 - add r0, sp, 0x10 - ldr r1, =gGameLanguage - ldrb r1, [r1] - strb r1, [r0] - b _0816585A - .pool -_08165564: - ldr r0, =0x0000012b - cmp r7, r0 - bls _0816556C - b _081656E8 -_0816556C: - bl sub_8165C40 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x50] - adds r0, r7, 0 - bl sub_8165D08 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4C] - bl Random - adds r4, r0, 0 - bl Random - lsls r4, 16 - lsrs r4, 16 - lsls r0, 16 - orrs r4, r0 - str r4, [sp, 0x58] - movs r3, 0 - mov r10, r3 - mov r6, sp - adds r6, 0x44 - str r6, [sp, 0x64] - mov r0, sp - adds r0, 0x48 - str r0, [sp, 0x5C] -_081655A6: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - mov r0, r10 - adds r0, 0x12 - lsls r0, 1 - ldr r2, =0x00000cb4 - adds r1, r2 - adds r1, r0 - ldrh r1, [r1] - str r1, [sp, 0x54] - movs r6, 0x64 - mov r3, r10 - muls r3, r6 - mov r8, r3 - ldr r0, =gUnknown_02024618 - mov r9, r0 - mov r0, r8 - add r0, r9 - ldr r6, =gUnknown_0203BC8C - ldr r4, [r6] - lsls r5, r1, 4 - adds r4, r5, r4 - ldrh r1, [r4] - ldr r3, [sp, 0x50] - lsls r2, r3, 24 - ldrb r3, [r4, 0xC] - mov r12, r3 - ldr r3, [sp, 0x4C] - str r3, [sp] - ldrb r4, [r4, 0xB] - str r4, [sp, 0x4] - ldr r3, [sp, 0x58] - str r3, [sp, 0x8] - lsrs r2, 24 - mov r3, r12 - bl sub_8068634 - movs r0, 0xFF - str r0, [sp, 0x48] - movs r0, 0 - str r0, [sp, 0x44] - movs r2, 0 - mov r0, r10 - adds r0, 0x1 - str r0, [sp, 0x60] - mov r4, r8 - mov r3, r9 -_08165604: - ldr r0, [r6] - adds r0, r5, r0 - lsls r1, r2, 1 - adds r0, 0x2 - adds r0, r1 - ldrh r1, [r0] - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, r3 - str r3, [sp, 0x68] - bl sub_80691F4 - ldr r0, [r6] - adds r0, r5, r0 - ldr r2, [sp, 0x44] - lsls r1, r2, 1 - adds r0, 0x2 - adds r0, r1 - ldrh r0, [r0] - ldr r3, [sp, 0x68] - cmp r0, 0xDA - bne _08165634 - movs r0, 0 - str r0, [sp, 0x48] -_08165634: - adds r0, r2, 0x1 - str r0, [sp, 0x44] - adds r2, r0, 0 - cmp r2, 0x3 - ble _08165604 - movs r1, 0x64 - mov r4, r10 - muls r4, r1 - ldr r0, =gUnknown_02024618 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x20 - ldr r2, [sp, 0x5C] - bl SetMonData - ldr r0, =gUnknown_0203BC8C - ldr r1, [r0] - ldr r2, [sp, 0x54] - lsls r0, r2, 4 - adds r0, r1 - ldrb r2, [r0, 0xA] - lsls r2, 1 - ldr r0, =gBattleFrontierHeldItems - adds r2, r0 - adds r0, r4, 0 - movs r1, 0xC - bl SetMonData - movs r0, 0 - str r0, [sp, 0x44] - movs r2, 0 - ldr r0, =gUnknown_0203BC88 - ldr r1, [r0] - movs r0, 0x34 - muls r0, r7 - adds r0, r1 - adds r3, r0, 0x4 -_0816567E: - mov r1, sp - adds r1, r2 - adds r1, 0x10 - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, [sp, 0x44] - adds r0, 0x1 - str r0, [sp, 0x44] - adds r2, r0, 0 - cmp r2, 0x7 - ble _0816567E - movs r3, 0x64 - mov r4, r10 - muls r4, r3 - ldr r0, =gUnknown_02024618 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x7 - add r2, sp, 0x10 - bl SetMonData - adds r0, r7, 0 - bl sub_8162F68 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x44] - adds r0, r4, 0 - movs r1, 0x31 - ldr r2, [sp, 0x64] - bl SetMonData - ldr r6, [sp, 0x60] - mov r10, r6 - cmp r6, 0x1 - bgt _081656CA - b _081655A6 -_081656CA: - b _0816585A - .pool -_081656E8: - ldr r0, =0x0000018f - cmp r7, r0 - bls _081656F0 - b _081657F0 -_081656F0: - ldr r1, =0xfffffed4 - adds r0, r7, r1 - lsls r0, 16 - lsrs r7, r0, 16 - movs r2, 0 - mov r10, r2 - mov r3, sp - adds r3, 0x44 - str r3, [sp, 0x64] - add r5, sp, 0x18 - ldr r6, =0x000015fc - mov r9, r6 - ldr r0, =0x0000ffff - mov r8, r0 - movs r1, 0x24 - str r1, [sp, 0x6C] -_08165710: - ldr r1, =gSaveBlock2Ptr - movs r0, 0xEC - adds r4, r7, 0 - muls r4, r0 - movs r2, 0xE7 - lsls r2, 3 - adds r4, r2 - ldr r0, [r1] - adds r4, r0, r4 - ldr r3, =0x00000cb4 - adds r0, r3 - ldr r6, [sp, 0x6C] - adds r0, r6 - ldrh r1, [r0] - movs r0, 0x2C - muls r1, r0 - adds r1, r4, r1 - adds r0, r5, 0 - adds r1, 0x34 - ldm r1!, {r2,r3,r6} - stm r0!, {r2,r3,r6} - ldm r1!, {r2,r3,r6} - stm r0!, {r2,r3,r6} - ldm r1!, {r2,r3,r6} - stm r0!, {r2,r3,r6} - ldm r1!, {r2,r3} - stm r0!, {r2,r3} - adds r1, r4, 0x4 - add r0, sp, 0x10 - bl StringCopy - adds r4, 0xE4 - ldrb r0, [r4] - cmp r0, 0x1 - bne _0816578C - ldrh r0, [r5, 0x20] - mov r6, r8 - ands r0, r6 - cmp r0, r9 - beq _0816579C - mov r1, sp - adds r1, 0x3D - movs r0, 0xFF - strb r0, [r1] - add r0, sp, 0x38 - movs r1, 0x1 - bl ConvertInternationalString - b _0816579C - .pool -_0816578C: - ldrh r0, [r5, 0x20] - mov r1, r8 - ands r0, r1 - cmp r0, r9 - bne _0816579C - add r1, sp, 0x10 - movs r0, 0xFF - strb r0, [r1, 0x5] -_0816579C: - movs r0, 0x64 - mov r4, r10 - muls r4, r0 - ldr r0, =gUnknown_02024618 - adds r4, r0 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_8068338 - adds r0, r4, 0 - movs r1, 0x7 - add r2, sp, 0x10 - bl SetMonData - movs r2, 0x96 - lsls r2, 1 - adds r0, r7, r2 - lsls r0, 16 - lsrs r0, 16 - bl sub_8162F68 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x44] - adds r0, r4, 0 - movs r1, 0x31 - ldr r2, [sp, 0x64] - bl SetMonData - ldr r3, [sp, 0x6C] - adds r3, 0x2 - str r3, [sp, 0x6C] - movs r6, 0x1 - add r10, r6 - mov r0, r10 - cmp r0, 0x1 - ble _08165710 - b _0816585A - .pool -_081657F0: - ldr r1, =0xfffffe70 - adds r0, r7, r1 - lsls r0, 16 - lsrs r7, r0, 16 - movs r2, 0 - mov r10, r2 - mov r3, sp - adds r3, 0x44 - str r3, [sp, 0x64] - ldr r6, =gSaveBlock2Ptr - mov r8, r6 - movs r5, 0x24 - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - adds r6, r0, 0 - adds r6, 0xDC -_08165812: - movs r0, 0x64 - mov r4, r10 - muls r4, r0 - ldr r0, =gUnknown_02024618 - adds r4, r0 - mov r1, r8 - ldr r0, [r1] - adds r1, r0, r6 - ldr r2, =0x00000cb4 - adds r0, r2 - adds r0, r5 - ldrb r2, [r0] - adds r0, r4, 0 - bl sub_8068528 - movs r3, 0xC8 - lsls r3, 1 - adds r0, r7, r3 - lsls r0, 16 - lsrs r0, 16 - bl sub_8162F68 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x44] - adds r0, r4, 0 - movs r1, 0x31 - ldr r2, [sp, 0x64] - bl SetMonData - adds r5, 0x2 - movs r0, 0x1 - add r10, r0 - mov r1, r10 - cmp r1, 0x1 - ble _08165812 -_0816585A: - add sp, 0x70 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8165404 - - thumb_func_start sub_816587C -sub_816587C: @ 816587C - 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 - movs r2, 0 - adds r1, r6, 0 - adds r3, r6, 0 - adds r3, 0x58 -_08165894: - ldrh r0, [r1, 0x1C] - cmp r0, 0 - beq _0816589C - adds r2, 0x1 -_0816589C: - adds r1, 0x2C - cmp r1, r3 - ble _08165894 - cmp r2, 0x3 - beq _081658B4 - adds r0, r5, 0 - movs r1, 0 - movs r2, 0xEC - bl memset - movs r0, 0 - b _081659BE -_081658B4: - ldrb r0, [r6] - strb r0, [r5] - ldrh r0, [r6, 0x2] - strh r0, [r5, 0x2] - movs r2, 0 - ldr r0, =gUnknown_085DCF40 - ldrb r1, [r0] - ldrb r3, [r6, 0x1] - mov r12, r0 - adds r4, r5, 0x4 - adds r7, r6, 0x4 - movs r0, 0xC - adds r0, r5 - mov r9, r0 - movs r0, 0xC - adds r0, r6 - mov r8, r0 - adds r0, r5, 0 - adds r0, 0x10 - str r0, [sp, 0x4] - movs r0, 0x10 - adds r0, r6 - mov r10, r0 - adds r0, r5, 0 - adds r0, 0x1C - str r0, [sp, 0x8] - adds r0, 0xC - str r0, [sp, 0xC] - adds r0, 0x90 - str r0, [sp, 0x10] - cmp r1, r3 - beq _08165904 - mov r1, r12 -_081658F6: - adds r1, 0x2 - adds r2, 0x1 - cmp r2, 0x51 - bgt _08165904 - ldrb r0, [r1] - cmp r0, r3 - bne _081658F6 -_08165904: - cmp r2, 0x52 - beq _08165918 - lsls r0, r2, 1 - mov r1, r12 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - b _0816591A - .pool -_08165918: - movs r0, 0x2B -_0816591A: - strb r0, [r5, 0x1] - movs r2, 0 - adds r3, r7, 0 -_08165920: - adds r0, r4, r2 - adds r1, r3, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x7 - ble _08165920 - movs r2, 0 - mov r4, r9 - mov r3, r8 -_08165934: - adds r0, r4, r2 - adds r1, r3, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x3 - ble _08165934 - mov r3, r10 - ldr r1, [sp, 0x4] - movs r2, 0x5 -_08165948: - ldrh r0, [r3] - strh r0, [r1] - adds r3, 0x2 - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _08165948 - ldr r3, =gUnknown_085DFA46 - ldr r1, [sp, 0x8] - movs r2, 0x5 -_0816595C: - ldrh r0, [r3] - strh r0, [r1] - adds r3, 0x2 - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _0816595C - ldr r3, =gUnknown_085DFA52 - ldr r1, [sp, 0xC] - movs r2, 0x5 -_08165970: - ldrh r0, [r3] - strh r0, [r1] - adds r3, 0x2 - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _08165970 - adds r2, r6, 0 - adds r3, r5, 0 - movs r4, 0x58 - adds r4, r2 - mov r8, r4 -_08165988: - adds r1, r3, 0 - adds r1, 0x34 - adds r0, r2, 0 - adds r0, 0x1C - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - ldm r0!, {r6,r7} - stm r1!, {r6,r7} - adds r2, 0x2C - adds r3, 0x2C - cmp r2, r8 - ble _08165988 - movs r0, 0 - str r0, [sp] - ldr r2, =0x0500000b - mov r0, sp - ldr r1, [sp, 0x10] - bl CpuSet - adds r0, r5, 0 - bl sub_8164F70 - movs r0, 0x1 -_081659BE: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_816587C - - thumb_func_start sub_81659DC -sub_81659DC: @ 81659DC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r4, r0, 0 - adds r6, r1, 0 - movs r2, 0 - adds r1, r4, 0 - adds r3, r4, 0 - adds r3, 0x58 -_081659F4: - ldrh r0, [r1, 0x34] - cmp r0, 0 - beq _081659FC - adds r2, 0x1 -_081659FC: - adds r1, 0x2C - cmp r1, r3 - ble _081659F4 - cmp r2, 0x3 - beq _08165A14 - adds r0, r6, 0 - movs r1, 0 - movs r2, 0xA4 - bl memset - movs r0, 0 - b _08165AD8 -_08165A14: - ldrb r0, [r4] - strb r0, [r6] - ldrh r0, [r4, 0x2] - strh r0, [r6, 0x2] - movs r2, 0 - ldr r0, =gUnknown_085DCF40 - ldrb r1, [r0, 0x1] - ldrb r3, [r4, 0x1] - mov r12, r0 - adds r5, r6, 0x4 - adds r7, r4, 0x4 - movs r0, 0xC - adds r0, r6 - mov r9, r0 - movs r0, 0xC - adds r0, r4 - mov r8, r0 - adds r0, r6, 0 - adds r0, 0x10 - str r0, [sp] - movs r0, 0x10 - adds r0, r4 - mov r10, r0 - cmp r1, r3 - beq _08165A58 - mov r1, r12 - adds r1, 0x1 -_08165A4A: - adds r1, 0x2 - adds r2, 0x1 - cmp r2, 0x51 - bgt _08165A58 - ldrb r0, [r1] - cmp r0, r3 - bne _08165A4A -_08165A58: - cmp r2, 0x52 - beq _08165A68 - lsls r0, r2, 1 - add r0, r12 - ldrb r0, [r0] - b _08165A6A - .pool -_08165A68: - movs r0, 0x24 -_08165A6A: - strb r0, [r6, 0x1] - movs r2, 0 - adds r3, r7, 0 -_08165A70: - adds r0, r5, r2 - adds r1, r3, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x7 - ble _08165A70 - movs r2, 0 - mov r5, r9 - mov r3, r8 -_08165A84: - adds r0, r5, r2 - adds r1, r3, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x3 - ble _08165A84 - mov r3, r10 - ldr r1, [sp] - movs r2, 0x5 -_08165A98: - ldrh r0, [r3] - strh r0, [r1] - adds r3, 0x2 - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _08165A98 - adds r2, r4, 0 - adds r3, r6, 0 - movs r4, 0x58 - adds r4, r2 - mov r8, r4 -_08165AB0: - adds r1, r3, 0 - adds r1, 0x1C - adds r0, r2, 0 - adds r0, 0x34 - ldm r0!, {r4,r5,r7} - stm r1!, {r4,r5,r7} - ldm r0!, {r4,r5,r7} - stm r1!, {r4,r5,r7} - ldm r0!, {r4,r5,r7} - stm r1!, {r4,r5,r7} - ldm r0!, {r5,r7} - stm r1!, {r5,r7} - adds r2, 0x2C - adds r3, 0x2C - cmp r2, r8 - ble _08165AB0 - adds r0, r6, 0 - bl sub_8164F94 - movs r0, 0x1 -_08165AD8: - 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_81659DC - - thumb_func_start sub_8165AE8 -sub_8165AE8: @ 8165AE8 - push {r4,lr} - adds r2, r0, 0 - movs r0, 0 - str r0, [r2, 0x40] - movs r3, 0 - adds r4, r2, 0 -_08165AF4: - ldr r0, [r2, 0x40] - ldm r4!, {r1} - adds r0, r1 - str r0, [r2, 0x40] - adds r3, 0x1 - cmp r3, 0xF - bls _08165AF4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8165AE8 - - thumb_func_start sub_8165B08 -sub_8165B08: @ 8165B08 - push {lr} - movs r1, 0 - movs r3, 0 - adds r2, r0, 0 -_08165B10: - stm r2!, {r3} - adds r1, 0x1 - cmp r1, 0x10 - bls _08165B10 - bl sub_819FA5C - pop {r0} - bx r0 - thumb_func_end sub_8165B08 - - thumb_func_start sub_8165B20 -sub_8165B20: @ 8165B20 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r5, 0 - ldr r0, =gSaveBlock2Ptr - mov r8, r0 - mov r9, r8 -_08165B30: - lsls r0, r5, 4 - adds r1, r0, r5 - lsls r1, 2 - adds r1, 0xDC - mov r3, r9 - ldr r2, [r3] - movs r4, 0 - movs r3, 0 - adds r6, r0, 0 - adds r7, r5, 0x1 - adds r2, r1 -_08165B46: - ldm r2!, {r0} - adds r4, r0 - adds r3, 0x1 - cmp r3, 0xF - bls _08165B46 - mov r0, r8 - ldr r2, [r0] - adds r0, r6, r5 - lsls r1, r0, 2 - movs r3, 0x8E - lsls r3, 1 - adds r0, r2, r3 - adds r0, r1 - ldr r0, [r0] - cmp r0, r4 - beq _08165B70 - adds r0, r1, 0 - adds r0, 0xDC - adds r0, r2, r0 - bl sub_8165B08 -_08165B70: - adds r5, r7, 0 - cmp r5, 0x3 - ble _08165B30 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8165B20 - - thumb_func_start sub_8165B88 -sub_8165B88: @ 8165B88 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r2, r1, 16 - adds r3, r2, 0 - movs r0, 0xFA - lsls r0, 1 - cmp r2, r0 - bne _08165BA4 - ldr r0, =gGameLanguage - b _08165C28 - .pool -_08165BA4: - ldr r0, =0x0000012b - cmp r2, r0 - bhi _08165BB8 - ldr r0, =gGameLanguage - b _08165C28 - .pool -_08165BB8: - ldr r0, =0x0000018f - cmp r2, r0 - bhi _08165BFC - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _08165BDC - bl sub_81864B4 - b _08165C2A - .pool -_08165BDC: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0xfffffed4 - adds r2, r1 - movs r1, 0xEC - muls r1, r2 - adds r0, r1 - ldr r1, =0x0000081c - adds r0, r1 - b _08165C28 - .pool -_08165BFC: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _08165C14 - bl sub_81864C0 - b _08165C2A - .pool -_08165C14: - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, =0xfffffe70 - adds r1, r3, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r1, =0x0000011b - adds r0, r2, r1 -_08165C28: - ldrb r0, [r0] -_08165C2A: - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8165B88 - - thumb_func_start sub_8165C40 -sub_8165C40: @ 8165C40 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r2, r0, r1 - ldrb r1, [r2] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x2 - beq _08165C84 - ldr r1, =gUnknown_0203BC88 - ldr r0, =gBattleFrontierTrainers - str r0, [r1] - ldr r1, =gUnknown_0203BC8C - ldr r0, =gBattleFrontierMons - str r0, [r1] - ldrb r0, [r2] - lsls r0, 30 - lsrs r0, 30 - bl sub_8165C90 - b _08165C88 - .pool -_08165C84: - bl sub_8165D78 -_08165C88: - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_8165C40 - - thumb_func_start sub_8165C90 -sub_8165C90: @ 8165C90 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08165C9E - cmp r0, 0x1 - beq _08165CA2 -_08165C9E: - movs r0, 0x32 - b _08165CB0 -_08165CA2: - bl sub_8165CB4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3B - bhi _08165CB0 - movs r0, 0x3C -_08165CB0: - pop {r1} - bx r1 - thumb_func_end sub_8165C90 - - thumb_func_start sub_8165CB4 -sub_8165CB4: @ 8165CB4 - push {r4-r6,lr} - movs r6, 0 - movs r5, 0 -_08165CBA: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - cmp r0, 0 - beq _08165CF4 - adds r0, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08165CF4 - adds r0, r4, 0 - movs r1, 0x38 - movs r2, 0 - bl GetMonData - cmp r0, r6 - ble _08165CF4 - adds r6, r0, 0 -_08165CF4: - adds r5, 0x1 - cmp r5, 0x5 - ble _08165CBA - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8165CB4 - - thumb_func_start sub_8165D08 -sub_8165D08: @ 8165D08 - push {lr} - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - cmp r0, 0x63 - bls _08165D3A - movs r1, 0x6 - cmp r0, 0x77 - bls _08165D3A - movs r1, 0x9 - cmp r0, 0x8B - bls _08165D3A - movs r1, 0xC - cmp r0, 0x9F - bls _08165D3A - movs r1, 0xF - cmp r0, 0xB3 - bls _08165D3A - movs r1, 0x12 - cmp r0, 0xC7 - bls _08165D3A - movs r1, 0x1F - cmp r0, 0xDB - bhi _08165D3A - movs r1, 0x15 -_08165D3A: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end sub_8165D08 - - thumb_func_start sub_8165D40 -sub_8165D40: @ 8165D40 - push {lr} - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - beq _08165D58 - cmp r0, 0x3 - beq _08165D58 - cmp r0, 0x4 - bne _08165D70 -_08165D58: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1E - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - b _08165D72 - .pool -_08165D70: - movs r0, 0 -_08165D72: - pop {r1} - bx r1 - thumb_func_end sub_8165D40 - - thumb_func_start sub_8165D78 -sub_8165D78: @ 8165D78 - push {lr} - ldr r0, =0x000040cf - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4 - bne _08165DA8 - ldr r1, =gUnknown_0203BC88 - ldr r0, =gSlateportBattleTentTrainers - str r0, [r1] - ldr r1, =gUnknown_0203BC8C - ldr r0, =gSlateportBattleTentMons - b _08165DF2 - .pool -_08165DA8: - cmp r0, 0x2 - bne _08165DC8 - ldr r1, =gUnknown_0203BC88 - ldr r0, =gVerdanturfBattleTentTrainers - str r0, [r1] - ldr r1, =gUnknown_0203BC8C - ldr r0, =gVerdanturfBattleTentMons - b _08165DF2 - .pool -_08165DC8: - cmp r0, 0x3 - bne _08165DE8 - ldr r1, =gUnknown_0203BC88 - ldr r0, =gFallarborBattleTentTrainers - str r0, [r1] - ldr r1, =gUnknown_0203BC8C - ldr r0, =gFallarborBattleTentMons - b _08165DF2 - .pool -_08165DE8: - ldr r1, =gUnknown_0203BC88 - ldr r0, =gBattleFrontierTrainers - str r0, [r1] - ldr r1, =gUnknown_0203BC8C - ldr r0, =gBattleFrontierMons -_08165DF2: - str r0, [r1] - bl sub_8165CB4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1D - bhi _08165E02 - movs r0, 0x1E -_08165E02: - pop {r1} - bx r1 - .pool - thumb_func_end sub_8165D78 - - thumb_func_start sub_8165E18 -sub_8165E18: @ 8165E18 - push {r4,r5,lr} - ldr r5, =gSaveBlock2Ptr -_08165E1C: - bl sub_8165D40 - lsls r0, 16 - lsrs r4, r0, 16 - movs r3, 0 - ldr r1, [r5] - ldr r2, =0x00000cb2 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r3, r0 - bge _08165E58 - adds r2, 0x2 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, r4 - beq _08165E58 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - subs r2, 0x2 - adds r0, r1, r2 - ldrh r2, [r0] - ldr r0, =0x00000cb4 - adds r1, r0 -_08165E4A: - adds r1, 0x2 - adds r3, 0x1 - cmp r3, r2 - bge _08165E58 - ldrh r0, [r1] - cmp r0, r4 - bne _08165E4A -_08165E58: - ldr r0, [r5] - ldr r1, =0x00000cb2 - adds r0, r1 - ldrh r0, [r0] - cmp r3, r0 - bne _08165E1C - ldr r5, =gUnknown_02038BCA - strh r4, [r5] - ldrh r0, [r5] - movs r1, 0 - bl sub_8162614 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r2, =0x00000cb2 - adds r0, r1, r2 - ldrh r2, [r0] - adds r0, r2, 0x1 - cmp r0, 0x2 - bgt _08165E8C - lsls r0, r2, 1 - ldr r2, =0x00000cb4 - adds r1, r2 - adds r1, r0 - ldrh r0, [r5] - strh r0, [r1] -_08165E8C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8165E18 - - thumb_func_start sub_8165EA4 -sub_8165EA4: @ 8165EA4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x38 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x18] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x1C] - bl sub_8165D78 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x20] - ldr r0, =gUnknown_02038BCA - ldrh r2, [r0] - ldr r0, =gUnknown_0203BC88 - ldr r1, [r0] - movs r0, 0x34 - muls r0, r2 - adds r0, r1 - ldr r0, [r0, 0x30] - str r0, [sp, 0x28] - movs r0, 0 - str r0, [sp, 0x24] - ldr r2, [sp, 0x28] - ldrh r1, [r2] - b _08165EFE - .pool -_08165EEC: - ldr r0, [sp, 0x24] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x24] - lsls r0, 1 - ldr r6, [sp, 0x28] - adds r0, r6 - ldrh r1, [r0] -_08165EFE: - ldr r0, =0x0000ffff - cmp r1, r0 - bne _08165EEC - movs r0, 0 - mov r8, r0 - bl Random - adds r4, r0, 0 - bl Random - lsls r4, 16 - lsrs r4, 16 - lsls r0, 16 - orrs r4, r0 - str r4, [sp, 0x2C] - b _08166092 - .pool -_08165F24: - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, [sp, 0x24] - bl __modsi3 - lsls r0, 1 - ldr r2, [sp, 0x28] - adds r0, r2 - ldrh r4, [r0] - movs r6, 0 - ldr r7, [sp, 0x18] - add r7, r8 - b _08165F44 -_08165F42: - adds r6, 0x1 -_08165F44: - cmp r6, r7 - bge _08165F68 - movs r1, 0x64 - adds r0, r6, 0 - muls r0, r1 - ldr r2, =gEnemyParty - adds r0, r2 - movs r1, 0xB - movs r2, 0 - bl GetMonData - ldr r1, =gUnknown_0203BC8C - ldr r2, [r1] - lsls r1, r4, 4 - adds r1, r2 - ldrh r1, [r1] - cmp r0, r1 - bne _08165F42 -_08165F68: - cmp r6, r7 - beq _08165F6E - b _08166092 -_08165F6E: - movs r6, 0 - cmp r6, r7 - bge _08165FB8 - ldr r0, =gBattleFrontierHeldItems - mov r9, r0 - movs r3, 0 -_08165F7A: - ldr r1, =gEnemyParty - adds r5, r3, r1 - adds r0, r5, 0 - movs r1, 0xC - movs r2, 0 - str r3, [sp, 0x34] - bl GetMonData - ldr r3, [sp, 0x34] - cmp r0, 0 - beq _08165FB0 - adds r0, r5, 0 - movs r1, 0xC - movs r2, 0 - bl GetMonData - ldr r1, =gUnknown_0203BC8C - ldr r2, [r1] - lsls r1, r4, 4 - adds r1, r2 - ldrb r1, [r1, 0xA] - lsls r1, 1 - add r1, r9 - ldr r3, [sp, 0x34] - ldrh r1, [r1] - cmp r0, r1 - beq _08165FB8 -_08165FB0: - adds r3, 0x64 - adds r6, 0x1 - cmp r6, r7 - blt _08165F7A -_08165FB8: - cmp r6, r7 - bne _08166092 - movs r6, 0 - cmp r6, r8 - bge _08165FDA - add r0, sp, 0xC - ldrh r0, [r0] - cmp r0, r4 - beq _08165FDA - add r1, sp, 0xC -_08165FCC: - adds r1, 0x2 - adds r6, 0x1 - cmp r6, r8 - bge _08165FDA - ldrh r0, [r1] - cmp r0, r4 - bne _08165FCC -_08165FDA: - cmp r6, r8 - bne _08166092 - mov r2, r8 - lsls r0, r2, 1 - add r0, sp - adds r0, 0xC - strh r4, [r0] - movs r6, 0x64 - adds r0, r7, 0 - muls r0, r6 - ldr r1, =gEnemyParty - adds r0, r1 - ldr r5, =gUnknown_0203BC8C - ldr r2, [r5] - lsls r4, 4 - adds r2, r4, r2 - ldrh r1, [r2] - ldrb r3, [r2, 0xC] - movs r6, 0 - str r6, [sp] - ldrb r2, [r2, 0xB] - str r2, [sp, 0x4] - ldr r2, [sp, 0x2C] - str r2, [sp, 0x8] - ldr r2, [sp, 0x20] - bl sub_8068634 - add r1, sp, 0x14 - movs r0, 0xFF - strb r0, [r1] - mov r9, r4 - mov r0, r8 - adds r0, 0x1 - str r0, [sp, 0x30] - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - mov r8, r1 - adds r3, r5, 0 - mov r5, r9 - ldr r2, =gEnemyParty - mov r10, r2 -_0816602E: - ldr r0, [r3] - adds r0, r5, r0 - lsls r4, r6, 1 - adds r0, 0x2 - adds r0, r4 - ldrh r1, [r0] - lsls r2, r6, 24 - lsrs r2, 24 - mov r0, r8 - add r0, r10 - str r3, [sp, 0x34] - bl sub_80691F4 - ldr r3, [sp, 0x34] - ldr r0, [r3] - adds r0, r5, r0 - adds r0, 0x2 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0xDA - bne _0816605E - movs r0, 0 - mov r1, sp - strb r0, [r1, 0x14] -_0816605E: - adds r6, 0x1 - cmp r6, 0x3 - ble _0816602E - movs r2, 0x64 - adds r4, r7, 0 - muls r4, r2 - ldr r6, =gEnemyParty - adds r4, r6 - adds r0, r4, 0 - movs r1, 0x20 - add r2, sp, 0x14 - bl SetMonData - ldr r0, =gUnknown_0203BC8C - ldr r0, [r0] - add r0, r9 - ldrb r2, [r0, 0xA] - lsls r2, 1 - ldr r0, =gBattleFrontierHeldItems - adds r2, r0 - adds r0, r4, 0 - movs r1, 0xC - bl SetMonData - ldr r0, [sp, 0x30] - mov r8, r0 -_08166092: - ldr r1, [sp, 0x1C] - cmp r8, r1 - beq _0816609A - b _08165F24 -_0816609A: - add sp, 0x38 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8165EA4 - - thumb_func_start sub_81660B8 -sub_81660B8: @ 81660B8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r3, =gUnknown_085DCEDC - ldrb r0, [r3] - cmp r0, r2 - beq _081660DA -_081660C8: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1D - bhi _081660DA - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081660C8 -_081660DA: - cmp r1, 0x1E - beq _081660EC - ldr r0, =gUnknown_085DCF0E - b _08166116 - .pool -_081660EC: - movs r1, 0 - ldr r3, =gUnknown_085DCEFA - ldrb r0, [r3] - cmp r0, r2 - beq _08166108 -_081660F6: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x13 - bhi _08166108 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081660F6 -_08166108: - cmp r1, 0x14 - bne _08166114 - movs r0, 0x7 - b _0816611A - .pool -_08166114: - ldr r0, =gUnknown_085DCF2C -_08166116: - adds r0, r1, r0 - ldrb r0, [r0] -_0816611A: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81660B8 - - thumb_func_start sub_8166124 -sub_8166124: @ 8166124 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, =gSaveBlock2Ptr - movs r0, 0xEC - muls r0, r6 - movs r1, 0xE7 - lsls r1, 3 - adds r0, r1 - ldr r1, [r2] - movs r5, 0 - movs r4, 0 - movs r3, 0 - adds r1, r0 -_08166140: - ldm r1!, {r0} - adds r5, r0 - orrs r4, r0 - adds r3, 0x1 - cmp r3, 0x39 - bls _08166140 - cmp r5, 0 - bne _08166154 - cmp r4, 0 - beq _08166180 -_08166154: - ldr r2, [r2] - movs r0, 0xEC - adds r1, r6, 0 - muls r1, r0 - movs r3, 0x82 - lsls r3, 4 - adds r0, r2, r3 - adds r0, r1 - ldr r0, [r0] - cmp r0, r5 - bne _08166174 - movs r0, 0x1 - b _08166182 - .pool -_08166174: - movs r3, 0xE7 - lsls r3, 3 - adds r0, r1, r3 - adds r0, r2, r0 - bl sub_8164FB8 -_08166180: - movs r0, 0 -_08166182: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8166124 - - thumb_func_start sub_8166188 -sub_8166188: @ 8166188 - push {r4-r7,lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x02000002 - ands r0, r1 - cmp r0, 0 - beq _081661E8 - bl sub_8165C40 - lsls r0, 24 - movs r5, 0 - ldr r7, =gBaseStats - lsrs r0, 22 - ldr r1, =gExperienceTables - adds r6, r0, r1 -_081661A6: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gEnemyParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - cmp r1, 0 - beq _081661E2 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r1, [r0, 0x13] - movs r0, 0xCA - lsls r0, 1 - adds r2, r1, 0 - muls r2, r0 - adds r2, r6 - adds r0, r4, 0 - movs r1, 0x19 - bl SetMonData - adds r0, r4, 0 - bl pokemon_calc_effective_stats -_081661E2: - adds r5, 0x1 - cmp r5, 0x5 - ble _081661A6 -_081661E8: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8166188 - - thumb_func_start sub_8166204 -sub_8166204: @ 8166204 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - ldr r4, =gUnknown_0203BCAC - ldr r0, =0x0000806c - bl AllocZeroed - str r0, [r4] - ldr r1, =gUnknown_0203BC90 - ldr r2, =0x00007fd0 - adds r0, r2 - str r0, [r1] - str r5, [r0, 0x8] - str r6, [r0, 0x4] - ldr r0, =sub_8166380 - bl launch_c3_walk_stairs_and_run_once - ldr r0, =sub_816631C - bl SetMainCallback2 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8166204 - - thumb_func_start sub_816624C -sub_816624C: @ 816624C - push {r4,r5,lr} - ldr r4, =gUnknown_0203BCAC - ldr r0, =0x0000806c - bl AllocZeroed - str r0, [r4] - ldr r5, =gUnknown_0203BC90 - ldr r1, =0x00007fd0 - adds r0, r1 - str r0, [r5] - ldr r1, =gUnknown_0203BC98 - ldr r1, [r1] - str r1, [r0, 0x8] - ldr r1, =gUnknown_0203BC94 - ldr r1, [r1] - str r1, [r0, 0x4] - ldr r4, =gUnknown_0203BC9C - ldrb r0, [r4] - bl sub_81672E4 - strb r0, [r4] - ldr r5, [r5] - movs r1, 0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _08166284 - movs r1, 0x1 -_08166284: - adds r0, r5, 0 - adds r0, 0x56 - strb r1, [r0] - ldr r0, =sub_8166380 - bl launch_c3_walk_stairs_and_run_once - ldr r0, =sub_81662C0 - bl SetMainCallback2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816624C - - thumb_func_start sub_81662C0 -sub_81662C0: @ 81662C0 - push {r4,lr} - ldr r4, =gUnknown_0203BC90 - ldr r0, [r4] - ldr r0, [r0] - bl _call_via_r0 - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - ldr r4, [r4] - ldr r1, [r4] - ldr r0, =map_warp_consider_1_to_outside_or_stair_or_dive - cmp r1, r0 - bne _081662F0 - adds r0, r4, 0 - adds r0, 0x50 - movs r1, 0 - strb r1, [r0] - ldr r0, =sub_8166304 - bl SetMainCallback2 -_081662F0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81662C0 - - thumb_func_start sub_8166304 -sub_8166304: @ 8166304 - push {lr} - bl sub_81668F8 - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8166304 - - thumb_func_start sub_816631C -sub_816631C: @ 816631C - push {lr} - ldr r0, =gUnknown_0203BC90 - ldr r0, [r0] - ldr r0, [r0] - bl _call_via_r0 - bl AnimateSprites - bl BuildOamBuffer - bl RunTextPrinters - bl UpdatePaletteFade - pop {r0} - bx r0 - .pool - thumb_func_end sub_816631C - - thumb_func_start sub_8166340 -sub_8166340: @ 8166340 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r1, =0x00007c58 - adds r0, r1 - bl sub_81D2108 - bl sub_80BA0A8 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8166340 - - thumb_func_start launch_c3_walk_stairs_and_run_once -launch_c3_walk_stairs_and_run_once: @ 816636C - ldr r1, =gUnknown_0203BC90 - ldr r1, [r1] - str r0, [r1] - adds r1, 0x50 - movs r0, 0 - strb r0, [r1] - bx lr - .pool - thumb_func_end launch_c3_walk_stairs_and_run_once - - thumb_func_start sub_8166380 -sub_8166380: @ 8166380 - push {r4,r5,lr} - sub sp, 0x4 - ldr r1, =gUnknown_0203BC90 - ldr r0, [r1] - adds r0, 0x50 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0xF - bls _08166394 - b _08166556 -_08166394: - lsls r0, 2 - ldr r1, =_081663A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081663A8: - .4byte _081663E8 - .4byte _0816640C - .4byte _08166416 - .4byte _08166434 - .4byte _08166464 - .4byte _08166468 - .4byte _08166474 - .4byte _08166484 - .4byte _08166490 - .4byte _0816649C - .4byte _081664B8 - .4byte _081664BC - .4byte _081664E4 - .4byte _08166510 - .4byte _08166528 - .4byte _08166550 -_081663E8: - ldr r2, =gUnknown_0203BCAC - ldr r0, [r2] - ldr r1, =0x00007b10 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldr r0, [r2] - ldr r2, =0x00007c58 - adds r0, r2 - bl sub_81D1ED4 - b _0816653C - .pool -_0816640C: - bl ResetSpriteData - bl FreeAllSpritePalettes - b _0816653C -_08166416: - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - str r0, [sp] - movs r1, 0xC0 - lsls r1, 19 - ldr r2, =0x05006000 - mov r0, sp - bl CpuSet - b _0816653C - .pool -_08166434: - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_085DFCCC - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r0, =gUnknown_085DFCDC - bl InitWindows - bl DeactivateAllTextPrinters - movs r0, 0 - movs r1, 0x97 - movs r2, 0xE0 - bl sub_809882C - b _0816653C - .pool -_08166464: - ldr r1, [r2] - b _08166540 -_08166468: - bl sub_8168328 - lsls r0, 24 - cmp r0, 0 - bne _08166556 - b _0816653C -_08166474: - ldr r1, =gKeyRepeatStartDelay - movs r0, 0x14 - strh r0, [r1] - bl sub_8167420 - b _0816653C - .pool -_08166484: - bl sub_8167930 - lsls r0, 24 - cmp r0, 0 - bne _08166556 - b _0816653C -_08166490: - movs r0, 0 - bl sub_8167608 - bl sub_8167760 - b _0816653C -_0816649C: - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r1, =0x00007b0e - adds r0, r1 - bl sub_81D312C - lsls r0, 24 - cmp r0, 0 - bne _08166556 - b _0816653C - .pool -_081664B8: - ldr r1, [r2] - b _08166540 -_081664BC: - ldr r5, =gUnknown_0203BCAC - ldr r1, [r5] - ldr r4, =0x00007c58 - adds r0, r1, r4 - ldr r2, =0x00007c6c - adds r1, r2 - bl sub_81D2754 - ldr r0, [r5] - adds r0, r4 - bl sub_81D20AC - b _0816653C - .pool -_081664E4: - ldr r4, =gUnknown_0203BCAC - ldr r0, [r4] - ldr r1, =0x00007c58 - adds r0, r1 - bl sub_81D20BC - lsls r0, 24 - cmp r0, 0 - bne _08166556 - ldr r2, [r4] - ldr r1, =0x00007c58 - adds r0, r2, r1 - adds r1, 0x14 - adds r2, r1 - adds r1, r2, 0 - bl sub_81D1F84 - b _0816653C - .pool -_08166510: - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r2, =0x00007c58 - adds r0, r2 - bl sub_81D2230 - b _0816653C - .pool -_08166528: - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - movs r1, 0x1 - bl sub_8167BA0 -_0816653C: - ldr r0, =gUnknown_0203BC90 - ldr r1, [r0] -_08166540: - adds r1, 0x50 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08166556 - .pool -_08166550: - ldr r0, =map_warp_consider_1_to_outside_or_stair_or_dive - bl launch_c3_walk_stairs_and_run_once -_08166556: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8166380 - - thumb_func_start map_warp_consider_1_to_outside_or_stair_or_dive -map_warp_consider_1_to_outside_or_stair_or_dive: @ 8166564 - push {r4,lr} - sub sp, 0x4 - ldr r4, =gUnknown_0203BC90 - ldr r0, [r4] - adds r0, 0x50 - ldrb r1, [r0] - cmp r1, 0 - beq _08166580 - cmp r1, 0x1 - beq _081665C0 - b _08166610 - .pool -_08166580: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, =sub_8166340 - bl SetVBlankCallback - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x3 - bl ShowBg - movs r0, 0x2 - bl ShowBg - ldr r1, [r4] - adds r1, 0x50 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08166610 - .pool -_081665C0: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08166610 - ldr r4, =gUnknown_0203BCAC - ldr r0, [r4] - ldr r1, =0x00007b1c - adds r0, r1 - bl sub_81D3464 - ldr r4, [r4] - ldr r2, =0x00008041 - adds r0, r4, r2 - ldrb r1, [r0] - ldr r3, =0x00008040 - adds r0, r4, r3 - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - beq _0816660A - ldr r1, =0x00007fb3 - adds r0, r4, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - subs r2, 0x91 - adds r0, r4, r2 - adds r0, r1 - ldrb r2, [r0] - ldr r3, =0x00007b1c - adds r0, r4, r3 - subs r3, 0xC - adds r1, r4, r3 - ldrb r1, [r1] - bl sub_81D3480 -_0816660A: - ldr r0, =sub_8166634 - bl launch_c3_walk_stairs_and_run_once -_08166610: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end map_warp_consider_1_to_outside_or_stair_or_dive - - thumb_func_start sub_8166634 -sub_8166634: @ 8166634 - push {lr} - ldr r0, =gUnknown_0203BC90 - ldr r0, [r0] - adds r0, 0x50 - ldrb r0, [r0] - cmp r0, 0x7 - bls _08166644 - b _0816680E -_08166644: - lsls r0, 2 - ldr r1, =_08166658 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08166658: - .4byte _08166678 - .4byte _0816675C - .4byte _0816680E - .4byte _08166788 - .4byte _0816680E - .4byte _08166794 - .4byte _081667AC - .4byte _081667F4 -_08166678: - ldr r2, =gMain - ldrh r1, [r2, 0x2C] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081666B8 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_8167CA0 - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r1, =0x00007b1c - adds r0, r1 - bl sub_81D3520 - ldr r0, =gUnknown_0203BC90 - ldr r0, [r0] - adds r0, 0x50 - movs r1, 0x1 - b _0816680C - .pool -_081666B8: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081666F0 - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_8167CA0 - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r2, =0x00007b1c - adds r0, r2 - bl sub_81D3520 - ldr r0, =gUnknown_0203BC90 - ldr r0, [r0] - adds r0, 0x50 - movs r1, 0x1 - b _0816680C - .pool -_081666F0: - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08166710 - movs r0, 0x5 - bl PlaySE - ldr r0, =gUnknown_0203BC90 - ldr r0, [r0] - adds r0, 0x50 - movs r1, 0x3 - b _0816680C - .pool -_08166710: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0816671A - b _0816680E -_0816671A: - movs r0, 0x5 - bl PlaySE - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r2, =0x00008041 - adds r1, r0, r2 - ldrb r1, [r1] - subs r2, 0x1 - adds r0, r2 - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bne _0816674C - ldr r0, =gUnknown_0203BC90 - ldr r0, [r0] - adds r0, 0x50 - movs r1, 0x3 - b _0816680C - .pool -_0816674C: - ldr r0, =gUnknown_0203BC90 - ldr r0, [r0] - adds r0, 0x50 - movs r1, 0x5 - b _0816680C - .pool -_0816675C: - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r1, =0x00008044 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _0816680E - ldr r0, =gUnknown_0203BC90 - ldr r0, [r0] - adds r0, 0x50 - b _0816680C - .pool -_08166788: - ldr r0, =sub_8166BEC - bl launch_c3_walk_stairs_and_run_once - b _0816680E - .pool -_08166794: - bl sub_8166D44 - ldr r0, =gUnknown_0203BC90 - ldr r1, [r0] - adds r1, 0x50 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0816680E - .pool -_081667AC: - bl sub_8166DE4 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _081667CC - cmp r1, 0 - bgt _081667C6 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08166804 - b _0816680E -_081667C6: - cmp r1, 0x1 - bne _0816680E - b _08166804 -_081667CC: - bl sub_8167268 - lsls r0, 24 - cmp r0, 0 - beq _081667E8 - bl sub_8166F50 - ldr r0, =gUnknown_0203BC90 - ldr r0, [r0] - adds r0, 0x50 - movs r1, 0x7 - b _0816680C - .pool -_081667E8: - ldr r0, =sub_816681C - bl launch_c3_walk_stairs_and_run_once - b _0816680E - .pool -_081667F4: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0816680E - bl sub_8166F94 -_08166804: - ldr r0, =gUnknown_0203BC90 - ldr r0, [r0] - adds r0, 0x50 - movs r1, 0 -_0816680C: - strb r1, [r0] -_0816680E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8166634 - - thumb_func_start sub_816681C -sub_816681C: @ 816681C - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, =gUnknown_0203BC90 - ldr r0, [r5] - adds r0, 0x50 - ldrb r4, [r0] - cmp r4, 0 - beq _08166838 - cmp r4, 0x1 - beq _08166888 - b _081668D4 - .pool -_08166838: - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r1, =0x00008041 - adds r0, r1 - ldrb r0, [r0] - bl sub_81672A4 - ldr r1, =gUnknown_0203BC9C - strb r0, [r1] - ldr r1, =gUnknown_0203BC94 - ldr r2, [r5] - ldr r0, [r2, 0x4] - str r0, [r1] - ldr r1, =gUnknown_0203BC98 - ldr r0, [r2, 0x8] - str r0, [r1] - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, [r5] - adds r1, 0x50 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _081668D4 - .pool -_08166888: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _081668D4 - movs r0, 0 - bl SetVBlankCallback - ldr r4, =gUnknown_0203BCA0 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203BCA4 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203BCA8 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203BCAC - ldr r0, [r4] - bl Free - str r5, [r4] - bl FreeAllWindowBuffers - ldr r1, =gMain - ldr r0, =sub_816624C - str r0, [r1, 0x8] - bl sub_8179D70 -_081668D4: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816681C - - thumb_func_start sub_81668F8 -sub_81668F8: @ 81668F8 - push {r4,lr} - sub sp, 0x4 - ldr r1, =gUnknown_0203BC90 - ldr r0, [r1] - adds r0, 0x50 - ldrb r0, [r0] - adds r4, r1, 0 - cmp r0, 0x6 - bls _0816690C - b _08166A18 -_0816690C: - lsls r0, 2 - ldr r1, =_08166920 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08166920: - .4byte _0816693C - .4byte _08166972 - .4byte _08166A18 - .4byte _081669A0 - .4byte _081669AE - .4byte _081669C8 - .4byte _081669F4 -_0816693C: - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r1, =0x00008041 - adds r0, r1 - ldr r1, =gUnknown_0203BC9C - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _08166968 - ldr r0, [r4] - adds r0, 0x56 - ldrb r0, [r0] - bl sub_8167CA0 - ldr r1, [r4] - b _081669E2 - .pool -_08166968: - ldr r0, [r4] - adds r0, 0x50 - movs r1, 0x3 - strb r1, [r0] - b _08166A18 -_08166972: - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r1, =0x00008044 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08166A18 - ldr r0, =gUnknown_0203BC90 - ldr r0, [r0] - adds r0, 0x50 - strb r1, [r0] - b _08166A18 - .pool -_081669A0: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - b _081669DE -_081669AE: - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x3 - bl ShowBg - movs r0, 0x2 - bl ShowBg - b _081669DE -_081669C8: - ldr r0, =sub_8166340 - bl SetVBlankCallback - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_081669DE: - ldr r0, =gUnknown_0203BC90 - ldr r1, [r0] -_081669E2: - adds r1, 0x50 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08166A18 - .pool -_081669F4: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08166A18 - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r1, =0x00007b1c - adds r0, r1 - bl sub_81D3464 - ldr r0, =sub_8166A34 - bl launch_c3_walk_stairs_and_run_once - ldr r0, =sub_816631C - bl SetMainCallback2 -_08166A18: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81668F8 - - thumb_func_start sub_8166A34 -sub_8166A34: @ 8166A34 - push {r4-r6,lr} - ldr r1, =gUnknown_0203BC90 - ldr r0, [r1] - adds r0, 0x50 - ldrb r0, [r0] - adds r5, r1, 0 - cmp r0, 0x5 - bls _08166A46 - b _08166BDA -_08166A46: - lsls r0, 2 - ldr r1, =_08166A58 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08166A58: - .4byte _08166A70 - .4byte _08166AAC - .4byte _08166AC0 - .4byte _08166B14 - .4byte _08166B94 - .4byte _08166BB6 -_08166A70: - ldr r4, [r5] - ldr r3, =gPlayerParty - str r3, [r4, 0xC] - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r2, =0x00008041 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r0, r1 - subs r2, 0x88 - adds r1, r2 - ldrb r2, [r1] - movs r1, 0x64 - muls r1, r2 - adds r1, r3 - str r1, [r4, 0xC] - ldr r3, =0x00007b1c - adds r0, r3 - bl sub_81D3520 - b _08166BAA - .pool -_08166AAC: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08166ABA - b _08166BDA -_08166ABA: - b _08166BAA - .pool -_08166AC0: - bl sub_8167104 - ldr r6, =gUnknown_0203BC90 - ldr r0, [r6] - adds r0, 0x5C - ldr r4, =gUnknown_0203BCAC - ldr r1, [r4] - ldr r5, =0x00007ca8 - adds r1, r5 - bl sub_81D2754 - ldr r2, [r4] - ldr r4, =0x00007c58 - adds r0, r2, r4 - ldr r3, =0x00007fb3 - adds r1, r2, r3 - movs r3, 0 - ldrsb r3, [r1, r3] - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 2 - adds r4, 0x14 - adds r1, r4 - adds r1, r2, r1 - adds r2, r5 - bl sub_81D1F84 - bl sub_8167338 - ldr r1, [r6] - b _08166BAC - .pool -_08166B14: - ldr r5, =gUnknown_0203BCAC - ldr r0, [r5] - ldr r1, =0x00007c58 - adds r0, r1 - bl sub_81D2074 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _08166BDA - ldr r0, [r5] - ldr r4, =0x00008041 - adds r0, r4 - ldrb r0, [r0] - bl sub_81672A4 - lsls r0, 24 - lsrs r0, 24 - bl sub_81681F4 - ldr r3, [r5] - adds r4, r3, r4 - ldrb r1, [r4] - ldr r2, =0x00008040 - adds r0, r3, r2 - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - beq _08166B6C - ldr r4, =0x00007fb3 - adds r0, r3, r4 - movs r1, 0 - ldrsb r1, [r0, r1] - subs r2, 0x90 - adds r0, r3, r2 - adds r0, r1 - ldrb r2, [r0] - ldr r4, =0x00007b1c - adds r0, r3, r4 - subs r4, 0xC - adds r1, r3, r4 - ldrb r1, [r1] - bl sub_81D3480 -_08166B6C: - ldr r1, =gUnknown_0203BC90 - ldr r0, [r1] - adds r0, 0x52 - strb r6, [r0] - ldr r1, [r1] - b _08166BAC - .pool -_08166B94: - ldr r1, [r5] - adds r1, 0x52 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - bls _08166BDA - bl sub_8166E24 -_08166BAA: - ldr r1, [r5] -_08166BAC: - adds r1, 0x50 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08166BDA -_08166BB6: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08166BDA - bl sub_8166EDC - lsls r0, 24 - cmp r0, 0 - bne _08166BDA - ldr r0, =gUnknown_0203CE7C - ldrb r0, [r0] - bl sub_8136F68 - ldr r0, =sub_8166BEC - bl launch_c3_walk_stairs_and_run_once -_08166BDA: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8166A34 - - thumb_func_start sub_8166BEC -sub_8166BEC: @ 8166BEC - push {r4-r6,lr} - sub sp, 0x4 - ldr r4, =gUnknown_0203BC90 - ldr r0, [r4] - adds r2, r0, 0 - adds r2, 0x50 - ldrb r1, [r2] - cmp r1, 0x1 - beq _08166C28 - cmp r1, 0x1 - bgt _08166C0C - cmp r1, 0 - beq _08166C16 - b _08166D18 - .pool -_08166C0C: - cmp r1, 0x2 - beq _08166C40 - cmp r1, 0x3 - beq _08166C5C - b _08166D18 -_08166C16: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _08166C4A -_08166C28: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08166D18 - movs r0, 0x2 - strb r0, [r2] - b _08166D18 - .pool -_08166C40: - ldr r1, =gUnknown_02039B28 - movs r0, 0x3 - strb r0, [r1, 0x15] - bl sub_80BA0A8 -_08166C4A: - ldr r1, [r4] - adds r1, 0x50 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08166D18 - .pool -_08166C5C: - ldr r0, [r0, 0x4] - bl SetMainCallback2 - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r1, =0x00007b1c - adds r0, r1 - bl sub_81D354C - movs r4, 0 -_08166C70: - ldr r5, =gUnknown_0203BCAC - ldr r0, [r5] - ldr r2, =0x00007b06 - adds r0, r2 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x6 - bls _08166C70 - movs r0, 0 - bl FreeSpriteTilesByTag - movs r0, 0x1 - bl FreeSpriteTilesByTag - movs r0, 0 - bl FreeSpritePaletteByTag - movs r0, 0x1 - bl FreeSpritePaletteByTag - movs r4, 0 -_08166CAE: - ldr r0, [r5] - lsls r1, r4, 2 - ldr r2, =0x00007b44 - adds r0, r2 - adds r0, r1 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _08166CAE - ldr r6, =gUnknown_0203BCAC - ldr r0, [r6] - ldr r2, =0x00007b10 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0xFF - beq _08166CE6 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite -_08166CE6: - movs r0, 0 - bl SetVBlankCallback - ldr r4, =gUnknown_0203BCA0 - ldr r0, [r4] - bl Free - movs r5, 0 - str r5, [r4] - ldr r4, =gUnknown_0203BCA4 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r4, =gUnknown_0203BCA8 - ldr r0, [r4] - bl Free - str r5, [r4] - ldr r0, [r6] - bl Free - str r5, [r6] - bl FreeAllWindowBuffers -_08166D18: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8166BEC - - thumb_func_start sub_8166D44 -sub_8166D44: @ 8166D44 - push {r4,lr} - sub sp, 0x4C - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r1, =0x00008041 - adds r0, r1 - ldrb r0, [r0] - bl sub_81672A4 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2 - add r2, sp, 0xC - bl GetMonData - add r0, sp, 0xC - bl StringGetEnd10 - ldr r1, =gUnknown_085EC7A0 - add r0, sp, 0xC - bl StringAppend - ldr r4, =gStringVar4 - adds r0, r4, 0 - add r1, sp, 0xC - bl StringCopy - movs r0, 0x2 - movs r1, 0x11 - bl FillWindowPixelBuffer - movs r0, 0x2 - movs r1, 0x97 - movs r2, 0xE - bl sub_8098858 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0 - bl Print - movs r0, 0x2 - bl PutWindowTilemap - movs r0, 0x2 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, =gUnknown_085DFCFC - movs r1, 0x97 - movs r2, 0xE - movs r3, 0 - bl CreateYesNoMenu - add sp, 0x4C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8166D44 - - thumb_func_start sub_8166DE4 -sub_8166DE4: @ 8166DE4 - push {r4,lr} - bl sub_8198C58 - lsls r0, 24 - lsrs r4, r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _08166E18 - cmp r1, 0 - bgt _08166E02 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08166E06 - b _08166E18 -_08166E02: - cmp r1, 0x1 - bne _08166E18 -_08166E06: - movs r0, 0x5 - bl PlaySE - movs r0, 0x2 - bl rbox_fill_rectangle - movs r0, 0x2 - bl ClearWindowTilemap -_08166E18: - lsls r0, r4, 24 - asrs r0, 24 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8166DE4 - - thumb_func_start sub_8166E24 -sub_8166E24: @ 8166E24 - push {r4,lr} - movs r0, 0x2 - movs r1, 0x97 - movs r2, 0xE - bl sub_8098858 - movs r0, 0x2 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r3, =gUnknown_0203BC90 - ldr r0, [r3] - adds r0, 0x53 - movs r1, 0 - strb r1, [r0] - ldr r2, [r3] - adds r1, r2, 0 - adds r1, 0x53 - ldrb r0, [r1] - cmp r0, 0x4 - bhi _08166EA8 - adds r0, r2, 0 - adds r0, 0x61 - ldrb r1, [r1] - adds r0, r1 - ldrb r0, [r0] - adds r4, r3, 0 - cmp r0, 0 - bne _08166E84 - adds r2, r4, 0 -_08166E60: - ldr r0, [r2] - adds r0, 0x53 - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - ldr r3, [r2] - adds r1, r3, 0 - adds r1, 0x53 - ldrb r0, [r1] - cmp r0, 0x4 - bhi _08166EA8 - adds r0, r3, 0 - adds r0, 0x61 - ldrb r1, [r1] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08166E60 -_08166E84: - ldr r2, [r4] - adds r1, r2, 0 - adds r1, 0x53 - ldrb r0, [r1] - cmp r0, 0x4 - bhi _08166EA8 - ldr r0, =gStringVar4 - ldrb r1, [r1] - adds r2, 0x61 - adds r2, r1 - ldrb r2, [r2] - bl sub_8166FD4 - b _08166EB8 - .pool -_08166EA8: - ldr r0, =gStringVar4 - ldr r1, =gUnknown_0203BC90 - ldr r1, [r1] - adds r1, 0x53 - ldrb r1, [r1] - movs r2, 0 - bl sub_8166FD4 -_08166EB8: - ldr r0, =gStringVar4 - bl sub_8166FB0 - movs r0, 0x2 - bl PutWindowTilemap - movs r0, 0x2 - movs r1, 0x3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8166E24 - - thumb_func_start sub_8166EDC -sub_8166EDC: @ 8166EDC - push {r4,r5,lr} - movs r0, 0x2 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r5, =gUnknown_0203BC90 - adds r3, r5, 0 - movs r4, 0x5 -_08166EEC: - ldr r0, [r3] - adds r0, 0x53 - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - ldr r2, [r3] - adds r1, r2, 0 - adds r1, 0x53 - ldrb r0, [r1] - cmp r0, 0x4 - bhi _08166F18 - adds r0, r2, 0 - adds r0, 0x61 - ldrb r1, [r1] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08166F1E - b _08166EEC - .pool -_08166F18: - strb r4, [r1] - movs r0, 0 - b _08166F44 -_08166F1E: - ldr r4, =gStringVar4 - ldr r0, [r5] - adds r1, r0, 0 - adds r1, 0x53 - ldrb r1, [r1] - adds r0, 0x61 - adds r0, r1 - ldrb r2, [r0] - adds r0, r4, 0 - bl sub_8166FD4 - adds r0, r4, 0 - bl sub_8166FB0 - movs r0, 0x2 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0x1 -_08166F44: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8166EDC - - thumb_func_start sub_8166F50 -sub_8166F50: @ 8166F50 - push {lr} - sub sp, 0xC - movs r0, 0x2 - movs r1, 0x11 - bl FillWindowPixelBuffer - movs r0, 0x2 - movs r1, 0x97 - movs r2, 0xE - bl sub_8098858 - ldr r2, =gUnknown_085EC800 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x1 - movs r3, 0 - bl Print - movs r0, 0x2 - bl PutWindowTilemap - movs r0, 0x2 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_8166F50 - - thumb_func_start sub_8166F94 -sub_8166F94: @ 8166F94 - push {lr} - movs r0, 0x2 - bl rbox_fill_rectangle - movs r0, 0x2 - bl ClearWindowTilemap - movs r0, 0x2 - movs r1, 0x3 - bl CopyWindowToVram - pop {r0} - bx r0 - thumb_func_end sub_8166F94 - - thumb_func_start sub_8166FB0 -sub_8166FB0: @ 8166FB0 - push {lr} - sub sp, 0xC - ldr r2, =gStringVar4 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x1 - movs r3, 0 - bl Print - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_8166FB0 - - thumb_func_start sub_8166FD4 -sub_8166FD4: @ 8166FD4 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r3, r1, 24 - lsls r2, 16 - lsrs r0, r2, 16 - asrs r2, 16 - cmp r2, 0 - beq _08167010 - cmp r2, 0 - ble _08166FEC - movs r0, 0 -_08166FEC: - lsls r0, 16 - ldr r1, =gUnknown_085DFD04 - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl StringCopy - ldr r1, =gUnknown_085EC7E1 - adds r0, r4, 0 - bl StringAppend - b _08167018 - .pool -_08167010: - ldr r1, =gUnknown_085EC7EF - adds r0, r4, 0 - bl StringCopy -_08167018: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8166FD4 - - thumb_func_start sub_8167024 -sub_8167024: @ 8167024 - push {r4-r7,lr} - adds r6, r0, 0 - adds r5, r1, 0 - movs r4, 0 - ldr r7, =gUnknown_085DFCB0 -_0816702E: - lsls r0, r4, 2 - adds r0, r7 - ldr r1, [r0] - adds r0, r6, 0 - bl GetMonData - adds r1, r5, r4 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _0816702E - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8167024 - - thumb_func_start sub_8167054 -sub_8167054: @ 8167054 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - mov r8, r0 - adds r5, r1, 0 - adds r0, r5, 0 - movs r1, 0x30 - bl GetMonData - cmp r0, 0xFF - beq _081670F0 - mov r0, r8 - adds r1, r5, 0 - bl sub_8167184 - movs r4, 0 - mov r7, sp -_08167078: - ldr r1, =gUnknown_085DFCB0 - lsls r0, r4, 2 - adds r0, r1 - ldr r6, [r0] - adds r0, r5, 0 - adds r1, r6, 0 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - strb r0, [r7] - ldr r1, =gUnknown_0203BC90 - ldr r1, [r1] - lsls r2, r4, 1 - adds r1, 0x66 - adds r1, r2 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r0, 0 - bge _081670A6 - movs r1, 0 -_081670A6: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _081670B0 - movs r1, 0xFF -_081670B0: - strb r1, [r7] - adds r0, r5, 0 - adds r1, r6, 0 - mov r2, sp - bl SetMonData - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _08167078 - adds r0, r5, 0 - movs r1, 0x30 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - mov r2, r8 - ldrb r2, [r2, 0x6] - adds r1, r0, r2 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _081670E2 - movs r1, 0xFF -_081670E2: - mov r0, sp - strb r1, [r0] - adds r0, r5, 0 - movs r1, 0x30 - mov r2, sp - bl SetMonData -_081670F0: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8167054 - - thumb_func_start sub_8167104 -sub_8167104: @ 8167104 - push {r4,r5,lr} - ldr r5, =gPlayerParty - ldr r0, =gUnknown_0203BCAC - ldr r1, [r0] - ldr r2, =0x00008041 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r1, r0 - ldr r0, =0x00007fb9 - adds r1, r0 - ldrb r1, [r1] - movs r0, 0x64 - muls r0, r1 - adds r5, r0, r5 - ldr r4, =gUnknown_0203BC90 - ldr r1, [r4] - adds r1, 0x57 - adds r0, r5, 0 - bl sub_8167024 - ldr r0, [r4] - ldr r0, [r0, 0x8] - adds r1, r5, 0 - bl sub_8167054 - ldr r1, [r4] - adds r1, 0x5C - adds r0, r5, 0 - bl sub_8167024 - movs r3, 0 -_08167144: - ldr r0, [r4] - adds r2, r0, 0 - adds r2, 0x61 - adds r2, r3 - adds r1, r0, 0 - adds r1, 0x5C - adds r1, r3 - adds r0, 0x57 - adds r0, r3 - ldrb r1, [r1] - ldrb r0, [r0] - subs r1, r0 - strb r1, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x4 - bls _08167144 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8167104 - - thumb_func_start sub_8167184 -sub_8167184: @ 8167184 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r10, r1 - ldr r1, =gUnknown_0203BC90 - ldr r3, [r1] - ldrb r1, [r0, 0x1] - adds r2, r3, 0 - adds r2, 0x66 - strh r1, [r2] - ldrb r2, [r0, 0x5] - adds r1, r3, 0 - adds r1, 0x68 - strh r2, [r1] - ldrb r1, [r0, 0x4] - adds r2, r3, 0 - adds r2, 0x6A - strh r1, [r2] - ldrb r2, [r0, 0x3] - adds r1, r3, 0 - adds r1, 0x6C - strh r2, [r1] - ldrb r1, [r0, 0x2] - adds r0, r3, 0 - adds r0, 0x6E - strh r1, [r0] - ldr r0, =gUnknown_0203BC9E - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - ble _081671D4 - movs r0, 0x1 - b _081671DA - .pool -_081671D4: - cmp r0, 0 - bge _08167250 - movs r0, 0xFF -_081671DA: - movs r2, 0 - lsls r0, 24 - mov r9, r0 - ldr r0, =gUnknown_0203BC90 - mov r8, r0 -_081671E4: - mov r0, r8 - ldr r1, [r0] - lsls r0, r2, 24 - asrs r6, r0, 24 - lsls r7, r6, 1 - adds r1, 0x66 - adds r1, r7 - movs r2, 0 - ldrsh r4, [r1, r2] - adds r0, r4, 0 - movs r1, 0xA - bl __divsi3 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - movs r1, 0xA - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0816721C - lsls r0, r5, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r5, r0, 24 -_0816721C: - ldr r0, =gUnknown_085DFCC4 - adds r0, r6, r0 - ldrb r1, [r0] - mov r0, r10 - bl sub_806E858 - lsls r0, 24 - asrs r2, r0, 24 - cmp r0, r9 - bne _08167244 - mov r1, r8 - ldr r0, [r1] - adds r0, 0x66 - adds r0, r7 - lsls r1, r5, 24 - asrs r1, 24 - muls r1, r2 - ldrh r2, [r0] - adds r1, r2 - strh r1, [r0] -_08167244: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - asrs r0, 24 - cmp r0, 0x4 - ble _081671E4 -_08167250: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8167184 - - thumb_func_start sub_8167268 -sub_8167268: @ 8167268 - push {lr} - ldr r0, =gUnknown_0203BCAC - ldr r1, [r0] - ldr r2, =0x00008041 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r1, r0 - subs r2, 0x89 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - movs r2, 0x30 - movs r3, 0 - bl sub_81D2C68 - cmp r0, 0xFF - beq _0816729C - movs r0, 0 - b _0816729E - .pool -_0816729C: - movs r0, 0x1 -_0816729E: - pop {r1} - bx r1 - thumb_func_end sub_8167268 - - thumb_func_start sub_81672A4 -sub_81672A4: @ 81672A4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 -_081672AC: - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _081672D2 - cmp r5, 0 - bne _081672CC - adds r0, r4, 0 - b _081672DE - .pool -_081672CC: - subs r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_081672D2: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _081672AC - movs r0, 0 -_081672DE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81672A4 - - thumb_func_start sub_81672E4 -sub_81672E4: @ 81672E4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - movs r6, 0 - cmp r6, r5 - bcs _08167314 -_081672F2: - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _0816730A - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0816730A: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _081672F2 -_08167314: - subs r0, r5, r6 - lsls r0, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81672E4 - - thumb_func_start sub_8167324 -sub_8167324: @ 8167324 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_81672A4 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_8167324 - - thumb_func_start sub_8167338 -sub_8167338: @ 8167338 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, =gUnknown_085DFD18 - bl LoadSpriteSheet - ldr r0, =gUnknown_085DFD20 - bl LoadSpritePalette - ldr r2, =gUnknown_0203BC90 - ldr r0, [r2] - adds r0, 0x54 - movs r1, 0 - strb r1, [r0] - movs r4, 0 - adds r5, r2, 0 - ldr r6, =gUnknown_085DFD28 - adds r0, r6, 0x2 - mov r8, r0 - ldr r7, =gSprites + 0x1C -_08167360: - ldr r0, [r5] - adds r0, 0x61 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _081673AC - lsls r2, r4, 2 - adds r0, r2, r6 - movs r3, 0 - ldrsh r1, [r0, r3] - add r2, r8 - movs r0, 0 - ldrsh r2, [r2, r0] - ldr r0, =gUnknown_085DFD5C - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _081673AC - ldr r0, [r5] - adds r0, 0x61 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _081673A2 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, =sub_81673DC - str r1, [r0] -_081673A2: - ldr r1, [r5] - adds r1, 0x54 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_081673AC: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _08167360 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8167338 - - thumb_func_start sub_81673DC -sub_81673DC: @ 81673DC - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0x5 - bgt _081673EE - ldrh r0, [r1, 0x26] - subs r0, 0x2 - b _081673F6 -_081673EE: - cmp r0, 0xB - bgt _081673F8 - ldrh r0, [r1, 0x26] - adds r0, 0x2 -_081673F6: - strh r0, [r1, 0x26] -_081673F8: - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _08167418 - adds r0, r1, 0 - bl DestroySprite - ldr r0, =gUnknown_0203BC90 - ldr r1, [r0] - adds r1, 0x54 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_08167418: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81673DC - - thumb_func_start sub_8167420 -sub_8167420: @ 8167420 - push {r4-r6,lr} - movs r4, 0 - movs r5, 0 - ldr r6, =gUnknown_0203BCAC - b _08167472 - .pool -_08167430: - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2D - bl GetMonData - adds r3, r0, 0 - cmp r3, 0 - bne _0816746C - ldr r1, [r6] - lsls r2, r5, 2 - adds r1, r2 - ldr r0, =0x00007fb8 - adds r1, r0 - movs r0, 0xE - strb r0, [r1] - ldr r0, [r6] - adds r0, r2 - ldr r1, =0x00007fb9 - adds r0, r1 - strb r4, [r0] - ldr r0, [r6] - adds r0, r2 - ldr r2, =0x00007fba - adds r0, r2 - strh r3, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_0816746C: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_08167472: - bl calc_player_party_count - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcc _08167430 - ldr r2, =gUnknown_0203BCAC - ldr r0, [r2] - ldr r1, =0x00008041 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - adds r1, r5, 0x1 - ldr r2, =0x00008040 - adds r0, r2 - strb r1, [r0] - bl sub_81674BC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8167420 - - thumb_func_start sub_81674BC -sub_81674BC: @ 81674BC - push {r4,r5,lr} - ldr r4, =gUnknown_0203BCAC - ldr r0, [r4] - ldr r5, =0x00008041 - adds r0, r5 - ldrb r0, [r0] - movs r1, 0 - bl sub_816753C - ldr r0, [r4] - ldr r1, =0x00007fb3 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, [r4] - ldr r2, =0x00007fb4 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r4] - ldr r1, =0x00007fb5 - adds r0, r1 - movs r1, 0x2 - strb r1, [r0] - ldr r0, [r4] - adds r5, r0, r5 - ldrb r3, [r5] - adds r1, r3, 0x1 - adds r2, 0x8C - adds r0, r2 - ldrb r2, [r0] - cmp r1, r2 - blt _08167500 - movs r1, 0 -_08167500: - subs r0, r3, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r0, 0 - bge _08167510 - subs r0, r2, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_08167510: - adds r0, r1, 0 - movs r1, 0x1 - bl sub_816753C - lsls r0, r4, 16 - asrs r0, 16 - movs r1, 0x2 - bl sub_816753C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81674BC - - thumb_func_start sub_816753C -sub_816753C: @ 816753C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - adds r5, r0, 0 - adds r4, r1, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_0203BCAC - mov r9, r0 - ldr r1, [r0] - lsls r5, 16 - asrs r0, r5, 14 - adds r0, r1, r0 - ldr r3, =0x00007fb8 - adds r2, r0, r3 - ldrb r7, [r2] - ldr r2, =0x00007fb9 - adds r0, r2 - ldrb r0, [r0] - mov r10, r0 - adds r3, 0x88 - adds r0, r1, r3 - ldrb r6, [r0] - movs r0, 0 - mov r8, r0 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r2, =0x00007b4d - adds r0, r2 - adds r0, r1, r0 - lsls r2, r4, 6 - ldr r3, =0x00007b95 - adds r2, r3 - adds r1, r2 - lsrs r5, 16 - str r5, [sp] - str r6, [sp, 0x4] - mov r2, r8 - str r2, [sp, 0x8] - adds r2, r7, 0 - mov r3, r10 - bl sub_81D2ED4 - mov r3, r9 - ldr r1, [r3] - ldr r2, =0x00007c58 - adds r0, r1, r2 - ldr r3, =0x00007fb0 - adds r1, r3 - str r5, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - mov r2, r8 - str r2, [sp, 0xC] - adds r2, r7, 0 - mov r3, r10 - bl sub_81D2F78 - lsls r0, r4, 13 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - mov r3, r9 - ldr r1, [r3] - adds r0, r1, r0 - lsls r4, 7 - adds r4, 0x4 - adds r1, r4 - str r5, [sp] - str r6, [sp, 0x4] - mov r2, r8 - str r2, [sp, 0x8] - adds r2, r7, 0 - mov r3, r10 - bl sub_81D3094 - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816753C - - thumb_func_start sub_8167608 -sub_8167608: @ 8167608 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x28 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, =gUnknown_0203BCAC - ldr r3, [r1] - ldr r0, =0x00007b10 - mov r8, r0 - adds r0, r3, r0 - ldrb r0, [r0] - adds r7, r1, 0 - cmp r0, 0xFF - bne _08167714 - add r5, sp, 0x18 - add r4, sp, 0x20 - adds r0, r5, 0 - mov r1, sp - adds r2, r4, 0 - bl sub_81D31D0 - lsls r0, r6, 13 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - ldr r1, [r7] - adds r0, r1, r0 - str r0, [sp, 0x18] - lsls r0, r6, 7 - adds r0, 0x4 - adds r1, r0 - str r1, [sp, 0x20] - adds r0, r4, 0 - bl LoadSpritePalette - ldr r1, [r7] - lsls r0, 24 - lsrs r0, 24 - ldr r2, =0x00007b12 - adds r1, r2 - strh r0, [r1] - adds r0, r5, 0 - bl LoadSpriteSheet - ldr r1, [r7] - ldr r3, =0x00007b14 - adds r1, r3 - strh r0, [r1] - mov r0, sp - movs r1, 0x26 - movs r2, 0x68 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, [r7] - ldr r2, =0x00007b10 - adds r0, r2 - strb r1, [r0] - cmp r1, 0x40 - bne _081676AC - movs r0, 0x64 - bl FreeSpriteTilesByTag - movs r0, 0x64 - bl FreeSpritePaletteByTag - ldr r0, [r7] - add r0, r8 - movs r1, 0xFF - strb r1, [r0] - b _08167742 - .pool -_081676AC: - ldr r0, [r7] - add r0, r8 - strb r1, [r0] - ldr r4, =gSprites - ldr r2, [r7] - mov r0, r8 - adds r3, r2, r0 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_8168168 - str r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x26] - subs r1, 0x22 - strh r1, [r0, 0x26] - ldr r3, =0x00007b18 - adds r1, r2, r3 - subs r3, 0x4 - adds r0, r2, r3 - ldrh r0, [r0] - lsls r0, 5 - ldr r3, =0x06010000 - adds r0, r3 - str r0, [r1] - ldr r0, =0x00007b12 - adds r2, r0 - ldrh r0, [r2] - lsls r0, 4 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r2] - b _08167742 - .pool -_08167714: - lsls r1, r6, 13 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - adds r1, r3, r1 - ldr r2, =0x00007b18 - adds r0, r3, r2 - ldr r2, [r0] - ldr r0, =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, =0x80000400 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - lsls r0, r6, 7 - adds r0, 0x4 - adds r0, r3, r0 - ldr r2, =0x00007b12 - adds r1, r3, r2 - ldrh r1, [r1] - movs r2, 0x20 - bl LoadPalette -_08167742: - add sp, 0x28 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8167608 - - thumb_func_start sub_8167760 -sub_8167760: @ 8167760 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x60 - add r5, sp, 0x20 - add r4, sp, 0x38 - mov r0, sp - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_81D321C - mov r0, sp - bl LoadSpriteSheets - adds r0, r4, 0 - bl LoadSpritePalettes - movs r4, 0 - ldr r1, =gUnknown_0203BCAC - ldr r0, [r1] - ldr r2, =0x00008040 - adds r0, r2 - ldrb r0, [r0] - subs r0, 0x1 - adds r6, r5, 0 - add r2, sp, 0x50 - mov r9, r2 - add r2, sp, 0x58 - mov r10, r2 - cmp r4, r0 - bge _0816781C - adds r5, r1, 0 - ldr r7, =gSprites - movs r0, 0x1C - adds r0, r7 - mov r8, r0 -_081677AC: - lsls r2, r4, 2 - adds r2, r4 - lsls r2, 18 - movs r1, 0x80 - lsls r1, 12 - adds r2, r1 - asrs r2, 16 - adds r0, r6, 0 - movs r1, 0xE2 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _081677FC - ldr r0, [r5] - ldr r2, =0x00007b06 - adds r0, r2 - adds r0, r4 - strb r3, [r0] - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - adds r1, r0, r7 - strh r4, [r1, 0x2E] - add r0, r8 - ldr r1, =sub_8168180 - str r1, [r0] - b _08167808 - .pool -_081677FC: - ldr r0, [r5] - ldr r1, =0x00007b06 - adds r0, r1 - adds r0, r4 - movs r1, 0xFF - strb r1, [r0] -_08167808: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, [r5] - ldr r2, =0x00008040 - adds r0, r2 - ldrb r0, [r0] - subs r0, 0x1 - cmp r4, r0 - blt _081677AC -_0816781C: - movs r0, 0x67 - strh r0, [r6] - cmp r4, 0x5 - bhi _0816788A - ldr r5, =gUnknown_0203BCAC - ldr r7, =gSprites -_08167828: - lsls r2, r4, 2 - adds r2, r4 - lsls r2, 18 - movs r0, 0x80 - lsls r0, 12 - adds r2, r0 - asrs r2, 16 - adds r0, r6, 0 - movs r1, 0xE6 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _08167874 - ldr r0, [r5] - ldr r1, =0x00007b06 - adds r0, r1 - adds r0, r4 - strb r3, [r0] - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - adds r1, r7 - ldrb r2, [r1, 0x3] - movs r0, 0x3F - ands r0, r2 - strb r0, [r1, 0x3] - b _08167880 - .pool -_08167874: - ldr r0, [r5] - ldr r2, =0x00007b06 - adds r0, r2 - adds r0, r4 - movs r1, 0xFF - strb r1, [r0] -_08167880: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x5 - bls _08167828 -_0816788A: - movs r0, 0x66 - strh r0, [r6] - ldr r0, =sub_81681B4 - str r0, [r6, 0x14] - lsls r2, r4, 2 - adds r2, r4 - lsls r2, 18 - movs r0, 0x80 - lsls r0, 12 - adds r2, r0 - asrs r2, 16 - adds r0, r6, 0 - movs r1, 0xDE - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _081678F4 - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r1, =0x00007b06 - adds r0, r1 - adds r0, r4 - strb r3, [r0] - ldr r0, =gSprites - lsls r2, r3, 4 - adds r2, r3 - lsls r2, 2 - adds r2, r0 - ldrb r3, [r2, 0x1] - movs r1, 0x3F - adds r0, r1, 0 - ands r0, r3 - movs r3, 0x40 - orrs r0, r3 - strb r0, [r2, 0x1] - ldrb r0, [r2, 0x3] - ands r1, r0 - movs r0, 0x80 - orrs r1, r0 - strb r1, [r2, 0x3] - b _08167902 - .pool -_081678F4: - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r2, =0x00007b06 - adds r0, r2 - adds r0, r4 - movs r1, 0xFF - strb r1, [r0] -_08167902: - mov r0, r9 - mov r1, r10 - bl sub_81D32B0 - mov r0, r9 - bl LoadSpriteSheet - mov r0, r10 - bl LoadSpritePalette - add sp, 0x60 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8167760 - - thumb_func_start sub_8167930 -sub_8167930: @ 8167930 - push {r4,r5,lr} - sub sp, 0x8 - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r2, =0x00008048 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0xB - bls _08167944 - b _08167B78 -_08167944: - lsls r0, 2 - ldr r1, =_0816795C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0816795C: - .4byte _0816798C - .4byte _08167A04 - .4byte _08167A38 - .4byte _08167A48 - .4byte _08167A5C - .4byte _08167A74 - .4byte _08167A9C - .4byte _08167AB0 - .4byte _08167AD4 - .4byte _08167AEC - .4byte _08167B1C - .4byte _08167B38 -_0816798C: - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r1, 0x88 - lsls r1, 6 - movs r0, 0x3 - movs r2, 0 - bl ChangeBgY - ldr r1, =0x00007040 - movs r0, 0 - bl SetGpuReg - movs r1, 0x91 - lsls r1, 2 - movs r0, 0x50 - bl SetGpuReg - ldr r1, =0x0000040b - movs r0, 0x52 - bl SetGpuReg - b _08167B7E - .pool -_08167A04: - ldr r4, =gUnknown_0203BCA4 - movs r0, 0xD0 - lsls r0, 5 - bl Alloc - str r0, [r4] - ldr r5, =gUnknown_0203BCA0 - movs r4, 0xA0 - lsls r4, 3 - adds r0, r4, 0 - bl Alloc - str r0, [r5] - ldr r5, =gUnknown_0203BCA8 - adds r0, r4, 0 - bl Alloc - str r0, [r5] - b _08167B7E - .pool -_08167A38: - ldr r0, =gUnknown_085DFB60 - ldr r1, =gUnknown_0203BCA8 - b _08167AA0 - .pool -_08167A48: - ldr r1, =gUnknown_085DFA80 - movs r0, 0x3 - movs r2, 0xE0 - movs r3, 0 - bl LoadBgTiles - b _08167B7E - .pool -_08167A5C: - ldr r0, =gUnknown_0203BCA8 - ldr r1, [r0] - movs r2, 0xA0 - lsls r2, 3 - movs r0, 0x3 - movs r3, 0 - bl LoadBgTilemap - b _08167B7E - .pool -_08167A74: - ldr r0, =gUnknown_085DFA60 - movs r1, 0xD0 - movs r2, 0x20 - bl LoadPalette - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r1, =0x00007b0e - adds r0, r1 - ldr r1, =0x0000ffb0 - strh r1, [r0] - b _08167B7E - .pool -_08167A9C: - ldr r0, =gUnknown_08DCCF7C - ldr r1, =gUnknown_0203BCA4 -_08167AA0: - ldr r1, [r1] - bl LZ77UnCompVram - b _08167B7E - .pool -_08167AB0: - ldr r0, =gUnknown_08DCD81C - ldr r1, =gUnknown_0203BCA0 - ldr r1, [r1] - bl LZ77UnCompVram - ldr r0, =gUnknown_08DCCF5C - movs r1, 0x20 - movs r2, 0x20 - bl LoadPalette - b _08167B7E - .pool -_08167AD4: - ldr r0, =gUnknown_0203BCA4 - ldr r1, [r0] - movs r2, 0xD0 - lsls r2, 5 - movs r3, 0xA0 - lsls r3, 2 - movs r0, 0x1 - bl LoadBgTiles - b _08167B7E - .pool -_08167AEC: - ldr r0, =gUnknown_0203BCA0 - ldr r1, [r0] - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, =gUnknown_08DCDA30 - movs r0, 0xC - str r0, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0 - movs r3, 0xD - bl CopyToBgTilemapBufferRect - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - b _08167B7E - .pool -_08167B1C: - ldr r0, =gUnknown_085DFC0C - ldr r1, =gUnknown_0203BCAC - ldr r1, [r1] - ldr r2, =0x00007304 - adds r1, r2 - bl LZ77UnCompVram - b _08167B7E - .pool -_08167B38: - ldr r0, =gUnknown_0203BCAC - ldr r1, [r0] - ldr r0, =0x00007304 - adds r1, r0 - movs r2, 0xA0 - lsls r2, 3 - movs r0, 0x2 - movs r3, 0 - bl LoadBgTilemap - ldr r0, =gUnknown_086231E8 - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r0, =gUnknown_08623208 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - movs r0, 0x2 - bl sub_81D21DC - b _08167B7E - .pool -_08167B78: - movs r0, 0 - strb r0, [r1] - b _08167B8E -_08167B7E: - ldr r0, =gUnknown_0203BCAC - ldr r1, [r0] - ldr r2, =0x00008048 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0x1 -_08167B8E: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8167930 - - thumb_func_start sub_8167BA0 -sub_8167BA0: @ 8167BA0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - movs r0, 0 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r7, =gUnknown_0203BCAC - ldr r3, [r7] - ldr r1, =0x00008041 - adds r0, r3, r1 - ldrb r1, [r0] - ldr r2, =0x00008040 - adds r0, r3, r2 - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - beq _08167C46 - lsls r2, r4, 6 - ldr r0, =0x00007b95 - adds r2, r0 - adds r2, r3, r2 - movs r0, 0x1 - str r0, [sp] - movs r5, 0 - str r5, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl Print - ldr r0, [r7] - ldr r1, =0x00008041 - adds r0, r1 - ldrb r0, [r0] - bl sub_81672A4 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - bl GetNature - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, [r7] - ldr r6, =0x0000804a - adds r0, r6 - ldr r1, =gUnknown_085EBF8D - bl StringCopy - ldr r1, =gNatureNamePointers - lsls r4, 2 - adds r4, r1 - ldr r1, [r4] - bl StringCopy - ldr r0, =gUnknown_085DFCC9 - str r0, [sp] - str r5, [sp, 0x4] - ldr r0, [r7] - adds r0, r6 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x1 - bl box_print -_08167C46: - mov r2, r8 - cmp r2, 0 - beq _08167C84 - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - movs r0, 0x1 - movs r1, 0x3 - bl CopyWindowToVram - b _08167C94 - .pool -_08167C84: - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram -_08167C94: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8167BA0 - - thumb_func_start sub_8167CA0 -sub_8167CA0: @ 8167CA0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0 - beq _08167CC0 - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r1, =0x00007fb5 - adds r0, r1 - b _08167CC8 - .pool -_08167CC0: - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r2, =0x00007fb4 - adds r0, r2 -_08167CC8: - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r5, =gUnknown_0203BCAC - ldr r2, [r5] - ldr r3, =0x00007c58 - adds r0, r2, r3 - ldr r4, =0x00007fb3 - adds r1, r2, r4 - movs r3, 0 - ldrsb r3, [r1, r3] - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 2 - ldr r4, =0x00007c6c - adds r1, r4 - adds r1, r2, r1 - lsls r3, r6, 2 - adds r3, r6 - lsls r3, 2 - adds r3, r4 - adds r2, r3 - bl sub_81D1F84 - ldr r4, [r5] - ldr r1, =0x00008041 - adds r0, r4, r1 - ldrb r1, [r0] - ldr r2, =0x00008040 - mov r12, r2 - adds r0, r4, r2 - ldrb r0, [r0] - subs r0, 0x1 - eors r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - mov r8, r0 - cmp r7, 0 - beq _08167D98 - ldr r3, =0x00007fb4 - adds r0, r4, r3 - ldrb r1, [r0] - subs r2, 0x8B - adds r0, r4, r2 - strb r1, [r0] - ldr r0, [r5] - ldr r4, =0x00007fb3 - adds r1, r0, r4 - ldrb r1, [r1] - adds r0, r3 - strb r1, [r0] - ldr r0, [r5] - adds r0, r4 - strb r6, [r0] - ldr r0, [r5] - adds r2, r0, r2 - ldrb r1, [r2] - ldr r2, =0x00007fb6 - adds r0, r2 - strb r1, [r0] - ldr r1, [r5] - adds r3, 0x8D - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _08167D58 - mov r4, r12 - adds r0, r1, r4 - ldrb r0, [r0] -_08167D58: - subs r2, r0, 0x1 - ldr r0, =0x00008041 - adds r1, r0 - strb r2, [r1] - ldr r1, =gUnknown_0203BCAC - ldr r3, [r1] - adds r0, r3, r0 - ldrb r0, [r0] - adds r6, r1, 0 - cmp r0, 0 - bne _08167D74 - ldr r1, =0x00008040 - adds r0, r3, r1 - ldrb r0, [r0] -_08167D74: - subs r1, r0, 0x1 - b _08167E1E - .pool -_08167D98: - ldr r3, =0x00007fb5 - adds r0, r4, r3 - ldrb r1, [r0] - ldr r2, =0x00007fb4 - adds r0, r4, r2 - strb r1, [r0] - ldr r0, [r5] - ldr r4, =0x00007fb3 - adds r1, r0, r4 - ldrb r1, [r1] - adds r0, r3 - strb r1, [r0] - ldr r0, [r5] - adds r0, r4 - strb r6, [r0] - ldr r0, [r5] - adds r2, r0, r2 - ldrb r1, [r2] - ldr r2, =0x00007fb6 - adds r0, r2 - strb r1, [r0] - ldr r2, [r5] - adds r3, 0x8C - adds r0, r2, r3 - ldrb r1, [r0] - adds r4, 0x8D - adds r0, r2, r4 - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bge _08167DEC - adds r3, r1, 0x1 - b _08167DEE - .pool -_08167DEC: - movs r3, 0 -_08167DEE: - ldr r1, =0x00008041 - adds r0, r2, r1 - strb r3, [r0] - ldr r2, =gUnknown_0203BCAC - ldr r3, [r2] - adds r1, r3, r1 - ldrb r1, [r1] - ldr r4, =0x00008040 - adds r0, r3, r4 - ldrb r0, [r0] - subs r0, 0x1 - adds r6, r2, 0 - cmp r1, r0 - bge _08167E1C - adds r1, 0x1 - b _08167E1E - .pool -_08167E1C: - movs r1, 0 -_08167E1E: - ldr r2, =0x00007b4c - adds r0, r3, r2 - strb r1, [r0] - adds r5, r6, 0 - ldr r0, [r5] - ldr r3, =0x00008041 - adds r1, r0, r3 - ldrb r2, [r1] - ldr r4, =0x00008040 - adds r1, r0, r4 - ldrb r1, [r1] - subs r1, 0x1 - eors r2, r1 - negs r1, r2 - orrs r1, r2 - lsrs r4, r1, 31 - ldr r1, =0x00007b1c - adds r0, r1 - bl sub_81D3520 - mov r2, r8 - cmp r2, 0 - bne _08167E70 - ldr r0, [r5] - ldr r3, =0x00008044 - adds r0, r3 - ldr r1, =sub_8167EA4 - b _08167E90 - .pool -_08167E70: - cmp r4, 0 - bne _08167E88 - ldr r0, [r5] - ldr r4, =0x00008044 - adds r0, r4 - ldr r1, =sub_8167FA4 - b _08167E90 - .pool -_08167E88: - ldr r0, [r6] - ldr r1, =0x00008044 - adds r0, r1 - ldr r1, =sub_8168048 -_08167E90: - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8167CA0 - - thumb_func_start sub_8167EA4 -sub_8167EA4: @ 8167EA4 - push {r4-r6,lr} - ldr r4, =gUnknown_0203BCAC - ldr r1, [r4] - ldr r5, =0x00008048 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08167EE4 - cmp r0, 0x1 - bgt _08167EC8 - cmp r0, 0 - beq _08167ED2 - b _08167F9C - .pool -_08167EC8: - cmp r0, 0x2 - beq _08167F08 - cmp r0, 0x3 - beq _08167F48 - b _08167F9C -_08167ED2: - ldr r2, =0x00007fb3 - adds r0, r1, r2 - ldrb r0, [r0] - bl sub_8167608 - b _08167F2C - .pool -_08167EE4: - ldr r6, =0x00007fb3 - adds r0, r1, r6 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl sub_8167BA0 - ldr r1, [r4] - ldr r0, =0x00008048 - adds r1, r0 - b _08167F30 - .pool -_08167F08: - ldr r2, =0x00007c58 - adds r0, r1, r2 - ldr r6, =0x00007b0e - adds r1, r6 - bl sub_81D3178 - lsls r0, 24 - cmp r0, 0 - bne _08167F9C - ldr r1, [r4] - ldr r2, =0x00007b4c - adds r0, r1, r2 - ldrb r0, [r0] - ldr r6, =0x00007fb6 - adds r1, r6 - ldrb r1, [r1] - bl sub_816753C -_08167F2C: - ldr r1, [r4] - adds r1, r5 -_08167F30: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08167F9C - .pool -_08167F48: - ldr r2, =0x00007b1c - adds r0, r1, r2 - bl sub_81D3464 - ldr r3, [r4] - ldr r6, =0x00008041 - adds r0, r3, r6 - ldrb r1, [r0] - ldr r2, =0x00008040 - adds r0, r3, r2 - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - beq _08167F82 - subs r6, 0x8E - adds r0, r3, r6 - movs r1, 0 - ldrsb r1, [r0, r1] - subs r2, 0x90 - adds r0, r3, r2 - adds r0, r1 - ldrb r2, [r0] - ldr r6, =0x00007b1c - adds r0, r3, r6 - subs r6, 0xC - adds r1, r3, r6 - ldrb r1, [r1] - bl sub_81D3480 -_08167F82: - ldr r0, [r4] - adds r0, r5 - movs r1, 0 - strb r1, [r0] - movs r0, 0 - b _08167F9E - .pool -_08167F9C: - movs r0, 0x1 -_08167F9E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8167EA4 - - thumb_func_start sub_8167FA4 -sub_8167FA4: @ 8167FA4 - push {r4,r5,lr} - ldr r4, =gUnknown_0203BCAC - ldr r1, [r4] - ldr r5, =0x00008048 - adds r2, r1, r5 - ldrb r0, [r2] - cmp r0, 0x1 - beq _08167FF0 - cmp r0, 0x1 - bgt _08167FC8 - cmp r0, 0 - beq _08167FD2 - b _0816803E - .pool -_08167FC8: - cmp r0, 0x2 - beq _08168014 - cmp r0, 0x3 - beq _08168038 - b _0816803E -_08167FD2: - ldr r2, =0x00007c58 - adds r0, r1, r2 - ldr r2, =0x00007b0e - adds r1, r2 - bl sub_81D31A4 - lsls r0, 24 - cmp r0, 0 - bne _0816803E - b _08168024 - .pool -_08167FF0: - ldr r2, =0x00007fb3 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl sub_8167BA0 - ldr r1, [r4] - ldr r0, =0x00008048 - adds r1, r0 - b _08168028 - .pool -_08168014: - ldr r2, =0x00007b4c - adds r0, r1, r2 - ldrb r0, [r0] - ldr r2, =0x00007fb6 - adds r1, r2 - ldrb r1, [r1] - bl sub_816753C -_08168024: - ldr r1, [r4] - adds r1, r5 -_08168028: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0816803E - .pool -_08168038: - movs r0, 0 - strb r0, [r2] - b _08168040 -_0816803E: - movs r0, 0x1 -_08168040: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8167FA4 - - thumb_func_start sub_8168048 -sub_8168048: @ 8168048 - push {r4-r6,lr} - ldr r4, =gUnknown_0203BCAC - ldr r1, [r4] - ldr r5, =0x00008048 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, 0x1 - beq _081680A8 - cmp r0, 0x1 - bgt _0816806C - cmp r0, 0 - beq _08168076 - b _08168160 - .pool -_0816806C: - cmp r0, 0x2 - beq _081680CC - cmp r0, 0x3 - beq _0816810C - b _08168160 -_08168076: - ldr r2, =0x00007c58 - adds r0, r1, r2 - bl sub_81D2074 - ldr r0, [r4] - ldr r6, =0x00007b0e - adds r0, r6 - bl sub_81D3150 - lsls r0, 24 - cmp r0, 0 - bne _08168160 - ldr r0, [r4] - ldr r1, =0x00007fb3 - adds r0, r1 - ldrb r0, [r0] - bl sub_8167608 - b _081680F0 - .pool -_081680A8: - ldr r2, =0x00007fb3 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl sub_8167BA0 - ldr r1, [r4] - ldr r6, =0x00008048 - adds r1, r6 - b _081680F4 - .pool -_081680CC: - ldr r2, =0x00007c58 - adds r0, r1, r2 - ldr r6, =0x00007b0e - adds r1, r6 - bl sub_81D3178 - lsls r0, 24 - cmp r0, 0 - bne _08168160 - ldr r1, [r4] - ldr r2, =0x00007b4c - adds r0, r1, r2 - ldrb r0, [r0] - ldr r6, =0x00007fb6 - adds r1, r6 - ldrb r1, [r1] - bl sub_816753C -_081680F0: - ldr r1, [r4] - adds r1, r5 -_081680F4: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08168160 - .pool -_0816810C: - ldr r2, =0x00007b1c - adds r0, r1, r2 - bl sub_81D3464 - ldr r3, [r4] - ldr r6, =0x00008041 - adds r0, r3, r6 - ldrb r1, [r0] - ldr r2, =0x00008040 - adds r0, r3, r2 - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - beq _08168146 - subs r6, 0x8E - adds r0, r3, r6 - movs r1, 0 - ldrsb r1, [r0, r1] - subs r2, 0x90 - adds r0, r3, r2 - adds r0, r1 - ldrb r2, [r0] - ldr r6, =0x00007b1c - adds r0, r3, r6 - subs r6, 0xC - adds r1, r3, r6 - ldrb r1, [r1] - bl sub_81D3480 -_08168146: - ldr r0, [r4] - adds r0, r5 - movs r1, 0 - strb r1, [r0] - movs r0, 0 - b _08168162 - .pool -_08168160: - movs r0, 0x1 -_08168162: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8168048 - - thumb_func_start sub_8168168 -sub_8168168: @ 8168168 - ldr r1, =gUnknown_0203BCAC - ldr r1, [r1] - ldr r2, =0x00007b0e - adds r1, r2 - ldrh r1, [r1] - adds r1, 0x26 - strh r1, [r0, 0x20] - bx lr - .pool - thumb_func_end sub_8168168 - - thumb_func_start sub_8168180 -sub_8168180: @ 8168180 - push {lr} - adds r2, r0, 0 - movs r0, 0x2E - ldrsh r1, [r2, r0] - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r3, =0x00008041 - adds r0, r3 - ldrb r0, [r0] - cmp r1, r0 - bne _081681A8 - adds r0, r2, 0 - movs r1, 0 - bl StartSpriteAnim - b _081681B0 - .pool -_081681A8: - adds r0, r2, 0 - movs r1, 0x1 - bl StartSpriteAnim -_081681B0: - pop {r0} - bx r0 - thumb_func_end sub_8168180 - - thumb_func_start sub_81681B4 -sub_81681B4: @ 81681B4 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r2, =0x00008041 - adds r1, r0, r2 - ldrb r1, [r1] - subs r2, 0x1 - adds r0, r2 - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bne _081681DC - movs r0, 0x65 - b _081681DE - .pool -_081681DC: - movs r0, 0x66 -_081681DE: - bl IndexOfSpritePaletteTag - lsls r0, 4 - ldrb r2, [r4, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81681B4 - - thumb_func_start sub_81681F4 -sub_81681F4: @ 81681F4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x30 - bl GetMonData - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r3, =0x00007fb3 - adds r1, r0, r3 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - subs r3, 0x3 - adds r0, r3 - adds r4, r0, r1 - cmp r2, 0xFF - beq _0816823C - adds r0, r2, 0 - movs r1, 0x1D - bl __udivsi3 - b _0816823E - .pool -_0816823C: - movs r0, 0x9 -_0816823E: - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81681F4 - - thumb_func_start sub_8168248 -sub_8168248: @ 8168248 - push {lr} - sub sp, 0x10 - ldr r0, =gUnknown_085DFDB8 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x8] - str r1, [sp, 0xC] - ldr r0, =gUnknown_08DCCBB8 - str r0, [sp] - ldr r1, =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0x80 - lsls r1, 4 - orrs r0, r1 - ldr r1, =0x0000ffff - ands r0, r1 - adds r1, 0x1 - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadCompressedObjectPic - add r0, sp, 0x8 - bl LoadSpritePalette - add sp, 0x10 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8168248 - - thumb_func_start sub_8168294 -sub_8168294: @ 8168294 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gUnknown_0203BCAC - ldr r0, [r0] - ldr r1, =0x00007b44 - adds r7, r0, r1 - ldr r0, =gUnknown_085DFDA0 - mov r10, r0 - movs r6, 0 - movs r1, 0x40 - mov r9, r1 - movs r0, 0x60 - negs r0, r0 - mov r8, r0 -_081682B6: - mov r5, r9 - muls r5, r6 - mov r0, r8 - adds r1, r0, r5 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x11 - lsls r2, r0, 16 - mov r0, r10 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _081682FE - ldr r0, =gSprites - lsls r4, r1, 4 - adds r4, r1 - lsls r4, 2 - adds r4, r0 - movs r1, 0x8 - strh r1, [r4, 0x2E] - movs r0, 0x20 - orrs r5, r0 - strh r5, [r4, 0x30] - strh r6, [r4, 0x32] - lsls r1, r6, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - lsls r0, r6, 2 - adds r0, r7 - str r4, [r0] -_081682FE: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x1 - bls _081682B6 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8168294 - - thumb_func_start sub_8168328 -sub_8168328: @ 8168328 - push {r4,r5,lr} - ldr r4, =gUnknown_0203BCAC - ldr r0, [r4] - ldr r5, =0x00008048 - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0 - beq _08168348 - cmp r0, 0x1 - beq _08168360 - b _0816836C - .pool -_08168348: - bl sub_8168248 - ldr r1, [r4] - ldr r0, =0x00008048 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0x1 - b _0816836E - .pool -_08168360: - bl sub_8168294 - ldr r0, [r4] - adds r0, r5 - movs r1, 0 - strb r1, [r0] -_0816836C: - movs r0, 0 -_0816836E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8168328 - - thumb_func_start sub_8168374 -sub_8168374: @ 8168374 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x20] - ldrh r1, [r2, 0x2E] - adds r3, r0, r1 - strh r3, [r2, 0x20] - lsls r0, 16 - asrs r4, r0, 16 - movs r0, 0x30 - ldrsh r1, [r2, r0] - cmp r4, r1 - bgt _08168398 - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, r1 - bge _081683A0 - cmp r4, r1 - blt _081683A8 -_08168398: - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, r1 - bgt _081683A8 -_081683A0: - ldrh r0, [r2, 0x30] - strh r0, [r2, 0x20] - ldr r0, =SpriteCallbackDummy - str r0, [r2, 0x1C] -_081683A8: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8168374 .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_8161F74.s b/asm/rom_8161F74.s new file mode 100644 index 000000000..1971267b9 --- /dev/null +++ b/asm/rom_8161F74.s @@ -0,0 +1,11568 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_8161F74 +sub_8161F74: @ 8161F74 + push {lr} + ldr r1, =gUnknown_085DF96C + ldr r0, =gSpecialVar_0x8004 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8161F74 + + thumb_func_start sub_8161F94 +sub_8161F94: @ 8161F94 + push {r4-r7,lr} + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r5, r0, 30 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, [r4] + ldr r2, =0x00000ca8 + adds r0, r2 + movs r7, 0 + movs r1, 0x1 + strb r1, [r0] + ldr r1, [r4] + adds r2, 0xA + adds r0, r1, r2 + strh r7, [r0] + ldr r0, =0x00000ca9 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, [r4] + ldr r2, =0x00000ca9 + adds r1, r2 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + bl sub_81A3ACC + ldr r4, [r4] + ldr r0, =0x00000cdc + adds r3, r4, r0 + ldr r2, =gUnknown_085DF9AC + lsls r1, r5, 2 + lsls r0, r6, 3 + adds r1, r0 + adds r1, r2 + ldr r0, [r3] + ldr r1, [r1] + ands r0, r1 + cmp r0, 0 + bne _0816200E + lsls r0, r5, 1 + lsls r1, r6, 2 + adds r0, r1 + movs r2, 0xCE + lsls r2, 4 + adds r1, r4, r2 + adds r1, r0 + strh r7, [r1] +_0816200E: + bl sub_8164ED8 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r1, 0x4 + ldrsb r1, [r0, r1] + movs r2, 0x5 + ldrsb r2, [r0, r2] + movs r3, 0x1 + negs r3, r3 + movs r0, 0 + bl saved_warp2_set + ldr r0, =gUnknown_02038BCA + strh r7, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8161F94 + + thumb_func_start sub_8162054 +sub_8162054: @ 8162054 + push {r4-r6,lr} + ldr r5, =gSaveBlock2Ptr + ldr r0, [r5] + ldr r4, =0x00000ca9 + adds r0, r4 + ldrb r0, [r0] + lsls r0, 30 + lsrs r6, r0, 30 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0x1 + beq _08162094 + cmp r0, 0x1 + ble _081620E8 + cmp r0, 0x2 + beq _081620A8 + cmp r0, 0x3 + beq _081620D8 + b _081620E8 + .pool +_08162094: + adds r0, r6, 0 + lsls r1, 24 + lsrs r1, 24 + bl sub_8164FCC + ldr r1, =gScriptResult + strh r0, [r1] + b _081620E8 + .pool +_081620A8: + ldr r4, =gScriptResult + ldr r2, [r5] + ldr r0, =0x00000cdc + adds r2, r0 + ldr r3, =gUnknown_085DF9AC + lsls r0, r6, 2 + lsls r1, 3 + adds r0, r1 + adds r0, r3 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + strh r0, [r4] + b _081620E8 + .pool +_081620D8: + ldr r1, [r5] + adds r0, r1, r4 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 30 + ldr r2, =0x00000d07 + adds r1, r2 + strb r0, [r1] +_081620E8: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8162054 + + thumb_func_start sub_81620F4 +sub_81620F4: @ 81620F4 + push {r4-r7,lr} + ldr r6, =gSaveBlock2Ptr + ldr r0, [r6] + ldr r7, =0x00000ca9 + adds r0, r7 + ldrb r0, [r0] + lsls r0, 30 + lsrs r5, r0, 30 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0x1 + beq _08162134 + cmp r0, 0x1 + ble _081621B4 + cmp r0, 0x2 + beq _08162150 + cmp r0, 0x3 + beq _081621A4 + b _081621B4 + .pool +_08162134: + ldr r2, [r6] + lsls r0, r5, 1 + lsls r1, r4, 2 + adds r0, r1 + movs r1, 0xCE + lsls r1, 4 + adds r2, r1 + adds r2, r0 + ldr r0, =gSpecialVar_0x8006 + ldrh r0, [r0] + strh r0, [r2] + b _081621B4 + .pool +_08162150: + ldr r0, =gSpecialVar_0x8006 + ldrh r0, [r0] + cmp r0, 0 + beq _08162180 + ldr r2, [r6] + ldr r0, =0x00000cdc + adds r2, r0 + ldr r3, =gUnknown_085DF9AC + lsls r1, r5, 2 + lsls r0, r4, 3 + adds r1, r0 + adds r1, r3 + ldr r0, [r2] + ldr r1, [r1] + orrs r0, r1 + str r0, [r2] + b _081621B4 + .pool +_08162180: + ldr r2, [r6] + ldr r1, =0x00000cdc + adds r2, r1 + ldr r3, =gUnknown_085DF9CC + lsls r1, r5, 2 + lsls r0, r4, 3 + adds r1, r0 + adds r1, r3 + ldr r0, [r2] + ldr r1, [r1] + ands r0, r1 + str r0, [r2] + b _081621B4 + .pool +_081621A4: + ldr r1, [r6] + adds r0, r1, r7 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 30 + ldr r2, =0x00000d07 + adds r1, r2 + strb r0, [r1] +_081621B4: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81620F4 + + thumb_func_start sub_81621C0 +sub_81621C0: @ 81621C0 + push {r4,r5,lr} + ldr r0, =gUnknown_02038BCA + ldrh r1, [r0] + movs r0, 0xFA + lsls r0, 1 + cmp r1, r0 + bne _081621DA + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000bec + adds r0, r1 + bl sub_816534C +_081621DA: + ldr r5, =gSaveBlock2Ptr + ldr r0, [r5] + ldr r1, =0x00000d04 + adds r2, r0, r1 + ldrh r1, [r2] + ldr r0, =0x0000270e + cmp r1, r0 + bhi _081621EE + adds r0, r1, 0x1 + strh r0, [r2] +_081621EE: + ldr r1, [r5] + ldr r4, =0x00000cb2 + adds r1, r4 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + bl sub_8163E90 + ldr r1, =gScriptResult + ldr r0, [r5] + adds r0, r4 + ldrh r0, [r0] + strh r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81621C0 + + thumb_func_start sub_816222C +sub_816222C: @ 816222C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x3C + movs r0, 0 + str r0, [sp, 0x24] + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 30 + mov r10, r0 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x2C] + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + cmp r0, 0 + beq _08162266 + b _0816239C +_08162266: + mov r0, r10 + ldr r1, [sp, 0x2C] + bl sub_8164FCC + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x28] + movs r7, 0 + mov r2, sp + str r2, [sp, 0x34] +_0816227A: + movs r3, 0xEC + adds r0, r7, 0 + muls r0, r3 + movs r4, 0xE7 + lsls r4, 3 + adds r0, r4 + ldr r5, =gSaveBlock2Ptr + ldr r1, [r5] + movs r2, 0 + mov r8, r2 + mov r9, r2 + movs r5, 0 + adds r3, r7, 0x1 + str r3, [sp, 0x30] + adds r1, r0 +_08162298: + ldm r1!, {r0} + mov r4, r8 + orrs r4, r0 + mov r8, r4 + add r9, r0 + adds r5, 0x1 + cmp r5, 0x39 + bls _08162298 + movs r6, 0 + movs r5, 0 + movs r0, 0xEC + adds r2, r7, 0 + muls r2, r0 +_081622B2: + ldr r3, =gSaveBlock2Ptr + ldr r1, [r3] + movs r0, 0x2C + muls r0, r5 + adds r0, r2 + adds r1, r0 + ldr r4, =0x0000076c + adds r0, r1, r4 + ldrh r0, [r0] + cmp r0, 0 + beq _081622E4 + movs r0, 0xEF + lsls r0, 3 + adds r4, r1, r0 + mov r0, r10 + str r2, [sp, 0x38] + bl sub_8165C90 + ldrb r1, [r4] + lsls r0, 24 + lsrs r0, 24 + ldr r2, [sp, 0x38] + cmp r1, r0 + bhi _081622E4 + adds r6, 0x1 +_081622E4: + adds r5, 0x1 + cmp r5, 0x3 + ble _081622B2 + ldr r0, =gUnknown_085DF9F6 + ldr r1, [sp, 0x2C] + adds r0, r1, r0 + ldrb r0, [r0] + cmp r6, r0 + blt _0816233E + ldr r3, =gSaveBlock2Ptr + ldr r2, [r3] + movs r4, 0xEC + adds r3, r7, 0 + muls r3, r4 + adds r1, r2, r3 + ldr r5, =0x0000073a + adds r0, r1, r5 + ldrh r0, [r0] + ldr r4, [sp, 0x28] + cmp r0, r4 + bne _0816233E + subs r5, 0x2 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, r10 + bne _0816233E + mov r0, r8 + cmp r0, 0 + beq _0816233E + movs r1, 0x82 + lsls r1, 4 + adds r0, r2, r1 + adds r0, r3 + ldr r0, [r0] + cmp r0, r9 + bne _0816233E + movs r2, 0x96 + lsls r2, 1 + adds r0, r7, r2 + ldr r3, [sp, 0x34] + stm r3!, {r0} + str r3, [sp, 0x34] + ldr r4, [sp, 0x24] + adds r4, 0x1 + str r4, [sp, 0x24] +_0816233E: + ldr r7, [sp, 0x30] + cmp r7, 0x4 + ble _0816227A + ldr r5, [sp, 0x2C] + cmp r5, 0 + bne _08162396 + bl sub_8165B20 + movs r7, 0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r4, =gUnknown_085DF9EC + adds r2, r0, 0 + adds r2, 0xDC + ldr r1, [sp, 0x24] + lsls r0, r1, 2 + mov r5, sp + adds r3, r0, r5 +_08162362: + ldrb r0, [r2] + lsls r1, r0, 25 + lsrs r0, r1, 30 + cmp r0, 0 + beq _0816238E + ldrb r0, [r2, 0x1] + adds r0, r4 + ldrb r0, [r0] + ldr r5, [sp, 0x28] + cmp r0, r5 + bne _0816238E + lsrs r0, r1, 30 + subs r0, 0x1 + cmp r0, r10 + bne _0816238E + movs r1, 0xC8 + lsls r1, 1 + adds r0, r7, r1 + stm r3!, {r0} + ldr r5, [sp, 0x24] + adds r5, 0x1 + str r5, [sp, 0x24] +_0816238E: + adds r2, 0x44 + adds r7, 0x1 + cmp r7, 0x3 + ble _08162362 +_08162396: + ldr r0, [sp, 0x24] + cmp r0, 0 + bne _081623C0 +_0816239C: + movs r0, 0 + b _081623DA + .pool +_081623C0: + ldr r4, =gUnknown_02038BCA + bl Random + lsls r0, 16 + lsrs r0, 16 + ldr r1, [sp, 0x24] + bl __modsi3 + lsls r0, 2 + add r0, sp + ldr r0, [r0] + strh r0, [r4] + movs r0, 0x1 +_081623DA: + add sp, 0x3C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_816222C + + thumb_func_start sub_81623F0 +sub_81623F0: @ 81623F0 + push {r4-r7,lr} + ldr r6, =gSaveBlock2Ptr + ldr r0, [r6] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 30 + cmp r0, 0x2 + bne _08162414 + bl sub_8165E18 + b _08162530 + .pool +_08162414: + ldr r0, =0x000040ce + bl VarGet + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl sub_81A39C4 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x7 + bl __udivsi3 + lsls r0, 16 + lsrs r5, r0, 16 + bl sub_8165C40 + subs r4, 0x2 + cmp r4, 0x1 + bhi _08162488 + ldr r1, [r6] + ldr r2, =0x00000cb2 + adds r0, r1, r2 + ldrh r3, [r0] + ldr r2, =gUnknown_02038BCA + lsls r0, r3, 2 + ldr r4, =0x00000cb4 + adds r1, r4 + adds r0, r1, r0 + ldrh r0, [r0] + strh r0, [r2] + ldr r4, =gUnknown_02038BCC + lsls r0, r3, 1 + adds r0, 0x1 + lsls r0, 1 + adds r1, r0 + ldrh r0, [r1] + strh r0, [r4] + ldrh r0, [r2] + movs r1, 0 + bl sub_8162614 + ldrh r0, [r4] + movs r1, 0x1 + bl sub_8162614 + b _08162530 + .pool +_08162488: + bl sub_816222C + lsls r0, 24 + cmp r0, 0 + beq _081624B4 + ldr r4, =gUnknown_02038BCA + ldrh r0, [r4] + movs r1, 0 + bl sub_8162614 + ldr r1, [r6] + ldr r2, =0x00000cb2 + adds r0, r1, r2 + ldrh r0, [r0] + lsls r0, 1 + adds r2, 0x2 + b _08162528 + .pool +_081624B4: + lsls r7, r5, 24 + adds r5, r6, 0 + ldr r6, =0x00000cb2 +_081624BA: + ldr r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsrs r0, r7, 24 + bl sub_8162548 + lsls r0, 16 + lsrs r3, r0, 16 + movs r4, 0 + ldr r1, [r5] + adds r0, r1, r6 + ldrh r0, [r0] + cmp r4, r0 + bge _081624FC + ldr r2, =0x00000cb4 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, r3 + beq _081624FC + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + subs r2, 0x2 + adds r0, r1, r2 + ldrh r2, [r0] + ldr r0, =0x00000cb4 + adds r1, r0 +_081624EE: + adds r1, 0x2 + adds r4, 0x1 + cmp r4, r2 + bge _081624FC + ldrh r0, [r1] + cmp r0, r3 + bne _081624EE +_081624FC: + ldr r0, [r5] + ldr r1, =0x00000cb2 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + bne _081624BA + ldr r4, =gUnknown_02038BCA + strh r3, [r4] + ldrh r0, [r4] + movs r1, 0 + bl sub_8162614 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r2, =0x00000cb2 + adds r0, r1, r2 + ldrh r2, [r0] + adds r0, r2, 0x1 + cmp r0, 0x6 + bgt _08162530 + lsls r0, r2, 1 + ldr r2, =0x00000cb4 +_08162528: + adds r1, r2 + adds r1, r0 + ldrh r0, [r4] + strh r0, [r1] +_08162530: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81623F0 + + thumb_func_start sub_8162548 +sub_8162548: @ 8162548 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r3, r0, 0 + lsls r1, 24 + lsrs r1, 24 + cmp r0, 0x7 + bhi _08162584 + cmp r1, 0x6 + bne _08162570 + ldr r2, =gUnknown_085DFA1A + lsls r1, r0, 2 + adds r0, r2, 0x2 + adds r0, r1, r0 + adds r1, r2 + ldrh r0, [r0] + ldrh r4, [r1] + b _0816258A + .pool +_08162570: + ldr r2, =gUnknown_085DF9FA + lsls r1, r3, 2 + adds r0, r2, 0x2 + adds r0, r1, r0 + adds r1, r2 + ldrh r0, [r0] + ldrh r4, [r1] + b _0816258A + .pool +_08162584: + ldr r1, =gUnknown_085DF9FA + ldrh r0, [r1, 0x1E] + ldrh r4, [r1, 0x1C] +_0816258A: + subs r0, r4 + adds r0, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r5, 0 + bl __umodsi3 + adds r4, r0 + lsls r4, 16 + lsrs r5, r4, 16 + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8162548 + + thumb_func_start sub_81625B4 +sub_81625B4: @ 81625B4 + push {r4,lr} + adds r4, r2, 0 + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + lsls r1, 24 + lsrs r1, 24 + cmp r0, 0x7 + bhi _081625F4 + cmp r1, 0x6 + bne _081625D4 + ldr r1, =gUnknown_085DFA1A + lsls r2, r0, 2 + b _081625D8 + .pool +_081625D4: + ldr r1, =gUnknown_085DF9FA + lsls r2, 2 +_081625D8: + adds r0, r1, 0x2 + adds r0, r2, r0 + adds r2, r1 + ldrh r0, [r0] + ldrh r1, [r2] + subs r0, r1 + adds r0, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + ldrh r0, [r2] + b _08162604 + .pool +_081625F4: + ldr r0, =gUnknown_085DF9FA + ldrh r1, [r0, 0x1E] + ldrh r2, [r0, 0x1C] + subs r1, r2 + adds r1, 0x1 + lsls r1, 16 + lsrs r1, 16 + ldrh r0, [r0, 0x1C] +_08162604: + strh r0, [r4] + strb r1, [r3] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81625B4 + + thumb_func_start sub_8162614 +sub_8162614: @ 8162614 + push {r4-r6,lr} + lsls r0, 16 + lsrs r4, r0, 16 + adds r6, r4, 0 + lsls r1, 24 + lsrs r5, r1, 24 + bl sub_8165C40 + movs r0, 0xFA + lsls r0, 1 + cmp r4, r0 + bne _08162640 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000bed + adds r0, r1 + b _081626BA + .pool +_08162640: + ldr r0, =0x000003fe + cmp r4, r0 + bne _08162650 + bl sub_81A4DD8 + b _08162788 + .pool +_08162650: + ldr r0, =0x0000012b + cmp r4, r0 + bhi _0816266C + ldr r0, =gUnknown_0203BC88 + ldr r1, [r0] + movs r0, 0x34 + muls r0, r4 + adds r0, r1 + b _081626BA + .pool +_0816266C: + ldr r0, =0x0000018f + cmp r4, r0 + bhi _08162698 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0xfffffed4 + adds r2, r4, r1 + movs r1, 0xEC + muls r1, r2 + adds r0, r1 + ldr r1, =0x00000739 + adds r0, r1 + b _081626BA + .pool +_08162698: + ldr r3, =gUnknown_08610970 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r0, =0xfffffe70 + adds r2, r6, r0 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r1, r0 + adds r1, 0xDC + ldrb r0, [r1] + lsls r0, 27 + lsrs r0, 27 + movs r1, 0x58 + muls r0, r1 + adds r0, r3 + adds r0, 0x32 +_081626BA: + ldrb r2, [r0] + movs r1, 0 + ldr r3, =gUnknown_085DCEDC + ldrb r0, [r3] + cmp r0, r2 + beq _081626D4 +_081626C6: + adds r1, 0x1 + cmp r1, 0x1D + bhi _081626D4 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _081626C6 +_081626D4: + cmp r1, 0x1E + beq _08162700 + ldr r0, =gUnknown_085DCF0E + adds r0, r1, r0 + ldrb r1, [r0] + cmp r5, 0x1 + beq _08162744 + cmp r5, 0x1 + ble _0816272E + cmp r5, 0xF + bne _0816272E + b _08162750 + .pool +_08162700: + movs r1, 0 + ldr r3, =gUnknown_085DCEFA + ldrb r0, [r3] + cmp r0, r2 + beq _08162718 +_0816270A: + adds r1, 0x1 + cmp r1, 0x13 + bhi _08162718 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _0816270A +_08162718: + cmp r1, 0x14 + beq _0816275C + ldr r0, =gUnknown_085DCF2C + adds r0, r1, r0 + ldrb r1, [r0] + cmp r5, 0x1 + beq _08162744 + cmp r5, 0x1 + ble _0816272E + cmp r5, 0xF + beq _08162750 +_0816272E: + ldr r0, =0x00004010 + bl VarSet + b _08162788 + .pool +_08162744: + ldr r0, =0x00004011 + bl VarSet + b _08162788 + .pool +_08162750: + ldr r0, =0x0000401e + bl VarSet + b _08162788 + .pool +_0816275C: + cmp r5, 0x1 + beq _08162770 + cmp r5, 0x1 + ble _08162768 + cmp r5, 0xF + beq _08162780 +_08162768: + ldr r0, =0x00004010 + b _08162772 + .pool +_08162770: + ldr r0, =0x00004011 +_08162772: + movs r1, 0x7 + bl VarSet + b _08162788 + .pool +_08162780: + ldr r0, =0x0000401e + movs r1, 0x7 + bl VarSet +_08162788: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8162614 + + thumb_func_start sub_8162794 +sub_8162794: @ 8162794 + push {lr} + movs r0, 0xFA + lsls r0, 1 + movs r1, 0 + bl sub_8162614 + pop {r0} + bx r0 + thumb_func_end sub_8162794 + + thumb_func_start sub_81627A4 +sub_81627A4: @ 81627A4 + push {r4,r5,lr} + lsls r0, 16 + lsrs r4, r0, 16 + adds r5, r4, 0 + bl sub_8165C40 + movs r0, 0xFA + lsls r0, 1 + cmp r4, r0 + bne _081627CC + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000bed + adds r0, r1 + b _08162836 + .pool +_081627CC: + ldr r0, =0x0000012b + cmp r4, r0 + bhi _081627E8 + ldr r0, =gUnknown_0203BC88 + ldr r1, [r0] + movs r0, 0x34 + muls r0, r4 + adds r0, r1 + b _08162836 + .pool +_081627E8: + ldr r0, =0x0000018f + cmp r4, r0 + bhi _08162814 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0xfffffed4 + adds r2, r4, r1 + movs r1, 0xEC + muls r1, r2 + adds r0, r1 + ldr r1, =0x00000739 + adds r0, r1 + b _08162836 + .pool +_08162814: + ldr r3, =gUnknown_08610970 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r0, =0xfffffe70 + adds r2, r5, r0 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r1, r0 + adds r1, 0xDC + ldrb r0, [r1] + lsls r0, 27 + lsrs r0, 27 + movs r1, 0x58 + muls r0, r1 + adds r0, r3 + adds r0, 0x32 +_08162836: + ldrb r2, [r0] + movs r1, 0 + ldr r3, =gUnknown_085DCEDC + ldrb r0, [r3] + cmp r0, r2 + beq _08162850 +_08162842: + adds r1, 0x1 + cmp r1, 0x1D + bhi _08162850 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _08162842 +_08162850: + cmp r1, 0x1E + beq _0816286C + ldr r0, =gUnknown_085DCF0E + b _08162892 + .pool +_0816286C: + movs r1, 0 + ldr r3, =gUnknown_085DCEFA + ldrb r0, [r3] + cmp r0, r2 + beq _08162884 +_08162876: + adds r1, 0x1 + cmp r1, 0x13 + bhi _08162884 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _08162876 +_08162884: + cmp r1, 0x14 + bne _08162890 + movs r0, 0x7 + b _08162896 + .pool +_08162890: + ldr r0, =gUnknown_085DCF2C +_08162892: + adds r0, r1, r0 + ldrb r0, [r0] +_08162896: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81627A4 + + thumb_func_start sub_81628A0 +sub_81628A0: @ 81628A0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + movs r1, 0 + mov r8, r1 + mov r10, r0 + movs r5, 0 + ldr r2, =gSaveBlock2Ptr + ldr r0, [r2] + mov r4, r10 + ldrb r4, [r4, 0xC] + str r4, [sp, 0x18] + mov r9, r5 + movs r7, 0x4 + str r7, [sp, 0x1C] + ldr r1, =0x00000744 + adds r1, r0 + mov r12, r1 +_081628CA: + movs r6, 0 + movs r3, 0 + mov r2, r12 + ldrb r0, [r2] + ldr r4, [sp, 0x18] + cmp r0, r4 + bne _081628FA + mov r4, r9 + mov r2, r10 + adds r2, 0xC +_081628DE: + adds r3, 0x1 + cmp r3, 0x3 + bgt _081628FA + ldr r7, =gSaveBlock2Ptr + ldr r0, [r7] + adds r1, r3, r4 + ldr r7, =0x00000744 + adds r0, r7 + adds r0, r1 + adds r1, r2, r3 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _081628DE +_081628FA: + cmp r3, 0x4 + bne _08162944 + movs r6, 0 + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + ldr r3, =0x0000073c + adds r0, r3 + ldr r2, [sp, 0x1C] + adds r0, r2 + ldrb r0, [r0] + mov r4, r10 + ldrb r4, [r4, 0x8] + cmp r0, r4 + bne _08162944 + adds r1, r0, 0 + mov r2, r9 + adds r2, 0x4 +_0816291C: + cmp r1, 0xFF + bne _08162930 + movs r6, 0x7 + b _08162944 + .pool +_08162930: + adds r6, 0x1 + cmp r6, 0x6 + bgt _08162944 + ldr r7, =gSaveBlock2Ptr + ldr r0, [r7] + adds r0, r3 + adds r0, r2 + ldrb r0, [r0] + cmp r0, r1 + beq _0816291C +_08162944: + cmp r6, 0x7 + beq _0816295A + movs r0, 0xEC + add r9, r0 + ldr r1, [sp, 0x1C] + adds r1, 0xEC + str r1, [sp, 0x1C] + add r12, r0 + adds r5, 0x1 + cmp r5, 0x4 + ble _081628CA +_0816295A: + cmp r5, 0x4 + bgt _08162974 + ldr r2, =gSaveBlock2Ptr + ldr r0, [r2] + movs r1, 0xEC + muls r1, r5 + adds r0, r1 + movs r4, 0xE7 + lsls r4, 3 + adds r0, r4 + b _081629B2 + .pool +_08162974: + movs r5, 0 + ldr r7, =gSaveBlock2Ptr + ldr r0, [r7] + ldr r1, =0x0000073a + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _0816299E + adds r3, r7, 0 + adds r2, r1, 0 + movs r1, 0 +_0816298A: + adds r1, 0xEC + adds r5, 0x1 + cmp r5, 0x4 + bgt _081629C4 + ldr r0, [r3] + adds r0, r1 + adds r0, r2 + ldrh r0, [r0] + cmp r0, 0 + bne _0816298A +_0816299E: + cmp r5, 0x4 + bgt _081629C4 + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + movs r1, 0xEC + muls r1, r5 + adds r0, r1 + movs r2, 0xE7 + lsls r2, 3 + adds r0, r2 +_081629B2: + mov r1, r10 + movs r2, 0xEC + bl memcpy + b _08162A8A + .pool +_081629C4: + mov r2, sp + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r3, =0x0000073a + adds r0, r3 + ldrh r0, [r0] + movs r1, 0 + strh r0, [r2] + add r0, sp, 0xC + strh r1, [r0] + movs r7, 0x1 + add r8, r7 + movs r5, 0x1 + add r0, sp, 0xC + mov r9, r0 + mov r12, r3 +_081629E4: + movs r3, 0 + adds r7, r5, 0x1 + cmp r3, r8 + bge _08162A2E + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + movs r2, 0xEC + adds r1, r5, 0 + muls r1, r2 + adds r0, r1 + mov r1, r12 + adds r4, r0, r1 + mov r6, sp +_081629FE: + lsls r0, r3, 1 + add r0, sp + ldrh r2, [r4] + adds r1, r2, 0 + ldrh r0, [r0] + cmp r1, r0 + bcs _08162A24 + movs r3, 0 + movs r4, 0x1 + mov r8, r4 + strh r2, [r6] + mov r0, r9 + strh r5, [r0] + b _08162A2E + .pool +_08162A24: + cmp r1, r0 + bhi _08162A2E + adds r3, 0x1 + cmp r3, r8 + blt _081629FE +_08162A2E: + cmp r3, r8 + bne _08162A54 + mov r1, r8 + lsls r2, r1, 1 + mov r4, sp + adds r3, r4, r2 + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + movs r4, 0xEC + adds r1, r5, 0 + muls r1, r4 + adds r0, r1 + add r0, r12 + ldrh r0, [r0] + strh r0, [r3] + add r2, r9 + strh r5, [r2] + movs r0, 0x1 + add r8, r0 +_08162A54: + adds r5, r7, 0 + cmp r5, 0x4 + ble _081629E4 + bl Random + lsls r0, 16 + lsrs r0, 16 + mov r1, r8 + bl __modsi3 + adds r5, r0, 0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r5, 1 + add r1, sp + adds r1, 0xC + ldrh r2, [r1] + movs r1, 0xEC + muls r1, r2 + adds r0, r1 + movs r1, 0xE7 + lsls r1, 3 + adds r0, r1 + mov r1, r10 + movs r2, 0xEC + bl memcpy +_08162A8A: + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81628A0 + + thumb_func_start sub_8162AA0 +sub_8162AA0: @ 8162AA0 + push {r4,r5,lr} + lsls r0, 16 + lsrs r4, r0, 16 + adds r5, r4, 0 + bl sub_8165C40 + movs r0, 0xFA + lsls r0, 1 + cmp r4, r0 + bne _08162AD0 + ldr r1, =gTrainerPicIndices + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000bed + adds r0, r2 + ldrb r0, [r0] + adds r0, r1 + b _08162BC8 + .pool +_08162AD0: + ldr r0, =0x000003fe + cmp r4, r0 + bne _08162AE4 + bl sub_81A4CB0 + lsls r0, 24 + lsrs r0, 24 + b _08162BCA + .pool +_08162AE4: + ldr r0, =0x0000012b + cmp r4, r0 + bhi _08162B08 + ldr r2, =gTrainerPicIndices + ldr r0, =gUnknown_0203BC88 + ldr r1, [r0] + movs r0, 0x34 + muls r0, r4 + adds r0, r1 + ldrb r0, [r0] + adds r0, r2 + b _08162BC8 + .pool +_08162B08: + ldr r0, =0x0000018f + cmp r4, r0 + bhi _08162B64 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _08162B38 + ldr r4, =gTrainerPicIndices + bl sub_818649C + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + b _08162BC8 + .pool +_08162B38: + ldr r3, =gTrainerPicIndices + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0xfffffed4 + adds r2, r4, r1 + movs r1, 0xEC + muls r1, r2 + adds r0, r1 + ldr r2, =0x00000739 + adds r0, r2 + ldrb r0, [r0] + adds r0, r3 + b _08162BC8 + .pool +_08162B64: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + bne _08162BB0 + ldr r4, =gTrainerPicIndices + ldr r3, =gUnknown_08610970 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r0, =0xfffffe70 + adds r2, r5, r0 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r1, r0 + adds r1, 0xDC + ldrb r0, [r1] + lsls r0, 27 + lsrs r0, 27 + movs r1, 0x58 + muls r0, r1 + adds r0, r3 + adds r0, 0x32 + ldrb r0, [r0] + adds r0, r4 + b _08162BC8 + .pool +_08162BB0: + ldr r5, =gTrainerPicIndices + ldr r4, =gUnknown_08610970 + bl sub_81864A8 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x58 + muls r0, r1 + adds r0, r4 + adds r0, 0x32 + ldrb r0, [r0] + adds r0, r5 +_08162BC8: + ldrb r0, [r0] +_08162BCA: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8162AA0 + + thumb_func_start sub_8162BD8 +sub_8162BD8: @ 8162BD8 + push {r4,r5,lr} + lsls r0, 16 + lsrs r4, r0, 16 + adds r5, r4, 0 + bl sub_8165C40 + movs r0, 0xFA + lsls r0, 1 + cmp r4, r0 + bne _08162C08 + ldr r1, =gTrainerClassNameIndices + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000bed + adds r0, r2 + ldrb r0, [r0] + b _08162C26 + .pool +_08162C08: + ldr r0, =0x000003fe + cmp r4, r0 + bne _08162C1C + bl sub_81A4D00 + lsls r0, 24 + lsrs r0, 24 + b _08162D1E + .pool +_08162C1C: + ldr r0, =0x00000c03 + cmp r4, r0 + bne _08162C38 + ldr r0, =gTrainers + ldr r1, =0x00007da1 +_08162C26: + adds r0, r1 + ldrb r0, [r0] + b _08162D1E + .pool +_08162C38: + ldr r0, =0x0000012b + cmp r4, r0 + bhi _08162C60 + ldr r2, =gTrainerClassNameIndices + ldr r0, =gUnknown_0203BC88 + ldr r1, [r0] + movs r0, 0x34 + muls r0, r4 + adds r0, r1 + ldrb r0, [r0] + adds r0, r2 + ldrb r0, [r0] + b _08162D1E + .pool +_08162C60: + ldr r0, =0x0000018f + cmp r4, r0 + bhi _08162CBC + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _08162C90 + ldr r4, =gTrainerClassNameIndices + bl sub_818649C + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + ldrb r0, [r0] + b _08162D1E + .pool +_08162C90: + ldr r3, =gTrainerClassNameIndices + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0xfffffed4 + adds r2, r4, r1 + movs r1, 0xEC + muls r1, r2 + adds r0, r1 + ldr r2, =0x00000739 + adds r0, r2 + ldrb r0, [r0] + adds r0, r3 + ldrb r0, [r0] + b _08162D1E + .pool +_08162CBC: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _08162CF4 + ldr r5, =gTrainerClassNameIndices + ldr r4, =gUnknown_08610970 + bl sub_81864A8 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x58 + muls r0, r1 + adds r0, r4 + adds r0, 0x32 + ldrb r0, [r0] + adds r0, r5 + ldrb r0, [r0] + b _08162D1E + .pool +_08162CF4: + ldr r4, =gTrainerClassNameIndices + ldr r3, =gUnknown_08610970 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r0, =0xfffffe70 + adds r2, r5, r0 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r1, r0 + adds r1, 0xDC + ldrb r0, [r1] + lsls r0, 27 + lsrs r0, 27 + movs r1, 0x58 + muls r0, r1 + adds r0, r3 + adds r0, 0x32 + ldrb r0, [r0] + adds r0, r4 + ldrb r0, [r0] +_08162D1E: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8162BD8 + + thumb_func_start sub_8162D34 +sub_8162D34: @ 8162D34 + push {r4,r5,lr} + lsls r0, 16 + lsrs r4, r0, 16 + adds r5, r4, 0 + bl sub_8165C40 + movs r0, 0xFA + lsls r0, 1 + cmp r4, r0 + bne _08162D5C + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000bed + adds r0, r1 + b _08162E0A + .pool +_08162D5C: + ldr r0, =0x0000012b + cmp r4, r0 + bhi _08162D78 + ldr r0, =gUnknown_0203BC88 + ldr r1, [r0] + movs r0, 0x34 + muls r0, r4 + adds r0, r1 + b _08162E0A + .pool +_08162D78: + ldr r0, =0x0000018f + cmp r4, r0 + bhi _08162DC0 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _08162DA0 + bl sub_818649C + lsls r0, 24 + lsrs r0, 24 + b _08162E0C + .pool +_08162DA0: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0xfffffed4 + adds r2, r4, r1 + movs r1, 0xEC + muls r1, r2 + adds r0, r1 + ldr r1, =0x00000739 + adds r0, r1 + b _08162E0A + .pool +_08162DC0: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _08162DE8 + ldr r4, =gUnknown_08610970 + bl sub_81864A8 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x58 + muls r0, r1 + adds r0, r4 + b _08162E08 + .pool +_08162DE8: + ldr r3, =gUnknown_08610970 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r0, =0xfffffe70 + adds r2, r5, r0 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r1, r0 + adds r1, 0xDC + ldrb r0, [r1] + lsls r0, 27 + lsrs r0, 27 + movs r1, 0x58 + muls r0, r1 + adds r0, r3 +_08162E08: + adds r0, 0x32 +_08162E0A: + ldrb r0, [r0] +_08162E0C: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8162D34 + + thumb_func_start sub_8162E20 +sub_8162E20: @ 8162E20 + push {r4-r6,lr} + adds r6, r0, 0 + lsls r1, 16 + lsrs r5, r1, 16 + movs r4, 0 + bl sub_8165C40 + movs r0, 0xFA + lsls r0, 1 + cmp r5, r0 + bne _08162E54 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + movs r1, 0xBF + lsls r1, 4 + adds r2, r0, r1 +_08162E40: + adds r0, r6, r4 + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r4, 0x1 + cmp r4, 0x6 + ble _08162E40 + b _08162F5C + .pool +_08162E54: + ldr r0, =0x000003fe + cmp r5, r0 + bne _08162E68 + adds r0, r6, 0 + bl sub_81A4D50 + b _08162F62 + .pool +_08162E68: + ldr r0, =0x00000c03 + cmp r5, r0 + bne _08162E88 + ldr r2, =gTrainers + TRAINER_STEVEN * 0x28 + 0x4 @ Steven's name +_08162E70: + adds r0, r6, r4 + adds r1, r4, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r4, 0x1 + cmp r4, 0x6 + ble _08162E70 + b _08162F5C + .pool +_08162E88: + ldr r0, =0x0000012b + cmp r5, r0 + bhi _08162EB4 + ldr r0, =gUnknown_0203BC88 + ldr r1, [r0] + movs r0, 0x34 + muls r0, r5 + adds r0, r1 + adds r2, r0, 0x4 +_08162E9A: + adds r0, r6, r4 + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r4, 0x1 + cmp r4, 0x6 + ble _08162E9A + b _08162F5C + .pool +_08162EB4: + ldr r0, =0x0000018f + cmp r5, r0 + bhi _08162F00 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _08162ED8 + adds r0, r6, 0 + bl sub_8186468 + b _08162F62 + .pool +_08162ED8: + ldr r2, =gSaveBlock2Ptr + movs r0, 0xEC + adds r1, r5, 0 + muls r1, r0 + ldr r0, =0xfffef2a8 + adds r1, r0 + ldr r0, [r2] + adds r0, r1 + adds r1, r0, 0x4 + adds r0, 0xE4 + ldrb r2, [r0] + adds r0, r6, 0 + bl sub_81DB5E8 + b _08162F62 + .pool +_08162F00: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _08162F24 + bl sub_81864A8 + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_81864C0 + lsls r0, 24 + lsrs r4, r0, 24 + b _08162F3E + .pool +_08162F24: + ldr r1, =gSaveBlock2Ptr + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + ldr r2, =0xffff969c + adds r0, r2 + ldr r1, [r1] + adds r1, r0 + ldrb r0, [r1] + lsls r0, 27 + lsrs r5, r0, 27 + adds r1, 0x3F + ldrb r4, [r1] +_08162F3E: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_81A1650 + adds r1, r0, 0 + adds r0, r6, 0 + adds r2, r4, 0 + bl sub_81DB5E8 + b _08162F62 + .pool +_08162F5C: + adds r1, r6, r4 + movs r0, 0xFF + strb r0, [r1] +_08162F62: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8162E20 + + thumb_func_start sub_8162F68 +sub_8162F68: @ 8162F68 + push {r4,r5,lr} + lsls r0, 16 + lsrs r4, r0, 16 + adds r5, r4, 0 + bl sub_8165C40 + movs r0, 0xFA + lsls r0, 1 + cmp r4, r0 + bne _08162F90 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000bed + adds r0, r1 + b _0816300E + .pool +_08162F90: + ldr r0, =0x000003fe + cmp r4, r0 + bne _08162FA4 + bl sub_81A4DB8 + lsls r0, 24 + lsrs r0, 24 + b _08163042 + .pool +_08162FA4: + ldr r0, =0x0000012b + cmp r4, r0 + bhi _08162FC0 + ldr r0, =gUnknown_0203BC88 + ldr r1, [r0] + movs r0, 0x34 + muls r0, r4 + adds r0, r1 + b _0816300E + .pool +_08162FC0: + ldr r0, =0x0000018f + cmp r4, r0 + bhi _08162FEC + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0xfffffed4 + adds r2, r4, r1 + movs r1, 0xEC + muls r1, r2 + adds r0, r1 + ldr r1, =0x00000739 + adds r0, r1 + b _0816300E + .pool +_08162FEC: + ldr r3, =gUnknown_08610970 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r0, =0xfffffe70 + adds r2, r5, r0 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r1, r0 + adds r1, 0xDC + ldrb r0, [r1] + lsls r0, 27 + lsrs r0, 27 + movs r1, 0x58 + muls r0, r1 + adds r0, r3 + adds r0, 0x32 +_0816300E: + ldrb r2, [r0] + movs r1, 0 + ldr r3, =gUnknown_085DCEFA + ldrb r0, [r3] + cmp r0, r2 + beq _08163028 +_0816301A: + adds r1, 0x1 + cmp r1, 0x13 + bhi _08163028 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _0816301A +_08163028: + cmp r1, 0x14 + bne _08163040 + movs r0, 0 + b _08163042 + .pool +_08163040: + movs r0, 0x1 +_08163042: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8162F68 + + thumb_func_start sub_8163048 +sub_8163048: @ 8163048 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl ZeroEnemyPartyMons + ldr r0, =gUnknown_02038BCA + ldrh r0, [r0] + movs r1, 0 + adds r2, r4, 0 + bl sub_81630C4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8163048 + + thumb_func_start sub_816306C +sub_816306C: @ 816306C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl ZeroEnemyPartyMons + ldr r0, =gUnknown_02038BCA + ldrh r0, [r0] + movs r1, 0 + adds r2, r4, 0 + bl sub_81630C4 + ldr r0, =gUnknown_02038BCC + ldrh r0, [r0] + movs r1, 0x3 + adds r2, r4, 0 + bl sub_81630C4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816306C + + thumb_func_start sub_81630A0 +sub_81630A0: @ 81630A0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl ZeroEnemyPartyMons + ldr r0, =gUnknown_02038BCA + ldrh r0, [r0] + movs r1, 0 + adds r2, r4, 0 + bl sub_8165EA4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81630A0 + + thumb_func_start sub_81630C4 +sub_81630C4: @ 81630C4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x40 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x18] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x1C] + add r4, sp, 0x14 + movs r0, 0xFF + strb r0, [r4] + bl sub_8165C40 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x20] + ldr r0, =0x0000012b + cmp r5, r0 + bhi _08163138 + adds r0, r5, 0 + bl sub_8165D08 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x24] + ldr r0, =gUnknown_02038BCA + ldrh r2, [r0] + ldr r0, =gUnknown_0203BC88 + ldr r1, [r0] + movs r0, 0x34 + muls r0, r2 + adds r0, r1 + ldr r0, [r0, 0x30] + str r0, [sp, 0x2C] + movs r0, 0 + str r0, [sp, 0x28] + ldr r2, [sp, 0x2C] + ldrh r1, [r2] + ldr r0, =0x0000ffff + cmp r1, r0 + bne _08163124 + b _08163278 +_08163124: + b _08163260 + .pool +_08163138: + movs r0, 0xFA + lsls r0, 1 + cmp r5, r0 + bne _08163180 + ldr r7, [sp, 0x18] + adds r0, r7, 0x3 + cmp r7, r0 + blt _0816314A + b _08163426 +_0816314A: + ldr r4, =gSaveBlock2Ptr +_0816314C: + movs r0, 0x64 + muls r0, r7 + ldr r1, =gEnemyParty + adds r0, r1 + ldr r5, [sp, 0x18] + subs r2, r7, r5 + movs r1, 0x2C + muls r2, r1 + movs r6, 0xC2 + lsls r6, 4 + adds r2, r6 + ldr r1, [r4] + adds r1, r2 + bl sub_806819C + adds r7, 0x1 + adds r0, r5, 0 + adds r0, 0x3 + cmp r7, r0 + blt _0816314C + b _08163426 + .pool +_08163180: + ldr r0, =0x000003fe + cmp r5, r0 + bne _08163190 + bl sub_81A4E04 + b _08163426 + .pool +_08163190: + ldr r0, =0x0000018f + cmp r5, r0 + bhi _08163218 + movs r6, 0 + ldr r7, [sp, 0x18] + ldr r1, [sp, 0x1C] + adds r0, r7, r1 + cmp r7, r0 + blt _081631A4 + b _08163426 +_081631A4: + ldr r2, =0xfffffed4 + adds r1, r5, r2 + movs r0, 0xEC + adds r2, r1, 0 + muls r2, r0 + mov r8, r2 + muls r0, r5 + ldr r5, =0xfffef2a8 + adds r4, r0, r5 +_081631B6: + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + movs r0, 0x2C + adds r2, r6, 0 + muls r2, r0 + mov r1, r8 + adds r0, r2, r1 + adds r1, r3, r0 + ldr r5, =0x0000076c + adds r0, r1, r5 + ldrh r0, [r0] + cmp r0, 0 + beq _081631F0 + adds r5, 0xC + adds r0, r1, r5 + ldrb r0, [r0] + ldr r1, [sp, 0x20] + cmp r0, r1 + bhi _081631F0 + movs r0, 0x64 + muls r0, r7 + ldr r1, =gEnemyParty + adds r0, r1 + adds r1, r3, r4 + adds r2, 0x34 + adds r1, r2 + movs r2, 0 + bl sub_8068338 +_081631F0: + adds r6, 0x1 + adds r7, 0x1 + ldr r2, [sp, 0x18] + ldr r5, [sp, 0x1C] + adds r0, r2, r5 + cmp r7, r0 + blt _081631B6 + b _08163426 + .pool +_08163218: + ldr r7, [sp, 0x18] + adds r0, r7, 0x3 + cmp r7, r0 + blt _08163222 + b _08163426 +_08163222: + ldr r6, =gSaveBlock2Ptr + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + ldr r1, =0xffff969c + adds r5, r0, r1 + movs r4, 0 +_08163230: + movs r0, 0x64 + muls r0, r7 + ldr r1, =gEnemyParty + adds r0, r1 + ldr r1, [r6] + adds r1, r5 + lsrs r2, r4, 24 + bl sub_8068528 + movs r2, 0x80 + lsls r2, 17 + adds r4, r2 + adds r7, 0x1 + ldr r0, [sp, 0x18] + adds r0, 0x3 + cmp r7, r0 + blt _08163230 + b _08163426 + .pool +_08163260: + ldr r0, [sp, 0x28] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x28] + lsls r0, 1 + ldr r5, [sp, 0x2C] + adds r0, r5 + ldrh r1, [r0] + ldr r0, =0x0000ffff + cmp r1, r0 + bne _08163260 +_08163278: + movs r7, 0 + bl Random + adds r4, r0, 0 + bl Random + lsls r4, 16 + lsrs r4, 16 + lsls r0, 16 + orrs r4, r0 + str r4, [sp, 0x30] + ldr r6, [sp, 0x1C] + cmp r7, r6 + bne _08163296 + b _08163426 +_08163296: + bl Random + lsls r0, 16 + lsrs r0, 16 + ldr r1, [sp, 0x28] + bl __modsi3 + lsls r0, 1 + ldr r1, [sp, 0x2C] + adds r0, r1 + ldrh r4, [r0] + ldr r2, [sp, 0x20] + cmp r2, 0x32 + beq _081632B6 + cmp r2, 0x14 + bne _081632BE +_081632B6: + ldr r0, =0x00000351 + cmp r4, r0 + bls _081632BE + b _0816341E +_081632BE: + movs r6, 0 + ldr r5, [sp, 0x18] + adds r5, r7 + mov r8, r5 + b _081632D2 + .pool +_081632D0: + adds r6, 0x1 +_081632D2: + cmp r6, r8 + bge _081632F6 + movs r1, 0x64 + adds r0, r6, 0 + muls r0, r1 + ldr r2, =gEnemyParty + adds r0, r2 + movs r1, 0xB + movs r2, 0 + bl GetMonData + ldr r1, =gUnknown_0203BC8C + ldr r2, [r1] + lsls r1, r4, 4 + adds r1, r2 + ldrh r1, [r1] + cmp r0, r1 + bne _081632D0 +_081632F6: + cmp r6, r8 + beq _081632FC + b _0816341E +_081632FC: + movs r6, 0 + cmp r6, r8 + bge _08163346 + ldr r5, =gBattleFrontierHeldItems + mov r9, r5 + movs r3, 0 +_08163308: + ldr r0, =gEnemyParty + adds r5, r3, r0 + adds r0, r5, 0 + movs r1, 0xC + movs r2, 0 + str r3, [sp, 0x38] + bl GetMonData + ldr r3, [sp, 0x38] + cmp r0, 0 + beq _0816333E + adds r0, r5, 0 + movs r1, 0xC + movs r2, 0 + bl GetMonData + ldr r1, =gUnknown_0203BC8C + ldr r2, [r1] + lsls r1, r4, 4 + adds r1, r2 + ldrb r1, [r1, 0xA] + lsls r1, 1 + add r1, r9 + ldr r3, [sp, 0x38] + ldrh r1, [r1] + cmp r0, r1 + beq _08163346 +_0816333E: + adds r3, 0x64 + adds r6, 0x1 + cmp r6, r8 + blt _08163308 +_08163346: + cmp r6, r8 + bne _0816341E + movs r6, 0 + cmp r6, r7 + bge _08163368 + add r0, sp, 0xC + ldrh r0, [r0] + cmp r0, r4 + beq _08163368 + add r1, sp, 0xC +_0816335A: + adds r1, 0x2 + adds r6, 0x1 + cmp r6, r7 + bge _08163368 + ldrh r0, [r1] + cmp r0, r4 + bne _0816335A +_08163368: + cmp r6, r7 + bne _0816341E + lsls r0, r7, 1 + add r0, sp + adds r0, 0xC + strh r4, [r0] + movs r1, 0x64 + mov r0, r8 + muls r0, r1 + ldr r2, =gEnemyParty + adds r0, r2 + ldr r5, =gUnknown_0203BC8C + ldr r2, [r5] + lsls r4, 4 + adds r2, r4, r2 + ldrh r1, [r2] + ldrb r3, [r2, 0xC] + ldr r6, [sp, 0x24] + str r6, [sp] + ldrb r2, [r2, 0xB] + str r2, [sp, 0x4] + ldr r2, [sp, 0x30] + str r2, [sp, 0x8] + ldr r2, [sp, 0x20] + bl sub_8068634 + movs r0, 0xFF + mov r6, sp + strb r0, [r6, 0x14] + movs r6, 0 + adds r0, r7, 0x1 + str r0, [sp, 0x34] + mov r9, r4 + movs r0, 0x64 + mov r3, r8 + muls r3, r0 + mov r1, r9 + str r1, [sp, 0x3C] + ldr r2, =gEnemyParty + mov r10, r2 +_081633B8: + ldr r0, [r5] + ldr r7, [sp, 0x3C] + adds r0, r7, r0 + lsls r4, r6, 1 + adds r0, 0x2 + adds r0, r4 + ldrh r1, [r0] + lsls r2, r6, 24 + lsrs r2, 24 + mov r7, r10 + adds r0, r3, r7 + str r3, [sp, 0x38] + bl sub_80691F4 + ldr r0, [r5] + ldr r1, [sp, 0x3C] + adds r0, r1, r0 + adds r0, 0x2 + adds r0, r4 + ldrh r0, [r0] + ldr r3, [sp, 0x38] + cmp r0, 0xDA + bne _081633EC + movs r0, 0 + mov r2, sp + strb r0, [r2, 0x14] +_081633EC: + adds r6, 0x1 + cmp r6, 0x3 + ble _081633B8 + movs r5, 0x64 + mov r4, r8 + muls r4, r5 + ldr r6, =gEnemyParty + adds r4, r6 + adds r0, r4, 0 + movs r1, 0x20 + add r2, sp, 0x14 + bl SetMonData + ldr r0, =gUnknown_0203BC8C + ldr r0, [r0] + add r0, r9 + ldrb r2, [r0, 0xA] + lsls r2, 1 + ldr r0, =gBattleFrontierHeldItems + adds r2, r0 + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + ldr r7, [sp, 0x34] +_0816341E: + ldr r0, [sp, 0x1C] + cmp r7, r0 + beq _08163426 + b _08163296 +_08163426: + add sp, 0x40 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81630C4 + + thumb_func_start sub_8163444 +sub_8163444: @ 8163444 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x8] + movs r1, 0xFF + add r0, sp, 0x4 + strb r1, [r0] + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + movs r0, 0xDC + adds r0, r2 + mov r10, r0 + ldrb r0, [r0, 0x1] + movs r1, 0x9 + str r1, [sp, 0x10] + cmp r0, 0x4 + bhi _08163474 + movs r0, 0x6 + str r0, [sp, 0x10] +_08163474: + ldr r1, =0x00000ca9 + adds r0, r2, r1 + ldrb r1, [r0] + movs r0, 0x3 + ands r0, r1 + movs r1, 0x32 + str r1, [sp, 0xC] + cmp r0, 0 + beq _0816348A + movs r0, 0x64 + str r0, [sp, 0xC] +_0816348A: + movs r7, 0 + adds r2, 0xE2 + str r2, [sp, 0x14] + add r1, sp, 0x4 + mov r9, r1 +_08163494: + ldr r2, [sp, 0x8] + adds r6, r2, r7 + movs r0, 0x64 + muls r0, r6 + ldr r1, =gEnemyParty + adds r0, r1 + lsls r5, r7, 1 + adds r4, r5, r7 + lsls r4, 2 + mov r2, r10 + adds r1, r2, r4 + ldrh r1, [r1, 0x4] + movs r2, 0x8 + str r2, [sp] + ldr r2, [sp, 0xC] + ldr r3, [sp, 0x10] + bl pokemon_make_ev_something + movs r0, 0xFF + mov r1, r9 + strb r0, [r1] + adds r2, r7, 0x1 + mov r8, r2 + movs r1, 0x3 +_081634C4: + ldr r2, [sp, 0x14] + adds r0, r2, r4 + ldrh r0, [r0] + cmp r0, 0xDA + bne _081634D4 + movs r2, 0 + mov r0, r9 + strb r2, [r0] +_081634D4: + adds r4, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _081634C4 + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + ldr r0, =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x20 + add r2, sp, 0x4 + bl SetMonData + adds r2, r5, r7 + lsls r2, 2 + add r2, r10 + adds r2, 0xE + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + mov r7, r8 + cmp r7, 0x3 + bne _08163494 + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8163444 + + thumb_func_start sub_8163524 +sub_8163524: @ 8163524 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl sub_8165C40 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, =gUnknown_0203BC88 + ldr r1, [r0] + movs r0, 0x34 + muls r0, r4 + adds r0, r1 + ldr r5, [r0, 0x30] + movs r4, 0 + ldrh r1, [r5] + b _08163558 + .pool +_0816354C: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 1 + adds r0, r5 + ldrh r1, [r0] +_08163558: + ldr r0, =0x0000ffff + cmp r1, r0 + bne _0816354C +_0816355E: + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r4, 0 + bl __modsi3 + lsls r0, 1 + adds r0, r5 + ldrh r1, [r0] + cmp r6, 0x32 + beq _0816357A + cmp r6, 0x14 + bne _08163580 +_0816357A: + ldr r0, =0x00000351 + cmp r1, r0 + bhi _0816355E +_08163580: + adds r0, r1, 0 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8163524 + + thumb_func_start sub_8163590 +sub_8163590: @ 8163590 + push {lr} + bl ZeroEnemyPartyMons + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x2 + beq _081635C0 + ldr r0, =gUnknown_02038BCA + ldrh r0, [r0] + movs r1, 0 + bl sub_81635D4 + b _081635CA + .pool +_081635C0: + ldr r0, =gUnknown_02038BCA + ldrh r0, [r0] + movs r1, 0 + bl sub_816379C +_081635CA: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8163590 + + thumb_func_start sub_81635D4 +sub_81635D4: @ 81635D4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + lsls r0, 16 + lsrs r2, r0, 16 + adds r3, r2, 0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x10] + ldr r0, =0x0000012b + cmp r2, r0 + bhi _0816364A + ldr r4, =gSaveBlock2Ptr + ldr r0, =0x000040ce + bl VarGet + lsls r0, 24 + ldr r4, [r4] + lsrs r0, 22 + movs r2, 0xCE + lsls r2, 4 + adds r1, r4, r2 + adds r1, r0 + ldrh r0, [r1] + movs r1, 0x7 + bl __udivsi3 + lsls r0, 24 + lsrs r1, r0, 24 + ldr r3, =0x00000cb2 + adds r4, r3 + ldrh r0, [r4] + cmp r0, 0x5 + bhi _0816363C + adds r0, r1, 0 + movs r1, 0 + bl sub_81A6CA8 + lsls r0, 24 + lsrs r0, 24 + b _081636A6 + .pool +_0816363C: + adds r0, r1, 0 + movs r1, 0x1 + bl sub_81A6CA8 + lsls r0, 24 + lsrs r0, 24 + b _081636A6 +_0816364A: + movs r0, 0xFA + lsls r0, 1 + cmp r2, r0 + bne _08163694 + ldr r7, [sp, 0x10] + adds r0, r7, 0x3 + cmp r7, r0 + blt _0816365C + b _08163776 +_0816365C: + ldr r4, =gSaveBlock2Ptr +_0816365E: + movs r0, 0x64 + muls r0, r7 + ldr r1, =gEnemyParty + adds r0, r1 + ldr r1, [sp, 0x10] + subs r2, r7, r1 + movs r1, 0x2C + muls r2, r1 + movs r3, 0xC2 + lsls r3, 4 + adds r2, r3 + ldr r1, [r4] + adds r1, r2 + bl sub_806819C + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, [sp, 0x10] + adds r0, 0x3 + cmp r7, r0 + blt _0816365E + b _08163776 + .pool +_08163694: + ldr r0, =0x000003fe + cmp r3, r0 + bne _081636A4 + bl sub_81A6CD0 + b _08163776 + .pool +_081636A4: + movs r0, 0x1F +_081636A6: + str r0, [sp, 0x18] + bl sub_8165C40 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x14] + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldrb r2, [r1, 0xA] + ldrb r0, [r1, 0xB] + lsls r0, 8 + orrs r2, r0 + ldrb r0, [r1, 0xC] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r1, 0xD] + lsls r0, 24 + orrs r2, r0 + mov r8, r2 + movs r7, 0 +_081636CE: + ldr r1, =gUnknown_03006298 + lsls r0, r7, 1 + adds r0, r1 + ldrh r0, [r0] + mov r9, r0 + ldr r3, [sp, 0x10] + adds r5, r3, r7 + movs r0, 0x64 + adds r6, r5, 0 + muls r6, r0 + ldr r1, =gEnemyParty + adds r0, r6, r1 + ldr r3, =gUnknown_0203BC8C + ldr r2, [r3] + mov r1, r9 + lsls r4, r1, 4 + adds r2, r4, r2 + ldrh r1, [r2] + ldrb r3, [r2, 0xC] + mov r10, r3 + ldr r3, [sp, 0x18] + str r3, [sp] + ldrb r2, [r2, 0xB] + str r2, [sp, 0x4] + mov r2, r8 + str r2, [sp, 0x8] + ldr r2, [sp, 0x14] + mov r3, r10 + bl sub_8068634 + movs r1, 0 + add r0, sp, 0xC + strb r1, [r0] + movs r3, 0 + adds r7, 0x1 + mov r10, r7 + adds r7, r4, 0 +_08163718: + ldr r0, =gUnknown_0203BC8C + ldr r1, [r0] + mov r2, r9 + lsls r0, r2, 4 + adds r0, r1 + lsls r1, r3, 1 + adds r0, 0x2 + adds r0, r1 + ldrh r1, [r0] + ldr r2, =gEnemyParty + adds r0, r6, r2 + adds r2, r3, 0 + str r3, [sp, 0x1C] + bl sub_81A7024 + ldr r3, [sp, 0x1C] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _08163718 + movs r3, 0x64 + adds r4, r5, 0 + muls r4, r3 + ldr r0, =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x20 + add r2, sp, 0xC + bl SetMonData + ldr r1, =gUnknown_0203BC8C + ldr r0, [r1] + adds r0, r7, r0 + ldrb r2, [r0, 0xA] + lsls r2, 1 + ldr r0, =gBattleFrontierHeldItems + adds r2, r0 + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + mov r2, r10 + lsls r0, r2, 24 + lsrs r7, r0, 24 + cmp r7, 0x2 + bls _081636CE +_08163776: + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81635D4 + + thumb_func_start sub_816379C +sub_816379C: @ 816379C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x10] + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldrb r0, [r1, 0xA] + mov r9, r0 + ldrb r0, [r1, 0xB] + lsls r0, 8 + mov r2, r9 + orrs r2, r0 + ldrb r0, [r1, 0xC] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r1, 0xD] + lsls r0, 24 + orrs r2, r0 + mov r9, r2 + movs r7, 0 + mov r8, r7 +_081637D0: + ldr r1, =gUnknown_03006298 + mov r2, r8 + lsls r0, r2, 1 + adds r0, r1 + ldrh r4, [r0] + ldr r5, [sp, 0x10] + add r5, r8 + movs r7, 0x64 + adds r6, r5, 0 + muls r6, r7 + ldr r1, =gEnemyParty + adds r0, r6, r1 + ldr r7, =gUnknown_0203BC8C + ldr r2, [r7] + lsls r4, 4 + adds r2, r4, r2 + ldrh r1, [r2] + ldrb r3, [r2, 0xC] + movs r7, 0 + str r7, [sp] + ldrb r2, [r2, 0xB] + str r2, [sp, 0x4] + mov r2, r9 + str r2, [sp, 0x8] + movs r2, 0x1E + bl sub_8068634 + movs r1, 0 + add r0, sp, 0xC + strb r1, [r0] + mov r10, r5 + mov r0, r8 + adds r0, 0x1 + str r0, [sp, 0x14] + mov r8, r4 + mov r5, r8 +_08163818: + ldr r1, =gUnknown_0203BC8C + ldr r0, [r1] + adds r0, r5, r0 + lsls r4, r7, 1 + adds r0, 0x2 + adds r0, r4 + ldrh r1, [r0] + ldr r2, =gEnemyParty + adds r0, r6, r2 + adds r2, r7, 0 + bl sub_81A7024 + ldr r1, =gUnknown_0203BC8C + ldr r0, [r1] + adds r0, r5, r0 + adds r0, 0x2 + adds r0, r4 + ldrh r0, [r0] + cmp r0, 0xDA + bne _08163846 + movs r1, 0 + add r0, sp, 0xC + strb r1, [r0] +_08163846: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x3 + bls _08163818 + movs r2, 0x64 + mov r4, r10 + muls r4, r2 + ldr r7, =gEnemyParty + adds r4, r7 + adds r0, r4, 0 + movs r1, 0x20 + add r2, sp, 0xC + bl SetMonData + ldr r1, =gUnknown_0203BC8C + ldr r0, [r1] + add r0, r8 + ldrb r2, [r0, 0xA] + lsls r2, 1 + ldr r0, =gBattleFrontierHeldItems + adds r2, r0 + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + ldr r2, [sp, 0x14] + lsls r0, r2, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x2 + bls _081637D0 + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816379C + + thumb_func_start ConvertBattleFrontierTrainerSpeechToString +ConvertBattleFrontierTrainerSpeechToString: @ 81638AC + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, =gStringVar4 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x3 + movs r3, 0x2 + bl ConvertEasyChatWordsToString + movs r2, 0x1 + negs r2, r2 + movs r0, 0x1 + adds r1, r4, 0 + bl GetStringWidth + cmp r0, 0xCC + bls _0816390A + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x2 + movs r3, 0x3 + bl ConvertEasyChatWordsToString + ldrb r0, [r4] + movs r1, 0x1 + cmp r0, 0xFE + beq _081638EE + adds r2, r4, 0 +_081638E4: + adds r0, r1, r2 + ldrb r0, [r0] + adds r1, 0x1 + cmp r0, 0xFE + bne _081638E4 +_081638EE: + ldr r2, =gStringVar4 + adds r0, r1, r2 + ldrb r0, [r0] + adds r3, r2, 0 + cmp r0, 0xFE + beq _08163904 +_081638FA: + adds r1, 0x1 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0xFE + bne _081638FA +_08163904: + adds r1, r3 + movs r0, 0xFA + strb r0, [r1] +_0816390A: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end ConvertBattleFrontierTrainerSpeechToString + + thumb_func_start sub_8163914 +sub_8163914: @ 8163914 + push {lr} + bl sub_8165C40 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0 + beq _08163930 + ldr r0, =gUnknown_02038BCC + b _08163932 + .pool +_08163930: + ldr r0, =gUnknown_02038BCA +_08163932: + ldrh r3, [r0] + movs r0, 0xFA + lsls r0, 1 + cmp r3, r0 + bne _08163950 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000bfc + b _08163986 + .pool +_08163950: + ldr r0, =0x0000012b + cmp r3, r0 + bhi _08163974 + ldr r2, =gUnknown_0203BC88 + movs r0, 0x34 + adds r1, r3, 0 + muls r1, r0 + ldr r0, [r2] + adds r0, r1 + adds r0, 0xC + bl ConvertBattleFrontierTrainerSpeechToString + b _081639A8 + .pool +_08163974: + ldr r0, =0x0000018f + cmp r3, r0 + bhi _0816399C + ldr r1, =gSaveBlock2Ptr + movs r0, 0xEC + muls r0, r3 + ldr r1, [r1] + adds r0, r1 + ldr r1, =0xfffef2b8 +_08163986: + adds r0, r1 + bl ConvertBattleFrontierTrainerSpeechToString + b _081639A8 + .pool +_0816399C: + adds r0, r3, 0 + adds r0, 0x70 + lsls r0, 24 + lsrs r0, 24 + bl sub_819F99C +_081639A8: + pop {r0} + bx r0 + thumb_func_end sub_8163914 + + thumb_func_start sub_81639AC +sub_81639AC: @ 81639AC + push {r4-r6,lr} + sub sp, 0x4 + bl sub_81864CC + ldr r0, =gBattleScripting + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0xA + bhi _08163A78 + lsls r0, 2 + ldr r1, =_081639D0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081639D0: + .4byte _081639FC + .4byte _08163A38 + .4byte _08163A74 + .4byte _081639FC + .4byte _081639FC + .4byte _081639FC + .4byte _081639FC + .4byte _081639FC + .4byte _08163A78 + .4byte _081639FC + .4byte _081639FC +_081639FC: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000ebc + adds r1, r0, r2 + ldr r2, [r1] + ldr r0, =0x00fffffe + cmp r2, r0 + bhi _08163A2C + adds r0, r2, 0x1 + str r0, [r1] + movs r1, 0x14 + bl __umodsi3 + cmp r0, 0 + bne _08163A78 + bl sub_81DA57C + b _08163A78 + .pool +_08163A2C: + ldr r0, =0x00ffffff + str r0, [r1] + b _08163A78 + .pool +_08163A38: + movs r5, 0 + ldr r6, =gSaveBlock1Ptr +_08163A3C: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + movs r0, 0x8E + lsls r0, 2 + adds r1, r4, r0 + ldr r0, [r6] + adds r0, r1 + movs r1, 0xC + bl GetMonData + mov r1, sp + strh r0, [r1] + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xC + mov r2, sp + bl SetMonData + adds r5, 0x1 + cmp r5, 0x5 + ble _08163A3C + b _08163A78 + .pool +_08163A74: + bl sub_816537C +_08163A78: + ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music + bl SetMainCallback2 + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81639AC + + thumb_func_start sub_8163A8C +sub_8163A8C: @ 8163A8C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8145F20 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08163AB0 + ldr r0, =gMain + ldr r1, =sub_81639AC + str r1, [r0, 0x8] + ldr r0, =sub_8036760 + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_08163AB0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8163A8C + + thumb_func_start sub_8163AC4 +sub_8163AC4: @ 8163AC4 + push {r4-r6,lr} + sub sp, 0x4 + ldr r0, =gBattleScripting + ldr r2, =gSpecialVar_0x8004 + ldrh r1, [r2] + adds r0, 0x26 + strb r1, [r0] + ldrh r0, [r2] + cmp r0, 0xA + bls _08163ADA + b _08163E68 +_08163ADA: + lsls r0, 2 + ldr r1, =_08163AF0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08163AF0: + .4byte _08163B1C + .4byte _08163BC0 + .4byte _08163C10 + .4byte _08163C70 + .4byte _08163CC4 + .4byte _08163D28 + .4byte _08163D74 + .4byte _08163DB4 + .4byte _08163E2C + .4byte _08163DF4 + .4byte _08163DC8 +_08163B1C: + ldr r5, =gBattleTypeFlags + movs r0, 0x84 + lsls r0, 1 + str r0, [r5] + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + beq _08163B56 + cmp r4, 0x1 + bgt _08163B44 + cmp r4, 0 + beq _08163B4E + b _08163BA6 + .pool +_08163B44: + cmp r4, 0x2 + beq _08163B64 + cmp r4, 0x3 + beq _08163B98 + b _08163BA6 +_08163B4E: + movs r0, 0x3 + bl sub_8163048 + b _08163BA6 +_08163B56: + movs r0, 0x4 + bl sub_8163048 + ldr r0, [r5] + orrs r0, r4 + str r0, [r5] + b _08163BA6 +_08163B64: + movs r0, 0x2 + bl sub_816306C + ldr r1, =gUnknown_02038BCE + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000cd6 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + ldrh r0, [r1] + bl sub_8165404 + ldr r0, [r5] + ldr r1, =0x00408041 + orrs r0, r1 + str r0, [r5] + b _08163BA6 + .pool +_08163B98: + ldr r0, [r5] + ldr r1, =0x00800043 + orrs r0, r1 + str r0, [r5] + movs r0, 0x2 + bl sub_816306C +_08163BA6: + ldr r0, =sub_8163A8C + movs r1, 0x1 + bl CreateTask + movs r0, 0 + bl PlayNewMapMusic__default_for_battle + movs r0, 0 + b _08163E10 + .pool +_08163BC0: + movs r5, 0 + ldr r6, =gSaveBlock1Ptr +_08163BC4: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r0, r4, r0 + movs r1, 0xC + bl GetMonData + mov r1, sp + strh r0, [r1] + movs r0, 0x8E + lsls r0, 2 + adds r4, r0 + ldr r0, [r6] + adds r0, r4 + movs r1, 0xC + mov r2, sp + bl SetMonData + adds r5, 0x1 + cmp r5, 0x5 + ble _08163BC4 + ldr r0, =sub_8163A8C + movs r1, 0x1 + bl CreateTask + movs r0, 0 + bl PlayNewMapMusic__default_for_battle + movs r0, 0xC + b _08163E10 + .pool +_08163C10: + bl ZeroEnemyPartyMons + movs r5, 0 + ldr r4, =gSaveBlock2Ptr +_08163C18: + movs r0, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0x2C + adds r2, r5, 0 + muls r2, r1 + movs r1, 0xC2 + lsls r1, 4 + adds r2, r1 + ldr r1, [r4] + adds r1, r2 + bl sub_806819C + adds r5, 0x1 + cmp r5, 0x2 + ble _08163C18 + ldr r1, =gBattleTypeFlags + ldr r0, =0x00000808 + str r0, [r1] + ldr r1, =gUnknown_02038BCA + movs r0, 0 + strh r0, [r1] + ldr r0, =sub_8163A8C + movs r1, 0x1 + bl CreateTask + movs r0, 0 + bl PlayNewMapMusic__default_for_battle + movs r0, 0xD + b _08163E10 + .pool +_08163C70: + ldr r4, =gBattleTypeFlags + ldr r0, =0x00010008 + str r0, [r4] + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x1 + bne _08163C8A + ldr r0, [r4] + orrs r0, r1 + str r0, [r4] +_08163C8A: + ldr r0, =gUnknown_02038BCA + ldrh r1, [r0] + ldr r0, =0x000003fe + cmp r1, r0 + bne _08163C9A + movs r0, 0x2 + bl sub_8163048 +_08163C9A: + ldr r0, =sub_8163A8C + movs r1, 0x1 + bl CreateTask + movs r0, 0 + bl sub_806E694 + movs r0, 0x3 + b _08163E10 + .pool +_08163CC4: + ldr r4, =gBattleTypeFlags + ldr r0, =0x00020008 + str r0, [r4] + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x1 + bne _08163CDE + ldr r0, [r4] + orrs r0, r1 + str r0, [r4] +_08163CDE: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000ca9 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x2 + beq _08163D0C + movs r0, 0x3 + bl sub_8163048 + b _08163D12 + .pool +_08163D0C: + movs r0, 0x3 + bl sub_81630A0 +_08163D12: + ldr r0, =sub_8163A8C + movs r1, 0x1 + bl CreateTask + movs r0, 0 + bl PlayNewMapMusic__default_for_battle + movs r0, 0x4 + b _08163E10 + .pool +_08163D28: + ldr r1, =gBattleTypeFlags + ldr r0, =0x00040008 + str r0, [r1] + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x2 + beq _08163D58 + movs r0, 0x3 + bl sub_8163048 + b _08163D5E + .pool +_08163D58: + movs r0, 0x3 + bl sub_81630A0 +_08163D5E: + ldr r0, =sub_8163A8C + movs r1, 0x1 + bl CreateTask + movs r0, 0 + bl PlayNewMapMusic__default_for_battle + movs r0, 0x5 + b _08163E10 + .pool +_08163D74: + ldr r4, =gBattleTypeFlags + ldr r0, =0x00080008 + str r0, [r4] + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x1 + bne _08163D8E + ldr r0, [r4] + orrs r0, r1 + str r0, [r4] +_08163D8E: + bl sub_8163590 + ldr r0, =sub_8163A8C + movs r1, 0x1 + bl CreateTask + movs r0, 0 + bl PlayNewMapMusic__default_for_battle + movs r0, 0x6 + b _08163E10 + .pool +_08163DB4: + ldr r1, =gBattleTypeFlags + movs r0, 0x84 + lsls r0, 1 + str r0, [r1] + movs r0, 0x3 + bl sub_8163048 + b _08163E00 + .pool +_08163DC8: + ldr r1, =gBattleTypeFlags + ldr r0, =0x00200008 + str r0, [r1] + movs r0, 0x3 + bl sub_8163048 + ldr r0, =sub_8163A8C + movs r1, 0x1 + bl CreateTask + movs r0, 0 + bl PlayNewMapMusic__default_for_battle + movs r0, 0xA + b _08163E10 + .pool +_08163DF4: + ldr r1, =gBattleTypeFlags + ldr r0, =0x00008109 + str r0, [r1] + movs r0, 0x1 + bl sub_816306C +_08163E00: + ldr r0, =sub_8163A8C + movs r1, 0x1 + bl CreateTask + movs r0, 0 + bl PlayNewMapMusic__default_for_battle + movs r0, 0x7 +_08163E10: + bl sub_80B100C + lsls r0, 24 + lsrs r0, 24 + bl sub_8145EF4 + b _08163E68 + .pool +_08163E2C: + ldr r1, =gBattleTypeFlags + ldr r0, =0x00408049 + str r0, [r1] + ldr r5, =0x00000c03 + adds r0, r5, 0 + bl sub_8165404 + ldr r4, =gUnknown_02038BFC + movs r0, 0 + strb r0, [r4] + ldr r0, =gUnknown_08224158 + bl TrainerBattleConfigure + movs r0, 0x1 + strb r0, [r4] + ldr r0, =gUnknown_08224167 + bl TrainerBattleConfigure + ldr r0, =gUnknown_02038BCE + strh r5, [r0] + ldr r0, =sub_8163A8C + movs r1, 0x1 + bl CreateTask + movs r0, 0 + bl PlayNewMapMusic__default_for_battle + movs r0, 0x12 + bl sub_8145EF4 +_08163E68: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8163AC4 + + thumb_func_start sub_8163E90 +sub_8163E90: @ 8163E90 + push {r4-r6,lr} + ldr r6, =gSaveBlock2Ptr + ldr r0, [r6] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r5, [r0] + lsls r5, 30 + lsrs r5, 30 + ldr r0, =0x000040ce + bl VarGet + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8164FCC + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, [r6] + lsls r5, 1 + lsls r4, 2 + adds r5, r4 + movs r1, 0xCE + lsls r1, 4 + adds r0, r1 + adds r1, r0, r5 + ldrh r0, [r1] + cmp r0, r2 + bcs _08163ED0 + strh r2, [r1] +_08163ED0: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8163E90 + + thumb_func_start sub_8163EE4 +sub_8163EE4: @ 8163EE4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =0x0000064c + adds r5, r0, r1 + adds r0, r5, 0 + bl sub_8164FB8 + ldr r0, [r4] + ldr r2, =0x00000ca9 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 30 + lsrs r6, r0, 30 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, [r4] + ldrb r0, [r2, 0x8] + cmp r0, 0 + beq _08163F40 + ldr r4, =gUnknown_085DCEFA + 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 _08163F52 + .pool +_08163F40: + ldr r4, =gUnknown_085DCEDC + 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 +_08163F52: + bl __umodsi3 + adds r0, r4 + ldrb r0, [r0] + strb r6, [r5] + strb r0, [r5, 0x1] + adds r0, r5, 0 + adds r0, 0xC + ldr r4, =gSaveBlock2Ptr + ldr r1, [r4] + adds r1, 0xA + bl CopyUnalignedWord + adds r0, r5, 0x4 + ldr r1, [r4] + bl StringCopy7 + adds r0, r6, 0 + adds r1, r7, 0 + bl sub_8164FCC + strh r0, [r5, 0x2] + movs r4, 0 + movs r2, 0x10 + adds r2, r5 + mov r12, r2 + movs r7, 0x1C + adds r7, r5 + mov r9, r7 + adds r6, r5, 0 + adds r6, 0x28 + movs r0, 0xE4 + adds r0, r5 + mov r8, r0 +_08163F96: + lsls r2, r4, 1 + mov r1, r12 + adds r3, r1, r2 + ldr r0, =gSaveBlock1Ptr + ldr r1, [r0] + ldr r7, =0x00002bbc + adds r0, r1, r7 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r3] + mov r0, r9 + adds r3, r0, r2 + adds r7, 0xC + adds r0, r1, r7 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r3] + adds r3, r6, r2 + ldr r0, =0x00002bd4 + adds r1, r0 + adds r1, r2 + ldrh r0, [r1] + strh r0, [r3] + adds r4, 0x1 + cmp r4, 0x5 + ble _08163F96 + movs r4, 0 +_08163FCC: + ldr r6, =gSaveBlock2Ptr + ldr r0, [r6] + lsls r1, r4, 1 + ldr r2, =0x00000caa + adds r0, r2 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, 0 + beq _08163FF4 + adds r1, r0, 0 + movs r0, 0x64 + muls r0, r1 + ldr r1, =gUnknown_02024488 + adds r0, r1 + movs r1, 0x2C + muls r1, r4 + adds r1, 0x34 + adds r1, r5, r1 + bl sub_80686FC +_08163FF4: + adds r4, 0x1 + cmp r4, 0x3 + ble _08163FCC + ldr r0, =gGameLanguage + ldrb r0, [r0] + mov r7, r8 + strb r0, [r7] + ldr r0, [r6] + ldr r1, =0x0000064c + adds r0, r1 + bl sub_8164F70 + bl sub_8163E90 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8163EE4 + + thumb_func_start sub_8164040 +sub_8164040: @ 8164040 + push {r4,r5,lr} + ldr r5, =gSaveBlock2Ptr + ldr r0, [r5] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r4, [r0] + lsls r4, 30 + lsrs r4, 30 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + ldr r5, [r5] + lsls r4, 1 + lsrs r0, 14 + adds r4, r0 + movs r2, 0xCE + lsls r2, 4 + adds r0, r5, r2 + adds r0, r4 + ldrh r0, [r0] + movs r1, 0x7 + bl __udivsi3 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0 + bne _0816408E + cmp r1, 0x1 + bgt _0816408A + ldr r1, =0x00000cb2 + adds r0, r5, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _0816408E +_0816408A: + bl sub_8163EE4 +_0816408E: + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =gSpecialVar_0x8005 + ldrh r1, [r1] + ldr r2, =0x00000ca8 + adds r0, r2 + strb r1, [r0] + movs r0, 0x80 + lsls r0, 7 + movs r1, 0 + bl VarSet + ldr r1, [r4] + ldr r0, =0x00000ca9 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + bl sub_81A4C30 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8164040 + + thumb_func_start nullsub_61 +nullsub_61: @ 81640D8 + bx lr + thumb_func_end nullsub_61 + + thumb_func_start nullsub_116 +nullsub_116: @ 81640DC + bx lr + thumb_func_end nullsub_116 + + thumb_func_start sub_81640E0 +sub_81640E0: @ 81640E0 + push {r4-r7,lr} + sub sp, 0xC + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + ldr r4, =gPlayerParty + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r7, r0, 16 + adds r4, 0x64 + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + movs r6, 0 + movs r2, 0 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r0, =0xfffffe70 + adds r5, r0 + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r1, 0xE0 + adds r0, r1 + mov r3, sp +_08164122: + ldrh r1, [r0] + cmp r1, r7 + beq _08164130 + cmp r1, r4 + beq _08164130 + stm r3!, {r2} + adds r6, 0x1 +_08164130: + adds r0, 0xC + adds r2, 0x1 + cmp r2, 0x2 + ble _08164122 + bl Random + ldr r4, =gUnknown_03006298 + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + bl __modsi3 + lsls r0, 2 + add r0, sp + ldr r0, [r0] + strh r0, [r4] +_08164150: + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + bl __modsi3 + lsls r0, 2 + add r0, sp + ldr r0, [r0] + strh r0, [r4, 0x2] + ldrh r1, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r1, r0 + beq _08164150 + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81640E0 + + thumb_func_start sub_8164188 +sub_8164188: @ 8164188 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + ldr r6, =gSaveBlock2Ptr + ldr r0, [r6] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 30 + str r0, [sp, 0xC] + ldr r4, =gPlayerParty + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x10] + adds r4, 0x64 + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x14] + movs r3, 0 + mov r8, r3 + movs r7, 0 + adds r2, r6, 0 + ldr r0, =0xfffffed4 + adds r5, r0 + ldr r6, =0x0000076c + mov r10, sp + movs r0, 0xEC + adds r1, r5, 0 + muls r1, r0 + mov r9, r1 +_081641E6: + ldr r1, [r2] + movs r0, 0x2C + muls r0, r7 + mov r3, r9 + adds r5, r0, r3 + adds r1, r5 + adds r0, r1, r6 + ldrh r0, [r0] + ldr r3, [sp, 0x10] + cmp r0, r3 + beq _0816423A + ldr r3, [sp, 0x14] + cmp r0, r3 + beq _0816423A + movs r0, 0xEF + lsls r0, 3 + adds r4, r1, r0 + ldr r1, [sp, 0xC] + lsls r0, r1, 24 + lsrs r0, 24 + str r2, [sp, 0x18] + bl sub_8165C90 + ldrb r1, [r4] + lsls r0, 24 + lsrs r0, 24 + ldr r2, [sp, 0x18] + cmp r1, r0 + bhi _0816423A + ldr r0, [r2] + adds r0, r5 + adds r0, r6 + ldrh r0, [r0] + cmp r0, 0 + beq _0816423A + mov r3, r10 + adds r3, 0x4 + mov r10, r3 + subs r3, 0x4 + stm r3!, {r7} + movs r0, 0x1 + add r8, r0 +_0816423A: + adds r7, 0x1 + cmp r7, 0x3 + ble _081641E6 + bl Random + ldr r4, =gUnknown_03006298 + lsls r0, 16 + lsrs r0, 16 + mov r1, r8 + bl __modsi3 + lsls r0, 2 + add r0, sp + ldr r0, [r0] + strh r0, [r4, 0x4] +_08164258: + bl Random + lsls r0, 16 + lsrs r0, 16 + mov r1, r8 + bl __modsi3 + lsls r0, 2 + add r0, sp + ldr r0, [r0] + strh r0, [r4, 0x6] + ldrh r1, [r4, 0x4] + lsls r0, 16 + lsrs r0, 16 + cmp r1, r0 + beq _08164258 + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8164188 + + thumb_func_start sub_81642A0 +sub_81642A0: @ 81642A0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4C + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r1, 0xC7 + lsls r1, 4 + adds r1, r0, r1 + str r1, [sp, 0x24] + ldr r5, =gSaveBlock2Ptr + ldr r0, [r5] + ldr r2, =0x00000ca9 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 30 + str r0, [sp, 0x14] + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + ldr r1, [r5] + ldr r3, [sp, 0x14] + lsls r2, r3, 1 + lsrs r0, 14 + adds r2, r0 + movs r4, 0xCE + lsls r4, 4 + adds r1, r4 + adds r1, r2 + ldrh r0, [r1] + movs r1, 0x7 + bl __udivsi3 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x18] + ldr r4, =gPlayerParty + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + str r0, [sp, 0x1C] + adds r4, 0x64 + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + str r0, [sp, 0x20] + bl sub_8165C40 + movs r7, 0 + ldr r0, [sp, 0x18] + lsls r0, 24 + mov r10, r0 +_08164318: + lsls r6, r7, 1 +_0816431A: + mov r1, r10 + lsrs r0, r1, 24 + movs r1, 0 + bl sub_8162548 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + movs r2, 0 + mov r9, r2 + cmp r9, r7 + bge _08164368 + ldr r0, [r5] + ldr r3, =0x00000cb4 + adds r1, r0, r3 + ldrh r0, [r1] + cmp r0, r8 + beq _08164368 + ldr r0, =gUnknown_0203BC88 + ldr r2, [r0] + movs r4, 0x34 + mov r0, r8 + muls r0, r4 + adds r0, r2 + ldrb r3, [r0] +_0816434C: + ldrh r0, [r1] + muls r0, r4 + adds r0, r2 + ldrb r0, [r0] + cmp r0, r3 + beq _08164368 + adds r1, 0x2 + movs r0, 0x1 + add r9, r0 + cmp r9, r7 + bge _08164368 + ldrh r0, [r1] + cmp r0, r8 + bne _0816434C +_08164368: + cmp r9, r7 + bne _0816431A + ldr r0, [r5] + ldr r1, =0x00000cb4 + adds r0, r1 + adds r0, r6 + mov r2, r8 + strh r2, [r0] + mov r7, r9 + adds r7, 0x1 + cmp r7, 0x5 + ble _08164318 + movs r3, 0x8 + mov r10, r3 + movs r4, 0 + mov r9, r4 + ldr r0, [sp, 0x24] + str r0, [sp, 0x40] +_0816438C: + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + mov r2, r9 + lsls r1, r2, 1 + ldr r3, =0x00000cb4 + adds r0, r3 + adds r0, r1 + ldrh r0, [r0] + mov r8, r0 + bl sub_81627A4 + ldr r4, [sp, 0x40] + strb r0, [r4, 0x19] + movs r7, 0 +_081643A8: + adds r0, r7, 0x1 + str r0, [sp, 0x30] + mov r1, r10 + lsls r1, 1 + str r1, [sp, 0x38] + mov r2, r10 + adds r2, 0x1 + str r2, [sp, 0x34] + mov r0, r10 + subs r0, 0x1 + lsls r0, 1 + str r0, [sp, 0x28] +_081643C0: + mov r0, r8 + bl sub_8163524 + lsls r0, 16 + lsrs r6, r0, 16 + movs r0, 0x1 + ands r0, r7 + cmp r0, 0 + beq _081643F4 + ldr r3, =gSaveBlock2Ptr + ldr r0, [r3] + ldr r4, =0x00000cb4 + adds r0, r4 + ldr r1, [sp, 0x28] + adds r0, r1 + ldrh r2, [r0] + ldr r0, =gUnknown_0203BC8C + ldr r0, [r0] + lsls r2, 4 + adds r2, r0 + lsls r1, r6, 4 + adds r1, r0 + ldrb r0, [r2, 0xA] + ldrb r1, [r1, 0xA] + cmp r0, r1 + beq _081643C0 +_081643F4: + movs r5, 0x8 + cmp r5, r10 + bge _08164430 + ldr r2, =gSaveBlock2Ptr + ldr r0, [r2] + ldr r1, =gUnknown_0203BC8C + ldr r3, [r1] + lsls r1, r6, 4 + adds r1, r3 + ldr r4, =0x00000cc4 + adds r2, r0, r4 + ldrh r0, [r1] + mov r12, r0 +_0816440E: + ldrh r0, [r2] + lsls r0, 4 + adds r0, r3 + ldrh r0, [r0] + cmp r0, r12 + beq _08164430 + ldrh r0, [r1] + ldr r4, [sp, 0x1C] + cmp r4, r0 + beq _08164430 + ldr r4, [sp, 0x20] + cmp r4, r0 + beq _08164430 + adds r2, 0x2 + adds r5, 0x1 + cmp r5, r10 + blt _0816440E +_08164430: + cmp r5, r10 + bne _081643C0 + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + ldr r2, =0x00000cb4 + adds r0, r2 + ldr r3, [sp, 0x38] + adds r0, r3 + strh r6, [r0] + ldr r4, [sp, 0x34] + mov r10, r4 + ldr r7, [sp, 0x30] + cmp r7, 0x1 + ble _081643A8 + ldr r0, [sp, 0x40] + adds r0, 0x18 + str r0, [sp, 0x40] + movs r1, 0x1 + add r9, r1 + mov r2, r9 + cmp r2, 0x5 + ble _0816438C + movs r3, 0 + mov r10, r3 + bl sub_8165B20 + movs r4, 0 + mov r9, r4 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + movs r2, 0 + adds r6, r0, 0 + adds r6, 0xDC + mov r8, sp +_08164474: + ldrb r0, [r6] + lsls r4, r0, 25 + lsrs r0, r4, 30 + cmp r0, 0 + beq _081644E0 + ldr r1, =gUnknown_085DF9EC + ldrb r0, [r6, 0x1] + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x7 + str r2, [sp, 0x44] + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + ldr r2, [sp, 0x44] + ldr r1, [sp, 0x18] + cmp r0, r1 + bgt _081644E0 + lsrs r0, r4, 30 + subs r0, 0x1 + ldr r3, [sp, 0x14] + cmp r0, r3 + bne _081644E0 + movs r5, 0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + adds r0, 0xE0 + adds r1, r2, r0 + movs r7, 0x2 +_081644B0: + ldrh r0, [r1] + ldr r4, [sp, 0x1C] + cmp r4, r0 + beq _081644C0 + ldr r3, [sp, 0x20] + cmp r3, r0 + beq _081644C0 + adds r5, 0x1 +_081644C0: + adds r1, 0xC + subs r7, 0x1 + cmp r7, 0 + bge _081644B0 + cmp r5, 0x2 + ble _081644E0 + movs r0, 0xC8 + lsls r0, 1 + add r0, r9 + mov r4, r8 + adds r4, 0x4 + mov r8, r4 + subs r4, 0x4 + stm r4!, {r0} + movs r0, 0x1 + add r10, r0 +_081644E0: + adds r2, 0x44 + adds r6, 0x44 + movs r1, 0x1 + add r9, r1 + mov r3, r9 + cmp r3, 0x3 + ble _08164474 + mov r4, r10 + cmp r4, 0 + beq _08164532 + bl Random + ldr r6, =gSaveBlock2Ptr + ldr r4, [r6] + lsls r0, 16 + lsrs r0, 16 + mov r1, r10 + bl __modsi3 + lsls r0, 2 + add r0, sp + ldr r0, [r0] + movs r5, 0xCC + lsls r5, 4 + adds r4, r5 + strh r0, [r4] + ldrh r0, [r4] + bl sub_81627A4 + ldr r1, [sp, 0x24] + adds r1, 0xA8 + strb r0, [r1, 0x1] + movs r0, 0xD8 + lsls r0, 2 + bl FlagReset + ldr r0, [r6] + adds r0, r5 + ldrh r0, [r0] + bl sub_81640E0 +_08164532: + movs r0, 0 + mov r10, r0 + mov r9, r0 + mov r1, sp + str r1, [sp, 0x3C] +_0816453C: + ldr r0, =gSaveBlock2Ptr + movs r2, 0xEC + mov r1, r9 + muls r1, r2 + movs r3, 0xE7 + lsls r3, 3 + adds r1, r3 + ldr r0, [r0] + movs r2, 0 + movs r3, 0 + movs r7, 0 + mov r4, r9 + adds r4, 0x1 + str r4, [sp, 0x2C] + adds r1, r0, r1 +_0816455A: + ldm r1!, {r0} + orrs r2, r0 + adds r3, r0 + adds r7, 0x1 + cmp r7, 0x39 + bls _0816455A + ldr r0, =gSaveBlock2Ptr + ldr r5, [r0] + movs r1, 0xEC + mov r6, r9 + muls r6, r1 + adds r4, r5, r6 + ldr r1, =0x0000073a + adds r0, r4, r1 + ldrh r0, [r0] + movs r1, 0x7 + str r2, [sp, 0x44] + str r3, [sp, 0x48] + bl __udivsi3 + lsls r0, 16 + lsrs r0, 16 + ldr r2, [sp, 0x44] + ldr r3, [sp, 0x48] + ldr r1, [sp, 0x18] + cmp r0, r1 + bgt _08164656 + movs r1, 0xE7 + lsls r1, 3 + adds r0, r4, r1 + ldrb r0, [r0] + ldr r4, [sp, 0x14] + cmp r0, r4 + bne _08164656 + cmp r2, 0 + beq _08164656 + adds r1, 0xE8 + adds r0, r5, r1 + adds r0, r6 + ldr r0, [r0] + cmp r0, r3 + bne _08164656 + movs r5, 0 + movs r7, 0 + ldr r2, =gSaveBlock2Ptr + mov r8, r2 + ldr r3, =0x0000076c +_081645B8: + mov r4, r8 + ldr r2, [r4] + movs r0, 0x2C + adds r1, r7, 0 + muls r1, r0 + movs r4, 0xEC + mov r0, r9 + muls r0, r4 + adds r6, r1, r0 + adds r2, r6 + adds r0, r2, r3 + ldrh r0, [r0] + ldr r1, [sp, 0x1C] + cmp r1, r0 + beq _0816463C + ldr r4, [sp, 0x20] + cmp r4, r0 + beq _0816463C + movs r0, 0xEF + lsls r0, 3 + adds r4, r2, r0 + ldr r1, [sp, 0x14] + lsls r0, r1, 24 + lsrs r0, 24 + str r3, [sp, 0x48] + bl sub_8165C90 + ldrb r1, [r4] + lsls r0, 24 + lsrs r0, 24 + ldr r3, [sp, 0x48] + cmp r1, r0 + bhi _0816463C + mov r2, r8 + ldr r0, [r2] + adds r0, r6 + adds r0, r3 + ldrh r0, [r0] + cmp r0, 0 + b _08164638 + .pool +_08164638: + beq _0816463C + adds r5, 0x1 +_0816463C: + adds r7, 0x1 + cmp r7, 0x3 + ble _081645B8 + cmp r5, 0x1 + ble _08164656 + movs r0, 0x96 + lsls r0, 1 + add r0, r9 + ldr r3, [sp, 0x3C] + stm r3!, {r0} + str r3, [sp, 0x3C] + movs r4, 0x1 + add r10, r4 +_08164656: + ldr r0, [sp, 0x2C] + mov r9, r0 + cmp r0, 0x4 + bgt _08164660 + b _0816453C +_08164660: + mov r1, r10 + cmp r1, 0 + beq _081646A0 + bl Random + ldr r6, =gSaveBlock2Ptr + ldr r4, [r6] + lsls r0, 16 + lsrs r0, 16 + mov r1, r10 + bl __modsi3 + lsls r0, 2 + add r0, sp + ldr r0, [r0] + ldr r5, =0x00000cc2 + adds r4, r5 + strh r0, [r4] + ldrh r0, [r4] + bl sub_81627A4 + ldr r1, [sp, 0x24] + adds r1, 0xC0 + strb r0, [r1, 0x1] + ldr r0, =0x00000361 + bl FlagReset + ldr r0, [r6] + adds r0, r5 + ldrh r0, [r0] + bl sub_8164188 +_081646A0: + add sp, 0x4C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81642A0 + + thumb_func_start sub_81646BC +sub_81646BC: @ 81646BC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + movs r0, 0 + mov r9, r0 + mov r10, r0 + bl sub_8165C40 + movs r0, 0xFA + lsls r0, 1 + cmp r5, r0 + beq _081647CE + subs r0, 0xC9 + cmp r5, r0 + bhi _081646FC + ldr r0, =gUnknown_0203BC8C + ldr r1, [r0] + lsls r0, r4, 4 + adds r0, r1 + ldrh r1, [r0, 0x2] + mov r9, r1 + ldrh r0, [r0] + mov r10, r0 + b _081647CE + .pool +_081646FC: + ldr r0, =0x0000018f + cmp r5, r0 + bhi _08164750 + ldr r0, =gSaveBlock2Ptr + ldr r3, [r0] + ldr r1, =gUnknown_03006298 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + adds r0, 0x1 + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x2C + muls r1, r0 + ldr r0, =0xfffffed4 + adds r2, r5, r0 + movs r0, 0xEC + muls r0, r2 + adds r1, r0 + adds r3, r1 + movs r1, 0xEE + lsls r1, 3 + adds r0, r3, r1 + ldrh r0, [r0] + mov r9, r0 + ldr r2, =0x0000076c + adds r3, r2 + ldrh r3, [r3] + mov r10, r3 + b _081647CE + .pool +_08164750: + ldr r4, =gSaveBlock2Ptr + ldr r3, [r4] + ldr r1, =gUnknown_03006298 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + subs r0, 0x1 + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r2, =0xfffffe70 + adds r1, r5, r2 + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r0, r2 + adds r3, r0 + adds r0, r3, 0 + adds r0, 0xE2 + ldrh r0, [r0] + mov r9, r0 + adds r3, 0xE0 + ldrh r3, [r3] + mov r10, r3 + movs r3, 0 + ldr r7, =gStringVar3 + mov r8, r7 + adds r0, r4, 0 + mov r12, r0 + adds r4, r2, 0 + movs r6, 0x8A + lsls r6, 1 +_08164794: + mov r1, r8 + adds r2, r3, r1 + mov r1, r12 + ldr r0, [r1] + adds r1, r3, r4 + adds r0, r6 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + adds r3, 0x1 + cmp r3, 0x6 + ble _08164794 + adds r1, r3, r7 + movs r0, 0xFF + strb r0, [r1] + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r0, =0xfffffe70 + adds r1, r5, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, r0 + ldr r1, =0x0000011b + adds r0, r2, r1 + ldrb r1, [r0] + adds r0, r7, 0 + bl ConvertInternationalString +_081647CE: + ldr r0, =gStringVar1 + movs r1, 0xD + mov r2, r9 + muls r2, r1 + adds r1, r2, 0 + ldr r2, =gMoveNames + adds r1, r2 + bl StringCopy + ldr r0, =gStringVar2 + movs r1, 0xB + mov r2, r10 + muls r2, r1 + adds r1, r2, 0 + ldr r2, =gSpeciesNames + adds r1, r2 + bl StringCopy + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81646BC + + thumb_func_start sub_8164828 +sub_8164828: @ 8164828 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + bl sub_8165C40 + bl sub_81A39C4 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x7 + bl __udivsi3 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, =gScriptLastTalked + ldrh r0, [r0] + subs r5, r0, 0x2 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r5, 1 + ldr r2, =0x00000cb4 + adds r0, r2 + adds r0, r1 + ldrh r7, [r0] + movs r3, 0 + str r3, [sp] + ldr r4, =gUnknown_085DD500 + lsls r6, r7, 16 + b _08164884 + .pool +_0816487C: + adds r4, 0x8 + ldr r0, [sp] + adds r0, 0x1 + str r0, [sp] +_08164884: + ldr r1, [sp] + cmp r1, 0x31 + bhi _0816489A + lsrs r0, r6, 16 + bl sub_8162D34 + lsls r0, 24 + lsrs r0, 24 + ldr r1, [r4] + cmp r1, r0 + bne _0816487C +_0816489A: + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + cmp r0, 0x4 + bls _081648A4 + b _08164AC2 +_081648A4: + lsls r0, 2 + ldr r1, =_081648B8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081648B8: + .4byte _081648CC + .4byte _08164984 + .4byte _0816499C + .4byte _081649BC + .4byte _08164AC2 +_081648CC: + movs r0, 0xFA + lsls r0, 1 + cmp r7, r0 + bne _081648D6 + b _08164B54 +_081648D6: + subs r0, 0xC9 + cmp r7, r0 + ble _081648E2 + ldr r0, =0x0000018f + cmp r7, r0 + bgt _081648F4 +_081648E2: + ldr r0, =gStringVar1 + adds r1, r7, 0 + bl sub_8162E20 + b _08164AC2 + .pool +_081648F4: + movs r3, 0 + lsls r2, r7, 16 + mov r10, r2 + ldr r6, =gStringVar1 + mov r9, r6 + ldr r4, =gSaveBlock2Ptr + mov r8, r4 + ldr r5, =0xfffffe70 + adds r1, r7, r5 + lsls r0, r1, 4 + adds r0, r1 + lsls r4, r0, 2 + movs r5, 0x8A + lsls r5, 1 +_08164910: + mov r0, r9 + adds r2, r3, r0 + mov r1, r8 + ldr r0, [r1] + adds r1, r3, r4 + adds r0, r5 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + adds r3, 0x1 + cmp r3, 0x6 + ble _08164910 + adds r1, r3, r6 + movs r0, 0xFF + strb r0, [r1] + ldr r2, =gSaveBlock2Ptr + ldr r1, [r2] + ldr r3, =0xfffffe70 + adds r0, r7, r3 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r1, r4 + ldr r5, =0x0000011b + adds r0, r1, r5 + ldrb r1, [r0] + adds r0, r6, 0 + bl ConvertInternationalString + ldr r0, =gStringVar2 + ldr r2, =gSaveBlock2Ptr + ldr r1, [r2] + adds r1, r4 + adds r1, 0xDE + ldrb r1, [r1] + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r0, =gStringVar3 + mov r3, r10 + lsrs r1, r3, 16 + bl sub_8162E20 + b _08164AC2 + .pool +_08164984: + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + lsls r0, r5, 2 + adds r1, r0 + ldr r4, =0x00000cc4 + adds r1, r4 + b _081649A8 + .pool +_0816499C: + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + lsls r0, r5, 2 + adds r1, r0 + ldr r5, =0x00000cc6 + adds r1, r5 +_081649A8: + adds r0, r7, 0 + ldrh r1, [r1] + bl sub_81646BC + b _08164AC2 + .pool +_081649BC: + ldr r0, =gUnknown_02038BCE + strh r7, [r0] + ldr r0, =0x0000012b + cmp r7, r0 + bgt _08164A08 + ldr r0, =gSaveBlock2Ptr + ldr r4, [r0] + lsls r1, r5, 1 + adds r0, r1, 0 + adds r0, 0x8 + lsls r0, 1 + ldr r3, =0x00000cb4 + adds r2, r4, r3 + adds r0, r2, r0 + ldrh r3, [r0] + ldr r5, =0x00000cd8 + adds r0, r4, r5 + strh r3, [r0] + adds r1, 0x9 + lsls r1, 1 + adds r2, r1 + ldrh r0, [r2] + ldr r1, =0x00000cda + adds r4, r1 + strh r0, [r4] + b _08164A46 + .pool +_08164A08: + ldr r0, =0x0000018f + cmp r7, r0 + bgt _08164A30 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r3, =gUnknown_03006298 + ldrh r2, [r3, 0x4] + ldr r4, =0x00000cd8 + adds r0, r1, r4 + strh r2, [r0] + ldrh r0, [r3, 0x6] + b _08164A40 + .pool +_08164A30: + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r3, =gUnknown_03006298 + ldrh r2, [r3] + ldr r4, =0x00000cd8 + adds r0, r1, r4 + strh r2, [r0] + ldrh r0, [r3, 0x2] +_08164A40: + ldr r5, =0x00000cda + adds r1, r5 + strh r0, [r1] +_08164A46: + movs r5, 0 + mov r0, r8 + lsls r0, 24 + str r0, [sp, 0x4] +_08164A4E: + lsls r1, r5, 1 + mov r10, r1 + adds r2, r5, 0x1 + mov r9, r2 + lsrs r0, r5, 31 + adds r0, r5, r0 + asrs r0, 1 + lsls r0, 24 + mov r8, r0 +_08164A60: + ldr r3, [sp, 0x4] + lsrs r0, r3, 24 + mov r4, r8 + lsrs r1, r4, 24 + bl sub_8162548 + lsls r0, 16 + lsrs r3, r0, 16 + ldr r0, =gUnknown_02038BCE + ldrh r0, [r0] + cmp r0, r3 + beq _08164A60 + movs r2, 0 + cmp r2, r5 + bge _08164AA2 + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + ldr r4, =0x00000cb4 + adds r0, r4 + ldrh r0, [r0] + cmp r0, r3 + beq _08164AA2 + adds r6, r1, 0 +_08164A8E: + adds r2, 0x1 + cmp r2, r5 + bge _08164AA2 + ldr r0, [r6] + lsls r1, r2, 1 + adds r0, r4 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r3 + bne _08164A8E +_08164AA2: + cmp r2, r5 + bne _08164A60 + ldr r5, =gSaveBlock2Ptr + ldr r0, [r5] + ldr r1, =0x00000cb4 + adds r0, r1 + add r0, r10 + strh r3, [r0] + mov r5, r9 + cmp r5, 0xD + ble _08164A4E + ldr r2, =gSaveBlock2Ptr + ldr r0, [r2] + ldr r3, =0x00000cd6 + adds r0, r3 + strh r7, [r0] +_08164AC2: + movs r0, 0xFA + lsls r0, 1 + cmp r7, r0 + beq _08164B54 + subs r0, 0xC9 + cmp r7, r0 + bgt _08164AF8 + ldr r0, =gUnknown_085DD500 + ldr r4, [sp] + lsls r1, r4, 3 + b _08164B04 + .pool +_08164AF8: + ldr r0, =0x0000018f + cmp r7, r0 + bgt _08164B28 + ldr r0, =gUnknown_085DD500 + ldr r5, [sp] + lsls r1, r5, 3 +_08164B04: + adds r0, 0x4 + adds r1, r0 + ldr r0, =gSpecialVar_0x8005 + ldrh r0, [r0] + ldr r1, [r1] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl box_related_two__2 + b _08164B54 + .pool +_08164B28: + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r0, =0xfffffe70 + adds r2, r7, r0 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r1, r0 + adds r1, 0xDC + ldrb r0, [r1] + lsls r0, 27 + ldr r1, =gUnknown_085DD690 + lsrs r0, 25 + adds r0, r1 + ldr r1, =gSpecialVar_0x8005 + ldrh r1, [r1] + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl box_related_two__2 +_08164B54: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8164828 + + thumb_func_start sub_8164B74 +sub_8164B74: @ 8164B74 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r7, r0, 30 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, [r4] + ldr r2, =0x00000cb2 + adds r0, r2 + ldrh r6, [r0] + bl link_get_multiplayer_id + ldr r0, =gScriptResult + ldrh r0, [r0] + cmp r0, 0x6 + bls _08164BAC + b _08164DB6 +_08164BAC: + lsls r0, 2 + ldr r1, =_08164BD0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08164BD0: + .4byte _08164BEC + .4byte _08164C3C + .4byte _08164CE0 + .4byte _08164D14 + .4byte _08164D98 + .4byte _08164DA8 + .4byte _08164DB6 +_08164BEC: + cmp r5, 0x3 + beq _08164BF2 + b _08164DB0 +_08164BF2: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r7, 1 + adds r0, r1 + ldr r3, =0x00000cec + adds r0, r3 + ldrh r0, [r0] + movs r1, 0x7 + bl __udivsi3 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp] + bl sub_800A520 + lsls r0, 24 + cmp r0, 0 + bne _08164C18 + b _08164DB6 +_08164C18: + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + mov r1, sp + movs r2, 0x4 + bl link_0800A448 + ldr r1, =gScriptResult + movs r0, 0x1 + b _08164DB4 + .pool +_08164C3C: + bl sub_800A550 + movs r1, 0x3 + ands r1, r0 + cmp r1, 0x3 + beq _08164C4A + b _08164DB6 +_08164C4A: + bl sub_800A5B4 + ldr r1, =gUnknown_020223C4 + movs r0, 0x80 + lsls r0, 1 + adds r2, r1, r0 + ldrh r0, [r1] + ldrh r3, [r2] + cmp r0, r3 + bhi _08164C60 + ldrh r0, [r2] +_08164C60: + str r0, [sp] + movs r4, 0 + ldr r0, =gSaveBlock2Ptr + mov r9, r0 +_08164C68: + adds r1, r4, 0x1 + mov r8, r1 + lsrs r0, r4, 31 + adds r0, r4, r0 + asrs r0, 1 + lsls r7, r0, 24 +_08164C74: + ldr r0, [sp] + lsls r0, 24 + lsrs r0, 24 + lsrs r1, r7, 24 + bl sub_8162548 + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + cmp r2, r4 + bge _08164CB0 + mov r1, r9 + ldr r0, [r1] + ldr r1, =0x00000cb4 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r3 + beq _08164CB0 + ldr r6, =gSaveBlock2Ptr + adds r5, r1, 0 +_08164C9C: + adds r2, 0x1 + cmp r2, r4 + bge _08164CB0 + ldr r0, [r6] + lsls r1, r2, 1 + adds r0, r5 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r3 + bne _08164C9C +_08164CB0: + cmp r4, r2 + bne _08164C74 + mov r2, r9 + ldr r0, [r2] + lsls r1, r4, 1 + ldr r2, =0x00000cb4 + adds r0, r2 + adds r0, r1 + strh r3, [r0] + mov r4, r8 + cmp r4, 0xD + ble _08164C68 + ldr r1, =gScriptResult + movs r0, 0x2 + b _08164DB4 + .pool +_08164CE0: + bl sub_800A520 + lsls r0, 24 + cmp r0, 0 + beq _08164DB6 + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gSaveBlock2Ptr + ldr r1, [r1] + ldr r3, =0x00000cb4 + adds r1, r3 + movs r2, 0x28 + bl link_0800A448 + ldr r1, =gScriptResult + movs r0, 0x3 + b _08164DB4 + .pool +_08164D14: + bl sub_800A550 + movs r1, 0x3 + ands r1, r0 + cmp r1, 0x3 + bne _08164DB6 + bl sub_800A5B4 + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r5, =0x00000cb4 + adds r0, r5 + ldr r1, =gUnknown_020223C4 + movs r2, 0x28 + bl memcpy + ldr r2, =gUnknown_02038BCA + ldr r1, [r4] + lsls r0, r6, 2 + adds r1, r5 + adds r0, r1, r0 + ldrh r0, [r0] + strh r0, [r2] + ldr r4, =gUnknown_02038BCC + lsls r0, r6, 1 + adds r0, 0x1 + lsls r0, 1 + adds r1, r0 + ldrh r0, [r1] + strh r0, [r4] + ldrh r0, [r2] + movs r1, 0 + bl sub_8162614 + ldrh r0, [r4] + movs r1, 0x1 + bl sub_8162614 + ldr r0, =gUnknown_03003124 + ldrb r0, [r0] + cmp r0, 0 + beq _08164DB0 + ldr r0, =gLinkVSyncDisabled + ldrb r0, [r0] + cmp r0, 0 + bne _08164DB0 + ldr r1, =gScriptResult + movs r0, 0x4 + b _08164DB4 + .pool +_08164D98: + bl sub_800AC34 + ldr r1, =gScriptResult + movs r0, 0x5 + b _08164DB4 + .pool +_08164DA8: + ldr r0, =gUnknown_03003124 + ldrb r0, [r0] + cmp r0, 0 + bne _08164DB6 +_08164DB0: + ldr r1, =gScriptResult + movs r0, 0x6 +_08164DB4: + strh r0, [r1] +_08164DB6: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8164B74 + + thumb_func_start sub_8164DCC +sub_8164DCC: @ 8164DCC + push {lr} + ldr r0, =gLinkVSyncDisabled + ldrb r0, [r0] + cmp r0, 0 + beq _08164DDA + bl sub_800AC34 +_08164DDA: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8164DCC + + thumb_func_start sub_8164DE4 +sub_8164DE4: @ 8164DE4 + push {lr} + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000cd6 + adds r0, r1 + ldrh r0, [r0] + movs r1, 0xF + bl sub_8162614 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8164DE4 + + thumb_func_start sub_8164E04 +sub_8164E04: @ 8164E04 + push {r4-r6,lr} + sub sp, 0x20 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 16 + cmp r0, 0 + bne _08164E9A + ldr r5, =gUnknown_02038BCA + ldrh r1, [r5] + mov r0, sp + bl sub_8162E20 + mov r0, sp + bl StripExtCtrlCodes + ldr r4, =gSaveBlock2Ptr + ldr r0, [r4] + ldr r1, =0x00000bd8 + adds r0, r1 + mov r1, sp + bl StringCopy + ldr r0, [r4] + ldr r2, =0x00000beb + adds r0, r2 + ldrh r1, [r5] + bl sub_8165B88 + ldr r6, =gBattlePartyID + ldrh r0, [r6, 0x2] + movs r5, 0x64 + muls r0, r5 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xB + movs r2, 0 + bl GetMonData + ldr r1, [r4] + ldr r2, =0x00000bd6 + adds r1, r2 + strh r0, [r1] + ldrh r0, [r6] + muls r0, r5 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + movs r2, 0 + bl GetMonData + ldr r1, [r4] + ldr r2, =0x00000bd4 + adds r1, r2 + strh r0, [r1] + movs r2, 0 + movs r5, 0xBE + lsls r5, 4 + ldr r3, =gUnknown_020240B4 + adds r6, r4, 0 +_08164E7C: + ldr r0, [r4] + adds r0, r5 + adds r0, r2 + adds r1, r2, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0xA + ble _08164E7C + ldr r0, [r6] + ldr r1, =gBattleOutcome + ldrb r1, [r1] + ldr r2, =0x00000d06 + adds r0, r2 + strb r1, [r0] +_08164E9A: + add sp, 0x20 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8164E04 + + thumb_func_start sub_8164ED8 +sub_8164ED8: @ 8164ED8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + movs r3, 0 + movs r2, 0 + ldr r4, =0x0000064c + adds r1, r0, r4 +_08164EEA: + ldm r1!, {r0} + adds r3, r0 + adds r2, 0x1 + cmp r2, 0x39 + bls _08164EEA + ldr r5, =gSaveBlock2Ptr + ldr r1, [r5] + ldr r2, =0x00000734 + adds r0, r1, r2 + ldr r0, [r0] + cmp r0, r3 + beq _08164F0A + ldr r3, =0x0000064c + adds r0, r1, r3 + bl sub_8164FB8 +_08164F0A: + movs r4, 0 + adds r7, r5, 0 + movs r6, 0xEC + mov r8, r7 +_08164F12: + adds r0, r4, 0 + muls r0, r6 + movs r1, 0xE7 + lsls r1, 3 + adds r0, r1 + ldr r1, [r7] + movs r3, 0 + movs r2, 0 + adds r5, r4, 0x1 + adds r1, r0 +_08164F26: + ldm r1!, {r0} + adds r3, r0 + adds r2, 0x1 + cmp r2, 0x39 + bls _08164F26 + mov r0, r8 + ldr r2, [r0] + adds r1, r4, 0 + muls r1, r6 + movs r4, 0x82 + lsls r4, 4 + adds r0, r2, r4 + adds r0, r1 + ldr r0, [r0] + cmp r0, r3 + beq _08164F52 + movs r3, 0xE7 + lsls r3, 3 + adds r0, r1, r3 + adds r0, r2, r0 + bl sub_8164FB8 +_08164F52: + adds r4, r5, 0 + cmp r4, 0x4 + ble _08164F12 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8164ED8 + + thumb_func_start sub_8164F70 +sub_8164F70: @ 8164F70 + push {r4,lr} + adds r2, r0, 0 + adds r2, 0xE8 + movs r1, 0 + str r1, [r2] + movs r3, 0 + adds r4, r0, 0 +_08164F7E: + ldr r0, [r2] + ldm r4!, {r1} + adds r0, r1 + str r0, [r2] + adds r3, 0x1 + cmp r3, 0x39 + bls _08164F7E + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8164F70 + + thumb_func_start sub_8164F94 +sub_8164F94: @ 8164F94 + push {r4,lr} + adds r2, r0, 0 + adds r2, 0xA0 + movs r1, 0 + str r1, [r2] + movs r3, 0 + adds r4, r0, 0 +_08164FA2: + ldr r0, [r2] + ldm r4!, {r1} + adds r0, r1 + str r0, [r2] + adds r3, 0x1 + cmp r3, 0x27 + bls _08164FA2 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8164F94 + + thumb_func_start sub_8164FB8 +sub_8164FB8: @ 8164FB8 + push {lr} + movs r1, 0 + movs r2, 0 +_08164FBE: + stm r0!, {r2} + adds r1, 0x1 + cmp r1, 0x3A + bls _08164FBE + pop {r0} + bx r0 + thumb_func_end sub_8164FB8 + + thumb_func_start sub_8164FCC +sub_8164FCC: @ 8164FCC + push {lr} + lsls r0, 24 + lsls r1, 24 + ldr r2, =gSaveBlock2Ptr + ldr r2, [r2] + lsrs r0, 23 + lsrs r1, 22 + adds r0, r1 + movs r1, 0xCE + lsls r1, 4 + adds r2, r1 + adds r2, r0 + ldrh r0, [r2] + ldr r1, =0x0000270f + cmp r0, r1 + bls _08164FEE + adds r0, r1, 0 +_08164FEE: + pop {r1} + bx r1 + .pool + thumb_func_end sub_8164FCC + + thumb_func_start sub_8164FFC +sub_8164FFC: @ 8164FFC + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, =gUnknown_085DFA42 + mov r0, sp + movs r2, 0x4 + bl memcpy + cmp r4, 0x3 + bls _0816501C + movs r0, 0x3 + b _08165022 + .pool +_0816501C: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] +_08165022: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8164FFC + + thumb_func_start sub_816502C +sub_816502C: @ 816502C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000ca9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 30 + adds r5, r0, 0 + ldr r0, =0x000040ce + bl VarGet + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + bl sub_8164FFC + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r2, 0x44 + mov r10, r2 + cmp r5, 0 + beq _0816506A + movs r0, 0x45 + mov r10, r0 +_0816506A: + ldr r1, =gScriptResult + mov r9, r1 + movs r0, 0 + strh r0, [r1] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8164FCC + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x37 + bls _081650DC + movs r6, 0 + cmp r6, r8 + bge _081650DC + ldr r7, =gSaveBlock1Ptr + mov r5, sp +_0816508C: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + lsls r1, r6, 1 + ldr r2, =0x00000caa + adds r0, r2 + adds r0, r1 + ldrh r1, [r0] + subs r1, 0x1 + movs r0, 0 + strb r1, [r5] + strb r0, [r5, 0x1] + movs r0, 0x64 + muls r0, r1 + movs r1, 0x8E + lsls r1, 2 + adds r4, r0, r1 + ldr r0, [r7] + adds r0, r4 + mov r1, r10 + bl GetMonData + cmp r0, 0 + bne _081650D4 + movs r0, 0x1 + mov r2, r9 + strh r0, [r2] + ldr r0, [r7] + adds r0, r4 + mov r1, r10 + bl SetMonData + ldr r0, [r7] + adds r0, r4 + bl sub_80EE5A4 + strb r0, [r5, 0x1] +_081650D4: + adds r5, 0x4 + adds r6, 0x1 + cmp r6, r8 + blt _0816508C +_081650DC: + ldr r0, =gScriptResult + ldrh r0, [r0] + cmp r0, 0 + beq _08165132 + movs r0, 0x2A + bl IncrementGameStat + mov r0, r8 + cmp r0, 0x1 + ble _08165110 + mov r3, sp + add r2, sp, 0x4 + mov r6, r8 + subs r6, 0x1 +_081650F8: + ldrb r1, [r3, 0x1] + ldrb r0, [r2, 0x1] + cmp r0, r1 + bls _08165108 + ldr r1, [sp] + ldr r0, [r2] + str r0, [sp] + str r1, [r2] +_08165108: + adds r2, 0x4 + subs r6, 0x1 + cmp r6, 0 + bne _081650F8 +_08165110: + mov r0, sp + ldrb r0, [r0, 0x1] + cmp r0, 0x4 + bls _08165132 + ldr r2, =gSaveBlock1Ptr + mov r0, sp + ldrb r1, [r0] + movs r0, 0x64 + muls r1, r0 + movs r0, 0x8E + lsls r0, 2 + adds r1, r0 + ldr r0, [r2] + adds r0, r1 + mov r1, r10 + bl sub_80EE4DC +_08165132: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816502C + + thumb_func_start sub_816515C +sub_816515C: @ 816515C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r1, =gSaveBlock2Ptr + ldr r2, [r1] + ldr r0, =0x00000bec + adds r7, r2, r0 + ldrb r0, [r2, 0x8] + adds r5, r1, 0 + cmp r0, 0 + beq _08165194 + ldr r4, =gUnknown_085DCEFA + 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 _081651A6 + .pool +_08165194: + ldr r4, =gUnknown_085DCEDC + 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 +_081651A6: + bl __umodsi3 + adds r0, r4 + ldrb r0, [r0] + strb r0, [r7, 0x1] + adds r0, r7, 0 + adds r0, 0xC + ldr r1, [r5] + adds r1, 0xA + bl CopyUnalignedWord + adds r0, r7, 0x4 + ldr r1, [r5] + bl StringCopy7 + movs r0, 0x1 + strh r0, [r7, 0x2] + movs r6, 0x7 + movs r4, 0 + ldr r0, =gSaveBlock1Ptr + mov r8, r0 + adds r5, r7, 0 + adds r5, 0x10 + ldr r1, =0x00002bbc + mov r12, r1 + adds r3, r7, 0 + adds r3, 0x28 + adds r2, r7, 0 + adds r2, 0x1C +_081651E0: + lsls r0, r4, 1 + mov r9, r0 + mov r1, r8 + ldr r0, [r1] + add r0, r12 + add r0, r9 + ldrh r0, [r0] + strh r0, [r5] + strh r6, [r2] + adds r0, r6, 0x6 + strh r0, [r3] + adds r6, 0x1 + adds r5, 0x2 + adds r3, 0x2 + adds r2, 0x2 + adds r4, 0x1 + cmp r4, 0x5 + ble _081651E0 + movs r4, 0 +_08165206: + movs r0, 0x64 + muls r0, r4 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2C + muls r1, r4 + adds r1, 0x34 + adds r1, r7, r1 + bl sub_80686FC + adds r4, 0x1 + cmp r4, 0x2 + ble _08165206 + adds r0, r7, 0 + bl sub_8165328 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816515C + + thumb_func_start sub_8165244 +sub_8165244: @ 8165244 + ldr r1, =gTrainerPicIndices + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000bed + adds r0, r2 + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_8165244 + + thumb_func_start sub_8165264 +sub_8165264: @ 8165264 + ldr r1, =gTrainerClassNameIndices + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000bed + adds r0, r2 + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_8165264 + + thumb_func_start sub_8165284 +sub_8165284: @ 8165284 + push {r4,lr} + adds r3, r0, 0 + movs r2, 0 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + movs r1, 0xBF + lsls r1, 4 + adds r4, r0, r1 +_08165294: + adds r0, r3, r2 + adds r1, r4, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x4 + ble _08165294 + adds r1, r3, r2 + movs r0, 0xFF + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8165284 + + thumb_func_start sub_81652B4 +sub_81652B4: @ 81652B4 + push {r4-r6,lr} + ldr r2, =gScriptResult + movs r0, 0 + strh r0, [r2] + ldr r1, =gSaveBlock2Ptr + ldr r0, [r1] + ldr r3, =0x00000bec + adds r5, r0, r3 + movs r4, 0 + movs r3, 0 + adds r6, r1, 0 + adds r1, r5, 0 +_081652CC: + ldm r1!, {r0} + orrs r4, r0 + adds r3, 0x1 + cmp r3, 0x2D + bls _081652CC + cmp r4, 0 + bne _081652EC + movs r0, 0x1 + strh r0, [r2] + b _08165316 + .pool +_081652EC: + movs r4, 0 + movs r3, 0 + adds r2, r5, 0 +_081652F2: + ldm r2!, {r0} + adds r4, r0 + adds r3, 0x1 + cmp r3, 0x2D + bls _081652F2 + ldr r1, [r6] + ldr r2, =0x00000ca4 + adds r0, r1, r2 + ldr r0, [r0] + cmp r0, r4 + beq _08165316 + ldr r3, =0x00000bec + adds r0, r1, r3 + bl sub_816534C + ldr r1, =gScriptResult + movs r0, 0x1 + strh r0, [r1] +_08165316: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81652B4 + + thumb_func_start sub_8165328 +sub_8165328: @ 8165328 + push {r4,lr} + adds r2, r0, 0 + adds r2, 0xB8 + movs r1, 0 + str r1, [r2] + movs r3, 0 + adds r4, r0, 0 +_08165336: + ldr r0, [r2] + ldm r4!, {r1} + adds r0, r1 + str r0, [r2] + adds r3, 0x1 + cmp r3, 0x2D + bls _08165336 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8165328 + + thumb_func_start sub_816534C +sub_816534C: @ 816534C + push {lr} + movs r1, 0 + movs r2, 0 +_08165352: + stm r0!, {r2} + adds r1, 0x1 + cmp r1, 0x2E + bls _08165352 + pop {r0} + bx r0 + thumb_func_end sub_816534C + + thumb_func_start sub_8165360 +sub_8165360: @ 8165360 + push {lr} + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000bfc + adds r0, r1 + bl ConvertBattleFrontierTrainerSpeechToString + pop {r0} + bx r0 + .pool + thumb_func_end sub_8165360 + + thumb_func_start sub_816537C +sub_816537C: @ 816537C + push {lr} + ldr r0, =gBattleOutcome + ldrb r0, [r0] + cmp r0, 0x3 + bne _08165398 + ldr r1, =gStringVar4 + movs r0, 0xFF + strb r0, [r1] + b _081653C0 + .pool +_08165398: + cmp r0, 0x1 + bne _081653B4 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000c14 + adds r0, r1 + bl ConvertBattleFrontierTrainerSpeechToString + b _081653C0 + .pool +_081653B4: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000c08 + adds r0, r1 + bl ConvertBattleFrontierTrainerSpeechToString +_081653C0: + pop {r0} + bx r0 + .pool + thumb_func_end sub_816537C + + thumb_func_start sub_81653CC +sub_81653CC: @ 81653CC + push {lr} + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000ca8 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _081653E0 + bl sub_80F01B8 +_081653E0: + movs r0, 0x77 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081653F8 + bl sub_80F01B8 + movs r0, 0x77 + bl FlagReset +_081653F8: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81653CC + + thumb_func_start sub_8165404 +sub_8165404: @ 8165404 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x70 + lsls r0, 16 + lsrs r7, r0, 16 + bl sub_8165C40 + ldr r0, =0x00000c03 + cmp r7, r0 + beq _08165420 + b _0816554C +_08165420: + movs r0, 0 + mov r10, r0 + mov r1, sp + adds r1, 0x44 + str r1, [sp, 0x64] +_0816542A: + mov r2, r10 + lsls r2, 2 + mov r9, r2 + mov r3, r10 + adds r3, 0x1 + str r3, [sp, 0x60] + mov r0, r9 + add r0, r10 + lsls r0, 2 + ldr r6, =gUnknown_085DD6D0 + adds r5, r0, r6 +_08165440: + bl Random + adds r4, r0, 0 + bl Random + lsls r4, 16 + lsrs r4, 16 + lsls r0, 16 + orrs r4, r0 + str r4, [sp, 0x44] + ldr r0, =0x0000ef2a + adds r1, r4, 0 + bl sub_806EBD0 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0 + bne _08165440 + ldr r0, [sp, 0x44] + bl GetNatureFromPersonality + ldrb r1, [r5, 0x4] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + bne _08165440 + movs r0, 0x64 + mov r6, r10 + muls r6, r0 + ldr r1, =gUnknown_02024618 + mov r8, r1 + adds r0, r6, r1 + mov r5, r9 + add r5, r10 + lsls r5, 2 + ldr r2, =gUnknown_085DD6D0 + adds r3, r5, r2 + ldrh r1, [r3] + ldrb r2, [r3, 0x3] + ldrb r3, [r3, 0x2] + mov r12, r3 + movs r4, 0x1 + str r4, [sp] + mov r3, r10 + str r3, [sp, 0x4] + str r4, [sp, 0x8] + ldr r4, =0x0000ef2a + str r4, [sp, 0xC] + mov r3, r12 + bl CreateMon + str r7, [sp, 0x44] + movs r3, 0 + mov r4, r8 + ldr r0, =gUnknown_085DD6D5 + adds r5, r0 +_081654B0: + adds r1, r3, 0 + adds r1, 0x1A + adds r2, r5, r3 + adds r0, r6, r4 + bl SetMonData + ldr r0, [sp, 0x44] + adds r0, 0x1 + str r0, [sp, 0x44] + adds r3, r0, 0 + cmp r3, 0x5 + ble _081654B0 + movs r0, 0 + str r0, [sp, 0x44] + movs r1, 0 + movs r6, 0x64 + mov r4, r10 + muls r4, r6 + ldr r7, =gUnknown_085DD6DC + ldr r6, =gUnknown_02024618 + mov r0, r9 + add r0, r10 + lsls r5, r0, 2 +_081654DE: + lsls r0, r1, 1 + adds r0, r5 + adds r0, r7 + ldrh r1, [r0] + ldr r0, [sp, 0x64] + ldrb r2, [r0] + adds r0, r4, r6 + bl sub_80691F4 + ldr r0, [sp, 0x44] + adds r0, 0x1 + str r0, [sp, 0x44] + adds r1, r0, 0 + cmp r1, 0x3 + ble _081654DE + movs r1, 0x64 + mov r4, r10 + muls r4, r1 + ldr r0, =gUnknown_02024618 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x7 + ldr r2, =gTrainers + TRAINER_STEVEN * 0x28 + 0x4 @ Steven's name + bl SetMonData + movs r0, 0 + str r0, [sp, 0x44] + adds r0, r4, 0 + movs r1, 0x31 + ldr r2, [sp, 0x64] + bl SetMonData + adds r0, r4, 0 + bl pokemon_calc_effective_stats + ldr r2, [sp, 0x60] + mov r10, r2 + cmp r2, 0x2 + bgt _0816552E + b _0816542A +_0816552E: + b _0816585A + .pool +_0816554C: + movs r0, 0xFA + lsls r0, 1 + cmp r7, r0 + bne _08165564 + add r0, sp, 0x10 + ldr r1, =gGameLanguage + ldrb r1, [r1] + strb r1, [r0] + b _0816585A + .pool +_08165564: + ldr r0, =0x0000012b + cmp r7, r0 + bls _0816556C + b _081656E8 +_0816556C: + bl sub_8165C40 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x50] + adds r0, r7, 0 + bl sub_8165D08 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4C] + bl Random + adds r4, r0, 0 + bl Random + lsls r4, 16 + lsrs r4, 16 + lsls r0, 16 + orrs r4, r0 + str r4, [sp, 0x58] + movs r3, 0 + mov r10, r3 + mov r6, sp + adds r6, 0x44 + str r6, [sp, 0x64] + mov r0, sp + adds r0, 0x48 + str r0, [sp, 0x5C] +_081655A6: + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + mov r0, r10 + adds r0, 0x12 + lsls r0, 1 + ldr r2, =0x00000cb4 + adds r1, r2 + adds r1, r0 + ldrh r1, [r1] + str r1, [sp, 0x54] + movs r6, 0x64 + mov r3, r10 + muls r3, r6 + mov r8, r3 + ldr r0, =gUnknown_02024618 + mov r9, r0 + mov r0, r8 + add r0, r9 + ldr r6, =gUnknown_0203BC8C + ldr r4, [r6] + lsls r5, r1, 4 + adds r4, r5, r4 + ldrh r1, [r4] + ldr r3, [sp, 0x50] + lsls r2, r3, 24 + ldrb r3, [r4, 0xC] + mov r12, r3 + ldr r3, [sp, 0x4C] + str r3, [sp] + ldrb r4, [r4, 0xB] + str r4, [sp, 0x4] + ldr r3, [sp, 0x58] + str r3, [sp, 0x8] + lsrs r2, 24 + mov r3, r12 + bl sub_8068634 + movs r0, 0xFF + str r0, [sp, 0x48] + movs r0, 0 + str r0, [sp, 0x44] + movs r2, 0 + mov r0, r10 + adds r0, 0x1 + str r0, [sp, 0x60] + mov r4, r8 + mov r3, r9 +_08165604: + ldr r0, [r6] + adds r0, r5, r0 + lsls r1, r2, 1 + adds r0, 0x2 + adds r0, r1 + ldrh r1, [r0] + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, r3 + str r3, [sp, 0x68] + bl sub_80691F4 + ldr r0, [r6] + adds r0, r5, r0 + ldr r2, [sp, 0x44] + lsls r1, r2, 1 + adds r0, 0x2 + adds r0, r1 + ldrh r0, [r0] + ldr r3, [sp, 0x68] + cmp r0, 0xDA + bne _08165634 + movs r0, 0 + str r0, [sp, 0x48] +_08165634: + adds r0, r2, 0x1 + str r0, [sp, 0x44] + adds r2, r0, 0 + cmp r2, 0x3 + ble _08165604 + movs r1, 0x64 + mov r4, r10 + muls r4, r1 + ldr r0, =gUnknown_02024618 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x20 + ldr r2, [sp, 0x5C] + bl SetMonData + ldr r0, =gUnknown_0203BC8C + ldr r1, [r0] + ldr r2, [sp, 0x54] + lsls r0, r2, 4 + adds r0, r1 + ldrb r2, [r0, 0xA] + lsls r2, 1 + ldr r0, =gBattleFrontierHeldItems + adds r2, r0 + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + movs r0, 0 + str r0, [sp, 0x44] + movs r2, 0 + ldr r0, =gUnknown_0203BC88 + ldr r1, [r0] + movs r0, 0x34 + muls r0, r7 + adds r0, r1 + adds r3, r0, 0x4 +_0816567E: + mov r1, sp + adds r1, r2 + adds r1, 0x10 + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, [sp, 0x44] + adds r0, 0x1 + str r0, [sp, 0x44] + adds r2, r0, 0 + cmp r2, 0x7 + ble _0816567E + movs r3, 0x64 + mov r4, r10 + muls r4, r3 + ldr r0, =gUnknown_02024618 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x7 + add r2, sp, 0x10 + bl SetMonData + adds r0, r7, 0 + bl sub_8162F68 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x44] + adds r0, r4, 0 + movs r1, 0x31 + ldr r2, [sp, 0x64] + bl SetMonData + ldr r6, [sp, 0x60] + mov r10, r6 + cmp r6, 0x1 + bgt _081656CA + b _081655A6 +_081656CA: + b _0816585A + .pool +_081656E8: + ldr r0, =0x0000018f + cmp r7, r0 + bls _081656F0 + b _081657F0 +_081656F0: + ldr r1, =0xfffffed4 + adds r0, r7, r1 + lsls r0, 16 + lsrs r7, r0, 16 + movs r2, 0 + mov r10, r2 + mov r3, sp + adds r3, 0x44 + str r3, [sp, 0x64] + add r5, sp, 0x18 + ldr r6, =0x000015fc + mov r9, r6 + ldr r0, =0x0000ffff + mov r8, r0 + movs r1, 0x24 + str r1, [sp, 0x6C] +_08165710: + ldr r1, =gSaveBlock2Ptr + movs r0, 0xEC + adds r4, r7, 0 + muls r4, r0 + movs r2, 0xE7 + lsls r2, 3 + adds r4, r2 + ldr r0, [r1] + adds r4, r0, r4 + ldr r3, =0x00000cb4 + adds r0, r3 + ldr r6, [sp, 0x6C] + adds r0, r6 + ldrh r1, [r0] + movs r0, 0x2C + muls r1, r0 + adds r1, r4, r1 + adds r0, r5, 0 + adds r1, 0x34 + ldm r1!, {r2,r3,r6} + stm r0!, {r2,r3,r6} + ldm r1!, {r2,r3,r6} + stm r0!, {r2,r3,r6} + ldm r1!, {r2,r3,r6} + stm r0!, {r2,r3,r6} + ldm r1!, {r2,r3} + stm r0!, {r2,r3} + adds r1, r4, 0x4 + add r0, sp, 0x10 + bl StringCopy + adds r4, 0xE4 + ldrb r0, [r4] + cmp r0, 0x1 + bne _0816578C + ldrh r0, [r5, 0x20] + mov r6, r8 + ands r0, r6 + cmp r0, r9 + beq _0816579C + mov r1, sp + adds r1, 0x3D + movs r0, 0xFF + strb r0, [r1] + add r0, sp, 0x38 + movs r1, 0x1 + bl ConvertInternationalString + b _0816579C + .pool +_0816578C: + ldrh r0, [r5, 0x20] + mov r1, r8 + ands r0, r1 + cmp r0, r9 + bne _0816579C + add r1, sp, 0x10 + movs r0, 0xFF + strb r0, [r1, 0x5] +_0816579C: + movs r0, 0x64 + mov r4, r10 + muls r4, r0 + ldr r0, =gUnknown_02024618 + adds r4, r0 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x1 + bl sub_8068338 + adds r0, r4, 0 + movs r1, 0x7 + add r2, sp, 0x10 + bl SetMonData + movs r2, 0x96 + lsls r2, 1 + adds r0, r7, r2 + lsls r0, 16 + lsrs r0, 16 + bl sub_8162F68 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x44] + adds r0, r4, 0 + movs r1, 0x31 + ldr r2, [sp, 0x64] + bl SetMonData + ldr r3, [sp, 0x6C] + adds r3, 0x2 + str r3, [sp, 0x6C] + movs r6, 0x1 + add r10, r6 + mov r0, r10 + cmp r0, 0x1 + ble _08165710 + b _0816585A + .pool +_081657F0: + ldr r1, =0xfffffe70 + adds r0, r7, r1 + lsls r0, 16 + lsrs r7, r0, 16 + movs r2, 0 + mov r10, r2 + mov r3, sp + adds r3, 0x44 + str r3, [sp, 0x64] + ldr r6, =gSaveBlock2Ptr + mov r8, r6 + movs r5, 0x24 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + adds r6, r0, 0 + adds r6, 0xDC +_08165812: + movs r0, 0x64 + mov r4, r10 + muls r4, r0 + ldr r0, =gUnknown_02024618 + adds r4, r0 + mov r1, r8 + ldr r0, [r1] + adds r1, r0, r6 + ldr r2, =0x00000cb4 + adds r0, r2 + adds r0, r5 + ldrb r2, [r0] + adds r0, r4, 0 + bl sub_8068528 + movs r3, 0xC8 + lsls r3, 1 + adds r0, r7, r3 + lsls r0, 16 + lsrs r0, 16 + bl sub_8162F68 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x44] + adds r0, r4, 0 + movs r1, 0x31 + ldr r2, [sp, 0x64] + bl SetMonData + adds r5, 0x2 + movs r0, 0x1 + add r10, r0 + mov r1, r10 + cmp r1, 0x1 + ble _08165812 +_0816585A: + add sp, 0x70 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8165404 + + thumb_func_start sub_816587C +sub_816587C: @ 816587C + 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 + movs r2, 0 + adds r1, r6, 0 + adds r3, r6, 0 + adds r3, 0x58 +_08165894: + ldrh r0, [r1, 0x1C] + cmp r0, 0 + beq _0816589C + adds r2, 0x1 +_0816589C: + adds r1, 0x2C + cmp r1, r3 + ble _08165894 + cmp r2, 0x3 + beq _081658B4 + adds r0, r5, 0 + movs r1, 0 + movs r2, 0xEC + bl memset + movs r0, 0 + b _081659BE +_081658B4: + ldrb r0, [r6] + strb r0, [r5] + ldrh r0, [r6, 0x2] + strh r0, [r5, 0x2] + movs r2, 0 + ldr r0, =gUnknown_085DCF40 + ldrb r1, [r0] + ldrb r3, [r6, 0x1] + mov r12, r0 + adds r4, r5, 0x4 + adds r7, r6, 0x4 + movs r0, 0xC + adds r0, r5 + mov r9, r0 + movs r0, 0xC + adds r0, r6 + mov r8, r0 + adds r0, r5, 0 + adds r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0x10 + adds r0, r6 + mov r10, r0 + adds r0, r5, 0 + adds r0, 0x1C + str r0, [sp, 0x8] + adds r0, 0xC + str r0, [sp, 0xC] + adds r0, 0x90 + str r0, [sp, 0x10] + cmp r1, r3 + beq _08165904 + mov r1, r12 +_081658F6: + adds r1, 0x2 + adds r2, 0x1 + cmp r2, 0x51 + bgt _08165904 + ldrb r0, [r1] + cmp r0, r3 + bne _081658F6 +_08165904: + cmp r2, 0x52 + beq _08165918 + lsls r0, r2, 1 + mov r1, r12 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + b _0816591A + .pool +_08165918: + movs r0, 0x2B +_0816591A: + strb r0, [r5, 0x1] + movs r2, 0 + adds r3, r7, 0 +_08165920: + adds r0, r4, r2 + adds r1, r3, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x7 + ble _08165920 + movs r2, 0 + mov r4, r9 + mov r3, r8 +_08165934: + adds r0, r4, r2 + adds r1, r3, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x3 + ble _08165934 + mov r3, r10 + ldr r1, [sp, 0x4] + movs r2, 0x5 +_08165948: + ldrh r0, [r3] + strh r0, [r1] + adds r3, 0x2 + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _08165948 + ldr r3, =gUnknown_085DFA46 + ldr r1, [sp, 0x8] + movs r2, 0x5 +_0816595C: + ldrh r0, [r3] + strh r0, [r1] + adds r3, 0x2 + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _0816595C + ldr r3, =gUnknown_085DFA52 + ldr r1, [sp, 0xC] + movs r2, 0x5 +_08165970: + ldrh r0, [r3] + strh r0, [r1] + adds r3, 0x2 + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _08165970 + adds r2, r6, 0 + adds r3, r5, 0 + movs r4, 0x58 + adds r4, r2 + mov r8, r4 +_08165988: + adds r1, r3, 0 + adds r1, 0x34 + adds r0, r2, 0 + adds r0, 0x1C + ldm r0!, {r4,r6,r7} + stm r1!, {r4,r6,r7} + ldm r0!, {r4,r6,r7} + stm r1!, {r4,r6,r7} + ldm r0!, {r4,r6,r7} + stm r1!, {r4,r6,r7} + ldm r0!, {r6,r7} + stm r1!, {r6,r7} + adds r2, 0x2C + adds r3, 0x2C + cmp r2, r8 + ble _08165988 + movs r0, 0 + str r0, [sp] + ldr r2, =0x0500000b + mov r0, sp + ldr r1, [sp, 0x10] + bl CpuSet + adds r0, r5, 0 + bl sub_8164F70 + movs r0, 0x1 +_081659BE: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_816587C + + thumb_func_start sub_81659DC +sub_81659DC: @ 81659DC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r4, r0, 0 + adds r6, r1, 0 + movs r2, 0 + adds r1, r4, 0 + adds r3, r4, 0 + adds r3, 0x58 +_081659F4: + ldrh r0, [r1, 0x34] + cmp r0, 0 + beq _081659FC + adds r2, 0x1 +_081659FC: + adds r1, 0x2C + cmp r1, r3 + ble _081659F4 + cmp r2, 0x3 + beq _08165A14 + adds r0, r6, 0 + movs r1, 0 + movs r2, 0xA4 + bl memset + movs r0, 0 + b _08165AD8 +_08165A14: + ldrb r0, [r4] + strb r0, [r6] + ldrh r0, [r4, 0x2] + strh r0, [r6, 0x2] + movs r2, 0 + ldr r0, =gUnknown_085DCF40 + ldrb r1, [r0, 0x1] + ldrb r3, [r4, 0x1] + mov r12, r0 + adds r5, r6, 0x4 + adds r7, r4, 0x4 + movs r0, 0xC + adds r0, r6 + mov r9, r0 + movs r0, 0xC + adds r0, r4 + mov r8, r0 + adds r0, r6, 0 + adds r0, 0x10 + str r0, [sp] + movs r0, 0x10 + adds r0, r4 + mov r10, r0 + cmp r1, r3 + beq _08165A58 + mov r1, r12 + adds r1, 0x1 +_08165A4A: + adds r1, 0x2 + adds r2, 0x1 + cmp r2, 0x51 + bgt _08165A58 + ldrb r0, [r1] + cmp r0, r3 + bne _08165A4A +_08165A58: + cmp r2, 0x52 + beq _08165A68 + lsls r0, r2, 1 + add r0, r12 + ldrb r0, [r0] + b _08165A6A + .pool +_08165A68: + movs r0, 0x24 +_08165A6A: + strb r0, [r6, 0x1] + movs r2, 0 + adds r3, r7, 0 +_08165A70: + adds r0, r5, r2 + adds r1, r3, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x7 + ble _08165A70 + movs r2, 0 + mov r5, r9 + mov r3, r8 +_08165A84: + adds r0, r5, r2 + adds r1, r3, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x3 + ble _08165A84 + mov r3, r10 + ldr r1, [sp] + movs r2, 0x5 +_08165A98: + ldrh r0, [r3] + strh r0, [r1] + adds r3, 0x2 + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _08165A98 + adds r2, r4, 0 + adds r3, r6, 0 + movs r4, 0x58 + adds r4, r2 + mov r8, r4 +_08165AB0: + adds r1, r3, 0 + adds r1, 0x1C + adds r0, r2, 0 + adds r0, 0x34 + ldm r0!, {r4,r5,r7} + stm r1!, {r4,r5,r7} + ldm r0!, {r4,r5,r7} + stm r1!, {r4,r5,r7} + ldm r0!, {r4,r5,r7} + stm r1!, {r4,r5,r7} + ldm r0!, {r5,r7} + stm r1!, {r5,r7} + adds r2, 0x2C + adds r3, 0x2C + cmp r2, r8 + ble _08165AB0 + adds r0, r6, 0 + bl sub_8164F94 + movs r0, 0x1 +_08165AD8: + 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_81659DC + + thumb_func_start sub_8165AE8 +sub_8165AE8: @ 8165AE8 + push {r4,lr} + adds r2, r0, 0 + movs r0, 0 + str r0, [r2, 0x40] + movs r3, 0 + adds r4, r2, 0 +_08165AF4: + ldr r0, [r2, 0x40] + ldm r4!, {r1} + adds r0, r1 + str r0, [r2, 0x40] + adds r3, 0x1 + cmp r3, 0xF + bls _08165AF4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8165AE8 + + thumb_func_start sub_8165B08 +sub_8165B08: @ 8165B08 + push {lr} + movs r1, 0 + movs r3, 0 + adds r2, r0, 0 +_08165B10: + stm r2!, {r3} + adds r1, 0x1 + cmp r1, 0x10 + bls _08165B10 + bl sub_819FA5C + pop {r0} + bx r0 + thumb_func_end sub_8165B08 + + thumb_func_start sub_8165B20 +sub_8165B20: @ 8165B20 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r5, 0 + ldr r0, =gSaveBlock2Ptr + mov r8, r0 + mov r9, r8 +_08165B30: + lsls r0, r5, 4 + adds r1, r0, r5 + lsls r1, 2 + adds r1, 0xDC + mov r3, r9 + ldr r2, [r3] + movs r4, 0 + movs r3, 0 + adds r6, r0, 0 + adds r7, r5, 0x1 + adds r2, r1 +_08165B46: + ldm r2!, {r0} + adds r4, r0 + adds r3, 0x1 + cmp r3, 0xF + bls _08165B46 + mov r0, r8 + ldr r2, [r0] + adds r0, r6, r5 + lsls r1, r0, 2 + movs r3, 0x8E + lsls r3, 1 + adds r0, r2, r3 + adds r0, r1 + ldr r0, [r0] + cmp r0, r4 + beq _08165B70 + adds r0, r1, 0 + adds r0, 0xDC + adds r0, r2, r0 + bl sub_8165B08 +_08165B70: + adds r5, r7, 0 + cmp r5, 0x3 + ble _08165B30 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8165B20 + + thumb_func_start sub_8165B88 +sub_8165B88: @ 8165B88 + push {r4,lr} + adds r4, r0, 0 + lsls r1, 16 + lsrs r2, r1, 16 + adds r3, r2, 0 + movs r0, 0xFA + lsls r0, 1 + cmp r2, r0 + bne _08165BA4 + ldr r0, =gGameLanguage + b _08165C28 + .pool +_08165BA4: + ldr r0, =0x0000012b + cmp r2, r0 + bhi _08165BB8 + ldr r0, =gGameLanguage + b _08165C28 + .pool +_08165BB8: + ldr r0, =0x0000018f + cmp r2, r0 + bhi _08165BFC + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _08165BDC + bl sub_81864B4 + b _08165C2A + .pool +_08165BDC: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0xfffffed4 + adds r2, r1 + movs r1, 0xEC + muls r1, r2 + adds r0, r1 + ldr r1, =0x0000081c + adds r0, r1 + b _08165C28 + .pool +_08165BFC: + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _08165C14 + bl sub_81864C0 + b _08165C2A + .pool +_08165C14: + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r0, =0xfffffe70 + adds r1, r3, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, r0 + ldr r1, =0x0000011b + adds r0, r2, r1 +_08165C28: + ldrb r0, [r0] +_08165C2A: + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8165B88 + + thumb_func_start sub_8165C40 +sub_8165C40: @ 8165C40 + push {lr} + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000ca9 + adds r2, r0, r1 + ldrb r1, [r2] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x2 + beq _08165C84 + ldr r1, =gUnknown_0203BC88 + ldr r0, =gBattleFrontierTrainers + str r0, [r1] + ldr r1, =gUnknown_0203BC8C + ldr r0, =gBattleFrontierMons + str r0, [r1] + ldrb r0, [r2] + lsls r0, 30 + lsrs r0, 30 + bl sub_8165C90 + b _08165C88 + .pool +_08165C84: + bl sub_8165D78 +_08165C88: + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_8165C40 + + thumb_func_start sub_8165C90 +sub_8165C90: @ 8165C90 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08165C9E + cmp r0, 0x1 + beq _08165CA2 +_08165C9E: + movs r0, 0x32 + b _08165CB0 +_08165CA2: + bl sub_8165CB4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3B + bhi _08165CB0 + movs r0, 0x3C +_08165CB0: + pop {r1} + bx r1 + thumb_func_end sub_8165C90 + + thumb_func_start sub_8165CB4 +sub_8165CB4: @ 8165CB4 + push {r4-r6,lr} + movs r6, 0 + movs r5, 0 +_08165CBA: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + cmp r0, 0 + beq _08165CF4 + adds r0, r4, 0 + movs r1, 0x41 + movs r2, 0 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _08165CF4 + adds r0, r4, 0 + movs r1, 0x38 + movs r2, 0 + bl GetMonData + cmp r0, r6 + ble _08165CF4 + adds r6, r0, 0 +_08165CF4: + adds r5, 0x1 + cmp r5, 0x5 + ble _08165CBA + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8165CB4 + + thumb_func_start sub_8165D08 +sub_8165D08: @ 8165D08 + push {lr} + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + cmp r0, 0x63 + bls _08165D3A + movs r1, 0x6 + cmp r0, 0x77 + bls _08165D3A + movs r1, 0x9 + cmp r0, 0x8B + bls _08165D3A + movs r1, 0xC + cmp r0, 0x9F + bls _08165D3A + movs r1, 0xF + cmp r0, 0xB3 + bls _08165D3A + movs r1, 0x12 + cmp r0, 0xC7 + bls _08165D3A + movs r1, 0x1F + cmp r0, 0xDB + bhi _08165D3A + movs r1, 0x15 +_08165D3A: + adds r0, r1, 0 + pop {r1} + bx r1 + thumb_func_end sub_8165D08 + + thumb_func_start sub_8165D40 +sub_8165D40: @ 8165D40 + push {lr} + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + beq _08165D58 + cmp r0, 0x3 + beq _08165D58 + cmp r0, 0x4 + bne _08165D70 +_08165D58: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1E + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + b _08165D72 + .pool +_08165D70: + movs r0, 0 +_08165D72: + pop {r1} + bx r1 + thumb_func_end sub_8165D40 + + thumb_func_start sub_8165D78 +sub_8165D78: @ 8165D78 + push {lr} + ldr r0, =0x000040cf + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x4 + bne _08165DA8 + ldr r1, =gUnknown_0203BC88 + ldr r0, =gSlateportBattleTentTrainers + str r0, [r1] + ldr r1, =gUnknown_0203BC8C + ldr r0, =gSlateportBattleTentMons + b _08165DF2 + .pool +_08165DA8: + cmp r0, 0x2 + bne _08165DC8 + ldr r1, =gUnknown_0203BC88 + ldr r0, =gVerdanturfBattleTentTrainers + str r0, [r1] + ldr r1, =gUnknown_0203BC8C + ldr r0, =gVerdanturfBattleTentMons + b _08165DF2 + .pool +_08165DC8: + cmp r0, 0x3 + bne _08165DE8 + ldr r1, =gUnknown_0203BC88 + ldr r0, =gFallarborBattleTentTrainers + str r0, [r1] + ldr r1, =gUnknown_0203BC8C + ldr r0, =gFallarborBattleTentMons + b _08165DF2 + .pool +_08165DE8: + ldr r1, =gUnknown_0203BC88 + ldr r0, =gBattleFrontierTrainers + str r0, [r1] + ldr r1, =gUnknown_0203BC8C + ldr r0, =gBattleFrontierMons +_08165DF2: + str r0, [r1] + bl sub_8165CB4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1D + bhi _08165E02 + movs r0, 0x1E +_08165E02: + pop {r1} + bx r1 + .pool + thumb_func_end sub_8165D78 + + thumb_func_start sub_8165E18 +sub_8165E18: @ 8165E18 + push {r4,r5,lr} + ldr r5, =gSaveBlock2Ptr +_08165E1C: + bl sub_8165D40 + lsls r0, 16 + lsrs r4, r0, 16 + movs r3, 0 + ldr r1, [r5] + ldr r2, =0x00000cb2 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r3, r0 + bge _08165E58 + adds r2, 0x2 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, r4 + beq _08165E58 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + subs r2, 0x2 + adds r0, r1, r2 + ldrh r2, [r0] + ldr r0, =0x00000cb4 + adds r1, r0 +_08165E4A: + adds r1, 0x2 + adds r3, 0x1 + cmp r3, r2 + bge _08165E58 + ldrh r0, [r1] + cmp r0, r4 + bne _08165E4A +_08165E58: + ldr r0, [r5] + ldr r1, =0x00000cb2 + adds r0, r1 + ldrh r0, [r0] + cmp r3, r0 + bne _08165E1C + ldr r5, =gUnknown_02038BCA + strh r4, [r5] + ldrh r0, [r5] + movs r1, 0 + bl sub_8162614 + ldr r0, =gSaveBlock2Ptr + ldr r1, [r0] + ldr r2, =0x00000cb2 + adds r0, r1, r2 + ldrh r2, [r0] + adds r0, r2, 0x1 + cmp r0, 0x2 + bgt _08165E8C + lsls r0, r2, 1 + ldr r2, =0x00000cb4 + adds r1, r2 + adds r1, r0 + ldrh r0, [r5] + strh r0, [r1] +_08165E8C: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8165E18 + + thumb_func_start sub_8165EA4 +sub_8165EA4: @ 8165EA4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x38 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x18] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x1C] + bl sub_8165D78 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x20] + ldr r0, =gUnknown_02038BCA + ldrh r2, [r0] + ldr r0, =gUnknown_0203BC88 + ldr r1, [r0] + movs r0, 0x34 + muls r0, r2 + adds r0, r1 + ldr r0, [r0, 0x30] + str r0, [sp, 0x28] + movs r0, 0 + str r0, [sp, 0x24] + ldr r2, [sp, 0x28] + ldrh r1, [r2] + b _08165EFE + .pool +_08165EEC: + ldr r0, [sp, 0x24] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x24] + lsls r0, 1 + ldr r6, [sp, 0x28] + adds r0, r6 + ldrh r1, [r0] +_08165EFE: + ldr r0, =0x0000ffff + cmp r1, r0 + bne _08165EEC + movs r0, 0 + mov r8, r0 + bl Random + adds r4, r0, 0 + bl Random + lsls r4, 16 + lsrs r4, 16 + lsls r0, 16 + orrs r4, r0 + str r4, [sp, 0x2C] + b _08166092 + .pool +_08165F24: + bl Random + lsls r0, 16 + lsrs r0, 16 + ldr r1, [sp, 0x24] + bl __modsi3 + lsls r0, 1 + ldr r2, [sp, 0x28] + adds r0, r2 + ldrh r4, [r0] + movs r6, 0 + ldr r7, [sp, 0x18] + add r7, r8 + b _08165F44 +_08165F42: + adds r6, 0x1 +_08165F44: + cmp r6, r7 + bge _08165F68 + movs r1, 0x64 + adds r0, r6, 0 + muls r0, r1 + ldr r2, =gEnemyParty + adds r0, r2 + movs r1, 0xB + movs r2, 0 + bl GetMonData + ldr r1, =gUnknown_0203BC8C + ldr r2, [r1] + lsls r1, r4, 4 + adds r1, r2 + ldrh r1, [r1] + cmp r0, r1 + bne _08165F42 +_08165F68: + cmp r6, r7 + beq _08165F6E + b _08166092 +_08165F6E: + movs r6, 0 + cmp r6, r7 + bge _08165FB8 + ldr r0, =gBattleFrontierHeldItems + mov r9, r0 + movs r3, 0 +_08165F7A: + ldr r1, =gEnemyParty + adds r5, r3, r1 + adds r0, r5, 0 + movs r1, 0xC + movs r2, 0 + str r3, [sp, 0x34] + bl GetMonData + ldr r3, [sp, 0x34] + cmp r0, 0 + beq _08165FB0 + adds r0, r5, 0 + movs r1, 0xC + movs r2, 0 + bl GetMonData + ldr r1, =gUnknown_0203BC8C + ldr r2, [r1] + lsls r1, r4, 4 + adds r1, r2 + ldrb r1, [r1, 0xA] + lsls r1, 1 + add r1, r9 + ldr r3, [sp, 0x34] + ldrh r1, [r1] + cmp r0, r1 + beq _08165FB8 +_08165FB0: + adds r3, 0x64 + adds r6, 0x1 + cmp r6, r7 + blt _08165F7A +_08165FB8: + cmp r6, r7 + bne _08166092 + movs r6, 0 + cmp r6, r8 + bge _08165FDA + add r0, sp, 0xC + ldrh r0, [r0] + cmp r0, r4 + beq _08165FDA + add r1, sp, 0xC +_08165FCC: + adds r1, 0x2 + adds r6, 0x1 + cmp r6, r8 + bge _08165FDA + ldrh r0, [r1] + cmp r0, r4 + bne _08165FCC +_08165FDA: + cmp r6, r8 + bne _08166092 + mov r2, r8 + lsls r0, r2, 1 + add r0, sp + adds r0, 0xC + strh r4, [r0] + movs r6, 0x64 + adds r0, r7, 0 + muls r0, r6 + ldr r1, =gEnemyParty + adds r0, r1 + ldr r5, =gUnknown_0203BC8C + ldr r2, [r5] + lsls r4, 4 + adds r2, r4, r2 + ldrh r1, [r2] + ldrb r3, [r2, 0xC] + movs r6, 0 + str r6, [sp] + ldrb r2, [r2, 0xB] + str r2, [sp, 0x4] + ldr r2, [sp, 0x2C] + str r2, [sp, 0x8] + ldr r2, [sp, 0x20] + bl sub_8068634 + add r1, sp, 0x14 + movs r0, 0xFF + strb r0, [r1] + mov r9, r4 + mov r0, r8 + adds r0, 0x1 + str r0, [sp, 0x30] + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + mov r8, r1 + adds r3, r5, 0 + mov r5, r9 + ldr r2, =gEnemyParty + mov r10, r2 +_0816602E: + ldr r0, [r3] + adds r0, r5, r0 + lsls r4, r6, 1 + adds r0, 0x2 + adds r0, r4 + ldrh r1, [r0] + lsls r2, r6, 24 + lsrs r2, 24 + mov r0, r8 + add r0, r10 + str r3, [sp, 0x34] + bl sub_80691F4 + ldr r3, [sp, 0x34] + ldr r0, [r3] + adds r0, r5, r0 + adds r0, 0x2 + adds r0, r4 + ldrh r0, [r0] + cmp r0, 0xDA + bne _0816605E + movs r0, 0 + mov r1, sp + strb r0, [r1, 0x14] +_0816605E: + adds r6, 0x1 + cmp r6, 0x3 + ble _0816602E + movs r2, 0x64 + adds r4, r7, 0 + muls r4, r2 + ldr r6, =gEnemyParty + adds r4, r6 + adds r0, r4, 0 + movs r1, 0x20 + add r2, sp, 0x14 + bl SetMonData + ldr r0, =gUnknown_0203BC8C + ldr r0, [r0] + add r0, r9 + ldrb r2, [r0, 0xA] + lsls r2, 1 + ldr r0, =gBattleFrontierHeldItems + adds r2, r0 + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + ldr r0, [sp, 0x30] + mov r8, r0 +_08166092: + ldr r1, [sp, 0x1C] + cmp r8, r1 + beq _0816609A + b _08165F24 +_0816609A: + add sp, 0x38 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8165EA4 + + thumb_func_start sub_81660B8 +sub_81660B8: @ 81660B8 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0 + ldr r3, =gUnknown_085DCEDC + ldrb r0, [r3] + cmp r0, r2 + beq _081660DA +_081660C8: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1D + bhi _081660DA + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _081660C8 +_081660DA: + cmp r1, 0x1E + beq _081660EC + ldr r0, =gUnknown_085DCF0E + b _08166116 + .pool +_081660EC: + movs r1, 0 + ldr r3, =gUnknown_085DCEFA + ldrb r0, [r3] + cmp r0, r2 + beq _08166108 +_081660F6: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x13 + bhi _08166108 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _081660F6 +_08166108: + cmp r1, 0x14 + bne _08166114 + movs r0, 0x7 + b _0816611A + .pool +_08166114: + ldr r0, =gUnknown_085DCF2C +_08166116: + adds r0, r1, r0 + ldrb r0, [r0] +_0816611A: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81660B8 + + thumb_func_start sub_8166124 +sub_8166124: @ 8166124 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, =gSaveBlock2Ptr + movs r0, 0xEC + muls r0, r6 + movs r1, 0xE7 + lsls r1, 3 + adds r0, r1 + ldr r1, [r2] + movs r5, 0 + movs r4, 0 + movs r3, 0 + adds r1, r0 +_08166140: + ldm r1!, {r0} + adds r5, r0 + orrs r4, r0 + adds r3, 0x1 + cmp r3, 0x39 + bls _08166140 + cmp r5, 0 + bne _08166154 + cmp r4, 0 + beq _08166180 +_08166154: + ldr r2, [r2] + movs r0, 0xEC + adds r1, r6, 0 + muls r1, r0 + movs r3, 0x82 + lsls r3, 4 + adds r0, r2, r3 + adds r0, r1 + ldr r0, [r0] + cmp r0, r5 + bne _08166174 + movs r0, 0x1 + b _08166182 + .pool +_08166174: + movs r3, 0xE7 + lsls r3, 3 + adds r0, r1, r3 + adds r0, r2, r0 + bl sub_8164FB8 +_08166180: + movs r0, 0 +_08166182: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8166124 + + thumb_func_start sub_8166188 +sub_8166188: @ 8166188 + push {r4-r7,lr} + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + ldr r1, =0x02000002 + ands r0, r1 + cmp r0, 0 + beq _081661E8 + bl sub_8165C40 + lsls r0, 24 + movs r5, 0 + ldr r7, =gBaseStats + lsrs r0, 22 + ldr r1, =gExperienceTables + adds r6, r0, r1 +_081661A6: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gEnemyParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + adds r1, r0, 0 + cmp r1, 0 + beq _081661E2 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r1, [r0, 0x13] + movs r0, 0xCA + lsls r0, 1 + adds r2, r1, 0 + muls r2, r0 + adds r2, r6 + adds r0, r4, 0 + movs r1, 0x19 + bl SetMonData + adds r0, r4, 0 + bl pokemon_calc_effective_stats +_081661E2: + adds r5, 0x1 + cmp r5, 0x5 + ble _081661A6 +_081661E8: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8166188 + + thumb_func_start sub_8166204 +sub_8166204: @ 8166204 + push {r4-r6,lr} + adds r5, r0, 0 + adds r6, r1, 0 + ldr r4, =gUnknown_0203BCAC + ldr r0, =0x0000806c + bl AllocZeroed + str r0, [r4] + ldr r1, =gUnknown_0203BC90 + ldr r2, =0x00007fd0 + adds r0, r2 + str r0, [r1] + str r5, [r0, 0x8] + str r6, [r0, 0x4] + ldr r0, =sub_8166380 + bl launch_c3_walk_stairs_and_run_once + ldr r0, =sub_816631C + bl SetMainCallback2 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8166204 + + thumb_func_start sub_816624C +sub_816624C: @ 816624C + push {r4,r5,lr} + ldr r4, =gUnknown_0203BCAC + ldr r0, =0x0000806c + bl AllocZeroed + str r0, [r4] + ldr r5, =gUnknown_0203BC90 + ldr r1, =0x00007fd0 + adds r0, r1 + str r0, [r5] + ldr r1, =gUnknown_0203BC98 + ldr r1, [r1] + str r1, [r0, 0x8] + ldr r1, =gUnknown_0203BC94 + ldr r1, [r1] + str r1, [r0, 0x4] + ldr r4, =gUnknown_0203BC9C + ldrb r0, [r4] + bl sub_81672E4 + strb r0, [r4] + ldr r5, [r5] + movs r1, 0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _08166284 + movs r1, 0x1 +_08166284: + adds r0, r5, 0 + adds r0, 0x56 + strb r1, [r0] + ldr r0, =sub_8166380 + bl launch_c3_walk_stairs_and_run_once + ldr r0, =sub_81662C0 + bl SetMainCallback2 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816624C + + thumb_func_start sub_81662C0 +sub_81662C0: @ 81662C0 + push {r4,lr} + ldr r4, =gUnknown_0203BC90 + ldr r0, [r4] + ldr r0, [r0] + bl _call_via_r0 + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + ldr r4, [r4] + ldr r1, [r4] + ldr r0, =map_warp_consider_1_to_outside_or_stair_or_dive + cmp r1, r0 + bne _081662F0 + adds r0, r4, 0 + adds r0, 0x50 + movs r1, 0 + strb r1, [r0] + ldr r0, =sub_8166304 + bl SetMainCallback2 +_081662F0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81662C0 + + thumb_func_start sub_8166304 +sub_8166304: @ 8166304 + push {lr} + bl sub_81668F8 + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_8166304 + + thumb_func_start sub_816631C +sub_816631C: @ 816631C + push {lr} + ldr r0, =gUnknown_0203BC90 + ldr r0, [r0] + ldr r0, [r0] + bl _call_via_r0 + bl AnimateSprites + bl BuildOamBuffer + bl RunTextPrinters + bl UpdatePaletteFade + pop {r0} + bx r0 + .pool + thumb_func_end sub_816631C + + thumb_func_start sub_8166340 +sub_8166340: @ 8166340 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r1, =0x00007c58 + adds r0, r1 + bl sub_81D2108 + bl sub_80BA0A8 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8166340 + + thumb_func_start launch_c3_walk_stairs_and_run_once +launch_c3_walk_stairs_and_run_once: @ 816636C + ldr r1, =gUnknown_0203BC90 + ldr r1, [r1] + str r0, [r1] + adds r1, 0x50 + movs r0, 0 + strb r0, [r1] + bx lr + .pool + thumb_func_end launch_c3_walk_stairs_and_run_once + + thumb_func_start sub_8166380 +sub_8166380: @ 8166380 + push {r4,r5,lr} + sub sp, 0x4 + ldr r1, =gUnknown_0203BC90 + ldr r0, [r1] + adds r0, 0x50 + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0xF + bls _08166394 + b _08166556 +_08166394: + lsls r0, 2 + ldr r1, =_081663A8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081663A8: + .4byte _081663E8 + .4byte _0816640C + .4byte _08166416 + .4byte _08166434 + .4byte _08166464 + .4byte _08166468 + .4byte _08166474 + .4byte _08166484 + .4byte _08166490 + .4byte _0816649C + .4byte _081664B8 + .4byte _081664BC + .4byte _081664E4 + .4byte _08166510 + .4byte _08166528 + .4byte _08166550 +_081663E8: + ldr r2, =gUnknown_0203BCAC + ldr r0, [r2] + ldr r1, =0x00007b10 + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + ldr r0, [r2] + ldr r2, =0x00007c58 + adds r0, r2 + bl sub_81D1ED4 + b _0816653C + .pool +_0816640C: + bl ResetSpriteData + bl FreeAllSpritePalettes + b _0816653C +_08166416: + movs r0, 0 + bl SetVBlankCallback + movs r0, 0 + str r0, [sp] + movs r1, 0xC0 + lsls r1, 19 + ldr r2, =0x05006000 + mov r0, sp + bl CpuSet + b _0816653C + .pool +_08166434: + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_085DFCCC + movs r0, 0 + movs r2, 0x4 + bl InitBgsFromTemplates + ldr r0, =gUnknown_085DFCDC + bl InitWindows + bl DeactivateAllTextPrinters + movs r0, 0 + movs r1, 0x97 + movs r2, 0xE0 + bl sub_809882C + b _0816653C + .pool +_08166464: + ldr r1, [r2] + b _08166540 +_08166468: + bl sub_8168328 + lsls r0, 24 + cmp r0, 0 + bne _08166556 + b _0816653C +_08166474: + ldr r1, =gKeyRepeatStartDelay + movs r0, 0x14 + strh r0, [r1] + bl sub_8167420 + b _0816653C + .pool +_08166484: + bl sub_8167930 + lsls r0, 24 + cmp r0, 0 + bne _08166556 + b _0816653C +_08166490: + movs r0, 0 + bl sub_8167608 + bl sub_8167760 + b _0816653C +_0816649C: + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r1, =0x00007b0e + adds r0, r1 + bl sub_81D312C + lsls r0, 24 + cmp r0, 0 + bne _08166556 + b _0816653C + .pool +_081664B8: + ldr r1, [r2] + b _08166540 +_081664BC: + ldr r5, =gUnknown_0203BCAC + ldr r1, [r5] + ldr r4, =0x00007c58 + adds r0, r1, r4 + ldr r2, =0x00007c6c + adds r1, r2 + bl sub_81D2754 + ldr r0, [r5] + adds r0, r4 + bl sub_81D20AC + b _0816653C + .pool +_081664E4: + ldr r4, =gUnknown_0203BCAC + ldr r0, [r4] + ldr r1, =0x00007c58 + adds r0, r1 + bl sub_81D20BC + lsls r0, 24 + cmp r0, 0 + bne _08166556 + ldr r2, [r4] + ldr r1, =0x00007c58 + adds r0, r2, r1 + adds r1, 0x14 + adds r2, r1 + adds r1, r2, 0 + bl sub_81D1F84 + b _0816653C + .pool +_08166510: + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r2, =0x00007c58 + adds r0, r2 + bl sub_81D2230 + b _0816653C + .pool +_08166528: + movs r0, 0 + bl PutWindowTilemap + movs r0, 0x1 + bl PutWindowTilemap + movs r0, 0 + movs r1, 0x1 + bl sub_8167BA0 +_0816653C: + ldr r0, =gUnknown_0203BC90 + ldr r1, [r0] +_08166540: + adds r1, 0x50 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08166556 + .pool +_08166550: + ldr r0, =map_warp_consider_1_to_outside_or_stair_or_dive + bl launch_c3_walk_stairs_and_run_once +_08166556: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8166380 + + thumb_func_start map_warp_consider_1_to_outside_or_stair_or_dive +map_warp_consider_1_to_outside_or_stair_or_dive: @ 8166564 + push {r4,lr} + sub sp, 0x4 + ldr r4, =gUnknown_0203BC90 + ldr r0, [r4] + adds r0, 0x50 + ldrb r1, [r0] + cmp r1, 0 + beq _08166580 + cmp r1, 0x1 + beq _081665C0 + b _08166610 + .pool +_08166580: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, =sub_8166340 + bl SetVBlankCallback + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x3 + bl ShowBg + movs r0, 0x2 + bl ShowBg + ldr r1, [r4] + adds r1, 0x50 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08166610 + .pool +_081665C0: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08166610 + ldr r4, =gUnknown_0203BCAC + ldr r0, [r4] + ldr r1, =0x00007b1c + adds r0, r1 + bl sub_81D3464 + ldr r4, [r4] + ldr r2, =0x00008041 + adds r0, r4, r2 + ldrb r1, [r0] + ldr r3, =0x00008040 + adds r0, r4, r3 + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + beq _0816660A + ldr r1, =0x00007fb3 + adds r0, r4, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + subs r2, 0x91 + adds r0, r4, r2 + adds r0, r1 + ldrb r2, [r0] + ldr r3, =0x00007b1c + adds r0, r4, r3 + subs r3, 0xC + adds r1, r4, r3 + ldrb r1, [r1] + bl sub_81D3480 +_0816660A: + ldr r0, =sub_8166634 + bl launch_c3_walk_stairs_and_run_once +_08166610: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end map_warp_consider_1_to_outside_or_stair_or_dive + + thumb_func_start sub_8166634 +sub_8166634: @ 8166634 + push {lr} + ldr r0, =gUnknown_0203BC90 + ldr r0, [r0] + adds r0, 0x50 + ldrb r0, [r0] + cmp r0, 0x7 + bls _08166644 + b _0816680E +_08166644: + lsls r0, 2 + ldr r1, =_08166658 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08166658: + .4byte _08166678 + .4byte _0816675C + .4byte _0816680E + .4byte _08166788 + .4byte _0816680E + .4byte _08166794 + .4byte _081667AC + .4byte _081667F4 +_08166678: + ldr r2, =gMain + ldrh r1, [r2, 0x2C] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081666B8 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl sub_8167CA0 + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r1, =0x00007b1c + adds r0, r1 + bl sub_81D3520 + ldr r0, =gUnknown_0203BC90 + ldr r0, [r0] + adds r0, 0x50 + movs r1, 0x1 + b _0816680C + .pool +_081666B8: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081666F0 + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_8167CA0 + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r2, =0x00007b1c + adds r0, r2 + bl sub_81D3520 + ldr r0, =gUnknown_0203BC90 + ldr r0, [r0] + adds r0, 0x50 + movs r1, 0x1 + b _0816680C + .pool +_081666F0: + ldrh r1, [r2, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08166710 + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_0203BC90 + ldr r0, [r0] + adds r0, 0x50 + movs r1, 0x3 + b _0816680C + .pool +_08166710: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0816671A + b _0816680E +_0816671A: + movs r0, 0x5 + bl PlaySE + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r2, =0x00008041 + adds r1, r0, r2 + ldrb r1, [r1] + subs r2, 0x1 + adds r0, r2 + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + bne _0816674C + ldr r0, =gUnknown_0203BC90 + ldr r0, [r0] + adds r0, 0x50 + movs r1, 0x3 + b _0816680C + .pool +_0816674C: + ldr r0, =gUnknown_0203BC90 + ldr r0, [r0] + adds r0, 0x50 + movs r1, 0x5 + b _0816680C + .pool +_0816675C: + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r1, =0x00008044 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _0816680E + ldr r0, =gUnknown_0203BC90 + ldr r0, [r0] + adds r0, 0x50 + b _0816680C + .pool +_08166788: + ldr r0, =sub_8166BEC + bl launch_c3_walk_stairs_and_run_once + b _0816680E + .pool +_08166794: + bl sub_8166D44 + ldr r0, =gUnknown_0203BC90 + ldr r1, [r0] + adds r1, 0x50 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0816680E + .pool +_081667AC: + bl sub_8166DE4 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _081667CC + cmp r1, 0 + bgt _081667C6 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08166804 + b _0816680E +_081667C6: + cmp r1, 0x1 + bne _0816680E + b _08166804 +_081667CC: + bl sub_8167268 + lsls r0, 24 + cmp r0, 0 + beq _081667E8 + bl sub_8166F50 + ldr r0, =gUnknown_0203BC90 + ldr r0, [r0] + adds r0, 0x50 + movs r1, 0x7 + b _0816680C + .pool +_081667E8: + ldr r0, =sub_816681C + bl launch_c3_walk_stairs_and_run_once + b _0816680E + .pool +_081667F4: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _0816680E + bl sub_8166F94 +_08166804: + ldr r0, =gUnknown_0203BC90 + ldr r0, [r0] + adds r0, 0x50 + movs r1, 0 +_0816680C: + strb r1, [r0] +_0816680E: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8166634 + + thumb_func_start sub_816681C +sub_816681C: @ 816681C + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, =gUnknown_0203BC90 + ldr r0, [r5] + adds r0, 0x50 + ldrb r4, [r0] + cmp r4, 0 + beq _08166838 + cmp r4, 0x1 + beq _08166888 + b _081668D4 + .pool +_08166838: + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r1, =0x00008041 + adds r0, r1 + ldrb r0, [r0] + bl sub_81672A4 + ldr r1, =gUnknown_0203BC9C + strb r0, [r1] + ldr r1, =gUnknown_0203BC94 + ldr r2, [r5] + ldr r0, [r2, 0x4] + str r0, [r1] + ldr r1, =gUnknown_0203BC98 + ldr r0, [r2, 0x8] + str r0, [r1] + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, [r5] + adds r1, 0x50 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _081668D4 + .pool +_08166888: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _081668D4 + movs r0, 0 + bl SetVBlankCallback + ldr r4, =gUnknown_0203BCA0 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, =gUnknown_0203BCA4 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, =gUnknown_0203BCA8 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, =gUnknown_0203BCAC + ldr r0, [r4] + bl Free + str r5, [r4] + bl FreeAllWindowBuffers + ldr r1, =gMain + ldr r0, =sub_816624C + str r0, [r1, 0x8] + bl sub_8179D70 +_081668D4: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816681C + + thumb_func_start sub_81668F8 +sub_81668F8: @ 81668F8 + push {r4,lr} + sub sp, 0x4 + ldr r1, =gUnknown_0203BC90 + ldr r0, [r1] + adds r0, 0x50 + ldrb r0, [r0] + adds r4, r1, 0 + cmp r0, 0x6 + bls _0816690C + b _08166A18 +_0816690C: + lsls r0, 2 + ldr r1, =_08166920 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08166920: + .4byte _0816693C + .4byte _08166972 + .4byte _08166A18 + .4byte _081669A0 + .4byte _081669AE + .4byte _081669C8 + .4byte _081669F4 +_0816693C: + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r1, =0x00008041 + adds r0, r1 + ldr r1, =gUnknown_0203BC9C + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _08166968 + ldr r0, [r4] + adds r0, 0x56 + ldrb r0, [r0] + bl sub_8167CA0 + ldr r1, [r4] + b _081669E2 + .pool +_08166968: + ldr r0, [r4] + adds r0, 0x50 + movs r1, 0x3 + strb r1, [r0] + b _08166A18 +_08166972: + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r1, =0x00008044 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _08166A18 + ldr r0, =gUnknown_0203BC90 + ldr r0, [r0] + adds r0, 0x50 + strb r1, [r0] + b _08166A18 + .pool +_081669A0: + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + b _081669DE +_081669AE: + movs r0, 0 + bl ShowBg + movs r0, 0x1 + bl ShowBg + movs r0, 0x3 + bl ShowBg + movs r0, 0x2 + bl ShowBg + b _081669DE +_081669C8: + ldr r0, =sub_8166340 + bl SetVBlankCallback + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade +_081669DE: + ldr r0, =gUnknown_0203BC90 + ldr r1, [r0] +_081669E2: + adds r1, 0x50 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08166A18 + .pool +_081669F4: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08166A18 + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r1, =0x00007b1c + adds r0, r1 + bl sub_81D3464 + ldr r0, =sub_8166A34 + bl launch_c3_walk_stairs_and_run_once + ldr r0, =sub_816631C + bl SetMainCallback2 +_08166A18: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81668F8 + + thumb_func_start sub_8166A34 +sub_8166A34: @ 8166A34 + push {r4-r6,lr} + ldr r1, =gUnknown_0203BC90 + ldr r0, [r1] + adds r0, 0x50 + ldrb r0, [r0] + adds r5, r1, 0 + cmp r0, 0x5 + bls _08166A46 + b _08166BDA +_08166A46: + lsls r0, 2 + ldr r1, =_08166A58 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08166A58: + .4byte _08166A70 + .4byte _08166AAC + .4byte _08166AC0 + .4byte _08166B14 + .4byte _08166B94 + .4byte _08166BB6 +_08166A70: + ldr r4, [r5] + ldr r3, =gPlayerParty + str r3, [r4, 0xC] + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r2, =0x00008041 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r0, r1 + subs r2, 0x88 + adds r1, r2 + ldrb r2, [r1] + movs r1, 0x64 + muls r1, r2 + adds r1, r3 + str r1, [r4, 0xC] + ldr r3, =0x00007b1c + adds r0, r3 + bl sub_81D3520 + b _08166BAA + .pool +_08166AAC: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08166ABA + b _08166BDA +_08166ABA: + b _08166BAA + .pool +_08166AC0: + bl sub_8167104 + ldr r6, =gUnknown_0203BC90 + ldr r0, [r6] + adds r0, 0x5C + ldr r4, =gUnknown_0203BCAC + ldr r1, [r4] + ldr r5, =0x00007ca8 + adds r1, r5 + bl sub_81D2754 + ldr r2, [r4] + ldr r4, =0x00007c58 + adds r0, r2, r4 + ldr r3, =0x00007fb3 + adds r1, r2, r3 + movs r3, 0 + ldrsb r3, [r1, r3] + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 2 + adds r4, 0x14 + adds r1, r4 + adds r1, r2, r1 + adds r2, r5 + bl sub_81D1F84 + bl sub_8167338 + ldr r1, [r6] + b _08166BAC + .pool +_08166B14: + ldr r5, =gUnknown_0203BCAC + ldr r0, [r5] + ldr r1, =0x00007c58 + adds r0, r1 + bl sub_81D2074 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + bne _08166BDA + ldr r0, [r5] + ldr r4, =0x00008041 + adds r0, r4 + ldrb r0, [r0] + bl sub_81672A4 + lsls r0, 24 + lsrs r0, 24 + bl sub_81681F4 + ldr r3, [r5] + adds r4, r3, r4 + ldrb r1, [r4] + ldr r2, =0x00008040 + adds r0, r3, r2 + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + beq _08166B6C + ldr r4, =0x00007fb3 + adds r0, r3, r4 + movs r1, 0 + ldrsb r1, [r0, r1] + subs r2, 0x90 + adds r0, r3, r2 + adds r0, r1 + ldrb r2, [r0] + ldr r4, =0x00007b1c + adds r0, r3, r4 + subs r4, 0xC + adds r1, r3, r4 + ldrb r1, [r1] + bl sub_81D3480 +_08166B6C: + ldr r1, =gUnknown_0203BC90 + ldr r0, [r1] + adds r0, 0x52 + strb r6, [r0] + ldr r1, [r1] + b _08166BAC + .pool +_08166B94: + ldr r1, [r5] + adds r1, 0x52 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x10 + bls _08166BDA + bl sub_8166E24 +_08166BAA: + ldr r1, [r5] +_08166BAC: + adds r1, 0x50 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08166BDA +_08166BB6: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _08166BDA + bl sub_8166EDC + lsls r0, 24 + cmp r0, 0 + bne _08166BDA + ldr r0, =gUnknown_0203CE7C + ldrb r0, [r0] + bl sub_8136F68 + ldr r0, =sub_8166BEC + bl launch_c3_walk_stairs_and_run_once +_08166BDA: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8166A34 + + thumb_func_start sub_8166BEC +sub_8166BEC: @ 8166BEC + push {r4-r6,lr} + sub sp, 0x4 + ldr r4, =gUnknown_0203BC90 + ldr r0, [r4] + adds r2, r0, 0 + adds r2, 0x50 + ldrb r1, [r2] + cmp r1, 0x1 + beq _08166C28 + cmp r1, 0x1 + bgt _08166C0C + cmp r1, 0 + beq _08166C16 + b _08166D18 + .pool +_08166C0C: + cmp r1, 0x2 + beq _08166C40 + cmp r1, 0x3 + beq _08166C5C + b _08166D18 +_08166C16: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _08166C4A +_08166C28: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08166D18 + movs r0, 0x2 + strb r0, [r2] + b _08166D18 + .pool +_08166C40: + ldr r1, =gUnknown_02039B28 + movs r0, 0x3 + strb r0, [r1, 0x15] + bl sub_80BA0A8 +_08166C4A: + ldr r1, [r4] + adds r1, 0x50 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08166D18 + .pool +_08166C5C: + ldr r0, [r0, 0x4] + bl SetMainCallback2 + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r1, =0x00007b1c + adds r0, r1 + bl sub_81D354C + movs r4, 0 +_08166C70: + ldr r5, =gUnknown_0203BCAC + ldr r0, [r5] + ldr r2, =0x00007b06 + adds r0, r2 + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x6 + bls _08166C70 + movs r0, 0 + bl FreeSpriteTilesByTag + movs r0, 0x1 + bl FreeSpriteTilesByTag + movs r0, 0 + bl FreeSpritePaletteByTag + movs r0, 0x1 + bl FreeSpritePaletteByTag + movs r4, 0 +_08166CAE: + ldr r0, [r5] + lsls r1, r4, 2 + ldr r2, =0x00007b44 + adds r0, r2 + adds r0, r1 + ldr r0, [r0] + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bls _08166CAE + ldr r6, =gUnknown_0203BCAC + ldr r0, [r6] + ldr r2, =0x00007b10 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0xFF + beq _08166CE6 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite +_08166CE6: + movs r0, 0 + bl SetVBlankCallback + ldr r4, =gUnknown_0203BCA0 + ldr r0, [r4] + bl Free + movs r5, 0 + str r5, [r4] + ldr r4, =gUnknown_0203BCA4 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r4, =gUnknown_0203BCA8 + ldr r0, [r4] + bl Free + str r5, [r4] + ldr r0, [r6] + bl Free + str r5, [r6] + bl FreeAllWindowBuffers +_08166D18: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8166BEC + + thumb_func_start sub_8166D44 +sub_8166D44: @ 8166D44 + push {r4,lr} + sub sp, 0x4C + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r1, =0x00008041 + adds r0, r1 + ldrb r0, [r0] + bl sub_81672A4 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2 + add r2, sp, 0xC + bl GetMonData + add r0, sp, 0xC + bl StringGetEnd10 + ldr r1, =gUnknown_085EC7A0 + add r0, sp, 0xC + bl StringAppend + ldr r4, =gStringVar4 + adds r0, r4, 0 + add r1, sp, 0xC + bl StringCopy + movs r0, 0x2 + movs r1, 0x11 + bl FillWindowPixelBuffer + movs r0, 0x2 + movs r1, 0x97 + movs r2, 0xE + bl sub_8098858 + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x2 + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0 + bl Print + movs r0, 0x2 + bl PutWindowTilemap + movs r0, 0x2 + movs r1, 0x3 + bl CopyWindowToVram + ldr r0, =gUnknown_085DFCFC + movs r1, 0x97 + movs r2, 0xE + movs r3, 0 + bl CreateYesNoMenu + add sp, 0x4C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8166D44 + + thumb_func_start sub_8166DE4 +sub_8166DE4: @ 8166DE4 + push {r4,lr} + bl sub_8198C58 + lsls r0, 24 + lsrs r4, r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _08166E18 + cmp r1, 0 + bgt _08166E02 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08166E06 + b _08166E18 +_08166E02: + cmp r1, 0x1 + bne _08166E18 +_08166E06: + movs r0, 0x5 + bl PlaySE + movs r0, 0x2 + bl rbox_fill_rectangle + movs r0, 0x2 + bl ClearWindowTilemap +_08166E18: + lsls r0, r4, 24 + asrs r0, 24 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8166DE4 + + thumb_func_start sub_8166E24 +sub_8166E24: @ 8166E24 + push {r4,lr} + movs r0, 0x2 + movs r1, 0x97 + movs r2, 0xE + bl sub_8098858 + movs r0, 0x2 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r3, =gUnknown_0203BC90 + ldr r0, [r3] + adds r0, 0x53 + movs r1, 0 + strb r1, [r0] + ldr r2, [r3] + adds r1, r2, 0 + adds r1, 0x53 + ldrb r0, [r1] + cmp r0, 0x4 + bhi _08166EA8 + adds r0, r2, 0 + adds r0, 0x61 + ldrb r1, [r1] + adds r0, r1 + ldrb r0, [r0] + adds r4, r3, 0 + cmp r0, 0 + bne _08166E84 + adds r2, r4, 0 +_08166E60: + ldr r0, [r2] + adds r0, 0x53 + ldrb r1, [r0] + adds r1, 0x1 + strb r1, [r0] + ldr r3, [r2] + adds r1, r3, 0 + adds r1, 0x53 + ldrb r0, [r1] + cmp r0, 0x4 + bhi _08166EA8 + adds r0, r3, 0 + adds r0, 0x61 + ldrb r1, [r1] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08166E60 +_08166E84: + ldr r2, [r4] + adds r1, r2, 0 + adds r1, 0x53 + ldrb r0, [r1] + cmp r0, 0x4 + bhi _08166EA8 + ldr r0, =gStringVar4 + ldrb r1, [r1] + adds r2, 0x61 + adds r2, r1 + ldrb r2, [r2] + bl sub_8166FD4 + b _08166EB8 + .pool +_08166EA8: + ldr r0, =gStringVar4 + ldr r1, =gUnknown_0203BC90 + ldr r1, [r1] + adds r1, 0x53 + ldrb r1, [r1] + movs r2, 0 + bl sub_8166FD4 +_08166EB8: + ldr r0, =gStringVar4 + bl sub_8166FB0 + movs r0, 0x2 + bl PutWindowTilemap + movs r0, 0x2 + movs r1, 0x3 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8166E24 + + thumb_func_start sub_8166EDC +sub_8166EDC: @ 8166EDC + push {r4,r5,lr} + movs r0, 0x2 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r5, =gUnknown_0203BC90 + adds r3, r5, 0 + movs r4, 0x5 +_08166EEC: + ldr r0, [r3] + adds r0, 0x53 + ldrb r1, [r0] + adds r1, 0x1 + strb r1, [r0] + ldr r2, [r3] + adds r1, r2, 0 + adds r1, 0x53 + ldrb r0, [r1] + cmp r0, 0x4 + bhi _08166F18 + adds r0, r2, 0 + adds r0, 0x61 + ldrb r1, [r1] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _08166F1E + b _08166EEC + .pool +_08166F18: + strb r4, [r1] + movs r0, 0 + b _08166F44 +_08166F1E: + ldr r4, =gStringVar4 + ldr r0, [r5] + adds r1, r0, 0 + adds r1, 0x53 + ldrb r1, [r1] + adds r0, 0x61 + adds r0, r1 + ldrb r2, [r0] + adds r0, r4, 0 + bl sub_8166FD4 + adds r0, r4, 0 + bl sub_8166FB0 + movs r0, 0x2 + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0x1 +_08166F44: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8166EDC + + thumb_func_start sub_8166F50 +sub_8166F50: @ 8166F50 + push {lr} + sub sp, 0xC + movs r0, 0x2 + movs r1, 0x11 + bl FillWindowPixelBuffer + movs r0, 0x2 + movs r1, 0x97 + movs r2, 0xE + bl sub_8098858 + ldr r2, =gUnknown_085EC800 + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x2 + movs r1, 0x1 + movs r3, 0 + bl Print + movs r0, 0x2 + bl PutWindowTilemap + movs r0, 0x2 + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_8166F50 + + thumb_func_start sub_8166F94 +sub_8166F94: @ 8166F94 + push {lr} + movs r0, 0x2 + bl rbox_fill_rectangle + movs r0, 0x2 + bl ClearWindowTilemap + movs r0, 0x2 + movs r1, 0x3 + bl CopyWindowToVram + pop {r0} + bx r0 + thumb_func_end sub_8166F94 + + thumb_func_start sub_8166FB0 +sub_8166FB0: @ 8166FB0 + push {lr} + sub sp, 0xC + ldr r2, =gStringVar4 + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x2 + movs r1, 0x1 + movs r3, 0 + bl Print + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_8166FB0 + + thumb_func_start sub_8166FD4 +sub_8166FD4: @ 8166FD4 + push {r4,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r3, r1, 24 + lsls r2, 16 + lsrs r0, r2, 16 + asrs r2, 16 + cmp r2, 0 + beq _08167010 + cmp r2, 0 + ble _08166FEC + movs r0, 0 +_08166FEC: + lsls r0, 16 + ldr r1, =gUnknown_085DFD04 + lsls r0, r3, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl StringCopy + ldr r1, =gUnknown_085EC7E1 + adds r0, r4, 0 + bl StringAppend + b _08167018 + .pool +_08167010: + ldr r1, =gUnknown_085EC7EF + adds r0, r4, 0 + bl StringCopy +_08167018: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8166FD4 + + thumb_func_start sub_8167024 +sub_8167024: @ 8167024 + push {r4-r7,lr} + adds r6, r0, 0 + adds r5, r1, 0 + movs r4, 0 + ldr r7, =gUnknown_085DFCB0 +_0816702E: + lsls r0, r4, 2 + adds r0, r7 + ldr r1, [r0] + adds r0, r6, 0 + bl GetMonData + adds r1, r5, r4 + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x4 + bls _0816702E + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8167024 + + thumb_func_start sub_8167054 +sub_8167054: @ 8167054 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + mov r8, r0 + adds r5, r1, 0 + adds r0, r5, 0 + movs r1, 0x30 + bl GetMonData + cmp r0, 0xFF + beq _081670F0 + mov r0, r8 + adds r1, r5, 0 + bl sub_8167184 + movs r4, 0 + mov r7, sp +_08167078: + ldr r1, =gUnknown_085DFCB0 + lsls r0, r4, 2 + adds r0, r1 + ldr r6, [r0] + adds r0, r5, 0 + adds r1, r6, 0 + bl GetMonData + lsls r0, 24 + lsrs r0, 24 + strb r0, [r7] + ldr r1, =gUnknown_0203BC90 + ldr r1, [r1] + lsls r2, r4, 1 + adds r1, 0x66 + adds r1, r2 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r0, 0 + bge _081670A6 + movs r1, 0 +_081670A6: + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _081670B0 + movs r1, 0xFF +_081670B0: + strb r1, [r7] + adds r0, r5, 0 + adds r1, r6, 0 + mov r2, sp + bl SetMonData + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x4 + bls _08167078 + adds r0, r5, 0 + movs r1, 0x30 + bl GetMonData + lsls r0, 24 + lsrs r0, 24 + mov r2, r8 + ldrb r2, [r2, 0x6] + adds r1, r0, r2 + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _081670E2 + movs r1, 0xFF +_081670E2: + mov r0, sp + strb r1, [r0] + adds r0, r5, 0 + movs r1, 0x30 + mov r2, sp + bl SetMonData +_081670F0: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8167054 + + thumb_func_start sub_8167104 +sub_8167104: @ 8167104 + push {r4,r5,lr} + ldr r5, =gPlayerParty + ldr r0, =gUnknown_0203BCAC + ldr r1, [r0] + ldr r2, =0x00008041 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r1, r0 + ldr r0, =0x00007fb9 + adds r1, r0 + ldrb r1, [r1] + movs r0, 0x64 + muls r0, r1 + adds r5, r0, r5 + ldr r4, =gUnknown_0203BC90 + ldr r1, [r4] + adds r1, 0x57 + adds r0, r5, 0 + bl sub_8167024 + ldr r0, [r4] + ldr r0, [r0, 0x8] + adds r1, r5, 0 + bl sub_8167054 + ldr r1, [r4] + adds r1, 0x5C + adds r0, r5, 0 + bl sub_8167024 + movs r3, 0 +_08167144: + ldr r0, [r4] + adds r2, r0, 0 + adds r2, 0x61 + adds r2, r3 + adds r1, r0, 0 + adds r1, 0x5C + adds r1, r3 + adds r0, 0x57 + adds r0, r3 + ldrb r1, [r1] + ldrb r0, [r0] + subs r1, r0 + strb r1, [r2] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x4 + bls _08167144 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8167104 + + thumb_func_start sub_8167184 +sub_8167184: @ 8167184 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r10, r1 + ldr r1, =gUnknown_0203BC90 + ldr r3, [r1] + ldrb r1, [r0, 0x1] + adds r2, r3, 0 + adds r2, 0x66 + strh r1, [r2] + ldrb r2, [r0, 0x5] + adds r1, r3, 0 + adds r1, 0x68 + strh r2, [r1] + ldrb r1, [r0, 0x4] + adds r2, r3, 0 + adds r2, 0x6A + strh r1, [r2] + ldrb r2, [r0, 0x3] + adds r1, r3, 0 + adds r1, 0x6C + strh r2, [r1] + ldrb r1, [r0, 0x2] + adds r0, r3, 0 + adds r0, 0x6E + strh r1, [r0] + ldr r0, =gUnknown_0203BC9E + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + ble _081671D4 + movs r0, 0x1 + b _081671DA + .pool +_081671D4: + cmp r0, 0 + bge _08167250 + movs r0, 0xFF +_081671DA: + movs r2, 0 + lsls r0, 24 + mov r9, r0 + ldr r0, =gUnknown_0203BC90 + mov r8, r0 +_081671E4: + mov r0, r8 + ldr r1, [r0] + lsls r0, r2, 24 + asrs r6, r0, 24 + lsls r7, r6, 1 + adds r1, 0x66 + adds r1, r7 + movs r2, 0 + ldrsh r4, [r1, r2] + adds r0, r4, 0 + movs r1, 0xA + bl __divsi3 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0 + movs r1, 0xA + bl __modsi3 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _0816721C + lsls r0, r5, 24 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r5, r0, 24 +_0816721C: + ldr r0, =gUnknown_085DFCC4 + adds r0, r6, r0 + ldrb r1, [r0] + mov r0, r10 + bl sub_806E858 + lsls r0, 24 + asrs r2, r0, 24 + cmp r0, r9 + bne _08167244 + mov r1, r8 + ldr r0, [r1] + adds r0, 0x66 + adds r0, r7 + lsls r1, r5, 24 + asrs r1, 24 + muls r1, r2 + ldrh r2, [r0] + adds r1, r2 + strh r1, [r0] +_08167244: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + asrs r0, 24 + cmp r0, 0x4 + ble _081671E4 +_08167250: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8167184 + + thumb_func_start sub_8167268 +sub_8167268: @ 8167268 + push {lr} + ldr r0, =gUnknown_0203BCAC + ldr r1, [r0] + ldr r2, =0x00008041 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r1, r0 + subs r2, 0x89 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + movs r2, 0x30 + movs r3, 0 + bl sub_81D2C68 + cmp r0, 0xFF + beq _0816729C + movs r0, 0 + b _0816729E + .pool +_0816729C: + movs r0, 0x1 +_0816729E: + pop {r1} + bx r1 + thumb_func_end sub_8167268 + + thumb_func_start sub_81672A4 +sub_81672A4: @ 81672A4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 +_081672AC: + movs r0, 0x64 + muls r0, r4 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _081672D2 + cmp r5, 0 + bne _081672CC + adds r0, r4, 0 + b _081672DE + .pool +_081672CC: + subs r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_081672D2: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _081672AC + movs r0, 0 +_081672DE: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81672A4 + + thumb_func_start sub_81672E4 +sub_81672E4: @ 81672E4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + movs r6, 0 + cmp r6, r5 + bcs _08167314 +_081672F2: + movs r0, 0x64 + muls r0, r4 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + beq _0816730A + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_0816730A: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _081672F2 +_08167314: + subs r0, r5, r6 + lsls r0, 24 + lsrs r0, 24 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81672E4 + + thumb_func_start sub_8167324 +sub_8167324: @ 8167324 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_81672A4 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_8167324 + + thumb_func_start sub_8167338 +sub_8167338: @ 8167338 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, =gUnknown_085DFD18 + bl LoadSpriteSheet + ldr r0, =gUnknown_085DFD20 + bl LoadSpritePalette + ldr r2, =gUnknown_0203BC90 + ldr r0, [r2] + adds r0, 0x54 + movs r1, 0 + strb r1, [r0] + movs r4, 0 + adds r5, r2, 0 + ldr r6, =gUnknown_085DFD28 + adds r0, r6, 0x2 + mov r8, r0 + ldr r7, =gSprites + 0x1C +_08167360: + ldr r0, [r5] + adds r0, 0x61 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _081673AC + lsls r2, r4, 2 + adds r0, r2, r6 + movs r3, 0 + ldrsh r1, [r0, r3] + add r2, r8 + movs r0, 0 + ldrsh r2, [r2, r0] + ldr r0, =gUnknown_085DFD5C + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _081673AC + ldr r0, [r5] + adds r0, 0x61 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _081673A2 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldr r1, =sub_81673DC + str r1, [r0] +_081673A2: + ldr r1, [r5] + adds r1, 0x54 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_081673AC: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x4 + bls _08167360 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8167338 + + thumb_func_start sub_81673DC +sub_81673DC: @ 81673DC + push {lr} + adds r1, r0, 0 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0x5 + bgt _081673EE + ldrh r0, [r1, 0x26] + subs r0, 0x2 + b _081673F6 +_081673EE: + cmp r0, 0xB + bgt _081673F8 + ldrh r0, [r1, 0x26] + adds r0, 0x2 +_081673F6: + strh r0, [r1, 0x26] +_081673F8: + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _08167418 + adds r0, r1, 0 + bl DestroySprite + ldr r0, =gUnknown_0203BC90 + ldr r1, [r0] + adds r1, 0x54 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_08167418: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81673DC + + thumb_func_start sub_8167420 +sub_8167420: @ 8167420 + push {r4-r6,lr} + movs r4, 0 + movs r5, 0 + ldr r6, =gUnknown_0203BCAC + b _08167472 + .pool +_08167430: + movs r0, 0x64 + muls r0, r4 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2D + bl GetMonData + adds r3, r0, 0 + cmp r3, 0 + bne _0816746C + ldr r1, [r6] + lsls r2, r5, 2 + adds r1, r2 + ldr r0, =0x00007fb8 + adds r1, r0 + movs r0, 0xE + strb r0, [r1] + ldr r0, [r6] + adds r0, r2 + ldr r1, =0x00007fb9 + adds r0, r1 + strb r4, [r0] + ldr r0, [r6] + adds r0, r2 + ldr r2, =0x00007fba + adds r0, r2 + strh r3, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_0816746C: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_08167472: + bl calc_player_party_count + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bcc _08167430 + ldr r2, =gUnknown_0203BCAC + ldr r0, [r2] + ldr r1, =0x00008041 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, [r2] + adds r1, r5, 0x1 + ldr r2, =0x00008040 + adds r0, r2 + strb r1, [r0] + bl sub_81674BC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8167420 + + thumb_func_start sub_81674BC +sub_81674BC: @ 81674BC + push {r4,r5,lr} + ldr r4, =gUnknown_0203BCAC + ldr r0, [r4] + ldr r5, =0x00008041 + adds r0, r5 + ldrb r0, [r0] + movs r1, 0 + bl sub_816753C + ldr r0, [r4] + ldr r1, =0x00007fb3 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, [r4] + ldr r2, =0x00007fb4 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r4] + ldr r1, =0x00007fb5 + adds r0, r1 + movs r1, 0x2 + strb r1, [r0] + ldr r0, [r4] + adds r5, r0, r5 + ldrb r3, [r5] + adds r1, r3, 0x1 + adds r2, 0x8C + adds r0, r2 + ldrb r2, [r0] + cmp r1, r2 + blt _08167500 + movs r1, 0 +_08167500: + subs r0, r3, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r0, 0 + bge _08167510 + subs r0, r2, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_08167510: + adds r0, r1, 0 + movs r1, 0x1 + bl sub_816753C + lsls r0, r4, 16 + asrs r0, 16 + movs r1, 0x2 + bl sub_816753C + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81674BC + + thumb_func_start sub_816753C +sub_816753C: @ 816753C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + adds r5, r0, 0 + adds r4, r1, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_0203BCAC + mov r9, r0 + ldr r1, [r0] + lsls r5, 16 + asrs r0, r5, 14 + adds r0, r1, r0 + ldr r3, =0x00007fb8 + adds r2, r0, r3 + ldrb r7, [r2] + ldr r2, =0x00007fb9 + adds r0, r2 + ldrb r0, [r0] + mov r10, r0 + adds r3, 0x88 + adds r0, r1, r3 + ldrb r6, [r0] + movs r0, 0 + mov r8, r0 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + ldr r2, =0x00007b4d + adds r0, r2 + adds r0, r1, r0 + lsls r2, r4, 6 + ldr r3, =0x00007b95 + adds r2, r3 + adds r1, r2 + lsrs r5, 16 + str r5, [sp] + str r6, [sp, 0x4] + mov r2, r8 + str r2, [sp, 0x8] + adds r2, r7, 0 + mov r3, r10 + bl sub_81D2ED4 + mov r3, r9 + ldr r1, [r3] + ldr r2, =0x00007c58 + adds r0, r1, r2 + ldr r3, =0x00007fb0 + adds r1, r3 + str r5, [sp] + str r4, [sp, 0x4] + str r6, [sp, 0x8] + mov r2, r8 + str r2, [sp, 0xC] + adds r2, r7, 0 + mov r3, r10 + bl sub_81D2F78 + lsls r0, r4, 13 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + mov r3, r9 + ldr r1, [r3] + adds r0, r1, r0 + lsls r4, 7 + adds r4, 0x4 + adds r1, r4 + str r5, [sp] + str r6, [sp, 0x4] + mov r2, r8 + str r2, [sp, 0x8] + adds r2, r7, 0 + mov r3, r10 + bl sub_81D3094 + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816753C + + thumb_func_start sub_8167608 +sub_8167608: @ 8167608 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x28 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, =gUnknown_0203BCAC + ldr r3, [r1] + ldr r0, =0x00007b10 + mov r8, r0 + adds r0, r3, r0 + ldrb r0, [r0] + adds r7, r1, 0 + cmp r0, 0xFF + bne _08167714 + add r5, sp, 0x18 + add r4, sp, 0x20 + adds r0, r5, 0 + mov r1, sp + adds r2, r4, 0 + bl sub_81D31D0 + lsls r0, r6, 13 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + ldr r1, [r7] + adds r0, r1, r0 + str r0, [sp, 0x18] + lsls r0, r6, 7 + adds r0, 0x4 + adds r1, r0 + str r1, [sp, 0x20] + adds r0, r4, 0 + bl LoadSpritePalette + ldr r1, [r7] + lsls r0, 24 + lsrs r0, 24 + ldr r2, =0x00007b12 + adds r1, r2 + strh r0, [r1] + adds r0, r5, 0 + bl LoadSpriteSheet + ldr r1, [r7] + ldr r3, =0x00007b14 + adds r1, r3 + strh r0, [r1] + mov r0, sp + movs r1, 0x26 + movs r2, 0x68 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, [r7] + ldr r2, =0x00007b10 + adds r0, r2 + strb r1, [r0] + cmp r1, 0x40 + bne _081676AC + movs r0, 0x64 + bl FreeSpriteTilesByTag + movs r0, 0x64 + bl FreeSpritePaletteByTag + ldr r0, [r7] + add r0, r8 + movs r1, 0xFF + strb r1, [r0] + b _08167742 + .pool +_081676AC: + ldr r0, [r7] + add r0, r8 + strb r1, [r0] + ldr r4, =gSprites + ldr r2, [r7] + mov r0, r8 + adds r3, r2, r0 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_8168168 + str r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x26] + subs r1, 0x22 + strh r1, [r0, 0x26] + ldr r3, =0x00007b18 + adds r1, r2, r3 + subs r3, 0x4 + adds r0, r2, r3 + ldrh r0, [r0] + lsls r0, 5 + ldr r3, =0x06010000 + adds r0, r3 + str r0, [r1] + ldr r0, =0x00007b12 + adds r2, r0 + ldrh r0, [r2] + lsls r0, 4 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r2] + b _08167742 + .pool +_08167714: + lsls r1, r6, 13 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + adds r1, r3, r1 + ldr r2, =0x00007b18 + adds r0, r3, r2 + ldr r2, [r0] + ldr r0, =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, =0x80000400 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + lsls r0, r6, 7 + adds r0, 0x4 + adds r0, r3, r0 + ldr r2, =0x00007b12 + adds r1, r3, r2 + ldrh r1, [r1] + movs r2, 0x20 + bl LoadPalette +_08167742: + add sp, 0x28 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8167608 + + thumb_func_start sub_8167760 +sub_8167760: @ 8167760 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x60 + add r5, sp, 0x20 + add r4, sp, 0x38 + mov r0, sp + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_81D321C + mov r0, sp + bl LoadSpriteSheets + adds r0, r4, 0 + bl LoadSpritePalettes + movs r4, 0 + ldr r1, =gUnknown_0203BCAC + ldr r0, [r1] + ldr r2, =0x00008040 + adds r0, r2 + ldrb r0, [r0] + subs r0, 0x1 + adds r6, r5, 0 + add r2, sp, 0x50 + mov r9, r2 + add r2, sp, 0x58 + mov r10, r2 + cmp r4, r0 + bge _0816781C + adds r5, r1, 0 + ldr r7, =gSprites + movs r0, 0x1C + adds r0, r7 + mov r8, r0 +_081677AC: + lsls r2, r4, 2 + adds r2, r4 + lsls r2, 18 + movs r1, 0x80 + lsls r1, 12 + adds r2, r1 + asrs r2, 16 + adds r0, r6, 0 + movs r1, 0xE2 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _081677FC + ldr r0, [r5] + ldr r2, =0x00007b06 + adds r0, r2 + adds r0, r4 + strb r3, [r0] + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + adds r1, r0, r7 + strh r4, [r1, 0x2E] + add r0, r8 + ldr r1, =sub_8168180 + str r1, [r0] + b _08167808 + .pool +_081677FC: + ldr r0, [r5] + ldr r1, =0x00007b06 + adds r0, r1 + adds r0, r4 + movs r1, 0xFF + strb r1, [r0] +_08167808: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, [r5] + ldr r2, =0x00008040 + adds r0, r2 + ldrb r0, [r0] + subs r0, 0x1 + cmp r4, r0 + blt _081677AC +_0816781C: + movs r0, 0x67 + strh r0, [r6] + cmp r4, 0x5 + bhi _0816788A + ldr r5, =gUnknown_0203BCAC + ldr r7, =gSprites +_08167828: + lsls r2, r4, 2 + adds r2, r4 + lsls r2, 18 + movs r0, 0x80 + lsls r0, 12 + adds r2, r0 + asrs r2, 16 + adds r0, r6, 0 + movs r1, 0xE6 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _08167874 + ldr r0, [r5] + ldr r1, =0x00007b06 + adds r0, r1 + adds r0, r4 + strb r3, [r0] + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + adds r1, r7 + ldrb r2, [r1, 0x3] + movs r0, 0x3F + ands r0, r2 + strb r0, [r1, 0x3] + b _08167880 + .pool +_08167874: + ldr r0, [r5] + ldr r2, =0x00007b06 + adds r0, r2 + adds r0, r4 + movs r1, 0xFF + strb r1, [r0] +_08167880: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x5 + bls _08167828 +_0816788A: + movs r0, 0x66 + strh r0, [r6] + ldr r0, =sub_81681B4 + str r0, [r6, 0x14] + lsls r2, r4, 2 + adds r2, r4 + lsls r2, 18 + movs r0, 0x80 + lsls r0, 12 + adds r2, r0 + asrs r2, 16 + adds r0, r6, 0 + movs r1, 0xDE + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _081678F4 + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r1, =0x00007b06 + adds r0, r1 + adds r0, r4 + strb r3, [r0] + ldr r0, =gSprites + lsls r2, r3, 4 + adds r2, r3 + lsls r2, 2 + adds r2, r0 + ldrb r3, [r2, 0x1] + movs r1, 0x3F + adds r0, r1, 0 + ands r0, r3 + movs r3, 0x40 + orrs r0, r3 + strb r0, [r2, 0x1] + ldrb r0, [r2, 0x3] + ands r1, r0 + movs r0, 0x80 + orrs r1, r0 + strb r1, [r2, 0x3] + b _08167902 + .pool +_081678F4: + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r2, =0x00007b06 + adds r0, r2 + adds r0, r4 + movs r1, 0xFF + strb r1, [r0] +_08167902: + mov r0, r9 + mov r1, r10 + bl sub_81D32B0 + mov r0, r9 + bl LoadSpriteSheet + mov r0, r10 + bl LoadSpritePalette + add sp, 0x60 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8167760 + + thumb_func_start sub_8167930 +sub_8167930: @ 8167930 + push {r4,r5,lr} + sub sp, 0x8 + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r2, =0x00008048 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0xB + bls _08167944 + b _08167B78 +_08167944: + lsls r0, 2 + ldr r1, =_0816795C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0816795C: + .4byte _0816798C + .4byte _08167A04 + .4byte _08167A38 + .4byte _08167A48 + .4byte _08167A5C + .4byte _08167A74 + .4byte _08167A9C + .4byte _08167AB0 + .4byte _08167AD4 + .4byte _08167AEC + .4byte _08167B1C + .4byte _08167B38 +_0816798C: + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r1, 0x88 + lsls r1, 6 + movs r0, 0x3 + movs r2, 0 + bl ChangeBgY + ldr r1, =0x00007040 + movs r0, 0 + bl SetGpuReg + movs r1, 0x91 + lsls r1, 2 + movs r0, 0x50 + bl SetGpuReg + ldr r1, =0x0000040b + movs r0, 0x52 + bl SetGpuReg + b _08167B7E + .pool +_08167A04: + ldr r4, =gUnknown_0203BCA4 + movs r0, 0xD0 + lsls r0, 5 + bl Alloc + str r0, [r4] + ldr r5, =gUnknown_0203BCA0 + movs r4, 0xA0 + lsls r4, 3 + adds r0, r4, 0 + bl Alloc + str r0, [r5] + ldr r5, =gUnknown_0203BCA8 + adds r0, r4, 0 + bl Alloc + str r0, [r5] + b _08167B7E + .pool +_08167A38: + ldr r0, =gUnknown_085DFB60 + ldr r1, =gUnknown_0203BCA8 + b _08167AA0 + .pool +_08167A48: + ldr r1, =gUnknown_085DFA80 + movs r0, 0x3 + movs r2, 0xE0 + movs r3, 0 + bl LoadBgTiles + b _08167B7E + .pool +_08167A5C: + ldr r0, =gUnknown_0203BCA8 + ldr r1, [r0] + movs r2, 0xA0 + lsls r2, 3 + movs r0, 0x3 + movs r3, 0 + bl LoadBgTilemap + b _08167B7E + .pool +_08167A74: + ldr r0, =gUnknown_085DFA60 + movs r1, 0xD0 + movs r2, 0x20 + bl LoadPalette + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r1, =0x00007b0e + adds r0, r1 + ldr r1, =0x0000ffb0 + strh r1, [r0] + b _08167B7E + .pool +_08167A9C: + ldr r0, =gUnknown_08DCCF7C + ldr r1, =gUnknown_0203BCA4 +_08167AA0: + ldr r1, [r1] + bl LZ77UnCompVram + b _08167B7E + .pool +_08167AB0: + ldr r0, =gUnknown_08DCD81C + ldr r1, =gUnknown_0203BCA0 + ldr r1, [r1] + bl LZ77UnCompVram + ldr r0, =gUnknown_08DCCF5C + movs r1, 0x20 + movs r2, 0x20 + bl LoadPalette + b _08167B7E + .pool +_08167AD4: + ldr r0, =gUnknown_0203BCA4 + ldr r1, [r0] + movs r2, 0xD0 + lsls r2, 5 + movs r3, 0xA0 + lsls r3, 2 + movs r0, 0x1 + bl LoadBgTiles + b _08167B7E + .pool +_08167AEC: + ldr r0, =gUnknown_0203BCA0 + ldr r1, [r0] + movs r0, 0x1 + bl SetBgTilemapBuffer + ldr r1, =gUnknown_08DCDA30 + movs r0, 0xC + str r0, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r2, 0 + movs r3, 0xD + bl CopyToBgTilemapBufferRect + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + b _08167B7E + .pool +_08167B1C: + ldr r0, =gUnknown_085DFC0C + ldr r1, =gUnknown_0203BCAC + ldr r1, [r1] + ldr r2, =0x00007304 + adds r1, r2 + bl LZ77UnCompVram + b _08167B7E + .pool +_08167B38: + ldr r0, =gUnknown_0203BCAC + ldr r1, [r0] + ldr r0, =0x00007304 + adds r1, r0 + movs r2, 0xA0 + lsls r2, 3 + movs r0, 0x2 + movs r3, 0 + bl LoadBgTilemap + ldr r0, =gUnknown_086231E8 + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r0, =gUnknown_08623208 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + movs r0, 0x2 + bl sub_81D21DC + b _08167B7E + .pool +_08167B78: + movs r0, 0 + strb r0, [r1] + b _08167B8E +_08167B7E: + ldr r0, =gUnknown_0203BCAC + ldr r1, [r0] + ldr r2, =0x00008048 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0x1 +_08167B8E: + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8167930 + + thumb_func_start sub_8167BA0 +sub_8167BA0: @ 8167BA0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + lsls r0, 16 + lsrs r4, r0, 16 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + movs r0, 0 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x1 + movs r1, 0 + bl FillWindowPixelBuffer + ldr r7, =gUnknown_0203BCAC + ldr r3, [r7] + ldr r1, =0x00008041 + adds r0, r3, r1 + ldrb r1, [r0] + ldr r2, =0x00008040 + adds r0, r3, r2 + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + beq _08167C46 + lsls r2, r4, 6 + ldr r0, =0x00007b95 + adds r2, r0 + adds r2, r3, r2 + movs r0, 0x1 + str r0, [sp] + movs r5, 0 + str r5, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r1, 0x1 + movs r3, 0 + bl Print + ldr r0, [r7] + ldr r1, =0x00008041 + adds r0, r1 + ldrb r0, [r0] + bl sub_81672A4 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + bl GetNature + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, [r7] + ldr r6, =0x0000804a + adds r0, r6 + ldr r1, =gUnknown_085EBF8D + bl StringCopy + ldr r1, =gNatureNamePointers + lsls r4, 2 + adds r4, r1 + ldr r1, [r4] + bl StringCopy + ldr r0, =gUnknown_085DFCC9 + str r0, [sp] + str r5, [sp, 0x4] + ldr r0, [r7] + adds r0, r6 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x2 + movs r3, 0x1 + bl box_print +_08167C46: + mov r2, r8 + cmp r2, 0 + beq _08167C84 + movs r0, 0 + movs r1, 0x3 + bl CopyWindowToVram + movs r0, 0x1 + movs r1, 0x3 + bl CopyWindowToVram + b _08167C94 + .pool +_08167C84: + movs r0, 0 + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0x1 + movs r1, 0x2 + bl CopyWindowToVram +_08167C94: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8167BA0 + + thumb_func_start sub_8167CA0 +sub_8167CA0: @ 8167CA0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0 + beq _08167CC0 + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r1, =0x00007fb5 + adds r0, r1 + b _08167CC8 + .pool +_08167CC0: + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r2, =0x00007fb4 + adds r0, r2 +_08167CC8: + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r5, =gUnknown_0203BCAC + ldr r2, [r5] + ldr r3, =0x00007c58 + adds r0, r2, r3 + ldr r4, =0x00007fb3 + adds r1, r2, r4 + movs r3, 0 + ldrsb r3, [r1, r3] + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 2 + ldr r4, =0x00007c6c + adds r1, r4 + adds r1, r2, r1 + lsls r3, r6, 2 + adds r3, r6 + lsls r3, 2 + adds r3, r4 + adds r2, r3 + bl sub_81D1F84 + ldr r4, [r5] + ldr r1, =0x00008041 + adds r0, r4, r1 + ldrb r1, [r0] + ldr r2, =0x00008040 + mov r12, r2 + adds r0, r4, r2 + ldrb r0, [r0] + subs r0, 0x1 + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + mov r8, r0 + cmp r7, 0 + beq _08167D98 + ldr r3, =0x00007fb4 + adds r0, r4, r3 + ldrb r1, [r0] + subs r2, 0x8B + adds r0, r4, r2 + strb r1, [r0] + ldr r0, [r5] + ldr r4, =0x00007fb3 + adds r1, r0, r4 + ldrb r1, [r1] + adds r0, r3 + strb r1, [r0] + ldr r0, [r5] + adds r0, r4 + strb r6, [r0] + ldr r0, [r5] + adds r2, r0, r2 + ldrb r1, [r2] + ldr r2, =0x00007fb6 + adds r0, r2 + strb r1, [r0] + ldr r1, [r5] + adds r3, 0x8D + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _08167D58 + mov r4, r12 + adds r0, r1, r4 + ldrb r0, [r0] +_08167D58: + subs r2, r0, 0x1 + ldr r0, =0x00008041 + adds r1, r0 + strb r2, [r1] + ldr r1, =gUnknown_0203BCAC + ldr r3, [r1] + adds r0, r3, r0 + ldrb r0, [r0] + adds r6, r1, 0 + cmp r0, 0 + bne _08167D74 + ldr r1, =0x00008040 + adds r0, r3, r1 + ldrb r0, [r0] +_08167D74: + subs r1, r0, 0x1 + b _08167E1E + .pool +_08167D98: + ldr r3, =0x00007fb5 + adds r0, r4, r3 + ldrb r1, [r0] + ldr r2, =0x00007fb4 + adds r0, r4, r2 + strb r1, [r0] + ldr r0, [r5] + ldr r4, =0x00007fb3 + adds r1, r0, r4 + ldrb r1, [r1] + adds r0, r3 + strb r1, [r0] + ldr r0, [r5] + adds r0, r4 + strb r6, [r0] + ldr r0, [r5] + adds r2, r0, r2 + ldrb r1, [r2] + ldr r2, =0x00007fb6 + adds r0, r2 + strb r1, [r0] + ldr r2, [r5] + adds r3, 0x8C + adds r0, r2, r3 + ldrb r1, [r0] + adds r4, 0x8D + adds r0, r2, r4 + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + bge _08167DEC + adds r3, r1, 0x1 + b _08167DEE + .pool +_08167DEC: + movs r3, 0 +_08167DEE: + ldr r1, =0x00008041 + adds r0, r2, r1 + strb r3, [r0] + ldr r2, =gUnknown_0203BCAC + ldr r3, [r2] + adds r1, r3, r1 + ldrb r1, [r1] + ldr r4, =0x00008040 + adds r0, r3, r4 + ldrb r0, [r0] + subs r0, 0x1 + adds r6, r2, 0 + cmp r1, r0 + bge _08167E1C + adds r1, 0x1 + b _08167E1E + .pool +_08167E1C: + movs r1, 0 +_08167E1E: + ldr r2, =0x00007b4c + adds r0, r3, r2 + strb r1, [r0] + adds r5, r6, 0 + ldr r0, [r5] + ldr r3, =0x00008041 + adds r1, r0, r3 + ldrb r2, [r1] + ldr r4, =0x00008040 + adds r1, r0, r4 + ldrb r1, [r1] + subs r1, 0x1 + eors r2, r1 + negs r1, r2 + orrs r1, r2 + lsrs r4, r1, 31 + ldr r1, =0x00007b1c + adds r0, r1 + bl sub_81D3520 + mov r2, r8 + cmp r2, 0 + bne _08167E70 + ldr r0, [r5] + ldr r3, =0x00008044 + adds r0, r3 + ldr r1, =sub_8167EA4 + b _08167E90 + .pool +_08167E70: + cmp r4, 0 + bne _08167E88 + ldr r0, [r5] + ldr r4, =0x00008044 + adds r0, r4 + ldr r1, =sub_8167FA4 + b _08167E90 + .pool +_08167E88: + ldr r0, [r6] + ldr r1, =0x00008044 + adds r0, r1 + ldr r1, =sub_8168048 +_08167E90: + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8167CA0 + + thumb_func_start sub_8167EA4 +sub_8167EA4: @ 8167EA4 + push {r4-r6,lr} + ldr r4, =gUnknown_0203BCAC + ldr r1, [r4] + ldr r5, =0x00008048 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08167EE4 + cmp r0, 0x1 + bgt _08167EC8 + cmp r0, 0 + beq _08167ED2 + b _08167F9C + .pool +_08167EC8: + cmp r0, 0x2 + beq _08167F08 + cmp r0, 0x3 + beq _08167F48 + b _08167F9C +_08167ED2: + ldr r2, =0x00007fb3 + adds r0, r1, r2 + ldrb r0, [r0] + bl sub_8167608 + b _08167F2C + .pool +_08167EE4: + ldr r6, =0x00007fb3 + adds r0, r1, r6 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + bl sub_8167BA0 + ldr r1, [r4] + ldr r0, =0x00008048 + adds r1, r0 + b _08167F30 + .pool +_08167F08: + ldr r2, =0x00007c58 + adds r0, r1, r2 + ldr r6, =0x00007b0e + adds r1, r6 + bl sub_81D3178 + lsls r0, 24 + cmp r0, 0 + bne _08167F9C + ldr r1, [r4] + ldr r2, =0x00007b4c + adds r0, r1, r2 + ldrb r0, [r0] + ldr r6, =0x00007fb6 + adds r1, r6 + ldrb r1, [r1] + bl sub_816753C +_08167F2C: + ldr r1, [r4] + adds r1, r5 +_08167F30: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08167F9C + .pool +_08167F48: + ldr r2, =0x00007b1c + adds r0, r1, r2 + bl sub_81D3464 + ldr r3, [r4] + ldr r6, =0x00008041 + adds r0, r3, r6 + ldrb r1, [r0] + ldr r2, =0x00008040 + adds r0, r3, r2 + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + beq _08167F82 + subs r6, 0x8E + adds r0, r3, r6 + movs r1, 0 + ldrsb r1, [r0, r1] + subs r2, 0x90 + adds r0, r3, r2 + adds r0, r1 + ldrb r2, [r0] + ldr r6, =0x00007b1c + adds r0, r3, r6 + subs r6, 0xC + adds r1, r3, r6 + ldrb r1, [r1] + bl sub_81D3480 +_08167F82: + ldr r0, [r4] + adds r0, r5 + movs r1, 0 + strb r1, [r0] + movs r0, 0 + b _08167F9E + .pool +_08167F9C: + movs r0, 0x1 +_08167F9E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8167EA4 + + thumb_func_start sub_8167FA4 +sub_8167FA4: @ 8167FA4 + push {r4,r5,lr} + ldr r4, =gUnknown_0203BCAC + ldr r1, [r4] + ldr r5, =0x00008048 + adds r2, r1, r5 + ldrb r0, [r2] + cmp r0, 0x1 + beq _08167FF0 + cmp r0, 0x1 + bgt _08167FC8 + cmp r0, 0 + beq _08167FD2 + b _0816803E + .pool +_08167FC8: + cmp r0, 0x2 + beq _08168014 + cmp r0, 0x3 + beq _08168038 + b _0816803E +_08167FD2: + ldr r2, =0x00007c58 + adds r0, r1, r2 + ldr r2, =0x00007b0e + adds r1, r2 + bl sub_81D31A4 + lsls r0, 24 + cmp r0, 0 + bne _0816803E + b _08168024 + .pool +_08167FF0: + ldr r2, =0x00007fb3 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + bl sub_8167BA0 + ldr r1, [r4] + ldr r0, =0x00008048 + adds r1, r0 + b _08168028 + .pool +_08168014: + ldr r2, =0x00007b4c + adds r0, r1, r2 + ldrb r0, [r0] + ldr r2, =0x00007fb6 + adds r1, r2 + ldrb r1, [r1] + bl sub_816753C +_08168024: + ldr r1, [r4] + adds r1, r5 +_08168028: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0816803E + .pool +_08168038: + movs r0, 0 + strb r0, [r2] + b _08168040 +_0816803E: + movs r0, 0x1 +_08168040: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8167FA4 + + thumb_func_start sub_8168048 +sub_8168048: @ 8168048 + push {r4-r6,lr} + ldr r4, =gUnknown_0203BCAC + ldr r1, [r4] + ldr r5, =0x00008048 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, 0x1 + beq _081680A8 + cmp r0, 0x1 + bgt _0816806C + cmp r0, 0 + beq _08168076 + b _08168160 + .pool +_0816806C: + cmp r0, 0x2 + beq _081680CC + cmp r0, 0x3 + beq _0816810C + b _08168160 +_08168076: + ldr r2, =0x00007c58 + adds r0, r1, r2 + bl sub_81D2074 + ldr r0, [r4] + ldr r6, =0x00007b0e + adds r0, r6 + bl sub_81D3150 + lsls r0, 24 + cmp r0, 0 + bne _08168160 + ldr r0, [r4] + ldr r1, =0x00007fb3 + adds r0, r1 + ldrb r0, [r0] + bl sub_8167608 + b _081680F0 + .pool +_081680A8: + ldr r2, =0x00007fb3 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + bl sub_8167BA0 + ldr r1, [r4] + ldr r6, =0x00008048 + adds r1, r6 + b _081680F4 + .pool +_081680CC: + ldr r2, =0x00007c58 + adds r0, r1, r2 + ldr r6, =0x00007b0e + adds r1, r6 + bl sub_81D3178 + lsls r0, 24 + cmp r0, 0 + bne _08168160 + ldr r1, [r4] + ldr r2, =0x00007b4c + adds r0, r1, r2 + ldrb r0, [r0] + ldr r6, =0x00007fb6 + adds r1, r6 + ldrb r1, [r1] + bl sub_816753C +_081680F0: + ldr r1, [r4] + adds r1, r5 +_081680F4: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08168160 + .pool +_0816810C: + ldr r2, =0x00007b1c + adds r0, r1, r2 + bl sub_81D3464 + ldr r3, [r4] + ldr r6, =0x00008041 + adds r0, r3, r6 + ldrb r1, [r0] + ldr r2, =0x00008040 + adds r0, r3, r2 + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + beq _08168146 + subs r6, 0x8E + adds r0, r3, r6 + movs r1, 0 + ldrsb r1, [r0, r1] + subs r2, 0x90 + adds r0, r3, r2 + adds r0, r1 + ldrb r2, [r0] + ldr r6, =0x00007b1c + adds r0, r3, r6 + subs r6, 0xC + adds r1, r3, r6 + ldrb r1, [r1] + bl sub_81D3480 +_08168146: + ldr r0, [r4] + adds r0, r5 + movs r1, 0 + strb r1, [r0] + movs r0, 0 + b _08168162 + .pool +_08168160: + movs r0, 0x1 +_08168162: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8168048 + + thumb_func_start sub_8168168 +sub_8168168: @ 8168168 + ldr r1, =gUnknown_0203BCAC + ldr r1, [r1] + ldr r2, =0x00007b0e + adds r1, r2 + ldrh r1, [r1] + adds r1, 0x26 + strh r1, [r0, 0x20] + bx lr + .pool + thumb_func_end sub_8168168 + + thumb_func_start sub_8168180 +sub_8168180: @ 8168180 + push {lr} + adds r2, r0, 0 + movs r0, 0x2E + ldrsh r1, [r2, r0] + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r3, =0x00008041 + adds r0, r3 + ldrb r0, [r0] + cmp r1, r0 + bne _081681A8 + adds r0, r2, 0 + movs r1, 0 + bl StartSpriteAnim + b _081681B0 + .pool +_081681A8: + adds r0, r2, 0 + movs r1, 0x1 + bl StartSpriteAnim +_081681B0: + pop {r0} + bx r0 + thumb_func_end sub_8168180 + + thumb_func_start sub_81681B4 +sub_81681B4: @ 81681B4 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r2, =0x00008041 + adds r1, r0, r2 + ldrb r1, [r1] + subs r2, 0x1 + adds r0, r2 + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + bne _081681DC + movs r0, 0x65 + b _081681DE + .pool +_081681DC: + movs r0, 0x66 +_081681DE: + bl IndexOfSpritePaletteTag + lsls r0, 4 + ldrb r2, [r4, 0x5] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81681B4 + + thumb_func_start sub_81681F4 +sub_81681F4: @ 81681F4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x30 + bl GetMonData + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r3, =0x00007fb3 + adds r1, r0, r3 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + subs r3, 0x3 + adds r0, r3 + adds r4, r0, r1 + cmp r2, 0xFF + beq _0816823C + adds r0, r2, 0 + movs r1, 0x1D + bl __udivsi3 + b _0816823E + .pool +_0816823C: + movs r0, 0x9 +_0816823E: + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81681F4 + + thumb_func_start sub_8168248 +sub_8168248: @ 8168248 + push {lr} + sub sp, 0x10 + ldr r0, =gUnknown_085DFDB8 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x8] + str r1, [sp, 0xC] + ldr r0, =gUnknown_08DCCBB8 + str r0, [sp] + ldr r1, =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0x80 + lsls r1, 4 + orrs r0, r1 + ldr r1, =0x0000ffff + ands r0, r1 + adds r1, 0x1 + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadCompressedObjectPic + add r0, sp, 0x8 + bl LoadSpritePalette + add sp, 0x10 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8168248 + + thumb_func_start sub_8168294 +sub_8168294: @ 8168294 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, =gUnknown_0203BCAC + ldr r0, [r0] + ldr r1, =0x00007b44 + adds r7, r0, r1 + ldr r0, =gUnknown_085DFDA0 + mov r10, r0 + movs r6, 0 + movs r1, 0x40 + mov r9, r1 + movs r0, 0x60 + negs r0, r0 + mov r8, r0 +_081682B6: + mov r5, r9 + muls r5, r6 + mov r0, r8 + adds r1, r0, r5 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x11 + lsls r2, r0, 16 + mov r0, r10 + asrs r2, 16 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _081682FE + ldr r0, =gSprites + lsls r4, r1, 4 + adds r4, r1 + lsls r4, 2 + adds r4, r0 + movs r1, 0x8 + strh r1, [r4, 0x2E] + movs r0, 0x20 + orrs r5, r0 + strh r5, [r4, 0x30] + strh r6, [r4, 0x32] + lsls r1, r6, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + lsls r0, r6, 2 + adds r0, r7 + str r4, [r0] +_081682FE: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x1 + bls _081682B6 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8168294 + + thumb_func_start sub_8168328 +sub_8168328: @ 8168328 + push {r4,r5,lr} + ldr r4, =gUnknown_0203BCAC + ldr r0, [r4] + ldr r5, =0x00008048 + adds r0, r5 + ldrb r0, [r0] + cmp r0, 0 + beq _08168348 + cmp r0, 0x1 + beq _08168360 + b _0816836C + .pool +_08168348: + bl sub_8168248 + ldr r1, [r4] + ldr r0, =0x00008048 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0x1 + b _0816836E + .pool +_08168360: + bl sub_8168294 + ldr r0, [r4] + adds r0, r5 + movs r1, 0 + strb r1, [r0] +_0816836C: + movs r0, 0 +_0816836E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8168328 + + thumb_func_start sub_8168374 +sub_8168374: @ 8168374 + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x20] + ldrh r1, [r2, 0x2E] + adds r3, r0, r1 + strh r3, [r2, 0x20] + lsls r0, 16 + asrs r4, r0, 16 + movs r0, 0x30 + ldrsh r1, [r2, r0] + cmp r4, r1 + bgt _08168398 + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, r1 + bge _081683A0 + cmp r4, r1 + blt _081683A8 +_08168398: + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, r1 + bgt _081683A8 +_081683A0: + ldrh r0, [r2, 0x30] + strh r0, [r2, 0x20] + ldr r0, =SpriteCallbackDummy + str r0, [r2, 0x1C] +_081683A8: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8168374 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_818CFC8.s b/asm/rom_818CFC8.s index f185a9aa0..5f4282d9d 100644 --- a/asm/rom_818CFC8.s +++ b/asm/rom_818CFC8.s @@ -45959,7 +45959,7 @@ _081A4E96: ldr r0, =0x0000ef2a str r0, [sp, 0xC] mov r0, r10 - bl create_pokemon_set_level + bl CreateMon ldr r0, =gUnknown_0861156C adds r5, r0 adds r5, r6, r5 @@ -48556,7 +48556,7 @@ _081A6534: str r2, [sp, 0xC] ldr r2, [sp, 0x14] adds r3, r6, 0 - bl create_pokemon_set_level + bl CreateMon movs r1, 0 mov r2, r9 ldr r0, [r2] @@ -48722,7 +48722,7 @@ _081A6682: str r2, [sp, 0xC] ldr r2, [sp, 0x14] adds r3, r6, 0 - bl create_pokemon_set_level + bl CreateMon movs r1, 0 mov r2, r9 ldr r0, [r2] diff --git a/asm/scrcmd.s b/asm/scrcmd.s index 01dc067cd..02034640f 100644 --- a/asm/scrcmd.s +++ b/asm/scrcmd.s @@ -1172,7 +1172,7 @@ sub_8099B64: @ 8099B64 ldr r4, =gScriptResult lsls r0, 24 lsrs r0, 24 - bl IsThereStorageSpaceForDecoration + bl DecorationAdd lsls r0, 24 lsrs r0, 24 strh r0, [r4] @@ -1193,7 +1193,7 @@ sub_8099B90: @ 8099B90 ldr r4, =gScriptResult lsls r0, 24 lsrs r0, 24 - bl sub_81619DC + bl DecorationRemove lsls r0, 24 asrs r0, 24 strh r0, [r4] @@ -1214,7 +1214,7 @@ sub_8099BBC: @ 8099BBC ldr r4, =gScriptResult lsls r0, 24 lsrs r0, 24 - bl sub_81619A8 + bl DecorationCheckSpace lsls r0, 24 lsrs r0, 24 strh r0, [r4] diff --git a/asm/script_pokemon_util_80F87D8.s b/asm/script_pokemon_util_80F87D8.s index b98058fa4..4dd19bc62 100644 --- a/asm/script_pokemon_util_80F87D8.s +++ b/asm/script_pokemon_util_80F87D8.s @@ -1296,7 +1296,7 @@ sub_80F9244: @ 80F9244 adds r1, r5, 0 adds r2, r3, 0 movs r3, 0x20 - bl create_pokemon_set_level + bl CreateMon add r0, sp, 0x10 mov r1, r8 strb r1, [r0] @@ -1476,7 +1476,7 @@ sub_80F93A0: @ 80F93A0 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x20 - bl create_pokemon_set_level + bl CreateMon cmp r6, 0 beq _080F93EE add r0, sp, 0x10 diff --git a/asm/secret_base.s b/asm/secret_base.s index 877623d47..a4352e975 100644 --- a/asm/secret_base.s +++ b/asm/secret_base.s @@ -956,7 +956,7 @@ _080E927A: lsrs r0, 24 cmp r0, 0x77 bhi _080E92AC - ldr r0, =gUnknown_085A5C08 + ldr r0, =gDecorations ldrb r3, [r1] lsls r1, r3, 5 adds r1, r0 @@ -1094,7 +1094,7 @@ _080E93BE: mov r1, r10 ldrb r0, [r1] lsls r0, 5 - ldr r2, =gUnknown_085A5C08 + ldr r2, =gDecorations adds r0, r2 ldrb r1, [r0, 0x11] ldrb r0, [r0, 0x13] diff --git a/asm/shop.s b/asm/shop.s index 0655f1851..3dad99303 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -740,7 +740,7 @@ _080E008A: b _080E00EA .pool _080E00D8: - ldr r0, =gUnknown_085A5C08 + ldr r0, =gDecorations lsls r1, r7, 5 adds r0, 0x18 adds r1, r0 @@ -808,7 +808,7 @@ BuyMenuPrintPriceInList: @ 80E0114 .pool _080E0164: ldr r0, =gStringVar1 - ldr r2, =gUnknown_085A5C08 + ldr r2, =gDecorations lsls r1, 5 adds r1, r2 ldrh r1, [r1, 0x14] @@ -2038,7 +2038,7 @@ _080E0B80: movs r3, 0x80 lsls r3, 6 adds r1, r3 - ldr r2, =gUnknown_085A5C08 + ldr r2, =gDecorations lsls r0, r5, 5 adds r0, r2 ldrh r0, [r0, 0x14] @@ -2415,7 +2415,7 @@ _080E0F30: .pool _080E0F40: ldrb r0, [r4, 0xA] - bl IsThereStorageSpaceForDecoration + bl DecorationAdd lsls r0, 24 cmp r0, 0 beq _080E0F70 diff --git a/asm/trade.s b/asm/trade.s index b1ca15708..d7187fca0 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -389,7 +389,7 @@ _080774B2: movs r1, 0 movs r2, 0 movs r3, 0x20 - bl create_pokemon_set_level + bl CreateMon adds r6, 0x1 cmp r6, 0x5 ble _080774B2 @@ -13276,7 +13276,7 @@ sub_807E7E8: @ 807E7E8 str r0, [sp, 0xC] adds r0, r6, 0 movs r3, 0x20 - bl create_pokemon_set_level + bl CreateMon adds r2, r5, 0 adds r2, 0xE adds r0, r6, 0 diff --git a/asm/trader.s b/asm/trader.s index 024ee3307..ed3cca41b 100644 --- a/asm/trader.s +++ b/asm/trader.s @@ -381,7 +381,7 @@ sub_8133D2C: @ 8133D2C ldr r6, =gScriptResult movs r0, 0 strh r0, [r6] - ldr r4, =gUnknown_085A5C08 + ldr r4, =gDecorations ldr r5, =gSpecialVar_0x8004 ldrh r0, [r5] lsls r0, 5 @@ -502,10 +502,10 @@ sub_8133E38: @ 8133E38 ldr r1, =gSpecialVar_0x8006 mov r8, r1 ldrb r0, [r1] - bl sub_81619DC + bl DecorationRemove ldr r0, =gSpecialVar_0x8004 ldrb r0, [r0] - bl IsThereStorageSpaceForDecoration + bl DecorationAdd ldr r4, =gSpecialVar_0x8005 ldrh r1, [r4] movs r0, 0xB diff --git a/asm/wild_encounter.s b/asm/wild_encounter.s index eba740cb9..181a89d7e 100644 --- a/asm/wild_encounter.s +++ b/asm/wild_encounter.s @@ -1464,7 +1464,7 @@ _080B53D4: beq _080B53F2 b _080B54FE _080B53F2: - bl sub_8161EDC + bl TryStartRoamerEncounter lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1550,7 +1550,7 @@ _080B5492: lsrs r0, 24 cmp r0, 0x1 bne _080B54FE - bl sub_8161EDC + bl TryStartRoamerEncounter lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1740,7 +1740,7 @@ _080B562C: ldr r4, [r0] cmp r4, 0 beq _080B56F2 - bl sub_8161EDC + bl TryStartRoamerEncounter lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1788,7 +1788,7 @@ _080B568C: ldr r4, [r0] cmp r4, 0 beq _080B56F2 - bl sub_8161EDC + bl TryStartRoamerEncounter lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/data/data3.s b/data/data3.s index ee1ad294a..1a5742a99 100644 --- a/data/data3.s +++ b/data/data3.s @@ -3626,7 +3626,7 @@ gUnknown_085A1F7C:: @ 85A1F7C gUnknown_085A1F94:: @ 85A1F94 .incbin "baserom.gba", 0x5a1f94, 0x3c74 -gUnknown_085A5C08:: @ 85A5C08 +gDecorations:: @ 85A5C08 .incbin "baserom.gba", 0x5a5c08, 0x1 gUnknown_085A5C09:: @ 85A5C09 diff --git a/data/rom_8158B30.s b/data/rom_8158B30.s index 513be9bdb..8cf87117a 100644 --- a/data/rom_8158B30.s +++ b/data/rom_8158B30.s @@ -84,7 +84,7 @@ gUnknown_085CEC10:: @ 85CEC10 gUnknown_085CEC28:: @ 85CEC28 .incbin "baserom.gba", 0x5cec28, 0x8 -gUnknown_085CEC30:: @ 85CEC30 +sRoamerLocations:: @ 85CEC30 .incbin "baserom.gba", 0x5cec30, 0x80 @ 85CECB0 diff --git a/ld_script.txt b/ld_script.txt index 4458ea158..eee70792c 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -190,6 +190,9 @@ SECTIONS { asm/battle_controller_safari.o(.text); asm/fldeff_sweetscent.o(.text); asm/rom_815A0D4.o(.text); + asm/decoration_inventory.o(.text); + asm/roamer.o(.text); + asm/rom_8161F74.o(.text); asm/battle_controller_wally.o(.text); asm/player_pc.o(.text); asm/intro.o(.text); diff --git a/sym_ewram.txt b/sym_ewram.txt index b2dcd8e41..5bdece40c 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1666,13 +1666,13 @@ gUnknown_0203BC34: @ 203BC34 gUnknown_0203BC38: @ 203BC38 .space 0x8 -gUnknown_0203BC40: @ 203BC40 +gDecorationInventories: @ 203BC40 .space 0x40 -gUnknown_0203BC80: @ 203BC80 +sLocationHistory: @ 203BC80 .space 0x6 -gUnknown_0203BC86: @ 203BC86 +sRoamerLocation: @ 203BC86 .space 0x2 gUnknown_0203BC88: @ 203BC88